From 9887ba072174cc012dab3944d588915d428d9be7 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 30 Nov 2022 14:11:05 +0100 Subject: [PATCH 01/30] improve Attached - allow a default value - make copy method work properly --- secop/modules.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/secop/modules.py b/secop/modules.py index 78f5b13..d75c3b2 100644 --- a/secop/modules.py +++ b/secop/modules.py @@ -35,7 +35,7 @@ from secop.errors import BadValueError, CommunicationFailedError, ConfigError, \ from secop.lib import formatException, mkthread, UniqueObject, generalConfig from secop.lib.enum import Enum from secop.params import Accessible, Command, Parameter -from secop.properties import HasProperties, Property +from secop.properties import HasProperties, Property, UNSET from secop.logging import RemoteLogHandler, HasComlog generalConfig.set_default('disable_value_range_check', False) # check for problematic value range by default @@ -879,9 +879,10 @@ class Attached(Property): assign a module name to this property in the cfg file, and the server will create an attribute with this module """ - def __init__(self, basecls=Module, description='attached module', mandatory=True): + def __init__(self, basecls=Module, description='attached module', mandatory=True, + default=UNSET): self.basecls = basecls - super().__init__(description, StringType(), mandatory=mandatory) + super().__init__(description, StringType(), mandatory=mandatory, value=default) def __get__(self, obj, owner): if obj is None: @@ -891,3 +892,6 @@ class Attached(Property): return super().__get__(obj, owner) # return the module (called after startup) return obj.attachedModules.get(self.name) # return None if not given + + def copy(self): + return Attached(self.basecls, self.description, self.mandatory, self.value) From ef9d89993cc71f16789f32aa0173e63cab337b10 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 30 Nov 2022 14:14:06 +0100 Subject: [PATCH 02/30] new specs of HasOffset and target_limits --- secop/features.py | 60 ++++++----------------------------------------- 1 file changed, 7 insertions(+), 53 deletions(-) diff --git a/secop/features.py b/secop/features.py index ef27224..9cfb4d8 100644 --- a/secop/features.py +++ b/secop/features.py @@ -38,19 +38,8 @@ class HasOffset(Feature): implementation to be done in the subclass """ - offset = PersistentParam('offset (physical value + offset = HW value)', - FloatRange(unit='deg'), readonly=False, default=0) - - def write_offset(self, value): - self.offset = value - if isinstance(self, HasLimits): - self.read_limits() - if isinstance(self, Readable): - self.read_value() - if isinstance(self, Drivable): - self.read_target() - self.saveParameters() - return Done + offset = Parameter('offset (physical value + offset = HW value)', + FloatRange(unit='$'), readonly=False, default=0) class HasLimits(Feature): @@ -61,52 +50,17 @@ class HasLimits(Feature): for a drivable, abslimits is roughly the same as the target datatype limits, except for the offset """ - abslimits = Property('abs limits (raw values)', default=(-9e99, 9e99), extname='abslimits', export=True, - datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg'))) - limits = PersistentParam('user limits', readonly=False, default=(-9e99, 9e99), - datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg'))) - _limits = None - - def apply_offset(self, sign, *values): - if isinstance(self, HasOffset): - return tuple(v + sign * self.offset for v in values) - return values + target_limits = Parameter('user limits for target', readonly=False, default=(-9e99, 9e99), + datatype=TupleOf(FloatRange(unit='$'), FloatRange(unit='$'))) def earlyInit(self): super().earlyInit() - # make limits valid - _limits = self.apply_offset(1, *self.limits) - self._limits = tuple(clamp(self.abslimits[0], v, self.abslimits[1]) for v in _limits) - self.read_limits() - - def checkProperties(self): - pname = 'target' if isinstance(self, Drivable) else 'value' - dt = self.parameters[pname].datatype - min_, max_ = self.abslimits - t_min, t_max = self.apply_offset(1, dt.min, dt.max) - if t_min > max_ or t_max < min_: - raise ConfigError('abslimits not within %s range' % pname) - self.abslimits = clamp(t_min, min_, t_max), clamp(t_min, max_, t_max) - self.parameters['limits'].default = self.abslimits - super().checkProperties() - - def read_limits(self): - return self.apply_offset(-1, *self._limits) - - def write_limits(self, value): - min_, max_ = self.apply_offset(-1, *self.abslimits) - if not min_ <= value[0] <= value[1] <= max_: - if value[0] > value[1]: - raise BadValueError('invalid interval: %r' % value) - print(self.parameters['limits'], value) - raise BadValueError('limits not within abs limits [%g, %g]' % (min_, max_)) - self.limits = value - self.saveParameters() - return Done + dt = self.parameters['target'].datatype + self.target_limits = dt.min, dt.max def check_limits(self, value): """check if value is valid""" - min_, max_ = self.limits + min_, max_ = self.target_limits if not min_ <= value <= max_: raise BadValueError('limits violation: %g outside [%g, %g]' % (value, min_, max_)) From 3ab7eb99abc1c300b58d57febd13b8858de261d5 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 30 Nov 2022 14:14:47 +0100 Subject: [PATCH 03/30] add flamemag / flamedil config --- cfg/main/flamemag.cfg | 166 +++++++++++++ cfg/stick/flamedil.cfg | 146 ++++++++++++ secop_psi/cryoltd.py | 512 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 824 insertions(+) create mode 100644 cfg/main/flamemag.cfg create mode 100644 cfg/stick/flamedil.cfg create mode 100644 secop_psi/cryoltd.py diff --git a/cfg/main/flamemag.cfg b/cfg/main/flamemag.cfg new file mode 100644 index 0000000..4daf145 --- /dev/null +++ b/cfg/main/flamemag.cfg @@ -0,0 +1,166 @@ +[cio] +class = secop_psi.cryoltd.IO +description = 'IO to cryo ltd software' +uri = tcp://flamedil:3128 + +[main] +class = secop_psi.cryoltd.Main +description = master module +io= cio + +[B] +description = 'magnetic field' +class = secop_psi.cryoltd.MainMagfield +channel = Main +constraint = 80000 +target.max = 35000 +hw_units = T +# A_to_G is needed for ramp rate +A_to_G = 285.73 +ramp.max = 412 +overshoot = {'o': 1, 't': 180} +degauss = {'s': 500, 'd': 30, 'f': 5, 't': 120} +tolerance = 5 + +[Bx] +description = 'magnetic field x component' +class = secop_psi.cryoltd.ComponentField +channel = VMX +check_against = B +target.max = 200 +hw_units = A +A_to_G = 4.134 +ramp.max = 23 +tolerance = 1 + +[By] +description = 'magnetic field y component' +class = secop_psi.cryoltd.ComponentField +channel = VMY +check_against = B +target.max = 100 +hw_units = A +A_to_G = 4.1117 +ramp.max = 22.9 +tolerance = 1 + +[Bz] +description = 'magnetic field z component' +class = secop_psi.cryoltd.ComponentField +channel = VMZ +check_against = B +target.max = 100 +hw_units = A +A_to_G = 5.74 +ramp.max = 33.6 +tolerance = 1 + +[compressorA] +description = 'compressor A' +class = secop_psi.cryoltd.Compressor +channel = A + +[compressorB] +description = 'compressor B' +class = secop_psi.cryoltd.Compressor +channel = B + +[T_stage1_A] +class = secop_psi.cryoltd.Temperature +channel = 1st Stage A +main = main + +[T_stage2_A] +class = secop_psi.cryoltd.Temperature +channel = 2nd Stage A +main = main + +[T_stage1_B] +class = secop_psi.cryoltd.Temperature +channel = 1st Stage B +main = main + +[T_stage2_B] +class = secop_psi.cryoltd.Temperature +channel = 2nd Stage B +main = main + +[T_top_A] +class = secop_psi.cryoltd.Temperature +channel = Inner Magnet A (Top) +main = main + +[T_bottom_A] +class = secop_psi.cryoltd.Temperature +channel = Inner Magnet A (Bottom) +main = main + +[T_top_B] +class = secop_psi.cryoltd.Temperature +channel = Inner Magnet B (Top) +main = main + +[T_bottom_B] +class = secop_psi.cryoltd.Temperature +channel = Inner Magnet B (Bottom) +main = main + +[T_Z_shim] +class = secop_psi.cryoltd.Temperature +channel = Z Shim Former +main = main + +[T_XY_shim] +class = secop_psi.cryoltd.Temperature +channel = XY Shim Former +main = main + +[T_XY_vector] +class = secop_psi.cryoltd.Temperature +channel = XY Vector Former +main = main + +[T_radiation_shield] +class = secop_psi.cryoltd.Temperature +channel = Radiation Shield +main = main + +[T_persistent_joints] +class = secop_psi.cryoltd.Temperature +channel = Persistent Joints +main = main + +[T_outer_A] +class = secop_psi.cryoltd.Temperature +channel = Outer Magnet A +main = main + +[T_outer_B] +class = secop_psi.cryoltd.Temperature +channel = Outer Magnet B +main = main + +[T_shim_B] +class = secop_psi.cryoltd.Temperature +channel = Z Shim Former B +main = main + +[T_bore_shield] +class = secop_psi.cryoltd.Temperature +channel = Bore Radiation Shield +main = main + +[T_XYZ_shim] +class = secop_psi.cryoltd.Temperature +channel = XYZ Shim Plate +main = main + +[T_Z_shim_switch] +class = secop_psi.cryoltd.Temperature +channel = Z Shim Switch +main = main + +[T_main_switch] +class = secop_psi.cryoltd.Temperature +channel = Main Coil Switch +main = main diff --git a/cfg/stick/flamedil.cfg b/cfg/stick/flamedil.cfg new file mode 100644 index 0000000..8cbc9bc --- /dev/null +++ b/cfg/stick/flamedil.cfg @@ -0,0 +1,146 @@ +[NODE] +id = triton.psi.ch +description = triton test + +[INTERFACE] +uri = tcp://5000 + +[T_mix] +class = secop_psi.triton.TemperatureLoop +description = mix. chamber temperature +slot = T5 +output_module = htr_mix +io = triton + +[T_sorb] +class = secop_psi.triton.TemperatureSensor +description = sorb temperature +slot = T1 +io = triton + +[T_still] +class = secop_psi.triton.TemperatureSensor +description = still temperature +slot = T4 +io = triton + +[T_hx] +class = secop_psi.triton.TemperatureSensor +description = heat exchanger T +slot = T2 +io = triton + +[T_jtstage] +class = secop_psi.triton.TemperatureSensor +description = jt stage temperature +slot = T3 +io = triton + +[htr_mix] +class = secop_psi.triton.HeaterOutputWithRange +description = mix. chamber heater +slot = H1,T5 +io = triton + +[htr_sorb] +class = secop_psi.triton.HeaterOutput +description = sorb heater +slot = H3 +io = triton + +[htr_still] +class = secop_psi.triton.HeaterOutput +description = still heater +slot = H2 +io = triton + +[action] +class = secop_psi.triton.Action +description = higher level scripts +io = triton +slot = DR + +[p_dump] +class = secop_psi.mercury.PressureSensor +description = dump pressure +slot = P1 +io = triton + +[p_cond] +class = secop_psi.mercury.PressureSensor +description = condenser pressure +slot = P2 +io = triton + +[p_still] +class = secop_psi.mercury.PressureSensor +description = still pressure +slot = P3 +io = triton + +#[p_fore] +#class = secop_psi.mercury.PressureSensor +#description = pressure on the pump side +#slot = P4 +#io = triton + +[p_back] +class = secop_psi.mercury.PressureSensor +description = pressure on the back side of the pump +slot = P5 +io = triton + +[V1] +class = secop_psi.triton.Valve +description = valve V1 +slot = V1 +io = triton + +[V2] +class = secop_psi.triton.Valve +description = valve V2 +slot = V2 +io = triton + +[V4] +class = secop_psi.triton.Valve +description = valve V4 +slot = V4 +io = triton + +[V5] +class = secop_psi.triton.Valve +description = valve V5 +slot = V5 +io = triton + +[V9] +class = secop_psi.triton.Valve +description = valve V9 +slot = V9 +io = triton + +#[turbo] +#class = secop_psi.triton.TurboPump +#description = still turbo pump +#slot = TURB1 +#io = triton + +[fp] +class = secop_psi.triton.Pump +description = still fore pump +slot = FP +io = triton + +[compressor] +class = secop_psi.triton.Pump +description = compressor +slot = COMP +io = triton + +[triton] +class = secop_psi.mercury.IO +description = connection to triton software +uri = tcp://flamedil:33576 +timeout = 9 + diff --git a/secop_psi/cryoltd.py b/secop_psi/cryoltd.py new file mode 100644 index 0000000..4abf29c --- /dev/null +++ b/secop_psi/cryoltd.py @@ -0,0 +1,512 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Markus Zolliker +# ***************************************************************************** + +"""flame magnet using cryogenic limited software suite + +Remarks: for reading, we use the GetAll command, which is quite fast +(3 ms response time). However, as in many such sloppy programmed software +the timing is badly handled, as after changing parameters, the readback values +are not yet up to date. We use the array block_until for this purpose: any value +changed from the client is fixed for at least 10 seconds. +""" +import re +import time +from secop.core import HasIO, StringIO, Readable, Drivable, Parameter, Command, \ + Module, Property, Attached, Enum, IDLE, BUSY, ERROR +from secop.features import HasLimits +from secop.errors import ConfigError, BadValueError, HardwareError +from secop.datatypes import FloatRange, StringType, EnumType, StructOf, OrType + +# floating point value followed with unit +VALUE_UNIT = re.compile(r'([-0-9.E]*\d|inf)([A-Za-z/%]*)$') + + +def as_float(value): + """converts string (with unit) to float""" + return float(VALUE_UNIT.match(value).group(1)) + + +BOOL_MAP = {'TRUE': True, 'FALSE': False} + + +def as_bool(value): + return BOOL_MAP[value] + + +def as_string(value): + return value + + +class Mapped: + def __init__(self, **kwds): + self.mapping = kwds + self.mapping.update({v: k for k, v in kwds.items()}) + + def __call__(self, value): + return self.mapping[value] + + +class IO(StringIO): + identification = [('Get:Remote:Remote_Ready', 'Remote_Ready RECEIVED: TRUE')] + end_of_line = (b'\n', b'\r\n') + timeout = 15 + + +class Main(HasIO, Module): + pollinterval = Parameter('main poll interval', FloatRange(0.001), default=1) + export = False + params_map = None + triggers = None + initpolls = None + ioClass = IO + + def register_module(self, obj, **params): + """register a channel + + :param obj: the remote object + :param **params: + pname= or pname=(, convert function) + the convert function is as_float by default + """ + if self.params_map is None: + self.params_map = {} + self.triggers = set() + obj.block_until = {} + if hasattr(obj, 'trigger_update'): + self.triggers.add(obj.trigger_update) + for pname, value in params.items(): + if isinstance(value, str): + key, cvt = value, as_float + else: + key, cvt = value + self.params_map[key.replace('', obj.channel)] = obj, pname, cvt + + def doPoll(self): + # format of reply: + # "key1:value1;key2:value2;" + reply = self.communicate('GetAll').split('RECEIVED ', 1)[1].split(';') + missing = None, None, None + for line in reply: + try: + key, value = line.split(':', 1) + except ValueError: # missing ':' + if line: + pass + # ignore multiline values + # if needed, we may collect here and treat with a special key + continue + obj, pname, cvt = self.params_map.get(key, missing) + if obj: + if not hasattr(obj, pname): + raise ConfigError('%s has no attribute %s' % (obj.name, pname)) + if time.time() > obj.block_until.get(pname, 0): + setattr(obj, pname, cvt(value)) + for trigger in self.triggers: # do trigger after updates + trigger() + + def communicate(self, cmd): + return self.io.communicate(cmd) + + +class Channel: + main = Attached(Main, default='main') + channel = Property('channel name', StringType()) + pollinterval = Parameter(export=False) + block_until = None + + def sendcmd(self, cmd): + cmd = cmd.replace('', self.channel) + reply = self.main.communicate(cmd) + if not reply.startswith(cmd): + print('MISMATCH', cmd, reply) + + def block(self, pname, value=None): + self.block_until[pname] = time.time() + 10 + if value is not None: + setattr(self, pname, value) + + def doPoll(self): + """poll is done by main module""" + + +class Temperature(Channel, Readable): + channel = Property('channel name as in reply to GetAll', StringType()) + value = Parameter('T sensor value', FloatRange(0, unit='K')) + description = '' # by default take description from channel name + + KEYS = { + '1st Stage A', + '2nd Stage A', + '1st Stage B', + '2nd Stage B', + 'Inner Magnet A (Top)', + 'Inner Magnet A (Bottom)', + 'Z Shim Former', + 'XY Shim Former', + 'XY Vector Former', + 'Radiation Shield', + 'Persistent Joints', + 'Outer Magnet A', + 'Inner Magnet B (Top)', + 'Inner Magnet B (Bottom)', + 'Z Shim Former B', + 'Outer Magnet B', + 'Bore Radiation Shield', + 'XYZ Shim Plate', + 'Z Shim Switch', + 'Main Coil Switch', + } + + def initModule(self): + super().initModule() + if not self.description: + self.description = self.channel + if self.channel not in self.KEYS: + raise ConfigError('channel (%s) must be one of %r' % (self.channel, self.KEYS)) + self.main.register_module(self, value=self.channel) + + +class Magfield(HasLimits, Channel, Drivable): + _status_text = '' + _ready_text = '' + _error_text = '' + _last_error = '' + _rate_units = '' + _next_target = None + _last_target = None + hw_units = Property('hardware units: A or T', EnumType(A=0, T=1)) + A_to_G = Property('A_to_G = "Gauss Value / Amps Value"', FloatRange(0)) + tolerance = Parameter('tolerance', FloatRange(0), readonly=False, default=1) + + def earlyInit(self): + super().earlyInit() + dt = self.parameters['target'].datatype + if dt.min < 1e-99: # make limits symmetric + dt.min = - dt.max + min_, max_ = self.target_limits + self.target_limits = [max(min_, dt.min), max_] + dt = self.parameters['ramp'].datatype + if self.ramp == 0: # unconfigured: take max. + self.ramp = dt.max + + def to_gauss(self, value): + value, unit = VALUE_UNIT.match(value).groups() + if unit == 'T': + return float(value) * 10000 + if unit == 'A': + return float(value) * self.A_to_G + raise HardwareError('received unknown unit: %s' % unit) + + def to_gauss_min(self, value): + value, unit = VALUE_UNIT.match(value).groups() + if unit == 'A/s': + return float(value) * self.A_to_G * 60.0 + if unit == 'T/s': + return float(value) * 10000 * 60 + if unit == 'T/min': + return float(value) * 10000 + if unit == 'T/h': + return float(value) * 10000 / 60.0 + raise HardwareError('received unknown unit: %s' % unit) + + def initModule(self): + super().initModule() + self.main.register_module( + self, + value=('_Field', self.to_gauss), + _status_text=('_Status', str), + _ready_text=('_Ready', str), + _error_text=('_Error', self.cvt_error), + _rate_units=('_Rate Units', str), + current=('_PSU Output', self.to_gauss), + voltage='_Voltage', + working_ramp=('_Ramp Rate', self.to_gauss_min), + setpoint=('_Setpoint', self.to_gauss), + switch_heater=('_Heater', self.cvt_switch_heater), + mode=('_Persistent Mode', self.cvt_mode), + approach_mode=('_Approach', self.cvt_approach_mode), + ) + + def cvt_error(self, text): + if text != self._last_error: + self._last_error = text + return text + return self._error_text + + def trigger_update(self): + # called after treating result of GetAll message + if self._error_text: + status = ERROR, '%s while %s' % (self._error_text, self._status_text) + elif self._ready_text == 'TRUE': + with self.accessLock: # must not be in parallel with write_target + target = self._next_target + if target is not None: # target change pending + if target == self._last_target and abs(self.value - target) <= self.tolerance: + # we are already there + self._last_target = None + status = IDLE, self._status_text + else: + if self.hw_units == 'A': + self.sendcmd('Set::Sweep %gA' % (target / self.A_to_G)) + else: + self.sendcmd('Set::Sweep %gT' % (target / 10000)) + self._next_target = None + self._last_target = target + status = BUSY, 'changed target' + else: + status = IDLE, self._status_text + elif self._next_target is None: + txt = self._status_text + if txt.startswith('Ramping Magnet'): + if txt.endswith(': ') or ' 1 seconds' in txt: + txt = 'stabilizing' + else: + txt = 'ramping' + status = BUSY, txt + else: + return # do not change status when aborting + self.status = status + + value = Parameter('magnetic field in the coil', FloatRange(unit='G')) + + setpoint = Parameter('setpoint', FloatRange(unit='G'), default=0) + ramp = Parameter('ramp rate', FloatRange(0, unit='$/min'), default=0, readonly=False) + + def write_ramp(self, ramp): + if self._rate_units != 'A/s': + self.sendcmd('Set::ChangeRateUnits A/s') + self.sendcmd('Set::SetRate %g' % (ramp / self.A_to_G / 60.0)) + return ramp + + def write_target(self, target): + self.reset_error() + self.check_limits(target) + self.write_ramp(self.ramp) + if self.approach_mode == self.approach_mode.OVERSHOOT: + o = self.overshoot['o'] + if (target - self.value) * o < 0: + self.write_overshoot(dict(self.overshoot, o=-o)) + self.block('_error_text', '') + if self._ready_text == 'FALSE': + if target != self._last_target or abs(self.value - target) > self.tolerance: + self.status = BUSY, 'aborting' + self.sendcmd('Set::Abort') + self._next_target = target + else: + self._next_target = target + self.trigger_update() # update status + return target + + working_ramp = Parameter('actual ramp rate', FloatRange(0, unit='$/min')) + + Mode = Enum( + # DISABLED=0, + PERSISTENT=30, + SEMIPERSISTENT=31, + DRIVEN=50, + ) + mode = Parameter('persistent mode', EnumType(Mode), readonly=False, default=30) + mode_map = Mapped(DRIVEN=0, PERSISTENT=1, SEMIPERSISTENT=2) + + def write_mode(self, value): + code = self.mode_map(value) + self.sendcmd('Set::SetPM %d' % code) + self.block('mode') + return value + + @staticmethod + def cvt_mode(text): + text = text.lower() + if 'off' in text: + if '0' in text: + return 30 + return 31 + return 50 + + ApproachMode = Enum( + DIRECT=0, + OVERSHOOT=1, + CYCLING=2, + DEGAUSSING=3, + ) + approach_mode = Parameter('approach mode', EnumType(ApproachMode), readonly=False, + group='approach_settings', default=0) + + def write_approach_mode(self, value): + self.sendcmd('Set::SetApproach %d' % value) + self.block('approach_mode') + return value + + @classmethod + def cvt_approach_mode(cls, text): + return cls.ApproachMode(text.upper()) + + overshoot = Parameter('overshoot [%] and hold time [s]', + StructOf(o=FloatRange(-100, 100, unit='%'), t=FloatRange(0, unit='s')), + readonly=False, default=dict(o=0, t=0), + group='approach_settings') + + def write_overshoot(self, value): + self.sendcmd('Set::SetOvershoot %g,%g' % (value['o'], value['t'])) + return value + + cycle = Parameter('start value, damping factor, final value, hold time', + StructOf(s=FloatRange(-100, 100, unit='%'), + d=FloatRange(0, 100, unit='%'), + a=FloatRange(0, 100, unit='G'), + t=FloatRange(0, unit='s')), + readonly=False, default=dict(s=0, d=0, a=0, t=0), + group='approach_settings') + + def write_cycle(self, value): + self.sendcmd('Set::SetCycling %g,%g,%g,%g' % + (value['s'], value['d'], value['a'] * 1e-4, value['t'])) + return value + + degauss = Parameter('start value [G], damping factor [%], accuracy [G], hold time [s]', + StructOf(s=FloatRange(-10000, 10000, unit='G'), + d=FloatRange(0, 100, unit='%'), + f=FloatRange(0, 10000, unit='G'), + t=FloatRange(0, unit='s')), + readonly=False, default=dict(s=0, d=0, f=0, t=0), + group='approach_settings') + + def write_degauss(self, value): + self.sendcmd('Set::SetDegaussing %g,%g,%g,%g' % + (value['s'] * 1e-4, value['d'], value['f'] * 1e-4, value['t'])) + return value + + current = Parameter( + 'leads current (in units of field)', FloatRange(unit='$')) + voltage = Parameter( + 'voltage over leads', FloatRange(unit='V')) + switch_heater = Parameter( + 'voltage over leads', EnumType(OFF=0, ON=1)) + + @staticmethod + def cvt_switch_heater(text): + return 'ON' in text + + @Command() + def stop(self): + self.sendcmd('Set::Abort') + + @Command() + def reset_quench(self): + """reset quench condition""" + self.sendcmd('Set::ResetQuench') + + @Command() + def reset_error(self): + """reset error""" + self._error_text = '' + + +class MainMagfield(Magfield): + checked_modules = None + + def earlyInit(self): + super().earlyInit() + self.checked_modules = [] + + # TODO: turn into a property + constraint = Parameter('product check', FloatRange(unit='G^2'), default=80000) + + def check_combined(self, obj, value, main_target): + sumvalue2 = sum((max(o.value ** 2, value ** 2 if o == obj else 0) + for o in self.checked_modules)) + if sumvalue2 * max(self.value ** 2, main_target) > self.constraint ** 2: + raise BadValueError('outside constraint (B * Bxyz > %g G^2' * self.constraint) + + def check_limits(self, value): + super().check_limits(value) + self.check_combined(None, 0, value) + + +class ComponentField(Magfield): + check_against = Attached(MainMagfield) + + def initModule(self): + super().initModule() + self.check_against.checked_modules.append(self) + + def check_limits(self, value): + super().check_limits(value) + self.check_against.check_combined(self, value, 0) + + +class Compressor(Channel, Drivable): + def initModule(self): + super().initModule() + self.main.register_module( + self, + value=('Compressor_Status', self.cvt_value), + _ready_text=('Compressor_Ready', str), + _error_text=('Compressor_Error', str), + run_time='Compressor_RunTime', + ) + # TODO: what is Compressor_Error? (without A or B) + + value = Parameter('compressor switch', EnumType(OFF=0, ON=1)) + run_time = Parameter('run time', FloatRange(0, unit='h')) + + _status_text = '' + _ready_text = '' + _error_text = '' + + def cvt_value(self, text): + self._status_text = text + value = text == 'Running' + if time.time() > self.block_until.get('target', 0): + self.target = value + return value + + def read_value(self): + return self._status_text == 'Running' + + def read_status(self): + if self.target != self.value: + return BUSY, 'switching %s' % self.target.name + # TODO: find out possible status texts + if self._ready_text == 'TRUE': + return IDLE, 'ready' + if self._error_text: + return ERROR, self._error_text + return IDLE, self._status_text + + target = Parameter('compressor switch', EnumType(OFF=0, ON=1)) + + def write_target(self, value): + if value: + self.sendcmd('SetCompressor:Start ') + else: + self.sendcmd('SetCompressor:Stop ') + self.block('target') + self.read_status() + return value + + @Command() + def reset_error(self): + """reset error""" + self.sendcmd('Set:Compressor:Reset ') + self._error_text = '' + + + From e4c1f35e4a8589e8cb62b3aee71839c29692e3ec Mon Sep 17 00:00:00 2001 From: l_samenv Date: Fri, 2 Dec 2022 08:54:26 +0100 Subject: [PATCH 04/30] add attocube --- secop_psi/attocube.py | 243 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 secop_psi/attocube.py diff --git a/secop_psi/attocube.py b/secop_psi/attocube.py new file mode 100644 index 0000000..2959827 --- /dev/null +++ b/secop_psi/attocube.py @@ -0,0 +1,243 @@ +# ***************************************************************************** +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Markus Zolliker +# ***************************************************************************** + +import sys +import time +from secop.core import Drivable, Parameter, Command, Property, ERROR, BUSY, IDLE, Done, nopoll +from secop.features import HasLimits +from secop.datatypes import IntRange, FloatRange, StringType, BoolType +from secop.errors import ConfigError, BadValueError +sys.path.append('/home/l_samenv/Documents/anc350/Linux64/userlib/lib') +from PyANC350v4 import Positioner + + +DIRECTION_NAME = {1: 'forward', -1: 'backward'} + + +class FreezeStatus: + """freeze status for some time + + hardware quite often does not treat status correctly: on a target change it + may take some time to return the 'busy' status correctly. + + in classes with this mixin, within :meth:`write_target` call + + self.freeze_status(0.5, BUSY, 'changed target') + + a wrapper around read_status will take care that the status will be the given value, + for at least the given delay. This does NOT cover the case when self.status is set + directly from an other method. + """ + __freeze_status_until = 0 + + def __init_subclass__(cls): + def wrapped(self, inner=cls.read_status): + if time.time() < self.__freeze_status_until: + return Done + return inner(self) + + cls.read_status = wrapped + super().__init_subclass__() + + def freeze_status(self, delay, code=BUSY, text='changed target'): + """freezze status to the given value for the given delay""" + self.__freeze_status_until = time.time() + delay + self.status = code, text + + +class Axis(HasLimits, FreezeStatus, Drivable): + axis = Property('axis number', IntRange(0, 2), 0) + value = Parameter('axis position', FloatRange(unit='deg')) + frequency = Parameter('frequency', FloatRange(1, unit='Hz'), readonly=False) + amplitude = Parameter('amplitude', FloatRange(0, unit='V'), readonly=False) + gear = Parameter('gear factor', FloatRange(), readonly=False, default=1, initwrite=True) + tolerance = Parameter('positioning tolerance', FloatRange(0, unit='$'), readonly=False, default=0.01) + output = Parameter('enable output', BoolType(), readonly=False) + info = Parameter('axis info', StringType()) + statusbits = Parameter('status bits', StringType()) + + _hw = Positioner() + _scale = 1 # scale for custom units + _move_steps = 0 # number of steps to move (used by move command) + SCALES = {'deg': 1, 'm': 1, 'mm': 1000, 'um': 1000000, 'µm': 1000000} + _direction = 1 # move direction + _idle_status = IDLE, '' + _error_state = '' # empty string: no error + _history = None + _check_sensor = False + _try_count = 0 + + def __init__(self, name, logger, opts, srv): + unit = opts.pop('unit', 'deg') + opts['value.unit'] = unit + try: + self._scale = self.SCALES[unit] * opts.get('gear', 1) + except KeyError as e: + print(repr(e)) + raise ConfigError('unsupported unit: %s' % unit) + super().__init__(name, logger, opts, srv) + + def write_gear(self, value): + self._scale = self.SCALES[self.parameters['value'].datatype.unit] * self.gear + return value + + def startModule(self, start_events): + super().startModule(start_events) + start_events.queue(self.read_info) + + def check_value(self, value): + """check if value allows moving in current driection""" + if self._direction > 0: + if value > self.target_limits[1]: + raise BadValueError('above upper limit') + elif value < self.target_limits[0]: + raise BadValueError('below lower limit') + + def read_value(self): + pos = self._hw.getPosition(self.axis) * self._scale + if self.isBusy(): + try: + self.check_value(pos) + except BadValueError as e: + self._stop() + self._idle_status = ERROR, str(e) + return pos + + def read_frequency(self): + return self._hw.getFrequency(self.axis) + + def write_frequency(self, value): + self._hw.setFrequency(self.axis, value) + return self._hw.getFrequency(self.axis) + + def read_amplitude(self): + return self._hw.getAmplitude(self.axis) + + def write_amplitude(self, value): + self._hw.setAmplitude(self.axis, value) + return self._hw.getAmplitude(self.axis) + + def write_tolerance(self, value): + self._hw.setTargetRange(self.axis, value / self._scale) + return value + + def write_output(self, value): + self._hw.setAxisOutput(self.axis, enable=value, autoDisable=0) + + def read_status(self): + statusbits = self._hw.getAxisStatus(self.axis) + sensor, self.output, moving, attarget, eot_fwd, eot_bwd, sensor_error = statusbits + self.statusbits = ''.join((k for k, v in zip('SOMTFBE', statusbits) if v)) + if self._move_steps: + if not (eot_fwd or eot_bwd): + return BUSY, 'moving by steps' + if not sensor: + self._error_state = 'no sensor connected' + elif sensor_error: + self._error_state = 'sensor error' + elif eot_fwd: + self._error_state = 'end of travel forward' + elif eot_bwd: + self._error_state = 'end of travel backward' + else: + if self._error_state and not DIRECTION_NAME[self._direction] in self._error_state: + self._error_state = '' + status_text = 'moving' if self._try_count == 0 else 'moving (retry %d)' % self._try_count + if moving and self._history is not None: # history None: moving by steps + self._history.append(self.value) + if len(self._history) < 5: + return BUSY, status_text + beg = self._history.pop(0) + if abs(beg - self.target) < self.tolerance: + # reset normal tolerance + self._hw.setTargetRange(self.axis, self.tolerance / self._scale) + if (self.value - beg) * self._direction > 0: + return BUSY, status_text + self._idle_status = ERROR, 'no progress' + if self._error_state: + self._try_count += 1 + if self._try_count < 10 and self._history is not None: + self.write_target(self.target) + return Done + self._idle_status = ERROR, self._error_state + if self.status[0] != IDLE: + self._stop() + return self._idle_status + + def write_target(self, value): + if value == self.read_value(): + return value + self.check_limits(value) + self._try_count = 0 + self._direction = 1 if value > self.value else -1 + # if self._error_state and DIRECTION_NAME[-self._direction] not in self._error_state: + # raise BadValueError('can not move (%s)' % self._error_state) + self._move_steps = 0 + self.write_output(1) + # try first with 50 % of tolerance + self._hw.setTargetRange(self.axis, self.tolerance * 0.5 / self._scale) + self._hw.setTargetPosition(self.axis, value / self._scale) + self._hw.startAutoMove(self.axis, enable=1, relative=0) + self._history = [self.value] + self._idle_status = IDLE, '' + self.freeze_status(1, BUSY, 'changed target') + self.setFastPoll(True, 1) + return value + + def doPoll(self): + if self._move_steps == 0: + super().doPoll() + return + self._hw.startSingleStep(self.axis, self._direction < 0) + self._move_steps -= self._direction + if self._move_steps % int(self.frequency) == 0: # poll value and status every second + super().doPoll() + + @nopoll + def read_info(self): + """read info from controller""" + cap = self._hw.measureCapacitance(self.axis) * 1e9 + axistype = ['linear', 'gonio', 'rotator'][self._hw.getActuatorType(self.axis)] + return '%s %s %.3gnF' % (self._hw.getActuatorName(self.axis), axistype, cap) + + def _stop(self): + self._move_steps = 0 + self._history = None + self._hw.startAutoMove(self.axis, enable=0, relative=0) + self._hw.setTargetRange(self.axis, self.tolerance / self._scale) + self.setFastPoll(False) + + @Command() + def stop(self): + self._idle_status = IDLE, 'stopped' if self.isBusy() else '' + self._stop() + self.status = self._idle_status + + @Command(IntRange()) + def move(self, value): + """relative move by number of steps""" + self._direction = 1 if value > 0 else -1 + self.check_value(self.value) + self._history = None + if DIRECTION_NAME[self._direction] in self._error_state: + raise BadValueError('can not move (%s)' % self._error_state) + self._move_steps = value + self._idle_status = IDLE, '' + self.read_status() + self.setFastPoll(True, 1/self.frequency) From d71a512454e889bb4941462e0fb1c2ce59346894 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Fri, 2 Dec 2022 09:07:20 +0100 Subject: [PATCH 05/30] new features HasTargetLimits and HasSimpleOffset according to standard --- secop/features.py | 168 ++++++++-------------------------------------- 1 file changed, 29 insertions(+), 139 deletions(-) diff --git a/secop/features.py b/secop/features.py index ef27224..fd21288 100644 --- a/secop/features.py +++ b/secop/features.py @@ -31,7 +31,32 @@ from secop.errors import BadValueError, ConfigError from secop.lib import clamp -# --- proposals, to be used at SINQ (not agreed as standard yet) --- +class HasSimpleOffset(Feature): + """has a client side offset parameter + + this is just a storage! + """ + offset = PersistentParam('offset (physical value + offset = HW value)', + FloatRange(unit='deg'), readonly=False, default=0) + + +class HasTargetLimits(Feature): + """user limits + + implementation to be done in the subclass + according to standard + """ + target_limits = PersistentParam('user limits', readonly=False, default=(-9e99, 9e99), + datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg'))) + + def check_limits(self, value): + """check if value is valid""" + min_, max_ = self.target_limits + if not min_ <= value <= max_: + raise BadValueError('limits violation: %g outside [%g, %g]' % (value, min_, max_)) + + +# --- legacy mixins, not agreed as standard --- class HasOffset(Feature): """has an offset parameter @@ -39,7 +64,7 @@ class HasOffset(Feature): implementation to be done in the subclass """ offset = PersistentParam('offset (physical value + offset = HW value)', - FloatRange(unit='deg'), readonly=False, default=0) + FloatRange(unit='$'), readonly=False, default=0) def write_offset(self, value): self.offset = value @@ -62,9 +87,9 @@ class HasLimits(Feature): except for the offset """ abslimits = Property('abs limits (raw values)', default=(-9e99, 9e99), extname='abslimits', export=True, - datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg'))) + datatype=TupleOf(FloatRange(unit='$'), FloatRange(unit='$'))) limits = PersistentParam('user limits', readonly=False, default=(-9e99, 9e99), - datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg'))) + datatype=TupleOf(FloatRange(unit='$'), FloatRange(unit='$'))) _limits = None def apply_offset(self, sign, *values): @@ -110,138 +135,3 @@ class HasLimits(Feature): if not min_ <= value <= max_: raise BadValueError('limits violation: %g outside [%g, %g]' % (value, min_, max_)) - -# --- not used, not tested yet --- - -class HAS_PID(Feature): - # note: implementors should either use p,i,d or pid, but ECS must be handle both cases - # note: if both p,i,d and pid are implemented, it MUST NOT matter which one gets a change, the final result should be the same - # note: if there are additional custom accessibles with the same name as an element of the struct, the above applies - # note: (i would still but them in the same group, though) - # note: if extra elements are implemented in the pid struct they MUST BE - # properly described in the description of the pid Parameter - - # parameters - use_pid = Parameter('use the pid mode', datatype=EnumType(openloop=0, pid_control=1), ) - # pylint: disable=invalid-name - p = Parameter('proportional part of the regulation', datatype=FloatRange(0), ) - i = Parameter('(optional) integral part', datatype=FloatRange(0), optional=True) - d = Parameter('(optional) derivative part', datatype=FloatRange(0), optional=True) - base_output = Parameter('(optional) minimum output value', datatype=FloatRange(0), optional=True) - pid = Parameter('(optional) Struct of p,i,d, minimum output value', - datatype=StructOf(p=FloatRange(0), - i=FloatRange(0), - d=FloatRange(0), - base_output=FloatRange(0), - ), optional=True, - ) # note: struct may be extended with custom elements (names should be prefixed with '_') - output = Parameter('(optional) output of pid-control', datatype=FloatRange(0), optional=True, readonly=False) - - -class Has_PIDTable(HAS_PID): - - # parameters - use_pidtable = Parameter('use the zoning mode', datatype=EnumType(fixed_pid=0, zone_mode=1)) - pidtable = Parameter('Table of pid-values vs. target temperature', datatype=ArrayOf(TupleOf(FloatRange(0), - StructOf(p=FloatRange(0), - i=FloatRange(0), - d=FloatRange(0), - _heater_range=FloatRange(0), - _base_output=FloatRange(0),),),), optional=True) # struct may include 'heaterrange' - - -class HAS_Persistent(Feature): - #extra_Status { - # 'decoupled' : Status.IDLE+1, # to be discussed. - # 'coupling' : Status.BUSY+1, # to be discussed. - # 'coupled' : Status.BUSY+2, # to be discussed. - # 'decoupling' : Status.BUSY+3, # to be discussed. - #} - - # parameters - persistent_mode = Parameter('Use persistent mode', - datatype=EnumType(off=0,on=1), - default=0, readonly=False) - is_persistent = Parameter('current state of persistence', - datatype=BoolType(), optional=True) - # stored_value = Parameter('current persistence value, often used as the modules value', - # datatype='main', unit='$', optional=True) - # driven_value = Parameter('driven value (outside value, syncs with stored_value if non-persistent)', - # datatype='main', unit='$' ) - - -class HAS_Tolerance(Feature): - # detects IDLE status by checking if the value lies in a given window: - # tolerance is the maximum allowed deviation from target, value must lie in this interval - # for at least ´timewindow´ seconds. - - # parameters - tolerance = Parameter('Half height of the Window', - datatype=FloatRange(0), default=1, unit='$') - timewindow = Parameter('Length of the timewindow to check', - datatype=FloatRange(0), default=30, unit='s', - optional=True) - - -class HAS_Timeout(Feature): - - # parameters - timeout = Parameter('timeout for movement', - datatype=FloatRange(0), default=0, unit='s') - - -class HAS_Pause(Feature): - # just a proposal, can't agree on it.... - - @Command(argument=None, result=None) - def pause(self): - """pauses movement""" - - @Command(argument=None, result=None) - def go(self): - """continues movement or start a new one if target was change since the last pause""" - - -class HAS_Ramp(Feature): - - # parameters - ramp =Parameter('speed of movement', unit='$/min', - datatype=FloatRange(0)) - use_ramp = Parameter('use the ramping of the setpoint, or jump', - datatype=EnumType(disable_ramp=0, use_ramp=1), - optional=True) - setpoint = Parameter('currently active setpoint', - datatype=FloatRange(0), unit='$', - readonly=True, ) - - -class HAS_Speed(Feature): - - # parameters - speed = Parameter('(maximum) speed of movement (of the main value)', - unit='$/s', datatype=FloatRange(0)) - - -class HAS_Accel(HAS_Speed): - - # parameters - accel = Parameter('acceleration of movement', unit='$/s^2', - datatype=FloatRange(0)) - decel = Parameter('deceleration of movement', unit='$/s^2', - datatype=FloatRange(0), optional=True) - - -class HAS_MotorCurrents(Feature): - - # parameters - movecurrent = Parameter('Current while moving', - datatype=FloatRange(0)) - idlecurrent = Parameter('Current while idle', - datatype=FloatRange(0), optional=True) - - -class HAS_Curve(Feature): - # proposed, not yet agreed upon! - - # parameters - curve = Parameter('Calibration curve', datatype=StringType(), default='') From 3483c3374d9670d8f66e228e98ab886dc0b6ba61 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Fri, 2 Dec 2022 09:10:07 +0100 Subject: [PATCH 06/30] allow pollinterval = 0 --- secop/modules.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/secop/modules.py b/secop/modules.py index 78f5b13..5d52955 100644 --- a/secop/modules.py +++ b/secop/modules.py @@ -722,7 +722,10 @@ class Module(HasAccessibles): for mobj in modules: pinfo = mobj.pollInfo if now > pinfo.last_main + pinfo.interval: - pinfo.last_main = (now // pinfo.interval) * pinfo.interval + if pinfo.interval: + pinfo.last_main = (now // pinfo.interval) * pinfo.interval + else: + pinfo.last_main = now mobj.callPollFunc(mobj.doPoll) now = time.time() # find ONE due slow poll and call it From e668b6a439725fd809e3c8f579c3382e3c1932e6 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Fri, 2 Dec 2022 09:12:51 +0100 Subject: [PATCH 07/30] attocube: add offset and change to HasTargetLimits --- secop_psi/attocube.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/secop_psi/attocube.py b/secop_psi/attocube.py index 2959827..ee6a9a5 100644 --- a/secop_psi/attocube.py +++ b/secop_psi/attocube.py @@ -20,7 +20,7 @@ import sys import time from secop.core import Drivable, Parameter, Command, Property, ERROR, BUSY, IDLE, Done, nopoll -from secop.features import HasLimits +from secop.features import HasTargetLimits, HasSimpleOffset from secop.datatypes import IntRange, FloatRange, StringType, BoolType from secop.errors import ConfigError, BadValueError sys.path.append('/home/l_samenv/Documents/anc350/Linux64/userlib/lib') @@ -61,7 +61,7 @@ class FreezeStatus: self.status = code, text -class Axis(HasLimits, FreezeStatus, Drivable): +class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): axis = Property('axis number', IntRange(0, 2), 0) value = Parameter('axis position', FloatRange(unit='deg')) frequency = Parameter('frequency', FloatRange(1, unit='Hz'), readonly=False) From a0d14c30beb37c78c60155447435dcf03ec89dd5 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Fri, 2 Dec 2022 10:37:45 +0100 Subject: [PATCH 08/30] attocube: more robust moving - try up to 10 times when end of travel or no more progress - issue WARN instead of ERROR when moving did not work --- secop_psi/attocube.py | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/secop_psi/attocube.py b/secop_psi/attocube.py index ee6a9a5..d85d8c4 100644 --- a/secop_psi/attocube.py +++ b/secop_psi/attocube.py @@ -19,7 +19,7 @@ import sys import time -from secop.core import Drivable, Parameter, Command, Property, ERROR, BUSY, IDLE, Done, nopoll +from secop.core import Drivable, Parameter, Command, Property, ERROR, WARN, BUSY, IDLE, Done, nopoll from secop.features import HasTargetLimits, HasSimpleOffset from secop.datatypes import IntRange, FloatRange, StringType, BoolType from secop.errors import ConfigError, BadValueError @@ -61,7 +61,7 @@ class FreezeStatus: self.status = code, text -class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): +class Axis(HasTargetLimits, FreezeStatus, Drivable): axis = Property('axis number', IntRange(0, 2), 0) value = Parameter('axis position', FloatRange(unit='deg')) frequency = Parameter('frequency', FloatRange(1, unit='Hz'), readonly=False) @@ -89,7 +89,6 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): try: self._scale = self.SCALES[unit] * opts.get('gear', 1) except KeyError as e: - print(repr(e)) raise ConfigError('unsupported unit: %s' % unit) super().__init__(name, logger, opts, srv) @@ -102,7 +101,7 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): start_events.queue(self.read_info) def check_value(self, value): - """check if value allows moving in current driection""" + """check if value allows moving in current direction""" if self._direction > 0: if value > self.target_limits[1]: raise BadValueError('above upper limit') @@ -139,6 +138,7 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): def write_output(self, value): self._hw.setAxisOutput(self.axis, enable=value, autoDisable=0) + return value def read_status(self): statusbits = self._hw.getAxisStatus(self.axis) @@ -166,16 +166,24 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): beg = self._history.pop(0) if abs(beg - self.target) < self.tolerance: # reset normal tolerance - self._hw.setTargetRange(self.axis, self.tolerance / self._scale) + self._stop() + self._idle_status = IDLE, 'in tolerance' + return self._idle_status + # self._hw.setTargetRange(self.axis, self.tolerance / self._scale) if (self.value - beg) * self._direction > 0: return BUSY, status_text - self._idle_status = ERROR, 'no progress' + self._try_count += 1 + if self._try_count < 10: + self.log.warn('no progress retry %d', self._try_count) + return BUSY, status_text + self._idle_status = WARN, 'no progress' if self._error_state: self._try_count += 1 if self._try_count < 10 and self._history is not None: + self.log.warn('end of travel retry %d', self._try_count) self.write_target(self.target) return Done - self._idle_status = ERROR, self._error_state + self._idle_status = WARN, self._error_state if self.status[0] != IDLE: self._stop() return self._idle_status @@ -192,8 +200,14 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): self.write_output(1) # try first with 50 % of tolerance self._hw.setTargetRange(self.axis, self.tolerance * 0.5 / self._scale) - self._hw.setTargetPosition(self.axis, value / self._scale) - self._hw.startAutoMove(self.axis, enable=1, relative=0) + for itry in range(5): + try: + self._hw.setTargetPosition(self.axis, value / self._scale) + self._hw.startAutoMove(self.axis, enable=1, relative=0) + except Exception as e: + if itry == 4: + raise + self.log.warn('%r', e) self._history = [self.value] self._idle_status = IDLE, '' self.freeze_status(1, BUSY, 'changed target') @@ -219,7 +233,14 @@ class Axis(HasTargetLimits, HasSimpleOffset, FreezeStatus, Drivable): def _stop(self): self._move_steps = 0 self._history = None - self._hw.startAutoMove(self.axis, enable=0, relative=0) + for _ in range(5): + try: + self._hw.startAutoMove(self.axis, enable=0, relative=0) + break + except Exception as e: + if itry == 4: + raise + self.log.warn('%r', e) self._hw.setTargetRange(self.axis, self.tolerance / self._scale) self.setFastPoll(False) From b7a1f17e5ee96d43283743a5c8b56748a038630b Mon Sep 17 00:00:00 2001 From: camea Date: Mon, 19 Dec 2022 15:12:00 +0100 Subject: [PATCH 09/30] fix new statemachine with ips magfield + add on_error, on_restart etc. to states.py + add n_retry argument to mercury change/multichange --- secop/states.py | 22 +++++++- secop_psi/ips_mercury.py | 48 ++++++++++-------- secop_psi/magfield.py | 105 ++++++++++++++++++++++++--------------- secop_psi/mercury.py | 11 ++-- 4 files changed, 119 insertions(+), 67 deletions(-) diff --git a/secop/states.py b/secop/states.py index be63d01..9767920 100644 --- a/secop/states.py +++ b/secop/states.py @@ -118,12 +118,32 @@ class HasStates: self.setFastPoll(False) self.read_status() + def on_cleanup(self, sm): + if isinstance(sm.cleanup_reason, Exception): + return self.on_error(sm) + if isinstance(sm.cleanup_reason, Start): + return self.on_restart(sm) + if isinstance(sm.cleanup_reason, Stop): + return self.on_stop(sm) + self.log.error('bad cleanup reason %r', sm.cleanup_reason) + + def on_error(self, sm): + self.log.error('handle error %r', sm.cleanup_reason) + self.final_status(ERROR, repr(sm.cleanup_reason)) + return None + + def on_restart(self, sm): + return None + + def on_stop(self, sm): + return None + def start_machine(self, statefunc, fast_poll=True, **kwds): sm = self._state_machine sm.status = self.get_status(statefunc, BUSY) if sm.statefunc: sm.status = sm.status[0], 'restarting' - sm.start(statefunc, **kwds) + sm.start(statefunc, cleanup=kwds.pop('cleanup', self.on_cleanup), **kwds) self.read_status() if fast_poll: sm.reset_fast_poll = True diff --git a/secop_psi/ips_mercury.py b/secop_psi/ips_mercury.py index c4fbf75..c245b76 100644 --- a/secop_psi/ips_mercury.py +++ b/secop_psi/ips_mercury.py @@ -26,7 +26,7 @@ from secop.lib.enum import Enum from secop.errors import BadValueError, HardwareError from secop_psi.magfield import Magfield, SimpleMagfield, Status from secop_psi.mercury import MercuryChannel, off_on, Mapped -from secop.lib.statemachine import Retry +from secop.states import Retry Action = Enum(hold=0, run_to_set=1, run_to_zero=2, clamped=3) hold_rtoz_rtos_clmp = Mapped(HOLD=Action.hold, RTOS=Action.run_to_set, @@ -65,6 +65,13 @@ class SimpleField(MercuryChannel, SimpleMagfield): obj = object.__new__(newclass) return obj + def initModule(self): + super().initModule() + try: + self.write_action(Action.hold) + except Exception as e: + self.log.error('can not set to hold %r', e) + def read_value(self): return self.query('PSU:SIG:FLD') @@ -94,12 +101,12 @@ class SimpleField(MercuryChannel, SimpleMagfield): def set_and_go(self, value): self.setpoint = self.change('PSU:SIG:FSET', value) - assert self.write_action('hold') == 'hold' - assert self.write_action('run_to_set') == 'run_to_set' + assert self.write_action(Action.hold) == Action.hold + assert self.write_action(Action.run_to_set) == Action.run_to_set def start_ramp_to_target(self, sm): - # if self.action != 'hold': - # assert self.write_action('hold') == 'hold' + # if self.action != Action.hold: + # assert self.write_action(Action.hold) == Action.hold # return Retry self.set_and_go(sm.target) sm.try_cnt = 5 @@ -116,13 +123,11 @@ class SimpleField(MercuryChannel, SimpleMagfield): return Retry def final_status(self, *args, **kwds): - print('FINAL-hold') - self.write_action('hold') + self.write_action(Action.hold) return super().final_status(*args, **kwds) def on_restart(self, sm): - print('ON_RESTART-hold', sm.sm) - self.write_action('hold') + self.write_action(Action.hold) return super().on_restart(sm) @@ -136,7 +141,7 @@ class Field(SimpleField, Magfield): _field_mismatch = None __init = True - __switch_heater_fix = 0 + __switch_fixed_until = 0 def doPoll(self): super().doPoll() @@ -208,7 +213,8 @@ class Field(SimpleField, Magfield): value = self.query('PSU:SIG:SWHT', off_on) now = time.time() if value != self.switch_heater: - if now < self.__switch_heater_fix: + if now < self.__switch_fixed_until: + self.log.debug('correct fixed switch time') # probably switch heater was changed, but IPS reply is not yet updated if self.switch_heater: self.switch_on_time = time.time() @@ -228,8 +234,10 @@ class Field(SimpleField, Magfield): self.log.info('switch heater already %r', value) # we do not want to restart the timer return value - self.__switch_heater_fix = time.time() + 10 - return self.change('PSU:SIG:SWHT', value, off_on) + self.__switch_fixed_until = time.time() + 10 + self.log.debug('switch time fixed for 10 sec') + result = self.change('PSU:SIG:SWHT', value, off_on, n_retry=0) # no readback check + return result def start_ramp_to_field(self, sm): if abs(self.current - self.persistent_field) <= self.tolerance: @@ -241,9 +249,7 @@ class Field(SimpleField, Magfield): if self.switch_heater: self.log.warn('switch is already on!') return self.ramp_to_field - self.log.warn('wait first for switch off current=%g pf=%g', self.current, self.persistent_field) - return Retry - self.status = Status.PREPARING, 'wait for switch off' + self.log.warn('wait first for switch off current=%g pf=%g %r', self.current, self.persistent_field, e) sm.after_wait = self.ramp_to_field return self.wait_for_switch return self.ramp_to_field @@ -270,7 +276,7 @@ class Field(SimpleField, Magfield): return Retry def wait_for_switch(self, sm): - if not self.delay(10): + if not sm.delta(10): return Retry try: self.log.warn('try again') @@ -282,8 +288,8 @@ class Field(SimpleField, Magfield): def start_ramp_to_zero(self, sm): try: - assert self.write_action('hold') == 'hold' - assert self.write_action('run_to_zero') == 'run_to_zero' + assert self.write_action(Action.hold) == Action.hold + assert self.write_action(Action.run_to_zero) == Action.run_to_zero except (HardwareError, AssertionError) as e: self.log.warn('switch not yet ready %r', e) self.status = Status.PREPARING, 'wait for switch off' @@ -298,6 +304,6 @@ class Field(SimpleField, Magfield): sm.try_cnt -= 1 if sm.try_cnt < 0: raise - assert self.write_action('hold') == 'hold' - assert self.write_action('run_to_zero') == 'run_to_zero' + assert self.write_action(Action.hold) == Action.hold + assert self.write_action(Action.run_to_zero) == Action.run_to_zero return Retry diff --git a/secop_psi/magfield.py b/secop_psi/magfield.py index ee1ac82..2b21687 100644 --- a/secop_psi/magfield.py +++ b/secop_psi/magfield.py @@ -23,9 +23,9 @@ import time from secop.core import Drivable, Parameter, Done, IDLE, BUSY, ERROR from secop.datatypes import FloatRange, EnumType, ArrayOf, TupleOf, StatusType from secop.features import HasLimits -from secop.errors import ConfigError, ProgrammingError, HardwareError +from secop.errors import ConfigError, ProgrammingError, HardwareError, BadValueError from secop.lib.enum import Enum -from secop.states import Retry, HasStates, status_code +from secop.states import Retry, HasStates, status_code, Start UNLIMITED = FloatRange() @@ -157,54 +157,73 @@ class Magfield(SimpleMagfield): ramp_tmo = Parameter( 'timeout for field ramp progress', FloatRange(0, unit='s'), readonly=False, default=30) - __init = True + __init_persistency = True switch_on_time = None switch_off_time = None def doPoll(self): - if self.__init: - self.__init = False - if self.read_switch_heater() and self.mode == Mode.PERSISTENT: - self.read_value() # check for persistent field mismatch - # switch off heater from previous live or manual intervention - self.write_target(self.persistent_field) - else: + if self.__init_persistency: + if self.__init_persistency is True: self._last_target = self.persistent_field - else: - super().doPoll() + self.__init_persistency = time.time() + 60 + self.read_value() # check for persistent field mismatch + elif self.read_switch_heater() and self.mode != Mode.DRIVEN: + if time.time() > self.__init_persistency: + # switch off heater from previous live or manual intervention + self.log.info('fix mode after startup') + self.write_mode(self.mode) + else: + self.__init_persistency = False + super().doPoll() def initModule(self): super().initModule() self.registerCallbacks(self) # for update_switch_heater def write_mode(self, value): - self.start_machine(self.start_field_change, cleanup=self.cleanup, target=self.target, mode=value) + self.__init_persistency = False + target = self.persistent_field + func = self.start_field_change + if value == Mode.DISABLED: + target = 0 + if abs(self.persistent_field) < self.tolerance: + func = self.start_switch_off + elif value == Mode.PERSISTENT: + func = self.start_switch_off + self.start_machine(func, target=target, mode=value) return value def write_target(self, target): + self.__init_persistency = False + if self.mode == Mode.DISABLED: + if target == 0: + return 0 + self.log.info('raise error %r', target) + raise BadValueError('disabled') self.check_limits(target) - self.start_machine(self.start_field_change, cleanup=self.cleanup, target=target, mode=self.mode) + self.start_machine(self.start_field_change, target=target, mode=self.mode) return target - def cleanup(self, sm): # sm is short for statemachine - if self.switch_heater != 0: + def on_error(self, sm): # sm is short for statemachine + if self.switch_heater == ON: self.persistent_field = self.read_value() if sm.mode != Mode.DRIVEN: self.log.warning('turn switch heater off') - self.write_switch_heater(0) + self.write_switch_heater(OFF) + return self.on_error(sm) - @status_code('PREPARING') + @status_code(Status.PREPARING) def start_field_change(self, sm): self.setFastPoll(True, 1.0) if sm.target == self.persistent_field or ( sm.target == self._last_target and abs(sm.target - self.persistent_field) <= self.tolerance): # short cut return self.check_switch_off - if self.switch_heater: + if self.switch_heater == ON: return self.start_switch_on return self.start_ramp_to_field - @status_code('PREPARING') + @status_code(Status.PREPARING) def start_ramp_to_field(self, sm): """start ramping current to persistent field @@ -213,7 +232,7 @@ class Magfield(SimpleMagfield): """ raise NotImplementedError - @status_code('PREPARING', 'ramp leads to match field') + @status_code(Status.PREPARING, 'ramp leads to match field') def ramp_to_field(self, sm): if sm.init: sm.stabilize_start = 0 # in case current is already at field @@ -229,7 +248,7 @@ class Magfield(SimpleMagfield): sm.stabilize_start = sm.now return self.stabilize_current - @status_code('PREPARING') + @status_code(Status.PREPARING) def stabilize_current(self, sm): if sm.now - sm.stabilize_start < self.wait_stable_leads: return Retry @@ -237,7 +256,6 @@ class Magfield(SimpleMagfield): def update_switch_heater(self, value): """is called whenever switch heater was changed""" - print('SW', value) if value == 0: if self.switch_off_time is None: self.log.info('restart switch_off_time') @@ -249,12 +267,12 @@ class Magfield(SimpleMagfield): self.switch_on_time = time.time() self.switch_off_time = None - @status_code('PREPARING') + @status_code(Status.PREPARING) def start_switch_on(self, sm): - if self.read_switch_heater() == 0: + if self.read_switch_heater() == OFF: self.status = Status.PREPARING, 'turn switch heater on' try: - self.write_switch_heater(True) + self.write_switch_heater(ON) except Exception as e: self.log.warning('write_switch_heater %r', e) return Retry @@ -262,13 +280,15 @@ class Magfield(SimpleMagfield): self.status = Status.PREPARING, 'wait for heater on' return self.wait_for_switch_on - @status_code('PREPARING') + @status_code(Status.PREPARING) def wait_for_switch_on(self, sm): if (sm.target == self._last_target and abs(sm.target - self.persistent_field) <= self.tolerance): # short cut return self.check_switch_off self.read_switch_heater() # trigger switch_on/off_time - if self.switch_heater == 0: + if self.switch_heater == OFF: + if sm.init: # avoid too many states chained + return Retry self.log.warning('switch turned off manually?') return self.start_switch_on if sm.now - self.switch_on_time < self.wait_switch_on: @@ -278,7 +298,7 @@ class Magfield(SimpleMagfield): self._last_target = sm.target return self.start_ramp_to_target - @status_code('RAMPING') + @status_code(Status.RAMPING) def start_ramp_to_target(self, sm): """start ramping current to target field @@ -287,7 +307,7 @@ class Magfield(SimpleMagfield): """ raise NotImplementedError - @status_code('RAMPING') + @status_code(Status.RAMPING) def ramp_to_target(self, sm): self.persistent_field = self.value dif = abs(self.value - sm.target) @@ -298,6 +318,7 @@ class Magfield(SimpleMagfield): sm.stabilize_start = sm.now tdif = self.get_progress(sm, self.value) if tdif > self.workingramp / self.tolerance * 60 + self.ramp_tmo: + self.log.warn('no progress') raise HardwareError('no progress') sm.stabilize_start = None return Retry @@ -305,10 +326,10 @@ class Magfield(SimpleMagfield): sm.stabilize_start = sm.now return self.stabilize_field - @status_code('STABILIZING') + @status_code(Status.STABILIZING) def stabilize_field(self, sm): self.persistent_field = self.value - if sm.now > sm.stablize_start + self.wait_stable_field: + if sm.now < sm.stabilize_start + self.wait_stable_field: return Retry return self.check_switch_off @@ -317,17 +338,19 @@ class Magfield(SimpleMagfield): return self.final_status(Status.PREPARED, 'driven') return self.start_switch_off - @status_code('FINALIZING') + @status_code(Status.FINALIZING) def start_switch_off(self, sm): - if self.switch_heater == 1: - self.write_switch_heater(False) + if self.switch_heater == ON: + self.write_switch_heater(OFF) return self.wait_for_switch_off - @status_code('FINALIZING') + @status_code(Status.FINALIZING) def wait_for_switch_off(self, sm): self.persistent_field = self.value self.read_switch_heater() - if self.switch_off_time is None: + if self.switch_heater == ON: + if sm.init: # avoid too many states chained + return Retry self.log.warning('switch turned on manually?') return self.start_switch_off if sm.now - self.switch_off_time < self.wait_switch_off: @@ -336,7 +359,7 @@ class Magfield(SimpleMagfield): return self.final_status(Status.IDLE, 'leads current at field, switch off') return self.start_ramp_to_zero - @status_code('FINALIZING') + @status_code(Status.FINALIZING) def start_ramp_to_zero(self, sm): """start ramping current to zero @@ -345,15 +368,15 @@ class Magfield(SimpleMagfield): """ raise NotImplementedError - @status_code('FINALIZING') + @status_code(Status.FINALIZING) def ramp_to_zero(self, sm): """ramp field to zero""" if sm.init: self.init_progress(sm, self.current) if abs(self.current) > self.tolerance: - if self.get_progress(sm, self.current, self.ramp) > self.leads_ramp_tmo: + if self.get_progress(sm, self.value) > self.leads_ramp_tmo: raise HardwareError('no progress') return Retry - if sm.mode == Mode.DISABLED and self.persistent_field == 0: + if sm.mode == Mode.DISABLED and abs(self.persistent_field) < self.tolerance: return self.final_status(Status.DISABLED, 'disabled') return self.final_status(Status.IDLE, 'persistent mode') diff --git a/secop_psi/mercury.py b/secop_psi/mercury.py index 431d721..839a767 100644 --- a/secop_psi/mercury.py +++ b/secop_psi/mercury.py @@ -123,13 +123,14 @@ class MercuryChannel(HasIO): else: raise HardwareError(msg) from None - def multichange(self, adr, values, convert=as_float, tolerance=0): + def multichange(self, adr, values, convert=as_float, tolerance=0, n_retry=3): """set parameter(s) in mercury syntax :param adr: as in see multiquery method :param values: [(name1, value1), (name2, value2) ...] :param convert: a converter function (converts given value to string and replied string to value) :param tolerance: tolerance for readback check + :param n_retry: number of retries or 0 for no readback check :return: the values as tuple Example: @@ -143,7 +144,7 @@ class MercuryChannel(HasIO): adr = self._complete_adr(adr) params = ['%s:%s' % (k, convert(v)) for k, v in values] cmd = 'SET:%s:%s' % (adr, ':'.join(params)) - for _ in range(3): # try 3 times or until readback result matches + for _ in range(max(1, n_retry)): # try n_retry times or until readback result matches t = time.time() reply = self.communicate(cmd) head = 'STAT:SET:%s:' % adr @@ -158,6 +159,8 @@ class MercuryChannel(HasIO): except (AssertionError, AttributeError, ValueError) as e: time.sleep(0.1) # in case of missed replies this might help to skip garbage raise HardwareError('invalid reply %r to cmd %r' % (reply, cmd)) from e + if n_retry == 0: + return [v[1] for v in values] # no readback check keys = [v[0] for v in values] debug = [] readback = self.multiquery(adr, keys, convert, debug) @@ -182,9 +185,9 @@ class MercuryChannel(HasIO): adr, _, name = adr.rpartition(':') return self.multiquery(adr, [name], convert)[0] - def change(self, adr, value, convert=as_float, tolerance=0): + def change(self, adr, value, convert=as_float, tolerance=0, n_retry=3): adr, _, name = adr.rpartition(':') - return self.multichange(adr, [(name, value)], convert, tolerance)[0] + return self.multichange(adr, [(name, value)], convert, tolerance, n_retry)[0] class TemperatureSensor(MercuryChannel, Readable): From 1a6aa893e45eda8d1d7058da73c02b5fc47f6dfc Mon Sep 17 00:00:00 2001 From: camea Date: Mon, 19 Dec 2022 16:03:44 +0100 Subject: [PATCH 10/30] move persistent_field parameter from magnet.py to ips_magnet.py 'persistent_field' is in principle the same as 'value'. however, on IPS it might be different, at least it is a seperate HW parameter --- secop_psi/ips_mercury.py | 2 ++ secop_psi/magfield.py | 23 +++++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/secop_psi/ips_mercury.py b/secop_psi/ips_mercury.py index c245b76..84758c5 100644 --- a/secop_psi/ips_mercury.py +++ b/secop_psi/ips_mercury.py @@ -132,6 +132,8 @@ class SimpleField(MercuryChannel, SimpleMagfield): class Field(SimpleField, Magfield): + persistent_field = Parameter( + 'persistent field', FloatRange(unit='$'), readonly=False) wait_switch_on = Parameter( 'wait time to ensure switch is on', FloatRange(0, unit='s'), readonly=True, default=60) wait_switch_off = Parameter( diff --git a/secop_psi/magfield.py b/secop_psi/magfield.py index 2b21687..4c04136 100644 --- a/secop_psi/magfield.py +++ b/secop_psi/magfield.py @@ -130,8 +130,6 @@ class Magfield(SimpleMagfield): 'persistent mode', EnumType(Mode), readonly=False, default=Mode.PERSISTENT) switch_heater = Parameter('switch heater', EnumType(off=OFF, on=ON), readonly=False, default=0) - persistent_field = Parameter( - 'persistent field', FloatRange(unit='$'), readonly=False) current = Parameter( 'leads current (in units of field)', FloatRange(unit='$')) # TODO: time_to_target @@ -164,7 +162,7 @@ class Magfield(SimpleMagfield): def doPoll(self): if self.__init_persistency: if self.__init_persistency is True: - self._last_target = self.persistent_field + self._last_target = self.value self.__init_persistency = time.time() + 60 self.read_value() # check for persistent field mismatch elif self.read_switch_heater() and self.mode != Mode.DRIVEN: @@ -182,11 +180,11 @@ class Magfield(SimpleMagfield): def write_mode(self, value): self.__init_persistency = False - target = self.persistent_field + target = self.value func = self.start_field_change if value == Mode.DISABLED: target = 0 - if abs(self.persistent_field) < self.tolerance: + if abs(self.value) < self.tolerance: func = self.start_switch_off elif value == Mode.PERSISTENT: func = self.start_switch_off @@ -206,7 +204,7 @@ class Magfield(SimpleMagfield): def on_error(self, sm): # sm is short for statemachine if self.switch_heater == ON: - self.persistent_field = self.read_value() + self.read_value() if sm.mode != Mode.DRIVEN: self.log.warning('turn switch heater off') self.write_switch_heater(OFF) @@ -215,9 +213,9 @@ class Magfield(SimpleMagfield): @status_code(Status.PREPARING) def start_field_change(self, sm): self.setFastPoll(True, 1.0) - if sm.target == self.persistent_field or ( + if sm.target == self.value or ( sm.target == self._last_target and - abs(sm.target - self.persistent_field) <= self.tolerance): # short cut + abs(sm.target - self.value) <= self.tolerance): # short cut return self.check_switch_off if self.switch_heater == ON: return self.start_switch_on @@ -237,7 +235,7 @@ class Magfield(SimpleMagfield): if sm.init: sm.stabilize_start = 0 # in case current is already at field self.init_progress(sm, self.current) - dif = abs(self.current - self.persistent_field) + dif = abs(self.current - self.value) if dif > self.tolerance: tdif = self.get_progress(sm, self.current) if tdif > self.leads_ramp_tmo: @@ -283,7 +281,7 @@ class Magfield(SimpleMagfield): @status_code(Status.PREPARING) def wait_for_switch_on(self, sm): if (sm.target == self._last_target and - abs(sm.target - self.persistent_field) <= self.tolerance): # short cut + abs(sm.target - self.value) <= self.tolerance): # short cut return self.check_switch_off self.read_switch_heater() # trigger switch_on/off_time if self.switch_heater == OFF: @@ -309,7 +307,6 @@ class Magfield(SimpleMagfield): @status_code(Status.RAMPING) def ramp_to_target(self, sm): - self.persistent_field = self.value dif = abs(self.value - sm.target) if sm.init: sm.stabilize_start = 0 # in case current is already at target @@ -328,7 +325,6 @@ class Magfield(SimpleMagfield): @status_code(Status.STABILIZING) def stabilize_field(self, sm): - self.persistent_field = self.value if sm.now < sm.stabilize_start + self.wait_stable_field: return Retry return self.check_switch_off @@ -346,7 +342,6 @@ class Magfield(SimpleMagfield): @status_code(Status.FINALIZING) def wait_for_switch_off(self, sm): - self.persistent_field = self.value self.read_switch_heater() if self.switch_heater == ON: if sm.init: # avoid too many states chained @@ -377,6 +372,6 @@ class Magfield(SimpleMagfield): if self.get_progress(sm, self.value) > self.leads_ramp_tmo: raise HardwareError('no progress') return Retry - if sm.mode == Mode.DISABLED and abs(self.persistent_field) < self.tolerance: + if sm.mode == Mode.DISABLED and abs(self.value) < self.tolerance: return self.final_status(Status.DISABLED, 'disabled') return self.final_status(Status.IDLE, 'persistent mode') From c4f9f2ef4bf17ae392877a5a90110078ab8bac34 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Mon, 19 Dec 2022 16:12:06 +0100 Subject: [PATCH 11/30] rename action to dil_action --- cfg/stick/flamedil.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cfg/stick/flamedil.cfg b/cfg/stick/flamedil.cfg index 8cbc9bc..94bdf10 100644 --- a/cfg/stick/flamedil.cfg +++ b/cfg/stick/flamedil.cfg @@ -54,7 +54,7 @@ description = still heater slot = H2 io = triton -[action] +[dil_action] class = secop_psi.triton.Action description = higher level scripts io = triton From bd0f3a0b07542514d31f1fa5b8d851583d766f58 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Mon, 19 Dec 2022 16:13:06 +0100 Subject: [PATCH 12/30] fixe in triton and mercury --- secop_psi/mercury.py | 2 +- secop_psi/triton.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/secop_psi/mercury.py b/secop_psi/mercury.py index 839a767..d6ec17a 100644 --- a/secop_psi/mercury.py +++ b/secop_psi/mercury.py @@ -267,7 +267,7 @@ class Loop(HasConvergence, MercuryChannel, Drivable): self.set_output(True) else: self.log.warning('switch loop control on') - self.write_control_active(True) + self.write_control_active(True) self.target = target self.start_state() diff --git a/secop_psi/triton.py b/secop_psi/triton.py index 533f5ee..982e0b6 100644 --- a/secop_psi/triton.py +++ b/secop_psi/triton.py @@ -38,6 +38,7 @@ actions_map.mapping['NONE'] = actions.none # when writing, STOP is used instead class Action(MercuryChannel, Writable): channel_type = 'ACTN' cooldown_channel = Property('cool down channel', StringType(), 'T5') + mix_channel = Property('mix channel', StringType(), 'T5') value = Parameter('running action', EnumType(actions)) target = Parameter('action to do', EnumType(none=0, condense=1, collect=3), readonly=False) _target = 0 @@ -51,6 +52,8 @@ class Action(MercuryChannel, Writable): def write_target(self, value): self._target = value self.change('SYS:DR:CHAN:COOL', self.cooldown_channel, str) + # self.change('SYS:DR:CHAN:MC', self.mix_channel, str) + # self.change('DEV:T5:TEMP:MEAS:ENAB', 'ON', str) return self.change('SYS:DR:ACTN', value, actions_map) # actions: From 79b8cd7b2df0a88104b341909aba66f217f0ec2d Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 21 Dec 2022 10:38:11 +0100 Subject: [PATCH 13/30] fix inheritance of status codes attached to state functions --- secop/states.py | 62 +++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/secop/states.py b/secop/states.py index 9767920..4dbd049 100644 --- a/secop/states.py +++ b/secop/states.py @@ -27,30 +27,27 @@ handles status depending on statemachine state from secop.core import BUSY, IDLE, ERROR, Parameter, Command, Done -from secop.errors import ProgrammingError from secop.lib.newstatemachine import StateMachine, Retry, Finish, Start, Stop -class status_code: - """decorator for state methods""" - def __init__(self, code, text=None): - self.code = code - self.text = text +def status_code(code, text=None): + """decorator, attaching a status to a state function - def __set_name__(self, owner, name): - if not issubclass(owner, HasStates): - raise ProgrammingError('when using decorator "status_code", %s must inherit HasStates' % owner.__name__) - self.cls = owner - self.name = name - if 'statusMap' not in owner.__dict__: - # we need a copy on each inheritance level - owner.statusMap = owner.statusMap.copy() - owner.statusMap[name] = self.code, name.replace('_', ' ') if self.text is None else self.text - setattr(owner, name, self.func) # replace with original method + :param code: the first element of the secop status tuple + :param text: the second element of the secop status tuple. if not given, + the name of the state function is used (underscores replaced by spaces) + :return: the decorator function - def __call__(self, func): - self.func = func - return self + if a state function has not attached status and is a method of the module running + the state machine, the status is inherited from an overridden method, if available + + a state function without attached status does not change the status, or, if it is + used as the start function, BUSY is taken as default status code + """ + def wrapper(func): + func.status = code, func.__name__.replace('_', ' ') if text is None else text + return func + return wrapper class HasStates: @@ -58,7 +55,7 @@ class HasStates: all_status_changes = False # when true, send also updates for status changes within a cycle _state_machine = None _status = IDLE, '' - statusMap = {} + statusMap = None def init_state_machine(self, **kwds): self._state_machine = StateMachine( @@ -71,6 +68,7 @@ class HasStates: def initModule(self): super().initModule() + self.statusMap = {} self.init_state_machine() def state_transition(self, sm, newstate): @@ -97,7 +95,22 @@ class HasStates: status = self._state_machine.idle_status or (ERROR, 'Finish was returned without final status') else: name = statefunc.__name__ - status = self.statusMap.get(name) + try: + # look up in statusMap cache + status = self.statusMap[name] + except KeyError: + # try to get status from method or inherited method + cls = type(self) + for base in cls.__mro__: + try: + status = getattr(base, name, None).status + break + except AttributeError: + pass + else: + status = None + # store it in the cache for all further calls + self.statusMap[name] = status if status is None and default_code is not None: status = default_code, name.replace('_', ' ') return status @@ -108,8 +121,7 @@ class HasStates: return Done return sm.status - def doPoll(self): - super().doPoll() + def cycle_machine(self): sm = self._state_machine sm.cycle() if sm.statefunc is None: @@ -118,6 +130,10 @@ class HasStates: self.setFastPoll(False) self.read_status() + def doPoll(self): + super().doPoll() + self.cycle_machine() + def on_cleanup(self, sm): if isinstance(sm.cleanup_reason, Exception): return self.on_error(sm) From 766f15beee26daa7bbd3f567896c27083aa98b4d Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 21 Dec 2022 10:57:41 +0100 Subject: [PATCH 14/30] improvements in magfield - use HasTargetLimits instead of HasLimits - move ramp_tmo parameter to SompleMagfield - add last_target method - fix progress check in SimpleMagfield.ramp_to_target - better mechanism for setting to persistent mode after restart - fix switching mode - fix on_error - fix condition for shortcut start_field_change -> check_switch_off - remove direct status updates - move check for manual switch heater operations to ips_mercury --- secop_psi/ips_mercury.py | 18 ++++++++ secop_psi/magfield.py | 98 +++++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 47 deletions(-) diff --git a/secop_psi/ips_mercury.py b/secop_psi/ips_mercury.py index 84758c5..4882eec 100644 --- a/secop_psi/ips_mercury.py +++ b/secop_psi/ips_mercury.py @@ -288,6 +288,24 @@ class Field(SimpleField, Magfield): return Retry return sm.after_wait + def wait_for_switch_on(self, sm): + self.read_switch_heater() # trigger switch_on/off_time + if self.switch_heater == self.switch_heater.OFF: + if sm.init: # avoid too many states chained + return Retry + self.log.warning('switch turned off manually?') + return self.start_switch_on + return super().wait_for_switch_on(sm) + + def wait_for_switch_off(self, sm): + self.read_switch_heater() + if self.switch_heater == self.switch_heater.ON: + if sm.init: # avoid too many states chained + return Retry + self.log.warning('switch turned on manually?') + return self.start_switch_off + return super().wait_for_switch_off(sm) + def start_ramp_to_zero(self, sm): try: assert self.write_action(Action.hold) == Action.hold diff --git a/secop_psi/magfield.py b/secop_psi/magfield.py index 4c04136..5f7a82c 100644 --- a/secop_psi/magfield.py +++ b/secop_psi/magfield.py @@ -22,7 +22,7 @@ import time from secop.core import Drivable, Parameter, Done, IDLE, BUSY, ERROR from secop.datatypes import FloatRange, EnumType, ArrayOf, TupleOf, StatusType -from secop.features import HasLimits +from secop.features import HasTargetLimits from secop.errors import ConfigError, ProgrammingError, HardwareError, BadValueError from secop.lib.enum import Enum from secop.states import Retry, HasStates, status_code, Start @@ -48,7 +48,7 @@ OFF = 0 ON = 1 -class SimpleMagfield(HasStates, HasLimits, Drivable): +class SimpleMagfield(HasStates, HasTargetLimits, Drivable): value = Parameter('magnetic field', datatype=FloatRange(unit='T')) ramp = Parameter( 'wanted ramp rate for field', FloatRange(unit='$/min'), readonly=False) @@ -63,6 +63,9 @@ class SimpleMagfield(HasStates, HasLimits, Drivable): readonly=False, default=(0, 0)) wait_stable_field = Parameter( 'wait time to ensure field is stable', FloatRange(0, unit='s'), readonly=False, default=31) + ramp_tmo = Parameter( + 'timeout for field ramp progress', + FloatRange(0, unit='s'), readonly=False, default=30) _last_target = None @@ -80,6 +83,23 @@ class SimpleMagfield(HasStates, HasLimits, Drivable): # let the state machine do the needed steps to finish self.write_target(self.value) + def last_target(self): + """get best known last target + + as long as the guessed last target is within tolerance + with repsect to the main value, it is used, as in general + it has better precision + """ + last = self._last_target + if last is None: + try: + last = self.setpoint # get read back from HW, if available + except Exception: + pass + if last is None or abs(last - self.value) > self.tolerance: + return self.value + return last + def write_target(self, target): self.check_limits(target) self.start_machine(self.start_field_change, target=target) @@ -108,9 +128,10 @@ class SimpleMagfield(HasStates, HasLimits, Drivable): self.init_progress(sm, self.value) # Remarks: assume there is a ramp limiting feature if abs(self.value - sm.target) > self.tolerance: - if self.get_progress(sm, self.value): - return Retry - raise HardwareError('no progress') + if self.get_progress(sm, self.value) > self.ramp_tmo: + raise HardwareError('no progress') + sm.stabilize_start = None # force reset + return Retry sm.stabilize_start = time.time() return self.stabilize_field @@ -127,7 +148,7 @@ class SimpleMagfield(HasStates, HasLimits, Drivable): class Magfield(SimpleMagfield): status = Parameter(datatype=StatusType(Status)) mode = Parameter( - 'persistent mode', EnumType(Mode), readonly=False, default=Mode.PERSISTENT) + 'persistent mode', EnumType(Mode), readonly=False, initwrite=False, default=Mode.PERSISTENT) switch_heater = Parameter('switch heater', EnumType(off=OFF, on=ON), readonly=False, default=0) current = Parameter( @@ -152,26 +173,15 @@ class Magfield(SimpleMagfield): leads_ramp_tmo = Parameter( 'timeout for leads ramp progress', FloatRange(0, unit='s'), readonly=False, default=30) - ramp_tmo = Parameter( - 'timeout for field ramp progress', - FloatRange(0, unit='s'), readonly=False, default=30) - __init_persistency = True + init_persistency = True switch_on_time = None switch_off_time = None def doPoll(self): - if self.__init_persistency: - if self.__init_persistency is True: - self._last_target = self.value - self.__init_persistency = time.time() + 60 - self.read_value() # check for persistent field mismatch - elif self.read_switch_heater() and self.mode != Mode.DRIVEN: - if time.time() > self.__init_persistency: - # switch off heater from previous live or manual intervention - self.log.info('fix mode after startup') - self.write_mode(self.mode) - else: - self.__init_persistency = False + if self.init_persistency: + if self.read_switch_heater() and self.mode != Mode.DRIVEN: + self.start_machine(self.go_persistent_soon, mode=self.mode) + self.init_persistency = False super().doPoll() def initModule(self): @@ -179,8 +189,8 @@ class Magfield(SimpleMagfield): self.registerCallbacks(self) # for update_switch_heater def write_mode(self, value): - self.__init_persistency = False - target = self.value + self.init_persistency = False + target = self.last_target() func = self.start_field_change if value == Mode.DISABLED: target = 0 @@ -188,11 +198,12 @@ class Magfield(SimpleMagfield): func = self.start_switch_off elif value == Mode.PERSISTENT: func = self.start_switch_off + self.target = target self.start_machine(func, target=target, mode=value) return value def write_target(self, target): - self.__init_persistency = False + self.init_persistency = False if self.mode == Mode.DISABLED: if target == 0: return 0 @@ -208,14 +219,22 @@ class Magfield(SimpleMagfield): if sm.mode != Mode.DRIVEN: self.log.warning('turn switch heater off') self.write_switch_heater(OFF) - return self.on_error(sm) + return super().on_error(sm) + + @status_code(Status.WARN) + def go_persistent_soon(self, sm): + if sm.delta(60): + self.target = sm.target = self.last_target() + return self.start_field_change + return Retry @status_code(Status.PREPARING) def start_field_change(self, sm): self.setFastPoll(True, 1.0) - if sm.target == self.value or ( - sm.target == self._last_target and - abs(sm.target - self.value) <= self.tolerance): # short cut + if (sm.target == self.last_target() and + abs(sm.target - self.value) <= self.tolerance and + abs(self.current - self.value) < self.tolerance and + (self.mode != Mode.DRIVEN or self.switch_heater == ON)): # short cut return self.check_switch_off if self.switch_heater == ON: return self.start_switch_on @@ -267,28 +286,19 @@ class Magfield(SimpleMagfield): @status_code(Status.PREPARING) def start_switch_on(self, sm): + if (sm.target == self.last_target() and + abs(sm.target - self.value) <= self.tolerance): # short cut + return self.check_switch_off if self.read_switch_heater() == OFF: - self.status = Status.PREPARING, 'turn switch heater on' try: self.write_switch_heater(ON) except Exception as e: self.log.warning('write_switch_heater %r', e) return Retry - else: - self.status = Status.PREPARING, 'wait for heater on' return self.wait_for_switch_on @status_code(Status.PREPARING) def wait_for_switch_on(self, sm): - if (sm.target == self._last_target and - abs(sm.target - self.value) <= self.tolerance): # short cut - return self.check_switch_off - self.read_switch_heater() # trigger switch_on/off_time - if self.switch_heater == OFF: - if sm.init: # avoid too many states chained - return Retry - self.log.warning('switch turned off manually?') - return self.start_switch_on if sm.now - self.switch_on_time < self.wait_switch_on: if sm.delta(10): self.log.info('waited for %g sec', sm.now - self.switch_on_time) @@ -342,12 +352,6 @@ class Magfield(SimpleMagfield): @status_code(Status.FINALIZING) def wait_for_switch_off(self, sm): - self.read_switch_heater() - if self.switch_heater == ON: - if sm.init: # avoid too many states chained - return Retry - self.log.warning('switch turned on manually?') - return self.start_switch_off if sm.now - self.switch_off_time < self.wait_switch_off: return Retry if abs(self.value) > self.persistent_limit: From ad4a6d2e09bd17e5346d5b359b03b5a6ccbec673 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 21 Dec 2022 11:00:19 +0100 Subject: [PATCH 15/30] improved cyoltd (flame magnet) - use a statemachine - do more control in frappy, switching from persistent to driven internally - a lot of fixes --- cfg/main/flamemag.cfg | 4 +- secop_psi/cryoltd.py | 246 +++++++++++++++++++++++++++--------------- 2 files changed, 162 insertions(+), 88 deletions(-) diff --git a/cfg/main/flamemag.cfg b/cfg/main/flamemag.cfg index 4daf145..b631c0f 100644 --- a/cfg/main/flamemag.cfg +++ b/cfg/main/flamemag.cfg @@ -10,10 +10,11 @@ io= cio [B] description = 'magnetic field' -class = secop_psi.cryoltd.MainMagfield +class = secop_psi.cryoltd.MainField channel = Main constraint = 80000 target.max = 35000 +mode = 'PERSISTENT' hw_units = T # A_to_G is needed for ramp rate A_to_G = 285.73 @@ -21,6 +22,7 @@ ramp.max = 412 overshoot = {'o': 1, 't': 180} degauss = {'s': 500, 'd': 30, 'f': 5, 't': 120} tolerance = 5 +wait_stable_field = 180 [Bx] description = 'magnetic field x component' diff --git a/secop_psi/cryoltd.py b/secop_psi/cryoltd.py index 4abf29c..17188a6 100644 --- a/secop_psi/cryoltd.py +++ b/secop_psi/cryoltd.py @@ -29,10 +29,12 @@ changed from the client is fixed for at least 10 seconds. import re import time from secop.core import HasIO, StringIO, Readable, Drivable, Parameter, Command, \ - Module, Property, Attached, Enum, IDLE, BUSY, ERROR -from secop.features import HasLimits + Module, Property, Attached, Enum, IDLE, BUSY, ERROR, Done from secop.errors import ConfigError, BadValueError, HardwareError -from secop.datatypes import FloatRange, StringType, EnumType, StructOf, OrType +from secop.datatypes import FloatRange, StringType, EnumType, StructOf +from secop.states import HasStates, status_code, Retry +from secop.features import HasTargetLimits +import secop_psi.magfield as magfield # floating point value followed with unit VALUE_UNIT = re.compile(r'([-0-9.E]*\d|inf)([A-Za-z/%]*)$') @@ -135,10 +137,10 @@ class Channel: cmd = cmd.replace('', self.channel) reply = self.main.communicate(cmd) if not reply.startswith(cmd): - print('MISMATCH', cmd, reply) + self.log.warn('reply %r does not match command %r', reply, cmd) - def block(self, pname, value=None): - self.block_until[pname] = time.time() + 10 + def block(self, pname, value=None, delay=10): + self.block_until[pname] = time.time() + delay if value is not None: setattr(self, pname, value) @@ -183,14 +185,26 @@ class Temperature(Channel, Readable): self.main.register_module(self, value=self.channel) -class Magfield(HasLimits, Channel, Drivable): +CsMode = Enum( + PERSISTENT=1, + SEMIPERSISTENT=2, + DRIVEN=0, +) + +PersistencyMode = Enum( + DISABLED=0, + PERSISTENT=30, + SEMIPERSISTENT=31, + DRIVEN=50, +) + + +class BaseMagfield(HasStates, HasTargetLimits, Channel): _status_text = '' _ready_text = '' _error_text = '' _last_error = '' _rate_units = '' - _next_target = None - _last_target = None hw_units = Property('hardware units: A or T', EnumType(A=0, T=1)) A_to_G = Property('A_to_G = "Gauss Value / Amps Value"', FloatRange(0)) tolerance = Parameter('tolerance', FloatRange(0), readonly=False, default=1) @@ -201,10 +215,18 @@ class Magfield(HasLimits, Channel, Drivable): if dt.min < 1e-99: # make limits symmetric dt.min = - dt.max min_, max_ = self.target_limits - self.target_limits = [max(min_, dt.min), max_] + self.target_limits = [max(min_, dt.min), min(max_, dt.max)] dt = self.parameters['ramp'].datatype if self.ramp == 0: # unconfigured: take max. self.ramp = dt.max + if not isinstance(self, magfield.Magfield): + # add unneeded attributes, as the appear in GetAll + self.switch_heater = None + self.current = None + + def doPoll(self): + super().doPoll() # does not call cycle_machine + self.cycle_machine() def to_gauss(self, value): value, unit = VALUE_UNIT.match(value).groups() @@ -237,57 +259,34 @@ class Magfield(HasLimits, Channel, Drivable): _rate_units=('_Rate Units', str), current=('_PSU Output', self.to_gauss), voltage='_Voltage', - working_ramp=('_Ramp Rate', self.to_gauss_min), + workingramp=('_Ramp Rate', self.to_gauss_min), setpoint=('_Setpoint', self.to_gauss), switch_heater=('_Heater', self.cvt_switch_heater), - mode=('_Persistent Mode', self.cvt_mode), + cs_mode=('_Persistent Mode', self.cvt_cs_mode), approach_mode=('_Approach', self.cvt_approach_mode), ) def cvt_error(self, text): if text != self._last_error: self._last_error = text + self.log.error(text) return text return self._error_text def trigger_update(self): # called after treating result of GetAll message if self._error_text: - status = ERROR, '%s while %s' % (self._error_text, self._status_text) - elif self._ready_text == 'TRUE': - with self.accessLock: # must not be in parallel with write_target - target = self._next_target - if target is not None: # target change pending - if target == self._last_target and abs(self.value - target) <= self.tolerance: - # we are already there - self._last_target = None - status = IDLE, self._status_text - else: - if self.hw_units == 'A': - self.sendcmd('Set::Sweep %gA' % (target / self.A_to_G)) - else: - self.sendcmd('Set::Sweep %gT' % (target / 10000)) - self._next_target = None - self._last_target = target - status = BUSY, 'changed target' - else: - status = IDLE, self._status_text - elif self._next_target is None: - txt = self._status_text - if txt.startswith('Ramping Magnet'): - if txt.endswith(': ') or ' 1 seconds' in txt: - txt = 'stabilizing' - else: - txt = 'ramping' - status = BUSY, txt - else: - return # do not change status when aborting - self.status = status + if self.status[0] == ERROR: + errtxt = self._error_text + else: + errtxt = '%s while %s' % (self._error_text, self.status[1]) + # self.stop_machine((ERROR, errtxt)) value = Parameter('magnetic field in the coil', FloatRange(unit='G')) setpoint = Parameter('setpoint', FloatRange(unit='G'), default=0) - ramp = Parameter('ramp rate', FloatRange(0, unit='$/min'), default=0, readonly=False) + ramp = Parameter() + target = Parameter() def write_ramp(self, ramp): if self._rate_units != 'A/s': @@ -297,48 +296,63 @@ class Magfield(HasLimits, Channel, Drivable): def write_target(self, target): self.reset_error() - self.check_limits(target) - self.write_ramp(self.ramp) + super().write_target(target) + return Done + + def start_sweep(self, target): if self.approach_mode == self.approach_mode.OVERSHOOT: o = self.overshoot['o'] if (target - self.value) * o < 0: self.write_overshoot(dict(self.overshoot, o=-o)) - self.block('_error_text', '') - if self._ready_text == 'FALSE': - if target != self._last_target or abs(self.value - target) > self.tolerance: - self.status = BUSY, 'aborting' - self.sendcmd('Set::Abort') - self._next_target = target + self.write_ramp(self.ramp) + if self.hw_units == 'A': + self.sendcmd('Set::Sweep %gA' % (target / self.A_to_G)) else: - self._next_target = target - self.trigger_update() # update status - return target + self.sendcmd('Set::Sweep %gT' % (target / 10000)) + self.block('_ready_text', 'FALSE') - working_ramp = Parameter('actual ramp rate', FloatRange(0, unit='$/min')) + def start_field_change(self, sm): + if self._ready_text == 'FALSE': + self.sendcmd('Set::Abort') + return self.wait_ready + return super().start_field_change - Mode = Enum( - # DISABLED=0, - PERSISTENT=30, - SEMIPERSISTENT=31, - DRIVEN=50, - ) - mode = Parameter('persistent mode', EnumType(Mode), readonly=False, default=30) - mode_map = Mapped(DRIVEN=0, PERSISTENT=1, SEMIPERSISTENT=2) + def wait_ready(self, sm): + if self._ready_text == 'FALSE': + return Retry + return super().start_field_change - def write_mode(self, value): - code = self.mode_map(value) - self.sendcmd('Set::SetPM %d' % code) - self.block('mode') - return value + def start_ramp_to_target(self, sm): + self.start_sweep(sm.target) + return self.ramp_to_target # -> stabilize_field + + def stabilize_field(self, sm): + if self._ready_text == 'FALSE': + # wait for overshoot/degauss/cycle + sm.stabilize_start = sm.now + return Retry + if sm.now - sm.stabilize_start < self.wait_stable_field: + return Retry + return self.end_stablilize + + def end_stablilize(self, sm): + return self.final_status() + + cs_mode = Parameter('persistent mode', EnumType(CsMode), readonly=False, default=0) @staticmethod - def cvt_mode(text): + def cvt_cs_mode(text): text = text.lower() if 'off' in text: if '0' in text: - return 30 - return 31 - return 50 + return CsMode.PERSISTENT + return CsMode.SEMIPERSISTENT + return CsMode.DRIVEN + + def write_cs_mode(self, value): + self.sendcmd('Set::SetPM %d' % int(value)) + self.block('cs_mode') + return value ApproachMode = Enum( DIRECT=0, @@ -393,12 +407,8 @@ class Magfield(HasLimits, Channel, Drivable): (value['s'] * 1e-4, value['d'], value['f'] * 1e-4, value['t'])) return value - current = Parameter( - 'leads current (in units of field)', FloatRange(unit='$')) voltage = Parameter( 'voltage over leads', FloatRange(unit='V')) - switch_heater = Parameter( - 'voltage over leads', EnumType(OFF=0, ON=1)) @staticmethod def cvt_switch_heater(text): @@ -419,29 +429,94 @@ class Magfield(HasLimits, Channel, Drivable): self._error_text = '' -class MainMagfield(Magfield): +class MainField(BaseMagfield, magfield.Magfield): checked_modules = None def earlyInit(self): super().earlyInit() self.checked_modules = [] + def check_limits(self, value): + super().check_limits(value) + self.check_combined(None, 0, value) + # TODO: turn into a property constraint = Parameter('product check', FloatRange(unit='G^2'), default=80000) def check_combined(self, obj, value, main_target): - sumvalue2 = sum((max(o.value ** 2, value ** 2 if o == obj else 0) + sumvalue2 = sum(((value ** 2 if o == obj else o.value ** 2) for o in self.checked_modules)) - if sumvalue2 * max(self.value ** 2, main_target) > self.constraint ** 2: - raise BadValueError('outside constraint (B * Bxyz > %g G^2' * self.constraint) + if sumvalue2 * max(self.value ** 2, main_target ** 2) > self.constraint ** 2: + raise BadValueError('outside constraint (B * Bxyz > %g G^2' % self.constraint) def check_limits(self, value): super().check_limits(value) self.check_combined(None, 0, value) + mode = Parameter(datatype=EnumType(PersistencyMode)) -class ComponentField(Magfield): - check_against = Attached(MainMagfield) + def write_mode(self, mode): + self.reset_error() + super().write_mode(mode) # updates mode + return Done + + @status_code('PREPARING') + def start_ramp_to_field(self, sm): + self.start_sweep(self.value) + return self.ramp_to_field # -> stabilize_current -> start_switch_on + + @status_code('PREPARING') + def start_switch_on(self, sm): + self.write_cs_mode(CsMode.DRIVEN) + # self.block('switch_heater', 1, 60) + self.start_sweep(self.value) + self.block('_ready_text', 'FALSE') + return self.wait_for_switch_on # -> start_ramp_to_target -> ramp_to_target -> stabilize_field + + @status_code('PREPARING') + def wait_for_switch_on(self, sm): + if self._ready_text == 'FALSE': + return Retry + self.last_target(sm.target) + return self.start_ramp_to_target + + def end_stablilize(self, sm): + return self.start_switch_off + + @status_code('FINALIZING') + def start_switch_off(self, sm): + if self.mode == PersistencyMode.DRIVEN: + return self.final_status(IDLE, 'driven') + if self.mode == PersistencyMode.SEMIPERSISTENT: + self.write_cs_mode(CsMode.SEMIPERSISTENT) + else: # PERSISTENT or DISABLED + self.write_cs_mode(CsMode.PERSISTENT) + self.start_sweep(sm.target) + self.block('_ready_text', 'FALSE') + self.block('switch_heater', 1) + return self.wait_for_switch_off # -> start_ramp_to_zero + + @status_code('PREPARING') + def wait_for_switch_off(self, sm): + if self.switch_heater: + return Retry + self.last_target(sm.target) + if self.mode == PersistencyMode.SEMIPERSISTENT: + return self.final_status(IDLE, 'semipersistent') + return self.ramp_to_zero + + @status_code('FINALIZING') + def ramp_to_zero(self, sm): + if self._ready_text == 'FALSE': + return Retry + if self.mode == PersistencyMode.DISABLED: + return self.final_status(PersistencyMode.DISABLED, 'disabled') + return self.final_status(IDLE, 'persistent') + + +class ComponentField(BaseMagfield, magfield.SimpleMagfield): + check_against = Attached(MainField) + # status = Parameter(datatype=EnumType(Drivable.Status, RAMPING=370, STABILIZING=380, FINALIZING=390)) def initModule(self): super().initModule() @@ -495,9 +570,9 @@ class Compressor(Channel, Drivable): def write_target(self, value): if value: - self.sendcmd('SetCompressor:Start ') + self.sendcmd('Set:Compressor:Start ') else: - self.sendcmd('SetCompressor:Stop ') + self.sendcmd('Set:Compressor:Stop ') self.block('target') self.read_status() return value @@ -507,6 +582,3 @@ class Compressor(Channel, Drivable): """reset error""" self.sendcmd('Set:Compressor:Reset ') self._error_text = '' - - - From 589b857039ca7efd4833ae5336c20d69f6d092df Mon Sep 17 00:00:00 2001 From: l_samenv Date: Wed, 21 Dec 2022 11:04:25 +0100 Subject: [PATCH 16/30] add driver for LakeShore 372 - including channelswitcher --- cfg/addons/ls372.cfg | 22 +++ secop_psi/channelswitcher.py | 179 +++++++++++++++++++ secop_psi/ls372.py | 329 +++++++++++++++++++++++++++++++++++ 3 files changed, 530 insertions(+) create mode 100644 cfg/addons/ls372.cfg create mode 100644 secop_psi/channelswitcher.py create mode 100644 secop_psi/ls372.py diff --git a/cfg/addons/ls372.cfg b/cfg/addons/ls372.cfg new file mode 100644 index 0000000..81a3896 --- /dev/null +++ b/cfg/addons/ls372.cfg @@ -0,0 +1,22 @@ +[lsc] +description = +class = secop.io.StringIO +wait_before = 0.05 +uri = flamedil-ls:7777 + +[r1] +class = secop_psi.ls372.ResChannel +description = resistivity from LS 372 +switcher = channel +channel = 1 + +[r3] +class = secop_psi.ls372.ResChannel +description = resistivity from LS 372 +switcher = channel +channel = 3 + +[channel] +description = LS 372 channel switcher +class = secop_psi.ls372.Switcher +io = lsc diff --git a/secop_psi/channelswitcher.py b/secop_psi/channelswitcher.py new file mode 100644 index 0000000..cabffc4 --- /dev/null +++ b/secop_psi/channelswitcher.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# ***************************************************************************** +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Markus Zolliker +# ***************************************************************************** +"""channel switcher Mixin + +Example Config File: + +[sw] +description=the switcher for blabla channels +class=frappy_facility.module.YourChannelSwitcher +uri=... + +[chan1] +description=channel 1 +class=frappy_facility.module.YourChannel +switcher=sw + +[chan2] +... +""" + +import time + +from secop.datatypes import IntRange, BoolType, FloatRange +from secop.core import Attached, Property, Drivable, Parameter, Readable, Done + + +class ChannelSwitcher(Drivable): + """base class for the channel switcher + + minimum implementation: + - override :meth:`set_active_channel` + + - .read_value() and .read_status() is called periodically + every .pollinterval on the active channel only + - .is_switching(...) is called every .pollinterval + during switching period, until it is returning False + """ + value = Parameter('the current channel number', IntRange(), needscfg=False) + target = Parameter('channel to select', IntRange(), needscfg=False) + autoscan = Parameter('whether to scan automatically', + BoolType(), readonly=False, default=True) + pollinterval = Parameter(default=1, export=False) + switch_delay = Parameter('the time needed to switch between channels', + FloatRange(0, None), readonly=False, default=5) + measure_delay = Parameter('the time for staying at a channel', + FloatRange(0, None), readonly=False, default=2) + + fast_poll = 0.1 + _channels = None # dict of + _start_measure = 0 + _last_measure = 0 + _start_switch = 0 + _time_tol = 0.5 + + def earlyInit(self): + super().earlyInit() + self._channels = {} + + def register_channel(self, mod): + """register module""" + self._channels[mod.channel] = mod + + def set_active_channel(self, chan): + """tell the HW the active channel + + :param chan: a channel object + + to be implemented + """ + raise NotImplementedError + + def next_channel(self, channelno): + next_channel = channelno + first_channel = None + for ch, mod in self._channels.items(): + if mod.enabled: + if first_channel is None: + first_channel = ch + if next_channel == ch: + next_channel = None + elif next_channel is None: + next_channel = ch + break + else: + next_channel = first_channel + return next_channel + + def read_status(self): + now = time.monotonic() + if self.status[0] == 'BUSY': + chan = self._channels[self.target] + if chan.is_switching(now, self._start_switch, self.switch_delay): + return Done + self.setFastPoll(False) + self.status = 'IDLE', 'measure' + self.value = self.target + self._start_measure = self._last_measure = now + chan.read_value() + chan.read_status() + if self.measure_delay > self._time_tol: + return Done + else: + chan = self._channels[self.value] + self.read_value() # this might modify autoscan or deadline! + if chan.enabled: + if self.target != self.value: # may happen after startup + self.target = self.value + next_measure = self._last_measure + chan.pollinterval + if now + self._time_tol > next_measure: + chan.read_value() + chan.read_status() + self._last_measure = next_measure + if not self.autoscan or now + self._time_tol < self._start_measure + self.measure_delay: + return Done + next_channel = self.next_channel(self.value) + if next_channel == self.value: + return 'IDLE', 'single channel' + if next_channel is None: + return 'ERROR', 'no enabled channel' + self.write_target(next_channel) + return self.status + + def write_pollinterval(self, value): + self._time_tol = min(1, value) * 0.5 + return value + + def write_target(self, channel): + if channel not in self._channels: + raise ValueError('%r is no valid channel' % channel) + if channel == self.target and self._channels[channel].enabled: + return channel + chan = self._channels[channel] + chan.enabled = True + self.set_active_channel(chan) + self._start_switch = time.monotonic() + self.status = 'BUSY', 'change channel' + self.setFastPoll(True, self.fast_poll) + return channel + + +class Channel(Readable): + """base class for channels + + you should override the datatype of the channel property, + in order to match the datatype of the switchers value + """ + switcher = Attached() + channel = Property('channel number', IntRange()) + enabled = Parameter('enabled flag', BoolType(), default=True) + value = Parameter(needscfg=False) + + def initModule(self): + super().initModule() + self.switcher.register_channel(self) + + def doPoll(self): + """value and status are polled by switcher""" + + def is_switching(self, now, last_switch, switch_delay): + """returns True when switching is done""" + return now + self.switcher._time_tol < last_switch + switch_delay diff --git a/secop_psi/ls372.py b/secop_psi/ls372.py new file mode 100644 index 0000000..bbe45a9 --- /dev/null +++ b/secop_psi/ls372.py @@ -0,0 +1,329 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# ***************************************************************************** +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Markus Zolliker +# ***************************************************************************** +"""LakeShore Model 372 resistance channel + +implements autoscan and autorange by software. +when the autoscan or autorange button is pressed, the state is toggled, +and the hardware mode switched off again. +At startup, the configurable default mode is set, independent of +the hardware state. +""" + +import time + +import secop.io +from secop.datatypes import BoolType, EnumType, FloatRange, IntRange +from secop.lib import formatStatusBits +from secop.core import Done, Drivable, Parameter, Property, CommonReadHandler, CommonWriteHandler +from secop.io import HasIO +from secop_psi.channelswitcher import Channel, ChannelSwitcher + +Status = Drivable.Status + + +STATUS_BIT_LABELS = 'CS_OVL VCM_OVL VMIX_OVL VDIF_OVL R_OVER R_UNDER T_OVER T_UNDER'.split() + + +def parse1(string): + try: + return int(string) + except ValueError: + pass + try: + return float(string) + except ValueError: + return string + + +def parse(reply): + return [parse1(s) for s in reply.split(',')] + + +class StringIO(secop.io.StringIO): + identification = [('*IDN?', 'LSCI,MODEL372,.*')] + wait_before = 0.05 + + +class Switcher(HasIO, ChannelSwitcher): + value = Parameter(datatype=IntRange(1, 16)) + target = Parameter(datatype=IntRange(1, 16)) + use_common_delays = Parameter('use switch_delay and measure_delay instead of the channels pause and dwell', + BoolType(), readonly=False, default=False) + common_pause = Parameter('pause with common delays', FloatRange(3, 200, unit='s'), readonly=False, default=3) + ioClass = StringIO + fast_poll = 1 + _measure_delay = None + _switch_delay = None + + def startModule(self, start_events): + super().startModule(start_events) + # disable unused channels + for ch in range(1, 16): + if ch not in self._channels: + self.communicate('INSET %d,0,0,0,0,0;INSET?%d' % (ch, ch)) + channelno, autoscan = parse(self.communicate('SCAN?')) + if channelno in self._channels and self._channels[channelno].enabled: + if not autoscan: + return # nothing to do + else: + channelno = self.next_channel(channelno) + if channelno is None: + self.status = 'ERROR', 'no enabled channel' + return + self.communicate('SCAN %d,0;SCAN?' % channelno) + + def doPoll(self): + """poll buttons + + and check autorange during filter time + """ + super().doPoll() + self._channels[self.target]._read_value() # check range or read + channelno, autoscan = parse(self.communicate('SCAN?')) + if autoscan: + # pressed autoscan button: switch off HW autoscan and toggle soft autoscan + self.autoscan = not self.autoscan + self.communicate('SCAN %d,0;SCAN?' % self.value) + if channelno != self.value: + # channel changed by keyboard, do not yet return new channel + self.write_target(channelno) + chan = self._channels.get(channelno) + if chan is None: + channelno = self.next_channel(channelno) + if channelno is None: + raise ValueError('no channels enabled') + self.write_target(channelno) + chan = self._channels.get(self.value) + chan.read_autorange() + chan.fix_autorange() # check for toggled autorange button + return Done + + def write_switch_delay(self, value): + self._switch_delay = value + return super().write_switch_delay(value) + + def write_measure_delay(self, value): + self._measure_delay = value + return super().write_measure_delay(value) + + def write_use_common_delays(self, value): + if value: + # use values from a previous change, instead of + # the values from the current channel + if self._measure_delay is not None: + self.measure_delay = self._measure_delay + if self._switch_delay is not None: + self.switch_delay = self._switch_delay + return value + + def set_delays(self, chan): + if self.use_common_delays: + if chan.dwell != self.measure_delay: + chan.write_dwell(self.measure_delay) + if chan.pause != self.common_pause: + chan.write_pause(self.common_pause) + filter_ = max(0, self.switch_delay - self.common_pause) + if chan.filter != filter_: + chan.write_filter(filter_) + else: + # switch_delay and measure_delay is changing with channel + self.switch_delay = chan.pause + chan.filter + self.measure_delay = chan.dwell + + def set_active_channel(self, chan): + self.communicate('SCAN %d,0;SCAN?' % chan.channel) + chan._last_range_change = time.monotonic() + self.set_delays(chan) + + +class ResChannel(Channel): + """temperature channel on Lakeshore 372""" + + RES_RANGE = {key: i+1 for i, key in list( + enumerate(mag % val for mag in ['%gmOhm', '%gOhm', '%gkOhm', '%gMOhm'] + for val in [2, 6.32, 20, 63.2, 200, 632]))[:-2]} + CUR_RANGE = {key: i + 1 for i, key in list( + enumerate(mag % val for mag in ['%gpA', '%gnA', '%guA', '%gmA'] + for val in [1, 3.16, 10, 31.6, 100, 316]))[:-2]} + VOLT_RANGE = {key: i + 1 for i, key in list( + enumerate(mag % val for mag in ['%guV', '%gmV'] + for val in [2, 6.32, 20, 63.2, 200, 632]))} + RES_SCALE = [2 * 10 ** (0.5 * i) for i in range(-7, 16)] # RES_SCALE[0] is not used + MAX_RNG = len(RES_SCALE) - 1 + + channel = Property('the Lakeshore channel', datatype=IntRange(1, 16), export=False) + + value = Parameter(datatype=FloatRange(unit='Ohm')) + pollinterval = Parameter(visibility=3, default=1) + range = Parameter('reading range', readonly=False, + datatype=EnumType(**RES_RANGE)) + minrange = Parameter('minimum range for software autorange', readonly=False, default=1, + datatype=EnumType(**RES_RANGE)) + autorange = Parameter('autorange', datatype=BoolType(), + readonly=False, default=1) + iexc = Parameter('current excitation', datatype=EnumType(off=0, **CUR_RANGE), readonly=False) + vexc = Parameter('voltage excitation', datatype=EnumType(off=0, **VOLT_RANGE), readonly=False) + enabled = Parameter('is this channel enabled?', datatype=BoolType(), readonly=False) + pause = Parameter('pause after channel change', datatype=FloatRange(3, 60, unit='s'), readonly=False) + dwell = Parameter('dwell time with autoscan', datatype=FloatRange(1, 200, unit='s'), readonly=False) + filter = Parameter('filter time', datatype=FloatRange(1, 200, unit='s'), readonly=False) + + _toggle_autorange = 'init' + _prev_rdgrng = (1, 1) # last read values for icur and exc + _last_range_change = 0 + rdgrng_params = 'range', 'iexc', 'vexc' + inset_params = 'enabled', 'pause', 'dwell' + + def communicate(self, command): + return self.switcher.communicate(command) + + def read_status(self): + if not self.enabled: + return [self.Status.DISABLED, 'disabled'] + if not self.channel == self.switcher.value == self.switcher.target: + return Done + result = int(self.communicate('RDGST?%d' % self.channel)) + result &= 0x37 # mask T_OVER and T_UNDER (change this when implementing temperatures instead of resistivities) + statustext = ' '.join(formatStatusBits(result, STATUS_BIT_LABELS)) + if statustext: + return [self.Status.ERROR, statustext] + return [self.Status.IDLE, ''] + + def _read_value(self): + """read value, without update""" + now = time.monotonic() + if now + 0.5 < max(self._last_range_change, self.switcher._start_switch) + self.pause: + return None + result = self.communicate('RDGR?%d' % self.channel) + result = float(result) + if self.autorange: + self.fix_autorange() + if now + 0.5 > self._last_range_change + self.pause: + rng = int(max(self.minrange, self.range)) # convert from enum to int + if self.status[1] == '': + if abs(result) > self.RES_SCALE[rng]: + if rng < 22: + rng += 1 + else: + lim = 0.2 + while rng > self.minrange and abs(result) < lim * self.RES_SCALE[rng]: + rng -= 1 + lim -= 0.05 # not more than 4 steps at once + # effectively: <0.16 %: 4 steps, <1%: 3 steps, <5%: 2 steps, <20%: 1 step + elif rng < self.MAX_RNG: + rng = min(self.MAX_RNG, rng + 1) + if rng != self.range: + self.write_range(rng) + self._last_range_change = now + return result + + def read_value(self): + if self.channel == self.switcher.value == self.switcher.target: + return self._read_value() + return Done # return previous value + + def is_switching(self, now, last_switch, switch_delay): + last_switch = max(last_switch, self._last_range_change) + if now + 0.5 > last_switch + self.pause: + self._read_value() # adjust range only + return super().is_switching(now, last_switch, switch_delay) + + @CommonReadHandler(rdgrng_params) + def read_rdgrng(self): + iscur, exc, rng, autorange, excoff = parse( + self.communicate('RDGRNG?%d' % self.channel)) + self._prev_rdgrng = iscur, exc + if autorange: # pressed autorange button + if not self._toggle_autorange: + self._toggle_autorange = True + iexc = 0 if excoff or not iscur else exc + vexc = 0 if excoff or iscur else exc + if (rng, iexc, vexc) != (self.range, self.iexc, self.vexc): + self._last_range_change = time.monotonic() + self.range, self.iexc, self.vexc = rng, iexc, vexc + + @CommonWriteHandler(rdgrng_params) + def write_rdgrng(self, change): + self.read_range() # make sure autorange is handled + if 'vexc' in change: # in case vext is changed, do not consider iexc + change['iexc'] = 0 + if change['iexc'] != 0: # we need '!= 0' here, as bool(enum) is always True! + iscur = 1 + exc = change['iexc'] + excoff = 0 + elif change['vexc'] != 0: # we need '!= 0' here, as bool(enum) is always True! + iscur = 0 + exc = change['vexc'] + excoff = 0 + else: + iscur, exc = self._prev_rdgrng # set to last read values + excoff = 1 + rng = change['range'] + if self.autorange: + if rng < self.minrange: + rng = self.minrange + self.communicate('RDGRNG %d,%d,%d,%d,%d,%d;*OPC?' % ( + self.channel, iscur, exc, rng, 0, excoff)) + self.read_range() + + def fix_autorange(self): + if self._toggle_autorange: + if self._toggle_autorange == 'init': + self.write_autorange(True) + else: + self.write_autorange(not self.autorange) + self._toggle_autorange = False + + @CommonReadHandler(inset_params) + def read_inset(self): + # ignore curve no and temperature coefficient + enabled, dwell, pause, _, _ = parse( + self.communicate('INSET?%d' % self.channel)) + self.enabled = enabled + self.dwell = dwell + self.pause = pause + + @CommonWriteHandler(inset_params) + def write_inset(self, change): + _, _, _, curve, tempco = parse( + self.communicate('INSET?%d' % self.channel)) + self.enabled, self.dwell, self.pause, _, _ = parse( + self.communicate('INSET %d,%d,%d,%d,%d,%d;INSET?%d' % ( + self.channel, change['enabled'], change['dwell'], change['pause'], curve, tempco, + self.channel))) + if 'enabled' in change and change['enabled']: + # switch to enabled channel + self.switcher.write_target(self.channel) + elif self.switcher.target == self.channel: + self.switcher.set_delays(self) + + def read_filter(self): + on, settle, _ = parse(self.communicate('FILTER?%d' % self.channel)) + return settle if on else 0 + + def write_filter(self, value): + on = 1 if value else 0 + value = max(1, value) + on, settle, _ = parse(self.communicate( + 'FILTER %d,%d,%g,80;FILTER?%d' % (self.channel, on, value, self.channel))) + if not on: + settle = 0 + return settle From c70b61e4e5ae966b12b7441a5c6e91a878d7870f Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 23 Jan 2023 17:43:27 +0100 Subject: [PATCH 17/30] relax identification check accept *,SECoP,* Change-Id: Ieb56e9c57fc5eb18e025fbc2f1d17a9d6e3f0a97 --- secop/client/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/secop/client/__init__.py b/secop/client/__init__.py index e01522a..1cd7b0d 100644 --- a/secop/client/__init__.py +++ b/secop/client/__init__.py @@ -243,7 +243,7 @@ class SecopClient(ProxyClient): self.secop_version = reply.decode('utf-8') else: raise self.error_map('HardwareError')('no answer to %s' % IDENTREQUEST) - if not self.secop_version.startswith(IDENTPREFIX): + if self.secop_version.split(',')[1] != 'SECoP': raise self.error_map('HardwareError')('bad answer to %s: %r' % (IDENTREQUEST, self.secop_version)) # now its safe to do secop stuff @@ -285,7 +285,7 @@ class SecopClient(ProxyClient): else: self.active_requests[key] = entry line = encode_msg_frame(*request) - self.log.debug('TX: %r', line) + self.log.debug('> %s', line.decode('utf-8')) self.io.send(line) self._txthread = None self.disconnect(False) @@ -302,6 +302,7 @@ class SecopClient(ProxyClient): # send ping to check if the connection is still alive self.queue_request(HEARTBEATREQUEST, str(noactivity)) continue + self.log.debug('< %s', reply.decode('utf-8')) noactivity = 0 action, ident, data = decode_msg(reply) if ident == '.': From 6c325460f75a4354472b5590f75e5451a1715a53 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 23 Jan 2023 17:44:27 +0100 Subject: [PATCH 18/30] make doc when .git is not there accept failure of secop.version.get_version() Change-Id: Ia689bd4f56b848bc354c0d68826a3174f0746a97 --- doc/source/conf.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index d319d15..e12c8ba 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,10 +66,14 @@ author = 'Enrico Faulhaber, Markus Zolliker' # |version| and |release|, also used in various other places throughout the # built documents. # -# The full version, including alpha/beta/rc tags. -release = get_version() -# The short X.Y version. -version = release.split('-')[0] +try: + # The full version, including alpha/beta/rc tags. + release = get_version() + # The short X.Y version. + version = release.split('-')[0] +except ValueError as e: + print('WARNING: %s' % e) + # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 7d4dfdebbd32b413aee862746e27290db7310844 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 23 Jan 2023 17:45:31 +0100 Subject: [PATCH 19/30] fix bug in k2601b convert returned float (which is integer) to int Change-Id: I8363f4d5188f2b1be89f1383da20c76522286424 --- secop_psi/k2601b.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/secop_psi/k2601b.py b/secop_psi/k2601b.py index 9538281..e1ce8d8 100644 --- a/secop_psi/k2601b.py +++ b/secop_psi/k2601b.py @@ -60,7 +60,7 @@ class SourceMeter(HasIO, Module): ioClass = K2601bIO def read_mode(self): - return float(self.communicate('print((smua.source.func+1)*smua.source.output)')) + return int(float(self.communicate('print((smua.source.func+1)*smua.source.output)'))) def write_mode(self, value): assert self.communicate(SOURCECMDS[value]) == 'ok' From 68b45978a7f031b4a9bb7e417659eae498b62590 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 23 Jan 2023 17:46:34 +0100 Subject: [PATCH 20/30] ppms.cfg: add target=0 in mf Change-Id: Ibccf95b54ba93a0b0648c61b7630ae376bf3e70e --- cfg/ppms.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/cfg/ppms.cfg b/cfg/ppms.cfg index 82cc65e..6091d00 100644 --- a/cfg/ppms.cfg +++ b/cfg/ppms.cfg @@ -12,6 +12,7 @@ io = ppms [mf] class = secop_psi.ppms.Field +target=0 target.min = -9 target.max = 9 description = magnetic field From b19a8c2e5ce6d309682eaad2075590738783f194 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Fri, 20 Jan 2023 15:36:52 +0100 Subject: [PATCH 21/30] converter for creating python config files + testmode in server returns errors + fix in (old) statemachine Change-Id: Icdfd6c3d8f70e717fecd61e8a54adad326be6000 --- bin/secop-convert | 174 +++++++++++++++++++++++++++++++++++++++++++++ secop/server.py | 4 +- secop_demo/cryo.py | 5 +- 3 files changed, 180 insertions(+), 3 deletions(-) create mode 100755 bin/secop-convert diff --git a/bin/secop-convert b/bin/secop-convert new file mode 100755 index 0000000..3d2fc8b --- /dev/null +++ b/bin/secop-convert @@ -0,0 +1,174 @@ +#!/usr/bin/env python3 +# pylint: disable=invalid-name +# -*- coding: utf-8 -*- +# ***************************************************************************** +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Enrico Faulhaber +# Alexander Lenz +# +# ***************************************************************************** + +import sys +from os import path + +# Add import path for inplace usage +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + +from secop.lib import generalConfig +from secop.logging import logger +from secop.server import Server +from secop.core import Attached +from secop.lib.enum import EnumMember + + +def rep(value): + if isinstance(value, EnumMember): + return repr(value.name) + return repr(value) + + +def guess(value): + try: + return '%.16g' % float(value) + except (TypeError, ValueError): + return rep(value) + + +def triplequote(description): + if '\n' in description: + return "'''%s'''" % '\n '.join(description.split('\n')) + else: + return repr(description) + + +def get_value(modobj, pname, value): + prop = modobj.propertyDict.get(pname) + if isinstance(prop, Attached): + return value + clsname = type(modobj).__qualname__ + if pname in {'extra_modules', 'single_module', 'rel_paths', 'json_file'} and clsname.startswith('Sea'): + return value.split() + if pname == 'extra_params' and clsname.startswith('Sim'): + return [v.strip() for v in value.split(',')] + if pname == 'remote_class' and type(modobj).__bases__[0].__name__.startswith('Proxy'): + return value + return getattr(modobj, pname) + + +generalConfig.defaults = {k: True for k in ( + 'lazy_number_validation', 'disable_value_range_check', 'legacy_hasiodev', 'tolerate_poll_property')} +generalConfig.init() +logger.init('off') + + +def main(cfgs): + stats = {} + for name in cfgs: + try: + content = [] + srv = Server(name, logger.log, cfgfiles=name, interface=5000, testonly=True) + if srv.node_cfg.get('class') is not None: + stats[name] = 'skip router' + continue + if 'FRAPPY' in srv.module_cfg: + stats[name] = 'skip genconfig' + continue + for modname, params in srv.module_cfg.items(): + classname = params['class'] + if classname == 'secop_psi.sea.SeaClient': + params['uri'] = 'none' + if 'iodev' in params: + params['io'] = params.pop('iodev') + if '.iodev' in params: + params['io'] = params.pop('.iodev') + node = dict(srv.node_cfg) + if 'description' in node: + content.append('Node(%r,\n %s,' % (node.pop('id'), triplequote(node.pop('description')))) + interface = srv.interface_cfg.get('uri') + if interface: + content.append(' interface=%r,' % interface) + for k, v in node.items(): + content.append(' %s=%s,' % (k, guess(v))) + content.append(')\n') + errors = srv._processCfg() + if errors: + content = ['# %s' % e[:120] for e in errors] + content + stats[name] = ', '.join(errors[:2]) + for modname, modcfg in srv.module_cfg.items(): + modobj = srv.dispatcher._modules.get(modname) + classname = modcfg.pop('class') + content.append('Mod(%r,\n %r,' % (modname, classname)) + description = modcfg.pop('description', None) + if description is not None: + content.append(' %s,' % triplequote(description)) + result = {} + for key, value in modcfg.items(): + pname, _, prop = key.partition('.') + if not pname: + pname, prop = prop, '' + elif pname == 'uri' and value == 'none': + continue + if prop: + pobj = modobj.parameters[pname] if modobj else None + if pobj: + try: + propvalue = rep(getattr(pobj, prop)) + except AttributeError: + propvalue = rep(getattr(pobj.datatype, prop)) + else: + propvalue = guess(value) + else: + prop = 'value' + if modobj: + propvalue = rep(get_value(modobj, pname, value)) + else: + propvalue = guess(value) + result.setdefault(pname, {})[prop] = propvalue + undef = object() + for pname, cfg in result.items(): + value = cfg.pop('value', undef) + if not cfg: + content.append(' %s=%s,' % (pname, value)) + else: + args = ['%s=%s' % kv for kv in cfg.items()] + if value is not undef: + args.insert(0, value) + joined = ' '.join(args) + head = ' %s=Param(' % pname + if len(joined) < 8: + content.append('%s%s),' % (head, ', '.join(args))) + else: + content.append('%s\n %s,\n ),' % (head, ',\n '.join(args))) + content.append(')\n') + with open('%s' % name.replace('.cfg', '_cfg.py'), 'w') as f: + f.write('\n'.join(content)) + stats[name] = '*' if name in stats else '' + except KeyboardInterrupt: + break + except BaseException as e: + stats[name] = repr(e) + if len(cfgs) == 1: + raise + + if len(cfgs) > 1: + with open('convert.log', 'w') as f: + f.write('\n'.join('%s: %s' % kv for kv in stats.items())+'\n') + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/secop/server.py b/secop/server.py index c46a5e0..2d64081 100644 --- a/secop/server.py +++ b/secop/server.py @@ -328,10 +328,12 @@ class Server: sys.stderr.write('\n') if failure_traceback: sys.stderr.write(failure_traceback) + if self._testonly: + return errors sys.exit(1) - if self._testonly: return + self.log.info('waiting for modules being started') start_events.name = None if not start_events.wait(): diff --git a/secop_demo/cryo.py b/secop_demo/cryo.py index 20533af..1fe1a5a 100644 --- a/secop_demo/cryo.py +++ b/secop_demo/cryo.py @@ -31,7 +31,8 @@ from secop.modules import Command, Drivable, Parameter # test custom property (value.test can be changed in config file) from secop.properties import Property -Parameter.propertyDict['test'] = Property('A Property for testing purposes', StringType(), default='', export=True) +class TestParameter(Parameter): + test = Property('A Property for testing purposes', StringType(), default='', export=True) class CryoBase(Drivable): @@ -73,7 +74,7 @@ class Cryostat(CryoBase): target = Parameter("target temperature", datatype=FloatRange(0), default=0, unit="K", readonly=False,) - value = Parameter("regulation temperature", + value = TestParameter("regulation temperature", datatype=FloatRange(0), default=0, unit="K", test='TEST') pid = Parameter("regulation coefficients", From 9fc6b6c0fda8fc23e80e591cd4cd31bef3e8c1a1 Mon Sep 17 00:00:00 2001 From: dmc Date: Tue, 2 May 2023 09:31:09 +0200 Subject: [PATCH 22/30] add ill3 and ori1 stick --- cfg/main/ill3_cfg.py | 74 +++++++++ cfg/sea/ill3.config.json | 308 +++++++++++++++++++++++++++++++++++++ cfg/stick/ill3stick_cfg.py | 20 +++ cfg/stick/ori1stick_cfg.py | 20 +++ 4 files changed, 422 insertions(+) create mode 100644 cfg/main/ill3_cfg.py create mode 100644 cfg/sea/ill3.config.json create mode 100644 cfg/stick/ill3stick_cfg.py create mode 100644 cfg/stick/ori1stick_cfg.py diff --git a/cfg/main/ill3_cfg.py b/cfg/main/ill3_cfg.py new file mode 100644 index 0000000..61ba18d --- /dev/null +++ b/cfg/main/ill3_cfg.py @@ -0,0 +1,74 @@ +Node('cfg/main/ill3.cfg', + 'orange cryofurnace with 70 mm sample space (low T)', + interface='5000', + name='ill3', +) + +Mod('sea_main', + 'secop_psi.sea.SeaClient', + 'main sea connection for ill3.config', + config='ill3.config', + service='main', +) + +Mod('tt', + 'secop_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'secop_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', + extra_modules=['h'], + visibility=2, +) + +Mod('lev', + 'secop_psi.sea.SeaReadable', + io='sea_main', + single_module=['cc.h'], +) + +Mod('nv', + 'secop_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'secop_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'secop_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'secop_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'secop_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('nvflow', + 'secop_psi.sea.SeaReadable', + io='sea_main', + sea_object='nvflow', +) + +Mod('table', + 'secop_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/sea/ill3.config.json b/cfg/sea/ill3.config.json new file mode 100644 index 0000000..2e15a12 --- /dev/null +++ b/cfg/sea/ill3.config.json @@ -0,0 +1,308 @@ +{"tt": {"base": "/tt", "params": [ +{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 17}, +{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "is_running", "type": "int", "readonly": false, "cmd": "tt is_running", "visibility": 3}, +{"path": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3}, +{"path": "target", "type": "float"}, +{"path": "running", "type": "int"}, +{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"}, +{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"}, +{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"}, +{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4}, +{"path": "log/mean", "type": "float", "visibility": 3}, +{"path": "log/m2", "type": "float", "visibility": 3}, +{"path": "log/stddev", "type": "float", "visibility": 3}, +{"path": "log/n", "type": "float", "visibility": 3}, +{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9}, +{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"}, +{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"}, +{"path": "dblctrl/shift_up", "type": "float"}, +{"path": "dblctrl/shift_lo", "type": "float"}, +{"path": "dblctrl/t_min", "type": "float"}, +{"path": "dblctrl/t_max", "type": "float"}, +{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"}, +{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"}, +{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"}, +{"path": "tm", "type": "float", "kids": 4}, +{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1}, +{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3}, +{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"}, +{"path": "tm/stddev", "type": "float"}, +{"path": "tm/raw", "type": "float"}, +{"path": "ts", "type": "float", "kids": 4}, +{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "kids": 1}, +{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3}, +{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm"}, +{"path": "ts/stddev", "type": "float"}, +{"path": "ts/raw", "type": "float"}, +{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4}, +{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1}, +{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3}, +{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3}, +{"path": "ts_2/stddev", "type": "float", "visibility": 3}, +{"path": "ts_2/raw", "type": "float", "visibility": 3}, +{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18}, +{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"}, +{"path": "set/reg", "type": "float"}, +{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"}, +{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"}, +{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"}, +{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"}, +{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"}, +{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"}, +{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"}, +{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"}, +{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"}, +{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"}, +{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"}, +{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"}, +{"path": "set/power", "type": "float"}, +{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"}, +{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"}, +{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"}, +{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"}, +{"path": "remote", "type": "bool"}]}, + +"cc": {"base": "/cc", "params": [ +{"path": "", "type": "bool", "kids": 96}, +{"path": "send", "type": "text", "readonly": false, "cmd": "cc send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "cc autodevice"}, +{"path": "fav", "type": "bool", "readonly": false, "cmd": "cc fav"}, +{"path": "f", "type": "float"}, +{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "cc fs"}, +{"path": "mav", "type": "bool", "readonly": false, "cmd": "cc mav"}, +{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}}, +{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "cc fa"}, +{"path": "mp", "type": "float", "readonly": false, "cmd": "cc mp"}, +{"path": "msp", "type": "float"}, +{"path": "mmp", "type": "float"}, +{"path": "mc", "type": "float", "readonly": false, "cmd": "cc mc"}, +{"path": "mfc", "type": "float", "readonly": false, "cmd": "cc mfc"}, +{"path": "moc", "type": "float", "readonly": false, "cmd": "cc moc"}, +{"path": "mtc", "type": "float", "readonly": false, "cmd": "cc mtc"}, +{"path": "mtl", "type": "float"}, +{"path": "mft", "type": "float", "readonly": false, "cmd": "cc mft"}, +{"path": "mt", "type": "float"}, +{"path": "mo", "type": "float"}, +{"path": "mcr", "type": "float"}, +{"path": "mot", "type": "float"}, +{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open"}, +{"path": "hav", "type": "bool", "readonly": false, "cmd": "cc hav"}, +{"path": "h", "type": "float"}, +{"path": "hr", "type": "float"}, +{"path": "hc", "type": "float"}, +{"path": "hu", "type": "float"}, +{"path": "hh", "type": "float", "readonly": false, "cmd": "cc hh"}, +{"path": "hl", "type": "float", "readonly": false, "cmd": "cc hl"}, +{"path": "htf", "type": "float", "readonly": false, "cmd": "cc htf", "description": "meas. period in fast mode"}, +{"path": "hts", "type": "float", "readonly": false, "cmd": "cc hts", "description": "meas. period in slow mode"}, +{"path": "hd", "type": "float", "readonly": false, "cmd": "cc hd"}, +{"path": "hwr", "type": "float", "readonly": false, "cmd": "cc hwr"}, +{"path": "hem", "type": "float", "readonly": false, "cmd": "cc hem", "description": "sensor length in mm from top to empty pos."}, +{"path": "hfu", "type": "float", "readonly": false, "cmd": "cc hfu", "description": "sensor length in mm from top to full pos."}, +{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "cc hcd"}, +{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}}, +{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "ha", "type": "bool", "readonly": false, "cmd": "cc ha"}, +{"path": "hm", "type": "bool"}, +{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"}, +{"path": "hbe", "type": "bool", "readonly": false, "cmd": "cc hbe"}, +{"path": "hmf", "type": "float"}, +{"path": "hms", "type": "float"}, +{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit"}, +{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft"}, +{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 6}, "readonly": false, "cmd": "cc hea"}, +{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch"}, +{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0"}, +{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos."}, +{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos."}, +{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)"}, +{"path": "h0", "type": "float"}, +{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "h1", "type": "float"}, +{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "h2", "type": "float"}, +{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "h3", "type": "float"}, +{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "h4", "type": "float"}, +{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "h5", "type": "float"}, +{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, +{"path": "hfb", "type": "float"}, +{"path": "nav", "type": "bool", "readonly": false, "cmd": "cc nav"}, +{"path": "nu", "type": "float"}, +{"path": "nl", "type": "float"}, +{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth"}, +{"path": "ntc", "type": "float", "readonly": false, "cmd": "cc ntc"}, +{"path": "ntm", "type": "float", "readonly": false, "cmd": "cc ntm"}, +{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}}, +{"path": "na", "type": "bool", "readonly": false, "cmd": "cc na"}, +{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}}, +{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "cc nc"}, +{"path": "nfb", "type": "float"}, +{"path": "cda", "type": "float"}, +{"path": "cdb", "type": "float"}, +{"path": "cba", "type": "float"}, +{"path": "cbb", "type": "float"}, +{"path": "cvs", "type": "int"}, +{"path": "csp", "type": "int"}, +{"path": "cdv", "type": "text", "readonly": false, "cmd": "cc cdv"}, +{"path": "cic", "type": "text", "readonly": false, "cmd": "cc cic"}, +{"path": "cin", "type": "text"}, +{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "cc cds"}, +{"path": "timing", "type": "bool", "readonly": false, "cmd": "cc timing"}, +{"path": "tc", "type": "float", "visibility": 3}, +{"path": "tn", "type": "float", "visibility": 3}, +{"path": "th", "type": "float", "visibility": 3}, +{"path": "tf", "type": "float", "visibility": 3}, +{"path": "tm", "type": "float", "visibility": 3}, +{"path": "tv", "type": "float", "visibility": 3}, +{"path": "tq", "type": "float", "visibility": 3}, +{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}, + +"nv": {"base": "/nv", "params": [ +{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11}, +{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}}, +{"path": "flow", "type": "float"}, +{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"}, +{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"}, +{"path": "flowp", "type": "float"}, +{"path": "span", "type": "float"}, +{"path": "ctrl", "type": "none", "kids": 13}, +{"path": "ctrl/regtext", "type": "text"}, +{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"}, +{"path": "ctrl/prop_c", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_c", "description": "prop [sec/mbar] when closing. above 4 mbar a 10 times lower value is used"}, +{"path": "ctrl/deriv_o", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_o", "description": "convergence target time [sec] when opening"}, +{"path": "ctrl/deriv_c", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_c", "description": "convergence target time [sec] when closing"}, +{"path": "ctrl/minpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_o", "description": "minimum close pulse [sec]"}, +{"path": "ctrl/minpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_c", "description": "standard close pulse [sec]"}, +{"path": "ctrl/hystpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_o", "description": "motor pulse to overcome hysteresis when opening"}, +{"path": "ctrl/hystpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_c", "description": "motor pulse to overcome hysteresis when closing"}, +{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol", "description": "valid below 3 mbar"}, +{"path": "ctrl/tolhigh", "type": "float", "readonly": false, "cmd": "nv ctrl/tolhigh", "description": "valid above 4 mbar"}, +{"path": "ctrl/openpulse", "type": "float", "readonly": false, "cmd": "nv ctrl/openpulse", "description": "time to open from completely closed to a significant opening"}, +{"path": "ctrl/adjust_minpulse", "type": "bool", "readonly": false, "cmd": "nv ctrl/adjust_minpulse", "description": "adjust minpulse automatically"}, +{"path": "autoflow", "type": "none", "kids": 24}, +{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "nv autoflow/suspended"}, +{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "nv autoflow/prop"}, +{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "nv autoflow/flowstd"}, +{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "nv autoflow/flowlim"}, +{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "nv autoflow/smooth"}, +{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "nv autoflow/difSize"}, +{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "nv autoflow/difRange"}, +{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "nv autoflow/flowSize"}, +{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "nv autoflow/convTime"}, +{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "nv autoflow/Tmin"}, +{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "nv autoflow/script"}, +{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "nv autoflow/getTemp"}, +{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "nv autoflow/getTset"}, +{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "nv autoflow/getFlow"}, +{"path": "autoflow/difBuf", "type": "text"}, +{"path": "autoflow/flowBuf", "type": "text"}, +{"path": "autoflow/flowset", "type": "float"}, +{"path": "autoflow/flowmin", "type": "float"}, +{"path": "autoflow/flowmax", "type": "float"}, +{"path": "autoflow/difmin", "type": "float"}, +{"path": "autoflow/difmax", "type": "float"}, +{"path": "autoflow/setmin", "type": "float"}, +{"path": "autoflow/setmax", "type": "float"}, +{"path": "autoflow/flowtarget", "type": "float"}, +{"path": "calib", "type": "none", "kids": 2}, +{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"}, +{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]}, + +"ln2fill": {"base": "/ln2fill", "params": [ +{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "ln2fill", "kids": 3}, +{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "state", "type": "text"}]}, + +"hefill": {"base": "/hefill", "params": [ +{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2, "manualfill": 3}, "readonly": false, "cmd": "hefill", "kids": 7}, +{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "fast", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"}, +{"path": "state", "type": "text"}, +{"path": "hefull", "type": "float", "readonly": false, "cmd": "cc hh"}, +{"path": "helow", "type": "float", "readonly": false, "cmd": "cc hl"}, +{"path": "smooth", "type": "float"}]}, + +"hepump": {"base": "/hepump", "params": [ +{"path": "", "type": "enum", "enum": {"xds35_auto": 0, "xds35_manual": 1, "sv65": 2, "other": 3, "no": -1}, "readonly": false, "cmd": "hepump", "description": "xds35: scroll pump, sv65: leybold", "kids": 10}, +{"path": "send", "type": "text", "readonly": false, "cmd": "hepump send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "running", "type": "bool", "readonly": false, "cmd": "hepump running"}, +{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco"}, +{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto"}, +{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve"}, +{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2"}, +{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3}, +{"path": "health", "type": "float"}]}, + +"hemot": {"base": "/hepump/hemot", "params": [ +{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "kids": 30}, +{"path": "send", "type": "text", "readonly": false, "cmd": "hemot send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "is_running", "type": "int", "readonly": false, "cmd": "hemot is_running", "visibility": 3}, +{"path": "pos", "type": "float"}, +{"path": "encoder", "type": "float"}, +{"path": "zero", "type": "float", "readonly": false, "cmd": "hemot zero"}, +{"path": "lowerlimit", "type": "float", "readonly": false, "cmd": "hemot lowerlimit"}, +{"path": "upperlimit", "type": "float", "readonly": false, "cmd": "hemot upperlimit"}, +{"path": "disablelimits", "type": "bool", "readonly": false, "cmd": "hemot disablelimits"}, +{"path": "verbose", "type": "bool", "readonly": false, "cmd": "hemot verbose"}, +{"path": "target", "type": "float"}, +{"path": "runstate", "type": "enum", "enum": {"idle": 0, "running": 1, "finished": 2, "error": 3}}, +{"path": "precision", "type": "float", "readonly": false, "cmd": "hemot precision"}, +{"path": "maxencdif", "type": "float", "readonly": false, "cmd": "hemot maxencdif"}, +{"path": "id", "type": "float", "readonly": false, "cmd": "hemot id"}, +{"path": "pump_number", "type": "float", "readonly": false, "cmd": "hemot pump_number"}, +{"path": "init", "type": "float", "readonly": false, "cmd": "hemot init"}, +{"path": "maxspeed", "type": "float", "readonly": false, "cmd": "hemot maxspeed"}, +{"path": "acceleration", "type": "float", "readonly": false, "cmd": "hemot acceleration"}, +{"path": "maxcurrent", "type": "float", "readonly": false, "cmd": "hemot maxcurrent"}, +{"path": "standbycurrent", "type": "float", "readonly": false, "cmd": "hemot standbycurrent"}, +{"path": "freewheeling", "type": "bool", "readonly": false, "cmd": "hemot freewheeling"}, +{"path": "output0", "type": "bool", "readonly": false, "cmd": "hemot output0"}, +{"path": "output1", "type": "bool", "readonly": false, "cmd": "hemot output1"}, +{"path": "input3", "type": "bool"}, +{"path": "pullup", "type": "float", "readonly": false, "cmd": "hemot pullup"}, +{"path": "nopumpfeedback", "type": "bool", "readonly": false, "cmd": "hemot nopumpfeedback"}, +{"path": "eeprom", "type": "enum", "enum": {"ok": 0, "dirty": 1, "save": 2, "load": 3}, "readonly": false, "cmd": "hemot eeprom"}, +{"path": "customadr", "type": "text", "readonly": false, "cmd": "hemot customadr"}, +{"path": "custompar", "type": "float", "readonly": false, "cmd": "hemot custompar"}]}, + +"nvflow": {"base": "/nvflow", "params": [ +{"path": "", "type": "float", "kids": 7}, +{"path": "send", "type": "text", "readonly": false, "cmd": "nvflow send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "stddev", "type": "float"}, +{"path": "nsamples", "type": "int", "readonly": false, "cmd": "nvflow nsamples"}, +{"path": "offset", "type": "float", "readonly": false, "cmd": "nvflow offset"}, +{"path": "scale", "type": "float", "readonly": false, "cmd": "nvflow scale"}, +{"path": "save", "type": "bool", "readonly": false, "cmd": "nvflow save", "description": "unchecked: current calib is not saved. set checked: save calib"}]}, + +"table": {"base": "/table", "params": [ +{"path": "", "type": "none", "kids": 17}, +{"path": "send", "type": "text", "readonly": false, "cmd": "table send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "fix_tt_set_prop", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_prop"}, +{"path": "val_tt_set_prop", "type": "float"}, +{"path": "tbl_tt_set_prop", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_prop", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}, +{"path": "fix_tt_set_integ", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_integ"}, +{"path": "val_tt_set_integ", "type": "float"}, +{"path": "tbl_tt_set_integ", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_integ", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}, +{"path": "fix_tt_dblctrl_int2", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_int2"}, +{"path": "val_tt_dblctrl_int2", "type": "float"}, +{"path": "tbl_tt_dblctrl_int2", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_int2", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}, +{"path": "fix_tt_dblctrl_prop_up", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_up"}, +{"path": "val_tt_dblctrl_prop_up", "type": "float"}, +{"path": "tbl_tt_dblctrl_prop_up", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_up", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}, +{"path": "fix_tt_dblctrl_prop_lo", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_lo"}, +{"path": "val_tt_dblctrl_prop_lo", "type": "float"}, +{"path": "tbl_tt_dblctrl_prop_lo", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_lo", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}]}} diff --git a/cfg/stick/ill3stick_cfg.py b/cfg/stick/ill3stick_cfg.py new file mode 100644 index 0000000..bb327e0 --- /dev/null +++ b/cfg/stick/ill3stick_cfg.py @@ -0,0 +1,20 @@ +Node('cfg/stick/ill3stick.cfg', + 'ILL3 standard sample stick', + interface='5000', + name='ill3stick', +) + +Mod('sea_stick', + 'secop_psi.sea.SeaClient', + 'SEA stick connection', + config='ill3.stick', + service='stick', +) + +Mod('ts', + 'secop_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill3.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ori1stick_cfg.py b/cfg/stick/ori1stick_cfg.py new file mode 100644 index 0000000..b1751d8 --- /dev/null +++ b/cfg/stick/ori1stick_cfg.py @@ -0,0 +1,20 @@ +Node('cfg/stick/ori1stick.cfg', + 'ORI1 standard sample stick', + interface='5000', + name='ori1stick', +) + +Mod('sea_stick', + 'secop_psi.sea.SeaClient', + 'SEA stick connection', + config='ori1.stick', + service='stick', +) + +Mod('ts', + 'secop_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill1.config.json'], + rel_paths=['ts'], +) From da15df076ab554e0c23758eeafe9f49b60d1df06 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Tue, 2 May 2023 11:31:30 +0200 Subject: [PATCH 23/30] fetched mlz version - before some chamges in the gerrit pipline Change-Id: I33eb2d75f83345a7039d0fb709e66defefb1c3e0 --- .description | 2 +- .gitignore | 1 + .isort.cfg | 8 + Makefile | 26 +- bin/{secop-cfg-editor => frappy-cfg-editor} | 6 +- bin/frappy-cli | 106 + bin/{secop-gui => frappy-gui} | 50 +- secop_psi/ls340res.py => bin/frappy-play | 36 +- bin/{secop-server => frappy-server} | 11 +- bin/{stringio-server => sim-server} | 109 +- cfg/QnwTC1_cfg.py | 24 + cfg/TFA10_cfg.py | 23 + cfg/addons/ah2700.cfg | 13 - cfg/addons/ah2700_cfg.py | 9 + cfg/addons/ah2700sea.cfg | 20 - cfg/addons/ah2700sea_cfg.py | 23 + cfg/addons/be-filter-boa.cfg | 14 - cfg/addons/be-filter-boa_cfg.py | 16 + cfg/addons/focus-be-filter.cfg | 14 - cfg/addons/focus-be-filter_cfg.py | 16 + cfg/addons/ls372.cfg | 22 - cfg/addons/ls372_cfg.py | 26 + cfg/addons/stickmotor.cfg | 16 - cfg/addons/stickmotor_cfg.py | 16 + cfg/ah2700test.cfg | 17 - cfg/ah2700test_cfg.py | 10 + cfg/amagnet.cfg | 111 - cfg/amagnet_cfg.py | 91 + cfg/ccr.cfg | 150 - cfg/ccr_cfg.py | 148 + cfg/cryo.cfg | 50 - cfg/cryo_cfg.py | 35 + cfg/demo.cfg | 43 - cfg/demo_cfg.py | 46 + cfg/develop/sea.cfg | 8 - cfg/develop/sea_cfg.py | 9 + cfg/develop/seadesc.cfg | 8 - cfg/develop/seadesc_cfg.py | 11 + cfg/dpm.cfg | 15 - cfg/dpm_cfg.py | 12 + cfg/epics.cfg | 50 - cfg/epics_cfg.py | 36 + cfg/lockin_cfg.py | 10 + cfg/ls240.cfg | 17 - cfg/ls240_cfg.py | 20 + cfg/ls336_cfg.py | 23 + cfg/ls340_cfg.py | 36 + cfg/ls370res.cfg | 25 - cfg/ls370res_cfg.py | 25 + cfg/ls370sim.cfg | 23 - cfg/ls370sim_cfg.py | 30 + cfg/ls370test.cfg | 21 - cfg/ls370test_cfg.py | 29 + cfg/main/ccr2.cfg | 20 - cfg/main/ccr2_cfg.py | 16 + cfg/main/ccr2ht.cfg | 27 - cfg/main/ccr2ht_cfg.py | 23 + cfg/main/ccr3.cfg | 14 - cfg/main/ccr3_cfg.py | 16 + cfg/main/cryosim.cfg | 43 - cfg/main/cryosim_cfg.py | 50 + cfg/main/cti5.cfg | 14 - cfg/main/cti5_cfg.py | 16 + cfg/main/cti7.cfg | 14 - cfg/main/cti7_cfg.py | 16 + cfg/main/cti7ht.cfg | 14 - cfg/main/cti7ht_cfg.py | 16 + cfg/main/fftf.cfg | 36 - cfg/main/fftf_cfg.py | 42 + cfg/main/flamemag.cfg | 168 - cfg/main/flamemag_cfg.py | 211 + cfg/main/flamp.cfg | 52 - cfg/main/flamp_cfg.py | 61 + cfg/main/fs.cfg | 21 - cfg/main/fs_cfg.py | 24 + cfg/main/ft.cfg | 22 - cfg/main/ft_cfg.py | 24 + cfg/main/ill1.cfg | 57 - cfg/main/ill1_cfg.py | 66 + cfg/main/ill4.cfg | 56 - cfg/main/ill4_cfg.py | 66 + cfg/main/ill5.cfg | 56 - cfg/main/ill5_cfg.py | 66 + cfg/main/ill5pgas5.cfg | 86 - cfg/main/ill5pgas5_cfg.py | 102 + cfg/main/jtccr.cfg | 112 - cfg/main/jtccr_cfg.py | 133 + cfg/main/ma02.cfg | 67 - cfg/main/ma02_cfg.py | 77 + cfg/main/ma10.cfg | 72 - cfg/main/ma10_cfg.py | 84 + cfg/main/ma11.cfg | 97 - cfg/main/ma11_cfg.py | 114 + cfg/main/ma6.cfg | 67 - cfg/main/ma6_cfg.py | 78 + cfg/main/ma7.cfg | 84 - cfg/main/ma7_cfg.py | 98 + cfg/main/magsim.cfg | 51 - cfg/main/magsim_cfg.py | 61 + cfg/main/mb11.cfg | 180 - cfg/main/mb11_cfg.py | 208 + cfg/main/mb11std.cfg | 206 - cfg/main/mb11std_cfg.py | 224 + cfg/main/ori3.cfg | 49 - cfg/main/ori3_cfg.py | 58 + cfg/main/ori4.cfg | 60 - cfg/main/ori4_cfg.py | 71 + cfg/main/ori6.cfg | 54 - cfg/main/ori6_cfg.py | 64 + cfg/main/smamor.cfg | 24 - cfg/main/smamor_cfg.py | 28 + cfg/main/variox.cfg | 49 - cfg/main/variox_cfg.py | 58 + cfg/multiplexer.cfg | 8 - cfg/multiplexer_cfg.py | 6 + cfg/ori.cfg | 5 - cfg/ori_cfg.py | 4 + cfg/phytron.cfg | 20 - cfg/phytron_cfg.py | 18 + cfg/ppms.cfg | 125 - cfg/ppms2.cfg | 124 - cfg/ppms2_cfg.py | 198 + cfg/ppms_cfg.py | 93 + cfg/ppms_proxy_test.cfg | 22 - cfg/ppms_proxy_test_cfg.py | 21 + cfg/ppmssim.cfg | 124 - cfg/ppmssim_cfg.py | 166 + cfg/ppmswin.cfg | 126 - cfg/ppmswin_cfg.py | 199 + cfg/prep2.cfg | 23 - cfg/prep2_cfg.py | 25 + cfg/prep5.cfg | 119 - cfg/prep5_cfg.py | 153 + cfg/prep6.cfg | 65 - cfg/prep6_cfg.py | 81 + cfg/router.cfg | 8 - cfg/router_cfg.py | 6 + cfg/sea.cfg | 8 - cfg/sea/variox.config.json1 | 287 - cfg/sea_cfg.py | 9 + cfg/senis3mh3.cfg | 19 - cfg/senis3mh3_cfg.py | 24 + cfg/senis3mh6.cfg | 55 - cfg/senis3mh6_cfg.py | 67 + cfg/sim.cfg | 23 - cfg/sim_cfg.py | 18 + cfg/sim_mlz_amagnet.cfg | 116 - cfg/sim_mlz_amagnet_cfg.py | 116 + cfg/sim_mlz_cci3he1.cfg | 93 - cfg/sim_mlz_cci3he1_cfg.py | 88 + cfg/sim_mlz_ccidu1.cfg | 107 - cfg/sim_mlz_ccidu1_cfg.py | 106 + cfg/sim_mlz_ccr12.cfg | 164 - cfg/sim_mlz_ccr12_cfg.py | 218 + cfg/sim_mlz_ccr12_v2.cfg | 155 - cfg/sim_mlz_ccr12_v2_cfg.py | 177 + cfg/sim_mlz_htf02.cfg | 33 - cfg/sim_mlz_htf02_cfg.py | 30 + cfg/sim_mlz_stressihtf2.cfg | 73 - cfg/sim_mlz_stressihtf2_cfg.py | 100 + cfg/sim_mlz_stressihtf2_v2.cfg | 73 - cfg/sim_mlz_stressihtf2_v2_cfg.py | 82 + cfg/sim_uniax.cfg | 44 - cfg/sim_uniax_cfg.py | 61 + cfg/softcal.cfg | 12 - cfg/softcal_cfg.py | 20 + cfg/stick/dil2.cfg | 64 - cfg/stick/dil2_cfg.py | 75 + cfg/stick/dil3.cfg | 64 - cfg/stick/dil3_cfg.py | 75 + cfg/stick/dil4.cfg | 64 - cfg/stick/dil4_cfg.py | 75 + cfg/stick/dil5.cfg | 210 - cfg/stick/dil5_cfg.py | 242 + cfg/stick/flamedil.cfg | 146 - cfg/stick/flamedil_cfg.py | 152 + cfg/stick/heliox.cfg | 38 - cfg/stick/heliox_cfg.py | 44 + cfg/stick/ill1stick.cfg | 17 - cfg/stick/ill1stick_cfg.py | 18 + cfg/stick/ill4stick.cfg | 17 - cfg/stick/ill4stick_cfg.py | 18 + cfg/stick/ill5p.cfg | 16 - cfg/stick/ill5p_cfg.py | 18 + cfg/stick/ill5stick.cfg | 16 - cfg/stick/ill5stick_cfg.py | 18 + cfg/stick/ma02stick.cfg | 17 - cfg/stick/ma02stick_cfg.py | 18 + cfg/stick/ma10stick.cfg | 17 - cfg/stick/ma10stick_cfg.py | 18 + cfg/stick/ma11stick.cfg | 17 - cfg/stick/ma11stick_cfg.py | 18 + cfg/stick/ma6stick.cfg | 17 - cfg/stick/ma6stick_cfg.py | 18 + cfg/stick/ma7stick.cfg | 17 - cfg/stick/ma7stick_cfg.py | 18 + cfg/stick/mb11stick.cfg | 44 - cfg/stick/mb11stick_cfg.py | 4 + cfg/stick/nostick.cfg | 10 - cfg/stick/nostick_cfg.py | 11 + cfg/stick/ori3stick.cfg | 16 - cfg/stick/ori3stick_cfg.py | 18 + cfg/stick/ori4stick.cfg | 16 - cfg/stick/ori4stick_cfg.py | 18 + cfg/stick/ori6stick.cfg | 16 - cfg/stick/ori6stick_cfg.py | 18 + cfg/stick/sch5.cfg | 22 - cfg/stick/sch5_cfg.py | 24 + cfg/stick/uniax.cfg | 9 - cfg/stressihtf2.cfg | 83 - cfg/stressihtf2_cfg.py | 96 + cfg/test.cfg | 46 - cfg/test_cfg.py | 53 + cfg/test_cryocombi.cfg | 55 - cfg/test_ppms_mf.cfg | 73 - cfg/test_ppms_mf_cfg.py | 17 + cfg/testcmd.cfg | 3 - cfg/testcmd_cfg.py | 4 + cfg/trinamic.cfg | 25 - cfg/trinamic_cfg.py | 24 + cfg/uniax.cfg | 60 - cfg/uniax_cfg.py | 58 + cfg/varioxb.cfg | 60 - cfg/varioxb_cfg.py | 73 + ci/Dockerfile | 13 +- ci/Jenkinsfile | 53 +- ci/README | 4 +- debian/README | 2 +- debian/changelog | 407 +- debian/control | 51 +- debian/copyright | 6 +- debian/frappy-core.install | 10 + debian/frappy-demo.install | 2 + debian/frappy-ess.install | 1 + debian/frappy-gui.install | 3 + debian/frappy-mlz.install | 1 + debian/frappy-psi.install | 1 + debian/rules | 4 +- debian/secop-core.install | 9 - debian/secop-demo.install | 2 - debian/secop-ess.install | 1 - debian/secop-gui.install | 3 - debian/secop-mlz.install | 1 - debian/secop-psi.install | 1 - doc/source/conf.py | 17 +- doc/source/configuration.rst | 58 + doc/source/frappy_demo.rst | 14 + doc/source/{secop_ess.rst => frappy_ess.rst} | 2 +- doc/source/{secop_mlz.rst => frappy_mlz.rst} | 4 +- doc/source/{secop_psi.rst => frappy_psi.rst} | 6 +- doc/source/index.rst | 12 +- doc/source/introduction.rst | 34 +- doc/source/magic.rst | 61 + doc/source/programming.rst | 99 + doc/source/reference.rst | 122 +- doc/source/secop_demo.rst | 10 - doc/source/server.rst | 61 +- doc/source/structure.rst | 83 + doc/source/tutorial.rst | 1 + doc/source/tutorial_helevel.rst | 88 +- doc/source/tutorial_t_control.rst | 406 + etc/{secop-generator => frappy-generator} | 22 +- etc/{secop.target => frappy.target} | 0 etc/{secop@.service => frappy@.service} | 4 +- {secop => frappy}/__init__.py | 0 {secop => frappy}/client/__init__.py | 213 +- frappy/client/interactive.py | 439 + frappy/config.py | 189 + {secop => frappy}/core.py | 47 +- {secop => frappy}/datatypes.py | 534 +- frappy/errors.py | 280 + {secop => frappy}/features.py | 64 +- {secop => frappy}/gui/__init__.py | 0 {secop => frappy}/gui/cfg_editor/__init__.py | 0 .../gui/cfg_editor/config_file.py | 41 +- .../gui/cfg_editor/mainwindow.py | 39 +- .../gui/cfg_editor/node_display.py | 15 +- .../gui/cfg_editor/tree_widget_item.py | 31 +- .../gui/cfg_editor/ui/add_dialog.ui | 0 .../gui/cfg_editor/ui/change_name_dialog.ui | 6 +- .../gui/cfg_editor/ui/mainwindow.ui | 96 +- .../gui/cfg_editor/ui/node_display.ui | 2 +- {secop => frappy}/gui/cfg_editor/utils.py | 51 +- {secop => frappy}/gui/cfg_editor/widgets.py | 77 +- frappy/gui/collapsible.py | 79 + frappy/gui/connection.py | 116 + frappy/gui/console.py | 210 + frappy/gui/inputwidgets.py | 62 + frappy/gui/logwindow.py | 94 + frappy/gui/mainwindow.py | 301 + frappy/gui/moduleoverview.py | 210 + frappy/gui/modulewidget.py | 454 + frappy/gui/nodewidget.py | 216 + {secop => frappy}/gui/params/__init__.py | 14 +- {secop => frappy}/gui/paramview.py | 15 +- frappy/gui/plotting.py | 144 + frappy/gui/qt.py | 71 + .../gui/resources_qt5.py | 9885 +++++++++++---- frappy/gui/resources_qt6.py | 10575 ++++++++++++++++ frappy/gui/tabwidget.py | 557 + {secop => frappy}/gui/ui/cmdbuttons.ui | 0 {secop => frappy}/gui/ui/cmddialog.ui | 0 frappy/gui/ui/console.ui | 120 + frappy/gui/ui/greeter.ui | 273 + frappy/gui/ui/logwindow.ui | 100 + frappy/gui/ui/mainwin.ui | 191 + frappy/gui/ui/modulewidget.ui | 235 + frappy/gui/ui/nodewidget.ui | 192 + {secop => frappy}/gui/ui/parambuttons.ui | 0 .../gui/ui/parambuttons_select.ui | 0 {secop => frappy}/gui/ui/paramview.ui | 86 +- frappy/gui/util.py | 77 + {secop => frappy}/gui/valuewidgets.py | 42 +- {secop => frappy}/io.py | 80 +- {secop => frappy}/lib/__init__.py | 58 +- {secop => frappy}/lib/asynconn.py | 99 +- {secop => frappy}/lib/classdoc.py | 30 +- {secop => frappy}/lib/enum.py | 24 +- {secop => frappy}/lib/multievent.py | 0 {secop => frappy}/lib/pidfile.py | 6 +- {secop => frappy}/lib/py35compat.py | 0 {secop => frappy}/lib/sequence.py | 12 +- .../lib/statemachine.py | 32 +- {secop => frappy}/logging.py | 12 +- frappy/mixins.py | 92 + {secop => frappy}/modules.py | 521 +- {secop => frappy}/params.py | 162 +- {secop => frappy}/parse.py | 6 +- {secop => frappy}/persistent.py | 92 +- frappy/playground.py | 137 + {secop => frappy}/properties.py | 42 +- {secop => frappy}/protocol/__init__.py | 0 {secop => frappy}/protocol/dispatcher.py | 86 +- .../protocol/interface/__init__.py | 0 {secop => frappy}/protocol/interface/tcp.py | 33 +- {secop => frappy}/protocol/interface/zmq.py | 0 {secop => frappy}/protocol/messages.py | 27 +- {secop => frappy}/protocol/router.py | 43 +- {secop => frappy}/proxy.py | 57 +- {secop => frappy}/rwhandler.py | 46 +- {secop => frappy}/server.py | 141 +- {secop => frappy}/simulation.py | 16 +- {secop => frappy}/states.py | 86 +- {secop => frappy}/version.py | 45 +- {secop_demo => frappy_demo}/__init__.py | 0 {secop_demo => frappy_demo}/cryo.py | 27 +- frappy_demo/lakeshore.py | 111 + frappy_demo/lscsim.py | 132 + {secop_demo => frappy_demo}/modules.py | 46 +- {secop_demo => frappy_demo}/test.py | 14 +- {secop_ess => frappy_ess}/__init__.py | 0 {secop_ess => frappy_ess}/epics.py | 9 +- {secop_mlz => frappy_mlz}/__init__.py | 0 {secop_mlz => frappy_mlz}/amagnet.py | 86 +- {secop_mlz => frappy_mlz}/entangle.py | 131 +- {secop_psi => frappy_psi}/FG_Lecroy_3000.py | 5 +- {secop_psi => frappy_psi}/SR_7270.py | 46 +- {secop_psi => frappy_psi}/__init__.py | 0 {secop_psi => frappy_psi}/ah2700.py | 23 +- {secop_psi => frappy_psi}/ccu4.py | 26 +- {secop_psi => frappy_psi}/channelswitcher.py | 34 +- {secop_psi => frappy_psi}/convergence.py | 31 +- {secop_psi => frappy_psi}/historywriter.py | 13 +- {secop_psi => frappy_psi}/k2601b.py | 10 +- frappy_psi/lakeshore.py | 324 + secop_psi/ls372.py => frappy_psi/ls370res.py | 146 +- {secop_psi => frappy_psi}/mercury.py | 290 +- frappy_psi/mixins.py | 97 + {secop_psi => frappy_psi}/motorvalve.py | 38 +- {secop_psi => frappy_psi}/ppms.py | 255 +- {secop_psi => frappy_psi}/ppmssim.py | 12 +- {secop_psi => frappy_psi}/ppmswindows.py | 0 frappy_psi/qnw.py | 148 + {secop_psi => frappy_psi}/softcal.py | 23 +- frappy_psi/thermofisher.py | 164 + {secop_psi => frappy_psi}/trinamic.py | 40 +- installer/README | 3 + installer/frappy-gui.spec | 33 + installer/utils.py | 43 + requirements-gui.txt | 3 + requirements-installer.txt | 1 + resources/SECoP-logo.svg | 71 + resources/SECoP_righttitle.svg | 223 + resources/SECoP_subtitle-light.svg | 223 + resources/SECoP_subtitle.svg | 223 + .../cfg_editor}/icons/add_comment.png | Bin .../cfg_editor}/icons/add_interface.png | Bin .../cfg_editor}/icons/add_module.png | Bin .../cfg_editor}/icons/add_parameter.png | Bin .../cfg_editor}/icons/add_property.png | Bin .../cfg_editor}/icons/comment.png | Bin .../cfg_editor}/icons/delete.png | Bin .../cfg_editor}/icons/duplicate.png | Bin .../cfg_editor}/icons/edit.png | Bin .../cfg_editor}/icons/empty.png | Bin .../cfg_editor}/icons/interface.png | Bin .../cfg_editor}/icons/module.png | Bin .../ui => resources/cfg_editor}/icons/new.png | Bin .../cfg_editor}/icons/open.png | Bin .../cfg_editor}/icons/parameter.png | Bin .../cfg_editor}/icons/property.png | Bin .../cfg_editor}/icons/save.png | Bin resources/frappy-gui.qrc | 44 + resources/icons/arrow-turn-180.png | Bin 0 -> 647 bytes resources/icons/bin.png | Bin 0 -> 648 bytes resources/icons/cross-circle.png | Bin 0 -> 729 bytes resources/icons/magnifier.png | Bin 0 -> 700 bytes resources/icons/plug--plus.png | Bin 0 -> 747 bytes resources/icons/system-monitor--plus.png | Bin 0 -> 654 bytes resources/icons/system-monitor.png | Bin 0 -> 547 bytes resources/leds/clear.png | Bin 0 -> 11647 bytes resources/leds/simplegray.png | Bin 0 -> 1520 bytes resources/leds/simplegreen.png | Bin 0 -> 1557 bytes resources/leds/simpleorange.png | Bin 0 -> 1550 bytes resources/leds/simplered.png | Bin 0 -> 1489 bytes resources/leds/simpleunknown.png | Bin 0 -> 10413 bytes resources/leds/simplewhite.png | Bin 0 -> 8701 bytes resources/leds/simpleyellow.png | Bin 0 -> 1319 bytes secop/client/interactive.py | 289 - secop/errors.py | 155 - secop/gui/cfg_editor/ui/icons/cfg-editor.qrc | 20 - secop/gui/icon_rc_qt4.py | 5915 --------- secop/gui/mainwindow.py | 237 - secop/gui/miniplot.py | 429 - secop/gui/modulectrl.py | 363 - secop/gui/nodectrl.py | 331 - secop/gui/qt.py | 63 - secop/gui/ui/mainwindow.ui | 187 - secop/gui/ui/modulebuttons.ui | 88 - secop/gui/ui/modulectrl.ui | 106 - secop/gui/ui/nodectrl.ui | 291 - secop/historywriter.py | 215 - secop/iohandler.py | 332 - secop/lib/statemachine.py | 321 - secop_psi/adq_mr.py | 294 - secop_psi/attocube.py | 264 - secop_psi/calcurves/.#x38622.inp.1.2 | 61 - secop_psi/calcurves/CStdILL.340x | 189 - secop_psi/calcurves/CX078_HIGH.340 | 159 - secop_psi/calcurves/D69874.340 | 117 - secop_psi/calcurves/D69875.340 | 118 - secop_psi/calcurves/LINRUO2.340 | 12 - secop_psi/calcurves/PT100BF.340 | 59 - secop_psi/calcurves/PT1012.340 | 59 - secop_psi/calcurves/PtStdILL.340x | 209 - secop_psi/calcurves/R10401.340 | 88 - secop_psi/calcurves/R10402.340 | 88 - secop_psi/calcurves/R10403.340 | 87 - secop_psi/calcurves/R10409.340 | 141 - secop_psi/calcurves/R10410.340 | 89 - secop_psi/calcurves/R10411.340 | 89 - secop_psi/calcurves/R10412.340 | 88 - secop_psi/calcurves/R10413.340 | 87 - secop_psi/calcurves/RC550.inp | 104 - secop_psi/calcurves/RCW575.inp | 100 - secop_psi/calcurves/RCW575_fit.inp | 107 - secop_psi/calcurves/RO600A_408.inp | 42 - secop_psi/calcurves/RX078.340 | 125 - secop_psi/calcurves/RX078_HIGH.340 | 125 - secop_psi/calcurves/RuO2392.inp | 60 - secop_psi/calcurves/U02045.340 | 157 - secop_psi/calcurves/U02269.340 | 140 - secop_psi/calcurves/U02272.340 | 139 - secop_psi/calcurves/UMEN102.340 | 126 - secop_psi/calcurves/X09941.340 | 144 - secop_psi/calcurves/X10045.340 | 139 - secop_psi/calcurves/X10051.340 | 139 - secop_psi/calcurves/X101105.340 | 152 - secop_psi/calcurves/X10409.340 | 141 - secop_psi/calcurves/X108579.340 | 150 - secop_psi/calcurves/X12532.340 | 159 - secop_psi/calcurves/X12533.340 | 158 - secop_psi/calcurves/X13089.340 | 156 - secop_psi/calcurves/X13090.340 | 155 - secop_psi/calcurves/X131164-Jakub_modif.340 | 159 - secop_psi/calcurves/X131175.340 | 159 - secop_psi/calcurves/X131346.340 | 157 - .../calcurves/X131693-Bernina_cryochamber.340 | 88 - secop_psi/calcurves/X132254.340 | 208 - secop_psi/calcurves/X133273.340 | 187 - secop_psi/calcurves/X133320.340 | 187 - secop_psi/calcurves/X133322.340 | 187 - secop_psi/calcurves/X14126.340 | 158 - secop_psi/calcurves/X14129.340 | 157 - secop_psi/calcurves/X14130.340 | 157 - secop_psi/calcurves/X141457.340 | 158 - secop_psi/calcurves/X14231.340 | 158 - secop_psi/calcurves/X143499-Jakub_modif.340 | 158 - secop_psi/calcurves/X143499.340 | 158 - secop_psi/calcurves/X15601.340 | 155 - secop_psi/calcurves/X22637.340 | 155 - secop_psi/calcurves/X22642.340 | 157 - secop_psi/calcurves/X22643.340 | 158 - secop_psi/calcurves/X22644.340 | 157 - secop_psi/calcurves/X24506.340 | 157 - secop_psi/calcurves/X31254.340 | 158 - secop_psi/calcurves/X31317.340 | 162 - secop_psi/calcurves/X31318.340 | 158 - secop_psi/calcurves/X31319.340 | 158 - secop_psi/calcurves/X31320.340 | 158 - secop_psi/calcurves/X33924.340 | 156 - secop_psi/calcurves/X34504.340 | 157 - secop_psi/calcurves/X34524.340 | 156 - secop_psi/calcurves/X34525.340 | 155 - secop_psi/calcurves/X34526.340 | 157 - secop_psi/calcurves/X50830.340 | 156 - secop_psi/calcurves/X50903.340 | 155 - secop_psi/calcurves/X50921.340 | 155 - secop_psi/calcurves/X50923.340 | 154 - secop_psi/calcurves/X51079.340 | 156 - secop_psi/calcurves/X58273.340 | 159 - secop_psi/calcurves/X58277.340 | 159 - secop_psi/calcurves/X58280.340 | 159 - secop_psi/calcurves/X58542.340 | 185 - secop_psi/calcurves/X58599.340 | 149 - secop_psi/calcurves/X58600.340 | 147 - secop_psi/calcurves/X63161.340 | 157 - secop_psi/calcurves/X63163.340 | 154 - secop_psi/calcurves/X63165.340 | 157 - secop_psi/calcurves/X63166.340 | 156 - secop_psi/calcurves/X63592.340 | 189 - secop_psi/calcurves/X63710.340 | 181 - secop_psi/calcurves/X63854.340 | 156 - secop_psi/calcurves/X63855.340 | 154 - secop_psi/calcurves/X63879.340 | 156 - secop_psi/calcurves/X63880.340 | 154 - secop_psi/calcurves/X63881.340 | 154 - secop_psi/calcurves/X63886.340 | 154 - secop_psi/calcurves/X64004.340 | 158 - secop_psi/calcurves/X64682.340 | 157 - secop_psi/calcurves/X64693.340 | 157 - secop_psi/calcurves/X66148.340 | 165 - secop_psi/calcurves/X67737.340 | 183 - secop_psi/calcurves/X68057.340 | 159 - secop_psi/calcurves/X68061.340 | 157 - secop_psi/calcurves/X68079.340 | 158 - secop_psi/calcurves/X68258.340 | 157 - secop_psi/calcurves/X68432.340 | 159 - secop_psi/calcurves/X68433.340 | 157 - secop_psi/calcurves/X70197.340 | 158 - secop_psi/calcurves/X70198.340 | 159 - secop_psi/calcurves/X70199.340 | 159 - secop_psi/calcurves/X70261.340 | 159 - secop_psi/calcurves/X70262.340 | 159 - secop_psi/calcurves/X70263.340 | 158 - secop_psi/calcurves/X70266.340 | 158 - secop_psi/calcurves/X70278.340 | 159 - secop_psi/calcurves/X70279.340 | 158 - secop_psi/calcurves/X71737.340 | 155 - secop_psi/calcurves/X71738.340 | 155 - secop_psi/calcurves/X71741.340 | 155 - secop_psi/calcurves/X71777.340 | 155 - secop_psi/calcurves/X71811.340 | 156 - secop_psi/calcurves/X74254.340 | 141 - secop_psi/calcurves/X75237.340 | 155 - secop_psi/calcurves/X75239.340 | 156 - secop_psi/calcurves/X75608.340 | 157 - secop_psi/calcurves/X75609.340 | 157 - secop_psi/calcurves/X75610.340 | 156 - secop_psi/calcurves/X77456.340 | 157 - secop_psi/calcurves/X77457.340 | 157 - secop_psi/calcurves/X85569.340 | 158 - secop_psi/calcurves/X85571.340 | 153 - secop_psi/calcurves/X86021.340 | 152 - secop_psi/calcurves/X86022.340 | 152 - secop_psi/calcurves/X86023.340 | 152 - secop_psi/calcurves/X86028.340 | 152 - secop_psi/calcurves/X88932.340 | 159 - secop_psi/calcurves/X88935.340 | 159 - secop_psi/calcurves/X88944.340 | 159 - secop_psi/calcurves/X88950.340 | 159 - secop_psi/calcurves/X88951.340 | 159 - secop_psi/calcurves/X89009.340 | 159 - secop_psi/calcurves/X89063.340 | 141 - secop_psi/calcurves/X89129.340 | 159 - secop_psi/calcurves/X89135.340 | 159 - secop_psi/calcurves/X89136.340 | 159 - secop_psi/calcurves/X89143.340 | 159 - secop_psi/calcurves/X92364.340 | 165 - secop_psi/calcurves/X94977.340 | 155 - secop_psi/calcurves/X94978.340 | 156 - secop_psi/calcurves/XCOND.340 | 11 - secop_psi/calcurves/XTTO002.340 | 184 - secop_psi/calcurves/XTTO002a.340 | 183 - secop_psi/calcurves/XTTO004.340 | 184 - secop_psi/calcurves/XTTO133.340 | 157 - secop_psi/calcurves/XTTO191.340 | 157 - secop_psi/calcurves/c020415.inp | 109 - secop_psi/calcurves/c030307.inp | 34 - secop_psi/calcurves/c030311.inp | 107 - secop_psi/calcurves/c1.inp | 74 - secop_psi/calcurves/c12900.inp | 87 - secop_psi/calcurves/c17844.inp | 93 - secop_psi/calcurves/c2.inp | 83 - secop_psi/calcurves/c270.inp | 75 - secop_psi/calcurves/c9r1al.inp | 62 - secop_psi/calcurves/c9r2ol.inp | 62 - secop_psi/calcurves/c9r3tc.inp | 62 - secop_psi/calcurves/c9r4bc.inp | 62 - secop_psi/calcurves/c_1.inp | 24 - secop_psi/calcurves/c_2.inp | 24 - secop_psi/calcurves/c_3.inp | 24 - secop_psi/calcurves/c_4.inp | 23 - secop_psi/calcurves/c_ab.inp | 70 - secop_psi/calcurves/c_ab270.inp | 67 - secop_psi/calcurves/c_ill.inp | 185 - secop_psi/calcurves/c_t.inp | 123 - secop_psi/calcurves/cab505.inp | 24 - secop_psi/calcurves/ccs130.inp | 65 - secop_psi/calcurves/cma11.inp | 23 - secop_psi/calcurves/cma11r1al.inp | 62 - secop_psi/calcurves/cma11r2ol.inp | 62 - secop_psi/calcurves/cma11r3lc.inp | 62 - secop_psi/calcurves/cma11r4rc.inp | 62 - secop_psi/calcurves/cma7.inp | 23 - secop_psi/calcurves/coil.inp | 18 - secop_psi/calcurves/cplus45.inp | 23 - secop_psi/calcurves/cplus70.inp | 23 - secop_psi/calcurves/cs405.inp | 51 - secop_psi/calcurves/cx078.inp | 180 - secop_psi/calcurves/cx198.inp | 180 - secop_psi/calcurves/cx19801.340 | 157 - secop_psi/calcurves/cx262.inp | 180 - secop_psi/calcurves/ds3b.inp | 76 - secop_psi/calcurves/dt-470.std | 5 - secop_psi/calcurves/dt-470custom.inp | 94 - secop_psi/calcurves/dt-670.std | 4 - secop_psi/calcurves/dt-670custom.340 | 118 - secop_psi/calcurves/g24741.inp | 57 - secop_psi/calcurves/g25328.inp | 69 - secop_psi/calcurves/g25550.inp | 69 - secop_psi/calcurves/g26550.inp | 68 - secop_psi/calcurves/g26552.inp | 69 - secop_psi/calcurves/gemark.inp | 105 - secop_psi/calcurves/gonio.inp | 97 - secop_psi/calcurves/logtest.inp | 8 - secop_psi/calcurves/m59.inp | 89 - secop_psi/calcurves/matsh100.inp | 59 - secop_psi/calcurves/mz020124.inp | 110 - secop_psi/calcurves/mz030500.inp | 126 - secop_psi/calcurves/pcry.inp | 84 - secop_psi/calcurves/psam.inp | 90 - secop_psi/calcurves/pt-100.std | 5 - secop_psi/calcurves/pt-1000.std | 5 - secop_psi/calcurves/pt1000e.inp | 51 - secop_psi/calcurves/pt1000m.inp | 51 - secop_psi/calcurves/pt100e.inp | 51 - secop_psi/calcurves/pt_ill.inp | 204 - secop_psi/calcurves/purge | 8 - secop_psi/calcurves/r3509.inp | 69 - secop_psi/calcurves/r3510.inp | 69 - secop_psi/calcurves/rhfe0734.inp | 124 - secop_psi/calcurves/rhfe4140.inp | 53 - secop_psi/calcurves/rhfe705.inp | 70 - secop_psi/calcurves/rhfe8119.inp | 66 - secop_psi/calcurves/rhfe8244.inp | 65 - secop_psi/calcurves/rhfe8733.inp | 51 - secop_psi/calcurves/rhfee188.340 | 138 - secop_psi/calcurves/ruox.inp | 68 - secop_psi/calcurves/ruox2447.inp | 91 - secop_psi/calcurves/ruox408.inp | 44 - secop_psi/calcurves/ruox5a.inp | 91 - secop_psi/calcurves/ruox5b.inp | 91 - secop_psi/calcurves/ruox5k.inp | 76 - secop_psi/calcurves/ruoxben1k.inp | 72 - secop_psi/calcurves/ruoxm0.inp | 62 - secop_psi/calcurves/ruoxm7.inp | 62 - secop_psi/calcurves/rx00000.340 | 31 - secop_psi/calcurves/rx03310.340 | 208 - secop_psi/calcurves/rx03312.340 | 209 - secop_psi/calcurves/rx078.inp | 180 - secop_psi/calcurves/rx102a.340 | 76 - secop_psi/calcurves/rx102aa.inp | 147 - secop_psi/calcurves/rx102b.340 | 78 - secop_psi/calcurves/rx1611.inp | 89 - secop_psi/calcurves/rx1976.inp | 63 - secop_psi/calcurves/rx198.inp | 180 - secop_psi/calcurves/rx19801.340 | 157 - secop_psi/calcurves/rx2435.inp | 65 - secop_psi/calcurves/rx262.inp | 180 - secop_psi/calcurves/rx270c.340 | 68 - secop_psi/calcurves/rxdil.inp | 62 - secop_psi/calcurves/speer220.inp | 70 - secop_psi/calcurves/std1.inp | 2 - secop_psi/calcurves/std4.inp | 2 - secop_psi/calcurves/std6.inp | 2 - secop_psi/calcurves/tpr010.inp | 33 - secop_psi/calcurves/type-c-k1000.inp | 1 - secop_psi/calcurves/type-c-k333.inp | 157 - secop_psi/calcurves/type-c.inp | 166 - secop_psi/calcurves/type-k.inp | 130 - secop_psi/calcurves/type-k.std | 3 - secop_psi/calcurves/type_c.inp | 157 - secop_psi/calcurves/type_n.inp | 140 - secop_psi/calcurves/u02045.inp | 94 - secop_psi/calcurves/x09629.inp | 91 - secop_psi/calcurves/x09882.inp | 93 - secop_psi/calcurves/x09883.inp | 95 - secop_psi/calcurves/x10045m.inp | 89 - secop_psi/calcurves/x112329.inp | 99 - secop_psi/calcurves/x112386.inp | 99 - secop_psi/calcurves/x12905.inp | 157 - secop_psi/calcurves/x14667.inp | 55 - secop_psi/calcurves/x15430.inp | 91 - secop_psi/calcurves/x15445.inp | 91 - secop_psi/calcurves/x17627.inp | 58 - secop_psi/calcurves/x2060.inp | 91 - secop_psi/calcurves/x22297.inp | 91 - secop_psi/calcurves/x22644k.inp | 91 - secop_psi/calcurves/x23167.inp | 93 - secop_psi/calcurves/x28611.inp | 63 - secop_psi/calcurves/x29630.inp | 54 - secop_psi/calcurves/x29746.inp | 55 - secop_psi/calcurves/x30906.inp | 63 - secop_psi/calcurves/x31254.inp | 88 - secop_psi/calcurves/x37342.inp | 88 - secop_psi/calcurves/x37346.inp | 88 - secop_psi/calcurves/x38604.inp | 91 - secop_psi/calcurves/x38622.inp | 94 - secop_psi/calcurves/x40188.inp | 91 - secop_psi/calcurves/x48581.inp | 88 - secop_psi/calcurves/x55918.inp | 100 - secop_psi/calcurves/xcond.inp | 13 - secop_psi/calcurves/z030114.inp | 67 - secop_psi/cryoltd.py | 584 - secop_psi/cryotel.py | 144 - secop_psi/dg645.py | 62 - secop_psi/dilsc.py | 97 - secop_psi/dpm.py | 125 - secop_psi/ips_mercury.py | 329 - secop_psi/iqplot.py | 102 - secop_psi/ls240.py | 102 - secop_psi/ls370res.py | 284 - secop_psi/ls370sim.py | 74 - secop_psi/magfield.py | 381 - secop_psi/phytron.py | 254 - secop_psi/sea.py | 703 - secop_psi/senis.py | 307 - secop_psi/simdpm.py | 49 - secop_psi/testcmd.py | 59 - secop_psi/testtemp.py | 78 - secop_psi/triton.py | 320 - secop_psi/ultrasound.py | 261 - secop_psi/uniax.py | 430 - secop_psi/vector.py | 89 - test/conftest.py | 4 +- test/test_attach.py | 4 +- test/test_datatypes.py | 329 +- test/test_errors.py | 28 +- test/test_handler.py | 55 +- test/test_iohandler.py | 202 - secop/gui/util.py => test/test_lib.py | 49 +- test/test_lib_enum.py | 13 +- test/test_logging.py | 15 +- test/test_modules.py | 355 +- test/test_msg.py | 6 +- test/test_multievent.py | 2 +- test/test_params.py | 26 +- test/test_parse.py | 2 +- test/test_persistent.py | 112 + test/test_poller.py | 9 +- test/test_properties.py | 11 +- test/test_statemachine.py | 277 +- test/test_status_members.py | 75 + tools/frappy-gui.desktop | 7 + 765 files changed, 35890 insertions(+), 59302 deletions(-) create mode 100644 .isort.cfg rename bin/{secop-cfg-editor => frappy-cfg-editor} (92%) create mode 100755 bin/frappy-cli rename bin/{secop-gui => frappy-gui} (53%) rename secop_psi/ls340res.py => bin/frappy-play (58%) mode change 100644 => 100755 rename bin/{secop-server => frappy-server} (92%) rename bin/{stringio-server => sim-server} (63%) create mode 100644 cfg/QnwTC1_cfg.py create mode 100644 cfg/TFA10_cfg.py delete mode 100644 cfg/addons/ah2700.cfg create mode 100644 cfg/addons/ah2700_cfg.py delete mode 100644 cfg/addons/ah2700sea.cfg create mode 100644 cfg/addons/ah2700sea_cfg.py delete mode 100644 cfg/addons/be-filter-boa.cfg create mode 100644 cfg/addons/be-filter-boa_cfg.py delete mode 100644 cfg/addons/focus-be-filter.cfg create mode 100644 cfg/addons/focus-be-filter_cfg.py delete mode 100644 cfg/addons/ls372.cfg create mode 100644 cfg/addons/ls372_cfg.py delete mode 100644 cfg/addons/stickmotor.cfg create mode 100644 cfg/addons/stickmotor_cfg.py delete mode 100644 cfg/ah2700test.cfg create mode 100644 cfg/ah2700test_cfg.py delete mode 100644 cfg/amagnet.cfg create mode 100644 cfg/amagnet_cfg.py delete mode 100644 cfg/ccr.cfg create mode 100644 cfg/ccr_cfg.py delete mode 100644 cfg/cryo.cfg create mode 100644 cfg/cryo_cfg.py delete mode 100644 cfg/demo.cfg create mode 100644 cfg/demo_cfg.py delete mode 100644 cfg/develop/sea.cfg create mode 100644 cfg/develop/sea_cfg.py delete mode 100644 cfg/develop/seadesc.cfg create mode 100644 cfg/develop/seadesc_cfg.py delete mode 100644 cfg/dpm.cfg create mode 100644 cfg/dpm_cfg.py delete mode 100644 cfg/epics.cfg create mode 100644 cfg/epics_cfg.py create mode 100644 cfg/lockin_cfg.py delete mode 100644 cfg/ls240.cfg create mode 100644 cfg/ls240_cfg.py create mode 100644 cfg/ls336_cfg.py create mode 100644 cfg/ls340_cfg.py delete mode 100644 cfg/ls370res.cfg create mode 100644 cfg/ls370res_cfg.py delete mode 100644 cfg/ls370sim.cfg create mode 100644 cfg/ls370sim_cfg.py delete mode 100644 cfg/ls370test.cfg create mode 100644 cfg/ls370test_cfg.py delete mode 100644 cfg/main/ccr2.cfg create mode 100644 cfg/main/ccr2_cfg.py delete mode 100644 cfg/main/ccr2ht.cfg create mode 100644 cfg/main/ccr2ht_cfg.py delete mode 100644 cfg/main/ccr3.cfg create mode 100644 cfg/main/ccr3_cfg.py delete mode 100644 cfg/main/cryosim.cfg create mode 100644 cfg/main/cryosim_cfg.py delete mode 100644 cfg/main/cti5.cfg create mode 100644 cfg/main/cti5_cfg.py delete mode 100644 cfg/main/cti7.cfg create mode 100644 cfg/main/cti7_cfg.py delete mode 100644 cfg/main/cti7ht.cfg create mode 100644 cfg/main/cti7ht_cfg.py delete mode 100644 cfg/main/fftf.cfg create mode 100644 cfg/main/fftf_cfg.py delete mode 100644 cfg/main/flamemag.cfg create mode 100644 cfg/main/flamemag_cfg.py delete mode 100644 cfg/main/flamp.cfg create mode 100644 cfg/main/flamp_cfg.py delete mode 100644 cfg/main/fs.cfg create mode 100644 cfg/main/fs_cfg.py delete mode 100644 cfg/main/ft.cfg create mode 100644 cfg/main/ft_cfg.py delete mode 100644 cfg/main/ill1.cfg create mode 100644 cfg/main/ill1_cfg.py delete mode 100644 cfg/main/ill4.cfg create mode 100644 cfg/main/ill4_cfg.py delete mode 100644 cfg/main/ill5.cfg create mode 100644 cfg/main/ill5_cfg.py delete mode 100644 cfg/main/ill5pgas5.cfg create mode 100644 cfg/main/ill5pgas5_cfg.py delete mode 100644 cfg/main/jtccr.cfg create mode 100644 cfg/main/jtccr_cfg.py delete mode 100644 cfg/main/ma02.cfg create mode 100644 cfg/main/ma02_cfg.py delete mode 100644 cfg/main/ma10.cfg create mode 100644 cfg/main/ma10_cfg.py delete mode 100644 cfg/main/ma11.cfg create mode 100644 cfg/main/ma11_cfg.py delete mode 100644 cfg/main/ma6.cfg create mode 100644 cfg/main/ma6_cfg.py delete mode 100644 cfg/main/ma7.cfg create mode 100644 cfg/main/ma7_cfg.py delete mode 100644 cfg/main/magsim.cfg create mode 100644 cfg/main/magsim_cfg.py delete mode 100644 cfg/main/mb11.cfg create mode 100644 cfg/main/mb11_cfg.py delete mode 100644 cfg/main/mb11std.cfg create mode 100644 cfg/main/mb11std_cfg.py delete mode 100644 cfg/main/ori3.cfg create mode 100644 cfg/main/ori3_cfg.py delete mode 100644 cfg/main/ori4.cfg create mode 100644 cfg/main/ori4_cfg.py delete mode 100644 cfg/main/ori6.cfg create mode 100644 cfg/main/ori6_cfg.py delete mode 100644 cfg/main/smamor.cfg create mode 100644 cfg/main/smamor_cfg.py delete mode 100644 cfg/main/variox.cfg create mode 100644 cfg/main/variox_cfg.py delete mode 100644 cfg/multiplexer.cfg create mode 100644 cfg/multiplexer_cfg.py delete mode 100644 cfg/ori.cfg create mode 100644 cfg/ori_cfg.py delete mode 100644 cfg/phytron.cfg create mode 100644 cfg/phytron_cfg.py delete mode 100644 cfg/ppms.cfg delete mode 100644 cfg/ppms2.cfg create mode 100644 cfg/ppms2_cfg.py create mode 100644 cfg/ppms_cfg.py delete mode 100644 cfg/ppms_proxy_test.cfg create mode 100644 cfg/ppms_proxy_test_cfg.py delete mode 100644 cfg/ppmssim.cfg create mode 100644 cfg/ppmssim_cfg.py delete mode 100644 cfg/ppmswin.cfg create mode 100644 cfg/ppmswin_cfg.py delete mode 100644 cfg/prep2.cfg create mode 100644 cfg/prep2_cfg.py delete mode 100644 cfg/prep5.cfg create mode 100644 cfg/prep5_cfg.py delete mode 100644 cfg/prep6.cfg create mode 100644 cfg/prep6_cfg.py delete mode 100644 cfg/router.cfg create mode 100644 cfg/router_cfg.py delete mode 100644 cfg/sea.cfg delete mode 100644 cfg/sea/variox.config.json1 create mode 100644 cfg/sea_cfg.py delete mode 100644 cfg/senis3mh3.cfg create mode 100644 cfg/senis3mh3_cfg.py delete mode 100644 cfg/senis3mh6.cfg create mode 100644 cfg/senis3mh6_cfg.py delete mode 100644 cfg/sim.cfg create mode 100644 cfg/sim_cfg.py delete mode 100644 cfg/sim_mlz_amagnet.cfg create mode 100644 cfg/sim_mlz_amagnet_cfg.py delete mode 100644 cfg/sim_mlz_cci3he1.cfg create mode 100644 cfg/sim_mlz_cci3he1_cfg.py delete mode 100644 cfg/sim_mlz_ccidu1.cfg create mode 100644 cfg/sim_mlz_ccidu1_cfg.py delete mode 100644 cfg/sim_mlz_ccr12.cfg create mode 100644 cfg/sim_mlz_ccr12_cfg.py delete mode 100644 cfg/sim_mlz_ccr12_v2.cfg create mode 100644 cfg/sim_mlz_ccr12_v2_cfg.py delete mode 100644 cfg/sim_mlz_htf02.cfg create mode 100644 cfg/sim_mlz_htf02_cfg.py delete mode 100644 cfg/sim_mlz_stressihtf2.cfg create mode 100644 cfg/sim_mlz_stressihtf2_cfg.py delete mode 100644 cfg/sim_mlz_stressihtf2_v2.cfg create mode 100644 cfg/sim_mlz_stressihtf2_v2_cfg.py delete mode 100644 cfg/sim_uniax.cfg create mode 100644 cfg/sim_uniax_cfg.py delete mode 100644 cfg/softcal.cfg create mode 100644 cfg/softcal_cfg.py delete mode 100644 cfg/stick/dil2.cfg create mode 100644 cfg/stick/dil2_cfg.py delete mode 100644 cfg/stick/dil3.cfg create mode 100644 cfg/stick/dil3_cfg.py delete mode 100644 cfg/stick/dil4.cfg create mode 100644 cfg/stick/dil4_cfg.py delete mode 100644 cfg/stick/dil5.cfg create mode 100644 cfg/stick/dil5_cfg.py delete mode 100644 cfg/stick/flamedil.cfg create mode 100644 cfg/stick/flamedil_cfg.py delete mode 100644 cfg/stick/heliox.cfg create mode 100644 cfg/stick/heliox_cfg.py delete mode 100644 cfg/stick/ill1stick.cfg create mode 100644 cfg/stick/ill1stick_cfg.py delete mode 100644 cfg/stick/ill4stick.cfg create mode 100644 cfg/stick/ill4stick_cfg.py delete mode 100644 cfg/stick/ill5p.cfg create mode 100644 cfg/stick/ill5p_cfg.py delete mode 100644 cfg/stick/ill5stick.cfg create mode 100644 cfg/stick/ill5stick_cfg.py delete mode 100644 cfg/stick/ma02stick.cfg create mode 100644 cfg/stick/ma02stick_cfg.py delete mode 100644 cfg/stick/ma10stick.cfg create mode 100644 cfg/stick/ma10stick_cfg.py delete mode 100644 cfg/stick/ma11stick.cfg create mode 100644 cfg/stick/ma11stick_cfg.py delete mode 100644 cfg/stick/ma6stick.cfg create mode 100644 cfg/stick/ma6stick_cfg.py delete mode 100644 cfg/stick/ma7stick.cfg create mode 100644 cfg/stick/ma7stick_cfg.py delete mode 100644 cfg/stick/mb11stick.cfg create mode 100644 cfg/stick/mb11stick_cfg.py delete mode 100644 cfg/stick/nostick.cfg create mode 100644 cfg/stick/nostick_cfg.py delete mode 100644 cfg/stick/ori3stick.cfg create mode 100644 cfg/stick/ori3stick_cfg.py delete mode 100644 cfg/stick/ori4stick.cfg create mode 100644 cfg/stick/ori4stick_cfg.py delete mode 100644 cfg/stick/ori6stick.cfg create mode 100644 cfg/stick/ori6stick_cfg.py delete mode 100644 cfg/stick/sch5.cfg create mode 100644 cfg/stick/sch5_cfg.py delete mode 100644 cfg/stick/uniax.cfg delete mode 100644 cfg/stressihtf2.cfg create mode 100644 cfg/stressihtf2_cfg.py delete mode 100644 cfg/test.cfg create mode 100644 cfg/test_cfg.py delete mode 100644 cfg/test_cryocombi.cfg delete mode 100644 cfg/test_ppms_mf.cfg create mode 100644 cfg/test_ppms_mf_cfg.py delete mode 100644 cfg/testcmd.cfg create mode 100644 cfg/testcmd_cfg.py delete mode 100644 cfg/trinamic.cfg create mode 100644 cfg/trinamic_cfg.py delete mode 100644 cfg/uniax.cfg create mode 100644 cfg/uniax_cfg.py delete mode 100644 cfg/varioxb.cfg create mode 100644 cfg/varioxb_cfg.py create mode 100644 debian/frappy-core.install create mode 100644 debian/frappy-demo.install create mode 100644 debian/frappy-ess.install create mode 100644 debian/frappy-gui.install create mode 100644 debian/frappy-mlz.install create mode 100644 debian/frappy-psi.install delete mode 100644 debian/secop-core.install delete mode 100644 debian/secop-demo.install delete mode 100644 debian/secop-ess.install delete mode 100644 debian/secop-gui.install delete mode 100644 debian/secop-mlz.install delete mode 100644 debian/secop-psi.install create mode 100644 doc/source/configuration.rst create mode 100644 doc/source/frappy_demo.rst rename doc/source/{secop_ess.rst => frappy_ess.rst} (64%) rename doc/source/{secop_mlz.rst => frappy_mlz.rst} (69%) rename doc/source/{secop_psi.rst => frappy_psi.rst} (73%) create mode 100644 doc/source/magic.rst create mode 100644 doc/source/programming.rst delete mode 100644 doc/source/secop_demo.rst create mode 100644 doc/source/structure.rst create mode 100644 doc/source/tutorial_t_control.rst rename etc/{secop-generator => frappy-generator} (78%) rename etc/{secop.target => frappy.target} (100%) rename etc/{secop@.service => frappy@.service} (63%) rename {secop => frappy}/__init__.py (100%) rename {secop => frappy}/client/__init__.py (77%) create mode 100644 frappy/client/interactive.py create mode 100644 frappy/config.py rename {secop => frappy}/core.py (51%) rename {secop => frappy}/datatypes.py (67%) create mode 100644 frappy/errors.py rename {secop => frappy}/features.py (56%) rename {secop => frappy}/gui/__init__.py (100%) rename {secop => frappy}/gui/cfg_editor/__init__.py (100%) rename {secop => frappy}/gui/cfg_editor/config_file.py (89%) rename {secop => frappy}/gui/cfg_editor/mainwindow.py (86%) rename {secop => frappy}/gui/cfg_editor/node_display.py (85%) rename {secop => frappy}/gui/cfg_editor/tree_widget_item.py (90%) rename {secop => frappy}/gui/cfg_editor/ui/add_dialog.ui (100%) rename {secop => frappy}/gui/cfg_editor/ui/change_name_dialog.ui (95%) rename {secop => frappy}/gui/cfg_editor/ui/mainwindow.ui (88%) rename {secop => frappy}/gui/cfg_editor/ui/node_display.ui (97%) rename {secop => frappy}/gui/cfg_editor/utils.py (80%) rename {secop => frappy}/gui/cfg_editor/widgets.py (88%) create mode 100644 frappy/gui/collapsible.py create mode 100644 frappy/gui/connection.py create mode 100644 frappy/gui/console.py create mode 100644 frappy/gui/inputwidgets.py create mode 100644 frappy/gui/logwindow.py create mode 100644 frappy/gui/mainwindow.py create mode 100644 frappy/gui/moduleoverview.py create mode 100644 frappy/gui/modulewidget.py create mode 100644 frappy/gui/nodewidget.py rename {secop => frappy}/gui/params/__init__.py (94%) rename {secop => frappy}/gui/paramview.py (84%) create mode 100644 frappy/gui/plotting.py create mode 100644 frappy/gui/qt.py rename secop/gui/icon_rc_qt5.py => frappy/gui/resources_qt5.py (55%) create mode 100644 frappy/gui/resources_qt6.py create mode 100644 frappy/gui/tabwidget.py rename {secop => frappy}/gui/ui/cmdbuttons.ui (100%) rename {secop => frappy}/gui/ui/cmddialog.ui (100%) create mode 100644 frappy/gui/ui/console.ui create mode 100644 frappy/gui/ui/greeter.ui create mode 100644 frappy/gui/ui/logwindow.ui create mode 100644 frappy/gui/ui/mainwin.ui create mode 100644 frappy/gui/ui/modulewidget.ui create mode 100644 frappy/gui/ui/nodewidget.ui rename {secop => frappy}/gui/ui/parambuttons.ui (100%) rename {secop => frappy}/gui/ui/parambuttons_select.ui (100%) rename {secop => frappy}/gui/ui/paramview.ui (63%) create mode 100644 frappy/gui/util.py rename {secop => frappy}/gui/valuewidgets.py (88%) rename {secop => frappy}/io.py (85%) rename {secop => frappy}/lib/__init__.py (88%) rename {secop => frappy}/lib/asynconn.py (75%) rename {secop => frappy}/lib/classdoc.py (86%) rename {secop => frappy}/lib/enum.py (93%) rename {secop => frappy}/lib/multievent.py (100%) rename {secop => frappy}/lib/pidfile.py (92%) rename {secop => frappy}/lib/py35compat.py (100%) rename {secop => frappy}/lib/sequence.py (94%) rename secop/lib/newstatemachine.py => frappy/lib/statemachine.py (88%) rename {secop => frappy}/logging.py (94%) create mode 100644 frappy/mixins.py rename {secop => frappy}/modules.py (66%) rename {secop => frappy}/params.py (77%) rename {secop => frappy}/parse.py (95%) rename {secop => frappy}/persistent.py (65%) create mode 100644 frappy/playground.py rename {secop => frappy}/properties.py (82%) rename {secop => frappy}/protocol/__init__.py (100%) rename {secop => frappy}/protocol/dispatcher.py (83%) rename {secop => frappy}/protocol/interface/__init__.py (100%) rename {secop => frappy}/protocol/interface/tcp.py (88%) rename {secop => frappy}/protocol/interface/zmq.py (100%) rename {secop => frappy}/protocol/messages.py (79%) rename {secop => frappy}/protocol/router.py (84%) rename {secop => frappy}/proxy.py (80%) rename {secop => frappy}/rwhandler.py (85%) rename {secop => frappy}/server.py (65%) rename {secop => frappy}/simulation.py (89%) rename {secop => frappy}/states.py (65%) rename {secop => frappy}/version.py (64%) rename {secop_demo => frappy_demo}/__init__.py (100%) rename {secop_demo => frappy_demo}/cryo.py (95%) create mode 100644 frappy_demo/lakeshore.py create mode 100644 frappy_demo/lscsim.py rename {secop_demo => frappy_demo}/modules.py (91%) rename {secop_demo => frappy_demo}/test.py (85%) rename {secop_ess => frappy_ess}/__init__.py (100%) rename {secop_ess => frappy_ess}/epics.py (96%) rename {secop_mlz => frappy_mlz}/__init__.py (100%) rename {secop_mlz => frappy_mlz}/amagnet.py (80%) rename {secop_mlz => frappy_mlz}/entangle.py (91%) rename {secop_psi => frappy_psi}/FG_Lecroy_3000.py (97%) rename {secop_psi => frappy_psi}/SR_7270.py (85%) rename {secop_psi => frappy_psi}/__init__.py (100%) rename {secop_psi => frappy_psi}/ah2700.py (85%) rename {secop_psi => frappy_psi}/ccu4.py (82%) rename {secop_psi => frappy_psi}/channelswitcher.py (86%) rename {secop_psi => frappy_psi}/convergence.py (92%) rename {secop_psi => frappy_psi}/historywriter.py (93%) rename {secop_psi => frappy_psi}/k2601b.py (93%) create mode 100644 frappy_psi/lakeshore.py rename secop_psi/ls372.py => frappy_psi/ls370res.py (75%) rename {secop_psi => frappy_psi}/mercury.py (65%) create mode 100644 frappy_psi/mixins.py rename {secop_psi => frappy_psi}/motorvalve.py (92%) rename {secop_psi => frappy_psi}/ppms.py (76%) rename {secop_psi => frappy_psi}/ppmssim.py (96%) rename {secop_psi => frappy_psi}/ppmswindows.py (100%) create mode 100644 frappy_psi/qnw.py rename {secop_psi => frappy_psi}/softcal.py (91%) create mode 100644 frappy_psi/thermofisher.py rename {secop_psi => frappy_psi}/trinamic.py (92%) create mode 100644 installer/README create mode 100644 installer/frappy-gui.spec create mode 100644 installer/utils.py create mode 100644 requirements-gui.txt create mode 100644 requirements-installer.txt create mode 100644 resources/SECoP-logo.svg create mode 100644 resources/SECoP_righttitle.svg create mode 100644 resources/SECoP_subtitle-light.svg create mode 100644 resources/SECoP_subtitle.svg rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/add_comment.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/add_interface.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/add_module.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/add_parameter.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/add_property.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/comment.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/delete.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/duplicate.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/edit.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/empty.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/interface.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/module.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/new.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/open.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/parameter.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/property.png (100%) rename {secop/gui/cfg_editor/ui => resources/cfg_editor}/icons/save.png (100%) create mode 100644 resources/frappy-gui.qrc create mode 100644 resources/icons/arrow-turn-180.png create mode 100644 resources/icons/bin.png create mode 100644 resources/icons/cross-circle.png create mode 100644 resources/icons/magnifier.png create mode 100644 resources/icons/plug--plus.png create mode 100644 resources/icons/system-monitor--plus.png create mode 100644 resources/icons/system-monitor.png create mode 100644 resources/leds/clear.png create mode 100644 resources/leds/simplegray.png create mode 100644 resources/leds/simplegreen.png create mode 100644 resources/leds/simpleorange.png create mode 100644 resources/leds/simplered.png create mode 100644 resources/leds/simpleunknown.png create mode 100644 resources/leds/simplewhite.png create mode 100644 resources/leds/simpleyellow.png delete mode 100644 secop/client/interactive.py delete mode 100644 secop/errors.py delete mode 100644 secop/gui/cfg_editor/ui/icons/cfg-editor.qrc delete mode 100644 secop/gui/icon_rc_qt4.py delete mode 100644 secop/gui/mainwindow.py delete mode 100644 secop/gui/miniplot.py delete mode 100644 secop/gui/modulectrl.py delete mode 100644 secop/gui/nodectrl.py delete mode 100644 secop/gui/qt.py delete mode 100644 secop/gui/ui/mainwindow.ui delete mode 100644 secop/gui/ui/modulebuttons.ui delete mode 100644 secop/gui/ui/modulectrl.ui delete mode 100644 secop/gui/ui/nodectrl.ui delete mode 100644 secop/historywriter.py delete mode 100644 secop/iohandler.py delete mode 100644 secop/lib/statemachine.py delete mode 100644 secop_psi/adq_mr.py delete mode 100644 secop_psi/attocube.py delete mode 100644 secop_psi/calcurves/.#x38622.inp.1.2 delete mode 100644 secop_psi/calcurves/CStdILL.340x delete mode 100644 secop_psi/calcurves/CX078_HIGH.340 delete mode 100644 secop_psi/calcurves/D69874.340 delete mode 100644 secop_psi/calcurves/D69875.340 delete mode 100644 secop_psi/calcurves/LINRUO2.340 delete mode 100644 secop_psi/calcurves/PT100BF.340 delete mode 100644 secop_psi/calcurves/PT1012.340 delete mode 100644 secop_psi/calcurves/PtStdILL.340x delete mode 100644 secop_psi/calcurves/R10401.340 delete mode 100644 secop_psi/calcurves/R10402.340 delete mode 100644 secop_psi/calcurves/R10403.340 delete mode 100644 secop_psi/calcurves/R10409.340 delete mode 100644 secop_psi/calcurves/R10410.340 delete mode 100644 secop_psi/calcurves/R10411.340 delete mode 100644 secop_psi/calcurves/R10412.340 delete mode 100644 secop_psi/calcurves/R10413.340 delete mode 100644 secop_psi/calcurves/RC550.inp delete mode 100644 secop_psi/calcurves/RCW575.inp delete mode 100644 secop_psi/calcurves/RCW575_fit.inp delete mode 100644 secop_psi/calcurves/RO600A_408.inp delete mode 100644 secop_psi/calcurves/RX078.340 delete mode 100644 secop_psi/calcurves/RX078_HIGH.340 delete mode 100644 secop_psi/calcurves/RuO2392.inp delete mode 100644 secop_psi/calcurves/U02045.340 delete mode 100644 secop_psi/calcurves/U02269.340 delete mode 100644 secop_psi/calcurves/U02272.340 delete mode 100644 secop_psi/calcurves/UMEN102.340 delete mode 100644 secop_psi/calcurves/X09941.340 delete mode 100644 secop_psi/calcurves/X10045.340 delete mode 100644 secop_psi/calcurves/X10051.340 delete mode 100644 secop_psi/calcurves/X101105.340 delete mode 100644 secop_psi/calcurves/X10409.340 delete mode 100644 secop_psi/calcurves/X108579.340 delete mode 100644 secop_psi/calcurves/X12532.340 delete mode 100644 secop_psi/calcurves/X12533.340 delete mode 100644 secop_psi/calcurves/X13089.340 delete mode 100644 secop_psi/calcurves/X13090.340 delete mode 100644 secop_psi/calcurves/X131164-Jakub_modif.340 delete mode 100644 secop_psi/calcurves/X131175.340 delete mode 100644 secop_psi/calcurves/X131346.340 delete mode 100644 secop_psi/calcurves/X131693-Bernina_cryochamber.340 delete mode 100644 secop_psi/calcurves/X132254.340 delete mode 100644 secop_psi/calcurves/X133273.340 delete mode 100644 secop_psi/calcurves/X133320.340 delete mode 100644 secop_psi/calcurves/X133322.340 delete mode 100644 secop_psi/calcurves/X14126.340 delete mode 100644 secop_psi/calcurves/X14129.340 delete mode 100644 secop_psi/calcurves/X14130.340 delete mode 100644 secop_psi/calcurves/X141457.340 delete mode 100644 secop_psi/calcurves/X14231.340 delete mode 100644 secop_psi/calcurves/X143499-Jakub_modif.340 delete mode 100644 secop_psi/calcurves/X143499.340 delete mode 100644 secop_psi/calcurves/X15601.340 delete mode 100644 secop_psi/calcurves/X22637.340 delete mode 100644 secop_psi/calcurves/X22642.340 delete mode 100644 secop_psi/calcurves/X22643.340 delete mode 100644 secop_psi/calcurves/X22644.340 delete mode 100644 secop_psi/calcurves/X24506.340 delete mode 100644 secop_psi/calcurves/X31254.340 delete mode 100644 secop_psi/calcurves/X31317.340 delete mode 100644 secop_psi/calcurves/X31318.340 delete mode 100644 secop_psi/calcurves/X31319.340 delete mode 100644 secop_psi/calcurves/X31320.340 delete mode 100644 secop_psi/calcurves/X33924.340 delete mode 100644 secop_psi/calcurves/X34504.340 delete mode 100644 secop_psi/calcurves/X34524.340 delete mode 100644 secop_psi/calcurves/X34525.340 delete mode 100644 secop_psi/calcurves/X34526.340 delete mode 100644 secop_psi/calcurves/X50830.340 delete mode 100644 secop_psi/calcurves/X50903.340 delete mode 100644 secop_psi/calcurves/X50921.340 delete mode 100644 secop_psi/calcurves/X50923.340 delete mode 100644 secop_psi/calcurves/X51079.340 delete mode 100644 secop_psi/calcurves/X58273.340 delete mode 100644 secop_psi/calcurves/X58277.340 delete mode 100644 secop_psi/calcurves/X58280.340 delete mode 100644 secop_psi/calcurves/X58542.340 delete mode 100644 secop_psi/calcurves/X58599.340 delete mode 100644 secop_psi/calcurves/X58600.340 delete mode 100644 secop_psi/calcurves/X63161.340 delete mode 100644 secop_psi/calcurves/X63163.340 delete mode 100644 secop_psi/calcurves/X63165.340 delete mode 100644 secop_psi/calcurves/X63166.340 delete mode 100644 secop_psi/calcurves/X63592.340 delete mode 100644 secop_psi/calcurves/X63710.340 delete mode 100644 secop_psi/calcurves/X63854.340 delete mode 100644 secop_psi/calcurves/X63855.340 delete mode 100644 secop_psi/calcurves/X63879.340 delete mode 100644 secop_psi/calcurves/X63880.340 delete mode 100644 secop_psi/calcurves/X63881.340 delete mode 100644 secop_psi/calcurves/X63886.340 delete mode 100644 secop_psi/calcurves/X64004.340 delete mode 100644 secop_psi/calcurves/X64682.340 delete mode 100644 secop_psi/calcurves/X64693.340 delete mode 100644 secop_psi/calcurves/X66148.340 delete mode 100644 secop_psi/calcurves/X67737.340 delete mode 100644 secop_psi/calcurves/X68057.340 delete mode 100644 secop_psi/calcurves/X68061.340 delete mode 100644 secop_psi/calcurves/X68079.340 delete mode 100644 secop_psi/calcurves/X68258.340 delete mode 100644 secop_psi/calcurves/X68432.340 delete mode 100644 secop_psi/calcurves/X68433.340 delete mode 100644 secop_psi/calcurves/X70197.340 delete mode 100644 secop_psi/calcurves/X70198.340 delete mode 100644 secop_psi/calcurves/X70199.340 delete mode 100644 secop_psi/calcurves/X70261.340 delete mode 100644 secop_psi/calcurves/X70262.340 delete mode 100644 secop_psi/calcurves/X70263.340 delete mode 100644 secop_psi/calcurves/X70266.340 delete mode 100644 secop_psi/calcurves/X70278.340 delete mode 100644 secop_psi/calcurves/X70279.340 delete mode 100644 secop_psi/calcurves/X71737.340 delete mode 100644 secop_psi/calcurves/X71738.340 delete mode 100644 secop_psi/calcurves/X71741.340 delete mode 100644 secop_psi/calcurves/X71777.340 delete mode 100644 secop_psi/calcurves/X71811.340 delete mode 100644 secop_psi/calcurves/X74254.340 delete mode 100644 secop_psi/calcurves/X75237.340 delete mode 100644 secop_psi/calcurves/X75239.340 delete mode 100644 secop_psi/calcurves/X75608.340 delete mode 100644 secop_psi/calcurves/X75609.340 delete mode 100644 secop_psi/calcurves/X75610.340 delete mode 100644 secop_psi/calcurves/X77456.340 delete mode 100644 secop_psi/calcurves/X77457.340 delete mode 100644 secop_psi/calcurves/X85569.340 delete mode 100644 secop_psi/calcurves/X85571.340 delete mode 100644 secop_psi/calcurves/X86021.340 delete mode 100644 secop_psi/calcurves/X86022.340 delete mode 100644 secop_psi/calcurves/X86023.340 delete mode 100644 secop_psi/calcurves/X86028.340 delete mode 100644 secop_psi/calcurves/X88932.340 delete mode 100644 secop_psi/calcurves/X88935.340 delete mode 100644 secop_psi/calcurves/X88944.340 delete mode 100644 secop_psi/calcurves/X88950.340 delete mode 100644 secop_psi/calcurves/X88951.340 delete mode 100644 secop_psi/calcurves/X89009.340 delete mode 100644 secop_psi/calcurves/X89063.340 delete mode 100644 secop_psi/calcurves/X89129.340 delete mode 100644 secop_psi/calcurves/X89135.340 delete mode 100644 secop_psi/calcurves/X89136.340 delete mode 100644 secop_psi/calcurves/X89143.340 delete mode 100644 secop_psi/calcurves/X92364.340 delete mode 100644 secop_psi/calcurves/X94977.340 delete mode 100644 secop_psi/calcurves/X94978.340 delete mode 100644 secop_psi/calcurves/XCOND.340 delete mode 100644 secop_psi/calcurves/XTTO002.340 delete mode 100644 secop_psi/calcurves/XTTO002a.340 delete mode 100644 secop_psi/calcurves/XTTO004.340 delete mode 100644 secop_psi/calcurves/XTTO133.340 delete mode 100644 secop_psi/calcurves/XTTO191.340 delete mode 100644 secop_psi/calcurves/c020415.inp delete mode 100644 secop_psi/calcurves/c030307.inp delete mode 100644 secop_psi/calcurves/c030311.inp delete mode 100644 secop_psi/calcurves/c1.inp delete mode 100644 secop_psi/calcurves/c12900.inp delete mode 100644 secop_psi/calcurves/c17844.inp delete mode 100644 secop_psi/calcurves/c2.inp delete mode 100644 secop_psi/calcurves/c270.inp delete mode 100644 secop_psi/calcurves/c9r1al.inp delete mode 100644 secop_psi/calcurves/c9r2ol.inp delete mode 100644 secop_psi/calcurves/c9r3tc.inp delete mode 100644 secop_psi/calcurves/c9r4bc.inp delete mode 100644 secop_psi/calcurves/c_1.inp delete mode 100644 secop_psi/calcurves/c_2.inp delete mode 100644 secop_psi/calcurves/c_3.inp delete mode 100644 secop_psi/calcurves/c_4.inp delete mode 100644 secop_psi/calcurves/c_ab.inp delete mode 100644 secop_psi/calcurves/c_ab270.inp delete mode 100644 secop_psi/calcurves/c_ill.inp delete mode 100644 secop_psi/calcurves/c_t.inp delete mode 100644 secop_psi/calcurves/cab505.inp delete mode 100644 secop_psi/calcurves/ccs130.inp delete mode 100644 secop_psi/calcurves/cma11.inp delete mode 100644 secop_psi/calcurves/cma11r1al.inp delete mode 100644 secop_psi/calcurves/cma11r2ol.inp delete mode 100644 secop_psi/calcurves/cma11r3lc.inp delete mode 100644 secop_psi/calcurves/cma11r4rc.inp delete mode 100644 secop_psi/calcurves/cma7.inp delete mode 100644 secop_psi/calcurves/coil.inp delete mode 100644 secop_psi/calcurves/cplus45.inp delete mode 100644 secop_psi/calcurves/cplus70.inp delete mode 100644 secop_psi/calcurves/cs405.inp delete mode 100644 secop_psi/calcurves/cx078.inp delete mode 100644 secop_psi/calcurves/cx198.inp delete mode 100644 secop_psi/calcurves/cx19801.340 delete mode 100644 secop_psi/calcurves/cx262.inp delete mode 100644 secop_psi/calcurves/ds3b.inp delete mode 100644 secop_psi/calcurves/dt-470.std delete mode 100644 secop_psi/calcurves/dt-470custom.inp delete mode 100644 secop_psi/calcurves/dt-670.std delete mode 100644 secop_psi/calcurves/dt-670custom.340 delete mode 100644 secop_psi/calcurves/g24741.inp delete mode 100644 secop_psi/calcurves/g25328.inp delete mode 100644 secop_psi/calcurves/g25550.inp delete mode 100644 secop_psi/calcurves/g26550.inp delete mode 100644 secop_psi/calcurves/g26552.inp delete mode 100644 secop_psi/calcurves/gemark.inp delete mode 100644 secop_psi/calcurves/gonio.inp delete mode 100644 secop_psi/calcurves/logtest.inp delete mode 100644 secop_psi/calcurves/m59.inp delete mode 100644 secop_psi/calcurves/matsh100.inp delete mode 100644 secop_psi/calcurves/mz020124.inp delete mode 100644 secop_psi/calcurves/mz030500.inp delete mode 100644 secop_psi/calcurves/pcry.inp delete mode 100644 secop_psi/calcurves/psam.inp delete mode 100644 secop_psi/calcurves/pt-100.std delete mode 100644 secop_psi/calcurves/pt-1000.std delete mode 100644 secop_psi/calcurves/pt1000e.inp delete mode 100644 secop_psi/calcurves/pt1000m.inp delete mode 100644 secop_psi/calcurves/pt100e.inp delete mode 100644 secop_psi/calcurves/pt_ill.inp delete mode 100755 secop_psi/calcurves/purge delete mode 100644 secop_psi/calcurves/r3509.inp delete mode 100644 secop_psi/calcurves/r3510.inp delete mode 100644 secop_psi/calcurves/rhfe0734.inp delete mode 100644 secop_psi/calcurves/rhfe4140.inp delete mode 100644 secop_psi/calcurves/rhfe705.inp delete mode 100644 secop_psi/calcurves/rhfe8119.inp delete mode 100644 secop_psi/calcurves/rhfe8244.inp delete mode 100644 secop_psi/calcurves/rhfe8733.inp delete mode 100644 secop_psi/calcurves/rhfee188.340 delete mode 100644 secop_psi/calcurves/ruox.inp delete mode 100644 secop_psi/calcurves/ruox2447.inp delete mode 100644 secop_psi/calcurves/ruox408.inp delete mode 100644 secop_psi/calcurves/ruox5a.inp delete mode 100644 secop_psi/calcurves/ruox5b.inp delete mode 100644 secop_psi/calcurves/ruox5k.inp delete mode 100644 secop_psi/calcurves/ruoxben1k.inp delete mode 100644 secop_psi/calcurves/ruoxm0.inp delete mode 100644 secop_psi/calcurves/ruoxm7.inp delete mode 100644 secop_psi/calcurves/rx00000.340 delete mode 100644 secop_psi/calcurves/rx03310.340 delete mode 100644 secop_psi/calcurves/rx03312.340 delete mode 100644 secop_psi/calcurves/rx078.inp delete mode 100644 secop_psi/calcurves/rx102a.340 delete mode 100644 secop_psi/calcurves/rx102aa.inp delete mode 100644 secop_psi/calcurves/rx102b.340 delete mode 100644 secop_psi/calcurves/rx1611.inp delete mode 100644 secop_psi/calcurves/rx1976.inp delete mode 100644 secop_psi/calcurves/rx198.inp delete mode 100644 secop_psi/calcurves/rx19801.340 delete mode 100644 secop_psi/calcurves/rx2435.inp delete mode 100644 secop_psi/calcurves/rx262.inp delete mode 100644 secop_psi/calcurves/rx270c.340 delete mode 100644 secop_psi/calcurves/rxdil.inp delete mode 100644 secop_psi/calcurves/speer220.inp delete mode 100644 secop_psi/calcurves/std1.inp delete mode 100644 secop_psi/calcurves/std4.inp delete mode 100644 secop_psi/calcurves/std6.inp delete mode 100644 secop_psi/calcurves/tpr010.inp delete mode 100644 secop_psi/calcurves/type-c-k1000.inp delete mode 100644 secop_psi/calcurves/type-c-k333.inp delete mode 100644 secop_psi/calcurves/type-c.inp delete mode 100644 secop_psi/calcurves/type-k.inp delete mode 100644 secop_psi/calcurves/type-k.std delete mode 100644 secop_psi/calcurves/type_c.inp delete mode 100644 secop_psi/calcurves/type_n.inp delete mode 100644 secop_psi/calcurves/u02045.inp delete mode 100644 secop_psi/calcurves/x09629.inp delete mode 100644 secop_psi/calcurves/x09882.inp delete mode 100644 secop_psi/calcurves/x09883.inp delete mode 100644 secop_psi/calcurves/x10045m.inp delete mode 100644 secop_psi/calcurves/x112329.inp delete mode 100644 secop_psi/calcurves/x112386.inp delete mode 100644 secop_psi/calcurves/x12905.inp delete mode 100644 secop_psi/calcurves/x14667.inp delete mode 100644 secop_psi/calcurves/x15430.inp delete mode 100644 secop_psi/calcurves/x15445.inp delete mode 100644 secop_psi/calcurves/x17627.inp delete mode 100644 secop_psi/calcurves/x2060.inp delete mode 100644 secop_psi/calcurves/x22297.inp delete mode 100644 secop_psi/calcurves/x22644k.inp delete mode 100644 secop_psi/calcurves/x23167.inp delete mode 100644 secop_psi/calcurves/x28611.inp delete mode 100644 secop_psi/calcurves/x29630.inp delete mode 100644 secop_psi/calcurves/x29746.inp delete mode 100644 secop_psi/calcurves/x30906.inp delete mode 100644 secop_psi/calcurves/x31254.inp delete mode 100644 secop_psi/calcurves/x37342.inp delete mode 100644 secop_psi/calcurves/x37346.inp delete mode 100644 secop_psi/calcurves/x38604.inp delete mode 100644 secop_psi/calcurves/x38622.inp delete mode 100644 secop_psi/calcurves/x40188.inp delete mode 100644 secop_psi/calcurves/x48581.inp delete mode 100644 secop_psi/calcurves/x55918.inp delete mode 100644 secop_psi/calcurves/xcond.inp delete mode 100644 secop_psi/calcurves/z030114.inp delete mode 100644 secop_psi/cryoltd.py delete mode 100644 secop_psi/cryotel.py delete mode 100644 secop_psi/dg645.py delete mode 100644 secop_psi/dilsc.py delete mode 100644 secop_psi/dpm.py delete mode 100644 secop_psi/ips_mercury.py delete mode 100644 secop_psi/iqplot.py delete mode 100644 secop_psi/ls240.py delete mode 100644 secop_psi/ls370res.py delete mode 100644 secop_psi/ls370sim.py delete mode 100644 secop_psi/magfield.py delete mode 100644 secop_psi/phytron.py delete mode 100644 secop_psi/sea.py delete mode 100644 secop_psi/senis.py delete mode 100644 secop_psi/simdpm.py delete mode 100644 secop_psi/testcmd.py delete mode 100644 secop_psi/testtemp.py delete mode 100644 secop_psi/triton.py delete mode 100644 secop_psi/ultrasound.py delete mode 100644 secop_psi/uniax.py delete mode 100644 secop_psi/vector.py delete mode 100644 test/test_iohandler.py rename secop/gui/util.py => test/test_lib.py (51%) create mode 100644 test/test_persistent.py create mode 100644 test/test_status_members.py create mode 100644 tools/frappy-gui.desktop diff --git a/.description b/.description index 1129588..cc125e8 100644 --- a/.description +++ b/.description @@ -1,2 +1,2 @@ -SECoP playground for creating specification and testing one implementation. +Frappy framework for implementing SEC-nodes (see SECoP protocol on github). diff --git a/.gitignore b/.gitignore index dd302bb..c01d068 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +frappydemo.PID log/* html/* *.pyc diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000..0cc5dfd --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,8 @@ +[settings] +multi_line_output=2 +combine_as_imports=True + +known_qt=frappy.gui.qt +known_core=frappy + +sections=FUTURE,STDLIB,QT,THIRDPARTY,CORE,FIRSTPARTY,LOCALFOLDER diff --git a/Makefile b/Makefile index 3148ea2..9ae19e7 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,18 @@ all: clean doc +# Make spawns a new shell for each command. +# Save each PID in temporary file +# sleep in order for "test" to have started reliably demo: - @bin/secop-server -q demo & - @bin/secop-server -q test & - @bin/secop-server -q cryo & - @bin/secop-gui localhost:10767 localhost:10768 localhost:10769 - @ps aux|grep [s]ecop-server|awk '{print $$2}'|xargs kill + @rm -f frappydemo.PID || true + @{ bin/frappy-server -q demo & echo $$! >> frappydemo.PID; } + @{ bin/frappy-server -q test & echo $$! >> frappydemo.PID; } + @{ bin/frappy-server -q cryo & echo $$! >> frappydemo.PID; } + @sleep 0.2 + @bin/frappy-gui localhost:10767 localhost:10768 localhost:10769 + @cat frappydemo.PID | xargs kill || true + @rm frappydemo.PID build: python3 setup.py build @@ -32,18 +38,18 @@ test-verbose: python3 $(shell which pytest) -v test -s test-coverage: - python3 $(shell which pytest) -v test --cov=secop + python3 $(shell which pytest) -v test --cov=frappy doc: $(MAKE) -C doc html lint: - pylint -f colorized -r n --rcfile=.pylintrc secop secop_* test + pylint -f colorized -r n --rcfile=.pylintrc frappy frappy_* test isort: @find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py - @find secop -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py - @find . -wholename './secop_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py + @find frappy -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py + @find . -wholename './frappy_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py release-patch: MODE="patch" $(MAKE) release @@ -55,7 +61,7 @@ release-major: MODE="major" $(MAKE) release release: - ssh jenkinsng.admin.frm2 -p 29417 build -v -s -p GERRIT_PROJECT=$(shell git config --get remote.origin.url | rev | cut -d '/' -f -3 | rev) -p ARCH=all -p MODE=$(MODE) ReleasePipeline + ssh jenkins.admin.frm2.tum.de -p 29417 build -v -s -p GERRIT_PROJECT=$(shell git config --get remote.origin.url | rev | cut -d '/' -f -2 | rev) -p ARCH=all -p MODE=$(MODE) ReleasePipeline build-pkg: diff --git a/bin/secop-cfg-editor b/bin/frappy-cfg-editor similarity index 92% rename from bin/secop-cfg-editor rename to bin/frappy-cfg-editor index 9e4fdd4..2d77aee 100755 --- a/bin/secop-cfg-editor +++ b/bin/frappy-cfg-editor @@ -29,8 +29,8 @@ from os import path # Add import path for inplace usage sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) -from secop.gui.qt import QApplication -from secop.gui.cfg_editor.mainwindow import MainWindow +from frappy.gui.qt import QApplication +from frappy.gui.cfg_editor.mainwindow import MainWindow def main(argv=None): @@ -40,7 +40,7 @@ def main(argv=None): app = QApplication(argv) window = MainWindow(args.file) window.show() - return app.exec_() + return app.exec() if __name__ == '__main__': diff --git a/bin/frappy-cli b/bin/frappy-cli new file mode 100755 index 0000000..b5e8829 --- /dev/null +++ b/bin/frappy-cli @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2016 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Lenz +# Markus Zolliker +# +# ***************************************************************************** + +from __future__ import print_function + +import sys +import argparse +from os import path + +# Add import path for inplace usage +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + +from frappy.client.interactive import Client, watch, Console + + +def parseArgv(argv): + parser = argparse.ArgumentParser() + parser.add_argument('-i', '--include', + help='file to execute after connecting to the clients', metavar='file', + type=str, action='append', default=[]) + parser.add_argument('-o', '--only-execute', + help='Do not go into interactive mode after executing files. \ + Has no effect without --include.', action='store_true') + parser.add_argument('node', + help='Nodes the client should connect to.\n', metavar='host:port', + nargs='*', type=str, default=[]) + return parser.parse_args(argv) + + +_USAGE = """ +Usage: +%s +# for all SECoP modules objects are created in the main namespace + + # list all parameters +. = # change parameter +() # set target and wait until not busy + # 'status' and 'value' changes are shown every 1 sec +%s.mininterval = 0.2 # change minimal update interval to 0.2 sec (default is 1 second) + +watch(T) # watch changes of T.status and T.value (stop with ctrl-C) +watch(T='status target') # watch status and target parameters +watch(io, T=True) # watch io and all parameters of T +""" + +_CLIENT_USAGE = """ +c = Client('localhost:5000') +""" + +Client.show_usage = False + + +args = parseArgv(sys.argv[1:]) +if not args.node: + _usage_args = ("\ncli = Client('localhost:5000')\n", 'cli') + success = True +else: + _usage_args = ('', '_c0') + success = False + +for _idx, _node in enumerate(args.node): + _client_name = '_c%d' % _idx + try: + setattr(sys.modules['__main__'], _client_name, Client(_node, name=_client_name)) + success = True + except Exception as e: + print(repr(e)) + + +file_success = False +try: + for file in args.include: + with open(file, 'r') as f: + exec(f.read()) + file_success = True +except Exception as e: + print('Error while executing %s: %s' % (file, e)) + +if success: + if args.include and file_success and args.only_execute: + print('skipping interactive mode') + exit() + print(_USAGE % _usage_args) + Console(sys.modules['__main__'].__dict__) diff --git a/bin/secop-gui b/bin/frappy-gui similarity index 53% rename from bin/secop-gui rename to bin/frappy-gui index 302df2e..02050bf 100755 --- a/bin/secop-gui +++ b/bin/frappy-gui @@ -26,45 +26,53 @@ from __future__ import print_function import sys +import argparse from os import path # Add import path for inplace usage sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) -import mlzlog +import logging +from mlzlog import ColoredConsoleHandler -from secop.gui.qt import QApplication -from secop.gui.mainwindow import MainWindow +from frappy.gui.qt import QApplication +from frappy.gui.mainwindow import MainWindow + +def parseArgv(argv): + parser = argparse.ArgumentParser() + loggroup = parser.add_mutually_exclusive_group() + loggroup.add_argument('-d', '--debug', + help='Enable debug output', + action='store_true', default=False) + loggroup.add_argument('-q', '--quiet', + help='Supress everything but errors', + action='store_true', default=False) + parser.add_argument('node', + help='Nodes the Gui should connect to.\n', metavar='host[:port]', + nargs='*', type=str, default=[]) + return parser.parse_args(argv) def main(argv=None): if argv is None: argv = sys.argv - if '-h' in argv or '--help' in argv: - print("Usage: secop-gui [-d] [-h] [host:[port]]") - print() - print("Option GNU long option Meaning") - print("-h --help Show this message") - print("-d --debug Enable debug output") - print() - print("if not given, host defaults to 'localhost' and port to 10767") - sys.exit(0) + args = parseArgv(argv[1:]) - if '-d' in argv or '--debug' in argv: - mlzlog.initLogging('gui', 'debug') - else: - mlzlog.initLogging('gui', 'info') + loglevel = logging.DEBUG if args.debug else (logging.ERROR if args.quiet else logging.INFO) + logger = logging.getLogger('gui') + logger.setLevel(logging.DEBUG) + console = ColoredConsoleHandler() + console.setLevel(loglevel) + logger.addHandler(console) app = QApplication(argv) - hosts = [host for host in argv[1:] if not host.startswith('-')] - if not hosts: - hosts = ['localhost:10767'] - win = MainWindow(hosts) + win = MainWindow(args.node, logger) + app.aboutToQuit.connect(win._onQuit) win.show() - return app.exec_() + return app.exec() if __name__ == '__main__': diff --git a/secop_psi/ls340res.py b/bin/frappy-play old mode 100644 new mode 100755 similarity index 58% rename from secop_psi/ls340res.py rename to bin/frappy-play index d1a5c7c..7cf1416 --- a/secop_psi/ls340res.py +++ b/bin/frappy-play @@ -1,6 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # ***************************************************************************** +# Copyright (c) 2015-2016 by the authors, see LICENSE +# # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later @@ -17,29 +19,21 @@ # # Module authors: # Markus Zolliker +# # ***************************************************************************** -"""very simple LakeShore Model 340 driver, resistivity only""" -import time +import sys +from os import path -from secop.datatypes import StringType, FloatRange -from secop.modules import Parameter, Property, Readable -from secop.io import HasIO, StringIO +# Add import path for inplace usage +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) +from frappy.client.interactive import Console +from frappy.playground import play, USAGE -class LscIO(StringIO): - identification = [('*IDN?', 'LSCI,MODEL340,.*')] - end_of_line = '\r' - wait_before = 0.05 +if len(sys.argv) > 1: + play(sys.argv[1]) +else: + print(USAGE) - -class ResChannel(HasIO, Readable): - """temperature channel on Lakeshore 340""" - - ioClass = LscIO - - value = Parameter(datatype=FloatRange(unit='Ohm')) - channel = Property('the channel A,B,C or D', StringType()) - - def read_value(self): - return float(self.communicate('SRDG?%s' % self.channel)) +Console(sys.modules['__main__'].__dict__, 'play') diff --git a/bin/secop-server b/bin/frappy-server similarity index 92% rename from bin/secop-server rename to bin/frappy-server index d28a307..3d6993f 100755 --- a/bin/secop-server +++ b/bin/frappy-server @@ -30,9 +30,9 @@ from os import path # Add import path for inplace usage sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) -from secop.lib import generalConfig -from secop.logging import logger -from secop.server import Server +from frappy.lib import generalConfig +from frappy.logging import logger +from frappy.server import Server def parseArgv(argv): @@ -90,8 +90,9 @@ def main(argv=None): args = parseArgv(argv[1:]) loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info') - generalConfig.defaults = {k: args.relaxed for k in ( - 'lazy_number_validation', 'disable_value_range_check', 'legacy_hasiodev', 'tolerate_poll_property')} + generalConfig.set_default('lazy_number_validation', args.relaxed) + generalConfig.set_default('legacy_hasiodev', args.relaxed) + generalConfig.set_default('tolerate_poll_property', args.relaxed) generalConfig.init(args.gencfg) logger.init(loglevel) diff --git a/bin/stringio-server b/bin/sim-server similarity index 63% rename from bin/stringio-server rename to bin/sim-server index 5d2152d..47c54b2 100755 --- a/bin/stringio-server +++ b/bin/sim-server @@ -34,15 +34,17 @@ Use cases, mainly for test purposes: """ import sys +import argparse from os import path import asyncore import socket -import ast +import time # Add import path for inplace usage sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) -from secop.lib import get_class, formatException +from frappy.lib import get_class, formatException, mkthread + class LineHandler(asyncore.dispatcher_with_send): @@ -51,6 +53,9 @@ class LineHandler(asyncore.dispatcher_with_send): asyncore.dispatcher_with_send.__init__(self, sock) self.crlf = 0 + def handle_line(self, line): + raise NotImplementedError + def handle_read(self): data = self.recv(8192) if data: @@ -74,20 +79,22 @@ class LineHandler(asyncore.dispatcher_with_send): class LineServer(asyncore.dispatcher): - def __init__(self, host, port, lineHandlerClass): + def __init__(self, port, line_handler_cls, handler_args): asyncore.dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.set_reuse_addr() - self.bind((host, port)) + self.bind(('0.0.0.0', port)) self.listen(5) - self.lineHandlerClass = lineHandlerClass + print('accept connections at port', port) + self.line_handler_cls = line_handler_cls + self.handler_args = handler_args def handle_accept(self): pair = self.accept() if pair is not None: sock, addr = pair print("Incoming connection from %s" % repr(addr)) - self.lineHandlerClass(sock) + self.line_handler_cls(sock, self.handler_args) def loop(self): asyncore.loop() @@ -108,47 +115,73 @@ class Server(LineServer): class Handler(LineHandler): + def __init__(self, sock, handler_args): + super().__init__(sock) + self.module = handler_args['module'] + self.verbose = handler_args['verbose'] + def handle_line(self, line): try: - reply = module.do_communicate(line.strip()) - if verbose: + reply = self.module.communicate(line.strip()) + if self.verbose: print('%-40s | %s' % (line, reply)) except Exception: print(formatException(verbose=True)) + return self.send_line(reply) class Logger: def debug(self, *args): - print(*args) - info = exception = debug - - -opts = {'description': 'simulator'} -args = [] -for arg in sys.argv[1:]: - k, sep, v = arg.partition('=') - if not k: - args.append(v) - try: - v = ast.literal_eval(v) - except Exception: pass - opts[k] = v -verbose = opts.pop('verbose', False) -opts['cls'] = 'secop_psi.ls370sim.Ls370Sim' -opts['port'] = 4567 -if len(args) > 2: - raise ValueError('do not know about: %s' % ' '.join(args[2:])) -if len(args) == 2: - opts['port'] = int(args[1]) -if len(args) > 0: - opts['cls'] = args[0] - args.append(opts) -cls = opts.pop('cls') -port = opts.pop('port') -srv = Server('localhost', int(port), Handler) -module = get_class(cls)(cls, Logger(), opts, srv) -module.earlyInit() -srv.loop() + def log(self, level, *args): + pass + + def info(self, *args): + print(*args) + + exception = error = warn = info + + +def parse_argv(argv): + parser = argparse.ArgumentParser(description="Simulate HW with a serial interface") + parser.add_argument("-v", "--verbose", + help="output full communication", + action='store_true', default=False) + parser.add_argument("cls", + type=str, + help="simulator class.\n",) + parser.add_argument('-p', + '--port', + action='store', + help='server port or uri', + default=2089) + return parser.parse_args(argv) + + +def poller(pollfunc): + while True: + time.sleep(1.0) + pollfunc() + + +def main(argv=None): + if argv is None: + argv = sys.argv + + args = parse_argv(argv[1:]) + + opts = {'description': 'simulator'} + + handler_args = {'verbose': args.verbose} + srv = Server(int(args.port), Handler, handler_args) + module = get_class(args.cls)(args.cls, Logger(), opts, srv) + handler_args['module'] = module + module.earlyInit() + mkthread(poller, module.doPoll) + srv.loop() + + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/cfg/QnwTC1_cfg.py b/cfg/QnwTC1_cfg.py new file mode 100644 index 0000000..a453358 --- /dev/null +++ b/cfg/QnwTC1_cfg.py @@ -0,0 +1,24 @@ +Node('QnwTC1test.psi.ch', + 'QnwTC1 test', + 'tcp://5000', + ) + +Mod('io', + 'frappy_psi.qnw.QnwIO', + 'connection for Quantum northwest', + uri='tcp://ldmcc01-ts:3004', + ) + +Mod('T', + 'frappy_psi.qnw.TemperatureLoopTC1', + 'holder temperature', + channel='CT', + io='io', + ) + +Mod('Th', + 'frappy_psi.qnw.SensorTC1', + 'heat exch. temperature', + channel='HT', + io='io', + ) diff --git a/cfg/TFA10_cfg.py b/cfg/TFA10_cfg.py new file mode 100644 index 0000000..c1356d1 --- /dev/null +++ b/cfg/TFA10_cfg.py @@ -0,0 +1,23 @@ +Node('TFA10.psi.ch', + 'TFA10 test', + 'tcp://5000', + ) + +Mod('io', + 'frappy_psi.thermofisher.ThermFishIO', + 'connection for ThermoFisher A10', + uri='tcp://ldmse-d910-ts:3001', + ) + +Mod('T', + 'frappy_psi.thermofisher.TemperatureLoopA10', + 'holder temperature', + io='io', + target=Param(max=100), + ) + +Mod('Th', + 'frappy_psi.thermofisher.SensorA10', + 'heat exch. temperature', + io='io', + ) diff --git a/cfg/addons/ah2700.cfg b/cfg/addons/ah2700.cfg deleted file mode 100644 index 9244cc9..0000000 --- a/cfg/addons/ah2700.cfg +++ /dev/null @@ -1,13 +0,0 @@ -[NODE] -description = Andeen Hagerlin 2700 Capacitance Bridge -id = ah2700.frappy.psi.ch - -[module cap] -class = secop_psi.ah2700.Capacitance -description = capacitance -uri=lollypop-ts:3002 - -#[module ahcom] -#class = secop_psi.ah2700.StringIO -#uri=ldmse3-ts:3015 -#description = serial communicator to an AH2700 diff --git a/cfg/addons/ah2700_cfg.py b/cfg/addons/ah2700_cfg.py new file mode 100644 index 0000000..73616c4 --- /dev/null +++ b/cfg/addons/ah2700_cfg.py @@ -0,0 +1,9 @@ +Node('ah2700.frappy.psi.ch', + 'Andeen Hagerlin 2700 Capacitance Bridge', +) + +Mod('cap', + 'frappy_psi.ah2700.Capacitance', + 'capacitance', + uri='lollypop-ts:3002', +) diff --git a/cfg/addons/ah2700sea.cfg b/cfg/addons/ah2700sea.cfg deleted file mode 100644 index 89f4815..0000000 --- a/cfg/addons/ah2700sea.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[NODE] -description = Andeen Hagerlin 2700 Capacitance Bridge using SEA -id = ah2700.addon.sea.psi.ch - -[sea_addons] -class = secop_psi.sea.SeaClient -description = SEA connection to mbe_ah2700 -config = ah2700.addon -export = False -service = addons - -[cap] -class = secop_psi.sea.SeaReadable -io = sea_addons -sea_object = cap - -[capslope] -class = secop_psi.sea.SeaReadable -io = sea_addons -sea_object = capslope diff --git a/cfg/addons/ah2700sea_cfg.py b/cfg/addons/ah2700sea_cfg.py new file mode 100644 index 0000000..c671370 --- /dev/null +++ b/cfg/addons/ah2700sea_cfg.py @@ -0,0 +1,23 @@ +Node('ah2700.addon.sea.psi.ch', + 'Andeen Hagerlin 2700 Capacitance Bridge using SEA', +) + +Mod('sea_addons', + 'frappy_psi.sea.SeaClient', + 'SEA connection to mbe_ah2700', + config='ah2700.addon', + export=False, + service='addons', +) + +Mod('cap', + 'frappy_psi.sea.SeaReadable', + io='sea_addons', + sea_object='cap', +) + +Mod('capslope', + 'frappy_psi.sea.SeaReadable', + io='sea_addons', + sea_object='capslope', +) diff --git a/cfg/addons/be-filter-boa.cfg b/cfg/addons/be-filter-boa.cfg deleted file mode 100644 index 304c4be..0000000 --- a/cfg/addons/be-filter-boa.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = CryoTel be-filter BOA -id = be-filter-boa.addon.sea.psi.ch - -[sea_addons] -class = secop_psi.sea.SeaClient -description = addons sea connection for be-filter-boa.addon -config = be-filter-boa.addon -service = addons - -[befilter] -class = secop_psi.sea.SeaReadable -iodev = sea_addons -sea_object = befilter diff --git a/cfg/addons/be-filter-boa_cfg.py b/cfg/addons/be-filter-boa_cfg.py new file mode 100644 index 0000000..3456c1b --- /dev/null +++ b/cfg/addons/be-filter-boa_cfg.py @@ -0,0 +1,16 @@ +Node('be-filter-boa.addon.sea.psi.ch', + 'CryoTel be-filter BOA', +) + +Mod('sea_addons', + 'frappy_psi.sea.SeaClient', + 'addons sea connection for be-filter-boa.addon', + config='be-filter-boa.addon', + service='addons', +) + +Mod('befilter', + 'frappy_psi.sea.SeaReadable', + sea_object='befilter', + io='sea_addons', +) diff --git a/cfg/addons/focus-be-filter.cfg b/cfg/addons/focus-be-filter.cfg deleted file mode 100644 index 2bdbadd..0000000 --- a/cfg/addons/focus-be-filter.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = FOCUS Beryllium filter with cryotel closed cycle -id = focus-be-filter.addon.sea.psi.ch - -[sea_addons] -class = secop_psi.sea.SeaClient -description = SEA connection to addons -config = focus-be-filter.addon -service = addons - -[befilter] -class = secop_psi.sea.SeaReadable -io = sea_addons -sea_object = cryo diff --git a/cfg/addons/focus-be-filter_cfg.py b/cfg/addons/focus-be-filter_cfg.py new file mode 100644 index 0000000..ddb98da --- /dev/null +++ b/cfg/addons/focus-be-filter_cfg.py @@ -0,0 +1,16 @@ +Node('focus-be-filter.addon.sea.psi.ch', + 'FOCUS Beryllium filter with cryotel closed cycle', +) + +Mod('sea_addons', + 'frappy_psi.sea.SeaClient', + 'SEA connection to addons', + config='focus-be-filter.addon', + service='addons', +) + +Mod('befilter', + 'frappy_psi.sea.SeaReadable', + io='sea_addons', + sea_object='cryo', +) diff --git a/cfg/addons/ls372.cfg b/cfg/addons/ls372.cfg deleted file mode 100644 index 81a3896..0000000 --- a/cfg/addons/ls372.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[lsc] -description = -class = secop.io.StringIO -wait_before = 0.05 -uri = flamedil-ls:7777 - -[r1] -class = secop_psi.ls372.ResChannel -description = resistivity from LS 372 -switcher = channel -channel = 1 - -[r3] -class = secop_psi.ls372.ResChannel -description = resistivity from LS 372 -switcher = channel -channel = 3 - -[channel] -description = LS 372 channel switcher -class = secop_psi.ls372.Switcher -io = lsc diff --git a/cfg/addons/ls372_cfg.py b/cfg/addons/ls372_cfg.py new file mode 100644 index 0000000..d274e39 --- /dev/null +++ b/cfg/addons/ls372_cfg.py @@ -0,0 +1,26 @@ +Mod('lsc', + 'frappy.io.StringIO', + '', + wait_before=0.05, + uri='flamedil-ls:7777', +) + +Mod('r1', + 'frappy_psi.ls372.ResChannel', + 'resistivity from LS 372', + switcher='channel', + channel=1, +) + +Mod('r3', + 'frappy_psi.ls372.ResChannel', + 'resistivity from LS 372', + switcher='channel', + channel=3, +) + +Mod('channel', + 'frappy_psi.ls372.Switcher', + 'LS 372 channel switcher', + io='lsc', +) diff --git a/cfg/addons/stickmotor.cfg b/cfg/addons/stickmotor.cfg deleted file mode 100644 index 1caa62b..0000000 --- a/cfg/addons/stickmotor.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = mobile rotation stage (from MA02) -id = stickmotor.linse.psi.ch - -[stick_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ldmcc08-ts:3006 - -[stickrot] -description = stick rotation, typically not used as omega -class = secop_psi.phytron.Motor -io = stick_io -encoder_mode = CHECK - - diff --git a/cfg/addons/stickmotor_cfg.py b/cfg/addons/stickmotor_cfg.py new file mode 100644 index 0000000..cbf7d0a --- /dev/null +++ b/cfg/addons/stickmotor_cfg.py @@ -0,0 +1,16 @@ +Node('stickmotor.linse.psi.ch', + 'mobile rotation stage (from MA02)', +) + +Mod('stick_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ldmcc08-ts:3006', +) + +Mod('stickrot', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically not used as omega', + io='stick_io', + encoder_mode='CHECK', +) diff --git a/cfg/ah2700test.cfg b/cfg/ah2700test.cfg deleted file mode 100644 index 34fa6a0..0000000 --- a/cfg/ah2700test.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[node AH2700Test.psi.ch] -description = AH2700 capacitance bridge test - -[interface tcp] -type = tcp -bindto = 0.0.0.0 -bindport = 5000 - -[module cap] -class = secop_psi.ah2700.Capacitance -description = capacitance -uri=ldmse3-ts:3015 - -#[module ahcom] -#class = secop_psi.ah2700.StringIO -#uri=ldmse3-ts:3015 -#description = serial communicator to an AH2700 diff --git a/cfg/ah2700test_cfg.py b/cfg/ah2700test_cfg.py new file mode 100644 index 0000000..c83b858 --- /dev/null +++ b/cfg/ah2700test_cfg.py @@ -0,0 +1,10 @@ +Node('AH2700Test.psi.ch', + 'AH2700 capacitance bridge test', + 'tcp://5000', +) + +Mod('cap', + 'frappy_psi.ah2700.Capacitance', + 'capacitance', + uri='ldmse3-ts:3015', +) diff --git a/cfg/amagnet.cfg b/cfg/amagnet.cfg deleted file mode 100644 index 80aca7c..0000000 --- a/cfg/amagnet.cfg +++ /dev/null @@ -1,111 +0,0 @@ -[node MLZ_amagnet(Garfield)] -description=MLZ-Amagnet - . - Water cooled magnet from ANTARES@MLZ. - . - Use module to control the magnetic field. - Don't forget to select symmetry first (can be moved only at zero field!). - . - Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down! - . - In case of Problems, contact the ANTARES people at MLZ. - -visibility=expert -foo=bar - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module enable] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice='tango://localhost:10000/box/plc/_enable' -value.datatype=["enum", {'On':1,'Off':0}] -target.datatype=["enum", {'On':1,'Off':0}] -.description='Enables to Output of the Powersupply' -.visibility='advanced' - -[module polarity] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_polarity -value.datatype=["enum", {'+1':1,'0':0,'-1':-1}] -target.datatype=["enum", {'+1':1,'0':0,'-1':-1}] -.description=polarity (+/-) switch - . - there is an interlock in the plc: - if there is current, switching polarity is forbidden - if polarity is short, powersupply is disabled -.visibility=advanced -comtries=50 - - -[module symmetry] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_symmetric -value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}] -target.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}] -.description=par/ser switch selecting (a)symmetric mode - . - symmetric is ser, asymmetric is par -.visibility=advanced - -[module T1] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_t1 -.description=Temperature1 of the coils system -#warnlimits=(0, 50) -value.unit='degC' - -[module T2] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_t2 -.description=Temperature2 of the coils system -#warnlimits=(0, 50) -value.unit='degC' - -[module T3] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_t3 -.description=Temperature3 of the coils system -#warnlimits=(0, 50) -value.unit='degC' - -[module T4] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_t4 -.description=Temperature4 of the coils system -#warnlimits=(0, 50) -value.unit='degC' - -[module currentsource] -class=secop_mlz.entangle.PowerSupply -tangodevice=tango://localhost:10000/box/lambda/curr -.description=Device for the magnet power supply (current mode) -abslimits=(0,200) -speed=1 -ramp=60 -precision=0.02 -current=0 -voltage=10 -#unit=A -.visibility=advanced - -[module mf] -class=secop_mlz.amagnet.GarfieldMagnet -.description=magnetic field module, handling polarity switching and stuff -subdev_currentsource=currentsource -subdev_enable=enable -subdev_polswitch=polarity -subdev_symmetry=symmetry -target.unit='T' -value.unit='T' -userlimits=(-0.35, 0.35) -calibrationtable={'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042], - 'short': [0.0, 0.0, 0.0, 0.0, 0.0], - 'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]} -.meaning=The magnetic field -.priority=100 -.visibility=user - -abslimits.default=-0.4,0.4 diff --git a/cfg/amagnet_cfg.py b/cfg/amagnet_cfg.py new file mode 100644 index 0000000..669cd23 --- /dev/null +++ b/cfg/amagnet_cfg.py @@ -0,0 +1,91 @@ +Node('MLZ_amagnet(Garfield)', + 'MLZ-Amagnet\n' + '\n' + 'Water cooled magnet from ANTARES@MLZ.\n' + '\n' + 'Use module to control the magnetic field.\n' + 'Don\'t forget to select symmetry first (can be moved only at zero field!).\n' + '\n' + 'Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down!\n' + '\n' + 'In case of Problems, contact the ANTARES people at MLZ.', + 'tcp://10767', + visibility = 'expert', + foo = 'bar', +) + +Mod('enable', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'Enables to Output of the Powersupply', + tangodevice = 'tango://localhost:10000/box/plc/_enable', + value = Param(datatype=["enum", {'On':1,'Off':0}]), + target = Param(datatype=["enum", {'On':1,'Off':0}]), + visibility = 'advanced', +) + +Mod('polarity', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'polarity (+/-) switch\n' + '\n' + 'there is an interlock in the plc:\n' + 'if there is current, switching polarity is forbidden\n' + 'if polarity is short, powersupply is disabled', + tangodevice = 'tango://localhost:10000/box/plc/_polarity', + value = Param(datatype=["enum", {'+1':1,'0':0,'-1':-1}]), + target = Param(datatype=["enum", {'+1':1,'0':0,'-1':-1}]), + visibility = 'advanced', + comtries = 50, +) + +Mod('symmetry', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'par/ser switch selecting (a)symmetric mode\n' + '\n' + 'symmetric is ser, asymmetric is par', + tangodevice = 'tango://localhost:10000/box/plc/_symmetric', + value = Param(datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]), + target = Param(datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]), + visibility = 'advanced', +) + +for i in range(1,5): + Mod('T%d' % i, + 'frappy_mlz.entangle.AnalogInput', + 'Temperature %d of the coils system' % i, + tangodevice = 'tango://localhost:10000/box/plc/_t%d' % i, + #warnlimits=(0, 50), + value = Param(unit='degC'), + ) + +Mod('currentsource', + 'frappy_mlz.entangle.PowerSupply', + 'Device for the magnet power supply (current mode)', + tangodevice = 'tango://localhost:10000/box/lambda/curr', + abslimits = (0,200), + speed = 1, + ramp = 60, + precision = 0.02, + current = 0, + voltage = 10, + #value=Param(unit='A') + visibility = 'advanced', +) + +Mod('mf', + 'frappy_mlz.amagnet.GarfieldMagnet', + 'magnetic field module, handling polarity switching and stuff', + subdev_currentsource = 'currentsource', + subdev_enable = 'enable', + subdev_polswitch = 'polarity', + subdev_symmetry = 'symmetry', + target = Param(unit='T'), + value = Param(unit='T'), + userlimits = (-0.35, 0.35), + calibrationtable = {'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042], + 'short': [0.0, 0.0, 0.0, 0.0, 0.0], + 'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]}, + meaning = ['The magnetic field', 1], + #priority=100, + visibility = 'user', + abslimits = (-0.4,0.4,), +) diff --git a/cfg/ccr.cfg b/cfg/ccr.cfg deleted file mode 100644 index 8c56f02..0000000 --- a/cfg/ccr.cfg +++ /dev/null @@ -1,150 +0,0 @@ -[node MLZ_ccr12] -description = CCR box of MLZ Sample environment group - . - Contains a Lakeshore 336 and an PLC controlling the compressor - and some valves. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module automatik] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_automatik -mapping=dict(Off=0,p1=1,p2=2) -description="controls the (simple) pressure regulation - . - selects between off, regulate on p1 or regulate on p2 sensor" - -[module compressor] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_cooler_onoff -mapping=dict(Off=0,On=1) -description=control the compressor (on/off) - -[module gas] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_gas_onoff -mapping=dict(Off=0,On=1) -description=control the gas inlet into the ccr (on/off) - . - note: this switches off automatically after 15 min. - note: activation de-activates the vacuum inlet - note: if the pressure regulation is active, it enslave this device - -[module vacuum] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff -mapping=dict(Off=0,On=1) -description=control the vacuum inlet into the ccr (on/off) - . - note: activation de-activates the gas inlet - note: if the pressure regulation is active, it enslave this device - -[module p1] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_p1 -value.unit='mbar' -description=pressure sensor 1 (linear scale) - -[module p2] -class=secop_mlz.entangle.AnalogInput -tangodevice=tango://localhost:10000/box/plc/_p2 -value.unit='mbar' -description=pressure sensor 2 (selectable curve) - -[module curve_p2] -class=secop_mlz.entangle.NamedDigitalInput -tangodevice=tango://localhost:10000/box/plc/_curve -value.default=0 -description=calibration curve for pressure sensor 2 -mapping="{'0-10V':0, '0-1000mbar':1, '1-9V to 0-1 mbar':2, - 'DI200':3, 'DI2000':4, 'TTR100':7, 'PTR90':8, - 'PTR225/237':9, 'ITR90':10, 'ITR100-D':11, - 'ITR100-2':12, 'ITR100-3':13, 'ITR100-4':14, - 'ITR100-5':15, 'ITR100-6':16, 'ITR100-7':17, - 'ITR100-8':18, 'ITR100-9':19, 'ITR100-A':20, - 'CMR361':21, 'CMR362':22, 'CMR363':23, - 'CMR364':24, 'CMR365':25}" - -# sensors -[module T_sample] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/sample/sensora -value.unit='K' -description=sample temperature - -[module T_stick] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/stick/sensorb -value.unit='K' -description=temperature at bottom of sample stick - -[module T_coldhead] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/coldhead/sensorc -value.unit='K' -description=temperature at coldhead - -[module T_tube] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/tube/sensord -value.unit='K' -description=temperature at thermal coupling tube <-> stick - - -# regulations - -[module T_stick_regulation] -class=secop_mlz.entangle.TemperatureController -tangodevice=tango://localhost:10000/box/stick/control2 -heateroutput.default=0 -description=regulation of stick temperature -ramp.default=6 -speed.default=0.1 -setpoint.default=0 -pid.default=(40,10,1) -p.default=40 -i.default=10 -d.default=1 -abslimits=(0,500) -value.unit='K' - -# OMG! a NamedDigitalOutput, but with float'ints' 0..3 -[module T_stick_regulation_heaterrange] -class=secop_mlz.entangle.AnalogOutput -tangodevice=tango://localhost:10000/box/stick/range2 -precision.default=1 -abslimits=(0,3) -description=heaterrange for stick regulation - - -[module T_tube_regulation] -class=secop_mlz.entangle.TemperatureController -tangodevice=tango://localhost:10000/box/tube/control1 -description=regulation of tube temperature -heateroutput.default=0 -ramp.default=6 -speed.default=0.1 -setpoint.default=0 -pid.default=(40,10,1) -p.default=40 -i.default=10 -d.default=1 -abslimits=(0,500) -value.unit='K' - -# OMG! a NamedDigitalOutput, but with float'ints' 0..3 -#[module T_tube_regulation_heaterrange] -#class=secop_mlz.entangle.AnalogOutput -#tangodevice=tango://localhost:10000/box/tube/range1 -#precision.default=1 -#abslimits=(0,3) - -[module T_tube_regulation_heaterrange] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/tube/range1 -mapping=dict(Off=0, Low=1, Medium=2, High=3) -description=heaterrange for tube regulation diff --git a/cfg/ccr_cfg.py b/cfg/ccr_cfg.py new file mode 100644 index 0000000..42bc6cc --- /dev/null +++ b/cfg/ccr_cfg.py @@ -0,0 +1,148 @@ +desc = '''CCR box of MLZ Sample environment group + + Contains a Lakeshore 336 and an PLC controlling the compressor + and some valves.''' +Node('MLZ_ccr', + desc, + 'tcp://10767', +) + +Mod('automatik', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'controls the (simple) pressure regulation\n' + '\n' + 'selects between off, regulate on p1 or regulate on p2 sensor', + tangodevice = 'tango://localhost:10000/box/plc/_automatik', + mapping={'Off':0,'p1':1,'p2':2}, +) + +Mod('compressor', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'control the compressor (on/off)', + tangodevice = 'tango://localhost:10000/box/plc/_cooler_onoff', + mapping={'Off':0,'On':1}, +) + +Mod('gas', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'control the gas inlet into the ccr (on/off)\n' + '\n' + 'note: this switches off automatically after 15 min.\n' + 'note: activation de-activates the vacuum inlet\n' + 'note: if the pressure regulation is active, it enslave this device', + tangodevice = 'tango://localhost:10000/box/plc/_gas_onoff', + mapping={'Off':0,'On':1}, +) + +Mod('vacuum', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'control the vacuum inlet into the ccr (on/off)\n' + '\n' + 'note: activation de-activates the gas inlet\n' + 'note: if the pressure regulation is active, it enslave this device', + tangodevice = 'tango://localhost:10000/box/plc/_vacuum_onoff', + mapping={'Off':0,'On':1}, +) + +Mod('p1', + 'frappy_mlz.entangle.AnalogInput', + 'pressure sensor 1 (linear scale)', + tangodevice = 'tango://localhost:10000/box/plc/_p1', + value = Param(unit='mbar') +) + +Mod('p2', + 'frappy_mlz.entangle.AnalogInput', + 'pressure sensor 2 (selectable curve)', + tangodevice = 'tango://localhost:10000/box/plc/_p2', + value = Param(unit='mbar'), +) + +Mod('curve_p2', + 'frappy_mlz.entangle.NamedDigitalInput', + 'calibration curve for pressure sensor 2', + tangodevice = 'tango://localhost:10000/box/plc/_curve', + value = 0, + mapping = {'0-10V':0, '0-1000mbar':1, '1-9V to 0-1 mbar':2, + 'DI200':3, 'DI2000':4, 'TTR100':7, 'PTR90':8, + 'PTR225/237':9, 'ITR90':10, 'ITR100-D':11, + 'ITR100-2':12, 'ITR100-3':13, 'ITR100-4':14, + 'ITR100-5':15, 'ITR100-6':16, 'ITR100-7':17, + 'ITR100-8':18, 'ITR100-9':19, 'ITR100-A':20, + 'CMR361':21, 'CMR362':22, 'CMR363':23, + 'CMR364':24, 'CMR365':25}, +) + +Mod('T_tube_regulation', + 'frappy_mlz.entangle.TemperatureController', + 'regulation of tube temperature', + tangodevice = 'tango://localhost:10000/box/tube/control1', + value = Param(unit = 'K'), + heateroutput = 0, + ramp = 6, + speed = 0.1, + setpoint = 0, + pid = (40, 10, 1), + p = 40, + i = 10, + d = 1, + abslimits = (0, 500), +) + +Mod('T_stick_regulation', + 'frappy_mlz.entangle.TemperatureController', + 'regualtion of stick temperature', + tangodevice = 'tango://localhost:10000/box/stick/control2', + value = Param(unit = 'K'), + heateroutput = 0, + ramp = 6, + speed = 0.1, + setpoint = 0, + pid = (40, 10, 1), + p = 40, + i = 10, + d = 1, + abslimits = (0, 500), +) +Mod('T_sample', + 'frappy_mlz.entangle.Sensor', + 'sample temperature', + tangodevice = 'tango://localhost:10000/box/sample/sensora', + value = Param(unit = 'K'), +) + +Mod('T_stick', + 'frappy_mlz.entangle.Sensor', + 'temperature at bottom of sample stick', + tangodevice = 'tango://localhost:10000/box/stick/sensorb', + value = Param(unit = 'K'), +) + +Mod('T_coldhead', + 'frappy_mlz.entangle.Sensor', + 'temperature at coldhead', + tangodevice = 'tango://localhost:10000/box/coldhead/sensorc', + value = Param(unit = 'K'), +) + +Mod('T_tube', + 'frappy_mlz.entangle.Sensor', + 'temperature at thermal coupling tube <-> stick', + tangodevice = 'tango://localhost:10000/box/tube/sensord', + value = Param(unit = 'K'), +) + +# THIS IS A HACK: due to entangle (in controller) +Mod('T_tube_regulation_heaterrange', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'heaterrange for tube regulation', + tangodevice = 'tango://localhost:10000/box/tube/range1', + mapping={'Off':0,'Low':1,'Medium':2, 'High':3}, +) + +Mod('T_stick_regulation_heaterrange', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'heaterrange for stick regulation', + tangodevice = 'tango://localhost:10000/box/stick/range2', + mapping={'Off':0,'Low':1,'Medium':2, 'High':3}, +) diff --git a/cfg/cryo.cfg b/cfg/cryo.cfg deleted file mode 100644 index fc8daab..0000000 --- a/cfg/cryo.cfg +++ /dev/null @@ -1,50 +0,0 @@ -[node cryo_7] -# set SEC-node properties -description = short description - . - This is a very long description providing all the glory details in all the glory details about the stuff we are describing - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10769 - -[module cryo] -# some (non-defaut) module properties -.group=very important/stuff -.description=A simulated cc cryostat with heat-load, specific heat for the sample - and a temperature dependend heat-link between sample and regulation. - -# class of module: -class=secop_demo.cryo.Cryostat - -# some parameters -jitter=0.1 -T_start=10.0 -target=10.0 -looptime=1 -ramp=6 -maxpower=20.0 -heater=4.1 -p=40 -i=10 -d=2 -mode=pid -tolerance=0.1 -window=30 -timeout=900 - -# some (non-default) parameter properties -pollinterval.export=False - -# some parameter grouping -p.group=pid -i.group=pid -d.group=pid - -value.unit=K - -# test custom properties -value.test=customized value - diff --git a/cfg/cryo_cfg.py b/cfg/cryo_cfg.py new file mode 100644 index 0000000..8f87cf9 --- /dev/null +++ b/cfg/cryo_cfg.py @@ -0,0 +1,35 @@ +##################################################################### +# Python version of frappy config +##################################################################### + +Node('cryo_7.frappy.demo', + 'short description\n\n' + 'This is a very long description providing all the gory details ' + 'about the stuff we are describing.', + 'tcp://10769', + more="blub", +) + +Mod('cryo', + 'frappy_demo.cryo.Cryostat', + 'A simulated cc cryostat with heat-load, specific heat for the sample and a ' + 'temperature dependent heat-link between sample and regulation.', + group='very important/stuff', + jitter=0.1, + T_start=10.0, + target=10.0, + looptime=1, + ramp=6, + maxpower=20.0, + heater=4.1, + mode='pid', + tolerance=0.1, + window=30, + timeout=900, + p = Param(40, unit='%/K'), # in case 'default' is the first arg, we can omit 'default=' + i = 10, + d = 2, + pid = Group('p', 'i', 'd'), + pollinterval = Param(export=False), + value = Param(unit = 'K', test = 'customized value'), +) diff --git a/cfg/demo.cfg b/cfg/demo.cfg deleted file mode 100644 index 8fa1271..0000000 --- a/cfg/demo.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[node Equipment_ID_for_demonstration] -description = virtual modules to play around with - -[interface tcp] -bindto=0.0.0.0 -bindport=10767 - -[module heatswitch] -class=secop_demo.modules.Switch -switch_on_time=5 -switch_off_time=10 -.description="Heatswitch for `mf` device" - -[module mf] -class=secop_demo.modules.MagneticField -heatswitch = heatswitch -.description="simulates some cryomagnet with persistent/non-persistent switching" - -[module ts] -class=secop_demo.modules.SampleTemp -sensor = 'Q1329V7R3' -ramp = 4 -target = 10 -value = 10 -.description = "some temperature" - -[module tc1] -class=secop_demo.modules.CoilTemp -sensor="X34598T7" -.description = "some temperature" - -[module tc2] -class=secop_demo.modules.CoilTemp -sensor="X39284Q8' -.description = "some temperature" - -[module label] -class=secop_demo.modules.Label -system=Cryomagnet MX15 -subdev_mf=mf -subdev_ts=ts -.description = "some label indicating the state of the magnet `mf`." - diff --git a/cfg/demo_cfg.py b/cfg/demo_cfg.py new file mode 100644 index 0000000..84896e6 --- /dev/null +++ b/cfg/demo_cfg.py @@ -0,0 +1,46 @@ +Node('demo.frappy.demo', + 'Basic demo server for frappy', + 'tcp://10767', +) + +Mod('heatswitch', + 'frappy_demo.modules.Switch', + 'Heatswitch for `mf` device', + switch_on_time = 5, + switch_off_time = 10, +) + +Mod('mf', + 'frappy_demo.modules.MagneticField', + 'simulates some cryomagnet with persistent/non-persistent switching', + heatswitch = 'heatswitch', +) + +Mod('ts', + 'frappy_demo.modules.SampleTemp', + 'some temperature', + sensor = 'Q1329V7R3', + ramp = 4, + target = 10, + value = 10, +) + +Mod('tc1', + 'frappy_demo.modules.CoilTemp', + 'some temperature', + sensor = 'X34598T7', +) + +Mod('tc2', + 'frappy_demo.modules.CoilTemp', + 'some temperature', + sensor = 'X39284Q8', +) + +Mod('label', + 'frappy_demo.modules.Label', + 'some label indicating the state of the magnet `mf`.', + system = 'Cryomagnet MX15', + subdev_mf = 'mf', + subdev_ts = 'ts', +) diff --git a/cfg/develop/sea.cfg b/cfg/develop/sea.cfg deleted file mode 100644 index 20c8813..0000000 --- a/cfg/develop/sea.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[NODE] -description = sea client (communication only) -id = comm.sea.psi.ch - -[seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -visibility = 1 diff --git a/cfg/develop/sea_cfg.py b/cfg/develop/sea_cfg.py new file mode 100644 index 0000000..9c59f34 --- /dev/null +++ b/cfg/develop/sea_cfg.py @@ -0,0 +1,9 @@ +Node('comm.sea.psi.ch', + 'sea client (communication only)', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', + visibility='expert', +) diff --git a/cfg/develop/seadesc.cfg b/cfg/develop/seadesc.cfg deleted file mode 100644 index c1b9c65..0000000 --- a/cfg/develop/seadesc.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[NODE] -description = sea client (tool for creating cfg) -id = comm.sea.psi.ch - -[seaconn] -class = secop_psi.sea.SeaConfigCreator -description = a SEA connection. will shut down after getting the description -visibility = 1 diff --git a/cfg/develop/seadesc_cfg.py b/cfg/develop/seadesc_cfg.py new file mode 100644 index 0000000..abe8f5b --- /dev/null +++ b/cfg/develop/seadesc_cfg.py @@ -0,0 +1,11 @@ +# error creating module seaconn: +# missing sea port for seadesc +Node('comm.sea.psi.ch', + 'sea client (tool for creating cfg)', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaConfigCreator', + 'a SEA connection. will shut down after getting the description', + visibility=1, +) diff --git a/cfg/dpm.cfg b/cfg/dpm.cfg deleted file mode 100644 index f15228d..0000000 --- a/cfg/dpm.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[NODE] -description = DPM driver for pressure cell -id = dpm.psi.ch - -[INTERFACE] -uri = tcp://5000 - -[force] -description = DPM driver to read out the transducer value, write and read the offset and scale factor -class = secop_psi.dpm.DPM3 -# uri = ldmse-d910-ts.psi.ch:3001 -uri = serial:///dev/ttyUSB1 -digits = 2 -scale_factor = 0.0156 - diff --git a/cfg/dpm_cfg.py b/cfg/dpm_cfg.py new file mode 100644 index 0000000..2086e42 --- /dev/null +++ b/cfg/dpm_cfg.py @@ -0,0 +1,12 @@ +Node('dpm.psi.ch', + 'DPM driver for pressure cell', + interface='tcp://5000', +) + +Mod('force', + 'frappy_psi.dpm.DPM3', + 'DPM driver to read out the transducer value, write and read the offset and scale factor', + uri='serial:///dev/ttyUSB1', + digits=2, + scale_factor=0.0156, +) diff --git a/cfg/epics.cfg b/cfg/epics.cfg deleted file mode 100644 index 1342ce1..0000000 --- a/cfg/epics.cfg +++ /dev/null @@ -1,50 +0,0 @@ -[node see_demo_equipment] -description=Do not use, it needs to be rewritten.... - -[interface testing] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module tc1] -class=secop_demo.modules.CoilTemp -sensor="X34598T7" - -[module tc2] -class=secop_demo.modules.CoilTemp -sensor="X39284Q8' - - -[module sensor1] -class=secop_ess.epics.EpicsReadable -epics_version="v4" -.group="Lakeshore336" -value_pv="DEV:KRDG1" - - -[module loop1] -class=secop_ess.epics.EpicsTempCtrl -epics_version="v4" -.group="Lakeshore336" - -value_pv="DEV:KRDG1" -target_pv="DEV:SETP_S1" -heaterrange_pv="DEV:RANGE_S1" - - -[module sensor2] -class=secop_ess.epics.EpicsReadable -epics_version="v4" -.group="Lakeshore336" -value_pv="DEV:KRDG2" - - -[module loop2] -class=secop_ess.epics.EpicsTempCtrl -epics_version="v4" -.group="Lakeshore336" - -value_pv="DEV:KRDG2" -target_pv="DEV:SETP_S2" -heaterrange_pv="DEV:RANGE_S2" - diff --git a/cfg/epics_cfg.py b/cfg/epics_cfg.py new file mode 100644 index 0000000..998f94a --- /dev/null +++ b/cfg/epics_cfg.py @@ -0,0 +1,36 @@ +Node('see_demo_equipment', + 'Do not use, it needs to be rewritten....', + 'tcp://10767', +) + +Mod('tc1', + 'frappy_demo.modules.CoilTemp', + '', + sensor="X34598T7", +) + +Mod('tc2', + 'frappy_demo.modules.CoilTemp', + '', + sensor="X39284Q8", +) + + +for i in [1,2]: + Mod('sensor%d' % i, + 'frappy_ess.epics.EpicsReadable', + '', + epics_version="v4", + value_pv="DEV:KRDG%d" % i, + group="Lakeshore336", + ) + + Mod('loop%d' % i, + 'frappy_ess.epics.EpicsTempCtrl', + '', + epics_version="v4", + group="Lakeshore336", + value_pv="DEV:KRDG%d" % i, + target_pv="DEV:SETP_S%d" % i, + heaterrange_pv="DEV:RANGE_S%d" % i, + ) diff --git a/cfg/lockin_cfg.py b/cfg/lockin_cfg.py new file mode 100644 index 0000000..dc6415c --- /dev/null +++ b/cfg/lockin_cfg.py @@ -0,0 +1,10 @@ +Node('lockintest.psi.ch', + 'lockin test', + 'tcp://5000', + ) + +Mod('io', + 'frappy_psi.SR_7270.SR7270', + 'lockin communication', + uri='10105266.psi.ch:50000', + ) diff --git a/cfg/ls240.cfg b/cfg/ls240.cfg deleted file mode 100644 index 199691f..0000000 --- a/cfg/ls240.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -id = ls240.psi.ch -description = ls240 test - -[INTERFACE] -uri = tcp://5000 - -[T] -description = temperature on uniax stick -class = secop_psi.ls240.Ls240 -io = T_io - -[T_io] -class = secop.bytesio.BytesIO -description = IO device for LS240 -uri = serial:///dev/ttyUSB0?baudrate=9600+parity=EVEN -timeout = 0.2 diff --git a/cfg/ls240_cfg.py b/cfg/ls240_cfg.py new file mode 100644 index 0000000..8a2a7ad --- /dev/null +++ b/cfg/ls240_cfg.py @@ -0,0 +1,20 @@ +# error importing secop.bytesio.BytesIO +# module T, attached io: Module 'T_io' does not exist on this SEC-Node! +# error initializing T: AttributeError("'NoneType' object has no attribute 'polledModules'") +Node('ls240.psi.ch', + 'ls240 test', + interface='tcp://5000', +) + +Mod('T', + 'frappy_psi.ls240.Ls240', + 'temperature on uniax stick', + io='T_io', +) + +Mod('T_io', + 'frappy.bytesio.BytesIO', + 'IO device for LS240', + uri='serial:///dev/ttyUSB0?baudrate=9600+parity=EVEN', + timeout=0.2, +) diff --git a/cfg/ls336_cfg.py b/cfg/ls336_cfg.py new file mode 100644 index 0000000..0b857bb --- /dev/null +++ b/cfg/ls336_cfg.py @@ -0,0 +1,23 @@ +from os import environ + +# either change the uri or set the environment variable 'LS_URI' +lakeshore_uri = environ.get('LS_URI', 'tcp://:7777') + +Node('example_cryo.psi.ch', # a globally unique identification + 'this is an example cryostat for the Frappy tutorial', # describes the node + interface='tcp://10767') # you might choose any port number > 1024 +Mod('io', # the name of the module + 'frappy_demo.lakeshore.LakeshoreIO', # the class used for communication + 'communication to main controller', # a description + uri=lakeshore_uri, # the serial connection + ) +Mod('T', + 'frappy_demo.lakeshore.TemperatureLoop', + 'Sample Temperature', + io='io', + channel='A', # the channel on the LakeShore for this module + loop=1, # the loop to be used + value=Param(max=470), # set the maximum expected T + target=Param(max=420), # set the maximum allowed target T + heater_range=3, # 5 for model 350 + ) diff --git a/cfg/ls340_cfg.py b/cfg/ls340_cfg.py new file mode 100644 index 0000000..3d60963 --- /dev/null +++ b/cfg/ls340_cfg.py @@ -0,0 +1,36 @@ +Node('ls340test.psi.ch', + 'ls340 test', + 'tcp://5000' + ) + +Mod('io', + 'frappy_psi.lakeshore.Ls340IO', + 'communication to ls340', + uri='tcp://ldmprep56-ts:3002' + ) + +Mod('T', + 'frappy_psi.lakeshore.TemperatureLoop340', + 'sample temperature', + output_module='Heater', + target=Param(max=470), + io='io', + channel='B' + ) + +Mod('T_cold_finger', + 'frappy_psi.lakeshore.Sensor340', + 'cold finger temperature', + io='io', + channel='A' + ) + +Mod('Heater', + 'frappy_psi.lakeshore.HeaterOutput', + 'heater output', + channel='B', + io='io', + resistance=25, + max_power=50, + current=1 + ) diff --git a/cfg/ls370res.cfg b/cfg/ls370res.cfg deleted file mode 100644 index c27b644..0000000 --- a/cfg/ls370res.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[NODE] -id = ls370res.psi.ch -description = Lsc370 Test - -[INTERFACE] -uri = tcp://5000 - -[lsmain_io] -description = the communication device -class = secop_psi.ls370res.StringIO -uri = lollypop-ts:3001 - -[lsmain] -class = secop_psi.ls370res.Main -description = main control of Lsc controller -uri = lollypop-ts:3001 - -[res] -class = secop_psi.ls370res.ResChannel -iexc = '1mA' -channel = 5 -description = resistivity -main = lsmain -# the auto created iodev from lsmain: -io = lsmain_io diff --git a/cfg/ls370res_cfg.py b/cfg/ls370res_cfg.py new file mode 100644 index 0000000..bc4f308 --- /dev/null +++ b/cfg/ls370res_cfg.py @@ -0,0 +1,25 @@ +Node('ls370res.psi.ch', + 'Lsc370 Test', + interface='tcp://5000', +) + +Mod('lsmain_io', + 'frappy_psi.ls370res.StringIO', + 'the communication device', + uri='lollypop-ts:3001', +) + +Mod('lsmain', + 'frappy_psi.ls370res.Main', + 'main control of Lsc controller', + uri='lollypop-ts:3001', +) + +Mod('res', + 'frappy_psi.ls370res.ResChannel', + 'resistivity', + iexc='1mA', + channel=5, + main='lsmain', + io='lsmain_io', +) diff --git a/cfg/ls370sim.cfg b/cfg/ls370sim.cfg deleted file mode 100644 index e78e366..0000000 --- a/cfg/ls370sim.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[NODE] -id = LscSIM.psi.ch -description = Lsc Simulation at PSI - -[INTERFACE] -uri = tcp://5000 - -[res] -class = secop_psi.ls370res.ResChannel -channel = 3 -description = resistivity -main = lsmain -io = lscom - -[lsmain] -class = secop_psi.ls370res.Main -description = main control of Lsc controller -io = lscom - -[lscom] -class = secop_psi.ls370sim.Ls370Sim -description = simulated serial communicator to a LS 370 -visibility = 3 diff --git a/cfg/ls370sim_cfg.py b/cfg/ls370sim_cfg.py new file mode 100644 index 0000000..eb22955 --- /dev/null +++ b/cfg/ls370sim_cfg.py @@ -0,0 +1,30 @@ +Node('LscSIM.psi.ch', + 'Lsc Simulation at PSI', + 'tcp://5000', +) + +Mod('lscom', + 'frappy_psi.ls370sim.Ls370Sim', + 'simulated serial communicator to a LS 370', + visibility = 3 +) + +Mod('sw', + 'frappy_psi.ls370res.Switcher', + 'channel switcher for Lsc controller', + io = 'lscom', +) + +Mod('a', + 'frappy_psi.ls370res.ResChannel', + 'resistivity', + channel = 1, + switcher = 'sw', +) + +Mod('b', + 'frappy_psi.ls370res.ResChannel', + 'resistivity', + channel = 3, + switcher = 'sw', +) diff --git a/cfg/ls370test.cfg b/cfg/ls370test.cfg deleted file mode 100644 index 4bbd375..0000000 --- a/cfg/ls370test.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[node LscSIM.psi.ch] -description = Lsc370 Test - -[interface tcp] -type = tcp -bindto = 0.0.0.0 -bindport = 5000 - -[module lsmain] -class = secop_psi.ls370res.Main -description = main control of Lsc controller -uri = localhost:4567 - -[module res] -class = secop_psi.ls370res.ResChannel -vexc = '2mV' -channel = 3 -description = resistivity -main = lsmain -# the auto created iodev from lsmain: -io = lsmain_io diff --git a/cfg/ls370test_cfg.py b/cfg/ls370test_cfg.py new file mode 100644 index 0000000..f5fd864 --- /dev/null +++ b/cfg/ls370test_cfg.py @@ -0,0 +1,29 @@ +Node('LscSIM.psi.ch', + 'Lsc370 Test', + 'tcp://5000', +) + +Mod('io', + 'frappy_psi.ls370res.StringIO', + 'io for Ls370', + uri = 'localhost:2089', + ) +Mod('sw', + 'frappy_psi.ls370res.Switcher', + 'channel switcher', + io = 'io', +) +Mod('res1', + 'frappy_psi.ls370res.ResChannel', + 'resistivity chan 1', + vexc = '2mV', + channel = 1, + switcher = 'sw', +) +Mod('res2', + 'frappy_psi.ls370res.ResChannel', + 'resistivity chn 3', + vexc = '2mV', + channel = 3, + switcher = 'sw', +) diff --git a/cfg/main/ccr2.cfg b/cfg/main/ccr2.cfg deleted file mode 100644 index 07f274a..0000000 --- a/cfg/main/ccr2.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[NODE] -description = sumitomo 4 K closed cycle refrigerator (FOCUS) -id = ccr2.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = SEA connection to main -config = ccr2.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -#[tscreen] -#class = secop_psi.sea.SeaReadable -#io = sea_main -#sea_object = tt -#rel_paths = te diff --git a/cfg/main/ccr2_cfg.py b/cfg/main/ccr2_cfg.py new file mode 100644 index 0000000..3b50130 --- /dev/null +++ b/cfg/main/ccr2_cfg.py @@ -0,0 +1,16 @@ +Node('ccr2.config.sea.psi.ch', + 'sumitomo 4 K closed cycle refrigerator (FOCUS)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'SEA connection to main', + config='ccr2.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) diff --git a/cfg/main/ccr2ht.cfg b/cfg/main/ccr2ht.cfg deleted file mode 100644 index 03891d0..0000000 --- a/cfg/main/ccr2ht.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[NODE] -description = sumitomo 4 K closed cycle refrigerator with hot stage (FOCUS) -id = ccr2ht.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main SEA connection -config = ccr2ht.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -#[tscreen] -#class = secop_psi.sea.SeaReadable -#io = sea_main -#sea_object = tt -#rel_paths = te - -[tcoldfinger] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tt -rel_paths = tk - diff --git a/cfg/main/ccr2ht_cfg.py b/cfg/main/ccr2ht_cfg.py new file mode 100644 index 0000000..973b160 --- /dev/null +++ b/cfg/main/ccr2ht_cfg.py @@ -0,0 +1,23 @@ +Node('ccr2ht.config.sea.psi.ch', + 'sumitomo 4 K closed cycle refrigerator with hot stage (FOCUS)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main SEA connection', + config='ccr2ht.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('tcoldfinger', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tt', + rel_paths=['tk'], +) diff --git a/cfg/main/ccr3.cfg b/cfg/main/ccr3.cfg deleted file mode 100644 index 5bca77e..0000000 --- a/cfg/main/ccr3.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = 4 K closed cycle cryostat (ZEBRA) -id = ccr3.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ccr3.config -config = ccr3.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt diff --git a/cfg/main/ccr3_cfg.py b/cfg/main/ccr3_cfg.py new file mode 100644 index 0000000..1e2bca4 --- /dev/null +++ b/cfg/main/ccr3_cfg.py @@ -0,0 +1,16 @@ +Node('ccr3.config.sea.psi.ch', + '4 K closed cycle cryostat (ZEBRA)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ccr3.config', + config='ccr3.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) diff --git a/cfg/main/cryosim.cfg b/cfg/main/cryosim.cfg deleted file mode 100644 index e19aa76..0000000 --- a/cfg/main/cryosim.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[NODE] -id = cyrosim.psi.ch -description = cryo simulation (similar ppms simulation) - -[INTERFACE] -uri = tcp://5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -meaning = ['temperature_regulation', 10] -ramp = 20 -io = ppms - -[lev] -class = secop_psi.ppms.Level -description = helium level -io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -description = sample temperature -enabled = 1 -linkenable = tv -value.unit = K -meaning = ['temperature', 10] -io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -description = exchanger temperature -enabled = 1 -linkenable = ts -value.unit = K -io = ppms - -[ppms] -class = secop_psi.ppms.Main -description = the main and poller module -class_id = QD.MULTIVU.PPMS.1 -visibility = 3 -pollinterval = 2 -export = False diff --git a/cfg/main/cryosim_cfg.py b/cfg/main/cryosim_cfg.py new file mode 100644 index 0000000..9dfe9ff --- /dev/null +++ b/cfg/main/cryosim_cfg.py @@ -0,0 +1,50 @@ +Node('cyrosim.psi.ch', + 'cryo simulation (similar ppms simulation)', + interface='tcp://5000', +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + meaning=('temperature_regulation', 10), + ramp=20.0, + io='ppms', +) + +Mod('lev', + 'frappy_psi.ppms.Level', + 'helium level', + io='ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + 'sample temperature', + enabled=True, + linkenable='tv', + value=Param( + unit='K', + ), + meaning=('temperature', 10), + io='ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + 'exchanger temperature', + enabled=True, + linkenable='ts', + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + 'the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + visibility='expert', + pollinterval=2.0, + export=False, +) diff --git a/cfg/main/cti5.cfg b/cfg/main/cti5.cfg deleted file mode 100644 index 4a2348c..0000000 --- a/cfg/main/cti5.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = 15 K closed cycle cryostat -id = cti5.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for cti5.config -config = cti5.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt diff --git a/cfg/main/cti5_cfg.py b/cfg/main/cti5_cfg.py new file mode 100644 index 0000000..d7c4dd2 --- /dev/null +++ b/cfg/main/cti5_cfg.py @@ -0,0 +1,16 @@ +Node('cti5.config.sea.psi.ch', + '15 K closed cycle cryostat', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for cti5.config', + config='cti5.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) diff --git a/cfg/main/cti7.cfg b/cfg/main/cti7.cfg deleted file mode 100644 index a783a43..0000000 --- a/cfg/main/cti7.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = 30 K - 475 K closed cycle cryostat -id = cti7.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for cti7.config -config = cti7.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt diff --git a/cfg/main/cti7_cfg.py b/cfg/main/cti7_cfg.py new file mode 100644 index 0000000..b4e30d2 --- /dev/null +++ b/cfg/main/cti7_cfg.py @@ -0,0 +1,16 @@ +Node('cti7.config.sea.psi.ch', + '30 K - 475 K closed cycle cryostat', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for cti7.config', + config='cti7.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) diff --git a/cfg/main/cti7ht.cfg b/cfg/main/cti7ht.cfg deleted file mode 100644 index 61d05ad..0000000 --- a/cfg/main/cti7ht.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[NODE] -description = 30 K - 475 K closed cycle cryostat with hot stagge -id = cti7ht.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for cti7ht.config -config = cti7ht.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt diff --git a/cfg/main/cti7ht_cfg.py b/cfg/main/cti7ht_cfg.py new file mode 100644 index 0000000..b84bc5c --- /dev/null +++ b/cfg/main/cti7ht_cfg.py @@ -0,0 +1,16 @@ +Node('cti7ht.config.sea.psi.ch', + '30 K - 475 K closed cycle cryostat with hot stagge', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for cti7ht.config', + config='cti7ht.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) diff --git a/cfg/main/fftf.cfg b/cfg/main/fftf.cfg deleted file mode 100644 index 75a511d..0000000 --- a/cfg/main/fftf.cfg +++ /dev/null @@ -1,36 +0,0 @@ -[NODE] -description = thin film oven for AMOR -id = fftf.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for fftf.config -config = fftf.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[p] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p -extra_modules = vacuumpump gasflow tlimit tlimit_without_vacuum - -[gasflow] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = p.gasflow - -[vacuumpump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = p -rel_paths = vacuumpump tlimit tlimit_without_vacuum - -[table] -class = secop_psi.sea.SeaModule -io = sea_main -sea_object = table diff --git a/cfg/main/fftf_cfg.py b/cfg/main/fftf_cfg.py new file mode 100644 index 0000000..fdc876a --- /dev/null +++ b/cfg/main/fftf_cfg.py @@ -0,0 +1,42 @@ +Node('fftf.config.sea.psi.ch', + 'thin film oven for AMOR', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for fftf.config', + config='fftf.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('p', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p', + extra_modules=['vacuumpump', 'gasflow', 'tlimit', 'tlimit_without_vacuum'], +) + +Mod('gasflow', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['p.gasflow'], +) + +Mod('vacuumpump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='p', + rel_paths=['vacuumpump', 'tlimit', 'tlimit_without_vacuum'], +) + +Mod('table', + 'frappy_psi.sea.SeaModule', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/flamemag.cfg b/cfg/main/flamemag.cfg deleted file mode 100644 index b631c0f..0000000 --- a/cfg/main/flamemag.cfg +++ /dev/null @@ -1,168 +0,0 @@ -[cio] -class = secop_psi.cryoltd.IO -description = 'IO to cryo ltd software' -uri = tcp://flamedil:3128 - -[main] -class = secop_psi.cryoltd.Main -description = master module -io= cio - -[B] -description = 'magnetic field' -class = secop_psi.cryoltd.MainField -channel = Main -constraint = 80000 -target.max = 35000 -mode = 'PERSISTENT' -hw_units = T -# A_to_G is needed for ramp rate -A_to_G = 285.73 -ramp.max = 412 -overshoot = {'o': 1, 't': 180} -degauss = {'s': 500, 'd': 30, 'f': 5, 't': 120} -tolerance = 5 -wait_stable_field = 180 - -[Bx] -description = 'magnetic field x component' -class = secop_psi.cryoltd.ComponentField -channel = VMX -check_against = B -target.max = 200 -hw_units = A -A_to_G = 4.134 -ramp.max = 23 -tolerance = 1 - -[By] -description = 'magnetic field y component' -class = secop_psi.cryoltd.ComponentField -channel = VMY -check_against = B -target.max = 100 -hw_units = A -A_to_G = 4.1117 -ramp.max = 22.9 -tolerance = 1 - -[Bz] -description = 'magnetic field z component' -class = secop_psi.cryoltd.ComponentField -channel = VMZ -check_against = B -target.max = 100 -hw_units = A -A_to_G = 5.74 -ramp.max = 33.6 -tolerance = 1 - -[compressorA] -description = 'compressor A' -class = secop_psi.cryoltd.Compressor -channel = A - -[compressorB] -description = 'compressor B' -class = secop_psi.cryoltd.Compressor -channel = B - -[T_stage1_A] -class = secop_psi.cryoltd.Temperature -channel = 1st Stage A -main = main - -[T_stage2_A] -class = secop_psi.cryoltd.Temperature -channel = 2nd Stage A -main = main - -[T_stage1_B] -class = secop_psi.cryoltd.Temperature -channel = 1st Stage B -main = main - -[T_stage2_B] -class = secop_psi.cryoltd.Temperature -channel = 2nd Stage B -main = main - -[T_top_A] -class = secop_psi.cryoltd.Temperature -channel = Inner Magnet A (Top) -main = main - -[T_bottom_A] -class = secop_psi.cryoltd.Temperature -channel = Inner Magnet A (Bottom) -main = main - -[T_top_B] -class = secop_psi.cryoltd.Temperature -channel = Inner Magnet B (Top) -main = main - -[T_bottom_B] -class = secop_psi.cryoltd.Temperature -channel = Inner Magnet B (Bottom) -main = main - -[T_Z_shim] -class = secop_psi.cryoltd.Temperature -channel = Z Shim Former -main = main - -[T_XY_shim] -class = secop_psi.cryoltd.Temperature -channel = XY Shim Former -main = main - -[T_XY_vector] -class = secop_psi.cryoltd.Temperature -channel = XY Vector Former -main = main - -[T_radiation_shield] -class = secop_psi.cryoltd.Temperature -channel = Radiation Shield -main = main - -[T_persistent_joints] -class = secop_psi.cryoltd.Temperature -channel = Persistent Joints -main = main - -[T_outer_A] -class = secop_psi.cryoltd.Temperature -channel = Outer Magnet A -main = main - -[T_outer_B] -class = secop_psi.cryoltd.Temperature -channel = Outer Magnet B -main = main - -[T_shim_B] -class = secop_psi.cryoltd.Temperature -channel = Z Shim Former B -main = main - -[T_bore_shield] -class = secop_psi.cryoltd.Temperature -channel = Bore Radiation Shield -main = main - -[T_XYZ_shim] -class = secop_psi.cryoltd.Temperature -channel = XYZ Shim Plate -main = main - -[T_Z_shim_switch] -class = secop_psi.cryoltd.Temperature -channel = Z Shim Switch -main = main - -[T_main_switch] -class = secop_psi.cryoltd.Temperature -channel = Main Coil Switch -main = main diff --git a/cfg/main/flamemag_cfg.py b/cfg/main/flamemag_cfg.py new file mode 100644 index 0000000..657e725 --- /dev/null +++ b/cfg/main/flamemag_cfg.py @@ -0,0 +1,211 @@ +Mod('cio', + 'frappy_psi.cryoltd.IO', + 'IO to cryo ltd software', + uri='tcp://flamedil:3128', +) + +Mod('main', + 'frappy_psi.cryoltd.Main', + 'master module', + io='cio', +) + +Mod('B', + 'frappy_psi.cryoltd.MainField', + 'magnetic field', + channel='Main', + constraint=80000.0, + target=Param( + max=35000.0, + ), + mode='PERSISTENT', + hw_units='T', + A_to_G=285.73, + ramp=Param( + max=412.0, + ), + overshoot={'o': 1.0, 't': 180.0}, + degauss={'s': 500.0, 'd': 30.0, 'f': 5.0, 't': 120.0}, + tolerance=5.0, + wait_stable_field=180.0, +) + +Mod('Bx', + 'frappy_psi.cryoltd.ComponentField', + 'magnetic field x component', + channel='VMX', + check_against='B', + target=Param( + max=200.0, + ), + hw_units='A', + A_to_G=4.134, + ramp=Param( + max=23.0, + ), + tolerance=1.0, +) + +Mod('By', + 'frappy_psi.cryoltd.ComponentField', + 'magnetic field y component', + channel='VMY', + check_against='B', + target=Param( + max=100.0, + ), + hw_units='A', + A_to_G=4.1117, + ramp=Param( + max=22.9, + ), + tolerance=1.0, +) + +Mod('Bz', + 'frappy_psi.cryoltd.ComponentField', + 'magnetic field z component', + channel='VMZ', + check_against='B', + target=Param( + max=100.0, + ), + hw_units='A', + A_to_G=5.74, + ramp=Param( + max=33.6, + ), + tolerance=1.0, +) + +Mod('compressorA', + 'frappy_psi.cryoltd.Compressor', + 'compressor A', + channel='A', +) + +Mod('compressorB', + 'frappy_psi.cryoltd.Compressor', + 'compressor B', + channel='B', +) + +Mod('T_stage1_A', + 'frappy_psi.cryoltd.Temperature', + channel='1st Stage A', + main='main', +) + +Mod('T_stage2_A', + 'frappy_psi.cryoltd.Temperature', + channel='2nd Stage A', + main='main', +) + +Mod('T_stage1_B', + 'frappy_psi.cryoltd.Temperature', + channel='1st Stage B', + main='main', +) + +Mod('T_stage2_B', + 'frappy_psi.cryoltd.Temperature', + channel='2nd Stage B', + main='main', +) + +Mod('T_top_A', + 'frappy_psi.cryoltd.Temperature', + channel='Inner Magnet A (Top)', + main='main', +) + +Mod('T_bottom_A', + 'frappy_psi.cryoltd.Temperature', + channel='Inner Magnet A (Bottom)', + main='main', +) + +Mod('T_top_B', + 'frappy_psi.cryoltd.Temperature', + channel='Inner Magnet B (Top)', + main='main', +) + +Mod('T_bottom_B', + 'frappy_psi.cryoltd.Temperature', + channel='Inner Magnet B (Bottom)', + main='main', +) + +Mod('T_Z_shim', + 'frappy_psi.cryoltd.Temperature', + channel='Z Shim Former', + main='main', +) + +Mod('T_XY_shim', + 'frappy_psi.cryoltd.Temperature', + channel='XY Shim Former', + main='main', +) + +Mod('T_XY_vector', + 'frappy_psi.cryoltd.Temperature', + channel='XY Vector Former', + main='main', +) + +Mod('T_radiation_shield', + 'frappy_psi.cryoltd.Temperature', + channel='Radiation Shield', + main='main', +) + +Mod('T_persistent_joints', + 'frappy_psi.cryoltd.Temperature', + channel='Persistent Joints', + main='main', +) + +Mod('T_outer_A', + 'frappy_psi.cryoltd.Temperature', + channel='Outer Magnet A', + main='main', +) + +Mod('T_outer_B', + 'frappy_psi.cryoltd.Temperature', + channel='Outer Magnet B', + main='main', +) + +Mod('T_shim_B', + 'frappy_psi.cryoltd.Temperature', + channel='Z Shim Former B', + main='main', +) + +Mod('T_bore_shield', + 'frappy_psi.cryoltd.Temperature', + channel='Bore Radiation Shield', + main='main', +) + +Mod('T_XYZ_shim', + 'frappy_psi.cryoltd.Temperature', + channel='XYZ Shim Plate', + main='main', +) + +Mod('T_Z_shim_switch', + 'frappy_psi.cryoltd.Temperature', + channel='Z Shim Switch', + main='main', +) + +Mod('T_main_switch', + 'frappy_psi.cryoltd.Temperature', + channel='Main Coil Switch', + main='main', +) diff --git a/cfg/main/flamp.cfg b/cfg/main/flamp.cfg deleted file mode 100644 index f390498..0000000 --- a/cfg/main/flamp.cfg +++ /dev/null @@ -1,52 +0,0 @@ -[NODE] -description = lamp oven control (from manuel knecht) -id = flamp.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for flamp.config -config = flamp.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . t1 - -[t2] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tt -rel_paths = t2 - -[current] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = current -extra_modules = i1, i2, i3, i4 - -[i1] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = current.i1 - -[i2] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = current.i2 - -[i3] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = current.i3 - -[i4] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = current.i4 - -[pv] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = pv diff --git a/cfg/main/flamp_cfg.py b/cfg/main/flamp_cfg.py new file mode 100644 index 0000000..a689af2 --- /dev/null +++ b/cfg/main/flamp_cfg.py @@ -0,0 +1,61 @@ +Node('flamp.config.sea.psi.ch', + 'lamp oven control (from manuel knecht)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for flamp.config', + config='flamp.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 't1'], +) + +Mod('t2', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tt', + rel_paths=['t2'], +) + +Mod('current', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='current', + extra_modules=['i1,', 'i2,', 'i3,', 'i4'], +) + +Mod('i1', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['current.i1'], +) + +Mod('i2', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['current.i2'], +) + +Mod('i3', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['current.i3'], +) + +Mod('i4', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['current.i4'], +) + +Mod('pv', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='pv', +) diff --git a/cfg/main/fs.cfg b/cfg/main/fs.cfg deleted file mode 100644 index 2721dfe..0000000 --- a/cfg/main/fs.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[NODE] -description = small furnace -id = fs.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for fs.config -config = fs.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . tm - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = ts diff --git a/cfg/main/fs_cfg.py b/cfg/main/fs_cfg.py new file mode 100644 index 0000000..8752d9c --- /dev/null +++ b/cfg/main/fs_cfg.py @@ -0,0 +1,24 @@ +Node('fs.config.sea.psi.ch', + 'small furnace', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for fs.config', + config='fs.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'tm'], +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['ts'], +) diff --git a/cfg/main/ft.cfg b/cfg/main/ft.cfg deleted file mode 100644 index 5e82ee6..0000000 --- a/cfg/main/ft.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[NODE] -description = FT tantalum furnace (1400 K) -id = ft.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for fw.config -config = ft.config -service = main - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . ts - -[t2] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tt -rel_paths = tm - diff --git a/cfg/main/ft_cfg.py b/cfg/main/ft_cfg.py new file mode 100644 index 0000000..51792a7 --- /dev/null +++ b/cfg/main/ft_cfg.py @@ -0,0 +1,24 @@ +Node('ft.config.sea.psi.ch', + 'FT tantalum furnace (1400 K)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for fw.config', + config='ft.config', + service='main', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'ts'], +) + +Mod('t2', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tt', + rel_paths=['tm'], +) diff --git a/cfg/main/ill1.cfg b/cfg/main/ill1.cfg deleted file mode 100644 index 5d45c71..0000000 --- a/cfg/main/ill1.cfg +++ /dev/null @@ -1,57 +0,0 @@ -[NODE] -description = orange cryostat with 50 mm sample space -id = ill1.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ill1.config -config = ill1.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc -extra_modules = h -visibility = 3 - - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = cc.h - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ill1_cfg.py b/cfg/main/ill1_cfg.py new file mode 100644 index 0000000..fd23a99 --- /dev/null +++ b/cfg/main/ill1_cfg.py @@ -0,0 +1,66 @@ +Node('ill1.config.sea.psi.ch', + 'orange cryostat with 50 mm sample space', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ill1.config', + config='ill1.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', + extra_modules=['h'], + visibility=2, +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['cc.h'], +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/ill4.cfg b/cfg/main/ill4.cfg deleted file mode 100644 index 6662d10..0000000 --- a/cfg/main/ill4.cfg +++ /dev/null @@ -1,56 +0,0 @@ -[NODE] -description = orange cryostat with 70 mm sample space (FOCUS) -id = ill4.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ill4.config -config = ill4.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc -extra_modules = h -visibility = 3 - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = cc.h - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ill4_cfg.py b/cfg/main/ill4_cfg.py new file mode 100644 index 0000000..acdbb4e --- /dev/null +++ b/cfg/main/ill4_cfg.py @@ -0,0 +1,66 @@ +Node('ill4.config.sea.psi.ch', + 'orange cryostat with 70 mm sample space (FOCUS)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ill4.config', + config='ill4.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', + extra_modules=['h'], + visibility=2, +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['cc.h'], +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/ill5.cfg b/cfg/main/ill5.cfg deleted file mode 100644 index 288b2a5..0000000 --- a/cfg/main/ill5.cfg +++ /dev/null @@ -1,56 +0,0 @@ -[NODE] -description = orange cryostat with 100 mm sample space -id = ill5.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main SEA connection to ill5.config -config = ill5.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc -extra_modules = h -visibility = 3 - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = cc.h - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ill5_cfg.py b/cfg/main/ill5_cfg.py new file mode 100644 index 0000000..5fc7e30 --- /dev/null +++ b/cfg/main/ill5_cfg.py @@ -0,0 +1,66 @@ +Node('ill5.config.sea.psi.ch', + 'orange cryostat with 100 mm sample space', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main SEA connection to ill5.config', + config='ill5.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', + extra_modules=['h'], + visibility=2, +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['cc.h'], +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/ill5pgas5.cfg b/cfg/main/ill5pgas5.cfg deleted file mode 100644 index 7c48234..0000000 --- a/cfg/main/ill5pgas5.cfg +++ /dev/null @@ -1,86 +0,0 @@ -[NODE] -description = orange cryostat with 100 mm sample space and pgas5 pressure cell -id = ill5pgas5.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ill5pgas5.config -config = ill5pgas5.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[pauto] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = pauto - -[T_capillary] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tc - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc -extra_modules = h -visibility = 3 - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -single_module = cc.h - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[nvflow] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = nvflow - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table - -[pccu] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = pccu - -[p] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p - -[i1] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = i1 diff --git a/cfg/main/ill5pgas5_cfg.py b/cfg/main/ill5pgas5_cfg.py new file mode 100644 index 0000000..f35a475 --- /dev/null +++ b/cfg/main/ill5pgas5_cfg.py @@ -0,0 +1,102 @@ +Node('ill5pgas5.config.sea.psi.ch', + 'orange cryostat with 100 mm sample space and pgas5 pressure cell', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ill5pgas5.config', + config='ill5pgas5.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('pauto', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='pauto', +) + +Mod('T_capillary', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tc', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', + extra_modules=['h'], + visibility=2, +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + single_module=['cc.h'], +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('nvflow', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='nvflow', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) + +Mod('pccu', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='pccu', +) + +Mod('p', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p', +) + +Mod('i1', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='i1', +) diff --git a/cfg/main/jtccr.cfg b/cfg/main/jtccr.cfg deleted file mode 100644 index ddf2631..0000000 --- a/cfg/main/jtccr.cfg +++ /dev/null @@ -1,112 +0,0 @@ -[NODE] -description = CCR with JT-stage -id = jtccr.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for jtccr.config -config = jtccr.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . tt - -[T_ccr] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tt -rel_paths = ccr - -[jtccr] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = jtccr -extra_modules = v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,vm - -[v1] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v1 - -[v2] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v2 - -[v3] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v3 - -[v4] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v4 - -[v5] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v5 - -[v6] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v6 - -[v7] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v7 - -[v8] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v8 - -[v9] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v9 - -[v10] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.v10 - -[vm] -class = secop_psi.sea.SeaWritable -io = sea_main -single_module = jtccr.vm - -[p1] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p1 - -[p2] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p2 - -[p3] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p3 - -[p4] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = p4 - -[pressreg] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = pressreg - -[epc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = epc diff --git a/cfg/main/jtccr_cfg.py b/cfg/main/jtccr_cfg.py new file mode 100644 index 0000000..fe12115 --- /dev/null +++ b/cfg/main/jtccr_cfg.py @@ -0,0 +1,133 @@ +Node('jtccr.config.sea.psi.ch', + 'CCR with JT-stage', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for jtccr.config', + config='jtccr.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'tt'], +) + +Mod('T_ccr', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tt', + rel_paths=['ccr'], +) + +Mod('jtccr', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='jtccr', + extra_modules=['v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,vm'], +) + +Mod('v1', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v1'], +) + +Mod('v2', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v2'], +) + +Mod('v3', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v3'], +) + +Mod('v4', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v4'], +) + +Mod('v5', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v5'], +) + +Mod('v6', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v6'], +) + +Mod('v7', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v7'], +) + +Mod('v8', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v8'], +) + +Mod('v9', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v9'], +) + +Mod('v10', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.v10'], +) + +Mod('vm', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + single_module=['jtccr.vm'], +) + +Mod('p1', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p1', +) + +Mod('p2', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p2', +) + +Mod('p3', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p3', +) + +Mod('p4', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='p4', +) + +Mod('pressreg', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='pressreg', +) + +Mod('epc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='epc', +) diff --git a/cfg/main/ma02.cfg b/cfg/main/ma02.cfg deleted file mode 100644 index b08a5c4..0000000 --- a/cfg/main/ma02.cfg +++ /dev/null @@ -1,67 +0,0 @@ -[NODE] -description = 1.8 Tesla horizontal cryomagnet -id = ma02.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ma02.config -config = ma02.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[mf] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = mf - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lev - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[stick_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ma02-ts.psi.ch:3003 - -[stickrot] -description = stick rotation, typically not used as omega -class = secop_psi.phytron.Motor -io = stick_io -encoder_mode = CHECK - - diff --git a/cfg/main/ma02_cfg.py b/cfg/main/ma02_cfg.py new file mode 100644 index 0000000..bc22d23 --- /dev/null +++ b/cfg/main/ma02_cfg.py @@ -0,0 +1,77 @@ +Node('ma02.config.sea.psi.ch', + '1.8 Tesla horizontal cryomagnet', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ma02.config', + config='ma02.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('mf', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='mf', +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lev', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('stick_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ma02-ts.psi.ch:3003', +) + +Mod('stickrot', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically not used as omega', + io='stick_io', + encoder_mode='CHECK', +) diff --git a/cfg/main/ma10.cfg b/cfg/main/ma10.cfg deleted file mode 100644 index 023e336..0000000 --- a/cfg/main/ma10.cfg +++ /dev/null @@ -1,72 +0,0 @@ -[NODE] -description = 10 Tesla vertical cryomagnet -id = ma10.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ma10.config -config = ma10.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[mf] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = mf - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lev - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table - -[om_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ma10-ts.psi.ch:3004 - -[om] -description = stick rotation, typically used for omega -class = secop_psi.phytron.Motor -io = om_io -sign = -1 -encoder_mode = READ - diff --git a/cfg/main/ma10_cfg.py b/cfg/main/ma10_cfg.py new file mode 100644 index 0000000..f793571 --- /dev/null +++ b/cfg/main/ma10_cfg.py @@ -0,0 +1,84 @@ +Node('ma10.config.sea.psi.ch', + '10 Tesla vertical cryomagnet', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ma10.config', + config='ma10.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('mf', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='mf', +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lev', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) + +Mod('om_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ma10-ts.psi.ch:3004', +) + +Mod('om', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically used for omega', + io='om_io', + sign=-1, + encoder_mode='READ', +) diff --git a/cfg/main/ma11.cfg b/cfg/main/ma11.cfg deleted file mode 100644 index 43f565f..0000000 --- a/cfg/main/ma11.cfg +++ /dev/null @@ -1,97 +0,0 @@ -[NODE] -description = MA11 cryomagnet for SANS -id = ma11.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ma11.config -config = ma11.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . tm - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lev - -[mf] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = mf - -[tcoil] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tcoil - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table - -[ccu2] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ccu2 - -[lnv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = lnv - -[lpr] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = lpr - -[lambdawatch] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lambdawatch - -[stick_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ma11-ts.psi.ch:3005 - -[stickrot] -description = stick rotation, typically not used as omega -class = secop_psi.phytron.Motor -io = stick_io -encoder_mode = CHECK - diff --git a/cfg/main/ma11_cfg.py b/cfg/main/ma11_cfg.py new file mode 100644 index 0000000..e5efe08 --- /dev/null +++ b/cfg/main/ma11_cfg.py @@ -0,0 +1,114 @@ +Node('ma11.config.sea.psi.ch', + 'MA11 cryomagnet for SANS', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ma11.config', + config='ma11.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'tm'], +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lev', +) + +Mod('mf', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='mf', +) + +Mod('tcoil', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tcoil', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) + +Mod('ccu2', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ccu2', +) + +Mod('lnv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='lnv', +) + +Mod('lpr', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='lpr', +) + +Mod('lambdawatch', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lambdawatch', +) + +Mod('stick_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ma11-ts.psi.ch:3005', +) + +Mod('stickrot', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically not used as omega', + io='stick_io', + encoder_mode='CHECK', +) diff --git a/cfg/main/ma6.cfg b/cfg/main/ma6.cfg deleted file mode 100644 index 9cd10b9..0000000 --- a/cfg/main/ma6.cfg +++ /dev/null @@ -1,67 +0,0 @@ -[NODE] -description = compact 6 Tesla vertical cryomagnet -id = ma6.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ma6.config -config = ma6.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . tm - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[mf] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = mf - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lev - -[om_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ma6-ts.psi.ch:3003 - -[om] -description = stick rotation, typically used for omega -class = secop_psi.phytron.Motor -io = om_io -encoder_mode = NO - diff --git a/cfg/main/ma6_cfg.py b/cfg/main/ma6_cfg.py new file mode 100644 index 0000000..36ece60 --- /dev/null +++ b/cfg/main/ma6_cfg.py @@ -0,0 +1,78 @@ +Node('ma6.config.sea.psi.ch', + 'compact 6 Tesla vertical cryomagnet', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ma6.config', + config='ma6.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'tm'], +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('mf', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='mf', +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lev', +) + +Mod('om_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ma6-ts.psi.ch:3003', +) + +Mod('om', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically used for omega', + io='om_io', + encoder_mode='NO', +) diff --git a/cfg/main/ma7.cfg b/cfg/main/ma7.cfg deleted file mode 100644 index a586dea..0000000 --- a/cfg/main/ma7.cfg +++ /dev/null @@ -1,84 +0,0 @@ -[NODE] -description = 6.8 Tesla horizontal cryomagnet -id = ma7.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ma7.config -config = ma7.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = . tm - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[mf] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = mf - -[lev] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = lev - -[tcoil1] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tcoil -rel_paths = ta - -[tcoil2] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = tcoil -rel_paths = tb - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table - -[stick_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = ma7-ts.psi.ch:3007 - -[stickrot] -description = stick rotation, typically not used as omega -class = secop_psi.phytron.Motor -io = stick_io -encoder_mode = CHECK - diff --git a/cfg/main/ma7_cfg.py b/cfg/main/ma7_cfg.py new file mode 100644 index 0000000..7c1d1e5 --- /dev/null +++ b/cfg/main/ma7_cfg.py @@ -0,0 +1,98 @@ +Node('ma7.config.sea.psi.ch', + '6.8 Tesla horizontal cryomagnet', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ma7.config', + config='ma7.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['.', 'tm'], +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('mf', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='mf', +) + +Mod('lev', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='lev', +) + +Mod('tcoil1', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tcoil', + rel_paths=['ta'], +) + +Mod('tcoil2', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='tcoil', + rel_paths=['tb'], +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) + +Mod('stick_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='ma7-ts.psi.ch:3007', +) + +Mod('stickrot', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically not used as omega', + io='stick_io', + encoder_mode='CHECK', +) diff --git a/cfg/main/magsim.cfg b/cfg/main/magsim.cfg deleted file mode 100644 index 512e178..0000000 --- a/cfg/main/magsim.cfg +++ /dev/null @@ -1,51 +0,0 @@ -[NODE] -id = magsim.psi.ch -description = cryo magnet simulation (similar to ppms simulation) - -[INTERFACE] -uri = tcp://5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -meaning = ['temperature_regulation', 10] -ramp = 20 -io = ppms - -[mf] -class = secop_psi.ppms.Field -target.min = -9 -target.max = 9 -description = magnetic field -io = ppms -meaning = ['magneticfield', 10] - -[lev] -class = secop_psi.ppms.Level -description = helium level -io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -description = sample temperature -enabled = 1 -linkenable = tv -value.unit = K -meaning = ['temperature', 10] -io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -description = exchanger temperature -enabled = 1 -linkenable = ts -value.unit = K -io = ppms - -[ppms] -class = secop_psi.ppms.Main -description = the main and poller module -class_id = QD.MULTIVU.PPMS.1 -visibility = 3 -pollinterval = 2 -export = False diff --git a/cfg/main/magsim_cfg.py b/cfg/main/magsim_cfg.py new file mode 100644 index 0000000..3f9f4d6 --- /dev/null +++ b/cfg/main/magsim_cfg.py @@ -0,0 +1,61 @@ +Node('magsim.psi.ch', + 'cryo magnet simulation (similar to ppms simulation)', + interface='tcp://5000', +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + meaning=('temperature_regulation', 10), + ramp=20.0, + io='ppms', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + 'magnetic field', + target=Param( + min=-9.0, + max=9.0, + ), + io='ppms', + meaning=('magneticfield', 10), +) + +Mod('lev', + 'frappy_psi.ppms.Level', + 'helium level', + io='ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + 'sample temperature', + enabled=True, + linkenable='tv', + value=Param( + unit='K', + ), + meaning=('temperature', 10), + io='ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + 'exchanger temperature', + enabled=True, + linkenable='ts', + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + 'the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + visibility='expert', + pollinterval=2.0, + export=False, +) diff --git a/cfg/main/mb11.cfg b/cfg/main/mb11.cfg deleted file mode 100644 index 359b2ba..0000000 --- a/cfg/main/mb11.cfg +++ /dev/null @@ -1,180 +0,0 @@ -[NODE] -id = mb11.psi.ch -description = MB11 11 Tesla - 100 mm cryomagnet - -[INTERFACE] -uri = tcp://5000 - -[itc1] -class = secop_psi.mercury.IO -description = ITC for heat exchanger and pressures -uri = mb11-ts:3001 - -[itc2] -class = secop_psi.mercury.IO -description = ITC for neck and nv heaters -uri = mb11-ts:3002 - -[ips] -class = secop_psi.mercury.IO -description = IPS for magnet and levels -uri = mb11-ts:3003 - -[T_stat] -class = secop_psi.mercury.TemperatureAutoFlow -description = static heat exchanger temperature -output_module = htr_stat -needle_valve = p_stat -slot = DB6.T1 -io = itc1 -tolerance = 0.1 - -[htr_stat] -class = secop_psi.mercury.HeaterOutput -description = static heat exchanger heater -slot = DB1.H1 -io = itc1 - -[p_stat] -class = secop_psi.mercury.PressureLoop -description = static needle valve pressure -output_module = pos_stat -settling_time = 60 -slot = DB5.P1,DB3.G1 -io = itc1 -tolerance = 1 -value.unit = mbar_flow - -[pos_stat] -class = secop_psi.mercury.ValvePos -description = static needle valve position -slot = DB5.P1,DB3.G1 -io = itc1 - -[T_dyn] -class = secop_psi.mercury.TemperatureAutoFlow -description = dynamic heat exchanger temperature -output_module = htr_dyn -needle_valve = p_dyn -slot = DB7.T1 -io = itc1 -tolerance = 0.1 - -[htr_dyn] -class = secop_psi.mercury.HeaterOutput -description = dynamic heat exchanger heater -slot = DB2.H1 -io = itc1 - -[p_dyn] -class = secop_psi.mercury.PressureLoop -description = dynamic needle valve pressure -output_module = pos_dyn -settling_time = 60 -slot = DB8.P1,DB4.G1 -io = itc1 -tolerance = 1 -value.unit = mbar_flow - -[pos_dyn] -class = secop_psi.mercury.ValvePos -description = dynamic needle valve position -slot = DB8.P1,DB4.G1 -io = itc1 - -[mf] -class = secop_psi.ips_mercury.Field -description = magnetic field -slot = GRPZ -io = ips -tolerance = 0.001 -wait_stable_field = 60 -target.max = 11 -persistent_limit = 7 - -[lev] -class = secop_psi.mercury.HeLevel -description = LHe level -slot = DB1.L1 -io = ips - -[n2lev] -class = secop_psi.mercury.N2Level -description = LHe level -slot = DB1.L1 -io = ips - -[T_neck1] -class = secop_psi.mercury.TemperatureLoop -description = neck heater 1 temperature -output_module = htr_neck1 -slot = MB1.T1 -io = itc2 -tolerance = 1 - -[htr_neck1] -class = secop_psi.mercury.HeaterOutput -description = neck heater 1 power -slot = MB0.H1 -io = itc2 - -[T_neck2] -class = secop_psi.mercury.TemperatureLoop -description = neck heater 2 temperature -output_module = htr_neck2 -slot = DB6.T1 -io = itc2 -tolerance = 1 - -[htr_neck2] -class = secop_psi.mercury.HeaterOutput -description = neck heater 2 power -slot = DB1.H1 -io = itc2 - -[T_nvs] -class = secop_psi.mercury.TemperatureLoop -description = static needle valve temperature -output_module = htr_nvs -slot = DB7.T1 -io = itc2 -tolerance = 0.1 - -[htr_nvs] -class = secop_psi.mercury.HeaterOutput -description = static needle valve heater power -slot = DB2.H1 -io = itc2 - -[T_nvd] -class = secop_psi.mercury.TemperatureLoop -description = dynamic needle valve heater temperature -output_module = htr_nvd -slot = DB8.T1 -io = itc2 -tolerance = 0.1 - -[htr_nvd] -class = secop_psi.mercury.HeaterOutput -description = dynamic needle valve heater power -slot = DB3.H1 -io = itc2 - -[T_coil] -class = secop_psi.mercury.TemperatureSensor -description = coil temperature -slot = MB1.T1 -io = ips - -[om_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = mb11-ts.psi.ch:3004 - -[om] -description = stick rotation, typically used for omega -class = secop_psi.phytron.Motor -io = om_io -sign = -1 -encoder_mode = NO - diff --git a/cfg/main/mb11_cfg.py b/cfg/main/mb11_cfg.py new file mode 100644 index 0000000..81d7c5b --- /dev/null +++ b/cfg/main/mb11_cfg.py @@ -0,0 +1,208 @@ +Node('mb11.psi.ch', + 'MB11 11 Tesla - 100 mm cryomagnet', + interface='tcp://5000', +) + +Mod('itc1', + 'frappy_psi.mercury.IO', + 'ITC for heat exchanger and pressures', + uri='mb11-ts:3001', +) + +Mod('itc2', + 'frappy_psi.mercury.IO', + 'ITC for neck and nv heaters', + uri='mb11-ts:3002', +) + +Mod('ips', + 'frappy_psi.mercury.IO', + 'IPS for magnet and levels', + uri='mb11-ts:3003', +) + +Mod('T_stat', + 'frappy_psi.mercury.TemperatureAutoFlow', + 'static heat exchanger temperature', + output_module='htr_stat', + needle_valve='p_stat', + slot='DB6.T1', + io='itc1', + tolerance=0.1, +) + +Mod('htr_stat', + 'frappy_psi.mercury.HeaterOutput', + 'static heat exchanger heater', + slot='DB1.H1', + io='itc1', +) + +Mod('p_stat', + 'frappy_psi.mercury.PressureLoop', + 'static needle valve pressure', + output_module='pos_stat', + settling_time=60.0, + slot='DB5.P1,DB3.G1', + io='itc1', + tolerance=1.0, + value=Param( + unit='mbar_flow', + ), +) + +Mod('pos_stat', + 'frappy_psi.mercury.ValvePos', + 'static needle valve position', + slot='DB5.P1,DB3.G1', + io='itc1', +) + +Mod('T_dyn', + 'frappy_psi.mercury.TemperatureAutoFlow', + 'dynamic heat exchanger temperature', + output_module='htr_dyn', + needle_valve='p_dyn', + slot='DB7.T1', + io='itc1', + tolerance=0.1, +) + +Mod('htr_dyn', + 'frappy_psi.mercury.HeaterOutput', + 'dynamic heat exchanger heater', + slot='DB2.H1', + io='itc1', +) + +Mod('p_dyn', + 'frappy_psi.mercury.PressureLoop', + 'dynamic needle valve pressure', + output_module='pos_dyn', + settling_time=60.0, + slot='DB8.P1,DB4.G1', + io='itc1', + tolerance=1.0, + value=Param( + unit='mbar_flow', + ), +) + +Mod('pos_dyn', + 'frappy_psi.mercury.ValvePos', + 'dynamic needle valve position', + slot='DB8.P1,DB4.G1', + io='itc1', +) + +Mod('mf', + 'frappy_psi.ips_mercury.Field', + 'magnetic field', + slot='GRPZ', + io='ips', + tolerance=0.001, + wait_stable_field=60.0, + target=Param( + max=11.0, + ), + persistent_limit=7.0, +) + +Mod('lev', + 'frappy_psi.mercury.HeLevel', + 'LHe level', + slot='DB1.L1', + io='ips', +) + +Mod('n2lev', + 'frappy_psi.mercury.N2Level', + 'LHe level', + slot='DB1.L1', + io='ips', +) + +Mod('T_neck1', + 'frappy_psi.mercury.TemperatureLoop', + 'neck heater 1 temperature', + output_module='htr_neck1', + slot='MB1.T1', + io='itc2', + tolerance=1.0, +) + +Mod('htr_neck1', + 'frappy_psi.mercury.HeaterOutput', + 'neck heater 1 power', + slot='MB0.H1', + io='itc2', +) + +Mod('T_neck2', + 'frappy_psi.mercury.TemperatureLoop', + 'neck heater 2 temperature', + output_module='htr_neck2', + slot='DB6.T1', + io='itc2', + tolerance=1.0, +) + +Mod('htr_neck2', + 'frappy_psi.mercury.HeaterOutput', + 'neck heater 2 power', + slot='DB1.H1', + io='itc2', +) + +Mod('T_nvs', + 'frappy_psi.mercury.TemperatureLoop', + 'static needle valve temperature', + output_module='htr_nvs', + slot='DB7.T1', + io='itc2', + tolerance=0.1, +) + +Mod('htr_nvs', + 'frappy_psi.mercury.HeaterOutput', + 'static needle valve heater power', + slot='DB2.H1', + io='itc2', +) + +Mod('T_nvd', + 'frappy_psi.mercury.TemperatureLoop', + 'dynamic needle valve heater temperature', + output_module='htr_nvd', + slot='DB8.T1', + io='itc2', + tolerance=0.1, +) + +Mod('htr_nvd', + 'frappy_psi.mercury.HeaterOutput', + 'dynamic needle valve heater power', + slot='DB3.H1', + io='itc2', +) + +Mod('T_coil', + 'frappy_psi.mercury.TemperatureSensor', + 'coil temperature', + slot='MB1.T1', + io='ips', +) + +Mod('om_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='mb11-ts.psi.ch:3004', +) + +Mod('om', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically used for omega', + io='om_io', + sign=-1, + encoder_mode='NO', +) diff --git a/cfg/main/mb11std.cfg b/cfg/main/mb11std.cfg deleted file mode 100644 index 894208e..0000000 --- a/cfg/main/mb11std.cfg +++ /dev/null @@ -1,206 +0,0 @@ -[NODE] -id = mb11.psi.ch -description = MB11 11 Tesla - 100 mm cryomagnet - -[INTERFACE] -uri = tcp://5000 - -[itc1] -class = secop_psi.mercury.IO -description = ITC for heat exchanger and pressures -uri = mb11-ts:3001 - -[itc2] -class = secop_psi.mercury.IO -description = ITC for neck and nv heaters -uri = mb11-ts:3002 - -[ips] -class = secop_psi.mercury.IO -description = IPS for magnet and levels -uri = mb11-ts:3003 - -[T_stat] -class = secop_psi.mercury.TemperatureAutoFlow -description = static heat exchanger temperature -output_module = htr_stat -needle_valve = p_stat -slot = DB6.T1 -io = itc1 -tolerance = 0.1 - -[htr_stat] -class = secop_psi.mercury.HeaterOutput -description = static heat exchanger heater -slot = DB1.H1 -io = itc1 - -[ts] -class = secop_psi.mercury.TemperatureLoop -description = sample temperature -output_module = htr_sample -slot = MB1.T1 -io = itc1 -tolerance = 1 - -[htr_sample] -class = secop_psi.mercury.HeaterOutput -description = sample stick heater power -slot = MB0.H1 -io = itc1 - -[p_stat] -class = secop_psi.mercury.PressureLoop -description = static needle valve pressure -output_module = pos_stat -settling_time = 60 -slot = DB5.P1,DB3.G1 -io = itc1 -tolerance = 1 -value.unit = mbar_flow - -[pos_stat] -class = secop_psi.mercury.ValvePos -description = static needle valve position -slot = DB5.P1,DB3.G1 -io = itc1 - -[T_dyn] -class = secop_psi.mercury.TemperatureAutoFlow -description = dynamic heat exchanger temperature -output_module = htr_dyn -needle_valve = p_dyn -slot = DB7.T1 -io = itc1 -tolerance = 0.1 - -[htr_dyn] -class = secop_psi.mercury.HeaterOutput -description = dynamic heat exchanger heater -slot = DB2.H1 -io = itc1 - -[p_dyn] -class = secop_psi.mercury.PressureLoop -description = dynamic needle valve pressure -output_module = pos_dyn -settling_time = 60 -slot = DB8.P1,DB4.G1 -io = itc1 -tolerance = 1 -value.unit = mbar_flow - -[pos_dyn] -class = secop_psi.mercury.ValvePos -description = dynamic needle valve position -slot = DB8.P1,DB4.G1 -io = itc1 - -[mf] -class = secop_psi.ips_mercury.Field -description = magnetic field -slot = GRPZ -io = ips -tolerance = 0.001 -wait_stable_field = 60 -target.max = 11 -persistent_limit = 7 - -[lev] -class = secop_psi.mercury.HeLevel -description = LHe level -slot = DB1.L1 -io = ips - -[n2lev] -class = secop_psi.mercury.N2Level -description = LHe level -slot = DB1.L1 -io = ips - -[T_neck1] -class = secop_psi.mercury.TemperatureLoop -description = neck heater 1 temperature -output_module = htr_neck1 -slot = MB1.T1 -io = itc2 -tolerance = 1 - -[htr_neck1] -class = secop_psi.mercury.HeaterOutput -description = neck heater 1 power -slot = MB0.H1 -io = itc2 - -[T_neck2] -class = secop_psi.mercury.TemperatureLoop -description = neck heater 2 temperature -output_module = htr_neck2 -slot = DB6.T1 -io = itc2 -tolerance = 1 - -[htr_neck2] -class = secop_psi.mercury.HeaterOutput -description = neck heater 2 power -slot = DB1.H1 -io = itc2 - -[T_nvs] -class = secop_psi.mercury.TemperatureLoop -description = static needle valve temperature -output_module = htr_nvs -slot = DB7.T1 -io = itc2 -tolerance = 0.1 - -[htr_nvs] -class = secop_psi.mercury.HeaterOutput -description = static needle valve heater power -slot = DB2.H1 -io = itc2 - -[T_nvd] -class = secop_psi.mercury.TemperatureLoop -description = dynamic needle valve heater temperature -output_module = htr_nvd -slot = DB8.T1 -io = itc2 -tolerance = 0.1 - -[htr_nvd] -class = secop_psi.mercury.HeaterOutput -description = dynamic needle valve heater power -slot = DB3.H1 -io = itc2 - -[T_coil] -class = secop_psi.mercury.TemperatureSensor -description = coil temperature -slot = MB1.T1 -io = ips - -[om_io] -description = dom motor IO -class = secop_psi.phytron.PhytronIO -uri = mb11-ts.psi.ch:3004 - -[om] -description = stick rotation, typically used for omega -class = secop_psi.phytron.Motor -io = om_io -sign = -1 -encoder_mode = NO - -#[sea_main] -#class = secop_psi.sea.SeaClient -#description = main sea connection for mb11.config -#config = mb11.config -#service = main - -#[hepump] -#class = secop_psi.sea.SeaWritable -#io = sea_main -#sea_object = hepump - - diff --git a/cfg/main/mb11std_cfg.py b/cfg/main/mb11std_cfg.py new file mode 100644 index 0000000..8bc2ccd --- /dev/null +++ b/cfg/main/mb11std_cfg.py @@ -0,0 +1,224 @@ +Node('mb11.psi.ch', + 'MB11 11 Tesla - 100 mm cryomagnet', + interface='tcp://5000', +) + +Mod('itc1', + 'frappy_psi.mercury.IO', + 'ITC for heat exchanger and pressures', + uri='mb11-ts:3001', +) + +Mod('itc2', + 'frappy_psi.mercury.IO', + 'ITC for neck and nv heaters', + uri='mb11-ts:3002', +) + +Mod('ips', + 'frappy_psi.mercury.IO', + 'IPS for magnet and levels', + uri='mb11-ts:3003', +) + +Mod('T_stat', + 'frappy_psi.mercury.TemperatureAutoFlow', + 'static heat exchanger temperature', + output_module='htr_stat', + needle_valve='p_stat', + slot='DB6.T1', + io='itc1', + tolerance=0.1, +) + +Mod('htr_stat', + 'frappy_psi.mercury.HeaterOutput', + 'static heat exchanger heater', + slot='DB1.H1', + io='itc1', +) + +Mod('ts', + 'frappy_psi.mercury.TemperatureLoop', + 'sample temperature', + output_module='htr_sample', + slot='MB1.T1', + io='itc1', + tolerance=1.0, +) + +Mod('htr_sample', + 'frappy_psi.mercury.HeaterOutput', + 'sample stick heater power', + slot='MB0.H1', + io='itc1', +) + +Mod('p_stat', + 'frappy_psi.mercury.PressureLoop', + 'static needle valve pressure', + output_module='pos_stat', + settling_time=60.0, + slot='DB5.P1,DB3.G1', + io='itc1', + tolerance=1.0, + value=Param( + unit='mbar_flow', + ), +) + +Mod('pos_stat', + 'frappy_psi.mercury.ValvePos', + 'static needle valve position', + slot='DB5.P1,DB3.G1', + io='itc1', +) + +Mod('T_dyn', + 'frappy_psi.mercury.TemperatureAutoFlow', + 'dynamic heat exchanger temperature', + output_module='htr_dyn', + needle_valve='p_dyn', + slot='DB7.T1', + io='itc1', + tolerance=0.1, +) + +Mod('htr_dyn', + 'frappy_psi.mercury.HeaterOutput', + 'dynamic heat exchanger heater', + slot='DB2.H1', + io='itc1', +) + +Mod('p_dyn', + 'frappy_psi.mercury.PressureLoop', + 'dynamic needle valve pressure', + output_module='pos_dyn', + settling_time=60.0, + slot='DB8.P1,DB4.G1', + io='itc1', + tolerance=1.0, + value=Param( + unit='mbar_flow', + ), +) + +Mod('pos_dyn', + 'frappy_psi.mercury.ValvePos', + 'dynamic needle valve position', + slot='DB8.P1,DB4.G1', + io='itc1', +) + +Mod('mf', + 'frappy_psi.ips_mercury.Field', + 'magnetic field', + slot='GRPZ', + io='ips', + tolerance=0.001, + wait_stable_field=60.0, + target=Param( + max=11.0, + ), + persistent_limit=7.0, +) + +Mod('lev', + 'frappy_psi.mercury.HeLevel', + 'LHe level', + slot='DB1.L1', + io='ips', +) + +Mod('n2lev', + 'frappy_psi.mercury.N2Level', + 'LHe level', + slot='DB1.L1', + io='ips', +) + +Mod('T_neck1', + 'frappy_psi.mercury.TemperatureLoop', + 'neck heater 1 temperature', + output_module='htr_neck1', + slot='MB1.T1', + io='itc2', + tolerance=1.0, +) + +Mod('htr_neck1', + 'frappy_psi.mercury.HeaterOutput', + 'neck heater 1 power', + slot='MB0.H1', + io='itc2', +) + +Mod('T_neck2', + 'frappy_psi.mercury.TemperatureLoop', + 'neck heater 2 temperature', + output_module='htr_neck2', + slot='DB6.T1', + io='itc2', + tolerance=1.0, +) + +Mod('htr_neck2', + 'frappy_psi.mercury.HeaterOutput', + 'neck heater 2 power', + slot='DB1.H1', + io='itc2', +) + +Mod('T_nvs', + 'frappy_psi.mercury.TemperatureLoop', + 'static needle valve temperature', + output_module='htr_nvs', + slot='DB7.T1', + io='itc2', + tolerance=0.1, +) + +Mod('htr_nvs', + 'frappy_psi.mercury.HeaterOutput', + 'static needle valve heater power', + slot='DB2.H1', + io='itc2', +) + +Mod('T_nvd', + 'frappy_psi.mercury.TemperatureLoop', + 'dynamic needle valve heater temperature', + output_module='htr_nvd', + slot='DB8.T1', + io='itc2', + tolerance=0.1, +) + +Mod('htr_nvd', + 'frappy_psi.mercury.HeaterOutput', + 'dynamic needle valve heater power', + slot='DB3.H1', + io='itc2', +) + +Mod('T_coil', + 'frappy_psi.mercury.TemperatureSensor', + 'coil temperature', + slot='MB1.T1', + io='ips', +) + +Mod('om_io', + 'frappy_psi.phytron.PhytronIO', + 'dom motor IO', + uri='mb11-ts.psi.ch:3004', +) + +Mod('om', + 'frappy_psi.phytron.Motor', + 'stick rotation, typically used for omega', + io='om_io', + sign=-1, + encoder_mode='NO', +) diff --git a/cfg/main/ori3.cfg b/cfg/main/ori3.cfg deleted file mode 100644 index 75d5cf0..0000000 --- a/cfg/main/ori3.cfg +++ /dev/null @@ -1,49 +0,0 @@ -[NODE] -description = orange cryostat with 100 mm sample space -id = ori3.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ori3.config -config = ori3.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ori3_cfg.py b/cfg/main/ori3_cfg.py new file mode 100644 index 0000000..409c82a --- /dev/null +++ b/cfg/main/ori3_cfg.py @@ -0,0 +1,58 @@ +Node('ori3.config.sea.psi.ch', + 'orange cryostat with 100 mm sample space', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ori3.config', + config='ori3.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/ori4.cfg b/cfg/main/ori4.cfg deleted file mode 100644 index 5145d10..0000000 --- a/cfg/main/ori4.cfg +++ /dev/null @@ -1,60 +0,0 @@ -[NODE] -description = orange cryostat with 100 mm sample space (HRPT) -id = ori4.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = SEA connection to ori4 -config = ori4.config -service = main - -[t] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[tm] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt -rel_paths = tm - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[nvmot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = nvmot - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ori4_cfg.py b/cfg/main/ori4_cfg.py new file mode 100644 index 0000000..0cf755c --- /dev/null +++ b/cfg/main/ori4_cfg.py @@ -0,0 +1,71 @@ +Node('ori4.config.sea.psi.ch', + 'orange cryostat with 100 mm sample space (HRPT)', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'SEA connection to ori4', + config='ori4.config', + service='main', +) + +Mod('t', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('tm', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', + rel_paths=['tm'], +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('nvmot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='nvmot', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/ori6.cfg b/cfg/main/ori6.cfg deleted file mode 100644 index 523a16b..0000000 --- a/cfg/main/ori6.cfg +++ /dev/null @@ -1,54 +0,0 @@ -[NODE] -description = orange cryostat with 100 mm sample space -id = ori6.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for ori6.config -config = ori6.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[nvflow] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = nvflow - -[table] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = table diff --git a/cfg/main/ori6_cfg.py b/cfg/main/ori6_cfg.py new file mode 100644 index 0000000..4395661 --- /dev/null +++ b/cfg/main/ori6_cfg.py @@ -0,0 +1,64 @@ +Node('ori6.config.sea.psi.ch', + 'orange cryostat with 100 mm sample space', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for ori6.config', + config='ori6.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('nvflow', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='nvflow', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='table', +) diff --git a/cfg/main/smamor.cfg b/cfg/main/smamor.cfg deleted file mode 100644 index c7e708b..0000000 --- a/cfg/main/smamor.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[NODE] -description = Keithley 2450 sourcemeter -id = smamor.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for smamor.config -config = smamor.config -service = main - -[smi] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = smi - -[smv] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = smv - -[r] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = r diff --git a/cfg/main/smamor_cfg.py b/cfg/main/smamor_cfg.py new file mode 100644 index 0000000..c74057d --- /dev/null +++ b/cfg/main/smamor_cfg.py @@ -0,0 +1,28 @@ +Node('smamor.config.sea.psi.ch', + 'Keithley 2450 sourcemeter', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for smamor.config', + config='smamor.config', + service='main', +) + +Mod('smi', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='smi', +) + +Mod('smv', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='smv', +) + +Mod('r', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='r', +) diff --git a/cfg/main/variox.cfg b/cfg/main/variox.cfg deleted file mode 100644 index 96d1ec2..0000000 --- a/cfg/main/variox.cfg +++ /dev/null @@ -1,49 +0,0 @@ -[NODE] -description = Variox cryostat with 50 mm sample space -id = variox.config.sea.psi.ch - -[sea_main] -class = secop_psi.sea.SeaClient -description = main sea connection for variox.config -config = variox.config -service = main - -[tt] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = tt - -[cc] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = cc - -[nv] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = nv - -[ln2fill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = ln2fill - -[hefill] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hefill - -[hepump] -class = secop_psi.sea.SeaWritable -io = sea_main -sea_object = hepump - -[hemot] -class = secop_psi.sea.SeaDrivable -io = sea_main -sea_object = hemot - -[nvflow] -class = secop_psi.sea.SeaReadable -io = sea_main -sea_object = nvflow diff --git a/cfg/main/variox_cfg.py b/cfg/main/variox_cfg.py new file mode 100644 index 0000000..cdf6233 --- /dev/null +++ b/cfg/main/variox_cfg.py @@ -0,0 +1,58 @@ +Node('variox.config.sea.psi.ch', + 'Variox cryostat with 50 mm sample space', +) + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for variox.config', + config='variox.config', + service='main', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='tt', +) + +Mod('cc', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='cc', +) + +Mod('nv', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='nv', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='ln2fill', +) + +Mod('hefill', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hefill', +) + +Mod('hepump', + 'frappy_psi.sea.SeaWritable', + io='sea_main', + sea_object='hepump', +) + +Mod('hemot', + 'frappy_psi.sea.SeaDrivable', + io='sea_main', + sea_object='hemot', +) + +Mod('nvflow', + 'frappy_psi.sea.SeaReadable', + io='sea_main', + sea_object='nvflow', +) diff --git a/cfg/multiplexer.cfg b/cfg/multiplexer.cfg deleted file mode 100644 index fe50017..0000000 --- a/cfg/multiplexer.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[NODE] -class = protocol.router.Router -id = multiplexer -description = multiplexer node -nodes = ['localhost:5000', 'localhost:10769'] - -[INTERFACE] -uri = tcp://5000 diff --git a/cfg/multiplexer_cfg.py b/cfg/multiplexer_cfg.py new file mode 100644 index 0000000..b59a385 --- /dev/null +++ b/cfg/multiplexer_cfg.py @@ -0,0 +1,6 @@ +Node('multiplexer', + 'multiplexer node', + 'tcp://5000', + cls = 'protocol.router.Router', + nodes = ['localhost:10768', 'localhost:10769'], +) diff --git a/cfg/ori.cfg b/cfg/ori.cfg deleted file mode 100644 index 75153a5..0000000 --- a/cfg/ori.cfg +++ /dev/null @@ -1,5 +0,0 @@ -[seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -# uri = tcp://samenv.psi.ch:8642 - diff --git a/cfg/ori_cfg.py b/cfg/ori_cfg.py new file mode 100644 index 0000000..83d0b50 --- /dev/null +++ b/cfg/ori_cfg.py @@ -0,0 +1,4 @@ +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', +) diff --git a/cfg/phytron.cfg b/cfg/phytron.cfg deleted file mode 100644 index 26e6e15..0000000 --- a/cfg/phytron.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[NODE] -id = phytron_test.psi.ch -description = phytron motor test - -[INTERFACE] -uri = tcp://5000 - -[drv_io] -description = -class = secop_psi.phytron.PhytronIO -uri = ma7-ts.psi.ch:3007 -# uri = serial:///dev/tty.usbserial?baudrate=57600 -# uri = serial:///dev/ttyUSB0?baudrate=9600 - -[drv] -description = a phytron motor -class = secop_psi.phytron.Motor -io = drv_io -abslimits = -180,360 -encoder_mode = CHECK diff --git a/cfg/phytron_cfg.py b/cfg/phytron_cfg.py new file mode 100644 index 0000000..9bae10d --- /dev/null +++ b/cfg/phytron_cfg.py @@ -0,0 +1,18 @@ +Node('phytron_test.psi.ch', + 'phytron motor test', + interface='tcp://5000', +) + +Mod('drv_io', + 'frappy_psi.phytron.PhytronIO', + '', + uri='ma7-ts.psi.ch:3007', +) + +Mod('drv', + 'frappy_psi.phytron.Motor', + 'a phytron motor', + io='drv_io', + abslimits=(-180.0, 360.0), + encoder_mode='CHECK', +) diff --git a/cfg/ppms.cfg b/cfg/ppms.cfg deleted file mode 100644 index 6091d00..0000000 --- a/cfg/ppms.cfg +++ /dev/null @@ -1,125 +0,0 @@ -[NODE] -id = PPMS.psi.ch -description = PPMS at PSI - -[INTERFACE] -uri = tcp://5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -io = ppms - -[mf] -class = secop_psi.ppms.Field -target=0 -target.min = -9 -target.max = 9 -description = magnetic field -io = ppms - -[pos] -class = secop_psi.ppms.Position -description = sample rotator -io = ppms - -[lev] -class = secop_psi.ppms.Level -description = helium level -io = ppms - -[chamber] -class = secop_psi.ppms.Chamber -description = chamber state -io = ppms - -[r1] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 1 -no = 1 -value.unit = Ohm -io = ppms - -[r2] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 2 -no = 2 -value.unit = Ohm -io = ppms - -[r3] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 3 -no = 3 -value.unit = Ohm -io = ppms - -[r4] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 4 -no = 4 -value.unit = Ohm -io = ppms - -[i1] -class = secop_psi.ppms.Channel -description = current channel 1 -no = 1 -value.unit = uA -io = ppms - -[i2] -class = secop_psi.ppms.Channel -description = current channel 2 -no = 2 -value.unit = uA -io = ppms - -[i3] -class = secop_psi.ppms.Channel -description = current channel 3 -no = 3 -value.unit = uA -io = ppms - -[i4] -class = secop_psi.ppms.Channel -description = current channel 4 -no = 4 -value.unit = uA -io = ppms - -[v1] -class = secop_psi.ppms.DriverChannel -description = voltage channel 1 -no = 1 -value.unit = V -io = ppms - -[v2] -class = secop_psi.ppms.DriverChannel -description = voltage channel 2 -no = 2 -value.unit = V -io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -description = VTI temperature -enabled = 1 -value.unit = K -io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -description = sample temperature -enabled = 1 -value.unit = K -io = ppms - -[ppms] -class = secop_psi.ppms.Main -description = the main and poller module -class_id = QD.MULTIVU.PPMS.1 -visibility = 3 -pollinterval = 2 diff --git a/cfg/ppms2.cfg b/cfg/ppms2.cfg deleted file mode 100644 index e93f6d7..0000000 --- a/cfg/ppms2.cfg +++ /dev/null @@ -1,124 +0,0 @@ -[NODE] -id = PPMS.psi.ch -description = PPMS at PSI - -[INTERFACE] -uri = 5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -io = ppms - -[mf] -class = secop_psi.ppms.Field -target.min = -9 -target.max = 9 -.description = magnetic field -.io = ppms - -[pos] -class = secop_psi.ppms.Position -.description = sample rotator -.io = ppms - -[lev] -class = secop_psi.ppms.Level -.description = helium level -.io = ppms - -[chamber] -class = secop_psi.ppms.Chamber -.description = chamber state -.io = ppms - -[r1] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 1 -.no = 1 -value.unit = Ohm -.io = ppms - -[r2] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 2 -.no = 2 -value.unit = Ohm -.io = ppms - -[r3] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 3 -.no = 3 -value.unit = Ohm -.io = ppms - -[r4] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 4 -.no = 4 -value.unit = Ohm -.io = ppms - -[i1] -class = secop_psi.ppms.Channel -.description = current channel 1 -.no = 1 -value.unit = uA -.io = ppms - -[i2] -class = secop_psi.ppms.Channel -.description = current channel 2 -.no = 2 -value.unit = uA -.io = ppms - -[i3] -class = secop_psi.ppms.Channel -.description = current channel 3 -.no = 3 -value.unit = uA -.io = ppms - -[i4] -class = secop_psi.ppms.Channel -.description = current channel 4 -.no = 4 -value.unit = uA -.io = ppms - -[v1] -class = secop_psi.ppms.DriverChannel -.description = voltage channel 1 -.no = 1 -value.unit = V -.io = ppms - -[v2] -class = secop_psi.ppms.DriverChannel -.description = voltage channel 2 -.no = 2 -value.unit = V -.io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -.description = VTI temperature -enabled = 1 -value.unit = K -.io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -.description = sample temperature -enabled = 1 -value.unit = K -.io = ppms - -[ppms] -class = secop_psi.ppms.Main -.description = the main and poller module -.class_id = QD.MULTIVU.PPMS.1 -.visibility = 3 -pollinterval = 2 \ No newline at end of file diff --git a/cfg/ppms2_cfg.py b/cfg/ppms2_cfg.py new file mode 100644 index 0000000..119f0a1 --- /dev/null +++ b/cfg/ppms2_cfg.py @@ -0,0 +1,198 @@ +# error creating module mf: +# Module mf needs a value for either 'uri' or 'io' +# error creating module pos: +# Module pos needs a value for either 'uri' or 'io' +# error creating module lev: +# Module lev needs a value for either 'uri' or 'io' +# error creating module chamber: +# Module chamber needs a value for either 'uri' or 'io' +# error creating module r1: +# Module r1 needs a value for either 'uri' or 'io' +# error creating module r2: +# Module r2 needs a value for either 'uri' or 'io' +# error creating module r3: +# Module r3 needs a value for either 'uri' or 'io' +# error creating module r4: +# Module r4 needs a value for either 'uri' or 'io' +# error creating module i1: +# Module i1 needs a value for either 'uri' or 'io' +# error creating module i2: +# Module i2 needs a value for either 'uri' or 'io' +# error creating module i3: +# Module i3 needs a value for either 'uri' or 'io' +# error creating module i4: +# Module i4 needs a value for either 'uri' or 'io' +# error creating module v1: +# Module v1 needs a value for either 'uri' or 'io' +# error creating module v2: +# Module v2 needs a value for either 'uri' or 'io' +# error creating module tv: +# Module tv needs a value for either 'uri' or 'io' +# error creating module ts: +# Module ts needs a value for either 'uri' or 'io' +Node('PPMS.psi.ch', + 'PPMS at PSI', + interface=5000, +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + io='ppms', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + target=Param( + min=-9, + max=9, + ), + description='magnetic field', + io='ppms', +) + +Mod('pos', + 'frappy_psi.ppms.Position', + description='sample rotator', + io='ppms', +) + +Mod('lev', + 'frappy_psi.ppms.Level', + description='helium level', + io='ppms', +) + +Mod('chamber', + 'frappy_psi.ppms.Chamber', + description='chamber state', + io='ppms', +) + +Mod('r1', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 1', + no=1, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r2', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 2', + no=2, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r3', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 3', + no=3, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r4', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 4', + no=4, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('i1', + 'frappy_psi.ppms.Channel', + description='current channel 1', + no=1, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i2', + 'frappy_psi.ppms.Channel', + description='current channel 2', + no=2, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i3', + 'frappy_psi.ppms.Channel', + description='current channel 3', + no=3, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i4', + 'frappy_psi.ppms.Channel', + description='current channel 4', + no=4, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('v1', + 'frappy_psi.ppms.DriverChannel', + description='voltage channel 1', + no=1, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('v2', + 'frappy_psi.ppms.DriverChannel', + description='voltage channel 2', + no=2, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + description='VTI temperature', + enabled=1, + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + description='sample temperature', + enabled=1, + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + description='the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + visibility='expert', + pollinterval=2.0, +) diff --git a/cfg/ppms_cfg.py b/cfg/ppms_cfg.py new file mode 100644 index 0000000..1ba8b76 --- /dev/null +++ b/cfg/ppms_cfg.py @@ -0,0 +1,93 @@ +Node('PPMS.psi.ch', + 'PPMS at PSI', + 'tcp://5000', +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + io = 'ppms', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + 'magnetic field', + target = Param(min=-9, max=9), + io = 'ppms', +) + +Mod('pos', + 'frappy_psi.ppms.Position', + 'sample rotator', + io = 'ppms', +) + +Mod('lev', + 'frappy_psi.ppms.Level', + 'helium level', + io = 'ppms', +) + +Mod('chamber', + 'frappy_psi.ppms.Chamber', + 'chamber state', + io = 'ppms', +) + +for i in range(1,5): + Mod('r%d' % i, + 'frappy_psi.ppms.BridgeChannel', + 'resistivity channel %d' % i, + no = i, + value = Param(unit = 'Ohm'), + io = 'ppms', + ) + +for i in range(1,5): + Mod('i%d' % i, + 'frappy_psi.ppms.Channel', + 'current channel %d' % i, + no = i, + value = Param(unit = 'uA'), + io = 'ppms', + ) + +Mod('v1', + 'frappy_psi.ppms.DriverChannel', + 'voltage channel 1', + no = 1, + value = Param(unit = 'V'), + io = 'ppms', +) + +Mod('v2', + 'frappy_psi.ppms.DriverChannel', + 'voltage channel 2', + no = 2, + value = Param(unit = 'V'), + io = 'ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + 'VTI temperature', + enabled = 1, + value = Param(unit = 'K'), + io = 'ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + 'sample temperature', + enabled = 1, + value = Param(unit = 'K'), + io = 'ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + 'the main and poller module', + class_id = 'QD.MULTIVU.PPMS.1', + visibility = 3, + pollinterval = 2, +) diff --git a/cfg/ppms_proxy_test.cfg b/cfg/ppms_proxy_test.cfg deleted file mode 100644 index 014e8a8..0000000 --- a/cfg/ppms_proxy_test.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[node filtered.PPMS.psi.ch] -description = filtered PPMS at PSI - -[interface tcp] -type = tcp -bindto = 0.0.0.0 -bindport = 5002 - -[module secnode] -class = secop.SecNode -description = a SEC node -uri = tcp://localhost:5000 - -[module mf] -class = secop.Proxy -remote_class = secop_psi.ppms.Field -description = magnetic field -io = secnode -value.min = -0.1 -value.max = 0.1 -target.min = -8 -target.max = 8 diff --git a/cfg/ppms_proxy_test_cfg.py b/cfg/ppms_proxy_test_cfg.py new file mode 100644 index 0000000..7df35c2 --- /dev/null +++ b/cfg/ppms_proxy_test_cfg.py @@ -0,0 +1,21 @@ +Node('filtered.PPMS.psi.ch', + 'filtered PPMS at PSI', + 'tcp://5002', +) + + +Mod('secnode', + 'frappy.proxy.SecNode', + 'a SEC node', + uri = 'tcp://localhost:5000', +) + +Mod('mf', + 'frappy.proxy.Proxy', + 'magnetic field', + remote_class = 'frappy_psi.ppms.Field', + io = 'secnode', + + value = Param(), + target = Param(min=-0.1, max=0.1), +) diff --git a/cfg/ppmssim.cfg b/cfg/ppmssim.cfg deleted file mode 100644 index 82cc65e..0000000 --- a/cfg/ppmssim.cfg +++ /dev/null @@ -1,124 +0,0 @@ -[NODE] -id = PPMS.psi.ch -description = PPMS at PSI - -[INTERFACE] -uri = tcp://5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -io = ppms - -[mf] -class = secop_psi.ppms.Field -target.min = -9 -target.max = 9 -description = magnetic field -io = ppms - -[pos] -class = secop_psi.ppms.Position -description = sample rotator -io = ppms - -[lev] -class = secop_psi.ppms.Level -description = helium level -io = ppms - -[chamber] -class = secop_psi.ppms.Chamber -description = chamber state -io = ppms - -[r1] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 1 -no = 1 -value.unit = Ohm -io = ppms - -[r2] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 2 -no = 2 -value.unit = Ohm -io = ppms - -[r3] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 3 -no = 3 -value.unit = Ohm -io = ppms - -[r4] -class = secop_psi.ppms.BridgeChannel -description = resistivity channel 4 -no = 4 -value.unit = Ohm -io = ppms - -[i1] -class = secop_psi.ppms.Channel -description = current channel 1 -no = 1 -value.unit = uA -io = ppms - -[i2] -class = secop_psi.ppms.Channel -description = current channel 2 -no = 2 -value.unit = uA -io = ppms - -[i3] -class = secop_psi.ppms.Channel -description = current channel 3 -no = 3 -value.unit = uA -io = ppms - -[i4] -class = secop_psi.ppms.Channel -description = current channel 4 -no = 4 -value.unit = uA -io = ppms - -[v1] -class = secop_psi.ppms.DriverChannel -description = voltage channel 1 -no = 1 -value.unit = V -io = ppms - -[v2] -class = secop_psi.ppms.DriverChannel -description = voltage channel 2 -no = 2 -value.unit = V -io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -description = VTI temperature -enabled = 1 -value.unit = K -io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -description = sample temperature -enabled = 1 -value.unit = K -io = ppms - -[ppms] -class = secop_psi.ppms.Main -description = the main and poller module -class_id = QD.MULTIVU.PPMS.1 -visibility = 3 -pollinterval = 2 diff --git a/cfg/ppmssim_cfg.py b/cfg/ppmssim_cfg.py new file mode 100644 index 0000000..e233ce9 --- /dev/null +++ b/cfg/ppmssim_cfg.py @@ -0,0 +1,166 @@ +Node('PPMS.psi.ch', + 'PPMS at PSI', + interface='tcp://5000', +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + io='ppms', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + 'magnetic field', + target=Param( + min=-9.0, + max=9.0, + ), + io='ppms', +) + +Mod('pos', + 'frappy_psi.ppms.Position', + 'sample rotator', + io='ppms', +) + +Mod('lev', + 'frappy_psi.ppms.Level', + 'helium level', + io='ppms', +) + +Mod('chamber', + 'frappy_psi.ppms.Chamber', + 'chamber state', + io='ppms', +) + +Mod('r1', + 'frappy_psi.ppms.BridgeChannel', + 'resistivity channel 1', + no=1, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r2', + 'frappy_psi.ppms.BridgeChannel', + 'resistivity channel 2', + no=2, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r3', + 'frappy_psi.ppms.BridgeChannel', + 'resistivity channel 3', + no=3, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r4', + 'frappy_psi.ppms.BridgeChannel', + 'resistivity channel 4', + no=4, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('i1', + 'frappy_psi.ppms.Channel', + 'current channel 1', + no=1, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i2', + 'frappy_psi.ppms.Channel', + 'current channel 2', + no=2, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i3', + 'frappy_psi.ppms.Channel', + 'current channel 3', + no=3, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i4', + 'frappy_psi.ppms.Channel', + 'current channel 4', + no=4, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('v1', + 'frappy_psi.ppms.DriverChannel', + 'voltage channel 1', + no=1, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('v2', + 'frappy_psi.ppms.DriverChannel', + 'voltage channel 2', + no=2, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + 'VTI temperature', + enabled=True, + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + 'sample temperature', + enabled=True, + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + 'the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + visibility='expert', + pollinterval=2.0, +) diff --git a/cfg/ppmswin.cfg b/cfg/ppmswin.cfg deleted file mode 100644 index 491315b..0000000 --- a/cfg/ppmswin.cfg +++ /dev/null @@ -1,126 +0,0 @@ -[NODE] -id = PPMS.psi.ch -description = PPMS at PSI - -[INTERFACE] -uri = tcp://5000 - -[tt] -class = secop_psi.ppms.Temp -description = main temperature -io = ppms - -[mf] -class = secop_psi.ppms.Field -target.min = -9 -target.max = 9 -.description = magnetic field -.io = ppms - -[pos] -class = secop_psi.ppms.Position -.description = sample rotator -.io = ppms - -[lev] -class = secop_psi.ppms.Level -.description = helium level -.io = ppms - -[chamber] -class = secop_psi.ppms.Chamber -.description = chamber state -.io = ppms - -[r1] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 1 -.no = 1 -value.unit = Ohm -.io = ppms - -[r2] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 2 -.no = 2 -value.unit = Ohm -.io = ppms - -[r3] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 3 -.no = 3 -value.unit = Ohm -.io = ppms - -[r4] -class = secop_psi.ppms.BridgeChannel -.description = resistivity channel 4 -.no = 4 -value.unit = Ohm -.io = ppms - -[i1] -class = secop_psi.ppms.Channel -.description = current channel 1 -.no = 1 -value.unit = uA -.io = ppms - -[i2] -class = secop_psi.ppms.Channel -.description = current channel 2 -.no = 2 -value.unit = uA -.io = ppms - -[i3] -class = secop_psi.ppms.Channel -.description = current channel 3 -.no = 3 -value.unit = uA -.io = ppms - -[i4] -class = secop_psi.ppms.Channel -.description = current channel 4 -.no = 4 -value.unit = uA -.io = ppms - -[v1] -class = secop_psi.ppms.DriverChannel -.description = voltage channel 1 -.no = 1 -value.unit = V -.io = ppms - -[v2] -class = secop_psi.ppms.DriverChannel -.description = voltage channel 2 -.no = 2 -value.unit = V -.io = ppms - -[tv] -class = secop_psi.ppms.UserChannel -.description = VTI temperature -enabled = 0 -linkenable = ts -value.unit = K -.io = ppms - -[ts] -class = secop_psi.ppms.UserChannel -.description = sample temperature -enabled = 0 -linkenable = tv -value.unit = K -.io = ppms - -[ppms] -class = secop_psi.ppms.Main -.description = the main and poller module -.class_id = QD.MULTIVU.PPMS.1 -#.visibility = 3 -pollinterval = 2 diff --git a/cfg/ppmswin_cfg.py b/cfg/ppmswin_cfg.py new file mode 100644 index 0000000..ddc83ee --- /dev/null +++ b/cfg/ppmswin_cfg.py @@ -0,0 +1,199 @@ +# error creating module mf: +# Module mf needs a value for either 'uri' or 'io' +# error creating module pos: +# Module pos needs a value for either 'uri' or 'io' +# error creating module lev: +# Module lev needs a value for either 'uri' or 'io' +# error creating module chamber: +# Module chamber needs a value for either 'uri' or 'io' +# error creating module r1: +# Module r1 needs a value for either 'uri' or 'io' +# error creating module r2: +# Module r2 needs a value for either 'uri' or 'io' +# error creating module r3: +# Module r3 needs a value for either 'uri' or 'io' +# error creating module r4: +# Module r4 needs a value for either 'uri' or 'io' +# error creating module i1: +# Module i1 needs a value for either 'uri' or 'io' +# error creating module i2: +# Module i2 needs a value for either 'uri' or 'io' +# error creating module i3: +# Module i3 needs a value for either 'uri' or 'io' +# error creating module i4: +# Module i4 needs a value for either 'uri' or 'io' +# error creating module v1: +# Module v1 needs a value for either 'uri' or 'io' +# error creating module v2: +# Module v2 needs a value for either 'uri' or 'io' +# error creating module tv: +# Module tv needs a value for either 'uri' or 'io' +# error creating module ts: +# Module ts needs a value for either 'uri' or 'io' +Node('PPMS.psi.ch', + 'PPMS at PSI', + interface='tcp://5000', +) + +Mod('tt', + 'frappy_psi.ppms.Temp', + 'main temperature', + io='ppms', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + target=Param( + min=-9, + max=9, + ), + description='magnetic field', + io='ppms', +) + +Mod('pos', + 'frappy_psi.ppms.Position', + description='sample rotator', + io='ppms', +) + +Mod('lev', + 'frappy_psi.ppms.Level', + description='helium level', + io='ppms', +) + +Mod('chamber', + 'frappy_psi.ppms.Chamber', + description='chamber state', + io='ppms', +) + +Mod('r1', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 1', + no=1, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r2', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 2', + no=2, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r3', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 3', + no=3, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('r4', + 'frappy_psi.ppms.BridgeChannel', + description='resistivity channel 4', + no=4, + value=Param( + unit='Ohm', + ), + io='ppms', +) + +Mod('i1', + 'frappy_psi.ppms.Channel', + description='current channel 1', + no=1, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i2', + 'frappy_psi.ppms.Channel', + description='current channel 2', + no=2, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i3', + 'frappy_psi.ppms.Channel', + description='current channel 3', + no=3, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('i4', + 'frappy_psi.ppms.Channel', + description='current channel 4', + no=4, + value=Param( + unit='uA', + ), + io='ppms', +) + +Mod('v1', + 'frappy_psi.ppms.DriverChannel', + description='voltage channel 1', + no=1, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('v2', + 'frappy_psi.ppms.DriverChannel', + description='voltage channel 2', + no=2, + value=Param( + unit='V', + ), + io='ppms', +) + +Mod('tv', + 'frappy_psi.ppms.UserChannel', + description='VTI temperature', + enabled=0, + linkenable='ts', + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ts', + 'frappy_psi.ppms.UserChannel', + description='sample temperature', + enabled=0, + linkenable='tv', + value=Param( + unit='K', + ), + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + description='the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + pollinterval=2.0, +) diff --git a/cfg/prep2.cfg b/cfg/prep2.cfg deleted file mode 100644 index d8e91b1..0000000 --- a/cfg/prep2.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[node ori1.psi.ch] -description = ori1 over SEA - -[interface tcp] -type = tcp -bindport = 10767 - -[module seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -uri = tcp://samenv.psi.ch:8642 - -[module tt] -class = secop_psi.sea.SeaDrivable -io = seaconn -json_descr = tt.ori1.config -remote_paths = . - -[module nv] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = nv.ori1.config -remote_paths = . diff --git a/cfg/prep2_cfg.py b/cfg/prep2_cfg.py new file mode 100644 index 0000000..8d87a56 --- /dev/null +++ b/cfg/prep2_cfg.py @@ -0,0 +1,25 @@ +# error creating tt +# error creating nv +Node('ori1.psi.ch', + 'ori1 over SEA', + interface='tcp://10767', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='seaconn', + json_descr='tt.ori1.config', + remote_paths='.', +) + +Mod('nv', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='nv.ori1.config', + remote_paths='.', +) diff --git a/cfg/prep5.cfg b/cfg/prep5.cfg deleted file mode 100644 index 7fb66b3..0000000 --- a/cfg/prep5.cfg +++ /dev/null @@ -1,119 +0,0 @@ -[node ma11_dil4_ultrasound_sr.psi.ch] -description = ma11_dil4_ultrasound_sr over SEA - -[interface tcp] -type = tcp -bindport = 10767 - -[module seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -uri = tcp://samenv.psi.ch:8645 - -[module tt] -class = secop_psi.sea.SeaDrivable -io = seaconn -json_descr = tt.ma11.config -remote_paths = . - -[module nv] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = nv.ma11.config -remote_paths = . - -[module ln2fill] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = ln2fill.ma11.config -remote_paths = . - -[module hefill] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = hefill.ma11.config -remote_paths = . - -[module tcoil] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tcoil.ma11.config -remote_paths = . - -[module table] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = table.ma11.config -remote_paths = . - -[module lnv] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = lnv.ma11.config -remote_paths = . - -[module lpr] -class = secop_psi.sea.SeaDrivable -io = seaconn -json_descr = lpr.ma11.config -remote_paths = . - -[module lambdawatch] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = lambdawatch.ma11.config -remote_paths = . - -[module ts] -class = secop_psi.sea.SeaDrivable -io = seaconn -json_descr = ts.dil4.stick -remote_paths = . - -[module treg] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = treg.dil4.stick -remote_paths = . - -[module tmon] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tmon.dil4.stick -remote_paths = . - -[module sorb] -class = secop_psi.sea.SeaDrivable -io = seaconn -json_descr = sorb.dil4.stick -remote_paths = . - -[module ultrasound] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = ultrasound.ultrasound.addon -remote_paths = . - -[module fn] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = fn.ultrasound.addon -remote_paths = . - -[module mirror] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = mirror.ultrasound.addon -remote_paths = . - -[module f] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = f.ultrasound.addon -remote_paths = . - -[module pars] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = pars.ultrasound.addon -remote_paths = . diff --git a/cfg/prep5_cfg.py b/cfg/prep5_cfg.py new file mode 100644 index 0000000..4676d10 --- /dev/null +++ b/cfg/prep5_cfg.py @@ -0,0 +1,153 @@ +# error creating tt +# error creating nv +# error creating ln2fill +# error creating hefill +# error creating tcoil +# error creating table +# error creating lnv +# error creating lpr +# error creating lambdawatch +# error creating ts +# error creating treg +# error creating tmon +# error creating sorb +# error creating ultrasound +# error creating fn +# error creating mirror +# error creating f +# error creating pars +Node('ma11_dil4_ultrasound_sr.psi.ch', + 'ma11_dil4_ultrasound_sr over SEA', + interface='tcp://10767', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', +) + +Mod('tt', + 'frappy_psi.sea.SeaDrivable', + io='seaconn', + json_descr='tt.ma11.config', + remote_paths='.', +) + +Mod('nv', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='nv.ma11.config', + remote_paths='.', +) + +Mod('ln2fill', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='ln2fill.ma11.config', + remote_paths='.', +) + +Mod('hefill', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='hefill.ma11.config', + remote_paths='.', +) + +Mod('tcoil', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tcoil.ma11.config', + remote_paths='.', +) + +Mod('table', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='table.ma11.config', + remote_paths='.', +) + +Mod('lnv', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='lnv.ma11.config', + remote_paths='.', +) + +Mod('lpr', + 'frappy_psi.sea.SeaDrivable', + io='seaconn', + json_descr='lpr.ma11.config', + remote_paths='.', +) + +Mod('lambdawatch', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='lambdawatch.ma11.config', + remote_paths='.', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='seaconn', + json_descr='ts.dil4.stick', + remote_paths='.', +) + +Mod('treg', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='treg.dil4.stick', + remote_paths='.', +) + +Mod('tmon', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tmon.dil4.stick', + remote_paths='.', +) + +Mod('sorb', + 'frappy_psi.sea.SeaDrivable', + io='seaconn', + json_descr='sorb.dil4.stick', + remote_paths='.', +) + +Mod('ultrasound', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='ultrasound.ultrasound.addon', + remote_paths='.', +) + +Mod('fn', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='fn.ultrasound.addon', + remote_paths='.', +) + +Mod('mirror', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='mirror.ultrasound.addon', + remote_paths='.', +) + +Mod('f', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='f.ultrasound.addon', + remote_paths='.', +) + +Mod('pars', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='pars.ultrasound.addon', + remote_paths='.', +) diff --git a/cfg/prep6.cfg b/cfg/prep6.cfg deleted file mode 100644 index a3509c7..0000000 --- a/cfg/prep6.cfg +++ /dev/null @@ -1,65 +0,0 @@ -[node varioxB_vb.psi.ch] -description = varioxB_vb over SEA - -[interface tcp] -type = tcp -bindport = 10767 - -[module seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -uri = tcp://samenv.psi.ch:8646 - -[module tvs] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tvs.varioxB.config -remote_paths = . - -[module tvd] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tvd.varioxB.config -remote_paths = . - -[module pstat] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = pstat.varioxB.config -remote_paths = . - -[module pdyn] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = pdyn.varioxB.config -remote_paths = . - -[module tneck1] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tneck1.varioxB.config -remote_paths = . - -[module tneck2] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tneck2.varioxB.config -remote_paths = . - -[module tnvs] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tnvs.varioxB.config -remote_paths = . - -[module tnvd] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tnvd.varioxB.config -remote_paths = . - -[module ts] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = ts.vb.stick -remote_paths = . diff --git a/cfg/prep6_cfg.py b/cfg/prep6_cfg.py new file mode 100644 index 0000000..ecafc6b --- /dev/null +++ b/cfg/prep6_cfg.py @@ -0,0 +1,81 @@ +# error creating tvs +# error creating tvd +# error creating pstat +# error creating pdyn +# error creating tneck1 +# error creating tneck2 +# error creating tnvs +# error creating tnvd +# error creating ts +Node('varioxB_vb.psi.ch', + 'varioxB_vb over SEA', + interface='tcp://10767', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', +) + +Mod('tvs', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tvs.varioxB.config', + remote_paths='.', +) + +Mod('tvd', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tvd.varioxB.config', + remote_paths='.', +) + +Mod('pstat', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='pstat.varioxB.config', + remote_paths='.', +) + +Mod('pdyn', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='pdyn.varioxB.config', + remote_paths='.', +) + +Mod('tneck1', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tneck1.varioxB.config', + remote_paths='.', +) + +Mod('tneck2', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tneck2.varioxB.config', + remote_paths='.', +) + +Mod('tnvs', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tnvs.varioxB.config', + remote_paths='.', +) + +Mod('tnvd', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tnvd.varioxB.config', + remote_paths='.', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='ts.vb.stick', + remote_paths='.', +) diff --git a/cfg/router.cfg b/cfg/router.cfg deleted file mode 100644 index a25edfd..0000000 --- a/cfg/router.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[NODE] -id = router -class = protocol.router.Router -description = router node -node = localhost:5000 - -[INTERFACE] -uri=tcp://5002 diff --git a/cfg/router_cfg.py b/cfg/router_cfg.py new file mode 100644 index 0000000..ff46262 --- /dev/null +++ b/cfg/router_cfg.py @@ -0,0 +1,6 @@ +Node('router', + 'router node', + 'tcp://5002', + cls = 'protocol.router.Router', + node = 'localhost:5000', +) diff --git a/cfg/sea.cfg b/cfg/sea.cfg deleted file mode 100644 index 20c8813..0000000 --- a/cfg/sea.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[NODE] -description = sea client (communication only) -id = comm.sea.psi.ch - -[seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -visibility = 1 diff --git a/cfg/sea/variox.config.json1 b/cfg/sea/variox.config.json1 deleted file mode 100644 index c16bf3d..0000000 --- a/cfg/sea/variox.config.json1 +++ /dev/null @@ -1,287 +0,0 @@ -{"tt": {"base": "/tt", "params": [ -{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 17}, -{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "is_running", "type": "int", "readonly": false, "cmd": "tt is_running", "visibility": 3}, -{"path": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3}, -{"path": "target", "type": "float"}, -{"path": "running", "type": "int"}, -{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"}, -{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"}, -{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"}, -{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4}, -{"path": "log/mean", "type": "float", "visibility": 3}, -{"path": "log/m2", "type": "float", "visibility": 3}, -{"path": "log/stddev", "type": "float", "visibility": 3}, -{"path": "log/n", "type": "float", "visibility": 3}, -{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9}, -{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"}, -{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"}, -{"path": "dblctrl/shift_up", "type": "float"}, -{"path": "dblctrl/shift_lo", "type": "float"}, -{"path": "dblctrl/t_min", "type": "float"}, -{"path": "dblctrl/t_max", "type": "float"}, -{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"}, -{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"}, -{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"}, -{"path": "tm", "type": "float", "kids": 4}, -{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1}, -{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3}, -{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"}, -{"path": "tm/stddev", "type": "float"}, -{"path": "tm/raw", "type": "float"}, -{"path": "ts", "type": "float", "visibility": 3, "kids": 4}, -{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "visibility": 3, "kids": 1}, -{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3}, -{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm", "visibility": 3}, -{"path": "ts/stddev", "type": "float", "visibility": 3}, -{"path": "ts/raw", "type": "float", "visibility": 3}, -{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4}, -{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1}, -{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3}, -{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3}, -{"path": "ts_2/stddev", "type": "float", "visibility": 3}, -{"path": "ts_2/raw", "type": "float", "visibility": 3}, -{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18}, -{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"}, -{"path": "set/reg", "type": "float"}, -{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"}, -{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"}, -{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"}, -{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"}, -{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"}, -{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"}, -{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"}, -{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"}, -{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"}, -{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"}, -{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"}, -{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"}, -{"path": "set/power", "type": "float"}, -{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"}, -{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"}, -{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"}, -{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"}, -{"path": "remote", "type": "bool"}]}, - -"cc": {"base": "/cc", "params": [ -{"path": "", "type": "bool", "kids": 96}, -{"path": "send", "type": "text", "readonly": false, "cmd": "cc send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "cc autodevice"}, -{"path": "fav", "type": "bool", "readonly": false, "cmd": "cc fav"}, -{"path": "f", "type": "float"}, -{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "cc fs"}, -{"path": "mav", "type": "bool", "readonly": false, "cmd": "cc mav"}, -{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}}, -{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "cc fa"}, -{"path": "mp", "type": "float", "readonly": false, "cmd": "cc mp"}, -{"path": "msp", "type": "float"}, -{"path": "mmp", "type": "float"}, -{"path": "mc", "type": "float", "readonly": false, "cmd": "cc mc"}, -{"path": "mfc", "type": "float", "readonly": false, "cmd": "cc mfc"}, -{"path": "moc", "type": "float", "readonly": false, "cmd": "cc moc"}, -{"path": "mtc", "type": "float", "readonly": false, "cmd": "cc mtc"}, -{"path": "mtl", "type": "float"}, -{"path": "mft", "type": "float", "readonly": false, "cmd": "cc mft"}, -{"path": "mt", "type": "float"}, -{"path": "mo", "type": "float"}, -{"path": "mcr", "type": "float"}, -{"path": "mot", "type": "float"}, -{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open"}, -{"path": "hav", "type": "bool", "readonly": false, "cmd": "cc hav"}, -{"path": "h", "type": "float"}, -{"path": "hr", "type": "float"}, -{"path": "hc", "type": "float"}, -{"path": "hu", "type": "float"}, -{"path": "hh", "type": "float", "readonly": false, "cmd": "cc hh"}, -{"path": "hl", "type": "float", "readonly": false, "cmd": "cc hl"}, -{"path": "htf", "type": "float", "readonly": false, "cmd": "cc htf", "description": "meas. period in fast mode"}, -{"path": "hts", "type": "float", "readonly": false, "cmd": "cc hts", "description": "meas. period in slow mode"}, -{"path": "hd", "type": "float", "readonly": false, "cmd": "cc hd"}, -{"path": "hwr", "type": "float", "readonly": false, "cmd": "cc hwr"}, -{"path": "hem", "type": "float", "readonly": false, "cmd": "cc hem", "description": "sensor length in mm from top to empty pos."}, -{"path": "hfu", "type": "float", "readonly": false, "cmd": "cc hfu", "description": "sensor length in mm from top to full pos."}, -{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "cc hcd"}, -{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}}, -{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}}, -{"path": "ha", "type": "bool", "readonly": false, "cmd": "cc ha"}, -{"path": "hm", "type": "bool"}, -{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"}, -{"path": "hbe", "type": "bool", "readonly": false, "cmd": "cc hbe"}, -{"path": "hmf", "type": "float"}, -{"path": "hms", "type": "float"}, -{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit"}, -{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft"}, -{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 2}, "readonly": false, "cmd": "cc hea"}, -{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch", "visibility": 3}, -{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0", "visibility": 3}, -{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3}, -{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3}, -{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)", "visibility": 3}, -{"path": "h0", "type": "float", "visibility": 3}, -{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "h1", "type": "float", "visibility": 3}, -{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "h2", "type": "float", "visibility": 3}, -{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "h3", "type": "float", "visibility": 3}, -{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "h4", "type": "float", "visibility": 3}, -{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "h5", "type": "float", "visibility": 3}, -{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3}, -{"path": "hfb", "type": "float"}, -{"path": "nav", "type": "bool", "readonly": false, "cmd": "cc nav"}, -{"path": "nu", "type": "float"}, -{"path": "nl", "type": "float"}, -{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth"}, -{"path": "ntc", "type": "float", "readonly": false, "cmd": "cc ntc"}, -{"path": "ntm", "type": "float", "readonly": false, "cmd": "cc ntm"}, -{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}}, -{"path": "na", "type": "bool", "readonly": false, "cmd": "cc na"}, -{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}}, -{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "cc nc"}, -{"path": "nfb", "type": "float"}, -{"path": "cda", "type": "float"}, -{"path": "cdb", "type": "float"}, -{"path": "cba", "type": "float"}, -{"path": "cbb", "type": "float"}, -{"path": "cvs", "type": "int"}, -{"path": "csp", "type": "int"}, -{"path": "cdv", "type": "text", "readonly": false, "cmd": "cc cdv"}, -{"path": "cic", "type": "text", "readonly": false, "cmd": "cc cic"}, -{"path": "cin", "type": "text"}, -{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "cc cds"}, -{"path": "timing", "type": "bool", "readonly": false, "cmd": "cc timing"}, -{"path": "tc", "type": "float", "visibility": 3}, -{"path": "tn", "type": "float", "visibility": 3}, -{"path": "th", "type": "float", "visibility": 3}, -{"path": "tf", "type": "float", "visibility": 3}, -{"path": "tm", "type": "float", "visibility": 3}, -{"path": "tv", "type": "float", "visibility": 3}, -{"path": "tq", "type": "float", "visibility": 3}, -{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}, - -"nv": {"base": "/nv", "params": [ -{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11}, -{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}}, -{"path": "flow", "type": "float"}, -{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"}, -{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"}, -{"path": "flowp", "type": "float"}, -{"path": "span", "type": "float"}, -{"path": "ctrl", "type": "none", "kids": 13}, -{"path": "ctrl/regtext", "type": "text"}, -{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"}, -{"path": "ctrl/prop_c", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_c", "description": "prop [sec/mbar] when closing. above 4 mbar a 10 times lower value is used"}, -{"path": "ctrl/deriv_o", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_o", "description": "convergence target time [sec] when opening"}, -{"path": "ctrl/deriv_c", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_c", "description": "convergence target time [sec] when closing"}, -{"path": "ctrl/minpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_o", "description": "minimum close pulse [sec]"}, -{"path": "ctrl/minpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_c", "description": "standard close pulse [sec]"}, -{"path": "ctrl/hystpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_o", "description": "motor pulse to overcome hysteresis when opening"}, -{"path": "ctrl/hystpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_c", "description": "motor pulse to overcome hysteresis when closing"}, -{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol", "description": "valid below 3 mbar"}, -{"path": "ctrl/tolhigh", "type": "float", "readonly": false, "cmd": "nv ctrl/tolhigh", "description": "valid above 4 mbar"}, -{"path": "ctrl/openpulse", "type": "float", "readonly": false, "cmd": "nv ctrl/openpulse", "description": "time to open from completely closed to a significant opening"}, -{"path": "ctrl/adjust_minpulse", "type": "bool", "readonly": false, "cmd": "nv ctrl/adjust_minpulse", "description": "adjust minpulse automatically"}, -{"path": "autoflow", "type": "none", "kids": 24}, -{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "nv autoflow/suspended"}, -{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "nv autoflow/prop"}, -{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "nv autoflow/flowstd"}, -{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "nv autoflow/flowlim"}, -{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "nv autoflow/smooth"}, -{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "nv autoflow/difSize"}, -{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "nv autoflow/difRange"}, -{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "nv autoflow/flowSize"}, -{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "nv autoflow/convTime"}, -{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "nv autoflow/Tmin"}, -{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "nv autoflow/script"}, -{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "nv autoflow/getTemp"}, -{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "nv autoflow/getTset"}, -{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "nv autoflow/getFlow"}, -{"path": "autoflow/difBuf", "type": "text"}, -{"path": "autoflow/flowBuf", "type": "text"}, -{"path": "autoflow/flowset", "type": "float"}, -{"path": "autoflow/flowmin", "type": "float"}, -{"path": "autoflow/flowmax", "type": "float"}, -{"path": "autoflow/difmin", "type": "float"}, -{"path": "autoflow/difmax", "type": "float"}, -{"path": "autoflow/setmin", "type": "float"}, -{"path": "autoflow/setmax", "type": "float"}, -{"path": "autoflow/flowtarget", "type": "float"}, -{"path": "calib", "type": "none", "kids": 2}, -{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"}, -{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]}, - -"ln2fill": {"base": "/ln2fill", "params": [ -{"path": "", "type": "enum", "enum": {"no fill valve": 2}, "readonly": false, "cmd": "ln2fill", "kids": 3}, -{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "state", "type": "text"}]}, - -"hefill": {"base": "/hefill", "params": [ -{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2, "manualfill": 3}, "readonly": false, "cmd": "hefill", "kids": 6}, -{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "fast", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"}, -{"path": "state", "type": "text"}, -{"path": "hefull", "type": "float", "readonly": false, "cmd": "cc hh"}, -{"path": "helow", "type": "float", "readonly": false, "cmd": "cc hl"}]}, - -"hepump": {"base": "/hepump", "params": [ -{"path": "", "type": "enum", "enum": {"xds35_auto": 0, "xds35_manual": 1, "sv65": 2, "other": 3, "no": -1}, "readonly": false, "cmd": "hepump", "description": "xds35: scroll pump, sv65: leybold", "kids": 10}, -{"path": "send", "type": "text", "readonly": false, "cmd": "hepump send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "running", "type": "bool", "readonly": false, "cmd": "hepump running"}, -{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco"}, -{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto"}, -{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve"}, -{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2"}, -{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3}, -{"path": "health", "type": "float"}]}, - -"hemot": {"base": "/hepump/hemot", "params": [ -{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "kids": 30}, -{"path": "send", "type": "text", "readonly": false, "cmd": "hemot send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "is_running", "type": "int", "readonly": false, "cmd": "hemot is_running", "visibility": 3}, -{"path": "pos", "type": "float"}, -{"path": "encoder", "type": "float"}, -{"path": "zero", "type": "float", "readonly": false, "cmd": "hemot zero"}, -{"path": "lowerlimit", "type": "float", "readonly": false, "cmd": "hemot lowerlimit"}, -{"path": "upperlimit", "type": "float", "readonly": false, "cmd": "hemot upperlimit"}, -{"path": "disablelimits", "type": "bool", "readonly": false, "cmd": "hemot disablelimits"}, -{"path": "verbose", "type": "bool", "readonly": false, "cmd": "hemot verbose"}, -{"path": "target", "type": "float"}, -{"path": "runstate", "type": "enum", "enum": {"idle": 0, "running": 1, "finished": 2, "error": 3}}, -{"path": "precision", "type": "float", "readonly": false, "cmd": "hemot precision"}, -{"path": "maxencdif", "type": "float", "readonly": false, "cmd": "hemot maxencdif"}, -{"path": "id", "type": "float", "readonly": false, "cmd": "hemot id"}, -{"path": "pump_number", "type": "float", "readonly": false, "cmd": "hemot pump_number"}, -{"path": "init", "type": "float", "readonly": false, "cmd": "hemot init"}, -{"path": "maxspeed", "type": "float", "readonly": false, "cmd": "hemot maxspeed"}, -{"path": "acceleration", "type": "float", "readonly": false, "cmd": "hemot acceleration"}, -{"path": "maxcurrent", "type": "float", "readonly": false, "cmd": "hemot maxcurrent"}, -{"path": "standbycurrent", "type": "float", "readonly": false, "cmd": "hemot standbycurrent"}, -{"path": "freewheeling", "type": "bool", "readonly": false, "cmd": "hemot freewheeling"}, -{"path": "output0", "type": "bool", "readonly": false, "cmd": "hemot output0"}, -{"path": "output1", "type": "bool", "readonly": false, "cmd": "hemot output1"}, -{"path": "input3", "type": "bool"}, -{"path": "pullup", "type": "float", "readonly": false, "cmd": "hemot pullup"}, -{"path": "nopumpfeedback", "type": "bool", "readonly": false, "cmd": "hemot nopumpfeedback"}, -{"path": "eeprom", "type": "enum", "enum": {"ok": 0, "dirty": 1, "save": 2, "load": 3}, "readonly": false, "cmd": "hemot eeprom"}, -{"path": "customadr", "type": "text", "readonly": false, "cmd": "hemot customadr"}, -{"path": "custompar", "type": "float", "readonly": false, "cmd": "hemot custompar"}]}, - -"nvflow": {"base": "/nvflow", "params": [ -{"path": "", "type": "float", "kids": 7}, -{"path": "send", "type": "text", "readonly": false, "cmd": "nvflow send", "visibility": 3}, -{"path": "status", "type": "text", "visibility": 3}, -{"path": "stddev", "type": "float"}, -{"path": "nsamples", "type": "int", "readonly": false, "cmd": "nvflow nsamples"}, -{"path": "offset", "type": "float", "readonly": false, "cmd": "nvflow offset"}, -{"path": "scale", "type": "float", "readonly": false, "cmd": "nvflow scale"}, -{"path": "save", "type": "bool", "readonly": false, "cmd": "nvflow save", "description": "unchecked: current calib is not saved. set checked: save calib"}]}} diff --git a/cfg/sea_cfg.py b/cfg/sea_cfg.py new file mode 100644 index 0000000..9c59f34 --- /dev/null +++ b/cfg/sea_cfg.py @@ -0,0 +1,9 @@ +Node('comm.sea.psi.ch', + 'sea client (communication only)', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', + visibility='expert', +) diff --git a/cfg/senis3mh3.cfg b/cfg/senis3mh3.cfg deleted file mode 100644 index 9df9e8e..0000000 --- a/cfg/senis3mh3.cfg +++ /dev/null @@ -1,19 +0,0 @@ -[b] -description = '3D hall sensor' -class = secop_psi.senis.Teslameter3MH3 -usb = /dev/tty.usbserial-AI02VAD9 -x = bx -y = by -z = bz - -[bx] -description = 'x component' -class = secop_psi.senis.Bcomp - -[by] -description = 'y component' -class = secop_psi.senis.Bcomp - -[bz] -description = 'z component' -class = secop_psi.senis.Bcomp \ No newline at end of file diff --git a/cfg/senis3mh3_cfg.py b/cfg/senis3mh3_cfg.py new file mode 100644 index 0000000..61bb864 --- /dev/null +++ b/cfg/senis3mh3_cfg.py @@ -0,0 +1,24 @@ +# error importing secop_psi.senis.Teslameter3MH3 +Mod('b', + 'frappy_psi.senis.Teslameter3MH3', + '3D hall sensor', + usb='/dev/tty.usbserial-AI02VAD9', + x='bx', + y='by', + z='bz', +) + +Mod('bx', + 'frappy_psi.senis.Bcomp', + 'x component', +) + +Mod('by', + 'frappy_psi.senis.Bcomp', + 'y component', +) + +Mod('bz', + 'frappy_psi.senis.Bcomp', + 'z component', +) diff --git a/cfg/senis3mh6.cfg b/cfg/senis3mh6.cfg deleted file mode 100644 index ebefc9b..0000000 --- a/cfg/senis3mh6.cfg +++ /dev/null @@ -1,55 +0,0 @@ -[b] -description = '3D hall sensor' -class = secop_psi.senis.Teslameter3MH6 -usb = /dev/ttyUSB0 -nsample = 100 -x = bx -y = by -z = bz -probe_temp = ptemp -box_temp = btemp -x_direct = dbx -y_direct = dby -z_direct = dbz -probe_temp_direct = dptemp -box_temp_direct = dbtemp - -[bx] -description = 'x component' -class = secop_psi.senis.Bcomp - -[by] -description = 'y component' -class = secop_psi.senis.Bcomp - -[bz] -description = 'z component' -class = secop_psi.senis.Bcomp - -[ptemp] -description = 'probe temperature' -class = secop_psi.senis.Temperature - -[btemp] -description = 'box temperature' -class = secop_psi.senis.Temperature - -[dbx] -description = 'x component' -class = secop_psi.senis.Raw - -[dby] -description = 'y component' -class = secop_psi.senis.Raw - -[dbz] -description = 'z component' -class = secop_psi.senis.Raw - -[dptemp] -description = 'probe temperature' -class = secop_psi.senis.Raw - -[dbtemp] -description = 'box temperature' -class = secop_psi.senis.Temperature diff --git a/cfg/senis3mh6_cfg.py b/cfg/senis3mh6_cfg.py new file mode 100644 index 0000000..d3d75b4 --- /dev/null +++ b/cfg/senis3mh6_cfg.py @@ -0,0 +1,67 @@ +# error importing secop_psi.senis.Teslameter3MH6 +Mod('b', + 'frappy_psi.senis.Teslameter3MH6', + '3D hall sensor', + usb='/dev/ttyUSB0', + nsample=100, + x='bx', + y='by', + z='bz', + probe_temp='ptemp', + box_temp='btemp', + x_direct='dbx', + y_direct='dby', + z_direct='dbz', + probe_temp_direct='dptemp', + box_temp_direct='dbtemp', +) + +Mod('bx', + 'frappy_psi.senis.Bcomp', + 'x component', +) + +Mod('by', + 'frappy_psi.senis.Bcomp', + 'y component', +) + +Mod('bz', + 'frappy_psi.senis.Bcomp', + 'z component', +) + +Mod('ptemp', + 'frappy_psi.senis.Temperature', + 'probe temperature', +) + +Mod('btemp', + 'frappy_psi.senis.Temperature', + 'box temperature', +) + +Mod('dbx', + 'frappy_psi.senis.Raw', + 'x component', +) + +Mod('dby', + 'frappy_psi.senis.Raw', + 'y component', +) + +Mod('dbz', + 'frappy_psi.senis.Raw', + 'z component', +) + +Mod('dptemp', + 'frappy_psi.senis.Raw', + 'probe temperature', +) + +Mod('dbtemp', + 'frappy_psi.senis.Temperature', + 'box temperature', +) diff --git a/cfg/sim.cfg b/cfg/sim.cfg deleted file mode 100644 index 4247b11..0000000 --- a/cfg/sim.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[node test config] -description=description of the simulation sec-node - . - Testing simulation dummy setup. - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - - -[module sim] -class=secop.simulation.SimDrivable -.description=simulation stuff -.extra_params=param3,param4,jitter,ramp -param3.datatype={"type":"bool"} -param3.default=True -param3.readonly=False -jitter.default=1 -ramp.default=60 -value.default=123 -target.default=42 - diff --git a/cfg/sim_cfg.py b/cfg/sim_cfg.py new file mode 100644 index 0000000..76bb13f --- /dev/null +++ b/cfg/sim_cfg.py @@ -0,0 +1,18 @@ +Node('sim.test.config', + 'description of the simulation sec-node\n' + '\n' + 'Testing simulation dummy setup.', + 'tcp://10767', +) + + +Mod('sim', + 'frappy.simulation.SimDrivable', + 'simulation stuff', + extra_params = 'param3,param4,jitter,ramp', + param3 = Param(default=True, datatype={'type': 'bool'}, readonly=False), + jitter = 1, + ramp = 60, + value = 123, + target = 42, +) diff --git a/cfg/sim_mlz_amagnet.cfg b/cfg/sim_mlz_amagnet.cfg deleted file mode 100644 index b65775e..0000000 --- a/cfg/sim_mlz_amagnet.cfg +++ /dev/null @@ -1,116 +0,0 @@ -[node SIM_MLZ_amagnet(Garfield)] -description=MLZ-Amagnet - . - Water cooled magnet from ANTARES@MLZ. - . - Use module to control the magnetic field. - Don't forget to select symmetry first (can be moved only at zero field!). - . - Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down! - . - In case of Problems, contact the ANTARES people at MLZ. - -visibility=expert -foo=bar - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module enable] -class=secop.simulation.SimWritable -value.datatype={"type":"enum", "members":{'On':1,'Off':0}} -target.datatype={"type":"enum", "members":{'On':1,'Off':0}} -.description='Enables to Output of the Powersupply' -.visibility='advanced' - -[module polarity] -class=secop.simulation.SimWritable -value.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}} -target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}} -.description=polarity (+/-) switch - . - there is an interlock in the plc: - if there is current, switching polarity is forbidden - if polarity is short, powersupply is disabled -.visibility=advanced - - -[module symmetry] -class=secop.simulation.SimWritable -value.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}} -target.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}} -.description=par/ser switch selecting (a)symmetric mode - . - note: on the front panel symmetric is ser, asymmetric is par -.visibility=advanced -value.default = 'symmetric' - -[module T1] -class=secop.simulation.SimReadable -.description=Temperature1 of the coils system -value.unit='degC' -value.default = 23.45 - -[module T2] -class=secop.simulation.SimReadable -.description=Temperature2 of the coils system -value.unit='degC' -value.default = 23.45 - -[module T3] -class=secop.simulation.SimReadable -.description=Temperature3 of the coils system -value.unit='degC' -value.default = 23.45 - -[module T4] -class=secop.simulation.SimReadable -.description=Temperature4 of the coils system -value.unit='degC' -value.default = 23.45 - -[module currentsource] -class=secop.simulation.SimDrivable -.description=Device for the magnet power supply (current mode) -abslimits=(0,200) -speed=1 -ramp=60 -precision=0.02 -current=0 -voltage=10 -.visibility=advanced -.extra_params = abslimits, speed, ramp, precision, current, voltage, window -abslimits.datatype = {"type":"limit", "members":{"type":"double", "min":0, "max":200, "unit":"A"}} -abslimits.default = (0, 200) -speed.datatype = {"type":"double", "min":0, "max":10, "unit":"A/s"} -speed.default = 10 -ramp.datatype = {"type":"double", "min":0, "max":600, "unit":"A/min"} -ramp.default = 600 -precision.datatype = {"type":"double", "unit":"A"} -precision.default = 0.1 -current.datatype = {"type":"double", "min":0, "max":200, "unit":"A"} -current.default = 0 -voltage.datatype = {"type":"double", "min":0, "max":10, "unit":"V"} -voltage.default = 0 -window.datatype = {"type":"double", "min":0, "max":120, "unit":"s"} -window.default = 10 - -[module mf] -class=secop_mlz.amagnet.GarfieldMagnet -.description=magnetic field module, handling polarity switching and stuff -subdev_currentsource=currentsource -subdev_enable=enable -subdev_polswitch=polarity -subdev_symmetry=symmetry -target.unit='T' -value.unit='T' -userlimits=(-0.35, 0.35) -calibrationtable={'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042], - 'short': [0.0, 0.0, 0.0, 0.0, 0.0], - 'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]} -.meaning=["magneticfield", 20] -.visibility=user - -abslimits.default=-0.4,0.4 diff --git a/cfg/sim_mlz_amagnet_cfg.py b/cfg/sim_mlz_amagnet_cfg.py new file mode 100644 index 0000000..fed875f --- /dev/null +++ b/cfg/sim_mlz_amagnet_cfg.py @@ -0,0 +1,116 @@ +Node('SIM_MLZ_amagnet(Garfield)', + 'MLZ-Amagnet\n' + '\n' + 'Water cooled magnet from ANTARES@MLZ.\n' + '\n' + ' Use module to control the magnetic field.\n' + 'Don\'t forget to select symmetry first (can be moved only at zero field!).\n' + '\n' + 'Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down!\n' + '\n' + 'In case of Problems, contact the ANTARES people at MLZ.', + 'tcp://10767', + visibility = 'expert', + foo = 'bar', +) + +Mod('enable', + 'frappy.simulation.SimWritable', + 'Enables to Output of the Powersupply', + value = Param(datatype={"type":"enum", "members":{'On':1,'Off':0}}), + target = Param(datatype={"type":"enum", "members":{'On':1,'Off':0}}), + visibility = 'advanced', +) + +Mod('polarity', + 'frappy.simulation.SimWritable', + 'polarity (+/-) switch\n' + '\n' + 'there is an interlock in the plc:\n' + 'if there is current, switching polarity is forbidden\n' + 'if polarity is short, powersupply is disabled', + value = Param(datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}), + target = Param(datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}), + visibility = 'advanced', +) + + +Mod('symmetry', + 'frappy.simulation.SimWritable', + 'par/ser switch selecting (a)symmetric mode\n' + '\n' + 'note: on the front panel symmetric is ser, asymmetric is par', + value = Param( + datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}, + default = 'symmetric' + ), + target = Param(datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}), + visibility = 'advanced', +) + +for i in range(1,5): + Mod('T%d' % i, + 'frappy.simulation.SimReadable', + 'Temperature%d of the coils system' % i, + value = Param(default = 23.45, unit='degC'), + ) + +Mod('currentsource', + 'frappy.simulation.SimDrivable', + 'Device for the magnet power supply (current mode)', + value = 0, + #abslimits = (0,200), + #speed = 1, + #ramp = 60, + #precision = 0.02, + #current = 0, + #voltage = 10, + visibility = 'advanced', + extra_params = 'abslimits, speed, ramp, precision, current, voltage, window', + abslimits = Param( + default = (0, 200), + datatype = {"type":"limit", "members":{"type":"double", "min":0, "max":200, "unit":"A"}} + ), + speed = Param( + default = 10, + datatype = {"type":"double", "min":0, "max":10, "unit":"A/s"} + ), + ramp = Param( + default = 600, + datatype = {"type":"double", "min":0, "max":600, "unit":"A/min"} + ), + precision = Param( + default = 0.1, + datatype = {"type":"double", "unit":"A"} + ), + current = Param( + default = 0, + datatype = {"type":"double", "min":0, "max":200, "unit":"A"} + ), + voltage = Param( + default = 0, + datatype = {"type":"double", "min":0, "max":10, "unit":"V"} + ), + window = Param( + default = 10, + datatype = {"type":"double", "min":0, "max":120, "unit":"s"} + ) +) + +Mod('mf', + 'frappy_mlz.amagnet.GarfieldMagnet', + 'magnetic field module, handling polarity switching and stuff', + subdev_currentsource='currentsource', + subdev_enable='enable', + subdev_polswitch='polarity', + subdev_symmetry='symmetry', + target = Param(unit='T'), + value = Param(unit='T'), + userlimits=(-0.35, 0.35), + calibrationtable={'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042], + 'short': [0.0, 0.0, 0.0, 0.0, 0.0], + 'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]}, + meaning=("magneticfield", 20), + visibility='user', + abslimits=(-0.4,0.4), +) diff --git a/cfg/sim_mlz_cci3he1.cfg b/cfg/sim_mlz_cci3he1.cfg deleted file mode 100644 index d04d9d9..0000000 --- a/cfg/sim_mlz_cci3he1.cfg +++ /dev/null @@ -1,93 +0,0 @@ -[node cci3he1] -description = [sim] cci3he box of MLZ Sample environment group - . - Controls an 3He insert with an ls370 and an PLC controlling - the compressor and the valves of the gas handling. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_cci3he1] -class=secop.simulation.SimDrivable -.description=Main temperature control node of cci3he1. - . - Controls the regulation loop of the ls370. -value.datatype={"type":"double","unit":"K"} -value.default=300 -target.datatype={"type":"double", "min":0, "max":300, "unit":"K"} -target.default=300 -.extra_params=ramp -ramp.datatype={"type":"double","min":0,"max":600,"unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -.meaning=["temperature_regulation",40] - -[module T_cci3he1_A] -class=secop.simulation.SimReadable -.description=3He pot temperature sensor. Also used for the regulation. -.visibility=expert -value.default=300 -value.datatype={"type":"double","unit":"K"} -.meaning=["temperature",38] - -[module T_cci3he1_B] -class=secop.simulation.SimReadable -.description=(optional) sample temperature sensor close to sample. -.visibility=user -value.default=300 -value.datatype={"type":"double","unit":"K"} -.meaning=["temperature",39] - -[module cci3he1_p1] -class=secop.simulation.SimReadable -.description=Pressure at turbo pump inlet. -.visibility=expert -value.default=2e-3 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_p2] -class=secop.simulation.SimReadable -.description=Pressure at turbo pump outlet. -.visibility=expert -value.default=9.87 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_p3] -class=secop.simulation.SimReadable -.description=Pressure at compressor inlet. -.visibility=expert -value.default=19.99 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_p4] -class=secop.simulation.SimReadable -.description=Pressure at compressor outlet. -.visibility=expert -value.default=999 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_p5] -class=secop.simulation.SimReadable -.description=Pressure in dump tank. -.visibility=expert -value.default=567 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_p6] -class=secop.simulation.SimReadable -.description=Pressure in the vacuum dewar (ivc). -.visibility=expert -value.default=1e-3 -value.datatype={"type":"double","unit":"mbar"} - -[module cci3he1_flow] -class=secop.simulation.SimReadable -.description=Gas Flow (condensing line). -.visibility=expert -value.default=12.34 -value.datatype={"type":"double","unit":"mln/min"} - -# note: all valves and switches are missing: use VNC to control them diff --git a/cfg/sim_mlz_cci3he1_cfg.py b/cfg/sim_mlz_cci3he1_cfg.py new file mode 100644 index 0000000..91035c8 --- /dev/null +++ b/cfg/sim_mlz_cci3he1_cfg.py @@ -0,0 +1,88 @@ +Node('cci3he1', + '[sim] cci3he box of MLZ Sample environment group\n' + '\n' + 'Controls an 3He insert with an ls370 and an PLC controlling \n' + 'the compressor and the valves of the gas handling.', + 'tcp://10767', +) + +Mod('T_cci3he1', + 'frappy.simulation.SimDrivable', + 'Main temperature control node of cci3he1.\n' + '\n' + 'Controls the regulation loop of the ls370.', + value = Param(default=300, datatype={"type":"double","unit":"K"}), + target = Param(default=300, datatype={"type":"double", "min":0, "max":300, "unit":"K"}), + extra_params='ramp', + ramp = Param(default=60, + datatype={"type":"double","min":0,"max":600,"unit":"K/min"}, + description='target ramping speed in K/min.', + ), + meaning=["temperature_regulation",40] +) + +Mod('T_cci3he1_A', + 'frappy.simulation.SimReadable', + '3He pot temperature sensor. Also used for the regulation.', + visibility='expert', + value = Param(default=300, datatype={"type":"double","unit":"K"}), + meaning=["temperature",38] +) + +Mod('T_cci3he1_B', + 'frappy.simulation.SimReadable', + '(optional) sample temperature sensor close to sample.', + visibility='user', + value = Param(default=300, datatype={"type":"double","unit":"K"}), + meaning=["temperature",39] +) + +Mod('cci3he1_p1', + 'frappy.simulation.SimReadable', + 'Pressure at turbo pump inlet.', + value = Param(default=2e-3, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_p2', + 'frappy.simulation.SimReadable', + 'Pressure at turbo pump outlet.', + value = Param(default=9.87, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_p3', + 'frappy.simulation.SimReadable', + 'Pressure at compressor inlet.', + value = Param(default=19.99, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_p4', + 'frappy.simulation.SimReadable', + 'Pressure at compressor outlet.', + value = Param(default=999, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_p5', + 'frappy.simulation.SimReadable', + 'Pressure in dump tank.', + value = Param(default=567, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_p6', + 'frappy.simulation.SimReadable', + 'Pressure in the vacuum dewar (ivc).', + value = Param(default=1e-3, datatype={"type":"double","unit":"mbar"}), + visibility='expert', +) + +Mod('cci3he1_flow', + 'frappy.simulation.SimReadable', + 'Gas Flow (condensing line).', + value = Param(default=12.34, datatype={"type":"double","unit":"mln/min"}), + visibility='expert', +) +# note: all valves and switches are missing: use VNC to control them diff --git a/cfg/sim_mlz_ccidu1.cfg b/cfg/sim_mlz_ccidu1.cfg deleted file mode 100644 index a6cea34..0000000 --- a/cfg/sim_mlz_ccidu1.cfg +++ /dev/null @@ -1,107 +0,0 @@ -[node ccidu1] -description = [sim] ccidu box of MLZ Sample environment group - . - Controls an 3He/4He dilution insert with an ls372 and an PLC controlling - the compressor and the valves of the gas handling. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_ccidu1] -class=secop.simulation.SimDrivable -.description=Main temperature control node of ccidu1. - . - Controls the regulation loop of the ls372. -value.unit='K' -value.default=300 -target.datatype={"type":"double", "min":0, "max":300, "unit":"K"} -target.default=300 -.extra_params=ramp -ramp.datatype={"type":"double", "min":0, "max":600, "unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -.meaning=["temperature_regulation",40] - -[module T_ccidu1_A] -class=secop.simulation.SimReadable -.description=mixing chamber temperature sensor. Also used for the regulation. -.visibility=expert -value.default=300 -value.datatype={"type":"double", "unit":"K"} -.meaning=["temperature",38] - -[module T_ccidu1_B] -class=secop.simulation.SimReadable -.description=(optional) sample temperature sensor close to sample. -.visibility=user -value.default=300 -value.datatype={"type":"double", "unit":"K"} -.meaning=["temperature",39] - -[module ccidu1_pstill] -class=secop.simulation.SimReadable -.description=Pressure at the still/turbo pump inlet. -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_pinlet] -class=secop.simulation.SimReadable -.description=Pressure at forepump inlet/turbo pump outlet. -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_poutlet] -class=secop.simulation.SimReadable -.description=Pressure at forepump outlet/compressor inlet. -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_pkond] -class=secop.simulation.SimReadable -.description=Pressure at condensing line/compressor outlet. -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_ptank] -class=secop.simulation.SimReadable -.description=Pressure in dump tank. -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_pvac] -class=secop.simulation.SimReadable -.description=Pressure in the vacuum dewar (ivc). -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -[module ccidu1_flow] -class=secop.simulation.SimReadable -.description=Gas Flow (condensing line). -.visibility=expert -value.default=999 -value.datatype={"type":"double", "unit":"mbar"} - -# note: all valves and switches are missing: use VNC to control them -[module ccidu1_V6] -class=secop.simulation.SimDrivable -.description=Needle valve -.visibility=expert -value.default=99 -value.datatype={"type":"double", "min":0, "max":100, "unit":"%%"} - -[module ccidu1_V3] -class=secop.simulation.SimWritable -.description=Dump Valve -.visibility=expert -value.default="OFF" -value.datatype={"type":"enum", "members":{"on": 1, "OFF":0}} -target.datatype={"type":"enum", "members":{"on": 1, "OFF":0}} diff --git a/cfg/sim_mlz_ccidu1_cfg.py b/cfg/sim_mlz_ccidu1_cfg.py new file mode 100644 index 0000000..8253b2a --- /dev/null +++ b/cfg/sim_mlz_ccidu1_cfg.py @@ -0,0 +1,106 @@ +Node('ccidu1', + '[sim] ccidu box of MLZ Sample environment group\n' + '\n' + 'Controls an 3He/4He dilution insert with an ls372 and an PLC controlling\n' + 'the compressor and the valves of the gas handling.', + 'tcp://10767', +) + +Mod('T_ccidu1', + 'frappy.simulation.SimDrivable', + 'Main temperature control node of ccidu1.\n' + '\n' + 'Controls the regulation loop of the ls372.', + value = Param(default=300, unit='K'), + target = Param(default=300, datatype={"type":"double", "min":0, "max":300, "unit":"K"}), + extra_params='ramp', + ramp = Param(default=60, + datatype={"type":"double", "min":0, "max":600, "unit":"K/min"}, + description='target ramping speed in K/min.', + ), + meaning=["temperature_regulation",40] +) + +Mod('T_ccidu1_A', + 'frappy.simulation.SimReadable', + 'mixing chamber temperature sensor. Also used for the regulation.', + value = Param(default=300, datatype={"type":"double", "unit":"K"}), + visibility='expert', + meaning=["temperature",38], +) + +Mod('T_ccidu1_B', + 'frappy.simulation.SimReadable', + '(optional) sample temperature sensor close to sample.', + value = Param(default=300, datatype={"type":"double", "unit":"K"}), + visibility='user', + meaning=["temperature",39], +) + +Mod('ccidu1_pstill', + 'frappy.simulation.SimReadable', + 'Pressure at the still/turbo pump inlet.', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_pinlet', + 'frappy.simulation.SimReadable', + 'Pressure at forepump inlet/turbo pump outlet.', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_poutlet', + 'frappy.simulation.SimReadable', + 'Pressure at forepump outlet/compressor inlet.', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_pkond', + 'frappy.simulation.SimReadable', + 'Pressure at condensing line/compressor outlet.', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_ptank', + 'frappy.simulation.SimReadable', + 'Pressure in dump tank.', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_pvac', + 'frappy.simulation.SimReadable', + 'Pressure in the vacuum dewar (ivc).', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +Mod('ccidu1_flow', + 'frappy.simulation.SimReadable', + 'Gas Flow (condensing line).', + value = Param(default=999, datatype={"type":"double", "unit":"mbar"}), + visibility='expert', +) + +# note: all valves and switches are missing: use VNC to control them +Mod('ccidu1_V6', + 'frappy.simulation.SimDrivable', + 'Needle valve', + value = Param(default=99, datatype={"type":"double", "min":0, "max":100, "unit":"%%"}), + visibility='expert', +) + +Mod('ccidu1_V3', + 'frappy.simulation.SimWritable', + 'Dump Valve', + value = Param( + default="OFF", + datatype={"type":"enum", "members":{"on": 1, "OFF":0}} + ), + target = Param(datatype={"type":"enum", "members":{"on": 1, "OFF":0}}), + visibility='expert', +) diff --git a/cfg/sim_mlz_ccr12.cfg b/cfg/sim_mlz_ccr12.cfg deleted file mode 100644 index b924dce..0000000 --- a/cfg/sim_mlz_ccr12.cfg +++ /dev/null @@ -1,164 +0,0 @@ -[node ccr12] -description = [sim] CCR12 box of MLZ Sample environment group - . - Contains a Lakeshore 336 and an PLC controlling the compressor - and some valves. - . - This is how we use it now. - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_ccr12] -class=secop.simulation.SimDrivable -.description=Main temperature control node of CCR12. - . - Switches between regulation on stick and regulation on tube depending on temperature requested. - May also pump gas for higher temperatures, if configured. - . - Note: in nicos this is handled by its own class which manages T_ccr12_stick and T_ccr12_tube. - in this simulation this module is isolated. -.extra_params=ramp -ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"} -ramp.default=60 -value.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -value.default=300 -target.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -target.default=300 -.meaning=["temperature_regulation", 20] - -[module T_ccr12_stick] -class=secop.simulation.SimDrivable -.description=Temperature regulation for the sample stick in ccr12. -.extra_params=ramp -ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"} -ramp.default=60 -value.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -value.default=300 -target.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -target.default=300 -.meaning=["temperature_regulation", 15] - -[module T_ccr12_tube] -class=secop.simulation.SimDrivable -.description=Temperature regulation for the tube of ccr12. -.extra_params=ramp -ramp.datatype={"type":"double", "min":0,"max":60, "unit":"K/min"} -ramp.default=60 -value.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -value.default=300 -target.datatype={"type":"double", "min":0,"max":600, "unit":"K"} -target.default=300 -.meaning=["temperature_regulation", 10] - -[module T_ccr12_A] -class=secop.simulation.SimReadable -.description=(optional) Sample temperature sensor. -value.datatype={"type":"double", "unit":"K"} -value.default=300 -.meaning=["temperature", 9] - -[module T_ccr12_B] -class=secop.simulation.SimReadable -.description=(regulation) temperature sensor on stick. -value.datatype={"type":"double", "unit":"K"} -value.default=300 -.meaning=["temperature", 10] - -[module T_ccr12_C] -class=secop.simulation.SimReadable -.description=Temperature at the coldhead. -value.datatype={"type":"double", "unit":"K"} -value.default=70 -.meaning=["temperature", 1] - -[module T_ccr12_D] -class=secop.simulation.SimReadable -.description=(regulation) temperature at coupling to stick. -value.datatype={"type":"double", "unit":"K"} -value.default=80 -.meaning=["temperature", 2] - - - -[module ccr12_pressure_regulate] -class=secop.simulation.SimWritable -.description=Selects on which Sensor the pressure regulation works, or switches it off. -.visibility=expert -value.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'p1':1,'p2':2}} -target.default='off' - -[module ccr12_compressor] -class=secop.simulation.SimDrivable -.description=Switches the compressor for the cooling stage on or off. - . - Note: This should always be on, except for fast heatup for sample change. -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='on' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='on' - -[module ccr12_gas_switch] -class=secop.simulation.SimWritable -.description=Switches the gas inlet on or off. - . - note: in reality this switches itself off after 15min. - note: in reality this is interlocked with ccr12_vacuum_switch, only one can be on! - note: in this simulation this module is isolated. -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module ccr12_vacuum_switch] -class=secop.simulation.SimWritable -.description=Switches the vacuum pumping valve on or off. - . - note: in reality this is interlocked with ccr12_gas_switch, only one can be on! - note: in this simulation this module is isolated. -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module ccr12_p1] -class=secop.simulation.SimReadable -.description=Default pressure Sensor, linear scale 0..1000mbar -value.datatype={"type":"double", "unit":"mbar"} -value.default=999 - -[module ccr12_p2] -class=secop.simulation.SimReadable -.description=Auxillary pressure Sensor. -value.datatype={"type":"double", "unit":"mbar"} -value.default=1e-6 - -[module ccr12_curve_p2] -class=secop.simulation.SimWritable -.description=Curve for Aux pressure Sensor p2 -.visibility=expert -value.default='TTR100' -value.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}} -target.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}} - -[module ccr12_p1_limits] -class=secop.simulation.SimWritable -.description=Limits for pressure regulation in P1. -.visibility=expert -value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -value.default=[0,10] -target.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -target.default=[0,10] - -[module ccr12_p2_limits] -class=secop.simulation.SimWritable -.description=Limits for pressure regulation in P2. -.visibility=expert -value.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -value.default=[1e-5,1e-3] -target.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -target.default=[1e-5,1e-3] diff --git a/cfg/sim_mlz_ccr12_cfg.py b/cfg/sim_mlz_ccr12_cfg.py new file mode 100644 index 0000000..4a01f89 --- /dev/null +++ b/cfg/sim_mlz_ccr12_cfg.py @@ -0,0 +1,218 @@ +Node('ccr12', + '''[sim] CCR12 box of MLZ Sample environment group + + Contains a Lakeshore 336 and an PLC controlling the compressor + and some valves. + + This is how we use it now.''', + interface='tcp://10767', +) + +Mod('T_ccr12', + 'frappy.simulation.SimDrivable', + description='Main temperature control node of CCR12.\n\nSwitches between regulation on stick and regulation on tube depending on temperature requested.\nMay also pump gas for higher temperatures, if configured.\n\nNote: in nicos this is handled by its own class which manages T_ccr12_stick and T_ccr12_tube.\nin this simulation this module is isolated.', + extra_params=['ramp'], + ramp=Param( + datatype=FloatRange(unit='K/min', minval=0.0, maxval=60.0), + default=60.0, + ), + value=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + target=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + meaning=('temperature_regulation', 20), +) + +Mod('T_ccr12_stick', + 'frappy.simulation.SimDrivable', + description='Temperature regulation for the sample stick in ccr12.', + extra_params=['ramp'], + ramp=Param( + datatype=FloatRange(unit='K/min', minval=0.0, maxval=60.0), + default=60.0, + ), + value=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + target=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + meaning=('temperature_regulation', 15), +) + +Mod('T_ccr12_tube', + 'frappy.simulation.SimDrivable', + description='Temperature regulation for the tube of ccr12.', + extra_params=['ramp'], + ramp=Param( + datatype=FloatRange(unit='K/min', minval=0.0, maxval=60.0), + default=60.0, + ), + value=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + target=Param( + datatype=FloatRange(unit='K', minval=0.0, maxval=600.0), + default=300.0, + ), + meaning=('temperature_regulation', 10), +) + +Mod('T_ccr12_A', + 'frappy.simulation.SimReadable', + description='(optional) Sample temperature sensor.', + value=Param( + datatype=FloatRange(unit='K'), + default=300.0, + ), + meaning=('temperature', 9), +) + +Mod('T_ccr12_B', + 'frappy.simulation.SimReadable', + description='(regulation) temperature sensor on stick.', + value=Param( + datatype=FloatRange(unit='K'), + default=300.0, + ), + meaning=('temperature', 10), +) + +Mod('T_ccr12_C', + 'frappy.simulation.SimReadable', + description='Temperature at the coldhead.', + value=Param( + datatype=FloatRange(unit='K'), + default=70.0, + ), + meaning=('temperature', 1), +) + +Mod('T_ccr12_D', + 'frappy.simulation.SimReadable', + description='(regulation) temperature at coupling to stick.', + value=Param( + datatype=FloatRange(unit='K'), + default=80.0, + ), + meaning=('temperature', 2), +) + +Mod('ccr12_pressure_regulate', + 'frappy.simulation.SimWritable', + description='Selects on which Sensor the pressure regulation works, or switches it off.', + visibility='expert', + value=Param( + datatype=EnumType('', off=0, p1=1, p2=2), + default='off', + ), + target=Param( + datatype=EnumType('', off=0, p1=1, p2=2), + default='off', + ), +) + +Mod('ccr12_compressor', + 'frappy.simulation.SimDrivable', + description='Switches the compressor for the cooling stage on or off.\n\nNote: This should always be on, except for fast heatup for sample change.', + value=Param( + datatype=EnumType('', off=0, on=1), + default='on', + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='on', + ), +) + +Mod('ccr12_gas_switch', + 'frappy.simulation.SimWritable', + description='Switches the gas inlet on or off.\n\nnote: in reality this switches itself off after 15min.\nnote: in reality this is interlocked with ccr12_vacuum_switch, only one can be on!\nnote: in this simulation this module is isolated.', + value=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), +) + +Mod('ccr12_vacuum_switch', + 'frappy.simulation.SimWritable', + description='Switches the vacuum pumping valve on or off.\n\nnote: in reality this is interlocked with ccr12_gas_switch, only one can be on!\nnote: in this simulation this module is isolated.', + value=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), +) + +Mod('ccr12_p1', + 'frappy.simulation.SimReadable', + description='Default pressure Sensor, linear scale 0..1000mbar', + value=Param( + datatype=FloatRange(unit='mbar'), + default=999.0, + ), +) + +Mod('ccr12_p2', + 'frappy.simulation.SimReadable', + description='Auxillary pressure Sensor.', + value=Param( + datatype=FloatRange(unit='mbar'), + default=1e-06, + ), +) + +Mod('ccr12_curve_p2', + 'frappy.simulation.SimWritable', + description='Curve for Aux pressure Sensor p2', + visibility='expert', + value=Param( + default='TTR100', + datatype=EnumType('', 0..10V=0, default=1, 0..9V=2, DI200=3, DI2000=4, TTR100=7, PTR90=8, PTR225/PTR237=9, ITR90=10, ITR100 curve D=11, ITR100 curve 2=12, ITR100 curve 3=13, ITR100 curve 4=14, ITR100 curve 5=15, ITR100 curve 6=16, ITR100 curve 7=17, ITR100 curve 8=18, ITR100 curve 9=19, ITR100 curve A=20, CMR361=21, CMR362=22, CMR363=23, CMR364=24, CMR365=25), + ), + target=Param( + datatype=EnumType('', 0..10V=0, default=1, 0..9V=2, DI200=3, DI2000=4, TTR100=7, PTR90=8, PTR225/PTR237=9, ITR90=10, ITR100 curve D=11, ITR100 curve 2=12, ITR100 curve 3=13, ITR100 curve 4=14, ITR100 curve 5=15, ITR100 curve 6=16, ITR100 curve 7=17, ITR100 curve 8=18, ITR100 curve 9=19, ITR100 curve A=20, CMR361=21, CMR362=22, CMR363=23, CMR364=24, CMR365=25), + ), +) + +Mod('ccr12_p1_limits', + 'frappy.simulation.SimWritable', + description='Limits for pressure regulation in P1.', + visibility='expert', + value=Param( + datatype=TupleOf(FloatRange(unit='mbar', minval=0.0, maxval=1000.0), FloatRange(unit='mbar', minval=0.0, maxval=1000.0)), + default=(0.0, 10.0), + ), + target=Param( + datatype=TupleOf(FloatRange(unit='mbar', minval=0.0, maxval=1000.0), FloatRange(unit='mbar', minval=0.0, maxval=1000.0)), + default=(0.0, 10.0), + ), +) + +Mod('ccr12_p2_limits', + 'frappy.simulation.SimWritable', + description='Limits for pressure regulation in P2.', + visibility='expert', + value=Param( + datatype=TupleOf(FloatRange(unit='mbar', minval=0.0, maxval=1000.0), FloatRange(unit='mbar', minval=0.0, maxval=1000.0)), + default=(1e-05, 0.001), + ), + target=Param( + datatype=TupleOf(FloatRange(unit='mbar', minval=0.0, maxval=1000.0), FloatRange(unit='mbar', minval=0.0, maxval=1000.0)), + default=(1e-05, 0.001), + ), +) diff --git a/cfg/sim_mlz_ccr12_v2.cfg b/cfg/sim_mlz_ccr12_v2.cfg deleted file mode 100644 index 3d54447..0000000 --- a/cfg/sim_mlz_ccr12_v2.cfg +++ /dev/null @@ -1,155 +0,0 @@ -[node ccr12] -description = [sim] CCR12 box of MLZ Sample environment group - . - Contains a Lakeshore 336 and an PLC controlling the compressor - and some valves. - . - This is an improved version, how we think it should be. - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_ccr12] -class=secop.simulation.SimDrivable -.description=Main temperature control node of CCR12. - . - Switches between regulation on stick and regulation on tube depending on temperature requested. - May also pump gas for higher temperatures, if configured. - Manual switching of the regulation node is supported via the regulationmode parameter. -value.datatype={"type":"double", "min":0, "max":600, "unit":"K"} -value.default=300 -target.datatype={"type":"double", "min":0, "max":600, "unit":"K"} -target.default=300 -.extra_params=ramp,regulationmode,abslimits,userlimits -ramp.datatype={"type":"double", "min":0, "max":60, "unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -ramp.readonly=False -regulationmode.datatype={"type":"enum","members":{"stick":1,"tube":2,"both":3}} -regulationmode.default='both' -regulationmode.description=regulate only stick, tube or select based upon the target value. -regulationmode.readonly=False -abslimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}} -abslimits.default=[0,600] -abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K). -userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}} -userlimits.default=[0,300] -userlimits.description=current user set limits for the setpoint. must be inside abslimits. -userlimits.readonly=False -.meaning=["temperature_regulation", 20] - -[module T_ccr12_A] -class=secop.simulation.SimReadable -.description=(optional) Sample temperature sensor. -.visibility=expert -value.datatype={"type":"double", "min":0, "unit":"K"} -value.default=300 -.meaning=["temperature", 9] - -[module T_ccr12_B] -class=secop.simulation.SimReadable -.description=(regulation) temperature sensor on stick. -.visibility=expert -value.datatype={"type":"double", "min":0, "unit":"K"} -value.default=300 -.meaning=["temperature", 10] - -[module T_ccr12_C] -class=secop.simulation.SimReadable -.description=Temperature at the coldhead. -.visibility=expert -value.datatype={"type":"double", "min":0, "unit":"K"} -value.default=70 -.meaning=["temperature", 1] - -[module T_ccr12_D] -class=secop.simulation.SimReadable -.description=(regulation) temperature at coupling to stick. -.visibility=expert -value.datatype={"type":"double", "min":0, "unit":"K"} -value.default=80 -.meaning=["temperature", 2] - - - -[module ccr12_pressure_regulation] -class=secop.simulation.SimReadable -.description=Simple two-point presssure regulation. the mode parameter selects the readout on which to regulate, or 'none' for no regulation. -.visibility=user -.extra_params=switchpoints, mode -mode.datatype={"type":"enum", "members":{"none":0,"p1":1,"p2":2}} -mode.description=Select pressure sensor to regulate on, or 'none' to disable regulation. -mode.default='none' -# struct is more explicit, but ugly to read.... -switchpoints.datatype={"type":"struct", "members":{"lower":{"type":"double", "unit":"mbar"},"upper":{"type":"double", "unit":"mbar"}}, "optional":["upper","lower"]} -switchpoints.description=Switching points for regulation. If the selected pressure is below 'lower' value, the gas valve is opened, above 'upper' the value vacuum valve is openend, else both are closed. values for switchpoints are taken from the selected pressure sensors userlimits. -switchpoints.default={'lower':1e-6,'upper':1e-3} -switchpoints.readonly=True -value.datatype={"type":"double", "min":0, "max":1000, "unit":"mbar"} -value.default = 1e-5 - -[module ccr12_compressor] -class=secop.simulation.SimDrivable -.description=Switches the compressor for the cooling stage on or off. - . - Note: This should always be on, except for fast heatup for sample change. -.visibility=user -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} - -[module ccr12_gas_switch] -class=secop.simulation.SimWritable -.description=Switches the gas inlet on or off. - . - note: in reality this switches itself off after 15min. - note: in reality this is interlocked with ccr12_vacuum_switch, only one can be on! - note: in this simulation this module is isolated. -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module ccr12_vacuum_switch] -class=secop.simulation.SimWritable -.description=Switches the vacuum pumping valve on or off. - . - note: in reality this is interlocked with ccr12_gas_switch, only one can be on! - note: in this simulation this module is isolated. -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -value.default='off' -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module ccr12_p1] -class=secop.simulation.SimReadable -.description=Default pressure Sensor, linear scale 0..1000 mbar - . - Good candidate for a 'Sensor' Interface class! -value.default=999 -value.unit=mbar -.extra_params=curve, userlimits -curve.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}} -curve.description=Calibration curve for pressure sensor -curve.default='TTR100' -userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -userlimits.default=[1, 100] -userlimits.description=current user set limits for the pressure regulation. -userlimits.readonly=False - -[module ccr12_p2] -class=secop.simulation.SimReadable -.description=Auxillary pressure Sensor. -value.default=1e-6 -value.unit=mbar -.extra_params=curve,userlimits -curve.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}} -curve.description=Calibration curve for pressure sensor -curve.default='PTR90' -userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}} -userlimits.default=[1e-6, 1e-3] -userlimits.description=current user set limits for the pressure regulation. -userlimits.readonly=False -pollinterval.visibility='expert' diff --git a/cfg/sim_mlz_ccr12_v2_cfg.py b/cfg/sim_mlz_ccr12_v2_cfg.py new file mode 100644 index 0000000..e040bc4 --- /dev/null +++ b/cfg/sim_mlz_ccr12_v2_cfg.py @@ -0,0 +1,177 @@ +# pylint: skip-file +Node('ccr12', + '[sim] CCR12 box of MLZ Sample environment group' + '' + 'Contains a Lakeshore 336 and an PLC controlling the compressor' + 'and some valves.' + '' + 'This is an improved version, how we think it should be.', + 'tcp://10767', +) + +Mod('T_ccr12', + 'frappy.simulation.SimDrivable', + 'Main temperature control node of CCR12.' + '' + 'Switches between regulation on stick and regulation on tube depending on temperature requested.' + 'May also pump gas for higher temperatures, if configured.' + 'Manual switching of the regulation node is supported via the regulationmode parameter.', + value = Param(default=300, + datatype={"type":"double", "min":0, "max":600, "unit":"K"}), + target = Param(default=300, + datatype={"type":"double", "min":0, "max":600, "unit":"K"}), + extra_params='ramp,regulationmode,abslimits,userlimits', + ramp = Param( + default=60, + datatype={"type":"double", "min":0, "max":60, "unit":"K/min"}, + description='target ramping speed in K/min.', + readonly=False, + ), + regulationmode = Param( + default='both', + datatype={"type":"enum","members":{"stick":1,"tube":2,"both":3}}, + description='regulate only stick, tube or select based upon the target value.', + readonly=False, + ), + abslimits = Param( + default=[0,600], + datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}}, + description='currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).', + ), + userlimits = Param( + default=[0,300], + datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}}, + description='current user set limits for the setpoint. must be inside abslimits.', + readonly=False, + ), + meaning=["temperature_regulation", 20], +) + +Mod('T_ccr12_A', + 'frappy.simulation.SimReadable', + '(optional) Sample temperature sensor.', + value = Param(default=300, + datatype={"type":"double", "min":0, "unit":"K"}), + visibility='expert', + meaning=["temperature", 9], +) + +Mod('T_ccr12_B', + 'frappy.simulation.SimReadable', + '(regulation) temperature sensor on stick.', + value = Param(default=300, datatype={"type":"double", "min":0, "unit":"K"}), + visibility='expert', + meaning=["temperature", 10], +) + +Mod('T_ccr12_C', + 'frappy.simulation.SimReadable', + 'Temperature at the coldhead.', + value = Param(default=70, datatype={"type":"double", "min":0, "unit":"K"}), + visibility='expert', + meaning=["temperature", 1], +) + +Mod('T_ccr12_D', + 'frappy.simulation.SimReadable', + '(regulation) temperature at coupling to stick.', + value = Param(default=80, datatype={"type":"double", "min":0, "unit":"K"}), + visibility='expert', + meaning=["temperature", 2], +) + +Mod('ccr12_pressure_regulation', + 'frappy.simulation.SimReadable', + 'Simple two-point presssure regulation. the mode parameter selects the readout on which to regulate, or, \'none\' for no regulation.', + value = Param(default = 1e-5, + datatype={"type":"double", "min":0, "max":1000, "unit":"mbar"}), + extra_params='switchpoints, mode', + mode = Param( + default='none', + datatype={"type":"enum", "members":{"none":0,"p1":1,"p2":2}}, + description='Select pressure sensor to regulate on, or \'none\' to disable regulation.', + ), + switchpoints = Param( + default={'lower':1e-6,'upper':1e-3}, + # struct is more explicit, but ugly to read.... + datatype={"type":"struct", "members":{"lower":{"type":"double", "unit":"mbar"},"upper":{"type":"double", "unit":"mbar"}}, "optional":["upper","lower"]}, + description='Switching points for regulation. If the selected pressure is below \'lower\' value, the gas valve is opened, above \'upper\' the value vacuum valve is openend, else both are closed. values for switchpoints are taken from the selected pressure sensors userlimits.', + readonly=True, + ), + visibility='user', +) + +Mod('ccr12_compressor', + 'frappy.simulation.SimDrivable', + 'Switches the compressor for the cooling stage on or off.\n' + '\n' + 'Note: This should always be on, except for fast heatup for sample change.', + value = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(datatype={"type":"enum", "members":{'off':0,'on':1}}), + visibility='user', +) + +Mod('ccr12_gas_switch', + 'frappy.simulation.SimWritable', + 'Switches the gas inlet on or off.\n' + '\n' + 'note: in reality this switches itself off after 15min.\n' + 'note: in reality this is interlocked with ccr12_vacuum_switch, only one can be on!\n' + 'note: in this simulation this module is isolated.', + value = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), +) + +Mod('ccr12_vacuum_switch', + 'frappy.simulation.SimWritable', + 'Switches the vacuum pumping valve on or off.\n' + '\n' + 'note: in reality this is interlocked with ccr12_gas_switch, only one can be on!\n' + 'note: in this simulation this module is isolated.', + value = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), +) + +Mod('ccr12_p1', + 'frappy.simulation.SimReadable', + 'Default pressure Sensor, linear scale 0..1000 mbar\n' + '\n' + 'Good candidate for a \'Sensor\' Interface class!', + value = Param(default=999, unit='mbar'), + extra_params='curve, userlimits', + curve = Param( + default='TTR100', + datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}, + description='Calibration curve for pressure sensor', + ), + userlimits = Param( + default=[1, 100], + datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}, + description='current user set limits for the pressure regulation.', + readonly=False, + ), +) + +Mod('ccr12_p2', + 'frappy.simulation.SimReadable', + 'Auxillary pressure Sensor.', + value = Param(default=1e-6, unit='mbar'), + extra_params='curve,userlimits', + curve = Param( + default='PTR90', + datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}, + description='Calibration curve for pressure sensor', + ), + userlimits = Param( + default=[1e-6, 1e-3], + datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}, + description='current user set limits for the pressure regulation.', + readonly=False, + ), + pollinterval = Param(visibility='expert'), +) diff --git a/cfg/sim_mlz_htf02.cfg b/cfg/sim_mlz_htf02.cfg deleted file mode 100644 index 9b88eb1..0000000 --- a/cfg/sim_mlz_htf02.cfg +++ /dev/null @@ -1,33 +0,0 @@ -[node htf02] -description = [sim] htf02 box of MLZ Sample environment group - . - Controls an High Temperature Furnace with an eurotherm controller and an PLC checking the cooing water. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_htf02] -class=secop.simulation.SimDrivable -.description=Main temperature control node of htf02. - . - Controls the regulation loop of the Eurotherm. -value.datatype={"type":"double", "min":0, "unit":"degC"} -value.default=300 -target.datatype={"type":"double", "min":0, "max": 2000, "unit":"degC"} -target.default=300 -.extra_params=ramp -ramp.datatype={"type":"double", "min":0, "max": 600, "unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -ramp.readonly=False -.meaning=["temperature", 10] - -[module htf02_p] -class=secop.simulation.SimReadable -.description=Pressure Sensor at sample space (ivc). -value.datatype={"type":"double", "min":0, "unit":"mbar"} -value.default=989 - diff --git a/cfg/sim_mlz_htf02_cfg.py b/cfg/sim_mlz_htf02_cfg.py new file mode 100644 index 0000000..8db68e1 --- /dev/null +++ b/cfg/sim_mlz_htf02_cfg.py @@ -0,0 +1,30 @@ +Node('htf02', + '[sim] htf02 box of MLZ Sample environment group\n' + '\n' + 'Controls an High Temperature Furnace with an eurotherm controller and an PLC checking the cooing water.', + 'tcp://10767', +) + +Mod('T_htf02', + 'frappy.simulation.SimDrivable', + 'Main temperature control node of htf02.\n' + '\n' + 'Controls the regulation loop of the Eurotherm.', + value = Param(default=300, + datatype={"type":"double", "min":0, "unit":"degC"}), + target = Param(default=300, + datatype={"type":"double", "min":0, "max": 2000, "unit":"degC"}), + extra_params='ramp', + ramp = Param(default=60, + datatype={"type":"double", "min":0, "max": 600, "unit":"K/min"}, + description='target ramping speed in K/min.', + readonly=False, + ), + meaning=["temperature", 10], +) + +Mod('htf02_p', + 'frappy.simulation.SimReadable', + 'Pressure Sensor at sample space (ivc).', + value = Param(default=989, datatype={"type":"double", "min":0, "unit":"mbar"}), +) diff --git a/cfg/sim_mlz_stressihtf2.cfg b/cfg/sim_mlz_stressihtf2.cfg deleted file mode 100644 index 8379214..0000000 --- a/cfg/sim_mlz_stressihtf2.cfg +++ /dev/null @@ -1,73 +0,0 @@ -[node stressihtf2] -description = [sim] Stressihtf2 box of MLZ Sample environment group - . - Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T_stressihtf2] -class=secop.simulation.SimDrivable -.description=Main temperature control node of Stressihtf2. -value.datatype={"type":"double", "min":0, "unit":"degC"} -value.default=20 -target.datatype={"type":"double", "min":0, "max":2000, "unit":"degC"} -target.default=20 -.extra_params=ramp,regulationmode,abslimits,userlimits -ramp.datatype={"type":"double", "min":0, "max":600, "unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -abslimits.datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}} -abslimits.default=[0,2000] -abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K). -userlimits.datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}} -userlimits.default=[0,300] -userlimits.description=current user set limits for the setpoint. must be inside abslimits. -userlimits.readonly=False -.meaning=['temperature_regulation', 10] - -[module T_stressihtf2_sample] -class=secop.simulation.SimReadable -.description=(optional) Sample temperature sensor. -.visibility=expert -value.default=300 -value.datatype={"type":"double", "min":0, "unit":"degC"} -.meaning=["temperature", 9] - -[module stressihtf2_n2] -class=secop.simulation.SimWritable -.description=Switches the N2 gas inlet on or off. -.visibility=expert -value.default='off' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module stressihtf2_he] -class=secop.simulation.SimWritable -.description=Switches the He gas inlet on or off. -.visibility=expert -value.default='off' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module stressihtf2_lamps] -class=secop.simulation.SimWritable -.description=Switches the heating lamps on or off. -.visibility=expert -value.default='on' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='on' - -[module stressihtf2_water_ok] -class=secop.simulation.SimReadable -.description=Readout of the cooling water state. -.visibility=expert -value.default='ok' -value.datatype={"type":"enum", "members":{'failed':0,'ok':1}} - diff --git a/cfg/sim_mlz_stressihtf2_cfg.py b/cfg/sim_mlz_stressihtf2_cfg.py new file mode 100644 index 0000000..4cc567a --- /dev/null +++ b/cfg/sim_mlz_stressihtf2_cfg.py @@ -0,0 +1,100 @@ +Node('stressihtf2', + '''[sim] Stressihtf2 box of MLZ Sample environment group + + Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.''', + interface='tcp://10767', +) + +Mod('T_stressihtf2', + 'frappy.simulation.SimDrivable', + description='Main temperature control node of Stressihtf2.', + value=Param( + datatype=FloatRange(unit='degC', minval=0.0), + default=20.0, + ), + target=Param( + datatype=FloatRange(unit='degC', minval=0.0, maxval=2000.0), + default=20.0, + ), + extra_params=['ramp', 'regulationmode', 'abslimits', 'userlimits'], + ramp=Param( + datatype=FloatRange(unit='K/min', minval=0.0, maxval=600.0), + description='target ramping speed in K/min.', + default=60.0, + ), + abslimits=Param( + datatype=TupleOf(FloatRange(unit='degC', minval=0.0, maxval=2000.0), FloatRange(unit='degC', minval=0.0, maxval=2000.0)), + default=(0.0, 2000.0), + description='currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).', + ), + userlimits=Param( + datatype=TupleOf(FloatRange(unit='degC', minval=0.0, maxval=2000.0), FloatRange(unit='degC', minval=0.0, maxval=2000.0)), + default=(0.0, 300.0), + description='current user set limits for the setpoint. must be inside abslimits.', + readonly=False, + ), + meaning=('temperature_regulation', 10), +) + +Mod('T_stressihtf2_sample', + 'frappy.simulation.SimReadable', + description='(optional) Sample temperature sensor.', + visibility='expert', + value=Param( + default=300.0, + datatype=FloatRange(unit='degC', minval=0.0), + ), + meaning=('temperature', 9), +) + +Mod('stressihtf2_n2', + 'frappy.simulation.SimWritable', + description='Switches the N2 gas inlet on or off.', + visibility='expert', + value=Param( + default='off', + datatype=EnumType('', off=0, on=1), + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), +) + +Mod('stressihtf2_he', + 'frappy.simulation.SimWritable', + description='Switches the He gas inlet on or off.', + visibility='expert', + value=Param( + default='off', + datatype=EnumType('', off=0, on=1), + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='off', + ), +) + +Mod('stressihtf2_lamps', + 'frappy.simulation.SimWritable', + description='Switches the heating lamps on or off.', + visibility='expert', + value=Param( + default='on', + datatype=EnumType('', off=0, on=1), + ), + target=Param( + datatype=EnumType('', off=0, on=1), + default='on', + ), +) + +Mod('stressihtf2_water_ok', + 'frappy.simulation.SimReadable', + description='Readout of the cooling water state.', + visibility='expert', + value=Param( + default='ok', + datatype=EnumType('', failed=0, ok=1), + ), +) diff --git a/cfg/sim_mlz_stressihtf2_v2.cfg b/cfg/sim_mlz_stressihtf2_v2.cfg deleted file mode 100644 index 81a8d85..0000000 --- a/cfg/sim_mlz_stressihtf2_v2.cfg +++ /dev/null @@ -1,73 +0,0 @@ -[node stressihtf2_v2] -description = [sim] Stressihtf2 box of MLZ Sample environment group - . - Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water. - - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T] -class=secop.simulation.SimDrivable -.description=Main temperature control node of Stressihtf2. -value.datatype={"type":"double", "min":0, "unit":"degC"} -value.default=20 -target.datatype={"type":"double", "min":0, "max":2000, "unit":"degC"} -target.default=20 -.extra_params=ramp,regulationmode,abslimits,userlimits -ramp.datatype={"type":"double", "min":0, "max":600, "unit":"K/min"} -ramp.description=target ramping speed in K/min. -ramp.default=60 -abslimits.datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}} -abslimits.default=[0,2000] -abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K). -userlimits.datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}} -userlimits.default=[0,300] -userlimits.description=current user set limits for the setpoint. must be inside abslimits. -userlimits.readonly=False -.meaning=['temperature_regulation', 10] - -[module T_sample] -class=secop.simulation.SimReadable -.description=(optional) Sample temperature sensor. -.visibility=expert -value.default=300 -value.datatype={"type":"double", "min":0, "unit":"degC"} -.meaning=["temperature", 9] - -[module N2] -class=secop.simulation.SimWritable -.description=Switches the N2 gas inlet on or off. -.visibility=expert -value.default='off' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module He] -class=secop.simulation.SimWritable -.description=Switches the He gas inlet on or off. -.visibility=expert -value.default='off' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='off' - -[module lamps] -class=secop.simulation.SimWritable -.description=Switches the heating lamps on or off. -.visibility=expert -value.default='on' -value.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.datatype={"type":"enum", "members":{'off':0,'on':1}} -target.default='on' - -[module water_ok] -class=secop.simulation.SimReadable -.description=Readout of the cooling water state. -.visibility=expert -value.default='ok' -value.datatype={"type":"enum", "members":{'failed':0,'ok':1}} - diff --git a/cfg/sim_mlz_stressihtf2_v2_cfg.py b/cfg/sim_mlz_stressihtf2_v2_cfg.py new file mode 100644 index 0000000..e1f1918 --- /dev/null +++ b/cfg/sim_mlz_stressihtf2_v2_cfg.py @@ -0,0 +1,82 @@ +Node('stressihtf2_v2', + '[sim] Stressihtf2 box of MLZ Sample environment group\n' + '\n' + 'Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.', + 'tcp://10767', +) + + +Mod('T', + 'frappy.simulation.SimDrivable', + 'Main temperature control node of Stressihtf2.', + value = Param(default=20, + datatype={"type":"double", "min":0, "unit":"degC"}), + target = Param(default=20, + datatype={"type":"double", "min":0, "max":2000, "unit":"degC"}), + extra_params='ramp,regulationmode,abslimits,userlimits', + ramp = Param( + default=60, + datatype={"type":"double", "min":0, "max":600, "unit":"K/min"}, + description='target ramping speed in K/min.', + ), + abslimits = Param( + default=[0,2000], + datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}}, + description='currently active absolute limits for the setpoint. depend \ + on the regulationmode parameter (both/stick->0..600, tube->0..300K).', + ), + userlimits = Param( + default=[0,300], + datatype={"type":"limit", "members":{"type":"double", "min":0, "max":2000, "unit":"degC"}}, + description='current user set limits for the setpoint. must be inside abslimits.', + readonly=False, + ), + meaning=['temperature_regulation', 10], +) + +Mod('T_sample', + 'frappy.simulation.SimReadable', + '(optional) Sample temperature sensor.', + value = Param(default=300, + datatype={"type":"double", "min":0, "unit":"degC"}), + visibility='expert', + meaning=["temperature", 9], +) + +Mod('N2', + 'frappy.simulation.SimWritable', + 'Switches the N2 gas inlet on or off.', + value = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + visibility='expert', +) + +Mod('He', + 'frappy.simulation.SimWritable', + 'Switches the He gas inlet on or off.', + value = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(default='off', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + visibility='expert', +) + +Mod('lamps', + 'frappy.simulation.SimWritable', + 'Switches the heating lamps on or off.', + value = Param(default='on', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + target = Param(default='on', + datatype={"type":"enum", "members":{'off':0,'on':1}}), + visibility='expert', +) + +Mod('water_ok', + 'frappy.simulation.SimReadable', + 'Readout of the cooling water state.', + value = Param(default='ok', + datatype={"type":"enum", "members":{'failed':0,'ok':1}}), + visibility='expert', +) diff --git a/cfg/sim_uniax.cfg b/cfg/sim_uniax.cfg deleted file mode 100644 index 2081ec8..0000000 --- a/cfg/sim_uniax.cfg +++ /dev/null @@ -1,44 +0,0 @@ -[NODE] -id = uniax_sim.psi.ch -description = [sim] uniaxial pressure device - -[INTERFACE] -uri=tcp://5000 - -[force] -class = secop_psi.uniax.Uniax -description = uniax driver -motor = drv -transducer = transducer - -[drv] -class = secop.simulation.SimDrivable -extra_params = speed, safe_current, move_limit, maxcurrent, tolerance -description = simulated motor -value.default = 0 -speed.readonly = False -speed.default = 40 -interval = 0.11 -value.unit = deg -tolerance.default = 0.9 - -[transducer] -class = secop_psi.simdpm.DPM3 -description = simulated force -motor = drv -value.unit = 'N' - -[res] -class = secop.simulation.SimReadable -description = raw temperature sensor on the stick -extra_params = jitter -jitter.default = 1 -value.default = 99 -value.datatype = {"type":"double", "unit":"Ohm"} - -[T] -class=secop_psi.softcal.Sensor -description=temperature sensor, soft calibration -rawsensor=res -calib = X132254 -value.unit = "K" diff --git a/cfg/sim_uniax_cfg.py b/cfg/sim_uniax_cfg.py new file mode 100644 index 0000000..57814ef --- /dev/null +++ b/cfg/sim_uniax_cfg.py @@ -0,0 +1,61 @@ +Node('uniax_sim.psi.ch', + '[sim] uniaxial pressure device', + interface='tcp://5000', +) + +Mod('force', + 'frappy_psi.uniax.Uniax', + 'uniax driver', + motor='drv', + transducer='transducer', +) + +Mod('drv', + 'frappy.simulation.SimDrivable', + 'simulated motor', + extra_params=['speed', 'safe_current', 'move_limit', 'maxcurrent', 'tolerance'], + value=Param( + default=0.0, + unit='deg', + ), + speed=Param( + readonly=False, + default=40.0, + ), + interval=0.11, + tolerance=Param( + default=0.9, + ), +) + +Mod('transducer', + 'frappy_psi.simdpm.DPM3', + 'simulated force', + motor='drv', + value=Param( + unit='N', + ), +) + +Mod('res', + 'frappy.simulation.SimReadable', + 'raw temperature sensor on the stick', + extra_params=['jitter'], + jitter=Param( + default=1.0, + ), + value=Param( + default=99.0, + datatype=FloatRange(unit='Ohm'), + ), +) + +Mod('T', + 'frappy_psi.softcal.Sensor', + 'temperature sensor, soft calibration', + rawsensor='res', + calib='X132254', + value=Param( + unit='K', + ), +) diff --git a/cfg/softcal.cfg b/cfg/softcal.cfg deleted file mode 100644 index c6f2439..0000000 --- a/cfg/softcal.cfg +++ /dev/null @@ -1,12 +0,0 @@ -[r3] -class = secop.core.Proxy -remote_class = secop.core.Readable -description = temp sensor on 3He system -uri = tcp://pc12694:5000 -export = False - -[t3] -class = secop_psi.softcal.Sensor -rawsensor = r3 -calib = X131346 -value.unit = K diff --git a/cfg/softcal_cfg.py b/cfg/softcal_cfg.py new file mode 100644 index 0000000..6d0fdf0 --- /dev/null +++ b/cfg/softcal_cfg.py @@ -0,0 +1,20 @@ +Node('softcal.demo.example', + 'convert r2 from PPMS to a temperature', + 'tcp://5001', +) + +Mod('r2', + 'frappy.core.Proxy', + 'convert r2 from PPMS to a temperature', + remote_class = 'frappy.core.Readable', + uri = 'tcp://localhost:5000', + export = False, +) + +Mod('T2', + 'frappy_psi.softcal.Sensor', + '', + value = Param(unit = 'K'), + rawsensor = 'r2', + calib = 'X131346', +) diff --git a/cfg/stick/dil2.cfg b/cfg/stick/dil2.cfg deleted file mode 100644 index 9888d9b..0000000 --- a/cfg/stick/dil2.cfg +++ /dev/null @@ -1,64 +0,0 @@ -[NODE] -description = dilution insert -id = dil2.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick sea connection for dil2.stick -config = dil2.stick -service = stick - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = ts - -[treg] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg - -[tmon] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon - -[T_oneK] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = onek - -[T_still] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = stillt - -[T_sample] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = sample - -[T_samplehtr] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = samplehtr - -[T_mix] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = mix - -[dil] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = dil - -[T_sorb] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = sorb diff --git a/cfg/stick/dil2_cfg.py b/cfg/stick/dil2_cfg.py new file mode 100644 index 0000000..7ae0839 --- /dev/null +++ b/cfg/stick/dil2_cfg.py @@ -0,0 +1,75 @@ +Node('dil2.stick.sea.psi.ch', + 'dilution insert', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick sea connection for dil2.stick', + config='dil2.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='ts', +) + +Mod('treg', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', +) + +Mod('tmon', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', +) + +Mod('T_oneK', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['onek'], +) + +Mod('T_still', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['stillt'], +) + +Mod('T_sample', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['sample'], +) + +Mod('T_samplehtr', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['samplehtr'], +) + +Mod('T_mix', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['mix'], +) + +Mod('dil', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='dil', +) + +Mod('T_sorb', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='sorb', +) diff --git a/cfg/stick/dil3.cfg b/cfg/stick/dil3.cfg deleted file mode 100644 index 47e5574..0000000 --- a/cfg/stick/dil3.cfg +++ /dev/null @@ -1,64 +0,0 @@ -[NODE] -description = dilution insert -id = dil3.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick sea connection for dil3.stick -config = dil3.stick -service = stick - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = ts - -[treg] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg - -[tmon] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon - -[T_oneK] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = onek - -[T_still] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = stillt - -[T_sample] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = sample - -[T_samplehtr] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = samplehtr - -[T_mix] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = mix - -[dil] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = dil - -[T_sorb] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = sorb diff --git a/cfg/stick/dil3_cfg.py b/cfg/stick/dil3_cfg.py new file mode 100644 index 0000000..d092f5a --- /dev/null +++ b/cfg/stick/dil3_cfg.py @@ -0,0 +1,75 @@ +Node('dil3.stick.sea.psi.ch', + 'dilution insert', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick sea connection for dil3.stick', + config='dil3.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='ts', +) + +Mod('treg', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', +) + +Mod('tmon', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', +) + +Mod('T_oneK', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['onek'], +) + +Mod('T_still', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['stillt'], +) + +Mod('T_sample', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['sample'], +) + +Mod('T_samplehtr', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['samplehtr'], +) + +Mod('T_mix', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['mix'], +) + +Mod('dil', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='dil', +) + +Mod('T_sorb', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='sorb', +) diff --git a/cfg/stick/dil4.cfg b/cfg/stick/dil4.cfg deleted file mode 100644 index 85b2c16..0000000 --- a/cfg/stick/dil4.cfg +++ /dev/null @@ -1,64 +0,0 @@ -[NODE] -description = dilution insert -id = dil4.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick sea connection for dil4.stick -config = dil4.stick -service = stick - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = ts - -[treg] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg - -[tmon] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon - -[T_oneK] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = onek - -[T_still] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tmon -rel_paths = stillt - -[T_sample] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = sample - -[T_samplehtr] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = samplehtr - -[T_mix] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = treg -rel_paths = mix - -[dil] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = dil - -[T_sorb] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = sorb diff --git a/cfg/stick/dil4_cfg.py b/cfg/stick/dil4_cfg.py new file mode 100644 index 0000000..75386d2 --- /dev/null +++ b/cfg/stick/dil4_cfg.py @@ -0,0 +1,75 @@ +Node('dil4.stick.sea.psi.ch', + 'dilution insert', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick sea connection for dil4.stick', + config='dil4.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='ts', +) + +Mod('treg', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', +) + +Mod('tmon', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', +) + +Mod('T_oneK', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['onek'], +) + +Mod('T_still', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tmon', + rel_paths=['stillt'], +) + +Mod('T_sample', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['sample'], +) + +Mod('T_samplehtr', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['samplehtr'], +) + +Mod('T_mix', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='treg', + rel_paths=['mix'], +) + +Mod('dil', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='dil', +) + +Mod('T_sorb', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='sorb', +) diff --git a/cfg/stick/dil5.cfg b/cfg/stick/dil5.cfg deleted file mode 100644 index bc42925..0000000 --- a/cfg/stick/dil5.cfg +++ /dev/null @@ -1,210 +0,0 @@ -[NODE] -id = triton.psi.ch -description = triton test - -[INTERFACE] -uri = tcp://5000 - -[triton] -class = secop_psi.mercury.IO -description = connection to triton software -uri = tcp://linse-dil5:33576 -timeout = 5 - -[ts] -class = secop_psi.triton.TemperatureLoop -description = mix. chamber temperature -slot = T5 -output_module = htr_mix -io = triton - -[htr_mix] -class = secop_psi.triton.HeaterOutputWithRange -description = mix. chamber heater -slot = H1,T5 -io = triton - -[htr_sorb] -class = secop_psi.triton.HeaterOutput -description = sorb heater -slot = H3 -io = triton - -[htr_still] -class = secop_psi.triton.HeaterOutput -description = still heater -slot = H2 -io = triton - -[T_sorb] -class = secop_psi.triton.TemperatureSensor -description = sorb temperature -slot = T1 -io = triton - -[T_ivc] -class = secop_psi.triton.TemperatureSensor -description = IVC temperature -slot = T2 -io = triton - -[T_still] -class = secop_psi.triton.TemperatureSensor -description = still temperature -slot = T3 -io = triton - -[T_cp] -class = secop_psi.triton.TemperatureSensor -description = cold plate temperature -slot = T4 -io = triton - -[action] -class = secop_psi.triton.Action -description = higher level scripts -io = triton -slot = DR - -[p_dump] -class = secop_psi.mercury.PressureSensor -description = dump pressure -slot = P1 -io = triton - -[p_cond] -class = secop_psi.mercury.PressureSensor -description = condenser pressure -slot = P2 -io = triton - -[p_still] -class = secop_psi.mercury.PressureSensor -description = still pressure -slot = P3 -io = triton - -[p_fore] -class = secop_psi.mercury.PressureSensor -description = pressure on the pump side -slot = P4 -io = triton - -[p_back] -class = secop_psi.mercury.PressureSensor -description = pressure on the back side of the pump -slot = P5 -io = triton - -[itc] -class = secop_psi.mercury.IO -description = connection to MercuryiTC -uri = tcp://linse-dil5:3000 - -[T_still_wup] -class = secop_psi.mercury.TemperatureLoop -description = still warmup temperature -slot = MB1.T1 -io = itc - -[htr_still_wup] -class = secop_psi.mercury.HeaterOutput -description = still warmup heater -slot = MB0.H1 -io = itc - -[T_one_K] -class = secop_psi.mercury.TemperatureLoop -description = 1 K plate warmup temperature -slot = DB5.T1 -io = itc - -[htr_one_K] -class = secop_psi.mercury.HeaterOutput -description = 1 K plate warmup heater -slot = DB3.H1 -io = itc - -[T_mix_wup] -class = secop_psi.mercury.TemperatureLoop -description = mix. chamber warmup temperature -slot = DB6.T1 -io = itc - -[htr_mix_wup] -class = secop_psi.mercury.HeaterOutput -description = mix. chamber warmup heater -slot = DB1.H1 -io = itc - -[T_ivc_wup] -class = secop_psi.mercury.TemperatureLoop -description = IVC warmup temperature -slot = DB7.T1 -io = itc - -[htr_ivc_wup] -class = secop_psi.mercury.HeaterOutput -description = IVC warmup heater -slot = DB2.H1 -io = itc - -[T_cond] -class = secop_psi.mercury.TemperatureLoop -description = condenser temperature -slot = DB8.T1 -io = itc - -[htr_cond] -class = secop_psi.mercury.HeaterOutput -description = condenser heater -slot = DB3.H1 -io = itc - -[V1] -class = secop_psi.triton.Valve -description = valve V1 -slot = V1 -io = triton - -[V2] -class = secop_psi.triton.Valve -description = valve V2 -slot = V2 -io = triton - -[V4] -class = secop_psi.triton.Valve -description = valve V4 -slot = V4 -io = triton - -[V5] -class = secop_psi.triton.Valve -description = valve V5 -slot = V5 -io = triton - -[V9] -class = secop_psi.triton.Valve -description = valve V9 -slot = V9 -io = triton - -[turbo] -class = secop_psi.triton.TurboPump -description = still turbo pump -slot = TURB1 -io = triton - -[fp] -class = secop_psi.triton.Pump -description = still fore pump -slot = FP -io = triton - -[compressor] -class = secop_psi.triton.Pump -description = compressor -slot = COMP -io = triton diff --git a/cfg/stick/dil5_cfg.py b/cfg/stick/dil5_cfg.py new file mode 100644 index 0000000..1f5d38a --- /dev/null +++ b/cfg/stick/dil5_cfg.py @@ -0,0 +1,242 @@ +Node('triton.psi.ch', + 'triton test', + interface='tcp://5000', +) + +Mod('triton', + 'frappy_psi.mercury.IO', + 'connection to triton software', + uri='tcp://linse-dil5:33576', + timeout=5.0, +) + +Mod('ts', + 'frappy_psi.triton.TemperatureLoop', + 'mix. chamber temperature', + slot='T5', + output_module='htr_mix', + io='triton', +) + +Mod('htr_mix', + 'frappy_psi.triton.HeaterOutputWithRange', + 'mix. chamber heater', + slot='H1,T5', + io='triton', +) + +Mod('htr_sorb', + 'frappy_psi.triton.HeaterOutput', + 'sorb heater', + slot='H3', + io='triton', +) + +Mod('htr_still', + 'frappy_psi.triton.HeaterOutput', + 'still heater', + slot='H2', + io='triton', +) + +Mod('T_sorb', + 'frappy_psi.triton.TemperatureSensor', + 'sorb temperature', + slot='T1', + io='triton', +) + +Mod('T_ivc', + 'frappy_psi.triton.TemperatureSensor', + 'IVC temperature', + slot='T2', + io='triton', +) + +Mod('T_still', + 'frappy_psi.triton.TemperatureSensor', + 'still temperature', + slot='T3', + io='triton', +) + +Mod('T_cp', + 'frappy_psi.triton.TemperatureSensor', + 'cold plate temperature', + slot='T4', + io='triton', +) + +Mod('action', + 'frappy_psi.triton.Action', + 'higher level scripts', + io='triton', + slot='DR', +) + +Mod('p_dump', + 'frappy_psi.mercury.PressureSensor', + 'dump pressure', + slot='P1', + io='triton', +) + +Mod('p_cond', + 'frappy_psi.mercury.PressureSensor', + 'condenser pressure', + slot='P2', + io='triton', +) + +Mod('p_still', + 'frappy_psi.mercury.PressureSensor', + 'still pressure', + slot='P3', + io='triton', +) + +Mod('p_fore', + 'frappy_psi.mercury.PressureSensor', + 'pressure on the pump side', + slot='P4', + io='triton', +) + +Mod('p_back', + 'frappy_psi.mercury.PressureSensor', + 'pressure on the back side of the pump', + slot='P5', + io='triton', +) + +Mod('itc', + 'frappy_psi.mercury.IO', + 'connection to MercuryiTC', + uri='tcp://linse-dil5:3000', +) + +Mod('T_still_wup', + 'frappy_psi.mercury.TemperatureLoop', + 'still warmup temperature', + slot='MB1.T1', + io='itc', +) + +Mod('htr_still_wup', + 'frappy_psi.mercury.HeaterOutput', + 'still warmup heater', + slot='MB0.H1', + io='itc', +) + +Mod('T_one_K', + 'frappy_psi.mercury.TemperatureLoop', + '1 K plate warmup temperature', + slot='DB5.T1', + io='itc', +) + +Mod('htr_one_K', + 'frappy_psi.mercury.HeaterOutput', + '1 K plate warmup heater', + slot='DB3.H1', + io='itc', +) + +Mod('T_mix_wup', + 'frappy_psi.mercury.TemperatureLoop', + 'mix. chamber warmup temperature', + slot='DB6.T1', + io='itc', +) + +Mod('htr_mix_wup', + 'frappy_psi.mercury.HeaterOutput', + 'mix. chamber warmup heater', + slot='DB1.H1', + io='itc', +) + +Mod('T_ivc_wup', + 'frappy_psi.mercury.TemperatureLoop', + 'IVC warmup temperature', + slot='DB7.T1', + io='itc', +) + +Mod('htr_ivc_wup', + 'frappy_psi.mercury.HeaterOutput', + 'IVC warmup heater', + slot='DB2.H1', + io='itc', +) + +Mod('T_cond', + 'frappy_psi.mercury.TemperatureLoop', + 'condenser temperature', + slot='DB8.T1', + io='itc', +) + +Mod('htr_cond', + 'frappy_psi.mercury.HeaterOutput', + 'condenser heater', + slot='DB3.H1', + io='itc', +) + +Mod('V1', + 'frappy_psi.triton.Valve', + 'valve V1', + slot='V1', + io='triton', +) + +Mod('V2', + 'frappy_psi.triton.Valve', + 'valve V2', + slot='V2', + io='triton', +) + +Mod('V4', + 'frappy_psi.triton.Valve', + 'valve V4', + slot='V4', + io='triton', +) + +Mod('V5', + 'frappy_psi.triton.Valve', + 'valve V5', + slot='V5', + io='triton', +) + +Mod('V9', + 'frappy_psi.triton.Valve', + 'valve V9', + slot='V9', + io='triton', +) + +Mod('turbo', + 'frappy_psi.triton.TurboPump', + 'still turbo pump', + slot='TURB1', + io='triton', +) + +Mod('fp', + 'frappy_psi.triton.Pump', + 'still fore pump', + slot='FP', + io='triton', +) + +Mod('compressor', + 'frappy_psi.triton.Pump', + 'compressor', + slot='COMP', + io='triton', +) diff --git a/cfg/stick/flamedil.cfg b/cfg/stick/flamedil.cfg deleted file mode 100644 index 94bdf10..0000000 --- a/cfg/stick/flamedil.cfg +++ /dev/null @@ -1,146 +0,0 @@ -[NODE] -id = triton.psi.ch -description = triton test - -[INTERFACE] -uri = tcp://5000 - -[T_mix] -class = secop_psi.triton.TemperatureLoop -description = mix. chamber temperature -slot = T5 -output_module = htr_mix -io = triton - -[T_sorb] -class = secop_psi.triton.TemperatureSensor -description = sorb temperature -slot = T1 -io = triton - -[T_still] -class = secop_psi.triton.TemperatureSensor -description = still temperature -slot = T4 -io = triton - -[T_hx] -class = secop_psi.triton.TemperatureSensor -description = heat exchanger T -slot = T2 -io = triton - -[T_jtstage] -class = secop_psi.triton.TemperatureSensor -description = jt stage temperature -slot = T3 -io = triton - -[htr_mix] -class = secop_psi.triton.HeaterOutputWithRange -description = mix. chamber heater -slot = H1,T5 -io = triton - -[htr_sorb] -class = secop_psi.triton.HeaterOutput -description = sorb heater -slot = H3 -io = triton - -[htr_still] -class = secop_psi.triton.HeaterOutput -description = still heater -slot = H2 -io = triton - -[dil_action] -class = secop_psi.triton.Action -description = higher level scripts -io = triton -slot = DR - -[p_dump] -class = secop_psi.mercury.PressureSensor -description = dump pressure -slot = P1 -io = triton - -[p_cond] -class = secop_psi.mercury.PressureSensor -description = condenser pressure -slot = P2 -io = triton - -[p_still] -class = secop_psi.mercury.PressureSensor -description = still pressure -slot = P3 -io = triton - -#[p_fore] -#class = secop_psi.mercury.PressureSensor -#description = pressure on the pump side -#slot = P4 -#io = triton - -[p_back] -class = secop_psi.mercury.PressureSensor -description = pressure on the back side of the pump -slot = P5 -io = triton - -[V1] -class = secop_psi.triton.Valve -description = valve V1 -slot = V1 -io = triton - -[V2] -class = secop_psi.triton.Valve -description = valve V2 -slot = V2 -io = triton - -[V4] -class = secop_psi.triton.Valve -description = valve V4 -slot = V4 -io = triton - -[V5] -class = secop_psi.triton.Valve -description = valve V5 -slot = V5 -io = triton - -[V9] -class = secop_psi.triton.Valve -description = valve V9 -slot = V9 -io = triton - -#[turbo] -#class = secop_psi.triton.TurboPump -#description = still turbo pump -#slot = TURB1 -#io = triton - -[fp] -class = secop_psi.triton.Pump -description = still fore pump -slot = FP -io = triton - -[compressor] -class = secop_psi.triton.Pump -description = compressor -slot = COMP -io = triton - -[triton] -class = secop_psi.mercury.IO -description = connection to triton software -uri = tcp://flamedil:33576 -timeout = 9 - diff --git a/cfg/stick/flamedil_cfg.py b/cfg/stick/flamedil_cfg.py new file mode 100644 index 0000000..2bc36f4 --- /dev/null +++ b/cfg/stick/flamedil_cfg.py @@ -0,0 +1,152 @@ +Node('triton.psi.ch', + 'triton test', + interface='tcp://5000', +) + +Mod('T_mix', + 'frappy_psi.triton.TemperatureLoop', + 'mix. chamber temperature', + slot='T5', + output_module='htr_mix', + io='triton', +) + +Mod('T_sorb', + 'frappy_psi.triton.TemperatureSensor', + 'sorb temperature', + slot='T1', + io='triton', +) + +Mod('T_still', + 'frappy_psi.triton.TemperatureSensor', + 'still temperature', + slot='T4', + io='triton', +) + +Mod('T_hx', + 'frappy_psi.triton.TemperatureSensor', + 'heat exchanger T', + slot='T2', + io='triton', +) + +Mod('T_jtstage', + 'frappy_psi.triton.TemperatureSensor', + 'jt stage temperature', + slot='T3', + io='triton', +) + +Mod('htr_mix', + 'frappy_psi.triton.HeaterOutputWithRange', + 'mix. chamber heater', + slot='H1,T5', + io='triton', +) + +Mod('htr_sorb', + 'frappy_psi.triton.HeaterOutput', + 'sorb heater', + slot='H3', + io='triton', +) + +Mod('htr_still', + 'frappy_psi.triton.HeaterOutput', + 'still heater', + slot='H2', + io='triton', +) + +Mod('dil_action', + 'frappy_psi.triton.Action', + 'higher level scripts', + io='triton', + slot='DR', +) + +Mod('p_dump', + 'frappy_psi.mercury.PressureSensor', + 'dump pressure', + slot='P1', + io='triton', +) + +Mod('p_cond', + 'frappy_psi.mercury.PressureSensor', + 'condenser pressure', + slot='P2', + io='triton', +) + +Mod('p_still', + 'frappy_psi.mercury.PressureSensor', + 'still pressure', + slot='P3', + io='triton', +) + +Mod('p_back', + 'frappy_psi.mercury.PressureSensor', + 'pressure on the back side of the pump', + slot='P5', + io='triton', +) + +Mod('V1', + 'frappy_psi.triton.Valve', + 'valve V1', + slot='V1', + io='triton', +) + +Mod('V2', + 'frappy_psi.triton.Valve', + 'valve V2', + slot='V2', + io='triton', +) + +Mod('V4', + 'frappy_psi.triton.Valve', + 'valve V4', + slot='V4', + io='triton', +) + +Mod('V5', + 'frappy_psi.triton.Valve', + 'valve V5', + slot='V5', + io='triton', +) + +Mod('V9', + 'frappy_psi.triton.Valve', + 'valve V9', + slot='V9', + io='triton', +) + +Mod('fp', + 'frappy_psi.triton.Pump', + 'still fore pump', + slot='FP', + io='triton', +) + +Mod('compressor', + 'frappy_psi.triton.Pump', + 'compressor', + slot='COMP', + io='triton', +) + +Mod('triton', + 'frappy_psi.mercury.IO', + 'connection to triton software', + uri='tcp://flamedil:33576', + timeout=9.0, +) diff --git a/cfg/stick/heliox.cfg b/cfg/stick/heliox.cfg deleted file mode 100644 index 724167b..0000000 --- a/cfg/stick/heliox.cfg +++ /dev/null @@ -1,38 +0,0 @@ -[NODE] -description = heliox insert -id = heliox.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick sea connection for heliox.stick -config = heliox.stick -service = stick - -[ts] -class = secop_psi.sea.SeaDrivable -io = sea_stick -sea_object = ts - -[T_sorb] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = th -rel_paths = sorb - -[T_plate] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = th -rel_paths = plate - -[T_low] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = th -rel_paths = low - -[T_pot] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = th -rel_paths = pot diff --git a/cfg/stick/heliox_cfg.py b/cfg/stick/heliox_cfg.py new file mode 100644 index 0000000..7015db7 --- /dev/null +++ b/cfg/stick/heliox_cfg.py @@ -0,0 +1,44 @@ +Node('heliox.stick.sea.psi.ch', + 'heliox insert', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick sea connection for heliox.stick', + config='heliox.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaDrivable', + io='sea_stick', + sea_object='ts', +) + +Mod('T_sorb', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='th', + rel_paths=['sorb'], +) + +Mod('T_plate', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='th', + rel_paths=['plate'], +) + +Mod('T_low', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='th', + rel_paths=['low'], +) + +Mod('T_pot', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='th', + rel_paths=['pot'], +) diff --git a/cfg/stick/ill1stick.cfg b/cfg/stick/ill1stick.cfg deleted file mode 100644 index ad589aa..0000000 --- a/cfg/stick/ill1stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = ILL1 standard sample stick -id = ill1.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ill1.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ill1.config.json -rel_paths = ts - diff --git a/cfg/stick/ill1stick_cfg.py b/cfg/stick/ill1stick_cfg.py new file mode 100644 index 0000000..5dbd31c --- /dev/null +++ b/cfg/stick/ill1stick_cfg.py @@ -0,0 +1,18 @@ +Node('ill1.stick.sea.psi.ch', + 'ILL1 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ill1.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill1.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ill4stick.cfg b/cfg/stick/ill4stick.cfg deleted file mode 100644 index 0ec7a34..0000000 --- a/cfg/stick/ill4stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = ILL4 standard sample stick -id = ill4.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ill4.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ill4.config.json -rel_paths = ts - diff --git a/cfg/stick/ill4stick_cfg.py b/cfg/stick/ill4stick_cfg.py new file mode 100644 index 0000000..0b60f5f --- /dev/null +++ b/cfg/stick/ill4stick_cfg.py @@ -0,0 +1,18 @@ +Node('ill4.stick.sea.psi.ch', + 'ILL4 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ill4.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill4.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ill5p.cfg b/cfg/stick/ill5p.cfg deleted file mode 100644 index 12f04ee..0000000 --- a/cfg/stick/ill5p.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = ILL5 sample stick for pressure cells -id = ill5p.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick SEA connection to ill5p.stick -config = ill5p.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ill5.config.json -rel_paths = ts diff --git a/cfg/stick/ill5p_cfg.py b/cfg/stick/ill5p_cfg.py new file mode 100644 index 0000000..abd3a3d --- /dev/null +++ b/cfg/stick/ill5p_cfg.py @@ -0,0 +1,18 @@ +Node('ill5p.stick.sea.psi.ch', + 'ILL5 sample stick for pressure cells', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick SEA connection to ill5p.stick', + config='ill5p.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill5.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ill5stick.cfg b/cfg/stick/ill5stick.cfg deleted file mode 100644 index 0b26ed9..0000000 --- a/cfg/stick/ill5stick.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = ILL5 standard sample stick -id = ill5.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick SEA connection to ill5.stick -config = ill5.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ill5.config.json -rel_paths = ts diff --git a/cfg/stick/ill5stick_cfg.py b/cfg/stick/ill5stick_cfg.py new file mode 100644 index 0000000..267807a --- /dev/null +++ b/cfg/stick/ill5stick_cfg.py @@ -0,0 +1,18 @@ +Node('ill5.stick.sea.psi.ch', + 'ILL5 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick SEA connection to ill5.stick', + config='ill5.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ill5.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ma02stick.cfg b/cfg/stick/ma02stick.cfg deleted file mode 100644 index b3dd44f..0000000 --- a/cfg/stick/ma02stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = MAO2 standard sample stick -id = ma02.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ma02.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ma02.config.json -rel_paths = ts - diff --git a/cfg/stick/ma02stick_cfg.py b/cfg/stick/ma02stick_cfg.py new file mode 100644 index 0000000..e922d23 --- /dev/null +++ b/cfg/stick/ma02stick_cfg.py @@ -0,0 +1,18 @@ +Node('ma02.stick.sea.psi.ch', + 'MAO2 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ma02.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ma02.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ma10stick.cfg b/cfg/stick/ma10stick.cfg deleted file mode 100644 index 0fa393e..0000000 --- a/cfg/stick/ma10stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = MA10 standard sample stick -id = ma10.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ma10.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ma10.config.json -rel_paths = ts - diff --git a/cfg/stick/ma10stick_cfg.py b/cfg/stick/ma10stick_cfg.py new file mode 100644 index 0000000..7a8c578 --- /dev/null +++ b/cfg/stick/ma10stick_cfg.py @@ -0,0 +1,18 @@ +Node('ma10.stick.sea.psi.ch', + 'MA10 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ma10.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ma10.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ma11stick.cfg b/cfg/stick/ma11stick.cfg deleted file mode 100644 index a162ad1..0000000 --- a/cfg/stick/ma11stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = MA11 standard sample stick -id = ma11.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ma11.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ma11.config.json -rel_paths = ts - diff --git a/cfg/stick/ma11stick_cfg.py b/cfg/stick/ma11stick_cfg.py new file mode 100644 index 0000000..a48e81c --- /dev/null +++ b/cfg/stick/ma11stick_cfg.py @@ -0,0 +1,18 @@ +Node('ma11.stick.sea.psi.ch', + 'MA11 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ma11.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ma11.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ma6stick.cfg b/cfg/stick/ma6stick.cfg deleted file mode 100644 index ca28f2f..0000000 --- a/cfg/stick/ma6stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = MA6 standard sample stick -id = ma6.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ma6.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ma6.config.json -rel_paths = ts - diff --git a/cfg/stick/ma6stick_cfg.py b/cfg/stick/ma6stick_cfg.py new file mode 100644 index 0000000..67a87bf --- /dev/null +++ b/cfg/stick/ma6stick_cfg.py @@ -0,0 +1,18 @@ +Node('ma6.stick.sea.psi.ch', + 'MA6 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ma6.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ma6.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ma7stick.cfg b/cfg/stick/ma7stick.cfg deleted file mode 100644 index b6e606e..0000000 --- a/cfg/stick/ma7stick.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[NODE] -description = MA7 standard sample stick -id = ma7.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA stick connection -config = ma7.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ma7.config.json -rel_paths = ts - diff --git a/cfg/stick/ma7stick_cfg.py b/cfg/stick/ma7stick_cfg.py new file mode 100644 index 0000000..6965b60 --- /dev/null +++ b/cfg/stick/ma7stick_cfg.py @@ -0,0 +1,18 @@ +Node('ma7.stick.sea.psi.ch', + 'MA7 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='ma7.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ma7.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/mb11stick.cfg b/cfg/stick/mb11stick.cfg deleted file mode 100644 index e435253..0000000 --- a/cfg/stick/mb11stick.cfg +++ /dev/null @@ -1,44 +0,0 @@ -# DO NOT USE -# use 'mb11std' instead of 'mb11', 'mb11stick' -# as the communication proxy for itc does not work yet - -[NODE] -description = MB11 standard sample stick (do not use) -id = mb11.stick.sea.psi.ch - -[INTERFACE] -uri = tcp://5000 - -#[itc] -#class = secop.proxy.Proxy -#remote_class = secop_psi.mercury.IO -#description = connection to MB11 mercury -#module = itc1 -#uri = mb11-ts:3001 -#timeout = 5 - -#[t3] -#class = secop_psi.softcal.Sensor -#rawsensor = r2 -##calib USstick -#calib = /home/l_samenv/sea/tcl/calcurves/X163059.340 -##calib dilatometer stick -#calib = /home/l_samenv/sea/tcl/calcurves/X86023.340 -## unknown -#calib = /home/l_samenv/sea/tcl/calcurves/X70197.340 -#svalue.unit = K - -#[ts] -#class = secop.proxy.Proxy -#remote_class = secop_psi.mercury.TemperatureLoop -#description = sample temperature -#module = T_sample -#io = itc1 - -#[htr_ts] -#class = secop.proxy.Proxy -#remote_class = secop_psi.mercury.HeaterOutput -#description = sample stick heater power -#module = htr_sample -#io = itc1 - diff --git a/cfg/stick/mb11stick_cfg.py b/cfg/stick/mb11stick_cfg.py new file mode 100644 index 0000000..06dc82e --- /dev/null +++ b/cfg/stick/mb11stick_cfg.py @@ -0,0 +1,4 @@ +Node('mb11.stick.sea.psi.ch', + 'MB11 standard sample stick (do not use)', + interface='tcp://5000', +) diff --git a/cfg/stick/nostick.cfg b/cfg/stick/nostick.cfg deleted file mode 100644 index 9540947..0000000 --- a/cfg/stick/nostick.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[NODE] -description = cryostat or cryomagnet without stick -id = none.stick.sea.psi.ch - -[seaconn] -class = secop_psi.sea.SeaClient -description = SEA connection to none stick -config = none.stick -export = False -service = stick diff --git a/cfg/stick/nostick_cfg.py b/cfg/stick/nostick_cfg.py new file mode 100644 index 0000000..63c78e4 --- /dev/null +++ b/cfg/stick/nostick_cfg.py @@ -0,0 +1,11 @@ +Node('none.stick.sea.psi.ch', + 'cryostat or cryomagnet without stick', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'SEA connection to none stick', + config='none.stick', + export=False, + service='stick', +) diff --git a/cfg/stick/ori3stick.cfg b/cfg/stick/ori3stick.cfg deleted file mode 100644 index d1ee3f6..0000000 --- a/cfg/stick/ori3stick.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = ORI3 standard sample stick -id = ori3.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick SEA connection to ori3.stick -config = ori3.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ori3.config.json -rel_paths = ts diff --git a/cfg/stick/ori3stick_cfg.py b/cfg/stick/ori3stick_cfg.py new file mode 100644 index 0000000..f5901ed --- /dev/null +++ b/cfg/stick/ori3stick_cfg.py @@ -0,0 +1,18 @@ +Node('ori3.stick.sea.psi.ch', + 'ORI3 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick SEA connection to ori3.stick', + config='ori3.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ori3.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ori4stick.cfg b/cfg/stick/ori4stick.cfg deleted file mode 100644 index f1fdb9c..0000000 --- a/cfg/stick/ori4stick.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = ORI4 standard sample stick -id = ori4.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA connection to ori4 stick -config = ori4.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ori4.config.json -rel_paths = ts diff --git a/cfg/stick/ori4stick_cfg.py b/cfg/stick/ori4stick_cfg.py new file mode 100644 index 0000000..535f95f --- /dev/null +++ b/cfg/stick/ori4stick_cfg.py @@ -0,0 +1,18 @@ +Node('ori4.stick.sea.psi.ch', + 'ORI4 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA connection to ori4 stick', + config='ori4.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ori4.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/ori6stick.cfg b/cfg/stick/ori6stick.cfg deleted file mode 100644 index 3d06e28..0000000 --- a/cfg/stick/ori6stick.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[NODE] -description = ORI6 standard sample stick -id = ori6.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = stick SEA connection to ori6.stick -config = ori6.stick -service = stick - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ori6.config.json -rel_paths = ts diff --git a/cfg/stick/ori6stick_cfg.py b/cfg/stick/ori6stick_cfg.py new file mode 100644 index 0000000..923b893 --- /dev/null +++ b/cfg/stick/ori6stick_cfg.py @@ -0,0 +1,18 @@ +Node('ori6.stick.sea.psi.ch', + 'ORI6 standard sample stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick SEA connection to ori6.stick', + config='ori6.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ori6.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/sch5.cfg b/cfg/stick/sch5.cfg deleted file mode 100644 index d57ae97..0000000 --- a/cfg/stick/sch5.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[NODE] -description = sample changer for 100 mm orange cryo (5 samples, HRPT) -id = sch5.stick.sea.psi.ch - -[sea_stick] -class = secop_psi.sea.SeaClient -description = SEA connection to sch5 -config = sch5.stick -service = stick - -[warmup] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = warmup - -[ts] -class = secop_psi.sea.SeaReadable -io = sea_stick -sea_object = tt -json_file = ori4.config.json -rel_paths = ts - diff --git a/cfg/stick/sch5_cfg.py b/cfg/stick/sch5_cfg.py new file mode 100644 index 0000000..cca4d5e --- /dev/null +++ b/cfg/stick/sch5_cfg.py @@ -0,0 +1,24 @@ +Node('sch5.stick.sea.psi.ch', + 'sample changer for 100 mm orange cryo (5 samples, HRPT)', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA connection to sch5', + config='sch5.stick', + service='stick', +) + +Mod('warmup', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='warmup', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', + io='sea_stick', + sea_object='tt', + json_file=['ori4.config.json'], + rel_paths=['ts'], +) diff --git a/cfg/stick/uniax.cfg b/cfg/stick/uniax.cfg deleted file mode 100644 index ea597c5..0000000 --- a/cfg/stick/uniax.cfg +++ /dev/null @@ -1,9 +0,0 @@ -[NODE] -id = uniax stick -class = protocol.router.Router -description = router forwarding to linse-uniax apu -node = linse-uniax:5000 - -#[INTERFACE] -#uri=tcp://5002 - diff --git a/cfg/stressihtf2.cfg b/cfg/stressihtf2.cfg deleted file mode 100644 index 7cc14a2..0000000 --- a/cfg/stressihtf2.cfg +++ /dev/null @@ -1,83 +0,0 @@ -[node stressihtf2] -description = Stressihtf2 box of MLZ Sample environment group - . - Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water. - -meaning={'T_regulation':{'T':100}, 'T_sample':{'T_sample':100}} - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10767 - -[module T] -class=secop_mlz.entangle.TemperatureController -tangodevice=tango://localhost:10000/box/eurotherm/ctrl -.description=Main temperature control node of Stressihtf2. -value.unit='degC' -target.datatype=["double", 0, 2000] -ramp.datatype=["double",0,9999] -ramp.description=target ramping speed in K/min. -ramp.default=60 -ramp.unit=K/min -abslimits.datatype=["tuple",[["double"],["double"]]] -abslimits.default=[0,2000] -abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K). -abslimits.unit='degC' -abslimits.readonly=True -userlimits.datatype=["tuple",[["double"],["double"]]] -userlimits.default=[0,300] -userlimits.description=current user set limits for the setpoint. must be inside abslimits. -userlimits.unit='degC' -heateroutput.datatype=["double",0,100] -heateroutput.description=output to the heater -heateroutput.unit='%%' -heateroutput.default=0 -setpoint.default=0 -p.default=1 -i.default=0 -d.default=0 -pid.default=[1,0,0] -speed.default=0 - -[module T_sample_a] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/eurotherm/sensora -.description=Regulation temperature sensor. -.visibility=user -value.unit='degC' - -[module T_sample_b] -class=secop_mlz.entangle.Sensor -tangodevice=tango://localhost:10000/box/eurotherm/sensorb -.description=(optional) Sample temperature sensor. -.visibility=expert -value.unit='degC' - -[module N2] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_gas1 -.description=Switches the N2 gas inlet on or off. -.visibility=expert -mapping=dict(off=0,on=1) - -[module He] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_gas2 -.description=Switches the He gas inlet on or off. -.visibility=expert -mapping=dict(off=0,on=1) - -[module lamps] -class=secop_mlz.entangle.NamedDigitalOutput -tangodevice=tango://localhost:10000/box/plc/_onoff -.description=Switches the heating lamps on or off. -.visibility=expert -mapping=dict(off=0,on=1) - -[module water_ok] -class=secop_mlz.entangle.NamedDigitalInput -tangodevice=tango://localhost:10000/box/plc/_waterok -.description=Readout of the cooling water state. -.visibility=expert -mapping=dict(failed=0,ok=1) diff --git a/cfg/stressihtf2_cfg.py b/cfg/stressihtf2_cfg.py new file mode 100644 index 0000000..b4bd7d4 --- /dev/null +++ b/cfg/stressihtf2_cfg.py @@ -0,0 +1,96 @@ +Node('stressihtf2', + 'Stressihtf2 box of MLZ Sample environment group\n' + '\n' + 'Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.', + 'localhost:10767', + meaning={'T_regulation':{'T':100}, 'T_sample':{'T_sample':100}}, +) + + +Mod('T', + 'frappy_mlz.entangle.TemperatureController', + 'Main temperature control node of Stressihtf2.', + tangodevice='tango://localhost:10000/box/eurotherm/ctrl', + value = Param(unit='degC'), + target = Param(datatype=["double", 0, 2000]), + ramp = Param( + default=60, + datatype=["double",0,9999], + unit='K/min', + description='target ramping speed in K/min.', + ), + abslimits = Param( + default=[0,2000], + datatype=["tuple",[["double"],["double"]]], + unit='degC', + description='currently active absolute limits for the setpoint.\ + depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).', + readonly=True, + ), + userlimits = Param( + default=[0,300], + datatype=["tuple",[["double"],["double"]]], + unit='degC', + description='current user set limits for the setpoint. must be inside abslimits.', + ), + heateroutput = Param( + default=0, + datatype=["double",0,100], + unit='%%', + description='output to the heater', + ), + setpoint = 0, + p = 1, + i = 0, + d = 0, + pid = [1,0,0], + speed = 0, +) + +Mod('T_sample_a', + 'frappy_mlz.entangle.Sensor', + 'Regulation temperature sensor.', + tangodevice='tango://localhost:10000/box/eurotherm/sensora', + value = Param(unit='degC'), + visibility='user', +) + +Mod('T_sample_b', + 'frappy_mlz.entangle.Sensor', + '(optional) Sample temperature sensor.', + tangodevice='tango://localhost:10000/box/eurotherm/sensorb', + value = Param(unit='degC'), + visibility='expert', +) + +Mod('N2', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'Switches the N2 gas inlet on or off.', + tangodevice='tango://localhost:10000/box/plc/_gas1', + mapping={'off':0,'on':1}, + visibility='expert', +) + +Mod('He', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'Switches the He gas inlet on or off.', + tangodevice='tango://localhost:10000/box/plc/_gas2', + mapping={'off':0,'on':1}, + visibility='expert', +) + +Mod('lamps', + 'frappy_mlz.entangle.NamedDigitalOutput', + 'Switches the heating lamps on or off.', + tangodevice='tango://localhost:10000/box/plc/_onoff', + mapping={'off':0,'on':1}, + visibility='expert', +) + +Mod('water_ok', + 'frappy_mlz.entangle.NamedDigitalInput', + 'Readout of the cooling water state.', + tangodevice='tango://localhost:10000/box/plc/_waterok', + mapping={'failed':0,'ok':1}, + visibility='expert', +) diff --git a/cfg/test.cfg b/cfg/test.cfg deleted file mode 100644 index 4267c69..0000000 --- a/cfg/test.cfg +++ /dev/null @@ -1,46 +0,0 @@ -[node test config] -description=description of the testing sec-node - . - Here should be the long description. - It can be very long. - . - a single . on a line gets stripped so you can make paragraphs. - . - These texts are supposed to be possibly very long. - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10768 - - -[module LN2] -class=secop_demo.test.LN2 -.description="random value between 0..100%%" -value.unit = "%%" - -[module heater] -class=secop_demo.test.Heater -maxheaterpower=10 -.description="some heater" - -[module T1] -class=secop_demo.test.Temp -sensor="X34598T7" -.description="some temperature" - -[module T2] -class=secop_demo.modules.CoilTemp -sensor="X34598T8" -.description="some temperature" - -[module T3] -class=secop_demo.modules.CoilTemp -sensor="X34598T9" -.description="some temperature" - - -[module Lower] -class=secop_demo.test.Lower -.description="something else" - diff --git a/cfg/test_cfg.py b/cfg/test_cfg.py new file mode 100644 index 0000000..ecc249b --- /dev/null +++ b/cfg/test_cfg.py @@ -0,0 +1,53 @@ +Node('test.config.frappy.demo', + '''short description of the testing sec-node + +This description for the Nodecan be as long as you need if you use a multiline string. + +Very long! +The needed fields are Equipment id (1st argument), description (this) + and the main interface of the node (3rd arg) +''', + 'tcp://10768', +) + +Mod('LN2', + 'frappy_demo.test.LN2', + 'random value between 0..100%', + value = Param(default = 0, unit = '%'), +) + +Mod('heater', + 'frappy_demo.test.Heater', + 'some heater', + maxheaterpower = 10, +) + +Mod('T1', + 'frappy_demo.test.Temp', + 'some temperature', + sensor = 'X34598T7', +) + +Mod('T2', + 'frappy_demo.test.Temp', + 'some temperature', + sensor = 'X34598T8', +) + +Mod('T3', + 'frappy_demo.test.Temp', + 'some temperature', + sensor = 'X34598T9', +) + +Mod('Lower', + 'frappy_demo.test.Lower', + 'something else', +) + +Mod('Decision', + 'frappy_demo.test.Mapped', + 'Random value from configured property choices. Config accepts anything ' \ + 'that can be converted to a list', + choices = ['Yes', 'Maybe', 'No'], +) diff --git a/cfg/test_cryocombi.cfg b/cfg/test_cryocombi.cfg deleted file mode 100644 index 3983547..0000000 --- a/cfg/test_cryocombi.cfg +++ /dev/null @@ -1,55 +0,0 @@ -[node cryo_7] -# set SEC-node properties -description = short description - . - This is a very long description providing all the glory details in all the glory details about the stuff we are describing - - -[remotenode x] -connectto=localhost -port=5000 - -[interface tcp] -type=tcp -bindto=0.0.0.0 -bindport=10769 - - -[module cryo] -# some (non-defaut) module properties -.group=very important/stuff -.description=A simulated cc cryostat with heat-load, specific heat for the sample - and a temperature dependend heat-link between sample and regulation. - -# class of module: -class=secop_demo.cryo.Cryostat - -# some parameters -jitter=0.1 -T_start=10.0 -target=10.0 -looptime=1 -ramp=6 -maxpower=20.0 -heater=4.1 -p=40 -i=10 -d=2 -mode=pid -tolerance=0.1 -window=30 -timeout=900 - -# some (non-default) parameter properties -pollinterval.export=False - -# some parameter grouping -p.group=pid -i.group=pid -d.group=pid - -value.unit=K - -# test custom properties -value.test=customized value - diff --git a/cfg/test_ppms_mf.cfg b/cfg/test_ppms_mf.cfg deleted file mode 100644 index 88b2749..0000000 --- a/cfg/test_ppms_mf.cfg +++ /dev/null @@ -1,73 +0,0 @@ -[node PPMS.psi.ch] -description = PPMS at PSI - -[interface tcp] -type = tcp -bindto = 0.0.0.0 -bindport = 5000 - -#[module tt] -#class = secop_psi.ppms.Temp -#.description = main temperature -#io = ppms - -[module mf] -class = secop_psi.ppms.Field -.description = magnetic field -io = ppms - -#[module pos] -#class = secop_psi.ppms.Position -#.description = sample rotator -#io = ppms - -#[module lev] -#class = secop_psi.ppms.Level -#.description = helium level -#io = ppms - -#[module chamber] -#class = secop_psi.ppms.Chamber -#.description = chamber state -#io = ppms - -#[module r1] -#class = secop_psi.ppms.BridgeChannel -#.description = resistivity channel 1 -#no = 1 -#value.unit = Ohm -#io = ppms - -#[module i1] -#class = secop_psi.ppms.Channel -#.description = current channel 1 -#no = 1 -#value.unit = uA -#io = ppms - -#[module v1] -#class = secop_psi.ppms.DriverChannel -#.description = voltage channel 1 -#no = 1 -#value.unit = V -#io = ppms - -#[module tv] -#class = secop_psi.ppms.UserChannel -#.description = VTI temperature -#enabled = 1 -#value.unit = K -#io = ppms - -#[module ts] -#class = secop_psi.ppms.UserChannel -#.description = sample temperature -#enabled = 1 -#value.unit = K -#io = ppms - -[module ppms] -class = secop_psi.ppms.Main -.description = the main and poller module -class_id = QD.MULTIVU.PPMS.1 -pollinterval = 2 \ No newline at end of file diff --git a/cfg/test_ppms_mf_cfg.py b/cfg/test_ppms_mf_cfg.py new file mode 100644 index 0000000..cdf06f4 --- /dev/null +++ b/cfg/test_ppms_mf_cfg.py @@ -0,0 +1,17 @@ +Node('PPMS.psi.ch', + 'PPMS at PSI', + interface='tcp://5000', +) + +Mod('mf', + 'frappy_psi.ppms.Field', + description='magnetic field', + io='ppms', +) + +Mod('ppms', + 'frappy_psi.ppms.Main', + description='the main and poller module', + class_id='QD.MULTIVU.PPMS.1', + pollinterval=2.0, +) diff --git a/cfg/testcmd.cfg b/cfg/testcmd.cfg deleted file mode 100644 index 8465a1c..0000000 --- a/cfg/testcmd.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[m] -class = secop_psi.testcmd.TestCmd -description = 'module for testing commands' diff --git a/cfg/testcmd_cfg.py b/cfg/testcmd_cfg.py new file mode 100644 index 0000000..b020605 --- /dev/null +++ b/cfg/testcmd_cfg.py @@ -0,0 +1,4 @@ +Mod('m', + 'frappy_psi.testcmd.TestCmd', + 'module for testing commands', +) diff --git a/cfg/trinamic.cfg b/cfg/trinamic.cfg deleted file mode 100644 index c33dd2f..0000000 --- a/cfg/trinamic.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[NODE] -id = trinamic_test.psi.ch -description = trinamic motor test - -[INTERFACE] -uri = tcp://5000 - -[drv_io] -description = -class = secop.core.BytesIO -uri = serial:///dev/tty.usbserial?baudrate=57600 -# uri = serial:///dev/ttyUSB0?baudrate=9600 - -[drv] -description = trinamic motor test -class = secop_psi.trinamic.Motor -io = drv_io -standby_current=0.1 -maxcurrent=1.4 -acceleration=150. -move_limit=360 -speed=40 -encoder_tolerance=3.6 -free_wheeling=0.1 -power_down_delay=0.1 diff --git a/cfg/trinamic_cfg.py b/cfg/trinamic_cfg.py new file mode 100644 index 0000000..2a17972 --- /dev/null +++ b/cfg/trinamic_cfg.py @@ -0,0 +1,24 @@ +Node('trinamic_test.psi.ch', + 'trinamic motor test', + interface='tcp://5000', +) + +Mod('drv_io', + 'frappy.core.BytesIO', + '', + uri='serial:///dev/tty.usbserial?baudrate=57600', +) + +Mod('drv', + 'frappy_psi.trinamic.Motor', + 'trinamic motor test', + io='drv_io', + standby_current=0.1, + maxcurrent=1.4, + acceleration=150.0, + move_limit=360.0, + speed=40.0, + encoder_tolerance=3.6, + free_wheeling=0.1, + power_down_delay=0.1, +) diff --git a/cfg/uniax.cfg b/cfg/uniax.cfg deleted file mode 100644 index 1d8d755..0000000 --- a/cfg/uniax.cfg +++ /dev/null @@ -1,60 +0,0 @@ -[NODE] -id = uniax.psi.ch -description = uniax pressure stick with motor and transducer - -[INTERFACE] -uri = tcp://5000 - -[force] -description = force control -class = secop_psi.uniax.Uniax -motor = drv -transducer = transducer -force_offset = 15 - -#[drv_io] -#description = -#class = secop.core.BytesIO -# uri = serial:///dev/ttyUSB1?baudrate=57600 -# uri = tcp://192.168.127.254:3002 - -[drv] -description = trinamic motor test -class = secop_psi.trinamic.Motor -# io = drv_io -uri = tcp://192.168.127.254:3002 -standby_current=0.1 -maxcurrent=0.3 -acceleration=150. -move_limit=5 -safe_current=0.3 -speed=40 -encoder_tolerance=3.6 -free_wheeling=0.1 -power_down_delay=0.1 - -[transducer] -description = DPM driver to read out the transducer value, write and read the offset and scale factor -class = secop_psi.dpm.DPM3 -#uri = serial:///dev/ttyUSB0?baudrate=9600 -uri = tcp://192.168.127.254:3001 -digits = 2 -scale_factor = 0.0156 -offset = 15 - -[res_io] -description = io to lakeshore -class = secop_psi.ls340res.LscIO -uri = tcp://192.168.127.254:3003 - -[res] -description = temperature on uniax stick -class = secop_psi.ls340res.ResChannel -io = res_io -channel = A - -[T] -class = secop_psi.softcal.Sensor -rawsensor = res -calib = X132254 -value.unit = K diff --git a/cfg/uniax_cfg.py b/cfg/uniax_cfg.py new file mode 100644 index 0000000..0b2a2a4 --- /dev/null +++ b/cfg/uniax_cfg.py @@ -0,0 +1,58 @@ +Node('uniax.psi.ch', + 'uniax pressure stick with motor and transducer', + interface='tcp://5000', +) + +Mod('force', + 'frappy_psi.uniax.Uniax', + 'force control', + motor='drv', + transducer='transducer', + force_offset=15.0, +) + +Mod('drv', + 'frappy_psi.trinamic.Motor', + 'trinamic motor test', + uri='tcp://192.168.127.254:3002', + standby_current=0.1, + maxcurrent=0.3, + acceleration=150.0, + move_limit=5.0, + safe_current=0.3, + speed=40.0, + encoder_tolerance=3.6, + free_wheeling=0.1, + power_down_delay=0.1, +) + +Mod('transducer', + 'frappy_psi.dpm.DPM3', + 'DPM driver to read out the transducer value, write and read the offset and scale factor', + uri='tcp://192.168.127.254:3001', + digits=2, + scale_factor=0.0156, + offset=15.0, +) + +Mod('res_io', + 'frappy_psi.ls340res.LscIO', + 'io to lakeshore', + uri='tcp://192.168.127.254:3003', +) + +Mod('res', + 'frappy_psi.ls340res.ResChannel', + 'temperature on uniax stick', + io='res_io', + channel='A', +) + +Mod('T', + 'frappy_psi.softcal.Sensor', + rawsensor='res', + calib='X132254', + value=Param( + unit='K', + ), +) diff --git a/cfg/varioxb.cfg b/cfg/varioxb.cfg deleted file mode 100644 index 77a99a3..0000000 --- a/cfg/varioxb.cfg +++ /dev/null @@ -1,60 +0,0 @@ -[node varioxB_vb.psi.ch] -description = varioxB over SEA - -[interface tcp] -type = tcp -bindport = 10767 - -[module seaconn] -class = secop_psi.sea.SeaClient -description = a SEA connection -uri = tcp://samenv.psi.ch:8646 - -[module tvs] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tvs.varioxB.config -remote_paths = . - -[module tvd] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tvd.varioxB.config -remote_paths = . - -[module pstat] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = pstat.varioxB.config -remote_paths = . - -[module pdyn] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = pdyn.varioxB.config -remote_paths = . - -[module tneck1] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tneck1.varioxB.config -remote_paths = . - -[module tneck2] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tneck2.varioxB.config -remote_paths = . - -[module tnvs] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tnvs.varioxB.config -remote_paths = . - -[module tnvd] -class = secop_psi.sea.SeaReadable -io = seaconn -json_descr = tnvd.varioxB.config -remote_paths = . - diff --git a/cfg/varioxb_cfg.py b/cfg/varioxb_cfg.py new file mode 100644 index 0000000..5a2b69f --- /dev/null +++ b/cfg/varioxb_cfg.py @@ -0,0 +1,73 @@ +# error creating tvs +# error creating tvd +# error creating pstat +# error creating pdyn +# error creating tneck1 +# error creating tneck2 +# error creating tnvs +# error creating tnvd +Node('varioxB_vb.psi.ch', + 'varioxB over SEA', + interface='tcp://10767', +) + +Mod('seaconn', + 'frappy_psi.sea.SeaClient', + 'a SEA connection', +) + +Mod('tvs', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tvs.varioxB.config', + remote_paths='.', +) + +Mod('tvd', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tvd.varioxB.config', + remote_paths='.', +) + +Mod('pstat', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='pstat.varioxB.config', + remote_paths='.', +) + +Mod('pdyn', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='pdyn.varioxB.config', + remote_paths='.', +) + +Mod('tneck1', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tneck1.varioxB.config', + remote_paths='.', +) + +Mod('tneck2', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tneck2.varioxB.config', + remote_paths='.', +) + +Mod('tnvs', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tnvs.varioxB.config', + remote_paths='.', +) + +Mod('tnvd', + 'frappy_psi.sea.SeaReadable', + io='seaconn', + json_descr='tnvd.varioxB.config', + remote_paths='.', +) diff --git a/ci/Dockerfile b/ci/Dockerfile index 26bd399..986d6c4 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3-buster AS base +FROM python:3.9 AS base ARG PYVER=python3 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ @@ -11,7 +11,7 @@ RUN apt-get update && \ locales \ python3 \ python3-dev \ - python3-pytango \ + python3-tango \ python3-venv python3-setuptools \ virtualenv @@ -33,14 +33,15 @@ RUN virtualenv /home/jenkins/tools2 && \ rm -rf /home/jenkins/tools2src RUN virtualenv -p /usr/bin/python3 --system-site-packages /home/jenkins/secopvenv && \ - git clone https://forge.frm2.tum.de/review/sine2020/secop/playground /home/jenkins/playground && \ + git clone https://forge.frm2.tum.de/review/secop/frappy /home/jenkins/frappy && \ . /home/jenkins/secopvenv/bin/activate && \ pip install -U pip wheel setuptools && \ - pip install -r /home/jenkins/playground/requirements-dev.txt -r /home/jenkins/playground/requirements.txt pylint pytest && \ - rm -rf /home/jenkins/playground + pip install -r /home/jenkins/frappy/requirements-dev.txt -r /home/jenkins/frappy/requirements.txt pylint pytest && \ + rm -rf /home/jenkins/frappy FROM base AS docs +ARG PYVER=python3 ENV DEBIAN_FRONTEND=noninteractive USER root @@ -50,6 +51,8 @@ RUN apt-get update && \ texlive-latex-base \ texlive-latex-recommended \ texlive-fonts-recommended \ + texlive-fonts-extra \ + tex-gyre \ texlive-base \ texlive-binaries \ latexmk diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 85dac19..06c4366 100644 --- a/ci/Jenkinsfile +++ b/ci/Jenkinsfile @@ -4,7 +4,7 @@ properties([ daysToKeepStr: '', numToKeepStr: '50')), parameters([ - string(defaultValue: 'sine2020/secop/playground', + string(defaultValue: 'secop/frappy', description: '', name: 'GERRIT_PROJECT'), string(defaultValue: 'master', description: '', name: 'GERRIT_BRANCH'), @@ -13,11 +13,6 @@ properties([ choice(choices: '''\ patchset-created ref-updated -change-merged''', - description: '', name: 'GERRIT_EVENT'), - choice(choices: '''\ -patchset-created -ref-updated change-merged''', description: '', name: 'GERRIT_EVENT_TYPE')]) ]) @@ -30,8 +25,6 @@ def changedFiles = ''; def run_pylint(pyver) { stage ('pylint-' + pyver) { - def cpylint = "RUNNING" - gerritPostCheck(["jenkins:pylint_${pyver}": cpylint]) def status = 'OK' changedFiles = sh returnStdout: true, script: '''\ #!/bin/bash @@ -45,14 +38,14 @@ git diff HEAD~1... --name-only --diff-filter=ARCM -- \\*.py pip install -r requirements-dev.txt pip install -r requirements.txt pip install isort pylint -python3 setup.py develop +pip install -e . export PYTHONIOENCODING=utf8 echo "$changedFiles" if [[ -n "$changedFiles" ]]; then set -o pipefail pylint $changedFiles | tee pylint_results.txt - isort -df $changedFiles | tee isort_results.txt + isort --df $changedFiles || true | tee isort_results.txt fi """ withCredentials([string(credentialsId: 'GERRITHTTP', @@ -69,16 +62,11 @@ fi } // credentials echo "pylint result: $res" - this.verifyresult.put('pylint'+pyver, 1) - cpylint = "SUCCESSFUL" if ( res != 0 ) { currentBuild.result='FAILURE' - this.verifyresult.put('pylint'+ pyver, -1) status = 'FAILURE' - cpylint = "FAILED" } - gerritPostCheck(["jenkins:pylint_${pyver}": cpylint]) archiveArtifacts([allowEmptyArchive: true, artifacts: 'pylint-*.txt']) recordIssues([enabledForFailure: true, @@ -89,23 +77,17 @@ fi failedTotalAll: 1]) - if (status == 'FAILURE') { - throw new Exception('Failure in pylint with ' + pyver) - } } } // run_pylint def run_tests(pyver) { stage('Test:' + pyver) { - def cpytest = "RUNNING" - gerritPostCheck(["jenkins:pytest_${pyver}":"RUNNING"]) writeFile file: 'setup.cfg', text: ''' [tool:pytest] addopts = --junit-xml=pytest.xml --junit-prefix=''' + pyver def status = "OK" - verifyresult.put(pyver, 0) try { timeout(5) { sh '''\ @@ -113,37 +95,27 @@ addopts = --junit-xml=pytest.xml --junit-prefix=''' + pyver . /home/jenkins/secopvenv/bin/activate pip install -r requirements-dev.txt pip install -r requirements.txt -python3 setup.py develop +pip install -e . make test ''' - verifyresult.put(pyver, 1) - cpytest = "SUCCESSFUL" } } catch (all) { currentBuild.result = 'FAILURE' status = 'FAILURE' - cpytest= "FAILED" - verifyresult.put(pyver, -1) } - gerritPostCheck(["jenkins:pytest_${pyver}":cpytest]) step([$class: 'JUnitResultArchiver', allowEmptyResults: true, keepLongStdio: true, testResults: 'pytest.xml']) - if (status == 'FAILURE') { - throw new Exception('Failure in test with ' + pyver) - } } } def run_docs() { - def cdocs = "RUNNING" - gerritPostCheck(["jenkins:docs":cdocs]) stage('prepare') { sh ''' . /home/jenkins/secopvenv/bin/activate pip install -r requirements-dev.txt pip install -r requirements.txt - python3 setup.py develop + pip install -e . ''' } @@ -185,9 +157,7 @@ def run_docs() { stage('store html doc for build') { publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, reportDir: 'doc/_build/html', reportFiles: 'index.html', reportName: 'Built documentation', reportTitles: '']) - cdocs = "SUCCESSFUL" } - gerritPostCheck(["jenkins:docs":cdocs]) } @@ -219,16 +189,16 @@ node("dockerhost") { sh '''#!/bin/bash git worktree add tmpmaster origin/master cd tmpmaster - docker build --target base --tag secop_base:latest ci - docker build --target docs --tag secop_docs:latest ci + docker build --target base --tag frappy_base:latest ci + docker build --target docs --tag frappy_docs:latest ci cd .. rm -rf tmpmaster ''' } stage('execute tests') { - def img = docker.image('secop_base:latest') - def docimg = docker.image('secop_docs:latest') + def img = docker.image('frappy_base:latest') + def docimg = docker.image('frappy_docs:latest') parallel 'Test': { img.inside { @@ -246,9 +216,10 @@ node("dockerhost") { if (GERRIT_EVENT_TYPE == 'change-merged') { sh ''' - rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/secop + rsync -rlv doc/_build/* /ictrlsrv/share/public/doc/frappy ''' } - }} + }}, failFast: false } + setGerritReview() } diff --git a/ci/README b/ci/README index 0417805..5d7b9a9 100644 --- a/ci/README +++ b/ci/README @@ -10,10 +10,10 @@ The Dockerfile defines two images: To create the images: - docker build --target --tag secop_:latest . + docker build --target --tag frappy_:latest . To test images interactivly: - docker run -u jenkins -i -t secop /bin/bash + docker run -u jenkins -i -t frappy /bin/bash The Jenkinsfile uses this Dockerfile (only approved checked-in versions from master) to build the images (a rebuild will only happen if the Dockerfile is changed as docker diff --git a/debian/README b/debian/README index f925e08..7eb2daa 100644 --- a/debian/README +++ b/debian/README @@ -1,4 +1,4 @@ -The Debian Package secop-core +The Debian Package frappy-core ----------------------------- SECoP is currently under development. diff --git a/debian/changelog b/debian/changelog index a2d2e8c..ee3b4f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,408 @@ +frappy-core (0.17.10) focal; urgency=medium + + * Change leftover %-logging calls to lazy + * Convert formatting automatically to f-strings + * move unit into display label + * [WIP] gui: add specific input widgets + * Rebuild NodeWidget when the description changes + * Manually convert most remaining format statements + * make entangle mapping a dict + + -- Alexander Zaft Wed, 19 Apr 2023 14:32:52 +0200 + +frappy-core (0.17.9) focal; urgency=medium + + * interactive client: avoid messing up the input line + + -- Markus Zolliker Tue, 11 Apr 2023 16:09:03 +0200 + +frappy-core (0.17.8) focal; urgency=medium + + * Debian: Fix typo + + -- Jens Krüger Wed, 05 Apr 2023 07:20:25 +0200 + +frappy-core (0.17.7) focal; urgency=medium + + * Debian: add pyqtgraph dependency + + -- Jens Krüger Wed, 05 Apr 2023 07:07:24 +0200 + +frappy-core (0.17.6) focal; urgency=medium + + [ Alexander Zaft ] + * gui: show parameter properties again + * gui: full module description only in detailed mode + * gui: switch group button order, change text + * gui: add console history + * gui: logwindow improvements + * add copyright headers where missing + * add optional validation to ValueType + * cli: add argparse and inlcudes before repl + + [ Markus Zolliker ] + * improve error messages + + [ Jens Krüger ] + * Fix debian GUI package dependency + + -- Alexander Zaft Tue, 04 Apr 2023 08:42:26 +0200 + +frappy-core (0.17.5) focal; urgency=medium + + * Fix generator + + -- Alexander Zaft Wed, 22 Mar 2023 12:32:06 +0100 + +frappy-core (0.17.4) focal; urgency=medium + + * Fix entangle integration bugs + + -- Alexander Zaft Wed, 22 Mar 2023 11:44:34 +0100 + +frappy-core (0.17.3) focal; urgency=medium + + * UNRELEASED + + -- Alexander Zaft Tue, 21 Mar 2023 15:55:09 +0100 + +frappy-core (0.17.2) focal; urgency=medium + + [ Alexander Zaft ] + * Fix Simulation and Proxy + + [ Markus Zolliker ] + * cfg path quick fix for hands-on session + + [ Georg Brandl ] + * add pyqtgraph to gui dependencies + + [ Markus Zolliker ] + * allow super calls on read_/write_ methods + + [ Alexander Zaft ] + * Add greeter tab to UI + * Add recent SECNodes to Drop down menu + * Remove auto-connect to 10767 on startup + + [ Markus Zolliker ] + * do not reuse address on Windows + + [ Georg Brandl ] + * version.py: sync with other projects + + [ Alexander Zaft ] + * Fix forge link in README + + [ Markus Zolliker ] + * better guess for cfg file location + * fix ppms with proxy + * default settings on the IO class + * demo lakeshore with simulation + + [ Georg Brandl ] + * cfg editor: fixes + * installer: add config for frappy gui exe + + [ Markus Zolliker ] + * make doc should not fail when version is not available + + [ Alexander Zaft ] + * Add reconnect Action + + [ Georg Brandl ] + * readme: fix make call + * gui: add about dialog, remove "about Qt" menu entry + * gui: move QSECNode to separate module + * gui: isort + + [ Alexander Zaft ] + * Fix Node adding logic + * Remove unneeded constants + * Make input field more distinct + + [ Markus Zolliker ] + * AsynConn.uri: better handling for missing scheme + + [ Georg Brandl ] + * gui: remove unused ui file + * gui: better label for param set button + + [ Alexander Zaft ] + * Always make a greeter tab + + [ Markus Zolliker ] + * improve online help of frappy-cli + * refresh logging when reconnected while watching + + [ Alexander Zaft ] + * [Needs Feedback] Add PyQt6. Remove PyQt4 + * Merge resource files + * Extend Node and Module widgets + * Scroll Module area instead of replacing widgets + * Remove Modulectrl Widget + + [ Georg Brandl ] + * gui: better display of protocol version + * gui: cleanup code in modulewidget + * gui: always show scrollbar in nodewidget + + [ Alexander Zaft ] + * Short background Color animation on scroll + + [ Markus Zolliker ] + * treat returning None from write_ properly + + [ Alexander Zaft ] + * Fix doubled module info + + [ Georg Brandl ] + * Jenkinsfile: isort does not fail the build + * isort: add firstparty + + [ Alexander Zaft ] + * gui: make module details button checkable + * gui: Logo in greeter + + [ Enrico Faulhaber ] + * handle connection close more gracefully + + [ Markus Zolliker ] + * split BadValue into WrongType and RangeError + + [ Georg Brandl ] + * demo: fixup Switch class + + [ Alexander Zaft ] + * fix importing AsynCon without serial + + [ Markus Zolliker ] + * gui: support proper formatting of values + * central point for status codes + + [ Alexander Zaft ] + * fix README typo + * gui: terminate connection on tab close + * check configured names for spaces + + [ Markus Zolliker ] + * make return value 'Done' unneccessary + * enhanced parameter range checks + * simplify status type declaration + * improve frappy.errors + * remove UNKNOWN, UNSTABLE and DISABLED from Readable.status + * fix generalConfig defaults + + [ Alexander Zaft ] + * Add SECoP link to readme + * gui: more greeter interactions + + [ Markus Zolliker ] + * fix issues when closing tabs + * format unit properly in the case of nested arrays + + -- Alexander Zaft Tue, 21 Mar 2023 15:49:06 +0100 + +frappy-core (0.17.1) focal; urgency=medium + + [ Georg Brandl ] + * gitignore: ignore demo PID file + * config: demo config fixes + * cfg: repair demo cfg after conversion + * gui: make spacing more consistent + + [ Markus Zolliker ] + * fix links in doc/introduction + + [ Georg Brandl ] + * gui console: better formatting of input/output + * gui: as a stopgap measure, apply %g format to floats + * gui: clear tree selection by clicking into empty space + * gui: make plot windows children of the node, so they close automatically + + -- Georg Brandl Tue, 21 Feb 2023 17:44:56 +0100 + +frappy-core (0.17.0) focal; urgency=medium + + [ Alexander Zaft ] + * Rework GUI. + + [ Georg Brandl ] + * ci: remove duplicate variable + * doc: fix trailing comma in authors + + -- Alexander Zaft Tue, 21 Feb 2023 13:52:17 +0100 + +frappy-core (0.16.1) focal; urgency=medium + + * UNRELEASED + + -- Georg Brandl Tue, 21 Feb 2023 08:44:28 +0100 + +frappy-core (0.16.4) focal; urgency=medium + + * UNRELEASED + + -- Georg Brandl Tue, 21 Feb 2023 08:09:20 +0100 + +frappy-core (0.16.3) focal; urgency=medium + + * UNRELEASED + + -- Georg Brandl Tue, 21 Feb 2023 08:00:15 +0100 + +frappy-core (0.16.2) focal; urgency=medium + + * gui: move icon resources for the cfg editor to its subdirectory + + -- Georg Brandl Tue, 21 Feb 2023 07:50:13 +0100 + +frappy-core (0.16.1) focal; urgency=medium + + * add frappy-cli to package + + -- Enrico Faulhaber Mon, 20 Feb 2023 17:17:23 +0100 + +frappy-core (0.16.0) focal; urgency=medium + + [ Enrico Faulhaber ] + * fix sorce package name + + [ Markus Zolliker ] + * interactive client: fix detection of overriding modules + + [ Alexander Zaft ] + * Fix error Message for too large arrays + + [ Markus Zolliker ] + * redesign of the state machine + + [ Alexander Zaft ] + * Fix identification response + * GUI: add logging infra, switch to argparse + + [ Bjoern Pedersen ] + * Improve jenkinsfile + + [ Alexander Zaft ] + * Change config to Python + + [ Markus Zolliker ] + * improve He level tutorial + * client: detect original frappy error class + * rework datatypes (setter should not check limits) + + [ Alexander Zaft ] + * Bring demo up to date + * Revert limit change in demo + + [ Markus Zolliker ] + * improve parameter initialisation + * fix copy method of Attached + + [ Alexander Zaft ] + * Add .desktop file + + [ Markus Zolliker ] + * improve persistent parameters + * do not throw ZeroDivisonError when pollinterval is 0 + * HasStates: fix status code inheritance + * HasControlledBy and HasOutputModule mixins + * adapt tutorial to new config file format + * raise ProtcolError when specifier is missing + * interactive client: improve watch function + * add lakeshore demo for hands-on workshop + * T controller tutorial and improve documentation + * do proper value import on the client side + + [ Alexander Zaft ] + * Add initial README + * Change Readme title + * Convert example configs to python + + [ Markus Zolliker ] + * README: add link to doc on forge.frm2.tum.de + + -- Enrico Faulhaber Mon, 20 Feb 2023 16:15:10 +0100 + +frappy-core (0.15.0) focal; urgency=medium + + [ Björn Pedersen ] + * Remove iohandler left-overs from docs + + [ Georg Brandl ] + * Makefile: fix release target + + [ Alexander Zaft ] + * Add requirements-gui.txt and add PyQT5 + + [ Christian Felder ] + * Fix typo in .description + + [ Alexander Zaft ] + * fixed pylint warnings + * Rename from secop to frappy + * rename debian package files + + [ Björn Pedersen ] + * CI build: upgrade base image + + [ Alexander Zaft ] + * rename debian files + + [ Björn Pedersen ] + * Fix doc warnings/errors + + -- Björn Pedersen Thu, 10 Nov 2022 14:46:01 +0100 + +secop-core (0.14.3) focal; urgency=medium + + [ Enrico Faulhaber ] + * change repo to secop/frappy + + [ Georg Brandl ] + * secop_mlz/amagnet: formatting fixup + + [ Bjoern Pedersen ] + * Upgrade for ci + + [ Enrico Faulhaber ] + * MLZ/entangle: fix AnalogOutput.read_status() + + -- Enrico Faulhaber Thu, 03 Nov 2022 13:51:52 +0100 + +secop-core (0.14.2) focal; urgency=medium + + * systemd generator: adapt to changed config API + + -- Georg Brandl Thu, 20 Oct 2022 15:38:45 +0200 + +secop-core (0.14.1) focal; urgency=medium + + [ Markus Zolliker ] + * secop_psi.entangle.AnalogInput: fix main value + + [ Georg Brandl ] + * gui: clarify needed input for "add sec node" dialog + * mlz: avoid error on import due to consistency check + * Makefile: fix Jenkins host + + -- Markus Zolliker Thu, 20 Oct 2022 14:04:07 +0200 + +secop-core (0.14.0) focal; urgency=medium + + * add simple interactive python client + * fix undefined status in softcal + * improve HasConvergence mixin + * fix bug in persistent.py + * fix bug when restarting statemachine + * improve general config + * improvements on interactive client + * apply main unit also in structured types + * HasIO: automatic creation of io from uri fails + + -- Markus Zolliker Wed, 19 Oct 2022 11:31:50 +0200 + secop-core (0.13.1) focal; urgency=medium [ Markus Zolliker ] @@ -652,7 +1057,7 @@ secop-core (0.5.0) unstable; urgency=low * fix amagnet * add info about Meeting @PSI * fix typo and include comment from Niklas - * playground: give sequencermixin a loopcounter (per step) + * give sequencermixin a loopcounter (per step) [ Frank Wutzler ] * describe SECoP motivation discussed in meeting 2017-11-27 diff --git a/debian/control b/debian/control index 4c43421..939f0cd 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: secop-core +Source: frappy-core Section: contrib/misc Priority: optional Maintainer: Enrico Faulhaber @@ -23,7 +23,7 @@ Build-Depends: debhelper (>= 11~), Standards-Version: 4.1.4 X-Python3-Version: >= 3.6 -Package: secop-core +Package: frappy-core Architecture: all Depends: python3 (>= 3.6), ${misc:Depends}, @@ -35,60 +35,73 @@ Depends: python3 (>= 3.6), python3-mlzlog, markdown, python3-daemon +Replaces: secop-core (<= 0.14.3) +Breaks: secop-core (<= 0.14.3) Description: Frappy SECoP core system contains the core server and client libraries and the server binary as well as the systemd integration -#Package: secop-doc +#Package: frappy-doc #Architecture: all #Section: doc #Depends: ${sphinxdoc:Depends}, # ${misc:Depends} #Description: Frappy SECoP docu -# This is the documentation to all the secop-* packages +# This is the documentation to all the frappy-* packages -Package: secop-gui +Package: frappy-gui Architecture: all -Depends: secop-core, +Depends: frappy-core, ${misc:Depends}, ${python3:Depends}, - python3-pyqt (>=4) + python3-pyqtgraph (>=0.11.0), + python3-pyqt5 (>=5) +Replaces: secop-gui (<= 0.14.3) +Breaks: secop-gui (<= 0.14.3) Description: Frappy SECoP gui client + cfgtool contains the GUI client and the configurator -Package: secop-demo +Package: frappy-demo Architecture: all -Depends: secop-core, +Depends: frappy-core, ${misc:Depends}, ${python3:Depends} -Recommends: secop-gui +Replaces: secop-demo (<= 0.14.3) +Breaks: secop-demo (<= 0.14.3) +Recommends: frappy-gui Description: SECoP demo files for demonstration purposes -Package: secop-ess +Package: frappy-ess Architecture: all -Depends: secop-core, +Depends: frappy-core, ${misc:Depends}, ${python3:Depends} -Recommends: secop-gui +Replaces: secop-ess (<= 0.14.3) +Breaks: secop-ess (<= 0.14.3) +Recommends: frappy-gui Description: SECoP ess files Modules specific for ESS -Package: secop-mlz +Package: frappy-mlz Architecture: all -Depends: secop-core, +Depends: frappy-core, ${misc:Depends}, ${python3:Depends}, python3-tango (>=9) -Recommends: secop-gui +Replaces: secop-mlz (<= 0.14.3) +Breaks: secop-mlz (<= 0.14.3) +Recommends: frappy-gui Description: SECoP mlz files Modules specific for MLZ -Package: secop-psi +Package: frappy-psi Architecture: all -Depends: secop-core, +Depends: frappy-core, ${misc:Depends}, ${python3:Depends} -Recommends: secop-gui +Replaces: secop-psi (<= 0.14.3) +Breaks: secop-psi (<= 0.14.3) +Recommends: frappy-gui Description: SECoP psi files Modules specific for PSI diff --git a/debian/copyright b/debian/copyright index 8162ec1..bc0402d 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,15 +1,15 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: frappy -Source: http://forge.frm2.tum.de/cgit/cgit.cgi/frm2/sine2020/secop/playground.git +Source: http://forge.frm2.tum.de/cgit/cgit.cgi/secop/frappy.git Comment: FRAPPY is an implementation of the free SECoP protocol see https://www.github.com/SampleEnvironment/SECoP Files: * -Copyright: 2016-2019 by the FRAPPY-SECOP contributors (see AUTHORS) +Copyright: 2016-2022 by the FRAPPY-SECOP contributors (see AUTHORS) License: GPL-2 Files: debian/* -Copyright: 2015-2019 Enrico Faulhaber +Copyright: 2015-2022 Enrico Faulhaber License: GPL-2 License: GPL-2 diff --git a/debian/frappy-core.install b/debian/frappy-core.install new file mode 100644 index 0000000..bf4e5a0 --- /dev/null +++ b/debian/frappy-core.install @@ -0,0 +1,10 @@ +usr/bin/frappy-cli +usr/bin/frappy-server +usr/lib/python3.*/dist-packages/frappy/*.py +usr/lib/python3.*/dist-packages/frappy/lib +usr/lib/python3.*/dist-packages/frappy/client +usr/lib/python3.*/dist-packages/frappy/protocol +usr/lib/python3.*/dist-packages/frappy_core-* +usr/lib/python3.*/dist-packages/frappy/RELEASE-VERSION +lib/systemd +var/log/frappy diff --git a/debian/frappy-demo.install b/debian/frappy-demo.install new file mode 100644 index 0000000..ff4e7f1 --- /dev/null +++ b/debian/frappy-demo.install @@ -0,0 +1,2 @@ +usr/lib/python3.*/dist-packages/frappy_demo +usr/lib/python3.*/dist-packages/frappy/__pycache__ diff --git a/debian/frappy-ess.install b/debian/frappy-ess.install new file mode 100644 index 0000000..3691cf2 --- /dev/null +++ b/debian/frappy-ess.install @@ -0,0 +1 @@ +usr/lib/python3.*/dist-packages/frappy_ess diff --git a/debian/frappy-gui.install b/debian/frappy-gui.install new file mode 100644 index 0000000..c526f30 --- /dev/null +++ b/debian/frappy-gui.install @@ -0,0 +1,3 @@ +usr/bin/frappy-gui +usr/bin/frappy-cfg-editor +usr/lib/python3.*/dist-packages/frappy/gui diff --git a/debian/frappy-mlz.install b/debian/frappy-mlz.install new file mode 100644 index 0000000..5bb76bb --- /dev/null +++ b/debian/frappy-mlz.install @@ -0,0 +1 @@ +usr/lib/python3.*/dist-packages/frappy_mlz diff --git a/debian/frappy-psi.install b/debian/frappy-psi.install new file mode 100644 index 0000000..e39c057 --- /dev/null +++ b/debian/frappy-psi.install @@ -0,0 +1 @@ +usr/lib/python3.*/dist-packages/frappy_psi diff --git a/debian/rules b/debian/rules index ec00049..1e6813d 100755 --- a/debian/rules +++ b/debian/rules @@ -4,12 +4,12 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -export PYBUILD_NAME=secop +export PYBUILD_NAME=frappy export PYBUILD_TEST_PYTEST=1 override_dh_install: rmdir debian/tmp - mv debian/python3-secop debian/tmp + mv debian/python3-frappy debian/tmp dh_install -i -O--buildsystem=pybuild dh_missing --fail-missing diff --git a/debian/secop-core.install b/debian/secop-core.install deleted file mode 100644 index e6ac845..0000000 --- a/debian/secop-core.install +++ /dev/null @@ -1,9 +0,0 @@ -usr/bin/secop-server -usr/lib/python3.*/dist-packages/secop/*.py -usr/lib/python3.*/dist-packages/secop/lib -usr/lib/python3.*/dist-packages/secop/client -usr/lib/python3.*/dist-packages/secop/protocol -usr/lib/python3.*/dist-packages/secop_core-* -usr/lib/python3.*/dist-packages/secop/RELEASE-VERSION -lib/systemd -var/log/secop diff --git a/debian/secop-demo.install b/debian/secop-demo.install deleted file mode 100644 index c09c218..0000000 --- a/debian/secop-demo.install +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib/python3.*/dist-packages/secop_demo -usr/lib/python3.*/dist-packages/secop/__pycache__ diff --git a/debian/secop-ess.install b/debian/secop-ess.install deleted file mode 100644 index 470f8ef..0000000 --- a/debian/secop-ess.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/python3.*/dist-packages/secop_ess diff --git a/debian/secop-gui.install b/debian/secop-gui.install deleted file mode 100644 index e223730..0000000 --- a/debian/secop-gui.install +++ /dev/null @@ -1,3 +0,0 @@ -usr/bin/secop-gui -usr/bin/secop-cfg-editor -usr/lib/python3.*/dist-packages/secop/gui diff --git a/debian/secop-mlz.install b/debian/secop-mlz.install deleted file mode 100644 index 228ee3f..0000000 --- a/debian/secop-mlz.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/python3.*/dist-packages/secop_mlz diff --git a/debian/secop-psi.install b/debian/secop-psi.install deleted file mode 100644 index b29d663..0000000 --- a/debian/secop-psi.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/python3.*/dist-packages/secop_psi diff --git a/doc/source/conf.py b/doc/source/conf.py index e12c8ba..b9006c3 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -27,7 +27,7 @@ from os import path # Add import path for inplace usage sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..', '..'))) -from secop.version import get_version +from frappy.version import get_version # -- General configuration ------------------------------------------------ @@ -58,7 +58,7 @@ master_doc = 'index' # General information about the project. project = 'Frappy' -copyright = '2017-2021, Enrico Faulhaber, Markus Zolliker,' +copyright = '2017-2023, Enrico Faulhaber, Markus Zolliker' #copyright = '2017, SECoP Committee' author = 'Enrico Faulhaber, Markus Zolliker' @@ -71,16 +71,15 @@ try: release = get_version() # The short X.Y version. version = release.split('-')[0] -except ValueError as e: - print('WARNING: %s' % e) - +except ValueError: + pass # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -215,9 +214,9 @@ epub_exclude_files = ['search.html'] # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'https://docs.python.org/': None} +# intersphinx_mapping = {'https://docs.python.org/3/': None} -from secop.lib.classdoc import class_doc_handler +from frappy.lib.classdoc import class_doc_handler def setup(app): - app.connect('autodoc-process-docstring', class_doc_handler) \ No newline at end of file + app.connect('autodoc-process-docstring', class_doc_handler) diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst new file mode 100644 index 0000000..a23e063 --- /dev/null +++ b/doc/source/configuration.rst @@ -0,0 +1,58 @@ +Configuration File +.................. + +.. _node configuration: + +:Node(equipment_id, description, interface, \*\*kwds): + + Specify the SEC-node properties. + + The arguments are SECoP node properties and additional internal node configurations + + :Parameters: + + - **equipment_id** - a globally unique string identifying the SEC node + - **description** - a human readable description of the SEC node + - **interface** - an uri style string indication the address for the server + - **kwds** - other SEC node properties + +.. _mod configuration: + +:Mod(name, cls, description, \*\*kwds): + + Create a SECoP module. + Keyworded argument matching a parameter name are used to configure + the initial value of a parameter. For configuring the parameter properties + the value must be an instance of **Param**, using the keyworded arguments + for modifying the default values of the parameter properties. In this case, + the initial value may be given as the first positional argument. + In case command properties are to be modified **Command** has to be used. + + :Parameters: + + - **name** - the module name + - **cls** - a qualified class name or the python class of a module + - **description** - a human readable description of the module + - **kwds** - parameter, property or command configurations + +.. _param configuration: + +:Param(value=, \*\*kwds): + + Configure a parameter + + :Parameters: + + - **value** - if given, the initial value of the parameter + - **kwds** - parameter or datatype SECoP properties (see :class:`frappy.param.Parameter` + and :class:`frappy.datatypes.Datatypes`) + +.. _command configuration: + +:Command(\*\*kwds): + + Configure a command + + :Parameters: + + - **kwds** - command SECoP properties (see :class:`frappy.param.Commands`) diff --git a/doc/source/frappy_demo.rst b/doc/source/frappy_demo.rst new file mode 100644 index 0000000..bcaef19 --- /dev/null +++ b/doc/source/frappy_demo.rst @@ -0,0 +1,14 @@ +Demo +==== + +.. automodule:: frappy_demo.cryo + :show-inheritance: + :members: + +.. automodule:: frappy_demo.test + :show-inheritance: + :members: + +.. automodule:: frappy_demo.lakeshore + :show-inheritance: + :members: diff --git a/doc/source/secop_ess.rst b/doc/source/frappy_ess.rst similarity index 64% rename from doc/source/secop_ess.rst rename to doc/source/frappy_ess.rst index 7f115c7..b5b81f2 100644 --- a/doc/source/secop_ess.rst +++ b/doc/source/frappy_ess.rst @@ -4,6 +4,6 @@ ESS EPICS ..... -.. automodule:: secop_ess.epics +.. automodule:: frappy_ess.epics :show-inheritance: :members: diff --git a/doc/source/secop_mlz.rst b/doc/source/frappy_mlz.rst similarity index 69% rename from doc/source/secop_mlz.rst rename to doc/source/frappy_mlz.rst index ec275ef..e7cb326 100644 --- a/doc/source/secop_mlz.rst +++ b/doc/source/frappy_mlz.rst @@ -4,7 +4,7 @@ MLZ Amagnet (Garfield) .................. -.. automodule:: secop_mlz.amagnet +.. automodule:: frappy_mlz.amagnet :show-inheritance: :members: @@ -12,7 +12,7 @@ Amagnet (Garfield) Entangle Framework .................. -.. automodule:: secop_mlz.entangle +.. automodule:: frappy_mlz.entangle :show-inheritance: :members: diff --git a/doc/source/secop_psi.rst b/doc/source/frappy_psi.rst similarity index 73% rename from doc/source/secop_psi.rst rename to doc/source/frappy_psi.rst index fd3663c..db5cb3c 100644 --- a/doc/source/secop_psi.rst +++ b/doc/source/frappy_psi.rst @@ -4,7 +4,7 @@ PSI (SINQ) CCU4 tutorial example ..................... -.. automodule:: secop_psi.ccu4 +.. automodule:: frappy_psi.ccu4 :show-inheritance: :members: @@ -12,7 +12,7 @@ CCU4 tutorial example PPMS .... -.. automodule:: secop_psi.ppms +.. automodule:: frappy_psi.ppms :show-inheritance: :members: @@ -21,7 +21,7 @@ LakeShore 370 Calibrated sensors and control loop not yet supported. -.. automodule:: secop_psi.ls370res +.. automodule:: frappy_psi.ls370res :show-inheritance: :members: diff --git a/doc/source/index.rst b/doc/source/index.rst index 8cb2774..d0d0733 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -5,12 +5,16 @@ Frappy Programming Guide :maxdepth: 2 introduction + structure + programming + magic + server tutorial reference - secop_psi - secop_demo - secop_mlz - secop_ess + frappy_psi + frappy_demo + frappy_mlz + frappy_ess * :ref:`genindex` diff --git a/doc/source/introduction.rst b/doc/source/introduction.rst index 2c70b39..d02f343 100644 --- a/doc/source/introduction.rst +++ b/doc/source/introduction.rst @@ -57,14 +57,30 @@ to provide to the user. Programming a Driver -------------------- -Programming a driver means extending one of the base classes like :class:`secop.modules.Readable` -or :class:`secop.modules.Drivable`. The parameters are defined in the dict :py:attr:`parameters`, as a -class attribute of the extended class, using the :class:`secop.params.Parameter` constructor, or in case -of altering the properties of an inherited parameter, :class:`secop.params.Override`. +:ref:`Programming a driver ` means: + +- selecting a base class to be extended (e.g. :class:`frappy.modules.Readable` + or :class:`frappy.modules.Drivable`). +- defining the parameters +- coding the methods to retrieve and access these parameters + + +Support for Communication with the Hardware +------------------------------------------- + +Often the access to the hardware has to be done over a serial communication over LAN, +RS232 or USB. The mixin :class:`frappy.io.HasIO` and the classes :class:`frappy.io.StringIO` +and :class:`frappy.io.BytesIO` have all the functionality needed for this. + +Some hardware also requires calls to libraries offered by the manufacturers, certainly this +is also possible. In case there is no python package for this, but a C/C++ API, you might +use one of the following: + +- `Ctypes (A foreign function library for Python) `_ +- `CFFI (C Foreign Function Interface for Python) `_ +- `Extending Python with C or C++ `_ + + +.. TODO: shift this to an extra section -Parameters usually need a method :meth:`read_()` -implementing the code to retrieve their value from the hardware. Writeable parameters -(with the argument ``readonly=False``) usually need a method :meth:`write_()` -implementing how they are written to the hardware. Above methods may be omitted, when -there is no interaction with the hardware involved. diff --git a/doc/source/magic.rst b/doc/source/magic.rst new file mode 100644 index 0000000..4a5f347 --- /dev/null +++ b/doc/source/magic.rst @@ -0,0 +1,61 @@ +Frappy Internals +---------------- + +Frappy is a powerful framework, which does everything behind the +scenes you need for getting a SEC node to work. This section describes +what the framwork does for you. + +Startup +....... + +TODO: describe startup: init methods, first polls + +.. _polling: + +Polling +....... + +By default, a module inheriting from :class:`Readable ` is +polled every :attr:`pollinterval` seconds. More exactly, the :meth:`doPoll` +method is called, which by default calls :meth:`read_value` and :meth:`read_status`. + +The programmer might override the behaviour of :meth:`doPoll`, often it is wise +to super call the inherited method. + +:Note: + + Even for modules not inheriting from :class:`Readable `, + :meth:`doPoll` is called regularly. Its default implementation is doing nothing, + but may be overridden to do customized polling. + +In addition, the :meth:`read_` method is called every :attr:`slowinterval` +seconds for all parameters, in case the value was not updated since :attr:`pollinterval` +seconds. + +The decorator :func:`nopoll ` might be used on a :meth:`read_` +method in order to indicate, that the value is not polled by the slow poll mechanism. + + +.. _client notification: + +Client Notification +................... + +Whenever a parameter is changed by assigning a value to the attribute or by +means of the access method, an ``update`` message is sent to all activated clients. +Frappy implements the extended version of the ``activate`` message, where single modules +and parameters might be activated. + + +.. _type check: + +Type check and type conversion +.............................. + +Assigning a parameter to a value by setting the attribute via ``self. = `` +or ``. = `` involves a type check and possible a type conversion, +but not a range check for numeric types. The range check is only done on a ``change`` +message. + + +TODO: error handling, logging diff --git a/doc/source/programming.rst b/doc/source/programming.rst new file mode 100644 index 0000000..5c2e186 --- /dev/null +++ b/doc/source/programming.rst @@ -0,0 +1,99 @@ +Coding +====== + +.. _class_coding: + +Coding a Class for a SECoP Module +--------------------------------- + +A SECoP module is represented as an instance of a python class. +For programming such a class, typically you create a +subclass of one of the base classes :class:`Readable `, +:class:`Writable ` or :class:`Drivable `. +It is also quite common to inherit from classes created for similar modules, +and or to inherit from a mixin class like :class:`HasIO `. + +For creating the :ref:`parameters `, +class attributes are used, using the name of +the parameter as the attribute name and an instantiation of :class:`frappy.params.Parameter` +for defining the parameter. If a parameter is already given by an inherited class, +the parameter declaration might be omitted, or just its altered properties +have to be given. + +In addition, you might need one or several configurable items +(see :ref:`properties `), declared in the same way, with +`` =`` :class:`frappy.params.Property` ``(...)``. + +For each of the parameters, the behaviour has to be programmed with the +following access methods: + +def read\_\ **\ (self): + Called on a ``read`` SECoP message and whenever the internal poll mechanism + of Frappy tries to get a new value. The return value should be the + retrieved value. + This method might also be called internally, in case a fresh value of + the parameter is needed. + +.. admonition:: polling + + The Frappy framework has a built in :ref:`polling ` mechanism, + which calls above method regularely. Each time ``read_`` is + called, the Frappy framework ensures then that the value of the parameter + is updated and the activated clients will be notified by means of an + ``update`` message. + +def write\_\ **\ (self, value): + Called on a ``change`` SECoP message. The ``value`` argument is the value + given by the change message, and the method should implement the change, + typically by handing it over to the hardware. On success, the method must + return the accepted value. If the value may be read back + from the hardware, the readback value should be returned, which might be + slighly altered for example by rounding. The idea is, that the returned + value would be the same, as if it would be done by the ``read_`` + method. Often the easiest implementation is just returning the result of + a call to the ``read_`` method. + +.. admonition:: behind the scenes + + Assigning a parameter to a value by setting the attribute via + ``self. = `` or ``. = `` includes + a :ref:`type check `, some type conversion and ensures that + a :ref:`notification ` with an + ``update`` message is sent to all activated clients. + +Example code: + +.. code:: python + + from frappy.core import HasIO, Drivable, Property, Parameter, StringType + + class TemperatureLoop(HasIO, Drivable): + """a temperature sensor with loop""" + # internal property to configure the channel + channel = Property('the Lakeshore channel', datatype=StringType()) + # modifying a property of inherited parameters (unit is propagated to the FloatRange datatype) + value = Parameter(unit='K') + target = Parameter(unit='K') + + def read_value(self): + # using the inherited HasIO.communicate method to send a command and get the reply + reply = self.communicate(f'KRDG?{self.channel}') + return float(reply) + + def read_status(self): + ... determine the status from the hardware and return it ... + return status_code, status_text + + def read_target(self): + ... read back the target value ... + return target + + def write_target(self, target): + ... write here the target to the hardware ... + # important: make sure that the status is changed to BUSY within this method: + self.status = BUSY, 'target changed' + return self.read_target() # return the read back value + + + +.. TODO: io, state machine, persistent parameters, rwhandler, datatypes, features, commands, proxies diff --git a/doc/source/reference.rst b/doc/source/reference.rst index 77491e6..19360c2 100644 --- a/doc/source/reference.rst +++ b/doc/source/reference.rst @@ -1,81 +1,143 @@ Reference --------- +Core +.... + +For convenience everything documented on this page may also be +imported from the frappy.core module. + + Module Base Classes ................... -.. autodata:: secop.modules.Done - -.. autoclass:: secop.modules.Module +.. autoclass:: frappy.modules.Module :members: earlyInit, initModule, startModule -.. autoclass:: secop.modules.Readable +.. autoclass:: frappy.modules.Readable :members: Status -.. autoclass:: secop.modules.Writable +.. autoclass:: frappy.modules.Writable -.. autoclass:: secop.modules.Drivable +.. autoclass:: frappy.modules.Drivable :members: Status, isBusy, isDriving, stop Parameters, Commands and Properties ................................... -.. autoclass:: secop.params.Parameter -.. autoclass:: secop.params.Command -.. autoclass:: secop.properties.Property -.. autoclass:: secop.modules.Attached +.. autoclass:: frappy.params.Parameter +.. autoclass:: frappy.params.Command +.. autoclass:: frappy.properties.Property +.. autoclass:: frappy.modules.Attached :show-inheritance: +Access method decorators +........................ + +.. autofunction:: frappy.rwhandler.nopoll + + +.. _datatypes: Datatypes ......... -.. autoclass:: secop.datatypes.FloatRange -.. autoclass:: secop.datatypes.IntRange -.. autoclass:: secop.datatypes.BoolType -.. autoclass:: secop.datatypes.ScaledInteger -.. autoclass:: secop.datatypes.EnumType -.. autoclass:: secop.datatypes.StringType -.. autoclass:: secop.datatypes.TupleOf -.. autoclass:: secop.datatypes.ArrayOf -.. autoclass:: secop.datatypes.StructOf -.. autoclass:: secop.datatypes.BLOBType +.. autoclass:: frappy.datatypes.FloatRange + :members: __call__ +.. autoclass:: frappy.datatypes.IntRange + :members: __call__ + +.. autoclass:: frappy.datatypes.BoolType + :members: __call__ + +.. autoclass:: frappy.datatypes.ScaledInteger + :members: __call__ + +.. autoclass:: frappy.datatypes.EnumType + :members: __call__ + +.. autoclass:: frappy.datatypes.StringType + :members: __call__ + +.. autoclass:: frappy.datatypes.TupleOf + :members: __call__ + +.. autoclass:: frappy.datatypes.ArrayOf + :members: __call__ + +.. autoclass:: frappy.datatypes.StructOf + :members: __call__ + +.. autoclass:: frappy.datatypes.BLOBType + :members: __call__ + +.. autoclass:: frappy.datatypes.DataTypeType + :members: __call__ + +.. autoclass:: frappy.datatypes.ValueType + :members: __call__ + +.. autoclass:: frappy.datatypes.NoneOr + :members: __call__ + +.. autoclass:: frappy.datatypes.OrType + :members: __call__ + +.. autoclass:: frappy.datatypes.LimitsType + :members: __call__ Communication ............. -.. autoclass:: secop.modules.Communicator +.. autoclass:: frappy.modules.Communicator :show-inheritance: :members: communicate -.. autoclass:: secop.io.StringIO +.. autoclass:: frappy.io.IOBase + :show-inheritance: + :members: default_settings + +.. autoclass:: frappy.io.StringIO :show-inheritance: :members: communicate, multicomm -.. autoclass:: secop.io.BytesIO +.. autoclass:: frappy.io.BytesIO :show-inheritance: :members: communicate, multicomm -.. autoclass:: secop.io.HasIO +.. autoclass:: frappy.io.HasIO :show-inheritance: -.. autoclass:: secop.iohandler.IOHandlerBase +.. autoclass:: frappy.lib.asynconn.AsynTcp + :show-inheritance: + +.. autoclass:: frappy.lib.asynconn.AsynSerial + :show-inheritance: + +.. autoclass:: frappy.rwhandler.ReadHandler :show-inheritance: :members: -.. autoclass:: secop.iohandler.IOHandler +.. autoclass:: frappy.rwhandler.CommonReadHandler + :show-inheritance: + :members: + +.. autoclass:: frappy.rwhandler.WriteHandler + :show-inheritance: + :members: + +.. autoclass:: frappy.rwhandler.CommonWriteHandler :show-inheritance: :members: Exception classes -.....................-- +................. -.. automodule:: secop.errors +.. automodule:: frappy.errors :members: -.. include:: server.rst - +.. include:: configuration.rst \ No newline at end of file diff --git a/doc/source/secop_demo.rst b/doc/source/secop_demo.rst deleted file mode 100644 index 7273d58..0000000 --- a/doc/source/secop_demo.rst +++ /dev/null @@ -1,10 +0,0 @@ -Demo -==== - -.. automodule:: secop_demo.cryo - :show-inheritance: - :members: - -.. automodule:: secop_demo.test - :show-inheritance: - :members: diff --git a/doc/source/server.rst b/doc/source/server.rst index e5ed364..1ace342 100644 --- a/doc/source/server.rst +++ b/doc/source/server.rst @@ -1,47 +1,42 @@ +Server +------ + Configuration ............. -The configuration consists of a **NODE** section, an **INTERFACE** section and one -section per SECoP module. +The configuration code consists of a :ref:`Node() ` section, and one +:ref:`Mod() ` section per SECoP module. -The **NODE** section contains a description of the SEC node and a globally unique ID of -the SEC node. Example: +The **Node** section contains a globally unique ID of the SEC node, +a description of the SEC node and the server interface uri. Example: -.. code:: +.. code:: python - [NODE] - description = a description of the SEC node - id = globally.valid.identifier + Node('globally.valid.identifier', + 'a description of the SEC node', + interface = 'tcp://5000') -The **INTERFACE** section defines the server interface. Currently only tcp is supported. -When the TCP port is given as an argument of the server start script, this section is not -needed or ignored. The main information is the port number, in this example 5000: +For the interface scheme currently only tcp is supported. +When the TCP port is given as an argument of the server start script, **interface** is not +needed or ignored. The main information is the port number, in this example 5000. -.. code:: - - [INTERFACE] - uri = tcp://5000 - - -All other sections define the SECoP modules. The section name itself is the module name, -mandatory fields are **class** and **description**. **class** is a path to the Python class -from there the module is instantiated, separated with dots. In the following example the class +All other :ref:`Mod() ` sections define the SECoP modules. +Mandatory fields are **name**, **cls** and **description**. **cls** is a path to the Python class +from where the module is instantiated, separated with dots. In the following example the class **HeLevel** used by the **helevel** module can be found in the PSI facility subdirectory -secop_psi in the python module file ccu4.py: +frappy_psi in the python module file ccu4.py: -.. code:: +.. code:: python - [helevel] - class = secop_psi.ccu4.HeLevel - description = this is the He level sensor of the main reservoir - empty = 380 - empty.export = False - full = 0 - full.export = False + Mod('helevel', + 'frappy_psi.ccu4.HeLevel', + 'this is the He level sensor of the main reservoir', + empty_length = Param(380, export=False), + full = Param(0, export=False)) It is highly recommended to use all lower case for the module name, as SECoP names have to be unique despite of casing. In addition, parameters, properties and parameter properties might -be initialized in this section. In the above example **empty** and **full** are parameters, +be initialized in this section. In the above example **empty_length** and **full_length** are parameters, the resistivity of the He Level sensor at the end of the ranges. In addition, we alter the default property **export** of theses parameters, as we do not want to expose these parameters to the SECoP interface. @@ -50,16 +45,16 @@ the SECoP interface. Starting ........ -The Frappy server can be started via the **bin/secop-server** script. +The Frappy server can be started via the **bin/frappy-server** script. .. parsed-literal:: - usage: secop-server [-h] [-v | -q] [-d] name + usage: bin/frappy-server [-h] [-v | -q] [-d] [-t] [-p port] [-c cfgfiles] name Manage a Frappy server positional arguments: - name name of the instance. Uses etc/name.cfg for configuration + name name of the instance. Uses /name_cfg.py for configuration optional arguments: -c, --cfgfiles config files to be used. Comma separated list. diff --git a/doc/source/structure.rst b/doc/source/structure.rst new file mode 100644 index 0000000..dbc685c --- /dev/null +++ b/doc/source/structure.rst @@ -0,0 +1,83 @@ +Structure +--------- + +Node Structure +.............. + +Before starting to write the code for drivers, you have to think about +the node structure. What are the modules I want to create? What is to +be represented as a SECoP module, what as a parameter? At this point +you should not look what the hardware offers (e.g. channels A and B of +a temperature controller), but on what you need for doing an +experiment. Typically, each quantity you measure or control, has to +be represented by a module. You need module parameters for influencing +how you achieve or control the quantity. And you will need configurable +internal properties to configure the access to the hardware. + + +Examples: + +- A temperature sensor, without an attached control loop, should inherit + from :class:`Readable ` + +- A temperature sensor with a control loop should inherit from + :class:`Drivable `. You will need to implement a criterion for + deciding when the temperature is reached (e.g. tolerance and time window) + +- If the heater power is a quantity of interest, it should be its own + module inheriting from :class:`Writable `. + +- If it is a helium cryostat, you may want to implement a helium level + reading module inheriting from :class:`Readable ` + + +.. _module structure parameters: + +Module Structure: Parameters +............................ + +The next step is to determine which parameters we need in addition to +the standard ones given by the inherited class. As a temperature sensor +inherits from :class:`Readable `, it has already a ``value`` +parameter representing the measured temperature. It has also a +``status`` parameter, indicating whether the measured temperature is +valid (``IDLE``), invalid (``ERROR``) or there might be a less +critical issue (``WARN``). In addition you might want additional +parameters, like an alarm threshold. + +For the controlled temperature, in addition to above, inherited from +:class:`Drivable ` it has a writable ``target`` parameter. +In addition we might need control parameters or a changeable target limits. + +For the heater you might want to have a changeable power limit or power range. + + +.. _module structure properties: + +Module Structure: Properties +............................ + +For the access to the hardware, we will need internal properties for +configuring the hardware access. This might the IP address of a +LAN connection or the path of an internal serial device. +In Frappy, when inheriting from the mixin :class:`HasIO `, +either the property ``io`` referring to an explicitly configured +communicator or the ``uri`` property, generating a communicator with +the given uri can be used for this. + +In addition, depending on the hardware probably you need a property to +configure the channel number or name assigned to the module. + +For the heater output, you might need to configure the heater resistance. + + +Parameter Structure +................... + +A parameter also has properties, which have to be set when declaring +the parameter. Even for the inherited parameters, often the properties +have to be overriden. For example, the ``unit`` property of the ``value`` +parameter on the temperature sensor will be set to 'K', and the ``max`` +property of the ``target`` parameter should be set to the maximum possible +value for the hardware. This value may then probably get more restricted +by an entry in the configuration file. \ No newline at end of file diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index c349f65..e993c64 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -5,3 +5,4 @@ Tutorial :maxdepth: 2 tutorial_helevel + tutorial_t_control diff --git a/doc/source/tutorial_helevel.rst b/doc/source/tutorial_helevel.rst index 3ac85e0..73201e2 100644 --- a/doc/source/tutorial_helevel.rst +++ b/doc/source/tutorial_helevel.rst @@ -8,7 +8,7 @@ meter, as this is the simplest module. As mentioned in the introduction, we have to code the access to the hardware (driver), and the Frappy framework will deal with the SECoP interface. The code for the driver is located in a subdirectory named after the facility or institute programming the driver -in our case *secop_psi*. We create a file named from the electronic device CCU4 we use +in our case *frappy_psi*. We create a file named from the electronic device CCU4 we use here for the He level reading. CCU4 luckily has a very simple and logical protocol: @@ -17,12 +17,12 @@ CCU4 luckily has a very simple and logical protocol: * ``\n`` reads the parameter named ```` * in both cases, the reply is ``=\n`` -``secop_psi/ccu4.py``: +``frappy_psi/ccu4.py``: .. code:: python - # the most common Frappy classes can be imported from secop.core - from secop.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO + # the most common Frappy classes can be imported from frappy.core + from frappy.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIO class CCU4IO(StringIO): @@ -35,11 +35,11 @@ CCU4 luckily has a very simple and logical protocol: # inheriting HasIO allows us to use the communicate method for talking with the hardware - # Readable as a base class defines the value and status parameters + # 'Readable' as base class defines the value and status parameters class HeLevel(HasIO, Readable): """He Level channel of CCU4""" - # define the communication class to create the IO module + # define the communication class for automatic creation of the IO module ioClass = CCU4IO # define or alter the parameters @@ -51,10 +51,10 @@ CCU4 luckily has a very simple and logical protocol: reply = self.communicate('h') # send 'h\n' and get the reply 'h=\n' name, txtvalue = reply.split('=') assert name == 'h' # check that we got a reply to our command - return txtvalue # the framework will automatically convert the string to a float + return float(txtvalue) -The class :class:`secop_psi.ccu4.CCU4IO`, an extension of (:class:`secop.stringio.StringIO`) +The class :class:`frappy_psi.ccu4.CCU4IO`, an extension of (:class:`frappy.stringio.StringIO`) serves as communication class. :Note: @@ -121,12 +121,12 @@ the status codes from the hardware to the standard SECoP status codes. def read_empty_length(self): name, txtvalue = self.communicate('hem').split('=') assert name == 'hem' - return txtvalue + return float(txtvalue) def write_empty_length(self, value): name, txtvalue = self.communicate('hem=%g' % value).split('=') assert name == 'hem' - return txtvalue + return float(txtvalue) ... @@ -153,7 +153,7 @@ which means it might be worth to create a *query* method, and then the """ name, txtvalue = self.communicate(cmd).split('=') assert name == cmd.split('=')[0] # check that we got a reply to our command - return txtvalue # Frappy will automatically convert the string to the needed data type + return float(txtvalue) def read_value(self): return self.query('h') @@ -183,7 +183,7 @@ which means it might be worth to create a *query* method, and then the :Note: It make sense to unify *empty_length* and *full_length* to one parameter *calibration*, - as a :class:`secop.datatypes.StructOf` with members *empty_length* and *full_length*: + as a :class:`frappy.datatypes.StructOf` with members *empty_length* and *full_length*: .. code:: python @@ -196,7 +196,7 @@ which means it might be worth to create a *query* method, and then the For simplicity we stay with two float parameters for this tutorial. -The full documentation of the example can be found here: :class:`secop_psi.ccu4.HeLevel` +The full documentation of the example can be found here: :class:`frappy_psi.ccu4.HeLevel` Configuration @@ -205,46 +205,50 @@ Before we continue coding, we may try out what we have coded and create a config The directory tree of the Frappy framework contains the code for all drivers, but the configuration file determines, which code will be loaded when a server is started. We choose the name *example_cryo* and create therefore a configuration file -*example_cryo.cfg* in the *cfg* subdirectory: +*example_cryo_cfg.py* in the *cfg* subdirectory: -``cfg/example_cryo.cfg``: +``cfg/example_cryo_cfg.py``: -.. code:: ini +.. code:: python - [NODE] - description = this is an example cryostat for the Frappy tutorial - id = example_cryo.psi.ch + Node('example_cryo.psi.ch', + 'this is an example cryostat for the Frappy tutorial', + interface='tcp://5000') + Mod('helev', + 'frappy_psi.ccu4.HeLevel', + 'He level of the cryostat He reservoir', + uri='linse-moxa-4.psi.ch:3001', + empty_length=380, + full_length=0) - [INTERFACE] - uri = tcp://5000 +A configuration file contains a node configuration and one or several module configurations. - [helev] - description = He level of the cryostat He reservoir - class = secop_psi.ccu4.HeLevel - uri = linse-moxa-4.psi.ch:3001 - empty_length = 380 - full_length = 0 +*Node* describes the main properties of the SEC Node: an id and a description of the node +which should be globally unique, and an interface defining the address of the server, +usually the only important value here is the TCP port under which the server will be accessible. +Currently only tcp is supported. -A configuration file contains several sections with a header enclosed by rectangular brackets. +All the other sections define the SECoP modules to be used. This first arguments of *Mod(* are: -The *NODE* section describes the main properties of the SEC Node: a description of the node -and an id, which should be globally unique. +* the module name +* the python class to be used for the creation of the module +* a human readable description is its -The *INTERFACE* section defines the address of the server, usually the only important value -here is the TCP port under which the server will be accessible. Currently only tcp is -supported. - -All the other sections define the SECoP modules to be used. A module section at least contains a -human readable *description*, and the Python *class* used. Other properties or parameter values may -follow, in this case the *uri* for the communication with the He level monitor and the values for -configuring the He Level sensor. We might also alter parameter properties, for example we may hide +Other properties or parameter values may follow, in this case the *uri* for the communication +with the He level monitor and the values for configuring the He Level sensor. +We might also alter parameter properties, for example we may hide the parameters *empty_length* and *full_length* from the client by defining: -.. code:: ini +.. code:: python - empty_length.export = False - full_length.export = False + Mod('helev', + 'frappy_psi.ccu4.HeLevel', + 'He level of the cryostat He reservoir', + uri='linse-moxa-4.psi.ch:3001', + empty_length=Param(380, export=False), + full_length=Param(0, export=False)) -However, we do not put this here, as it is nice to try out changing parameters for a test! +As we configure more than just an initial value, we have to call *Param* and give the +value as the first argument, and additional properties as keyworded arguments. *to be continued* diff --git a/doc/source/tutorial_t_control.rst b/doc/source/tutorial_t_control.rst new file mode 100644 index 0000000..420d294 --- /dev/null +++ b/doc/source/tutorial_t_control.rst @@ -0,0 +1,406 @@ +A Simple Temperature Controller +=============================== + +The Use Case +------------ + +Let us assume we have simple cryostat or furnace with one temperature sensor +and a heater. We want first to implement reading the temperature and then +add the control loop. Assume also we have a LakeShore temperature controller +to access the hardware. + + +Coding the Sensor Module +------------------------ + +A temperature sensor without control loop is to be implemented as a subclass +of :class:`Readable `. You create this example to be used in your +facility, so you add it to the subdirectory of your facility. You might need +to create it, if it is not already there. In this example, you may +replace *frappy_psi* by *frappy_*. The name the python file +is chosen from the type of temperature controller *lakeshore.py*. + +We assume that the temperature controller is already configured with input ``A`` +being used, and the proper calibration curve assigned. In productive code +this configuration may also be done by Frappy, but this would extend the scope +of this tutorial too much. + +So we define a class and define the parameter properties for the value: + +``frappy_psi/lakeshore.py``: + +.. code:: python + + # the most common Frappy classes can be imported from frappy.core + from frappy.core import Readable, Parameter, FloatRange + + class TemperatureSensor(Readable): + """a temperature sensor (generic for different models)""" + # 1500 is the maximum T allowed for most of the lakeshore models + # this should be further restricted in the configuration (see below) + value = Parameter(datatype=FloatRange(0, 1500, unit='K')) + + +For the next step, we have to code how to retrieve the temperature +from the controller. For this we add the method ``read_value``. +In addition, we have to define a communicator class, and make +``TemperatureSensor`` inherit from :class:`HasIO ` +in order to add the :meth:`communicate` method to the class. + +See :ref:`lsc_manual_extract` for details of the needed commands. + + +.. code:: python + + from frappy.core import Readable, Parameter, FloatRange, HasIO, StringIO, Property, StringType + + class LakeshoreIO(StringIO): + wait_before = 0.05 # Lakeshore requires a wait time of 50 ms between commands + # '*IDN?' is sent on connect, and the reply is checked to match the regexp 'LSCI,.*' + identification = [('*IDN?', 'LSCI,.*')] + + class TemperatureSensor(HasIO, Readable): + """a temperature sensor (generic for different models)""" + # internal property to configure the channel + # see below for the difference of 'Property' and 'Parameter' + channel = Property('the Lakeshore channel', datatype=StringType()) + # 0, 1500 is the allowed range by the LakeShore controller + # this should be further restricted in the configuration (see below) + value = Parameter(datatype=FloatRange(0, 1500, unit='K')) + + def read_value(self): + # the communicate method sends a command and returns the reply + reply = self.communicate(f'KRDG?{self.channel}') + # convert to float + return float(reply) + + +This is the code to run a minimalistic SEC Node, which does just read a temperature +and nothing else. + +.. Note:: + + A :class:`Property ` is used instead of a + :class:`Parameter `, for a configurable item not changing + on run time. A ``Property`` is typically only internal needed and by default not + visible by SECoP. + + +Before we start the frappy server for the first time, we have to create a configuration file. +The directory tree of the Frappy framework contains the code for all drivers but the +configuration file determines, which code will be loaded when a server is started. +We choose the name *example_cryo* and create therefore a configuration file +*example_cryo_cfg.py* in the *cfg* subdirectory: + +``cfg/example_cryo_cfg.py``: + +.. code:: python + + Node('example_cryo.psi.ch', # a globally unique identification + 'this is an example cryostat for the Frappy tutorial', # describes the node + interface='tcp://10767') # you might choose any port number > 1024 + Mod('io', # the name of the module + 'frappy_psi.lakeshore.LakeshoreIO', # the class used for communication + 'communication to main controller', # a description + # the serial connection, including serial settings (see frappy.io.IOBase): + uri='serial://COM6:?baudrate=57600+parity=odd+bytesize=7', + ) + Mod('T', + 'frappy_psi.lakeshore.TemperatureSensor', + 'Sample Temperature', + io='io', # refers to above defined module 'io' + channel='A', # the channel on the LakeShore for this module + value=Param(max=470), # alter the maximum expected T + ) + +The first section in the configuration file configures the common settings for the server. +:ref:`Node ` describes the main properties of the SEC Node: an identifier, +which should be globally unique, a description of the node, and an interface defining the server address. +Usually the only important value in the server address is the TCP port under which the +server will be accessible. Currently only the tcp scheme is supported. + +Then for each module a :ref:`Mod ` section follows. +We have to create the ``io`` module for communication first, with +the ``uri`` as its most important argument. +In case of a serial connection the prefix is ``serial://``. On a Windows machine, the full +uri is something like ``serial://COM6:?baudrate=9600`` on a linux system it might be +``serial:///dev/ttyUSB0?baudrate=9600``. In case of a LAN connection, the uri should +be something like ``tcp://129.129.138.78:7777`` or ``tcp://mydevice.psi.ch:7777``, where +7777 is the tcp port the LakeShore is listening to. + +Now, we are ready to start our first server. In the main frappy directory, we +start it with: + +.. code:: + + python bin/frappy-server example_cryo + +If error messages appear, you have first to try to fix the errors. +Else you might open an other console or terminal, in order to start +a frappy client, for example the GUI client. The argument is +compose by the machine running the server and the server port chosen +in the configuration file: + +.. code:: + + python bin/frappy-gui localhost:10767 + + +A ``Readable`` SECoP module also has a status parameter. Until now, we completely +ignored it. As you may see, the value of status parameter is always ``(IDLE, '')``. +However, we should implement the status parameter to give information about the +validity of the sensor reading. The controller has a query command ``RDGST?`` +returning a code describing error states. We implement this by adding a the +``read_status`` method to the class: + +.. code:: python + + from frappy.core import Readable, Parameter, FloatRange, HasIO, StringIO, Property, StringType,\ + IDLE, ERROR + + ... + + class TemperatureSensor(HasIO, Readable): + + ... + + def read_status(self): + code = int(self.communicate(f'RDGST?{self.channel}')) + if code >= 128: + text = 'units overrange' + elif code >= 64: + text = 'units zero' + elif code >= 32: + text = 'temperature overrange' + elif code >= 16: + text = 'temperature underrange' + elif code % 2: + # ignore 'old reading', as this may happen in normal operation + text = 'invalid reading' + else: + return IDLE, '' + return ERROR, text + +After a restart of the server and the client, the status should change to +``ERROR, ''`` when the sensor is unplugged. + + +Extend the Class to a Temperature Loop +-------------------------------------- + +As we want to implement also temperature control, we have extend the class more. +Instead of adding just more methods to the ``TemperatureSensor`` class, we +create a new class ``TemperatureLoop`` inheriting from Temperature sensor. +This way, we would for example be able to create a node with a controlled +temperature on one channel, and a sensor module without control on an other channel. + +Temperature control is represented by a subclass of :class:`Drivable `. +So our new class will be based on ``TemperatureSensor`` where we have already +implemented the readable stuff. We need to define some properties of the ``target`` +parameter and add a property ``loop`` indicating, which control loop and +heater output we use. + +In addition, we have to implement the methods ``write_target`` and ``read_target``: + +.. code:: python + + from frappy.core import Readable, Parameter, FloatRange, HasIO, StringIO, Property, StringType,\ + IDLE, BUSY, WARN, ERROR, Drivable, IntRange + + ... + + class TemperatureLoop(TemperatureSensor, Drivable): + # lakeshore loop number to be used for this module + loop = Property('lakeshore loop', IntRange(1, 2), default=1) + target = Parameter(datatype=FloatRange(unit='K', min=0, max=1500)) + + def write_target(self, target): + # we always use a request / reply scheme + reply = self.communicate(f'SETP {self.loop},{target};SETP?{self.loop}') + return float(reply) + + def read_target(self): + return float(self.communicate(f'SETP?{self.loop}')) + +In order to test this, we will need to change the entry module ``T`` in the +configuration file: + +.. code:: python + + Mod('T', + 'frappy_psi.lakeshore.TemperatureLoop', + 'Sample Temperature', + io='io', + channel='A', # the channel on the LakeShore for this module + loop=1, # the loop to be used + value=Param(max=470), # set the maximum expected T + target=Param(max=420), # set the maximum allowed target T + ) + +To test that this step worked, just restart the server and the client. +If the temperature controller is not yet configured for controlling the +temperature on channel A with loop 1, this has to be done first. +Especially the heater has to be switched on, setting the maximum heater +range. + +There are two things still missing: + +- We want to switch on the heater automatically, when the target is changed. + A property ``heater_range`` is added for this. +- We want to handle the status code correctly: set to ``BUSY`` when the + target is changed, and back to ``IDLE`` when the target temperature is reached. + The parameter ``tolerance`` is used for this. For the tutorial we use here + a rather simple mechanism. In reality, often over- or undershoot happens. + A better algorithm would not switch to IDLE before the temperature was within + tolerance for some given time. + + +.. code:: python + + from frappy.core import Readable, Drivable, Parameter, FloatRange, \ + HasIO, StringIO, IDLE, BUSY, WARN, ERROR + + ... + + class TemperatureLoop(TemperatureSensor, Drivable): + ... + heater_range = Property('heater power range', IntRange(0, 5)) # max. 3 on LakeShore 336 + tolerance = Parameter('convergence criterion', FloatRange(0), default=0.1, readonly=False) + _driving = False + ... + + def write_target(self, target): + # reactivate heater in case it was switched off + self.communicate(f'RANGE {self.loop},{self.heater_range};RANGE?{self.loop}') + reply = self.communicate(f'SETP {self.loop},{target};SETP? {self.loop}') + self._driving = True + # Setting the status attribute triggers an update message for the SECoP status + # parameter. This has to be done before returning from this method! + self.status = BUSY, 'target changed' + return float(reply) + + ... + + def read_status(self): + code = int(self.communicate(f'RDGST?{self.channel}')) + if code >= 128: + text = 'units overrange' + elif code >= 64: + text = 'units zero' + elif code >= 32: + text = 'temperature overrange' + elif code >= 16: + text = 'temperature underrange' + elif code % 2: + # ignore 'old reading', as this may happen in normal operation + text = 'invalid reading' + elif abs(self.target - self.value) > self.tolerance: + if self._driving: + return BUSY, 'approaching setpoint' + return WARN, 'temperature out of tolerance' + else: # within tolerance: simple convergence criterion + self._driving = False + return IDLE, '' + return ERROR, text + + +Finally, the config file would be: + +``cfg/example_cryo_cfg.py``: + +.. code:: python + + Node('example_cryo.psi.ch', # a globally unique identification + 'this is an example cryostat for the Frappy tutorial', # describes the node + interface='tcp://10767') # you might choose any port number > 1024 + Mod('io', # the name of the module + 'frappy_psi.lakeshore.LakeshoreIO', # the class used for communication + 'communication to main controller', # a description + uri='serial://COM6:?baudrate=57600+parity=odd+bytesize=7', # the serial connection + ) + Mod('T', + 'frappy_psi.lakeshore.TemperatureLoop', + 'Sample Temperature', + io='io', + channel='A', # the channel on the LakeShore for this module + loop=1, # the loop to be used + value=Param(max=470), # set the maximum expected T + target=Param(max=420), # set the maximum allowed target T + heater_range=3, # 5 for model 350 + ) + + +Now, you should try again restarting the server and the client, if it works, you have done a good job! +If not, you might need to fix the code first ... + + +More Complex Configurations +........................... + +Without coding any more class, much more complex situations might be realized just by +extending the configuration. Using a single LakeShore controller, you might add more +temperature sensors or (in the case of Model 336 or 350) even a second temperature loop, +just by adding more ``Mod(`` sections to the configuration file. In case more than 4 channels +are needed, an other module ``io2`` has to be added for the second controller and so on. + + +Appendix 1: The Solution +------------------------ + +You will find the full solution code via the ``[source]`` link in the automatic +created documentation of the class :class:`frappy_demo.lakeshore.TemperatureLoop`. + + + +.. _lsc_manual_extract: + +Appendix 2: Extract from the LakeShore Manual +--------------------------------------------- + +.. table:: commands used in this tutorial + + ====================== ======================= + **Query Identification** + ---------------------------------------------- + Command \*IDN? *term* + Reply ,,/ - change name + Change name @@ -20,7 +20,7 @@ - name: + Name: diff --git a/secop/gui/cfg_editor/ui/mainwindow.ui b/frappy/gui/cfg_editor/ui/mainwindow.ui similarity index 88% rename from secop/gui/cfg_editor/ui/mainwindow.ui rename to frappy/gui/cfg_editor/ui/mainwindow.ui index 6e9aede..5d25ca0 100644 --- a/secop/gui/cfg_editor/ui/mainwindow.ui +++ b/frappy/gui/cfg_editor/ui/mainwindow.ui @@ -34,12 +34,12 @@ create new SEC node - new + New - - :/new.png - :/new.png:/new.png + + :/cfg_editor/new.png + :/cfg_editor/new.png:/cfg_editor/new.png @@ -67,12 +67,12 @@ open file - open + Open - - :/open.png - :/open.png:/open.png + + :/cfg_editor/open.png + :/cfg_editor/open.png:/cfg_editor/open.png @@ -100,12 +100,12 @@ save - save + Save - - :/save.png - :/save.png:/save.png + + :/cfg_editor/save.png + :/cfg_editor/save.png:/cfg_editor/save.png @@ -140,12 +140,12 @@ add interface - add interface + Add interface - - :/add_interface.png - :/add_interface.png:/add_interface.png + + :/cfg_editor/add_interface.png + :/cfg_editor/add_interface.png:/cfg_editor/add_interface.png @@ -173,12 +173,12 @@ add module - add module + Add module - - :/add_module.png - :/add_module.png:/add_module.png + + :/cfg_editor/add_module.png + :/cfg_editor/add_module.png:/cfg_editor/add_module.png @@ -206,12 +206,12 @@ add parameter - add parameter + Add parameter - - :/add_parameter.png - :/add_parameter.png:/add_parameter.png + + :/cfg_editor/add_parameter.png + :/cfg_editor/add_parameter.png:/cfg_editor/add_parameter.png @@ -239,11 +239,11 @@ add property - add property + Add property - :/add_property.png + :/cfg_editor/add_property.png @@ -272,11 +272,11 @@ add comment - add comment + Add comment - - :/add_comment.png:/add_comment.png + + :/cfg_editor/add_comment.png:/cfg_editor/add_comment.png @@ -319,12 +319,12 @@ duplicate module or interface - duplicate + Duplicate - - :/duplicate.png - :/duplicate.png:/duplicate.png + + :/cfg_editor/duplicate.png + :/cfg_editor/duplicate.png:/cfg_editor/duplicate.png @@ -352,12 +352,12 @@ delete - delete + Delete - - :/delete.png - :/delete.png:/delete.png + + :/cfg_editor/delete.png + :/cfg_editor/delete.png:/cfg_editor/delete.png @@ -409,7 +409,7 @@ 0 0 977 - 20 + 29 @@ -448,9 +448,9 @@ - - :/new.png - :/new.png:/new.png + + :/cfg_editor/new.png + :/cfg_editor/new.png:/cfg_editor/new.png &New @@ -464,9 +464,9 @@ - - :/open.png - :/open.png:/open.png + + :/cfg_editor/open.png + :/cfg_editor/open.png:/cfg_editor/open.png &Open ... @@ -477,9 +477,9 @@ - - :/save.png - :/save.png:/save.png + + :/cfg_editor/save.png + :/cfg_editor/save.png:/cfg_editor/save.png &Save @@ -562,7 +562,7 @@ - + diff --git a/secop/gui/cfg_editor/ui/node_display.ui b/frappy/gui/cfg_editor/ui/node_display.ui similarity index 97% rename from secop/gui/cfg_editor/ui/node_display.ui rename to frappy/gui/cfg_editor/ui/node_display.ui index 10451a3..b48e13e 100644 --- a/secop/gui/cfg_editor/ui/node_display.ui +++ b/frappy/gui/cfg_editor/ui/node_display.ui @@ -81,7 +81,7 @@ TreeWidget QTreeWidget -
secop.gui.cfg_editor.widgets
+
frappy.gui.cfg_editor.widgets
diff --git a/secop/gui/cfg_editor/utils.py b/frappy/gui/cfg_editor/utils.py similarity index 80% rename from secop/gui/cfg_editor/utils.py rename to frappy/gui/cfg_editor/utils.py index 5e3b80a..dc19276 100644 --- a/secop/gui/cfg_editor/utils.py +++ b/frappy/gui/cfg_editor/utils.py @@ -24,12 +24,13 @@ import inspect import sys from os import listdir, path -from secop.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic -from secop.modules import Module -from secop.params import Parameter -from secop.properties import Property -from secop.protocol.interface.tcp import TCPServer -from secop.server import generalConfig +from frappy.gui.qt import QDialogButtonBox, QFileDialog, QIcon, QSize, uic + +from frappy.modules import Module +from frappy.params import Parameter +from frappy.properties import Property +from frappy.protocol.interface.tcp import TCPServer +from frappy.server import generalConfig uipath = path.dirname(__file__) @@ -38,8 +39,8 @@ def loadUi(widget, uiname, subdir='ui'): uic.loadUi(path.join(uipath, subdir, uiname), widget) -def setIcon(widget, icon_name, subdir='ui', icondir='icons'): - widget.setIcon(QIcon(path.join(uipath, subdir, icondir, icon_name))) +def setIcon(widget, icon_name): + widget.setIcon(QIcon(f':/cfg_editor/{icon_name}')) widget.setIconSize(QSize(60, 60)) @@ -48,20 +49,20 @@ def set_name_edit_style(invalid, name_edit, button_box=None): name_edit.setStyleSheet("color: red") name_edit.setToolTip('Invalid name: name already taken') if button_box: - button_box.button(QDialogButtonBox.Ok).setEnabled(False) + button_box.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) else: name_edit.setStyleSheet("color: black") name_edit.setToolTip('') if button_box: - button_box.button(QDialogButtonBox.Ok).setEnabled(True) + button_box.button(QDialogButtonBox.StandardButton.Ok).setEnabled(True) -def setTreeIcon(widget, icon_name, subdir='ui', icondir='icons'): - widget.setIcon(0, QIcon(path.join(uipath, subdir, icondir, icon_name))) +def setTreeIcon(widget, icon_name): + widget.setIcon(0, QIcon(f':/cfg_editor/{icon_name}')) -def setActionIcon(widget, icon_name, subdir='ui', icondir='icons'): - widget.setIcon(QIcon(path.join(uipath, subdir, icondir, icon_name))) +def setActionIcon(widget, icon_name): + widget.setIcon(QIcon(f':/cfg_editor/{icon_name}')) def get_subtree_nodes(tree_widget_item): @@ -91,37 +92,38 @@ def get_file_paths(widget, open_file=True): dialog = QFileDialog(widget) if open_file: title = 'Open file' - dialog.setAcceptMode(QFileDialog.AcceptOpen) - dialog.setFileMode(QFileDialog.ExistingFiles) + dialog.setAcceptMode(QFileDialog.AcceptMode.AcceptOpen) + dialog.setFileMode(QFileDialog.FileMode.ExistingFiles) else: title = 'Save file' - dialog.setAcceptMode(QFileDialog.AcceptSave) - dialog.setFileMode(QFileDialog.AnyFile) + dialog.setAcceptMode(QFileDialog.AcceptMode.AcceptSave) + dialog.setFileMode(QFileDialog.FileMode.AnyFile) dialog.setWindowTitle(title) dialog.setNameFilter('*.cfg') dialog.setDefaultSuffix('.cfg') - dialog.exec_() + dialog.exec() return dialog.selectedFiles() def get_modules(): modules = {} + generalConfig.init() base_path = generalConfig.basedir # pylint: disable=too-many-nested-blocks for dirname in listdir(base_path): - if dirname.startswith('secop_'): + if dirname.startswith('frappy_'): modules[dirname] = {} for filename in listdir(path.join(base_path, dirname)): if not path.isfile(path.join(base_path, dirname, filename)) or \ filename == '__init__.py' or filename[-3:] != '.py': continue - module = '%s.%s' % (dirname, filename[:-3]) + module = f'{dirname}.{filename[:-3]}' module_in_file = False try: __import__(module) for name, obj in inspect.getmembers(sys.modules[module]): if inspect.isclass(obj) and \ - obj.__module__.startswith('secop_') and \ + obj.__module__.startswith('frappy_') and \ issubclass(obj, Module): # full_name = '%s.%s' % (obj.__module__, name) if not module_in_file: @@ -140,7 +142,7 @@ def get_module_class_from_name(name): module = name[:last_dot] __import__(module) for cls_name, obj in inspect.getmembers(sys.modules[module]): - if inspect.isclass(obj) and obj.__module__.startswith('secop_') \ + if inspect.isclass(obj) and obj.__module__.startswith('frappy_') \ and issubclass(obj, Module) and cls_name == class_name: return obj except ImportError: @@ -156,7 +158,8 @@ def get_interface_class_from_name(name): def get_interfaces(): # TODO class must be found out like for modules interfaces = [] - interface_path = path.join(generalConfig.basedir, 'secop', + generalConfig.init() + interface_path = path.join(generalConfig.basedir, 'frappy', 'protocol', 'interface') for filename in listdir(interface_path): if path.isfile(path.join(interface_path, filename)) and \ diff --git a/secop/gui/cfg_editor/widgets.py b/frappy/gui/cfg_editor/widgets.py similarity index 88% rename from secop/gui/cfg_editor/widgets.py rename to frappy/gui/cfg_editor/widgets.py index 6c866d4..b472628 100644 --- a/secop/gui/cfg_editor/widgets.py +++ b/frappy/gui/cfg_editor/widgets.py @@ -23,15 +23,16 @@ import os -from secop.gui.cfg_editor.config_file import read_config, write_config -from secop.gui.cfg_editor.tree_widget_item import TreeWidgetItem -from secop.gui.cfg_editor.utils import get_all_items, \ - get_file_paths, get_interface_class_from_name, get_interfaces, \ - get_module_class_from_name, get_modules, get_params, \ - get_props, loadUi, set_name_edit_style, setActionIcon -from secop.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \ - QLineEdit, QMenu, QPoint, QSize, QStandardItem, QStandardItemModel, \ - Qt, QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal +from frappy.gui.qt import QComboBox, QDialog, QDialogButtonBox, QLabel, \ + QLineEdit, QMenu, QPoint, QSize, QStandardItem, QStandardItemModel, Qt, \ + QTabBar, QTextEdit, QTreeView, QTreeWidget, pyqtSignal + +from frappy.gui.cfg_editor.config_file import read_config, write_config +from frappy.gui.cfg_editor.tree_widget_item import TreeWidgetItem +from frappy.gui.cfg_editor.utils import get_all_items, get_file_paths, \ + get_interface_class_from_name, get_interfaces, \ + get_module_class_from_name, get_modules, get_params, get_props, loadUi, \ + set_name_edit_style, setActionIcon NODE = 'node' MODULE = 'module' @@ -50,8 +51,8 @@ class TreeWidget(QTreeWidget): super().__init__(parent) self.file_path = None self.setIconSize(QSize(24, 24)) - self.setSelectionMode(QTreeWidget.SingleSelection) - self.setContextMenuPolicy(Qt.CustomContextMenu) + self.setSelectionMode(QTreeWidget.SelectionMode.SingleSelection) + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.context_pos = QPoint(0, 0) self.menu = QMenu() self.context_actions = [] @@ -60,14 +61,14 @@ class TreeWidget(QTreeWidget): self.customContextMenuRequested.connect(self.on_context_menu_requested) def setup_context_actions(self): - edit = self.menu.addAction('rename') - a_m = self.menu.addAction('add module') - a_i = self.menu.addAction('add interface') - a_pa = self.menu.addAction('add parameter') - a_pr = self.menu.addAction('add property') - a_c = self.menu.addAction('add comment') - dup = self.menu.addAction('duplicate') - dele = self.menu.addAction('delete') + edit = self.menu.addAction('Rename') + a_m = self.menu.addAction('Add module') + a_i = self.menu.addAction('Add interface') + a_pa = self.menu.addAction('Add parameter') + a_pr = self.menu.addAction('Add property') + a_c = self.menu.addAction('Add comment') + dup = self.menu.addAction('Duplicate') + dele = self.menu.addAction('Delete') self.context_actions = [edit, a_m, a_i, a_pa, a_pr, a_c, dup, dele] setActionIcon(edit, 'edit.png') setActionIcon(a_m, 'add_module.png') @@ -115,8 +116,8 @@ class TreeWidget(QTreeWidget): None) self.addTopLevelItem(sec_node) sec_node.setExpanded(True) - self.mods = self.get_tree_widget_item(name='modules') - self.ifs = self.get_tree_widget_item(name='interfaces') + self.mods = self.get_tree_widget_item(name='Modules') + self.ifs = self.get_tree_widget_item(name='Interfaces') sec_node.addChild(self.ifs) sec_node.addChild(self.mods) self.emit_save_status_changed(False) @@ -337,26 +338,27 @@ class AddDialog(QDialog): the value from self.value""" super().__init__(parent) loadUi(self, 'add_dialog.ui') - self.setWindowTitle('add %s' % kind) + self.setWindowTitle(f'Add {kind}') self.kind = kind self.invalid_names = invalid_names if self.invalid_names: for i, name in enumerate(self.invalid_names): self.invalid_names[i] = name.lower() if kind in [NODE, MODULE, INTERFACE]: - self.button_box.button(QDialogButtonBox.Ok).setEnabled(False) + self.button_box.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(False) self.name = QLineEdit() # TODO: input mask self.name.textChanged.connect(self.check_input) - self.add_layout.addWidget(QLabel('name:'), 0, 0) + self.add_layout.addWidget(QLabel('Name:'), 0, 0) self.add_layout.addWidget(self.name, 0, 1) if kind == NODE: - label_text = 'description:' + label_text = 'Description:' self.value = QTextEdit() self.get_value = self.value.toPlainText self.value.text = self.value.toPlainText else: - label_text = 'kind:' + label_text = 'Kind:' self.value = QComboBox() self.get_value = self.value.currentText if type(possible_values) == dict: @@ -368,26 +370,31 @@ class AddDialog(QDialog): self.value.setCurrentIndex(len(possible_values)-1) self.add_layout.addWidget(QLabel(label_text), 1, 0) self.add_layout.addWidget(self.value, 1, 1) + self.name.setFocus() else: if kind in [PARAMETER, PROPERTY]: - label_text = 'kind:' + label_text = 'Kind:' self.value = QComboBox() self.get_value = self.value.currentText self.value.addItems(possible_values) else: - label_text = 'comment:' + label_text = 'Comment:' self.value = QTextEdit() self.get_value = self.value.toPlainText self.add_layout.addWidget(QLabel(label_text), 0, 0) self.add_layout.addWidget(self.value, 0, 1) + self.value.setFocus() if self.add_layout.rowCount() == 2: self.setTabOrder(self.name, self.value) - self.setTabOrder(self.value, self.button_box.button(QDialogButtonBox.Ok)) - self.setTabOrder(self.button_box.button(QDialogButtonBox.Ok), - self.button_box.button(QDialogButtonBox.Cancel)) + self.setTabOrder(self.value, self.button_box.button( + QDialogButtonBox.StandardButton.Ok)) + self.setTabOrder(self.button_box.button( + QDialogButtonBox.StandardButton.Ok), + self.button_box.button( + QDialogButtonBox.StandardButton.Cancel)) def get_values(self): - if self.exec_() == QDialog.Accepted: + if self.exec() == QDialog.DialogCode.Accepted: if self.kind in [NODE, MODULE, INTERFACE]: return [self.name.text(), self.get_value()] if self.kind in [PARAMETER, PROPERTY, COMMENT]: @@ -403,7 +410,7 @@ class AddDialog(QDialog): class TabBar(QTabBar): def __init__(self, parent=None): super().__init__(parent) - self.setContextMenuPolicy(Qt.CustomContextMenu) + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.context_pos = QPoint(0, 0) self.menu = QMenu() close = self.menu.addAction('&Close') @@ -414,7 +421,7 @@ class TabBar(QTabBar): self.setMovable(True) def mouseReleaseEvent(self, event): - if event.button() == Qt.MidButton: + if event.button() == Qt.MouseButton.MidButton: self.close_tab_at_pos(event.pos()) QTabBar.mouseReleaseEvent(self, event) @@ -471,7 +478,7 @@ class TreeComboBox(QComboBox): act_item = act_index.model().itemFromIndex(act_index) value += act_item.text() while act_item.parent(): - value = '%s.%s' % (act_item.parent().text(), value) + value = f'{act_item.parent().text()}.{value}' act_item = act_item.parent() return value diff --git a/frappy/gui/collapsible.py b/frappy/gui/collapsible.py new file mode 100644 index 0000000..2718022 --- /dev/null +++ b/frappy/gui/collapsible.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +from frappy.gui.qt import QFrame, QGridLayout, QSizePolicy, Qt, QToolButton, \ + QVBoxLayout, QWidget + + +class CollapsibleWidget(QWidget): + def __init__(self, parent=None): + super().__init__(parent) + self.button = QToolButton() + self.widget = QWidget() + self.widgetContainer = QWidget() + + self.button.setArrowType(Qt.ArrowType.RightArrow) + self.button.setToolButtonStyle( + Qt.ToolButtonStyle.ToolButtonTextBesideIcon) + self.button.setStyleSheet("QToolButton { border: none; }") + self.button.setCheckable(True) + self.button.toggled.connect(self._collapse) + + line = QFrame() + line.setFrameShape(QFrame.Shape.HLine) + line.setSizePolicy(QSizePolicy.Policy.Expanding, + QSizePolicy.Policy.Maximum) + + l = QVBoxLayout() + l.setContentsMargins(0, 0, 0, 0) + l.addWidget(self.widget) + self.widgetContainer.setLayout(l) + self.widgetContainer.setMaximumHeight(0) + + layout = QGridLayout() + layout.addWidget(self.button, 0, 0, Qt.AlignmentFlag.AlignLeft) + layout.addWidget(line, 0, 1, 1, 1) + layout.addWidget(self.widgetContainer, 1, 0, -1, -1) + layout.setContentsMargins(0, 6, 0, 0) + self.setLayout(layout) + + def _collapse(self, expand): + if expand: + self.button.setArrowType(Qt.ArrowType.DownArrow) + self.widgetContainer.setMaximumHeight(self.widget.maximumHeight()) + else: + self.button.setArrowType(Qt.ArrowType.RightArrow) + self.widgetContainer.setMaximumHeight(0) + self.setMaximumHeight(self.button.maximumHeight()) + + def replaceWidget(self, widget): + layout = self.widgetContainer.layout() + layout.removeWidget(self.widget) + self.widget = widget + layout.addWidget(self.widget) + + def setTitle(self, title): + self.button.setText(title) + + def getWidget(self): + return self.widget diff --git a/frappy/gui/connection.py b/frappy/gui/connection.py new file mode 100644 index 0000000..d6e1740 --- /dev/null +++ b/frappy/gui/connection.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2016 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Lenz +# +# ***************************************************************************** + +from frappy.gui.qt import QObject, pyqtSignal + +import frappy.client + + +class QSECNode(QObject): + newData = pyqtSignal(str, str, object) # module, parameter, data + stateChange = pyqtSignal(str, bool, str) # node name, online, connection state + unhandledMsg = pyqtSignal(str) # message + descriptionChanged = pyqtSignal(str, object) # contactpoint, self + logEntry = pyqtSignal(str) + + def __init__(self, uri, parent_logger, parent=None): + super().__init__(parent) + self.log = parent_logger.getChild(uri) + self.conn = conn = frappy.client.SecopClient(uri, self.log) + conn.validate_data = True + self.contactPoint = conn.uri + conn.connect() + self.equipmentId = conn.properties['equipment_id'] + self.log.info('Switching to logger %s', self.equipmentId) + self.log.name = '.'.join((parent_logger.name, self.equipmentId)) + self.nodename = f'{self.equipmentId} ({conn.uri})' + self.modules = conn.modules + self.properties = self.conn.properties + self.protocolVersion = conn.secop_version + self.log.debug('SECoP Version: %s', conn.secop_version) + conn.register_callback(None, self.updateItem, self.nodeStateChange, + self.unhandledMessage, self.descriptiveDataChange) + + # provide methods from old baseclient for making other gui code work + def reconnect(self): + if self.conn.online: + self.conn.disconnect(shutdown=False) + self.conn.connect() + + def getParameters(self, module): + return self.modules[module]['parameters'] + + def getCommands(self, module): + return self.modules[module]['commands'] + + def getModuleProperties(self, module): + return self.modules[module]['properties'] + + def getProperties(self, module, parameter): + props = self.modules[module]['parameters'][parameter] + if 'unit' in props['datainfo']: + props['unit'] = props['datainfo']['unit'] + return self.modules[module]['parameters'][parameter] + + def setParameter(self, module, parameter, value): + self.conn.setParameter(module, parameter, value) + + def getParameter(self, module, parameter): + return self.conn.getParameter(module, parameter, True) + + def execCommand(self, module, command, argument): + return self.conn.execCommand(module, command, argument) + + def queryCache(self, module): + return {k: self.conn.cache[(module, k)] + for k in self.modules[module]['parameters']} + + def syncCommunicate(self, action, ident='', data=None): + reply = self.conn.request(action, ident, data) + # pylint: disable=not-an-iterable + return frappy.client.encode_msg_frame(*reply).decode('utf-8') + + def decode_message(self, msg): + # decode_msg needs bytes as input + return frappy.client.decode_msg(msg.encode('utf-8')) + + def _getDescribingParameterData(self, module, parameter): + # print(module, parameter, self.modules[module]['parameters']) + return self.modules[module]['parameters'][parameter] + + def updateItem(self, module, parameter, item): + self.newData.emit(module, parameter, item) + + def nodeStateChange(self, online, state): + self.stateChange.emit(self.nodename, online, state) + + def unhandledMessage(self, action, specifier, data): + self.unhandledMsg.emit(f'{action} {specifier} {data!r}') + + def descriptiveDataChange(self, _module, conn): + self.modules = conn.modules + self.properties = conn.properties + self.descriptionChanged.emit(self.contactPoint, self) + + def terminate_connection(self): + self.conn.disconnect() diff --git a/frappy/gui/console.py b/frappy/gui/console.py new file mode 100644 index 0000000..74a478b --- /dev/null +++ b/frappy/gui/console.py @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +import json + +from frappy.gui.qt import QApplication, QFont, QFontMetrics, QKeyEvent, \ + QLineEdit, QSettings, Qt, QTextCursor, QWidget, pyqtSignal, pyqtSlot, \ + toHtmlEscaped + +from frappy.errors import SECoPError +from frappy.gui.util import loadUi + + +class ConsoleLineEdit(QLineEdit): + """QLineEdit with history. Based on HistoryLineEdit from NICOS gui""" + sentText = pyqtSignal(str) + scrollingKeys = [Qt.Key.Key_Up, Qt.Key.Key_Down, Qt.Key.Key_PageUp, + Qt.Key.Key_PageDown] + + def __init__(self, parent=None): + super().__init__(parent) + settings = QSettings() + self.history = settings.value('consoleHistory', []) + self.scrollWidget = None + self._start_text = '' + self._current = -1 + + def keyPressEvent(self, kev): + key_code = kev.key() + + # if it's a shifted scroll key... + if kev.modifiers() & Qt.KeyboardModifier.ShiftModifier and \ + self.scrollWidget and \ + key_code in self.scrollingKeys: + # create a new, unshifted key event and send it to the + # scrolling widget + nev = QKeyEvent(kev.type(), kev.key(), + Qt.KeyboardModifier.NoModifier) + QApplication.sendEvent(self.scrollWidget, nev) + return + + if key_code == Qt.Key.Key_Escape: + # abort history search + self.setText(self._start_text) + self._current = -1 + QLineEdit.keyPressEvent(self, kev) + + elif key_code == Qt.Key.Key_Up: + # go earlier + if self._current == -1: + self._start_text = self.text() + self._current = len(self.history) + self.stepHistory(-1) + elif key_code == Qt.Key.Key_Down: + # go later + if self._current == -1: + return + self.stepHistory(1) + + elif key_code == Qt.Key.Key_PageUp: + # go earlier with prefix + if self._current == -1: + self._current = len(self.history) + self._start_text = self.text() + prefix = self.text()[:self.cursorPosition()] + self.stepHistoryUntil(prefix, 'up') + + elif key_code == Qt.Key.Key_PageDown: + # go later with prefix + if self._current == -1: + return + prefix = self.text()[:self.cursorPosition()] + self.stepHistoryUntil(prefix, 'down') + + elif key_code in (Qt.Key.Key_Return, key_code == Qt.Key.Key_Enter): + # accept - add to history and do normal processing + self._current = -1 + text = self.text() + if text and (not self.history or self.history[-1] != text): + # append to history, but only if it isn't equal to the last + self.history.append(text) + self.sentText.emit(text) + QLineEdit.keyPressEvent(self, kev) + + else: + # process normally + QLineEdit.keyPressEvent(self, kev) + + def stepHistory(self, num): + self._current += num + if self._current <= -1: + # no further + self._current = 0 + return + if self._current >= len(self.history): + # back to start + self._current = -1 + self.setText(self._start_text) + return + self.setText(self.history[self._current]) + + def stepHistoryUntil(self, prefix, direction): + if direction == 'up': + lookrange = range(self._current - 1, -1, -1) + else: + lookrange = range(self._current + 1, len(self.history)) + for i in lookrange: + if self.history[i].startswith(prefix): + self._current = i + self.setText(self.history[i]) + self.setCursorPosition(len(prefix)) + return + if direction == 'down': + # nothing found: go back to start + self._current = -1 + self.setText(self._start_text) + self.setCursorPosition(len(prefix)) + + +class Console(QWidget): + def __init__(self, node, parent=None): + super().__init__(parent) + loadUi(self, 'console.ui') + self._node = node + self._clearLog() + self.msgLineEdit.scrollWidget = self.logTextBrowser + + @pyqtSlot() + def on_sendPushButton_clicked(self): + msg = self.msgLineEdit.text().strip() + + if not msg: + return + + self._addLogEntry( + f'Request: {toHtmlEscaped(msg)}', + raw=True) + # msg = msg.split(' ', 2) + try: + reply = self._node.syncCommunicate(*self._node.decode_message(msg)) + if msg == 'describe': + _, eid, stuff = self._node.decode_message(reply) + reply = f"{_} {eid} {json.dumps(stuff, indent=2, separators=(',', ':'), sort_keys=True)}" + self._addLogEntry(reply.rstrip('\n')) + else: + self._addLogEntry(reply.rstrip('\n')) + except SECoPError as e: + einfo = e.args[0] if len(e.args) == 1 else json.dumps(e.args) + self._addLogEntry(f'{e.name}: {einfo}', error=True) + except Exception as e: + self._addLogEntry(f'error when sending {msg!r}: {e!r}', + error=True) + + self.msgLineEdit.clear() + + @pyqtSlot() + def on_clearPushButton_clicked(self): + self._clearLog() + + def _clearLog(self): + self.logTextBrowser.clear() + + self._addLogEntry('
' + 'SECoP Communication Shell
' + '=========================
', + raw=True) + + def _addLogEntry(self, msg, raw=False, error=False): + if not raw: + if error: + msg = ('
%s
' + % toHtmlEscaped(str(msg)).replace('\n', '
')) + else: + msg = ('
%s
' + % toHtmlEscaped(str(msg)).replace('\n', '
')) + + content = '' + if self.logTextBrowser.toPlainText(): + content = self.logTextBrowser.toHtml() + content += msg + + self.logTextBrowser.setHtml(content) + self.logTextBrowser.moveCursor(QTextCursor.MoveOperation.End) + + def _getLogWidth(self): + fontMetrics = QFontMetrics(QFont('Monospace')) + # calculate max avail characters by using an m (which is possible + # due to monospace) + result = self.logTextBrowser.width() / fontMetrics.width('m') + return result diff --git a/frappy/gui/inputwidgets.py b/frappy/gui/inputwidgets.py new file mode 100644 index 0000000..ae9eaf5 --- /dev/null +++ b/frappy/gui/inputwidgets.py @@ -0,0 +1,62 @@ +from frappy.gui.qt import QCheckBox, QComboBox, QLineEdit, pyqtSignal + +from frappy.datatypes import BoolType, EnumType + +# ArrayOf, BLOBType, FloatRange, IntRange, StringType, StructOf, TextType, TupleOf + + +def get_input_widget(datatype, parent=None): + return { + EnumType: EnumInput, + BoolType: BoolInput, + }.get(datatype.__class__, GenericInput)(datatype, parent) + + +class GenericInput(QLineEdit): + submitted = pyqtSignal() + def __init__(self, datatype, parent=None): + super().__init__(parent) + self.datatype = datatype + self.setPlaceholderText('new value') + self.returnPressed.connect(self.submit) + + def get_input(self): + return self.datatype.from_string(self.text()) + + def submit(self): + self.submitted.emit() + + +class EnumInput(QComboBox): + submitted = pyqtSignal() + def __init__(self, datatype, parent=None): + super().__init__(parent) + self.setPlaceholderText('choose value') + self.datatype = datatype + + self._map = {} + self._revmap = {} + for idx, member in enumerate(datatype._enum.members): + self._map[idx] = member + self._revmap[member.name] = idx + self._revmap[member.value] = idx + self.addItem(member.name, member.value) + + def get_input(self): + return self._map[self.currentIndex()].value + + def submit(self): + self.submitted.emit() + + +class BoolInput(QCheckBox): + submitted = pyqtSignal() + def __init__(self, datatype, parent=None): + super().__init__(parent) + self.datatype = datatype + + def get_input(self): + return self.checkState() + + def submit(self): + self.submitted.emit() diff --git a/frappy/gui/logwindow.py b/frappy/gui/logwindow.py new file mode 100644 index 0000000..11b98fd --- /dev/null +++ b/frappy/gui/logwindow.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +from logging import NOTSET, Handler + +from frappy.gui.qt import QMainWindow, QObject, pyqtSignal + +from frappy.gui.util import Colors, loadUi + + +class LogWindowHandler(Handler, QObject): + + logmessage = pyqtSignal(object) + + def __init__(self, level=NOTSET): + QObject.__init__(self) + Handler.__init__(self, level) + self.log = [] + + def emit(self, record): + self.log.append(record) + self.logmessage.emit(record) + + def getEntries(self, level): + return [rec for rec in self.log if rec.levelno >= level] + +class LogWindow(QMainWindow): + closed = pyqtSignal() + levels = {'Debug':10, 'Info':20, 'Warning':30, 'Error':40} + + def __init__(self, handler, parent=None): + super().__init__(parent) + loadUi(self, 'logwindow.ui') + self.timecolor = Colors.colors['gray'] + self.level = self.levels['Info'] + self.messagecolors = { + 10 : Colors.colors['gray'], + 20 : Colors.palette.windowText().color(), + 30 : Colors.colors['orange'], + 40 : Colors.colors['red'], + } + self.handler = handler + self.handler.logmessage.connect(self.newEntry) + self.setMessages(self.handler.getEntries(self.level)) + + def setMessages(self, msgs): + for msg in msgs: + self.appendMessage(msg) + + def newEntry(self, record): + if record.levelno >= self.level: + self.appendMessage(record) + + def appendMessage(self, record): + s = record.getMessage() + time = record.created + if record.levelno == self.levels['Error']: + s = f'{s}' + s = f'[{time}] ' \ + f'' \ + f'{record.name}: {s}' + self.logBrowser.append(s) + + def on_logLevel_currentTextChanged(self, level): + self.level = self.levels[level] + self.logBrowser.clear() + self.setMessages(self.handler.getEntries(self.level)) + + def on_clear_pressed(self): + self.logBrowser.clear() + + def closeEvent(self, event): + self.closed.emit() + self.deleteLater() diff --git a/frappy/gui/mainwindow.py b/frappy/gui/mainwindow.py new file mode 100644 index 0000000..22432de --- /dev/null +++ b/frappy/gui/mainwindow.py @@ -0,0 +1,301 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Lenz +# Alexander Zaft +# +# ***************************************************************************** + +from frappy.gui.qt import QAction, QInputDialog, QKeySequence, QMainWindow, \ + QMessageBox, QObject, QPixmap, QSettings, QShortcut, Qt, QWidget, \ + pyqtSignal, pyqtSlot + +import frappy.version +from frappy.gui.connection import QSECNode +from frappy.gui.logwindow import LogWindow, LogWindowHandler +from frappy.gui.nodewidget import NodeWidget +from frappy.gui.tabwidget import TearOffTabWidget +from frappy.gui.util import Colors, is_light_theme, loadUi + + +class Greeter(QWidget): + recentClearBtn = pyqtSignal() + addnodes = pyqtSignal(list) + + def __init__(self, parent=None): + super().__init__(parent) + loadUi(self, 'greeter.ui') + if not is_light_theme(self.palette()): + # maybe change it at runtime instead of second file? + self.logoLabel.setPixmap(QPixmap(':/icons/logo_subtitle_light')) + self.loadRecent() + self.recentNodes.itemDoubleClicked.connect(self.recentNodeDoubleClicked) + self.shortcut = QShortcut(QKeySequence("Return"), self.recentNodes, + self.on_connectRecentButton_clicked, + context=Qt.ShortcutContext.WidgetWithChildrenShortcut) + + def loadRecent(self): + self.recentNodes.clear() + settings = QSettings() + recent = settings.value('recent', []) + for host in recent: + self.recentNodes.addItem(host) + + @pyqtSlot() + def on_ClearButton_clicked(self): + self.recentClearBtn.emit() + + @pyqtSlot() + def on_connectRecentButton_clicked(self): + selected = self.recentNodes.selectedItems() + hosts = [item.text() for item in selected] + self.addnodes.emit(hosts) + + @pyqtSlot() + def on_AddSECNodeButton_clicked(self): + self.addnodes.emit([self.secnodeEdit.text() + or self.secnodeEdit.placeholderText()]) + + def recentNodeDoubleClicked(self, item): + self.addnodes.emit([item.text()]) + + +class HistorySerializer(QObject): + def __init__(self, parent=None): + super().__init__(parent) + settings = QSettings() + self.history = settings.value('consoleHistory', []) + + def append(self, text): + self.history.append(text) + + def saveHistory(self): + settings = QSettings() + settings.setValue('consoleHistory', self.history) + +class MainWindow(QMainWindow): + recentNodesChanged = pyqtSignal() + + def __init__(self, hosts, logger, parent=None): + super().__init__(parent) + + # centralized handling for logging and cmd-history + self.loghandler = LogWindowHandler() + self.log = logger + self.log.addHandler(self.loghandler) + self.logwin = None + self.historySerializer = HistorySerializer() + + loadUi(self, 'mainwin.ui') + Colors._setPalette(self.palette()) + + self.toolBar.hide() + self.buildRecentNodeMenu() + self.recentNodesChanged.connect(self.buildRecentNodeMenu) + settings = QSettings() + self.actionHighlightAnimation.blockSignals(True) + self.actionHighlightAnimation.setChecked( + settings.value('highlightanimation', True, bool)) + self.actionHighlightAnimation.blockSignals(False) + + # what is which? + self.tab = TearOffTabWidget(self, self, self, self) + self.tab.setTabsClosable(True) + self.tab.tabCloseRequested.connect(self._handleTabClose) + self.shortcut = QShortcut(QKeySequence("Ctrl+W"), self, + self.tab.close_current) + self.setCentralWidget(self.tab) + + greeter = Greeter(self) + greeter.addnodes.connect(self.addNodes) + greeter.recentClearBtn.connect(self.on_actionClear_triggered) + self.recentNodesChanged.connect(greeter.loadRecent) + self.tab.addPanel(greeter, 'Welcome') + + self._nodeWidgets = {} + + # add localhost (if available) and SEC nodes given as arguments + self.addNodes(hosts) + + @pyqtSlot() + def on_actionAbout_triggered(self): + try: + ver = frappy.version.get_version() + except Exception: + ver = 'unknown' + + QMessageBox.about( + self, 'About Frappy GUI', + f''' +

About Frappy GUI

+

A graphical client for the SECoP protocol.

+

© 2017-2023 Frappy contributors:

+ +

Frappy is available under the + GNU General + Public License version 2.0 or later.

+

Version: v{ver}

+ ''') + + @pyqtSlot() + def on_actionAdd_SEC_node_triggered(self): + host, ok = QInputDialog.getText( + self, 'Add SEC node', + 'Enter SEC node URI (or just hostname:port):') + + if not ok: + return + self.addNode(host) + + @pyqtSlot() + def on_actionReconnect_triggered(self): + self.tab.currentWidget().getSecNode().reconnect() + + def on_actionDetailed_View_toggled(self, toggled): + self._rebuildAdvanced(toggled) + + def on_actionShow_Logs_toggled(self, active): + if not active and self.logwin: + self.logwin.close() + self.logwin = None + return + self.logwin = LogWindow(self.loghandler, self) + self.logwin.closed.connect(self.onLogWindowClose) + self.logwin.show() + + def onLogWindowClose(self): + if self.actionShow_Logs.isChecked(): + self.actionShow_Logs.toggle() + self.logwin = None + + def on_actionHighlightAnimation_toggled(self, toggled): + settings = QSettings() + settings.setValue('highlightanimation', toggled) + + # def on_validateCheckBox_toggled(self, state): + # print('validateCheckBox_toggled', state) + + # def on_visibilityComboBox_activated(self, level): + # if level in ['user', 'admin', 'expert']: + # print('visibility Level now:', level) + + def addNodes(self, hosts): + for host in hosts: + self.addNode(host) + + def addNode(self, host): + try: + self.log.info('Trying to connect to %s', host) + self._addNode(host) + except Exception as e: + self.log.error('error in addNode: %r', e) + QMessageBox.critical(self.parent(), + f'Connecting to {host} failed!', str(e)) + + def _addNode(self, host): + prevWidget = self._nodeWidgets.get(host) + if prevWidget: + self.tab.setCurrentWidget(prevWidget) + return + # create client + node = QSECNode(host, self.log, parent=self) + nodeWidget = NodeWidget(node) + nodeWidget.setParent(self) + nodeWidget.consoleTextSent.connect(self.historySerializer.append) + nodeWidget._rebuildAdvanced(self.actionDetailed_View.isChecked()) + + # Node and NodeWidget created without error + self.tab.addTab(nodeWidget, node.equipmentId) + self._nodeWidgets[host] = nodeWidget + self.tab.setCurrentWidget(nodeWidget) + node.descriptionChanged.connect(self._descriptiveDataChange) + + # add to recent nodes + settings = QSettings() + recent = settings.value('recent', []) + if host in recent: + recent.remove(host) + recent.insert(0, host) + settings.setValue('recent', recent) + self.recentNodesChanged.emit() + + def buildRecentNodeMenu(self): + settings = QSettings() + recent = settings.value('recent', []) + menu = self.menuRecent_SECNodes + for action in list(menu.actions()): + if action.isSeparator(): + break + menu.removeAction(action) + # save reference so they are not deleted + self.recentNodeActions = [] + for host in recent: + a = QAction(host) + a.triggered.connect(lambda _t, h=host: self.addNode(h)) + self.recentNodeActions.append(a) + menu.insertActions(action, self.recentNodeActions) + + def on_actionClear_triggered(self): + """clears recent SECNode menu""" + settings = QSettings() + settings.remove('recent') + self.recentNodesChanged.emit() + + def _handleTabClose(self, index): + nodeWidget = self.tab.widget(index) + try: + node = nodeWidget.getSecNode() + except AttributeError: + # Closing the greeter + self.log.debug("Greeter Tab closed") + else: + # disconnect node from all events + node.terminate_connection() + self._nodeWidgets.pop(node.contactPoint) + self.log.debug("Closing tab with node %s", node.nodename) + self.tab.removeTab(index) + + def _descriptiveDataChange(self, host, node): + old_widget = self._nodeWidgets[host] + new_widget = NodeWidget(node) + curr_idx = self.tab.currentIndex() + index = self.tab.indexOf(old_widget) + self._nodeWidgets[host] = new_widget + self.tab.replace_widget(old_widget, new_widget, title=node.equipmentId) + if curr_idx == index: + self.tab.setCurrentIndex(curr_idx) + + def _rebuildAdvanced(self, advanced): + if advanced: + pass + else: + pass + for widget in self._nodeWidgets.values(): + widget._rebuildAdvanced(advanced) + + def _onQuit(self): + for widget in self._nodeWidgets.values(): + # this is only qt signals deconnecting! + widget.getSecNode().terminate_connection() + self.historySerializer.saveHistory() diff --git a/frappy/gui/moduleoverview.py b/frappy/gui/moduleoverview.py new file mode 100644 index 0000000..ca1bc9b --- /dev/null +++ b/frappy/gui/moduleoverview.py @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +from frappy.datatypes import StatusType +from frappy.gui.qt import QIcon, Qt, QTreeWidget, QTreeWidgetItem, pyqtSignal + + +class ParamItem(QTreeWidgetItem): + def __init__(self, node, module, param): + super().__init__() + self.module = module + self.param = param + self.setText(0, param) + + +class ModuleItem(QTreeWidgetItem): + display = {'status': 0, 'value': 1, 'target': 2, 'status/text': 3} + + def __init__(self, node, module): + super().__init__() + ModuleItem._loadicons() + self.module = module + self.param = None + #self._expanded = False + #self._params = {} + + parameters = node.getParameters(module) + self._hasTarget = 'target' in parameters + #if self._hasTarget: + # self.setFlags(self.flags() | Qt.ItemIsEditable) + if 'status' not in parameters: + self.setIcon(self.display['status'], ModuleItem.icons['clear']) + + self.setText(0, self.module) + # initial read + cache = node.queryCache(self.module) + for param, val in cache.items(): + self.valueChanged(param, val) + + self.params = [] + for param in parameters: + self.params.append(ParamItem(node, module, param)) + + @classmethod + def _loadicons(cls): + if hasattr(cls, 'icons'): + return + cls.icons = { + 'disabled': QIcon(':/leds/gray'), + 'idle': QIcon(':/leds/green'), + 'warn':QIcon(':/leds/orange'), + 'error': QIcon(':/leds/red'), + 'busy': QIcon(':/leds/yellow'), + 'unknown': QIcon(':/leds/unknown'), + 'clear': QIcon(':/leds/clear'), + } + + @classmethod + def statusIcon(cls, statuscode): + if statuscode == 0: + return ModuleItem.icons['disabled'] + if statuscode in range(100, 200): + return ModuleItem.icons['idle'] + if statuscode in range(200, 300): + return ModuleItem.icons['warn'] + if statuscode in range(300, 400): + return ModuleItem.icons['busy'] + if statuscode in range(400, 500): + return ModuleItem.icons['error'] + return ModuleItem.icons['clear'] + + def valueChanged(self, parameter, value): + if parameter not in self.display: + return + if parameter == 'status': + if value.readerror: + self.setIcon(self.display[parameter], ModuleItem.statusIcon(StatusType.ERROR)) + self.setText(self.display['status/text'], str(value.readerror)) + else: + self.setIcon(self.display[parameter], ModuleItem.statusIcon(value.value[0].value)) + self.setText(self.display['status/text'], value.value[1]) + else: + self.setText(self.display[parameter], value.formatted()) + + def disconnected(self): + self.setIcon(self.display['status'], ModuleItem.icons['unknown']) + + def setClearIcon(self): + self.setIcon(self.display['status'], ModuleItem.icons['clear']) + + def hasTarget(self): + return self._hasTarget + + def _rebuildAdvanced(self, advanced): + if advanced: + self.addChildren(self.params) + else: + for p in self.params: + self.removeChild(p) + + +class ModuleOverview(QTreeWidget): + # current module/param, prev module/param + itemChanged = pyqtSignal(str, str) + def __init__(self, node, parent=None): + super().__init__(parent) + self._node = node + self._modules = {} + + #self.setHeaderHidden(True) + #self.setChildIndicatorPolicy(QTreeWidgetItem.DontShowIndicator) + self.setRootIsDecorated(False) + self.setExpandsOnDoubleClick(False) + self.setColumnCount(4) + header = self.headerItem() + header.setText(0, 'Name') + header.setText(1, 'Value') + header.setText(2, 'Target') + header.setText(3, 'Status') + for module in sorted(self._node.modules): + mod = ModuleItem(self._node, module) + self._modules[module] = mod + self.addTopLevelItem(mod) + self._resizeColumns() + + self.itemExpanded.connect(self._resizeColumns) + self.itemCollapsed.connect(self._resizeColumns) + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + # self.customContextMenuRequested.connect(self._contextMenu) + + self._node.newData.connect(self._updateValue) + self.currentItemChanged.connect(self.handleCurrentItemChanged) + #self.itemDoubleClicked.connect(self.handleDoubleClick) + + # def handleDoubleClick(self, item, column): + # if item.hasTarget() and column == 2: + # self.editItem(item, column) + + def mouseReleaseEvent(self, event): + if event.button() == Qt.MouseButton.LeftButton: + if self.itemAt(event.pos()) is None: + self.clearTreeSelection() + return super().mouseReleaseEvent(event) + + def handleCurrentItemChanged(self, current, previous): + self.itemChanged.emit(current.module, current.param or '') + + def setToDisconnected(self): + for module in self._modules.values(): + module.disconnected() + + def setToReconnected(self): + """set status after connection is reestablished. + + If the node-description has changed during the reconnection, the nodewidget + this overview is a part of gets replaced. However, the reconnect-event + gets through before the descriptionChanged-event. So if a module is no + longer present we return early in order to avoid KeyErrors on node.modules + For the case of additional modules or changed module contents we do not care. + """ + nodemods = self._node.modules.keys() + for mname, module in self._modules.items(): + if mname not in nodemods: + return # description changed and we will be replaced, return early + cache = self._node.queryCache(mname) + if not 'status' in cache: + module.setClearIcon() + continue + module.valueChanged('status', cache['status']) + + def _updateValue(self, module, parameter, value): + self._modules[module].valueChanged(parameter, value) + + def _rebuildAdvanced(self, advanced): + self.setRootIsDecorated(advanced) + for module in self._modules.values(): + module._rebuildAdvanced(advanced) + self._resizeColumns() + + def _resizeColumns(self): + for i in range(self.columnCount()): + self.resizeColumnToContents(i) + + def clearTreeSelection(self): + selected = self.selectedItems() + if not selected: + return + self.clearSelection() + self.itemChanged.emit('', '') + self.last_was_clear = True diff --git a/frappy/gui/modulewidget.py b/frappy/gui/modulewidget.py new file mode 100644 index 0000000..503f971 --- /dev/null +++ b/frappy/gui/modulewidget.py @@ -0,0 +1,454 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +from frappy.gui.qt import QColor, QDialog, QHBoxLayout, QIcon, QLabel, \ + QLineEdit, QMessageBox, QPropertyAnimation, QPushButton, Qt, QToolButton, \ + QWidget, pyqtProperty, pyqtSignal + +from frappy.gui.util import Colors, loadUi +from frappy.gui.valuewidgets import get_widget +from frappy.gui.inputwidgets import get_input_widget + + +class CommandDialog(QDialog): + def __init__(self, cmdname, argument, parent=None): + super().__init__(parent) + loadUi(self, 'cmddialog.ui') + + self.setWindowTitle(f'Arguments for {cmdname}') + # row = 0 + + self._labels = [] + self.widgets = [] + # improve! recursive? + dtype = argument + label = QLabel(repr(dtype)) + label.setWordWrap(True) + widget = get_widget(dtype, readonly=False) + self.gridLayout.addWidget(label, 0, 0) + self.gridLayout.addWidget(widget, 0, 1) + self._labels.append(label) + self.widgets.append(widget) + + self.gridLayout.setRowStretch(1, 1) + self.setModal(True) + self.resize(self.sizeHint()) + + def get_value(self): + return True, self.widgets[0].get_value() + + def exec(self): + if super().exec(): + return self.get_value() + return None + + +def showCommandResultDialog(command, args, result, extras=''): + m = QMessageBox() + args = '' if args is None else repr(args) + m.setText(f'calling: {command}({args})\nyielded: {result!r}\nqualifiers: {extras}') + m.exec() + + +def showErrorDialog(command, args, error): + m = QMessageBox() + args = '' if args is None else repr(args) + m.setText(f'calling: {command}({args})\nraised {error!r}') + m.exec() + + +class CommandButton(QPushButton): + def __init__(self, cmdname, cmdinfo, cb, parent=None): + super().__init__(parent) + + self._cmdname = cmdname + self._argintype = cmdinfo['datatype'].argument # single datatype + self.result = cmdinfo['datatype'].result + self._cb = cb # callback function for exection + + self.setText(cmdname) + if cmdinfo['description']: + self.setToolTip(cmdinfo['description']) + self.pressed.connect(self.on_pushButton_pressed) + + def on_pushButton_pressed(self): + #self.setEnabled(False) + if self._argintype: + dlg = CommandDialog(self._cmdname, self._argintype) + args = dlg.exec() + if args: # not 'Cancel' clicked + self._cb(self._cmdname, args[1]) + else: + # no need for arguments + self._cb(self._cmdname, None) + #self.setEnabled(True) + + +class AnimatedLabel(QLabel): + def __init__(self, parent=None): + super().__init__(parent) + self.setAutoFillBackground(True) + self.backgroundColor = self.palette().color(self.backgroundRole()) + self.animation = QPropertyAnimation(self, b"bgColor", self) + self.animation.setDuration(350) + self.animation.setStartValue(Colors.colors['yellow']) + self.animation.setEndValue(self.backgroundColor) + + @pyqtProperty(QColor) + def bgColor(self): + return self.palette().color(self.backgroundRole()) + + @bgColor.setter + def bgColor(self, color): + p = self.palette() + p.setColor(self.backgroundRole(), color) + self.setPalette(p) + + def triggerAnimation(self): + self.animation.start() + + +class AnimatedLabelHandthrough(QWidget): + """This class is a crutch for the failings of the current grouping + implementation. TODO: It has to be removed in the grouping rework """ + def __init__(self, label, btn, parent=None): + super().__init__(parent) + self.label = label + box = QHBoxLayout() + box.addWidget(btn) + box.addWidget(label) + box.setContentsMargins(0,0,0,0) + self.setLayout(box) + + def triggerAnimation(self): + self.label.triggerAnimation() + + +class ModuleWidget(QWidget): + plot = pyqtSignal(str) + plotAdd = pyqtSignal(str) + paramDetails = pyqtSignal(str, str) + def __init__(self, node, name, parent=None): + super().__init__(parent) + loadUi(self, 'modulewidget.ui') + self._node = node + self._name = name + self._paramDisplays = {} + self._paramInputs = {} + self._addbtns = [] + self._paramWidgets = {} + self._groups = {} + self._groupStatus = {} + self.independentParams = [] + + self._initModuleInfo() + self.infoGrid.hide() + + row = 0 + params = dict(self._node.getParameters(self._name)) + if 'status' in params: + params.pop('status') + self._addRParam('status', row) + row += 1 + if 'value' in params: + params.pop('value') + self._addRParam('value', row) + row += 1 + if 'target' in params: + params.pop('target') + self._addRWParam('target', row) + row += 1 + + allGroups = set() + for param in params: + props = self._node.getProperties(self._name, param) + group = props.get('group', '') + if group: + allGroups.add(group) + self._groups.setdefault(group, []).append(param) + else: + self.independentParams.append(param) + for key in sorted(allGroups.union(set(self.independentParams))): + if key in allGroups: + if key in self._groups[key]: + # Param with same name as group + self._addParam(key, row) + name = AnimatedLabel(key) + button = QToolButton() + button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextOnly) + button.setText('+') + button.setObjectName('collapseButton') + button.pressed.connect( + lambda group=key: self._toggleGroupCollapse(group)) + groupLabel = AnimatedLabelHandthrough(name, button) + + l = self.moduleDisplay.layout() + label = l.itemAtPosition(row, 0).widget() + l.replaceWidget(label, groupLabel) + row += 1 + old = self._paramWidgets[key].pop(0) + old.setParent(None) + self._paramWidgets[key].insert(0, groupLabel) + self._setParamHidden(key, True) + else: + name = AnimatedLabel(key) + button = QToolButton() + button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextOnly) + button.setText('+') + button.setObjectName('collapseButton') + button.pressed.connect( + lambda group=key: self._toggleGroupCollapse(group)) + box = QHBoxLayout() + box.addWidget(button) + box.addWidget(name) + box.setContentsMargins(0,0,0,0) + groupLabel = QWidget() + groupLabel.setLayout(box) + + l = self.moduleDisplay.layout() + l.addWidget(groupLabel, row, 0) + row += 1 + self._paramWidgets[key] = [groupLabel] + self._groups[key].append(key) + self._setParamHidden(key, True) + for p in self._groups[key]: + if p == key: + continue + self._addParam(p, row) + row += 1 + self._setParamHidden(p, True) + else: + self._addParam(key, row) + row += 1 + self._setParamHidden(key, True) + + self._addCommands(row) + + cache = self._node.queryCache(self._name) + for param, val in cache.items(): + self._updateValue(self._name, param, val) + + node.newData.connect(self._updateValue) + + def _initModuleInfo(self): + props = dict(self._node.getModuleProperties(self._name)) + self.moduleName.setText(self._name) + self._moduleDescription = props.pop('description', + 'no description provided') + text = self._moduleDescription.split('\n', 1)[0] + self.moduleDescription.setText(text) + + self.groupInfo.setText(props.pop('group', '-')) + feats = ','.join(props.pop('features', [])) or '-' + self.featuresInfo.setText(feats) + self.implementationInfo.setText(props.pop('implementation', 'MISSING')) + ifaces = ','.join(props.pop('interface_classes', [])) or '-' + self.interfaceClassesInfo.setText(ifaces) + + # any additional properties are added after the standard ones + row = 2 + count = 0 + for prop, value in props.items(): + l = QHBoxLayout() + l.setContentsMargins(0,0,0,0) + name = QLabel(f'{prop.capitalize()}:') + val = QLabel(str(value)) + val.setWordWrap(True) + l.addWidget(name) + l.addWidget(val) + additional = QWidget() + additional.setLayout(l) + self.infoGrid.layout().addWidget( + additional, row + count // 2, count % 2) + count += 1 + + def on_showDetailsBtn_toggled(self, checked): + self.showDetails(checked) + + def _updateValue(self, mod, param, val): + if mod != self._name: + return + if param in self._paramDisplays: + self._paramDisplays[param].setText(val.formatted()) + + def _addParam(self, param, row): + paramProps = self._node.getProperties(self._name, param) + if paramProps['readonly']: + self._addRParam(param, row) + else: + self._addRWParam(param, row) + + def _addRParam(self, param, row): + nameLabel = AnimatedLabel(param) + display = QLineEdit() + + p = display.palette() + p.setColor(display.backgroundRole(), Colors.palette.window().color()) + display.setPalette(p) + self._paramDisplays[param] = display + self._paramWidgets[param] = [nameLabel, display] + + l = self.moduleDisplay.layout() + l.addWidget(nameLabel, row,0,1,1) + l.addWidget(display, row,1,1,5) + l.addWidget(QLabel(''), row,6,1,1) + self._addButtons(param, row) + + def _addRWParam(self, param, row): + nameLabel = AnimatedLabel(param) + display = QLineEdit() + props = self._node.getProperties(self._name, param) + inputEdit = get_input_widget(props.get('datatype')) + submitButton = QPushButton('set') + submitButton.setIcon(QIcon(':/icons/submit')) + + p = display.palette() + p.setColor(display.backgroundRole(), Colors.palette.window().color()) + display.setPalette(p) + submitButton.pressed.connect(lambda: self._button_pressed(param)) + inputEdit.submitted.connect(lambda param=param: self._button_pressed(param)) + self._paramDisplays[param] = display + self._paramInputs[param] = inputEdit + self._paramWidgets[param] = [nameLabel, display, inputEdit, submitButton] + + l = self.moduleDisplay.layout() + l.addWidget(nameLabel, row,0,1,1) + l.addWidget(display, row,1,1,2) + l.addWidget(inputEdit, row,4,1,2) + l.addWidget(submitButton, row, 6) + self._addButtons(param, row) + + def _addButtons(self, param, row): + if param == 'status': + return + plotButton = QToolButton() + plotButton.setIcon(QIcon(':/icons/plot')) + plotButton.setToolTip(f'Plot {param}') + plotAddButton = QToolButton() + plotAddButton.setIcon(QIcon(':/icons/plot-add')) + plotAddButton.setToolTip('Plot With...') + + detailsButton= QToolButton() + detailsButton.setIcon(QIcon(':/icons/plot-add')) + detailsButton.setToolTip('show parameter details') + + plotButton.clicked.connect(lambda: self.plot.emit(param)) + plotAddButton.clicked.connect(lambda: self.plotAdd.emit(param)) + detailsButton.clicked.connect(lambda: self.showParamDetails(param)) + + self._addbtns.append(plotAddButton) + plotAddButton.setDisabled(True) + self._paramWidgets[param].append(plotButton) + self._paramWidgets[param].append(plotAddButton) + self._paramWidgets[param].append(detailsButton) + + l = self.moduleDisplay.layout() + l.addWidget(plotButton, row, 7) + l.addWidget(plotAddButton, row, 8) + l.addWidget(detailsButton, row, 9) + + def _addCommands(self, startrow): + cmdicons = { + 'stop': QIcon(':/icons/stop'), + } + cmds = self._node.getCommands(self._name) + if not cmds: + return + + l = self.moduleDisplay.layout() + # max cols in GridLayout, find out programmatically? + maxcols = 7 + l.addWidget(QLabel('Commands:')) + for (i, cmd) in enumerate(cmds): + cmdb = CommandButton(cmd, cmds[cmd], self._execCommand) + if cmd in cmdicons: + cmdb.setIcon(cmdicons[cmd]) + row = startrow + i // maxcols + col = (i % maxcols) + 1 + l.addWidget(cmdb, row, col) + + + def _execCommand(self, command, args=None): + try: + result, qualifiers = self._node.execCommand( + self._name, command, args) + except Exception as e: + showErrorDialog(command, args, e) + return + if result is not None: + showCommandResultDialog(command, args, result, qualifiers) + + def _setParamHidden(self, param, hidden): + for w in self._paramWidgets[param]: + w.setHidden(hidden) + + def _toggleGroupCollapse(self, group): + collapsed = not self._groupStatus.get(group, True) + self._groupStatus[group] = collapsed + for param in self._groups[group]: + if param == group: # dont hide the top level + btn = self._paramWidgets[param][0].findChild(QToolButton, + 'collapseButton') + if collapsed: + btn.setText('+') + else: + btn.setText('-') + continue + self._setParamHidden(param, collapsed) + + def _setGroupHidden(self, group, show): + for param in self._groups[group]: + if show and param == group: # dont hide the top level + self._setParamHidden(param, False) + elif show and self._groupStatus.get(group, False): + self._setParamHidden(param, False) + else: + self._setParamHidden(param, True) + + def showDetails(self, show): + if show: + self.moduleDescription.setText(self._moduleDescription) + else: + text = self._moduleDescription.split('\n', 1)[0] + self.moduleDescription.setText(text) + self.infoGrid.setHidden(not show) + for param in self.independentParams: + if param in ['value', 'status', 'target']: + continue + self._setParamHidden(param, not show) + for group in self._groups: + self._setGroupHidden(group, show) + + def showParamDetails(self, param): + self.paramDetails.emit(self._name, param) + + def _button_pressed(self, param): + target = self._paramInputs[param].get_input() + try: + self._node.setParameter(self._name, param, target) + except Exception as e: + QMessageBox.warning(self.parent(), 'Operation failed', str(e)) + + def plotsPresent(self, present): + for btn in self._addbtns: + btn.setDisabled(present) diff --git a/frappy/gui/nodewidget.py b/frappy/gui/nodewidget.py new file mode 100644 index 0000000..5cd404c --- /dev/null +++ b/frappy/gui/nodewidget.py @@ -0,0 +1,216 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +from collections import OrderedDict + +from frappy.gui.qt import QCursor, QIcon, QInputDialog, QMenu, QSettings, \ + QVBoxLayout, QWidget, pyqtSignal + +from frappy.gui.console import Console +from frappy.gui.moduleoverview import ModuleOverview +from frappy.gui.modulewidget import ModuleWidget +from frappy.gui.paramview import ParameterView +from frappy.gui.plotting import getPlotWidget +from frappy.gui.util import Colors, loadUi + + +class NodeWidget(QWidget): + noPlots = pyqtSignal(bool) + consoleTextSent = pyqtSignal(str) + + def __init__(self, node, parent=None): + super().__init__(parent) + loadUi(self, 'nodewidget.ui') + + self._node = node + self._node.stateChange.connect(self._set_node_state) + + self.detailed = False + self._modules = OrderedDict() + self._detailedParams = {} + self._activePlots = {} + + self.top_splitter.setStretchFactor(0, 2) + self.top_splitter.setStretchFactor(1, 10) + self.top_splitter.setSizes([180, 500]) + + self.middle_splitter.setCollapsible( + self.middle_splitter.indexOf(self.view), False) + self.middle_splitter.setStretchFactor(0, 20) + self.middle_splitter.setStretchFactor(1, 1) + + self.infobox_splitter.setStretchFactor(0, 3) + self.infobox_splitter.setStretchFactor(1, 2) + + self.consoleWidget.setTitle('Console') + cmd = Console(node, self.consoleWidget) + cmd.msgLineEdit.sentText.connect(self.consoleTextSent.emit) + self.consoleWidget.replaceWidget(cmd) + + viewLayout = self.viewContent.layout() + for module in node.modules: + widget = ModuleWidget(node, module, self.view) + widget.plot.connect(lambda param, module=module: + self.plotParam(module, param)) + widget.plotAdd.connect(lambda param, module=module: + self._plotPopUp(module, param)) + widget.paramDetails.connect(self.showDetailedParam) + widget.showDetails(self.detailed) + self.noPlots.connect(widget.plotsPresent) + self._modules[module] = widget + self._detailedParams[module] = {} + for param in node.getParameters(module): + view = ParameterView(node, module, param) + view.setWindowTitle(f'{self._node.equipmentId}:{module}:{param} - Properties') + self._detailedParams[module][param] = view + viewLayout.addWidget(widget) + + self._initNodeInfo() + + def _initNodeInfo(self): + self.tree = ModuleOverview(self._node) + infolayout = QVBoxLayout() + infolayout.setContentsMargins(0, 0, 0, 0) + infolayout.addWidget(self.tree) + self.infotree.setLayout(infolayout) + # disabled until i find a way to deselect and go back to overview + self.tree.itemChanged.connect(self.changeViewContent) + self.tree.customContextMenuRequested.connect(self._treeContextMenu) + + self.descriptionEdit.setPlainText( + self._node.properties.get('description', 'no description available')) + self.hostLabel.setText(self._node.conn.uri) + self.protocolLabel.setText( + # insert some invisible spaces to get better wrapping + self._node.conn.secop_version.replace(',', ',\N{ZERO WIDTH SPACE}')) + + def _set_node_state(self, nodename, online, state): + p = self.palette() + if online: + p.setColor(self.backgroundRole(), Colors.palette.window().color()) + self.tree.setToReconnected() + else: + p.setColor(self.backgroundRole(), Colors.colors['orange']) + # TODO: reset this for non-status modules! + self.tree.setToDisconnected() + self.setPalette(p) + + def _rebuildAdvanced(self, advanced): + self.detailed = advanced + self.tree._rebuildAdvanced(advanced) + for m in self._modules.values(): + m.showDetailsBtn.setChecked(advanced) + + def getSecNode(self): + return self._node + + def changeViewContent(self, module, param): + if module == '' and param == '': + return # for now, don't do anything when resetting selection + if param == '': + widget = self._modules[module].moduleName + else: + widget = self._modules[module]._paramWidgets[param][0] + self.view.ensureWidgetVisible(widget) + settings = QSettings() + if settings.value('highlightanimation', True, bool): + widget.triggerAnimation() + + def showDetailedParam(self, module, param): + self._detailedParams[module][param].show() + + def _treeContextMenu(self, pos): + index = self.tree.indexAt(pos) + if not index.isValid(): + return + item = self.tree.itemFromIndex(index) + + menu = QMenu() + opt_plot = menu.addAction('Plot') + opt_plot.setIcon(QIcon(':/icons/plot')) + menu_plot_ext = menu.addMenu("Plot with...") + menu_plot_ext.setIcon(QIcon(':/icons/plot')) + if not self._activePlots: + menu_plot_ext.setEnabled(False) + else: + for (m, p), plot in self._activePlots.items(): + opt_ext = menu_plot_ext.addAction(f"{m}:{p}") + opt_ext.triggered.connect( + lambda plot=plot: self._requestPlot(item, plot)) + + menu.addSeparator() + opt_clear = menu.addAction('Clear Selection') + opt_plot.triggered.connect(lambda: self._requestPlot(item)) + opt_clear.triggered.connect(self.tree.clearTreeSelection) + # menu.exec(self.mapToGlobal(pos)) + menu.exec(QCursor.pos()) + + def _requestPlot(self, item, plot=None): + module = item.module + param = item.param or 'value' + self.plotParam(module, param, plot) + + def _plotPopUp(self, module, param): + plots = {'%s -> %s' % mp: mp for mp in self._activePlots} + dialog = QInputDialog() + # dialog.setInputMode() + dialog.setOption( + QInputDialog.InputDialogOption.UseListViewForComboBoxItems) + dialog.setComboBoxItems(plots.keys()) + dialog.setTextValue(list(plots)[0]) + dialog.setWindowTitle(f'Plot {param} with...') + dialog.setLabelText('') + + if dialog.exec() == QInputDialog.DialogCode.Accepted: + item = dialog.textValue() + self.plotParam(module, param, self._activePlots[plots[item]]) + + def plotParam(self, module, param, plot=None): + # - liveness? + # - better plot window management? + + # only allow one open plot per parameter TODO: change? + if (module, param) in self._activePlots: + return + if plot: + plot.addCurve(self._node, module, param) + plot.setCurveColor(module, param, + Colors.colors[len(plot.curves) % 6]) + else: + plot = getPlotWidget(self) + plot.addCurve(self._node, module, param) + plot.setCurveColor(module, param, Colors.colors[1]) + self._activePlots[(module, param)] = plot + plot.closed.connect(lambda: self._removePlot(module, param)) + plot.show() + + self.noPlots.emit(len(self._activePlots) == 0) + + # initial datapoint + cache = self._node.queryCache(module) + if param in cache: + plot.update(module, param, cache[param]) + + def _removePlot(self, module, param): + self._activePlots.pop((module, param)) + self.noPlots.emit(len(self._activePlots) == 0) diff --git a/secop/gui/params/__init__.py b/frappy/gui/params/__init__.py similarity index 94% rename from secop/gui/params/__init__.py rename to frappy/gui/params/__init__.py index f2162fe..2ecdabc 100644 --- a/secop/gui/params/__init__.py +++ b/frappy/gui/params/__init__.py @@ -22,9 +22,10 @@ # ***************************************************************************** -from secop.datatypes import EnumType -from secop.gui.qt import QWidget, pyqtSignal, pyqtSlot -from secop.gui.util import loadUi +from frappy.gui.qt import QWidget, pyqtSignal, pyqtSlot + +from frappy.datatypes import EnumType +from frappy.gui.util import loadUi class ParameterWidget(QWidget): @@ -76,12 +77,7 @@ class GenericParameterWidget(ParameterWidget): self.setLineEdit.text()) def updateValue(self, value): - fmtstr = getattr(self._datatype, 'fmtstr', '%s') - if value.readerror: - value = str(value) - else: - value = fmtstr % (value.value,) - self.currentLineEdit.setText(value) + self.currentLineEdit.setText(str(value)) class EnumParameterWidget(GenericParameterWidget): diff --git a/secop/gui/paramview.py b/frappy/gui/paramview.py similarity index 84% rename from secop/gui/paramview.py rename to frappy/gui/paramview.py index afa3356..24cc7a4 100644 --- a/secop/gui/paramview.py +++ b/frappy/gui/paramview.py @@ -22,14 +22,15 @@ # ***************************************************************************** -from secop.gui.qt import QLabel, QSizePolicy, QWidget -from secop.gui.util import loadUi +from frappy.gui.qt import QLabel, QSizePolicy, QWidget + +from frappy.gui.util import loadUi class ParameterView(QWidget): def __init__(self, node, module, parameter, parent=None): - super(ParameterView, self).__init__(parent) + super().__init__(parent) loadUi(self, 'paramview.ui') self._node = node self._module = module @@ -37,7 +38,7 @@ class ParameterView(QWidget): self._propWidgets = {} # widget cache do avoid garbage collection - self.paramNameLabel.setText("%s:%s" % (module, parameter)) + self.paramNameLabel.setText(f"{module}:{parameter}") self._initParameterWidgets() # self._node.newData.connect(self._updateValue) @@ -54,12 +55,14 @@ class ParameterView(QWidget): for prop in sorted(props): label = QLabel(prop + ':') label.setFont(font) - label.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) + label.setSizePolicy(QSizePolicy.Policy.Minimum, + QSizePolicy.Policy.Preferred) # make 'display' label view = QLabel(str(props[prop])) view.setFont(self.font()) - view.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) + view.setSizePolicy(QSizePolicy.Policy.Expanding, + QSizePolicy.Policy.Preferred) view.setWordWrap(True) self.propertyGroupBox.layout().addWidget(label, row, 0) diff --git a/frappy/gui/plotting.py b/frappy/gui/plotting.py new file mode 100644 index 0000000..9ad6c9b --- /dev/null +++ b/frappy/gui/plotting.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2023 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Zaft +# +# ***************************************************************************** + +import time + +from frappy.gui.qt import QLabel, Qt, QVBoxLayout, QWidget, pyqtSignal + +from frappy.gui.util import Colors + +try: + import numpy as np + import pyqtgraph as pg +except ImportError: + pg = None + np = None + + +def getPlotWidget(parent): + if pg: + pg.setConfigOption('background', Colors.colors['plot-bg']) + pg.setConfigOption('foreground', Colors.colors['plot-fg']) + + if pg is None: + window = PlotPlaceHolderWidget(parent) + else: + window = PlotWidget(parent) + window.setWindowFlags(Qt.WindowType.Window) + return window + + +class PlotPlaceHolderWidget(QWidget): + closed = pyqtSignal(object) + + def __init__(self, parent=None): + super().__init__(parent) + l = QVBoxLayout() + label = QLabel("pyqtgraph is not installed!") + label.setAlignment(Qt.AlignmentFlag.AlignCenter) + l.addWidget(label) + self.setLayout(l) + self.setMinimumWidth(300) + self.setMinimumHeight(150) + self.curves = {} + + def addCurve(self, node, module, param): + pass + + def setCurveColor(self, module, param, color): + pass + + def update(self, module, param, value): + pass + + def closeEvent(self, event): + self.closed.emit(self) + event.accept() + +# TODO: +# - timer-based updates when receiving no updates from the node +# in order to make slower updates not jump that much? +# - remove curves again +class PlotWidget(QWidget): + closed = pyqtSignal(object) + + def __init__(self, parent=None): + super().__init__(parent) + self.win = pg.GraphicsLayoutWidget() + self.curves = {} + self.data = {} + self.timer = pg.QtCore.QTimer() + self.timer.timeout.connect(self.scrollUpdate) + + # TODO: Shoud this scrolling be done? or with configuration? + self.timer.start(100) + + self.plot = self.win.addPlot() + self.plot.addLegend() + self.plot.setAxisItems({'bottom': pg.DateAxisItem()}) + self.plot.setLabel('bottom', 'Time') + self.plot.setLabel('left', 'Value') + l = QVBoxLayout() + l.addWidget(self.win) + self.setLayout(l) + + def addCurve(self, node, module, param): + paramData = node._getDescribingParameterData(module, param) + name = f'{module}:{param}' + unit = paramData.get('unit', '') + if unit: + unit = '/' + unit + curve = self.plot.plot(name=f'{name}{unit}') + if 'min' in paramData and 'max' in paramData: + curve.setXRange(paramData['min'], paramData['max']) + + curve.setDownsampling(method='peak') + self.data[name] = (np.array([]),np.array([])) + self.curves[name] = curve + node.newData.connect(self.update) + + def setCurveColor(self, module, param, color): + curve = self.curves[f'{module}:{param}'] + curve.setPen(color) + + def scrollUpdate(self): + for cname, curve in self.curves.items(): + x,y = self.data[cname] + x = np.append(x, time.time()) + y = np.append(y, y[-1]) + curve.setData(x,y) + + def update(self, module, param, value): + name = f'{module}:{param}' + if name not in self.curves: + return + curve = self.curves[name] + x,y = self.data[name] + x = np.append(x, value.timestamp) + y = np.append(y, value.value) + self.data[name] = (x,y) + curve.setData(x,y) + + def closeEvent(self, event): + self.closed.emit(self) + event.accept() diff --git a/frappy/gui/qt.py b/frappy/gui/qt.py new file mode 100644 index 0000000..46ba0f3 --- /dev/null +++ b/frappy/gui/qt.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Enrico Faulhaber +# +# ***************************************************************************** +"""Import needed stuff from PyQt5/PyQt6""" + +# pylint: disable=unused-import + +import sys + +# Do not abort on exceptions in signal handlers. +# pylint: disable=unnecessary-lambda +sys.excepthook = lambda *args: sys.__excepthook__(*args) +from xml.sax.saxutils import escape as toHtmlEscaped + +try: + from PyQt6 import uic + from PyQt6.QtCore import QByteArray, QEvent, QMimeData, QObject, QPoint, \ + QPointF, QPropertyAnimation, QRectF, QSettings, QSize, Qt, \ + pyqtProperty, pyqtSignal, pyqtSlot + from PyQt6.QtGui import QAction, QBrush, QColor, QCursor, QDrag, QFont, \ + QFontMetrics, QIcon, QKeyEvent, QKeySequence, QMouseEvent, QPainter, \ + QPalette, QPen, QPixmap, QPolygonF, QShortcut, QStandardItem, \ + QStandardItemModel, QTextCursor + from PyQt6.QtWidgets import QApplication, QCheckBox, QComboBox, QDialog, \ + QDialogButtonBox, QDoubleSpinBox, QFileDialog, QFrame, QGridLayout, \ + QGroupBox, QHBoxLayout, QInputDialog, QLabel, QLineEdit, QMainWindow, \ + QMenu, QMessageBox, QPlainTextEdit, QPushButton, QRadioButton, \ + QScrollArea, QSizePolicy, QSpacerItem, QSpinBox, QStyle, \ + QStyleOptionTab, QStylePainter, QTabBar, QTabWidget, QTextEdit, \ + QToolButton, QTreeView, QTreeWidget, QTreeWidgetItem, QVBoxLayout, \ + QWidget,QSlider + + import frappy.gui.resources_qt6 + +except ImportError as e: + from PyQt5 import uic + from PyQt5.QtCore import QByteArray, QEvent, QMimeData, QObject, QPoint, \ + QPointF, QPropertyAnimation, QRectF, QSettings, QSize, Qt, \ + pyqtProperty, pyqtSignal, pyqtSlot + from PyQt5.QtGui import QBrush, QColor, QCursor, QDrag, QFont, \ + QFontMetrics, QIcon, QKeyEvent, QKeySequence, QMouseEvent, QPainter, \ + QPalette, QPen, QPixmap, QPolygonF, QStandardItem, \ + QStandardItemModel, QTextCursor + from PyQt5.QtWidgets import QAction, QApplication, QCheckBox, QComboBox, \ + QDialog, QDialogButtonBox, QDoubleSpinBox, QFileDialog, QFrame, \ + QGridLayout, QGroupBox, QHBoxLayout, QInputDialog, QLabel, QLineEdit, \ + QMainWindow, QMenu, QMessageBox, QPlainTextEdit, QPushButton, \ + QRadioButton, QScrollArea, QShortcut, QSizePolicy, QSpacerItem, \ + QSpinBox, QStyle, QStyleOptionTab, QStylePainter, QTabBar, \ + QTabWidget, QTextEdit, QToolButton, QTreeView, QTreeWidget, \ + QTreeWidgetItem, QVBoxLayout, QWidget, QSlider + + import frappy.gui.resources_qt5 diff --git a/secop/gui/icon_rc_qt5.py b/frappy/gui/resources_qt5.py similarity index 55% rename from secop/gui/icon_rc_qt5.py rename to frappy/gui/resources_qt5.py index a7684e0..357d4c0 100644 --- a/secop/gui/icon_rc_qt5.py +++ b/frappy/gui/resources_qt5.py @@ -1,15 +1,3885 @@ # -*- coding: utf-8 -*- -# pylint: skip-file # Resource object code # -# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1) +# Created by: The Resource Compiler for PyQt5 (Qt v5.15.8) # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore qt_resource_data = b"\ +\x00\x00\x05\x27\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\ +\x24\x24\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\x00\x49\x00\ +\x00\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\ +\x00\x49\x00\x00\x24\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00\x6d\ +\x6d\x00\x49\x49\x00\x24\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00\x6d\x00\x00\x49\x00\x00\x24\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92\x6d\x00\x6d\x49\x00\x49\x24\x00\x24\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00\x6d\x6d\x00\x49\x49\x00\x24\x24\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\x24\ +\xff\xb6\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\xff\ +\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\xff\x6d\x6d\xdb\x49\ +\x49\xb6\x24\x24\xff\x49\x49\xdb\x24\x24\xff\x24\x24\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\xb6\ +\xff\xb6\x92\xdb\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x92\xff\ +\x92\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x6d\xff\x6d\x49\xdb\x49\ +\x24\xb6\x24\x49\xff\x49\x24\xdb\x24\x24\xff\x24\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\xb6\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x92\x92\xff\ +\x6d\x6d\xdb\x49\x49\xb6\x24\x24\x92\x6d\x6d\xff\x49\x49\xdb\x24\ +\x24\xb6\x49\x49\xff\x24\x24\xdb\x24\x24\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\xff\xff\x6d\xdb\xdb\x49\xb6\xb6\ +\x24\xff\xff\x49\xdb\xdb\x24\xff\xff\x24\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\xff\xb6\xff\xdb\ +\x92\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\xff\x92\xff\xdb\x6d\ +\xdb\xb6\x49\xb6\x92\x24\x92\xff\x6d\xff\xdb\x49\xdb\xb6\x24\xb6\ +\xff\x49\xff\xdb\x24\xdb\xff\x24\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\xb6\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\x6d\x6d\x92\xff\xff\x6d\xdb\xdb\ +\x49\xb6\xb6\x24\x92\x92\x6d\xff\xff\x49\xdb\xdb\x24\xb6\xb6\x49\ +\xff\xff\x24\xdb\xdb\x24\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\x00\xff\xb6\x92\xdb\x92\x6d\ +\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\x00\x24\xff\x92\xb6\xdb\x6d\ +\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\xdb\xb6\xff\xb6\x92\xdb\ +\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\x49\xb6\x92\xff\x92\ +\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x00\x6d\xb6\xdb\xff\x92\xb6\ +\xdb\x6d\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\x49\x92\xb6\xff\ +\x6d\x92\xdb\x49\x6d\xb6\x24\x49\x92\x00\x24\x6d\xb6\xff\xdb\x92\ +\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\x49\x00\x49\x24\x92\xff\ +\xb6\x6d\xdb\x92\x49\xb6\x6d\x24\x92\x49\x00\x6d\x24\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\x00\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6\x6d\x00\x92\x49\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00\x6d\x92\x00\x49\x00\xb6\xff\x00\x92\xdb\x00\x6d\xb6\x00\ +\x49\x92\x00\x00\x00\x00\x00\x00\xcf\x2a\x02\x04\x00\x00\x01\xe2\ +\x49\x44\x41\x54\x38\xcb\xb5\x95\x31\x8b\xe2\x40\x18\x86\xdf\x89\ +\x29\xac\x96\x0c\x11\x72\x58\xec\x46\x48\x95\xc6\x22\x95\x5d\x10\ +\xd4\x43\xff\xc2\xc2\x15\x61\x0f\x44\x6d\xf7\x1f\x58\xec\x2f\x10\ +\x6e\x2b\x43\xfe\x82\x67\x5c\x41\xd2\x59\x59\xd8\x07\x8c\x16\xe2\ +\x4a\x42\x16\xab\x83\x8d\x7e\x57\xe4\xe4\xee\x96\xdb\xe3\x14\xef\ +\x81\xb7\x1a\xe6\x61\x86\xe1\x7b\x87\xe1\x17\x1e\x1f\xbf\xb0\xbb\ +\xbb\xcf\xe4\x79\x6e\x36\x0c\x77\xd5\x28\x8a\x9b\x41\xb0\xae\x24\ +\x09\x32\x00\x20\x8a\xd8\xab\x6a\x7e\x2c\xcb\xbc\x97\xcb\x5d\x3d\ +\x99\xe6\xc7\x6f\xc7\x3d\x47\x07\xc3\x1b\x1c\xa7\x5f\x5f\x2e\x37\ +\x3d\xcf\x9b\x5e\xfb\xfe\x1c\x9c\x2f\xa0\x28\xe9\xda\xf3\x33\x10\ +\xc7\x05\x68\x5a\x11\xa6\x59\x5a\xdd\xdc\x7c\x68\xde\xde\x7e\xfa\ +\x8a\xf7\xb0\x6d\xfb\xde\xb2\x3a\xa4\xeb\x12\xb5\xdb\x38\x0c\x87\ +\x38\x6c\xb7\xa0\xd7\xd7\x34\xdb\x2d\x68\x38\xc4\xa1\xdd\xc6\x41\ +\xd7\x25\xb2\xac\x0e\xd9\xb6\x7d\x8f\xb7\xd7\x3c\xca\x5a\xad\x0e\ +\x19\x86\x48\xae\x0b\x22\x62\x44\x84\x77\xc2\xc8\x75\x41\x86\x21\ +\x52\xab\xf5\x53\x7a\x74\xc1\x71\xfa\x75\xcb\x4a\x65\x9b\x0d\xfe\ +\x22\xfa\x3d\x9b\x4d\x2a\xb5\xac\x0e\x39\x4e\xbf\x0e\x00\xf0\x3c\ +\x37\xdb\xed\x3e\x2c\x75\x5d\xfa\x71\xb2\xd3\xe2\xba\x20\x5d\x97\ +\xa8\xdb\x7d\x58\x7a\x9e\x9b\x15\xc2\x70\x57\xf5\xbc\xe9\x75\xb9\ +\xfc\x42\xb5\x1a\xc3\xa9\xd4\x6a\x0c\xe5\xf2\x0b\x79\xde\xf4\x3a\ +\x0c\x77\x55\x21\x8a\xe2\xa6\xef\xcf\xd1\x68\x00\x00\xe1\x74\x08\ +\x8d\x06\xe0\xfb\x73\x44\x51\xdc\x14\x82\x60\x5d\xe1\x7c\x01\xc3\ +\x00\xc3\x99\x18\x06\x18\xe7\x0b\x04\xc1\xba\x22\x24\x09\x32\x8a\ +\x02\x70\x8e\xb3\xe1\x1c\x50\x14\x20\x49\x90\x11\x70\x61\x04\x51\ +\xc4\x3e\x9d\x80\xf3\x25\x71\x9c\x4e\x91\x28\x62\x2f\xa8\x6a\x7e\ +\x1c\xc7\x05\xcc\x66\x67\xbd\x08\x00\x60\x36\x03\xc5\x71\x01\xaa\ +\x9a\x1f\x0b\xb2\xcc\x7b\x9a\x56\xc4\x60\xf0\xc7\xd1\xfe\x07\x18\ +\x06\x03\x40\xd3\x8a\x90\x65\xde\x13\xd2\xd6\x28\xad\x26\x13\x89\ +\x8d\x46\xa7\x1f\x72\x34\x22\x4c\x26\x12\x33\xcd\xd2\x2a\x97\xbb\ +\x7a\xba\xfc\xe8\xfd\x97\x72\xb8\x64\x7d\x5d\xbc\x60\xd9\xa5\xbf\ +\x80\xef\x45\x6a\xde\x22\x6c\x4c\x7b\x8e\x00\x00\x00\x00\x49\x45\ +\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x15\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\ +\x24\x24\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\x00\x49\x00\ +\x00\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\ +\x00\x49\x00\x00\x24\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00\x6d\ +\x6d\x00\x49\x49\x00\x24\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00\x6d\x00\x00\x49\x00\x00\x24\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92\x6d\x00\x6d\x49\x00\x49\x24\x00\x24\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00\x6d\x6d\x00\x49\x49\x00\x24\x24\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\x24\ +\xff\xb6\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\xff\ +\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\xff\x6d\x6d\xdb\x49\ +\x49\xb6\x24\x24\xff\x49\x49\xdb\x24\x24\xff\x24\x24\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\xb6\ +\xff\xb6\x92\xdb\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x92\xff\ +\x92\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x6d\xff\x6d\x49\xdb\x49\ +\x24\xb6\x24\x49\xff\x49\x24\xdb\x24\x24\xff\x24\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\xb6\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x92\x92\xff\ +\x6d\x6d\xdb\x49\x49\xb6\x24\x24\x92\x6d\x6d\xff\x49\x49\xdb\x24\ +\x24\xb6\x49\x49\xff\x24\x24\xdb\x24\x24\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\xff\xff\x6d\xdb\xdb\x49\xb6\xb6\ +\x24\xff\xff\x49\xdb\xdb\x24\xff\xff\x24\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\xff\xb6\xff\xdb\ +\x92\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\xff\x92\xff\xdb\x6d\ +\xdb\xb6\x49\xb6\x92\x24\x92\xff\x6d\xff\xdb\x49\xdb\xb6\x24\xb6\ +\xff\x49\xff\xdb\x24\xdb\xff\x24\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\xb6\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\x6d\x6d\x92\xff\xff\x6d\xdb\xdb\ +\x49\xb6\xb6\x24\x92\x92\x6d\xff\xff\x49\xdb\xdb\x24\xb6\xb6\x49\ +\xff\xff\x24\xdb\xdb\x24\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\x00\xff\xb6\x92\xdb\x92\x6d\ +\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\x00\x24\xff\x92\xb6\xdb\x6d\ +\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\xdb\xb6\xff\xb6\x92\xdb\ +\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\x49\xb6\x92\xff\x92\ +\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x00\x6d\xb6\xdb\xff\x92\xb6\ +\xdb\x6d\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\x49\x92\xb6\xff\ +\x6d\x92\xdb\x49\x6d\xb6\x24\x49\x92\x00\x24\x6d\xb6\xff\xdb\x92\ +\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\x49\x00\x49\x24\x92\xff\ +\xb6\x6d\xdb\x92\x49\xb6\x6d\x24\x92\x49\x00\x6d\x24\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\x00\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6\x6d\x00\x92\x49\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00\x6d\x92\x00\x49\x00\xb6\xff\x00\x92\xdb\x00\x6d\xb6\x00\ +\x49\x92\x00\x00\x00\x00\x00\x00\xcf\x2a\x02\x04\x00\x00\x02\xd0\ +\x49\x44\x41\x54\x38\xcb\xb5\x95\xbd\x4f\x5a\x61\x14\xc6\x9f\xf3\ +\xe2\xb5\x54\x50\xb8\x61\x50\x50\xee\x2a\x13\x9b\x18\x4c\x1d\x1a\ +\x05\x4d\xfb\x0f\x18\x8d\x10\x63\x34\x21\x69\xd3\xad\x8e\x4d\x47\ +\x5d\x3b\x90\x60\xfa\x21\x8d\xc6\x7f\xa0\xc6\xcf\x74\xa0\x95\x88\ +\x1b\x13\xa6\x4b\x7b\x51\xd0\x81\x5c\x50\xb0\xc6\x2b\x9c\x0e\xb7\ +\x12\xdb\xf8\x51\x12\xfb\xcc\xe7\xfc\xde\xe7\x7d\x4f\xce\xf3\x12\ +\xae\x28\x36\x1f\xa3\xe9\xa9\x69\x5e\xdd\x5a\x33\x1f\x6b\xa5\xa0\ +\x56\xd0\x22\x39\x35\x17\xe0\x2a\x9b\x00\x80\x4c\x54\x75\x29\xae\ +\x0d\xd9\x21\x47\xdb\x64\xdb\xfa\xf0\xc0\xd0\xd9\x65\xcf\x25\x83\ +\xf0\x97\x16\x3e\x2e\x3c\xc9\x67\xf3\xd1\x64\x22\xa9\xa4\x33\x69\ +\xa8\xb4\x0f\xd8\x7f\x97\x15\x19\x0a\x77\xc1\xeb\xf1\xc2\xdf\xef\ +\x57\x9d\x6e\x67\x24\x3c\x1e\x5e\xb9\xda\xff\x07\x30\x1e\x8f\xbf\ +\x4c\x7d\xd9\x99\x5d\xda\x5c\x46\xb1\xbb\xcc\x56\x9f\x0d\xb2\xc7\ +\x41\x52\x6b\x33\x00\x40\x3f\x39\x87\x96\x29\x70\x39\x55\x82\x7d\ +\xcf\x4a\xa3\x83\x23\xf0\x3d\xea\x9d\x09\x85\x42\x73\x75\xe0\xa5\ +\xe5\x78\x3c\xfe\x72\x77\x67\x77\x36\xb6\xfe\x16\xd2\x98\x05\x9d\ +\x7d\x6e\x58\x9a\x5a\x20\x20\x40\x6c\x9c\xcb\xc4\xa8\xa1\x86\xca\ +\xc5\x29\x0e\xb6\xb3\xd0\x17\x2b\x98\x0e\x4e\xa2\xa7\xb7\x67\x26\ +\x14\x0a\xcd\xc5\xe6\x63\x44\x97\xd7\xdc\x4d\xa4\x3e\xcd\x7f\x7e\ +\x0f\xfb\xab\x0e\x74\xb4\xb7\x43\x22\x09\x0c\xc6\x75\x22\x10\x74\ +\xd6\x71\x78\x74\x84\xe2\xeb\x43\x4c\x3d\x9e\x40\x4f\xbf\xef\x69\ +\x78\x3c\xbc\x22\x56\xb7\xd6\xcc\xf9\x6c\x3e\xba\xb4\xb9\x0c\x69\ +\xcc\x62\xc0\xc4\xcd\x30\x00\x60\x30\x24\x21\x19\xb5\x63\x16\x2c\ +\x6d\x2e\x23\x9f\xcd\x47\x57\xb7\xd6\xcc\xe2\x58\x2b\x05\x93\x89\ +\xa4\x52\xec\x2e\x73\x67\x9f\xdb\x70\xc6\x37\xc3\xea\x50\x66\x48\ +\x24\xa1\xb3\xcf\x8d\x62\x77\x99\x93\x89\xa4\x72\xac\x95\x82\x42\ +\x2b\x68\x91\x74\x26\x0d\xab\xcf\x06\x4b\x53\xcb\xad\xce\xae\x73\ +\x6a\x69\x6a\x81\xd5\x67\x43\x3a\x93\x86\x56\xd0\x22\x22\xa7\xe6\ +\x02\x2a\xed\x43\xf6\x38\x48\x40\xa0\x51\x09\x08\xc8\x1e\x07\xa9\ +\xb4\x8f\x9c\x9a\x0b\x08\xae\xb2\x09\x76\x82\xd4\xda\x5c\x9f\x66\ +\x23\x22\x36\x7a\x61\x27\x70\x95\x4d\x8d\x5b\xba\xcb\x31\x99\xa8\ +\x8a\x22\x43\x3f\x39\x07\x13\x37\x0c\x60\x32\x7a\x51\x64\x90\x89\ +\xaa\xc2\xa5\xb8\x36\x14\xee\x82\x96\x29\x70\x0d\xb5\x86\x81\x35\ +\xd4\xa0\x65\x0a\xac\x70\x17\x5c\x8a\x6b\x43\xc8\x0e\x39\xea\xf5\ +\x78\x51\x4e\x95\x50\xb9\x38\x05\xe1\xdf\xdf\x91\x40\xa8\x5c\x9c\ +\xa2\x9c\x2a\xc1\xeb\xf1\x42\x76\xc8\x51\xd1\x26\xdb\xd6\xfd\xfd\ +\x7e\xd5\xbe\x67\xa5\x83\xed\x2c\x74\xd6\x41\x74\x37\x94\xc8\xd8\ +\x96\x83\xed\x2c\xec\x7b\x56\xf2\xf7\xfb\xd5\x36\xd9\xb6\x2e\x86\ +\x07\x86\xce\x9c\x6e\x67\x64\x74\x70\x04\xfa\x62\x05\x87\x47\x47\ +\xd0\x6b\xfa\xad\x4e\x09\x04\xbd\x66\xac\x9e\xbe\x58\xc1\xe8\xe0\ +\x08\x9c\x6e\x67\x64\x78\x60\xe8\xcc\x14\x9b\x8f\xd1\xe4\xc4\xe4\ +\xb7\x67\x2f\x9e\xff\x74\x9a\xdb\x03\x5f\xdf\x25\x50\xb2\x97\xf1\ +\xa0\xeb\x21\x24\x93\x04\x41\xc2\x08\x08\x22\x40\x18\x43\x28\x57\ +\x2b\xf8\xb1\xfd\x1d\xa7\x6f\x34\x4c\x07\x27\xe1\xeb\xf3\xcd\x84\ +\x43\xe1\x0f\xf5\x70\xb8\xd7\xf8\xfa\xaf\x01\x7b\x1f\x5f\xc0\x2f\ +\xcd\x6b\x87\x8d\x37\xf2\x80\xb0\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x06\x0e\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\ +\x24\x24\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\x00\x49\x00\ +\x00\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\ +\x00\x49\x00\x00\x24\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00\x6d\ +\x6d\x00\x49\x49\x00\x24\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00\x6d\x00\x00\x49\x00\x00\x24\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92\x6d\x00\x6d\x49\x00\x49\x24\x00\x24\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00\x6d\x6d\x00\x49\x49\x00\x24\x24\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\x24\ +\xff\xb6\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\xff\ +\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\xff\x6d\x6d\xdb\x49\ +\x49\xb6\x24\x24\xff\x49\x49\xdb\x24\x24\xff\x24\x24\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\xb6\ +\xff\xb6\x92\xdb\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x92\xff\ +\x92\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x6d\xff\x6d\x49\xdb\x49\ +\x24\xb6\x24\x49\xff\x49\x24\xdb\x24\x24\xff\x24\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\xb6\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x92\x92\xff\ +\x6d\x6d\xdb\x49\x49\xb6\x24\x24\x92\x6d\x6d\xff\x49\x49\xdb\x24\ +\x24\xb6\x49\x49\xff\x24\x24\xdb\x24\x24\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\xff\xff\x6d\xdb\xdb\x49\xb6\xb6\ +\x24\xff\xff\x49\xdb\xdb\x24\xff\xff\x24\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\xff\xb6\xff\xdb\ +\x92\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\xff\x92\xff\xdb\x6d\ +\xdb\xb6\x49\xb6\x92\x24\x92\xff\x6d\xff\xdb\x49\xdb\xb6\x24\xb6\ +\xff\x49\xff\xdb\x24\xdb\xff\x24\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\xb6\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\x6d\x6d\x92\xff\xff\x6d\xdb\xdb\ +\x49\xb6\xb6\x24\x92\x92\x6d\xff\xff\x49\xdb\xdb\x24\xb6\xb6\x49\ +\xff\xff\x24\xdb\xdb\x24\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\x00\xff\xb6\x92\xdb\x92\x6d\ +\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\x00\x24\xff\x92\xb6\xdb\x6d\ +\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\xdb\xb6\xff\xb6\x92\xdb\ +\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\x49\xb6\x92\xff\x92\ +\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x00\x6d\xb6\xdb\xff\x92\xb6\ +\xdb\x6d\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\x49\x92\xb6\xff\ +\x6d\x92\xdb\x49\x6d\xb6\x24\x49\x92\x00\x24\x6d\xb6\xff\xdb\x92\ +\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\x49\x00\x49\x24\x92\xff\ +\xb6\x6d\xdb\x92\x49\xb6\x6d\x24\x92\x49\x00\x6d\x24\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\x00\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6\x6d\x00\x92\x49\x00\xf6\xa2\x08\xf6\x61\x06\ +\xb6\x00\x6d\x92\x00\x49\x00\xb6\xff\x00\x92\xdb\x00\x6d\xb6\x00\ +\x49\x92\x00\x00\x00\x00\x00\x00\x1a\x88\xeb\xf1\x00\x00\x02\xc9\ +\x49\x44\x41\x54\x38\xcb\xb5\x55\x31\x48\x5b\x51\x14\x3d\xf7\xff\ +\x34\xfe\x24\x1a\x0b\x69\x20\x44\x12\x89\x98\x04\x7e\x5b\x74\x10\ +\x1c\x9d\xe2\x10\x37\x41\x04\x6d\xa7\x6a\x34\x4e\x75\xa9\x94\xce\ +\x52\xec\xa2\x53\x42\x63\x87\x2e\x0a\x22\xd8\x49\x29\x3a\xd9\x4e\ +\x82\x94\x48\xe9\x87\x24\x62\x30\x21\x21\x10\x1c\xb4\xe6\xff\x6f\ +\xc8\xf7\x75\x78\xc6\x5a\x2b\x36\x82\x3d\xeb\x7b\xe7\xbc\x73\xde\ +\xbb\xf7\x3e\xc2\x15\xc4\x63\x31\x8a\x4e\x4d\xb1\xd5\xe5\x25\xa9\ +\xa2\x9f\xf5\xab\xba\x1e\x2d\x1f\x9f\x84\x6a\x8c\x89\x00\x60\x22\ +\x32\x9c\xad\xf6\x2d\xab\x24\xc5\x6d\x52\xd3\xe6\xd0\xc8\xa8\x5e\ +\xe7\xd4\x35\x08\xd7\xf0\x21\x91\x08\x1f\x9d\xfc\x8c\xef\x65\xf6\ +\xbd\x05\x45\x41\x4f\x76\x1b\x6e\x2b\x5f\x2b\xaa\xc0\xae\xaf\x0f\ +\x6d\xb2\x8c\x2e\x7f\x67\xce\x61\x6f\x89\x8e\x45\x22\x1b\x57\xf9\ +\x7f\x08\x2e\x26\x12\xaf\x94\xc3\xfc\x5c\x79\x63\x05\x83\x62\x9a\ +\x75\x07\x01\x57\x87\x99\xcc\x36\xbe\xad\x5a\x61\x28\x1d\x54\x59\ +\x32\x05\xac\x19\x01\x72\x86\x87\x21\xb7\x7b\x66\xc6\x23\x91\x77\ +\x97\x82\x75\xcb\x8b\x89\xc4\xab\x6c\x3e\x3f\xa7\xad\xcc\xe3\x65\ +\xf7\x29\xbc\xbd\x16\x54\x1d\x80\x61\x62\xbf\x8f\x65\x80\x58\x23\ +\x98\x8f\x80\xdc\x8e\x86\x85\x64\x33\x2c\xc3\xd3\xf0\x79\xb8\x68\ +\x3c\x16\x23\xaa\xc7\xfc\x71\x98\x5f\xc7\xea\x3c\xde\x0e\x9c\x82\ +\x64\x0b\x6a\x16\x06\x62\x5c\x04\xd7\x32\x31\x02\x4c\x1a\x81\x29\ +\x1a\x5e\xaf\x37\x03\x43\xd3\x78\xdc\xee\x19\x18\x8b\x44\x36\x68\ +\x75\x79\x49\x3a\x28\x96\x52\xdf\x97\xde\x7b\x67\xfd\x69\xb8\x42\ +\x16\x18\x16\x06\x9c\xe3\x76\x08\x80\xa8\x11\x4a\x5b\x1a\xde\x64\ +\x02\x78\x3a\x3a\x91\xeb\x70\xbb\x82\x42\x45\x3f\xeb\xdf\xcb\xec\ +\x7b\x07\xc5\x34\xf3\xf6\x72\x67\xff\x14\x03\x80\x73\xa0\x66\x61\ +\xf0\xf6\x5a\x30\x28\xa6\xd9\x5e\x66\xdf\x5b\xd1\xcf\xfa\x05\x55\ +\xd7\xa3\x05\x45\x41\x77\x10\xa8\x3a\xc0\x63\x36\x08\x62\x9c\xd3\ +\x1d\x04\x0a\x8a\x02\x55\xd7\xa3\x42\xf9\xf8\x24\xd4\x93\xdd\x86\ +\xab\xc3\x4c\x86\x89\xfd\x7d\x67\xb7\x81\xf1\x47\x73\x75\x98\xa9\ +\x27\xbb\x8d\xf2\xf1\x49\x48\xa8\x31\x26\xba\xad\x80\xd9\x46\x37\ +\x54\x65\x23\x36\x39\xd7\x6d\x05\x6a\x8c\x89\x02\xee\x19\x82\x89\ +\xc8\x28\xaa\xbc\x68\xef\x14\xf7\x4a\xec\x6a\x85\xa1\xa8\xf2\xd6\ +\x14\x9c\xad\xf6\xad\x5d\x5f\x1f\x4a\x07\x55\x26\xd6\xee\x18\x9b\ +\x78\xa1\x97\x0e\xaa\x6c\xd7\xd7\x07\x67\xab\x7d\x4b\xb0\x4a\x52\ +\xbc\x4d\x96\x91\x4c\x01\xe6\x23\x5e\xb4\x0d\x9b\x23\xce\x49\xa6\ +\x80\x36\x59\x86\x55\x92\xe2\x82\x4d\x6a\xda\xec\xf2\x77\xe6\xd6\ +\x8c\x00\xe5\x76\x34\x98\x34\x02\x1a\xb9\x59\x81\x77\x4b\x6e\x47\ +\xc3\x9a\x11\xa0\x2e\x7f\x67\xce\x26\x35\x6d\x0a\x43\x23\xa3\xba\ +\xc3\xde\x12\x75\x86\x87\xb1\x90\x6c\x06\x53\x34\x88\x1a\x81\x09\ +\xb8\x39\x3e\x01\xec\xa2\x4b\x98\xc2\xfb\xd9\x19\x1e\x86\xc3\xde\ +\x12\x1d\x1a\x19\xd5\xc5\x78\x2c\x46\x13\x93\x93\x99\x17\xcf\x9f\ +\x69\xa7\x1e\x39\xf4\xf9\xd3\x37\x3c\x51\x55\x3c\x7a\xf8\x00\x4c\ +\x22\x30\x91\xbb\xc1\xc5\x01\xa2\x41\x90\xca\x84\xc2\x17\x0d\xb3\ +\x5f\xf9\x70\x08\x78\x3d\x33\xe3\x91\xc8\xc7\xcb\xe1\x70\xaf\xe3\ +\xeb\xbf\x0e\xd8\xfb\xf8\x02\x7e\x01\xe1\xa1\x75\x0d\x23\xd1\xf1\ +\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x28\xad\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x24\xae\x7a\x54\x58\x74\x52\x61\x77\x20\x70\x72\x6f\x66\ +\x69\x6c\x65\x20\x74\x79\x70\x65\x20\x65\x78\x69\x66\x00\x00\x78\ +\xda\xad\x9c\x6b\x92\x1e\xb7\x12\x5c\xff\xf7\x2a\xbc\x84\xc6\x1b\ +\x58\x0e\x9e\x11\xde\x81\x97\xef\x93\x85\x1e\x92\xd2\x95\xae\xc3\ +\x0e\x8b\x12\x87\x9c\xe9\xaf\x1b\x5d\x8f\xac\xcc\x42\x41\xcf\xfe\ +\x5f\xff\xf3\x3c\xff\x83\x7f\x9a\x7f\xe3\x13\x53\xa9\xb9\xe5\xfc\ +\xf2\x4f\x6c\xb1\xf9\xce\x1f\xea\x7b\xff\xb9\x5f\xdd\x1b\xed\xf7\ +\xfb\x97\xf8\xfd\xcc\xfd\xf5\xfb\xcf\xaf\x1f\x78\xbe\x15\xf8\x1a\ +\xee\x5f\xf3\xfe\xae\xef\x7c\x3f\xfd\xfe\x40\xf9\xae\x77\xe3\xaf\ +\xdf\x7f\xca\xfc\xee\x53\xbf\x1b\xb9\x5f\x37\xb6\x7f\x82\x9e\xac\ +\x3f\x7f\xd7\xd5\xef\x46\xc1\xdf\xef\xff\x2c\xe4\x69\xdf\xe7\x7a\ +\xfc\xe3\x75\xbe\xff\xfc\xfc\x6e\xfb\xdd\xfc\xef\x7f\x8f\x05\x63\ +\xac\xc4\xfd\x82\x7f\xfc\x0e\x2d\x34\x7e\x77\x7a\x4a\x60\x05\xa1\ +\x86\xce\xd7\xc6\xef\xfc\xdd\xeb\x3b\x8e\x3f\x27\xfe\xd6\x43\x0c\ +\xfe\x9f\x6d\xf7\xfc\xfa\xe3\xdf\x8c\xf7\xeb\x4f\x7f\xb3\xdd\xdb\ +\xbf\xef\x87\xbf\x9a\xe2\x79\xf3\x77\x41\xfe\x9b\x8d\xbe\xef\xbb\ +\xf4\xb7\xef\x87\x5f\x8f\xf1\x7f\xf5\xda\xef\x27\xff\xe5\x07\x6b\ +\x7b\xff\xfe\xf9\xcf\x1f\xb6\x3b\x67\xd5\x73\xf6\x7d\xbb\x1e\x33\ +\x96\xca\xcf\xf7\x52\x3f\xaf\x62\x7f\xe2\xc2\x81\x29\x83\x7d\x2c\ +\xf3\xab\xf0\x5f\xe2\xcf\xc5\x7e\x35\x7e\x55\x5e\x71\xe2\xb1\x85\ +\x37\x07\xbf\xe6\xe3\x9a\xf3\x2e\xbc\xc7\x45\xb7\x5c\x77\xc7\x6d\ +\xfb\x3a\xdd\x64\x89\xd1\x6f\x5f\xf8\xea\xfd\xf4\xc1\xbe\x57\x43\ +\xf1\xcd\x4f\x73\x4a\xd4\x2f\x77\x7c\xc1\x31\xeb\xc1\x47\x3e\x4c\ +\xbc\x16\xe4\x91\x5f\x6b\x71\xf6\xdc\x66\xcf\x9b\xae\xf2\xe4\xe5\ +\xb8\xd2\x3b\x6e\xe6\xf8\xc4\x7f\xfc\x7a\xfe\xe9\x9b\xff\x2f\xbf\ +\x7e\xdd\xe8\x1c\x85\xae\x73\x6f\xfd\x65\x2b\xd6\x65\x06\x67\x19\ +\xf2\x9c\x7e\xe7\x2a\x1c\xe2\xce\x67\xd3\x64\xf6\xb5\x5f\xcf\x1f\ +\x71\xf3\xfe\xe1\xd8\x80\x07\x93\x99\xb9\xf2\x82\xfd\x1d\xf7\x16\ +\x23\xb9\xdf\xb1\x15\xcc\xcf\x81\xeb\x12\xd9\xff\xde\xd4\x70\x65\ +\x7d\x37\xc0\x44\x3c\x3b\xb1\x18\x22\x3a\xba\x37\xbb\x90\x5c\x76\ +\x6f\xf1\xbe\x38\x87\x1d\x2b\xfe\xe9\xac\xdc\x87\xe8\x07\x1e\x70\ +\x29\xf9\xe5\x9e\x83\x6f\x42\xc8\x38\xa7\x7a\x3d\x9b\xcf\x14\x67\ +\xd7\xfa\xe4\xef\xb7\x81\x16\x1c\x91\x42\x0e\x05\xd7\x90\x3a\x38\ +\x2b\xc6\x44\xfc\x94\x58\x89\xa1\x9e\x42\x8a\x4f\x4a\x29\xa7\x92\ +\x6a\x6a\xa9\xe7\x90\x63\x4e\x39\xe7\x92\x85\x51\xbd\x84\x12\x4b\ +\x2a\xb9\x94\x52\x4b\x2b\xbd\x86\x1a\x6b\xaa\xb9\x96\x5a\x6b\xab\ +\xbd\x79\xd2\x34\xb6\xd4\x72\x2b\x4f\xab\xad\xb5\xde\x79\x68\xe7\ +\xd6\x9d\x4f\x77\xae\xe8\x7d\xf8\x11\x46\x1c\x69\xe4\x51\x46\x1d\ +\x6d\xf4\x49\xf8\xcc\x38\xd3\xcc\xb3\xcc\x3a\xdb\xec\xcb\xaf\xb0\ +\x48\xff\x95\x57\x79\x56\x5d\x6d\xf5\xed\x36\xa1\xb4\xe3\x4e\x3b\ +\xef\xb2\xeb\x6e\xbb\x1f\x62\xed\x84\x13\x4f\x3a\xf9\x94\x53\x4f\ +\x3b\xfd\x97\xd7\x3e\xaf\xfe\xd5\x6b\xee\x6f\x9e\xfb\xef\x5e\x73\ +\x9f\xd7\xe4\xb1\x68\xd7\x95\xdf\x5e\xe3\xdb\xa5\xfc\xdc\xc2\x09\ +\x4e\x92\x7c\x86\xc7\x7c\x74\x78\xbc\xc8\x03\x04\xb4\x97\xcf\xde\ +\xea\x62\xf4\xf2\x9c\x7c\xf6\x36\x4f\x52\x24\x8f\xd7\x5c\x92\x73\ +\x96\x93\xc7\xf0\x60\xdc\xce\xa7\xe3\x7e\xf9\xee\xb7\xe7\xfe\xab\ +\xdf\x9e\x14\xff\xaf\xfc\xe6\xff\xcd\x73\x8f\x5c\xf7\xff\xc3\x73\ +\x8f\x5c\xf7\x79\xee\x3f\xfd\xf6\x0f\x5e\x5b\xdd\x2a\x4a\x30\x07\ +\x29\x0b\x65\xd3\x37\x1c\x80\x8d\x0b\x76\xed\xbe\x76\xd5\xa4\xfb\ +\x75\xf3\x2d\xb7\x71\x54\x3d\xa1\x97\x02\xb6\xa4\x43\xa2\x2e\xc7\ +\x5d\xf7\x6e\xe9\x84\x5d\x6a\x1a\x29\x57\x42\xfe\x60\xd3\x9e\x9f\ +\x6e\x48\x15\x80\xaa\x7d\xd6\x1c\xdc\x3d\xd5\x9d\x1c\xe0\x19\x7c\ +\x2c\x25\xa4\xdd\x82\x6e\x82\xe7\x4f\xf4\xfa\x53\x3b\x71\xc5\x72\ +\xb8\xbc\x17\xfd\xdd\x51\x33\xdd\x7c\x78\xd7\xc4\xdf\xf1\x4f\x5e\ +\xe3\xec\x31\xf5\xb9\x18\x0a\x31\x9a\xc7\xf2\x27\xc5\xe5\x36\xef\ +\xec\x53\x9a\x7d\x0f\x2a\x52\x98\xa4\xfb\x00\x2c\xfd\x22\x39\xce\ +\xdb\x52\xf1\x9b\x02\x89\xcb\x09\xa8\x19\x5c\x2d\x6e\x9d\x95\x3b\ +\xb8\x3e\x7d\x8f\xab\x70\xdf\xb2\x79\xfc\x39\xe3\x34\x7f\x9f\x0e\ +\x4c\xbb\xc3\x07\x78\x54\x3a\xbb\xcf\xa2\x0f\x14\x8c\xf8\xac\xae\ +\x0b\xe6\x09\x6d\x1c\xef\xce\x26\x91\x4f\xe2\xbd\xa3\xa2\x61\xe1\ +\xb7\xc1\x8a\x41\x96\xf2\x86\x4d\xa0\xb0\x58\xee\x0d\x23\x70\x44\ +\xd1\x0e\x87\xc7\x95\xed\xce\xec\xcf\xf0\x01\xc3\x86\xb2\x02\xaf\ +\x8d\x05\x79\xfe\x3a\x96\x11\x0a\xaf\xb5\x94\x19\x8b\xc0\x18\xbd\ +\x10\x90\xa7\x8c\xe6\xea\xae\x75\xc8\x1f\x07\x12\x91\xcf\xda\x5a\ +\x0a\x36\xea\xba\xd3\x99\x7b\x78\x3f\x3c\xe6\x98\xe5\xf4\x14\x07\ +\x05\xdc\xaf\xb1\x76\x05\xcf\x56\x02\xf8\x70\xde\xee\x5d\x96\x6f\ +\x04\x1f\x0f\x0c\x33\x6f\x5e\xff\xe0\xc5\xb3\x1f\xdf\xeb\x1b\xba\ +\x0b\x2b\x37\x3f\xde\x86\xe9\x1b\x19\xf6\xce\x5a\x09\xa7\x15\x5a\ +\x32\xc7\x3b\x05\xc1\xf4\x4a\x12\xdd\xa0\xf3\x52\xf7\x06\xb0\x9e\ +\x77\x8d\x9e\x1c\x01\x39\x5e\x5d\x4a\x86\xb5\xe1\xcc\xbd\x3b\x15\ +\xfe\x50\xa6\x59\xaf\xae\x80\x8b\x74\x77\x47\x24\xdf\xbb\xd7\xf4\ +\x73\x8b\xd3\x31\x92\x05\xc5\x53\x4f\x8c\x87\xb7\x69\xab\xf0\xfd\ +\x7f\x5e\xb6\xef\xfd\xa4\x41\x6c\xf3\x81\x48\xf6\xe0\x34\x25\xcd\ +\xf2\x31\x97\xee\xbd\x02\x7e\x3c\x0b\x17\x60\x8a\xa1\x8b\xb8\xdc\ +\xee\x99\xd2\x26\x8c\xfa\x22\x7a\xde\xdc\x92\x4f\xcb\xfb\xaa\x4f\ +\x92\x5c\x04\x16\xae\xd3\xd5\xa5\x8f\xf4\xdb\x51\xcf\xdf\x3d\xf5\ +\x0a\x7c\xf2\x50\x8c\x28\xa8\x72\xdf\x65\xc4\x79\xc3\x61\xa5\x11\ +\xc8\xeb\x24\xe8\x2a\x3e\xec\xac\x70\x20\x95\x52\x21\xd7\x08\x83\ +\x25\xc7\xb7\xb9\x4e\x7b\xaf\x61\x95\x7f\x69\x8f\xd1\x4f\x4d\x58\ +\x8b\xba\xb3\xa6\xe5\x5a\xb9\xe9\xb2\x81\x18\x16\x25\x0b\xa6\xd8\ +\x3a\x19\x3d\x09\xc8\xdd\xec\xb5\xca\xf1\xb6\x60\xd8\x4c\x3f\x40\ +\x4b\x0f\x8b\xec\xc1\xd0\x2d\xaf\x5c\x52\x2b\xb5\x13\x7b\xad\xbd\ +\xab\xf7\xbe\x1a\x44\x62\xbb\x29\x6e\xd0\xc4\x4a\x72\x78\xde\x4a\ +\x2a\x74\xbd\x51\xaf\x30\x65\x8c\xf4\xa5\xa6\xdb\x25\x99\x17\x47\ +\xc6\xe0\x9d\xcc\xd6\x12\x6d\x15\xfd\x74\xa7\x55\xf0\xe2\xb6\x42\ +\x5e\x2a\x3c\xf6\x23\xae\x20\x6a\x5d\xdc\x7d\xbd\x79\xb4\xed\xe3\ +\x18\x2b\xe6\xd5\x7c\x8c\x35\xf3\x15\xc4\x48\x2a\x1b\x93\xf5\xb6\ +\xb9\x09\x91\x0d\x0d\x0e\xee\x37\xfe\x3c\x7f\x05\xa2\x3f\xbe\x12\ +\xf9\x2f\x18\x42\xa0\xf6\x51\xea\xc8\x80\x62\x66\x61\x3c\x71\x75\ +\x00\x09\x7c\xc8\xdb\x8f\x36\x63\x9e\x11\x0e\xf5\x54\x80\xf2\xb5\ +\x30\xc1\xb2\x25\x6d\x67\x96\x22\x54\xf0\x40\x9c\xd1\xec\x67\xce\ +\x04\xc7\xa7\xcc\xd8\x5c\xf2\x0a\x31\x10\x41\x3f\x23\x83\x2b\x7e\ +\x59\x4f\xdf\x71\xf5\x95\xa9\x79\xa3\x9d\xe1\x32\xe1\x7b\x32\xe1\ +\x46\x66\x9d\xe0\x73\x1c\x3b\xcd\xf3\x82\xc0\xc3\x13\x7c\x95\x3c\ +\xc7\x39\x20\xa6\xc0\x63\x2a\xea\x76\xa8\xdc\xd6\x3d\x82\x84\x90\ +\x30\x2d\x11\x8a\xff\xcb\x34\xdc\x49\xc2\x40\x1f\x92\x40\x8f\x14\ +\x2b\x7d\x5d\xb0\x21\xd1\x77\x34\xf7\xf6\x96\x09\x07\x88\xca\x8a\ +\x69\xce\x50\x9e\x52\xdc\xa6\x04\x81\xb8\xc8\x0b\x17\x4b\x58\x81\ +\xe4\x2b\x81\x07\xe4\x3e\xde\xcf\x73\x64\x47\x2b\xe7\xd5\x5d\x06\ +\x58\xe2\x0e\x58\x45\x81\x59\xc0\xec\x19\x73\xc0\x6b\x89\xec\x51\ +\xd6\xf1\x63\x83\xcf\xf9\x64\xd7\xa0\x9c\x25\x87\xad\xd4\x99\x61\ +\xb9\xb4\x2b\x91\xb4\x5d\x05\x71\xe3\x20\x5d\xf3\x20\xfb\xf1\x5c\ +\x2c\x84\x22\xa8\xc4\x2d\x89\xe3\xfa\x50\x05\x60\xa6\x18\xce\x9e\ +\x4c\xad\x3a\xbf\xcc\xcb\x95\xe9\xe6\xe0\x08\x5c\x8f\xf7\x16\x2c\ +\xf7\x60\xdc\x0a\xf1\xda\x7e\x96\xeb\x8a\x23\xd0\x7f\x14\xcb\xbd\ +\xf3\xd6\x35\xc6\xc1\x5d\x7f\xdf\x92\xe8\xdb\x7a\xc3\x9d\x61\xff\ +\x4b\x70\x37\xf4\x4a\xe7\x22\xd4\xcf\xe5\xaa\x2a\xa2\x96\x4f\xb5\ +\x68\x05\xaa\xdd\x1c\xdb\x39\x08\x38\x4c\x1c\x62\xaf\xca\xb2\xed\ +\x67\x5f\x2a\x37\xaf\xf7\xec\xf2\x79\xa5\x80\x0a\xe0\xf6\xbd\x91\ +\xe3\x7b\x5a\x51\xed\x24\x3a\xbe\x7f\x67\xae\xc7\xad\x19\x3c\xb9\ +\xb4\x95\x3f\x6f\x98\x24\x74\x04\xbd\xb8\xd1\x3b\x0c\x25\xf9\x37\ +\x5d\x64\xc2\xa9\x63\x25\x92\x85\xb0\xd8\xed\x39\xf0\x05\x6a\xc8\ +\x74\xf9\x0c\x9f\xe2\x24\x45\xd7\x9e\xc5\xb5\x50\x37\x68\x48\x25\ +\x0b\xe6\x24\x56\xdd\x49\x62\xb3\x8a\x07\x1d\x40\xa2\xc1\xf2\xe4\ +\x46\x80\x62\x82\xd9\xe5\x46\x43\x20\xd8\x03\x59\xef\xb6\x18\x02\ +\x1f\x56\x30\x1c\x05\x43\xc5\x97\xc9\xfd\x6b\x3c\xf1\xee\x64\xd1\ +\x7e\xde\xb1\xfd\x52\x95\x27\xc2\x78\x1c\xd9\xcf\x1b\x77\x74\xb2\ +\x5c\x01\x0d\x49\xef\x35\xa8\xca\x66\xb1\xdb\x35\xe2\x86\x50\x23\ +\x25\x11\x49\x23\x81\x4c\x04\xd4\x78\x7a\x11\x30\x07\x0a\x04\x16\ +\x47\xff\xf8\x41\xf6\xb9\x0a\xd4\xc9\x61\x54\xd6\x54\xc6\x54\xed\ +\x05\x21\x5e\x8a\xfd\x7a\xfd\x7d\xbd\xec\xd3\xc5\xaf\xae\x32\x3f\ +\x1f\x96\x55\x20\x13\x0d\x7c\x5e\x63\x0f\x5e\xa8\x8e\xd9\x47\xe6\ +\xf7\xb1\x6a\x83\x16\xe5\x10\x5c\xe7\x52\x30\xe5\x40\xbd\x41\x8f\ +\x37\xff\x27\x7b\x79\xc8\xb7\xb4\x59\x27\xd9\x57\x9d\xe5\x59\x83\ +\xf1\xf0\x07\x08\x3d\x2c\x1d\x92\xa0\xf7\xeb\x0e\x60\x5c\x73\xf7\ +\x90\x0b\xa0\x00\x3c\x22\x77\xd7\x26\xb3\x72\xaa\x2a\xa1\xf5\x49\ +\xbe\x50\x54\x05\xe2\xd4\xa3\xc1\xc7\x65\x46\xf2\x20\x63\xa9\xb3\ +\x30\x27\xd2\x62\xb3\x0a\x2a\x32\x75\x24\x0a\xa4\x4e\xad\x3c\x61\ +\x10\x37\x07\x16\x61\xb0\x13\x32\x24\x22\x4d\xdc\x7d\xa4\xa3\x05\ +\x7d\x6f\xa9\xa8\x72\xaa\x3a\x57\xc2\x6b\xe0\x23\x3c\x01\x5f\x54\ +\x80\xcc\x0a\x80\x38\x17\xd2\x50\x4c\x62\x46\xf2\x01\x94\x0a\x7d\ +\x67\x80\x0d\xd0\x1c\xa0\xdb\x48\x48\x94\xe3\x05\xea\xeb\x00\x08\ +\xcd\x16\x0e\x1f\x9e\x9d\xd2\x0a\xb7\xed\x8d\xf7\x1b\xc2\x97\x91\ +\xa1\x92\xb8\x63\x28\x89\x2a\x57\x13\xbd\xcf\x2d\xd3\x1e\x58\x03\ +\x9e\xe0\x82\xe0\xfa\xdb\x37\xb8\x45\xdd\xc4\x10\x54\x74\x4c\xbc\ +\x22\x26\x11\x8b\xd9\x89\x92\xb5\xa1\x20\x09\x7c\x48\x55\x82\xb3\ +\x59\xc0\x9f\xe7\x62\x9c\xee\x9a\xe4\x39\x0b\x7e\x34\xa8\xf0\x2d\ +\x01\xc6\x40\x74\x9f\x51\x65\xde\xdf\x54\xc5\xf2\xe5\x23\x80\x8a\ +\xbe\xda\x44\xa9\x30\xde\x33\xce\x4b\x41\xd5\x8f\xb2\x8c\x00\x11\ +\xb0\x75\x91\xa1\xbc\x2e\x55\x1a\x8e\xad\xeb\x6e\x21\x3a\xd7\x4e\ +\xc5\x82\x34\x88\xbd\x89\x69\x60\xa4\x00\xd1\x3a\x2a\x50\x42\xfa\ +\x18\x6f\x9d\xa5\xf8\x38\x80\x87\x7b\xed\xc9\x62\x7b\xaa\x25\x0f\ +\x2a\xb7\x07\x44\xa9\x9a\x87\x9b\x23\xd0\xf0\x30\xa0\xce\xad\x5a\ +\x22\x3d\x5b\xe0\xd5\x0a\x36\xd9\x8d\xe2\xdc\xe0\x08\x90\x13\x72\ +\x7d\xc2\x87\xda\x6e\x51\xa4\x9a\x1b\xa0\x27\xab\x87\xa4\x70\x0b\ +\x56\xef\x8d\x4b\x55\x62\x9b\x94\xde\xa4\x47\xc9\x50\x50\x60\x84\ +\x37\x88\x70\x7e\xa0\x02\x41\x9e\x1a\x78\x9d\x15\xc7\xe5\x9d\xa0\ +\x2c\xd9\x53\x01\x5f\xbb\x3f\x77\x27\x86\xf5\x3e\xe2\xf0\xad\xa0\ +\x29\x5c\x2e\x3e\x26\x04\xea\x78\x78\x0e\xea\x65\xd4\x17\xd2\xb7\ +\x94\x22\x98\xdd\xb5\x75\xf3\x08\xc2\x62\x3e\x45\xce\x9e\xba\xd0\ +\x23\x3c\x66\x42\x98\x95\x86\x2c\xb7\x97\x6a\xb6\x27\x72\x48\x91\ +\xce\x45\xea\x62\xb4\x5c\x81\x44\x10\xa8\x9b\xe7\xb0\x60\xea\x1f\ +\x26\xff\x32\xa1\xe2\xf0\x2c\xd5\xce\xb0\xa9\x2a\x6b\xc2\x3d\x27\ +\x04\x13\x0b\x50\x45\xb8\x23\xd5\x67\x0b\xad\xef\x2d\x0a\xcb\x22\ +\xdb\x33\x72\xa0\x51\x3b\xdb\x5e\x1d\x45\xf4\x26\xa1\xa3\x48\xf0\ +\x24\xcb\x20\x2b\x64\x3d\xff\x65\x2e\x35\xea\x07\xb9\x0e\x06\x77\ +\x8a\x08\xa2\x8f\x45\x77\x95\x52\xd4\x36\xa8\xbc\xac\xa6\xb8\x29\ +\xaf\xa3\x71\xf6\x01\x58\xc9\x8a\x04\x04\x43\x2c\x1d\x75\x06\xa6\ +\xc8\x23\x37\x9a\x16\x86\x45\xa5\x1a\xd8\x57\x35\x13\x03\xc1\xd8\ +\xdf\x69\xe9\x56\x30\x40\x72\xc4\xf5\xae\xe7\x8b\x7f\x0a\xf5\x7e\ +\x45\x73\x9c\xf1\xb1\xb7\xe1\xaa\xe9\xca\xf6\x0f\x21\x9b\x01\x51\ +\xfc\x08\xc9\x39\x17\x89\xdc\x80\xa7\xef\xca\xb2\x9a\xc7\xe4\xea\ +\xcc\xac\x58\x3b\x41\x71\x0a\xef\x4f\xad\x27\x27\x59\x39\x37\xcc\ +\xd3\xec\x48\xae\x75\xd8\x55\x10\xd9\x98\x02\x37\x47\x70\x8d\x34\ +\xa1\x43\xa3\xad\x40\x75\xe1\x7e\xa8\x99\x99\xa1\xc8\x5a\xb0\x1a\ +\x15\x1b\x9a\x14\x4b\x16\xb3\xb3\x62\xe5\x79\xac\x8b\x46\xb4\x80\ +\xcf\xf3\xc1\xa7\xff\x81\xcf\x1f\x02\x29\xe7\x73\x6b\xd2\xb3\x6c\ +\x65\x3b\xa2\x1b\x61\xa1\x42\xa7\xda\x37\x3d\x31\x5a\xc4\x41\x9f\ +\x65\x0e\x83\xe0\xa1\x70\x6e\xb1\x5e\x99\x9a\x7c\xac\xfa\x3a\xdf\ +\xf7\x3a\x50\x37\x74\x6e\x40\x56\x41\x01\xe6\x5a\xdc\xb8\x55\x7e\ +\x92\xd0\xd8\xfd\x75\x7e\x22\x71\x89\x6c\xb1\x08\xde\x8f\x3a\x5f\ +\x00\x98\x57\x1e\x24\xc5\x45\x17\xfb\x11\xe4\x2e\xde\xe5\x56\x35\ +\x21\x04\x98\xad\x1a\x7b\x40\x27\x31\xa8\x69\x01\x83\xd9\xfa\xb3\ +\x1c\x06\xc1\x38\xdc\x0e\x96\xd2\xb1\x5d\x41\xcd\x65\x94\x00\xe2\ +\x01\x87\x43\x7b\xa8\xfb\x70\x7c\x18\x4e\x56\xf0\x74\x94\x08\x01\ +\xd0\xc5\xa6\xc6\xa5\x1c\xea\x2b\x29\xd7\xde\xc8\x2b\x27\xf2\x71\ +\x60\x44\xe8\x62\x8f\x91\x40\x2e\xaf\x08\x91\x2e\x93\xa0\x82\x32\ +\xe9\xf3\x2c\x0a\x3c\x5d\xe2\x05\xe9\x9a\xa2\xcc\xa1\xf4\x01\x21\ +\xf1\xcf\x8d\x91\x62\x5f\x7f\xa3\x64\x90\x6e\x1a\x69\xa1\x18\x59\ +\x2e\x65\x61\x11\xce\xa4\x2b\x41\xe7\xf4\xaf\xb8\x8d\x7a\x8e\x5e\ +\x7d\xc4\xf2\x50\x0f\x71\xf2\xcc\xe2\x28\xdb\x81\xaf\xde\x14\xa8\ +\x84\xfa\x3e\xc3\x24\x0d\xdc\xe2\x7d\x2f\xd5\x51\x89\xc4\x76\xbc\ +\x3c\xb6\x23\x46\x20\xef\xd0\x27\x14\x6c\x7b\x96\x5d\x72\x57\x13\ +\x9c\xd9\x73\x86\xbc\x1b\x22\x24\xad\x77\x38\xac\x83\xe8\xe8\xa0\ +\x13\xd5\xc9\x1b\x92\xcb\x3b\x6f\x87\x7d\x25\x14\x57\x8b\x95\x18\ +\x88\xe3\x49\x71\x5f\xfa\x39\x05\x0e\xce\x8a\x9e\xf8\x4a\x87\xe0\ +\x55\xc4\x00\x98\x53\x67\x85\x9a\x0c\x28\x89\x80\x95\xfc\xdd\x5a\ +\x2e\xea\xc5\x54\x5d\xbb\xb8\xfa\x50\x45\xdb\x5d\x76\x20\xe4\xa9\ +\x32\xad\x02\xab\x14\x66\xc4\x38\xca\x69\xc0\x22\x40\xc7\xb7\x22\ +\x42\x86\xc3\x25\xdc\x7f\xdc\x3a\xac\xd7\x76\xac\x2a\xca\x16\x54\ +\x5a\x11\x83\xf3\xae\x8f\x39\x8a\xe0\x5e\x61\x7e\x64\xac\x4d\xf1\ +\xc9\xbc\x98\x72\xc8\x64\x3c\xfc\x49\x37\x28\xab\xab\xfc\x9c\x5a\ +\xbe\x4c\xe8\x0f\x15\x82\x78\x72\xb0\xb6\xe5\xc1\x71\xca\x32\x79\ +\x4a\xf8\x50\x78\x4c\x3b\x02\x2f\x2c\xe1\xde\x5c\x72\x09\xf4\x02\ +\x65\xa2\xe9\x3a\x0b\xc6\xb7\x0d\xa5\xef\x83\x37\xfd\x92\x87\xea\ +\xf7\x41\xaa\x68\x51\x3c\x35\xb0\xbb\xa8\xdc\xb8\x49\xa9\x18\x10\ +\x31\x98\x51\x49\x56\x33\x95\x20\xad\x44\x0b\xca\x7c\x29\xe9\x43\ +\xbe\xb2\x78\x29\x6d\xd6\x82\x59\xf0\xf6\x18\xb1\x22\x8c\x84\x20\ +\xb8\x27\x5c\x2e\xcd\x4a\xf8\x44\x27\x49\x29\x62\xf9\x5a\x35\x92\ +\xe3\x92\xae\xae\xef\xfa\xe0\xd1\x17\x46\x4e\x21\x5b\x35\x36\xef\ +\xf2\x1b\xf5\x0a\xe3\x66\x7e\x2e\x7c\x1a\x87\x13\x69\xc4\x6f\x22\ +\x59\xb1\x5b\x3b\x92\xbb\x3c\xbb\x7d\xd5\xf7\x65\x71\xcf\x47\xec\ +\x94\x35\x43\xa2\xf4\x60\x13\xa9\xd9\x60\xe1\xfc\xf6\xd4\x61\x66\ +\x49\xb4\x0b\x11\xe7\x63\xf5\xce\xab\x33\xdd\x37\xce\x84\x10\x51\ +\x9a\x66\x97\x24\x44\x1d\x25\x84\x0c\x4e\x23\xd6\xab\xb0\x7b\xdf\ +\xda\x1e\x91\x22\xbc\x5b\xfa\x9d\x5e\xd6\x11\xb8\x06\xfe\x12\xac\ +\x90\x35\x1e\x57\x01\xe5\xe3\x89\x15\xa8\xaa\x72\xb3\x57\x58\xf0\ +\x1e\x01\xd9\xbc\xf1\xf2\x02\x96\x8a\x1e\x50\xf4\x80\xd7\x2a\xdd\ +\x85\x6a\x74\x23\xa5\x19\x9a\xe7\x97\xd0\x8a\xa7\xac\xf5\x50\x87\ +\x67\x0e\x04\x01\xc5\xa7\x2e\x28\x0a\xf5\x3a\xc0\x84\x12\x68\xda\ +\xe7\x96\x1c\x44\x48\xbf\x62\x08\xcb\x50\x5a\xf2\x4b\xfe\x05\x69\ +\xb7\xa1\xb7\xb3\x07\x3d\xdf\x93\x5e\xa8\xf2\x50\xba\x13\xf2\xa9\ +\xae\xa4\xd2\x4a\x50\x41\x55\x03\x5a\x90\x5c\x07\xa2\x42\xcc\x50\ +\x7c\x72\x0e\x05\x46\xf1\x86\x41\xfb\x97\xd4\xec\xc1\xd5\xe8\xb4\ +\x22\x84\x93\x0a\x75\xa6\x92\x0c\x29\x0c\xa3\x4e\xeb\x8c\x2f\x6a\ +\xf7\xcd\x26\xb3\x8e\x81\xe7\x7d\xf4\xb9\xa2\x15\x00\x8d\x58\xbe\ +\x3f\x2c\x62\x93\xa2\x53\x91\x42\x25\x9e\xc9\xb4\x41\x15\xde\x5a\ +\x95\x80\x63\xc2\xbb\x11\x46\xfc\x08\x96\x0c\x32\x8c\x4e\x1e\xed\ +\x3d\xbc\x43\xe7\xaa\x3d\x05\xd9\xc1\xd8\x4b\x01\x41\x10\x4e\xfc\ +\x78\xfd\xe5\x83\x6c\x48\x61\xb6\x88\x8d\x6f\xea\xd6\xab\xc0\xed\ +\x23\x5e\xdf\x15\xfb\xc9\x92\xb1\x00\xb2\x4a\x81\x41\x65\x67\x4a\ +\x65\x82\x3e\x6c\xae\x74\x99\xea\x9d\x85\x91\x78\x8a\x07\xa1\x2d\ +\xc5\x83\x86\x48\x87\x96\xa8\xce\xdf\xa9\xce\x8a\x12\xbe\xe2\x3f\ +\x74\x22\x84\xaf\xa9\x37\x42\x46\x47\x35\x55\xd4\xc8\x22\x9e\xe6\ +\x47\xed\x28\xd6\xdd\x20\x2f\x27\x71\xed\x4b\x2f\x82\x40\x14\xd4\ +\xc2\x6c\x16\x57\x6e\x53\xac\xf6\x31\x8d\xa4\x80\xe4\x46\xf0\x7b\ +\x60\x2b\xa3\xfe\xaa\x8f\x8d\xb7\x84\xf2\x10\x66\xea\xcb\x61\x25\ +\x53\x0a\xd8\x77\x3a\x6b\x40\x8a\xdc\x1a\x72\x01\xb2\xbb\x0b\x1f\ +\x1d\xe2\x78\x6c\x08\xef\xb2\xef\xe2\x94\x0c\x8f\xb2\xca\x3e\x93\ +\x12\xec\xb5\x9e\x24\xa5\x27\x58\x8f\x81\x9a\x1a\x77\x1b\xda\x2b\ +\xe8\x48\x17\x4c\x11\x13\x0a\x65\x81\x06\x9b\xc8\x76\xda\xc0\x59\ +\x55\xd4\xc3\x99\xd0\x74\x26\x38\xe1\x6f\xbc\x27\x05\x20\xdf\x02\ +\x40\x8e\x16\x65\xd5\x0b\xc5\x87\xe7\x0c\x57\xde\x9a\xc8\xf5\xac\ +\x86\x79\x71\xcf\x54\xec\xe8\x7d\x83\x82\x10\x46\xe0\x56\xb6\x3a\ +\x32\x6e\x87\xc8\x3a\x62\x02\x0d\xc3\x32\x74\xbe\x9a\xd2\x62\x4b\ +\x10\xc9\x26\x72\xd6\x6e\x8f\xee\xf9\xe3\xc2\x24\x21\x01\x1d\x53\ +\xc9\x48\xf0\x15\xea\x14\xa5\x35\xf8\x11\xaa\xd5\x85\xfa\xf5\x69\ +\x28\x6f\x6a\xd5\x00\xee\x04\xc4\x38\x54\x1a\xcc\xc0\x8d\xa0\x49\ +\x59\x6b\xe9\x75\xa9\x79\x99\xd5\x62\xa0\xd4\xba\x8c\x26\xa5\x5e\ +\x03\x63\x7a\xaf\xf8\x51\x3c\x82\xc7\xa5\xdb\x4d\x7d\xbf\x26\x0b\ +\x91\x2b\x7e\x74\xd0\x58\xaf\xfa\x99\x79\xe1\x41\x44\x1f\x4f\x4d\ +\x30\x97\x06\x68\x92\xd5\x84\x21\x21\xb7\xd7\xc0\x56\x7b\xb3\x00\ +\xf5\xcf\x0c\x02\xa6\x75\x1e\xa4\x07\xdc\x6d\x20\x74\xa1\x85\x5c\ +\x19\x51\x1d\x47\xbc\x06\x12\x8f\xa8\x92\x64\xcc\x8e\x92\xc8\x12\ +\x28\x52\x42\x62\xf8\x8d\x0a\x55\xea\xea\xc1\xdf\x72\x70\xbb\x5c\ +\x63\x3f\x41\x90\x3b\x58\x09\xba\x03\x43\x3a\x02\x6a\xf1\x79\xed\ +\x6a\x45\xc1\x9f\xca\x66\x05\xa0\xe0\xcd\x12\xb1\x0d\x0d\xa0\xee\ +\x91\x08\x88\xaa\xb5\xa4\xcd\x9e\x5d\x52\x14\x23\x9d\x6b\x24\xe0\ +\x16\x3e\x32\x7a\xfa\xc8\x4a\x7b\xd3\x2a\xd3\x3a\x1c\x85\x24\x80\ +\x55\x5b\xeb\x05\x44\xf5\x4d\xbd\x40\xaf\xce\xf8\x8f\xa5\x1e\x33\ +\x15\x45\x07\x54\x83\x89\xc8\xd2\x12\xa9\x7b\x67\xef\x10\x7c\xa7\ +\xe4\x08\x44\x17\xa0\x07\xa8\x21\x30\xe4\x6b\x8a\x76\x5f\xb7\x68\ +\x7f\xc0\x5b\xcd\x46\x66\x39\xa9\x73\x2e\x31\xbb\x75\xb1\x33\x19\ +\x2d\xa9\x9b\x89\xb3\x84\x1e\x92\xe2\x54\xfd\x6a\xf5\x33\xab\x9b\ +\x29\xf4\x50\xab\x02\x27\x50\x5b\x1f\x58\xb0\x96\xeb\x51\x82\x40\ +\xf8\xad\x57\x46\xd6\x45\x46\x8d\xbc\x60\x41\x2e\x75\xe6\x7c\xc8\ +\x61\x74\x69\x76\x4a\xe8\x3b\x46\x43\xbe\xbc\xf9\x05\x74\x6b\x78\ +\x4e\xee\xc9\x2d\xd8\x59\x91\xfc\x0c\xb6\xc9\x22\x41\x82\x03\xf9\ +\xf4\x18\x17\x81\xd4\xca\xdb\xe6\x27\x9c\x4c\x01\x4d\xd4\x50\x28\ +\x54\x94\x54\x87\x47\x97\x49\x5d\x1b\x28\x11\x16\x0d\xe7\xa7\xae\ +\x50\x14\x24\xd1\x00\x20\xe9\x98\xec\x2e\xac\x56\x77\x1b\xab\x06\ +\x42\x5d\xbd\x52\xbf\x61\x13\x10\x2c\x84\x1c\xc2\x50\xc2\xe4\xd9\ +\x03\x9e\x43\x48\x9f\x0c\x43\x01\x37\xb2\x75\x66\xa2\x78\x63\x55\ +\xa7\x1d\x38\x2a\x3e\x55\x54\x15\x55\x80\xf5\xfc\x82\x94\x74\x73\ +\x14\x7c\x84\x08\xbf\xe7\xb1\xf6\x1b\x04\xae\x01\x0b\x84\x34\x39\ +\xdc\x33\xf2\x39\x81\x95\x8a\xa0\xb8\x70\x1c\xf2\x8f\xda\x25\x80\ +\x94\xda\xbd\xa2\xc1\x09\x96\x02\x0f\x5c\x4d\x59\x2e\xaf\x05\xfd\ +\xe4\xfb\x3e\x66\xb7\xfd\x0b\x3d\x29\x5f\x21\x6c\x2e\xf6\x44\x8f\ +\x6f\x59\xa8\xdb\xe5\x19\xf0\x88\x88\x47\xdf\xe5\x1e\x97\x76\x12\ +\x88\x23\x52\x10\xf3\x1f\x77\x43\xbe\x7a\xa9\x08\x44\xae\x20\x8d\ +\xaa\x4d\xaa\x4f\xed\xd1\x80\x8e\x07\x1c\x0b\x6e\xa8\xc7\x04\x8e\ +\x37\xe1\xaf\x69\x86\xcd\x05\x1a\x65\x68\xea\x6b\x97\x2e\xd9\x5d\ +\x63\xff\xc1\x50\xa4\xd2\x9e\x1f\x51\x0d\xbc\x28\xaa\x0f\x49\xd7\ +\x41\xad\x8a\x4e\xa5\x0e\xbc\x6a\xca\xf7\x57\xbd\x9a\xaa\xce\xf9\ +\xc3\xa7\x6a\xfc\xdd\x35\x5b\x6a\x77\x8e\x0e\xc3\x4a\x5f\x33\xcd\ +\x5a\x69\x00\x80\x35\xda\x3a\xf5\x59\x55\x84\x28\x82\xbb\x2d\x63\ +\x70\xbb\x22\x4e\xd6\x13\x58\x8f\x83\x22\x78\xd4\x1d\xb5\x48\x42\ +\x67\xdf\xee\x23\x91\x07\x57\xc0\xe9\xbc\x61\x02\x5f\xb5\x2d\x06\ +\x23\x00\xaa\x3c\x54\xd8\xd4\x02\x41\x0c\x87\x77\xdc\x6d\x3e\x55\ +\xd1\x6f\x29\x43\x14\xc3\x5a\x4b\x1b\x56\xc5\x11\x96\x49\xd4\xb3\ +\xab\xb3\xd8\x72\x6a\x08\x91\x09\x19\x9b\x6d\x49\xad\x59\x17\xa2\ +\x76\x11\x0b\xb4\x07\x75\xef\x49\x99\x24\x07\x5b\x29\xc9\x87\x24\ +\x9a\x08\xfd\xbc\x17\x5f\xd1\xfb\xf0\x28\xea\x16\x6a\xcd\x5e\x3c\ +\xd7\xf5\xb5\xea\x92\xfa\x6d\x51\x14\x4e\x6f\x0b\x71\xa5\xe4\x3e\ +\xff\xf0\xba\xde\xb6\x48\x60\x4c\xa4\x32\xd1\xe4\x1a\xf0\xbd\x91\ +\xe9\x1d\x74\x03\x14\x97\x92\xb9\x7f\xe9\x67\xc9\xc7\xea\x50\x90\ +\xa0\xe8\xd5\x39\x41\xdd\x02\x30\x5a\x39\x29\xaa\xe8\x3d\xc4\xd5\ +\x57\x97\xdc\xf0\x85\x04\x07\x15\x41\x2e\x16\x88\xc9\x70\xc8\x0e\ +\x77\x6f\x80\x38\x64\x85\xe9\x39\xef\x17\x31\xda\xf5\x81\x97\xf0\ +\x8a\x01\x65\x4b\xcc\xea\xaf\x89\x8a\x0d\xfe\x11\x32\x90\x2f\x75\ +\x55\x80\xca\xa2\x46\x2b\x14\xef\xb6\x57\x93\x24\xde\x46\x1d\x5d\ +\x42\xa7\x90\x4a\x8b\xe2\x22\x66\x35\x1a\x34\x3b\x4e\x4f\x22\xe3\ +\x1d\xe4\x65\x6e\x38\x29\xa0\xfc\xba\xf2\x10\x21\xdf\x49\xed\xa5\ +\x61\x98\xe4\xd4\x19\xd1\xd7\xe7\xe7\x0f\x7f\xf9\xea\x5e\x34\x82\ +\x5e\xe4\xdb\x4e\x19\xb6\x7e\x24\x4e\x9f\xa1\xc7\x19\x97\xb6\x29\ +\x64\x3c\xd8\x86\xb4\xef\x3b\xd0\x6b\xb6\x51\xf4\xdf\x98\xed\x14\ +\x04\xb6\xdb\x6e\x21\xc8\xc2\x1f\xbd\x09\x22\x8e\x48\xe7\x1d\xea\ +\x7a\x90\xbb\x24\x63\x5e\xb3\xae\x81\xfa\x54\x4f\xd4\x39\xec\xa2\ +\x4d\xda\xc3\x02\xd4\xb2\x1f\xb1\xc1\xa0\x60\x52\x60\xd6\x0e\x44\ +\x55\x00\xbb\x03\x39\x04\x7b\x03\x3d\x41\x0c\x4b\x91\xfb\x8c\x7a\ +\xac\xf0\x81\xd0\x9f\x52\xaa\x77\x53\xe9\x2d\x97\xac\x5a\xc3\x50\ +\xbd\x36\x2e\xc4\x9a\x13\x57\xf7\x10\xa9\x7d\xa4\x25\x98\xaa\xad\ +\x43\xa7\xde\x23\xf2\x99\x00\xca\x54\x6c\xc4\x92\x3a\x02\x36\x59\ +\x72\xd4\x05\x23\x99\x93\xa0\x91\x60\x51\xbf\xca\x27\x9b\x55\xd2\ +\xfe\x48\x6b\xa5\x98\x83\x0b\xb4\xe6\x3f\xba\x56\x11\xf9\x73\x75\ +\x86\x0b\x4b\x1b\x0d\xdc\x98\x9c\x6b\x0d\x8e\x14\x72\x96\x1f\xd5\ +\x8d\x02\xaa\x57\x51\x2b\x4a\x1d\xc9\x98\x50\xd9\x17\xc6\x5e\x85\ +\x75\x1e\x09\x33\xab\xf3\x53\x17\xd2\x79\x54\x71\x7b\xf4\x30\x4c\ +\x06\x38\x22\x38\x9c\xaa\xfb\xd0\xe2\xd3\x21\x8e\x97\x24\xa0\x1a\ +\x0b\x10\x0d\x54\x36\xbc\xef\x93\x4d\x6e\x27\x2b\x43\x12\xec\x94\ +\x35\xb8\x10\x11\x01\x43\x37\x50\xf3\x80\x43\xec\xb5\x7e\xfb\x94\ +\x44\xe4\x17\xe7\xd8\xc8\x23\x45\xad\xed\xe5\x9a\xbb\x1b\x71\xd9\ +\x5d\xd3\x8e\xcb\xaa\x0e\x32\xeb\x90\x12\x54\x0b\x98\xdc\xc4\x46\ +\x38\x23\xe7\x20\x5d\x60\x91\x1d\x03\x3f\xe4\xfe\xe7\x76\x6b\xde\ +\xa6\xb6\xee\x70\x46\xc5\xde\xcb\xaf\x41\x38\xd5\x39\x0c\x4a\x01\ +\xa4\x32\x65\x8d\x04\x34\x9c\xbd\x5d\xaf\x59\x20\xa5\x4d\xcd\xdf\ +\x41\xfc\xfc\x67\x54\x3b\x74\xd9\xf0\x36\xf8\x04\x0d\x06\xb4\x7f\ +\xb4\xa3\x2b\xbc\xcc\x20\xe8\x7d\xd7\xb4\xdb\x09\xb7\xc1\x12\x11\ +\xa8\xef\x8d\xa3\x3c\x7e\x75\x39\x14\xb5\x89\x72\xb4\x81\x18\xf7\ +\x2e\x09\xa2\x0e\xf4\xbc\x73\x21\x6d\x35\x93\x50\xb3\x9e\x48\x0e\ +\x4f\xc8\xa0\xda\xa4\xbc\x39\xd7\xa0\xb2\xc1\xa8\xbb\x65\x0b\x30\ +\x88\x2b\x61\xf5\xa5\x2d\x72\xb5\x2c\x6a\x22\x8b\xd1\xf8\x73\x8d\ +\x3e\xe7\xa6\x1a\x4b\x25\xbf\x3d\xe6\x00\x72\x2e\x6d\x59\xf3\x70\ +\xd5\xaf\x0a\x8c\xd4\xcb\x90\x8c\x28\x02\x6f\xb0\x19\x78\x5e\xc1\ +\xf5\x10\x71\xb4\x36\x66\x15\xf7\xdb\xee\x88\x00\xc1\x08\x66\x10\ +\x01\x39\xda\x45\xfd\x61\x03\x68\xe4\xe7\x6b\x8a\x05\xf7\xc3\x9a\ +\x4c\xc8\xe8\x33\x68\x08\x6e\x8d\x83\x2b\x4b\x59\xd0\x5b\xe9\xb6\ +\x37\x8d\x52\x50\xca\xf0\x72\x89\x65\x74\x14\x4f\x18\xa4\x13\xd9\ +\x4f\xcc\xbf\x66\x67\xbd\x56\x80\xbe\x12\x3d\x6a\x27\x36\x2e\x82\ +\x13\x71\x99\xc8\xb0\xb6\x90\x00\xd7\x06\x64\x10\xac\xc8\xc3\x6d\ +\xe5\x42\x4d\xa7\x31\x78\xd2\x43\xd9\x45\xed\xf7\xbb\xcd\xd2\x88\ +\x3b\x35\x50\x8c\x21\x3a\x42\xb2\x19\xbe\x53\x1c\x34\x84\xe4\xa0\ +\xdf\xfe\x06\x24\x15\x05\xb5\x65\xf0\x8d\x40\xd0\xce\xe3\x83\x3d\ +\x2d\x22\x2d\x43\xf3\x17\xd3\x79\x29\x47\xa5\xbe\xc4\x16\xd5\x6d\ +\xf8\x36\x14\xab\x15\x88\x95\x46\xab\x37\xde\xc3\xab\x14\xad\xb5\ +\x3d\x3f\x01\x5f\x6e\xc0\xab\x7f\x0d\x28\x6b\xdc\xc3\xdf\x15\xce\ +\xdb\xe7\x12\x25\x04\x91\x61\x93\x80\xa7\x33\x51\xb9\x6c\x07\xc2\ +\x77\x7b\xdd\xa7\xa9\x0d\x24\x48\xfa\x42\xd9\x6e\xa8\xe0\xc5\xc7\ +\x84\xcf\xa8\xae\x41\xfd\x45\x89\xcc\x8e\xe9\x9f\xbe\xb6\xd8\xcb\ +\xd3\x81\x48\x83\x0d\x0d\x54\x28\x53\xe2\x05\xba\xae\x90\xd4\x8e\ +\xb1\x27\x9c\x4e\x15\x25\x85\x48\x61\x13\xaf\x61\x1b\x1f\xa7\x1a\ +\x35\x62\x8c\xad\xab\x49\xb7\x9f\xa5\xc6\xe2\xc0\x44\x3b\x4a\xa1\ +\x72\x4b\x38\x89\xa5\x1d\xec\xe3\x40\x0c\xc9\x57\x48\xd8\xee\xd2\ +\xf9\x90\x03\x87\xe0\x4d\xcb\x26\x88\x60\x4d\x2f\xea\xa8\xc2\x67\ +\xdc\xd6\xe0\xc0\x7b\xfa\x1d\x05\xf8\xb7\xe4\x1d\x55\xc8\xfc\x4a\ +\x2d\x34\xe9\xc4\x8f\xdf\x7f\x35\xd0\x79\x98\xbc\x74\x7f\xaa\x8b\ +\x14\x6f\x70\xe3\xae\x96\xc6\x51\xe5\x20\x3c\xae\x9f\xb6\xc9\x30\ +\xf5\x6e\x13\x6f\x85\xc1\x3c\x41\x06\x75\x85\xeb\xf7\x11\xfe\x28\ +\x64\x4f\xba\x7b\x5c\x28\xde\x2f\xf8\x3a\x32\x34\xac\x84\xec\xda\ +\x48\x53\x69\xf9\xff\x22\x4f\xa3\x54\x5a\xec\xe0\x14\x29\x52\xaa\ +\x9a\xa0\xf5\xaa\x7c\x5d\x81\x2c\x1e\x08\x87\x1e\xac\xff\x45\x30\ +\xe6\x1b\x4b\xed\x8b\xa5\x73\xc9\xc6\xd0\xf0\x13\x91\xca\xbb\xe5\ +\x96\x1e\xdf\xac\x25\x3f\xeb\xef\x40\xe5\xf3\x6a\x5c\xfd\x9d\x26\ +\xfc\x62\x09\x90\x14\x2e\xba\x0d\xa0\x70\x05\x10\xc6\xfe\x21\x1f\ +\x4b\x9b\x5a\xd1\xe6\xef\xca\x6b\xe4\x23\x68\xd3\xf3\xc6\x28\xac\ +\xcb\x2a\xc6\xad\xb6\xda\x7e\xf3\x7f\x12\x79\xa2\x62\x3f\xda\xe3\ +\x27\x15\x5c\x1d\x40\xa9\x98\x37\x20\x45\xe6\xb9\x98\x31\x07\x36\ +\x85\xf1\x89\xa8\x8c\x68\x14\x02\xa1\x19\x75\x21\xbf\x45\x98\xc6\ +\xdd\xd4\xce\xb0\xad\xf4\x60\x83\xd7\xa6\x14\x60\x17\x30\xa0\xe5\ +\xff\x21\x76\x75\x61\xc8\x0d\x41\xf8\xde\xf5\x1d\x75\xd7\x09\x3c\ +\x70\xf7\xdc\x51\x96\xfd\xc0\xed\xd5\xe3\x2f\x6a\xa5\xef\x2a\x25\ +\xdc\x8b\x9a\xfd\x45\x7b\xea\x19\x9a\x48\x99\x77\x87\x82\x4f\x29\ +\x6c\x61\x55\x89\x82\x64\x0d\x33\x90\xf8\x95\xb0\xbf\x13\x02\x8f\ +\x0f\xe1\x9a\x2b\xa9\x30\x7a\xc4\x42\x20\xd5\xae\x91\x35\x8d\xa0\ +\x5d\xb6\xdb\x10\x26\x95\xcd\x6f\x2f\xba\xa8\xde\x6e\x52\x75\xeb\ +\x9b\xe8\xb8\xe5\x48\x2d\x52\x6d\x5f\xbe\xd4\x99\x94\x8b\xd7\x2e\ +\xc6\x40\xe7\xcf\x88\x0e\x2a\x73\x97\x00\x5d\x27\x4d\x6c\x06\x60\ +\xa8\x83\x60\xe3\x1e\xd5\x69\x23\xf9\xeb\xbe\x3d\x6a\xbf\x29\x01\ +\xfc\x9d\x64\x12\x9f\x77\x27\xdf\x8e\x30\x6f\xa5\x49\x9f\x4c\xd9\ +\x9e\x41\x6a\xa0\x12\x15\x8a\xee\x32\x90\x96\x40\x56\xd8\x2d\x7f\ +\x6a\xe9\xf9\x91\x4d\x8a\xf5\x6f\x73\x2c\xc2\x1a\xe0\x55\x08\x8e\ +\x80\xb8\x55\x59\xd8\x1b\x98\xa5\xd8\xaa\x9d\xc6\x2f\xdb\x1b\x8b\ +\x63\xe6\x5f\xdb\x1d\x5b\xfd\xa3\xf7\x8f\x98\x1e\x56\x28\xc0\xad\ +\x39\x79\x29\xa3\x21\xa9\x91\x6a\x05\x1a\x92\xdf\x5f\x34\x44\xda\ +\x10\xb9\x20\x70\xbe\xe2\x4a\xb9\x76\xde\xf2\x4b\x30\xe0\x23\x2a\ +\x8b\x1a\x73\x3c\xb0\xbb\x08\xa8\x53\x05\x0e\x9c\xce\xad\x3b\x2a\ +\xa4\xf6\xbc\xda\x21\xc9\xb6\x1c\xc3\x6d\x22\x20\xd0\xb9\x11\xd5\ +\x52\x37\x85\xd5\xab\x81\x00\x46\x23\xa2\x58\x8d\x98\x7a\x7d\x2d\ +\x93\x61\xea\x51\x34\x62\x2d\xa5\x47\xfe\x67\x19\xfd\x98\x8e\x56\ +\xff\xd1\x8a\xdd\xa0\x82\x5e\xd2\xd9\x44\x7b\xa6\x75\xe3\xb0\xb2\ +\xcb\xc0\xfa\xa0\xb6\x7a\xb5\x68\xcb\x82\xf1\x41\x67\x00\x62\x0f\ +\xe1\x83\xd5\xc0\x6a\xd5\x85\xdc\xad\xa2\x38\x6d\xea\x6b\x6b\x3f\ +\xb4\x5f\x29\x63\x5b\xe7\x51\x52\xa6\xa9\x19\x84\x94\x31\xd9\x0b\ +\xa1\x55\xe7\x11\x61\x27\x61\x4a\x4a\xf4\x3b\x7e\xf6\xd3\xbc\x81\ +\xd4\x57\x05\x65\xa2\x1a\xc0\x05\x43\xe4\x8d\xa8\x51\x43\xbb\x84\ +\xc9\x19\x22\xb8\xbf\x93\xf2\x46\x55\xfd\x36\x4f\x9f\x0e\xa1\xec\ +\x42\xc9\x3a\x3b\x8e\x24\x78\x33\xe2\x7f\x4d\xed\x93\x29\x0e\xa9\ +\x85\xfd\xdb\x8b\x04\xf6\x8d\x9d\xa3\x8f\x14\x88\x31\xdc\xce\x16\ +\xd4\x2d\x9b\x38\x16\x69\x35\x1d\x6b\x78\xe3\xb3\x36\xe4\xb0\x92\ +\x2a\xae\xd3\x9c\x57\xb0\x91\xbf\x2b\x91\x6d\x26\x28\x40\x1a\xdc\ +\xab\xee\x23\x79\x53\xd5\x23\x05\x7e\xaf\x16\x19\x77\x8f\x11\x0d\ +\x2a\xb5\x2e\xa6\x23\xae\xa4\x7d\xc2\x66\x03\x06\x47\x5b\xa8\xda\ +\xcc\xff\x73\x47\x1d\x62\x44\xcd\x43\x6a\x7b\xed\xc2\x00\xfe\xc0\ +\x7e\x47\x12\x78\x74\x80\x44\x75\xd4\x40\xce\x9b\xe6\x9d\x82\xf4\ +\xb7\x92\x28\x52\xd2\xef\x86\xe4\xcf\x57\x0d\x81\xcf\xf2\xfa\x26\ +\xa8\xa5\xd0\xa2\xed\x6d\x37\x07\xb7\x68\xab\x0d\x1e\x42\xfa\x21\ +\x33\x06\xf7\x05\xf2\xfd\xa4\x50\x2e\xfc\xec\xd0\x12\x5b\x63\x16\ +\x7f\x68\xd9\x1f\x29\xfb\x7c\x5a\x96\x04\x04\x02\xc7\xb8\xad\x13\ +\xc0\xae\x3a\x1b\xd2\x1b\x25\xab\xbd\xaf\xce\x89\xdb\x77\xb2\x4e\ +\x8c\xfd\x3f\xe3\xed\x21\xe0\xf2\xc2\x98\xc9\xf6\x15\xd0\x32\x1a\ +\x93\x6c\x1a\x81\x78\xc5\xf4\x82\xf0\x1b\xba\xa9\xc6\x34\x04\x88\ +\x6a\x0d\x65\x6e\xb6\xcb\xd2\x21\x24\x08\x13\xab\xf3\x2e\x3f\x36\ +\x44\x51\x7f\x6d\x73\x49\xd9\x61\x67\x72\x54\xfc\x1a\x4c\x03\xbc\ +\x35\xbc\xb6\xf8\x1d\x52\x38\xa2\x76\x3f\x58\x6d\xc3\x94\xc0\x3a\ +\xcb\x45\x2f\x90\xfe\xe7\xf9\x1a\x80\x77\xc4\x4b\x5c\xd8\xf8\xe8\ +\xbe\x9b\xe3\xeb\xa7\x83\xdd\xbe\x0e\xb6\xf8\x81\xbf\x1d\xec\x72\ +\xdb\x68\x8d\x5c\x70\xda\xcd\x0a\xf5\x64\xd2\xe8\xa8\x8f\xf6\x6a\ +\x3a\x0a\x21\x84\x98\xfd\xe9\x93\x7f\x5d\x72\x1b\xa5\x3d\x1a\x16\ +\xd5\x8a\x93\x26\x0a\xd3\x9d\x22\xad\x11\xe2\x05\x03\x79\xaa\x3a\ +\x6b\xc3\x48\x11\xe9\xa6\x1e\xe5\x5e\xc9\xb0\x99\xb8\x38\x32\xec\ +\x54\xfb\x1d\x7b\x26\xcb\xac\xbf\x75\x45\x95\x58\x12\x87\xe3\x21\ +\xbc\x83\x36\xc9\xb2\xd2\x42\xad\xc7\x62\xbd\xec\xa9\xa1\x42\x94\ +\xd2\xbe\xaf\x5e\xfe\xde\x02\x02\x61\xc2\x5f\xc2\xea\xa9\x62\x96\ +\xbe\x8d\xb8\xef\x17\x4a\x09\x88\x8c\xd6\x04\x8e\x61\x2a\x30\x1a\ +\x47\xc6\xd6\x90\x29\xc8\x5b\x20\x39\x26\xf5\x8b\x20\xcf\xd7\x7e\ +\x6b\x5a\x23\xe6\x3c\x5b\xcd\x18\x52\xe7\x16\x63\x75\xfb\xcf\xb2\ +\x26\x10\xee\xa0\x14\x35\x8b\x30\x65\xdd\xaf\xc6\x9d\x28\xc7\x92\ +\xbc\xe4\x9d\xd5\x25\x42\x86\xa5\x99\x1e\xb8\x18\xa9\x52\xbc\x8f\ +\x00\x83\xc6\x40\x1a\x66\x4a\x7a\x31\x6e\x92\xa1\x2a\x77\xb8\x31\ +\x7a\xd5\xd3\x55\xee\xe6\xab\x17\x6a\xa3\xfb\x32\x41\x17\x81\xe8\ +\x81\xcc\x52\xe6\xf7\xa8\xad\xb0\xde\xae\x7f\x54\xa0\x36\x22\x63\ +\x78\xab\xa4\xea\x4c\x9f\xbf\xe7\x5d\xae\x7f\x07\xa7\x87\x62\x15\ +\xc4\x10\x07\xda\x16\x82\x1d\xd4\x25\x64\x89\xfb\xee\xa9\xea\x5f\ +\x75\x4c\xb6\x4d\xa2\xda\xb6\x0b\x66\xf6\xff\xe0\xd9\xe7\xa7\xd3\ +\x7b\x21\xeb\x7c\x9d\xde\xab\x28\x5f\x31\xf8\x65\x0e\x5c\x0d\x19\ +\xc0\x8b\xb6\x72\x37\x48\xfa\x6f\x25\x2c\xd1\xed\x27\x2a\x1b\x4a\ +\x95\x29\x8d\x13\x0e\x45\x6a\x51\xab\x49\xf6\xe1\x85\xb6\xd3\x43\ +\x1b\xe0\xb2\xc6\xf8\xe1\xe6\xd2\x5c\xa4\xbd\x22\x71\x6c\x53\x35\ +\xc5\xfd\x0c\x3e\x3e\x8d\x2a\xa0\x56\xf0\x4f\xa3\x20\x40\x4c\x34\ +\x8d\x09\x1b\xa5\xc8\xc4\x09\x8b\x2a\x91\x15\x62\xb8\xe8\xdf\x49\ +\xf6\xf1\x5f\xe9\x1e\xa4\xcb\xda\x7a\xe6\x51\x30\xaa\x9a\x9f\xcb\ +\xba\xe0\x21\xe7\x1b\x5f\xd4\x8e\x19\x80\xa2\xf1\x69\x85\xde\xbf\ +\xcf\x00\xfc\x6c\x14\xd8\x00\xc2\x7e\x8e\x82\xf7\x9b\xe2\x3d\x13\ +\x56\x67\xe3\x07\xc9\x62\x18\x7f\xc1\x9a\x52\x5b\x39\x09\x52\xe1\ +\x4b\x75\xfe\xcb\x10\xeb\xfb\xfc\x1e\x62\x25\x49\x09\x7b\x9b\xa3\ +\x4a\x77\x7f\xbb\xde\x30\xad\xde\xdb\x3c\xa6\x86\xa3\x5f\xa3\x2c\ +\x21\x5d\xf1\xaa\xc9\x48\x2d\xc0\x95\xf4\x74\x94\x7b\x87\x1b\x50\ +\x4b\x09\xd1\xd5\x0a\xfc\x63\xed\x1d\x82\x04\x80\xb6\x64\xb4\xbb\ +\x41\x30\x41\x7b\xb9\x4e\x5c\x46\x7d\xca\x6d\x68\xf6\xe7\xe3\xf0\ +\x1a\x41\xcb\x45\x27\xaa\x79\x4b\xc0\xab\xe1\x12\xe3\x7e\x63\xbb\ +\x23\x08\xce\xd9\x00\x42\xfe\x06\x10\x5c\xf9\xd9\x21\x1d\xdf\x0e\ +\xa9\x88\x55\x4d\x8f\x18\x46\x32\xc9\x28\xb2\x77\x5d\x09\xa7\x96\ +\x9e\xb4\xb6\x46\x4a\x88\x00\x99\x4d\xf4\xbf\x6a\xff\x49\x35\xbb\ +\xf9\x64\xff\xc6\x10\xec\xd0\x4b\x2a\x3a\x54\xe1\x8c\xae\x6f\x48\ +\x66\xd7\xfd\xa8\xb5\x1a\xa6\x0e\xfb\xdc\x71\x82\x32\xfd\x6f\x96\ +\xa9\x8d\x9c\x84\x51\x93\xb5\xef\xad\xe5\x72\x97\xf0\x5c\x92\x07\ +\x01\x1a\x95\xf8\x06\x68\x44\xc9\xb4\x25\x27\x01\x01\x67\x47\x00\ +\x12\x06\xda\x33\x09\xb1\x1b\x29\x50\xc9\xcc\x77\x5e\xaa\xa8\x63\ +\x24\x5e\x12\xd4\x86\x96\x68\xfa\x2f\x30\xa2\x4a\x07\x01\x23\xca\ +\xd1\xa0\x4a\x40\xeb\x27\xc4\x01\x75\xae\x03\xbc\x98\x95\x98\xae\ +\xee\x21\x74\x33\xf4\x59\xb3\x93\x7a\x05\xa2\xbe\x74\x63\x63\x33\ +\xd9\x88\xc9\x37\xdf\x12\xe5\xae\xb6\xfe\x1d\x58\xe0\x47\xd3\x22\ +\x74\x0b\x2c\xbe\x6d\x35\xcc\xfd\x67\x88\x36\xe5\xd5\x6b\x39\x11\ +\xb2\xb6\xa7\x1b\x30\x33\x29\xd3\xd4\xe1\x0e\xe4\xaa\x47\x30\x35\ +\x7b\xbc\x8a\x64\x31\x34\x64\xcf\x11\x6d\xde\x37\xdc\x46\xf4\xd4\ +\x14\x79\xf4\x01\xd2\xa3\x9d\xc0\x79\x27\xfa\x27\xd5\xfc\xa6\xed\ +\x1d\xb2\x2e\x51\xc7\x1f\x9e\x1e\x1b\xfc\x9b\x88\x7c\x23\x3c\x6b\ +\xf8\x5d\x7c\xa2\x2c\xce\xe6\xef\x80\x05\x30\x30\xb5\xef\x8a\x0f\ +\x7a\x29\x4d\x53\x55\xa2\x09\xa0\xa0\xe7\x4d\xdf\xc8\xbb\x69\x34\ +\xc4\x3d\x0e\x59\xaa\xe9\x78\x8d\xf7\x41\x57\x63\x36\xfd\x7f\x7e\ +\xa4\xb2\x47\x60\x79\xb1\xb6\x9f\x38\x73\x52\x6e\xde\xda\xf4\xdf\ +\x70\xc1\x8d\x17\x73\xff\x17\x32\xe5\xdb\xd3\x73\x09\xf8\xeb\xda\ +\xaf\xcc\x67\xfb\x31\x62\xd4\xe0\x26\x2b\x0f\xfa\xf7\x8d\x33\xce\ +\xad\x41\x13\x1d\x3b\x84\x88\x4a\x68\x27\xd8\x08\xd8\xf4\xb3\xb5\ +\x6f\x13\x36\x3f\x9b\xfb\x82\x6e\x89\x9a\x1a\x93\x88\xd6\x46\x0d\ +\x0c\x6d\xfd\x46\x23\x59\xab\xe4\x8a\xaa\x9b\x28\x0c\x51\xdd\x37\ +\x3f\x91\x0f\xf2\x4e\xc8\x27\x1c\x7b\xac\x8b\x0c\xb0\x0b\x50\xbd\ +\x62\xca\xec\xad\xc2\x49\x11\x55\xe3\xa0\x20\x85\xb5\xf2\x0c\xf7\ +\x95\xf1\x6d\x24\x70\x69\x02\x61\x65\x4d\xd2\x92\xee\x98\x07\xed\ +\xf3\x6e\xf4\xcb\x58\xb9\xfc\x1f\x60\xc3\x74\xd2\x95\xdf\x92\x59\ +\x7d\x3f\xea\xc7\x0e\x6d\xce\x9b\x1e\x69\x5e\x82\x1d\x15\xae\xe9\ +\x8a\x81\xa6\xf5\xbc\x37\x12\x4c\x07\x57\x62\x91\x56\x42\xd6\xa8\ +\x5d\x4e\xa4\x93\xcd\x5c\x0c\x1f\xc1\x05\x00\x1b\x12\x67\xf2\xf8\ +\xf4\x8d\x2d\x24\x27\x2a\xa6\xb1\x05\xed\x7b\x97\x3b\x19\xad\xd1\ +\x29\x0d\xf4\xf2\x33\x8d\xac\x7d\xf2\x41\xdd\x21\x83\xe7\xa3\x8d\ +\xe6\xc7\x00\xdf\x06\x58\x8f\xce\x21\xfe\xac\x4d\x78\x32\xc1\x26\ +\xfb\x50\x85\x54\x3a\xcd\xd6\x6b\x04\x97\x70\x20\x53\xa0\x05\x8e\ +\x4a\x16\xc8\xe3\xe2\x3c\x37\x93\xee\x2f\x84\xb0\x73\x6d\xf6\xaa\ +\xdd\x61\xb5\xfd\xca\x9d\x7c\xbb\x1b\x26\x9a\x7d\xbb\xa7\x13\xb2\ +\xa6\x14\x34\x95\xa1\xd1\x37\xe8\x5a\x5b\x3b\x44\xa3\xdc\x21\x3f\ +\x70\x0d\x58\x3f\x04\x60\xa7\x34\x22\x40\x0f\x07\xd3\x4c\x74\xb5\ +\xc9\x5e\xa2\x9c\x5a\x6b\x19\x3b\x46\xfe\xb7\x41\xd5\x41\x7a\x3f\ +\x90\x1f\x0d\x19\x7d\x53\x80\x59\xc7\x00\xc0\x8d\x85\xab\x34\x04\ +\x48\x11\xd3\x44\xfe\x1d\x02\x6c\xb5\x20\x7e\x35\x04\x88\x5f\x6d\ +\xc7\x57\xb8\xa1\x11\xd6\xf7\x4a\x08\x09\x59\xeb\x1c\xcd\xae\x9b\ +\x5d\x32\x15\x2c\x25\xf7\x20\xc0\x34\x8d\x52\x9b\x4e\x32\x69\x3e\ +\x56\x83\xf4\x59\xf3\xb1\xde\xda\xd0\x36\x1f\x0b\x28\x3c\x49\x83\ +\x2b\xf6\x21\x6e\x7e\x47\x64\xc7\x1d\x46\x57\x23\x40\xac\x6e\x11\ +\xfa\xdb\x66\xc0\x82\x6c\xb5\x24\xe2\xa4\x48\xad\x42\xc5\x71\xd1\ +\x6b\x3d\x1f\x32\xde\x46\x54\x1f\x3a\xe7\x00\x53\xb0\xf9\xcd\xa0\ +\xe3\x3e\x3f\x03\x6f\x9a\x09\xca\xcd\x06\x2a\x59\xfb\xca\x59\x8a\ +\x7d\xa0\x27\xd5\x30\xa9\x1a\x65\xb0\x03\x55\xe7\x8b\x8d\xac\x76\ +\x5f\x1a\x21\x43\xdd\x13\x11\x8f\x78\x2b\x7e\xf2\xf7\x5d\xb2\xb6\ +\x5b\x16\xe6\x69\xd6\xaa\xa2\x8c\xa1\xff\xec\x2c\x09\xfa\x62\xe2\ +\x7e\xb5\x9c\xc2\xd8\x9a\x1e\xd3\x49\x61\xde\x21\x06\x61\xd1\x6b\ +\x53\xaf\x94\x38\x9d\xb7\xf2\x60\xff\x10\x25\x4b\x8a\x7f\xd3\xf5\ +\x71\x0c\x57\x00\x25\xc8\x39\x35\x1b\xf0\x57\x4d\x58\xa1\x92\x8c\ +\xd0\x7d\x1e\xb0\xe6\xe2\x01\x36\x5d\xef\xc3\x37\x5c\xff\xde\x99\ +\x83\x24\x83\xea\x88\xdc\x68\x79\xc0\xb5\xfc\x1d\xe2\x05\x60\x7c\ +\xd3\x88\x1e\x02\x16\x4a\x55\x75\xf6\x45\x03\x84\x66\xc3\xf5\x33\ +\xc1\x7a\xb5\xe2\x37\xf6\xbe\xd1\x9a\xe9\x1b\x1e\x4e\x77\xc2\xa4\ +\x88\x5d\x13\xa4\x0f\x48\x0c\x98\x9a\xf1\x97\x8d\x26\xfa\x1f\x2e\ +\x86\x69\xe2\x9d\x7a\xbe\xc3\x82\xe9\x0e\x9e\xed\x3b\xd0\xe0\xfa\ +\xdd\xa8\xcb\x9a\xe7\x57\xc9\xfe\x4a\x4b\xb1\x5e\xad\xc3\xb3\x9a\ +\xf5\x04\x73\xdf\x73\xc9\x7a\xd3\x19\x84\x2f\xd4\xbe\x09\x59\xbf\ +\x9b\xe6\x78\x22\x90\x27\xd7\xdb\x84\x6c\x7e\x6c\x44\x56\x04\x74\ +\xfc\xeb\xb4\x6a\x40\x62\x6c\x9b\xec\xae\x36\x9a\xab\xf8\xc2\xa5\ +\x6b\xdb\x78\xac\x1a\x0a\xe0\xc3\xa3\x53\x32\x71\xa9\x60\x8d\x59\ +\x07\x46\x97\x1c\x33\x19\x65\xba\x9b\x5b\xa4\x66\xf9\x76\xd4\x28\ +\xdf\x6b\xec\x3b\x57\x6a\xc3\xe8\x32\x85\x95\x49\xd4\x11\xa1\xff\ +\x2e\x0d\x09\x92\x73\x0b\x63\x69\x40\x02\x16\xa0\xbd\x7a\xd8\x55\ +\x1b\xda\x49\x47\xa0\x96\x16\x40\x23\x9d\x88\x73\xf0\x30\x9d\x2d\ +\x22\xd9\xed\xec\x06\x4b\x7d\xbb\x6d\x66\xa6\x6f\xb4\xb2\x9f\x55\ +\x2e\x25\x77\x9a\x27\xeb\x84\xa9\x36\xbd\x9d\xba\xf5\x1a\xcf\xd7\ +\x79\x48\x91\xe4\x3b\x9e\x9f\x29\xd9\x3b\x79\x1b\xcf\x87\x73\xb4\ +\x07\x9d\x32\x34\x30\x71\x8f\x9e\x65\x57\xee\xc8\xbf\x35\xc4\xfd\ +\xb9\x93\xff\x4e\x8f\x26\xbf\xfe\xb6\x81\xa2\x9e\xbd\x1d\x4f\xd2\ +\xf3\x90\x59\xab\x6a\x80\x53\xc7\x79\x04\x48\x3b\xc3\x13\xc8\xb8\ +\x01\x6a\xac\xfa\x52\xc0\x6c\x9e\x3e\x6d\x6b\xde\x12\xcc\x36\xa2\ +\x61\x6d\x22\xc3\xd0\x76\xe9\x5f\x7b\xfa\x79\xb3\x8a\x30\x14\x40\ +\xb2\xdf\xe9\xa4\xf7\x19\x79\x57\xe3\xb5\xb9\x0d\x50\x63\x69\xa3\ +\xf6\xed\x42\x77\xcd\xa4\x0c\x4c\xa4\xcd\x04\xc3\x82\x3a\xee\xc1\ +\xa1\xc7\x3a\x0b\xaa\xd1\xc4\x27\x19\x21\xf5\x44\x12\x5c\x90\x45\ +\x44\x9d\x4b\xe3\x63\xc1\xdb\xc2\xc9\x3a\x14\xf8\x64\x98\xa6\xb8\ +\x8e\x09\x8a\x74\x99\xbf\xb3\x03\x44\xc0\x9e\x1d\x19\x01\x28\x11\ +\x8b\xf7\xc8\x08\x49\x83\x05\x90\x0c\x05\x88\xcd\xd2\x9c\xe7\xdf\ +\xce\x27\x61\xb0\x67\xe2\x60\x35\x76\xba\x86\xdf\xc8\x77\x3b\xd1\ +\x42\x81\xa7\x16\xda\x89\x16\xf5\xe9\xaa\x9d\x68\x69\x78\x5a\x27\ +\x5a\xf6\x3f\x9d\x46\xaa\xcf\xab\xce\x4a\x3e\x2e\x6c\x3b\x50\xe3\ +\x07\x8f\xce\xe4\x3c\x39\x83\xf8\xd4\x81\x9a\x94\x0d\x0b\xa9\x6a\ +\x36\xa8\x67\x9d\xfe\x1d\xdd\x37\x2e\x97\x35\x1f\x44\xd9\x7b\xd4\ +\xe5\xad\xa2\x02\xdd\xb5\x18\x20\x06\xfb\x6b\x2f\xdf\x23\x5c\x94\ +\xa7\x66\xfd\x9f\xa5\x71\x04\x18\xba\x4d\xf7\x85\x8f\x62\xb5\xa4\ +\x6c\xb3\x63\x49\x0f\xe8\x52\xef\x7e\xb8\x1d\x61\x5c\x77\x7c\xe1\ +\x7e\xc2\x8a\x80\x8d\x0d\x16\xaf\x5a\x43\x65\xae\x81\x90\xb7\xbd\ +\xc7\x16\x7e\x46\xb2\xe0\x82\xd0\x9a\xdf\x27\x93\xa4\xe3\xd5\x68\ +\x8a\x33\xdc\xb3\x51\xfb\x1b\xb7\xf8\xa1\xa3\x02\x3d\x96\x78\x62\ +\x69\x7e\xbb\xd6\x10\xfa\xbe\x17\x57\x03\x14\xfd\x3c\x1d\xb8\x1c\ +\x98\xd4\x1a\x4e\xca\x67\x1d\xdf\x12\x59\x51\xc7\x46\x69\x36\xfb\ +\xd1\x2e\xee\x70\x35\x03\x63\x1f\xfa\xe5\xeb\xa1\xda\x7e\x9d\x45\ +\x7a\xfe\x38\x8c\xa4\x4e\x1d\x4f\xb5\x50\xa0\x24\xb2\x04\x1e\x7a\ +\x8f\x92\x51\x94\xb5\xc3\xa3\x50\x00\xa0\xbe\xd3\x43\x7f\x89\xa6\ +\x27\x7d\x47\x29\xf6\xfa\xd7\xe3\x49\x4a\x4a\x75\x43\xcb\xcf\xd1\ +\xa1\x0b\x75\x92\xc4\x0d\x92\xc4\x77\x6b\x9a\x0f\x80\xa2\xc3\x89\ +\x07\xb7\x0f\x8d\xf6\x82\xc9\x44\x34\xe4\x16\x92\x4c\x91\x0f\x3a\ +\x67\xcc\x37\xd1\x7e\xd0\xa3\xf3\x33\x15\x09\xff\xfd\xa6\x22\xf7\ +\x37\x15\xf9\x78\x3b\x55\x62\xbe\x11\x29\xfc\x4e\xf8\x49\x42\xc4\ +\x71\xdb\xb9\xbc\x23\xd6\x2d\x3a\x7d\xea\x46\x5c\x6a\x4c\x8f\xa2\ +\x73\x1a\xc1\x1f\xc3\x2b\xde\x6d\xb8\x47\xd4\x56\x87\x7f\x92\x4e\ +\xe5\xe8\xd8\x01\xfa\xf3\xef\xd3\x05\xff\x3c\x5c\x00\x78\x02\x1d\ +\xde\x4e\xe8\xcd\xa8\x03\xde\xd0\x27\xd8\x29\x14\x4e\xf4\xa3\xe8\ +\x30\xf9\x9b\x5d\x8d\x39\xdb\x40\xf5\xa2\xce\xab\x29\x60\x42\xf8\ +\xbd\xe7\x90\x95\x21\x43\x91\x20\x89\x21\x92\xf6\x9e\x47\x16\xd7\ +\x50\x13\x57\x2c\xd3\x44\x5d\x2c\x4b\xef\x7b\xfc\xa1\x52\xf1\xc2\ +\xd5\xe6\x50\xfd\xb0\x39\xd4\xc6\xdb\x2b\x80\xde\x41\x41\x1d\xf3\ +\xa5\xa8\xc3\x3c\x53\x7c\xea\x9b\x62\xaf\x53\xff\x93\x03\xcd\x30\ +\xd9\x99\xcd\x21\xe9\xa2\x90\x8c\xd6\xbf\x07\x8f\xf4\xec\xb4\x42\ +\x30\x02\x39\x31\x97\x28\x4d\xda\xda\x05\xea\x20\x25\x8b\xd2\xf1\ +\xc5\xa3\x0a\x98\x7f\x7a\x55\x88\xdb\x71\xee\x10\xba\x9d\x87\x06\ +\x4d\xed\x00\xac\xd7\x00\x91\x1d\x80\x7d\xd1\x1b\xd9\xce\x43\x2f\ +\x0d\xf5\xdc\x93\xd5\x8f\x1d\xad\xd6\xf6\xdc\x1d\x94\x8a\x3a\xf3\ +\x7a\xc5\xef\x21\x68\x85\xba\x97\x59\x07\x62\xa4\x7c\x03\xfb\xb1\ +\x37\x4d\x7b\x56\xcc\xb7\xa1\x28\x70\xe7\xae\x14\xd1\xae\xde\xd2\ +\x39\x14\xed\xf0\x41\xa9\xd4\x89\xd4\xa6\x37\x10\xb6\x03\x34\x55\ +\x83\x5a\x84\x64\xd7\xc7\x9a\x76\x86\xd3\xb2\x23\xd1\xeb\xda\x81\ +\xa7\xa3\xf4\x2f\xd1\x82\x3c\x59\x5b\xa7\xa7\x1f\x8c\x81\x6e\x7e\ +\x03\x56\xea\xe9\x84\x83\x94\xd7\xde\x4f\x7e\x41\x81\xb8\xf5\x7f\ +\xe8\xa8\xac\x71\x9e\x6e\x23\x5b\x84\xdf\xbe\x7d\xc8\x98\x6c\x24\ +\x1d\xdd\x32\x25\x3f\x35\xde\x0e\xdd\xaa\xdf\x56\x52\xb6\xd1\x4d\ +\xbf\xec\x28\xf5\xb2\x93\x55\xf7\x99\x5d\x9d\x18\xdd\x37\xba\xfa\ +\x84\x7b\xe3\x77\xde\x0f\x8f\x6f\x73\xa4\x84\xf5\x7b\xd9\xff\xb8\ +\xea\x7b\x30\xfa\x85\x75\x01\xfa\xe8\x7e\x48\x20\xd2\x05\xba\x26\ +\x8b\xdd\xd9\x46\x4d\xec\xe3\xc2\x7c\x8f\x76\xef\xfa\x1d\xda\xd1\ +\x19\x0d\xc4\x92\xc6\x41\x6c\x34\xaa\xe8\xa8\xc0\xf6\x07\xa2\x17\ +\xf4\x7f\x1c\xd0\xd9\x22\x0c\x77\xf7\x3d\xfe\x9b\xd7\xba\x14\xf7\ +\x26\x68\xb4\xab\x9f\x92\x6d\x36\x84\x13\xe7\x0d\x90\x07\x39\x07\ +\xc7\x8b\xc3\x4e\xcc\xfb\x42\xa1\xb5\x23\xd2\x4b\x47\xa4\x87\xb6\ +\x10\x65\xba\xf8\x7b\x6f\x7f\x9c\x3f\xcf\x5a\xdb\xff\xaf\x40\x0f\ +\xda\x2a\xd9\xfb\x7a\x48\xf3\xd4\xea\x22\x9f\x71\x5b\xbc\xd4\x50\ +\xb1\xe5\x3d\x34\x0b\xa1\xb3\x2c\x54\x74\x9d\x65\xf1\xde\xce\xb2\ +\x10\x87\x91\xfa\x95\x35\xfc\xc7\x2a\x34\x55\x1f\x75\xc8\xa8\x4e\ +\x6b\x35\x35\x83\x72\x14\xfc\xd4\x51\x36\xfd\x7f\x08\xb6\x09\xba\ +\xef\x58\x70\x88\xf7\x8c\xa1\xc5\x7d\xae\x66\x45\x1d\x67\xa9\xda\ +\xa9\x39\xda\x89\x23\xfa\x06\xc9\x8f\xca\xea\x71\xea\x7f\xf2\x52\ +\x09\x5e\xd8\xdf\x80\x77\x01\x17\xf0\x2f\x1d\x2e\x8b\xd5\x53\xfe\ +\x2b\xb1\x12\x74\x96\xa4\xe1\x1e\x54\x06\xca\x74\xfb\xc7\x76\xdc\ +\xd0\x5d\x76\xcc\xce\x7f\xff\xef\x85\xf6\x8f\x34\x86\x24\x5a\xed\ +\xf9\xdf\x4c\x49\x23\x27\xd0\xb4\x8b\xee\x00\x00\x00\x06\x62\x4b\ +\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x00\x09\ +\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\x2e\x23\x01\x78\xa5\x3f\ +\x76\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe2\x09\x14\x09\x34\x2c\ +\xc3\x10\x16\x0b\x00\x00\x03\x80\x49\x44\x41\x54\x38\xcb\xb5\x95\ +\xcf\x4b\x72\x59\x1c\xc6\x9f\x73\xd4\x38\x21\x61\xf7\x15\x24\x83\ +\x2b\x44\x52\x4a\x90\x25\x81\x9b\x2e\x82\x72\xa7\xe1\x1d\x68\x13\ +\xe2\x4a\x77\xc1\xb8\x08\x77\xef\x0b\xfd\x07\xef\xbb\x6b\xd5\x80\ +\xab\x6c\x25\x61\x05\x32\x31\x65\xb6\x31\x83\x68\x11\x12\x84\x89\ +\x05\x5e\xa3\x0c\x92\xba\x42\xcd\x05\xbb\xe7\xce\xe2\xc5\xe8\x07\ +\xcd\x6c\xde\x79\x96\xe7\x9c\xe7\xc3\xf3\x3d\x1c\x9e\x43\xf0\x42\ +\xa9\x54\x8a\xcc\xcf\xcf\x1b\x85\x42\x81\xdd\xdd\xdd\xfd\xd2\x6a\ +\xb5\x12\x8a\xa2\xc8\x9c\x73\x13\x00\x50\x4a\x75\x97\xcb\x95\xb7\ +\xdb\xed\xcb\x82\x20\xec\x84\xc3\x61\xad\xeb\xe9\x32\x08\xde\x68\ +\x75\x75\xf5\x73\xa3\xd1\x58\x2e\x16\x8b\xae\x4a\xa5\x02\x00\xb0\ +\xd9\x6c\x00\x00\x55\x55\x01\x00\x1e\x8f\x07\x92\x24\x29\xa2\x28\ +\x26\x62\xb1\xd8\xd6\x4b\xff\x2b\x60\x3a\x9d\xfe\xb2\xbf\xbf\xff\ +\x2d\x9f\xcf\xc3\xed\x76\x1b\x3e\x9f\x0f\xa2\x28\x12\xc6\x18\x00\ +\x40\xd3\x34\x34\x1a\x0d\xa3\x5c\x2e\xa3\x56\xab\x11\x59\x96\x31\ +\x3d\x3d\xfd\x35\x1e\x8f\x7f\xef\x32\x4c\xa9\x54\x8a\xe4\x72\x39\ +\xa4\xd3\xe9\x2f\x87\x87\x87\xdf\x76\x77\x77\x11\x89\x44\x10\x0c\ +\x06\x49\x5f\x5f\x1f\x01\x80\x4e\xa7\x83\xa7\xa7\x27\x50\x4a\xf1\ +\xe9\xd3\x27\x32\x31\x31\x41\x06\x06\x06\xb0\xb5\xb5\x05\xc6\x98\ +\xbc\xb0\xb0\xf0\xf7\xc6\xc6\x46\x29\x95\x4a\x11\xd2\x1d\xb3\x58\ +\x2c\xfe\xb9\xb7\xb7\x87\x64\x32\x09\x93\xc9\x84\x4e\xa7\x83\xfb\ +\xfb\x7b\x9c\x9c\x9c\xe0\xe2\xe2\x02\x8a\xa2\x40\x14\x45\xf8\xfd\ +\x7e\x8c\x8d\x8d\x81\x31\x06\x5d\xd7\xb1\xb4\xb4\x84\x50\x28\x04\ +\x49\x92\x7e\x8b\xc5\x62\x5b\xa6\x42\xa1\xc0\x4e\x4f\x4f\xff\x5a\ +\x5b\x5b\xb3\x45\x22\x11\x08\x82\x80\xa7\xa7\x27\x10\x42\x50\xaf\ +\xd7\xb1\xb2\xb2\x82\xeb\xeb\x6b\x3c\x3e\x3e\xa2\xd9\x6c\xe2\xf8\ +\xf8\x18\x0e\x87\x03\x4e\xa7\x13\x66\xb3\x19\x83\x83\x83\xc8\xe5\ +\x72\x70\xbb\xdd\xd2\xe2\xe2\xe2\x1f\xa6\xd9\xd9\xd9\xcf\x9b\x9b\ +\x9b\xbf\xf7\xf7\xf7\x1b\xc1\x60\x90\x68\x9a\x06\xf2\x23\x38\x54\ +\x55\xc5\xd4\xd4\x14\xa2\xd1\x28\x42\xa1\x10\x6e\x6f\x6f\xd1\x6c\ +\x36\xc1\x39\xc7\xe4\xe4\x24\x38\xe7\x70\x3a\x9d\xb8\xba\xba\x32\ +\x2e\x2f\x2f\xfb\xbd\x5e\xef\x11\x6d\xb5\x5a\x89\x4a\xa5\x02\x9f\ +\xcf\x87\x97\x30\x00\x18\x1e\x1e\xc6\xe8\xe8\x28\x7a\x7a\x7a\xd0\ +\xdb\xdb\x0b\x87\xc3\x81\xee\x9d\x02\x00\x21\x04\x9a\xa6\xc1\xe7\ +\xf3\xa1\x52\xa9\xa0\xd5\x6a\x25\xa8\xa2\x28\x32\x00\x88\xa2\x48\ +\x38\xe7\xf8\x48\x37\x37\x37\x28\x95\x4a\x00\x80\xf1\xf1\x71\x50\ +\x4a\x01\x00\x9c\x73\x88\xa2\x48\x00\x40\x51\x14\x99\x72\xce\x4d\ +\x36\x9b\x0d\x8c\x31\x7c\x04\x6c\xb7\xdb\xc8\x64\x32\x78\x78\x78\ +\x80\xd7\xeb\x85\xdf\xef\x7f\xde\xe3\x9c\x83\x31\x06\x9b\xcd\x06\ +\xce\xb9\x89\xe2\x3f\x64\x18\x06\x0e\x0e\x0e\x70\x7e\x7e\x0e\x87\ +\xc3\x81\x68\x34\x0a\xab\xd5\xfa\xe1\x79\x4a\x29\xd5\x55\x55\x85\ +\xa6\x69\xcf\x63\xbc\x05\x9e\x9d\x9d\xc1\x6a\xb5\x22\x10\x08\x40\ +\x10\x84\xb7\x00\x68\x9a\x06\x55\x55\x41\x29\xd5\xcd\x2e\x97\x2b\ +\x0f\xe0\xd7\x46\xa3\x61\x0c\x0d\x0d\x11\x5d\xd7\xdf\x19\x92\xc9\ +\xe4\xbf\x25\x42\xbd\x5e\x37\x00\x10\x97\xcb\x95\xa7\x76\xbb\x7d\ +\xd9\xe3\xf1\xa0\x5c\x2e\x83\x31\x06\xc3\x30\x5e\x19\x38\xe7\x58\ +\x5f\x5f\x47\x26\x93\xc1\xd1\xd1\xd1\xbb\xf4\x8c\x31\x94\xcb\x65\ +\x78\x3c\x1e\xd8\xed\xf6\x65\x2a\x08\xc2\x8e\x24\x49\x4a\xad\x56\ +\x23\xd5\x6a\x15\x16\x8b\xe5\x5d\x8a\x4a\xa5\x82\x52\xa9\x84\x76\ +\xbb\xfd\x6a\xdd\x62\xb1\xa0\x5a\xad\xa2\x56\xab\x11\x49\x92\x14\ +\x41\x10\x76\x68\x38\x1c\xd6\x44\x51\x4c\xc8\xb2\x8c\x6c\x36\x0b\ +\x5d\xd7\x61\x36\x9b\xdf\x25\x7d\x9b\xcc\x6c\x36\x43\xd7\x75\x64\ +\xb3\x59\xc8\xb2\x0c\x51\x14\x13\xe1\x70\x58\x23\xdd\x3e\xeb\x96\ +\xc3\xf6\xf6\x36\xe6\xe6\xe6\x30\x32\x32\x02\x4d\xd3\xc0\x39\x7f\ +\x7e\x4e\x94\x52\x50\x4a\xc1\x18\x43\xb5\x5a\x45\x36\x9b\xc5\xcc\ +\xcc\x0c\x02\x81\xc0\xd7\x78\x3c\xfe\xfd\xb9\x1c\x7e\x66\x7d\xfd\ +\xbf\x05\xfb\x33\xbe\x80\x7f\x00\xa1\xec\xdc\x87\x9e\x22\x70\xd1\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x05\xd1\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\ +\x24\x24\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\x00\x49\x00\ +\x00\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\ +\x00\x49\x00\x00\x24\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00\x6d\ +\x6d\x00\x49\x49\x00\x24\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00\x6d\x00\x00\x49\x00\x00\x24\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92\x6d\x00\x6d\x49\x00\x49\x24\x00\x24\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00\x6d\x6d\x00\x49\x49\x00\x24\x24\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\x24\ +\xff\xb6\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\xff\ +\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\xff\x6d\x6d\xdb\x49\ +\x49\xb6\x24\x24\xff\x49\x49\xdb\x24\x24\xff\x24\x24\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\xb6\ +\xff\xb6\x92\xdb\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x92\xff\ +\x92\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x6d\xff\x6d\x49\xdb\x49\ +\x24\xb6\x24\x49\xff\x49\x24\xdb\x24\x24\xff\x24\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\xb6\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x92\x92\xff\ +\x6d\x6d\xdb\x49\x49\xb6\x24\x24\x92\x6d\x6d\xff\x49\x49\xdb\x24\ +\x24\xb6\x49\x49\xff\x24\x24\xdb\x24\x24\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\xff\xff\x6d\xdb\xdb\x49\xb6\xb6\ +\x24\xff\xff\x49\xdb\xdb\x24\xff\xff\x24\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\xff\xb6\xff\xdb\ +\x92\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\xff\x92\xff\xdb\x6d\ +\xdb\xb6\x49\xb6\x92\x24\x92\xff\x6d\xff\xdb\x49\xdb\xb6\x24\xb6\ +\xff\x49\xff\xdb\x24\xdb\xff\x24\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\xb6\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\x6d\x6d\x92\xff\xff\x6d\xdb\xdb\ +\x49\xb6\xb6\x24\x92\x92\x6d\xff\xff\x49\xdb\xdb\x24\xb6\xb6\x49\ +\xff\xff\x24\xdb\xdb\x24\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\x00\xff\xb6\x92\xdb\x92\x6d\ +\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\x00\x24\xff\x92\xb6\xdb\x6d\ +\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\xdb\xb6\xff\xb6\x92\xdb\ +\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\x49\xb6\x92\xff\x92\ +\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x00\x6d\xb6\xdb\xff\x92\xb6\ +\xdb\x6d\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\x49\x92\xb6\xff\ +\x6d\x92\xdb\x49\x6d\xb6\x24\x49\x92\x00\x24\x6d\xb6\xff\xdb\x92\ +\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\x49\x00\x49\x24\x92\xff\ +\xb6\x6d\xdb\x92\x49\xb6\x6d\x24\x92\x49\x00\x6d\x24\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\x00\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6\x6d\x00\x92\x49\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00\x6d\x92\x00\x49\x00\xb6\xff\x00\x92\xdb\x00\x6d\xb6\x00\ +\x49\x92\x00\x00\x00\x00\x00\x00\xcf\x2a\x02\x04\x00\x00\x02\x8c\ +\x49\x44\x41\x54\x38\xcb\xb5\x95\xbf\x4b\x23\x51\x10\xc7\xbf\xfb\ +\xb2\xab\x12\x03\x66\xcd\xc6\xd5\xac\x44\x45\x41\x21\x9d\x01\xb9\ +\x98\xe2\x82\xe0\x0a\x5a\x09\x96\x47\x1a\xf1\x60\x35\xb5\x57\x58\ +\x5b\xdc\xfd\x03\x81\xb3\x5b\x2c\x05\x2b\x0f\x5d\x41\x72\x85\xe6\ +\x1a\xcb\x74\x82\x1a\x8c\x24\xb2\x71\x23\x44\x51\x77\xb3\x73\x85\ +\x11\x7f\xa0\x9c\x81\xdc\x17\xa6\x99\xc7\x7c\x98\x79\xf3\xf8\x3e\ +\x0e\xcf\xb4\xb6\xf6\x93\x5b\x58\xf8\x4a\x19\xc3\x68\x33\xaf\x2a\ +\x6a\xf9\xd2\xd2\x4e\xce\x0a\x93\x0e\xb9\x1e\x00\xe0\x39\x56\xeb\ +\xef\x55\x76\x03\x9d\x62\x5a\xea\xf0\x1b\x09\x55\xbd\x7d\xac\x79\ +\x64\x70\x78\xa5\x75\x5d\x9f\x3e\x2d\x9c\xa7\x33\x07\xfb\xe1\xa3\ +\x5c\x0e\x62\xc5\x84\xdc\x22\x00\x00\x4a\xf7\x36\x2c\xbf\x84\xa1\ +\x48\x04\x89\xf1\x78\xbe\x4f\x09\x69\x5f\x92\xc9\x5f\xcf\xeb\x5f\ +\x00\x75\x5d\x5f\xfe\x9d\xfd\xf3\x3d\xbb\xb9\x81\x89\x56\x8e\x66\ +\x02\x3e\x44\x3d\x2e\x27\xba\x36\x00\xc0\x62\x02\x0e\x6b\x8c\xb6\ +\xca\x55\xec\xdd\x11\x17\x9b\x9d\xc3\xe7\xd8\xa7\x6f\xc9\x64\xf2\ +\xc7\x8b\x31\x1f\x61\x4b\xa9\x14\x45\x83\x22\x6d\x8f\x0d\x13\x8d\ +\x2a\x44\x61\x9e\xa8\x07\x44\x72\x3d\x7a\xf0\x90\x1b\x55\x68\x7b\ +\x6c\x98\xa2\x41\x91\x96\x52\x29\xd2\x75\x7d\xf9\x39\x0b\xeb\xba\ +\x3e\x3d\xaf\x2d\x52\x34\x28\x52\x31\x3e\x42\x34\xe8\x25\xea\xae\ +\x03\x42\xaf\xa2\x07\x0f\x67\x83\x5e\x2a\xc6\x47\x28\x1a\x14\x69\ +\x5e\x5b\xa4\x75\x5d\x9f\x06\x00\x96\x31\x8c\xb6\xd3\xc2\x79\x3a\ +\xbb\xb9\x81\xd5\x81\x2e\xc8\xc5\x3c\x70\x7d\x03\xb0\xb7\x6e\xb8\ +\x9e\x63\x00\xae\x6f\x20\x17\xf3\x58\x1d\xe8\x42\x76\x73\x03\xa7\ +\x85\xf3\x74\xc6\x30\xda\x98\x79\x55\x51\x33\x07\xfb\xe1\x89\x56\ +\x8e\xa6\x9c\xea\x13\xec\x5f\xaa\x43\xa7\x9c\x2a\x26\x5a\x39\xca\ +\x1c\xec\x87\xcd\xab\x8a\xca\xca\x97\x96\x76\x94\xcb\x61\x26\xe0\ +\x03\xcc\xd2\xdb\x5d\xbd\x27\x0e\x80\x59\xc2\x4c\xc0\x87\xa3\x5c\ +\x0e\xe5\x4b\x4b\x63\x27\x67\x85\x49\xb1\x62\x22\xea\x71\x39\xd8\ +\x4e\xe3\x40\xdb\x79\x78\x09\x15\x13\x27\x67\x85\x49\xe6\x90\xeb\ +\x91\x5b\x04\x88\xae\x0d\xb8\x68\x5c\x2e\x20\xba\x36\xe4\x16\x01\ +\x0e\xb9\x1e\x86\x26\x8b\xf1\x1c\xab\x95\xee\x6d\x58\x4c\xf8\xd8\ +\x32\xde\x58\x8e\xc5\x04\x94\xee\x6d\xf0\x1c\xab\xb1\xfe\x5e\x65\ +\xd7\xf2\x4b\x38\xac\x31\x82\xc0\x03\xd4\x00\x8c\x00\x08\x3c\x0e\ +\x6b\x8c\x2c\xbf\x84\xfe\x5e\x65\x97\x05\x3a\xc5\xf4\x50\x24\x82\ +\xad\x72\x15\x90\xe4\xc6\x81\x92\x8c\xad\x72\x15\x43\x91\x08\x02\ +\x9d\x62\x9a\x49\x1d\x7e\x23\x31\x1e\xcf\xef\xdd\x11\xb7\xc3\xfb\ +\x80\x76\xef\xc7\x96\xe3\x02\x68\xf7\x62\x87\xf7\x61\xef\x8e\xb8\ +\xc4\x78\x3c\x2f\x75\xf8\x0d\x96\x50\xd5\xdb\x3e\x25\xa4\xc5\x66\ +\xe7\xb0\x72\x7c\x81\x52\x77\xf8\x09\x4a\xef\x74\x55\x87\x95\xba\ +\xc3\x58\x39\xbe\x40\x6c\x76\x0e\x7d\x4a\x48\x4b\xa8\xea\x6d\xd3\ +\xcd\xa1\xe9\xf6\xf5\x7f\x0d\xb6\x19\x5f\xc0\x5f\x68\x3a\x9d\x16\ +\x4d\x7f\x65\x90\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\ +\x00\x00\x21\xfd\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x1f\x77\x7a\x54\x58\x74\x52\x61\x77\x20\x70\x72\x6f\x66\ +\x69\x6c\x65\x20\x74\x79\x70\x65\x20\x65\x78\x69\x66\x00\x00\x78\ +\xda\xad\x9b\x69\x96\xdc\x38\x92\x84\xff\xe3\x14\x73\x04\x62\x07\ +\x8e\x83\xf5\xbd\xb9\xc1\x1c\x7f\x3e\x03\x18\xa9\x94\x4a\xaa\xae\ +\xee\x19\xa5\xa4\xcc\x8c\x60\x90\xa0\x2f\xe6\x66\x0e\xa7\x59\xff\ +\xf3\xdf\xdb\xfc\x17\x7f\x8a\x4d\xc9\x84\x98\x4b\xaa\x29\x3d\xfc\ +\x09\x35\x54\xd7\xf8\xa1\x3c\xf7\xcf\xfd\x6e\x9f\x70\xfe\xbf\xbf\ +\x84\xf7\x3d\xfb\xf3\xeb\xe6\xeb\x0d\xc7\x4b\x9e\xef\xfe\xfe\x9a\ +\xd6\x7b\x7c\xe3\xf5\xf8\xe3\x03\xf9\x3d\xde\xf6\x9f\x5f\x37\x79\ +\xbc\xe7\x29\xef\x89\xec\xd7\x89\xcf\x1f\xaf\x2b\xeb\xe7\xf7\xb8\ +\xf2\x9e\xc8\xbb\xfb\xfa\x67\x21\xa6\xbe\x9f\x6b\xe1\xdb\xed\xbc\ +\xff\xdc\x78\x4f\xfb\x9e\xfc\xd7\xdf\x43\xc6\x18\x33\x72\x3e\xef\ +\x8c\x5b\xbe\xfa\xca\xff\x56\x57\xf1\xac\xc0\x17\xdf\xf8\x5e\xf9\ +\x9f\xdf\x9d\x5e\xb1\xfc\x1c\x7d\x38\xaf\xd4\xdf\xdb\xce\x7c\xfd\ +\xf8\x8b\xf1\xbe\x7e\xfa\xc5\x76\x4f\x7b\x5f\xf7\x3f\x9b\xc2\x3c\ +\xe9\x3d\x20\xfd\x62\xa3\xf7\x75\x1b\x7f\x79\xdd\x7f\x5d\xc6\xfd\ +\xec\xb5\x1f\x57\xfe\xe9\x8d\xf9\xd8\xf5\x7c\xff\xf3\xcd\x76\x7b\ +\xcf\xb2\xf7\xba\x77\xd7\x42\xc2\x52\xc9\xbc\x37\xf5\xb9\x95\xf3\ +\x13\x07\x76\x4c\xe9\xcf\xc7\x12\x5f\x99\x7f\x91\x9f\xf3\xf9\xaa\ +\x7c\x15\x6e\x71\xe0\xb1\x89\x37\x3b\x5f\xc3\xd8\x6a\x9d\xf5\xcf\ +\xb6\xc1\x4e\xdb\xec\xb6\xeb\x7c\x1f\x76\xb0\xc4\xe0\x96\xcb\x7c\ +\x77\x6e\x38\x7f\x5e\x2b\x3e\xbb\xea\xc6\x71\x4a\xd0\x97\xdd\x2e\ +\xe3\x98\x69\xf0\x91\xf3\x03\xaf\x79\x5e\x76\x5f\x6b\xb1\xe7\xba\ +\xf5\x5c\x6f\xd8\xc2\x95\xa7\xe5\x48\x67\x39\x99\xe5\x13\x7f\xf9\ +\x32\xbf\x7b\xf1\x3f\xf9\xfa\x3a\xd1\xde\x0a\x5d\x6b\x9f\xf2\x65\ +\x2b\xd6\xe5\x14\xd3\x2c\x43\x9e\xd3\xff\x1c\x85\x43\xec\x7e\x6d\ +\x1a\x8f\x7d\xcf\x97\xf9\x16\x37\xcf\x37\xc7\x7a\x3c\x18\x8f\x99\ +\x0b\x37\xd8\x9e\x7e\x4f\xd1\xa3\xfd\x11\x5b\xfe\xf8\xd9\x73\x5c\ +\x7c\x82\x79\x6e\x6a\xd8\x3c\xdf\x13\x60\x22\xae\x1d\x59\x0c\x11\ +\x1d\xec\x93\xac\x8f\x36\xd9\x27\x3b\x97\xad\xc5\x8e\x05\xff\x34\ +\x56\xee\x7c\x70\x1d\x0f\xd8\x18\xdd\xb4\x66\xe3\x1b\xef\x13\xce\ +\x29\x4e\xd7\xe6\x33\xd9\x9e\x63\x5d\x74\xf7\x65\xa0\x05\x47\x44\ +\x9f\x7c\xc6\x35\xa4\x0e\xce\x0a\x21\x12\x3f\x39\x14\x62\xa8\x45\ +\x1f\x83\x89\x31\xa6\x98\x63\x89\x35\xb6\xe4\x53\x48\x31\xa5\x94\ +\x93\x30\xaa\x65\x9f\x43\x8e\x39\xe5\x9c\x4b\xae\xb9\x15\x5f\x42\ +\x89\x25\x95\x5c\x4a\xa9\xa5\x55\x47\x9a\x86\x1a\x6b\xaa\xd9\xd4\ +\x52\x6b\x6d\x8d\x8b\x36\x4e\xdd\xf8\x74\xe3\x88\xd6\xba\xeb\xbe\ +\x87\x1e\x7b\xea\xb9\x97\x5e\x7b\x1b\x84\xcf\x08\x23\x8e\x34\xf2\ +\x28\xa3\x8e\x36\xdd\xf4\x93\xf4\x9f\x69\x66\x33\xcb\xac\xb3\x2d\ +\xbb\x08\xa5\x15\x56\x5c\x69\xe5\x55\x56\x5d\x6d\x13\x6b\xdb\xef\ +\xb0\xe3\x4e\x3b\xef\xb2\xeb\x6e\x5f\x5e\x7b\xbd\xfa\xb3\xd7\xec\ +\x2f\x9e\xfb\x7b\xaf\xd9\xd7\x6b\xf2\x58\x38\xc7\xe5\x1f\x5e\xe3\ +\xe5\x9c\x3f\xa7\xb0\x82\x93\x28\x9f\xe1\x31\x17\x2c\x1e\xcf\xf2\ +\x00\x01\xed\xe4\xb3\xa7\xd8\x10\x9c\x3c\x27\x9f\x3d\xd5\x91\x14\ +\xd1\xe1\x35\x1b\xe5\x9c\x69\xe5\x31\x3c\x18\x96\x75\x71\xdb\x2f\ +\xdf\xfd\xf0\xdc\xdf\xfa\xcd\xc4\xf0\x6f\xf9\xcd\xfd\xc9\x73\x46\ +\xae\xfb\xff\xf0\x9c\x91\xeb\x5e\xcf\xfd\xd5\x6f\xbf\xf1\xda\x6c\ +\xa7\xa2\xf8\xe3\x20\x65\xa1\x6c\xfa\xf8\x0d\xb0\x71\xc0\x2a\xcd\ +\x95\xa6\x9a\x74\xbf\x2f\x5e\xb2\x0b\x47\x95\xed\x5b\xce\x60\x4b\ +\xdc\x24\xea\xb4\x9c\x75\xad\x1a\xb7\x5f\xb9\xc4\x1e\x53\x21\xe4\ +\x37\x36\x6d\xc9\xb4\x83\x54\x1e\xa8\x5a\x7b\x8e\xce\xd9\x63\x59\ +\xd1\x02\x9e\xde\x85\x9c\x7d\x5c\xd5\xeb\x24\x78\x7e\x07\xa7\x9f\ +\xea\x0e\x33\xe4\xcd\xe1\x2d\xeb\x77\x4b\xcd\xb4\xc3\x70\xaf\x91\ +\xdf\xf1\x4f\x9a\x7d\xaf\x3e\xf4\xb9\xe0\x33\x31\x9a\xfa\x74\x3b\ +\x86\x69\x17\xf7\xec\x62\x1c\x6d\x75\x2a\x92\x1f\xa4\x7b\x07\x2c\ +\xdd\x24\x39\xf6\x53\x63\x76\x8b\x02\x89\xcb\x09\xa8\xe1\x6d\xc9\ +\x76\xee\x99\x1a\xb8\x3e\x5c\x0b\x33\x73\xde\xbc\xb8\xfc\xde\x7d\ +\x57\x77\xaf\x0e\x4c\xdb\xcd\x07\xb8\x54\xdc\xab\x8d\xac\x0f\x64\ +\x8c\x68\x66\xd3\x01\x63\xfb\xda\xb7\xb3\x7b\x91\xc8\x3b\x72\xdf\ +\x41\xd1\x30\xf1\x5b\x67\xc5\x20\x4b\x7e\xfc\x22\x50\x58\x2c\xe7\ +\x86\x11\x58\xa2\x68\xf9\xcd\xe5\xf2\xb2\x7b\x34\xd3\x9d\xc7\xb0\ +\x3e\x4f\xcf\x6d\x63\x41\xae\x3f\xf7\xc9\x08\x85\xd7\x9c\xca\x8c\ +\x49\x60\xf4\x96\x09\xc8\x9d\x7b\xb5\x65\x95\xd2\xe5\x8f\x0d\x89\ +\x48\x7b\x2e\x2d\x05\x1b\x35\x9d\x69\x8f\xd5\x9d\xeb\x0e\x73\x8c\ +\xbc\x5b\x0c\x9d\x02\xee\x66\x9f\xab\x80\x67\x33\x02\x7c\x38\x6f\ +\xb5\x26\xcb\x57\x82\x8f\x0b\xfa\x91\x16\xb7\xbf\xf1\xe2\x5e\xc6\ +\xb5\xf2\xf8\x66\xfd\x4c\xd5\xf5\xa7\x62\xfa\x4a\x86\x3d\xa3\x14\ +\xc2\x69\xfa\x1a\x8f\xe3\xad\x82\x60\x38\x25\x89\x4e\xd0\xb8\xa9\ +\x7b\x02\x58\xcf\x33\x7b\x8b\x96\x80\xec\x8f\x0e\x25\xc3\x6a\xb7\ +\xc7\xbd\x2b\x66\x7e\xc8\xe3\x58\xaf\x4c\x8f\x8b\x74\x76\x4b\x24\ +\xdf\xb3\x97\xf8\x39\xc5\x6e\x18\xe9\x04\x85\x29\x3b\x84\xcd\xdd\ +\xd4\x99\x79\xfd\xf7\xcb\x76\xad\xed\xd8\x89\x6d\x3e\x10\xc8\x1e\ +\x9c\xa6\xa4\x99\x2e\xa4\xdc\x9c\x53\xc0\x77\x33\x71\x01\xa6\xe8\ +\x3a\x88\xc3\xcf\x39\x63\x5c\x84\x51\x9b\x44\xcf\x93\x6a\x74\x71\ +\x3a\x57\xf4\x49\x92\x8b\xc0\xc2\x75\x3a\x3a\xb7\x1e\x7f\x38\xca\ +\xfc\xea\xa9\x47\xe0\x93\xba\x62\x44\x41\x95\xda\xca\x3d\x8c\x1b\ +\x0e\x33\x76\x4f\x5e\x47\x41\x57\x76\x7e\x25\x85\x03\xa9\x14\x33\ +\xb9\x46\x18\x4c\x39\xbe\x8e\xb9\xeb\x73\x0d\xab\xfc\x8b\xab\xf7\ +\xb6\x4b\xc4\x5a\xd4\x9d\x39\x4e\xae\xe5\x9b\x2e\x0b\x88\x61\x51\ +\xb2\x60\x0c\xb5\x91\xd1\x83\x80\x5c\xf5\xdc\x56\xde\xee\x2c\x78\ +\x39\xd7\x36\xd0\xd2\xfc\x24\x7b\x30\x74\x4d\x33\xe5\x58\x73\x69\ +\xc4\x5e\xad\xcf\x6c\xad\xcd\x0a\x91\x58\x76\x88\x1b\x54\xb1\x92\ +\xe4\xcd\x53\x48\x85\xa6\x3b\x6a\x05\xa6\x8c\x91\xde\xd4\xb4\x2b\ +\xc7\xe3\xc5\x9e\x30\x78\x23\xb3\xb5\xc4\xb3\x8a\xb6\x9b\xd5\x2a\ +\xb8\xf1\xb3\x42\x6e\xca\x9b\xf3\x16\x47\x10\xb5\x36\xac\x36\x9f\ +\xd4\xeb\x72\xa1\xf7\x19\xd2\xac\x2e\x84\x92\xf8\x0e\x62\x44\x95\ +\x8d\xc1\x7a\xeb\x58\x84\xc8\x82\x06\x7b\xfb\x03\x7f\xcc\xcf\x40\ +\xf4\xed\x3b\x91\xff\x80\x21\x04\x6a\xeb\xb9\xf4\x04\x28\x26\x16\ +\xc6\x15\x67\x03\x90\xc0\x87\xb4\x5c\xaf\x23\xa4\x11\xe0\x50\xa6\ +\x00\x94\xcf\x09\x13\x2c\x9b\xe3\xb2\xc7\x52\x84\x0a\x1e\x08\x23\ +\x1c\xfb\x1d\x67\x82\xe3\x43\x66\xac\x36\x3a\x85\x18\x88\xa0\xf7\ +\xc8\xe0\x82\x5f\xa6\x69\x2b\xcc\x36\x13\x35\xaf\xd7\xdd\x6d\x22\ +\x7c\x77\x22\xdc\xc8\xac\xed\x5d\x0a\x7d\xc5\xb1\x1f\x10\xb8\x3b\ +\x82\xaf\x90\xe7\x38\x07\xc4\x14\x78\x0c\x45\xdd\xf2\x85\xd3\x5a\ +\x23\x48\xf0\x11\xd3\x12\xa1\xf8\x3f\x8f\x83\x3b\x51\x18\xe8\x7c\ +\x14\xe8\x91\x62\xb9\xcd\x0b\x36\x24\xfa\x0a\xc7\xbd\xdc\x6f\xb2\ +\x6d\x08\x94\x54\x21\xac\xc9\xdd\x6f\x92\xac\x35\x4c\xd2\xbb\x8d\ +\x04\x14\xf5\x0c\xc6\x0a\x2a\x71\x11\x17\xd3\xb3\xae\x6f\x14\x51\ +\x07\x27\x64\x82\xbc\x02\x97\x02\x65\xa8\x20\x39\xf6\x46\x81\x84\ +\x5e\x82\x38\xa1\x87\x5a\x00\x91\xb5\xa8\x37\xa3\x72\xbf\x93\x5b\ +\x1d\xab\x3e\x29\x3f\x40\xd2\x7a\x48\xfc\x26\xe5\x61\x17\x0b\x88\ +\xe4\x8b\x72\xf2\x59\x18\x0e\x2a\xba\x83\xc9\x84\x55\x8b\x69\x61\ +\xfc\x15\xf2\x84\x15\x59\x91\xe8\x1e\x63\x3f\xb7\xf3\xb4\x96\x87\ +\x25\x92\xc0\xd7\x73\x7b\x55\x46\xda\x44\x8c\xe2\x7f\x38\xa5\x57\ +\xa4\x50\x19\x15\xb7\x1d\xea\xec\x9c\xba\x60\xd5\x5d\x13\x06\x24\ +\x90\xce\x69\x00\xed\x96\x94\xff\xe7\x9b\x82\x31\xc2\xe3\x71\x57\ +\x7b\x4e\xd8\xb2\x72\x61\xfa\x88\x93\xba\x96\xc7\x40\xe1\x4c\x01\ +\x23\x80\xa4\xb0\xc5\xde\x0b\x4c\xce\x80\x23\x25\xef\x39\x21\x50\ +\x29\xfd\xbc\x6e\xb3\x0e\xdd\x5f\x17\xf5\x9f\x8b\x9a\xef\x57\x2d\ +\x02\x78\xee\x0e\x40\x2e\xef\xf5\xfd\x22\xc8\xfe\x7a\xfd\xeb\x81\ +\x6b\xa1\x47\x77\x64\x85\xd9\x31\xcd\x40\x35\x7f\x8e\x85\xfc\x24\ +\x40\x7a\x94\x51\xed\x3e\x00\xcb\xdf\x78\x41\x8d\x78\xe8\xf0\x33\ +\x40\x35\xae\x67\xce\x07\x54\x98\x2e\xe5\xde\x21\x08\xe6\xd9\x0e\ +\x48\xda\x49\x60\x22\xba\x52\x06\xd4\x9f\x9b\x9a\xd4\x0a\x3c\xeb\ +\xe2\x37\x3f\x13\xde\x63\x97\xac\x98\x97\x72\xa0\x16\x81\x6c\x44\ +\x03\x95\x14\x0e\x09\x2a\xae\x6e\x4f\xe5\x58\xfd\x89\x00\xcd\x02\ +\x49\x07\xf5\xac\xad\x81\x3b\xb3\x00\x95\x48\x9d\x4f\x8c\x27\x7d\ +\x4a\xb8\x19\xa5\xe2\xad\x1b\x85\x20\xbd\x91\x0d\x08\xc4\x61\xa9\ +\x1f\xfd\x66\x92\x80\x8e\x4c\x52\xe9\x86\x8f\x1d\xe8\xd8\x80\x52\ +\x3b\xa0\x42\xed\xc4\xf9\xcb\x5d\x1b\x7a\xa1\x95\x95\x22\x32\xca\ +\xaf\xee\xc8\xaf\xda\x73\xe0\x0a\xae\xa5\xd0\x92\x1d\xc0\x29\xd5\ +\x04\x94\xf2\xaa\x79\xb8\x01\x04\x29\x80\x61\xfd\x43\x72\x9b\x37\ +\xbb\x33\xc5\x9d\xca\xc3\xdd\x85\xe9\xb4\x38\x8a\x3a\xb1\x6c\x73\ +\xc5\x15\xfc\x9f\x3b\x20\x6f\x41\x92\x04\x5f\xe4\xe0\x00\x7d\x3a\ +\x46\x13\xd7\x89\x04\xbc\x41\x2c\x9c\x1f\xec\xf4\x22\x0f\x84\xc4\ +\xbd\xd6\x94\xc7\xe5\xa9\xe4\xae\xeb\xa9\x49\x25\x81\x52\x96\x9b\ +\xe9\xc1\x2b\xf4\x2b\xe0\x47\x4c\x55\x58\xe3\x30\x21\xd9\x3e\xf4\ +\x02\xd4\x28\x2c\x8f\x6c\xdf\x68\xc6\xbe\x90\xda\xcb\x66\xa0\x4b\ +\xe6\x04\x67\x30\x6b\xdc\xed\xc4\xb4\x9f\xf2\xeb\x8e\x09\x7b\xcc\ +\x45\xbc\x42\x7f\x49\x11\x4a\x68\xdc\x90\x2b\x4c\x0f\x43\x0a\x5c\ +\xa6\x50\x54\xa8\x80\x75\x50\xba\x41\xc9\x62\x57\x7b\x08\x41\x6a\ +\x2a\x97\xf7\xed\x22\xfa\x73\xf8\x8e\x10\x9d\x4b\x01\x44\x46\x76\ +\x2c\x75\x3f\x65\x17\xf8\xeb\x98\x64\x0c\x62\x28\x37\x28\x6d\x4c\ +\x70\x4a\x56\xed\xfb\x06\x10\xfc\x59\x77\x12\x99\xcb\x4f\x1b\x90\ +\x1f\xc7\xfd\xe5\x76\x42\x35\x0d\x13\x0f\xd2\x91\x45\x23\xdb\xae\ +\x1c\x9a\xca\x1f\xf8\x10\x99\x35\x28\x52\xf0\x3d\x1b\x47\x17\xf4\ +\x77\xc0\x99\x9b\xac\xab\xb7\x12\xd2\xc9\xce\xd1\xe1\x54\xe3\x81\ +\xa6\x18\xf2\x42\xdc\xa1\x67\x3c\x76\x83\xac\x7c\x9d\xb4\xcb\x7f\ +\x27\x7a\xd0\x01\xe7\xca\xab\x97\x22\x13\xc4\x52\xe5\x9f\xf3\x1e\ +\xc7\xad\x4d\x40\x12\xe9\x37\x25\xf7\x75\x10\xee\x81\x77\xea\x7e\ +\x1e\xa8\x04\x14\x92\xcb\x23\xda\x61\xe3\x24\x0a\x9f\xa4\x54\x96\ +\x2e\x24\xc6\x6f\xab\x57\xb8\xed\xb2\xe5\x64\x3f\x62\x9a\x20\xdf\ +\x71\x1c\xb7\xfb\x03\x82\xf1\x05\xb5\x25\xbe\xa4\x08\xbf\x04\xb1\ +\x72\x0e\x02\x12\x5c\x26\xe4\xdc\x7e\x46\x22\x9c\x63\x53\x2e\x1b\ +\x28\x46\xac\x6b\x54\xd0\x26\x2d\xea\x55\x7c\x96\x77\x9c\x13\x43\ +\xc3\xa9\xab\x0d\x54\xb3\x2e\xca\x42\xea\x01\x84\xa2\x22\xb0\x37\ +\x8b\x71\x86\x45\x2b\x49\xf3\xf3\xf6\x4e\x46\xc7\xf7\x4e\x94\xd7\ +\x93\xe2\x49\xd2\xad\x06\xf1\xfb\x84\x6e\x6a\xce\x62\x54\x8b\xc3\ +\x7a\x2f\x58\xda\x2b\x90\xb1\xc2\x1c\x50\x3c\xca\xf8\x38\x24\x1b\ +\x6e\x51\x0d\x1c\x53\x4d\x28\x07\x41\xf0\x20\x03\x18\x11\x51\x1c\ +\x13\xf9\x23\xc2\xb9\x58\x03\x04\x5a\xfd\x07\x12\xe6\xc9\x78\x9b\ +\xea\x30\xf1\x5b\x6e\x19\x81\x20\x33\xf0\xe2\xda\xc5\x90\x3b\xd8\ +\x6e\x5a\xa4\xc8\x5c\x73\x8d\x43\xf9\xa8\x59\x6d\x57\x34\xac\x2f\ +\xe0\x1d\xe5\x84\x85\xde\x44\x21\x14\x00\x7e\x02\xa4\xa8\x20\x54\ +\x84\xc8\xe5\xdf\xd1\xc4\xb5\x49\x03\x02\x50\xec\x99\xc2\x25\x9f\ +\x70\x77\xb0\x98\xca\x5a\xcb\xb0\xb0\x7f\xbb\x7b\x3b\x55\x8d\x8f\ +\xb5\x53\xa8\x53\xbb\xb4\x3a\x72\x7c\x3b\xa7\x35\xf9\xa7\xf3\x62\ +\xca\xb4\x09\x74\xd5\xd3\x1b\x41\x13\xe9\x48\x60\xcf\xe4\x4e\x86\ +\x81\x55\x69\x5d\x96\xb9\xcf\xfb\x65\x11\xb9\x80\x24\x98\x5d\x50\ +\x2e\x98\x91\x7a\x4e\x24\x3c\xfd\x04\x5e\x45\x1b\xee\x62\x15\x2f\ +\xa4\x81\x58\xcd\xe4\xe8\x5b\x00\x50\x94\x42\x59\x0b\xca\xce\x44\ +\x82\x4d\x20\xa9\x27\x83\x92\x23\x47\x89\x0e\xc8\xc0\xd4\x62\x89\ +\x21\x0a\xca\x16\xc7\x10\xab\x2b\x62\x32\xa0\xa6\x97\xd4\xdb\x1d\ +\xa5\x01\xf0\x72\x2a\x2c\x48\x5a\x8b\x2e\x2d\x5b\xc9\x6b\xd3\x1e\ +\x59\x92\x12\xd4\xaa\xe2\x56\x59\x76\x98\xe4\x50\x39\x0b\xce\x9f\ +\x72\xe2\x49\xcd\xe2\x20\x73\x16\x34\x2b\x01\xd4\xcb\xd2\x58\x07\ +\xf4\xd0\xb9\xe0\xf2\x34\xb6\x4b\x98\x11\x6f\x0f\x2a\xb8\x01\xd9\ +\x05\x89\x26\x03\x58\x61\x68\x80\x3d\x41\x5a\x66\x55\xa5\x9c\xa0\ +\x3e\x66\xc6\x6e\x45\x28\xea\x44\x87\xa0\x98\x70\x76\xd4\xa1\x21\ +\x03\xea\x84\xa4\x54\xea\xd0\x59\x2f\x0e\xe7\xb4\xc9\x16\x22\x26\ +\x5c\x01\x21\x94\xee\xcb\xd5\x17\xa5\xf7\x41\xe9\xf8\x01\x69\xf4\ +\xd6\xd3\xe0\x90\x40\x0e\xe7\x05\x9c\x30\x20\x84\x00\x26\x03\xe9\ +\x14\x43\xb0\xeb\x8b\x7a\xae\xcb\x8e\xda\x71\xd7\x21\x9f\xfb\xe5\ +\x9e\x53\x10\x00\x47\x86\xb0\x23\x0d\x27\xc8\x3a\xdb\x40\xc6\x49\ +\x1a\x7a\x8b\x9c\xe6\xe4\x9e\x42\x36\x7a\x71\xe4\x84\x23\x68\xc9\ +\x50\x3b\x50\x78\xdc\x9f\x0f\x9c\x1a\x99\x86\xf7\x06\x01\xc1\x92\ +\x36\x08\x79\x21\xa4\x51\x80\x84\x30\xe1\x22\x8c\x2a\x44\x3e\x02\ +\x32\x9e\xf7\x31\xe7\x89\x1a\x4c\x47\xb2\x27\x2e\x39\x1c\x01\x55\ +\x45\xf6\x38\x88\xa4\x30\x30\x45\xf8\x5a\x86\x29\x22\xd5\x7a\x59\ +\xa1\x8c\x47\x12\x93\xf0\x41\x34\x0c\x82\x80\xeb\x39\xab\x7a\x06\ +\xd9\xba\x56\x12\xef\x6d\x12\x46\xd8\x11\x7e\x12\x0a\x2c\xcf\x94\ +\xf5\x88\xcf\xe1\x62\x74\x9d\x74\xc5\x38\x9a\x16\x80\xe8\x47\x99\ +\x61\x0d\x34\x52\x92\xac\x52\x8b\x40\x30\x0c\xe0\xdd\x00\xf9\x00\ +\x31\xb9\xf4\x98\x8c\x84\x52\x88\x90\x45\x99\x1a\x93\x83\xe2\x18\ +\xf2\xe5\x12\xc8\x9c\x88\x47\xc9\xa4\x49\xc0\x20\x69\x22\x1a\x0b\ +\x81\x3a\xea\x94\x3d\x7d\xcd\x70\xbe\x49\x04\x72\xf7\xc5\x44\x47\ +\x68\x7e\x28\x81\xa2\x7d\xed\x75\x99\x2d\x8a\x4d\x61\x78\x9c\xee\ +\x5c\x9a\x8b\xc4\x28\xd0\x90\xa3\xda\xb4\x0c\xc1\x9e\x44\xcc\x80\ +\xee\x24\x25\x2d\x18\xc5\xff\x78\x4e\xd9\x17\x6b\x77\x90\x9e\x67\ +\xfa\x96\xbc\xf0\xd4\x79\x6f\xf1\x6b\x81\xdd\x17\xdc\x9a\xbb\x52\ +\x81\xc8\x43\x64\x57\x9d\xa7\x16\xa2\xbc\x3e\xa6\x5b\x07\x7f\x08\ +\xdc\xa5\x23\xab\xf9\xa8\xea\xf7\xa7\x8e\x7f\x7d\x4f\x80\xbf\x0f\ +\x55\x87\xf9\xa2\xc6\x12\xe2\x77\xf8\x35\xc3\x68\x42\x45\x0a\xae\ +\x59\xd5\x13\xf6\xde\x3f\xb5\x91\x8d\x64\x88\x5b\x73\x00\xb0\x4f\ +\x52\x07\x16\xef\x61\x9f\xcb\x8a\x70\x3a\x86\xcf\xfa\x5f\x41\x39\ +\x95\x92\x6d\x16\xee\x10\x6e\xfd\x18\x68\xf3\x5b\x31\xa2\x1f\xa2\ +\x9b\x1e\x14\x3b\x35\x63\x9e\x66\xb3\x12\x64\xe2\xad\xbe\x7c\xb8\ +\x2a\x67\x3d\x6e\xaa\x35\x0c\xa1\x07\x1f\xe0\x9f\xa8\xe9\x8e\xb1\ +\x81\xd5\xa8\xee\x00\x3a\xaa\x1d\x0b\x11\x6f\x92\x52\xf1\x39\xf8\ +\x8d\x41\x08\x65\xac\xa7\x04\x92\xcd\x8f\xf1\x65\x75\x11\xb1\x38\ +\x0e\x6c\x03\x5e\x06\x5d\x1d\xe2\x9b\x4b\x54\x00\x19\x1d\xe6\x46\ +\xc1\xa2\x76\xc1\xe2\x02\x31\x31\x5b\x08\x4f\x90\xa1\x89\x3e\x8e\ +\xc7\xb1\x16\x70\x46\x70\x41\x0e\x73\xf0\xd2\x30\xde\x8c\x13\xfa\ +\xb7\xd6\x4e\x54\xbe\x76\x3e\x62\x0e\xe3\x70\x89\x25\x9e\x41\x3c\ +\x2c\xca\xc2\xf2\x00\x66\xe3\x9e\x46\x9a\x5e\x18\x41\x38\xab\x33\ +\x01\x7a\x8a\xfb\x9a\x5f\xd2\xea\x26\xd5\xe9\xcb\x10\x53\xc2\x8a\ +\xfa\xf4\x9f\x2f\x26\x15\x33\xcf\x0d\xed\x36\x52\x83\x6b\x4a\xfa\ +\x1a\xa8\x9e\xed\x21\x41\x90\xa4\x7d\x61\x8c\xac\x86\x24\x7a\xba\ +\x27\x72\x02\x01\xf2\xb4\x1a\x6d\x19\xee\x61\x55\x3d\x1e\x1c\x21\ +\xfd\x54\xd3\xd5\x91\xf2\xea\x32\xa8\x6b\xa0\xd6\x18\x9f\xbd\xe8\ +\x22\x73\xfa\x78\x1b\x41\x53\xb2\x1a\x58\x84\x69\x03\x2e\x2a\x55\ +\x71\xcd\x14\x45\xab\xb4\xde\x17\xe6\x3e\xba\x4e\x0d\x84\x49\x8e\ +\x14\xf1\x14\xe4\xee\x0c\xa4\x4b\x9c\xde\x79\x40\xa6\x3e\x14\x48\ +\xd5\x3a\xa0\xbd\xcc\xd3\x35\x42\x90\xac\x74\xf9\xa0\x58\x5b\x4d\ +\x12\x82\xcf\xb9\x71\xc0\x1f\x5e\xad\xeb\xf0\x46\x6c\x22\x5d\xfe\ +\x5c\x6b\xc9\x58\xcb\x9f\x7e\x98\x4d\x16\x79\x44\x78\x71\xd3\xa7\ +\x1d\x34\x32\x71\x40\xf6\xbb\x80\xf1\x11\x73\xe3\xd9\xa6\x1d\x2e\ +\x06\x90\xe4\x3f\xf4\xf8\x48\x4e\x96\x2f\xae\xe4\xb9\xe2\x5c\x9e\ +\x1a\x28\x22\xff\xdc\xfa\x47\xa8\xa8\x73\x87\x84\x20\x92\x81\xf6\ +\x7e\x92\xf8\x80\x10\x27\x3e\x24\x56\xab\x3a\x4d\x2a\xf1\x0d\x79\ +\x06\x0b\x3e\xea\x01\x22\xaa\xad\x4a\x71\x47\x44\x7b\x94\x11\x7c\ +\xdf\x07\xb3\xd4\x4d\x4c\x29\x05\xf5\x55\xdd\xac\x48\xdf\x82\x52\ +\xe2\x24\xa0\x73\xdf\xbd\x68\xc5\xbf\x69\x0b\xfc\xfa\xdd\xfc\xed\ +\x01\xd5\x75\x58\xb8\xc4\x3f\x6b\xd1\x2e\x4f\x07\x44\x50\xad\xd4\ +\x42\x98\x6d\xb3\x90\x44\xd8\x5e\x23\xf6\x9b\x19\xfe\x39\xcd\x35\ +\x62\x75\x74\xee\x1c\x16\x14\x72\x02\x90\x09\x71\x2b\x7e\x58\xe1\ +\xe3\xaa\x95\xb9\x9e\x36\xe6\xad\x95\x8d\x5a\xd2\xd4\xde\xb3\xb6\ +\x5c\xd1\x6a\x20\xbb\x07\x26\x76\xbe\x1c\x15\x54\x17\xb3\x2d\x54\ +\x1b\xae\x1f\xb7\x85\x99\x05\xd8\xe3\x73\xb8\x30\x54\xf5\xe0\xb5\ +\x87\x77\x4f\x75\xe7\x10\xca\x8f\x7c\x5d\xcc\xe8\xe9\xb8\xfb\x56\ +\x08\xea\x63\xeb\xc4\x11\x1c\xbf\x43\x44\x9e\x9a\x43\x03\x90\xc8\ +\xb2\x3a\xab\x6d\x70\xe4\x9c\xc0\x7b\x17\x50\x51\xe4\xb3\xdc\xf2\ +\x82\x8e\x81\xfb\xe2\xcf\xd3\x89\xba\x80\xa5\x2a\xa2\x5e\x14\x8e\ +\x0f\xc7\xc5\x65\x5f\xf6\x04\xf4\xc0\x1b\xc0\xb2\xa8\x2e\x17\x75\ +\x0d\xb0\xf1\x39\x22\xcb\x10\x9b\xdd\xb8\x23\x80\xfc\x4a\x9c\x1d\ +\xba\xaa\x1b\x7d\x83\x1d\xaf\x47\x27\x6a\x63\x8f\xb0\x21\x2a\x6f\ +\x1f\xee\xf2\x24\x04\xa5\xf8\x38\x58\x43\x2e\x13\x35\x26\x50\x97\ +\x1a\xb8\xf3\xf4\x5e\x01\x4b\x04\x18\x9a\xb1\x78\xf0\x2c\x5a\xc1\ +\x02\x97\x94\x29\xf8\x54\xe7\x37\x12\xf8\x6d\x11\x92\x6b\x13\x73\ +\xe7\x1b\x77\x02\x36\xb1\x00\xf1\xab\x6e\xa5\x9c\x95\xc0\x30\x19\ +\x54\x78\x82\x67\x64\xfc\xb7\x12\x06\xc9\xb5\x42\x34\x30\xda\x00\ +\x63\xcb\x43\x7e\xa9\xc2\x3b\xed\xfe\x95\x7c\x73\x8d\xbb\x5a\xf5\ +\x12\x4c\x81\x69\x40\xaf\x43\x61\x44\xf7\x76\x49\x94\x23\x51\x35\ +\x42\x89\xb4\x47\x40\x22\x6d\xbb\xa3\x7c\x92\x0c\x1d\x4d\x29\xad\ +\x84\xe8\x3e\xd4\xde\x14\x98\xf8\x89\x1a\xd4\xa5\xee\xf5\x69\x09\ +\xc9\x0b\x07\xe0\x0c\x45\x8c\x5d\xb1\xf9\x0f\xbe\x9b\x3f\xbd\xa1\ +\x46\xd2\xd7\x79\x03\x77\x4d\x79\x55\xdf\x00\xdc\xb6\x97\x94\xe6\ +\x79\xb9\xcb\x8d\x51\x73\x82\x94\xa8\x55\x8b\xbb\x8f\xc5\x5d\x40\ +\x71\x24\xb9\xa1\x68\x94\xf5\x0e\x85\xeb\xa4\x30\x52\x6a\xcc\x31\ +\xfb\x84\x0f\xc0\x46\x60\x30\x3b\x5d\x36\x76\xab\x4a\x30\xb7\xaf\ +\xbd\x70\x07\x58\x86\x9e\xb9\xe6\xf6\x6a\x7a\x80\xbd\x39\x41\x44\ +\xd4\x1c\xb3\xc8\x2b\xbc\x7d\x0d\x33\x83\x5a\x36\x98\x1b\xa6\x31\ +\xce\x89\x7a\x30\x69\xdd\xf6\x4e\x13\x41\x06\x35\x86\xda\x82\x14\ +\xc4\xa1\x3b\x70\x0f\x85\x8e\x54\x7d\x69\x06\xa1\x82\x44\x4a\xa4\ +\x25\xbe\x42\xb6\x90\x28\x0d\x3f\x42\x43\x5d\x36\xaa\xdf\x1e\x8e\ +\xbc\x16\xc4\x09\xec\x4d\x85\x3b\x26\x0f\xdb\x23\x36\x95\xe5\xa7\ +\x7c\x9b\xd3\x6a\x1d\xc0\xd1\x56\x54\xeb\x5c\x9b\x7f\xe8\x0a\x84\ +\x5c\x99\x40\x54\xaa\x06\x77\x9f\x44\xc8\x0a\x54\x02\x19\xdd\x5f\ +\x95\x84\x56\x9c\x90\xd0\xb4\x12\xe8\x92\xb4\xd0\x6f\x4a\x5c\x54\ +\xaf\x27\xa0\x8e\xaa\x14\x6f\x83\x2b\xd9\x11\x7b\xb5\xdd\x60\x42\ +\x2b\xf8\x25\xb7\x59\x0f\x77\xf8\x88\xc6\x22\xfb\xd4\x47\x20\xc7\ +\xc3\x94\x7a\xd1\xb2\x16\x15\x4b\x24\xbb\xf2\x4a\x80\x20\x40\xc8\ +\x43\x49\x11\x15\x06\x0e\x50\xd7\xba\x76\xc4\x64\x1b\x25\x1a\x79\ +\x88\xd0\xbc\xdc\x5f\xd9\xa9\x46\x12\xb5\xa7\xc3\x68\xec\x7f\x18\ +\x47\xbf\x7e\x27\xf3\x52\xa5\x32\x49\x3f\x72\x31\x08\x42\xcc\x93\ +\xac\x68\x59\x34\xb1\x22\x6a\xa8\x8b\x10\x90\xcf\x0d\x02\x1a\x08\ +\xc2\xba\x54\x7a\x70\xd7\xc9\x58\x94\x20\x78\x06\x59\x87\x74\x52\ +\x83\x29\xed\x15\x60\xef\x48\x51\xd4\x08\x92\x56\x76\xac\x86\xe2\ +\xad\x54\x39\x5b\x43\x62\x0e\xc0\x65\x75\x6a\xf4\x6a\x5b\xfb\x2a\ +\x36\x3b\xb4\xed\x74\x3a\x22\xe4\x3b\x04\x6d\xa9\x73\x1f\xe0\x69\ +\x50\x42\xc9\x00\xea\x5c\x33\xf6\x87\xe3\xff\xe2\x68\x80\xdf\x1e\ +\xe0\xcf\x4a\x82\x0e\x91\xc6\xe2\x8e\x52\x6c\xc5\x14\x29\x46\xea\ +\x7f\x70\xeb\x38\x04\x1b\x1d\x2a\xd2\x8b\x82\x03\x69\x81\xe2\x3e\ +\xd5\xfb\xc4\x6b\x7d\xa4\xff\x20\x0c\x45\x3e\x73\x47\xb4\xc7\x8d\ +\xdb\xbc\xfc\x20\xd0\x28\x70\x9f\x1b\xdb\xe6\x51\xe1\x2c\x22\x57\ +\xfc\x7b\x7d\xbc\xa9\x79\x9f\xe3\x0e\x39\x0e\x3a\xe6\xf6\x66\xa6\ +\x7a\x33\x55\xad\x19\x04\x0d\x20\x28\xd3\xe2\xea\x6d\xa8\xf7\x50\ +\x56\xe4\x0e\x69\x55\x7f\xc3\x67\xff\xe9\x77\xf3\xa7\x37\x38\x7b\ +\x4b\x4f\x84\x85\x96\x0a\xbf\x85\xba\xe2\x69\xa4\x98\x5a\x0b\x92\ +\x1c\xae\x83\x71\xaa\xf3\x5d\x3d\x5a\xdc\x7f\xa9\x80\x3f\x0b\xe6\ +\x7e\x52\x42\xb7\x36\xed\x9d\xe4\x79\x9b\xcf\xaf\x24\xe6\xb4\x6f\ +\xff\xef\xea\x82\x20\xe2\x84\xfa\x96\xa4\x42\x69\x04\x33\x43\xc8\ +\x0d\x91\xf1\x9c\x36\x92\x93\x0a\xca\xc2\xd5\xee\xa3\x8a\x64\xfa\ +\x18\xbd\x1e\xa3\xdf\x5d\x11\x27\xa4\xd5\xea\x51\xaf\x87\x8e\x05\ +\x5b\x71\x3f\xca\x31\xbd\xa9\x89\xa4\x77\xd7\xa7\x50\x13\x7c\xea\ +\xdc\x75\xa9\xbd\x2e\x95\xd7\x08\xcb\xe9\xbd\xc4\xe7\x3e\xcb\xbc\ +\x3a\x2e\x4d\x23\x2d\x8d\xca\x61\x95\x60\x5e\x09\x1b\x82\x4f\xce\ +\xb2\x96\xa0\x32\x75\x6d\xe0\x7c\xb9\x2b\xfb\xe6\x33\x81\x52\xef\ +\x48\x08\x70\x67\x22\xf6\xcc\x94\x01\x40\x7f\xc0\xf3\xff\xe0\xb3\ +\x68\xcd\x1f\xde\x60\x8d\x90\x6b\x84\x11\x21\xe4\x21\x30\x90\x76\ +\x4b\xb4\x04\xf9\x2c\xf4\x97\x45\x1e\x94\xb9\xce\x98\x46\xac\x87\ +\xe2\x43\x10\x56\x05\xab\xdf\xea\xa3\x9e\xc0\x66\x95\x31\x0b\x64\ +\x57\x7c\x8d\x7c\x0f\xeb\x6b\x3e\x6f\x49\x9f\x4d\xfb\xbe\xd7\xd8\ +\xa7\xcf\x71\xdc\xff\x48\x6b\xce\x64\xf1\x25\x52\xa3\xca\x95\xe1\ +\xba\xf2\xd2\xd3\xeb\x4c\x7b\x76\xfd\xc7\xda\x65\xf4\x23\x4b\xad\ +\x4e\x30\x1e\xf3\x45\x08\xce\xfe\xca\x6d\x2f\x0f\x89\xd6\xa1\xd6\ +\x0c\x6c\x02\x8e\xa9\x06\x09\x52\x8f\x20\x88\xb8\xa4\x23\x48\x45\ +\x4c\xae\x1b\x57\xf6\x07\x37\xcc\xd0\x6d\x1c\xe0\x50\xff\xef\x92\ +\x2e\x80\x63\x1f\xe0\x40\xad\xe5\xe1\xd5\x92\x5d\xd4\x07\x3e\x55\ +\x29\x47\x19\x45\x87\xb6\x80\xfc\x51\x8b\x4f\xd0\x3a\x0c\x65\x0e\ +\xef\x02\xe4\x08\x07\x21\x6b\x52\x73\x03\x7f\xc7\x47\xf8\x2e\x50\ +\x16\x9d\x98\xa3\xcc\x2e\x01\x06\x86\x09\x93\x9b\x30\x59\x65\x26\ +\x01\xc0\x15\x16\xdd\x82\xf9\x7b\xae\xfa\x0f\xbf\xe3\x6b\xa0\x16\ +\x68\xc7\xdf\xd2\x7c\x5b\xdb\x02\x71\x70\xad\x0b\xc9\xc1\xa9\xdd\ +\x0b\x24\xf3\x89\x9a\x81\x56\x54\xea\x43\xd6\x1e\xaa\x58\x4e\xcd\ +\x1e\xd4\x4a\xf5\x06\x9c\x09\x72\x32\xf2\x2a\xdd\x2e\xc3\xcd\x5c\ +\xd2\x9c\xbf\x05\xda\x5b\xc4\x14\x16\x37\x1f\xf4\xd6\xb9\xc7\x15\ +\x21\xe5\x93\xc2\xb3\x22\x05\x87\x0b\x16\x75\xcd\x4c\xce\x22\x58\ +\x37\x35\x3d\x1e\x55\x09\x14\x4f\x52\x75\x2e\x0d\x1e\x3b\x1e\xab\ +\xcd\x40\x95\xd5\x05\xc9\x38\x65\x35\x9d\x26\x8a\xe2\x41\x9c\xfe\ +\xf8\xda\x7c\x73\x36\x37\xa8\xe6\x17\x67\x3b\xbb\x17\x51\x71\x09\ +\x08\x4e\x20\xc1\x07\x0b\xe8\xc3\x3b\xe1\x7b\x32\xae\xe5\x10\x84\ +\xe8\x4a\x5f\x1c\xd3\xfc\x8e\x64\xaa\x04\x69\x23\xca\xab\x71\xb4\ +\x0e\xf2\x23\x69\x24\x74\x67\x82\x5d\x74\xf5\xa2\xc9\x6c\x3e\xe1\ +\x34\x5d\xb1\xb4\x93\x6e\x44\x41\xb5\xa3\xe8\xd2\x48\xda\x5d\xe9\ +\x96\x9c\xd2\x4e\xbc\xf6\x75\x31\x40\x3a\xa6\x85\x15\xa8\x3d\xed\ +\x45\x89\xb4\x3b\xc8\x39\x7b\x43\x2a\x61\x47\xe5\xc3\x52\x03\x21\ +\x9f\x56\xa8\x3a\x76\x23\xd9\x2a\x89\xc4\x05\x88\x14\x88\x12\xd7\ +\x3d\x6d\xb5\x0f\xe1\xfc\x03\xdf\x04\x2e\xc3\x30\xfe\x51\x47\x63\ +\x83\xca\xea\x51\x81\x2f\xff\x61\x3c\xfd\x14\x90\x75\x34\x7f\x3a\ +\x25\xdc\xc6\x3d\x2f\x09\xca\x6f\x0d\x92\x8b\xc6\x25\xd2\xe7\x87\ +\xe4\xe2\x31\x38\x12\xa5\x41\x24\x17\xea\x9c\x4d\xf2\x87\xe5\x06\ +\x6e\xfd\x36\xb0\xff\x86\x70\x8a\x6f\x4a\xd0\xa4\x78\xcd\x5d\x01\ +\x11\x47\x85\xc6\xb1\xcb\xdc\x1d\xc7\xcd\xef\xb0\x26\x19\xc9\xa3\ +\xe4\xc7\x19\x7c\xf8\xda\x04\x4f\x39\xbe\xbb\xa2\xee\x04\xca\x69\ +\x70\x68\x4b\x5d\xde\x86\x64\xe2\xd1\x6a\xc8\x00\xa1\x5e\x93\xac\ +\x05\x06\xa1\xa9\xa7\xf9\x1c\x84\x17\x11\xc3\x37\x35\x5d\x28\xf7\ +\x2a\xd5\x0b\xed\xb1\xb6\xda\xa8\xee\x2f\x1c\xd3\x7c\x23\x99\x84\ +\x1c\x81\x58\xeb\xa9\xec\xd6\x8f\x68\x89\xc0\xab\x7f\x52\x81\x73\ +\x88\x38\x40\x3e\x22\x05\x46\xdd\x0d\x62\xbd\x11\x46\xa7\xca\x2d\ +\x6f\x86\xa6\x08\xe0\x71\x52\x98\xda\x6b\x01\x90\x0a\x12\xf2\x28\ +\xaf\x16\x5e\x49\xf8\xbc\x5b\x09\x9a\x2e\xea\xfb\x15\x71\xa9\x93\ +\xf6\xf1\x88\xb8\xb4\x1e\xd3\xcb\x51\x71\xc4\x99\x93\x8a\xd3\xee\ +\xfa\x18\xfb\x8c\xc9\x38\x58\xf7\xb5\xcd\x73\xf6\xda\xe2\x19\xdf\ +\xf1\xa7\x6d\x5e\xb4\x45\x38\xb4\xda\x4a\x04\xdb\x93\x6b\xda\x98\ +\x2b\xe1\x35\xe6\xe1\xa3\xf9\xed\x61\x41\xc1\xce\x70\xc2\x05\xe0\ +\xa9\x77\x09\xe9\x95\x1d\x11\x2a\xe8\xf0\x63\xa9\x57\x72\xa2\xd3\ +\xa8\x83\xa7\x00\xad\x22\x64\xf8\x35\xcc\x35\x8e\x6e\xa6\x30\x7a\ +\x27\xbb\xf6\x1a\x35\xd2\x28\xd9\xcc\x6d\x52\x02\xb1\x3b\xaf\xdb\ +\xdb\x0a\xd0\xe4\x97\x8a\x8f\xf9\xd6\x0d\xc0\xd8\xfe\x1f\xab\xa1\ +\x3f\xb0\x5a\xd5\x86\x18\x41\xc3\xb6\x13\x2b\x39\xb6\xd4\x2e\x71\ +\xad\x64\xdf\xc2\x08\xa4\x60\x71\x88\x93\x49\x09\xff\x6a\x06\x9c\ +\xd5\xbc\x7b\x4a\xe6\x76\x04\x58\x8c\x76\xb5\xb0\xfb\xdb\xd4\x18\ +\xed\x6d\x6a\xa8\x85\xe1\xa3\x3a\xb0\x16\x5e\x4c\x34\xdc\xf6\x48\ +\x28\x55\xcd\x59\x88\x51\x54\x39\x40\x66\x69\xf3\x91\xa2\x23\xd7\ +\xa2\xa0\x86\x3a\x9f\x9f\xb9\x8a\x33\x55\xa1\xd5\x57\xad\xb9\x37\ +\x3f\x91\x07\x0d\xb1\xdd\xa1\xff\xf0\xae\x42\x6d\xaa\x14\x17\x4d\ +\x45\x66\x43\xb6\x60\x69\x18\x59\x9c\x67\x48\xc0\xbf\x7d\x00\x58\ +\xcd\x09\xb5\xb7\x61\x9a\xed\xdd\x08\x55\xd3\x48\x31\x26\x38\x6e\ +\x0f\x70\xdf\x34\x75\x41\x09\xe6\x44\xd4\xc9\x82\x07\x03\x09\x66\ +\x6d\x0b\xee\x19\x88\xbf\xa1\x4d\x39\xb7\xcf\x3e\xc6\x1b\xec\xad\ +\xa8\xac\x6d\xfb\x76\xc0\xe3\x4d\x67\x47\x56\x50\x86\xac\xd9\xfc\ +\x94\xa5\x39\x65\x8c\x90\xde\xd9\x90\xf6\x36\x0d\x26\xc1\x0f\x5b\ +\xd2\xac\x95\x5a\xe9\x77\xd6\x6a\xdd\x56\x79\x39\x0d\x07\xe9\x66\ +\x12\x5c\x8d\x28\x4d\xbb\x4c\x02\x75\xc7\x3a\xb5\x59\x06\xc5\x5d\ +\xa9\x8c\x3f\x4c\xac\x7c\x1b\x58\x21\xfc\x89\x97\x29\x51\x86\xca\ +\xe6\xc2\xe5\x32\x7a\x77\x06\x2f\x34\x05\x75\x38\x3c\xf5\xee\xb4\ +\x13\xf3\xdb\x4e\xcc\xa7\x47\xdf\x6e\x7f\xb2\x22\x55\x6a\x7e\xfb\ +\x93\x70\xb4\x84\x82\xbc\x0d\xca\x00\x43\x39\x0d\x4a\x5c\xc8\xd5\ +\x7c\x6f\xeb\xca\xbf\xaf\x0b\x11\x3e\xbc\xaf\x61\x05\xb2\xd1\xd7\ +\xdb\x30\x5d\x4f\x50\x1f\xe7\x39\x29\x02\xb0\xac\x7d\xf6\x6b\xc2\ +\x69\x08\x65\x35\x84\x6e\x37\xe8\x74\x89\xcf\x26\x93\x6e\x65\xe5\ +\x71\x77\x95\xab\xf5\x89\x62\xb8\x86\x1a\x6d\x27\x40\x80\x11\xae\ +\x01\x47\x83\x4d\x3f\x71\x9f\xcd\x6c\xd8\x4b\x2a\xdb\x6b\xe0\xa7\ +\x09\x8d\x50\x8b\x6e\x92\x56\xd0\x52\x3c\x47\xee\x11\x30\x0d\x19\ +\xef\x3b\x4a\x81\x04\xc6\x66\xf0\xeb\x6c\xee\x8e\x0b\x24\x66\xdf\ +\x26\xb4\x0a\xfa\xcd\xf5\xf6\x36\xa1\x55\x6f\x32\x31\xe8\x3c\x38\ +\x24\xb6\x0e\x2c\xa4\x71\xb5\x79\x7d\x11\x6b\x14\x73\x47\x97\xba\ +\x4f\x0a\x07\xdb\xca\xd0\x6e\x4f\x74\x38\x95\x02\xd2\xdd\xe2\x5d\ +\x72\x21\xa7\x3b\x07\xc7\x02\xd4\x44\x4a\xa7\x3b\xcf\xdf\xa4\x90\ +\x0f\x11\x05\x67\xaa\xff\x03\xed\x85\x61\x65\xfd\x58\x81\x19\x4d\ +\x68\xaa\x3b\xdf\xd5\x9d\x57\xf7\x57\x63\x93\xf0\x84\x49\x9c\x9e\ +\xdd\x01\xfb\x18\x8a\xc8\xdd\x1e\x98\xd2\x46\x05\x62\xe7\xcf\x9e\ +\xe3\x4d\xda\xa7\x3a\x75\xc2\x41\xbc\x7a\xf6\x47\xd4\x2c\xd5\x75\ +\xd4\xcc\x19\xe9\x4c\x2c\xf8\x7b\x9b\x46\xa6\xd7\x16\x94\x83\xfb\ +\xaa\x7b\x99\xb1\xb9\x86\x3f\xb8\xbc\xb6\xb2\xba\x98\xc7\xb9\xfd\ +\xd1\x54\xdd\x51\x64\x5e\x3d\xe3\x91\x49\x62\x4a\x17\x95\x30\x3f\ +\x14\x3f\x4f\x5d\x13\x59\xc8\xcf\x20\xdb\x50\xea\x90\x62\x0d\xea\ +\x51\xdc\x53\xf2\x75\x10\x3a\x53\x8c\xce\x6a\x60\x50\x83\x1b\xf9\ +\xa2\x50\x2e\x4a\x5c\x8d\x5c\x91\x9e\x92\x90\xc5\xa8\x4f\xaf\x40\ +\x6e\x6a\x4a\x4f\x6d\xe2\x2f\xee\x33\x27\xed\x8d\x52\x9c\x35\xc2\ +\xa6\xbd\x5f\x3e\x48\xfd\x28\x38\x32\x97\xad\xc6\x44\x2c\xf3\x6c\ +\xe5\x39\xf1\xb2\xf1\x7c\xea\x9a\x8f\x2a\x9d\x2e\xe3\xe0\xbb\x4f\ +\xb5\xc9\x01\x6a\xa1\xf6\xa9\x26\x4c\x0a\x1e\xff\x6e\x53\x85\xa4\ +\xdd\xc1\xd5\x86\xe7\xc5\xfc\x23\xa7\xcc\x27\xa9\x94\xcf\xf9\xdd\ +\xfa\x3a\xb3\x9b\xfd\xce\x7f\x28\x8e\xdb\x19\x75\xeb\x2a\x81\xba\ +\xac\x78\x66\x71\x44\xb2\x78\x57\xc0\x35\xda\xa3\x83\x67\xa7\x33\ +\xbf\x19\xde\x4d\xba\xa2\x01\xb1\x3e\xdc\xdd\xa4\x43\x71\x3f\x36\ +\xf8\xb3\x49\x77\x77\xa7\x97\xc6\x3d\x28\x8b\x1a\x4d\xdd\xf3\x94\ +\xa3\xbc\x6f\x5d\x13\xeb\x3a\x44\xec\x6b\x9a\x02\x94\x79\xe7\x29\ +\xb0\xc5\x6e\xef\xde\x23\x45\xeb\x0c\xfe\xf4\xe7\x6b\x6d\xb7\x11\ +\x93\xcb\x25\xa3\xa5\x9e\x3e\xb0\x44\x25\x74\x25\x3b\xed\x81\xf5\ +\x48\xa1\x80\xe9\x01\x7a\x16\xa6\x40\x18\x59\x1c\x4b\x7e\x43\xa1\ +\x8a\x9d\x7c\x84\x8b\xe5\x33\x8f\x52\x72\xbc\xed\x43\x67\xdf\x21\ +\xbd\x4b\xe7\x34\x70\x53\xfc\x3b\xca\x41\xc2\x6a\xc3\xc9\x6b\x92\ +\xa3\xe0\xfd\xa6\x30\x20\x25\x2a\xa7\x5a\x01\xfc\x29\x84\x33\x49\ +\x1d\x43\x35\x77\x20\x25\xf7\x9e\x6e\x27\xc4\x3d\x5d\x4c\x45\xd5\ +\xbe\x59\xf1\x06\xc4\xc9\xe9\xbd\x94\x8e\xba\xd2\xc8\xc7\x19\xe2\ +\x40\xe5\x20\x0d\xf0\x54\x1d\x53\x43\x1c\x24\xed\x68\x88\x27\x60\ +\xa8\x96\x0c\x3c\x00\xea\xe8\xd5\x79\xa6\x38\xd2\x99\x45\x1a\xfb\ +\xee\x24\x67\x7d\x20\x9d\xe6\x4d\xff\xcd\xc8\x85\x79\x67\x2e\x34\ +\xd0\xbb\x44\x7c\x32\x24\x10\x11\x02\x97\xd4\xee\x63\xac\xd4\x4f\ +\x50\x2c\xaa\xfb\x59\xee\xf6\x53\x3e\xe3\x4d\xbb\x5f\x5e\x44\x98\ +\x29\xfd\x2c\xb9\xd6\x3f\x83\x16\xef\x94\x85\x04\x00\xde\x20\x91\ +\xb7\x57\xbb\xcd\x0d\xcd\x05\x69\x98\xe3\xfa\xca\xc5\x77\x88\xc0\ +\xa5\x77\x9c\x43\x35\xd8\xc4\xa0\x71\x12\x6d\xc3\xd5\x72\xe7\x39\ +\x08\xc1\x9c\xdf\x89\x0e\x7f\xb6\x68\x40\x0a\xdb\x35\x88\x59\xfc\ +\x39\x31\xda\x24\x9d\x13\xe7\x1f\x27\x36\xf7\xcc\x70\x98\xe7\x34\ +\x45\x47\x5c\xe8\xde\x43\x7d\x2d\x58\x41\x21\xd7\x64\x5c\xc7\x90\ +\xe2\xa9\x16\xcf\xe7\xd3\x02\x6c\xee\xce\x60\x2c\x62\x7b\x4f\xf2\ +\xd5\x50\x36\x90\xcf\x4e\xa0\x87\x84\xaa\xfc\xfb\x34\x50\x61\x6b\ +\x1e\xf2\x27\xc2\xad\xdd\x38\x58\x0a\xda\xbd\xa8\x7b\xef\x22\x45\ +\xbe\xc2\x8e\xd3\x15\xf0\x54\x6d\x10\x52\xcd\x7d\xc0\x23\x92\x41\ +\xa5\x68\xeb\x20\x0b\xba\xf6\x19\xc2\x88\x41\x53\x7a\xfe\x34\x38\ +\x63\xb2\x49\x81\x3b\xcf\xe0\x88\x13\x92\x6e\x0d\x8e\xd8\x62\x91\ +\xde\xdb\x90\xd6\x47\xc1\x93\xb8\x53\x2d\x3c\xdd\x4f\xef\x0b\xe1\ +\x9a\xdc\x20\xd7\x4f\xd7\x97\xe8\x99\x15\x95\x35\x67\x43\xf7\x39\ +\x51\xfc\xf2\x48\xb2\xe0\xf8\x7e\xf7\xe0\x0d\x8a\xd0\x8d\xa3\xfa\ +\x2f\xd7\x27\x46\x34\xd2\x7f\x3a\x73\xe5\xcc\x59\x9c\x39\x88\x78\ +\x9a\x31\x5f\x73\x16\x19\xd0\xd5\x38\x07\x9a\xba\xb4\x8a\xd5\x8a\ +\x19\x75\x46\xef\xef\x3c\x87\xf6\x6a\xf7\x9d\xe8\x10\xf9\x15\xf2\ +\xa2\xb2\xee\x3c\xc7\xdb\x75\x73\x87\x5d\x58\x79\x73\xac\xef\x23\ +\x17\xe6\xa7\x99\x0b\x42\x6a\x43\xe1\x3e\x03\x44\x67\x2a\xe9\x04\ +\x34\x92\x97\x32\x0d\xb0\xdf\xe1\x23\xc4\x9c\x54\xa3\xae\x45\xc2\ +\xa1\x0e\xd0\x6b\x2a\x4c\x50\x9d\x75\x49\x0a\x99\xa6\x0e\xdf\x07\ +\x8d\x59\xa9\x5d\x67\x8c\x43\xaf\xde\x28\xfe\x8c\x71\x20\xe7\xd0\ +\xa1\x5a\xb0\xdb\xd4\x03\x83\x6e\xda\x7d\x14\x6d\x39\x6a\x8e\xc3\ +\xee\x1a\x88\x80\x21\xfe\xbb\xb4\xc3\x44\x52\x6f\xf5\x7a\xd7\xec\ +\xeb\xce\x8f\x8d\x42\x96\x54\xb5\x2d\xf4\x2c\x8f\x6d\x55\x83\x7f\ +\xd1\x20\x2a\x8a\x8a\xbe\x46\x39\x7a\x2c\x41\x1b\x55\xbc\x84\xf3\ +\x90\x4f\xcb\x93\x58\x94\x50\x2a\x91\x9e\x6b\x81\x07\xc9\x05\x9a\ +\xe4\x50\x61\x19\x9f\xc6\x96\x86\x2a\xcc\xe5\x67\xf3\xe5\x67\x77\ +\xb2\x62\x57\x16\x5b\x35\xb0\x0b\x6f\xb0\x70\xf7\xd8\xd5\xa9\x15\ +\x04\xc1\xbb\x12\x05\x4b\xca\x86\x10\x00\x0b\x7c\xd5\x18\x0f\x49\ +\x7b\xf3\x65\xe9\x09\x98\xbb\x0d\x7a\x9b\x2e\x2f\xf5\xbb\xee\x19\ +\xbf\x54\x74\xaa\xca\x7a\xce\x28\xf0\xb9\x1e\xf8\x36\xb7\x81\x8b\ +\xf6\x0b\x7b\x6a\x1d\x72\x57\xb1\x03\x4d\x67\x37\xe6\xb9\x13\x29\ +\xeb\xb4\x70\xbb\xcd\xe3\x86\x40\x50\x47\x11\xa4\xae\xe7\x52\xa0\ +\xae\xa6\x52\x9c\x51\xaf\x86\x80\x5d\xed\xcc\x10\xc2\xad\x57\x39\ +\xb5\xfc\x1d\x22\x14\x6f\x78\xce\x10\xa1\xd3\x0c\x9e\xfa\xc7\x8f\ +\xd2\xa6\xef\x59\xfa\x1d\xd2\x3d\x73\x39\xcb\xf4\x33\xda\xef\xdf\ +\x21\x10\x0d\x1d\xdd\xda\x71\x37\xc9\xda\x13\x90\xa1\xeb\x4c\x0c\ +\x9d\xfd\x4e\x57\xc5\x2e\xc6\x96\xc4\x0d\x77\x3e\xd2\x9e\x59\x5d\ +\x23\x3e\x4f\x76\x52\x42\xb5\xc7\x84\xa4\xb2\x94\xfe\xf1\x50\x3e\ +\x49\xf1\x51\x7c\xd1\xd0\x6a\x20\x7a\xca\x1f\xe7\x81\x31\x5a\x99\ +\x54\xda\xa1\x01\x7e\x60\xea\x4e\xec\xaa\x77\x16\x40\xb2\xac\x81\ +\x5d\xb5\x2b\x14\xc1\xda\x30\x03\x96\x10\xcd\xf5\x0e\x95\x15\xd2\ +\x0f\x06\x4e\x71\xa1\x64\x9f\x49\x54\xf3\xcb\x30\xb0\x0a\x4a\xd1\ +\x08\x8d\xb5\xfd\x9d\x50\xc5\x3a\x55\x93\x6b\xaa\x11\xe1\x48\x64\ +\x7f\x46\x78\xfd\x67\x84\x97\xe8\x18\xb8\x5f\x2d\x9e\x77\xdc\x2d\ +\x9e\x19\xde\xa2\x1e\xe1\x3a\xd5\xb7\x51\x70\x4f\xd3\x11\x89\x85\ +\xd9\x6f\x40\xdc\x91\x1d\xd8\x66\xf7\xef\x83\x16\x9a\xb8\x35\x43\ +\x4a\xf4\x09\x9a\xf3\x11\x03\x73\x08\x35\x8d\xe9\xa9\x1d\xf5\xdc\ +\xd6\x7d\x4c\x99\xc0\xf4\xf1\x50\xe5\xaf\x67\x47\xc6\x19\x65\xf8\ +\xb1\x04\x73\xd7\xa0\x27\x0a\xbe\xae\x6c\xff\x78\x65\x58\xb3\x1e\ +\xf0\xb0\xef\x03\x1e\x1a\xe8\x2d\xef\x74\xbd\x01\xf2\xee\x2c\xaf\ +\x98\x4b\xd0\x26\xc6\x96\x4e\x39\x93\xbc\xd7\x4e\x9a\x75\xa6\x30\ +\x43\xbb\x97\x46\x9d\x41\x28\xd9\xc9\x9e\x41\x5e\xaf\xfd\x0b\x4d\ +\x93\x64\xa3\x21\xd6\xb3\x1d\xf6\x68\xa4\x4b\x73\xbb\xa1\x5f\x99\ +\xe9\xd5\xc9\x42\xec\x50\xdb\xd3\xa9\x21\x8f\xa6\x4e\xfb\xed\x75\ +\x50\x83\xbe\xb9\x9b\xe8\x32\xbf\x19\x0a\x26\x2e\x2c\xc1\x55\x24\ +\xa9\x21\x44\xdd\x43\x78\xed\x62\x2d\xda\x19\x45\x59\xc4\xa8\xa9\ +\xdd\x45\xb5\xf0\xb8\x52\x51\x09\xd0\x19\x7f\xc6\x72\xf7\x8b\x34\ +\xa0\xec\x3a\xc3\x0c\xbf\x1f\x0c\x56\xbf\x25\xef\xe4\xd6\x3b\xac\ +\x7b\xad\x58\xf4\x54\x85\x39\x0f\x72\xd4\xa4\xb7\xce\x38\x7c\x5a\ +\xf7\xb1\x8d\x77\x20\x1e\xc6\x80\x15\xb4\xe7\x87\xf0\x87\xf8\x53\ +\x19\x2b\xbc\xa3\x37\xd8\x32\xaf\xbb\xf9\x59\x80\x39\x53\x0c\xca\ +\xad\x97\x97\x05\x15\xc3\xf6\xaf\xf2\x1d\x52\x64\xf5\xdc\xc1\xe7\ +\x21\x80\xdd\x8c\x66\x3f\xe2\xfb\x14\x80\xd3\x38\xe5\xbc\x4f\x01\ +\xa8\xc9\x1b\xd4\xc8\x84\x47\xdb\x7f\xd0\x43\x30\x1a\x72\xd7\x6c\ +\x5b\x18\x02\xd4\x82\x64\xd0\xdc\x30\x57\xb7\xce\x82\x24\x0b\x55\ +\x0a\x10\xe2\x32\xe4\x8e\xb7\x55\x19\x24\xf5\xf7\x52\xd2\xf3\x48\ +\x84\xca\xc8\x36\xe2\xa4\xfe\x04\xa5\xa8\xe8\x9d\x5d\xfb\x69\xca\ +\xe2\xf3\x1c\xd5\xa1\xff\xb8\x11\x66\x47\x44\x4a\x05\xc7\x0c\x46\ +\xda\x0a\xb4\xa8\x7d\x48\x88\xfc\xfd\xec\xca\x91\x95\x14\x2f\x65\ +\xa8\x47\xcc\xde\x8e\xf7\x56\xaf\x55\xb3\xf5\xe9\x7d\x92\xca\xfc\ +\xee\x51\x2a\x85\xbe\x5a\x53\xe3\xb9\x83\x1f\x15\x22\x91\x21\x30\ +\x52\xed\xd4\x27\x16\x9e\xbb\x36\x83\xc9\x97\x5c\xcf\x53\xce\xeb\ +\x11\x87\x1c\xea\x36\xdc\x56\x57\xd1\x23\x39\x50\xc1\x77\x26\x62\ +\xdf\x86\x73\x48\xf5\x1d\x03\x59\x77\x57\x77\xdf\x0b\x88\x59\x09\ +\xb1\xb4\x97\x64\xce\xb3\x37\x10\x22\x68\x85\x9e\xbd\xd1\x03\x74\ +\x7a\xf6\x86\x32\x4a\x1d\x6d\x27\x41\xf5\xe8\xce\xa3\x81\x74\x0a\ +\x8a\xc6\xc5\x58\xf0\x79\xd6\x27\x81\x84\xe5\x3c\xeb\xe3\x5b\x47\ +\x1c\xeb\x61\x9f\xd7\x14\x28\x2f\x8d\xef\x40\xca\xf4\xdc\xd3\x7e\ +\x1f\xf2\x08\x33\x67\x7f\xbb\x38\x56\xd9\x5e\x34\x36\x3f\x04\x58\ +\x83\x00\x7c\x20\xdd\xe7\x51\x18\xa7\xd9\x43\x0a\xfa\xe1\x9d\x77\ +\xba\xf0\x41\x90\x68\xbe\x6e\xc7\x3b\xf8\xd9\xd7\x79\xb3\x6b\xcf\ +\xf7\xf4\x34\xc7\xcd\x2f\x49\x65\x09\x34\x65\xaf\xd1\x65\x17\x9c\ +\x2e\xdd\x53\x17\xaf\xe4\xd0\x99\xed\xfb\xe1\x54\xb9\x5b\x15\x7f\ +\x3d\x86\xf6\xc7\x35\x47\xa3\xf2\xf7\x9c\xc7\x94\xd4\xea\x87\xdf\ +\xc0\x18\xea\xd8\x32\xd5\x31\x28\xc6\x8a\x28\xfe\xa5\xed\x14\x68\ +\xb8\x66\x57\x35\xbe\x01\xe1\x4b\xf5\x52\x79\x6d\x93\x2c\xdc\x5f\ +\xa2\x98\xac\x1e\x8e\xea\xe7\x31\x08\xec\x75\xf5\xd0\xdf\x7b\x2b\ +\x6a\xb8\x12\x85\xc0\xe9\x71\x7c\xa3\x64\x0b\x1a\x16\x68\x7f\x62\ +\x03\xb6\x90\x42\x50\x6c\x14\xd4\x32\x3c\x4f\xa1\xe1\x67\x53\xa7\ +\x24\x69\x97\xfb\x34\x19\x03\xe7\xf7\x67\x24\xe3\x3c\xfd\xf4\xf5\ +\x98\x87\x48\xf9\x01\xf5\xab\x2b\xcf\x23\x79\x64\xdc\x79\x24\x2f\ +\xbf\x8f\xe4\x21\x54\xbb\x14\xa3\x7b\x1f\xf7\xeb\xe9\xcc\x74\x86\ +\xf7\x71\xbf\xa4\x38\x6a\x63\xd8\xf3\xbc\x9f\xaa\x5a\x85\xcb\xea\ +\x71\x3f\xcf\x19\x1d\x5c\xd6\xfd\x8b\x07\xab\x3e\x63\xfd\x0d\x56\ +\xfb\xdc\x87\x02\x4f\x7b\xee\xd0\x58\xf5\xbd\xeb\x11\x82\x54\xdb\ +\xf7\x41\x47\x89\xce\x34\xf6\x7d\xce\x71\xc0\x92\x55\x3c\xf5\x9c\ +\xa3\xc6\xcd\x70\x49\x36\xda\x8b\xb2\xf3\xeb\x59\xaa\xdf\x76\xfc\ +\x7c\x2d\xbf\x80\x10\xab\xa0\x96\x98\xff\x05\xa2\x87\xc1\x0f\xaa\ +\x4f\xc1\xbf\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\ +\xff\xa0\xbd\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\ +\x23\x00\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x00\x07\x74\x49\ +\x4d\x45\x07\xe2\x09\x14\x09\x36\x1d\xa0\xf8\x74\xb3\x00\x00\x02\ +\x07\x49\x44\x41\x54\x38\xcb\xb5\xd5\xb1\xaa\xe2\x40\x14\x06\xe0\ +\x7f\xc6\x14\x76\x61\x48\x65\x61\x40\x48\x91\x07\xb0\xb1\x48\x25\ +\xb1\xf0\x11\x84\x94\x06\xc4\xfe\x3e\x8a\x16\x76\xce\x3b\xac\x90\ +\x21\x55\x0a\x1b\x1f\x20\x75\xa6\x94\x30\xa4\x8b\x38\xce\xd9\xca\ +\xcb\xe5\xc2\x65\xd7\xc5\xfd\xe1\x94\xf3\x31\xa7\x98\x7f\x18\xbe\ +\xe4\x70\x38\xb0\xf5\x7a\x4d\x65\x59\x0e\x8d\x31\x8b\xb6\x6d\x37\ +\x4d\xd3\xa4\xce\xb9\x01\x00\x70\xce\x1f\x61\x18\xaa\x20\x08\xf6\ +\x42\x88\x62\x3e\x9f\xf7\xcf\x33\x4f\x83\xe1\x5b\xa4\x94\x4b\xad\ +\xf5\xbe\xaa\xaa\xb0\xae\x6b\x00\x80\xef\xfb\x00\x80\xae\xeb\x00\ +\x00\x71\x1c\x23\x49\x92\x66\x3c\x1e\x6f\xb2\x2c\xfb\x85\x9f\x72\ +\x3c\x1e\x3f\xf2\x3c\xa7\xc9\x64\x42\xab\xd5\xca\x9d\x4e\x27\x77\ +\xbd\x5e\xc9\x5a\x4b\xd6\x5a\xba\x5e\xaf\x74\x3a\x9d\xdc\x6a\xb5\ +\x72\x93\xc9\x84\xf2\x3c\xa7\xe3\xf1\xf8\x81\xef\x6b\x3e\xb1\xed\ +\x76\x4b\x51\x14\x51\x51\x14\x44\x44\x74\xbf\xdf\xe9\x76\xbb\x51\ +\xdf\xf7\xd4\xf7\x3d\xdd\x6e\x37\xba\xdf\xef\x44\x44\x54\x14\x05\ +\x45\x51\x44\xdb\xed\xf6\x13\x7d\x5a\x90\x52\x2e\xf3\x3c\xa7\x28\ +\x8a\x48\x6b\x4d\xd6\xda\x4f\xe4\xa7\xb1\xd6\x92\xd6\x9a\xa2\x28\ +\xa2\x3c\xcf\x49\x4a\xb9\x04\x00\x5e\x96\xe5\x50\x6b\xbd\x57\x4a\ +\x61\xb7\xdb\x61\x34\x1a\xc1\x5a\x8b\x3f\xc5\x5a\x8b\xd1\x68\x84\ +\xdd\x6e\x07\xa5\x14\xb4\xd6\xfb\xb2\x2c\x87\xdc\x18\xb3\xa8\xaa\ +\x2a\x9c\xcd\x66\x94\xa6\xe9\x5f\x61\x5f\xd1\x34\x4d\x31\x9b\xcd\ +\xa8\xaa\xaa\xd0\x18\xb3\xe0\x6d\xdb\x6e\xea\xba\x46\x96\x65\x2f\ +\x61\x5f\xd1\x2c\xcb\x50\xd7\x35\xda\xb6\xdd\xf0\xa6\x69\x52\x00\ +\x98\x4e\xa7\xcc\x39\xf7\x32\xe8\x9c\xc3\x74\x3a\x65\x00\xd0\x34\ +\x4d\xca\x9d\x73\x03\xdf\xf7\x21\x84\x00\x11\xbd\x0c\x12\x11\x84\ +\x10\xf0\x7d\x1f\xce\xb9\x01\xc7\x9b\xc3\x39\xe7\x8f\xae\xeb\x60\ +\x8c\x01\x63\xec\x65\x80\x31\x06\x63\x0c\xba\xae\x03\xe7\xfc\xc1\ +\xc3\x30\x54\x00\x70\xb9\x5c\x88\x73\xfe\x2f\x37\xc2\xe5\x72\x21\ +\x00\x08\xc3\x50\xf1\x20\x08\xf6\x71\x1c\x43\x4a\x09\xcf\xf3\x5e\ +\x06\x3d\xcf\x83\x94\x12\x71\x1c\x23\x08\x82\x3d\x17\x42\x14\x49\ +\x92\x34\xe7\xf3\x99\x29\xa5\x5e\x42\x3d\xcf\x83\x52\x0a\xe7\xf3\ +\x99\x25\x49\xd2\x08\x21\x8a\xb7\x3f\xbd\xff\x53\x0e\xef\xac\xaf\ +\xb7\x17\x2c\x7b\xf7\x17\xf0\x1b\x39\x76\x0e\x01\xc1\xbf\xd8\xe3\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x05\xf0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\ +\x24\x24\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\x00\x49\x00\ +\x00\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00\x6d\x00\ +\x00\x49\x00\x00\x24\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00\x6d\ +\x6d\x00\x49\x49\x00\x24\x24\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00\x6d\x00\x00\x49\x00\x00\x24\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92\x6d\x00\x6d\x49\x00\x49\x24\x00\x24\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00\x6d\x6d\x00\x49\x49\x00\x24\x24\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\x24\ +\xff\xb6\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\xff\ +\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\xff\x6d\x6d\xdb\x49\ +\x49\xb6\x24\x24\xff\x49\x49\xdb\x24\x24\xff\x24\x24\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\xb6\ +\xff\xb6\x92\xdb\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x92\xff\ +\x92\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x6d\xff\x6d\x49\xdb\x49\ +\x24\xb6\x24\x49\xff\x49\x24\xdb\x24\x24\xff\x24\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\xb6\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x92\x92\xff\ +\x6d\x6d\xdb\x49\x49\xb6\x24\x24\x92\x6d\x6d\xff\x49\x49\xdb\x24\ +\x24\xb6\x49\x49\xff\x24\x24\xdb\x24\x24\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92\x6d\x6d\x6d\x49\x49\x49\x24\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\xff\xff\x6d\xdb\xdb\x49\xb6\xb6\ +\x24\xff\xff\x49\xdb\xdb\x24\xff\xff\x24\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92\x6d\x92\x6d\x49\x6d\x49\x24\x49\xff\xb6\xff\xdb\ +\x92\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\xff\x92\xff\xdb\x6d\ +\xdb\xb6\x49\xb6\x92\x24\x92\xff\x6d\xff\xdb\x49\xdb\xb6\x24\xb6\ +\xff\x49\xff\xdb\x24\xdb\xff\x24\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\xb6\xff\xff\x92\xdb\ +\xdb\x6d\xb6\xb6\x49\x92\x92\x24\x6d\x6d\x92\xff\xff\x6d\xdb\xdb\ +\x49\xb6\xb6\x24\x92\x92\x6d\xff\xff\x49\xdb\xdb\x24\xb6\xb6\x49\ +\xff\xff\x24\xdb\xdb\x24\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +\x6d\x92\x6d\x49\x6d\x49\x24\x49\x24\x00\xff\xb6\x92\xdb\x92\x6d\ +\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +\x6d\x92\x92\x49\x6d\x6d\x24\x49\x49\x00\x24\xff\x92\xb6\xdb\x6d\ +\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\xdb\xb6\xff\xb6\x92\xdb\ +\x92\x6d\xb6\x6d\x49\x92\x49\x24\x6d\x24\x00\x49\xb6\x92\xff\x92\ +\x6d\xdb\x6d\x49\xb6\x49\x24\x92\x24\x00\x6d\xb6\xdb\xff\x92\xb6\ +\xdb\x6d\x92\xb6\x49\x6d\x92\x24\x49\x6d\x00\x24\x49\x92\xb6\xff\ +\x6d\x92\xdb\x49\x6d\xb6\x24\x49\x92\x00\x24\x6d\xb6\xff\xdb\x92\ +\xdb\xb6\x6d\xb6\x92\x49\x92\x6d\x24\x6d\x49\x00\x49\x24\x92\xff\ +\xb6\x6d\xdb\x92\x49\xb6\x6d\x24\x92\x49\x00\x6d\x24\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6\x6d\x6d\x92\x49\x49\x6d\x24\x24\x49\x00\xb6\ +\xff\x92\x92\xdb\x6d\x6d\xb6\x49\x49\x92\x24\x24\x6d\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6\x6d\x00\x92\x49\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00\x6d\x92\x00\x49\x00\xb6\xff\x00\x92\xdb\x00\x6d\xb6\x00\ +\x49\x92\x00\x00\x00\x00\x00\x00\xcf\x2a\x02\x04\x00\x00\x02\xab\ +\x49\x44\x41\x54\x38\xcb\xb5\x95\xbf\x6b\xe3\x48\x18\x86\xdf\x19\ +\x59\x30\x04\x82\x70\xd4\x24\x81\x51\x25\x8c\x3a\xa5\x0e\x11\x81\ +\x08\x25\xb0\x57\x9a\x94\x36\xa4\x48\xe1\x22\xb8\xdb\xfd\x1b\xf6\ +\xba\x54\x2e\x54\xe4\x70\x48\x69\x52\x84\x73\x11\x45\x69\x94\x2b\ +\x52\xaa\x13\x3e\x91\x42\xaa\x85\x50\xb5\x03\xfa\x31\x57\x79\xd9\ +\xdd\xbb\x5b\x72\x21\xf7\xf4\xdf\xc3\x3b\x1f\x1f\xef\x10\x7c\x83\ +\xef\xfb\xe4\xfc\xfc\x5c\x86\x61\xc8\xca\xb2\x3c\x2e\x8a\x62\x92\ +\x65\x99\xd7\x75\x9d\x02\x00\x94\xd2\xd6\x30\x8c\x40\xd7\xf5\x59\ +\xbf\xdf\xbf\x77\x5d\x57\xac\x67\xd6\x0e\x82\x1f\xb8\xbe\xbe\xfe\ +\x90\xe7\xf9\x2c\x8a\x22\x23\x49\x12\x00\x80\xa6\x69\x00\x80\xaa\ +\xaa\x00\x00\x96\x65\xc1\x71\x9c\x8c\x73\x3e\x19\x8d\x46\xcb\x6f\ +\xe7\xbf\x13\xce\xe7\xf3\x8f\x4f\x4f\x4f\x9f\x83\x20\x80\x69\x9a\ +\xd2\xb6\x6d\x70\xce\x09\x63\x0c\x00\x20\x84\x40\x9e\xe7\x32\x8e\ +\x63\xa4\x69\x4a\x3c\xcf\xc3\xc1\xc1\xc1\xa7\xf1\x78\xfc\xeb\xda\ +\xa1\xf8\xbe\x4f\xee\xee\xee\x30\x9f\xcf\x3f\x3e\x3f\x3f\x7f\x7e\ +\x78\x78\xc0\xe9\xe9\x29\x0e\x0f\x0f\xc9\xe6\xe6\x26\x01\x80\xba\ +\xae\xd1\x34\x0d\x28\xa5\xd8\xda\xda\x22\x7b\x7b\x7b\x64\x7b\x7b\ +\x1b\xcb\xe5\x12\x8c\x31\xef\xe2\xe2\xe2\xcb\xed\xed\xed\x1f\xbe\ +\xef\x13\xb2\x7e\x66\x14\x45\xbf\x3f\x3e\x3e\x62\x3a\x9d\x42\x51\ +\x14\xd4\x75\x0d\x42\xfe\xb6\x11\x00\x80\x94\x12\xaa\xaa\xa2\x6d\ +\x5b\x5c\x5e\x5e\xe2\xe8\xe8\x08\x8e\xe3\xfc\x32\x1a\x8d\x96\x34\ +\x0c\x43\x96\xe7\xf9\x2c\x08\x02\x0c\x87\x43\x28\x8a\x82\xa6\x69\ +\xfe\x55\x06\x00\x84\x10\x34\x4d\x03\x45\x51\x30\x1c\x0e\x11\x04\ +\x01\xf2\x3c\x9f\x85\x61\xc8\x68\x59\x96\xc7\x51\x14\x19\xa6\x69\ +\xca\xc1\x60\x80\xba\xae\xf1\x5a\xea\xba\xc6\x60\x30\x80\x69\x9a\ +\x32\x8a\x22\xa3\x2c\xcb\x63\x5a\x14\xc5\x24\x49\x12\xd8\xb6\x0d\ +\x21\xc4\x4f\x93\xfd\x53\x52\x21\x04\x6c\xdb\x46\x92\x24\x28\x8a\ +\x62\x42\xb3\x2c\xf3\x00\x80\x73\x4e\xba\xae\xc3\x7f\xa5\xeb\x3a\ +\x70\xce\x09\x00\x64\x59\xe6\xd1\xae\xeb\x14\x4d\xd3\xc0\x18\xc3\ +\x5b\x85\x8c\x31\x68\x9a\x86\xae\xeb\x14\x8a\x77\x86\x52\x4a\xdb\ +\xaa\xaa\x20\x84\x00\xa5\xf4\x2d\x02\x08\x21\x50\x55\x15\x28\xa5\ +\x2d\x35\x0c\x23\x00\x80\x3c\xcf\xe5\x5b\x85\x79\x9e\x4b\x00\x30\ +\x0c\x23\xa0\xba\xae\xcf\x2c\xcb\x42\x1c\xc7\x60\x8c\x41\x4a\xf9\ +\x6a\x99\x94\x12\x8c\x31\xc4\x71\x0c\xcb\xb2\xa0\xeb\xfa\x8c\xf6\ +\xfb\xfd\x7b\xc7\x71\xb2\x34\x4d\xc9\x6a\xb5\x82\xaa\xaa\xaf\x16\ +\xaa\xaa\x8a\xd5\x6a\x85\x34\x4d\x89\xe3\x38\x59\xbf\xdf\xbf\xa7\ +\xae\xeb\x0a\xce\xf9\xc4\xf3\x3c\x2c\x16\x0b\xb4\x6d\x8b\x5e\xaf\ +\xf7\xd3\xa4\x52\x4a\xf4\x7a\x3d\xb4\x6d\x8b\xc5\x62\x01\xcf\xf3\ +\xc0\x39\x9f\xb8\xae\x2b\x14\xdf\xf7\xc9\xd9\xd9\xd9\x9f\xd3\xe9\ +\xf4\x0b\x63\xcc\xbb\xb9\xb9\xc1\xee\xee\x2e\x76\x76\x76\xbe\x9e\ +\xd1\x5a\x4e\x29\x85\xa2\x28\xd8\xd8\xd8\xc0\xcb\xcb\x0b\xae\xae\ +\xae\x70\x72\x72\x82\xfd\xfd\xfd\x4f\xe3\xf1\xf8\xb7\xaf\xe5\xf0\ +\x9e\xf5\xf5\xff\x16\xec\x7b\x7c\x01\x7f\x01\xe6\x7c\x7d\xed\x70\ +\xe4\x03\xa4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x2d\x7f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x1d\xd8\x7a\x54\x58\x74\x52\x61\x77\x20\x70\x72\x6f\x66\ +\x69\x6c\x65\x20\x74\x79\x70\x65\x20\x65\x78\x69\x66\x00\x00\x78\ +\xda\xa5\x9b\x59\x96\xe4\x3a\x92\x64\xff\xb9\x8a\x5e\x02\x31\x03\ +\xcb\xc1\x78\x4e\xef\xa0\x97\xdf\x57\x14\xf4\xc8\x78\x91\x2f\xb3\ +\x2a\xab\x62\x72\x0f\x73\x1a\x09\xe8\x20\x2a\xa2\x50\x7b\xf6\xff\ +\xfb\xbf\xe7\xf9\x3f\xfc\x2a\xe5\x8d\x4f\x4c\xa5\xe6\x96\xf3\xcb\ +\xaf\xd8\x62\xf3\x9d\x6f\xea\x7b\x7f\x75\xfb\xd7\xbd\xd1\xfe\xbd\ +\xff\x89\xdf\xcf\xdc\x5f\x5f\x7f\x7e\xfd\xc0\xf3\x52\xe0\x6b\xb8\ +\xff\xad\xf9\xbb\xfe\xe7\x75\xf7\xeb\x06\xf7\x4b\xe7\xbb\xf4\xdb\ +\x8d\xea\xfc\x7e\x30\xfe\xfa\x83\xf6\x3d\xc0\xd7\x3f\x6e\xe4\xef\ +\x97\xa0\x15\xe9\xfb\xf5\xdd\xa8\x7d\x37\x0a\xfe\xfe\xe0\x67\x85\ +\xfd\x6e\xeb\xcd\xad\x96\xdf\xb7\x30\xf6\xfd\xfa\xbd\xff\x9a\x81\ +\xbf\x8f\xfe\x89\xf5\xaf\xcb\xfe\xa7\xff\x17\xac\xb7\x12\xcf\x09\ +\xde\xef\xe0\xc2\xcb\xbf\x21\xf8\xbb\x80\xa0\xbf\xe1\x09\xdd\xbe\ +\xe9\xfc\x98\x9f\xe8\x5f\x7b\xa5\xf0\x6f\x0a\xed\xbb\x19\x06\xf9\ +\x3b\x3b\xfd\xfa\xc5\x75\xcf\xd1\x52\xe3\xdf\x5e\xf4\x17\xaf\xfc\ +\xfa\xce\xfd\xfd\xeb\xcf\x9f\xde\x8a\xfe\xbb\x24\xfc\x61\xe4\xfc\ +\xeb\xeb\xdf\xbe\xfe\xb8\xf4\xc7\x0f\xc2\xaf\xe7\xf8\xdf\x9f\x1c\ +\xeb\xf7\x9d\xff\xeb\xeb\xb3\xb9\x79\x57\xf4\x87\xf5\xf5\xf7\x9c\ +\x55\x8f\xed\x99\x5d\xf4\x98\x31\x75\xfe\x36\xf5\xb3\x15\xfb\x8e\ +\xeb\x06\x8f\xd0\xa3\xeb\xc3\xd2\xf2\x5b\xf8\x9b\xb8\x45\xb1\xdf\ +\x8d\xdf\x95\xa8\x9e\x84\xc2\x7a\xe7\x3b\xf8\x3d\x5d\x73\x1e\x77\ +\x1d\x17\xdd\x72\xdd\x1d\xb7\xed\xeb\x74\x93\x25\x46\xbf\x1f\x5f\ +\xf8\xc6\xfb\xe9\x83\xbd\x58\x43\xf1\xcd\xcf\x20\xff\x45\xfd\x76\ +\xc7\x97\xd0\xc2\x0a\x15\xdf\x4e\x73\x7b\x0c\xfe\xd7\x5a\x9c\x3d\ +\xb6\xbd\xf3\xb1\xa7\x55\x9e\xbc\x1c\x97\x7a\xc7\xcd\x1c\x6f\xf9\ +\x8f\x7f\x3f\xff\xe9\x1b\xce\x91\x6d\x9d\x7b\xeb\x2f\x5b\xb1\x2e\ +\xef\x65\x6c\x96\x21\xcf\xe9\x5f\x2e\xc3\x23\xee\x7c\x46\x4d\x66\ +\xe0\x9f\xdf\x7f\xfe\x92\x5f\x03\x1e\x4c\xb2\xb2\x52\xa4\x61\xd8\ +\x71\x6f\x31\x92\xfb\x07\x12\x04\x73\x74\xe0\xc2\xc4\xd7\x9b\x83\ +\xae\xac\xef\x06\x98\x88\x47\x27\x16\xe3\x02\x1e\xc0\x6b\x2e\x24\ +\x97\xdd\x5b\xbc\x2f\xce\x61\xc8\x8a\x83\x3a\x4b\xf7\x21\xfa\x81\ +\x07\x5c\x4a\x7e\xb1\x48\x1f\x43\xc8\xf8\xa6\x7a\x3d\x9a\xb7\x14\ +\x67\x97\xfa\xe4\x79\xf9\xe1\x75\xc0\x0c\x4f\xa4\x90\xc9\xb0\x8a\ +\x87\x3a\xce\x8a\x31\x11\x3f\x25\x56\x62\xa8\xa7\x90\x62\x4a\x29\ +\xa7\x92\x6a\x6a\xa9\xe7\x90\x63\x4e\x39\xe7\x92\x05\x8a\xbd\x84\ +\x12\x9f\x92\x4a\x2e\xa5\xd4\xd2\x4a\xaf\xa1\xc6\x9a\x6a\xae\xa5\ +\xd6\xda\x6a\x6f\xbe\x05\x40\x33\xb5\xdc\x4a\xab\xad\xb5\xde\x79\ +\x66\xe7\xce\x9d\x77\x77\x2e\xe8\x7d\xf8\x11\x46\x1c\xe9\x19\x79\ +\x94\x51\x47\x1b\x7d\x12\x3e\x33\xce\x34\xf3\x2c\xb3\xce\x36\xfb\ +\xf2\x2b\x2c\xf0\x63\xe5\x55\x56\x5d\x6d\xf5\xed\x36\xa1\xb4\xe3\ +\x4e\x3b\xef\xb2\xeb\x6e\xbb\x1f\x42\xed\x84\xe7\xc4\x93\x4e\x3e\ +\xe5\xd4\xd3\x4e\xff\xe5\xb5\xcf\xad\xff\xf4\xfb\x3f\xf0\x9a\xfb\ +\xbc\xe6\xcd\x53\xba\xb0\xfc\xf2\x1a\xaf\x52\x31\xbe\x5b\x38\xc1\ +\x49\x92\xcf\x70\x98\x7f\xa2\xc3\xe3\x45\x2e\x20\xa0\xbd\x7c\xf6\ +\x56\x17\xa3\x97\xe7\xe4\xb3\xb7\x01\x7f\x21\x79\x16\x99\xe4\xb3\ +\xe5\xe4\x31\x3c\x18\xb7\xf3\xe9\xb8\x1f\xdf\x3d\xfe\x7a\x54\x9e\ +\xfb\x5f\xf9\xed\x29\xf1\x2f\x7e\xf3\xff\x53\xcf\x3d\x72\xdd\x7f\ +\xe8\xb9\x7f\xf6\xdb\xdf\x79\x6d\xa9\x0c\x4d\xf3\xd8\xcd\x42\x19\ +\xf5\x0d\x64\x1f\x3f\xdf\xb5\xfb\xda\x55\xec\xee\xd7\xcd\x4b\x6e\ +\xe3\xa7\x7a\xa8\x22\xa5\x00\x2e\xe9\x70\xe9\x72\xdc\x75\xef\x96\ +\x4e\xd8\xa5\xa6\x91\x72\x25\xe4\x0f\x46\x65\x1b\x06\x54\x01\xa4\ +\xda\x67\xcd\xc1\xcd\x53\xdd\xc9\x81\x9d\xc1\xc7\x82\x8d\xd2\x6e\ +\x41\x37\xc1\xf3\x27\x7a\x7d\xd7\x4e\x5c\xb1\x1c\xae\xef\x45\xff\ +\x77\x25\xbe\x6e\xb2\xd5\xc4\x7f\xf1\x4f\x5e\xe3\xec\x31\xf5\xb6\ +\x18\x0a\x31\x9a\xc7\xf2\xe7\x49\x71\xb9\xcd\xa6\x7d\x4a\xb3\xef\ +\x41\x39\x0b\x93\x74\x1f\x80\xa5\x5f\x98\xf8\xbc\x2d\x15\xbf\xdf\ +\x86\xcb\x89\xa7\x19\x5c\x2d\x6e\x9d\x95\x3b\xb0\x3e\x7d\x8f\xab\ +\x70\xdf\xb2\xb1\xd1\x3a\x67\x9c\xe6\xef\xd3\x81\x69\x77\x78\x07\ +\xcf\x4a\x67\xf7\x59\xf4\x8e\x82\x11\x57\xd7\xcf\xe7\x09\x6d\x1c\ +\xef\xce\x26\x1e\x4e\x62\xdb\x51\xd1\xb0\x86\x7f\xc6\x60\xc9\x40\ +\x4b\x79\xc3\x26\x52\x58\xed\xe6\x46\x44\x23\x51\xb4\xc3\xe1\x79\ +\x65\xbb\x33\x71\x71\xc0\xb0\xa1\xac\xc0\xae\x31\x20\x8f\x5f\xc7\ +\x12\x42\xe1\xb5\xd6\xa3\xcc\x58\x44\xc6\xe8\x85\x80\x3c\x65\x34\ +\x57\x77\xad\x43\x0e\x39\xb0\x13\xd6\xb2\x6d\x2d\xa5\xeb\x4e\x67\ +\xee\xe1\xfd\xf0\x58\x63\x96\xd3\x53\x1c\xe2\x03\x6b\xac\x67\x57\ +\xf0\x6c\x25\x90\x0f\xe7\xed\xde\x65\xf9\x46\xf4\xf1\xc4\x30\xf3\ +\x66\xff\x07\x2f\x9e\xed\x7b\x7d\x43\x77\x61\xe5\xe6\xc7\xdb\x30\ +\x7d\x23\xc3\xde\x59\x2b\xe1\xb4\x42\x7b\x92\x39\xde\x29\x08\xa6\ +\x57\x92\xe8\x06\x9d\x4d\xdd\x1b\x88\x3e\xac\xd1\x93\x5b\x79\xbc\ +\xba\x92\x0c\x6b\xc3\x99\x77\x77\x2a\x7c\x53\xa6\x59\xef\xa9\x2b\ +\xe0\x22\xdd\xde\x11\xc9\xf7\xf6\x35\xfd\xdc\xe2\x74\x8c\x64\x41\ +\x51\x4f\x8c\x87\xdd\xb4\x55\x78\xf9\x9f\x57\xfd\xdc\x65\xf7\x93\ +\x06\xb1\xcd\x1b\x22\xe9\x83\xd3\x94\x34\xcb\xc7\x5c\xba\xf7\x0a\ +\xf8\xb1\xf0\x00\xa6\x18\xba\x86\xab\xed\x9e\x29\x6d\xc2\xa8\x2f\ +\x82\xe7\x7d\x72\x4b\x3e\x2d\xef\xab\xde\x49\x72\x1d\xd2\x9c\xb4\ +\xe1\xf2\xd2\x47\xfa\xd7\x9e\x7a\x85\x3d\x79\x28\x44\x14\x54\xf9\ +\xe9\xbb\x8c\x38\x6f\x3c\xac\x34\xa0\x59\xf0\x5c\x02\xbd\xf8\xb0\ +\xb3\xc2\x81\x5c\x4a\x25\x1c\xa2\x60\xe9\x76\x6d\xae\xd3\xde\x6b\ +\x57\xe5\x5f\xda\x63\xf4\x53\xd3\x83\xb9\xa8\x3b\x6b\x5a\xae\x95\ +\x9b\x2e\x1b\x8c\x61\x51\xb2\x4c\x8a\xad\x93\xd1\x3c\x75\x37\xdb\ +\x56\x39\xde\xd6\xbb\xbd\xef\x07\x68\xe9\x61\x91\x3d\x01\xf0\x6f\ +\x79\xe5\x92\x5a\xa9\x9d\xd8\x6b\xed\x5d\xbd\xf7\xd5\x20\x12\xdb\ +\x4d\xc8\x81\x08\x82\x23\x33\xdf\x4a\x2a\x74\xed\xa8\x57\xa8\x39\ +\x46\xfa\x32\xd3\xed\x92\x58\x0d\x25\x7b\x64\x0c\xde\x49\x6d\xad\ +\xd1\x56\xd1\x4f\x77\x5a\x85\x72\xde\x56\xb1\x97\x7d\xad\x5c\x40\ +\xd0\xba\xb8\xfb\x7a\xf3\x68\xdb\xc7\x81\x17\xf2\x6a\x1e\xe6\x5f\ +\x33\xdf\x80\x18\x49\x65\x63\xb2\xe0\x36\x49\xd1\xbd\x21\xd8\xc1\ +\xfd\x09\x40\x7f\xf3\x95\xc0\x7f\x81\x90\x87\x48\xed\xa3\xd4\x91\ +\x01\xc5\xcc\xc2\x78\xe4\xea\x00\x12\x00\x91\xb7\x1f\x6d\xc6\x3c\ +\x23\x1c\xaa\x82\x93\xaf\x45\x09\x96\x2d\x69\x3b\xb3\x14\x91\x82\ +\x07\xe2\x8c\xe3\xb1\x3c\x92\x37\x01\xf2\x29\x3b\x36\x97\xbc\x62\ +\x0c\x44\xd0\xcf\xc8\xe0\x8a\x63\x40\xd8\xb8\xfa\xca\x94\xbc\xd1\ +\xce\x70\x99\xe8\x3d\x99\x68\x23\xb1\x4e\xf0\x39\x3e\x63\xa7\x79\ +\x5e\x20\x78\x78\x82\xaf\x92\xe7\x78\x07\xc4\x14\x78\x4c\x85\xdd\ +\x0e\x95\xdb\x0a\x5e\xa8\x33\x98\x96\x00\xc5\xff\x65\x1a\xec\x24\ +\x41\xa0\x0f\x69\xa6\xc7\x52\xac\xf4\x75\xd1\x86\x44\xdf\xd1\xfc\ +\xdb\x5b\x26\x1c\x20\x2a\x2b\xa6\x39\x03\x65\xc6\x6d\x4a\x10\x88\ +\x8b\x6c\x71\xb1\x40\x06\x49\xbe\x12\x78\x40\xee\x83\x4a\x9b\xdc\ +\xcd\xa4\xd3\xca\x79\x75\x97\x01\x96\xb8\x03\x58\xc1\x0d\x16\x30\ +\x7b\xc6\x1c\xf0\x5a\xe2\xb6\xac\xe3\xc7\x06\x9f\xf3\xc9\xae\xc1\ +\x38\x4b\x0e\x5b\xa9\x33\xc3\x72\x60\x76\x25\x92\xb6\xab\x20\x6e\ +\x1c\xa4\x6b\x1e\x64\x3f\x9e\x8b\x85\x50\x04\x95\xb8\x25\x81\x5c\ +\x29\x02\x10\x53\xec\x66\x0f\xa6\x54\x9d\x5f\xd6\xe5\xc2\x74\x8d\ +\xdd\x47\xe0\x7a\xbc\xb7\xfc\xa6\x36\x03\x6c\x10\xaf\xed\x67\x19\ +\x77\xc3\xa9\xdc\x58\xee\x3d\xea\x96\x71\x70\xd7\x7f\xdc\x92\xe0\ +\xdb\x21\x3e\x2f\x5b\x87\xfd\x2f\xe1\xdd\xd0\x96\xce\x45\xa8\x9f\ +\xeb\x55\x55\x44\x2d\xab\x05\x2b\x50\xed\xe6\xd8\xce\xc1\xbf\x21\ +\xe2\xf0\x7a\x55\x16\x4a\xa4\x22\xfb\xcb\xe5\x06\x3f\x00\x16\xe4\ +\xf3\x4a\x05\x15\xc0\xed\x7b\x23\xd7\x6e\xde\x75\x12\x1d\xdf\xbf\ +\x33\xd7\xe3\xd6\x0c\x9e\x54\xda\x96\x3e\x61\x2e\xbc\x16\x41\x2f\ +\x6e\xf4\x0e\x43\x49\xfe\xa4\x8b\x4c\x78\x75\xac\x44\xb2\x10\x16\ +\xd8\x0a\xbe\x40\x0d\x99\x2e\x9f\xe1\x53\x9c\x64\xe8\xda\xb3\xb8\ +\x16\xea\x06\x0c\xf7\x03\x70\x98\x93\x58\x76\x27\x8b\xcd\x2a\x1e\ +\x78\x00\x89\x06\xcb\x93\x1b\x41\x8a\xb9\x7d\xb9\xc1\x10\x88\xf5\ +\x40\xd6\xbb\x2d\x82\xc0\x7b\x15\x0c\x27\xac\x27\x8c\x8a\x33\x93\ +\xfb\x97\xf1\xc4\xde\xc9\xa2\x8d\x06\xf5\xcb\x6c\xd5\x80\x33\x41\ +\x24\x1b\xee\x08\x73\x79\x02\x16\xf2\xa4\xf7\x1a\x54\x75\xb3\xd8\ +\xed\x1a\x71\x43\xac\x91\x93\x88\xa4\x91\x40\x26\x02\x8a\x7d\xab\ +\x1a\x04\xea\x03\x16\x47\xfe\xf8\x41\xf6\xb9\x0a\xd4\x11\x48\x58\ +\x5f\xba\x7f\x4c\x15\x5f\x20\xe2\xa5\xd8\xaf\xd7\xdf\xed\x65\x9f\ +\x3e\xa7\xab\xce\x4f\x56\x55\xe0\x12\x0d\x7c\x5e\x63\x0f\x36\x54\ +\x07\x65\x33\xf3\xef\x58\xb5\x8d\x87\xbc\x0f\xc1\x75\x2e\x05\x54\ +\x0e\xdc\x1b\xf4\x78\xf3\x3f\xd3\x17\xd2\x2d\x6d\x96\x49\xf2\x55\ +\x67\x71\xd5\x20\x3c\x7c\x03\x9f\x87\xa4\xe7\x87\x6c\xce\xa4\xa8\ +\x03\x18\xd7\xdc\x3d\xe4\x02\x2a\x00\x8f\x88\xe7\xb5\x49\xad\x9c\ +\xaa\x4a\x68\x4d\xbe\x50\x54\x85\xe1\xd4\xa3\xc1\xdb\x65\x45\xd2\ +\x20\x63\xa9\xb3\xe2\x79\xd8\x0b\xf0\x45\x24\x50\x34\x28\x03\x42\ +\xa9\x53\x2b\x8f\x18\x04\xce\x81\x45\x18\xee\x18\x48\x4d\xdc\x7d\ +\xa4\xbe\x85\x7c\x6f\xa9\x7e\xbe\x14\x75\x2e\x84\xd7\xec\x07\x8a\ +\x40\x75\xa0\xf2\x02\x64\x56\x00\xc4\xb9\xd0\x86\x62\x12\x33\x92\ +\x10\xa0\x54\xe8\x1b\xca\x05\x66\x0e\xd0\x6d\x24\x14\xca\xf1\xc2\ +\xf4\x75\xb6\xd2\x59\xeb\x0e\x68\x91\xd9\x29\xad\x70\xdb\xde\xd8\ +\xdf\x10\xc0\x8c\x0c\x95\xc4\x1f\x43\x59\x54\x97\xd0\x28\xdf\x32\ +\xed\x81\x35\xd0\x09\x2a\x08\xac\xbf\x7d\x03\x5b\xd4\x4d\xec\xb0\ +\x9e\x3c\x30\xf1\x8a\x98\x44\x2c\x66\x27\x6a\xd6\x86\x82\x24\x00\ +\x22\x55\x29\xce\x66\x01\xff\x41\x9c\x6e\x9a\xe4\x39\x8b\x7d\x34\ +\xa8\xf0\x2d\x81\xc5\x70\xc8\xdc\x67\x54\x99\xbf\x15\x9e\x47\xdf\ +\x5c\x6f\x2a\xb7\xec\xb8\x89\x53\x61\xbc\x71\x5e\x0a\xaa\x7e\x92\ +\x65\x03\x88\x80\xad\x8b\x04\x65\xbb\x14\xe9\x07\x8e\xad\xeb\x6e\ +\x21\x3a\xd7\x4e\xc5\x82\x34\x08\x5e\x45\x35\x30\x52\xe8\x2a\xd4\ +\x47\xce\x87\xc9\xdf\x3a\x4b\xed\x71\xe0\x0e\xf7\xda\x73\x87\xa7\ +\xf6\x54\x4b\x1e\x54\x6e\x0f\x8a\x52\x36\xe1\x0b\x50\xae\x84\x8b\ +\x41\x75\x6e\xd5\x12\xf9\x49\x98\x21\x42\x3a\x8c\xb7\xc2\x64\xa1\ +\x08\x90\x13\x52\x7d\x42\x87\xda\x6e\x94\x85\xf7\x51\x91\x47\x50\ +\x56\x0f\x4b\xe1\x16\x2c\xdf\x1b\x99\xaa\xc4\xf6\xda\xc4\x30\x6c\ +\x33\xc3\x41\xd9\x3c\x7a\x02\xce\x0f\x52\xa0\xc7\x53\x03\xaf\x75\ +\xff\x56\xde\x09\xc8\x42\x6b\x42\x05\x7d\xed\x01\xdc\x9e\x18\xd6\ +\x7e\xc4\xe1\x5b\x41\x53\xb8\x5c\x7c\x4c\x08\xd4\xc1\x63\x50\x2f\ +\xa3\xbe\x90\xbe\xa5\x14\xc1\xec\xae\xad\x9b\x46\xf0\x15\x83\x5a\ +\x8f\x9c\x3d\x75\xa1\x47\x78\xce\x84\x30\x2b\x0f\x59\x6f\x2f\xd5\ +\x6c\x4f\xe8\xa8\xa8\x17\x95\xb9\xd3\x72\x05\x12\x41\xa0\x6e\x9e\ +\xc3\x80\x49\x06\x7c\x04\x1a\xbf\x6c\xa8\x38\x3c\x4b\xc5\x33\x6c\ +\xaa\xca\x9a\x90\xcf\x09\xc1\x54\xba\x11\x04\x83\xea\xb3\x85\xd6\ +\xf7\x16\x85\x65\x91\xec\x19\x39\xd0\xba\x4a\xf6\x5e\x1d\x45\xf4\ +\x26\xa1\xa3\x58\xf0\x24\xcb\x60\x2b\x64\x3d\x7f\x33\xd7\x5a\xc5\ +\x45\xe1\x19\xda\x29\x20\x08\x3e\xd6\xdc\x55\x49\x51\xdb\x80\xf2\ +\x3a\xb6\x35\x37\xe5\x75\x44\xce\x3e\x00\x2b\x59\x91\x26\xd4\x71\ +\x82\x76\x0d\x18\x6b\x3c\x13\x2b\xc0\xb0\x28\x54\x03\xfb\xaa\x64\ +\x62\x20\x18\xfb\x3b\x2d\xdd\x0a\xfb\xa7\x40\x12\xd7\xbb\x9e\x2f\ +\x01\x28\xd4\xfb\x15\xcd\x71\x46\xc8\xde\x86\xaf\xa6\x2b\x90\xc4\ +\xe5\x33\x18\x8a\x1b\xc5\x71\x2e\x12\xb9\xb1\xe0\xdd\x95\x65\x35\ +\xb5\x34\xb6\x3a\x33\x2b\xd6\x4e\x54\x9c\x82\x01\xa8\xf5\x24\x25\ +\x4b\xe7\x86\x79\x1a\xcc\x51\xab\x61\x57\x41\x5c\x63\x0a\xdc\x1c\ +\xb1\x35\xd2\x84\x0d\xe1\xce\x40\x75\x99\x10\x76\xd4\xcc\xcc\x50\ +\x64\xad\x58\x9d\x8a\x0d\x4d\x8a\x25\x8b\xda\xc9\x36\x98\x73\x9d\ +\x4b\x62\x40\xcf\xf3\xa1\xa7\xff\x41\x4f\x23\x90\x97\xb1\xa1\x08\ +\x20\x24\xa8\x8e\xad\x6c\x47\x74\xa3\x2c\x54\xe8\x54\xfc\xa6\x27\ +\x46\x8b\x48\xe8\x32\x87\xc1\xef\x10\x38\xb7\x58\xaf\x4c\x49\x3e\ +\x56\x7d\x9d\xef\xcf\x5e\x07\xee\x86\xd0\x0d\xc8\x2a\x28\xc0\x5c\ +\x8b\x1b\xb7\xea\xc1\x08\x34\x76\x7f\x9d\x9f\x48\x5c\x20\x1f\x16\ +\xc1\xfe\xa8\xf3\x05\x7c\x79\xe5\x41\x32\x5c\x6c\xb1\xe3\x22\x43\ +\xc8\x1d\x6e\x55\x13\x44\x80\xd9\xaa\xb1\x07\x74\x12\x85\x9a\x16\ +\x31\x98\x8d\xb8\xc7\x20\x18\x87\xdb\x41\x52\x3a\xa6\x2b\x88\xb9\ +\x8c\x12\x40\x3b\xe0\xef\x07\xde\x43\xdd\x87\xe3\xbf\x85\x0b\x09\ +\x9c\x8e\x12\x21\x00\xba\xe8\xd4\xb8\x9c\xe3\x75\xd7\x42\x91\x1d\ +\x27\xd2\x71\x60\x43\xd8\x62\x8f\x91\x38\x2e\xaf\xf8\x90\x6c\xf4\ +\x4a\x50\xc1\x99\xf4\x7e\x16\x05\xa0\x2e\x11\x83\x74\x6d\x51\xe6\ +\x50\xfa\x80\xf2\xa3\xdd\x10\x29\xf6\xf5\x1f\x28\x19\xa4\x9b\x28\ +\x90\x0b\xc5\xc8\x7a\xa9\x0b\x8b\x70\x26\x5d\x89\x3a\xa7\x3f\xe2\ +\x36\x6a\x3a\x7a\xf5\x11\x91\xf3\x01\x27\xcf\x2c\x8a\xb2\x1d\xf8\ +\xea\x4d\x81\x42\x5e\x59\x06\x38\xff\x20\x69\x20\x17\xef\x7b\xb9\ +\x8e\x4a\x24\xc6\x63\xf7\xd8\x8e\x20\xe9\x6a\x22\x53\xc7\xd1\xfb\ +\x76\xc5\x5d\x4d\x70\x66\xce\x19\xf2\x6e\x19\xa7\xac\x77\xb8\x07\ +\xeb\x20\x3a\x3a\xf0\x44\x79\xf2\x06\xe5\x72\xcf\x4b\x51\x2d\x50\ +\x2d\x4a\x5a\x9c\x5d\x1c\x83\xb4\xf1\xd9\x2a\x27\xb7\x06\x3d\x93\ +\x1a\xd6\xf9\xa7\x84\x86\x27\x44\xe0\x3d\xea\xc7\xea\x43\xc2\xf9\ +\xea\x4c\x01\x23\xe7\xa3\xf6\xcb\xf2\xe2\xf1\xa2\xc1\x71\x08\xad\ +\x76\xaa\x6a\x29\x00\xaf\x68\xa8\xbb\x4c\x2d\x92\x57\x1e\xd6\x48\ +\xcc\xf7\x64\x26\x6b\x5e\xd4\xee\x2d\x82\x70\x72\x65\x98\xd4\x19\ +\x92\x45\x42\xf4\x66\x8a\x2a\x98\x45\x5f\x56\x09\x39\x48\x2a\xfd\ +\x08\x09\x24\x44\xf5\xce\xab\x3b\x0a\x71\xa9\xaa\xca\xc0\xe3\xec\ +\x92\x25\xec\x1d\x32\xbd\xae\xa7\x7c\x15\x82\x6c\x15\x98\x08\x1d\ +\xc6\x69\xe9\x0f\x0f\x3f\xbf\xb9\xb8\xe0\x37\x4f\xf0\x01\x26\x23\ +\x56\x72\xa5\x6e\x8a\x9c\x97\xf6\x43\x65\x21\xe3\xd3\xce\x2b\x2d\ +\x12\xa3\x7c\x81\xa0\xdb\x7f\x58\xf1\xe8\xee\xb5\x53\x1d\x60\x1a\ +\x7e\x29\x5f\x78\xc8\x5a\x14\x82\x99\x03\x75\x0a\xf8\xab\x8b\x1a\ +\x49\xc5\x08\x94\xe2\x44\x3a\xf7\xb9\x7f\x69\xb9\xeb\x6d\x9e\xf3\ +\xf4\xf4\xc9\xb9\xf0\x4b\xce\xed\x7a\x19\x92\xfb\xc7\x13\x5f\x38\ +\xdb\x90\x15\xe1\x69\xa9\xae\x24\x8c\xc7\x03\x90\xa6\x80\x2a\x21\ +\xe8\xce\x93\x29\x5e\x19\xb2\x89\xf7\x11\x03\x38\x06\x32\xe7\x5f\ +\xa2\x04\x17\xd7\x28\x3d\x0c\x83\x57\xc9\xc8\x60\x9a\x3d\x00\x38\ +\xb7\x0e\x0f\x10\x2e\x61\x2d\xee\xe4\x64\x23\xcb\xe1\x64\x39\x1c\ +\x15\x86\x3b\x62\x77\x3d\x7c\x23\x89\x66\xbf\x1e\xdb\x61\x26\xa3\ +\xa7\x55\xd7\x5b\x9b\x29\xc1\xfc\x60\xe6\xfc\x00\x9a\x36\x03\x24\ +\xa2\xa3\x55\xf6\x1e\xde\xa1\xb4\xd4\x20\xa1\xdc\x82\xa1\xe2\x4c\ +\x9e\xf4\xc4\x89\xf2\x95\x0f\x32\xe0\xb1\x1e\xd5\x51\x17\xa6\x9b\ +\x56\xc6\xe3\x43\xd2\x6c\x97\x27\x48\x82\xab\x74\x64\xe8\xed\x22\ +\x0e\x32\x28\x9d\x28\x5d\x9b\xab\x5c\xa6\x72\x64\xe5\x27\x1e\xe2\ +\x09\xe8\x1a\x95\xe0\xa1\x7a\xa7\xa5\xbd\xb7\x81\x55\x2f\x42\xf2\ +\x6c\x3c\xc5\x5f\x84\x0a\x8c\xa3\x95\x70\x0b\x5f\x94\xac\x57\x2b\ +\x85\x68\x22\x32\x61\x16\x14\x0b\xb9\x29\xa7\x0b\xbc\x2a\x6f\x21\ +\x5c\x2d\xe7\x9f\xad\xc6\x84\xdb\x00\xe5\x3e\xc6\xcf\x09\x44\x6e\ +\x01\xb5\x4c\x1d\x28\x07\x04\x7c\x6c\xec\x8f\x6a\x4b\x7c\xa9\x25\ +\x84\x0e\xf7\x5f\xca\xfd\xf6\xf5\xf9\xf3\x85\x7f\xf3\xd5\xc7\xae\ +\x86\xe1\xad\xb2\x57\x91\x0f\xc8\x59\xc3\xe6\xc8\x2c\x5e\x22\x01\ +\x8b\x63\x05\x08\x6f\x6b\xc1\x47\xa5\x89\xea\x7f\x25\x96\x29\xf2\ +\x22\xdc\x0d\xbe\x22\xa5\x2b\xb0\x14\xb2\x88\x86\xed\x29\x09\x04\ +\xc3\xa5\xf4\x96\x47\xe5\x06\x4e\x84\x4e\xee\xe9\x03\xd6\x86\x54\ +\x2d\xd3\xe4\x18\x72\x51\x0c\xc0\x74\x22\xa9\xe7\xdb\xf5\x1f\xa8\ +\x35\xdf\x4f\x3a\x13\x0c\x00\x0d\xd4\xaf\x12\x3a\xb8\x2a\x0c\x11\ +\xea\xbd\xb3\x47\x04\x53\x89\x72\x24\x95\x0b\xc1\x49\x34\x12\x93\ +\xc3\x54\x24\x35\x20\x58\x7f\xc4\x6e\x52\x6e\x69\x30\x8a\x01\xf8\ +\x47\x5d\xa2\x82\x72\xba\x2a\x49\x03\x10\x93\x3a\x2f\x70\x07\x05\ +\x9a\x74\x43\x24\x4f\x87\xb7\xc2\x08\x08\x2a\xce\xd8\x30\xf4\x62\ +\x2f\xdf\xa8\xd8\x5a\xad\x7f\x80\x35\x92\xfd\x02\xad\x31\x0b\x55\ +\x4e\x03\x5a\x4c\xc8\xa5\xce\x6a\x2a\x95\x0c\x9c\x9b\x08\xb1\xf8\ +\x8e\xd1\xe0\x5a\x6f\x7e\x49\x4b\x92\x31\xab\xdd\x85\xca\x3e\x25\ +\x19\xa4\xa9\x23\x2c\xf6\x04\x49\xe7\xdd\x37\xab\x9a\x6a\xaf\xca\ +\xa9\x2c\x47\xd6\x8e\x98\xc0\x17\xf0\x3e\x4a\x56\x50\xf4\xd5\x16\ +\x1b\xb0\x26\xd6\xfc\x40\x50\x40\x20\xe0\x83\x9d\x52\xac\xb2\x38\ +\x57\x76\xff\x88\xd8\x5f\x01\xdb\xd5\xd7\xf1\x1b\xe9\x48\x31\x80\ +\x74\x42\x62\x45\xa2\xf6\x40\xb8\xaf\x19\x9f\x93\x03\x15\x69\x83\ +\xd1\x42\xf8\xa8\x1a\x57\xd5\x16\x24\x7a\x8b\x4f\x15\x06\x08\x50\ +\xfc\x37\x42\xed\xf9\xf7\x17\xc0\x0e\x12\x2a\x44\x8d\x65\x20\x8d\ +\xc2\x8a\x9c\xdd\x56\x70\x31\x2d\x55\xd0\x05\xe9\x18\xb9\xc4\xa0\ +\xf6\x56\xb5\xa5\x7a\x5c\xda\x30\x08\x82\x9f\x51\xb8\xd8\x86\x04\ +\x7a\xcb\xa9\x51\xce\xe7\x5e\x75\xb6\x25\xce\x63\x5c\x1e\xf5\xb4\ +\x44\x4b\xb3\x28\xeb\x93\x09\x3f\x8a\x1a\xb8\x72\x70\xef\x44\x6d\ +\xe6\xbd\xf8\x0a\x6b\xa6\x12\x90\x81\x70\x1e\xac\x9d\xab\x50\x44\ +\xbc\xd9\x12\x84\xe2\x5e\xad\xbb\xb5\x51\x5b\xe2\x25\x2f\x2a\x1b\ +\xb0\x43\x5e\x4b\x19\xc2\x67\x96\xb7\x3e\x23\xa0\x8f\x08\x6f\x21\ +\x42\xf3\x47\xd8\x50\xdd\xde\x6a\x89\x0e\x34\x27\xc8\xfa\x5f\xc3\ +\x82\xd5\x21\xfc\xf6\x1a\xa6\x3f\xd8\xb1\xc1\x07\x82\x5c\xf1\x02\ +\x12\x82\xdf\xad\x44\x5f\xa9\x93\xc3\x17\x82\x8f\x8c\x25\xad\x58\ +\xa2\x78\x60\x20\x5f\xad\x01\x04\x44\x5a\x67\x34\x9d\xd7\x6e\xf0\ +\x95\x2b\x07\xc0\xb2\xcd\x00\x49\x0c\x68\x3a\xa7\xb7\x25\x72\x09\ +\xb0\xa9\x54\x11\xe9\x13\x12\xb9\xa8\x65\xb1\x6f\xb6\x35\x97\xc4\ +\x96\x9e\xfd\x2a\x39\x08\x1c\x75\x95\x50\x53\x2a\x0c\xa3\xc1\x7f\ +\x50\xb6\x75\x6e\x7c\x04\x4f\x83\x8b\x47\x74\x3a\xb1\xab\x18\x81\ +\x11\x53\xe4\xd5\xd8\xe7\x3d\x1f\x09\x48\xcf\xcf\x37\xff\xe9\x57\ +\x5f\xd1\x3b\x08\x17\xc5\xb1\x54\xf2\xa3\xa6\x36\x0a\xc8\xc3\x75\ +\x47\xf7\x6c\x03\x52\x8b\x60\x82\xfe\x44\x1c\x7a\x7b\x1d\x11\x94\ +\x39\xda\x6b\xd1\x5e\x7b\xce\x5a\xed\x6a\xed\xee\xd5\xd9\x5e\x1f\ +\x6d\x36\xdc\x6e\x04\x9b\x3d\xe5\x62\x17\x11\x89\xb2\x03\x45\xd4\ +\x7e\xe9\xa1\x00\x8f\x5b\xfd\xdc\xe8\x11\x44\x6b\xa8\x33\x09\xe7\ +\x31\xdb\x73\x19\x65\x26\x3f\x6b\x58\x07\xc8\x08\x54\xa5\xf4\x6d\ +\x37\xa6\x1b\x3f\x24\xaf\x88\x3a\xdc\x3e\xb6\x05\x87\x4b\x02\x13\ +\x14\x3a\x22\x8a\xd0\x67\x27\x9d\xcb\xa4\xa3\x9f\xaa\x3a\x31\xc0\ +\x20\xaa\x24\x45\x48\x18\xd8\xde\x1c\xbf\x9e\x5e\xb5\xf0\xb2\x3e\ +\x9a\xf1\xa1\x40\x18\x49\x88\xeb\x58\x17\x81\xfc\x8e\xd5\xd4\x47\ +\x04\xb9\x45\x8f\x4d\x07\xc1\xef\x83\x1a\x36\x57\xbf\x4d\x14\xa2\ +\xa1\xa9\x02\x23\x28\x30\x16\x96\x11\x02\xb8\x86\x8d\x14\x48\x67\ +\xd4\xdc\x85\x8e\x10\xa5\xea\xe2\x93\x34\x74\x20\x5f\xfc\x2f\xbf\ +\x3e\x36\x13\x10\xd0\xfe\xf1\x95\x86\x6a\xbd\x6e\xb0\x95\xc7\xa9\ +\x57\xab\xb6\x19\xc9\xd0\xb4\x87\xfd\x6a\x0f\x5f\x7a\x8b\x6b\x8f\ +\x81\xba\x46\x4c\x2e\xa2\x73\xec\xc7\xaf\xeb\xb1\x6c\x44\xf7\x77\ +\x8f\x59\x56\x92\xd0\x3a\x7e\x75\x9b\x32\x50\x4d\xe2\x4d\x0a\xbd\ +\xa5\x1c\x2a\x5d\x2d\xd7\x9a\x54\xbd\xdd\xa3\x23\x1a\x74\x74\xb8\ +\x2d\xdc\xbe\xf2\x92\x8c\xfe\xb1\xbb\x6a\x93\x59\xfe\x97\xdd\xd3\ +\x68\x12\x64\x30\x99\xa0\x03\x85\xae\x16\x03\x5e\xdf\xc8\xf5\x9b\ +\x88\x6a\xce\x93\x42\x3a\xe7\xf2\x3f\x6b\x9c\x3a\xf4\x2f\x77\x8d\ +\xd4\xfd\x86\x7c\xd0\xc9\x88\xfb\x71\x9c\xef\xb6\xe9\x06\xd8\x92\ +\x6b\xe1\xdb\xb5\x4a\x80\xdd\xd4\x75\xdc\x11\xe1\x5c\x73\x54\xf3\ +\x91\x10\xf3\xbf\x34\xf8\xf3\xdf\xf6\x8c\xbb\xcc\x3c\x76\x52\x63\ +\x8b\x8a\xa9\xdb\x97\x0a\x21\x01\x2c\xa8\x13\x81\x2f\x5c\xbe\x75\ +\x6d\xb8\x2b\x11\xde\xdf\x7c\x23\x01\xe9\xe5\x3c\xdf\x2d\x00\x37\ +\xbc\xde\x9c\xf7\xcb\x75\xeb\x55\x95\x7c\x74\x6e\xd2\xcb\x67\xfa\ +\x7f\x58\xfe\xb3\x7b\x86\x90\xc6\x55\xa1\xaf\x29\xf6\xa8\xf6\x0f\ +\x09\x6d\x0f\x43\x94\x8d\x32\x9c\x9d\xed\xc2\x72\xa9\x6b\xba\xc3\ +\xab\x92\x0d\xe0\x7e\x2b\x21\x0d\xac\x8d\x9e\xbe\xa6\x6f\x50\x6b\ +\x11\x1e\x4e\x81\xd6\x01\x89\x78\x34\x1e\xce\x68\x60\x77\x46\x54\ +\xe4\xa1\x20\x49\x33\x35\x03\x4a\xf8\x01\xbd\x0f\x07\xf4\x80\xbf\ +\x78\x6c\x95\xee\x29\xa0\x7e\xa3\x6c\xce\x0c\x2b\xa3\x9c\xa4\x8b\ +\x91\xa5\x01\x90\x7d\xc6\x56\xc3\x10\xa5\x09\xe9\x83\x08\xf7\xa5\ +\x2b\x9b\xdf\x04\x21\xdc\xb2\x17\x30\xa7\x2a\x1c\xd9\xbe\xf6\x31\ +\x43\x4c\x2c\xcc\x30\xed\x2f\x68\xf7\xfc\x8f\xe0\x51\x0d\x4a\x9d\ +\x94\xa9\x92\x46\x75\x89\xb0\x91\x4b\xad\x15\xf8\x14\xf0\x57\xfc\ +\xae\x55\xab\xad\x13\x16\x6c\x6c\xa0\x27\x43\xbd\xdf\x31\xef\x07\ +\xf1\x6c\xa7\x84\x74\x56\x17\x29\x2c\xf8\x11\xe2\x89\xb2\x38\x6c\ +\xfe\xe7\x8c\x0d\x81\xdb\x22\xd9\xb0\xe5\xf7\x0b\x0b\xb7\x8d\xd0\ +\xd7\xcf\x9b\x25\xa6\xd4\x0a\x02\x55\x76\x07\x43\xbb\xda\x6b\x0f\ +\x61\x44\xed\x30\xb5\x3e\x60\x44\x0b\xfc\xaa\xb7\x87\xbc\x15\x54\ +\x50\xfe\x2c\x9c\x2d\x0b\x31\x45\xd8\x9f\x8d\x06\x6b\x11\x0d\xe5\ +\xac\x9f\xd5\x59\xbb\x4b\xc1\x17\x0a\x64\x34\xaa\xaa\x7c\x63\x87\ +\xea\xd3\xd4\xa5\xf6\xe9\x7b\x8f\x0a\x09\x0a\xff\x41\xed\xed\x4f\ +\x15\x21\x65\x31\x7f\x06\x35\x4e\xdc\xb6\xc3\xd6\x87\xf8\xab\x03\ +\x15\x65\x04\x80\x32\x49\x05\x15\x01\x28\x59\x8d\x08\x11\x00\xb2\ +\x14\x39\x03\x62\xc6\x99\xbf\x83\xbf\xa2\xbe\x99\x4e\xc9\x49\xcb\ +\x29\x0f\xf8\x0c\x87\xcc\x53\x5c\x14\xce\xe9\x3a\xdc\x0c\xda\x06\ +\x8c\x52\x25\xdc\x05\x11\x57\xb3\x34\xc7\x17\x51\xaf\x5a\x5e\x1a\ +\x50\x43\xb2\xbd\x30\x4c\x9d\x47\xc7\x16\x54\x93\x1e\x41\x8a\xfa\ +\xa4\xf9\xbf\x3e\xb7\xfa\xb7\x5f\x1f\x8f\xae\x46\xb6\x4f\xf4\xb9\ +\x4e\x6f\x11\xb1\xc1\x1c\x0f\x92\x2d\xe2\x70\x4a\xca\x6b\x1b\xf9\ +\x74\xed\x13\x1d\xcc\x12\xd3\x44\x51\x2d\x49\x60\xa8\x09\xa9\x0b\ +\x53\x7e\xe2\x95\xbf\xe1\x5d\x6a\x22\x7f\x84\xc2\x86\xd0\x48\xd9\ +\x0e\x5e\xa8\xc2\x10\x31\xfe\xbd\x27\x3e\x8b\x9a\x03\x25\x0a\x35\ +\x8b\xd3\x50\x7c\xa8\xb6\x60\xf7\x78\x86\xa9\xe4\xdb\x60\x7d\xd5\ +\xf7\x53\x1f\x1a\x9b\x1e\xeb\xe0\x0c\x5c\xb2\x7a\xc4\x35\x55\xef\ +\x8d\xca\xd2\x14\xdc\xee\xe1\x57\xb0\x7c\x61\xf1\x28\x2e\x7c\x98\ +\x4e\x87\x9a\xb8\x4e\x07\x6b\xfb\x56\x5a\x88\x35\xa2\x59\x51\xa4\ +\x96\x46\xb3\xda\x78\x05\x63\x8e\x97\xc7\x67\xe8\xb0\xf1\x78\x9c\ +\xf3\xa0\x11\x24\x18\xfb\x20\xf4\xff\x5e\x78\x12\xe5\x35\x4b\x40\ +\x94\x6c\x02\xa2\xc7\x2b\x20\x6e\xb7\x44\xed\x9a\x93\x66\xa3\xf6\ +\x47\x38\x23\x76\x8b\x15\x81\x52\xe1\xf4\x98\xe0\x50\x73\x50\x6d\ +\xd0\x6f\x72\x0c\x82\x24\x7d\xa7\x2e\x3f\x04\x76\xdc\x58\x14\x42\ +\x3a\x5b\xad\x75\x4f\x63\x7b\xbe\x83\x6e\x89\xca\x26\x5a\x19\xd4\ +\xd8\x1f\x55\x62\x03\x61\x80\x45\x44\xe1\x15\xcf\x18\x55\x9d\x53\ +\x72\xf8\xb5\xde\xfe\x94\xc0\x34\xba\xb7\x14\xff\x4f\x17\x2d\xce\ +\x33\x81\xce\xb8\xd5\x35\x8d\xbc\x38\xd5\x28\x32\x02\x4d\x84\x9a\ +\x4b\x69\x49\xaf\x07\x78\x94\x98\x1f\xf7\xd0\xd4\x83\xb8\xcb\xef\ +\xa1\xf4\xfc\x0f\x62\x8f\x64\xd0\xb9\x34\x22\x27\x52\x6b\x87\x83\ +\xee\x6a\x8c\xd1\xf3\x74\x1b\x70\xe0\xcf\x77\x8c\x58\x6e\x77\x62\ +\xaa\x3f\x41\x4c\x81\xe7\xb9\xab\xc1\x38\xbf\x53\x2e\x25\xe9\x95\ +\x96\xd6\x93\xb0\x16\xff\x23\x85\xb9\x23\x57\x54\xb2\x0d\x6b\x58\ +\xb3\x8d\x00\xbb\xaa\xf2\x0b\xd6\xf4\x47\xb0\xba\x5c\x62\x68\x44\ +\x1c\x28\x89\x79\x63\xab\xd0\x63\xe9\x96\xd5\xc8\x14\xf0\x00\x42\ +\x7c\xcf\xfc\xb7\x8e\x33\x40\xed\x11\xaf\xdc\xba\x87\xe5\x68\x28\ +\x71\xa8\x51\xef\x31\x93\x7c\x98\xdb\x67\xf0\xe7\x55\x25\x0f\xe2\ +\x30\xc9\x44\x23\xc1\x66\xcd\x89\x5a\xeb\xb2\xe6\x04\x5c\x3d\x7b\ +\x13\x8d\xea\x49\xef\x39\x8d\xc9\xc4\xf0\x87\xf2\x7c\xae\xf4\x14\ +\xf1\xa6\xf8\x0e\x68\x79\x34\x01\x9c\x94\x7a\xc4\xc8\xb8\xa0\x56\ +\x10\x04\x5a\xa3\x46\x13\xc6\x6d\x78\x5a\x9f\x65\x7e\xc7\x9c\x7e\ +\x3c\x88\xa7\x42\x09\xfa\xda\x38\xa7\x6b\x9c\x63\x39\xf5\xd8\x42\ +\xcc\x19\xdf\x67\xd6\x60\x5d\x1c\xd2\x54\x7f\xad\x8b\x83\xc2\x52\ +\x73\x83\x02\xa2\xac\xc5\x75\xe4\x5a\xf4\x56\x49\x2f\x74\x45\xf5\ +\xbb\xf5\xe8\xbc\xec\x3c\xf3\x36\x79\xac\xdb\x3a\x6e\xcf\xbb\x0e\ +\xeb\xb6\x26\x3b\x4a\x2a\x11\x6a\xa9\x6e\x6b\xc9\x68\x5a\xd7\x56\ +\x1d\xe1\x90\x61\xb9\x41\x03\xbc\x98\x15\x17\x5a\xbf\xa6\xb1\x43\ +\x53\x51\xbf\x3f\xcc\x13\x41\x70\xeb\x1e\x41\x60\x38\xc5\x40\xd6\ +\x79\xff\x94\xd7\x47\x9e\x0d\x1f\xab\x16\x25\xa5\xaa\xf1\x7e\xfb\ +\x5b\x3c\x5e\x63\x2c\xa8\xb4\x51\x6e\x03\xa3\xe9\xb8\x40\x95\xb9\ +\x5b\xbe\x7d\x1d\x50\x75\x26\x9e\x96\x3f\xe2\x60\x6d\xd0\xed\x64\ +\xb2\x0c\x70\x4c\x0f\x82\x08\xc2\x67\xf3\xf7\x8f\x6b\xd5\x51\x5a\ +\xf1\xbe\x57\xc7\x20\xb2\x54\xdf\xfa\xc5\x00\x02\xf2\x7c\xe7\x46\ +\xed\xd8\x59\x24\x60\xc4\x23\xaa\x3a\xab\x5b\x4a\x09\x9b\xf6\x7b\ +\xf4\x84\x72\x3d\x86\xa2\x5a\x3c\x79\xf8\x2e\x58\xf9\x0a\x2d\x42\ +\x87\xd1\xe3\x4f\x3b\xcd\xce\xc8\x74\x00\x57\x9a\x0e\x32\x78\x4c\ +\xb2\x12\x31\xad\x2b\x4a\x31\x9d\x1a\x0b\xfc\x14\x33\xb5\xdd\x48\ +\x80\xba\xad\x96\x7e\x01\x1c\xaf\x62\x6c\x10\x28\x98\x46\x44\xa3\ +\xe8\xfc\x6a\x1f\xef\xd4\xbe\xe1\x16\xc9\xfa\xa5\xd6\xf0\x73\xb0\ +\x59\xc8\x27\xa4\x26\x56\xeb\x25\x29\xfd\xfe\xba\xc4\xc7\x94\xf7\ +\x4f\x13\xf4\x2f\x2d\xd0\xab\x2a\x6d\x96\x65\xdf\xa6\x33\x96\x57\ +\xd3\xb9\xde\x31\x1a\x1d\xc9\xd7\x6b\xcf\x84\xfb\x2b\x42\x3c\x6b\ +\xde\xd4\x7a\xc5\xaf\x46\xd5\x26\xfe\xa9\xc2\x1b\x54\x5a\x00\xc9\ +\xfa\x77\xde\xe0\xae\x61\x15\x0c\xaf\x92\xf8\x22\x3b\x59\xa0\x4c\ +\x7c\xfe\xa5\x93\x47\x47\x4a\x23\xbf\xdb\x6d\xca\x6b\x14\x97\xb7\ +\xb3\x27\xea\xc4\x3e\xee\x48\xe9\x50\x9d\x35\x44\x5a\xd3\x7e\x9f\ +\xdb\x03\x31\x56\xaf\xe3\xba\x8e\x8a\xdd\x62\x1b\x89\x0a\x76\xa8\ +\x2a\xe4\xc2\x4e\x83\xf2\x4f\x2d\x9f\x3a\xf2\x59\x13\xb6\x00\xa6\ +\x54\xb7\x52\x2d\xc5\xfa\xad\x70\xd9\xc7\xfa\x78\x36\xb4\xc2\xce\ +\xcb\x16\x7f\xdf\xde\x82\x3a\x9f\x3a\xca\x4d\xe0\x7e\x79\xc9\x3d\ +\x37\x2e\x1e\x72\x90\x10\x09\xdc\xc4\x7a\x84\x33\xb2\x6f\x2a\x2d\ +\x20\x85\x2f\xb7\x68\x53\x46\xa6\x43\x43\x71\x22\xca\xac\xbc\x71\ +\x38\x99\x3f\x43\xe1\x42\xdd\x6a\x4a\xb4\x75\x4b\x50\x0f\xe9\x8a\ +\x21\x6a\xa9\x00\xfd\x6c\x35\x34\x7f\xc6\xce\x40\x33\x9c\x7c\xbe\ +\xc1\x37\x0d\x95\x69\x0c\x25\x59\x27\x54\x83\x6f\xea\x84\x8a\x78\ +\xdb\xba\x3e\xc9\xe3\x0d\x91\x10\x50\x8f\x0e\xb4\x35\x76\x33\x92\ +\x8e\x6f\x79\xb3\x46\x43\x50\x52\x6a\x48\x7a\xd8\xd6\x4e\xde\x6f\ +\x52\x83\x72\xdf\xd4\x1b\x75\xe1\x6b\x07\x1e\xe5\xb9\x48\x3a\x98\ +\x12\x8a\x5a\x1a\x9a\xb2\x80\x8d\x93\x86\x19\x0d\xc6\x4a\xd9\xf9\ +\xcf\x31\x98\xd7\x79\xfc\x8a\xe1\x1e\x83\xe9\x36\xb3\xdd\x63\x30\ +\x50\x19\x59\x12\x96\x7a\xda\xe0\x3c\x2a\x3b\x0b\x26\x5c\x51\x23\ +\xe8\x37\x98\x10\x02\x08\xb5\x59\x79\x56\x1b\x4e\x74\x7f\x1e\xd0\ +\x9d\xcc\x54\x61\x08\x0d\x47\x34\x8a\x66\x8b\x75\x34\xa2\xfe\x09\ +\xef\x4e\xaa\xce\xfd\xc5\x95\x2a\x48\x54\xda\xcb\x1e\xd1\x8e\x42\ +\x65\xeb\xe2\xeb\x44\x24\x71\x33\x3d\x54\xf5\x0b\x14\xe6\x21\x3a\ +\x5a\x74\x12\x3d\x65\xc6\xc7\x46\x30\xec\x14\x32\xc7\x3b\x13\x36\ +\x87\xe7\x9a\x6c\x3d\xa6\xad\xb3\x70\xee\x7b\x8f\xc4\x9a\xa6\x44\ +\xc8\x25\xe2\xd5\xe4\x02\xe1\xbe\xa4\xb7\xa7\x8e\x57\xad\xd0\x1f\ +\xe4\xe5\x09\x1f\xb2\xb4\xf2\x73\x9a\xad\x63\xe7\x9a\x25\x2a\xef\ +\x69\xb6\xf3\xfb\xb7\xd3\xec\xef\x94\xdd\x4f\x8d\x70\x96\xc7\x44\ +\x68\x9f\xeb\x4e\x5c\x15\x08\xc0\xb5\xd4\xdb\x82\x3a\xe9\x42\x6d\ +\x9b\x56\x79\xad\x2d\x30\x80\xe8\x02\x45\x44\x5c\x0e\x42\x2b\x35\ +\xea\xc3\xdc\xab\x89\xd6\xc8\x38\x77\x68\x47\x0a\x4e\xe7\xd2\x14\ +\x92\xac\xae\xa5\x66\x76\x10\x16\x77\x64\x07\x32\xd5\x53\x86\xb4\ +\xe9\x23\x07\x05\xed\x93\x28\x7d\x1d\xd2\x1b\x89\x2b\x48\xc8\x63\ +\xcc\x53\xe3\x66\x70\xb0\x56\x10\xed\x1a\x7d\x65\x7d\x75\x9a\x1a\ +\x5a\xf7\x58\x9a\x92\x64\xf3\x30\xd6\x15\x1d\xbc\x5b\xe2\xb8\x4e\ +\x9b\x7f\xd7\x28\x59\xee\x0f\x16\x85\x43\x05\xbc\xbd\xa8\xa5\x88\ +\x18\x32\xb4\x09\xa4\x53\xb8\xf4\xf5\x45\x6b\x16\x4d\xa9\xf4\x69\ +\xbc\xad\xd9\x40\x80\x19\x50\x3a\xc5\x4c\xc8\x76\x9e\x95\xb2\x8e\ +\xa2\x9d\x19\x4f\x27\x33\x39\x77\xc2\x13\x79\x0d\x6e\x9a\xdd\xef\ +\x49\x76\x3a\xdf\x49\x76\xb6\x93\xec\xfe\x73\x92\x1d\x47\xb7\x5b\ +\x3e\xf3\x98\xf2\x08\xdf\xf8\x0b\xa1\x81\x77\x6d\x9e\xaf\xc6\x7d\ +\x27\xc3\x36\xd4\x85\x72\x41\x25\x3e\xd9\x59\x6b\x3f\xec\x5b\x2c\ +\x6f\x90\x61\xff\x5a\x1e\x14\x21\xee\x2b\x49\xb3\xfd\x17\xd8\x9a\ +\x5a\x0f\xe4\x81\x4d\x28\x08\xfe\x47\x6f\xeb\x76\x6d\x35\x11\x7a\ +\x7e\xc3\x46\x2e\xcc\x61\xd9\x58\xd8\xf3\xfe\x0a\x31\x69\x6f\x64\ +\x39\x68\x44\x75\x8d\x4e\x73\x84\x3b\x37\x98\xc9\x3a\xa5\xd9\x21\ +\xce\x3c\x7e\xab\x98\x91\x7f\x2d\xa6\x0c\xcc\x79\xcb\x36\x1d\x29\ +\x3c\x70\x20\x02\xdc\xba\xfa\xef\x91\x35\x6c\x62\x4f\x87\x7a\x09\ +\x09\xe8\x34\x95\x42\xde\x38\x0c\x76\xa7\x52\x9a\xe6\xe6\x08\xbe\ +\x3b\x38\xc7\xf7\xf1\xf8\x0c\xfc\x3c\x3a\x56\x0b\x9a\xd0\x3e\x28\ +\xd5\xf1\x2a\xf4\x59\x2b\x8e\x50\x9d\xe9\xaa\xfc\x27\x9d\x7b\x18\ +\xdd\x5f\xb0\x11\x5a\x80\x89\x6c\x58\xa7\x2d\x1d\x6d\xea\x3c\x1b\ +\x02\xfe\x90\x1a\x20\x43\x6a\x13\x08\x27\xf6\x62\xb6\x71\xe0\x5c\ +\x34\xef\x62\x4d\xf4\x7b\x9e\x0d\xe0\xfd\x9c\x67\x27\xe3\x05\x3e\ +\xed\xef\x3c\x5b\xcf\x6e\xb0\xda\xbf\xf6\x9d\x03\x85\xdb\xa1\x28\ +\xd7\xcf\x84\x90\xd3\xc1\x7c\x2b\xdf\x84\xd0\xa4\xde\xa8\xeb\x19\ +\x82\x3e\xcc\x43\xdd\xd2\x80\x10\xf9\x6f\xa7\x59\xea\x41\x55\x49\ +\x86\x7a\x27\x8f\x80\xcf\x3b\x73\x00\x80\xee\xd7\xaa\x6e\x19\x43\ +\xc7\x26\xe2\x44\xe1\xe4\xb5\x50\x85\x20\x60\xde\x84\x25\x24\x6c\ +\xba\x38\xc3\x03\x17\x05\xda\x33\x48\x91\x41\x29\x81\xe6\x70\x45\ +\x63\x52\x86\x19\x6a\x39\xab\x2a\x6b\x6e\xf8\xdf\x8e\x14\x52\xfb\ +\xbf\x5e\x4d\x8d\xe4\xc9\x5d\xd1\xf1\x77\x16\x4b\x74\xda\xe3\x38\ +\xa9\x2a\xb5\x24\x28\xed\xa8\x13\x12\x7f\xa1\x4f\x85\x83\x40\x7b\ +\x27\x90\x36\xa1\xb3\x1e\xb7\xa5\xb2\x62\xfa\xa6\xc5\x2c\xf0\x7f\ +\xd3\x45\x0d\x27\x17\xf5\x5b\xd9\x8a\xe6\xff\xb6\x40\xc3\x6b\xf0\ +\x32\x64\xb5\x92\x16\xc1\xe7\x90\x42\x30\x36\x79\x1b\x6b\x41\xaf\ +\x5e\xe9\xb9\x3b\x78\xe7\x6d\xcc\xd8\xda\x75\x25\x01\x96\xbe\x2c\ +\xa7\xb4\x4f\xd9\x5a\x4a\x6a\x2b\x83\xd6\x1a\x05\x8c\x1f\xd5\x7a\ +\x2a\x86\x8a\x77\x04\xf8\xd8\x10\xf9\x35\xf4\x8c\xd6\xb7\xb0\x72\ +\x27\x16\x53\xc7\xd0\xe7\x2d\x0a\x74\x5b\xb9\x69\xe3\xae\xaa\x87\ +\x41\x1a\x42\x43\x17\x4f\xbf\xa3\x7f\x47\xad\x8f\x68\xc2\xa2\x1f\ +\xb0\xf8\xb6\x58\x73\xe1\x2e\xc1\x30\x54\x68\xcd\xf5\xba\x7c\xde\ +\x73\xd4\xef\x72\x22\x07\xa8\x3c\x8f\xd3\xa4\xbe\x18\xfe\x19\x5f\ +\xdb\xc9\x7f\x24\x3c\x4b\x16\x77\x27\x5a\xac\xd9\x03\x9b\x39\x69\ +\x1f\x0c\xd7\xfc\x91\x67\x61\x47\xd3\x09\xac\x86\x06\xeb\x45\x3f\ +\xe2\x66\xd7\xe3\xd3\x0c\xc1\xaf\xfd\x75\xb6\x67\xb7\x61\xc0\x54\ +\x20\xca\xda\xe7\x52\x5a\x53\x95\x8b\x38\x0a\x52\xf8\x55\xba\xb5\ +\x74\x1c\xe0\x5f\x72\x78\xe7\xd6\xf0\x84\xc1\xe0\xbc\x6e\x72\xdf\ +\x54\x86\x74\x93\x9d\xc5\x69\xae\x19\xb6\xe9\x79\xe8\x0d\x88\x3a\ +\x58\xc1\x12\x61\x9b\x90\xd3\x47\x7d\x00\x2e\x50\x44\x50\x03\x60\ +\x66\xfe\xdf\x44\x15\xe5\xbd\x6a\xf8\xc3\x3e\x44\x74\x34\xf0\x24\ +\xd7\xea\x64\xe9\x7d\x32\x3f\xc8\xd4\x2b\xf7\x1b\xee\x91\xa9\x15\ +\xe2\x9b\xf5\xaa\x4d\xbf\xe6\xad\x21\xed\x6f\xfa\x95\xb4\xd3\x08\ +\x61\xc2\x9a\x2f\xe4\x44\xc3\xaf\xed\xcc\xe7\x8e\x65\xfc\xcb\xd9\ +\x42\x4d\xc1\x5e\x03\x93\x39\x76\x74\x18\xdd\x3d\xad\x69\xea\xbf\ +\xcb\xbe\x9a\x6a\x76\xfd\xd1\x34\xdb\x37\xeb\x7b\x34\x49\x07\xac\ +\xdd\x59\x5f\xaf\xe0\x5f\x77\xd6\x17\xb4\xd2\x67\x47\x56\x74\x1a\ +\xc0\xf9\xef\x9c\x66\x05\xf0\xd3\xaf\x1e\xb9\x7c\x53\x44\xbc\x06\ +\x61\xe0\x6e\xfa\x5c\x16\xf4\x63\xef\x8c\x1e\xd4\xc0\x56\x9d\x33\ +\xb8\xa6\x32\xd5\x4f\x6c\x37\xb2\x53\x72\x77\xf6\x79\xed\x6f\xf6\ +\x99\x38\x30\x5b\x55\xb1\xb4\x9f\x0f\x4d\xfc\xdd\x67\x26\x14\x59\ +\xc0\x67\x47\x69\x97\xc7\xe9\xd8\x19\x82\x1e\x33\x28\xe3\x3d\xc4\ +\x64\x67\x8a\x45\x54\x8b\xec\xa5\xbe\x17\x4f\x6e\xb2\xe2\xa6\x66\ +\xa0\xa7\x5a\x12\x45\x36\xa8\xa2\x99\xb2\xf5\xa3\xe8\x04\x6c\x48\ +\xba\xf6\x33\x7d\x9d\xef\x27\x27\xd4\xc9\xfa\xfd\xb3\x13\x3a\x40\ +\xb0\x4f\x4f\xe8\xf0\x5e\xc0\x30\xed\x34\x5c\x9a\x19\xc1\x2b\x72\ +\xd1\xdb\x43\xd9\xd4\xe4\x0d\xfc\x9c\xf2\x11\x0b\x3e\xd7\x08\x12\ +\x59\x0b\xbb\x85\x0a\xdf\xee\x4b\xd5\x0c\xbe\x66\xff\x6c\xde\xd5\ +\xb2\xf3\x68\x9c\x4f\xd3\xe8\x28\x44\x4d\x98\x3e\x1a\x67\xd1\x34\ +\x8b\x3e\x95\x20\xec\xd8\x36\x65\x0f\x5b\x84\xb8\x68\xca\x5e\x1f\ +\x95\xf9\xa6\xec\x45\x51\x20\xc6\xea\x9e\x6b\x4e\x9f\xf2\x9e\x6c\ +\xd6\x11\x3d\x89\xee\x0f\x36\xd8\x9f\x4b\xd2\x1b\x35\xd6\xc2\x12\ +\x6e\xf9\x19\x9f\x31\xde\x65\x54\x9a\xfa\x26\xe1\x2d\x8e\x60\x20\ +\x03\xeb\xb4\xe6\xa1\x41\x21\x25\x1b\x77\x4c\x29\xaf\x49\x0a\xbf\ +\xa8\x5b\x0d\xee\x7a\x4d\xf6\xc0\x4b\x9a\x0d\xb5\xca\xa2\x75\xa4\ +\xfa\xcd\x21\x0b\x0d\x54\x57\x44\xbb\xca\x77\x42\xf6\xea\x78\xf5\ +\x66\x56\xd7\xbc\x23\xfc\x69\x7e\x0f\xa5\x42\xae\x7c\xef\x5c\x03\ +\x20\x63\x77\x76\xdf\xdb\x2f\x9b\x52\xef\x74\xfc\x5a\xf1\xf3\xe7\ +\x92\xd3\xd6\xc0\xcb\xab\x0f\x24\xcc\x57\x83\x0f\x54\xb9\xb7\xc1\ +\x8c\x31\x95\xd4\x4a\xd6\xa8\x67\xda\xd3\x1a\x41\x04\x9c\xbb\x93\ +\xb5\xf5\x71\x30\x25\x40\x57\x7d\xf2\xdd\x5c\x45\x76\xa2\x7b\x73\ +\x31\x4b\x51\x9a\x80\x1e\x1b\x6b\xfe\x8b\x87\x7e\x39\x08\x09\x75\ +\xe5\x4e\xb7\xe3\x8c\xa9\xcf\x54\xa8\x4c\xef\xd6\x6e\x28\x24\x48\ +\x67\x8c\x0a\x85\xea\x81\xf9\x39\x15\x0a\x01\x76\xb5\x81\x8a\x57\ +\x63\x57\x2c\x91\x3b\xdf\x41\x24\xfb\x70\x03\x8c\xad\x11\x1d\x36\ +\x70\x78\x2e\xa0\x4f\x7d\x20\xc5\x3e\x71\x43\xa6\xad\x3b\x72\x56\ +\x84\xbf\xce\x66\x39\xa9\x38\xfe\xfb\x30\x0f\x55\x5c\xa3\x25\x51\ +\x1f\xe6\x79\xa8\x2d\x59\x9d\xf8\x39\x9d\x7d\x9a\x47\x25\xa8\x69\ +\x8a\xd5\x55\x2a\x15\x11\x61\x47\x66\x3f\x63\x6f\xea\x26\xd9\x07\ +\x27\xee\xc7\x26\xec\x43\x13\x3a\x91\xbd\x63\x8c\x1e\xce\xf0\xda\ +\xc4\xd5\xd7\xd3\x1a\xa7\x5a\x46\x13\x6b\xa5\xa9\xfb\x5d\x62\xfb\ +\xf9\x28\xd3\x82\xfb\x65\x30\xcd\x3e\xca\x24\xa2\xe8\x9b\x7d\x94\ +\xe9\x71\xfc\x5b\x54\x07\xbf\x71\xe0\x7f\xfe\xb8\xc4\x6f\x9f\x96\ +\x30\x02\xf3\x27\x7f\x61\x79\xfa\x3c\xed\xff\x07\xde\xd1\xb1\xc6\ +\x01\x47\x75\xe4\x00\x00\x01\x83\x69\x43\x43\x50\x49\x43\x43\x20\ +\x70\x72\x6f\x66\x69\x6c\x65\x00\x00\x78\x9c\x7d\x91\x3d\x48\xc3\ +\x40\x1c\xc5\x5f\x53\xa5\x22\x2d\x0e\x76\x50\x71\xc8\x50\x9d\xec\ +\xa2\x22\x8e\xb5\x0a\x45\xa8\x10\x6a\x85\x56\x1d\x4c\x2e\xfd\x82\ +\x26\x0d\x49\x8a\x8b\xa3\xe0\x5a\x70\xf0\x63\xb1\xea\xe0\xe2\xac\ +\xab\x83\xab\x20\x08\x7e\x80\xb8\xba\x38\x29\xba\x48\x89\xff\x4b\ +\x0a\x2d\x62\x3c\x38\xee\xc7\xbb\x7b\x8f\xbb\x77\x80\xd0\xac\x32\ +\xcd\xea\x49\x00\x9a\x6e\x9b\x99\x54\x52\xcc\xe5\x57\xc5\xd0\x2b\ +\x04\x44\x10\x46\x08\xc3\x32\xb3\x8c\x39\x49\x4a\xc3\x77\x7c\xdd\ +\x23\xc0\xd7\xbb\x38\xcf\xf2\x3f\xf7\xe7\x88\xa8\x05\x8b\x01\x01\ +\x91\x38\xc1\x0c\xd3\x26\xde\x20\x9e\xd9\xb4\x0d\xce\xfb\xc4\x51\ +\x56\x96\x55\xe2\x73\xe2\x09\x93\x2e\x48\xfc\xc8\x75\xc5\xe3\x37\ +\xce\x25\x97\x05\x9e\x19\x35\xb3\x99\x79\xe2\x28\xb1\x58\xea\x62\ +\xa5\x8b\x59\xd9\xd4\x88\xa7\x89\x63\xaa\xa6\x53\xbe\x90\xf3\x58\ +\xe5\xbc\xc5\x59\xab\xd6\x59\xfb\x9e\xfc\x85\xe1\x82\xbe\xb2\xcc\ +\x75\x9a\xa3\x48\x61\x11\x4b\x90\x20\x42\x41\x1d\x15\x54\x61\x23\ +\x4e\xab\x4e\x8a\x85\x0c\xed\x27\x7d\xfc\x23\xae\x5f\x22\x97\x42\ +\xae\x0a\x18\x39\x16\x50\x83\x06\xd9\xf5\x83\xff\xc1\xef\x6e\xad\ +\xe2\xd4\xa4\x97\x14\x4e\x02\xbd\x2f\x8e\xf3\x31\x06\x84\x76\x81\ +\x56\xc3\x71\xbe\x8f\x1d\xa7\x75\x02\x04\x9f\x81\x2b\xbd\xe3\xaf\ +\x35\x81\xd9\x4f\xd2\x1b\x1d\x2d\x76\x04\x0c\x6c\x03\x17\xd7\x1d\ +\x4d\xd9\x03\x2e\x77\x80\xa1\x27\x43\x36\x65\x57\x0a\xd2\x14\x8a\ +\x45\xe0\xfd\x8c\xbe\x29\x0f\x0c\xde\x02\xfd\x6b\x5e\x6f\xed\x7d\ +\x9c\x3e\x00\x59\xea\x2a\x7d\x03\x1c\x1c\x02\xe3\x25\xca\x5e\xf7\ +\x79\x77\x5f\x77\x6f\xff\x9e\x69\xf7\xf7\x03\x2e\x8f\x72\x8b\x0d\ +\x14\x42\x02\x00\x00\x0d\x78\x69\x54\x58\x74\x58\x4d\x4c\x3a\x63\ +\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\x70\x00\x00\x00\x00\ +\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x62\x65\x67\x69\x6e\ +\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\x57\x35\x4d\x30\x4d\ +\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\x4e\x54\x63\x7a\x6b\ +\x63\x39\x64\x22\x3f\x3e\x0a\x3c\x78\x3a\x78\x6d\x70\x6d\x65\x74\ +\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\x61\x64\x6f\x62\x65\ +\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\x78\x3a\x78\x6d\x70\ +\x74\x6b\x3d\x22\x58\x4d\x50\x20\x43\x6f\x72\x65\x20\x34\x2e\x34\ +\x2e\x30\x2d\x45\x78\x69\x76\x32\x22\x3e\x0a\x20\x3c\x72\x64\x66\ +\x3a\x52\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x0a\x20\x20\ +\x3c\x72\x64\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\ +\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x0a\x20\x20\ +\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\ +\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\x0a\ +\x20\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\ +\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\ +\x70\x65\x2f\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\ +\x23\x22\x0a\x20\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\ +\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\ +\x2f\x22\x0a\x20\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x47\x49\x4d\ +\x50\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x69\ +\x6d\x70\x2e\x6f\x72\x67\x2f\x78\x6d\x70\x2f\x22\x0a\x20\x20\x20\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x74\x69\x66\x66\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x74\x69\x66\x66\x2f\x31\x2e\x30\x2f\x22\x0a\x20\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\ +\x61\x70\x2f\x31\x2e\x30\x2f\x22\x0a\x20\x20\x20\x78\x6d\x70\x4d\ +\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x67\x69\ +\x6d\x70\x3a\x64\x6f\x63\x69\x64\x3a\x67\x69\x6d\x70\x3a\x64\x65\ +\x61\x63\x32\x64\x35\x38\x2d\x63\x34\x63\x61\x2d\x34\x62\x63\x38\ +\x2d\x61\x32\x33\x35\x2d\x32\x33\x36\x62\x36\x34\x36\x32\x36\x36\ +\x39\x37\x22\x0a\x20\x20\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\ +\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\ +\x3a\x63\x38\x34\x37\x36\x38\x31\x31\x2d\x36\x63\x38\x61\x2d\x34\ +\x33\x39\x31\x2d\x62\x38\x31\x37\x2d\x36\x63\x62\x64\x36\x33\x34\ +\x62\x61\x36\x63\x64\x22\x0a\x20\x20\x20\x78\x6d\x70\x4d\x4d\x3a\ +\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\x6f\x63\x75\x6d\x65\x6e\x74\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\x69\x64\x3a\x35\x32\x66\x61\ +\x38\x31\x64\x38\x2d\x37\x62\x38\x38\x2d\x34\x35\x36\x39\x2d\x38\ +\x61\x31\x31\x2d\x38\x39\x37\x64\x37\x30\x36\x39\x30\x61\x64\x63\ +\x22\x0a\x20\x20\x20\x64\x63\x3a\x46\x6f\x72\x6d\x61\x74\x3d\x22\ +\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x0a\x20\x20\x20\x47\x49\ +\x4d\x50\x3a\x41\x50\x49\x3d\x22\x32\x2e\x30\x22\x0a\x20\x20\x20\ +\x47\x49\x4d\x50\x3a\x50\x6c\x61\x74\x66\x6f\x72\x6d\x3d\x22\x4c\ +\x69\x6e\x75\x78\x22\x0a\x20\x20\x20\x47\x49\x4d\x50\x3a\x54\x69\ +\x6d\x65\x53\x74\x61\x6d\x70\x3d\x22\x31\x36\x37\x36\x32\x39\x30\ +\x30\x38\x39\x32\x33\x39\x39\x31\x34\x22\x0a\x20\x20\x20\x47\x49\ +\x4d\x50\x3a\x56\x65\x72\x73\x69\x6f\x6e\x3d\x22\x32\x2e\x31\x30\ +\x2e\x33\x32\x22\x0a\x20\x20\x20\x74\x69\x66\x66\x3a\x4f\x72\x69\ +\x65\x6e\x74\x61\x74\x69\x6f\x6e\x3d\x22\x31\x22\x0a\x20\x20\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\x3d\ +\x22\x47\x49\x4d\x50\x20\x32\x2e\x31\x30\x22\x0a\x20\x20\x20\x78\ +\x6d\x70\x3a\x4d\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\ +\x22\x32\x30\x32\x33\x3a\x30\x32\x3a\x31\x33\x54\x31\x33\x3a\x30\ +\x37\x3a\x35\x39\x2b\x30\x31\x3a\x30\x30\x22\x0a\x20\x20\x20\x78\ +\x6d\x70\x3a\x4d\x6f\x64\x69\x66\x79\x44\x61\x74\x65\x3d\x22\x32\ +\x30\x32\x33\x3a\x30\x32\x3a\x31\x33\x54\x31\x33\x3a\x30\x37\x3a\ +\x35\x39\x2b\x30\x31\x3a\x30\x30\x22\x3e\x0a\x20\x20\x20\x3c\x78\ +\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x0a\x20\x20\x20\x20\ +\x20\x3c\x72\x64\x66\x3a\x6c\x69\x0a\x20\x20\x20\x20\x20\x20\x73\ +\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\ +\x65\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x45\x76\x74\x3a\ +\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x30\x34\x61\x37\ +\x63\x31\x39\x64\x2d\x62\x33\x34\x33\x2d\x34\x34\x39\x32\x2d\x62\ +\x33\x36\x31\x2d\x63\x34\x63\x36\x63\x39\x65\x64\x32\x38\x64\x66\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\ +\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x47\x69\x6d\ +\x70\x20\x32\x2e\x31\x30\x20\x28\x4c\x69\x6e\x75\x78\x29\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\ +\x3d\x22\x32\x30\x32\x33\x2d\x30\x32\x2d\x31\x33\x54\x31\x33\x3a\ +\x30\x38\x3a\x30\x39\x2b\x30\x31\x3a\x30\x30\x22\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x53\x65\x71\x3e\x0a\x20\x20\ +\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\ +\x3e\x0a\x20\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\x63\x72\x69\ +\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\ +\x46\x3e\x0a\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\ +\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\x22\x77\ +\x22\x3f\x3e\x3c\x24\x30\x11\x00\x00\x00\x06\x62\x4b\x47\x44\x00\ +\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x00\x09\x70\x48\x59\ +\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\ +\x00\x07\x74\x49\x4d\x45\x07\xe7\x02\x0d\x0c\x08\x09\xf7\x20\xc1\ +\xef\x00\x00\x00\x15\x49\x44\x41\x54\x38\xcb\x63\x60\x18\x05\xa3\ +\x60\x14\x8c\x82\x51\x30\x0a\xa8\x03\x00\x06\x54\x00\x01\x43\x87\ +\x1f\x9c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x08\xc2\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ +\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x03\x0d\x0e\x24\x3b\xa3\xb3\x44\x09\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x08\x2a\x49\x44\x41\x54\x78\xda\xed\xdd\x31\x6e\x53\x41\x10\ +\x80\x61\x07\x99\x0a\x89\x13\xe4\x00\x6e\xa2\x48\x29\x53\x27\x05\ +\x55\xa4\x88\x03\x50\xf9\x0e\x9c\x80\x3b\xb8\xe2\x00\x08\x29\x15\ +\x05\xd4\x29\x91\xa2\x34\xee\x28\x48\xc3\x29\x4c\x83\x84\x88\x50\ +\x82\xc3\xee\x7b\xb3\x33\xdf\x57\x53\xa0\x7d\xb6\xff\xcc\xc4\xda\ +\x2c\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x90\xd3\x81\x23\x78\xd8\xd9\xe9\xd1\ +\xce\x29\xc4\xf3\xe5\xfa\xd6\x6b\x17\x10\x60\xd1\x45\x8c\x01\x04\ +\x58\x7c\x45\x18\x40\x80\xc5\x17\x11\x06\x10\x60\xf1\x15\x61\x00\ +\x01\x16\x5f\x44\x18\xa8\xea\x99\x23\x00\x00\x01\x06\x80\x12\xca\ +\xaf\xea\xac\x9f\x73\xb2\x86\x06\x4c\xc0\x00\x80\x00\x03\x40\x04\ +\x4b\x47\xb0\xbf\xe3\xd5\xa1\x43\x98\xd0\xcd\xf6\xce\x21\x00\x26\ +\x60\xf1\x15\x5f\x67\x0e\x20\xc0\x42\xe0\xec\x01\x04\x18\x00\x10\ +\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\ +\x00\x40\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ +\x40\x80\x01\x40\x80\x01\x00\x01\x86\xa7\x3b\x3b\x3d\xda\x39\x05\ +\x40\x80\x41\x84\x01\xfe\xb0\x74\x04\x88\x30\xb0\xaf\x2f\xd7\xb7\ +\x07\x4e\x41\x80\x01\x98\xf1\x87\x5b\x31\x7e\x1a\x2b\x68\x00\x9a\ +\xc5\x18\x01\x26\xa1\xe3\xd5\xa1\x43\x00\x11\x16\x60\x00\x10\x61\ +\x01\x06\x40\x84\x05\x18\x7a\xb1\x86\x06\x04\x18\x44\x18\x40\x80\ +\x11\x61\x20\x06\x6b\x68\x01\x46\x84\x01\xc2\x72\x11\x07\x69\x22\ +\x7c\xb3\xbd\x73\x20\x80\x00\x83\x89\x18\x72\xf0\xc3\x6d\x1f\x56\ +\xd0\x00\xf8\xe1\x56\x80\x01\x10\x61\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\ +\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ +\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x12\x5a\x3a\x02\xe6\x70\xf1\xe6\xad\x43\xa0\xac\xab\ +\xf7\xef\x1c\x02\x02\x8c\xe8\xc2\x9c\xef\x05\x31\xae\xcb\x0a\x1a\ +\xf1\x05\xef\x0d\x04\x18\x1f\x30\xe0\x3d\x82\x00\x83\x0f\x16\xf0\ +\x5e\x41\x80\xf1\x81\x02\xde\x33\x08\x30\x00\x20\xc0\x00\x20\xc0\ +\x60\x95\x06\xde\x3b\x08\x30\x00\x08\x30\x00\xb0\x70\x13\x16\x81\ +\xac\x56\x2b\x87\x40\x3a\xdb\xed\xd6\x21\x60\x02\x46\x7c\xc1\x6b\ +\x1b\x01\x06\x1f\x50\x78\x8d\x23\xc0\x00\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\ +\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\ +\xc0\x8e\x00\x00\xa6\xb7\x74\x04\x54\xb5\xd9\x6c\x1c\x42\x72\xeb\ +\xf5\xda\x21\x20\xc0\x20\xbc\xcc\xf5\xac\x85\x98\x88\xac\xa0\x11\ +\x5f\x3c\x77\x10\x60\x00\x10\x60\x30\x05\xe1\xf9\x83\x00\x03\x80\ +\x00\x03\x00\x02\x0c\x8f\xf3\x4d\x58\xcf\x1f\x04\x18\x00\x04\x18\ +\x4c\x41\x78\xee\x30\x35\x17\x71\x50\xf6\xc3\xd8\xb7\x62\x85\x17\ +\x04\x18\x7c\x38\x03\xc5\x58\x41\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ +\x03\xc0\x6c\x96\x8e\x80\xaa\x36\x9b\x8d\x43\x48\x6e\xbd\x5e\x3b\ +\x04\x04\x18\x84\x97\xb9\x9e\xb5\x10\x13\x91\x15\x34\xe2\x8b\xe7\ +\x0e\x02\x0c\x00\x02\x0c\xa6\x20\x3c\x7f\x10\x60\x00\x10\x60\x00\ +\x40\x80\xe1\x71\xbe\x09\xeb\xf9\x83\x00\x03\x80\x00\x83\x29\x08\ +\xcf\x1d\xa6\xe6\x22\x0e\xca\x7e\x18\xfb\x56\xac\xf0\x82\x00\x83\ +\x0f\x67\xa0\x18\x2b\x68\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ +\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\xe2\x39\xa8\ +\x7e\x00\x67\xa7\x47\xbb\x7f\xfd\xb7\xc7\xab\xc3\x70\xff\xff\x6f\ +\xdf\x7f\x78\x15\x03\xdc\xf3\xf1\xf3\xd7\xf0\x7d\x73\x13\xd6\x80\ +\x44\x17\xe0\x61\x97\xe7\x27\xbb\xe8\x31\xb6\x82\x16\x5f\x80\x32\ +\x31\x16\x60\xc4\x17\xa0\x78\x84\x05\x58\x7c\x01\x44\x58\x80\x11\ +\x5f\x80\x1a\x11\x16\x60\x00\x10\x60\x00\x10\x60\x02\xb0\x7e\x06\ +\x68\x2b\xca\x1a\x5a\x80\x01\x40\x80\x01\xa0\x06\x37\x61\x25\xf4\ +\xfa\xe2\x95\x43\x00\xca\xf8\x70\xf5\xc9\x04\x4c\x5b\x4f\xf9\xfd\ +\xaf\xf8\x02\x3c\x2c\xca\xd5\x94\x02\x6c\xf2\x05\x40\x80\x01\x20\ +\xff\xf4\x2b\xc0\x81\xed\xbb\x7e\x36\xfd\x02\x15\x8d\xfa\xfb\x5f\ +\x01\x06\x00\x01\x06\x80\x7e\xd3\x6f\xb4\xbf\x0b\x2c\xc0\x01\x59\ +\x3f\x03\x98\x80\x01\x00\x01\x06\x80\xf1\xd7\xcf\x02\x1c\x90\xf5\ +\x33\x80\x09\x18\x00\x10\x60\xd3\x2f\x00\x39\xd6\xcf\x02\x3c\x38\ +\xeb\x67\x00\x13\x30\x00\x84\x13\x75\xfa\x15\xe0\x40\x7c\xf9\x0a\ +\xe0\x71\x23\x5f\x3d\x29\xc0\x00\x20\xc0\x00\xd0\x67\xfa\x8d\xbc\ +\x7e\x16\xe0\x20\xac\x9f\x01\x4c\xc0\x00\x80\x00\x03\x40\xbe\xf5\ +\xb3\x00\x07\x60\xfd\x0c\x60\x02\x06\x00\xd3\xaf\x00\x9b\x7e\x4d\ +\xbf\x00\x26\x60\x00\x40\x80\x01\xa8\x20\xeb\xfa\x59\x80\x67\x64\ +\xfd\x0c\x60\x02\x06\x00\x04\x18\x00\x72\xaf\x9f\x05\x78\x26\xd6\ +\xcf\x00\x08\x30\x00\xc3\x1b\x6d\xfa\x15\xe0\x01\x98\x7e\x81\x8a\ +\x32\xfd\xdd\x5f\x01\x0e\x62\xdf\xf5\x33\x00\x02\x0c\x00\xe1\xa6\ +\xdf\x11\xd7\xcf\x02\x1c\x7c\xfa\xb5\x7e\x06\x30\x01\x03\x00\x02\ +\x0c\x40\x46\x55\xd6\xcf\x02\x3c\x21\xeb\x67\x00\x04\x18\x00\x04\ +\x18\x00\x6a\xad\x9f\x05\x78\x22\xd6\xcf\x00\x08\x30\x00\xc3\x1b\ +\x7d\xfa\x15\xe0\x80\x4c\xbf\x40\x45\x15\xae\x9e\x14\xe0\x89\xb9\ +\x7a\x12\x00\x01\x06\x60\xf8\xe9\x37\xc3\xfa\x59\x80\x83\x4d\xbf\ +\xd6\xcf\x00\x26\x60\x00\x40\x80\x01\xc8\xa8\xea\xfa\x59\x80\x3b\ +\xb2\x7e\x06\x40\x80\x01\x40\x80\x01\xa0\xf6\xfa\x59\x80\x3b\xb1\ +\x7e\x06\x40\x80\x01\x18\x5e\xb6\xe9\x57\x80\x03\x30\xfd\x02\x15\ +\x55\xbc\x7a\x52\x80\x3b\x73\xf5\x24\x00\x02\x0c\xc0\xf0\xd3\x6f\ +\xc6\xf5\xb3\x00\xcf\x3c\xfd\x5a\x3f\x03\x98\x80\x01\x00\x01\x06\ +\x20\x23\xeb\x67\x01\x6e\xce\xfa\x19\x00\x01\x06\x00\x01\x06\x00\ +\xeb\x67\x01\xee\xc0\xfa\x19\x00\x01\x06\x60\x78\xd9\xa7\x5f\x01\ +\x9e\x81\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\x9c\xab\x27\x01\x10\x60\ +\x00\x86\x9f\x7e\x2b\xac\x9f\x05\x78\xe2\xe9\xd7\xfa\x19\x00\x01\ +\x06\x00\x01\x06\x20\x23\xeb\x67\x01\x6e\xce\xfa\x19\x00\x01\x06\ +\x00\x01\x06\x00\xeb\x67\x01\xee\xc0\xfa\x19\x00\x01\x06\x60\x78\ +\xd5\xa6\x5f\x01\x9e\x80\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\x9c\xab\ +\x27\x01\x10\x60\x00\x86\x9f\x7e\x2b\xae\x9f\x05\xb8\xf3\xf4\x6b\ +\xfd\x0c\x80\x00\x03\x80\x00\x03\x90\x91\xf5\xb3\x00\x37\xf7\xf2\ +\xc5\xf3\xbd\xfe\xbd\xf5\x33\x00\x02\x0c\x00\x02\x0c\x40\x46\xd6\ +\xcf\x02\xdc\x9c\xf5\x33\x00\x02\x0c\xc0\xf0\xaa\x4f\xbf\x02\xdc\ +\x81\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\xdc\xbe\xeb\x67\x00\x10\x60\ +\x00\xc2\x4d\xbf\xd6\xcf\x02\xdc\x7c\xfa\xb5\x7e\x06\x40\x80\x01\ +\x40\x80\x01\xc8\xc8\xfa\x59\x80\x9b\xb3\x7e\x06\x40\x80\x01\x40\ +\x80\x01\xc0\xfa\x59\x80\x3b\xb0\x7e\x06\x40\x80\x01\x18\x9e\xe9\ +\x57\x80\x9b\x33\xfd\x02\x15\xb9\x7a\x52\x80\x9b\x73\xf5\x24\x00\ +\x02\x0c\xc0\xf0\xd3\xaf\xf5\xb3\x00\x37\x9f\x7e\xad\x9f\x01\x10\ +\x60\x00\x10\x60\x00\x32\xb2\x7e\x16\xe0\xe6\xac\x9f\x01\x10\x60\ +\x00\x10\x60\x00\xb0\x7e\x16\xe0\x0e\xac\x9f\x01\x10\xe0\xe0\xf1\ +\x05\x00\x01\x9e\x81\xe9\x17\xa8\xc8\xd5\x93\x02\x0c\x00\x02\x0c\ +\x80\xe9\xf7\x6f\x7c\x01\x4b\x80\x43\xbc\x10\x01\xe0\xbe\xa5\x23\ +\x10\x61\x00\x4c\xc0\x00\x20\xc0\x00\x40\x1f\x7e\x49\xbe\x58\x2c\ +\x2e\xcf\x4f\x76\x4e\x01\xa0\x0d\x5f\xc0\x32\x01\x03\x80\x00\x03\ +\x00\xbf\x59\x13\xfc\x62\x0d\x0d\xf0\xff\xac\x9f\x05\x58\x84\x01\ +\xc4\x57\x80\x45\x18\x40\x7c\x11\x60\x11\x06\x10\x5f\x01\x16\x63\ +\x00\xd1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x22\x7e\x02\xd0\x9c\xed\ +\x7c\x8a\xb7\x2a\x7d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x2c\xb6\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ +\x15\x07\x25\x17\x9d\x4c\xa8\xf4\x00\x00\x00\x19\x74\x45\x58\x74\ +\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ +\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\ +\x00\x49\x44\x41\x54\x78\xda\xed\xdd\x7b\x90\x9c\xd5\x99\xdf\xf1\ +\xe7\x74\x8f\xc6\x83\x6c\x67\x35\x38\xb2\x31\x88\xf2\x48\x0b\x4b\ +\x95\x11\xc2\xdc\x04\xc6\x2b\xa1\x11\x42\xd3\x53\xa5\xc4\xa8\x6d\ +\x2e\xc9\x12\xaf\xcd\xd5\x59\x27\x95\x54\x45\x54\xb1\x74\x6b\x00\ +\x75\xb7\x64\x52\x72\xa5\x36\x2e\xef\x62\xc3\x66\x37\x89\xb6\xb8\ +\x66\x64\x57\x5c\x35\x33\xba\x8d\x2e\xbb\x20\x84\x0c\x01\x44\xaa\ +\x64\xae\xb1\xe4\xfb\x65\xb4\x0b\x16\x62\xd4\xfd\x9e\xfc\x31\x6a\ +\xa1\x7b\xdf\xce\x79\xdf\x73\xce\xfb\xfd\x54\xb9\x2a\xd9\x42\x3d\ +\xdd\xef\xe5\xfc\xde\xe7\x9c\xf3\x9e\xa3\xb4\xd6\x02\x00\x00\xe2\ +\x95\xe1\x10\x00\x00\x40\x00\x03\x00\x40\x00\x03\x00\x00\x02\x18\ +\x00\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\x80\x00\ +\x06\x00\x80\x00\x06\x00\x00\x04\x30\x00\x00\x04\x30\x00\x00\x04\ +\x30\x00\x00\x20\x80\x01\x00\x08\x49\x17\x87\x00\x00\xdc\xb5\x70\ +\xcb\x6d\x1d\x6f\x59\xb7\x7d\xf1\x3a\xc5\x91\x74\x8f\x62\x3b\x42\ +\x00\xf0\x3b\x60\x09\x68\x02\x18\x00\xe0\x78\xd8\x12\xca\x04\x30\ +\x00\x10\xb8\x1e\x21\x90\x09\x60\x00\x20\x70\x09\x64\x02\x18\x00\ +\x08\xdd\xdb\x52\xdf\x88\x12\xc6\x04\x30\x00\x10\xba\x84\x31\x01\ +\x0c\x00\x04\x2f\x41\x0c\x02\x18\x00\x08\x5d\xc2\x98\x00\x06\x00\ +\x82\x97\x20\x26\x80\x09\x60\x00\x20\x78\x09\x62\x02\x18\x00\x08\ +\x5e\x82\x98\x00\x06\x00\x82\x17\x04\x31\x01\x0c\x00\x04\x2f\x41\ +\x1c\x0a\xb6\x23\x04\x40\xf8\x82\xf3\x42\x05\x0c\x00\x34\xf0\x48\ +\x47\x35\x4c\x05\x0c\x80\xf0\x05\xe7\x8b\x0a\x18\x00\x68\xc8\x91\ +\x8e\x6a\x98\x0a\x18\x00\xe1\x0b\xce\x23\x15\x30\x00\xd0\x60\x23\ +\x1d\xd5\x30\x15\x30\x00\xc2\x17\x9c\x5f\x02\x18\x00\x68\x9c\x91\ +\x8e\xf3\x4c\x17\x34\x00\x1a\x64\x78\xcb\xe7\x2e\x69\x2a\x60\x00\ +\x84\x2f\x38\xff\x04\x30\x00\x10\xbe\x48\xc7\x75\x40\x00\x03\xa0\ +\xd1\x05\xd7\x03\x01\x0c\x00\x84\x2f\xd2\x71\x5d\x10\xc0\x00\x68\ +\x64\xc1\xf5\x91\x00\x66\x41\x03\xa0\x71\xf5\xcc\xf6\xc5\xeb\xce\ +\x74\x8c\x38\x40\xe2\xc7\xec\x68\x02\x18\x00\xe1\xeb\x79\xe8\x12\ +\xc6\x7e\x86\x30\x5d\xd0\x00\x08\xdf\x00\xc3\xb7\x93\x7f\xc7\x75\ +\x43\x00\x03\x00\xe1\xdb\x61\x88\x12\xc2\xee\x5e\x3f\x04\x30\x00\ +\x1a\xcf\x40\xc3\x97\x10\x76\xfb\x3a\x62\x0c\x18\x30\x40\x6b\x91\ +\x35\x6f\xee\xd5\xf7\xce\xbe\x48\xfd\xe8\x9f\x26\xf4\xe7\x77\x8e\ +\x07\xf3\xdb\x9e\xbb\xa6\x5f\x44\x44\x0a\x3f\xde\x23\x1b\xe7\x2f\ +\x50\x99\x98\x46\xd5\x08\xdf\x75\x36\x8e\xa9\xa4\xfc\x98\x3a\x35\ +\x26\x4c\x00\x03\x26\x6e\xa4\x91\xe1\xd4\xdc\x48\x51\x2e\xaf\x94\ +\xe5\x66\x8c\xf0\x5d\x67\xf3\xd8\x12\xc2\x8e\xe8\xa2\xe9\x04\xd2\ +\x19\xa4\xed\xca\x8c\xb6\x77\x8c\xf4\x60\xbe\xa9\x86\x8f\x57\x8d\ +\x60\xfb\xe1\xce\x95\x10\x26\x80\x41\xa8\x1e\x51\xcb\xe5\x15\x47\ +\xcb\x9e\x5a\x24\xa2\x44\x4b\x76\x6c\xfd\x69\xcf\xc7\x82\x8f\x0c\ +\x73\xa0\x90\x9a\x10\xa6\x0b\x1a\x04\x30\x9c\x40\xf8\x4e\x89\x63\ +\xc2\x14\x8b\x75\x1c\x3d\xd6\x89\x86\x30\x15\x30\xbc\xa7\x45\x24\ +\x43\xc8\x02\xf0\x0c\xaf\x21\xc1\x7b\xbf\x3a\x34\x49\xf8\x52\xfd\ +\x02\xed\xf4\x04\x24\xda\x76\x50\x01\xc3\x79\x35\x2d\xd2\x35\x4a\ +\x85\x4b\xf8\x02\x76\x42\x38\xa9\xae\x68\x02\x18\xee\x04\x6d\x24\ +\xd2\x35\x46\xd0\x12\xbe\x40\x3a\x42\x98\x2e\x68\x24\x26\xd2\x53\ +\xe3\xb7\xf5\x79\x80\x84\x2f\x80\x34\xa1\x02\x46\xec\xca\xaf\xef\ +\xd5\x2b\xdf\x78\x8d\x03\x41\xf5\xcb\x41\x40\xaa\xab\x60\x02\x18\ +\xd6\xf1\x1a\x10\x08\x5f\x10\xc2\x27\xa3\x0b\x1a\x84\x2f\x00\x24\ +\x80\x0a\x18\x04\x2d\xa8\x7e\x81\x04\xaa\x60\x02\x18\x6d\x59\xfd\ +\xc6\x5e\x5d\x78\x9d\x71\x5c\x10\xbe\x20\x84\x09\x60\xc4\xe6\xae\ +\x57\x5f\xd4\x8f\xed\x7f\x87\x03\x01\x00\x04\x30\x6c\xda\xf9\xbb\ +\x09\xfd\xf9\xe7\xc7\x39\x10\xa0\xfa\x05\x55\xb0\x41\x4c\xc2\xc2\ +\x19\x55\x23\x11\xc2\x17\x84\x2f\xd2\x1a\xc2\x54\xc0\x88\x15\x4b\ +\x3f\x9a\xd7\xec\x5e\xb8\xae\x60\x52\x1d\x60\x1f\x01\x0c\x39\x5c\ +\x13\xe9\xde\x40\x83\x6b\xcb\xe3\x97\xce\xa7\xfa\x05\x3c\xae\x82\ +\x6d\x75\x45\x13\xc0\x29\x17\x69\xc2\xb7\x19\xd5\x81\xbc\xca\xa6\ +\x68\xc0\xa6\x93\x8a\x9d\xea\x19\x20\x80\x41\xe3\xd8\xb1\xc9\x81\ +\xbc\xea\xca\x88\x28\x0e\x45\x4b\xe1\xad\x46\x86\xf5\xec\x9e\xe9\ +\x32\x4b\xaf\xe3\x80\x80\x2a\x98\x00\x26\x74\x61\xae\xca\x43\x73\ +\xc7\x76\xe1\x96\x75\x5c\x7b\x00\x01\x9c\xce\xd0\x4d\x73\xc8\xa4\ +\xad\xdb\xd8\xc5\xaa\x81\xa3\x00\xaa\xe0\xd3\xa3\x79\xa2\xfa\x0d\ +\x16\xe1\x0b\x80\x0a\x18\xb0\xe0\xfd\x1b\xf2\xaa\x87\x2b\x98\xea\ +\x17\xf0\xb4\x0a\xa6\xf9\xa2\xda\xf5\x42\x35\x97\x57\xf5\x77\x93\ +\x27\x97\xe6\x55\x26\x23\x92\x65\x04\x17\x00\x15\x30\xe2\xa6\x45\ +\x24\x93\x92\xee\xe5\x28\xb7\x5c\x29\xc5\xa4\x29\xaa\x5f\x20\xac\ +\x2a\x98\x00\xa6\xca\x75\xe7\xa1\xe2\xc8\xeb\x2b\xf5\xff\xff\x9c\ +\xb3\xa6\xcb\x9b\x8b\x72\x84\x2e\x00\x2a\x60\x10\xbe\x26\x4d\x2e\ +\x5d\xae\xba\x37\xac\xd7\x27\x86\x30\x67\x1a\x00\x01\x8c\xc4\x55\ +\xde\xd8\xab\x8b\x01\xee\xbb\x1b\xe5\xf2\x74\x2b\x07\x88\xee\x67\ +\xa4\xe5\x3a\x37\xd1\x0d\xcd\x8b\x1a\x0e\xab\x46\x22\x21\x84\x6f\ +\x94\xcb\xab\xeb\xcf\x9e\x79\x7c\x35\x4f\xec\x02\xa0\x02\x86\x6b\ +\x42\xea\x6a\xae\x57\xb8\x9b\xae\x5e\x40\xe4\x52\xfd\x02\x54\xc1\ +\x04\x30\xe1\x6b\x33\x6c\x01\x00\x04\x30\xe1\x4b\xe8\x02\x80\x93\ +\x18\x03\x4e\xd8\xe1\xda\x54\xf0\xfa\x18\xbe\xa5\x0b\x2f\xe6\x04\ +\x42\x44\xe8\x7e\x06\xd7\x3d\x15\xb0\x87\x7c\xda\x8b\x77\x72\x69\ +\x5e\x4d\xcb\x72\xce\x00\xc0\x04\x02\x38\x01\xbe\x54\xbb\x74\x2f\ +\x03\x00\x01\x4c\xe8\x12\xba\x70\x14\xdd\xcf\x48\xfb\xf5\xdf\xee\ +\x6c\x68\xc6\x80\x09\x5f\x00\x00\x15\x70\x78\x0e\x47\x7e\x54\xbd\ +\x91\x16\xc9\x50\xfb\x02\x00\x01\x4c\xc5\x1b\x2f\xc2\x17\x00\x08\ +\x60\x58\xae\x76\x39\x0a\x30\x85\xf1\x5f\xa0\xfd\x71\x60\xc6\x80\ +\x0d\xb8\x67\xcf\x8b\x5a\x6b\xed\xf4\xfb\xbc\xbf\xb9\x7e\xd9\xc3\ +\x51\x8e\xf0\x05\x00\x2a\xe0\x80\x7c\x6f\xdf\x3b\xf2\xbd\x7d\xef\ +\x38\x19\xbc\x7f\x3f\xbf\x5f\xbe\xf0\x89\x5e\x82\x17\x00\x08\xe0\ +\xb0\x1c\xae\xb9\xf9\xbd\xe8\x6a\x06\x00\xb7\xd1\x05\xdd\x81\xe7\ +\x7e\x37\xa1\x5d\x5c\xc9\xaa\x46\x57\x33\x62\xc0\xf8\x2f\xd0\xd9\ +\xfd\x40\x05\xdc\xa2\x48\x8b\x64\x47\xdd\x0b\xdd\x6a\x2e\xaf\x32\ +\xa2\x45\xb1\xd1\x2e\x00\x78\x81\x00\x6e\x81\x16\x37\xc3\x57\x44\ +\x24\xab\x44\x44\x08\x5f\x00\x20\x80\x03\x53\x8b\x44\xba\xc6\xdc\ +\x09\xdf\xf7\x6f\xc8\xab\x1e\xce\x1e\x00\x10\xc0\xa1\x56\xbc\xb5\ +\x48\x64\xda\x98\x7b\x55\x2f\xe1\x0b\x00\x7e\x63\x12\xd6\x99\x0e\ +\xce\xc8\xb0\x76\x31\x7c\x7f\x73\xfd\xb2\x87\x39\x3b\x48\x12\x13\ +\xb0\x80\xce\xef\x0b\xea\xa8\xd3\x98\x74\xf0\xf5\x22\x5e\x2d\x02\ +\x80\x70\x10\xc0\xa7\xe0\xd2\x6a\x56\x84\x2e\x00\x10\xc0\x84\x2f\ +\xa1\x0b\x00\x20\x80\xc3\x0c\xdf\x5a\x6e\x39\xe1\x0b\xb4\x68\xfb\ +\xe2\x75\x1c\x84\x94\x1e\xaf\x85\x5b\x6e\x23\x80\x7d\xa7\x1d\xe8\ +\x74\xa6\xf2\x05\x08\x5d\xb4\x7f\x1d\xf8\x16\xc6\xa9\x0e\x60\x17\ +\x2a\xde\x28\x97\x67\xf1\x2a\x80\xf0\x85\xa1\xeb\xc2\xa7\x10\x4e\ +\xed\x6b\x48\x91\x03\x25\x6f\x8d\xf0\x05\x08\x5f\xa4\xf6\xfa\x48\ +\x6d\x00\x67\x47\xd7\x27\x9a\xc0\x93\x4b\xf3\x2a\x43\xf8\xc2\x43\ +\x49\xbe\x03\x4c\xf8\xc2\xf5\xeb\xa4\x95\xfb\x23\x95\x01\x9c\x74\ +\xd7\xf3\xa1\xa5\x79\x35\x2d\xcb\x4d\x02\x10\xbe\x48\xf3\xf5\x92\ +\xaa\x00\x8e\x22\x9d\x68\xf8\xea\xc1\xbc\xd2\x83\x79\xf5\x11\xc2\ +\x17\x20\x7c\x91\xfa\xeb\x26\x35\x01\x1c\x45\x5a\xb2\x63\xeb\x13\ +\x0d\x5f\x6e\x07\x00\x40\xaa\x02\xb8\x46\xf8\x02\x00\x08\xe0\x98\ +\xc3\x4f\x6b\xe9\x4a\x30\x7c\x23\xc2\x17\xe8\x08\xdd\xcf\x08\xf5\ +\xfa\x09\xfa\x3d\x60\xad\xb5\x64\x12\x9a\xed\x5c\x7f\xc5\x88\xf4\ +\x05\x00\xa4\x2e\x80\x93\x08\xdf\xc9\x81\xbc\x9a\xc6\x26\x8f\x00\ +\x80\xb4\x06\x70\x12\xb3\x9d\x19\xeb\x05\x00\xa4\x36\x80\x93\x7a\ +\xcd\x88\xf0\x05\x00\xb4\x82\xce\x52\x03\x0e\xdd\x40\xf8\x02\x00\ +\x52\x5c\x01\xc7\x5d\xfd\x52\xf5\x02\x00\x52\x5f\x01\x13\xbe\x40\ +\x98\x7c\xde\xef\x15\x5c\x3f\x41\x57\xc0\x49\xbc\x6a\x14\xe5\x96\ +\x13\xbe\x00\x80\x74\x07\x70\xdc\xe1\x4b\xe5\x0b\x00\x30\x92\x5f\ +\x3e\x7f\x79\xba\x9d\x81\x74\xa0\x1b\x1a\x21\x5e\x37\xde\x06\x30\ +\xe1\x0b\xd0\x98\x02\x3e\x5f\x2f\x5e\x06\x30\xe1\x0b\x24\x67\xfb\ +\xe2\x75\x89\xdd\x0f\x84\x30\x5c\xbf\x4e\x5a\xb9\x3f\xbc\x0a\x60\ +\x35\x32\xac\x09\x5f\x80\xc6\x15\x08\xe1\xfa\xf0\x26\x80\xb5\x8e\ +\x7f\x81\x2b\xc2\x17\xa0\x91\x05\xd7\x85\x2d\xde\xcc\x82\x8e\x73\ +\xb6\xf3\x4f\xaf\x5b\x26\xe7\x4e\xef\x26\x7c\x01\x4f\x1a\x5b\xb6\ +\x2c\xe4\x3a\xf0\x91\xf3\x01\x9c\xc4\x7b\xbe\x84\x2f\x40\x23\x9c\ +\x94\x38\x1e\x26\xe8\x41\x70\xa4\xb0\x74\xf9\xcb\xd5\x22\xcd\x7b\ +\xbe\x00\x80\x20\x39\x5b\x01\xb3\x9d\x20\x00\x80\x0a\x38\x05\x08\ +\x5f\x00\x00\x01\x1c\xa3\xbe\x9e\xe9\x84\x2f\xd0\xa2\x24\xdf\x05\ +\x06\x42\xb9\x2f\x9c\x0c\xe0\xb8\xba\x9f\x2b\x17\x5e\x2c\x6f\xf7\ +\xe7\x68\x48\x00\x00\x54\xc0\xd5\x28\xbe\xbf\x75\xff\x05\x17\x11\ +\xbe\x00\x80\x44\x38\x35\x09\x2b\xce\x89\x57\x74\x3b\x03\x00\x52\ +\x5f\x01\x47\x3a\xbe\xf0\xbd\xfd\xbc\x3e\xc2\x17\x00\x40\x00\x8b\ +\x88\x64\x47\xe3\x09\xdf\xd9\x3d\xd3\xe5\xaf\xe7\x5d\x4e\xf8\x02\ +\x06\x30\x11\x0b\xe8\xec\x7e\x48\xd5\x2c\xe8\xb7\x98\x70\x05\x00\ +\xa0\x02\x8e\x17\xdd\xce\x00\x00\x02\xf8\x18\x71\x8c\xfd\x12\xbe\ +\x00\x00\x02\x38\xe6\xf0\x8d\x72\x84\x2f\x60\x0b\xe3\xc0\x40\xfb\ +\xf7\x41\x22\x01\x5c\x8d\x92\x59\xeb\x19\x00\x80\xd4\x56\xc0\x5a\ +\x44\xa6\x8d\xc5\x13\xbe\x7d\x3d\xd3\x45\xf1\x7c\x0e\x00\x20\x80\ +\x45\xe2\xca\xc3\x32\xcb\x4c\x02\x00\x08\xe0\x63\x02\x38\xa6\xae\ +\xe7\x02\xcb\x4c\x02\xb1\x60\x1c\x18\x5c\xff\xed\x89\x75\x29\xca\ +\x5a\x0c\xeb\x3c\x33\xe3\x19\x00\x40\x05\x7c\x62\x38\x5a\xfe\xfc\ +\xc3\x03\x84\x2f\x00\x80\x00\x3e\x89\xed\xc9\x57\x4c\xb8\x02\x92\ +\x41\x37\x34\xb8\xee\x1d\x0e\xe0\x38\xc6\x7e\x69\x01\x00\x00\xbe\ +\xb0\x3e\x06\x1c\xe7\xfb\xbe\x19\x12\x18\x00\xe0\x09\xef\xd7\x82\ +\x5e\xd4\x3b\x53\xf4\x60\x5e\x31\xf9\x0a\x48\x16\xdd\xd0\xe0\x7a\ +\x4f\x59\x00\x8f\x5f\xb3\x80\x9b\x1e\x00\x40\x05\x7c\x2c\x96\x9b\ +\x04\xa8\x0a\x00\xae\xf3\x98\x03\x98\xf0\x05\x00\xe0\xf4\xba\x7c\ +\xfd\xe2\x8c\xf9\x02\x00\x7c\x66\xa5\x02\xa6\xfa\x05\xd2\x8b\x6e\ +\x68\x70\x7d\x27\x18\xc0\x54\xbf\x00\x00\x04\x18\xc0\x00\xa8\x82\ +\x01\xdf\xaf\x6b\xe3\x01\x4c\xf7\x33\x00\x00\x31\x07\xf0\x07\x55\ +\xbb\x5f\x96\xae\x67\x80\x2a\x18\x48\xc2\x8e\x0f\xf2\x6e\x07\x70\ +\xcf\x46\xfb\xd5\x2f\x21\x0c\x00\xa0\x02\x06\x00\xaa\x60\x50\xfd\ +\x26\x1b\xc0\xb6\xc7\x7e\xa9\x7c\x01\x00\x49\x32\x9d\x73\x46\x02\ +\x38\xb2\xdc\xf1\x4c\xf8\x02\x54\xc1\x40\x48\xd5\xaf\xb1\x00\xb6\ +\xb9\x0d\x60\x44\xf8\x02\x00\x02\xd4\x71\x00\xab\x91\x61\x6d\xb3\ +\xfb\x59\xf3\x52\x13\x40\x15\x0c\x38\x52\xfd\xaa\x91\x61\x5d\x8b\ +\x1c\xaa\x80\xad\x85\xef\x60\x5e\x65\xb8\x6d\x01\x42\x18\x70\x20\ +\x7c\x8f\x06\xa7\xa1\xe4\x64\x16\x34\x00\x00\xad\x14\x87\x86\xba\ +\x66\x33\xed\x7f\x01\x56\xbd\x02\x40\x15\x8c\x74\x55\xbf\x22\x22\ +\xd9\xd1\xf5\x5a\x8d\x0c\xeb\x4e\x27\x20\xb7\x1d\xc0\x55\x66\x3e\ +\x03\x20\x84\x91\xb2\xf0\x3d\x2e\x07\x3b\x1c\x0b\xee\xa8\x02\xb6\ +\xe5\xf0\x00\xe1\x0b\x00\x70\xdb\xd3\x3f\xdf\xdf\x51\x12\xb6\x1d\ +\xc0\x5d\x16\x47\x8f\xbf\xbe\xe7\x45\xba\xb6\x01\xaa\x60\xc0\xd9\ +\xea\x57\x44\xe4\x96\x73\x67\x75\x74\x1d\xb7\x15\xa3\x5a\x6b\x79\ +\xfc\xa7\xfb\xad\x85\xe4\x96\xdf\xfe\x8a\x2b\x01\x20\x84\x01\x67\ +\xc3\x57\x44\x64\xda\xd8\xb0\x5e\xf2\xfc\x8e\xb6\xb3\xb0\xab\xad\ +\xd4\x1e\x5d\x6f\xb5\x42\x7d\x63\x51\x8e\x1b\x13\x00\xe0\xbc\xcd\ +\xbf\xfb\x75\xbc\x15\xb0\x4d\xbc\xfb\x0b\x50\x05\x03\xae\x57\xbf\ +\xc7\xe5\x56\x9b\x25\x29\xef\x01\x03\x20\x84\x41\xf8\x76\x12\xc0\ +\x21\x54\xc0\xeb\x2e\x99\xcf\xd5\x00\x10\xc2\x80\x37\xe1\x2b\xd2\ +\xfe\x7e\x08\x2d\x07\xf0\x13\x3f\xb3\x33\xf9\x6a\xf1\xd9\x33\xe5\ +\x4f\x66\xcd\xe2\x26\x04\x00\x78\xa5\xdd\x45\xa9\x5a\x0e\xe0\x7f\ +\xf5\xf2\x2e\x2b\x3f\x60\xf3\xd5\x0b\x08\x5f\x80\x2a\x38\xf5\x16\ +\x6e\xb9\xcd\xeb\xcf\x4f\x5b\xf5\x5b\x77\xb8\x8d\x45\x39\x9c\xe9\ +\x82\x8e\x78\xf3\x17\x20\x84\x09\x61\x78\x18\xbe\x22\x22\x4b\x77\ +\xb5\xfe\x3a\x92\x33\x01\xac\xb8\xed\x00\x10\xc2\xf0\x30\x7c\x45\ +\x44\x46\xaf\x6c\xbd\x17\xd7\x9d\x00\xe6\xba\x00\x40\x08\x8b\x88\ +\xbd\x6e\xe2\xb4\x77\x3f\x6f\x5f\xbc\x4e\xcd\xee\x99\x6e\xe5\xb3\ +\x7b\x36\x0e\xdb\xab\x80\xab\x91\xbd\xdd\x8f\xd8\x78\x01\x00\x21\ +\x6c\x37\x2c\x09\xdf\xa9\xeb\xe9\xad\xfe\x9c\x5a\xf3\x47\x17\xdb\ +\x29\x24\x5b\xcc\xc8\xa6\x03\x78\xda\x98\x9d\xf0\xad\x5c\x78\xb1\ +\x00\x00\x21\x6c\x2f\x34\x09\xdf\xe3\xaf\xa3\xfb\xfe\xf0\x22\x6b\ +\xd7\x55\xad\x85\xc9\x58\x89\x77\x41\x17\x5e\x7f\x8d\x56\x06\x00\ +\x21\x6c\x29\x3c\x09\xdf\x78\xaf\x9f\x56\x2a\x55\x56\xc2\x02\x40\ +\x23\x1a\x68\x08\x13\xbe\xf1\x5f\x37\xad\xf4\x16\x77\x25\x7d\x80\ +\x7e\x7b\xfd\xb2\x7b\x68\x5e\x00\x34\xd3\x98\x2e\xdc\x72\x5b\x6a\ +\x5f\x58\x3c\x36\x4c\xb7\x2f\x5e\x47\xe8\x3a\xfa\xd0\xf6\xf8\xa5\ +\xcd\xaf\xe8\xa8\x74\x93\xab\x48\xdb\x98\x80\xc5\xe4\x2b\x00\x6d\ +\x04\x11\xab\x06\xc0\x48\xf8\x26\x9d\x6b\x0d\xbb\xa0\xb5\xb6\x38\ +\xfb\x99\xeb\x04\x80\x27\x95\x0d\xb8\x3e\x9a\x0d\xf5\x39\xe3\xa3\ +\x4d\xc5\x5b\xc3\x2e\xe8\x6a\x64\xf1\x9b\x6a\xe1\x05\x60\x13\x87\ +\x51\x6b\xb9\xee\x0b\x57\x9f\x74\xc2\xb7\x3f\xbb\x8b\xa3\xeb\x6b\ +\x95\x77\xed\xfc\x53\xde\xc0\x9c\xd3\x0f\x1b\x59\x2a\x61\xb8\xfa\ +\x70\xf6\xf6\xa1\x83\x66\x2a\xe0\x1f\xfd\xe3\x84\xb5\x8b\x9c\xbb\ +\xa7\x75\xb5\x48\xcb\xc2\x6b\xe7\xeb\xff\xf9\x3f\xfe\xbb\x5e\x78\ +\xed\x7c\xbd\xf0\xda\xf9\xfa\x54\xe1\x5b\x6f\xc4\xb7\x6c\xde\x74\ +\xf4\xbf\x5b\x78\xed\x7c\x1d\xb1\xe6\xa7\x73\xfe\xf3\x37\x57\x1f\ +\x3d\x3f\x9b\x37\x6d\xd4\x67\x1a\x16\x7a\xe5\xd5\xd7\xf4\xc2\x6b\ +\xe7\xeb\x9b\xbf\x74\xa3\xbe\xf9\x4b\x37\x1e\xfd\x77\x34\xb6\x20\ +\x7c\xdd\xba\x1e\x9a\xb9\x29\x1b\x8e\x01\xdb\xea\x7e\x16\x11\x89\ +\x06\xf3\xac\x40\xd9\x82\x8d\x1b\x36\xe8\xd2\x83\xc5\x8e\x3f\xe7\ +\xb2\x2b\xae\x92\xbf\xf8\xf6\x77\x38\xf4\x0e\x38\xf8\x41\x55\x72\ +\xfd\xd7\x76\x7c\x8f\x6d\xd9\xf1\xbc\xea\xca\xa6\xf3\x94\x52\x09\ +\xa3\xdd\xf0\x4d\x3a\xdf\x12\x0b\xe0\x83\x4b\xf2\xea\xac\x69\x5c\ +\x38\x0d\x4f\x62\xa4\x65\xd1\x1f\x5f\xad\x87\xff\xf7\x86\xa7\xf3\ +\xff\x62\xe9\x4d\xa6\x3e\xf7\xb2\x2b\xae\x94\x97\x7e\xb4\x9b\x2e\ +\xcd\x24\x02\xc3\x72\xc5\xba\xed\x1f\x9e\x57\x2a\x65\x8f\xb6\x84\ +\x30\xe1\xdb\x8e\x5f\x1e\x9a\xd4\xe7\x8c\xff\x30\xb1\x00\x6e\xd8\ +\x05\x6d\x6b\xdd\x4c\xc2\xb7\x41\xf7\x85\xd6\x47\xc3\x57\x44\xc4\ +\x64\xf8\x8a\x88\xbc\xf4\xa3\xdd\x47\xc3\x40\x6b\x2d\x69\xed\xc6\ +\x0c\x29\x78\xeb\x4e\x37\x24\x11\x7a\x23\x4c\x97\x34\xe7\xbc\x55\ +\x9f\xea\xe9\x56\x49\xbe\x8d\x93\x48\x05\xcc\xeb\x47\x6e\x34\xd4\ +\x27\xba\xf3\x9e\x3f\x93\xaf\xfc\xe9\x57\x39\x37\x01\x9d\xd3\x47\ +\x1e\xfb\x5b\xf9\xec\x67\x3f\x9b\xaa\x73\x4a\x35\x4c\xd5\xdb\x72\ +\x10\x5a\xc8\x39\x23\x15\xf0\x07\x4b\xcd\x87\x25\xf3\x80\x4e\xaf\ +\x96\xe0\xc1\x79\xec\xbb\x7f\xc9\x09\xb0\x60\xf2\x70\x94\xd8\xdf\ +\xfe\xfa\x9d\x5f\x95\xb4\x4d\xbc\xa3\x12\xe6\xfc\x3a\xa1\x89\xdb\ +\xae\xe1\x6b\x48\xcc\x92\x0a\xbf\x4a\x3a\xf1\x3b\x30\x2e\x1c\xd6\ +\x39\x5d\xf4\xc7\x57\xeb\x2d\x3b\x76\xaa\xae\x6c\x7a\x56\x9e\xad\ +\x37\xd2\x54\xc3\x04\xaf\xcb\x1a\xde\x91\xdd\x63\xc3\x5c\xc0\x31\ +\x70\xa9\x4a\x61\x3c\x38\x3c\x8b\x17\x5c\xc3\xab\x4a\xe0\x3c\xc6\ +\x19\xae\xa3\x8d\xb3\xf3\x8c\x01\x7c\xfb\xcb\x2f\xd2\x10\xc7\x58\ +\xa5\x50\xb9\x85\xa3\xfe\xbe\x36\xe7\xd4\x8d\xc6\x9b\x20\xe6\xdc\ +\x25\x52\x58\x35\xb8\xe3\x4e\x3b\x09\xcb\xe6\xfb\x51\xb5\x5c\x5e\ +\x65\xb8\x1d\x8e\x56\xbe\xae\x85\xef\x49\x37\x01\x5d\xd2\x2d\xf9\ +\x0f\xff\xfe\x1b\xfa\xa5\x1f\xbd\xc0\xf9\x74\x10\x5d\xd2\x54\xbd\ +\x71\xe7\xdd\x99\x26\x1d\x9f\x76\x0c\x38\xca\xe5\x55\x33\x25\x74\ +\x5b\x5f\x88\x25\x28\x9d\xad\x7c\x4f\xfd\x14\xa7\x25\xc3\x64\x80\ +\x60\xaa\xcc\x34\x8f\xf3\x33\x36\x4c\xf0\xba\xe4\xf4\x5d\xd0\x16\ +\x0f\x01\x6d\xb9\x5f\xd6\x3e\xbc\x86\xc6\x0a\x34\xf2\xe0\xbc\xc4\ +\x16\xc0\x96\x3c\x7e\xe9\x7c\xa1\xfb\xd9\x9f\x6a\x49\x44\xe4\x8e\ +\xbb\xff\xec\x61\xce\x56\x58\xf6\xbc\xf6\x7f\x53\xff\x50\xc5\xd8\ +\x30\xe7\xa2\x2e\xa9\xb5\x29\x4e\x3b\x06\xac\x45\x24\xc3\x22\x1c\ +\xa9\x0f\xdf\xe3\x6e\x12\xc6\x82\x39\xa7\x21\x9f\x3f\xba\xa5\x53\ +\x5d\xf1\x5a\xdb\x76\xb7\x9d\x31\x60\x00\x61\x2b\x3e\x58\xe6\x20\ +\x9c\x22\x0c\x08\xe2\x74\x05\x6f\x92\x32\x1c\x82\xf8\xad\x59\x5d\ +\xf1\xf2\x06\xe7\xd5\xa4\xd3\x3c\xe1\x6a\x3f\x8f\x4d\xf9\xc1\x22\ +\xe7\xf4\x34\xe1\x40\x40\x70\x6c\xe3\x40\x05\x9c\x80\x91\x1f\xfe\ +\xc0\xdb\xef\x1e\x69\x61\x0c\xff\x04\xd5\x5a\xc4\x41\x08\xb2\x8b\ +\xe0\xc7\x47\x9e\x54\xfe\x88\x63\x41\xc5\x4b\x00\xc3\x81\x00\x8e\ +\xb4\x64\xb2\xdc\x4b\xc7\xfa\x4f\xff\xf1\xdf\x51\x45\xa6\x21\x88\ +\x09\x63\x42\x97\x00\x06\xdc\x72\xf9\x15\x57\xc9\xff\x79\x71\x37\ +\x07\x82\xaa\x18\x04\x2f\x01\x0c\x7b\x78\x87\xfb\x64\xcb\xfe\xe5\ +\xf2\xa7\xff\xdb\xa3\x7f\x75\x13\x47\x82\xaa\x98\xd0\x05\x01\x0c\ +\x6b\xb2\x0c\x00\x9f\xe4\x0f\x66\xfc\xb3\x9b\xa5\xa9\xcd\xc7\x40\ +\x18\x13\xba\x20\x80\x13\xa1\xb5\x96\xeb\xbe\x70\xb5\xd7\x0d\x35\ +\xdb\x15\x9e\xec\x7a\xcf\x77\x1a\xe2\x9c\x9e\x7c\x3c\x8c\x84\x71\ +\x60\x81\x4c\xe0\x12\xc0\x5e\xbb\xe5\xcb\xcb\x83\xa8\x92\x68\xb0\ +\x0d\x35\xd6\x48\x57\x75\xec\x59\x20\x13\xb8\x04\x70\x50\x7e\xf1\ +\xf3\x9f\x71\x10\x00\x02\xd9\xb9\x50\x26\x6c\x09\x60\x00\x20\x94\ +\x2d\x04\x34\x01\x4b\x00\x03\x00\x4c\x07\xf4\x99\x82\x97\xa1\x22\ +\xa7\xb1\x14\x25\x00\x00\x04\x70\xd8\x2e\xbb\xe2\xaa\x20\x7e\xc7\ +\xe6\x1d\x3b\x79\xaa\x46\xb0\x36\x6c\x7d\x2e\x88\xeb\x7b\xfc\xef\ +\x9f\xe7\x3e\x25\x80\x51\xf7\x17\xdf\xfe\x8e\x0a\xa1\x4b\x68\x5a\ +\x96\xcb\xa6\x2e\x84\xf3\x49\x37\xe5\xf1\x7a\xba\xb3\xde\x1f\x93\ +\xed\xcf\xee\x52\xbc\xb3\x4f\x00\x23\x30\x97\x5f\x79\x15\x07\x01\ +\x00\x08\x60\xc4\x6d\xed\x7f\xf9\x36\x8f\xd5\x27\x28\x3c\xc0\xbe\ +\xba\x00\x08\x60\x58\xb6\x75\x7c\x33\x0b\x4f\x9c\xa0\xf2\x50\x91\ +\x83\x00\x80\x00\x86\x5d\x8b\xfa\xaf\xa7\x02\x3e\xc1\x39\x9f\x3e\ +\x97\x83\x00\x80\x00\x86\x5d\xd9\x0c\x97\xcc\x89\x1e\x7f\x7a\x3d\ +\x0f\x25\x00\x08\x60\x1f\x6c\xfb\x07\x3f\x5f\x0f\xd8\xfe\xec\x2e\ +\xc5\x76\x84\xa7\x7a\x28\x51\xde\xce\x9a\x65\x06\x74\x78\xc7\x86\ +\x73\x4a\x00\xe3\x0c\x7c\x4c\xb1\xdb\xef\xfa\xb7\x9c\xb8\xc0\xfc\ +\xf9\x50\x89\x83\x00\x10\xc0\xe9\x33\xb8\xec\x8b\x5e\x7d\xdf\xdb\ +\xbe\xf2\x55\x9e\xaa\x1b\x58\xff\xc3\x0d\x0f\xfb\xf4\x7d\xcf\x3f\ +\xff\x7c\x4e\x1a\x40\x00\xa7\xcf\x7d\x7f\x5e\xf0\x26\xd0\x36\x6d\ +\xdb\xa9\xba\xb2\xe4\x6f\x23\x9f\x38\x7b\xc6\x7d\x3e\x7d\xdf\xb9\ +\x17\x7f\x96\x93\xda\x80\x4f\xdd\xb9\x7f\xf9\xbd\xbf\xa1\xfb\x99\ +\x00\x46\x33\x94\xf2\xe7\xe6\x9e\xd6\xc5\x3d\x4d\xb0\x70\xac\x9c\ +\x7f\xa0\x9a\x7b\x31\xe7\x94\x00\x06\xd2\xeb\xae\xaf\x7f\x83\x83\ +\x80\x44\x68\xde\xd0\x27\x80\x1b\x56\x7e\x23\xc3\x5c\x26\xc7\xf0\ +\x61\x46\x34\x53\x9f\x9b\xf7\x6f\xbe\xf2\xa7\xce\x1f\x2c\xaa\xdf\ +\x56\x83\x4d\x7b\x71\xcc\xb8\x4d\xfd\xcb\xa5\x44\x2a\xe0\x88\x08\ +\x3e\x2e\xdc\x5c\xbd\xb9\xb7\x3f\xbb\x4b\xd1\x58\x87\x75\xdc\x38\ +\x9f\xed\x3f\x80\x72\x9f\x22\x88\x00\x86\xfb\x0d\x23\x37\x34\xe7\ +\x14\x27\xdb\xea\xd8\x16\x7f\x9c\x53\x02\xb8\x65\x14\xc0\x6e\xdf\ +\x4c\xdc\xd4\x9c\x53\x9c\xa6\xc1\xcc\x28\x67\xf6\xd9\xe5\x9c\x06\ +\x1c\xc0\x36\xcf\x2c\x57\x8d\x9b\x37\xd5\x27\xcf\xf9\x34\x37\x75\ +\x80\x0d\x25\xe7\xd4\xac\x6c\x46\xc9\xd6\x04\xe7\x6e\x8c\x8e\x3f\ +\x4b\x97\xb3\x27\xa2\x5c\xfe\x8c\xe7\x49\xe9\x26\xa6\xce\x99\x1e\ +\xa0\xae\xe5\xf2\x8a\xbd\xa2\x9b\xe8\x29\xd0\x22\xd7\x7d\x61\xbe\ +\xf5\x0e\x03\x6e\xe6\x78\x2d\xbc\x96\x73\xca\x39\x6d\xcd\x86\xad\ +\xcf\xa9\x9e\xee\x2c\x07\xda\x56\x51\x68\x61\x12\x96\x1e\xcc\x37\ +\xbc\x07\x1b\x76\x41\xef\x9c\x98\xa0\xc7\x38\xb1\xab\x42\x64\x64\ +\xf3\xb3\x56\x1b\xd2\xcd\x3b\x76\xd2\x50\x07\x66\xf3\x76\xce\x69\ +\xac\x55\x4e\x0c\x2d\x24\xe1\xeb\x67\x01\xd5\xb0\x89\x6f\x54\x01\ +\xcf\x19\x1f\xd5\x6f\x1f\x3a\x68\xf4\x8b\x51\x01\x27\xff\x94\x4d\ +\x85\xc4\x39\x85\xdb\xe7\xf4\xfe\xa1\x92\xe4\x72\x03\x9c\x53\x4f\ +\x2b\xe0\x68\x30\xdf\xf0\xcd\xb0\x86\x15\xb0\xe9\xf0\x15\x11\x21\ +\x7c\xdb\x73\xec\x3b\xc3\x9b\xb6\xed\x54\xe7\x7c\xfa\xdc\x86\x8d\ +\x6e\x7d\xc2\xc8\x39\x9f\x3e\x57\xce\xf9\xf4\xb9\xb2\x79\xfb\x4e\ +\xc6\x8f\x9c\x3a\xa7\xbb\xd4\xa6\x6d\x3b\xd5\xb1\x6b\x83\x37\xda\ +\x5f\x78\xfb\xb3\x53\xff\xe6\x68\xc5\xbb\xe3\x79\xce\xa9\x43\x4e\ +\x3c\x3f\xcd\x3c\x1c\x6d\x7f\x76\x97\xaa\x9f\xf7\x4d\xdb\x76\xaa\ +\xcd\x3b\x76\x2a\xc2\x37\x05\xc1\xdf\xa8\x02\xb6\xf5\x82\x72\x6d\ +\x60\xb9\xca\x90\xc4\x46\x1c\xae\x46\x72\xfd\xc2\x6b\xf4\xa9\xc2\ +\x37\xcb\x31\x0e\xea\x9c\x6e\x7b\x76\x17\xeb\x2d\x78\xea\xe6\x2f\ +\xdd\xa8\x7f\xf1\xf3\x9f\x1d\xf7\x7f\xbb\xf4\x73\x57\xca\x7f\xfd\ +\xce\x77\x14\x8b\xdd\x24\x57\xf9\xea\xc1\xbc\x72\xb6\x02\x9e\xdd\ +\x33\xdd\xca\x0f\xcf\x8e\xad\x67\x6c\xd9\x90\x69\x5d\xa7\x3e\x8d\ +\x84\x6f\x58\xe7\xf4\xee\xaf\x7f\x83\x37\x08\x3c\xf6\xd4\xff\xfa\ +\xfe\x49\xa7\x8f\xf0\x75\x23\x84\x53\x57\x01\xd7\x35\x33\x53\x0c\ +\x00\x00\x9f\xc2\xd7\x48\x05\xfc\x8b\xfe\x65\x9c\x25\x00\x00\x5a\ +\xaa\x2e\x1b\xff\x27\x0d\x03\x78\xe6\x47\xba\xad\x55\xa8\x8d\x5e\ +\x52\x06\x00\xc0\x37\x5f\x3b\xb7\xaf\xa9\xcd\x31\x1a\x06\x70\x86\ +\x25\xb1\x00\x00\x68\xda\x63\xf3\x2e\x6b\x2a\xdd\x9a\x5a\x0b\xda\ +\xd6\x38\x2d\xf9\x0b\x00\x08\x49\x34\x98\x57\x99\x26\x27\xd6\x25\ +\xba\x1b\x92\x1a\x19\xd6\xec\x0f\x0c\x00\x48\x22\x7f\x6c\x7c\xee\ +\x6f\x3f\x98\x7c\xaa\xd9\xff\x96\xed\x08\x01\x00\x30\x44\x8b\xcc\ +\x21\x80\x01\x00\x88\xd9\x27\xb7\xfc\xf0\x0a\x6f\x02\xb8\x3a\xc0\ +\x4c\x68\x00\x40\x18\x6a\x2d\xbc\xdd\xd3\xd4\x76\x84\x22\x53\x3b\ +\x7e\x64\x47\xed\x8d\xd7\xb2\x20\x07\x00\xc0\x36\x9b\xf3\x8e\xee\ +\x9c\xd5\x27\x8f\x5e\x72\x79\xd3\x59\xd6\xd5\x74\xa9\xac\xa6\x42\ +\x92\x49\x53\x00\x00\x1c\x6f\x72\x20\xaf\xa6\xb5\xd8\xa7\xec\xcc\ +\x18\xb0\x26\xd6\x01\x00\x9e\x7a\xf8\xcd\xbd\x2d\xa7\x18\x93\xb0\ +\x00\x00\xa9\xb1\xa8\x77\xa6\x95\xcf\xdd\xf2\xdb\x5f\xb5\xfc\x6f\ +\xdc\xa9\x80\x85\x12\x18\x00\x60\x8f\x1a\x19\xd6\x1b\xe6\x2f\xb0\ +\xf2\xd9\x1b\xaf\x5e\xd0\xf2\x3c\xa6\x96\x03\xd8\xd6\x64\xa9\xec\ +\xe8\x7a\x5d\x8b\xb8\x40\x00\x00\x36\x8a\xbc\x29\xdd\x63\xc3\xc6\ +\x3f\xbb\x96\xcb\xab\x6c\x1b\xc9\xe8\x54\x17\xf4\x05\xdb\x46\x29\ +\x83\x01\x00\xc6\x45\x16\x0b\xbc\x76\xf7\x4c\x70\x2a\x80\xdf\x39\ +\x74\x90\xab\x04\x00\x60\x5c\xd7\x98\xc5\xd7\x68\xdb\x0d\x6e\xd7\ +\x0e\x12\xdd\xd0\x00\x00\xa3\xd5\xaf\xa3\x7d\xab\xce\x05\x70\xd7\ +\xd8\xb0\x8e\xe8\x88\x06\x00\x18\x62\x73\x11\x29\x91\xf6\x77\xf6\ +\xeb\x6a\xe7\x1f\xe9\xc1\xbc\xaa\x45\xf6\x4a\xfa\xdf\x7c\x30\xf9\ +\xbb\x4f\xf6\x74\x9f\xcd\x65\x03\x00\x70\x55\xa7\x93\x92\xdb\xae\ +\x80\x6d\x3e\x4e\x7c\x6a\xfc\x87\xbd\x9c\x5a\x00\x80\xcb\x26\x6b\ +\x9d\xfd\xfb\xb6\x03\xd8\x66\x37\xf1\x61\x36\x68\x00\x00\xb8\x5e\ +\x01\x77\x98\x83\x6d\x07\xf0\x3f\x56\x27\x77\xdb\xfa\x51\xd3\xc6\ +\x58\x6f\x1a\x00\xd0\x39\x9b\xfb\x17\x64\x3a\x2c\x15\xdb\x0e\xe0\ +\xff\xf7\xfe\xef\xaf\xf0\xf5\xa0\x01\x00\xc2\xf7\x41\xd5\xee\xe7\ +\x77\x65\x3a\x8b\xa9\xae\x76\xff\xe1\x95\x33\x7a\x95\x1e\xcc\x13\ +\x94\x00\x00\x27\x75\x59\x7a\xcf\xc7\xd4\x8a\x90\x4e\x6f\xc6\x40\ +\xb8\x03\x00\xda\xcd\x0f\x5b\x6f\xea\xd4\x0c\x7d\xaa\xf3\xbb\x21\ +\x1d\xae\x71\x21\x01\x00\x9a\x57\xf5\x64\x41\xa7\xae\x4e\x3f\x40\ +\x0f\xe6\x95\x16\x91\x8c\xa5\x6a\x75\x5a\x96\x8b\x09\x00\xd0\x42\ +\xb0\x59\x2c\x2d\x4d\x6e\x48\x64\xe4\x6b\xda\x7c\x67\x88\x6e\x68\ +\x00\x40\x88\xb9\x91\xe1\x60\x02\x00\x42\x10\x45\xda\xab\xbc\x30\ +\x16\xc0\xb6\xf6\x09\x26\x84\x01\x00\x0d\x33\x48\x6b\xc9\x8e\xad\ +\xb7\x9a\x13\xa6\x73\xae\x8b\xd3\x06\x20\x0e\x85\x42\xe1\x94\x8d\ +\x63\xa5\x52\x61\xe5\x3b\x74\x5e\xa4\x29\xff\x2e\x23\xef\x02\x58\ +\x8d\x0c\x6b\xdb\xd5\x36\x00\x7b\x81\x7b\xaa\xff\x8e\x10\x86\x89\ +\x6c\xf0\xed\x3b\x1b\x1d\x03\xd6\x83\x79\x65\x33\x1c\xe9\x86\x06\ +\xfc\x08\xde\x57\x5e\x79\x45\xb7\xfa\x6f\x38\x72\x70\x35\x1b\xf4\ +\x60\x5e\x45\x39\xf3\xd9\x96\xe1\xd4\x01\x30\x5d\xf5\x3e\xf9\xe4\ +\x93\xd6\x2a\x66\x20\x91\x90\xb7\x50\x5a\x12\xc0\x00\x8c\x86\x6f\ +\xa7\x9f\x11\x45\x91\x14\x0a\x05\xad\x35\x79\x8c\xc0\x43\xdd\xd6\ +\x45\x1e\x47\x97\x00\xa7\x0f\x08\x27\x7c\x4f\x85\xb1\x61\x84\x9c\ +\x35\xd6\x2a\xe0\xc9\xa5\xf6\x5f\x4b\xe2\x09\x19\x48\x96\xd6\x9a\ +\xae\x63\x24\xa6\xf4\xe3\xbd\x5e\x5f\x7b\xd6\x02\x38\x8e\x19\xe1\ +\x99\xd1\xf5\xdc\xf8\x40\x82\x8a\xc5\xa2\xd5\x7b\x90\x70\xc7\x99\ +\x8a\xb0\xa1\x37\x5f\xf3\xfa\x37\x58\x0b\xe0\xae\x0c\xdd\xc4\x40\ +\xe8\xd5\x6f\x1c\x18\x0f\x46\x12\x56\x5f\x78\xb1\xf5\x0c\xb3\x3a\ +\x09\x8b\x5b\x06\x08\xd7\xb6\x6d\xdb\x62\xbb\xc5\x8b\xc5\xa2\x7e\ +\xef\xbd\xf7\xa8\x88\x11\x9b\x7b\xe7\x5c\x64\xbd\x80\xb4\x1a\xc0\ +\x71\x94\xbf\xbc\x1b\x0c\x24\x53\xfd\x6e\xdc\xb8\x31\xd6\xbf\xb9\ +\x66\xcd\x1a\x5d\xaf\x88\x39\x03\xe9\x16\x47\xbb\x9f\x8d\x63\x18\ +\xd5\xf6\x1f\xa8\x0d\x2c\x57\x21\x9c\x0c\x00\xc7\x57\xa4\x1c\x05\ +\x84\x1a\xbe\x51\x6e\x79\x2c\x2b\x5b\x5a\x0f\xe0\x4c\x46\x89\x1e\ +\xcc\xab\xc9\x01\xfb\xb3\xa2\x6b\x11\x17\x27\x90\x06\x8c\x0b\x13\ +\xbe\xb6\xe8\xc1\xbc\x8a\x6b\x5d\xe9\xd8\x16\xe2\x98\x16\xc7\x5f\ +\x62\xca\x17\x90\xaa\x2a\x9c\xee\x68\x98\xad\x7c\xe3\x9d\x38\x1c\ +\xd4\x6e\x48\x17\x6c\x1d\xd5\x6f\xf7\xe7\x88\x61\x20\x65\xd5\x70\ +\xfd\xff\xcd\xc2\x1d\xe1\x8a\xa3\xc3\x23\xee\x0d\x95\x62\x5d\x8a\ +\xb2\x66\xf9\xe9\xe2\x9d\x43\x07\x19\x0f\x06\x80\x00\x65\x46\xc3\ +\x6b\xdb\x55\xdc\xe3\x28\x87\x6b\x22\xdd\x1b\xe2\xe9\xc7\xe7\x92\ +\x05\xec\x58\xbb\x76\xad\x9e\x98\x98\x70\xf6\xfb\x51\x09\x07\x16\ +\x54\x23\x61\x66\x86\x4a\x62\x22\x43\x9c\x55\x2a\x41\x0c\xd8\xe1\ +\xfa\xf8\x2b\x21\xec\xb7\x3f\xdc\x3a\xaa\xdf\x7a\xff\x60\x2c\x7f\ +\xeb\xf6\xf3\xfa\xe4\xaf\xe7\x5d\x1e\xfb\xf5\xc2\x6e\x48\x00\x82\ +\x0c\xb8\x42\xa1\xa0\x99\x2d\xed\xaf\xb8\xc2\x57\x44\xe4\xd1\x4b\ +\x2e\x4f\xe4\x5a\x4e\x24\x80\xe3\xac\x4a\xb9\xf5\x00\x4b\xf7\x96\ +\x27\xc1\xc6\x3b\xcb\x7e\x5a\xd4\x3b\x33\xbe\x20\x4c\xe8\x51\x32\ +\xb1\x0a\x38\xae\x10\x7e\xe1\xc0\x04\x37\x1f\xe0\x66\x05\x1d\x6b\ +\x35\xcc\x11\xf7\xcb\xd6\x89\x5f\xc7\x92\x43\x49\x0e\x53\x26\xda\ +\x05\x1d\xc7\x0f\xbf\xfa\xb9\x71\x89\xe8\x82\x02\x9c\x53\x28\x14\ +\x12\x09\x61\xc2\xd8\x7d\xa1\x4e\xba\x72\x2a\x80\xe3\x3a\x08\x59\ +\xb6\x2d\x04\x9c\x14\x45\x11\x21\x8c\x0f\xf3\x40\xeb\xd4\x84\xaf\ +\x13\x01\x1c\xd2\x13\x15\x80\xd6\xec\xd9\xb3\x47\x44\xa6\xba\xa3\ +\xeb\xff\x8b\x3b\x8c\xe1\xc8\xc3\x98\xd6\xb1\xec\xf1\x3e\xb9\xd4\ +\x9d\x37\x63\x52\x35\x0b\x5a\x8d\x0c\x6b\xba\xa3\x01\x77\xcc\x9d\ +\x3b\xf7\xa4\xff\x1b\x21\x9c\xc6\xf0\x8d\xaf\xa7\x32\x72\xe8\x8c\ +\x3b\x11\xc0\x71\x76\x07\xd0\x1d\x0d\x18\x7a\xa0\x35\xb0\x6e\x5f\ +\xbd\x02\x26\x84\xd3\x4b\x6b\x2d\xd9\x18\x57\xb9\xea\x76\x68\x01\ +\x66\xe5\xd2\xab\x04\xb5\x48\xa4\x6b\x2c\x9e\x13\xa1\x07\xf3\x4a\ +\x8d\x0c\x6b\x16\xea\x00\x92\x0b\xaf\x52\xa9\x24\x99\x4c\xe6\x4c\ +\x9f\x9f\xc8\xef\x62\x11\x8f\x18\x43\x68\x24\xbe\x36\xdf\xb9\xdf\ +\xee\xe2\xbb\x7c\x71\x8e\xd7\x26\xb5\x02\x0a\x10\x8a\x9f\xfc\xe4\ +\x27\xfa\xbb\xdf\xfd\x6e\x5b\xff\xb6\x5c\x2e\x37\x5d\x49\xc7\x19\ +\xc6\x77\xdf\x7d\xb7\x7c\xe6\x33\x9f\xa1\x5d\x20\x7c\xd3\x17\xc0\ +\x71\x87\xf0\xfb\x37\xe4\x55\x4f\x17\x37\x03\x90\x44\x15\xdc\x4a\ +\x77\x73\xdc\x15\x31\x95\x30\xe1\x6b\x13\x4b\x51\x8a\xc8\x59\x1b\ +\x87\x35\xb3\xa4\x81\xf6\xcc\x9e\x3d\xbb\xd3\x00\xb7\x12\xd6\x2e\ +\x3c\x5c\x20\xf9\x02\xcb\x65\x04\xf0\x31\xfe\x6e\xff\x7e\x2e\x0a\ +\xc0\x71\x71\x87\x70\xb5\x5a\xe5\xa0\x13\xbe\xe9\x0a\xe0\x28\xb7\ +\x3c\xf6\x6e\x83\xdb\x5e\xdd\x25\xb5\x88\x8b\x02\xc0\x87\x1e\x78\ +\xe0\x01\x4d\x25\xec\x67\xf8\x26\x91\x23\xad\x70\x76\xe4\x53\x29\ +\x75\x74\xa6\x72\xac\x07\xe4\xc8\x2c\x6c\x66\x47\x03\x7e\x54\xc1\ +\x2f\xbd\xf4\x92\x3c\xf3\xcc\x33\x56\xff\x5e\xa9\x54\xa2\x3d\xf0\ +\x2c\x7c\x7d\x68\xc3\x9d\xef\x82\x26\x08\x01\xb7\x4d\x4c\x4c\x24\ +\xfa\xf7\x2f\xbb\xec\x32\xb9\xeb\xae\xbb\xac\xfe\x8d\x95\x2b\x57\ +\xb2\xad\x21\xe1\x9b\xbe\x00\x26\x84\x01\xb7\x5d\x71\xc5\x15\x89\ +\x7f\x87\xbe\xbe\x3e\xeb\x7f\x83\x6d\x0d\x09\xdf\x54\x06\x30\x21\ +\x0c\xb8\xeb\xba\xeb\xae\x73\xe2\xde\x8c\x63\x72\x56\xa1\x50\xa0\ +\x12\x76\x38\x7c\xab\x03\xcb\xbd\xca\x09\x66\x41\x03\xe8\xac\x11\ +\xc9\xb8\xd3\x8c\x94\x4a\x25\xfb\xa1\xa2\xa8\x05\x5c\x0c\x5f\x11\ +\x91\x6c\xc6\xaf\x73\xe3\x55\x00\x53\x05\x03\x0e\x36\xb4\x4a\x39\ +\xb3\x60\x45\x26\x93\xb1\xbe\xab\x12\xaf\x25\xb9\x17\xbe\xb5\x81\ +\xe5\xca\xc7\x7c\x50\xbe\x76\xa7\xd8\x3a\xc1\xd5\x5c\x5e\x65\x89\ +\x79\xa0\xb5\x87\x63\xad\x8d\x8c\x91\x9a\x0e\x4e\x9b\x2b\x67\xb1\ +\x4a\x96\x1b\xe1\xeb\x73\x61\xe6\x6d\x17\xb4\xad\x83\x4e\xf8\x02\ +\xed\x55\xc1\x2e\xaa\x54\x2a\xd2\xdb\xdb\x6b\xe5\xb3\x79\x37\x98\ +\xf0\x4d\x6d\x00\x8b\x88\xdc\x39\xab\xcf\xf8\x67\xd6\xb8\xa5\x80\ +\xa0\xac\x58\xb1\xc2\xda\x67\xd7\x6a\x35\x0e\x70\x42\xe1\x3b\xe7\ +\xac\xe9\xde\x1f\x33\xaf\x03\xf8\xb1\xfd\xef\x70\xd5\x03\x68\xaa\ +\x12\xbe\xe5\x96\x5b\x8c\x7f\xee\xd0\xd0\x10\x8f\xec\x92\xcc\x84\ +\xab\x37\x17\xe5\xbc\xef\xaf\x64\x0f\xa0\x13\x2f\x24\x0e\x01\xd0\ +\x32\x1f\xe6\x92\xcc\x9b\x37\x4f\xe6\xcd\x9b\x27\x22\xc9\xed\x33\ +\x4c\xf8\x1a\xb8\xd6\x02\x9a\x8c\xcb\x6b\x48\x27\x5e\x4c\x24\x30\ +\xd0\xb2\xed\xdb\xb7\x7b\x55\x09\x56\x2a\x15\x59\xb2\x64\x89\x91\ +\xcf\x4a\xeb\x58\xb0\xd6\x9a\xf0\x4d\x6b\x00\x1f\xae\xd9\x39\xb9\ +\xe4\x2f\xd0\x3a\x57\x16\xe3\x68\x45\x7f\x7f\xbf\xb1\xcf\x4a\xdb\ +\x02\x1d\x5a\x44\x32\xa3\xeb\x09\xdf\xb4\x06\x70\xf7\x06\xb6\xb4\ +\x02\x5c\xe2\xe3\x86\x05\x26\x5f\x7b\x5a\xbb\x76\x6d\x2a\xda\x24\ +\xad\xb5\x64\x62\xdf\xd5\x28\xcc\x35\x20\xe8\x82\x06\x60\xa6\x31\ +\x99\x5a\x04\x23\xb5\x21\x7c\xe0\xc0\x81\x74\x9c\xe7\x04\x2a\xdf\ +\x50\xbb\x26\x09\x60\x00\xc6\x74\x3a\x1e\x9a\x54\x37\x6e\xa5\x52\ +\x31\xb2\x8c\xe5\xf8\xf8\x78\xd0\x55\x70\x14\xf3\xaf\x0b\x7d\xf5\ +\x43\x02\x38\x25\x27\x1a\x88\xc3\x9c\x39\x73\x3a\xfa\xf7\xc5\x62\ +\x31\xb9\x70\x89\xa2\x8e\x3f\x63\xd3\xa6\x4d\x41\x4f\xca\xca\x8e\ +\xc6\xd7\xf5\x9c\x86\x36\x99\x00\x16\x91\x5a\x8e\xf0\x05\xd2\x2e\ +\x9b\xcd\x9a\x0b\x8f\x00\x27\x64\x55\xde\xd8\x4b\xf8\x12\xc0\x22\ +\x87\x23\x01\x00\xa3\x94\x52\xb2\x6a\xd5\x2a\x23\x9f\xf5\xfd\xef\ +\x7f\x3f\xb8\x04\x2e\xbe\xfe\x1a\xe1\x9b\xf6\x00\x56\x23\xc3\xba\ +\x7b\xcc\x6c\x37\x08\xd3\xa9\x01\xd4\xab\xe0\x72\xb9\xdc\xf1\xe7\ +\x7c\xf1\x8b\x5f\xa4\x57\x8d\xf0\x0d\xb3\x02\x36\x7e\x10\xb8\x55\ +\x00\x23\xbe\xf6\xb5\xaf\x79\x7f\x37\x1d\xd9\x5e\xb1\xa3\xcf\x58\ +\xb9\x72\xa5\x4e\xdb\xbb\xc1\x84\x2f\x01\xdc\xde\x0d\xc7\x21\x00\ +\x8c\x85\x17\x8e\x09\x15\x02\x98\xf0\x0d\x29\x80\xfb\x7a\xcc\xed\ +\x80\x51\x1b\xb8\x51\x31\xfb\x19\x20\x80\x6d\x79\xff\xfd\xf7\x83\ +\xf9\x2d\x87\x07\xec\xb4\x95\x69\x6e\x83\xbd\x0a\x60\x35\x32\xac\ +\xdf\x39\x74\xd0\x60\x63\x41\x07\x00\x60\x5a\xb9\x5c\x0e\xa2\x41\ +\x35\xb1\x40\xc7\xea\xd5\xab\x83\xe9\x86\xee\xca\x88\x94\x2e\xbc\ +\xd8\xe8\x67\x46\xb9\xe5\xa9\x7e\x62\x4b\x75\x02\xd1\x39\x04\x50\ +\x05\x9f\x49\x6f\x6f\x6f\xc7\x9f\x51\x2c\x16\x83\x09\xe1\xc2\x05\ +\x17\x29\xae\x15\x02\x18\x40\xa0\x5c\xda\x2a\x70\xc5\x8a\x15\x46\ +\x2a\xe1\x62\xb1\xa8\x43\x58\xa0\xc3\x44\x5c\xd6\xbb\x9c\x19\xfe\ +\x23\x80\x01\x38\x1a\xc2\xec\xd9\xeb\xa6\x76\xbb\x8d\x7f\xd1\xbf\ +\x8c\xf0\x25\x80\x01\xd8\xd6\xd7\xd7\xc7\x41\x08\x94\x52\xaa\xad\ +\x00\xfd\x54\x4f\x37\xa1\x4b\x00\x1f\x7b\x21\x71\x01\x00\x36\x5c\ +\x70\xc1\x05\x41\xfd\x1e\x53\x3b\x26\x85\xb4\x4e\x74\x7d\x8b\xc0\ +\xc9\x26\x66\x47\x53\xf1\x9e\x26\x83\x7c\x98\x1c\xa0\x2c\xed\x3d\ +\xc9\x45\x01\xd8\x61\x32\x68\x4c\xee\xd9\x6b\xe0\x77\x99\x0c\xf5\ +\x60\xda\x9f\x33\xb5\xd1\xb4\xb3\x9e\x07\x70\xff\xce\x1d\x7a\xeb\ +\xc4\xaf\x09\x5f\x20\xc5\x61\xec\x42\x10\xbf\xf7\xde\x7b\xb2\x66\ +\xcd\x1a\x02\x18\x46\x78\xd1\x05\x6d\x3a\x7c\x01\xc4\x27\xa4\xa0\ +\x99\x3e\x7d\x3a\x27\x14\xe9\x0a\x60\x00\x70\xa2\xc1\xcc\x64\x8c\ +\x6c\xd6\x60\xb2\x67\x00\x04\x30\x00\x58\xe5\xca\x70\x99\xc9\xc5\ +\x23\xa2\x88\xbd\x55\xd3\x2c\xb5\x93\xb0\x18\x03\x06\xe2\x65\xa2\ +\xe2\x2b\x97\xcb\x4e\xad\x9e\x64\x6a\x52\x16\xe3\xc1\x54\xc0\x84\ +\x2f\x00\x6b\x4c\x84\x4c\xb1\x58\x94\x7d\xfb\xf6\x51\x91\x83\x00\ +\xb6\xad\x4a\xef\x0c\x10\x94\x7b\xee\xb9\xa7\xe3\xcf\x78\xe4\x91\ +\x47\x9c\x08\x3f\x76\x7e\x42\xd0\x01\x7c\xcf\x9e\x17\x79\xc4\x04\ +\x02\x72\xde\x79\xe7\x19\x49\x2d\x57\xaa\xcf\x4a\xa5\x62\x64\xc3\ +\x06\x26\x64\x11\xc0\xce\x29\x5f\x38\x97\x33\x04\x04\x24\x9b\xcd\ +\x1a\xf9\x9c\xfd\xfb\xf7\x3b\xf3\x9b\x56\xac\x58\x61\xe4\x73\xde\ +\x7d\xf7\x5d\x2e\x90\x94\x71\x7a\x12\xd6\xa1\xaa\xc8\x59\x1b\x19\ +\x03\x06\x42\x13\xd2\xe2\x1c\xf5\x8a\xbc\x58\x2c\x9a\xaa\xaa\x69\ +\x9f\xa8\x80\x1d\x78\x5a\x36\x7c\x19\xea\xc1\xbc\x22\x7c\x81\xa0\ +\x82\x9c\x83\x00\x02\xd8\x86\xee\x0d\xc3\x8c\x8b\x00\x01\x32\x59\ +\xe5\xb9\x10\xc2\x4a\x29\x29\x95\x4a\x9c\x58\x84\x11\xc0\xb6\x36\ +\x60\x00\x00\x2b\x8d\xa9\xa1\x55\xb2\x98\x90\x45\x00\x03\x80\xf5\ +\x2a\xb8\x54\x2a\x05\x35\x24\xa4\x94\x92\xa5\x4b\x97\x12\xc2\x20\ +\x80\x01\xb8\x5f\x35\x9a\x50\x28\x14\x9c\x19\x0f\xbe\xee\xba\xeb\ +\xe4\xa1\x87\x1e\x22\x84\x41\x00\x03\x48\x4d\x45\x1d\xdc\x83\x05\ +\xc2\xe6\xec\x6b\x48\xa6\xc7\x80\x99\xfd\x6c\xfe\x5c\x70\x4c\x61\ +\xe4\xde\x9c\x7a\x85\x27\xa8\xd7\x92\xea\x55\xb9\xa1\xdf\xc4\x7d\ +\x46\x05\x8c\x74\x34\x86\x22\x35\xfd\x61\xe8\x2e\xde\xb9\x43\x37\ +\x0a\xe7\x27\x7e\xb6\x9f\x65\x71\xd1\xfe\x03\x9e\x52\xc6\x42\xe6\ +\x95\x57\x5e\xa1\x22\x07\x15\x70\x27\x4f\xc3\x99\xd1\xf5\x2c\xbe\ +\xe1\x61\xcf\x03\xc7\x18\x06\xaa\x46\x23\xf7\xbe\x2b\xbb\x26\x99\ +\xa8\x82\xa9\x80\xc3\xd5\xe5\xda\x17\xaa\x46\x5c\x6b\x3e\x85\x6e\ +\xa3\xcf\x21\x94\x91\x54\x55\x1d\xd2\x43\x09\x21\x4c\x00\xc7\x22\ +\xb7\x7b\x07\x9d\x99\xd6\x7b\x19\x44\x32\xa3\xf1\xbc\x67\xcd\xf8\ +\x31\x92\xb9\xc6\xb5\x13\x21\x5c\xef\x86\xee\xb4\x12\xae\xf7\x0c\ +\x10\xc4\x61\x71\x6e\x0c\xb8\xef\xac\x8f\x72\x56\x2c\x8b\x34\xdf\ +\x01\x6e\x32\x15\x30\xc5\x62\xd1\xa9\xfd\x7a\x4d\x8d\x07\x47\x11\ +\x7b\xb4\x86\xc4\xb9\x31\xe0\xc3\x91\x48\xf7\x18\x33\xa0\x6d\xda\ +\x39\x31\xa1\x3f\xbf\x73\xdc\xbd\xaa\x85\xf3\x84\x23\xd6\xae\x5d\ +\xab\x27\x26\x26\x3a\xfe\x1c\x57\xc6\x82\x4d\x54\xc1\x22\x22\x33\ +\x66\xcc\x90\x7b\xef\xbd\x97\xfb\x84\x0a\xd8\x93\x6a\x8f\x46\xfd\ +\xc3\x80\x3b\xf2\x58\xe3\x62\xf8\x1e\x7d\x22\x1c\x19\xd6\xc7\xfe\ +\x8f\xd9\xd5\xe9\xb4\x62\xc5\x0a\x63\x95\x70\x48\x0e\x1c\x38\xc0\ +\xc5\x41\x00\xdb\x6b\x7c\x8d\x57\xbf\x34\xe0\x47\x8e\x83\x96\xcc\ +\xe8\x54\xa8\xb9\x1c\xbe\x27\x5d\xa0\xa3\xc3\x3a\xa2\xbf\x3a\x95\ +\xe6\xcc\x99\x13\xd4\xef\x31\xd5\x0d\xbd\x6f\xdf\x3e\x6e\x88\x40\ +\x38\xd5\x05\x6d\x2b\x1c\xd2\xd8\xb5\x59\x8d\x44\xa6\x8d\x85\xbd\ +\xa1\x45\x94\xcb\x87\x34\xd9\x15\xa7\x78\x68\x34\xb1\x40\x87\x6b\ +\xef\xe3\x9a\x5a\xa0\xa3\x50\x28\xa8\xe9\xd3\xa7\x73\xa1\x10\xc0\ +\xee\x06\xf0\x9d\xb3\xfa\xe4\xd1\x4b\x2e\x4f\x45\x33\xad\x8f\x54\ +\xfc\xd9\xd1\xf4\xec\x24\x15\xe5\xf2\x2a\x12\x91\xae\x13\x7e\x73\ +\x34\x98\x27\x9b\x03\x61\xe2\xdd\xe0\x52\xa9\xe4\xd4\xf2\x90\xac\ +\x92\x05\x91\x14\x8c\x01\xaf\xb9\x68\xee\xd3\x69\x39\x99\x73\xc6\ +\x47\x75\x9a\xc2\x57\x64\xaa\x8b\xba\xeb\x14\xbf\x39\xc3\x76\x96\ +\xc1\x30\x11\x32\x2b\x57\xae\x94\x5a\xad\xc6\xc1\x04\x01\x7c\xca\ +\xea\xcd\x52\x25\xfe\xcf\xbb\xbb\x6f\x0e\xba\x02\xd4\x53\xff\x53\ +\x23\xc3\xfa\x9d\x43\x07\xb9\xa2\x8f\xa1\x46\x86\xf5\x93\x3f\xdb\ +\xaf\x6b\xd1\x54\x97\x7c\x7d\x62\x57\x35\xe2\x35\x28\xdf\xdc\x77\ +\xdf\x7d\x1d\x87\xf0\xd0\xd0\x10\x07\x12\x6e\xb5\x51\xae\x74\x41\ +\xdb\xe8\x7e\x0e\x7d\xec\x57\x51\xe5\x75\x64\x76\xcf\x74\x79\xab\ +\x3f\x47\x17\x9e\x07\x4c\x2d\x51\xc9\x66\x0d\x20\x80\x63\x0a\x12\ +\x02\x18\x8d\xd4\x72\x79\xd5\xa8\xdb\xbe\x9a\xcb\xab\x2c\x4d\x5c\ +\xe2\x42\x9c\x94\x15\x45\x91\xac\x5c\xb9\x92\x10\x4e\x29\x76\x43\ +\x22\x7c\x53\xad\x99\x31\xf3\xae\xd1\x61\x4d\x97\xb5\x03\xd7\xbc\ +\xa1\x5d\x93\x5c\x1a\x0b\x36\x11\xbe\x26\x7b\x08\x40\x05\x4c\x05\ +\x4c\xe8\x86\x57\xbd\xb1\x20\x8c\x51\x26\x02\xc7\x95\x4a\xd8\x54\ +\x57\x74\xa9\x54\x52\x2e\xcd\xf4\x46\x63\x5d\x1c\x02\x87\x1b\x6d\ +\x2d\x22\x4a\x44\x09\x7d\x82\x86\xae\x00\x00\x0c\x24\x49\x44\x41\ +\x54\x93\x86\x42\x39\x9f\xd5\x48\xa4\x7b\x83\xbb\x0f\x52\x8b\xcf\ +\x9e\x29\x63\x57\x2d\x50\x4a\x89\xd4\x22\x91\x8c\x12\xc9\x66\xa6\ +\xae\xc1\xd0\xd4\x6a\x35\xc9\x66\xb3\x89\x7f\x8f\xfb\xef\xbf\x5f\ +\x56\xaf\x5e\xdd\xf1\xe7\x10\xbe\x54\xc0\x6d\x29\xbf\xbe\x57\xaf\ +\x7c\xe3\x35\xa3\x9f\xf9\xc2\xe7\xfb\xe5\xca\x19\xbd\xde\xb7\x1b\ +\x54\xbd\xa0\x82\x0f\xbb\x02\x9e\x7a\x38\xd3\x46\x96\xcd\x64\x2c\ +\x98\x00\x4e\x3c\x60\x42\xe8\xee\x23\x78\x41\x10\x37\x0c\x2c\x56\ +\xc9\x22\x88\xbd\x46\x9f\x85\x43\xea\xef\xf3\x12\xbe\x40\x83\x07\ +\x54\x43\x13\xb2\x0a\x85\x82\xb1\xd0\x03\x08\x60\xf1\x77\x03\x06\ +\xdf\x56\xb1\xd2\x83\x79\x15\xe5\xf2\x8a\x09\x46\x48\x8a\xa9\x4a\ +\x8f\x6d\xb7\x40\x00\x1b\x7b\x3a\xf6\xf0\x3b\x7b\x56\xf5\x2e\x3e\ +\x7b\xe6\x71\xc7\xba\x3a\x40\x08\xa7\xa2\xf2\x1c\x19\xd6\x77\xbf\ +\xfa\x22\x69\x65\x49\xb9\x5c\x36\xf2\x39\xbc\x96\xe4\xc9\xfd\x14\ +\xda\x18\xf0\xe1\x81\xbc\xea\xf2\xe4\xb1\xe2\xf1\x9f\xee\xd7\xff\ +\xfa\x95\x5d\x7e\xf5\x2e\xb4\x58\xed\xfe\xdd\xfe\xfd\xfa\xb6\x57\ +\x77\x71\xa7\x05\xc4\xb5\x15\xc4\x4c\x86\x4d\x68\xaf\x26\x99\xec\ +\x25\x00\x15\xf0\x19\x55\x3d\x08\x5f\x7d\xcc\xda\xcd\xa1\x87\xaf\ +\x88\xc8\x9f\xcc\x9a\xa5\x8e\xad\x90\x7f\xbd\x78\xd9\xd3\xdc\x76\ +\x7e\x7b\xdb\xb1\x35\xc7\x43\x0c\x18\xd7\x26\x87\xc1\x8e\xc4\xde\ +\x03\x8e\x2c\x6c\x9b\xf7\xe2\x3f\x4d\xe8\xab\x1c\x7f\xf5\x28\xe3\ +\xe9\x6e\x45\x9d\x8c\xf3\xd6\xff\xed\x31\x9f\x41\xf7\x18\x00\x02\ +\x38\xa9\x3f\xbc\xfa\x8d\xbd\xc6\x1b\xe1\xcf\x7d\xdc\xed\xf0\xf5\ +\x6d\x9c\xd7\xd6\xe4\xaa\xd3\x7d\x2e\xb3\xbf\x91\xf8\x35\xaf\xb5\ +\x28\x47\x26\x91\x2c\x59\xb2\x44\x36\x6d\xda\xc4\x49\x09\x58\x62\ +\x1d\xb6\xa6\x17\xde\x70\x9d\x6f\xe1\x12\x25\x30\xb3\x39\xca\x2d\ +\x57\x77\x9c\xd7\xc7\x5d\xe9\xb8\xdb\x1d\x3c\x47\x95\x4a\x45\x99\ +\xe8\x8a\x2e\x16\x8b\x12\x45\x91\x13\xbf\xa9\xbf\xbf\xdf\xc8\xe7\ +\x30\x21\xcb\xe1\x5c\x48\x6a\x12\x96\x8d\x40\x72\x6d\x02\xd6\x07\ +\x55\x91\x9e\x8d\xfe\x04\x6f\x2d\x97\x57\x19\x07\xfb\x10\xb4\x88\ +\x64\xa8\x8e\xdd\x79\x38\xcb\xe5\x95\xab\x6f\x1a\x98\x5a\xa0\xa3\ +\x54\x2a\x39\xb5\xb4\xa3\x89\x49\x59\xac\x15\x4d\x00\x5b\x0d\x60\ +\x97\x1a\x06\xba\x9b\x39\xde\x21\xf2\xe1\x3a\x79\xf9\xe5\x97\xf5\ +\x53\x4f\x3d\x65\xa2\xaa\x76\xea\x77\x99\x08\x61\x66\x44\xbb\x25\ +\xb1\x31\xe0\xbe\x9e\xe9\xf2\x8e\xa1\xd9\x94\xae\x55\x6e\xbe\x84\ +\x41\x48\x0b\x68\x9c\xe9\xb7\x10\xce\xe9\x62\x22\x7c\xeb\xd5\xb4\ +\x52\xe4\x15\xec\x49\xa4\x3f\x62\xc9\xf3\x3b\xf4\x3b\x06\x5f\x65\ +\xf8\xf9\xfb\x93\x89\x37\xb0\xd5\x48\x64\xf6\xf8\x28\xcb\x48\x22\ +\x58\xb5\x9c\x1f\x0f\x6c\x95\x4a\x45\xcd\x9e\x3d\xbb\xe3\xcf\x31\ +\xb1\x39\x82\x73\xe7\xd0\xa1\xbd\x90\x91\x50\x17\x74\x88\x1b\x30\ +\xd0\xe5\x1c\xc8\x0d\xc1\x03\xd4\x29\xb9\x3c\xee\x7b\x3a\xa6\x26\ +\x1f\xb9\xd4\x15\x6d\xa2\x1b\xba\x5c\x2e\x2b\x2a\x7b\x37\xc4\xde\ +\x05\x1d\xd2\xbe\xb6\x87\xaa\x22\x67\x79\x34\xc9\x8a\xd0\xb5\x73\ +\x8c\x42\x0d\x6d\xdf\xaf\x97\x4a\xa5\xa2\x4c\x84\x70\x14\x45\x41\ +\xed\xb5\x5b\x2c\x16\x35\x63\xc1\x29\xad\x80\x6d\x35\x56\x49\x34\ +\x16\x3e\x35\xbc\x3e\x2d\xd1\xe9\xa3\xc3\x35\x91\xee\x0d\xe1\x04\ +\x71\x35\x97\x57\xd9\x00\x9a\x68\x53\x55\xf0\xcd\x37\xdf\x2c\x97\ +\x5e\x7a\xa9\x13\xbf\xa9\x56\xab\xc9\xd0\xd0\x50\xdb\xff\x7e\xd5\ +\xaa\x55\x2a\x9b\xcd\x72\xd3\x3a\x20\x88\x26\xf9\x97\xfd\xcb\x26\ +\xe2\xae\xe2\x7d\x08\xdf\xc9\xa5\x53\x3b\x15\xe9\x41\xc2\xd7\xb6\ +\x69\xd9\x30\x7a\x18\xa2\x5c\x5e\x2d\xf9\xc4\x4c\xc9\x06\x52\x1f\ +\xdd\x7f\xff\xfd\x46\x7e\xc9\xdc\xb9\x73\x9d\xf9\x4d\x9d\x86\xe7\ +\xd0\xd0\x90\xe6\xdd\xe0\x94\x56\xc0\xa6\xdf\xe9\x8c\xeb\x49\xbd\ +\x1a\x89\x4c\x1b\xf3\xa7\xc2\x79\xee\x9a\x7e\xb9\xa6\xb7\x97\x6e\ +\x26\xa4\x5e\x88\x63\xc1\x47\x7e\x57\xc7\x9f\xc1\x78\x70\xca\x2a\ +\x60\xd3\xa7\x3a\xae\x27\x75\x9f\xc2\xf7\x6b\xe7\xf6\x11\xbe\xc0\ +\x87\xc1\xa9\x4a\xa5\x52\xc7\xf7\x83\xc9\x1d\x8a\x5c\x51\x2c\x16\ +\x35\x7b\x21\x27\x27\xd6\x49\x58\xb5\x48\xa4\xcb\xa3\x20\xf3\x6d\ +\x72\xcd\xce\x6b\xfa\xe5\xca\x3f\xe8\x55\x2c\x76\x03\x9c\x50\x69\ +\x18\xba\x29\xea\x21\x1c\xd2\x6e\x45\x54\xc0\x29\xa9\x80\x09\x5f\ +\x7b\x96\x7c\x62\xa6\x5c\xdd\xdb\xab\xb2\x19\xf3\xbd\x0c\x00\x8e\ +\xab\xa8\x83\xfa\x1e\x6b\xd7\xae\xa5\x04\x4e\x43\x00\xbb\x4c\x1f\ +\x99\x58\x55\xff\x9f\x57\xdf\x7d\x30\xaf\x36\xce\x5f\x40\xee\x02\ +\x67\xae\x5e\x8d\xdc\x23\x2e\x2d\x66\x61\x22\x84\x27\x26\x26\xe4\ +\xdd\x77\xdf\xe5\x02\x49\xa2\xd0\x8b\xb3\xff\xdf\xe5\x05\x38\x7c\ +\x7d\x97\xb3\x3a\x90\x57\x59\x1e\xa3\x80\x26\x1f\xb4\xcd\x6c\xd6\ +\x70\xcb\x2d\xb7\xc8\xbc\x79\xf3\x5c\x7a\xb8\x30\x15\xe8\x3c\xc8\ +\x87\x58\x01\xb3\xc2\x90\x39\x8b\x7a\x67\x4a\xfd\xf5\x22\xc2\x17\ +\x68\xa1\x1d\x52\x4a\xca\xe5\x72\xc7\x21\xf3\xe4\x93\x4f\x06\x39\ +\x29\x0b\x01\x06\xb0\x8d\xd5\xaf\x7e\xd9\xbf\x6c\xa2\x93\xea\x57\ +\xeb\x0f\xdf\xe7\xf5\xe5\xe1\xa0\x3a\xb0\x5c\xed\xfa\x7c\xbf\x8c\ +\x5f\x43\x77\x33\xd0\x49\x08\x9b\x7a\x3f\x98\x10\x86\xf3\x01\xfc\ +\xc2\x81\x09\xe3\x01\x77\x76\x77\xf7\xd9\x1d\xfd\xf0\xd1\x61\x9d\ +\x1d\xf5\x6b\x19\xc9\x6c\x46\xc9\x55\x33\x78\xbd\x08\xe8\xd4\x59\ +\x67\x9d\xc5\x41\x38\xf5\x03\x05\x3d\x95\x31\x8a\xe5\x35\xa4\x47\ +\xf7\xbd\xed\x44\x55\xed\x6b\x37\x38\x6b\x38\x03\xe6\xab\xe0\x90\ +\xd4\x27\x63\x1d\x19\xe3\x36\x12\xc2\x8c\x07\x07\x52\x01\xff\xd5\ +\xc5\x97\x2b\xf3\x37\x50\x8b\x17\xe8\x1b\x7b\xbd\x0a\xdf\x68\xf0\ +\xc3\x65\x24\xb9\x4c\x01\xf3\x01\x5c\xa9\x54\x94\x89\x90\x71\xa9\ +\x1b\xda\xe4\x83\x05\x0b\x74\x04\x12\xc0\x19\x65\xe3\x42\x6b\xfe\ +\xbf\x5d\xf3\xc6\x5e\x5d\x7c\xfd\x35\xbf\x1a\x08\xae\x4d\xc0\x1b\ +\x85\x42\x21\xb8\xc0\xfa\xfd\xef\x7f\xcf\x89\x0d\x21\x80\x6d\x2c\ +\xc0\xd1\x68\x09\xca\x63\xdf\xeb\xbd\xdf\x93\xf0\xd5\x54\xbd\x40\ +\xec\x4c\x75\xb5\x86\xb6\xd9\xfd\x9a\x35\x6b\x28\x81\x6d\x17\x5a\ +\xb6\x9f\xda\x92\x78\xf7\xd7\xc7\xb1\x5e\x42\x17\x48\xb4\x82\x0d\ +\x6e\xc3\x06\x13\x5d\xe3\x73\xe6\xcc\x91\x3b\xee\xb8\x83\xb6\xc9\ +\xc7\x00\xd6\x7a\x6a\xb6\x71\x5c\x61\xe5\xe3\x0a\x56\x53\xc7\x5f\ +\x09\xcb\xb1\x02\xc9\x8a\xa2\x48\x56\xae\x5c\xd9\x71\x1b\xe2\x52\ +\x08\x9b\x98\x94\x55\x2a\x95\x54\x86\x05\xe6\xad\xb0\x7a\x54\xe3\ +\x4c\xc3\x6a\xe4\x57\xd1\x5b\x7f\x88\x50\x8a\xf0\x05\x9c\x68\x0c\ +\x0d\x85\xcc\xda\xb5\x6b\x9d\x78\x98\x28\x14\x0a\x1d\x87\xaf\x88\ +\x18\x79\x28\x41\x02\x01\x1c\x57\xb0\xd4\x22\x91\x69\x63\xeb\xbd\ +\x7a\xa7\x97\x4b\x0f\x70\x8f\x89\xf1\xe0\x89\x89\x09\x17\x2a\x79\ +\xe3\x95\x34\x3c\x0b\x60\x1b\xc1\x55\x0f\xaf\x63\x27\x59\xf9\xb2\ +\xcb\xd2\x9d\xb3\xfa\xa4\x96\x23\x7c\x81\xd0\x6d\xdd\xba\x35\xb1\ +\xbf\x6d\x3a\x7c\x45\xc4\xc8\xfa\xd9\x88\x3b\x80\x2d\x3e\x35\x65\ +\x46\xfd\x1b\xef\x7d\xf4\x92\xcb\x55\x86\xf8\x05\x9c\x56\x2a\x95\ +\x3a\xbe\x4b\x17\x2c\x58\x10\x6f\xfb\x72\xa4\xad\xb5\xf9\x4e\x32\ +\xab\x64\x99\x67\x6d\x12\x56\xa4\x45\x4c\x2f\xf5\xa8\x07\xf3\xca\ +\xc6\xe7\xda\x52\xcb\xe5\x95\x12\x61\x8c\x17\xf0\x90\x89\xc0\x29\ +\x97\xcb\xd6\x57\xdd\x8a\x7b\x21\x10\x56\xc8\x32\xc7\xda\x52\x94\ +\x36\x42\xb2\xa6\x45\xba\x3c\x0a\x5f\xaa\x5d\x20\xdd\xb4\xd6\x56\ +\x02\x98\x4d\x20\xc2\x60\xad\x0b\xba\xbf\x77\xa6\xf9\xa7\x85\x51\ +\x5f\x76\x2d\x22\x7c\x01\x98\x9b\x59\x0d\x02\xb8\x25\xe3\x13\xbf\ +\x4e\xe5\x01\xbd\x73\x56\x9f\xb0\x47\x2f\xe0\x3f\x57\xd7\x89\x4e\ +\xba\xfa\x65\x2c\xd8\x1c\x6b\x63\xc0\xbe\xee\x3c\xd4\x2e\x5e\x2d\ +\x02\xc2\x63\x6a\x71\x8e\x1b\x6e\xb8\x41\x16\x2d\x5a\xe4\x6d\xe8\ +\xda\x7c\x48\xa1\x02\x46\x47\xa1\x4b\xf8\x02\x81\x36\x90\x86\xba\ +\x90\x37\x6e\xdc\xd8\x76\x88\x56\xab\x55\x67\x8f\x0f\x1b\x36\x38\ +\x58\x01\x57\x23\x91\x69\x63\x61\x57\xc0\x84\x2e\x90\x1e\x49\xad\ +\x15\xed\xc3\x64\x2b\xaa\xe0\xf6\x59\x99\x05\x1d\x7a\xf8\x02\x80\ +\xb5\x87\x7b\xad\xe5\xd5\x57\x5f\x95\x27\x9f\x7c\x92\x83\x11\x38\ +\xba\xa0\xa9\x7e\x01\xc4\x54\xe5\x8d\x8f\x8f\x37\x0c\xdf\x62\xb1\ +\xe8\x55\xf8\x32\x29\xab\x7d\x56\xba\xa0\x43\x9c\x80\x45\xe8\x02\ +\x30\x19\x36\x27\x76\x47\xc7\xd9\xdd\x5c\xff\xdb\xa6\xfe\x26\xdd\ +\xd0\xed\xe9\xe2\x10\x10\xbe\x00\x92\x61\x63\xe3\x84\x56\x83\x1f\ +\x54\xc0\xce\x86\xae\xd6\x2c\x25\x09\x60\xca\xbe\x7d\xfb\xf4\x23\ +\x8f\x3c\x62\x2c\x08\xe3\xaa\x7a\x1b\x85\xae\x89\xef\x41\x15\xdc\ +\x3a\xc6\x80\x1b\x54\xbc\x84\x2f\x80\xba\xf3\xcf\x3f\xdf\x58\x8b\ +\xe0\xd2\x0c\x67\x13\x55\x71\xa1\x50\xd0\x8c\x07\xb7\x86\x2e\xe8\ +\x53\x84\x2e\x00\x34\xaa\xf4\x7c\x09\x9b\x66\xc3\xf5\xcb\x5f\xfe\ +\xb2\x3c\xf3\xcc\x33\x1d\xff\xbd\x28\x8a\x58\x82\x93\x00\x26\x7c\ +\x01\xd8\x0d\x62\x57\x43\xb8\x9d\x8a\xd6\x44\xf8\x8a\x88\x1c\x3c\ +\x78\x50\x3e\xf6\xb1\x8f\x71\x81\x34\x21\xf5\x8f\x29\xd5\x01\xc2\ +\x17\x40\x1b\x0f\xee\xda\xcd\x02\xb8\xdd\xee\x64\x53\x93\xb3\xd6\ +\xac\x59\xa3\x5d\x3d\x36\x04\xb0\x43\x55\xaf\x1e\xcc\x2b\x36\x4e\ +\x00\xd0\x0e\xe5\xe0\x04\x91\x55\xab\x56\x25\x12\xde\x27\x2a\x16\ +\x8b\x24\x70\x33\xd7\x50\x1a\x67\x41\xd3\xe5\x0c\xc0\x94\xa4\xbb\ +\xa1\x67\xcc\x98\x21\x07\x0e\x1c\x90\x52\xa9\x64\x6c\xec\xb5\x5a\ +\xad\xca\x03\x0f\x3c\x60\xa2\x1a\xa7\xad\x8d\xbb\x02\xae\x0e\x2c\ +\x77\xf6\xa0\x13\xbe\x00\x4c\x4a\x3a\x64\xee\xbd\xf7\x5e\xa9\x54\ +\x2a\x46\x27\x3e\x99\xfa\x2c\xba\xa2\xcf\xcc\xca\x24\xac\xac\x63\ +\xbb\xd1\xcf\xee\x99\x2e\x6f\xf5\xe7\x08\x5e\x00\x56\xdc\x7a\xeb\ +\xad\xf2\xc4\x13\x4f\xc4\x19\xfa\x56\x3f\xdf\x54\xf7\xfa\xb7\xbe\ +\xf5\x2d\xbd\x62\xc5\x0a\xda\xde\x38\x03\xd8\x15\xd5\x81\xbc\x52\ +\x4a\x84\xb3\x0f\xc0\xa6\xb9\x73\xe7\x2a\x11\xb1\x5e\xee\x5d\x7f\ +\xfd\xf5\xb2\x78\xf1\x62\xeb\xbf\x47\x29\x65\x64\xa1\x90\x89\x89\ +\x09\x2e\x8e\x33\xf5\x34\xd8\xfa\xe0\x24\xbb\x7a\x0f\xdd\xf0\xe1\ +\x04\xab\x8c\x62\x31\x0d\x00\xf6\x03\x6b\xd5\xaa\x55\xd6\x5b\x9a\ +\xcd\x9b\x37\xc7\xfa\xbb\x4a\xa5\x52\xc7\x9f\xc1\xe2\x1c\x67\xb8\ +\x6e\x6c\xf6\xd1\x6b\xad\x25\x33\xba\x3e\xf6\x83\xcf\x38\x2f\x80\ +\x24\x1c\x59\xdb\xd9\x4a\x9b\x57\x2e\x97\x13\x99\x79\x6d\x72\xc5\ +\x2e\x26\x65\x1d\xcf\x6a\x17\xb4\x52\x4a\xa2\x5c\x5e\x65\x46\xe3\ +\x9b\x15\x1d\xe5\x08\x5f\x00\xc9\xb0\xb1\x02\x14\x9b\x27\x04\x7c\ +\xbd\x58\x2f\xb1\x95\xfd\x8a\xb4\x96\x9b\x9a\x75\xad\x07\xf3\x8a\ +\xee\x66\x00\x49\xaa\x54\x2a\xca\x54\x77\x34\xe1\x4b\x00\x1b\x61\ +\x3a\x84\xeb\xaf\x3a\x45\xb9\xbc\xca\x28\x45\xb7\x33\x00\x67\x84\ +\x54\x09\x54\x2a\x15\x1e\x04\x7c\x0f\x60\x93\x21\xfc\xcb\xfe\x65\ +\x13\xd9\x8c\xa2\xe2\x05\xe0\x24\x53\xe3\xc0\xa1\xed\x98\x84\x04\ +\x03\xb8\x5e\xb1\x46\xb9\xbc\x6a\x77\xb1\x8e\x9d\xd7\xf4\xcb\x27\ +\x7b\xba\xcf\xe6\xd4\x01\x70\xb8\x6a\x54\x21\x4e\x38\x2a\x97\xcb\ +\x9c\x5c\x9f\x03\x58\x1d\x79\x2d\xa8\xdd\xc5\x3a\xae\xee\xed\xa5\ +\xe6\x05\xe0\x4d\x10\x97\x4a\xa5\x8e\xda\xac\x42\xa1\xe0\x4c\x25\ +\x4c\x97\xa3\x59\x89\x2e\xc4\xc1\xb8\x2d\x80\xe0\xab\x1c\x03\x33\ +\xa3\x1f\x7c\xf0\x41\x27\x7e\x8b\x4b\x5d\xe2\x04\x30\x00\xe0\xcc\ +\x85\x86\x81\xb5\x16\xf6\xec\xd9\x23\x97\x5d\x76\x59\x62\xdf\xff\ +\x07\x3f\xf8\x81\xbc\xf0\xc2\x0b\x9c\x4c\xc3\x14\x8b\x65\x03\x40\ +\x2c\xd5\x63\xc7\x8d\x6d\xdc\x8b\x71\xd4\x6a\x35\x19\x1a\x1a\x32\ +\xf6\x79\x2c\xc4\x41\x05\x0c\x00\x5e\x7a\xef\xbd\xf7\xe4\xe3\x1f\ +\xff\x78\x1c\x0f\x0b\x1c\x6c\x02\x18\x00\x50\xf7\xcd\x6f\x7e\xd3\ +\xfa\xeb\x40\x36\xc2\x97\xca\xf7\xd4\x32\x1c\x02\x00\xb0\xcf\x54\ +\x08\xd9\xac\x4e\x6d\x7d\x36\x43\x9d\xa7\xc6\x18\x30\x00\xc4\xc8\ +\xd4\xee\x40\xa6\x2a\xe1\x38\xba\x9b\xa9\x80\xa9\x80\x01\x20\x98\ +\x4a\xb8\x56\xab\x39\x5f\x99\x96\xcb\x65\x45\xf8\x9e\x1e\x63\xc0\ +\x00\xe0\xa1\xa1\xa1\xa1\x8e\xaa\x60\x26\x5a\x51\x01\x03\x00\x62\ +\x14\x45\x11\xe1\xeb\x08\xc6\x80\x01\x20\x01\x2f\xbf\xfc\xb2\x7e\ +\xea\xa9\xa7\x3a\xfa\x8c\xd9\xb3\x67\xcb\x1d\x77\xdc\xd1\xd4\xbb\ +\xc1\x5a\x6b\x19\x1f\x1f\x97\xcd\x9b\x37\xc7\xf2\xfb\xe8\x7a\x26\ +\x80\x01\xc0\x59\xeb\xd7\xaf\xd7\xbb\x77\xef\xee\xf8\x73\x9a\x59\ +\xa0\x23\xce\xaa\x97\xf0\x6d\x0e\x5d\xd0\x00\x90\x90\x1b\x6f\xbc\ +\xd1\x48\x50\x15\x8b\x45\xc2\xd7\x43\x4c\xc2\x02\x80\x00\x68\xad\ +\x8f\xab\x82\xa3\x28\x92\x95\x2b\x57\xc6\xf2\xb7\x7b\x7b\x7b\x65\ +\x62\x62\x42\xca\xe5\x32\xe1\x4b\x00\x03\x80\xfb\x94\x52\x32\x67\ +\xce\x1c\x79\xeb\xad\xb7\x8c\x7c\xd6\xb1\xe2\x0a\xdf\x5b\x6f\xbd\ +\x55\x2e\xb9\xe4\x12\x82\xb7\x9d\x73\xc6\x18\x30\x00\x24\xeb\x48\ +\xb5\xda\x71\x63\x5c\xa9\x54\x64\xed\xda\xb5\x32\x31\x31\x11\xcb\ +\xf7\x2e\x97\xcb\x8a\x3d\x82\x09\x60\x00\xf0\x9a\xd6\x5a\x8a\xc5\ +\xa2\x37\x0d\x72\xa9\x54\x52\x26\xf6\x3a\x4e\x33\xba\xa0\x01\xc0\ +\x85\x6a\xc8\x83\x4a\xf2\xa6\x9b\x6e\x92\xcf\x7d\xee\x73\x94\xbc\ +\x86\xf0\xf8\x02\x00\x68\x0a\xe1\x4b\x00\x03\x40\x90\x5c\x9e\x45\ +\xcc\x0c\x67\xf3\x18\x03\x06\x00\xc7\x8c\x8f\x8f\xeb\x4d\x9b\x36\ +\x25\xfe\x3d\x18\xe7\xb5\x8b\x31\x60\x00\x70\x4c\x7f\x7f\xbf\xda\ +\xbd\x7b\xb7\x3e\x70\xe0\x40\x22\x7f\xbf\x52\xa9\xa8\x13\xdf\x2b\ +\x86\x79\x3c\xda\x00\x80\x83\xee\xb9\xe7\x9e\x44\xd2\xaf\xbe\x92\ +\x15\xe1\x4b\x00\x03\x40\x2a\x7d\xf4\xa3\x1f\x4d\x2c\x7c\x41\x00\ +\x03\x40\x7a\x1b\xe7\x98\xc7\x5e\x09\xdf\xf8\x31\x09\x0b\x00\x1c\ +\x57\x28\x14\xac\x34\xd4\x84\x2e\x01\x0c\x00\x68\x42\xad\x56\x93\ +\xa1\xa1\xa1\x8e\x1b\xed\xd9\xb3\x67\xcb\x9d\x77\xde\x49\xf8\x26\ +\x8c\x2e\x68\x00\xf0\x44\x36\x9b\x35\x52\xb9\x12\xbe\x54\xc0\x00\ +\x80\x36\x55\xab\x55\x79\xe0\x81\x07\x9a\x6e\xc0\x1f\x7a\xe8\x21\ +\xd5\xd5\xc5\x9b\xa7\x04\x30\x00\x00\x29\x47\x17\x34\x00\x00\x04\ +\x30\x00\x00\x04\x30\x00\x00\x20\x80\x01\x00\x20\x80\x01\x00\x00\ +\x01\x0c\x00\x00\x01\x0c\x00\x00\x08\x60\x00\x00\x08\x60\x00\x00\ +\x40\x00\x03\x00\x40\x00\x03\x00\x40\x00\x03\x00\x00\x02\x18\x00\ +\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\xa0\xb1\xff\ +\x0f\xa8\xea\x16\x78\x38\xf7\x10\xb4\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x08\x4c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ +\x15\x07\x21\x33\xc5\x23\x89\x21\x00\x00\x00\x19\x74\x45\x58\x74\ +\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ +\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x07\ +\xc6\x49\x44\x41\x54\x78\xda\xed\xdd\xb1\x4d\xe4\x40\x14\x80\xe1\ +\x19\xb4\xc9\xf6\x40\x80\xab\x20\xdf\x12\xe8\x00\x51\x82\xc3\x8d\ +\x09\xb7\x04\x44\x07\x94\xe0\x9c\x2a\x4c\x40\x0f\x64\x98\x08\x09\ +\x89\x00\x16\xc9\x66\xe6\xbd\xef\x8b\xef\xd0\x31\xf6\xbc\xdf\x63\ +\xc4\x5e\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x24\xb5\x2c\xd5\x22\x00\x80\x08\ +\x03\x80\x08\x03\x00\x22\x0c\x00\x22\x0c\x00\x88\x30\x00\x88\x30\ +\x00\x20\xc2\x00\x20\xc2\x00\x80\x08\x03\x80\x08\x03\x00\x22\x0c\ +\x04\x67\xa8\xd1\x57\x84\x6b\x5d\x7a\xff\x36\x0e\xa7\xe5\xe2\xb7\ +\x7f\x76\x1a\xeb\x7b\x2b\x5f\x1b\x10\xe0\x73\x87\xdd\xe2\x32\x07\ +\x6a\xb0\xa7\x46\x1a\x32\x8d\xd5\xed\x88\x00\x8b\x2e\x20\xc6\x08\ +\xb0\xf8\x02\x42\x0c\x79\x02\x2c\xbe\x80\x08\x23\xc0\xe2\x0b\x88\ +\x30\xc4\x0e\xb0\xf8\x02\x22\x4c\x6f\x2e\x2c\x01\x80\xc3\x01\x02\ +\x0c\x20\xc2\xa4\x50\xdd\xdc\x00\xeb\xf3\x3a\x1a\x27\x60\x00\x87\ +\x05\x04\x18\x40\x84\xc9\x29\xe5\x2b\xe8\xc3\xdb\xbd\x2b\xdf\xb8\ +\x69\x7f\x3c\xfb\xef\xbc\x3e\x3f\x5a\xb8\x80\x2e\xaf\x6f\x4b\x4b\ +\x7b\xfc\x2f\xf7\xe6\xb7\xaf\xe1\x75\x34\x19\x4f\xc0\xe2\x1b\x93\ +\xf8\xba\xb6\x3d\xcd\x10\x27\x61\xd2\x05\x58\x7c\x0d\x68\x5c\x63\ +\x11\x46\x80\x01\x92\x3f\xd0\x8b\xb0\x00\x03\x20\xc2\x08\x30\x80\ +\x08\x23\xc0\x00\x88\x30\x02\x0c\x20\xc2\x08\x30\x00\x22\x8c\x00\ +\x03\x88\x30\x02\x0c\x20\xc2\x22\x8c\x00\x03\x88\x30\x02\x0c\x20\ +\xc2\x22\x2c\xc0\x96\x00\x40\x84\x11\x60\x00\x11\x16\x61\x01\x06\ +\x40\x84\x11\x60\x00\x11\x16\x61\x01\x06\x40\x84\x11\x60\x00\x11\ +\x46\x80\x01\x10\x61\x04\x18\x40\x84\x11\x60\x00\x44\x18\x01\x06\ +\x10\x61\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\ +\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\ +\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\x11\x60\ +\x00\x44\x58\x80\x01\x10\x61\x04\x18\x00\x11\x16\x60\x00\x44\x18\ +\x01\x06\x10\x61\x11\x16\x60\x00\x44\x18\x01\x06\x10\x61\x11\x16\ +\x60\x00\x44\x18\x01\x06\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\ +\x10\x61\x11\x16\x60\x00\x44\x58\x80\xdb\xba\xc1\x4e\x4b\x75\x09\ +\x01\x44\x58\x80\x01\x10\x61\x04\x18\x00\x11\x16\x60\x00\x44\x18\ +\x01\x06\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\x10\x61\x11\x16\ +\x60\x00\x44\x58\x80\x01\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\ +\x10\x61\x52\x04\x78\x1a\xab\x0b\x0e\x20\xc2\x02\x0c\x80\x08\x5b\ +\x49\x01\x06\x40\x84\x05\x18\x00\x11\x46\x80\x01\x10\x61\x01\x06\ +\x40\x84\x05\x18\x00\x44\x58\x80\x01\x10\x61\x01\x06\x40\x84\x45\ +\x58\x80\x01\x10\x61\x01\x06\x40\x84\x45\x58\x80\x01\x10\x61\x01\ +\x06\x40\x84\x45\x58\x80\x01\x10\x61\x01\x06\x40\x84\x05\x18\x00\ +\x44\x58\x80\x01\x10\x61\x01\x06\x00\x11\x16\x60\x00\x44\x58\x80\ +\x01\x40\x84\x05\x18\x00\x11\x16\x60\x00\x44\x58\x84\x05\x18\x80\ +\xae\x22\x2c\xc0\x00\xf0\x0f\x11\x8e\x7a\x0a\x16\x60\x00\x9c\x84\ +\x05\x18\x00\x11\xce\x71\x0a\x16\x60\x00\x9c\x84\x05\x18\x00\x11\ +\x16\x60\x00\x10\x61\x01\x06\x40\x84\x05\x18\x00\x10\x60\x00\x10\ +\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18\x5a\x72\x79\x7d\x6b\x11\x5c\x63\x10\ +\x60\x30\xa0\x71\x6d\xe1\x67\x3b\x4b\x80\x41\x0d\xe0\x04\x0c\x00\ +\x02\x0c\x00\x08\x30\x89\xf8\xbf\x42\x71\xef\x20\xc0\x00\x80\x00\ +\x03\x80\x00\xc3\x8a\xbc\x4a\xc4\x3d\x83\x00\x83\x81\x8a\x7b\x05\ +\x04\x18\x83\x15\xdc\x23\x08\x30\x18\xb0\xb8\x37\xe0\x6c\x3e\x09\ +\x8b\x2e\x07\xed\xb4\x3f\x5a\x10\xf7\x02\x08\x30\x18\xc0\x00\xe7\ +\xf1\x0a\x1a\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ +\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ +\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\ +\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ +\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ +\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\ +\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\xd8\xd8\xce\x12\x6c\x6b\ +\xda\x1f\x2d\x02\xd0\x84\xc3\xdb\xbd\x45\x10\x60\xd1\x05\xf8\xcf\ +\xd9\x24\xc6\xdb\xf3\x0a\x5a\x7c\x01\xcc\x2a\x01\x76\x43\x03\x98\ +\x59\x02\x8c\x1b\x19\x30\xbb\x10\x60\x37\x30\x80\x19\x26\xc0\x00\ +\x80\x00\x03\x80\x00\xa7\xe6\xd5\x0d\x60\x96\x21\xc0\x00\x20\xc0\ +\x00\xc0\x27\x9f\x84\xd5\x80\x87\x9b\x17\x8b\x00\xac\xea\xee\xe9\ +\xca\x22\x38\x01\x23\xbe\x80\x59\x83\x00\xdb\x10\x80\x99\x83\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\ +\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\ +\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\ +\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\ +\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\ +\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x61\xed\x2c\x01\xa5\x94\x32\x0c\x83\x45\x80\x95\ +\xcc\xf3\x6c\x11\x70\x02\x46\x7c\xc1\x1e\x43\x80\x31\x18\xc0\x5e\ +\x43\x80\x01\x00\x01\xc6\x13\x39\xd8\x73\x08\x30\x00\x20\xc0\x00\ +\x20\xc0\xf4\xca\xaf\x46\x80\x3d\x87\x00\x03\x80\x00\xe3\x89\x1c\ +\xb0\xd7\x10\x60\x0c\x06\xb0\xc7\x08\xc7\x47\x51\x62\x40\x00\x38\ +\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\ +\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\ +\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\ +\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\ +\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\ +\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ +\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\ +\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x31\xed\x2c\x01\xa5\x94\x32\ +\x0c\x83\x45\x80\x95\xcc\xf3\x6c\x11\x70\x02\x46\x7c\xc1\x1e\x43\ +\x80\x31\x18\xc0\x5e\x43\x80\x01\x00\x01\xc6\x13\x39\xd8\x73\x08\ +\x30\x00\x20\xc0\x00\x20\xc0\xf4\xca\xaf\x46\x80\x3d\x87\x00\x03\ +\x80\x00\xe3\x89\x1c\xb0\xd7\x10\x60\x0c\x06\xb0\xc7\x08\xc7\x47\ +\x51\x62\x40\x00\x38\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ +\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\ +\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\ +\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\ +\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ +\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x1c\xc1\xb4\x3f\x36\ +\xf5\xef\xb9\x7b\xba\x72\x07\x02\x69\x67\x4e\x6b\x33\x59\x80\x45\ +\x18\x40\x7c\x13\xa8\xbd\x7f\x03\x87\xd3\xb2\xd8\x5a\x00\x09\x0e\ +\x50\x63\xad\x91\xbe\x1f\x3f\x03\x06\x00\x01\x06\x80\x1c\x42\x1c\ +\xe7\xbd\x86\x06\x88\x2d\xda\xeb\x67\x27\x60\x00\x10\x60\x00\xc8\ +\x23\xcc\x91\xde\x6b\x68\x80\x98\x22\xbe\x7e\x0e\x15\x60\x11\x06\ +\x10\x5f\x01\x16\x61\x00\xc4\x37\x57\x80\x45\x18\x40\x7c\x05\x58\ +\x8c\x01\x10\xdd\x9c\x01\x06\x58\xf9\x21\xff\xd7\x73\x74\x1a\xab\ +\x03\x01\x00\x6c\x1d\x60\xf8\xca\xef\x01\x03\x80\x00\x03\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\xb0\x8d\x0f\x65\x11\x6d\x17\x7d\xcf\x89\x52\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0b\x85\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x3d\x00\x39\x00\x35\xdd\xfb\ +\xdd\x74\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x04\x12\x06\x30\x03\x11\x56\xe1\xa3\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x0a\xed\x49\x44\x41\x54\x78\xda\xed\xdd\x41\x4e\xe3\x48\x14\ +\x80\x61\x68\xf9\x5a\xd9\xf8\x54\x24\x52\x14\x45\x96\x92\x9c\xca\ +\x1b\x0e\xd6\xbd\x68\x68\x31\x3d\x69\x30\x71\x55\xb9\xaa\xde\xf7\ +\xad\x46\xd3\x10\x1c\x17\xf8\xe7\xd9\x89\x79\x7a\x02\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xd6\x73\ +\x4b\x1b\x7b\x38\x1c\x7e\x5a\x32\x00\x3e\x73\xb9\x5c\x9a\x68\x5b\ +\x13\x1b\x29\xbc\x00\xf4\x16\xe2\xaa\x37\x4e\x78\x01\xe8\x35\xc4\ +\xd5\x06\x58\x7c\x01\xe8\x39\xc2\x55\x06\x58\x7c\x01\xe8\x3d\xc2\ +\x3f\x2c\x09\x00\x98\x80\x4d\xbf\x00\x84\x98\x82\x4d\xc0\x00\x10\ +\x7d\x02\x36\xfd\x02\x10\x65\x0a\x36\x01\x03\x80\x00\x03\x40\x0c\ +\x43\xab\x1b\x3e\x8e\xa3\xd5\xa3\x6b\xf3\x3c\xfb\x79\x80\x0c\x3f\ +\x2f\x26\x60\x00\x08\x4c\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\ +\x06\x80\x7e\x0c\x11\x9f\xf4\xf9\xb8\xff\xf3\xdf\xa7\xe9\xea\xbb\ +\x00\x00\x01\x2e\x11\x5d\x31\x06\x40\x80\x37\x0a\xef\x67\x1f\x2b\ +\xc4\x00\xe4\xd6\xf5\x35\xe0\xef\xc4\x37\xc5\xe7\x01\x40\xf8\x00\ +\xaf\x8d\xa8\x08\x03\x20\xc0\x00\x20\xc0\xfd\x4f\xbf\xa6\x60\x00\ +\x04\x18\x00\x04\x18\x00\x10\xe0\x3b\x52\x9f\x36\x76\x1a\x1a\x00\ +\x01\x06\x00\x01\x06\x00\x04\xf8\x4d\xea\xbb\x58\xb9\x2b\x16\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\xf0\x07\xa9\x4e\x1b\x3b\xfd\x0c\x80\ +\x00\x03\x80\x00\xf7\x3f\x05\x9b\x7e\x01\x10\xe0\xc2\x11\x15\x5f\ +\x00\x72\x1b\x7a\x7f\x82\xef\x31\x5d\x72\x47\x2b\xe1\x05\x40\x80\ +\x33\x4e\xc3\x1f\x63\x2c\xba\x00\x08\xf0\x06\x31\x06\x80\x2d\x78\ +\x15\x34\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\xc0\ +\x0a\x83\x5d\x00\xb4\xea\xb3\xf7\xf7\xf7\xfc\x6e\x87\xa8\xcf\xdb\ +\x04\x0c\x50\x79\x84\x96\xfc\xbb\xe7\x8d\x00\x03\x24\x8e\x50\xaf\ +\x31\x8a\xfa\xbc\x05\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ +\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\xa0\x01\xcd\xfe\ +\x3d\xe0\x79\x9e\xbb\x5f\x9c\x71\x1c\x7d\x87\x02\x98\x80\xf1\x4b\ +\x06\x00\x02\x2c\xc2\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\ +\x00\x03\x80\x00\x03\x80\x00\x03\x00\x85\x0c\x76\x01\x5b\x3a\x1f\ +\xf7\x5f\x7e\xcc\x69\xba\xda\x51\x80\x00\x53\x56\x4f\x77\xc3\x5a\ +\x12\xdb\xa5\x9f\x27\xca\x80\x00\x23\xbe\x99\xc2\xbb\xe4\x31\x85\ +\x38\xe6\xfa\xb7\xf4\xf5\x5b\x7f\xde\x7e\xc6\x04\xb8\xeb\xc9\xd0\ +\x01\x40\x88\x7d\x0f\x50\xf3\x1a\xfa\xf9\xca\xc3\x8b\xb0\xc8\xf2\ +\x03\x5b\xfa\xc0\xbb\xc5\xd7\x44\x7c\xad\x25\x02\x4c\xd8\xf0\x0a\ +\xb1\x03\x36\xd6\x54\x80\xf1\xc3\x69\x7b\x00\x04\x18\xb1\x13\x61\ +\x40\x80\x11\x5f\xdb\x07\x20\xc0\xc4\x8a\x9b\x08\x03\x02\x8c\xf8\ +\xda\x5e\x00\x01\x26\x56\xcc\x44\x18\xa8\x89\x3b\x61\x51\x45\xc4\ +\x5e\x8f\x2f\xff\xfb\x7f\xbb\xe9\x96\x65\xfb\xdd\x54\x20\xbf\xd3\ +\x74\xf5\x0b\x4f\x87\x6b\x8a\x00\xd3\x41\x7c\xef\x05\xf7\xab\x8f\ +\x49\x15\x64\x11\x16\x61\xc4\x57\x80\x09\x67\x49\x78\xbf\xfa\xdc\ +\x1c\x93\x31\x6d\x1d\xb8\xbf\x13\xf6\x9e\xe2\x11\xf5\x79\xf7\xca\ +\x35\x60\x8a\x4c\xbf\xaf\xc7\x97\x55\xf1\x4d\xfd\x58\x26\x33\x40\ +\x80\x31\xf5\x56\xf6\xb8\x00\x02\x4c\xf3\xd3\x6f\xee\x48\xae\x79\ +\x7c\x53\x30\x20\xc0\x98\x7c\x4d\xc2\x80\x00\xc3\xfa\x29\xb1\x74\ +\x14\x1f\xfd\x7a\xa6\x60\x40\x80\x31\xf9\x9a\x84\x01\x01\x86\x38\ +\xd3\xa1\x29\x18\x10\x60\x4c\xbf\xa6\x60\x40\x80\x01\x00\x01\xc6\ +\xf4\x6b\x0a\x06\x04\x18\x00\x10\x60\x92\x8b\xf6\xc2\x24\x2f\xc4\ +\x02\x04\x18\x00\x04\x18\x96\xa9\xed\xba\xab\xeb\xc0\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x4d\xd9\x4d\x37\ +\xdb\x03\x20\xc0\x00\x20\xc0\x34\xe8\x34\x5d\x3d\x5f\x00\x01\x06\ +\x00\x01\x86\xbb\x6a\xb9\xee\xea\xfa\x2f\x20\xc0\x00\xc0\x5d\x43\ +\xab\x1b\x3e\xcf\x73\xf7\x8b\x33\x8e\x63\x93\x53\xf0\x96\xb7\x81\ +\x34\xfd\x02\x26\x60\x9a\xff\x25\x23\xca\x0b\x93\xbc\x00\x0b\x10\ +\x60\xba\x98\xf4\xb7\x9a\x42\x4d\xbf\x80\x00\x13\x7e\x3a\x2c\x1d\ +\xc3\x47\xbf\x9e\xe9\x17\x10\x60\xba\x53\x2a\xc2\x26\x5f\x40\x80\ +\x31\x05\x17\x8e\xe3\x9a\xc7\x37\xfd\x02\x02\x8c\x49\xd8\xe4\x0b\ +\x08\x30\xa4\x9f\x16\x77\xd3\x2d\x59\x30\x53\x3c\x96\xe9\x17\xd8\ +\xda\x60\x17\xb0\xc5\x34\xfc\xc8\x7b\x85\x4d\xbc\x80\x00\x13\x76\ +\x0a\x3e\x1f\xf7\x49\x43\xfc\xee\x5e\x90\x73\x05\xd7\xf4\x0b\x08\ +\x30\x5f\xaa\xed\x6e\x58\x29\x23\xbc\xc5\x74\x2b\xbe\x40\x2d\x5c\ +\x03\x16\xdf\x30\x11\x13\x5f\xc0\x04\xdc\x71\x9c\xa2\xc8\x35\x09\ +\x8b\x2f\x60\x02\x86\x4e\xa2\x26\xbe\x80\x00\x23\xc2\xb6\x0f\x40\ +\x80\xe9\x3b\x72\xe2\x0b\x08\x30\x22\x2c\xbe\x00\xff\xe1\x6d\x48\ +\x24\x8f\xde\x96\x2f\xce\x12\x5e\x40\x80\x11\xe2\x82\x21\x16\x5e\ +\x40\x80\xa1\x60\x88\x85\x17\x10\x60\x28\x18\x62\xe1\x05\x04\x18\ +\x56\x44\x73\x49\x94\xc5\x16\x10\x60\x28\x10\x65\x80\x08\xbc\x0d\ +\x09\x00\x04\x18\x00\x62\x70\x0a\x1a\xc8\xa6\x86\x3f\xd8\xd1\xd2\ +\x1f\x0d\xa9\xf5\x79\xbb\x54\x64\x02\x06\xc4\x17\x6b\x29\xc0\x00\ +\x0e\xd8\xd6\x14\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10\x60\x00\x10\x60\x00\x10\x60\x80\x07\xb9\x71\x83\x35\x45\x80\ +\x01\x07\x6c\xac\xa5\x00\x03\x0e\xdc\x58\x43\x7e\x73\x2f\x68\xa0\ +\xb9\x03\xf8\x77\xee\xca\xd4\x53\x40\xa2\x3e\x6f\x13\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x90\x52\xb3\xb7\xa2\ +\x9c\xe7\xb9\xfb\xc5\x19\xc7\xd1\x77\x28\x80\x09\x18\xbf\x64\x00\ +\x20\xc0\x22\x0c\x80\x00\x03\x94\xb3\xf4\x2f\xfd\xf4\xf6\x17\x81\ +\xa2\x3e\x6f\x01\x06\x68\x28\x46\xbd\x46\x28\xea\xf3\xee\x91\xbf\ +\x07\x0c\x74\x3f\x11\x7a\xde\x98\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x01\x06\x00\x04\x38\x30\x77\xc3\x02\x10\x60\xc4\x17\x80\x44\ +\x9a\x7d\x1b\x92\x38\x01\x60\x02\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\ +\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\ +\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\ +\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ +\x40\x80\x01\x80\x2c\x06\xbb\x00\xda\x37\xcf\xb3\x9d\x00\x26\x60\ +\x00\x40\x80\x01\x40\x80\x81\xa5\xc6\x71\xb4\x13\x40\x80\x01\x00\ +\x01\x06\x53\x30\x20\xc0\x00\x80\x00\x83\x29\x18\x10\x60\x40\x84\ +\x01\x01\x86\xc6\x23\x2c\xc4\x20\xc0\x80\x10\x03\x2b\xb8\x15\x25\ +\x34\x1c\x62\xe0\xb7\x16\x6f\xc7\x6a\x02\x06\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\ +\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\ +\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\ +\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x68\ +\xd4\x60\x17\xf4\xe9\x7c\xdc\xdb\x09\x8d\x3a\x4d\x57\x3b\x01\x04\ +\x18\xd1\x65\xcb\x75\x14\x63\xe8\x97\x53\xd0\xe2\x8b\x75\x05\x04\ +\x18\x07\x69\xac\x2f\x08\x30\x0e\xce\x58\x67\x40\x80\x71\x50\xb6\ +\xde\x80\x00\x03\x00\x02\x0c\x00\x02\x4c\x01\x4e\x47\x5a\x77\xa0\ +\x6d\xde\x07\x0c\x90\xf9\x97\x22\xef\xe7\x46\x80\x01\x32\xc7\x76\ +\xe9\xe7\x89\x32\x02\x1c\xc0\xeb\xf1\xc5\x4e\xa8\xdc\x6e\xba\xd9\ +\x09\x1d\x86\x77\xc9\x63\x0a\xb1\x00\x03\x50\x20\xbc\x42\x8c\x00\ +\x03\x6c\x18\x5e\x21\x46\x80\x01\x36\x0c\xaf\x10\xc7\xe5\x6d\x48\ +\x00\x4f\xf5\xbd\xc5\xcb\x5b\xce\x04\x18\x40\x7c\x6d\x17\x02\x0c\ +\x10\x2b\x72\x22\x2c\xc0\x00\xe2\x6b\x3b\x11\x60\x80\x58\x51\x13\ +\x61\x01\x06\x10\x5f\xdb\x4d\x02\xde\x86\x04\x88\x6f\x02\xf7\xee\ +\x38\x97\xe3\x0e\x67\xe7\xe3\xde\x5b\x94\x04\x18\x20\x6e\x7c\x97\ +\xdc\xe2\xf5\xef\x8f\x49\x15\x64\x11\x16\x60\x80\x70\xd6\xdc\x5b\ +\xfd\xfd\x73\xdd\xfb\x9b\xa7\x27\xd7\x80\x01\xd3\xef\xe2\x78\xa6\ +\xfa\xc3\x26\x29\x1e\xcb\xf5\x60\x01\x06\x30\xf5\x56\xf6\xb8\x08\ +\x30\x40\xf3\xd3\x6f\xee\x48\xae\x79\x7c\x53\xb0\x00\x03\x98\x7c\ +\x4d\xc2\x08\x30\xc0\xfa\x29\xb1\x74\x14\x1f\xfd\x7a\xa6\x60\x01\ +\x06\x30\xf9\x9a\x84\x11\x60\x80\x38\xd3\xa1\x29\x58\x80\x01\x4c\ +\xbf\xa6\x60\x04\x18\x00\x04\x18\xc0\xf4\x6b\x0a\x46\x80\x01\x40\ +\x80\x01\x92\x8b\xf6\xc2\x24\x2f\xc4\x12\x60\x00\x40\x80\x01\x96\ +\xa9\xed\xba\xab\xeb\xc0\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x4d\xd9\x4d\x37\xdb\x83\x00\x03\x80\x00\x03\ +\x34\xe8\x34\x5d\x3d\x5f\x04\x18\x00\x10\x60\x80\xbb\x6a\xb9\xee\ +\xea\xfa\xaf\x00\x03\x00\x02\x0c\xd0\xff\xf4\x69\xfa\x15\x60\x80\ +\xe6\x45\x79\x61\x92\x17\x60\x09\x30\x80\x29\xd8\xf4\x8b\x00\x03\ +\x3c\x3e\x1d\x96\x8e\xe1\xa3\x5f\xcf\xf4\x2b\xc0\x00\x26\x61\x93\ +\x2f\x02\x0c\x90\x66\x4a\xcc\x1d\xc7\x35\x8f\x6f\xfa\x15\x60\x00\ +\x93\xb0\xc9\x17\x01\x06\x48\x3f\x2d\xee\xa6\x5b\xb2\x60\xa6\x78\ +\x2c\xd3\x6f\xfb\x06\xbb\x00\xe0\xfb\x53\xeb\xeb\xf1\xc5\xc4\x8b\ +\x00\x03\x2c\x9d\x1a\xcf\xc7\x7d\xd2\x10\xbf\xbb\x17\xe4\x5c\xc1\ +\x35\xfd\x0a\x30\x40\xe8\x08\x6f\x31\xdd\x8a\x6f\x3f\x5c\x03\x06\ +\x42\x46\xd8\x76\x23\xc0\x00\x62\x26\xbe\x01\x39\x05\x1d\x80\x17\ +\x7e\xc0\xbf\xa3\x96\xe3\x74\xb4\xf8\x62\x02\x06\x68\x3c\x6e\xe2\ +\x2b\xc0\x00\x22\x6c\xbb\x10\x60\xfc\x60\x5a\x77\xfa\xde\xb7\xd6\ +\xba\x7f\xae\x01\x03\xfc\x15\xbd\x2d\xaf\x0b\x0b\xaf\x00\x03\x08\ +\x71\xc1\x10\x0b\x6f\x3c\x4e\x41\x77\x70\x90\xc0\x7a\x93\x6f\x9f\ +\xe7\xde\xef\x25\xbe\x06\x02\x8c\x83\x32\xd6\x59\x88\x85\x97\x37\ +\x4e\x41\x77\x72\x70\x68\xe1\xbd\x8c\x88\x6f\x8f\x6b\xb1\xe4\x67\ +\xcf\x1a\x22\xc0\x22\x8c\xf8\x62\x8d\x10\x60\x72\x1e\x08\xc4\xd8\ +\x01\x1d\x10\x60\x1c\xc4\x01\xf8\x8b\x17\x61\x01\x80\x00\x03\x80\ +\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\ +\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x40\x24\x83\x5d\x00\x7c\x34\xcf\xf3\ +\x3f\xff\x6d\x1c\x47\xdb\x6f\xfb\x31\x01\x03\x25\x0f\xfe\x4b\xfe\ +\xdd\xf6\xc7\xde\x7e\x04\x18\xc8\x70\xf0\xaf\x3d\x02\xb6\x1f\x01\ +\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\ +\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ +\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\ +\x01\x06\x00\x01\x06\x00\x96\x1b\x22\x3e\xe9\xf3\x71\xff\xe7\xbf\ +\x4f\xd3\xd5\x77\x01\x80\xe3\xb1\x00\x97\x58\x64\x8b\x0f\xe0\x78\ +\x2c\xc0\x1b\x2d\xf4\x67\x1f\x2b\xc4\x00\x8e\xc7\xb9\xfd\xb0\xd8\ +\xe9\x3e\x0f\x00\xc7\xe3\xf0\x01\x5e\xbb\x68\x22\x0c\xe0\x78\x2c\ +\xc0\x00\x20\xc0\xfd\xff\xb6\x65\x0a\x06\x70\x3c\x16\x60\x00\x30\ +\x01\x03\x00\x02\x7c\x47\xea\xd3\x14\x4e\x43\x03\x38\x1e\x0b\x30\ +\x00\x08\x30\x00\x20\xc0\x6f\x52\xdf\x35\xc5\x5d\xb1\x00\x1c\x8f\ +\x05\x18\x00\x04\x18\x00\x10\xe0\x0f\x52\x9d\xa6\x70\xfa\x19\xc0\ +\xf1\x58\x80\x01\x40\x80\xfb\xff\xad\xcb\xf4\x0b\xe0\x78\x2c\xc0\ +\x85\x17\x4d\x7c\x01\x1c\x8f\x73\x1b\xa2\x2c\xfa\x92\x3b\xa8\x08\ +\x2f\x80\xe3\xb1\x00\x67\xfc\xed\xeb\xe3\xe2\x8b\x2e\x80\xe3\xb1\ +\x00\x6f\xb0\xf8\x00\x38\x1e\x6f\xc1\xab\xa0\x01\x40\x80\x01\x40\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x56\x78\xae\x69\x63\x0e\x87\ +\xc3\x4f\x4b\x02\x40\x4e\x97\xcb\xa5\x8a\xf6\x99\x80\x01\x40\x80\ +\x01\x20\x86\xe7\xda\x36\xc8\x69\x68\x00\x72\xa9\xe5\xf4\xb3\x09\ +\x18\x00\x4c\xc0\xa6\x60\x00\x62\x4c\xbf\x26\x60\x00\x30\x01\x9b\ +\x82\x01\x88\x31\xfd\x56\x1d\x60\x11\x06\xa0\xd7\xf8\x56\x1f\x60\ +\x21\x06\xa0\xb7\xf0\x36\x15\x60\x21\x06\xa0\x97\xf0\x02\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x5d\xbf\x00\ +\xb8\xfa\x65\x5f\xda\x82\x21\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x11\x78\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ +\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x03\x0d\x0e\x20\x1a\x8b\xb6\x91\x53\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x10\xe0\x49\x44\x41\x54\x78\xda\xed\xdd\xd1\x75\x1b\xc7\x12\ +\x45\x51\x0c\x97\x63\x61\x48\x0c\x40\x81\x31\x00\x85\xa4\x60\x08\ +\x7f\xd8\xfc\xb0\x4d\x49\xa0\x39\xd3\x5d\x55\x77\xef\x00\xde\x32\ +\x81\xae\x3a\xd3\x00\xa9\x77\xbb\x01\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\xcd\x1c\x5e\x02\xa8\xe1\x7e\xbb\xdd\x17\x0c\xbc\ +\x99\x07\x01\x06\x41\x6d\xb0\x20\xec\x08\x10\x60\x10\x58\x81\x06\ +\x01\x06\xa1\x45\x98\x41\x80\x41\x68\x85\x19\x04\x18\x04\x17\x41\ +\x06\x01\x06\xb1\x15\x65\x10\x60\x10\x5c\x04\x19\x04\x18\xd1\x45\ +\x8c\x41\x80\x41\x70\x11\x64\x04\x18\x44\x17\x31\x06\x01\x46\x74\ +\x41\x8c\x11\x60\x10\x5d\xc4\x18\x04\x18\xd1\x05\x31\x46\x80\x41\ +\x74\x11\x63\x10\x60\x84\x17\x84\x18\x01\x46\x74\xbd\x0a\x88\x31\ +\x08\x30\xc2\x0b\x42\x8c\x00\x23\xbc\x20\xc4\x08\x30\x88\x2e\x88\ +\x31\x02\x8c\xf0\x82\x10\x23\xc0\x20\xbc\x20\xc4\x08\x30\xc2\x0b\ +\x42\x8c\x00\x23\xbc\x20\xc4\x20\xc0\x08\x2f\x08\x31\x02\x8c\xf0\ +\x82\x10\x83\x00\x23\xbc\x20\xc4\x08\x30\xc2\x0b\x42\x8c\x00\x23\ +\xbc\x80\x10\x23\xc0\x88\x2f\x88\x30\x02\x8c\xf0\x02\x42\x8c\x00\ +\x23\xbc\x20\xc4\x08\x30\xc2\x0b\x08\x31\x02\x8c\xf8\x82\x08\x23\ +\xc0\x08\x2f\x20\xc4\x08\xb0\xf8\x02\x22\x8c\x00\x23\xbc\x80\x10\ +\x0b\x30\xe2\xcb\xe0\x65\xeb\x7c\x38\x17\x08\x30\x16\xab\xe5\xe9\ +\x4c\x21\xc4\x02\x8c\xf8\x62\x31\x3a\x73\xce\x1a\x02\x8c\x25\x68\ +\xf9\x39\x93\x38\x8b\x02\x8c\x45\x67\xc1\xe1\xac\x3a\xa3\x08\xb0\ +\x65\x66\x99\x59\x66\xce\x30\xce\xae\x00\x63\x71\x59\x5a\x38\xd7\ +\xce\x33\x02\x6c\x49\x61\x41\x39\xeb\xce\xb8\x33\x2e\xc0\x58\x46\ +\x16\x12\xce\xbf\x73\x8f\x00\x5b\x3e\x96\x0f\xe6\xc1\x1c\x20\xc0\ +\x58\x36\x96\x0d\xe6\xc3\x5c\x78\x6f\xb0\x58\x2c\x17\xcc\x8c\x59\ +\x41\x80\x2d\x12\x2c\x12\xcc\x90\xd9\x11\x60\x2c\x0e\xcb\x03\xf3\ +\x64\x8e\x10\x60\xcb\xc2\xb2\x00\xf3\x65\xae\x04\x18\x8b\xc1\x82\ +\xc0\xbc\x99\x33\x04\xd8\x32\xb0\x10\xc0\xec\x99\x39\x01\xc6\x02\ +\xb0\x00\x30\x8b\x66\x10\x01\x36\xf0\x86\x1e\xcc\xa5\x79\x14\x60\ +\x43\xee\xd0\x39\x77\x98\x51\xb3\x89\x17\xdb\x60\x1b\x6e\x30\xaf\ +\xe6\x54\x80\x0d\xb3\x81\x06\xb3\x6b\x66\x05\x18\xc3\x6b\x88\x41\ +\x88\x11\x60\x03\x6b\x70\xc1\x4c\x9b\x65\x01\xc6\xa0\x1a\x56\xcc\ +\xb7\xb9\x46\x80\x0d\xa7\x01\x05\xb3\x6e\xc6\x05\xd8\x40\x1a\x4a\ +\x30\xf7\xe6\x1d\x01\x36\x84\x86\x11\xcc\xbf\xb9\x17\x60\xc3\x67\ +\x00\xc1\x2e\xb0\x03\x10\x60\x03\x67\xe8\xc0\x5e\xb0\x0f\x04\xd8\ +\x90\x19\x36\xb0\x1f\xec\x05\x01\xc6\x70\x19\x30\xb0\x2b\xec\x08\ +\x01\x36\x50\x06\x0b\xec\x0c\xbb\x42\x80\x0d\x92\xf0\x02\xf6\x87\ +\xbd\x21\xc0\x86\xc7\x10\x81\x3d\x62\x7f\x08\xb0\xa1\x31\x3c\x80\ +\x08\xf3\x80\x3f\xbc\x04\x18\x18\xd8\x33\x73\xfe\x7f\xc2\xdd\x80\ +\xf1\xb4\x0a\xd8\x2f\xf6\x8a\x00\x1b\x0e\x43\x02\xf6\x8c\xfd\x22\ +\xc0\x86\x42\x78\x01\x3b\xc7\xae\x11\x60\x83\x60\x20\xc0\xee\xb1\ +\x73\x04\xd8\x00\x18\x04\xc0\x0e\xb2\x7b\x04\xd8\xc1\x77\xf8\xc1\ +\x3e\xb2\x87\x04\xd8\x61\x77\xe8\x01\x7b\xc9\x3e\xfa\x85\x27\x2f\ +\xc1\xe8\xa7\x2b\x87\x1d\xcc\x31\x6e\xc0\x9e\x32\x0d\x2d\x90\xbe\ +\xa3\xec\x26\x01\x16\x5f\xc0\xae\xb2\xa3\x04\xd8\x81\x76\xb0\x01\ +\x11\x16\x60\x07\xd9\x61\x06\xec\x2f\x7b\xeb\x72\x7e\x09\x4b\x7c\ +\x01\x73\x8f\x1b\xb0\xa7\x47\x43\x08\x24\xed\xb2\xe4\x1d\x76\x38\ +\xb0\x0e\x2e\x60\xa7\xd9\x65\x02\xec\xa0\x3a\xb0\x80\x08\x47\xf0\ +\x1d\xb0\x83\x0a\xd8\x0b\xb8\x01\x7b\x42\x34\x64\x40\xea\x9e\x4b\ +\xdb\x6f\x87\x43\xe9\x70\x02\xf6\x9d\x3d\x27\xc0\x0e\xa3\x43\x09\ +\x88\x70\xc4\xbe\xf3\x1d\xb0\xc3\x08\xd8\x1b\xb8\x01\x7b\x0a\x34\ +\x44\x80\x1d\x98\xb1\xfb\x0e\x07\xcf\x01\x04\x44\xd8\x0e\x5c\xcf\ +\x47\xd0\x0e\x1e\x60\x9f\xe0\x06\xec\x89\xcf\xb0\x00\xf6\x62\xc6\ +\x3e\x3c\x1c\x32\x87\x0d\x10\x61\x7b\x71\x3d\x1f\x41\x03\x80\x1b\ +\xb0\xdb\xaf\x23\x09\xd8\x93\x19\xfb\xf1\x70\xa8\x1c\x2e\x40\x84\ +\xed\xc9\xf5\x7c\x04\xed\x50\x01\xf6\x0e\x6e\xc0\x79\xb7\x5f\x43\ +\x00\xd8\x9d\x99\x3b\xf3\x70\x80\x1c\x24\x40\x84\xed\xce\xf5\x7c\ +\x04\xed\x00\x01\xf6\x91\x7d\x24\xc0\x39\xb7\x5f\x00\xb2\xf7\xfe\ +\xe1\x4d\xf0\xb4\x09\xd0\x71\xa7\x76\xdf\xa5\x3e\x82\x76\x60\x00\ +\xec\x27\x37\xe0\xd9\xb7\x5f\x87\x1b\xb0\x5f\xed\x55\x37\x60\x00\ +\x70\x03\x76\xfb\x05\xb0\x67\xb3\xf6\xab\x1b\xb0\xc3\x01\x60\x6f\ +\xb9\x01\xcf\xbb\xfd\x3a\xc4\x80\x9b\xb0\x5d\xdb\xfe\x06\xec\x6f\ +\x7e\x01\x98\xd2\x07\x1f\x41\x7b\x22\x03\xb0\xc7\xf6\xbc\xb6\x9e\ +\x6e\x1c\x5a\x80\x19\x3b\xb8\xd3\xee\x75\x03\x16\x5f\x00\x7b\x4d\ +\x80\x67\xdc\x7e\x01\xd0\x0b\x37\x60\x4f\x89\x00\xf6\x5b\xcd\xd7\ +\xd3\xd3\x8c\xc3\x79\x9e\xe7\x97\xd7\x0f\xdf\xaf\x1f\xdf\xbf\x19\ +\x5c\x9c\x61\xb7\x4c\xfb\x58\x80\x05\xf8\xc4\x77\xe8\xe9\x76\x3b\ +\xde\x7e\xb6\xb4\x3e\x5a\x62\xcf\x2f\xaf\x77\xcb\x8c\x4a\xc1\x7d\ +\x3f\x97\x8f\x9e\xe1\xf7\x73\x2f\xc0\xf6\xf1\xd8\x00\x8b\x6f\xcf\ +\x9b\xc2\xa3\x44\x18\x67\x58\x84\x93\xf7\xb2\xef\x80\xc5\x77\xcb\ +\xe2\x3a\xeb\x7f\x03\x9c\x61\x7b\xaf\xab\xb2\x01\xf6\x9b\xcf\xb3\ +\x17\x97\x05\x86\x33\x4c\x7a\x47\xdc\x80\x3d\x05\x6e\x5f\x36\x16\ +\x18\xce\xb0\xfd\xe7\x06\xec\xa9\x85\x4d\x4b\x46\x84\x71\x86\x49\ +\xeb\x89\x1b\xb0\xa7\xbf\x32\xcb\xc5\x02\xc3\x19\xb6\x07\xdd\x80\ +\x3d\xad\x38\x74\xff\x7c\x57\x96\x9d\x13\x11\xa6\xff\xb9\xba\xc7\ +\x5d\x6c\x0e\x7f\x51\xe3\x06\xcc\x65\xe3\xb5\xf4\xef\x1d\x45\x98\ +\xde\xe7\x29\xf7\xef\x83\xf9\xf4\x83\x8b\xa7\x14\xb7\xdf\x9a\x41\ +\xf4\x77\xc2\x38\xbb\xbd\x54\xdf\xe1\xd5\x76\xb7\x1b\x30\x96\x27\ +\xce\x0f\x24\xdf\x80\xdd\x7e\x2d\x31\xb7\x09\x9c\x5b\xb7\xe0\xa4\ +\x1d\xee\x06\x8c\x65\x8a\xf3\x02\x02\xec\xf6\x8b\xa5\x8a\x73\x62\ +\x4f\x0a\xf0\x32\xfe\x51\x6f\x2c\x57\x9c\x0f\x11\x4e\xeb\x8d\x1b\ +\x30\x96\x2c\xce\x05\x24\x06\xd8\xed\x17\xcb\x16\xe7\xc1\x2d\x38\ +\xb1\x3b\x6e\xc0\xfc\x52\xd5\xdf\xe4\xb4\x74\xa9\x7c\x0e\xfc\xe6\ +\x3e\xe5\x03\xec\xf6\x8b\x08\xe3\xfd\x77\x0b\x4e\xed\x8f\x1b\x30\ +\xad\x9f\xe6\x2d\x61\xf1\x35\x2f\xb8\x01\x7b\x7a\xb3\xec\xfc\xf7\ +\xe1\xfd\x76\x1e\xed\xd1\xfa\x01\xf6\xff\xf9\xeb\x06\x6c\xe9\x31\ +\xf1\x7d\x76\x03\xee\x63\x77\x87\xdc\x80\x3d\xb5\x89\x30\xe2\x2b\ +\xbe\xf6\x69\x4a\x80\xdd\x7e\x45\x58\x84\x11\x5f\xd2\x6f\xc1\x6e\ +\xc0\x9e\xd6\x44\x18\xef\xa7\xf8\xda\xab\x02\x8c\x08\x8b\x30\xe2\ +\x8b\x00\x8f\xbb\xee\x23\xc2\x88\xaf\xf8\x52\xa5\x4b\x6e\xc0\xff\ +\xe2\x63\x12\x11\xc6\xfb\x26\xbe\xf6\xab\x00\x23\xc2\x22\x2c\xbe\ +\xce\x3d\x73\x1f\x48\xe6\x5f\xf3\x3d\x9d\x59\x9a\x96\xa6\x73\xe4\ +\x1c\xd5\x51\xb5\x05\xab\x1b\xe0\x06\x8c\x9b\x30\xde\x1f\xf1\x65\ +\x03\x01\x76\xfb\x15\x61\xbc\x2f\xe2\x6b\xdf\x4e\x0e\xb0\xdf\x7e\ +\x16\x61\xcb\x1e\xf1\xa5\xb2\xd5\x9d\x72\x03\x46\x84\xf1\x3e\x88\ +\x2f\x93\x6f\xc0\x95\xf9\x38\x44\x84\xf1\xfa\x8b\xaf\xbd\x3b\x32\ +\xc0\x3e\x7e\x16\x61\x11\x40\x7c\xe9\x60\x65\xaf\xe2\x6f\xc0\x9e\ +\xc2\x2c\x31\x11\xf6\x7a\x8b\xaf\xfd\x3b\xf6\x06\x8c\x08\x8b\x02\ +\xe2\x0b\x8b\x03\xec\xe3\x67\x44\x18\xf1\xa5\x93\x55\xdd\x8a\xbe\ +\x01\xfb\xf8\xd9\x72\x13\x61\xaf\xab\xf8\xda\xc3\x63\x6f\xc0\x20\ +\xc2\xe2\xeb\x5c\x82\x00\x63\xd9\x89\xb0\xd7\x51\x7c\xa9\x72\xfb\ +\xbf\x4e\xe5\xef\x7f\x7d\xfc\x6c\x39\x5b\xce\xde\x5f\xef\x6f\x1d\ +\x15\x7b\x71\x75\x27\xdc\x80\xb1\xfc\xdc\x84\xc5\x17\x36\x10\x60\ +\x2c\x41\x11\x16\x5f\xd8\x73\xc3\xbe\x86\x8f\x9f\xb1\xb4\xbd\x8f\ +\xde\x47\xba\x77\xe3\xca\x5e\xb8\x01\x63\x29\xba\x09\x8b\x2f\x6c\ +\x20\xc0\x58\x8e\x22\x2c\xbe\x20\xc0\xd7\xf3\xf1\xb3\x25\x29\xc2\ +\xe2\x8b\xfd\x3c\x36\xc0\xfe\xf9\x49\x44\x58\x7c\x9d\x27\x26\xb8\ +\xb2\x67\x3e\x82\xc6\xd2\x14\x61\xf1\x85\x29\x37\xe0\xaa\x7c\xfc\ +\x2c\xc2\x22\x2c\xbe\xd8\xd3\x02\x0c\x22\x2c\xbe\xe2\x8b\x1b\x30\ +\x58\xa6\x22\x2c\xbe\xd0\x3a\xc0\x7e\x01\x0b\x11\x16\x5f\xe7\x84\ +\x49\xae\xea\x5a\xcc\x0d\xd8\xf7\xbf\x22\x2c\x52\xe2\x8b\x7d\x3d\ +\xfa\x06\x0c\x22\x3c\x2b\xc2\xe2\x0b\x02\x0c\x22\xec\xe7\x10\x5f\ +\x04\xf8\x23\xbe\xff\xc5\xd2\x9d\x13\x61\xf1\x85\x6b\xfb\x16\x71\ +\x03\xf6\xfd\xaf\x08\x8b\x98\xf8\x62\x6f\x8f\xbe\x01\x83\x25\xdc\ +\x3f\xc2\xe2\x0b\x02\x0c\x22\xec\xbf\x53\x7c\x11\x60\xb0\x94\x67\ +\xc7\x4d\x7c\x41\x80\x4f\xe5\xfb\x5f\x11\x16\x39\xf1\xc5\xfe\x1e\ +\x1d\x60\xbf\x01\x8d\x25\xdd\x33\x76\xe2\x0b\x7b\x3a\xe7\x23\x68\ +\x44\x38\x38\x7a\xe2\x0b\x03\x6e\xc0\x60\x69\xf7\x8a\x9f\xf8\x82\ +\x00\x83\x08\x8b\xaf\xf8\x22\xc0\x93\xf8\x05\x2c\x44\x58\x7c\xb1\ +\xc7\x05\x18\x2c\xf3\xed\x51\x14\x5f\x18\x16\x60\xbf\x01\x8d\xa5\ +\x5e\x3f\x8e\xe2\x0b\xb5\x7a\xe7\x06\x8c\x08\x07\x44\x58\x7c\x61\ +\xe8\x0d\x18\x44\xb8\x6e\x2c\xc5\x17\x04\x18\x2c\xfb\xc5\xd1\x14\ +\x5f\x10\xe0\xe5\xfc\x06\x34\xe9\x11\x16\x5f\xec\x73\x01\x06\xcb\ +\x7f\x71\x44\xc5\x17\x04\x18\x44\x60\x71\x84\xc5\x17\x04\x18\x44\ +\x78\x71\x84\xc5\x17\x82\x02\xec\x6f\x80\x11\xe1\x1a\x11\x16\x5f\ +\x58\xe3\xac\xee\xb9\x01\xc3\x80\x08\x8b\x2f\x04\xde\x80\x41\x84\ +\xf7\x46\x58\x7c\x41\x80\xcb\xf0\x27\x48\xa4\x44\x58\x7c\x49\x31\ +\x71\xaf\x7f\xf9\x07\xaa\xf8\x1d\xb0\x00\x73\xc5\x4d\x13\xf1\x65\ +\xaf\x4a\xbd\x39\xa3\x33\x3e\x82\x06\xf1\xf0\xfa\xc1\x06\x02\x0c\ +\x22\xe2\x75\x03\x01\x06\x31\xf1\x7a\x81\x00\x03\xa2\xe2\x75\x02\ +\x01\x06\x71\xf1\xfa\x80\x00\x83\xc8\xe0\x75\x01\x01\x06\xb1\xf1\ +\x7a\x40\x50\x80\xfd\x3b\xd0\x88\x8e\xd7\xc1\xab\x40\xa2\x33\xfa\ +\xe7\x06\x0c\xe2\xe3\xe7\x87\x6e\x37\xe0\x8a\xfc\x2b\x58\x88\x90\ +\x9f\x9b\x99\xa6\xed\x77\x37\x60\x10\x23\x3f\x2f\x08\x30\x88\x92\ +\x9f\x13\x04\x18\x10\x27\xf1\x05\x01\x06\x91\xf2\x73\x81\x00\x03\ +\x21\xb1\x12\x5f\x10\x60\x10\x2d\x3f\x07\x08\x30\x30\x3b\x5e\xe2\ +\x0b\x02\x0c\x22\xe6\xbf\x1b\x04\x18\x98\x1d\x33\xf1\x05\x01\x06\ +\x11\xf6\xdf\x09\x02\x0c\xfc\x7f\xcf\x2f\xaf\x77\xff\x9d\x80\x00\ +\x83\xa8\x89\x30\x08\x30\x88\xaf\xff\x6e\x10\x60\x40\xc4\x44\x18\ +\x04\x18\xc4\xcb\xcf\x01\x02\x0c\x04\x46\x4b\x84\x41\x80\x41\xac\ +\xfc\x5c\x20\xc0\x40\x56\xa4\x44\x18\x04\x18\xc4\xc9\xcf\x09\x02\ +\x0c\xe2\x9b\x15\x25\x11\x06\x01\x06\x31\xf2\x73\x83\x00\x83\x08\ +\xf9\xf9\x81\xc7\x7d\xf9\x1f\x5e\xbf\xdf\x6e\xf7\x82\x3f\x94\x7f\ +\x50\x1e\xf1\x59\xc4\xff\x81\x03\xab\x54\xea\xcd\x19\x9d\x71\x03\ +\x06\xf1\xf5\x7a\xc0\x06\x02\x0c\x62\xe3\x75\x01\x01\x06\x91\xf1\ +\xfa\x80\x00\x03\xe2\xe2\x75\x02\x01\x06\x51\xf1\x7a\x81\x00\x83\ +\x98\xe0\x75\x03\x01\x06\x11\xf1\xfa\x81\x00\x83\x78\x2c\xd0\xe1\ +\xef\x6f\x45\x18\x04\x18\x46\xc6\x57\x84\x41\x80\x41\x7c\x37\xdd\ +\x7c\x45\x18\x04\xb8\x8c\x8a\xff\x3c\x26\xe2\x7b\x45\x7c\x45\x98\ +\x14\x13\xf7\xfa\x97\x03\xec\xdf\x5d\x46\x7c\xf7\xc6\x57\x84\x61\ +\xad\xb3\xba\xe7\x23\x68\xc4\x77\xd0\x2f\x5c\x89\x30\x04\xdd\x80\ +\x41\x7c\x6b\xc4\x57\x84\x41\x80\x41\x7c\x37\xc5\x57\x84\x41\x80\ +\xc1\xf2\xdf\x14\x5f\x11\x06\x01\x06\x4b\x7f\x73\x3c\x45\x18\x04\ +\x78\x39\x7f\x8a\x44\x7a\x7c\x45\x18\xfb\x5c\x80\xc1\x92\xdf\x1c\ +\x4b\x11\x86\xa1\x01\xf6\xb7\xc0\x58\xee\xf5\x23\x29\xc2\x50\xab\ +\x77\x6e\xc0\x88\x6f\x40\x7c\x45\x18\x86\xde\x80\xc1\x32\xef\x13\ +\x45\x11\x06\x01\x06\xf1\xdd\x14\x43\x11\x06\x01\xbe\x94\xdf\x84\ +\x16\x5f\xf1\x15\x61\xec\x71\x01\x06\x4b\xbb\x5c\xfc\x44\x18\x06\ +\x04\xd8\x6f\x42\x63\x59\xf7\x8c\x9e\x08\xc3\x9e\xce\xb9\x01\x23\ +\xbe\x62\x27\xc2\xd0\xf9\x06\x0c\x96\x73\xef\xc8\x89\x30\x08\xf0\ +\xa9\xfc\x22\x96\xf8\x8a\x9b\x08\x63\x7f\x0b\x30\x88\xaf\x08\x8b\ +\x30\x08\x30\xe2\x2b\x66\x22\x0c\x23\x02\xec\x37\xa1\xb1\x7c\xfb\ +\xc7\x57\x84\x61\x4d\xdf\x22\x6e\xc0\xbe\x07\x16\x5f\xf1\x12\x61\ +\xec\xed\xd1\x37\x60\xb0\x6c\xe7\xc4\x57\x84\x41\x80\x41\x7c\xfd\ +\x5c\x22\x8c\x00\xff\x8e\xef\x81\x11\xdf\x99\x44\x98\x54\x57\x75\ +\x2d\xe6\x06\xec\x7b\x60\xf1\x15\x5f\x11\xc6\xbe\x1e\x7d\x03\x06\ +\xf1\x15\x61\xe7\x06\x04\x18\xf1\x15\x5f\x11\x06\x01\x06\xf1\x15\ +\x61\xe7\x08\xfe\x72\xd9\x00\x55\xfd\x0c\xdf\x2f\x89\x89\xaf\xf8\ +\x7a\xbf\xa8\xab\x5a\x3b\xae\x6c\x86\x1b\x30\x96\xb9\x65\xee\x26\ +\x0c\x1b\x08\x30\x96\xa4\xf8\x8a\x30\x08\xf0\xf5\xfc\x39\x92\xe5\ +\x28\xbe\x22\x8c\xfd\x3c\x3a\xc0\xbe\x6b\x45\x7c\x45\xd8\x79\xa3\ +\xb3\xab\x3b\xe6\x23\x68\x2c\x43\xf1\x15\x61\x98\x74\x03\xae\xcc\ +\xc7\xd0\x96\xa0\xf8\x7a\xdd\x44\xd8\x5e\x1e\x1d\x60\x1f\x43\x23\ +\xbe\x22\xec\x1c\xd2\xd1\x8a\x7e\xf9\x08\x1a\x4b\x4f\x7c\x45\x18\ +\xa6\xdd\x80\x2b\xf3\x31\xb4\x65\x27\xbe\x5e\x4f\x11\xb6\x8f\x05\ +\x18\xf1\x15\x0b\x11\x76\x3e\x11\xe0\x73\xf9\x1e\x18\xf1\x45\x84\ +\xe9\x64\x55\xb7\xa2\x6f\xc0\x3e\x86\xb6\xd4\xc4\xd7\xeb\x2c\xc2\ +\xf6\xf0\xd8\x1b\x30\xe2\x2b\x0a\x88\x30\x6c\x0a\xb0\x8f\xa1\xc5\ +\x57\x0c\x10\x61\x3a\x58\xd9\xab\xf8\x1b\xb0\x8f\xa1\xc5\x17\xaf\ +\xbf\x08\xdb\xbf\x63\x6f\xc0\x88\xaf\xe5\x8f\x08\xc3\x7f\x6e\xdb\ +\x9e\x76\xfe\x7e\x21\x2c\x64\xf1\xc5\xb9\x71\x6e\x82\x7b\xb0\xba\ +\x03\x6e\xc0\x58\xa2\x78\x5f\xdc\x84\xd9\x40\x80\x11\x5f\xbc\x3f\ +\x22\xcc\x9e\x1b\xf7\x5a\x3e\x86\x16\x5f\xcb\x1d\xe7\x29\x9b\x8f\ +\x9f\xdd\x80\xb1\x2c\xf1\x7e\xb9\x09\xb3\x8d\x00\x37\xb9\x9d\x5b\ +\x42\xe2\x2b\xc2\xce\xbf\x3d\x2b\xc0\xed\xae\xf9\x88\x2f\x22\x2c\ +\xc2\x54\xeb\x92\x1b\xb0\xa7\x33\xf1\xc5\xfb\x28\xc2\xf6\xab\x00\ +\x63\xd9\x88\x2f\x22\x8c\x00\x8f\xbb\xee\x23\xbe\x88\xb0\x08\x53\ +\xa5\x47\x6e\xc0\x1f\xf0\x31\x89\xf8\xe2\xfd\x15\x61\x7b\x75\x6c\ +\x80\xdd\x82\xc5\x57\x7c\x11\x61\x52\x6f\xbf\x6e\xc0\x9e\xd6\x46\ +\x2c\x3d\xf1\x75\x1e\xfd\xf7\xd9\xa7\x6e\xc0\xb8\x01\x5b\x76\x84\ +\xbf\xef\x6e\xc0\xb4\x08\x70\xf5\x8f\xa1\x3d\xb5\x59\xc2\x78\xff\ +\x99\xb9\x47\x2b\xf4\xc7\x0d\x98\x96\x4f\xf3\x96\x2f\x95\xcf\x81\ +\x5b\x30\x2d\x02\xec\x16\x8c\xf8\xe2\x3c\xb8\xfd\x26\x76\xc7\x0d\ +\x18\xcb\x16\xe7\x02\x52\x03\xec\x16\x8c\x25\x8b\xf3\xe1\xf6\x9b\ +\xd6\x1b\x37\x60\x2c\x57\x9c\x13\x10\x60\x4f\x73\x58\xaa\x38\x2f\ +\xf6\x65\x86\xc3\x9b\xf6\xe9\x17\x2c\x6e\xb8\x77\xfe\x46\xa7\x65\ +\x8a\x73\x2b\xbe\x53\xf7\xb7\x1b\x30\x6e\x32\x38\x3f\x90\x7e\x03\ +\x76\x0b\x76\x9b\xb0\x3c\x71\x76\xdd\x7e\x53\xf6\xb6\x1b\x30\x8f\ +\x8c\xd5\xd2\x73\x22\xbe\xf4\x3e\x4f\x77\x7b\x95\x9e\x01\xee\x70\ +\xbb\xcc\xfb\x05\x83\xe3\x4d\x7c\x11\xe1\x7a\xf3\x62\x2f\xf6\xee\ +\x8a\x27\x35\xca\x2c\x30\xf1\xc5\x19\x26\xea\x6a\xe3\x69\x6a\xf6\ +\x6d\xfd\x6c\x57\x7d\x9f\x66\x71\xe1\x0c\xbb\xfd\xa6\xed\x69\x37\ +\xe0\xe1\x0f\x09\x1d\x96\x8c\xf8\xe2\x0c\xdb\x83\x89\xca\x06\x38\ +\xf1\x76\x99\xb8\xc0\xc4\x17\x67\x98\xd4\x8e\xb8\x01\x7b\xfa\xdb\ +\xb6\x74\x2c\x2e\x9c\x61\xfb\x2f\xfc\x01\xc1\x1b\xec\xb6\xfe\xa5\ +\x77\xe8\xe9\x76\x3b\xde\x1e\xfd\x5e\xed\xc7\xf7\x6f\xc7\xf3\xcb\ +\xeb\x5d\x7c\xa9\xe2\xfd\x3c\x7e\xe6\x0c\xbf\x9f\x7b\x17\x10\xdf\ +\xfd\x0a\xb0\x37\xbb\xd4\x32\x73\x53\xc0\x19\x16\x5f\x3b\x79\x40\ +\x80\x45\x18\xc0\x4e\x9e\xb8\x8b\x7d\x07\x0c\x00\x6e\xc0\x6e\xc1\ +\x00\x76\x71\xc6\x0e\x76\x03\x0e\x7d\x50\x00\xb0\xdf\x04\xd8\xcd\ +\x12\x80\xb8\x4e\xb8\x01\x7b\x4a\x04\xb0\xd7\xf6\x3c\x30\x38\x04\ +\x9e\xc6\x00\x7a\xef\xdd\x8e\xfb\xf6\x70\x18\x1c\x0a\x00\xf1\x5d\ +\xcf\x47\xd0\x00\xe0\x06\xec\x16\x0c\x60\xcf\x66\xec\x57\x37\x60\ +\x87\x18\xc0\xde\x72\x03\x9e\x7d\x40\xdc\x84\x01\xbb\xd5\x4e\x75\ +\x03\x06\x00\x37\x60\xb7\x60\x00\x3b\x35\x6b\x97\x1e\x0e\x8c\x83\ +\x03\x20\xbe\xeb\xf9\x08\xda\x21\x07\xb0\x97\x04\xd8\x8d\x12\x80\ +\x8c\x7d\x3f\x2a\x5c\x3e\x8a\x06\x98\xbb\x3b\xa7\xed\x4c\x1f\x41\ +\x3b\xf4\x80\x3d\x84\x1b\x70\xe6\x61\x72\x13\x06\xec\xcb\xbc\x3d\ +\x79\x38\x54\x0e\x17\x20\xbe\xf6\xe3\x7a\x3e\x82\x36\x0c\x80\x7d\ +\x83\x1b\xb0\x03\xe6\x26\x0c\xd8\x8d\x19\x3b\x71\xec\x0d\x58\xc8\ +\x00\xec\x71\x01\x66\xfc\xcd\x1d\xb0\x5f\xf8\xf4\x03\x86\x03\xe7\ +\xc9\x0f\xb0\x0b\xed\x40\x01\x76\xf0\x44\x18\x10\xdf\x00\x3e\x82\ +\x36\x34\x80\x3d\x82\x1b\xb0\x43\xe8\x26\x0c\x24\xef\xbd\xa4\x7d\ +\x77\x38\x8c\x0e\x25\x60\xdf\xd9\x73\x02\xec\x50\x3a\x9c\x80\xf8\ +\x46\xf0\x1d\xb0\xa1\x02\xec\x09\xdc\x80\x1d\x50\x4f\x8a\x40\xda\ +\x6e\x4b\xdd\x69\x87\x83\x2a\xc2\x80\x9d\x66\x97\x09\xb0\x03\xeb\ +\xe0\x02\xe2\x1b\xc1\x77\xc0\x86\x0e\xb0\x07\x70\x03\x76\x78\x3d\ +\x45\x02\x09\xfb\xcb\xde\xf2\x02\x88\x30\x60\x6f\xd9\x57\x02\xec\ +\x30\x3b\xd8\xc0\xec\x5d\x65\x47\x09\xb0\x08\x03\x76\x94\xdd\xb4\ +\x95\x5f\xc2\x32\xa4\x80\xb9\xc6\x0d\xd8\x21\xf7\xb4\x09\x4c\xdc\ +\x4b\xf6\x91\x00\x8b\x30\x60\x1f\xd9\x43\x02\xec\xd0\x3b\xfc\x80\ +\xf8\x0a\x30\xa3\x23\x6c\x10\xc0\xee\xb1\x73\x04\xd8\x20\x18\x08\ +\x40\x7c\x05\xd8\x4b\x20\xc2\x80\x5d\x63\xc7\x08\xb0\xc1\x30\x24\ +\x60\xbf\xd8\x2b\x11\xfc\x1d\xb0\xa1\x07\xcc\x21\x6e\xc0\x06\xc5\ +\x13\x2b\xd8\x29\x76\x89\x00\x13\xf6\xb4\x6a\x78\xc0\x1e\xb1\x3f\ +\x04\xd8\xf0\x18\x22\xb0\x3f\xec\x0d\x01\x46\x84\x01\x7b\xc3\xbe\ +\x10\x60\xc3\x64\xb0\xc0\xae\xb0\x23\x04\xd8\x60\x89\x30\x20\xbe\ +\x08\xb0\x01\x33\x6c\x60\x2f\xd8\x07\x02\x6c\xd8\x0c\x1d\xd8\x07\ +\xf6\x00\x02\x6c\xe8\x0c\x20\xd8\x01\x66\x5f\x80\x0d\xa0\x61\x04\ +\x73\x6f\xde\x05\x18\xc3\x68\x28\xc1\xbc\x9b\x73\x01\x36\x94\x06\ +\x14\xcc\xb8\xd9\x16\x60\x0c\xa8\x61\x85\xc8\xb9\x36\xcf\x02\x6c\ +\x60\x0d\x2e\x98\x63\xf3\x2b\xc0\x18\x5e\x43\x8c\xf9\x35\xb7\x08\ +\xb0\x21\x36\xd0\x60\x66\xcd\xaa\x00\x63\xa0\x0d\x37\xe6\xd4\x7c\ +\x22\xc0\x86\xdb\xa0\x83\xd9\x34\x93\x02\x8c\x41\x37\xf4\x98\x47\ +\x73\x88\x00\x1b\x7a\x0b\x00\x7c\x1a\x65\xf6\x04\xd8\x12\x10\x62\ +\x0b\x01\xf3\x66\xce\x04\x18\x4b\xc1\x82\xc0\x8c\x99\x2d\x04\xd8\ +\x82\xb0\x2c\xbc\x0a\x98\x2b\xf3\x24\xc0\x58\x16\x96\x07\xe6\xc8\ +\xfc\x20\xc0\x16\x88\x45\x02\xe6\xc6\xbc\x08\x30\x96\x89\xe5\x82\ +\x39\x31\x1f\x08\xb0\xe5\x62\xd9\x60\x2e\xcc\x03\x02\x8c\x85\x63\ +\xf9\x60\x06\x9c\x7d\x04\xd8\x02\xb2\x90\x70\xe6\x9d\x75\x04\x18\ +\x0b\xc9\x82\xc2\x19\x77\xb6\x05\x18\x4b\xca\xd2\xc2\x59\x76\x86\ +\x11\x60\x2c\x2e\xcb\xcc\xb9\xc5\x79\x15\x60\x2c\x34\x0b\x0e\xe7\ +\xd3\xb9\x44\x80\xb1\xe4\x2c\x3f\xe7\xd0\xf9\x43\x80\xb1\x00\x49\ +\x5a\x8c\xce\x99\xf3\x85\x00\x63\x39\x5a\x9e\xce\x91\xf3\x83\x00\ +\x63\x81\x52\x7b\xd9\x3a\x13\xce\x02\x02\x8c\x08\x03\xe2\x2b\xc0\ +\x08\x31\x20\xbc\x08\x30\x22\x0c\xe2\x8b\x00\x23\xc4\x80\xf0\x22\ +\xc0\x08\x31\x08\x2f\x02\x8c\x10\x03\xc2\x8b\x00\x23\xc2\x20\xbe\ +\x08\x30\x42\x0c\x08\x2f\x02\x8c\x10\x83\xf0\x22\xc0\x08\x31\x08\ +\x2f\xce\x08\x08\x31\x08\x2f\x02\x8c\x10\x83\xf0\x22\xc0\x20\xc4\ +\x20\xbc\x08\x30\x42\x0c\xc2\x8b\x00\x83\x10\x23\xbc\x20\xc0\x08\ +\x31\x08\x2f\x02\x0c\x62\x8c\xe8\x82\x00\x23\xc4\x20\xbc\x08\x30\ +\x42\x0c\xc2\x0b\x0e\x1b\x62\x8c\xe8\x7a\x15\x10\x60\x84\x18\x84\ +\x17\x01\x06\x31\x46\x74\x41\x80\x11\x63\x10\x5d\x04\x18\xc4\x18\ +\xd1\x05\x01\x46\x8c\xb1\xcc\xec\x33\x04\x18\xc4\x18\xd1\x05\x01\ +\x46\x90\x11\x5c\x10\x60\x10\x63\x44\x17\x04\x18\x41\x46\x70\x41\ +\x80\x41\x94\xc5\x16\x04\x18\x04\x19\xc1\x05\x01\x06\x61\x16\x5a\ +\x10\x60\x40\x98\x85\x16\x04\x18\x04\x5a\x60\x41\x80\x81\xc2\xc1\ +\x16\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x3a\xf9\x13\xbe\xd2\x7f\x7d\xdc\xdb\xc8\xbd\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\xa4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -151,6 +4021,1072 @@ qt_resource_data = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x5d\x7c\x02\x18\ \x91\x70\xef\xf9\x28\xe8\xaa\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ +\x00\x00\x00\xb7\ +\x00\ +\x00\x04\x2b\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\ +\xe0\xf5\xf4\x70\x09\x62\x60\x60\x7c\x00\xc2\x1c\x6c\x40\x91\xda\ +\x2b\xfb\xa6\x02\x29\xb6\x24\x6f\x77\x17\x06\x5b\x06\x4b\x06\xd3\ +\xbb\xbf\xef\x96\x00\x45\x38\x0b\x3c\x22\x8b\x19\x18\xb8\x85\x41\ +\x98\x91\x61\xd6\x1c\x09\xa0\x20\x7b\x89\xa7\xaf\x2b\xfb\x63\x16\ +\x71\x5e\x46\xa5\x05\x2f\x5f\xce\x01\x0a\x49\x96\xb8\x46\x94\x38\ +\xe7\xe7\xe6\xa6\xe6\x95\x30\x38\x17\xa5\x26\x96\xa4\xa6\x28\x94\ +\x67\x96\x64\x28\xb8\x7b\xfa\x06\x84\x37\xf2\x89\x33\x30\x30\x4f\ +\xf6\x74\x71\x0c\xa9\xb8\xf5\xf6\x20\x23\x23\x50\x4b\x93\xc2\xff\ +\xf5\x79\x1e\x0e\x20\xe6\x28\x18\x05\xa3\x60\x00\xc0\x87\x0c\xa1\ +\x4d\x0c\x8c\x62\xde\xea\x33\x41\x3c\x4f\x57\x3f\x97\x75\x4e\x09\ +\x4d\x00\x64\xbc\x2e\x95\ +\x00\x00\x13\x2f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ +\x15\x07\x23\x38\x60\xc7\x32\x2b\x00\x00\x00\x19\x74\x45\x58\x74\ +\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ +\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x12\ +\xa9\x49\x44\x41\x54\x78\xda\xed\xdd\x3d\x6e\x54\x59\x1a\x80\xe1\ +\x62\xe4\xa4\x57\xd1\xd9\xec\x80\x80\xa0\x2c\xb9\x10\x0e\xd8\x42\ +\xb3\x10\xb0\xda\x42\xc8\x23\x60\x21\xf4\x16\x3a\x00\x51\x96\x5c\ +\x01\x01\x3b\x98\x6c\x56\x41\xe8\x09\x7a\xec\xf6\x18\xff\xd4\xbd\ +\xf7\xfc\x7c\xe7\x9c\xe7\x91\x46\x1a\xa9\xbb\xc1\x54\x7d\xf7\xbc\ +\xf5\xdd\x2a\x9b\xd5\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\ +\x89\x27\x1e\x02\x80\xb8\xd6\x5f\x7f\xbb\x5c\xfa\x6b\xec\x9e\xff\ +\xe1\xac\x17\x60\x00\x52\x07\x56\xa0\x05\x18\x80\xe0\xb1\x15\x65\ +\x01\x06\x10\xdc\x86\x08\xb2\x00\x03\x08\xae\x20\x0b\x30\x80\xe8\ +\x8e\x13\x5d\x31\x16\x60\x00\xd1\x15\x63\x01\x06\x10\x5e\x84\x58\ +\x80\x01\x44\x57\x8c\x05\x18\x40\x78\x11\x62\x01\x0e\xe9\xe4\xe4\ +\x64\xf2\x45\xfe\xfe\xfd\x7b\xcf\x9b\x39\x31\x27\xc2\x2b\xc4\x02\ +\x4c\xee\x83\xd4\x41\x6b\x4e\xcc\x89\xf0\x0a\xb1\x00\x13\xe4\x30\ +\x75\xc8\x9a\x13\x73\x22\xbc\x42\x2c\xc0\x04\x38\x50\x1d\xb0\xe6\ +\xc4\x9c\x08\xaf\x10\x0b\xb0\x03\xb5\xe2\x81\xea\x80\x35\x27\xe6\ +\x44\x7c\x45\x58\x80\x1d\xa8\x81\x08\xb1\x39\x31\x27\xc2\x2b\xc4\ +\x02\xec\x40\x75\xc0\x9a\x13\x73\x22\xbe\x0c\x1f\x61\x87\xf1\x40\ +\x87\xaa\x08\x9b\x93\x11\xe7\x44\x78\x85\x58\x80\x1d\xaa\x0e\x57\ +\x73\x62\x4e\xc4\x17\x11\x16\xe0\x91\x0f\x55\x11\x36\x27\xbd\xcf\ +\x89\xf0\x0a\xb1\x00\x3b\x54\x1d\xae\xe6\xc4\x9c\x88\x2f\x22\x2c\ +\xc0\x0e\x55\x11\x36\x27\x7d\xcf\x89\xf8\x8a\xb0\x00\x3b\x54\xf7\ +\xb6\xd9\x6c\x26\xff\x37\xdb\xed\x56\x84\xc5\x57\x84\x85\x97\xc6\ +\x43\xec\xd0\xad\x70\xa8\xce\x89\x6e\x89\x18\x8b\xb0\xf8\xb6\x38\ +\x27\xe2\x4b\xab\x11\x76\xe0\x16\x3c\x54\x53\x86\x37\x57\x88\x45\ +\x38\x66\x7c\xa3\xdc\x29\x89\x36\x27\xe2\x4b\xcb\x11\x76\xd8\x16\ +\x38\x54\x73\x86\x37\xc7\xa1\x2b\xc2\x31\xe2\x1b\xf5\x4e\x49\x94\ +\x39\x11\x5f\x5a\x8f\xf0\x81\xa7\x2c\x9f\x92\xe1\xbd\xfd\x7b\xe6\ +\xdc\x7e\x68\x6f\x6e\x7a\x9b\x0b\xf1\xe5\xbe\xb9\x68\x29\xc2\x36\ +\x9d\x4c\x5b\x4d\x8d\xf8\xa6\xdc\x7a\x6c\xc1\xe5\xb7\xdf\xd6\xee\ +\x94\xd4\x9a\x13\xf1\xa5\x97\x4d\xd8\x06\xdc\xc9\xe6\x7b\xdf\xd7\ +\x61\x13\x36\x2f\x3d\x6d\xc4\xe2\xfb\x97\x8b\xcd\xa7\x7b\xff\xd9\ +\xe1\xf6\x95\x4d\xb8\x91\x4d\xd8\x96\x93\x78\xab\x89\x12\xdf\x14\ +\xdb\x8e\x2d\x38\xff\xf6\xdb\xfa\x9d\x92\x92\x73\x32\x7a\x7c\x1f\ +\x8a\xae\x18\xb7\xb9\x09\xff\xc3\x11\xda\xdf\xe6\xdb\xca\xd7\x65\ +\x5e\x36\xbe\x0e\xf1\xcd\x16\xdf\x25\xff\x5d\x4f\x9b\xb0\x0d\x78\ +\x80\xad\xa6\x85\x43\x6c\xce\xa6\x63\x0b\xce\xb3\xfd\xf6\x74\xa7\ +\x24\xf7\x9c\x88\xef\xf2\x88\xda\x84\x63\x6e\xc2\x36\xe0\x81\x36\ +\x4c\x9b\xb0\xe7\xa1\xb5\xaf\x4b\x7c\x3f\x85\xfa\x75\x6c\xc2\x02\ +\x1c\x76\xab\xf1\x78\x78\x5c\x5a\x7f\x11\x34\xf7\xeb\xcb\x31\x27\ +\xe2\xfb\x29\xf4\xaf\x27\xc2\x02\x6c\x6b\xb0\x05\x7b\xec\x3b\xfc\ +\x3a\xc5\xf7\x53\x53\xbf\xae\x08\x0b\x30\xe0\x90\x84\x66\xe6\x4b\ +\x80\x6f\x98\x7a\x1b\xad\xd5\x6d\x72\xea\xd7\xed\x36\xf4\xf2\xc7\ +\x63\x84\x3b\x25\x29\xe6\x44\x7c\x19\x29\xc2\x02\x0c\x38\x14\x03\ +\xc9\x7d\x9b\x78\xf4\xdb\xd0\x91\xe6\x4d\x80\x0b\x6e\x08\xbe\x7e\ +\xb3\xe2\xeb\x06\x04\x18\xb0\x8d\x60\xee\x04\xb8\x3e\xef\x73\x7a\ +\x7c\x72\x3c\x0e\xa3\xdd\x29\x99\x33\x27\xe2\xcb\xa8\x11\x16\xe0\ +\x02\x87\x92\x3f\x07\x88\x2f\xe6\x50\x80\x01\x20\x00\x01\x86\x4c\ +\xdc\x29\xb1\xfd\x62\x0b\x16\x60\x60\xf8\xc3\x0e\xa2\xcd\xa5\x00\ +\x03\x40\x05\x02\x0c\xd8\x7e\xa1\xc2\x7c\x0a\x30\x20\xbe\x50\x61\ +\x4e\x05\x18\x00\x2a\x10\x60\xc0\xf6\x0b\x15\xe6\x55\x80\x01\xf1\ +\x85\x0a\x73\x2b\xc0\x00\x50\x81\x00\x03\xb6\x5f\xa8\x30\xbf\x02\ +\x0c\x00\x36\x60\xc0\xf6\x00\x63\xcc\xb1\x00\x03\x80\x0d\x18\xb0\ +\x35\xc0\x18\xf3\x2c\xc0\x00\x60\x03\x06\x6c\x0b\x30\xc6\x5c\x0b\ +\x30\x00\xd8\x80\x01\x5b\x02\x8c\x31\xdf\x02\x0c\x00\x36\x60\x00\ +\x10\x60\x80\x49\x76\xcf\xff\xe3\x41\xa0\x7b\xa9\x6e\x43\x0b\x30\ +\x00\xd8\x80\x01\xdb\x2f\x8c\xb1\x05\x0b\x30\x00\xd8\x80\x01\x40\ +\x80\x01\xf6\xe2\xf6\x33\x23\x5a\x7a\x1b\x5a\x80\x01\xc0\x06\x0c\ +\x00\x02\x0c\xf0\x28\xb7\x9f\x19\xd9\x92\xdb\xd0\x02\x0c\x00\x36\ +\x60\x00\x10\x60\x00\x40\x80\x81\x68\xbc\xff\x0b\xf3\xdf\x07\x16\ +\x60\x00\xb0\x01\x03\x80\x00\x03\x00\x02\x0c\x44\xe2\xfd\x5f\xf8\ +\xdb\x9c\xf7\x81\x05\x18\x00\x6c\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x03\xf3\x01\x2c\xf8\xd9\xd4\x0f\x62\x1d\x78\xc8\xea\ +\x7a\x77\xfa\x66\xf6\x7f\xfb\xf6\xec\x83\x07\x10\xa0\x51\x02\xdc\ +\x40\x68\xa7\xfe\x9a\xc2\x0c\x20\xc0\x82\x1b\xe0\xf7\x16\x64\x00\ +\x01\x16\xdd\xca\x5f\x97\x18\xd3\xa3\x8b\xcd\x27\x0f\xc2\xa0\x8f\ +\xd7\xe1\xf6\x95\x00\x8b\x6e\x7b\x5f\xaf\x18\x23\x22\xf4\x34\x07\ +\xad\xc5\x58\x80\x07\x09\xef\x43\x7f\x86\xf5\xd1\x0b\x4f\x28\xe2\ +\x4b\x17\x73\xd1\x52\x84\x7d\x1b\xd2\x44\xbb\xf3\x2f\x5d\xc4\xf7\ +\xf6\x9f\x69\x77\xfe\xc5\x93\x8b\xf8\x62\x3e\x04\x58\xa4\xfc\x19\ +\x09\x3b\x27\x15\xbf\x07\x58\x7c\x89\x3e\x27\x53\xbe\x17\x58\x80\ +\x45\xc9\x9f\x19\x87\x2a\xe6\xc5\x06\x1c\x2f\x44\xfe\xfc\xe0\x30\ +\xc5\xdc\xe4\xe0\x43\x58\xc2\xb3\xd7\x63\xe1\x83\x5a\x00\x36\x60\ +\xf1\xf5\xb8\x00\x34\xcf\x06\x1c\x20\x30\xbb\xd3\xd7\x7b\xfd\x7b\ +\x3f\x8e\x5e\x5e\xff\xff\xe3\xcd\x61\xf1\xaf\x73\xfd\xec\xe9\xe5\ +\x6a\xb5\x5a\xed\xbe\x7d\x7f\x62\x62\x28\xc5\xed\x67\x96\xce\x4f\ +\xd4\x6f\x4d\x12\xe0\x1b\x61\x89\x14\xdb\xbb\xfc\x72\xfe\xe7\x75\ +\x84\x3f\x6f\x2f\x7e\xfa\xe7\xa5\xa2\xbc\x7e\xf6\xf4\x52\x84\x01\ +\x04\x38\x74\x7c\x97\x04\xf7\xb1\x08\xdf\x76\x3b\xca\x39\x83\x2c\ +\xc2\x00\x02\x1c\x2e\xbe\xa9\xa3\x3b\x25\xc2\xf7\x05\x39\x47\x8c\ +\x45\x18\x60\xbe\x61\x3f\x84\x95\x23\xbe\xbb\xd3\xd7\xd9\xe3\x7b\ +\x33\xc2\x53\x7c\xde\x5e\xdc\x79\xdb\x3a\xfa\x1d\x04\x00\x01\x16\ +\xdf\x10\xe1\x5d\x12\xe1\x5c\x21\x16\x61\x00\x01\x2e\x1a\x8b\x5a\ +\xe1\x5d\x1a\xe1\x1c\x21\x16\x61\x00\x01\xce\x1e\x89\x08\xe1\x4d\ +\x11\xe1\xd4\x21\x16\x61\x72\x68\xf9\xef\x7b\xc5\xfc\x08\x70\xe2\ +\xf8\x46\xb4\x24\xc2\x57\x21\x16\x61\x00\x01\x16\xdf\x4a\x11\x4e\ +\x11\x62\x11\x06\x10\xe0\x61\xe2\x9b\x2a\xc2\xa9\xb6\x61\x11\x26\ +\x25\xb7\xa1\xe9\x71\x6e\xba\x0e\x70\x8a\x08\x44\x7b\xbf\x57\x84\ +\x71\x98\x42\x1f\xf3\xe2\x2f\x63\xe8\x60\xeb\xcd\x19\xe1\x1c\xdf\ +\x3b\x4c\xe3\x2f\x6c\xbf\xfe\xea\x50\x45\x7c\xef\xeb\xc6\xf3\x3f\ +\xf6\xfe\xe1\x44\xdd\x06\x78\xe9\xf6\xd5\x72\x7c\x53\x46\x78\xe9\ +\x36\x6c\x0b\x46\x84\x31\x1f\x03\x05\x58\x7c\xd3\x13\x61\x1c\xb2\ +\x98\x8b\xb4\xfc\x6d\x48\x9d\xc7\x77\xdf\x9f\x1b\xbd\x6f\x84\x6b\ +\xfc\x35\x88\xf0\xd8\x61\xeb\xaf\x2c\x34\x07\x2d\xea\x2e\xc0\x4b\ +\xb6\xad\x5e\x37\xdf\x08\x11\xf6\x17\x37\xe0\x10\xde\x4f\x89\x17\ +\x13\xee\x20\xc4\xd0\xd5\x2d\x68\xf1\x7d\x38\xc2\x2d\x3f\x3f\x00\ +\x02\xdc\x21\xef\xf9\x4e\xdf\x82\x01\x10\xe0\x45\xdb\xd5\x48\xf1\ +\x4d\xb9\x05\xcf\x8d\xb0\x2d\x18\xc0\x06\x3c\xe4\xe6\x1b\x21\xc2\ +\x74\xf0\x82\xb7\xe2\xf7\x02\x43\xd8\xa6\x4c\xf8\x1e\xe0\x6e\x02\ +\x6c\xab\xf2\x7c\x01\xd8\x80\x6d\xbf\xb6\x60\x00\xfa\x0f\xf0\x9c\ +\x6d\xca\x87\xae\xd2\x9a\x13\x61\x5b\x30\x20\xc0\xd8\x82\x01\x10\ +\x60\xdb\xaf\x2d\x98\x46\xae\x3f\x1f\xc4\x82\xbf\xdb\x32\xf1\x03\ +\x58\x36\x60\x5b\xb0\x07\x01\xc0\x06\x5c\xe0\x15\x8a\xed\x37\xdc\ +\x16\x0c\x20\xc0\x8d\x71\xfb\xb2\x8f\x2d\xd8\xf3\x08\x08\xb0\xed\ +\x17\x5b\x30\x53\x5f\x40\x79\x1f\x18\x66\xbd\xff\x3b\x54\x80\x89\ +\xbb\x05\x03\xd8\x80\x5b\x79\xd5\x3d\xf1\xb6\xa5\xed\x37\xf6\x16\ +\xec\x36\x34\x20\xc0\x00\x80\x00\x53\x8e\xdb\xd0\xcc\xe5\x7d\x60\ +\x46\x36\xf7\xfd\xdf\x21\x02\xec\xf6\x73\x1d\x3e\x8c\x05\xd0\x59\ +\x80\xbd\x5f\xd8\xe9\x16\xe5\x79\x05\x04\x98\x51\xb9\x0d\xcd\xec\ +\x17\x50\x6e\x43\x33\xa0\x25\xb7\x9f\xbb\x0f\xb0\xdb\xcf\x75\xb9\ +\x0d\x0d\x60\x03\x06\x00\x01\x06\xfa\xe3\x36\x34\x23\x59\x7a\xfb\ +\xb9\xb9\x00\xfb\xa0\x4e\xe7\x07\xb8\xe7\x17\xb0\x01\x33\x2a\x1f\ +\xc4\xc2\x16\x0c\xf9\xb7\x5f\x01\x06\x00\x1b\x70\xe2\x57\x28\x3e\ +\x01\x1d\x82\x4f\x42\x03\xd8\x80\x81\x12\x2f\x7e\x13\xdd\x9e\x83\ +\xde\xe7\x5b\x80\x01\xc0\x06\x0c\xd8\x12\x60\x8c\xb9\x16\x60\x00\ +\xb0\x01\x03\xb6\x05\x18\x63\x9e\x05\x18\x00\x6c\xc0\x80\xad\x01\ +\xc6\x98\x63\x01\x06\x00\x1b\x30\x60\x7b\x80\x31\xe6\x57\x80\x01\ +\xc0\x06\x9c\xce\xfa\xec\xa3\x67\x37\x80\xe3\xcd\xa1\x07\x01\x5b\ +\x30\xe6\xd6\x06\xcc\x63\x7e\x1c\xbd\xf4\x20\x20\xc2\x98\xd7\x02\ +\xf3\x2a\xc0\x00\x50\x41\x53\x01\xde\x7d\xfb\xee\x15\x74\xcf\xaf\ +\x38\x3d\xbf\xb6\x0a\x18\x68\x4e\x6d\xc0\x80\x08\x43\x85\xf9\x14\ +\x60\x00\xa8\xa0\xeb\x00\xfb\x24\xf4\x34\xa9\x3f\x80\xe5\x13\xd0\ +\xd8\x82\x31\x97\x36\x60\x40\x84\x21\xd4\x3c\x36\x17\x60\x1f\xd4\ +\xe9\x74\xf8\x3d\xaf\xc0\x60\xba\xdf\x80\xdd\x86\xde\x8f\xdb\xcf\ +\xd8\x82\x31\x87\x02\x0c\x38\xfc\xa0\xfb\xf9\x13\x60\x40\x84\x31\ +\x77\x02\xbc\xe7\x83\x36\xf1\xfd\x42\xb7\xa1\x1f\x56\xfb\xf6\xb3\ +\xf7\x7f\x81\x11\xd9\x80\x01\xdb\x48\x20\x87\xdb\x57\x4d\xff\xfa\ +\xe6\x4d\x80\x6d\xc1\x8d\x6c\xbf\x20\xc2\x8c\x3a\x67\xcd\x06\xd8\ +\x6d\xcb\x4e\x2e\x04\xcf\x23\x22\xcc\xa0\xf3\x35\xd4\x2d\x68\x5b\ +\xb0\xed\x17\x87\x64\x0b\x72\xdd\x26\x1e\xfd\xf6\x73\xb4\xb9\xf2\ +\x1e\x30\xe0\xb0\x1c\x20\xc2\xe2\x1b\x6f\x9e\x9a\x0e\xf0\x9c\xdb\ +\x97\xb6\xe0\x38\xdb\xaf\xdb\xcf\x88\x70\x99\x68\x8a\x6f\xcc\x39\ +\xb2\x01\x03\x0e\xcf\x8e\x23\x2c\xbe\x71\xe7\xa7\xf9\x00\xdb\x82\ +\x6d\xbf\x38\x44\x45\x58\x7c\x5b\x9c\x9b\x83\x51\x9f\x98\xf5\xd9\ +\xc7\xd5\xee\xf4\xb5\x93\xad\x42\x7c\x61\xee\x61\xba\xfe\xfa\xdb\ +\xa5\x08\xaf\x56\x17\x9b\x4f\xa2\xdb\xc1\x8b\xb6\x2e\x02\xbc\xfb\ +\xf6\xfd\xc9\xfa\xd9\xd3\x4b\x23\x57\x7e\xfb\x9d\xfb\x7c\x79\x26\ +\x10\xe1\xf2\x1b\xb1\xf8\xc6\x32\xf4\x7b\xc0\xa3\xdd\x8a\xf6\x6d\ +\x47\x38\x5c\x31\x1f\x02\x1c\x66\xab\xf2\xa9\xe8\xb2\xf1\xb5\xfd\ +\x22\xc2\x98\x0b\x1b\xf0\x50\x11\x4e\xb9\xfd\xda\x7c\x71\xd8\x62\ +\x1e\x04\x38\xd9\x76\xd5\x73\x84\x23\xbc\xef\x6b\xfb\xc5\xa1\x8b\ +\x39\xe8\x7c\x03\x16\xe1\xbc\xf1\x75\xeb\x19\x87\x2f\x9e\x7f\x01\ +\xce\xc2\x7b\xc2\xe9\xe3\x0b\x25\x0e\x61\x21\xf6\x9c\x0b\x70\xe3\ +\x5b\x70\x4f\x11\x8e\xf2\xbe\xaf\xed\x17\xdb\x10\x9e\xe7\x81\x36\ +\xe0\xd1\x23\x2c\xbe\x38\x9c\xf1\xfc\xc6\x76\xe0\xe9\x7c\x38\xc2\ +\x2d\xfe\xb4\xac\x54\xf1\x75\xcb\x99\xd6\x0f\x69\x3f\xb4\x43\x78\ +\x6d\xc0\x8d\x6e\xc1\x57\x11\x6e\x69\x1b\x8e\x14\x5f\xdb\x2f\x0e\ +\x6d\x3c\x8f\x83\x06\x38\x65\x04\x5a\x88\xb0\xf8\xc2\xdd\x87\xb7\ +\x10\x7b\xee\x04\x58\x84\x43\xc7\xf7\x78\x73\x28\xbe\xd8\xa2\xf0\ +\x7c\x09\xb0\x08\x97\x8e\x6f\xa4\xc7\x19\x6c\x54\x9e\x23\x01\x16\ +\xe1\x3b\x23\x1c\x25\xc4\x4b\xe3\x9b\x6a\xeb\x15\x5f\x6c\x57\x78\ +\x5e\xa6\x19\xee\x53\xd0\x29\xff\xea\xc2\xab\x08\xd7\xfa\xa4\xf4\ +\x92\xf8\xa6\xfe\x84\xb3\xf8\xd2\xea\x61\xef\x93\xd2\xc2\x2b\xc0\ +\x8d\x46\xb8\x56\x88\xe7\xc6\x37\xc7\xb7\x16\x89\x2f\x42\x8c\xf0\ +\x0a\x70\xb5\x08\x97\x0c\xf1\x9c\xf8\xe6\xfa\x9e\x5e\xf1\x45\x88\ +\x11\x5e\x01\x0e\x11\xe1\x9b\x21\xce\x11\xe3\x29\xf1\xcd\xfd\x83\ +\x34\xc4\x17\x21\x46\x78\x05\x38\x5c\x84\xef\x8a\xf1\xd2\x20\x3f\ +\x16\xdf\x92\x3f\xb9\x4a\x7c\x11\x62\x84\x57\x80\xc3\x47\xf8\xa1\ +\x20\xef\x1b\xe5\xdb\xf1\xad\xf9\x63\x22\xc5\x97\x51\xe3\x21\xc6\ +\x13\xfc\xfe\x6f\xe7\x85\x00\xef\x19\xc6\xa3\x17\x7f\x0d\xcb\xf9\ +\x97\xf2\xbf\xf7\x1e\xdf\xd2\x74\x1c\xe0\xdb\x9e\x5c\x48\x88\xb1\ +\xad\x58\x78\xd3\xf1\xf7\x01\xdf\x13\x62\x3c\x2e\x70\xef\xf5\xf0\ +\xf5\xd7\xeb\xff\xf1\xbf\xe8\x5e\xfd\xcf\x79\x61\x03\x6e\x75\x1b\ +\x16\x5e\x68\x2f\xc6\xd7\xe7\xc5\xbf\xfe\x39\xdc\xa6\xeb\xbc\x10\ +\xe0\x6c\xf1\x19\x39\xc2\x2e\x26\x98\x78\x5e\xfc\x7e\xeb\xbc\xe8\ +\x29\xc8\x77\x04\xd7\x79\x21\xc0\xb6\x61\xe1\x85\x98\xe7\xc5\xed\ +\x68\xb5\x14\xe4\x47\x82\xeb\xbc\x10\x60\x21\x16\x5e\x68\xe7\xbc\ +\xb8\x2b\x6a\x11\xa2\xbc\x67\x6c\x9d\x17\x02\x5c\xfd\xc2\xda\x6c\ +\x36\xab\x77\xa7\x6f\x84\x17\x58\x7e\x5e\x3c\x16\xbf\x14\x81\x9e\ +\x11\x58\xe7\x85\x00\x87\xf5\xf6\xec\xc3\x6a\xb5\x5a\x35\x1d\xe2\ +\xb7\x67\x1f\x56\xdb\xed\xd6\x93\x09\x91\xcf\x8b\x84\xf1\x74\x5e\ +\x08\x70\x97\x17\x56\x2b\x31\xbe\xf9\xf5\x02\xce\x0b\xe7\x85\x00\ +\xbb\xb8\x5c\x44\xe0\xbc\x70\x5e\x08\x30\xe9\x87\xb8\xe4\x05\xe6\ +\x02\x02\xe7\x85\xf3\x42\x80\x79\x64\xc8\x97\x5c\x68\x2e\x1c\x70\ +\x5e\x38\x2f\x04\x18\x17\x05\xe0\xbc\x60\x02\x3f\x0b\x1a\x00\x04\ +\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ +\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\ +\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\ +\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x86\x74\ +\xe0\x21\x80\xb8\xde\x9d\xbe\x99\xfd\xdf\xbe\x3d\xfb\xe0\x01\x04\ +\x01\x06\x72\xc6\x76\xca\xaf\x27\xcc\x20\xc0\x20\xb8\x01\x7e\x5f\ +\x41\x06\x01\x06\xd1\xad\xfc\x35\x89\x31\x08\x30\x88\xae\x18\x83\ +\x00\x03\x7d\x87\xf7\xa1\xaf\x5f\x88\x41\x80\xa1\x09\xbb\xf3\x2f\ +\xdd\xbe\x90\x58\x1f\xbd\xf0\x04\x83\x00\x83\xf0\xd6\xfa\x33\x0a\ +\x31\x08\x30\x08\xaf\x10\x43\x93\xfc\x24\x2c\x10\x5f\x7f\x7e\xb0\ +\x01\x83\xf0\xd8\x86\xc1\x06\x0c\x88\xaf\xc7\x05\x6c\xc0\x50\xd7\ +\xfa\xd9\xd3\xcb\x1a\x91\xd9\x9d\xbe\xde\xeb\xdf\xfb\x71\xf4\xf2\ +\xfa\xff\x1f\x6f\x0e\x45\x18\x04\x18\xfa\x88\x6f\xa4\xd8\xde\xe5\ +\x97\xf3\x3f\xaf\x23\xfc\x79\x7b\xf1\xd3\x3f\x2f\x15\xe5\xf5\xb3\ +\xa7\x97\xbb\x6f\xdf\x9f\x98\x1a\x10\x60\x08\x1b\xdf\x25\xc1\x7d\ +\x2c\xc2\xb7\xdd\x8e\x72\xce\x20\x8b\x30\x08\x30\x84\x8b\x6f\xea\ +\xe8\x4e\x89\xf0\x7d\x41\xce\x11\xe3\xab\xc7\x4e\x88\xe1\x6e\x3e\ +\x84\x05\x85\xe2\xbb\x3b\x7d\x9d\x3d\xbe\x37\x23\x3c\xc5\xe7\xed\ +\xc5\x9d\xb7\xad\xa3\xdf\x41\x00\x01\x06\xf1\x0d\x11\xde\x25\x11\ +\xce\x19\x62\x11\x06\x01\x86\x62\xb1\xa8\x15\xde\xa5\x11\xce\x15\ +\x62\x11\x06\x01\x86\x22\xf1\x8d\x62\x6e\x84\x73\x84\x58\x84\x41\ +\x80\x21\x4b\x1c\x22\x6c\xbd\xa9\x23\x7c\x15\x62\x11\x06\x01\x86\ +\xb0\xf1\x8d\x2c\x45\x84\x53\x85\x58\x84\x41\x80\x61\x88\xf8\xa6\ +\x8a\x70\xea\x6d\x18\x04\x18\xc4\x77\x76\x78\x5b\x89\x6f\xb4\x08\ +\xdb\x82\x11\x60\xa0\xeb\xad\x37\x67\x84\x97\x86\x58\x84\x11\x60\ +\xb0\xfd\x0e\x13\xdf\x94\x11\x4e\xb1\x0d\x8b\x30\x02\x0c\xe2\x3b\ +\x4c\x7c\x53\xf3\xbe\x30\x08\x30\x64\xd3\xe2\xfb\xbd\xa5\xb6\xe0\ +\xa5\x11\xb6\x05\x23\xc0\x60\xfb\x1d\x6e\xeb\x15\x61\x10\x60\x08\ +\x19\xdf\x11\xa4\x8c\x30\x20\xc0\x90\x84\xf7\x7c\x6d\xc1\x20\xc0\ +\x50\x78\xfb\x1d\x29\xbe\x6e\x45\x83\x00\x83\xcd\x77\xf0\x08\x83\ +\x00\xc3\xc0\xdb\x2f\x9e\x2f\x10\x60\xb0\xfd\xda\x82\x41\x80\xa1\ +\xef\x6d\xca\x87\xae\xd2\x9a\x1b\x61\x5b\x30\x02\x0c\xd8\x82\x01\ +\x01\x06\xdb\xef\x38\x5b\x30\x08\x30\x60\x0b\x6e\xe0\x05\x14\x08\ +\x30\x34\xc8\xf6\x6b\x0b\x06\x01\x06\xdb\x93\x2d\xd8\xf3\x88\x00\ +\x83\xed\x17\x5b\x30\x08\x30\x30\xdc\x16\x0c\x02\x0c\x8d\x98\x72\ +\xdb\xd2\xf6\x1b\x7f\x0b\x76\x1b\x1a\x01\x06\x00\x04\x18\x28\xc3\ +\x6d\x68\x10\x60\x48\xca\xed\xe7\x3a\x7c\x18\x0b\x04\x98\x0e\x79\ +\xbf\xd0\xf3\x0a\x02\x0c\x74\xc3\x6d\x68\x10\x60\x48\xc2\xed\xe7\ +\xba\xdc\x86\x46\x80\x01\x00\x01\x06\x00\x01\x86\xc6\xf8\xa0\x8e\ +\xe7\x17\x04\x18\xe8\x8e\x0f\x62\x81\x00\x03\x80\x00\x43\x6b\x7c\ +\x02\x3a\x06\x9f\x84\x46\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\ +\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ +\x01\x40\x80\x01\x00\x01\x86\x02\xd6\x67\x1f\x3d\x08\x01\x1c\x6f\ +\x0e\x3d\x08\x08\x30\xc0\x63\x7e\x1c\xbd\xf4\x20\x80\x00\x03\x80\ +\x00\x43\x08\xbb\x6f\xdf\x9f\x78\x14\x3c\xbf\x20\xc0\x00\x80\x00\ +\x03\x80\x00\x43\x65\x3e\x09\x3d\x4d\xea\x0f\x60\xf9\x04\x34\x02\ +\x0c\x00\x08\x30\x2c\xe5\x83\x3a\x9e\x57\x10\x60\x08\xce\x6d\xe8\ +\xfd\xb8\xfd\x0c\x02\x0c\x00\x02\x0c\x00\x08\x30\x5c\x9b\xf2\x7e\ +\xa1\xdb\xd0\x0f\x8b\x70\xfb\xd9\xfb\xbf\x08\x30\x00\x20\xc0\x90\ +\x8a\x2d\x38\xee\xf6\x0b\x02\x0c\x8d\x71\xdb\xd2\xf3\x08\x02\x0c\ +\xb6\x60\xdb\xaf\xed\x17\x04\x18\xb0\xfd\x82\x00\x43\xa0\x03\xdc\ +\x16\x6c\xfb\x05\x01\x06\x00\x01\x06\x5b\xb0\xed\xb7\xec\xf6\xeb\ +\xf6\x33\x02\x0c\x03\x72\x2b\xba\x6e\x7c\x41\x80\x61\xd0\x2d\xd8\ +\xf6\xeb\xf9\x02\x01\x06\x5b\x70\x93\xf1\xb5\xfd\x82\x00\xc3\xec\ +\xad\xca\xad\xe8\xf2\xf1\xb5\xfd\x22\xc0\xc0\x30\x11\x4e\xb9\xfd\ +\x8a\x2f\x08\x30\x38\xe0\x0b\xc7\x17\x10\x60\x48\x1a\xe1\x5e\xb7\ +\xe0\x48\xef\xfb\x7a\x71\x84\x00\x03\xf7\x46\xd8\x7b\xc2\xe2\x0b\ +\x02\x0c\x85\xb7\xe0\xde\xb6\xe1\x28\xef\xfb\x82\x00\x83\x08\x0f\ +\x13\xe1\x48\xf1\xb5\xfd\x22\xc0\xc0\x10\x11\x4e\x15\xdf\xe3\xcd\ +\xa1\xf8\x82\x00\x43\x9d\x00\xb4\xf6\xbe\x70\xca\xf8\xd6\x7e\xec\ +\x41\x80\x61\xf0\x08\xb7\xb2\x0d\x47\x8a\x2f\x20\xc0\x30\x44\x84\ +\x53\xc4\x37\xc5\x2d\x67\xdb\x2f\x08\x30\x64\x8b\x70\xb4\x10\xa7\ +\x8a\x6f\xa4\xc7\x19\x04\x18\x44\x38\xf4\x36\xbc\x34\xbe\x29\xb7\ +\x5e\xf1\x85\xff\x77\xe0\x21\x80\x9f\x23\xb1\x7e\xf6\xf4\x32\x55\ +\x84\x77\xa7\xaf\x9b\x8b\x6f\x8e\xf7\x79\xc5\x17\x04\x18\x8a\x45\ +\xb8\x56\x88\xe7\xc6\x37\xd7\x07\xac\xc4\x17\x04\x18\xaa\x44\xb8\ +\x64\x88\xe7\xc4\x37\xe7\x27\x9b\xc5\x17\x04\x18\xaa\x47\xf8\x66\ +\x88\x73\xc4\x78\x4a\x7c\x73\x7f\x3b\x91\xf0\x82\x00\x43\xb8\x08\ +\xdf\x15\xe3\xa5\x41\x7e\x2c\xbe\x25\xbf\x7f\x57\x7c\x41\x80\x21\ +\x7c\x84\x1f\x0a\xf2\xbe\x51\xbe\x1d\xdf\x9a\x3f\x2c\x43\x7c\x41\ +\x80\x21\x79\x58\x4e\x4e\x4e\x2e\x77\xe7\x5f\x8a\xfe\xbe\xfb\x7c\ +\x4b\xd3\x71\x90\x6f\x7b\x5a\x1f\xbd\x58\xed\xbe\x7d\x37\x2c\xb0\ +\x07\xdf\x07\x0c\x33\x22\x83\xc7\x05\x6c\xc0\x50\x31\x36\xa5\xb7\ +\x61\xe1\x05\x1b\x30\x20\x3e\xe2\x0b\x36\x60\xb0\x0d\x0b\x2f\x08\ +\x30\x08\xb1\xf0\x02\x02\x0c\x42\xbc\xc4\xdb\xb3\x0f\xab\xed\x76\ +\xeb\x89\x05\x01\x86\x76\xc2\xb5\x5a\xad\x56\xef\x4e\xdf\x34\xfd\ +\xf5\x03\x02\x0c\xcd\x87\x2c\x7a\x8c\x45\x17\x04\x18\xc4\x58\x74\ +\x41\x80\x81\xfc\xe1\x2b\x15\x64\xc1\x05\x01\x06\x1e\x09\xe3\x92\ +\x28\x0b\x2d\x08\x30\x20\xa2\xc0\x2d\x7e\x12\x16\x00\x08\x30\x00\ +\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\xd7\xb3\xdd\x6e\xfd\ +\x39\x00\xe7\x05\x02\x0c\x00\x02\x0c\xd8\x7c\x00\x01\xde\xd7\xfb\ +\xf7\xef\x9f\x8c\x74\x28\x4d\xfd\xfa\xa7\x3e\x3e\xe6\xc4\xe3\xe3\ +\xcf\xe9\xbc\x40\x80\x01\x40\x80\x7b\xd2\xea\xab\x5a\xb7\x14\x3d\ +\xd6\x66\xc5\x63\x69\x06\x04\x18\x00\x86\xe4\x3e\xfd\x2d\x27\x27\ +\x27\x97\x53\xff\x9b\xcd\x66\xd3\xf5\xab\x59\xef\xe7\x2c\x9f\x93\ +\x96\x66\x64\xee\xac\x8c\x38\x27\xce\x0b\x73\x60\x03\x06\x00\x01\ +\x1e\x4f\x2b\xef\x91\x78\x2f\xc7\x63\x6f\x56\x3c\xb6\x66\x40\x80\ +\xc3\x9a\x7b\xfb\x24\xfa\xb0\xce\xfd\xfa\xdc\x4e\xf2\xb8\x78\x3c\ +\x9c\x17\xe6\x40\x80\xbd\x62\xf4\x4a\xd6\x7c\xf8\x3a\xcd\x83\xe7\ +\xbf\x1b\x5e\xad\xdc\x63\xce\x87\x2b\xae\x44\xfa\x90\xc5\x92\x8b\ +\xc9\xab\xd9\x3c\x73\x12\xf9\x43\x38\x3e\x74\xe3\xbc\x70\x5e\xd8\ +\x80\xbd\xb2\xf5\x4a\xd6\x7c\xf8\xba\xcc\x83\xe7\xdf\x06\xec\x55\ +\x6d\x7b\xaf\x6c\x97\x5e\x4c\x5e\xcd\xe6\x9f\x93\x1e\x36\x1f\x73\ +\xe2\xbc\x30\x07\xf3\x1d\x78\x08\xf2\x0f\x75\xc9\x0b\xcb\xab\xd8\ +\xb6\xe6\x23\x42\x84\xcd\x8c\xf3\x02\x1b\x70\x97\xaf\x6a\x4b\xbd\ +\xc2\x4d\x79\x21\x79\x35\x5b\x76\x4e\x5a\xdd\x7c\xcc\x89\xf3\xc2\ +\x1c\xd8\x80\x87\x7e\x85\xeb\x15\xac\xb9\x30\x37\xe6\xc2\xf3\x6e\ +\x03\xf6\xaa\xb6\xd0\xab\xdc\x9c\x17\x91\x57\xb3\xf5\xe7\xa4\x85\ +\xcd\xc7\x9c\x38\x2f\xcc\x81\x00\x77\x71\x51\x45\xe1\x62\x8a\x35\ +\x27\x51\x37\x1f\x73\xe2\xbc\x30\x07\x02\xec\xa2\x72\x31\x0d\x33\ +\x27\x51\x36\x1f\x73\xe2\xbc\x30\x07\x02\xec\xa2\x72\x31\x99\x13\ +\x73\x62\x0e\xcc\x81\x00\xbb\xa8\x5c\x4c\x98\x13\xcc\x01\x02\xec\ +\xa2\x72\x31\x99\x13\x73\x62\x0e\xcc\x81\x00\xbb\xa8\x5c\x4c\xe6\ +\xc4\x9c\x60\x0e\x10\x60\x17\x95\x8b\xc9\x9c\x98\x13\x73\x60\x0e\ +\x04\xd8\x45\xe5\x62\x32\x27\xe6\xc4\x1c\x98\x03\x01\xa6\xeb\x0b\ +\xcb\x85\x64\x4e\xcc\x89\x39\x30\x07\x02\xec\xc2\x72\x21\x61\x4e\ +\x30\x07\x02\xec\x21\xe8\xf3\xc2\x72\x21\x99\x13\x73\x62\x0e\xcc\ +\x81\x00\xbb\xb0\x0a\x5e\x58\x2e\x24\x73\x62\x4e\xcc\x81\x39\x10\ +\x60\x0a\x5d\x5c\x2e\x22\x73\x62\x4e\xcc\x81\x39\x10\x60\x0a\x5c\ +\x60\x2e\x20\x73\x62\x4e\xcc\x81\x39\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x46\xf0\x5f\x02\x01\x09\xc2\xac\x20\ +\x70\x6f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x13\x17\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x05\x15\x08\x30\x36\xed\xcc\x19\x83\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x12\x7f\x49\x44\x41\x54\x78\xda\xed\xdd\xbd\x56\x23\xc9\x16\ +\xa0\x51\xa5\x96\x5e\x09\x03\x83\x32\xca\xa8\x87\xc6\xc0\x00\x03\ +\x83\x87\xa2\x2c\xad\x56\x53\x12\xa4\x32\xe3\xf7\x9c\xbd\xad\x3b\ +\x63\xcc\x74\xa7\x22\xe2\xcb\x13\x08\x7a\x39\x00\xd5\x3d\x3d\x3e\ +\x7c\xce\xf4\xcf\xfb\xf6\xfe\xb1\xf8\xd4\xa0\x2e\x9b\x0c\x92\xc5\ +\x55\xa4\x41\x80\x41\x64\xc5\x19\x04\x18\x10\x5b\x51\x06\x01\x06\ +\xa1\x15\x66\x10\x60\x10\x5c\x04\x19\x04\x18\x04\x57\x90\x41\x80\ +\x41\x70\x11\x64\x10\x60\x04\x17\x41\x06\x01\x06\xd1\x45\x8c\x41\ +\x80\x11\x5c\x04\x19\x04\x18\x44\x17\x31\x46\x80\x41\x74\x11\x63\ +\x10\x60\x84\x17\x84\x18\x01\x06\xd1\x45\x8c\x41\x80\x11\x5d\x10\ +\x63\x04\x18\x84\x17\x21\x06\x01\x46\x74\x41\x8c\x11\x60\x84\x17\ +\x84\x18\x04\x18\xd1\x05\x31\x46\x80\x11\x5e\x10\x62\x04\x18\x84\ +\x17\x84\x18\x01\x46\x78\x41\x88\x11\x60\x84\x57\x78\x41\x88\x11\ +\x60\x84\x17\x84\x18\x01\x46\x78\x01\x21\x46\x80\x11\x5e\x10\x62\ +\x04\x18\xe1\x05\x84\x18\x01\x46\x78\x41\x88\x11\x60\x84\x17\x10\ +\x62\x7c\xd8\xe2\x0b\x88\x30\x02\x8c\xf0\x02\x42\x2c\xc0\x08\x2f\ +\x20\xc4\x08\x30\xc2\x0b\x42\x8c\x00\x23\xbe\x80\x08\x23\xc0\x08\ +\x2f\x08\x31\x02\x8c\xf0\x02\x42\x8c\x00\x8b\x2f\x20\xc2\x08\x30\ +\xc2\x0b\x08\x31\x02\x2c\xbe\x80\x08\x23\xc0\x08\x2f\x20\xc4\x02\ +\x8c\xf8\x02\x22\x8c\x00\x0b\x2f\x80\x10\x0b\x30\xe2\x0b\x88\x30\ +\x02\x2c\xbe\x00\x42\x2c\xc0\x08\x2f\x20\xc2\x08\xb0\xf8\x32\xac\ +\xe7\x97\xd7\xe1\xfe\x99\xfe\xfc\xfe\xe5\x83\x11\x62\x1a\x39\x7a\ +\x04\xe2\x0b\x38\x77\x30\x01\xdb\x00\x98\x7e\x4d\xc1\x98\x84\x4d\ +\xc0\x88\x2f\x10\xff\x2c\x72\x1e\x09\xb0\xf8\x02\x38\x97\xd2\x70\ +\xf5\x60\x81\xd3\xd8\xc8\xd7\xcf\x67\xae\xa1\xf3\x72\x25\x6d\x02\ +\x16\x5f\x00\x67\x95\x09\x18\x0b\x9a\x3c\xd3\xaf\x29\x18\xd3\xb0\ +\x09\x58\x7c\x01\x9c\x5f\x02\x8c\xc5\x0b\x38\xc7\x28\xc7\xf5\x82\ +\x05\x4b\x23\x33\x5d\x3f\x9f\xb9\x86\xe6\xcc\x75\xb4\x09\x58\x7c\ +\x01\x3a\x9d\x6d\xce\x37\x01\x16\x5f\x00\xe7\xdc\xf4\x5c\x29\x58\ +\x94\x34\x30\xe3\xf5\xf3\x99\x6b\x68\xae\x71\x25\x6d\x02\x16\x5f\ +\x00\xe7\x9e\x00\x5b\x84\x00\xce\x3f\xd6\x71\x85\x60\xf1\x51\xd9\ +\xcc\xd7\xcf\x67\xae\xa1\xf9\x8e\xeb\x68\x13\x70\xd3\xf0\x8a\x2f\ +\x80\x61\xc4\x04\x6c\xa1\x61\xfa\x35\x05\x63\x12\x36\x01\x8b\x2f\ +\x40\xd6\x33\xd2\x39\x29\xc0\xe2\x0b\xe0\xbc\x1c\x9a\xeb\x02\x8b\ +\x89\x4a\x22\x5d\x3f\x9f\xb9\x86\xe6\x1e\xae\xa4\x4d\xc0\xe2\x0b\ +\xe0\xfc\x14\x60\x8b\x07\xc0\x39\x8a\x2b\x68\x8b\x86\x2a\x22\x5e\ +\x3f\x9f\xb9\x86\x66\x0b\xd7\xd1\x26\x60\xf1\x05\x70\xae\x0a\xb0\ +\x45\x02\xe0\x7c\xcd\xca\x95\x80\xc5\x41\x61\x91\xaf\x9f\xcf\x5c\ +\x43\xb3\x87\xeb\x68\x13\xb0\xf8\x02\x38\x6f\x4d\xc0\x16\x03\xa6\ +\x5f\x53\x30\x26\x61\x13\xb0\xf8\x02\xe0\xfc\x15\x60\x1f\x3e\x80\ +\x73\x58\x80\x81\xab\x32\x5d\x3f\x67\xfc\xf7\x05\x01\xf6\xd6\x05\ +\xe0\x3c\x16\x60\x1f\x36\x00\xce\xe5\x2d\x16\x1f\x32\xec\x97\xf9\ +\x3a\xd6\xb7\xa1\x29\x29\xd3\x37\xa3\x53\x4d\xc0\xe2\x0b\xe0\x9c\ +\x16\x60\x1f\x2a\x00\x89\xcf\xeb\xc5\x87\x09\xfb\xf8\x36\xb0\x6b\ +\x68\xea\x88\x7e\x1d\x1d\x7e\x02\x16\x5f\x00\xe7\xb7\x00\x83\xe9\ +\xd7\x73\x00\xe2\x07\xd8\xf4\x0b\xe0\x1c\x17\x60\x1f\x5a\xb3\x49\ +\xc4\x34\x02\x38\xcf\xc7\xb7\xf8\xb0\x62\xc5\xf7\x2b\x5f\x8e\x69\ +\xfb\xbc\xb3\xb3\xde\xa8\x29\xda\x97\xb2\x4e\xe2\x1b\x3b\x06\x97\ +\xff\xf7\x0e\x47\x88\xb1\xcf\xb3\xee\xe5\xa7\xc7\x87\xcf\x48\x11\ +\x5e\xa2\x7d\x38\xe2\x6b\x4a\x31\x01\x9b\x80\x33\xac\xb5\xcc\xcf\ +\x3a\x4a\x84\x05\x38\x79\x04\x1c\x98\xe2\x2b\xc2\xf3\xae\xb1\xac\ +\xcf\x5a\x80\xc5\x37\x54\x04\x1c\x9a\x02\x6c\x2d\xcd\xb9\xb6\x44\ +\x78\x5e\x21\xbe\x05\x2d\xbe\x82\x02\x11\xf6\xf4\x96\x7d\x98\x75\ +\xef\x46\x38\xf7\x8f\x3e\x04\xf1\xbd\x76\x00\x08\xb2\x03\xcf\xf3\ +\x69\xf7\xac\xf6\x3e\x33\x11\x16\x60\x82\x1c\x6e\x22\xec\x80\xe3\ +\x30\xdd\x3e\xb3\x46\xe7\x33\xf5\x1d\x7a\xb6\xe9\xb7\xe7\x06\xcb\ +\xfa\x73\x26\x87\x9a\x35\x33\xdb\x9a\xca\xf8\xdc\x67\xfd\x79\xf0\ +\xb4\x01\x16\xdf\x3e\x07\xea\xf3\xcb\x6b\xe8\x0d\x7e\xfe\xf7\x13\ +\x5e\x51\x98\x79\xff\x8a\xb0\x00\x8b\x6f\xe0\x29\x2c\xda\x06\x17\ +\x5c\x6b\x27\xda\xba\x12\x61\x01\x16\xe0\xe0\x61\x98\x75\x93\x9b\ +\x74\xad\x9d\x0c\x7b\x37\x5b\x84\x05\x58\x7c\xd3\x4e\x65\x33\x6c\ +\x76\xc1\x1d\x73\xdd\x44\xfa\xd1\xc6\x68\x6b\x4c\x84\x05\x58\x7c\ +\x13\x85\x62\xb4\x0d\x2f\xba\xd6\x4f\xf6\x35\x26\xc2\x02\x2c\xbe\ +\xc9\x82\xd1\x7b\xd3\x0b\xaf\x35\x64\x8d\x89\xb0\x00\x0b\x70\xda\ +\x68\xf4\xd8\xf4\xc2\x2b\xc4\xd6\x97\x08\x0b\xb0\xf8\x0a\x47\xa3\ +\xcd\xef\x4b\x55\x42\x6c\x7f\x8a\xf0\x6c\x11\x1e\xfe\x2f\x61\x89\ +\x6f\xac\x7f\xc7\x92\x7f\xfd\xe7\xeb\xff\x1b\xe2\x9b\x67\x9f\xb4\ +\xfe\xac\x23\xad\xad\x4c\xfb\x64\xf4\x7e\x2c\x1e\xa0\x0d\x31\xeb\ +\xdb\xb8\xe0\x52\xfb\x56\xc5\xb3\x33\x05\xa7\x0d\xb0\xf8\x3a\x48\ +\xaf\x3d\x2f\x57\xcd\xd4\x8c\x49\xa6\xb5\x25\xc2\x02\x2c\xbe\xac\ +\x3a\x0c\x3c\x2f\x6a\x46\x25\xeb\xfa\x12\xe1\x7e\xfc\xd7\x90\xc4\ +\x77\xa8\x67\x72\xed\x67\x7c\x5b\xff\x3b\xa9\x58\x47\x6b\xf7\x61\ +\xe6\xf5\x65\x6f\x99\x80\x53\x4d\xbf\x16\x3c\xf4\x9f\xee\xec\xc3\ +\x7c\x93\xf0\x68\x53\xf0\x70\x01\x16\x5f\xa0\x66\x64\xec\x41\x11\ +\x1e\xe5\x9f\xc5\x15\xb4\xf8\x82\x3d\x88\xe7\x93\x7d\x02\x8e\x3c\ +\xfd\x5a\xd8\x80\x49\xd8\x14\x6c\x02\x06\xc0\xc0\x60\x02\x8e\x3f\ +\xfd\x5a\xd4\x80\x49\xd8\x14\x3c\xe4\x04\x9c\xe9\xbf\x74\x04\x80\ +\xee\x0c\x13\x60\x6f\x93\x00\xce\xab\x6c\xba\x07\xd8\xf4\x0b\x40\ +\xc6\xfe\x98\x80\x01\x30\xfd\x66\x0b\x70\xc6\xe9\xd7\xc2\x06\x30\ +\x05\x9b\x80\x01\xa0\x93\x6e\x5f\xc3\xce\xfe\xb3\x5f\xbf\x92\x04\ +\x8c\x28\xeb\x2d\x5d\x8f\x5f\x4b\xea\x32\x01\xfb\xe2\x15\x00\x23\ +\xe9\xd1\x25\x57\xd0\xde\x32\x01\x9c\x4b\x1d\x34\x1f\xb9\x4d\xbf\ +\xff\xe7\x2a\x1a\x10\xdf\x71\xb4\xbc\x8a\x36\x01\x8b\x2f\x80\xf3\ +\x28\xfa\x04\x6c\xfa\xb5\xe8\x01\x13\xb0\x29\xd8\x04\x6c\xd1\x03\ +\xd0\x4d\xb3\x00\x9b\x7e\x01\x0c\x02\x33\x68\xd5\x2b\x13\xb0\xc5\ +\x0f\x38\x7f\x88\x3a\x01\x9b\x7e\x01\x30\x05\x9b\x80\x01\x30\xfd\ +\x76\x57\xfd\x9b\x5e\xa6\xdf\xf5\x7c\x23\x1a\x10\xe1\xb1\xd4\xfc\ +\x46\xb4\x09\x18\x40\x7c\x89\x36\x01\x9b\x7e\x4d\xc1\x80\xf8\x9a\ +\x82\x4d\xc0\x36\x05\x00\xc3\xa8\x16\x60\xd3\x2f\x80\x17\xfd\x08\ +\x6a\xf5\xcc\x04\x6c\x73\x00\xce\x17\xa2\x4c\xc0\xa6\x5f\x80\x31\ +\xf9\x9e\xc9\x38\x5d\x33\x01\x03\x98\x80\xe9\xa0\xf8\x37\xbb\x4c\ +\xbf\xde\x54\x01\xf1\x8d\xaa\xe4\x37\xa2\x4d\xc0\x00\x30\xfb\x04\ +\x6c\xfa\x35\x05\x03\xa6\x5f\x53\xb0\x09\x18\x00\x86\x25\xc0\x00\ +\xd0\x41\xb1\x2b\x68\xd7\xcf\xf5\xb8\x86\x06\xf6\x70\xfd\x5c\x5e\ +\x89\x6b\x68\x13\x30\x00\xcc\x3a\x01\x9b\x7e\x4d\xc1\x80\xe9\xd7\ +\x14\x6c\x02\xb6\x89\x00\x18\x9e\x00\x03\x78\x71\x67\xc6\x00\xbb\ +\x7e\x06\x10\xdf\x8c\xf6\xf6\xcf\x04\x6c\x43\x01\x30\xdb\x04\x6c\ +\xfa\x05\xc0\x14\x6c\x02\x36\x05\x03\x38\x27\x72\x4c\xc0\x00\xc0\ +\x36\x9b\x7f\x87\xc9\xf5\x73\x5f\x7e\x2f\x38\xf7\x64\xf3\xfc\xf2\ +\x7a\xf3\x7f\x63\x8d\xd0\xde\x96\xdf\x09\x16\x60\x11\x26\xc9\x01\ +\x6a\xbd\x58\x3f\x8c\x15\xe0\x93\xc7\x26\xbe\xb4\x3f\x20\xcf\x9f\ +\x5f\xcb\xc3\xf2\xda\xff\x5f\x97\xff\x1c\xd6\x14\xb4\xb5\x69\x02\ +\x36\xfd\x8a\x30\x71\x27\x13\xeb\xca\x1a\xa3\xcd\x14\x6c\x02\x0e\ +\xb0\xd9\x1c\x98\x0e\xc4\x5a\xff\xcc\xd6\x16\x0c\x34\x01\x9b\x7e\ +\x4d\x2b\xe4\x9c\x42\xac\x35\xeb\x8e\xb2\x53\xb0\x00\x3b\x18\x71\ +\xf8\x59\x73\xd6\x1f\x1d\x02\xec\xf7\x80\x1d\x84\xec\x38\xf0\xfe\ +\xfc\xfe\x95\xf2\xf0\xbb\xfc\xf7\x76\xf8\xc3\x36\x77\x4d\xc0\xa6\ +\x5f\x01\x46\x70\xac\x45\xeb\x91\x32\x53\xb0\x09\x18\x36\x4c\x7d\ +\x78\x3e\x5e\x7c\xd8\xcb\xb7\xa0\xc1\x84\x51\xe5\x79\x09\x83\xf5\ +\x49\xa1\x09\xd8\xf5\xb3\x37\x5f\x87\x1b\x9e\x1d\x94\xeb\xa5\x2b\ +\x68\xf1\xe5\x46\x38\x04\xc4\xb3\x74\x16\x30\xc4\x04\x0c\x82\x81\ +\x67\x0a\x02\xec\x8d\x97\x6a\xa1\xc0\x33\x76\x26\xd0\xc2\xaa\xaf\ +\x4a\xfb\xf9\xaf\xcd\x26\x0a\x58\xc7\xd6\x32\xf7\xf9\xe9\xd7\x91\ +\x4c\xc0\x38\xb0\xf0\xec\x3d\x4f\x3a\x10\x60\x53\x83\x03\x0b\x9f\ +\x81\xb3\x81\x0e\x7e\xbc\x82\x76\xfd\x6c\x93\x39\xf0\xb1\xbe\xad\ +\x71\xb6\xf9\xee\x1a\xda\x04\xec\x70\x72\x30\xe1\x33\x82\x0e\x04\ +\x58\x7c\x1d\xec\xf8\xac\x9c\x15\x08\x30\x0e\x25\xcf\x0e\x9f\x99\ +\x08\xe7\xf0\xed\xcf\x80\xfd\xfc\xd7\x86\x72\x90\x63\xdd\x5b\xf7\ +\xec\x73\xeb\xe7\xc0\x26\x60\x87\x90\x43\x08\x9f\xa1\x33\x83\x0e\ +\x04\x18\x07\x37\x3e\x4b\x11\x46\x80\xb1\x89\x1c\xd8\xf8\x4c\x49\ +\x1e\x60\x3f\xff\xc5\x41\x8d\xcf\xd6\x0b\x3c\xfb\xdd\xea\xa9\x09\ +\xd8\xe6\x71\x40\xe3\x33\x86\x91\x26\x60\x70\x30\xe3\xb3\xf6\x22\ +\x8f\x00\x83\x03\x19\x9f\x39\xf1\x03\xec\xe7\xbf\xde\x5a\x1d\xc4\ +\xf8\xec\xa1\x9c\x6b\x5d\x35\x01\xe3\x00\xc6\x1a\xf0\x42\xcf\x28\ +\x13\x30\x36\x0b\x00\x02\xec\xad\x1e\xc0\x8b\x7d\x38\xff\xfc\x7d\ +\x4a\x3f\xff\xb5\x51\xbc\xa4\x60\xcf\xd8\x33\xd4\x71\xf9\x77\xa1\ +\x4d\xc0\x38\x48\xb0\x26\xbc\xa4\xd0\x81\x00\xdb\x24\x0e\x5a\xac\ +\x0d\x10\x60\x00\xbc\xe0\x0b\x30\x36\x87\x09\x07\x6b\x04\x04\x18\ +\x07\x2b\x58\x2b\x5e\xf4\x83\x06\xd8\x37\xa0\x71\xa0\x62\xcd\x78\ +\x36\xd4\x73\xd9\x59\x13\xb0\xb7\x52\xcf\x06\x6b\xc6\xb3\xa1\xf7\ +\x04\x0c\xde\xd8\xb1\x66\x40\x80\xc1\x41\x8a\xb5\x63\x0a\x16\x60\ +\x6c\x06\x07\x28\xd6\x10\x94\x73\x3a\xff\x0f\x5f\xc0\x12\x5e\x00\ +\xea\x7b\x7a\x7c\xf8\x7c\x7b\xff\x58\x4e\x1e\x85\xe8\x9a\x5c\x88\ +\xbe\x96\xec\x3b\x86\x9e\x80\x11\x5d\x20\xd7\xb9\xe4\x45\xb7\xaf\ +\xe5\x72\x24\xf6\x38\x44\xd7\xf4\x8b\x3d\x69\xbf\x51\xdf\xdb\xfb\ +\xc7\x22\xc0\x36\xb9\xc3\x00\xfb\x13\xfb\x4f\x80\x6d\x6a\x1c\x02\ +\xd8\xa7\xf6\xa1\x00\x63\x33\xdb\xf4\xd8\xb7\xd8\x97\x95\x02\x7c\ +\x12\x5f\x9b\x17\x60\xcd\xd9\x27\xc4\xe5\x3c\x3d\x3e\x7c\x2e\x02\ +\x2c\xbc\xde\xb2\xb1\x9f\xb1\x5f\xdb\xf3\x6b\x48\x36\x29\xc0\xae\ +\x33\x52\x8c\x05\x58\x74\x01\xc4\x78\x1a\xe9\xaf\xa0\x45\x77\x0c\ +\x36\x2d\xf6\xbd\x3d\x6d\x02\xb6\x01\x01\x30\x15\x0b\xb0\xe8\x02\ +\x88\x71\x44\xe1\xaf\xa0\x45\x77\x7c\x36\x24\xce\x06\x7b\xdf\x04\ +\x6c\x63\x01\xd0\xf8\xac\xce\x1a\xe2\x53\xa4\xe9\x57\x78\x01\xe6\ +\x3e\xbb\x33\xc5\x78\x99\x3d\xc0\xa2\x3b\x37\xd7\xcf\x38\x3f\xc8\ +\x7a\x3e\x9c\x6c\x1c\x00\x4c\xc6\xed\x1d\x7d\xc4\x78\xbb\xc5\x1a\ +\x64\x86\x18\x47\x1b\xbc\xa6\xbd\x82\x36\x01\x3b\x00\xc1\x39\xe2\ +\xfc\x30\x01\x03\x80\xa9\x58\x80\xf1\xf6\x0a\xd6\x20\x02\x0c\x00\ +\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x84\xe6\xcb\x2f\x58\ +\x8b\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\xdf\xf0\x6b\x1f\x58\x93\x20\xc0\x00\x20\ +\xc0\xe4\xe0\xbf\xc1\x8a\x35\x09\x02\x4c\x07\xae\xfb\xb0\x26\x41\ +\x80\x01\x40\x80\xc9\xc1\x75\x1f\xd6\x24\x08\x30\x1d\xb8\xee\xc3\ +\x9a\x04\x01\x06\x00\x01\x26\x07\xd7\x7d\x58\x93\x20\xc0\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x2b\xf8\xb5\x0f\xac\x45\x04\x18\x00\x10\x60\x00\x10\x60\x00\ +\x40\x80\x01\x40\x80\x61\x27\x5f\x7e\xc1\x1a\x44\x80\x27\xf4\xe7\ +\xf7\x2f\xff\x09\x31\x00\xa6\xb5\x3c\x3d\x3e\x7c\x7a\x9b\xa5\xd7\ +\x4b\x14\x38\x37\xc8\x7a\x96\x1c\xa3\x7d\x08\x0e\x75\x07\x1f\x58\ +\x83\xcc\xe0\x14\xfd\x6d\xc8\x06\x03\x30\xf9\x8e\x28\xd4\x15\xb4\ +\xb7\x5d\x9b\x08\x9c\x07\xce\x8b\x69\x26\xe0\xb7\xf7\x8f\x34\x11\ +\x36\x19\x03\x08\xef\x30\x01\xce\xfe\x61\x0a\x31\x80\xe8\xf6\xb0\ +\x1c\x0e\x87\x43\xa6\x6b\xe8\xef\x88\xb1\x8d\x86\xbd\x8e\xb3\xc0\ +\x04\xdc\xf9\x83\xb7\x41\x01\x44\x57\x80\xc5\x18\x40\x78\x83\x71\ +\x05\x7d\x07\x21\xb6\x19\xb1\x8f\xb1\xcf\x4d\xc0\xa6\x62\x00\xd1\ +\x15\x60\x31\x06\x40\x74\xef\xe1\x0a\xba\x30\x31\xb6\x69\xb1\x3f\ +\xed\x61\x56\x4f\xc0\x99\xfe\x18\x47\xab\xc5\x67\xa3\x03\xa2\xcb\ +\x2d\x6f\xef\x1f\xcb\x72\xfe\x3f\x08\xb0\xb7\x6e\x9b\x19\xfb\x10\ +\xfb\x54\x80\x1d\x02\x36\x35\xd8\x7f\xf6\xa7\x00\xe3\x30\xb0\xc9\ +\xb1\xdf\xec\x49\x04\xd8\xa1\x60\xc3\x83\x7d\x66\x0f\x4e\x1f\x60\ +\xbf\x86\x34\xc0\x22\x77\x38\x00\xa2\x9b\x8f\x00\x33\xec\xc4\xe2\ +\x30\xc0\xf4\x2b\xba\x29\x02\xec\x57\x91\x00\x84\x97\xfa\xde\xde\ +\x3f\x96\xc3\xe1\x70\x38\x7a\x14\x98\x5c\xb0\x86\xc4\x97\xf6\x04\ +\xd8\x66\x70\x80\x62\xed\x80\x00\x83\x83\x14\x6b\x06\x01\xc6\x14\ +\xec\xd9\x60\xcd\x78\x36\xb4\x08\xf0\xf9\x07\xc3\x78\x63\xf7\x6c\ +\xb0\x66\xa0\xbc\xcb\xce\x9a\x80\xbd\x95\x3a\x50\xb1\x56\xa0\xf7\ +\x04\x0c\x0e\x56\xac\x11\x2f\xfa\x08\xb0\xcd\x01\x80\x00\x83\x09\ +\x07\x6b\xc3\x0b\x3e\x02\x6c\x93\x38\x68\xc1\x9a\x60\x6a\x57\xbf\ +\xf5\xec\x4f\x52\x3a\x48\xbc\xac\x60\xcf\xd8\x2b\x94\xf5\xf5\x37\ +\x8d\x4c\xc0\x36\x0a\xe0\x25\x85\x0e\x04\x18\xc0\x8b\x3d\x02\x8c\ +\xcd\xe2\xad\x1e\x6b\x80\xc4\x01\xf6\x17\xb1\x70\x00\xe3\xb3\xf7\ +\x42\x4f\x39\xd7\xba\x6a\x02\xc6\x41\x8c\xcf\x1c\x46\x99\x80\xf1\ +\xd6\xea\x40\xc6\x67\x0d\x02\x0c\x0e\x66\x7c\xc6\x5e\xe4\xf3\x04\ +\xd8\xcf\x81\x6d\x1e\x07\x34\x3e\x5b\xd8\xef\x56\x4f\x4d\xc0\x38\ +\xa8\xf1\x99\x7a\x81\x67\xa4\x09\x18\x9b\xc8\x81\x8d\xcf\x12\x04\ +\x58\x84\x71\x70\xfb\x0c\x71\x66\x84\xf2\xe3\xcf\x79\xfd\x5d\x68\ +\x87\x90\xc3\x08\xeb\xde\x7a\x67\x9b\xef\xbe\x4f\x65\x02\xb6\xa1\ +\x1c\xe4\xf8\xcc\x3c\x3b\x3a\x10\x60\x11\x76\x28\xe1\xb3\x72\x56\ +\x20\xc0\xe0\x60\xf7\x19\x21\xbe\x39\xac\xfa\x5d\x5f\x3f\x07\x76\ +\x40\x39\xac\xb0\xa6\xad\x69\xee\xf3\xd3\xdf\xd3\x30\x01\xdb\x60\ +\x0e\x7e\x7c\x06\xce\x06\x3a\x10\x60\x07\x96\xe7\x89\x67\x0f\x1d\ +\xac\xfe\x73\x93\xae\xa1\x1d\x5c\x26\x08\xac\x5f\xeb\x97\x75\xd6\ +\xfc\x39\x67\x13\xb0\x8d\x86\x30\x78\xc6\xce\x04\x3a\x10\x60\xb8\ +\x12\x08\xa1\xf0\x4c\xa1\x36\x57\xd0\xa6\x09\x4c\x16\xd6\xa8\x35\ +\x4a\x61\x45\xaf\xa0\xfd\xe7\x09\x11\x10\x3c\x3b\xf1\xa5\x5c\x2f\ +\x4f\x1e\x95\xc3\x8d\x75\xcf\xda\x61\x67\x6d\x42\x49\x7e\x06\xec\ +\xcd\x97\x3b\xc2\x22\x2e\x9e\x0f\x74\x09\xb0\x6b\x68\x53\x06\xbe\ +\x54\xe4\x59\x40\x99\x4e\xde\x1d\x54\x5f\xc6\x12\x60\xfe\x95\xed\ +\x46\xc2\xfa\xb3\xe6\x10\x60\xf1\xc5\xc1\x68\xdd\x59\x6b\xe4\x08\ +\xb0\x08\x3b\x04\xc9\x73\x40\x5a\x6f\xd6\x17\x75\xe2\x7b\x38\xf8\ +\x16\x34\x34\x0b\xd8\x2c\x87\xa5\xe8\xce\xb5\xbe\x44\x78\x5e\x9b\ +\xbf\x54\x65\x0a\x76\x30\xb2\x7d\x6a\x19\xe5\x57\x9b\x2e\xff\x39\ +\xac\x2f\x93\x30\xed\xa6\x5f\x01\x16\x60\x12\x1d\xa6\xd6\x8f\xf5\ +\xc2\x58\x01\x76\x05\x0d\x13\xbd\x68\x9d\x0f\xdb\xcb\xab\xc7\xaf\ +\xff\x9b\x7c\xeb\x45\x84\xe7\xb4\xeb\xf7\x7a\x4d\xc1\xa6\x5f\xc0\ +\x24\x6c\xfa\xdd\xf6\x37\x32\xfc\x25\x2c\x00\xe8\x40\x80\x4d\xbf\ +\x80\x73\x82\xd9\x02\xec\x4f\x53\x02\x90\xd9\x9e\x0e\x9a\x80\x01\ +\x4c\xc1\xcc\x36\x01\x9b\x82\x6d\x28\x00\xd3\xaf\x09\x58\x7c\x01\ +\xc8\x33\x01\x03\xe0\xc5\x9d\xfb\x15\xbb\x3e\xf6\x3b\xc1\x36\x11\ +\x30\x0e\xbf\x17\x5c\x57\x89\x1f\xbf\x9a\x80\x01\x60\xe6\x09\xd8\ +\x14\x6c\xfa\x05\x4c\xc1\xa6\x5f\x13\x30\x00\x0c\x4d\x80\x01\xa0\ +\x83\xe2\xbf\xc3\xeb\x1a\x7a\x1f\xd7\xcf\x40\x49\xae\xa1\xcb\x2a\ +\xf9\xb7\x2f\x4c\xc0\x00\x10\x61\x02\x36\x05\x9b\x7e\x01\x53\xb0\ +\xe9\xd7\x04\x2c\xbe\x00\x0c\xa9\x4a\x80\xfd\x7d\x68\x6f\xa8\x00\ +\xa6\x5f\x13\xb0\x09\x18\x70\xbe\x90\x63\x02\x36\x05\xdb\x1c\x00\ +\xa6\x5f\x13\x30\x80\x17\x7d\x2f\xfa\xc3\xa9\x3e\xa5\xfa\x46\xb4\ +\x4d\x01\x8c\xc3\xf7\x4d\xc6\x98\x7e\x4d\xc0\xe2\x0b\x40\xd4\x09\ +\xd8\x14\x2c\xc2\x80\x29\xd8\xf4\x6b\x02\x16\x5f\x00\x86\xd0\x24\ +\xc0\xbe\x11\x0d\x80\xe9\xd7\x04\x6c\xfa\x05\x9c\x3f\xe4\x98\x80\ +\x4d\xc1\x16\x3f\x80\xe9\xd7\x04\x0c\x60\x10\x30\x08\x74\xd7\x7c\ +\x2a\xcd\xfe\x8d\x68\x8b\x1e\x18\x89\x6f\x44\xf7\x99\x7e\x4d\xc0\ +\x00\xe2\x4b\x27\xcd\x03\xec\x67\xc1\x00\x63\x70\x23\xd7\xb7\x4f\ +\x26\x60\x8b\x1d\x70\x2e\x91\x61\x02\x36\x05\x03\x90\x7d\xfa\x3d\ +\x1c\x3a\x7c\x09\xeb\x52\xa6\x2f\x64\x79\xcb\x04\x46\x96\xf9\xe7\ +\xc1\xbd\x86\x42\x57\xd0\x00\x90\x2d\xc0\xae\xa2\x01\xc6\x90\xf5\ +\x96\xae\x67\x87\x4c\xc0\x16\x36\x00\x19\x03\x6c\x0a\x06\x20\x63\ +\x7f\x4c\xc0\xa6\x5f\x00\xe7\x55\xd6\x00\x9b\x82\x01\xc8\xd6\x9d\ +\xa1\xc2\x17\xf5\xd7\x92\xbc\x55\x02\x33\x89\xfe\x2b\x49\xa3\x0c\ +\x7d\xae\xa0\x2d\x66\x00\xb2\x4f\xc0\x91\xa7\x60\x93\x30\x60\x60\ +\x30\xfd\x9a\x80\x2d\x6c\xcf\x07\xb0\x07\x4d\xc0\xb9\xa6\x60\x93\ +\xf0\x7d\x9b\xde\xb3\x02\xf1\x8d\x38\xfd\x0e\x3b\x01\x47\xff\x56\ +\xb4\xb7\xcc\xff\x9e\xc1\x4f\xcf\xc2\xb3\x62\xcf\x1a\x5b\xbb\xce\ +\x3c\x2b\xf1\x35\x01\x27\x9a\x82\x33\x4f\x77\x5b\x37\xbb\x69\x98\ +\x12\xeb\xcb\x3a\xca\xf9\x92\x2b\xc0\x22\x9c\xfa\x30\x28\xb9\xd1\ +\x1d\xa2\x7c\x5d\x5b\xcf\x2f\xaf\xab\xd7\x98\xf5\x23\xbe\x02\x2c\ +\xc2\x29\x0e\x83\x9a\x9b\xdc\x41\xca\x9e\xf5\x95\x79\xfd\x88\xaf\ +\x00\x0b\x70\xd0\x83\xa0\xe5\xe6\x3e\x4f\x3e\x62\x2c\x20\xf6\xa0\ +\xf8\x0a\xb0\x08\xa7\x3e\x00\x7a\x6e\x6e\x11\x8e\x1f\x8e\x7b\xae\ +\x9a\xad\x21\xf1\x1d\xf9\x9f\x6f\x9a\x6f\x1b\x8b\xb0\x8d\xed\x10\ +\x15\x5f\xeb\x48\x7c\xa3\xc4\x57\x80\x45\x38\xfc\x86\x16\x62\xd1\ +\xb0\x86\xf2\xc5\x57\x80\x45\x38\xf4\xa6\x9f\x71\x33\x8b\xb1\x60\ +\x64\x5d\x3f\xe2\x2b\xc0\x22\x3c\xf9\x86\x8f\xb2\x89\x7d\x69\x4b\ +\x28\x32\x85\x58\x7c\x05\x58\x80\x27\xde\xec\xd1\x37\xb0\x10\xf7\ +\x5d\x5b\xb5\xbf\x54\x95\x79\xed\x88\xaf\x00\x8b\xf0\xc4\x9b\x3c\ +\xd3\x06\x16\x62\xeb\x2a\xd2\xda\xc9\xf8\xe7\x37\x05\x58\x84\x43\ +\x6c\xf0\xec\x7f\x3b\x57\x8c\x4d\xba\x5b\xd6\xcc\x28\x3f\xda\x10\ +\x5f\x01\x16\xe0\xc9\xa2\xe0\x0f\xd6\x8b\xb1\x35\x35\xff\x9a\x11\ +\x5f\x01\x16\xe1\x89\x36\xb6\xf0\x8a\xb0\xb5\x14\x63\xdd\x88\xef\ +\x5c\x8e\x1e\x7c\xce\x03\xce\x7f\xa6\x0d\x87\x7f\xbb\x67\xd2\xe2\ +\xd9\x78\xfe\x26\x60\x93\xf0\x04\x6f\xd6\x36\xaa\x29\xd8\xe1\x1f\ +\x6b\x1d\x65\x7d\xfe\xb3\x0f\x61\x47\xdb\x21\xcf\x81\x77\xf9\x1f\ +\x28\x07\x62\xbc\xac\x88\xaf\x09\xd8\x14\x3c\xf0\xdb\xb4\xe8\x9a\ +\x80\x4d\xc0\x31\xd7\x94\xf8\x0a\xb0\x08\x0f\xb8\x89\x1d\x88\x22\ +\x2c\xbe\xb1\xd7\x56\xe6\xe7\x2e\xc0\x22\x3c\xe4\xe6\x75\x18\x0a\ +\xb0\x00\xc7\x5f\x63\xe2\x1b\x43\xc8\x6f\x11\x67\x8d\x30\x02\x2c\ +\xc0\xf1\xd7\x9b\xf8\xc6\x21\xc0\x20\xc2\xe2\x3b\xc9\x9a\x13\xdf\ +\x58\x4e\x51\x3f\x28\x11\x06\xbc\xe8\x88\xef\xc8\x8e\x3e\x30\x00\ +\x9c\xe5\x02\xec\x83\xc3\x34\xe2\x39\x40\x0a\xe1\xff\x10\x87\x08\ +\x03\x38\xbf\x05\x18\x4c\x7f\xfe\xfd\x41\x7c\xf3\x04\xd8\x14\x0c\ +\xe0\xcc\x16\x60\x1f\x28\x00\xce\xea\x43\xba\x28\xf9\xf5\x24\x4a\ +\xca\xf8\x3b\xc1\xae\x9f\x11\x5f\x13\xb0\x0f\x18\xc0\xd9\x2c\xc0\ +\x3e\x68\x00\x9c\xc9\x02\xec\x03\xa7\x89\x6c\xd7\xb1\xae\x9f\x41\ +\x80\x45\x18\xc0\x39\x2c\xc0\x3e\x7c\x00\x9c\xbf\x02\x0c\x4d\x65\ +\xb9\x96\x75\xfd\x8c\xf8\x0a\xb0\x85\x00\xe0\xcc\x9d\x9e\x87\x70\ +\xc1\xef\x08\xb3\x47\xe4\xdf\x09\x36\xfd\x22\xbe\x26\x60\x0b\x03\ +\xc0\x19\x2b\xc0\x16\x08\x00\xce\xd6\x6d\x3c\x90\x1b\x5c\x47\xb3\ +\x45\xc4\x6b\x68\xd7\xcf\x88\xaf\x09\xd8\x82\x01\x70\x96\x0a\xb0\ +\x85\x03\x80\x33\x74\x3b\x0f\x67\x05\xd7\xd1\xdc\x23\xd2\x35\xb4\ +\xeb\x67\xc4\xd7\x04\x6c\x21\x01\x38\x33\x05\xd8\x82\x02\xc0\x59\ +\xb9\x8f\x07\x75\x27\xd7\xd1\xac\x11\xe1\x1a\xda\xf5\x33\xe2\x6b\ +\x02\xb6\xc0\x00\x9c\x8d\x26\x60\x4c\xc3\xc4\x9f\x82\x4d\xbf\x08\ +\xaf\x09\xd8\xc2\x03\x70\x06\x0a\x30\x16\x20\x80\xb3\xaf\x0c\x0f\ +\xb0\x10\xd7\xd1\x5c\x33\xe3\x35\xb4\xeb\x67\xc4\xd7\x04\x6c\x41\ +\x02\x38\xeb\x04\x18\x0b\x13\x70\xc6\x79\x0a\xe5\x78\x98\x15\xb8\ +\x8e\xe6\xd2\x4c\xd7\xd0\xae\x9f\x11\xdf\x76\x4e\x1e\x41\xbd\x85\ +\x2a\xc4\x80\xf0\x72\x8b\x2b\x68\x0b\x17\xc0\x19\xd6\x81\x87\xdb\ +\x80\x49\x98\x19\xae\xa1\x5d\x3f\x23\xbe\x26\x60\x0b\x19\xc0\x99\ +\x65\x02\xc6\x24\x4c\xfc\x29\xd8\xf4\x8b\xf8\xb6\xe7\x4b\x58\x1d\ +\x16\xb6\x10\x03\xc2\x8b\x2b\x68\x0b\x1d\x70\x26\x39\x93\x3a\xf0\ +\xd0\x3b\x32\x09\xe7\x33\xe2\x35\xb4\xeb\x67\xf1\xf5\x14\xfa\x70\ +\x05\x3d\xc0\xc2\x17\x62\x40\x78\x4d\xc0\x98\x86\x01\xf1\x45\x80\ +\x45\x18\x40\x7c\x05\x18\x21\x06\x84\x17\x01\x16\x61\x00\xf1\x15\ +\x60\x44\x18\x10\x5f\x04\x58\x88\x01\xe1\xf5\x14\x04\x18\x11\x06\ +\xc4\x17\x01\x16\x62\x40\x78\x11\x60\x44\x18\x10\x5f\x01\x46\x88\ +\x01\xe1\x45\x80\x11\x61\x40\x7c\x05\x18\x21\x06\x84\x17\x01\x46\ +\x88\x41\x78\x11\x60\x44\x18\x10\x5f\x04\x18\x21\x06\xe1\x45\x80\ +\x11\x62\x40\x78\x11\x60\x21\x06\x84\x17\x01\x46\x84\x01\xf1\x15\ +\x60\x84\x18\x10\x5e\x04\x18\x21\x06\xe1\x45\x80\x11\x62\x40\x78\ +\x11\x60\x84\x18\x84\x17\x01\x46\x88\x01\xe1\x45\x80\x11\x62\x10\ +\x5e\x04\x18\x21\x06\xe1\x05\x01\x46\x88\x41\x78\x11\x60\x84\x18\ +\x84\x17\x01\x06\x21\x06\xe1\x45\x80\x11\x63\x10\x5d\x04\x18\x84\ +\x18\x84\x17\x01\x46\x8c\x41\x74\x11\x60\x10\x62\x84\x17\x04\x18\ +\x31\x06\xd1\x45\x80\x41\x8c\x11\x5d\x10\x60\x84\x18\x84\x17\x01\ +\x06\x31\x46\x74\x11\x60\x10\x63\x44\x17\x04\x18\x04\x19\xc1\x45\ +\x80\x41\x8c\x11\x5d\x10\x60\x10\x64\xc1\x15\x5c\x04\x18\x04\x19\ +\xc1\x05\x01\x06\x41\x16\x5c\x10\x60\x10\x64\x04\x17\x04\x18\x84\ +\x59\x68\x41\x80\x41\x94\xc5\x16\x04\xd8\x23\x00\x71\x16\x59\x68\ +\xef\x2f\x90\xef\xb1\x79\x7d\x29\xea\x03\x00\x00\x00\x00\x49\x45\ +\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x09\x40\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ +\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x03\x0d\x0e\x20\x00\x76\xd4\x68\x29\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x08\xa8\x49\x44\x41\x54\x78\xda\xed\xdd\x4b\x6e\xdb\x48\x14\ +\x40\x51\x32\xe0\x26\xb4\x0c\xed\x8f\x43\xee\x4f\xcb\xd0\x32\xe8\ +\x91\xe0\x20\x08\x0c\x89\xe6\xe7\x7d\xce\x19\x35\xd0\xdd\xe8\x36\ +\xab\x52\x97\xaf\xe4\x38\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x6d\xf4\x08\x00\x8e\ +\xf1\x7c\x0c\xeb\xeb\xaf\x6f\x77\xe7\x2d\x02\x0c\x70\x4a\x74\x7f\ +\x22\xc8\x4c\x1e\x01\xc0\x79\xe1\x85\x97\x3f\x1e\x01\x80\x60\x23\ +\xc0\x00\x62\x8a\x00\x03\x00\x02\x0c\x60\x72\x46\x80\x01\x10\x51\ +\x04\x18\x40\xc0\x11\x60\x00\xf1\x04\x01\x06\x00\x01\x06\xc0\x24\ +\x8d\x00\x03\x88\x26\x02\x0c\x20\xe8\x74\xe1\x67\x41\x27\xb0\x2c\ +\x8b\x5f\x98\x70\x80\x79\x9e\x37\xfd\x81\x08\x62\x89\x00\x8b\x2e\ +\x00\x49\xb9\x82\x16\x5f\x20\x08\x93\xb5\x00\x23\xbe\x80\x48\x22\ +\xc0\xe2\x0b\x80\x00\x23\xbe\x60\xfa\x35\x61\x23\xc0\x00\x20\xc0\ +\x00\x98\x82\x11\xe0\x3c\x5c\x3f\x83\x28\x22\xc0\x00\x80\x00\x03\ +\xf4\x9c\x7e\x4d\xdc\xf5\xf9\x49\x58\x49\x6d\xfd\x11\x7a\x00\x98\ +\x80\x11\x5f\x30\xfd\x9a\x82\x05\x18\xf1\x05\x40\x80\x01\x40\x80\ +\x01\x3a\x8a\x70\x05\xec\x1a\x5a\x80\x01\x00\x01\x06\xe8\x33\x79\ +\x9a\x82\x05\x18\x00\x10\x60\x00\x10\x60\x80\x32\x22\x5e\xf9\xba\ +\x86\x16\x60\x00\x40\x80\x01\x4c\x9a\x08\x30\x00\x5e\x0e\x10\x60\ +\x00\x10\x60\x00\x13\xa6\x29\x18\x01\x06\x00\x01\x06\x30\x59\x22\ +\xc0\x00\x78\x59\x40\x80\x01\x04\x0d\x01\x06\xc0\x4b\x03\x02\x0c\ +\x00\x02\x0c\x60\x92\x04\x01\x06\xf0\xf2\x80\x00\x03\x08\x18\x08\ +\x30\x80\x97\x08\x04\x18\x00\x04\x18\xc0\xe4\x08\x02\x0c\x80\x97\ +\x09\x01\x06\x10\x2c\x10\x60\x00\xc8\x6c\xf2\x08\x00\x13\x6e\x8d\ +\xaf\xf9\x76\x1f\x46\xab\x2f\xc0\x00\xc2\x99\xe0\xf9\x89\xb6\x00\ +\x03\xe2\x89\x68\x0b\x30\xe0\x30\x86\xbd\xf7\x89\x70\x0b\x30\x20\ +\xbe\x98\xb6\x05\x18\x10\x5f\xf8\x64\x6f\x56\x89\xb2\xdf\x86\x04\ +\x0e\x38\xf1\xc5\x9e\x15\x60\xc0\x41\x06\x3d\xf6\xae\x00\x03\x20\ +\xc2\x02\x0c\x00\x3d\x22\x2c\xc0\xe0\xe0\x02\x04\x18\x00\x04\x18\ +\x00\xc2\xcb\x7a\x9b\x23\xc0\xd0\x94\x9f\x4a\x04\x02\x0c\x88\x30\ +\xb4\xdb\xc7\x02\x0c\x0e\x2f\x11\xc6\xfe\x15\x60\xe0\xaa\x43\x4c\ +\x88\x11\x5f\x01\x06\x1c\x68\x50\xfe\x85\x51\x80\x01\x11\xc6\xfe\ +\x14\x60\xc0\x21\x07\x3d\xf6\xa5\x00\x03\x22\x8c\xfd\x28\xc0\x80\ +\x43\x0f\x7a\xec\xc3\xc9\xd2\x02\xef\x1c\x7e\x7e\x76\x34\xc2\x6b\ +\x02\x06\x1c\x86\xd8\x6f\x02\x0c\x38\x14\xc1\x3e\x13\x60\xc0\xe1\ +\x88\xfd\x25\xc0\x50\xd6\xba\xb6\x8e\x90\x08\x73\xc4\x9e\xea\xb6\ +\xaf\x04\x18\xb6\x18\xc7\x55\x84\x45\x18\x7b\x49\x80\x41\x84\x4d\ +\x2d\x88\xaf\x00\x83\x08\x3b\x44\xc1\xbe\x11\x60\x10\x61\x87\x29\ +\xf6\x8b\x00\x83\x08\x3b\x54\xe9\xbe\x47\xec\x13\x01\x06\x11\x16\ +\x61\xec\x0d\x01\x06\x11\x36\xe5\x20\xbe\x02\x0c\x88\xb0\x43\x17\ +\xfb\x40\x80\x41\x84\x1d\xbe\xe4\x5c\x7b\xeb\x2f\xc0\x20\xc2\x22\ +\x8c\x35\x17\x60\x10\x61\x07\x32\xd6\x5a\x80\x01\x11\x76\x30\x63\ +\x8d\x05\x18\x44\xb8\xfe\x01\xed\x90\x16\x5f\x04\x18\x44\xd8\x61\ +\x8d\x97\x2a\x01\x06\x11\x16\x61\xac\xa1\x00\x03\x22\xec\x00\xc7\ +\xda\x09\x30\x88\xb0\x83\x1c\x6b\x56\xc9\xe4\x11\xc0\xc5\x11\x1e\ +\xc7\xd5\xc3\xf8\x3e\xd0\x9f\x8f\xc1\xf3\x10\x5e\x13\x30\x60\x12\ +\x76\xc0\x63\x6d\x04\x18\x44\xd8\x41\x8f\x35\x11\x60\x40\x84\x1d\ +\xf8\xd6\x02\x01\x06\x11\x76\xf0\x63\x0d\x04\x18\x10\x61\x01\xc8\ +\xff\xdc\x3d\x7b\x01\x06\x11\x16\x03\x31\xf0\xd2\x23\xc0\x80\x08\ +\x0b\x83\x67\x8c\x00\x83\x08\x37\xe2\xf7\x08\x8b\xaf\x00\x03\x22\ +\x0c\x08\x30\x88\x30\xfc\x9e\x1b\x06\x01\x06\x44\x18\x04\x18\x10\ +\x61\xd3\x19\x08\x30\x88\xb0\x49\x18\x04\x18\x10\x61\x6a\x71\xd3\ +\x20\xc0\x80\x08\x8b\x02\x02\x0c\x88\x30\x20\xc0\x80\x08\x83\x00\ +\x03\x22\x4c\x2d\xae\xfc\x05\x18\x10\x61\x31\x40\x80\x01\x11\x06\ +\x04\x18\x10\x61\x10\x60\x40\x84\xa9\xc5\xd5\xbf\x00\x03\x8d\x23\ +\x2c\x02\x08\x30\x20\xc2\x80\x00\x03\x22\x0c\x02\x0c\x88\x30\x25\ +\xf9\x08\x40\x80\x81\x86\x11\x76\xf8\x23\xc0\x80\x08\x03\x02\x0c\ +\x88\x30\x08\x30\x20\xc2\x94\xe6\xa3\x00\x01\x06\x1a\x45\xd8\xa1\ +\x8f\x00\x03\x22\x0c\x08\x30\x20\xc2\x20\xc0\x80\x08\x1f\xc0\xf5\ +\x73\x3c\xd6\x44\x80\x01\x93\x30\x08\x30\x20\xc2\x80\x00\x03\x22\ +\x0c\x02\x0c\x88\xf0\x16\x3e\x6b\x8c\xcb\xda\x08\x30\x60\x12\x86\ +\x12\x26\x8f\x00\xf8\x31\xc2\xe3\x68\xf2\xd9\xe0\x76\x1f\x46\xd3\ +\x23\x26\x60\xc0\x24\x7c\x62\x78\xff\x8e\xef\xbf\x31\x06\x01\x06\ +\x42\x45\x38\xfb\x94\xf8\xbf\xf0\x7e\xf2\xf7\x33\x30\xc9\x0b\x30\ +\x60\x12\x0e\x17\xdf\x23\xfe\x59\x6a\xf3\x19\x30\xf0\x7e\x84\xd9\ +\x25\xa6\xaf\x7f\xcf\x44\x69\x02\x06\xe0\xc3\x80\xee\x31\xc9\x9a\ +\x86\x05\x18\xe0\x52\x99\x26\xc1\xbd\xa3\x99\xed\xb3\x61\x53\xfb\ +\x7e\x5c\x41\x03\x04\x98\x56\x5d\x4b\x9b\x80\x01\x38\x39\xbe\x57\ +\xfd\xb7\x30\x01\x03\xb4\x0f\xaf\x69\xd8\x04\x0c\x70\xaa\x88\x91\ +\x89\xf2\xb9\xac\x69\x58\x80\x01\x4c\xbd\xcd\x5f\x06\xa2\xbf\x34\ +\x09\x30\x40\xe2\xf0\x46\x9e\x38\x4d\xc3\xf5\xf8\x0c\x18\x68\x3d\ +\x49\x65\x0a\x9b\xcf\x86\x4d\xc0\x00\x65\xa6\x5e\xff\xdf\x08\x30\ +\xc0\x89\x01\xcb\x1e\xb1\xab\xbf\x06\x53\xb8\x00\x03\xb4\x9e\x1e\ +\x2b\xbc\x4c\x08\x30\x40\xe1\x09\xaa\x7a\xa8\x44\x38\x1f\xdf\x84\ +\x05\x98\x78\x8b\x7d\xad\xae\x87\x4d\xc0\x00\xe2\x5b\xf8\xeb\x16\ +\x7a\x13\x30\x80\xf0\x9a\x86\x4d\xc0\x00\x57\x4e\x4e\xe2\xeb\x79\ +\x98\x80\x01\x84\xc6\x34\x8c\x09\x18\xa8\x1b\x17\xf1\xbd\xee\x25\ +\x45\xd4\x05\x18\x10\x14\xbc\xb0\xa4\xe2\x0a\x1a\x10\xde\xc6\xcf\ +\xd0\x04\x6b\x02\x06\x30\xbd\x79\x99\x11\x60\x80\x68\x87\xbe\x50\ +\xc4\x7c\xb1\xb1\x2e\x02\x0c\x14\x8d\xb0\xa9\x37\xee\x8b\x91\x75\ +\x11\x60\xa0\xe8\x81\xef\x80\x8f\x3b\x0d\x5b\x1b\x01\x06\x0a\x46\ +\xd8\xd4\x1b\xfb\xe5\xc8\xda\xec\xc3\x77\x41\x03\xe1\x27\x61\xae\ +\x5d\x97\xe7\x63\x58\xad\x91\x09\x18\x00\x2f\x48\x02\x0c\x00\x08\ +\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\xd0\x9d\xdf\x86\x04\ +\x90\xdc\xb2\x2c\x6f\xff\x81\x0a\xf3\x3c\xfb\x8e\x66\x13\x30\x00\ +\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ +\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ +\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ +\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ +\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x7b\x04\x00\x20\xc0\x00\ +\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ +\x08\x30\x00\x08\x30\x00\x20\xc0\xe9\x2c\xcb\xb2\x7a\x0a\x80\x33\ +\x41\x80\xf1\x0b\x0e\x70\x16\xb0\xc1\xe4\x11\xf8\x85\x07\x80\x09\ +\x18\x00\x04\x18\x00\x38\xc6\xe8\x11\xc4\xe0\x4a\x19\x38\xda\x3c\ +\xcf\xce\x7c\x13\x30\x00\x08\x30\x00\x70\x32\xd7\x11\x81\xb8\x86\ +\x06\x8e\xe2\xfa\x59\x80\x11\x61\x40\x7c\x11\x60\x11\x06\xc4\x17\ +\x01\x46\x84\x01\xf1\x15\x60\xc4\x18\x10\x5d\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x32\xf8\x02\x52\x31\x53\x51\x9b\ +\x36\x0b\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x11\xa2\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x3d\x00\x39\x00\x35\xdd\xfb\ +\xdd\x74\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe3\x04\x12\x06\x30\x0f\x18\xe0\xad\x88\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x11\x0a\x49\x44\x41\x54\x78\xda\xed\xdd\xbd\x4e\x1c\x59\x13\ +\x06\xe0\x61\x45\xb2\x17\x44\x40\x30\x48\x8c\x64\x02\x5f\x11\x46\ +\x42\xc8\x42\x02\x5f\xd1\x06\x46\x1a\x24\x4f\x40\xc0\x05\x39\x64\ +\x83\x15\x88\xc5\xfc\x75\xf7\xf9\xa9\x73\xce\xf3\x44\x2b\x7d\xeb\ +\x35\x74\x57\xd5\x7b\xaa\xa7\xe1\x5b\xad\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\xa0\x3d\x7b\x2e\x41\x5d\x67\x67\x67\x0f\ +\x53\xff\xcc\xd5\xd5\x95\xfb\xa6\x4e\xd4\x89\x3a\x50\x07\x02\x98\ +\xdc\x0d\xa4\xc1\xd4\x89\x3a\x51\x07\xea\x40\x00\x13\xa4\x89\x34\ +\x97\x3a\x51\x27\xea\x40\x1d\x08\x60\x02\x34\x92\xc6\x52\x27\xea\ +\x44\x1d\xa8\x03\x01\xac\x91\x2a\x36\x92\xc6\x52\x27\xea\x44\x1d\ +\xa8\x03\x01\xac\x91\x02\xd1\x58\xea\x44\x9d\xa8\x03\x75\x20\x80\ +\x35\x92\xc6\x52\x27\xea\x44\x1d\xa8\x03\x01\xec\x12\x8c\xd3\x4c\ +\x9a\x4a\x9d\xa8\x13\x75\xa0\x0e\x04\xb0\x66\xd2\x54\xea\x44\x9d\ +\xa8\x03\x75\x20\x80\x19\xab\x99\x34\x95\x3a\x51\x27\xea\x40\x1d\ +\x08\x60\xcd\xa4\xa9\xd4\x89\x3a\x51\x07\xea\x40\x00\x33\x56\x33\ +\x69\x2a\x75\xa2\x4e\xd4\x81\x3a\x10\xc0\xc3\x36\xd3\x66\xb3\x99\ +\xfc\x67\xb6\xdb\xad\xa6\x32\x74\x0d\x5f\xf3\xc2\xbc\x10\xc0\x9a\ +\xa9\x44\x13\x95\x68\x2e\x4d\x25\x7c\xd5\x89\x79\xa1\x0e\x04\x70\ +\x97\xcd\x94\xb2\x91\x72\x35\x96\xa6\x8a\x19\xbe\x51\x36\x1f\x75\ +\x62\x5e\xa8\x03\x01\xdc\x54\x33\xe5\x6c\xa4\x1c\x8d\xa5\xa9\x62\ +\x84\x6f\xd4\xcd\x47\x9d\x98\x17\xea\x20\x8d\x7d\x97\x20\x9f\x92\ +\x8d\xf4\xf2\xef\xcc\xb9\xfd\xd0\x5e\xdd\xa8\x0b\xf3\x42\x5d\xd8\ +\x80\x87\x39\xcd\xd6\x68\xa6\x94\xa7\x5b\xa7\xda\xf2\xdb\x6f\x6b\ +\x9b\x8f\x3a\x31\x2f\xd4\xc1\x32\x7f\xb9\x04\x7d\x9c\x64\x23\x7f\ +\x1d\x7c\x7c\x9f\x4a\xdf\xab\x1a\x7f\x27\xe6\x05\x36\xe0\xac\xa7\ +\xd9\x88\x45\x3c\xf7\x64\xeb\x54\x9b\x7f\xfb\x6d\x7d\xf3\x51\x27\ +\xe6\x85\x3a\xb0\x01\x3b\x41\x3a\xd9\xaa\x17\xf5\xe1\xfe\xab\x07\ +\x1b\xf0\x88\xa7\xd9\x16\x8a\x76\xce\xc9\xd6\xa9\x36\xcf\xf6\xdb\ +\xd3\xe6\x33\x7a\x9d\x98\x17\xea\xc0\x06\xec\xc4\xe8\x64\xab\x5e\ +\xd4\x87\xfb\xaf\x1e\x04\xf0\x98\x5b\x8d\xeb\xe1\xba\xb4\x3e\xd4\ +\xe6\x7e\x7d\xa3\xd6\x89\xfe\x70\x3d\x04\xb0\x53\xa2\x53\xad\x6b\ +\xaf\x46\x5c\x5b\xb5\x20\x80\x01\x80\x8f\xf8\xc0\xfc\x99\xa9\x8f\ +\x4f\x5a\x3e\x1d\x4e\x7d\xc1\xc2\xcb\x15\xf3\xeb\xa4\xd5\x5a\xf1\ +\x12\x8e\x79\x61\x5e\xd8\x80\x01\x40\x00\xd3\xfe\x69\xb6\x87\xaf\ +\xdf\xb5\xf6\x75\xbb\x96\xbe\x7e\x01\x0c\x00\x08\xe0\xb9\xbc\x3e\ +\xef\xfa\xe4\xb8\x0e\xa3\x6d\x3e\xa3\xd4\x89\x7e\x70\x7d\x04\x70\ +\x23\x43\xc9\xf7\x01\xe6\x85\xef\x03\x01\x0c\x00\x02\x18\x6c\x3e\ +\xbe\x0f\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\ +\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\x20\ +\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\ +\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x40\x00\x03\x00\ +\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\x18\x00\ +\x04\x30\x00\x20\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ +\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\ +\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\x10\xc0\x00\ +\x80\x00\x06\x00\x01\x0c\x00\x2c\xb0\xef\x12\xd4\xf5\xfd\xfc\xdb\ +\xec\x3f\x7b\x71\x79\xed\x02\x82\x79\x61\x5e\x08\x60\x72\x35\xce\ +\xd4\xff\xa6\x46\x03\xf3\xc2\xbc\x10\xc0\x1a\x28\xc0\xdf\xad\xc1\ +\xc0\xbc\x30\x2f\x04\xb0\x26\xaa\xfc\x75\x69\x2e\x30\x2f\xcc\x0b\ +\x01\xac\x89\x34\x17\x98\x17\xe6\x85\x00\xa6\xef\x46\x7a\xef\x7b\ +\x58\x1f\x7f\x71\x43\xc1\xbc\x30\x2f\x04\x70\x6c\xbb\xdb\x9b\xd5\ +\xee\xf6\xa6\xbb\xef\x49\x63\x81\x79\x61\x5e\x08\xe0\xd0\x45\x37\ +\xc2\xf7\xa8\xb1\xc0\xbc\x30\x2f\x04\xb0\x46\xd2\x58\x60\x5e\x98\ +\x17\x5d\xf2\x9b\xb0\x34\x93\xef\x1f\xf4\x8b\xef\xdf\x06\xac\x90\ +\x9c\x6e\xc1\xbc\x30\x2f\x6c\xc0\x9a\x09\xd7\x05\xf4\x85\xeb\x62\ +\x03\xee\xb7\x60\x76\xe7\xa7\x9f\xfa\xf7\x7e\x1f\x7f\x7d\xfa\xe7\ +\x93\xcd\x51\xf1\xaf\x73\x7d\x78\xf0\xb0\x5a\xad\x56\xbb\xbb\xfb\ +\x3d\x15\x83\x79\x61\x5e\x98\x17\x02\x38\x59\xa1\x44\x6a\x9e\xd7\ +\xfc\x7d\xfb\xcf\x53\x53\xfd\xdc\xfe\xfa\xe3\x7f\x2f\xd5\x64\xeb\ +\xc3\x83\x07\x4d\x85\x79\x61\x5e\x98\x17\x02\x38\x74\x33\x2d\x69\ +\xa0\x8f\x9a\xea\xa5\x97\x4d\x96\xb3\xc1\x34\x15\xe6\x85\x79\x61\ +\x5e\x08\xe0\x70\xcd\x94\xba\x89\xa6\x34\xd5\x5b\x0d\x96\xa3\xb9\ +\x34\x15\xe6\x85\x79\x61\x5e\xcc\xf7\x97\x66\x4a\xdb\x48\xb9\x9b\ +\xe9\x79\x53\x4d\xf1\x73\xfb\xeb\xd5\xc7\x50\xd1\x37\x02\x30\x2f\ +\xcc\x0b\x01\xac\x99\x42\x34\xd2\x92\xa6\xca\xd5\x58\x9a\x0a\xf3\ +\xc2\xbc\x30\x2f\x04\x70\xd1\x9b\x5f\xab\x91\x96\x36\x55\x8e\xc6\ +\xd2\x54\x98\x17\xe6\x85\x79\x21\x80\xb3\xdf\xf4\x08\x8d\x94\xa2\ +\xa9\x52\x37\x96\xa6\xc2\xbc\x30\x2f\xcc\x0b\x01\x9c\xb5\x99\x22\ +\x5a\xd2\x54\x8f\x8d\xa5\xa9\xc0\xbc\x30\x2f\x04\xb0\x66\xaa\xd4\ +\x54\x29\x1a\x4b\x08\x63\x5e\x98\x17\xe6\x85\x00\x1e\xa6\x99\x52\ +\x35\x55\xaa\xd3\xad\x10\xc6\xbc\x30\x2f\xcc\x8b\x81\x03\x38\xc5\ +\x4d\x8d\xf6\xf9\x8d\xa6\x02\xf3\xc2\xbc\x10\xc0\xdd\x6b\xad\x91\ +\x72\x34\x55\x8e\x9f\x05\x04\xf3\xc2\xbc\xa0\xe3\x00\x5e\x7a\x9a\ +\x6a\xb9\x99\x52\x36\xd5\xd2\xd3\xad\x2d\x18\xf3\xc2\xbc\x30\x2f\ +\x06\x0a\x60\xcd\x94\x9e\xa6\x42\xf8\x9a\x17\xe6\x85\x00\xce\xaa\ +\xb7\x66\x4a\x75\xaa\x5d\xda\x54\x60\x5e\x98\x17\x74\x1e\xc0\x4b\ +\x4e\x4f\xbd\x9e\x64\x23\x34\x95\x2d\x18\xf3\xc2\xbc\x30\x2f\x3a\ +\x0e\x60\xcd\x54\xa6\xa9\x6a\xdc\x1f\x30\x2f\xcc\x0b\x01\xdc\x21\ +\x9f\xe1\x94\x39\xd5\x82\x79\x61\x5e\xd0\x61\x00\xcf\x3d\x2d\x8d\ +\xd4\x4c\x1e\x2d\x81\x79\x61\x5e\x08\x60\x27\xd9\x81\x9b\x0a\xcc\ +\x0b\xf3\x82\x4e\x02\xd8\x56\xe5\x7e\x81\xfa\x73\xbf\x04\xb0\xd3\ +\xac\x53\x2d\x98\x17\xe6\x85\x79\xd1\x7f\x00\xcf\x39\x1d\x79\x89\ +\x22\xad\x39\x4d\x65\x0b\xc1\xbc\x30\x2f\x46\x9f\x17\xde\x82\x76\ +\xaa\x05\x30\x2f\x04\xb0\xd3\xac\x53\x2d\x98\x17\xe6\xc5\x18\xf3\ +\xc2\x06\xec\x54\x0b\x60\x5e\x08\xe0\xbc\x9c\x66\xe3\x9d\x6a\xc1\ +\xbc\x30\x2f\x04\x70\x63\x3c\xbe\xec\xe3\x54\xeb\x3e\xa2\xce\xcc\ +\x8b\x51\xef\xe3\x30\x1b\xb0\xd3\xac\x53\x2d\x98\x17\xe6\x85\x00\ +\xc6\xa9\x16\x30\x2f\x06\xd7\x64\x00\x4f\x7d\x0c\xe1\x34\x1b\xfb\ +\x54\xeb\xf1\x20\xe6\x85\x79\x31\xe2\xbc\xb0\x01\x03\x80\x00\xa6\ +\x16\x8f\x95\x00\xf3\x42\x00\x27\xe5\x71\x52\x1d\x5e\xc6\xc2\xbc\ +\xc0\xbc\xe8\x2c\x80\x7d\x5e\xd8\x27\xf7\x15\x75\xc5\x68\xf7\xd5\ +\x23\x68\x9e\x78\xac\x04\x98\x17\x02\x38\x09\x8f\x93\xea\xf2\x18\ +\x1a\xf3\x02\xf3\xc2\x06\x0c\x00\x02\x18\x00\x04\x70\x43\xbc\x50\ +\xd1\x37\xf7\x17\xf5\xc4\x48\xf7\xd7\x06\xcc\xff\x78\xb1\x02\x30\ +\x2f\x04\x30\x00\x08\xe0\xd6\x78\xa3\x31\x06\x6f\x42\x63\x5e\x60\ +\x5e\xd8\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\ +\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\x40\x00\ +\x03\x80\x00\x2e\x60\x7d\xf9\xc3\xdd\x0d\xe0\x64\x73\xe4\x22\x60\ +\x5e\x60\x5e\xd8\x80\xf9\xc8\xef\xe3\xaf\x2e\x02\x60\x5e\x08\x60\ +\x00\x10\xc0\xd5\xed\xee\xee\xf7\xdc\xb2\x7e\xb9\xbf\xa8\x27\x46\ +\xba\xbf\x36\x60\x00\x10\xc0\x00\x20\x80\x9b\xe7\xcd\xc6\x69\x52\ +\xbf\x50\xe1\x0d\x68\xcc\x0b\xf3\xc2\xbc\xb0\x01\x03\x80\x00\x5e\ +\xc2\x8b\x15\x7d\x72\x5f\x51\x57\x8c\x76\x5f\xbb\xdf\x80\x3d\x56\ +\xfa\x1c\x8f\x93\xc0\xbc\x30\x2f\x04\x30\x00\x08\x60\x00\x40\x00\ +\xaf\x56\xab\xe9\xcf\xff\x3d\x56\x7a\x5f\xed\xc7\x49\x3e\xa7\xc3\ +\xbc\x30\x2f\x46\x9c\x17\x36\x60\x00\x10\xc0\xf9\x38\xd5\xc6\x3c\ +\xcd\x82\x79\x61\x5e\x08\xe0\xc6\x78\x6c\xd9\x07\xf7\x11\x75\xc6\ +\xa8\xf7\x71\xa8\x47\xd0\x4e\xb5\x4e\xb3\x60\x5e\x98\x17\x02\x18\ +\x00\x04\x70\x9b\xe6\x3c\x8e\x70\xaa\x8d\x73\x9a\xf5\x58\x10\xf3\ +\xc2\xbc\x18\x79\x5e\xd8\x80\x01\x40\x00\x3b\xd5\x3a\xcd\x82\x79\ +\x61\x5e\x8c\x31\x2f\x86\xdd\x80\x3d\x5a\xaa\xd7\x4c\x60\x5e\x98\ +\x17\x74\x12\xc0\xb6\xa9\x7a\xa7\x59\xf7\x0b\xf3\xc2\xbc\x70\xbf\ +\x6c\xc0\x4e\xb5\x85\x9b\xc9\x69\x16\xf3\xc2\xbc\x30\x2f\x04\xf0\ +\xec\x53\x92\x47\x4b\x65\x9b\xc9\xf6\x81\x79\x61\x5e\x98\x17\x36\ +\xe0\xa1\x9a\x2a\xe5\x69\xd6\x49\x16\xf3\xc2\xbc\x30\x2f\x04\x70\ +\xb2\xd3\x52\xcf\x4d\x15\xe1\x73\x1c\xdb\x2f\xe6\x85\x79\x61\x5e\ +\x74\xbe\x01\x6b\xaa\xbc\xcd\xe4\x51\x12\xe6\x85\x79\x61\x5e\x08\ +\xe0\x2c\x7c\xc6\x93\xbe\x99\xc0\xbc\x30\x2f\x18\x24\x80\x97\x9e\ +\x9e\x7a\x69\xaa\x28\x9f\xe3\xd8\x7e\x31\x2f\xcc\x0b\xf3\x62\xa0\ +\x0d\x78\xf4\xa6\xd2\x4c\x60\x5e\x98\x17\x02\xb8\x59\xad\x36\x55\ +\xaa\x66\x3a\xd9\x1c\x79\x8c\x04\xe6\x85\x79\x21\x80\xeb\x9c\xa6\ +\xd6\x97\x3f\x9a\x6a\xac\x94\xcd\x14\xe1\xfa\x83\x79\x61\x5e\x08\ +\xe0\x81\x9b\xaa\x95\xd3\xad\x66\x02\xf3\xc2\xbc\x10\xc0\x9a\xaa\ +\xc1\x66\x4a\xf5\x08\x49\xf8\x62\x5e\x98\x17\xe6\x85\x00\x1e\xa2\ +\xa9\x52\x35\x53\xa4\xeb\x0c\xe6\x85\x79\xd1\xbb\xfd\xd1\x9a\x6a\ +\x7d\x78\xf0\x90\xaa\xa9\x76\xe7\xa7\xcd\x37\x53\xca\x97\x26\x84\ +\x2f\xe6\x85\x79\x61\x5e\x08\xe0\xec\x4d\x15\xa1\xb1\x96\x34\x53\ +\xea\xb7\x15\x35\x13\xe6\x85\x79\x61\x5e\x08\xe0\xa2\x4d\x55\xab\ +\xb1\xe6\x36\x53\x8e\x1f\x13\xd0\x4c\x98\x17\xe6\x85\x79\x21\x80\ +\xab\x35\x55\xc9\xc6\x9a\xd3\x4c\xb9\x7e\x3e\x4f\x33\x61\x5e\x98\ +\x17\xe6\x85\x00\x0e\xd1\x54\xcf\x1b\x2b\x47\x73\x4d\x69\xa6\xdc\ +\x3f\x14\xaf\x99\x30\x2f\xcc\x0b\xf3\x42\x00\x87\x6b\xaa\xd7\x9a\ +\x6b\x69\x83\x7d\xd4\x4c\x25\x7f\x0b\x8d\x66\xc2\xbc\x30\x2f\xcc\ +\x0b\x01\x1c\xbe\xa9\xde\x6b\xb0\xcf\x36\xd9\xcb\x66\xaa\xf9\x2b\ +\xdf\x34\x13\xe6\x85\x79\x61\x5e\x08\xe0\x74\x85\x7e\xfc\xe5\xbf\ +\x62\xb9\xbd\x29\xff\x77\x7f\xe2\x67\x05\x4f\x02\xfc\x3c\xa1\x46\ +\x02\xf3\xc2\xbc\x48\xc7\xff\x19\xc3\x1b\x8d\x85\xeb\x02\xfa\xc2\ +\x75\xb1\x01\x0f\x74\xba\xd5\x48\x60\x5e\x98\x17\x36\x60\xc5\x34\ +\x78\x31\x69\x26\xd0\x2f\xbe\x7f\x1b\xb0\xd3\xad\x46\x02\xf3\xc2\ +\xbc\x10\xc0\x1a\x4b\x23\x01\xe6\x05\xcb\x78\x04\x3d\xa3\xe8\x2e\ +\x2e\xaf\xbb\xfb\x9e\x34\x13\x98\x17\xe6\x85\x00\x6e\xc2\xc5\xe5\ +\x75\xf3\x8d\x75\x71\x79\xad\x91\xc0\xbc\x30\x2f\x2a\xf1\x08\x3a\ +\x41\x51\x3e\xfa\x7e\xfe\xad\xa9\xaf\x17\x30\x2f\xcc\x0b\x01\xac\ +\xb9\x34\x11\x98\x17\xe6\x85\x00\x26\x7d\x11\x97\x6c\x30\x0d\x04\ +\xe6\x85\x79\x21\x80\xf9\xa0\xc8\x97\x34\x9a\xc6\x01\xf3\xc2\xbc\ +\x10\xc0\x68\x0a\xc0\xbc\x60\x02\x6f\x41\x03\x80\x00\x06\x00\x01\ +\x0c\x00\x08\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\ +\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x02\x18\x00\x10\ +\xc0\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\ +\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\ +\x00\x03\x00\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\ +\x02\x18\x00\x04\x30\x00\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\ +\x04\x30\x00\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ +\x08\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\ +\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\ +\x30\xa4\x7d\x97\x00\xe2\xfa\x7e\xfe\x6d\xf6\x9f\xbd\xb8\xbc\x76\ +\x01\x41\x00\x03\x39\xc3\x76\xca\x7f\x4f\x30\x83\x00\x06\x81\x1b\ +\xe0\xef\x15\xc8\x20\x80\x41\xe8\x56\xfe\x9a\x84\x31\x08\x60\x10\ +\xba\xc2\x18\x04\x30\xd0\x77\xf0\xbe\xf7\xf5\x0b\x62\x10\xc0\xd0\ +\x84\xdd\xed\x4d\xb7\x07\x89\xf5\xf1\x17\x37\x18\x04\x30\x08\xde\ +\x5a\xdf\xa3\x20\x06\x01\x0c\x82\x57\x10\x43\x93\xfc\x26\x2c\x10\ +\xbe\xbe\x7f\xb0\x01\x83\xe0\xb1\x0d\x83\x0d\x18\x10\xbe\xae\x0b\ +\xd8\x80\xa1\xae\xf5\xe1\xc1\x43\x8d\x90\xd9\x9d\x9f\x7e\xea\xdf\ +\xfb\x7d\xfc\xf5\xe9\x9f\x4f\x36\x47\x42\x18\x04\x30\xf4\x11\xbe\ +\x91\xc2\xf6\x35\x7f\xdf\xfe\xf3\x14\xc2\x3f\xb7\xbf\xfe\xf8\xdf\ +\x4b\x85\xf2\xfa\xf0\xe0\x61\x77\x77\xbf\xa7\x6a\x40\x00\x43\xd8\ +\xf0\x5d\x12\xb8\x1f\x85\xf0\x4b\x2f\x43\x39\x67\x20\x0b\x61\x10\ +\xc0\x10\x2e\x7c\x53\x87\xee\x94\x10\x7e\x2b\x90\x73\x84\xf1\xe3\ +\xb5\x13\xc4\xf0\x3a\x2f\x61\x41\xa1\xf0\xdd\x9d\x9f\x66\x0f\xdf\ +\xe7\x21\x3c\xc5\xcf\xed\xaf\x57\x1f\x5b\x47\x7f\x82\x00\x02\x18\ +\x84\x6f\x88\xe0\x5d\x12\xc2\x39\x83\x58\x08\x83\x00\x86\x62\x61\ +\x51\x2b\x78\x97\x86\x70\xae\x20\x16\xc2\x20\x80\xa1\x48\xf8\x46\ +\x31\x37\x84\x73\x04\xb1\x10\x06\x01\x0c\x59\xc2\x21\xc2\xd6\x9b\ +\x3a\x84\x1f\x83\x58\x08\x83\x00\x86\xb0\xe1\x1b\x59\x8a\x10\x4e\ +\x15\xc4\x42\x18\x04\x30\x0c\x11\xbe\xa9\x42\x38\xf5\x36\x0c\x02\ +\x18\x84\xef\xec\xe0\x6d\x25\x7c\xa3\x85\xb0\x2d\x18\x01\x0c\x74\ +\xbd\xf5\xe6\x0c\xe1\xa5\x41\x2c\x84\x11\xc0\x60\xfb\x1d\x26\x7c\ +\x53\x86\x70\x8a\x6d\x58\x08\x23\x80\x41\xf8\x0e\x13\xbe\xa9\xf9\ +\x5c\x18\x04\x30\x64\xd3\xe2\xe7\xbd\xa5\xb6\xe0\xa5\x21\x6c\x0b\ +\x46\x00\x83\xed\x77\xb8\xad\x57\x08\x83\x00\x86\x90\xe1\x3b\x82\ +\x94\x21\x0c\x08\x60\x48\xc2\x67\xbe\xb6\x60\x10\xc0\x50\x78\xfb\ +\x1d\x29\x7c\x3d\x8a\x06\x01\x0c\x36\xdf\xc1\x43\x18\x04\x30\x0c\ +\xbc\xfd\xe2\x7e\x81\x00\x06\xdb\xaf\x2d\x18\x04\x30\xf4\xbd\x4d\ +\x79\xe9\x2a\xad\xb9\x21\x6c\x0b\x46\x00\x03\xb6\x60\x40\x00\x83\ +\xed\x77\x9c\x2d\x18\x04\x30\x60\x0b\x6e\xe0\x00\x05\x02\x18\x1a\ +\x64\xfb\xb5\x05\x83\x00\x06\xdb\x93\x2d\xd8\x7d\x44\x00\x83\xed\ +\x17\x5b\x30\x08\x60\x60\xb8\x2d\x18\x04\x30\x34\x62\xca\x63\x4b\ +\xdb\x6f\xfc\x2d\xd8\x63\x68\x04\x30\x00\x20\x80\x81\x32\x3c\x86\ +\x06\x01\x0c\x49\x79\xfc\x5c\x87\x97\xb1\x40\x00\xd3\x21\x9f\x17\ +\xba\xaf\x20\x80\x81\x6e\x78\x0c\x0d\x02\x18\x92\xf0\xf8\xb9\x2e\ +\x8f\xa1\x11\xc0\x00\x80\x00\x06\x00\x01\x0c\x8d\xf1\xa2\x8e\xfb\ +\x0b\x02\x18\xe8\x8e\x17\xb1\x40\x00\x03\x80\x00\x86\xd6\x78\x03\ +\x3a\x06\x6f\x42\x23\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\ +\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\ +\x01\x40\x00\x03\x00\x02\x18\x0a\x58\x5f\xfe\x70\x11\x02\x38\xd9\ +\x1c\xb9\x08\x08\x60\x80\x8f\xfc\x3e\xfe\xea\x22\x80\x00\x06\x00\ +\x01\x0c\x21\xec\xee\xee\xf7\x5c\x05\xf7\x17\x04\x30\x00\x20\x80\ +\x01\x40\x00\x43\x65\xde\x84\x9e\x26\xf5\x0b\x58\xde\x80\x46\x00\ +\x03\x00\x02\x18\x96\xf2\xa2\x8e\xfb\x0a\x02\x18\x82\xf3\x18\xfa\ +\x73\x3c\x7e\x06\x01\x0c\x00\x02\x18\x00\x10\xc0\xf0\x64\xca\xe7\ +\x85\x1e\x43\xbf\x2f\xc2\xe3\x67\x9f\xff\x22\x80\x01\x00\x01\x0c\ +\xa9\xd8\x82\xe3\x6e\xbf\x20\x80\xa1\x31\x1e\x5b\xba\x8f\x20\x80\ +\xc1\x16\x6c\xfb\xb5\xfd\x82\x00\x06\x6c\xbf\x20\x80\x21\xd0\x00\ +\xb7\x05\xdb\x7e\x41\x00\x03\x80\x00\x06\x5b\xb0\xed\xb7\xec\xf6\ +\xeb\xf1\x33\x02\x18\x06\xe4\x51\x74\xdd\xf0\x05\x01\x0c\x83\x6e\ +\xc1\xb6\x5f\xf7\x0b\x04\x30\xd8\x82\x9b\x0c\x5f\xdb\x2f\x08\x60\ +\x98\xbd\x55\x79\x14\x5d\x3e\x7c\x6d\xbf\x08\x60\x60\x98\x10\x4e\ +\xb9\xfd\x0a\x5f\x10\xc0\x60\xc0\x17\x0e\x5f\x40\x00\x43\xd2\x10\ +\xee\x75\x0b\x8e\xf4\xb9\xaf\xc3\x11\x02\x18\x78\x33\x84\x7d\x26\ +\x2c\x7c\x41\x00\x43\xe1\x2d\xb8\xb7\x6d\x38\xca\xe7\xbe\x20\x80\ +\x41\x08\x0f\x13\xc2\x91\xc2\xd7\xf6\x8b\x00\x06\x86\x08\xe1\x54\ +\xe1\x7b\xb2\x39\x12\xbe\x20\x80\xa1\x4e\x00\xb4\xf6\xb9\x70\xca\ +\xf0\xad\x7d\xed\x41\x00\xc3\xe0\x21\xdc\xca\x36\x1c\x29\x7c\x01\ +\x01\x0c\x43\x84\x70\x8a\xf0\x4d\xf1\xc8\xd9\xf6\x0b\x02\x18\xb2\ +\x85\x70\xb4\x20\x4e\x15\xbe\x91\xae\x33\x08\x60\x10\xc2\xa1\xb7\ +\xe1\xa5\xe1\x9b\x72\xeb\x15\xbe\xf0\x7f\xfb\x2e\x01\xfc\x19\x12\ +\xeb\xc3\x83\x87\x54\x21\xbc\x3b\x3f\x6d\x2e\x7c\x73\x7c\xce\x2b\ +\x7c\x41\x00\x43\xb1\x10\xae\x15\xc4\x73\xc3\x37\xd7\x0b\x56\xc2\ +\x17\x04\x30\x54\x09\xe1\x92\x41\x3c\x27\x7c\x73\xbe\xd9\x2c\x7c\ +\x41\x00\x43\xf5\x10\x7e\x1e\xc4\x39\xc2\x78\x4a\xf8\xe6\xfe\x71\ +\x22\xc1\x0b\x02\x18\xc2\x85\xf0\x6b\x61\xbc\x34\x90\x3f\x0a\xdf\ +\x92\x3f\xbf\x2b\x7c\x41\x00\x43\xf8\x10\x7e\x2f\x90\x3f\x1b\xca\ +\x2f\xc3\xb7\xe6\x2f\xcb\x10\xbe\x20\x80\x21\x79\xb0\x9c\x9d\x9d\ +\x3d\xec\x6e\x6f\x8a\xfe\xbd\x9f\xf9\x91\xa6\x93\x20\x3f\xf6\xb4\ +\x3e\xfe\xb2\xda\xdd\xdd\x2b\x16\xf8\x04\x3f\x07\x0c\x33\x42\x06\ +\xd7\x05\x6c\xc0\x50\x31\x6c\x4a\x6f\xc3\x82\x17\x6c\xc0\x80\xf0\ +\x11\xbe\x60\x03\x06\xdb\xb0\xe0\x05\x01\x0c\x82\x58\xf0\x02\x02\ +\x18\x04\xf1\x12\x17\x97\xd7\xab\xed\x76\xeb\xc6\x82\x00\x86\x76\ +\x82\x6b\xb5\x5a\xad\xbe\x9f\x7f\x6b\xfa\xeb\x07\x04\x30\x34\x1f\ +\x64\xd1\xc3\x58\xe8\x82\x00\x06\x61\x2c\x74\x41\x00\x03\xf9\x83\ +\xaf\x54\x20\x0b\x5c\x10\xc0\xc0\x07\xc1\xb8\x24\x94\x05\x2d\x08\ +\x60\x40\x88\x02\x2f\xf8\x4d\x58\x00\x20\x80\x01\x40\x00\x03\x00\ +\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\x18\x00\ +\x04\x30\x00\x20\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ +\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\ +\x40\x00\x03\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\ +\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\x80\x00\x06\ +\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\x01\x0c\ +\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\ +\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\xb8\x9e\xed\x76\ +\xeb\xfb\x00\xcc\x0b\x04\x30\x00\x08\x60\xc0\xe6\x03\x08\xe0\xcf\ +\xba\xba\xba\xda\x1b\x69\x28\x4d\xfd\xfa\xa7\x5e\x1f\x75\xe2\xfa\ +\xf8\x3e\xcd\x0b\x04\x30\x00\x08\xe0\x9e\xb4\x7a\xaa\xf5\x48\xd1\ +\xb5\x56\x2b\xae\xa5\x1a\x10\xc0\x00\x30\x24\xcf\xe9\x5f\x38\x3b\ +\x3b\x7b\x98\xfa\x67\x36\x9b\x4d\xd7\xa7\x59\x9f\xe7\x2c\xaf\x93\ +\x96\x6a\x64\x6e\xad\x8c\x58\x27\xe6\x85\x3a\xb0\x01\x03\x80\x00\ +\x1e\x4f\x2b\x9f\x91\xf8\x2c\xc7\xb5\x57\x2b\xae\xad\x1a\x10\xc0\ +\x61\xcd\x7d\x7c\x12\xbd\x58\xe7\x7e\x7d\x1e\x27\xb9\x2e\xae\x87\ +\x79\xa1\x0e\x04\xb0\x13\xa3\x93\xac\xfa\xf0\x75\xaa\x07\xf7\xbf\ +\x1b\x4e\x2b\x6f\x98\xf3\x72\xc5\xa3\x48\x2f\x59\x2c\x69\x26\xa7\ +\xd9\x3c\x75\x12\xf9\x25\x1c\x2f\xdd\x98\x17\xe6\x85\x0d\xd8\xc9\ +\xd6\x49\x56\x7d\xf8\xba\xd4\x83\xfb\x6f\x03\x76\xaa\x6d\xef\x64\ +\xbb\xb4\x99\x9c\x66\xf3\xd7\x49\x0f\x9b\x8f\x3a\x31\x2f\xd4\xc1\ +\x7c\xfb\x2e\x41\xfe\xa2\x2e\xd9\x58\x4e\xb1\x6d\xd5\x47\x84\x10\ +\x56\x33\xe6\x05\x36\xe0\x2e\x4f\xb5\xa5\x4e\xb8\x29\x1b\xc9\x69\ +\xb6\x6c\x9d\xb4\xba\xf9\xa8\x13\xf3\x42\x1d\xd8\x80\x87\x3e\xe1\ +\x3a\xc1\xaa\x0b\x75\xa3\x2e\xdc\x77\x1b\xb0\x53\x6d\xa1\x53\x6e\ +\xce\x26\x72\x9a\xad\x5f\x27\x2d\x6c\x3e\xea\xc4\xbc\x50\x07\x02\ +\xb8\x8b\xa6\x8a\x42\x33\xc5\xaa\x93\xa8\x9b\x8f\x3a\x31\x2f\xd4\ +\x81\x00\xd6\x54\x9a\x69\x98\x3a\x89\xb2\xf9\xa8\x13\xf3\x42\x1d\ +\x08\x60\x4d\xa5\x99\xd4\x89\x3a\x51\x07\xea\x40\x00\x6b\x2a\xcd\ +\x84\x3a\x41\x1d\x20\x80\x35\x95\x66\x52\x27\xea\x44\x1d\xa8\x03\ +\x01\xac\xa9\x34\x93\x3a\x51\x27\xa8\x03\x04\xb0\xa6\xd2\x4c\xea\ +\x44\x9d\xa8\x03\x75\x20\x80\x35\x95\x66\x52\x27\xea\x44\x1d\xa8\ +\x03\x01\x4c\xd7\x8d\xa5\x91\xd4\x89\x3a\x51\x07\xea\x40\x00\x6b\ +\x2c\x8d\x84\x3a\x41\x1d\x08\x60\x97\xa0\xcf\xc6\xd2\x48\xea\x44\ +\x9d\xa8\x03\x75\x20\x80\x35\x56\xc1\xc6\xd2\x48\xea\x44\x9d\xa8\ +\x03\x75\x20\x80\x29\xd4\x5c\x9a\x48\x9d\xa8\x13\x75\xa0\x0e\x04\ +\x30\x05\x1a\x4c\x03\xa9\x13\x75\xa2\x0e\xd4\x01\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x82\x7f\x01\xc1\xb1\x55\ +\x00\x01\xa1\x33\xe7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ \x00\x00\x0e\x6c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1264,1219 +6200,6 @@ qt_resource_data = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x4b\xfa\xff\ \xcd\x6a\x52\x8e\x06\x13\xf3\x3a\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ -\x00\x00\x11\xa2\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x3d\x00\x39\x00\x35\xdd\xfb\ -\xdd\x74\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x04\x12\x06\x30\x0f\x18\xe0\xad\x88\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x11\x0a\x49\x44\x41\x54\x78\xda\xed\xdd\xbd\x4e\x1c\x59\x13\ -\x06\xe0\x61\x45\xb2\x17\x44\x40\x30\x48\x8c\x64\x02\x5f\x11\x46\ -\x42\xc8\x42\x02\x5f\xd1\x06\x46\x1a\x24\x4f\x40\xc0\x05\x39\x64\ -\x83\x15\x88\xc5\xfc\x75\xf7\xf9\xa9\x73\xce\xf3\x44\x2b\x7d\xeb\ -\x35\x74\x57\xd5\x7b\xaa\xa7\xe1\x5b\xad\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\xa0\x3d\x7b\x2e\x41\x5d\x67\x67\x67\x0f\ -\x53\xff\xcc\xd5\xd5\x95\xfb\xa6\x4e\xd4\x89\x3a\x50\x07\x02\x98\ -\xdc\x0d\xa4\xc1\xd4\x89\x3a\x51\x07\xea\x40\x00\x13\xa4\x89\x34\ -\x97\x3a\x51\x27\xea\x40\x1d\x08\x60\x02\x34\x92\xc6\x52\x27\xea\ -\x44\x1d\xa8\x03\x01\xac\x91\x2a\x36\x92\xc6\x52\x27\xea\x44\x1d\ -\xa8\x03\x01\xac\x91\x02\xd1\x58\xea\x44\x9d\xa8\x03\x75\x20\x80\ -\x35\x92\xc6\x52\x27\xea\x44\x1d\xa8\x03\x01\xec\x12\x8c\xd3\x4c\ -\x9a\x4a\x9d\xa8\x13\x75\xa0\x0e\x04\xb0\x66\xd2\x54\xea\x44\x9d\ -\xa8\x03\x75\x20\x80\x19\xab\x99\x34\x95\x3a\x51\x27\xea\x40\x1d\ -\x08\x60\xcd\xa4\xa9\xd4\x89\x3a\x51\x07\xea\x40\x00\x33\x56\x33\ -\x69\x2a\x75\xa2\x4e\xd4\x81\x3a\x10\xc0\xc3\x36\xd3\x66\xb3\x99\ -\xfc\x67\xb6\xdb\xad\xa6\x32\x74\x0d\x5f\xf3\xc2\xbc\x10\xc0\x9a\ -\xa9\x44\x13\x95\x68\x2e\x4d\x25\x7c\xd5\x89\x79\xa1\x0e\x04\x70\ -\x97\xcd\x94\xb2\x91\x72\x35\x96\xa6\x8a\x19\xbe\x51\x36\x1f\x75\ -\x62\x5e\xa8\x03\x01\xdc\x54\x33\xe5\x6c\xa4\x1c\x8d\xa5\xa9\x62\ -\x84\x6f\xd4\xcd\x47\x9d\x98\x17\xea\x20\x8d\x7d\x97\x20\x9f\x92\ -\x8d\xf4\xf2\xef\xcc\xb9\xfd\xd0\x5e\xdd\xa8\x0b\xf3\x42\x5d\xd8\ -\x80\x87\x39\xcd\xd6\x68\xa6\x94\xa7\x5b\xa7\xda\xf2\xdb\x6f\x6b\ -\x9b\x8f\x3a\x31\x2f\xd4\xc1\x32\x7f\xb9\x04\x7d\x9c\x64\x23\x7f\ -\x1d\x7c\x7c\x9f\x4a\xdf\xab\x1a\x7f\x27\xe6\x05\x36\xe0\xac\xa7\ -\xd9\x88\x45\x3c\xf7\x64\xeb\x54\x9b\x7f\xfb\x6d\x7d\xf3\x51\x27\ -\xe6\x85\x3a\xb0\x01\x3b\x41\x3a\xd9\xaa\x17\xf5\xe1\xfe\xab\x07\ -\x1b\xf0\x88\xa7\xd9\x16\x8a\x76\xce\xc9\xd6\xa9\x36\xcf\xf6\xdb\ -\xd3\xe6\x33\x7a\x9d\x98\x17\xea\xc0\x06\xec\xc4\xe8\x64\xab\x5e\ -\xd4\x87\xfb\xaf\x1e\x04\xf0\x98\x5b\x8d\xeb\xe1\xba\xb4\x3e\xd4\ -\xe6\x7e\x7d\xa3\xd6\x89\xfe\x70\x3d\x04\xb0\x53\xa2\x53\xad\x6b\ -\xaf\x46\x5c\x5b\xb5\x20\x80\x01\x80\x8f\xf8\xc0\xfc\x99\xa9\x8f\ -\x4f\x5a\x3e\x1d\x4e\x7d\xc1\xc2\xcb\x15\xf3\xeb\xa4\xd5\x5a\xf1\ -\x12\x8e\x79\x61\x5e\xd8\x80\x01\x40\x00\xd3\xfe\x69\xb6\x87\xaf\ -\xdf\xb5\xf6\x75\xbb\x96\xbe\x7e\x01\x0c\x00\x08\xe0\xb9\xbc\x3e\ -\xef\xfa\xe4\xb8\x0e\xa3\x6d\x3e\xa3\xd4\x89\x7e\x70\x7d\x04\x70\ -\x23\x43\xc9\xf7\x01\xe6\x85\xef\x03\x01\x0c\x00\x02\x18\x6c\x3e\ -\xbe\x0f\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\ -\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\x20\ -\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\ -\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x40\x00\x03\x00\ -\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\x18\x00\ -\x04\x30\x00\x20\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ -\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\ -\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\x10\xc0\x00\ -\x80\x00\x06\x00\x01\x0c\x00\x2c\xb0\xef\x12\xd4\xf5\xfd\xfc\xdb\ -\xec\x3f\x7b\x71\x79\xed\x02\x82\x79\x61\x5e\x08\x60\x72\x35\xce\ -\xd4\xff\xa6\x46\x03\xf3\xc2\xbc\x10\xc0\x1a\x28\xc0\xdf\xad\xc1\ -\xc0\xbc\x30\x2f\x04\xb0\x26\xaa\xfc\x75\x69\x2e\x30\x2f\xcc\x0b\ -\x01\xac\x89\x34\x17\x98\x17\xe6\x85\x00\xa6\xef\x46\x7a\xef\x7b\ -\x58\x1f\x7f\x71\x43\xc1\xbc\x30\x2f\x04\x70\x6c\xbb\xdb\x9b\xd5\ -\xee\xf6\xa6\xbb\xef\x49\x63\x81\x79\x61\x5e\x08\xe0\xd0\x45\x37\ -\xc2\xf7\xa8\xb1\xc0\xbc\x30\x2f\x04\xb0\x46\xd2\x58\x60\x5e\x98\ -\x17\x5d\xf2\x9b\xb0\x34\x93\xef\x1f\xf4\x8b\xef\xdf\x06\xac\x90\ -\x9c\x6e\xc1\xbc\x30\x2f\x6c\xc0\x9a\x09\xd7\x05\xf4\x85\xeb\x62\ -\x03\xee\xb7\x60\x76\xe7\xa7\x9f\xfa\xf7\x7e\x1f\x7f\x7d\xfa\xe7\ -\x93\xcd\x51\xf1\xaf\x73\x7d\x78\xf0\xb0\x5a\xad\x56\xbb\xbb\xfb\ -\x3d\x15\x83\x79\x61\x5e\x98\x17\x02\x38\x59\xa1\x44\x6a\x9e\xd7\ -\xfc\x7d\xfb\xcf\x53\x53\xfd\xdc\xfe\xfa\xe3\x7f\x2f\xd5\x64\xeb\ -\xc3\x83\x07\x4d\x85\x79\x61\x5e\x98\x17\x02\x38\x74\x33\x2d\x69\ -\xa0\x8f\x9a\xea\xa5\x97\x4d\x96\xb3\xc1\x34\x15\xe6\x85\x79\x61\ -\x5e\x08\xe0\x70\xcd\x94\xba\x89\xa6\x34\xd5\x5b\x0d\x96\xa3\xb9\ -\x34\x15\xe6\x85\x79\x61\x5e\xcc\xf7\x97\x66\x4a\xdb\x48\xb9\x9b\ -\xe9\x79\x53\x4d\xf1\x73\xfb\xeb\xd5\xc7\x50\xd1\x37\x02\x30\x2f\ -\xcc\x0b\x01\xac\x99\x42\x34\xd2\x92\xa6\xca\xd5\x58\x9a\x0a\xf3\ -\xc2\xbc\x30\x2f\x04\x70\xd1\x9b\x5f\xab\x91\x96\x36\x55\x8e\xc6\ -\xd2\x54\x98\x17\xe6\x85\x79\x21\x80\xb3\xdf\xf4\x08\x8d\x94\xa2\ -\xa9\x52\x37\x96\xa6\xc2\xbc\x30\x2f\xcc\x0b\x01\x9c\xb5\x99\x22\ -\x5a\xd2\x54\x8f\x8d\xa5\xa9\xc0\xbc\x30\x2f\x04\xb0\x66\xaa\xd4\ -\x54\x29\x1a\x4b\x08\x63\x5e\x98\x17\xe6\x85\x00\x1e\xa6\x99\x52\ -\x35\x55\xaa\xd3\xad\x10\xc6\xbc\x30\x2f\xcc\x8b\x81\x03\x38\xc5\ -\x4d\x8d\xf6\xf9\x8d\xa6\x02\xf3\xc2\xbc\x10\xc0\xdd\x6b\xad\x91\ -\x72\x34\x55\x8e\x9f\x05\x04\xf3\xc2\xbc\xa0\xe3\x00\x5e\x7a\x9a\ -\x6a\xb9\x99\x52\x36\xd5\xd2\xd3\xad\x2d\x18\xf3\xc2\xbc\x30\x2f\ -\x06\x0a\x60\xcd\x94\x9e\xa6\x42\xf8\x9a\x17\xe6\x85\x00\xce\xaa\ -\xb7\x66\x4a\x75\xaa\x5d\xda\x54\x60\x5e\x98\x17\x74\x1e\xc0\x4b\ -\x4e\x4f\xbd\x9e\x64\x23\x34\x95\x2d\x18\xf3\xc2\xbc\x30\x2f\x3a\ -\x0e\x60\xcd\x54\xa6\xa9\x6a\xdc\x1f\x30\x2f\xcc\x0b\x01\xdc\x21\ -\x9f\xe1\x94\x39\xd5\x82\x79\x61\x5e\xd0\x61\x00\xcf\x3d\x2d\x8d\ -\xd4\x4c\x1e\x2d\x81\x79\x61\x5e\x08\x60\x27\xd9\x81\x9b\x0a\xcc\ -\x0b\xf3\x82\x4e\x02\xd8\x56\xe5\x7e\x81\xfa\x73\xbf\x04\xb0\xd3\ -\xac\x53\x2d\x98\x17\xe6\x85\x79\xd1\x7f\x00\xcf\x39\x1d\x79\x89\ -\x22\xad\x39\x4d\x65\x0b\xc1\xbc\x30\x2f\x46\x9f\x17\xde\x82\x76\ -\xaa\x05\x30\x2f\x04\xb0\xd3\xac\x53\x2d\x98\x17\xe6\xc5\x18\xf3\ -\xc2\x06\xec\x54\x0b\x60\x5e\x08\xe0\xbc\x9c\x66\xe3\x9d\x6a\xc1\ -\xbc\x30\x2f\x04\x70\x63\x3c\xbe\xec\xe3\x54\xeb\x3e\xa2\xce\xcc\ -\x8b\x51\xef\xe3\x30\x1b\xb0\xd3\xac\x53\x2d\x98\x17\xe6\x85\x00\ -\xc6\xa9\x16\x30\x2f\x06\xd7\x64\x00\x4f\x7d\x0c\xe1\x34\x1b\xfb\ -\x54\xeb\xf1\x20\xe6\x85\x79\x31\xe2\xbc\xb0\x01\x03\x80\x00\xa6\ -\x16\x8f\x95\x00\xf3\x42\x00\x27\xe5\x71\x52\x1d\x5e\xc6\xc2\xbc\ -\xc0\xbc\xe8\x2c\x80\x7d\x5e\xd8\x27\xf7\x15\x75\xc5\x68\xf7\xd5\ -\x23\x68\x9e\x78\xac\x04\x98\x17\x02\x38\x09\x8f\x93\xea\xf2\x18\ -\x1a\xf3\x02\xf3\xc2\x06\x0c\x00\x02\x18\x00\x04\x70\x43\xbc\x50\ -\xd1\x37\xf7\x17\xf5\xc4\x48\xf7\xd7\x06\xcc\xff\x78\xb1\x02\x30\ -\x2f\x04\x30\x00\x08\xe0\xd6\x78\xa3\x31\x06\x6f\x42\x63\x5e\x60\ -\x5e\xd8\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\ -\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\x40\x00\ -\x03\x80\x00\x2e\x60\x7d\xf9\xc3\xdd\x0d\xe0\x64\x73\xe4\x22\x60\ -\x5e\x60\x5e\xd8\x80\xf9\xc8\xef\xe3\xaf\x2e\x02\x60\x5e\x08\x60\ -\x00\x10\xc0\xd5\xed\xee\xee\xf7\xdc\xb2\x7e\xb9\xbf\xa8\x27\x46\ -\xba\xbf\x36\x60\x00\x10\xc0\x00\x20\x80\x9b\xe7\xcd\xc6\x69\x52\ -\xbf\x50\xe1\x0d\x68\xcc\x0b\xf3\xc2\xbc\xb0\x01\x03\x80\x00\x5e\ -\xc2\x8b\x15\x7d\x72\x5f\x51\x57\x8c\x76\x5f\xbb\xdf\x80\x3d\x56\ -\xfa\x1c\x8f\x93\xc0\xbc\x30\x2f\x04\x30\x00\x08\x60\x00\x40\x00\ -\xaf\x56\xab\xe9\xcf\xff\x3d\x56\x7a\x5f\xed\xc7\x49\x3e\xa7\xc3\ -\xbc\x30\x2f\x46\x9c\x17\x36\x60\x00\x10\xc0\xf9\x38\xd5\xc6\x3c\ -\xcd\x82\x79\x61\x5e\x08\xe0\xc6\x78\x6c\xd9\x07\xf7\x11\x75\xc6\ -\xa8\xf7\x71\xa8\x47\xd0\x4e\xb5\x4e\xb3\x60\x5e\x98\x17\x02\x18\ -\x00\x04\x70\x9b\xe6\x3c\x8e\x70\xaa\x8d\x73\x9a\xf5\x58\x10\xf3\ -\xc2\xbc\x18\x79\x5e\xd8\x80\x01\x40\x00\x3b\xd5\x3a\xcd\x82\x79\ -\x61\x5e\x8c\x31\x2f\x86\xdd\x80\x3d\x5a\xaa\xd7\x4c\x60\x5e\x98\ -\x17\x74\x12\xc0\xb6\xa9\x7a\xa7\x59\xf7\x0b\xf3\xc2\xbc\x70\xbf\ -\x6c\xc0\x4e\xb5\x85\x9b\xc9\x69\x16\xf3\xc2\xbc\x30\x2f\x04\xf0\ -\xec\x53\x92\x47\x4b\x65\x9b\xc9\xf6\x81\x79\x61\x5e\x98\x17\x36\ -\xe0\xa1\x9a\x2a\xe5\x69\xd6\x49\x16\xf3\xc2\xbc\x30\x2f\x04\x70\ -\xb2\xd3\x52\xcf\x4d\x15\xe1\x73\x1c\xdb\x2f\xe6\x85\x79\x61\x5e\ -\x74\xbe\x01\x6b\xaa\xbc\xcd\xe4\x51\x12\xe6\x85\x79\x61\x5e\x08\ -\xe0\x2c\x7c\xc6\x93\xbe\x99\xc0\xbc\x30\x2f\x18\x24\x80\x97\x9e\ -\x9e\x7a\x69\xaa\x28\x9f\xe3\xd8\x7e\x31\x2f\xcc\x0b\xf3\x62\xa0\ -\x0d\x78\xf4\xa6\xd2\x4c\x60\x5e\x98\x17\x02\xb8\x59\xad\x36\x55\ -\xaa\x66\x3a\xd9\x1c\x79\x8c\x04\xe6\x85\x79\x21\x80\xeb\x9c\xa6\ -\xd6\x97\x3f\x9a\x6a\xac\x94\xcd\x14\xe1\xfa\x83\x79\x61\x5e\x08\ -\xe0\x81\x9b\xaa\x95\xd3\xad\x66\x02\xf3\xc2\xbc\x10\xc0\x9a\xaa\ -\xc1\x66\x4a\xf5\x08\x49\xf8\x62\x5e\x98\x17\xe6\x85\x00\x1e\xa2\ -\xa9\x52\x35\x53\xa4\xeb\x0c\xe6\x85\x79\xd1\xbb\xfd\xd1\x9a\x6a\ -\x7d\x78\xf0\x90\xaa\xa9\x76\xe7\xa7\xcd\x37\x53\xca\x97\x26\x84\ -\x2f\xe6\x85\x79\x61\x5e\x08\xe0\xec\x4d\x15\xa1\xb1\x96\x34\x53\ -\xea\xb7\x15\x35\x13\xe6\x85\x79\x61\x5e\x08\xe0\xa2\x4d\x55\xab\ -\xb1\xe6\x36\x53\x8e\x1f\x13\xd0\x4c\x98\x17\xe6\x85\x79\x21\x80\ -\xab\x35\x55\xc9\xc6\x9a\xd3\x4c\xb9\x7e\x3e\x4f\x33\x61\x5e\x98\ -\x17\xe6\x85\x00\x0e\xd1\x54\xcf\x1b\x2b\x47\x73\x4d\x69\xa6\xdc\ -\x3f\x14\xaf\x99\x30\x2f\xcc\x0b\xf3\x42\x00\x87\x6b\xaa\xd7\x9a\ -\x6b\x69\x83\x7d\xd4\x4c\x25\x7f\x0b\x8d\x66\xc2\xbc\x30\x2f\xcc\ -\x0b\x01\x1c\xbe\xa9\xde\x6b\xb0\xcf\x36\xd9\xcb\x66\xaa\xf9\x2b\ -\xdf\x34\x13\xe6\x85\x79\x61\x5e\x08\xe0\x74\x85\x7e\xfc\xe5\xbf\ -\x62\xb9\xbd\x29\xff\x77\x7f\xe2\x67\x05\x4f\x02\xfc\x3c\xa1\x46\ -\x02\xf3\xc2\xbc\x48\xc7\xff\x19\xc3\x1b\x8d\x85\xeb\x02\xfa\xc2\ -\x75\xb1\x01\x0f\x74\xba\xd5\x48\x60\x5e\x98\x17\x36\x60\xc5\x34\ -\x78\x31\x69\x26\xd0\x2f\xbe\x7f\x1b\xb0\xd3\xad\x46\x02\xf3\xc2\ -\xbc\x10\xc0\x1a\x4b\x23\x01\xe6\x05\xcb\x78\x04\x3d\xa3\xe8\x2e\ -\x2e\xaf\xbb\xfb\x9e\x34\x13\x98\x17\xe6\x85\x00\x6e\xc2\xc5\xe5\ -\x75\xf3\x8d\x75\x71\x79\xad\x91\xc0\xbc\x30\x2f\x2a\xf1\x08\x3a\ -\x41\x51\x3e\xfa\x7e\xfe\xad\xa9\xaf\x17\x30\x2f\xcc\x0b\x01\xac\ -\xb9\x34\x11\x98\x17\xe6\x85\x00\x26\x7d\x11\x97\x6c\x30\x0d\x04\ -\xe6\x85\x79\x21\x80\xf9\xa0\xc8\x97\x34\x9a\xc6\x01\xf3\xc2\xbc\ -\x10\xc0\x68\x0a\xc0\xbc\x60\x02\x6f\x41\x03\x80\x00\x06\x00\x01\ -\x0c\x00\x08\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\ -\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x02\x18\x00\x10\ -\xc0\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\ -\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\ -\x00\x03\x00\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\ -\x02\x18\x00\x04\x30\x00\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\ -\x04\x30\x00\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ -\x08\x60\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\ -\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\ -\x30\xa4\x7d\x97\x00\xe2\xfa\x7e\xfe\x6d\xf6\x9f\xbd\xb8\xbc\x76\ -\x01\x41\x00\x03\x39\xc3\x76\xca\x7f\x4f\x30\x83\x00\x06\x81\x1b\ -\xe0\xef\x15\xc8\x20\x80\x41\xe8\x56\xfe\x9a\x84\x31\x08\x60\x10\ -\xba\xc2\x18\x04\x30\xd0\x77\xf0\xbe\xf7\xf5\x0b\x62\x10\xc0\xd0\ -\x84\xdd\xed\x4d\xb7\x07\x89\xf5\xf1\x17\x37\x18\x04\x30\x08\xde\ -\x5a\xdf\xa3\x20\x06\x01\x0c\x82\x57\x10\x43\x93\xfc\x26\x2c\x10\ -\xbe\xbe\x7f\xb0\x01\x83\xe0\xb1\x0d\x83\x0d\x18\x10\xbe\xae\x0b\ -\xd8\x80\xa1\xae\xf5\xe1\xc1\x43\x8d\x90\xd9\x9d\x9f\x7e\xea\xdf\ -\xfb\x7d\xfc\xf5\xe9\x9f\x4f\x36\x47\x42\x18\x04\x30\xf4\x11\xbe\ -\x91\xc2\xf6\x35\x7f\xdf\xfe\xf3\x14\xc2\x3f\xb7\xbf\xfe\xf8\xdf\ -\x4b\x85\xf2\xfa\xf0\xe0\x61\x77\x77\xbf\xa7\x6a\x40\x00\x43\xd8\ -\xf0\x5d\x12\xb8\x1f\x85\xf0\x4b\x2f\x43\x39\x67\x20\x0b\x61\x10\ -\xc0\x10\x2e\x7c\x53\x87\xee\x94\x10\x7e\x2b\x90\x73\x84\xf1\xe3\ -\xb5\x13\xc4\xf0\x3a\x2f\x61\x41\xa1\xf0\xdd\x9d\x9f\x66\x0f\xdf\ -\xe7\x21\x3c\xc5\xcf\xed\xaf\x57\x1f\x5b\x47\x7f\x82\x00\x02\x18\ -\x84\x6f\x88\xe0\x5d\x12\xc2\x39\x83\x58\x08\x83\x00\x86\x62\x61\ -\x51\x2b\x78\x97\x86\x70\xae\x20\x16\xc2\x20\x80\xa1\x48\xf8\x46\ -\x31\x37\x84\x73\x04\xb1\x10\x06\x01\x0c\x59\xc2\x21\xc2\xd6\x9b\ -\x3a\x84\x1f\x83\x58\x08\x83\x00\x86\xb0\xe1\x1b\x59\x8a\x10\x4e\ -\x15\xc4\x42\x18\x04\x30\x0c\x11\xbe\xa9\x42\x38\xf5\x36\x0c\x02\ -\x18\x84\xef\xec\xe0\x6d\x25\x7c\xa3\x85\xb0\x2d\x18\x01\x0c\x74\ -\xbd\xf5\xe6\x0c\xe1\xa5\x41\x2c\x84\x11\xc0\x60\xfb\x1d\x26\x7c\ -\x53\x86\x70\x8a\x6d\x58\x08\x23\x80\x41\xf8\x0e\x13\xbe\xa9\xf9\ -\x5c\x18\x04\x30\x64\xd3\xe2\xe7\xbd\xa5\xb6\xe0\xa5\x21\x6c\x0b\ -\x46\x00\x83\xed\x77\xb8\xad\x57\x08\x83\x00\x86\x90\xe1\x3b\x82\ -\x94\x21\x0c\x08\x60\x48\xc2\x67\xbe\xb6\x60\x10\xc0\x50\x78\xfb\ -\x1d\x29\x7c\x3d\x8a\x06\x01\x0c\x36\xdf\xc1\x43\x18\x04\x30\x0c\ -\xbc\xfd\xe2\x7e\x81\x00\x06\xdb\xaf\x2d\x18\x04\x30\xf4\xbd\x4d\ -\x79\xe9\x2a\xad\xb9\x21\x6c\x0b\x46\x00\x03\xb6\x60\x40\x00\x83\ -\xed\x77\x9c\x2d\x18\x04\x30\x60\x0b\x6e\xe0\x00\x05\x02\x18\x1a\ -\x64\xfb\xb5\x05\x83\x00\x06\xdb\x93\x2d\xd8\x7d\x44\x00\x83\xed\ -\x17\x5b\x30\x08\x60\x60\xb8\x2d\x18\x04\x30\x34\x62\xca\x63\x4b\ -\xdb\x6f\xfc\x2d\xd8\x63\x68\x04\x30\x00\x20\x80\x81\x32\x3c\x86\ -\x06\x01\x0c\x49\x79\xfc\x5c\x87\x97\xb1\x40\x00\xd3\x21\x9f\x17\ -\xba\xaf\x20\x80\x81\x6e\x78\x0c\x0d\x02\x18\x92\xf0\xf8\xb9\x2e\ -\x8f\xa1\x11\xc0\x00\x80\x00\x06\x00\x01\x0c\x8d\xf1\xa2\x8e\xfb\ -\x0b\x02\x18\xe8\x8e\x17\xb1\x40\x00\x03\x80\x00\x86\xd6\x78\x03\ -\x3a\x06\x6f\x42\x23\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\ -\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\ -\x01\x40\x00\x03\x00\x02\x18\x0a\x58\x5f\xfe\x70\x11\x02\x38\xd9\ -\x1c\xb9\x08\x08\x60\x80\x8f\xfc\x3e\xfe\xea\x22\x80\x00\x06\x00\ -\x01\x0c\x21\xec\xee\xee\xf7\x5c\x05\xf7\x17\x04\x30\x00\x20\x80\ -\x01\x40\x00\x43\x65\xde\x84\x9e\x26\xf5\x0b\x58\xde\x80\x46\x00\ -\x03\x00\x02\x18\x96\xf2\xa2\x8e\xfb\x0a\x02\x18\x82\xf3\x18\xfa\ -\x73\x3c\x7e\x06\x01\x0c\x00\x02\x18\x00\x10\xc0\xf0\x64\xca\xe7\ -\x85\x1e\x43\xbf\x2f\xc2\xe3\x67\x9f\xff\x22\x80\x01\x00\x01\x0c\ -\xa9\xd8\x82\xe3\x6e\xbf\x20\x80\xa1\x31\x1e\x5b\xba\x8f\x20\x80\ -\xc1\x16\x6c\xfb\xb5\xfd\x82\x00\x06\x6c\xbf\x20\x80\x21\xd0\x00\ -\xb7\x05\xdb\x7e\x41\x00\x03\x80\x00\x06\x5b\xb0\xed\xb7\xec\xf6\ -\xeb\xf1\x33\x02\x18\x06\xe4\x51\x74\xdd\xf0\x05\x01\x0c\x83\x6e\ -\xc1\xb6\x5f\xf7\x0b\x04\x30\xd8\x82\x9b\x0c\x5f\xdb\x2f\x08\x60\ -\x98\xbd\x55\x79\x14\x5d\x3e\x7c\x6d\xbf\x08\x60\x60\x98\x10\x4e\ -\xb9\xfd\x0a\x5f\x10\xc0\x60\xc0\x17\x0e\x5f\x40\x00\x43\xd2\x10\ -\xee\x75\x0b\x8e\xf4\xb9\xaf\xc3\x11\x02\x18\x78\x33\x84\x7d\x26\ -\x2c\x7c\x41\x00\x43\xe1\x2d\xb8\xb7\x6d\x38\xca\xe7\xbe\x20\x80\ -\x41\x08\x0f\x13\xc2\x91\xc2\xd7\xf6\x8b\x00\x06\x86\x08\xe1\x54\ -\xe1\x7b\xb2\x39\x12\xbe\x20\x80\xa1\x4e\x00\xb4\xf6\xb9\x70\xca\ -\xf0\xad\x7d\xed\x41\x00\xc3\xe0\x21\xdc\xca\x36\x1c\x29\x7c\x01\ -\x01\x0c\x43\x84\x70\x8a\xf0\x4d\xf1\xc8\xd9\xf6\x0b\x02\x18\xb2\ -\x85\x70\xb4\x20\x4e\x15\xbe\x91\xae\x33\x08\x60\x10\xc2\xa1\xb7\ -\xe1\xa5\xe1\x9b\x72\xeb\x15\xbe\xf0\x7f\xfb\x2e\x01\xfc\x19\x12\ -\xeb\xc3\x83\x87\x54\x21\xbc\x3b\x3f\x6d\x2e\x7c\x73\x7c\xce\x2b\ -\x7c\x41\x00\x43\xb1\x10\xae\x15\xc4\x73\xc3\x37\xd7\x0b\x56\xc2\ -\x17\x04\x30\x54\x09\xe1\x92\x41\x3c\x27\x7c\x73\xbe\xd9\x2c\x7c\ -\x41\x00\x43\xf5\x10\x7e\x1e\xc4\x39\xc2\x78\x4a\xf8\xe6\xfe\x71\ -\x22\xc1\x0b\x02\x18\xc2\x85\xf0\x6b\x61\xbc\x34\x90\x3f\x0a\xdf\ -\x92\x3f\xbf\x2b\x7c\x41\x00\x43\xf8\x10\x7e\x2f\x90\x3f\x1b\xca\ -\x2f\xc3\xb7\xe6\x2f\xcb\x10\xbe\x20\x80\x21\x79\xb0\x9c\x9d\x9d\ -\x3d\xec\x6e\x6f\x8a\xfe\xbd\x9f\xf9\x91\xa6\x93\x20\x3f\xf6\xb4\ -\x3e\xfe\xb2\xda\xdd\xdd\x2b\x16\xf8\x04\x3f\x07\x0c\x33\x42\x06\ -\xd7\x05\x6c\xc0\x50\x31\x6c\x4a\x6f\xc3\x82\x17\x6c\xc0\x80\xf0\ -\x11\xbe\x60\x03\x06\xdb\xb0\xe0\x05\x01\x0c\x82\x58\xf0\x02\x02\ -\x18\x04\xf1\x12\x17\x97\xd7\xab\xed\x76\xeb\xc6\x82\x00\x86\x76\ -\x82\x6b\xb5\x5a\xad\xbe\x9f\x7f\x6b\xfa\xeb\x07\x04\x30\x34\x1f\ -\x64\xd1\xc3\x58\xe8\x82\x00\x06\x61\x2c\x74\x41\x00\x03\xf9\x83\ -\xaf\x54\x20\x0b\x5c\x10\xc0\xc0\x07\xc1\xb8\x24\x94\x05\x2d\x08\ -\x60\x40\x88\x02\x2f\xf8\x4d\x58\x00\x20\x80\x01\x40\x00\x03\x00\ -\x02\x18\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\x18\x00\ -\x04\x30\x00\x20\x80\x01\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\ -\x08\x60\x00\x40\x00\x03\x80\x00\x06\x00\x04\x30\x00\x08\x60\x00\ -\x40\x00\x03\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\ -\x80\x00\x06\x00\x01\x0c\x00\x08\x60\x00\x10\xc0\x00\x80\x00\x06\ -\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\x01\x0c\ -\x00\x02\x18\x00\x10\xc0\x00\x20\x80\x01\x00\x01\x0c\x00\x02\x18\ -\x00\x04\x30\x00\x20\x80\x01\x40\x00\x03\x00\x02\xb8\x9e\xed\x76\ -\xeb\xfb\x00\xcc\x0b\x04\x30\x00\x08\x60\xc0\xe6\x03\x08\xe0\xcf\ -\xba\xba\xba\xda\x1b\x69\x28\x4d\xfd\xfa\xa7\x5e\x1f\x75\xe2\xfa\ -\xf8\x3e\xcd\x0b\x04\x30\x00\x08\xe0\x9e\xb4\x7a\xaa\xf5\x48\xd1\ -\xb5\x56\x2b\xae\xa5\x1a\x10\xc0\x00\x30\x24\xcf\xe9\x5f\x38\x3b\ -\x3b\x7b\x98\xfa\x67\x36\x9b\x4d\xd7\xa7\x59\x9f\xe7\x2c\xaf\x93\ -\x96\x6a\x64\x6e\xad\x8c\x58\x27\xe6\x85\x3a\xb0\x01\x03\x80\x00\ -\x1e\x4f\x2b\x9f\x91\xf8\x2c\xc7\xb5\x57\x2b\xae\xad\x1a\x10\xc0\ -\x61\xcd\x7d\x7c\x12\xbd\x58\xe7\x7e\x7d\x1e\x27\xb9\x2e\xae\x87\ -\x79\xa1\x0e\x04\xb0\x13\xa3\x93\xac\xfa\xf0\x75\xaa\x07\xf7\xbf\ -\x1b\x4e\x2b\x6f\x98\xf3\x72\xc5\xa3\x48\x2f\x59\x2c\x69\x26\xa7\ -\xd9\x3c\x75\x12\xf9\x25\x1c\x2f\xdd\x98\x17\xe6\x85\x0d\xd8\xc9\ -\xd6\x49\x56\x7d\xf8\xba\xd4\x83\xfb\x6f\x03\x76\xaa\x6d\xef\x64\ -\xbb\xb4\x99\x9c\x66\xf3\xd7\x49\x0f\x9b\x8f\x3a\x31\x2f\xd4\xc1\ -\x7c\xfb\x2e\x41\xfe\xa2\x2e\xd9\x58\x4e\xb1\x6d\xd5\x47\x84\x10\ -\x56\x33\xe6\x05\x36\xe0\x2e\x4f\xb5\xa5\x4e\xb8\x29\x1b\xc9\x69\ -\xb6\x6c\x9d\xb4\xba\xf9\xa8\x13\xf3\x42\x1d\xd8\x80\x87\x3e\xe1\ -\x3a\xc1\xaa\x0b\x75\xa3\x2e\xdc\x77\x1b\xb0\x53\x6d\xa1\x53\x6e\ -\xce\x26\x72\x9a\xad\x5f\x27\x2d\x6c\x3e\xea\xc4\xbc\x50\x07\x02\ -\xb8\x8b\xa6\x8a\x42\x33\xc5\xaa\x93\xa8\x9b\x8f\x3a\x31\x2f\xd4\ -\x81\x00\xd6\x54\x9a\x69\x98\x3a\x89\xb2\xf9\xa8\x13\xf3\x42\x1d\ -\x08\x60\x4d\xa5\x99\xd4\x89\x3a\x51\x07\xea\x40\x00\x6b\x2a\xcd\ -\x84\x3a\x41\x1d\x20\x80\x35\x95\x66\x52\x27\xea\x44\x1d\xa8\x03\ -\x01\xac\xa9\x34\x93\x3a\x51\x27\xa8\x03\x04\xb0\xa6\xd2\x4c\xea\ -\x44\x9d\xa8\x03\x75\x20\x80\x35\x95\x66\x52\x27\xea\x44\x1d\xa8\ -\x03\x01\x4c\xd7\x8d\xa5\x91\xd4\x89\x3a\x51\x07\xea\x40\x00\x6b\ -\x2c\x8d\x84\x3a\x41\x1d\x08\x60\x97\xa0\xcf\xc6\xd2\x48\xea\x44\ -\x9d\xa8\x03\x75\x20\x80\x35\x56\xc1\xc6\xd2\x48\xea\x44\x9d\xa8\ -\x03\x75\x20\x80\x29\xd4\x5c\x9a\x48\x9d\xa8\x13\x75\xa0\x0e\x04\ -\x30\x05\x1a\x4c\x03\xa9\x13\x75\xa2\x0e\xd4\x01\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x82\x7f\x01\xc1\xb1\x55\ -\x00\x01\xa1\x33\xe7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ -\x82\ -\x00\x00\x09\x40\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ -\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x03\x0d\x0e\x20\x00\x76\xd4\x68\x29\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x08\xa8\x49\x44\x41\x54\x78\xda\xed\xdd\x4b\x6e\xdb\x48\x14\ -\x40\x51\x32\xe0\x26\xb4\x0c\xed\x8f\x43\xee\x4f\xcb\xd0\x32\xe8\ -\x91\xe0\x20\x08\x0c\x89\xe6\xe7\x7d\xce\x19\x35\xd0\xdd\xe8\x36\ -\xab\x52\x97\xaf\xe4\x38\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x6d\xf4\x08\x00\x8e\ -\xf1\x7c\x0c\xeb\xeb\xaf\x6f\x77\xe7\x2d\x02\x0c\x70\x4a\x74\x7f\ -\x22\xc8\x4c\x1e\x01\xc0\x79\xe1\x85\x97\x3f\x1e\x01\x80\x60\x23\ -\xc0\x00\x62\x8a\x00\x03\x00\x02\x0c\x60\x72\x46\x80\x01\x10\x51\ -\x04\x18\x40\xc0\x11\x60\x00\xf1\x04\x01\x06\x00\x01\x06\xc0\x24\ -\x8d\x00\x03\x88\x26\x02\x0c\x20\xe8\x74\xe1\x67\x41\x27\xb0\x2c\ -\x8b\x5f\x98\x70\x80\x79\x9e\x37\xfd\x81\x08\x62\x89\x00\x8b\x2e\ -\x00\x49\xb9\x82\x16\x5f\x20\x08\x93\xb5\x00\x23\xbe\x80\x48\x22\ -\xc0\xe2\x0b\x80\x00\x23\xbe\x60\xfa\x35\x61\x23\xc0\x00\x20\xc0\ -\x00\x98\x82\x11\xe0\x3c\x5c\x3f\x83\x28\x22\xc0\x00\x80\x00\x03\ -\xf4\x9c\x7e\x4d\xdc\xf5\xf9\x49\x58\x49\x6d\xfd\x11\x7a\x00\x98\ -\x80\x11\x5f\x30\xfd\x9a\x82\x05\x18\xf1\x05\x40\x80\x01\x40\x80\ -\x01\x3a\x8a\x70\x05\xec\x1a\x5a\x80\x01\x00\x01\x06\xe8\x33\x79\ -\x9a\x82\x05\x18\x00\x10\x60\x00\x10\x60\x80\x32\x22\x5e\xf9\xba\ -\x86\x16\x60\x00\x40\x80\x01\x4c\x9a\x08\x30\x00\x5e\x0e\x10\x60\ -\x00\x10\x60\x00\x13\xa6\x29\x18\x01\x06\x00\x01\x06\x30\x59\x22\ -\xc0\x00\x78\x59\x40\x80\x01\x04\x0d\x01\x06\xc0\x4b\x03\x02\x0c\ -\x00\x02\x0c\x60\x92\x04\x01\x06\xf0\xf2\x80\x00\x03\x08\x18\x08\ -\x30\x80\x97\x08\x04\x18\x00\x04\x18\xc0\xe4\x08\x02\x0c\x80\x97\ -\x09\x01\x06\x10\x2c\x10\x60\x00\xc8\x6c\xf2\x08\x00\x13\x6e\x8d\ -\xaf\xf9\x76\x1f\x46\xab\x2f\xc0\x00\xc2\x99\xe0\xf9\x89\xb6\x00\ -\x03\xe2\x89\x68\x0b\x30\xe0\x30\x86\xbd\xf7\x89\x70\x0b\x30\x20\ -\xbe\x98\xb6\x05\x18\x10\x5f\xf8\x64\x6f\x56\x89\xb2\xdf\x86\x04\ -\x0e\x38\xf1\xc5\x9e\x15\x60\xc0\x41\x06\x3d\xf6\xae\x00\x03\x20\ -\xc2\x02\x0c\x00\x3d\x22\x2c\xc0\xe0\xe0\x02\x04\x18\x00\x04\x18\ -\x00\xc2\xcb\x7a\x9b\x23\xc0\xd0\x94\x9f\x4a\x04\x02\x0c\x88\x30\ -\xb4\xdb\xc7\x02\x0c\x0e\x2f\x11\xc6\xfe\x15\x60\xe0\xaa\x43\x4c\ -\x88\x11\x5f\x01\x06\x1c\x68\x50\xfe\x85\x51\x80\x01\x11\xc6\xfe\ -\x14\x60\xc0\x21\x07\x3d\xf6\xa5\x00\x03\x22\x8c\xfd\x28\xc0\x80\ -\x43\x0f\x7a\xec\xc3\xc9\xd2\x02\xef\x1c\x7e\x7e\x76\x34\xc2\x6b\ -\x02\x06\x1c\x86\xd8\x6f\x02\x0c\x38\x14\xc1\x3e\x13\x60\xc0\xe1\ -\x88\xfd\x25\xc0\x50\xd6\xba\xb6\x8e\x90\x08\x73\xc4\x9e\xea\xb6\ -\xaf\x04\x18\xb6\x18\xc7\x55\x84\x45\x18\x7b\x49\x80\x41\x84\x4d\ -\x2d\x88\xaf\x00\x83\x08\x3b\x44\xc1\xbe\x11\x60\x10\x61\x87\x29\ -\xf6\x8b\x00\x83\x08\x3b\x54\xe9\xbe\x47\xec\x13\x01\x06\x11\x16\ -\x61\xec\x0d\x01\x06\x11\x36\xe5\x20\xbe\x02\x0c\x88\xb0\x43\x17\ -\xfb\x40\x80\x41\x84\x1d\xbe\xe4\x5c\x7b\xeb\x2f\xc0\x20\xc2\x22\ -\x8c\x35\x17\x60\x10\x61\x07\x32\xd6\x5a\x80\x01\x11\x76\x30\x63\ -\x8d\x05\x18\x44\xb8\xfe\x01\xed\x90\x16\x5f\x04\x18\x44\xd8\x61\ -\x8d\x97\x2a\x01\x06\x11\x16\x61\xac\xa1\x00\x03\x22\xec\x00\xc7\ -\xda\x09\x30\x88\xb0\x83\x1c\x6b\x56\xc9\xe4\x11\xc0\xc5\x11\x1e\ -\xc7\xd5\xc3\xf8\x3e\xd0\x9f\x8f\xc1\xf3\x10\x5e\x13\x30\x60\x12\ -\x76\xc0\x63\x6d\x04\x18\x44\xd8\x41\x8f\x35\x11\x60\x40\x84\x1d\ -\xf8\xd6\x02\x01\x06\x11\x76\xf0\x63\x0d\x04\x18\x10\x61\x01\xc8\ -\xff\xdc\x3d\x7b\x01\x06\x11\x16\x03\x31\xf0\xd2\x23\xc0\x80\x08\ -\x0b\x83\x67\x8c\x00\x83\x08\x37\xe2\xf7\x08\x8b\xaf\x00\x03\x22\ -\x0c\x08\x30\x88\x30\xfc\x9e\x1b\x06\x01\x06\x44\x18\x04\x18\x10\ -\x61\xd3\x19\x08\x30\x88\xb0\x49\x18\x04\x18\x10\x61\x6a\x71\xd3\ -\x20\xc0\x80\x08\x8b\x02\x02\x0c\x88\x30\x20\xc0\x80\x08\x83\x00\ -\x03\x22\x4c\x2d\xae\xfc\x05\x18\x10\x61\x31\x40\x80\x01\x11\x06\ -\x04\x18\x10\x61\x10\x60\x40\x84\xa9\xc5\xd5\xbf\x00\x03\x8d\x23\ -\x2c\x02\x08\x30\x20\xc2\x80\x00\x03\x22\x0c\x02\x0c\x88\x30\x25\ -\xf9\x08\x40\x80\x81\x86\x11\x76\xf8\x23\xc0\x80\x08\x03\x02\x0c\ -\x88\x30\x08\x30\x20\xc2\x94\xe6\xa3\x00\x01\x06\x1a\x45\xd8\xa1\ -\x8f\x00\x03\x22\x0c\x08\x30\x20\xc2\x20\xc0\x80\x08\x1f\xc0\xf5\ -\x73\x3c\xd6\x44\x80\x01\x93\x30\x08\x30\x20\xc2\x80\x00\x03\x22\ -\x0c\x02\x0c\x88\xf0\x16\x3e\x6b\x8c\xcb\xda\x08\x30\x60\x12\x86\ -\x12\x26\x8f\x00\xf8\x31\xc2\xe3\x68\xf2\xd9\xe0\x76\x1f\x46\xd3\ -\x23\x26\x60\xc0\x24\x7c\x62\x78\xff\x8e\xef\xbf\x31\x06\x01\x06\ -\x42\x45\x38\xfb\x94\xf8\xbf\xf0\x7e\xf2\xf7\x33\x30\xc9\x0b\x30\ -\x60\x12\x0e\x17\xdf\x23\xfe\x59\x6a\xf3\x19\x30\xf0\x7e\x84\xd9\ -\x25\xa6\xaf\x7f\xcf\x44\x69\x02\x06\xe0\xc3\x80\xee\x31\xc9\x9a\ -\x86\x05\x18\xe0\x52\x99\x26\xc1\xbd\xa3\x99\xed\xb3\x61\x53\xfb\ -\x7e\x5c\x41\x03\x04\x98\x56\x5d\x4b\x9b\x80\x01\x38\x39\xbe\x57\ -\xfd\xb7\x30\x01\x03\xb4\x0f\xaf\x69\xd8\x04\x0c\x70\xaa\x88\x91\ -\x89\xf2\xb9\xac\x69\x58\x80\x01\x4c\xbd\xcd\x5f\x06\xa2\xbf\x34\ -\x09\x30\x40\xe2\xf0\x46\x9e\x38\x4d\xc3\xf5\xf8\x0c\x18\x68\x3d\ -\x49\x65\x0a\x9b\xcf\x86\x4d\xc0\x00\x65\xa6\x5e\xff\xdf\x08\x30\ -\xc0\x89\x01\xcb\x1e\xb1\xab\xbf\x06\x53\xb8\x00\x03\xb4\x9e\x1e\ -\x2b\xbc\x4c\x08\x30\x40\xe1\x09\xaa\x7a\xa8\x44\x38\x1f\xdf\x84\ -\x05\x98\x78\x8b\x7d\xad\xae\x87\x4d\xc0\x00\xe2\x5b\xf8\xeb\x16\ -\x7a\x13\x30\x80\xf0\x9a\x86\x4d\xc0\x00\x57\x4e\x4e\xe2\xeb\x79\ -\x98\x80\x01\x84\xc6\x34\x8c\x09\x18\xa8\x1b\x17\xf1\xbd\xee\x25\ -\x45\xd4\x05\x18\x10\x14\xbc\xb0\xa4\xe2\x0a\x1a\x10\xde\xc6\xcf\ -\xd0\x04\x6b\x02\x06\x30\xbd\x79\x99\x11\x60\x80\x68\x87\xbe\x50\ -\xc4\x7c\xb1\xb1\x2e\x02\x0c\x14\x8d\xb0\xa9\x37\xee\x8b\x91\x75\ -\x11\x60\xa0\xe8\x81\xef\x80\x8f\x3b\x0d\x5b\x1b\x01\x06\x0a\x46\ -\xd8\xd4\x1b\xfb\xe5\xc8\xda\xec\xc3\x77\x41\x03\xe1\x27\x61\xae\ -\x5d\x97\xe7\x63\x58\xad\x91\x09\x18\x00\x2f\x48\x02\x0c\x00\x08\ -\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\xd0\x9d\xdf\x86\x04\ -\x90\xdc\xb2\x2c\x6f\xff\x81\x0a\xf3\x3c\xfb\x8e\x66\x13\x30\x00\ -\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ -\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ -\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x7b\x04\x00\x20\xc0\x00\ -\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ -\x08\x30\x00\x08\x30\x00\x20\xc0\xe9\x2c\xcb\xb2\x7a\x0a\x80\x33\ -\x41\x80\xf1\x0b\x0e\x70\x16\xb0\xc1\xe4\x11\xf8\x85\x07\x80\x09\ -\x18\x00\x04\x18\x00\x38\xc6\xe8\x11\xc4\xe0\x4a\x19\x38\xda\x3c\ -\xcf\xce\x7c\x13\x30\x00\x08\x30\x00\x70\x32\xd7\x11\x81\xb8\x86\ -\x06\x8e\xe2\xfa\x59\x80\x11\x61\x40\x7c\x11\x60\x11\x06\xc4\x17\ -\x01\x46\x84\x01\xf1\x15\x60\xc4\x18\x10\x5d\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x32\xf8\x02\x52\x31\x53\x51\x9b\ -\x36\x0b\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x11\x78\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ -\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x03\x0d\x0e\x20\x1a\x8b\xb6\x91\x53\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x10\xe0\x49\x44\x41\x54\x78\xda\xed\xdd\xd1\x75\x1b\xc7\x12\ -\x45\x51\x0c\x97\x63\x61\x48\x0c\x40\x81\x31\x00\x85\xa4\x60\x08\ -\x7f\xd8\xfc\xb0\x4d\x49\xa0\x39\xd3\x5d\x55\x77\xef\x00\xde\x32\ -\x81\xae\x3a\xd3\x00\xa9\x77\xbb\x01\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\xcd\x1c\x5e\x02\xa8\xe1\x7e\xbb\xdd\x17\x0c\xbc\ -\x99\x07\x01\x06\x41\x6d\xb0\x20\xec\x08\x10\x60\x10\x58\x81\x06\ -\x01\x06\xa1\x45\x98\x41\x80\x41\x68\x85\x19\x04\x18\x04\x17\x41\ -\x06\x01\x06\xb1\x15\x65\x10\x60\x10\x5c\x04\x19\x04\x18\xd1\x45\ -\x8c\x41\x80\x41\x70\x11\x64\x04\x18\x44\x17\x31\x06\x01\x46\x74\ -\x41\x8c\x11\x60\x10\x5d\xc4\x18\x04\x18\xd1\x05\x31\x46\x80\x41\ -\x74\x11\x63\x10\x60\x84\x17\x84\x18\x01\x46\x74\xbd\x0a\x88\x31\ -\x08\x30\xc2\x0b\x42\x8c\x00\x23\xbc\x20\xc4\x08\x30\x88\x2e\x88\ -\x31\x02\x8c\xf0\x82\x10\x23\xc0\x20\xbc\x20\xc4\x08\x30\xc2\x0b\ -\x42\x8c\x00\x23\xbc\x20\xc4\x20\xc0\x08\x2f\x08\x31\x02\x8c\xf0\ -\x82\x10\x83\x00\x23\xbc\x20\xc4\x08\x30\xc2\x0b\x42\x8c\x00\x23\ -\xbc\x80\x10\x23\xc0\x88\x2f\x88\x30\x02\x8c\xf0\x02\x42\x8c\x00\ -\x23\xbc\x20\xc4\x08\x30\xc2\x0b\x08\x31\x02\x8c\xf8\x82\x08\x23\ -\xc0\x08\x2f\x20\xc4\x08\xb0\xf8\x02\x22\x8c\x00\x23\xbc\x80\x10\ -\x0b\x30\xe2\xcb\xe0\x65\xeb\x7c\x38\x17\x08\x30\x16\xab\xe5\xe9\ -\x4c\x21\xc4\x02\x8c\xf8\x62\x31\x3a\x73\xce\x1a\x02\x8c\x25\x68\ -\xf9\x39\x93\x38\x8b\x02\x8c\x45\x67\xc1\xe1\xac\x3a\xa3\x08\xb0\ -\x65\x66\x99\x59\x66\xce\x30\xce\xae\x00\x63\x71\x59\x5a\x38\xd7\ -\xce\x33\x02\x6c\x49\x61\x41\x39\xeb\xce\xb8\x33\x2e\xc0\x58\x46\ -\x16\x12\xce\xbf\x73\x8f\x00\x5b\x3e\x96\x0f\xe6\xc1\x1c\x20\xc0\ -\x58\x36\x96\x0d\xe6\xc3\x5c\x78\x6f\xb0\x58\x2c\x17\xcc\x8c\x59\ -\x41\x80\x2d\x12\x2c\x12\xcc\x90\xd9\x11\x60\x2c\x0e\xcb\x03\xf3\ -\x64\x8e\x10\x60\xcb\xc2\xb2\x00\xf3\x65\xae\x04\x18\x8b\xc1\x82\ -\xc0\xbc\x99\x33\x04\xd8\x32\xb0\x10\xc0\xec\x99\x39\x01\xc6\x02\ -\xb0\x00\x30\x8b\x66\x10\x01\x36\xf0\x86\x1e\xcc\xa5\x79\x14\x60\ -\x43\xee\xd0\x39\x77\x98\x51\xb3\x89\x17\xdb\x60\x1b\x6e\x30\xaf\ -\xe6\x54\x80\x0d\xb3\x81\x06\xb3\x6b\x66\x05\x18\xc3\x6b\x88\x41\ -\x88\x11\x60\x03\x6b\x70\xc1\x4c\x9b\x65\x01\xc6\xa0\x1a\x56\xcc\ -\xb7\xb9\x46\x80\x0d\xa7\x01\x05\xb3\x6e\xc6\x05\xd8\x40\x1a\x4a\ -\x30\xf7\xe6\x1d\x01\x36\x84\x86\x11\xcc\xbf\xb9\x17\x60\xc3\x67\ -\x00\xc1\x2e\xb0\x03\x10\x60\x03\x67\xe8\xc0\x5e\xb0\x0f\x04\xd8\ -\x90\x19\x36\xb0\x1f\xec\x05\x01\xc6\x70\x19\x30\xb0\x2b\xec\x08\ -\x01\x36\x50\x06\x0b\xec\x0c\xbb\x42\x80\x0d\x92\xf0\x02\xf6\x87\ -\xbd\x21\xc0\x86\xc7\x10\x81\x3d\x62\x7f\x08\xb0\xa1\x31\x3c\x80\ -\x08\xf3\x80\x3f\xbc\x04\x18\x18\xd8\x33\x73\xfe\x7f\xc2\xdd\x80\ -\xf1\xb4\x0a\xd8\x2f\xf6\x8a\x00\x1b\x0e\x43\x02\xf6\x8c\xfd\x22\ -\xc0\x86\x42\x78\x01\x3b\xc7\xae\x11\x60\x83\x60\x20\xc0\xee\xb1\ -\x73\x04\xd8\x00\x18\x04\xc0\x0e\xb2\x7b\x04\xd8\xc1\x77\xf8\xc1\ -\x3e\xb2\x87\x04\xd8\x61\x77\xe8\x01\x7b\xc9\x3e\xfa\x85\x27\x2f\ -\xc1\xe8\xa7\x2b\x87\x1d\xcc\x31\x6e\xc0\x9e\x32\x0d\x2d\x90\xbe\ -\xa3\xec\x26\x01\x16\x5f\xc0\xae\xb2\xa3\x04\xd8\x81\x76\xb0\x01\ -\x11\x16\x60\x07\xd9\x61\x06\xec\x2f\x7b\xeb\x72\x7e\x09\x4b\x7c\ -\x01\x73\x8f\x1b\xb0\xa7\x47\x43\x08\x24\xed\xb2\xe4\x1d\x76\x38\ -\xb0\x0e\x2e\x60\xa7\xd9\x65\x02\xec\xa0\x3a\xb0\x80\x08\x47\xf0\ -\x1d\xb0\x83\x0a\xd8\x0b\xb8\x01\x7b\x42\x34\x64\x40\xea\x9e\x4b\ -\xdb\x6f\x87\x43\xe9\x70\x02\xf6\x9d\x3d\x27\xc0\x0e\xa3\x43\x09\ -\x88\x70\xc4\xbe\xf3\x1d\xb0\xc3\x08\xd8\x1b\xb8\x01\x7b\x0a\x34\ -\x44\x80\x1d\x98\xb1\xfb\x0e\x07\xcf\x01\x04\x44\xd8\x0e\x5c\xcf\ -\x47\xd0\x0e\x1e\x60\x9f\xe0\x06\xec\x89\xcf\xb0\x00\xf6\x62\xc6\ -\x3e\x3c\x1c\x32\x87\x0d\x10\x61\x7b\x71\x3d\x1f\x41\x03\x80\x1b\ -\xb0\xdb\xaf\x23\x09\xd8\x93\x19\xfb\xf1\x70\xa8\x1c\x2e\x40\x84\ -\xed\xc9\xf5\x7c\x04\xed\x50\x01\xf6\x0e\x6e\xc0\x79\xb7\x5f\x43\ -\x00\xd8\x9d\x99\x3b\xf3\x70\x80\x1c\x24\x40\x84\xed\xce\xf5\x7c\ -\x04\xed\x00\x01\xf6\x91\x7d\x24\xc0\x39\xb7\x5f\x00\xb2\xf7\xfe\ -\xe1\x4d\xf0\xb4\x09\xd0\x71\xa7\x76\xdf\xa5\x3e\x82\x76\x60\x00\ -\xec\x27\x37\xe0\xd9\xb7\x5f\x87\x1b\xb0\x5f\xed\x55\x37\x60\x00\ -\x70\x03\x76\xfb\x05\xb0\x67\xb3\xf6\xab\x1b\xb0\xc3\x01\x60\x6f\ -\xb9\x01\xcf\xbb\xfd\x3a\xc4\x80\x9b\xb0\x5d\xdb\xfe\x06\xec\x6f\ -\x7e\x01\x98\xd2\x07\x1f\x41\x7b\x22\x03\xb0\xc7\xf6\xbc\xb6\x9e\ -\x6e\x1c\x5a\x80\x19\x3b\xb8\xd3\xee\x75\x03\x16\x5f\x00\x7b\x4d\ -\x80\x67\xdc\x7e\x01\xd0\x0b\x37\x60\x4f\x89\x00\xf6\x5b\xcd\xd7\ -\xd3\xd3\x8c\xc3\x79\x9e\xe7\x97\xd7\x0f\xdf\xaf\x1f\xdf\xbf\x19\ -\x5c\x9c\x61\xb7\x4c\xfb\x58\x80\x05\xf8\xc4\x77\xe8\xe9\x76\x3b\ -\xde\x7e\xb6\xb4\x3e\x5a\x62\xcf\x2f\xaf\x77\xcb\x8c\x4a\xc1\x7d\ -\x3f\x97\x8f\x9e\xe1\xf7\x73\x2f\xc0\xf6\xf1\xd8\x00\x8b\x6f\xcf\ -\x9b\xc2\xa3\x44\x18\x67\x58\x84\x93\xf7\xb2\xef\x80\xc5\x77\xcb\ -\xe2\x3a\xeb\x7f\x03\x9c\x61\x7b\xaf\xab\xb2\x01\xf6\x9b\xcf\xb3\ -\x17\x97\x05\x86\x33\x4c\x7a\x47\xdc\x80\x3d\x05\x6e\x5f\x36\x16\ -\x18\xce\xb0\xfd\xe7\x06\xec\xa9\x85\x4d\x4b\x46\x84\x71\x86\x49\ -\xeb\x89\x1b\xb0\xa7\xbf\x32\xcb\xc5\x02\xc3\x19\xb6\x07\xdd\x80\ -\x3d\xad\x38\x74\xff\x7c\x57\x96\x9d\x13\x11\xa6\xff\xb9\xba\xc7\ -\x5d\x6c\x0e\x7f\x51\xe3\x06\xcc\x65\xe3\xb5\xf4\xef\x1d\x45\x98\ -\xde\xe7\x29\xf7\xef\x83\xf9\xf4\x83\x8b\xa7\x14\xb7\xdf\x9a\x41\ -\xf4\x77\xc2\x38\xbb\xbd\x54\xdf\xe1\xd5\x76\xb7\x1b\x30\x96\x27\ -\xce\x0f\x24\xdf\x80\xdd\x7e\x2d\x31\xb7\x09\x9c\x5b\xb7\xe0\xa4\ -\x1d\xee\x06\x8c\x65\x8a\xf3\x02\x02\xec\xf6\x8b\xa5\x8a\x73\x62\ -\x4f\x0a\xf0\x32\xfe\x51\x6f\x2c\x57\x9c\x0f\x11\x4e\xeb\x8d\x1b\ -\x30\x96\x2c\xce\x05\x24\x06\xd8\xed\x17\xcb\x16\xe7\xc1\x2d\x38\ -\xb1\x3b\x6e\xc0\xfc\x52\xd5\xdf\xe4\xb4\x74\xa9\x7c\x0e\xfc\xe6\ -\x3e\xe5\x03\xec\xf6\x8b\x08\xe3\xfd\x77\x0b\x4e\xed\x8f\x1b\x30\ -\xad\x9f\xe6\x2d\x61\xf1\x35\x2f\xb8\x01\x7b\x7a\xb3\xec\xfc\xf7\ -\xe1\xfd\x76\x1e\xed\xd1\xfa\x01\xf6\xff\xf9\xeb\x06\x6c\xe9\x31\ -\xf1\x7d\x76\x03\xee\x63\x77\x87\xdc\x80\x3d\xb5\x89\x30\xe2\x2b\ -\xbe\xf6\x69\x4a\x80\xdd\x7e\x45\x58\x84\x11\x5f\xd2\x6f\xc1\x6e\ -\xc0\x9e\xd6\x44\x18\xef\xa7\xf8\xda\xab\x02\x8c\x08\x8b\x30\xe2\ -\x8b\x00\x8f\xbb\xee\x23\xc2\x88\xaf\xf8\x52\xa5\x4b\x6e\xc0\xff\ -\xe2\x63\x12\x11\xc6\xfb\x26\xbe\xf6\xab\x00\x23\xc2\x22\x2c\xbe\ -\xce\x3d\x73\x1f\x48\xe6\x5f\xf3\x3d\x9d\x59\x9a\x96\xa6\x73\xe4\ -\x1c\xd5\x51\xb5\x05\xab\x1b\xe0\x06\x8c\x9b\x30\xde\x1f\xf1\x65\ -\x03\x01\x76\xfb\x15\x61\xbc\x2f\xe2\x6b\xdf\x4e\x0e\xb0\xdf\x7e\ -\x16\x61\xcb\x1e\xf1\xa5\xb2\xd5\x9d\x72\x03\x46\x84\xf1\x3e\x88\ -\x2f\x93\x6f\xc0\x95\xf9\x38\x44\x84\xf1\xfa\x8b\xaf\xbd\x3b\x32\ -\xc0\x3e\x7e\x16\x61\x11\x40\x7c\xe9\x60\x65\xaf\xe2\x6f\xc0\x9e\ -\xc2\x2c\x31\x11\xf6\x7a\x8b\xaf\xfd\x3b\xf6\x06\x8c\x08\x8b\x02\ -\xe2\x0b\x8b\x03\xec\xe3\x67\x44\x18\xf1\xa5\x93\x55\xdd\x8a\xbe\ -\x01\xfb\xf8\xd9\x72\x13\x61\xaf\xab\xf8\xda\xc3\x63\x6f\xc0\x20\ -\xc2\xe2\xeb\x5c\x82\x00\x63\xd9\x89\xb0\xd7\x51\x7c\xa9\x72\xfb\ -\xbf\x4e\xe5\xef\x7f\x7d\xfc\x6c\x39\x5b\xce\xde\x5f\xef\x6f\x1d\ -\x15\x7b\x71\x75\x27\xdc\x80\xb1\xfc\xdc\x84\xc5\x17\x36\x10\x60\ -\x2c\x41\x11\x16\x5f\xd8\x73\xc3\xbe\x86\x8f\x9f\xb1\xb4\xbd\x8f\ -\xde\x47\xba\x77\xe3\xca\x5e\xb8\x01\x63\x29\xba\x09\x8b\x2f\x6c\ -\x20\xc0\x58\x8e\x22\x2c\xbe\x20\xc0\xd7\xf3\xf1\xb3\x25\x29\xc2\ -\xe2\x8b\xfd\x3c\x36\xc0\xfe\xf9\x49\x44\x58\x7c\x9d\x27\x26\xb8\ -\xb2\x67\x3e\x82\xc6\xd2\x14\x61\xf1\x85\x29\x37\xe0\xaa\x7c\xfc\ -\x2c\xc2\x22\x2c\xbe\xd8\xd3\x02\x0c\x22\x2c\xbe\xe2\x8b\x1b\x30\ -\x58\xa6\x22\x2c\xbe\xd0\x3a\xc0\x7e\x01\x0b\x11\x16\x5f\xe7\x84\ -\x49\xae\xea\x5a\xcc\x0d\xd8\xf7\xbf\x22\x2c\x52\xe2\x8b\x7d\x3d\ -\xfa\x06\x0c\x22\x3c\x2b\xc2\xe2\x0b\x02\x0c\x22\xec\xe7\x10\x5f\ -\x04\xf8\x23\xbe\xff\xc5\xd2\x9d\x13\x61\xf1\x85\x6b\xfb\x16\x71\ -\x03\xf6\xfd\xaf\x08\x8b\x98\xf8\x62\x6f\x8f\xbe\x01\x83\x25\xdc\ -\x3f\xc2\xe2\x0b\x02\x0c\x22\xec\xbf\x53\x7c\x11\x60\xb0\x94\x67\ -\xc7\x4d\x7c\x41\x80\x4f\xe5\xfb\x5f\x11\x16\x39\xf1\xc5\xfe\x1e\ -\x1d\x60\xbf\x01\x8d\x25\xdd\x33\x76\xe2\x0b\x7b\x3a\xe7\x23\x68\ -\x44\x38\x38\x7a\xe2\x0b\x03\x6e\xc0\x60\x69\xf7\x8a\x9f\xf8\x82\ -\x00\x83\x08\x8b\xaf\xf8\x22\xc0\x93\xf8\x05\x2c\x44\x58\x7c\xb1\ -\xc7\x05\x18\x2c\xf3\xed\x51\x14\x5f\x18\x16\x60\xbf\x01\x8d\xa5\ -\x5e\x3f\x8e\xe2\x0b\xb5\x7a\xe7\x06\x8c\x08\x07\x44\x58\x7c\x61\ -\xe8\x0d\x18\x44\xb8\x6e\x2c\xc5\x17\x04\x18\x2c\xfb\xc5\xd1\x14\ -\x5f\x10\xe0\xe5\xfc\x06\x34\xe9\x11\x16\x5f\xec\x73\x01\x06\xcb\ -\x7f\x71\x44\xc5\x17\x04\x18\x44\x60\x71\x84\xc5\x17\x04\x18\x44\ -\x78\x71\x84\xc5\x17\x82\x02\xec\x6f\x80\x11\xe1\x1a\x11\x16\x5f\ -\x58\xe3\xac\xee\xb9\x01\xc3\x80\x08\x8b\x2f\x04\xde\x80\x41\x84\ -\xf7\x46\x58\x7c\x41\x80\xcb\xf0\x27\x48\xa4\x44\x58\x7c\x49\x31\ -\x71\xaf\x7f\xf9\x07\xaa\xf8\x1d\xb0\x00\x73\xc5\x4d\x13\xf1\x65\ -\xaf\x4a\xbd\x39\xa3\x33\x3e\x82\x06\xf1\xf0\xfa\xc1\x06\x02\x0c\ -\x22\xe2\x75\x03\x01\x06\x31\xf1\x7a\x81\x00\x03\xa2\xe2\x75\x02\ -\x01\x06\x71\xf1\xfa\x80\x00\x83\xc8\xe0\x75\x01\x01\x06\xb1\xf1\ -\x7a\x40\x50\x80\xfd\x3b\xd0\x88\x8e\xd7\xc1\xab\x40\xa2\x33\xfa\ -\xe7\x06\x0c\xe2\xe3\xe7\x87\x6e\x37\xe0\x8a\xfc\x2b\x58\x88\x90\ -\x9f\x9b\x99\xa6\xed\x77\x37\x60\x10\x23\x3f\x2f\x08\x30\x88\x92\ -\x9f\x13\x04\x18\x10\x27\xf1\x05\x01\x06\x91\xf2\x73\x81\x00\x03\ -\x21\xb1\x12\x5f\x10\x60\x10\x2d\x3f\x07\x08\x30\x30\x3b\x5e\xe2\ -\x0b\x02\x0c\x22\xe6\xbf\x1b\x04\x18\x98\x1d\x33\xf1\x05\x01\x06\ -\x11\xf6\xdf\x09\x02\x0c\xfc\x7f\xcf\x2f\xaf\x77\xff\x9d\x80\x00\ -\x83\xa8\x89\x30\x08\x30\x88\xaf\xff\x6e\x10\x60\x40\xc4\x44\x18\ -\x04\x18\xc4\xcb\xcf\x01\x02\x0c\x04\x46\x4b\x84\x41\x80\x41\xac\ -\xfc\x5c\x20\xc0\x40\x56\xa4\x44\x18\x04\x18\xc4\xc9\xcf\x09\x02\ -\x0c\xe2\x9b\x15\x25\x11\x06\x01\x06\x31\xf2\x73\x83\x00\x83\x08\ -\xf9\xf9\x81\xc7\x7d\xf9\x1f\x5e\xbf\xdf\x6e\xf7\x82\x3f\x94\x7f\ -\x50\x1e\xf1\x59\xc4\xff\x81\x03\xab\x54\xea\xcd\x19\x9d\x71\x03\ -\x06\xf1\xf5\x7a\xc0\x06\x02\x0c\x62\xe3\x75\x01\x01\x06\x91\xf1\ -\xfa\x80\x00\x03\xe2\xe2\x75\x02\x01\x06\x51\xf1\x7a\x81\x00\x83\ -\x98\xe0\x75\x03\x01\x06\x11\xf1\xfa\x81\x00\x83\x78\x2c\xd0\xe1\ -\xef\x6f\x45\x18\x04\x18\x46\xc6\x57\x84\x41\x80\x41\x7c\x37\xdd\ -\x7c\x45\x18\x04\xb8\x8c\x8a\xff\x3c\x26\xe2\x7b\x45\x7c\x45\x98\ -\x14\x13\xf7\xfa\x97\x03\xec\xdf\x5d\x46\x7c\xf7\xc6\x57\x84\x61\ -\xad\xb3\xba\xe7\x23\x68\xc4\x77\xd0\x2f\x5c\x89\x30\x04\xdd\x80\ -\x41\x7c\x6b\xc4\x57\x84\x41\x80\x41\x7c\x37\xc5\x57\x84\x41\x80\ -\xc1\xf2\xdf\x14\x5f\x11\x06\x01\x06\x4b\x7f\x73\x3c\x45\x18\x04\ -\x78\x39\x7f\x8a\x44\x7a\x7c\x45\x18\xfb\x5c\x80\xc1\x92\xdf\x1c\ -\x4b\x11\x86\xa1\x01\xf6\xb7\xc0\x58\xee\xf5\x23\x29\xc2\x50\xab\ -\x77\x6e\xc0\x88\x6f\x40\x7c\x45\x18\x86\xde\x80\xc1\x32\xef\x13\ -\x45\x11\x06\x01\x06\xf1\xdd\x14\x43\x11\x06\x01\xbe\x94\xdf\x84\ -\x16\x5f\xf1\x15\x61\xec\x71\x01\x06\x4b\xbb\x5c\xfc\x44\x18\x06\ -\x04\xd8\x6f\x42\x63\x59\xf7\x8c\x9e\x08\xc3\x9e\xce\xb9\x01\x23\ -\xbe\x62\x27\xc2\xd0\xf9\x06\x0c\x96\x73\xef\xc8\x89\x30\x08\xf0\ -\xa9\xfc\x22\x96\xf8\x8a\x9b\x08\x63\x7f\x0b\x30\x88\xaf\x08\x8b\ -\x30\x08\x30\xe2\x2b\x66\x22\x0c\x23\x02\xec\x37\xa1\xb1\x7c\xfb\ -\xc7\x57\x84\x61\x4d\xdf\x22\x6e\xc0\xbe\x07\x16\x5f\xf1\x12\x61\ -\xec\xed\xd1\x37\x60\xb0\x6c\xe7\xc4\x57\x84\x41\x80\x41\x7c\xfd\ -\x5c\x22\x8c\x00\xff\x8e\xef\x81\x11\xdf\x99\x44\x98\x54\x57\x75\ -\x2d\xe6\x06\xec\x7b\x60\xf1\x15\x5f\x11\xc6\xbe\x1e\x7d\x03\x06\ -\xf1\x15\x61\xe7\x06\x04\x18\xf1\x15\x5f\x11\x06\x01\x06\xf1\x15\ -\x61\xe7\x08\xfe\x72\xd9\x00\x55\xfd\x0c\xdf\x2f\x89\x89\xaf\xf8\ -\x7a\xbf\xa8\xab\x5a\x3b\xae\x6c\x86\x1b\x30\x96\xb9\x65\xee\x26\ -\x0c\x1b\x08\x30\x96\xa4\xf8\x8a\x30\x08\xf0\xf5\xfc\x39\x92\xe5\ -\x28\xbe\x22\x8c\xfd\x3c\x3a\xc0\xbe\x6b\x45\x7c\x45\xd8\x79\xa3\ -\xb3\xab\x3b\xe6\x23\x68\x2c\x43\xf1\x15\x61\x98\x74\x03\xae\xcc\ -\xc7\xd0\x96\xa0\xf8\x7a\xdd\x44\xd8\x5e\x1e\x1d\x60\x1f\x43\x23\ -\xbe\x22\xec\x1c\xd2\xd1\x8a\x7e\xf9\x08\x1a\x4b\x4f\x7c\x45\x18\ -\xa6\xdd\x80\x2b\xf3\x31\xb4\x65\x27\xbe\x5e\x4f\x11\xb6\x8f\x05\ -\x18\xf1\x15\x0b\x11\x76\x3e\x11\xe0\x73\xf9\x1e\x18\xf1\x45\x84\ -\xe9\x64\x55\xb7\xa2\x6f\xc0\x3e\x86\xb6\xd4\xc4\xd7\xeb\x2c\xc2\ -\xf6\xf0\xd8\x1b\x30\xe2\x2b\x0a\x88\x30\x6c\x0a\xb0\x8f\xa1\xc5\ -\x57\x0c\x10\x61\x3a\x58\xd9\xab\xf8\x1b\xb0\x8f\xa1\xc5\x17\xaf\ -\xbf\x08\xdb\xbf\x63\x6f\xc0\x88\xaf\xe5\x8f\x08\xc3\x7f\x6e\xdb\ -\x9e\x76\xfe\x7e\x21\x2c\x64\xf1\xc5\xb9\x71\x6e\x82\x7b\xb0\xba\ -\x03\x6e\xc0\x58\xa2\x78\x5f\xdc\x84\xd9\x40\x80\x11\x5f\xbc\x3f\ -\x22\xcc\x9e\x1b\xf7\x5a\x3e\x86\x16\x5f\xcb\x1d\xe7\x29\x9b\x8f\ -\x9f\xdd\x80\xb1\x2c\xf1\x7e\xb9\x09\xb3\x8d\x00\x37\xb9\x9d\x5b\ -\x42\xe2\x2b\xc2\xce\xbf\x3d\x2b\xc0\xed\xae\xf9\x88\x2f\x22\x2c\ -\xc2\x54\xeb\x92\x1b\xb0\xa7\x33\xf1\xc5\xfb\x28\xc2\xf6\xab\x00\ -\x63\xd9\x88\x2f\x22\x8c\x00\x8f\xbb\xee\x23\xbe\x88\xb0\x08\x53\ -\xa5\x47\x6e\xc0\x1f\xf0\x31\x89\xf8\xe2\xfd\x15\x61\x7b\x75\x6c\ -\x80\xdd\x82\xc5\x57\x7c\x11\x61\x52\x6f\xbf\x6e\xc0\x9e\xd6\x46\ -\x2c\x3d\xf1\x75\x1e\xfd\xf7\xd9\xa7\x6e\xc0\xb8\x01\x5b\x76\x84\ -\xbf\xef\x6e\xc0\xb4\x08\x70\xf5\x8f\xa1\x3d\xb5\x59\xc2\x78\xff\ -\x99\xb9\x47\x2b\xf4\xc7\x0d\x98\x96\x4f\xf3\x96\x2f\x95\xcf\x81\ -\x5b\x30\x2d\x02\xec\x16\x8c\xf8\xe2\x3c\xb8\xfd\x26\x76\xc7\x0d\ -\x18\xcb\x16\xe7\x02\x52\x03\xec\x16\x8c\x25\x8b\xf3\xe1\xf6\x9b\ -\xd6\x1b\x37\x60\x2c\x57\x9c\x13\x10\x60\x4f\x73\x58\xaa\x38\x2f\ -\xf6\x65\x86\xc3\x9b\xf6\xe9\x17\x2c\x6e\xb8\x77\xfe\x46\xa7\x65\ -\x8a\x73\x2b\xbe\x53\xf7\xb7\x1b\x30\x6e\x32\x38\x3f\x90\x7e\x03\ -\x76\x0b\x76\x9b\xb0\x3c\x71\x76\xdd\x7e\x53\xf6\xb6\x1b\x30\x8f\ -\x8c\xd5\xd2\x73\x22\xbe\xf4\x3e\x4f\x77\x7b\x95\x9e\x01\xee\x70\ -\xbb\xcc\xfb\x05\x83\xe3\x4d\x7c\x11\xe1\x7a\xf3\x62\x2f\xf6\xee\ -\x8a\x27\x35\xca\x2c\x30\xf1\xc5\x19\x26\xea\x6a\xe3\x69\x6a\xf6\ -\x6d\xfd\x6c\x57\x7d\x9f\x66\x71\xe1\x0c\xbb\xfd\xa6\xed\x69\x37\ -\xe0\xe1\x0f\x09\x1d\x96\x8c\xf8\xe2\x0c\xdb\x83\x89\xca\x06\x38\ -\xf1\x76\x99\xb8\xc0\xc4\x17\x67\x98\xd4\x8e\xb8\x01\x7b\xfa\xdb\ -\xb6\x74\x2c\x2e\x9c\x61\xfb\x2f\xfc\x01\xc1\x1b\xec\xb6\xfe\xa5\ -\x77\xe8\xe9\x76\x3b\xde\x1e\xfd\x5e\xed\xc7\xf7\x6f\xc7\xf3\xcb\ -\xeb\x5d\x7c\xa9\xe2\xfd\x3c\x7e\xe6\x0c\xbf\x9f\x7b\x17\x10\xdf\ -\xfd\x0a\xb0\x37\xbb\xd4\x32\x73\x53\xc0\x19\x16\x5f\x3b\x79\x40\ -\x80\x45\x18\xc0\x4e\x9e\xb8\x8b\x7d\x07\x0c\x00\x6e\xc0\x6e\xc1\ -\x00\x76\x71\xc6\x0e\x76\x03\x0e\x7d\x50\x00\xb0\xdf\x04\xd8\xcd\ -\x12\x80\xb8\x4e\xb8\x01\x7b\x4a\x04\xb0\xd7\xf6\x3c\x30\x38\x04\ -\x9e\xc6\x00\x7a\xef\xdd\x8e\xfb\xf6\x70\x18\x1c\x0a\x00\xf1\x5d\ -\xcf\x47\xd0\x00\xe0\x06\xec\x16\x0c\x60\xcf\x66\xec\x57\x37\x60\ -\x87\x18\xc0\xde\x72\x03\x9e\x7d\x40\xdc\x84\x01\xbb\xd5\x4e\x75\ -\x03\x06\x00\x37\x60\xb7\x60\x00\x3b\x35\x6b\x97\x1e\x0e\x8c\x83\ -\x03\x20\xbe\xeb\xf9\x08\xda\x21\x07\xb0\x97\x04\xd8\x8d\x12\x80\ -\x8c\x7d\x3f\x2a\x5c\x3e\x8a\x06\x98\xbb\x3b\xa7\xed\x4c\x1f\x41\ -\x3b\xf4\x80\x3d\x84\x1b\x70\xe6\x61\x72\x13\x06\xec\xcb\xbc\x3d\ -\x79\x38\x54\x0e\x17\x20\xbe\xf6\xe3\x7a\x3e\x82\x36\x0c\x80\x7d\ -\x83\x1b\xb0\x03\xe6\x26\x0c\xd8\x8d\x19\x3b\x71\xec\x0d\x58\xc8\ -\x00\xec\x71\x01\x66\xfc\xcd\x1d\xb0\x5f\xf8\xf4\x03\x86\x03\xe7\ -\xc9\x0f\xb0\x0b\xed\x40\x01\x76\xf0\x44\x18\x10\xdf\x00\x3e\x82\ -\x36\x34\x80\x3d\x82\x1b\xb0\x43\xe8\x26\x0c\x24\xef\xbd\xa4\x7d\ -\x77\x38\x8c\x0e\x25\x60\xdf\xd9\x73\x02\xec\x50\x3a\x9c\x80\xf8\ -\x46\xf0\x1d\xb0\xa1\x02\xec\x09\xdc\x80\x1d\x50\x4f\x8a\x40\xda\ -\x6e\x4b\xdd\x69\x87\x83\x2a\xc2\x80\x9d\x66\x97\x09\xb0\x03\xeb\ -\xe0\x02\xe2\x1b\xc1\x77\xc0\x86\x0e\xb0\x07\x70\x03\x76\x78\x3d\ -\x45\x02\x09\xfb\xcb\xde\xf2\x02\x88\x30\x60\x6f\xd9\x57\x02\xec\ -\x30\x3b\xd8\xc0\xec\x5d\x65\x47\x09\xb0\x08\x03\x76\x94\xdd\xb4\ -\x95\x5f\xc2\x32\xa4\x80\xb9\xc6\x0d\xd8\x21\xf7\xb4\x09\x4c\xdc\ -\x4b\xf6\x91\x00\x8b\x30\x60\x1f\xd9\x43\x02\xec\xd0\x3b\xfc\x80\ -\xf8\x0a\x30\xa3\x23\x6c\x10\xc0\xee\xb1\x73\x04\xd8\x20\x18\x08\ -\x40\x7c\x05\xd8\x4b\x20\xc2\x80\x5d\x63\xc7\x08\xb0\xc1\x30\x24\ -\x60\xbf\xd8\x2b\x11\xfc\x1d\xb0\xa1\x07\xcc\x21\x6e\xc0\x06\xc5\ -\x13\x2b\xd8\x29\x76\x89\x00\x13\xf6\xb4\x6a\x78\xc0\x1e\xb1\x3f\ -\x04\xd8\xf0\x18\x22\xb0\x3f\xec\x0d\x01\x46\x84\x01\x7b\xc3\xbe\ -\x10\x60\xc3\x64\xb0\xc0\xae\xb0\x23\x04\xd8\x60\x89\x30\x20\xbe\ -\x08\xb0\x01\x33\x6c\x60\x2f\xd8\x07\x02\x6c\xd8\x0c\x1d\xd8\x07\ -\xf6\x00\x02\x6c\xe8\x0c\x20\xd8\x01\x66\x5f\x80\x0d\xa0\x61\x04\ -\x73\x6f\xde\x05\x18\xc3\x68\x28\xc1\xbc\x9b\x73\x01\x36\x94\x06\ -\x14\xcc\xb8\xd9\x16\x60\x0c\xa8\x61\x85\xc8\xb9\x36\xcf\x02\x6c\ -\x60\x0d\x2e\x98\x63\xf3\x2b\xc0\x18\x5e\x43\x8c\xf9\x35\xb7\x08\ -\xb0\x21\x36\xd0\x60\x66\xcd\xaa\x00\x63\xa0\x0d\x37\xe6\xd4\x7c\ -\x22\xc0\x86\xdb\xa0\x83\xd9\x34\x93\x02\x8c\x41\x37\xf4\x98\x47\ -\x73\x88\x00\x1b\x7a\x0b\x00\x7c\x1a\x65\xf6\x04\xd8\x12\x10\x62\ -\x0b\x01\xf3\x66\xce\x04\x18\x4b\xc1\x82\xc0\x8c\x99\x2d\x04\xd8\ -\x82\xb0\x2c\xbc\x0a\x98\x2b\xf3\x24\xc0\x58\x16\x96\x07\xe6\xc8\ -\xfc\x20\xc0\x16\x88\x45\x02\xe6\xc6\xbc\x08\x30\x96\x89\xe5\x82\ -\x39\x31\x1f\x08\xb0\xe5\x62\xd9\x60\x2e\xcc\x03\x02\x8c\x85\x63\ -\xf9\x60\x06\x9c\x7d\x04\xd8\x02\xb2\x90\x70\xe6\x9d\x75\x04\x18\ -\x0b\xc9\x82\xc2\x19\x77\xb6\x05\x18\x4b\xca\xd2\xc2\x59\x76\x86\ -\x11\x60\x2c\x2e\xcb\xcc\xb9\xc5\x79\x15\x60\x2c\x34\x0b\x0e\xe7\ -\xd3\xb9\x44\x80\xb1\xe4\x2c\x3f\xe7\xd0\xf9\x43\x80\xb1\x00\x49\ -\x5a\x8c\xce\x99\xf3\x85\x00\x63\x39\x5a\x9e\xce\x91\xf3\x83\x00\ -\x63\x81\x52\x7b\xd9\x3a\x13\xce\x02\x02\x8c\x08\x03\xe2\x2b\xc0\ -\x08\x31\x20\xbc\x08\x30\x22\x0c\xe2\x8b\x00\x23\xc4\x80\xf0\x22\ -\xc0\x08\x31\x08\x2f\x02\x8c\x10\x03\xc2\x8b\x00\x23\xc2\x20\xbe\ -\x08\x30\x42\x0c\x08\x2f\x02\x8c\x10\x83\xf0\x22\xc0\x08\x31\x08\ -\x2f\xce\x08\x08\x31\x08\x2f\x02\x8c\x10\x83\xf0\x22\xc0\x20\xc4\ -\x20\xbc\x08\x30\x42\x0c\xc2\x8b\x00\x83\x10\x23\xbc\x20\xc0\x08\ -\x31\x08\x2f\x02\x0c\x62\x8c\xe8\x82\x00\x23\xc4\x20\xbc\x08\x30\ -\x42\x0c\xc2\x0b\x0e\x1b\x62\x8c\xe8\x7a\x15\x10\x60\x84\x18\x84\ -\x17\x01\x06\x31\x46\x74\x41\x80\x11\x63\x10\x5d\x04\x18\xc4\x18\ -\xd1\x05\x01\x46\x8c\xb1\xcc\xec\x33\x04\x18\xc4\x18\xd1\x05\x01\ -\x46\x90\x11\x5c\x10\x60\x10\x63\x44\x17\x04\x18\x41\x46\x70\x41\ -\x80\x41\x94\xc5\x16\x04\x18\x04\x19\xc1\x05\x01\x06\x61\x16\x5a\ -\x10\x60\x40\x98\x85\x16\x04\x18\x04\x5a\x60\x41\x80\x81\xc2\xc1\ -\x16\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x3a\xf9\x13\xbe\xd2\x7f\x7d\xdc\xdb\xc8\xbd\x00\x00\x00\x00\x49\ -\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x0b\x85\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x3d\x00\x39\x00\x35\xdd\xfb\ -\xdd\x74\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x04\x12\x06\x30\x03\x11\x56\xe1\xa3\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x0a\xed\x49\x44\x41\x54\x78\xda\xed\xdd\x41\x4e\xe3\x48\x14\ -\x80\x61\x68\xf9\x5a\xd9\xf8\x54\x24\x52\x14\x45\x96\x92\x9c\xca\ -\x1b\x0e\xd6\xbd\x68\x68\x31\x3d\x69\x30\x71\x55\xb9\xaa\xde\xf7\ -\xad\x46\xd3\x10\x1c\x17\xf8\xe7\xd9\x89\x79\x7a\x02\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xd6\x73\ -\x4b\x1b\x7b\x38\x1c\x7e\x5a\x32\x00\x3e\x73\xb9\x5c\x9a\x68\x5b\ -\x13\x1b\x29\xbc\x00\xf4\x16\xe2\xaa\x37\x4e\x78\x01\xe8\x35\xc4\ -\xd5\x06\x58\x7c\x01\xe8\x39\xc2\x55\x06\x58\x7c\x01\xe8\x3d\xc2\ -\x3f\x2c\x09\x00\x98\x80\x4d\xbf\x00\x84\x98\x82\x4d\xc0\x00\x10\ -\x7d\x02\x36\xfd\x02\x10\x65\x0a\x36\x01\x03\x80\x00\x03\x40\x0c\ -\x43\xab\x1b\x3e\x8e\xa3\xd5\xa3\x6b\xf3\x3c\xfb\x79\x80\x0c\x3f\ -\x2f\x26\x60\x00\x08\x4c\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\ -\x06\x80\x7e\x0c\x11\x9f\xf4\xf9\xb8\xff\xf3\xdf\xa7\xe9\xea\xbb\ -\x00\x00\x01\x2e\x11\x5d\x31\x06\x40\x80\x37\x0a\xef\x67\x1f\x2b\ -\xc4\x00\xe4\xd6\xf5\x35\xe0\xef\xc4\x37\xc5\xe7\x01\x40\xf8\x00\ -\xaf\x8d\xa8\x08\x03\x20\xc0\x00\x20\xc0\xfd\x4f\xbf\xa6\x60\x00\ -\x04\x18\x00\x04\x18\x00\x10\xe0\x3b\x52\x9f\x36\x76\x1a\x1a\x00\ -\x01\x06\x00\x01\x06\x00\x04\xf8\x4d\xea\xbb\x58\xb9\x2b\x16\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\xf0\x07\xa9\x4e\x1b\x3b\xfd\x0c\x80\ -\x00\x03\x80\x00\xf7\x3f\x05\x9b\x7e\x01\x10\xe0\xc2\x11\x15\x5f\ -\x00\x72\x1b\x7a\x7f\x82\xef\x31\x5d\x72\x47\x2b\xe1\x05\x40\x80\ -\x33\x4e\xc3\x1f\x63\x2c\xba\x00\x08\xf0\x06\x31\x06\x80\x2d\x78\ -\x15\x34\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\xc0\ -\x0a\x83\x5d\x00\xb4\xea\xb3\xf7\xf7\xf7\xfc\x6e\x87\xa8\xcf\xdb\ -\x04\x0c\x50\x79\x84\x96\xfc\xbb\xe7\x8d\x00\x03\x24\x8e\x50\xaf\ -\x31\x8a\xfa\xbc\x05\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ -\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ -\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\xa0\x01\xcd\xfe\ -\x3d\xe0\x79\x9e\xbb\x5f\x9c\x71\x1c\x7d\x87\x02\x98\x80\xf1\x4b\ -\x06\x00\x02\x2c\xc2\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\ -\x00\x03\x80\x00\x03\x80\x00\x03\x00\x85\x0c\x76\x01\x5b\x3a\x1f\ -\xf7\x5f\x7e\xcc\x69\xba\xda\x51\x80\x00\x53\x56\x4f\x77\xc3\x5a\ -\x12\xdb\xa5\x9f\x27\xca\x80\x00\x23\xbe\x99\xc2\xbb\xe4\x31\x85\ -\x38\xe6\xfa\xb7\xf4\xf5\x5b\x7f\xde\x7e\xc6\x04\xb8\xeb\xc9\xd0\ -\x01\x40\x88\x7d\x0f\x50\xf3\x1a\xfa\xf9\xca\xc3\x8b\xb0\xc8\xf2\ -\x03\x5b\xfa\xc0\xbb\xc5\xd7\x44\x7c\xad\x25\x02\x4c\xd8\xf0\x0a\ -\xb1\x03\x36\xd6\x54\x80\xf1\xc3\x69\x7b\x00\x04\x18\xb1\x13\x61\ -\x40\x80\x11\x5f\xdb\x07\x20\xc0\xc4\x8a\x9b\x08\x03\x02\x8c\xf8\ -\xda\x5e\x00\x01\x26\x56\xcc\x44\x18\xa8\x89\x3b\x61\x51\x45\xc4\ -\x5e\x8f\x2f\xff\xfb\x7f\xbb\xe9\x96\x65\xfb\xdd\x54\x20\xbf\xd3\ -\x74\xf5\x0b\x4f\x87\x6b\x8a\x00\xd3\x41\x7c\xef\x05\xf7\xab\x8f\ -\x49\x15\x64\x11\x16\x61\xc4\x57\x80\x09\x67\x49\x78\xbf\xfa\xdc\ -\x1c\x93\x31\x6d\x1d\xb8\xbf\x13\xf6\x9e\xe2\x11\xf5\x79\xf7\xca\ -\x35\x60\x8a\x4c\xbf\xaf\xc7\x97\x55\xf1\x4d\xfd\x58\x26\x33\x40\ -\x80\x31\xf5\x56\xf6\xb8\x00\x02\x4c\xf3\xd3\x6f\xee\x48\xae\x79\ -\x7c\x53\x30\x20\xc0\x98\x7c\x4d\xc2\x80\x00\xc3\xfa\x29\xb1\x74\ -\x14\x1f\xfd\x7a\xa6\x60\x40\x80\x31\xf9\x9a\x84\x01\x01\x86\x38\ -\xd3\xa1\x29\x18\x10\x60\x4c\xbf\xa6\x60\x40\x80\x01\x00\x01\xc6\ -\xf4\x6b\x0a\x06\x04\x18\x00\x10\x60\x92\x8b\xf6\xc2\x24\x2f\xc4\ -\x02\x04\x18\x00\x04\x18\x96\xa9\xed\xba\xab\xeb\xc0\x80\x00\x03\ -\x00\x02\x0c\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x4d\xd9\x4d\x37\ -\xdb\x03\x20\xc0\x00\x20\xc0\x34\xe8\x34\x5d\x3d\x5f\x00\x01\x06\ -\x00\x01\x86\xbb\x6a\xb9\xee\xea\xfa\x2f\x20\xc0\x00\xc0\x5d\x43\ -\xab\x1b\x3e\xcf\x73\xf7\x8b\x33\x8e\x63\x93\x53\xf0\x96\xb7\x81\ -\x34\xfd\x02\x26\x60\x9a\xff\x25\x23\xca\x0b\x93\xbc\x00\x0b\x10\ -\x60\xba\x98\xf4\xb7\x9a\x42\x4d\xbf\x80\x00\x13\x7e\x3a\x2c\x1d\ -\xc3\x47\xbf\x9e\xe9\x17\x10\x60\xba\x53\x2a\xc2\x26\x5f\x40\x80\ -\x31\x05\x17\x8e\xe3\x9a\xc7\x37\xfd\x02\x02\x8c\x49\xd8\xe4\x0b\ -\x08\x30\xa4\x9f\x16\x77\xd3\x2d\x59\x30\x53\x3c\x96\xe9\x17\xd8\ -\xda\x60\x17\xb0\xc5\x34\xfc\xc8\x7b\x85\x4d\xbc\x80\x00\x13\x76\ -\x0a\x3e\x1f\xf7\x49\x43\xfc\xee\x5e\x90\x73\x05\xd7\xf4\x0b\x08\ -\x30\x5f\xaa\xed\x6e\x58\x29\x23\xbc\xc5\x74\x2b\xbe\x40\x2d\x5c\ -\x03\x16\xdf\x30\x11\x13\x5f\xc0\x04\xdc\x71\x9c\xa2\xc8\x35\x09\ -\x8b\x2f\x60\x02\x86\x4e\xa2\x26\xbe\x80\x00\x23\xc2\xb6\x0f\x40\ -\x80\xe9\x3b\x72\xe2\x0b\x08\x30\x22\x2c\xbe\x00\xff\xe1\x6d\x48\ -\x24\x8f\xde\x96\x2f\xce\x12\x5e\x40\x80\x11\xe2\x82\x21\x16\x5e\ -\x40\x80\xa1\x60\x88\x85\x17\x10\x60\x28\x18\x62\xe1\x05\x04\x18\ -\x56\x44\x73\x49\x94\xc5\x16\x10\x60\x28\x10\x65\x80\x08\xbc\x0d\ -\x09\x00\x04\x18\x00\x62\x70\x0a\x1a\xc8\xa6\x86\x3f\xd8\xd1\xd2\ -\x1f\x0d\xa9\xf5\x79\xbb\x54\x64\x02\x06\xc4\x17\x6b\x29\xc0\x00\ -\x0e\xd8\xd6\x14\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ -\x10\x60\x00\x10\x60\x00\x10\x60\x80\x07\xb9\x71\x83\x35\x45\x80\ -\x01\x07\x6c\xac\xa5\x00\x03\x0e\xdc\x58\x43\x7e\x73\x2f\x68\xa0\ -\xb9\x03\xf8\x77\xee\xca\xd4\x53\x40\xa2\x3e\x6f\x13\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x90\x52\xb3\xb7\xa2\ -\x9c\xe7\xb9\xfb\xc5\x19\xc7\xd1\x77\x28\x80\x09\x18\xbf\x64\x00\ -\x20\xc0\x22\x0c\x80\x00\x03\x94\xb3\xf4\x2f\xfd\xf4\xf6\x17\x81\ -\xa2\x3e\x6f\x01\x06\x68\x28\x46\xbd\x46\x28\xea\xf3\xee\x91\xbf\ -\x07\x0c\x74\x3f\x11\x7a\xde\x98\x80\x01\x00\x01\x06\x00\x01\x06\ -\x00\x01\x06\x00\x04\x38\x30\x77\xc3\x02\x10\x60\xc4\x17\x80\x44\ -\x9a\x7d\x1b\x92\x38\x01\x60\x02\x06\x00\x04\x18\x00\x04\x18\x00\ -\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\ -\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\ -\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\ -\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\ -\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ -\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ -\x40\x80\x01\x80\x2c\x06\xbb\x00\xda\x37\xcf\xb3\x9d\x00\x26\x60\ -\x00\x40\x80\x01\x40\x80\x81\xa5\xc6\x71\xb4\x13\x40\x80\x01\x00\ -\x01\x06\x53\x30\x20\xc0\x00\x80\x00\x83\x29\x18\x10\x60\x40\x84\ -\x01\x01\x86\xc6\x23\x2c\xc4\x20\xc0\x80\x10\x03\x2b\xb8\x15\x25\ -\x34\x1c\x62\xe0\xb7\x16\x6f\xc7\x6a\x02\x06\x00\x01\x06\x00\x01\ -\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\ -\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\ -\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\ -\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ -\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\ -\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x68\ -\xd4\x60\x17\xf4\xe9\x7c\xdc\xdb\x09\x8d\x3a\x4d\x57\x3b\x01\x04\ -\x18\xd1\x65\xcb\x75\x14\x63\xe8\x97\x53\xd0\xe2\x8b\x75\x05\x04\ -\x18\x07\x69\xac\x2f\x08\x30\x0e\xce\x58\x67\x40\x80\x71\x50\xb6\ -\xde\x80\x00\x03\x00\x02\x0c\x00\x02\x4c\x01\x4e\x47\x5a\x77\xa0\ -\x6d\xde\x07\x0c\x90\xf9\x97\x22\xef\xe7\x46\x80\x01\x32\xc7\x76\ -\xe9\xe7\x89\x32\x02\x1c\xc0\xeb\xf1\xc5\x4e\xa8\xdc\x6e\xba\xd9\ -\x09\x1d\x86\x77\xc9\x63\x0a\xb1\x00\x03\x50\x20\xbc\x42\x8c\x00\ -\x03\x6c\x18\x5e\x21\x46\x80\x01\x36\x0c\xaf\x10\xc7\xe5\x6d\x48\ -\x00\x4f\xf5\xbd\xc5\xcb\x5b\xce\x04\x18\x40\x7c\x6d\x17\x02\x0c\ -\x10\x2b\x72\x22\x2c\xc0\x00\xe2\x6b\x3b\x11\x60\x80\x58\x51\x13\ -\x61\x01\x06\x10\x5f\xdb\x4d\x02\xde\x86\x04\x88\x6f\x02\xf7\xee\ -\x38\x97\xe3\x0e\x67\xe7\xe3\xde\x5b\x94\x04\x18\x20\x6e\x7c\x97\ -\xdc\xe2\xf5\xef\x8f\x49\x15\x64\x11\x16\x60\x80\x70\xd6\xdc\x5b\ -\xfd\xfd\x73\xdd\xfb\x9b\xa7\x27\xd7\x80\x01\xd3\xef\xe2\x78\xa6\ -\xfa\xc3\x26\x29\x1e\xcb\xf5\x60\x01\x06\x30\xf5\x56\xf6\xb8\x08\ -\x30\x40\xf3\xd3\x6f\xee\x48\xae\x79\x7c\x53\xb0\x00\x03\x98\x7c\ -\x4d\xc2\x08\x30\xc0\xfa\x29\xb1\x74\x14\x1f\xfd\x7a\xa6\x60\x01\ -\x06\x30\xf9\x9a\x84\x11\x60\x80\x38\xd3\xa1\x29\x58\x80\x01\x4c\ -\xbf\xa6\x60\x04\x18\x00\x04\x18\xc0\xf4\x6b\x0a\x46\x80\x01\x40\ -\x80\x01\x92\x8b\xf6\xc2\x24\x2f\xc4\x12\x60\x00\x40\x80\x01\x96\ -\xa9\xed\xba\xab\xeb\xc0\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x4d\xd9\x4d\x37\xdb\x83\x00\x03\x80\x00\x03\ -\x34\xe8\x34\x5d\x3d\x5f\x04\x18\x00\x10\x60\x80\xbb\x6a\xb9\xee\ -\xea\xfa\xaf\x00\x03\x00\x02\x0c\xd0\xff\xf4\x69\xfa\x15\x60\x80\ -\xe6\x45\x79\x61\x92\x17\x60\x09\x30\x80\x29\xd8\xf4\x8b\x00\x03\ -\x3c\x3e\x1d\x96\x8e\xe1\xa3\x5f\xcf\xf4\x2b\xc0\x00\x26\x61\x93\ -\x2f\x02\x0c\x90\x66\x4a\xcc\x1d\xc7\x35\x8f\x6f\xfa\x15\x60\x00\ -\x93\xb0\xc9\x17\x01\x06\x48\x3f\x2d\xee\xa6\x5b\xb2\x60\xa6\x78\ -\x2c\xd3\x6f\xfb\x06\xbb\x00\xe0\xfb\x53\xeb\xeb\xf1\xc5\xc4\x8b\ -\x00\x03\x2c\x9d\x1a\xcf\xc7\x7d\xd2\x10\xbf\xbb\x17\xe4\x5c\xc1\ -\x35\xfd\x0a\x30\x40\xe8\x08\x6f\x31\xdd\x8a\x6f\x3f\x5c\x03\x06\ -\x42\x46\xd8\x76\x23\xc0\x00\x62\x26\xbe\x01\x39\x05\x1d\x80\x17\ -\x7e\xc0\xbf\xa3\x96\xe3\x74\xb4\xf8\x62\x02\x06\x68\x3c\x6e\xe2\ -\x2b\xc0\x00\x22\x6c\xbb\x10\x60\xfc\x60\x5a\x77\xfa\xde\xb7\xd6\ -\xba\x7f\xae\x01\x03\xfc\x15\xbd\x2d\xaf\x0b\x0b\xaf\x00\x03\x08\ -\x71\xc1\x10\x0b\x6f\x3c\x4e\x41\x77\x70\x90\xc0\x7a\x93\x6f\x9f\ -\xe7\xde\xef\x25\xbe\x06\x02\x8c\x83\x32\xd6\x59\x88\x85\x97\x37\ -\x4e\x41\x77\x72\x70\x68\xe1\xbd\x8c\x88\x6f\x8f\x6b\xb1\xe4\x67\ -\xcf\x1a\x22\xc0\x22\x8c\xf8\x62\x8d\x10\x60\x72\x1e\x08\xc4\xd8\ -\x01\x1d\x10\x60\x1c\xc4\x01\xf8\x8b\x17\x61\x01\x80\x00\x03\x80\ -\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\ -\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x40\x24\x83\x5d\x00\x7c\x34\xcf\xf3\ -\x3f\xff\x6d\x1c\x47\xdb\x6f\xfb\x31\x01\x03\x25\x0f\xfe\x4b\xfe\ -\xdd\xf6\xc7\xde\x7e\x04\x18\xc8\x70\xf0\xaf\x3d\x02\xb6\x1f\x01\ -\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\ -\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ -\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ -\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ -\x10\x60\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\ -\x01\x06\x00\x01\x06\x00\x96\x1b\x22\x3e\xe9\xf3\x71\xff\xe7\xbf\ -\x4f\xd3\xd5\x77\x01\x80\xe3\xb1\x00\x97\x58\x64\x8b\x0f\xe0\x78\ -\x2c\xc0\x1b\x2d\xf4\x67\x1f\x2b\xc4\x00\x8e\xc7\xb9\xfd\xb0\xd8\ -\xe9\x3e\x0f\x00\xc7\xe3\xf0\x01\x5e\xbb\x68\x22\x0c\xe0\x78\x2c\ -\xc0\x00\x20\xc0\xfd\xff\xb6\x65\x0a\x06\x70\x3c\x16\x60\x00\x30\ -\x01\x03\x00\x02\x7c\x47\xea\xd3\x14\x4e\x43\x03\x38\x1e\x0b\x30\ -\x00\x08\x30\x00\x20\xc0\x6f\x52\xdf\x35\xc5\x5d\xb1\x00\x1c\x8f\ -\x05\x18\x00\x04\x18\x00\x10\xe0\x0f\x52\x9d\xa6\x70\xfa\x19\xc0\ -\xf1\x58\x80\x01\x40\x80\xfb\xff\xad\xcb\xf4\x0b\xe0\x78\x2c\xc0\ -\x85\x17\x4d\x7c\x01\x1c\x8f\x73\x1b\xa2\x2c\xfa\x92\x3b\xa8\x08\ -\x2f\x80\xe3\xb1\x00\x67\xfc\xed\xeb\xe3\xe2\x8b\x2e\x80\xe3\xb1\ -\x00\x6f\xb0\xf8\x00\x38\x1e\x6f\xc1\xab\xa0\x01\x40\x80\x01\x40\ -\x80\x01\x00\x01\x06\x00\x01\x06\x00\x56\x78\xae\x69\x63\x0e\x87\ -\xc3\x4f\x4b\x02\x40\x4e\x97\xcb\xa5\x8a\xf6\x99\x80\x01\x40\x80\ -\x01\x20\x86\xe7\xda\x36\xc8\x69\x68\x00\x72\xa9\xe5\xf4\xb3\x09\ -\x18\x00\x4c\xc0\xa6\x60\x00\x62\x4c\xbf\x26\x60\x00\x30\x01\x9b\ -\x82\x01\x88\x31\xfd\x56\x1d\x60\x11\x06\xa0\xd7\xf8\x56\x1f\x60\ -\x21\x06\xa0\xb7\xf0\x36\x15\x60\x21\x06\xa0\x97\xf0\x02\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x5d\xbf\x00\ -\xb8\xfa\x65\x5f\xda\x82\x21\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x13\x2f\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ -\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ -\x15\x07\x23\x38\x60\xc7\x32\x2b\x00\x00\x00\x19\x74\x45\x58\x74\ -\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ -\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x12\ -\xa9\x49\x44\x41\x54\x78\xda\xed\xdd\x3d\x6e\x54\x59\x1a\x80\xe1\ -\x62\xe4\xa4\x57\xd1\xd9\xec\x80\x80\xa0\x2c\xb9\x10\x0e\xd8\x42\ -\xb3\x10\xb0\xda\x42\xc8\x23\x60\x21\xf4\x16\x3a\x00\x51\x96\x5c\ -\x01\x01\x3b\x98\x6c\x56\x41\xe8\x09\x7a\xec\xf6\x18\xff\xd4\xbd\ -\xf7\xfc\x7c\xe7\x9c\xe7\x91\x46\x1a\xa9\xbb\xc1\x54\x7d\xf7\xbc\ -\xf5\xdd\x2a\x9b\xd5\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\ -\x89\x27\x1e\x02\x80\xb8\xd6\x5f\x7f\xbb\x5c\xfa\x6b\xec\x9e\xff\ -\xe1\xac\x17\x60\x00\x52\x07\x56\xa0\x05\x18\x80\xe0\xb1\x15\x65\ -\x01\x06\x10\xdc\x86\x08\xb2\x00\x03\x08\xae\x20\x0b\x30\x80\xe8\ -\x8e\x13\x5d\x31\x16\x60\x00\xd1\x15\x63\x01\x06\x10\x5e\x84\x58\ -\x80\x01\x44\x57\x8c\x05\x18\x40\x78\x11\x62\x01\x0e\xe9\xe4\xe4\ -\x64\xf2\x45\xfe\xfe\xfd\x7b\xcf\x9b\x39\x31\x27\xc2\x2b\xc4\x02\ -\x4c\xee\x83\xd4\x41\x6b\x4e\xcc\x89\xf0\x0a\xb1\x00\x13\xe4\x30\ -\x75\xc8\x9a\x13\x73\x22\xbc\x42\x2c\xc0\x04\x38\x50\x1d\xb0\xe6\ -\xc4\x9c\x08\xaf\x10\x0b\xb0\x03\xb5\xe2\x81\xea\x80\x35\x27\xe6\ -\x44\x7c\x45\x58\x80\x1d\xa8\x81\x08\xb1\x39\x31\x27\xc2\x2b\xc4\ -\x02\xec\x40\x75\xc0\x9a\x13\x73\x22\xbe\x0c\x1f\x61\x87\xf1\x40\ -\x87\xaa\x08\x9b\x93\x11\xe7\x44\x78\x85\x58\x80\x1d\xaa\x0e\x57\ -\x73\x62\x4e\xc4\x17\x11\x16\xe0\x91\x0f\x55\x11\x36\x27\xbd\xcf\ -\x89\xf0\x0a\xb1\x00\x3b\x54\x1d\xae\xe6\xc4\x9c\x88\x2f\x22\x2c\ -\xc0\x0e\x55\x11\x36\x27\x7d\xcf\x89\xf8\x8a\xb0\x00\x3b\x54\xf7\ -\xb6\xd9\x6c\x26\xff\x37\xdb\xed\x56\x84\xc5\x57\x84\x85\x97\xc6\ -\x43\xec\xd0\xad\x70\xa8\xce\x89\x6e\x89\x18\x8b\xb0\xf8\xb6\x38\ -\x27\xe2\x4b\xab\x11\x76\xe0\x16\x3c\x54\x53\x86\x37\x57\x88\x45\ -\x38\x66\x7c\xa3\xdc\x29\x89\x36\x27\xe2\x4b\xcb\x11\x76\xd8\x16\ -\x38\x54\x73\x86\x37\xc7\xa1\x2b\xc2\x31\xe2\x1b\xf5\x4e\x49\x94\ -\x39\x11\x5f\x5a\x8f\xf0\x81\xa7\x2c\x9f\x92\xe1\xbd\xfd\x7b\xe6\ -\xdc\x7e\x68\x6f\x6e\x7a\x9b\x0b\xf1\xe5\xbe\xb9\x68\x29\xc2\x36\ -\x9d\x4c\x5b\x4d\x8d\xf8\xa6\xdc\x7a\x6c\xc1\xe5\xb7\xdf\xd6\xee\ -\x94\xd4\x9a\x13\xf1\xa5\x97\x4d\xd8\x06\xdc\xc9\xe6\x7b\xdf\xd7\ -\x61\x13\x36\x2f\x3d\x6d\xc4\xe2\xfb\x97\x8b\xcd\xa7\x7b\xff\xd9\ -\xe1\xf6\x95\x4d\xb8\x91\x4d\xd8\x96\x93\x78\xab\x89\x12\xdf\x14\ -\xdb\x8e\x2d\x38\xff\xf6\xdb\xfa\x9d\x92\x92\x73\x32\x7a\x7c\x1f\ -\x8a\xae\x18\xb7\xb9\x09\xff\xc3\x11\xda\xdf\xe6\xdb\xca\xd7\x65\ -\x5e\x36\xbe\x0e\xf1\xcd\x16\xdf\x25\xff\x5d\x4f\x9b\xb0\x0d\x78\ -\x80\xad\xa6\x85\x43\x6c\xce\xa6\x63\x0b\xce\xb3\xfd\xf6\x74\xa7\ -\x24\xf7\x9c\x88\xef\xf2\x88\xda\x84\x63\x6e\xc2\x36\xe0\x81\x36\ -\x4c\x9b\xb0\xe7\xa1\xb5\xaf\x4b\x7c\x3f\x85\xfa\x75\x6c\xc2\x02\ -\x1c\x76\xab\xf1\x78\x78\x5c\x5a\x7f\x11\x34\xf7\xeb\xcb\x31\x27\ -\xe2\xfb\x29\xf4\xaf\x27\xc2\x02\x6c\x6b\xb0\x05\x7b\xec\x3b\xfc\ -\x3a\xc5\xf7\x53\x53\xbf\xae\x08\x0b\x30\xe0\x90\x84\x66\xe6\x4b\ -\x80\x6f\x98\x7a\x1b\xad\xd5\x6d\x72\xea\xd7\xed\x36\xf4\xf2\xc7\ -\x63\x84\x3b\x25\x29\xe6\x44\x7c\x19\x29\xc2\x02\x0c\x38\x14\x03\ -\xc9\x7d\x9b\x78\xf4\xdb\xd0\x91\xe6\x4d\x80\x0b\x6e\x08\xbe\x7e\ -\xb3\xe2\xeb\x06\x04\x18\xb0\x8d\x60\xee\x04\xb8\x3e\xef\x73\x7a\ -\x7c\x72\x3c\x0e\xa3\xdd\x29\x99\x33\x27\xe2\xcb\xa8\x11\x16\xe0\ -\x02\x87\x92\x3f\x07\x88\x2f\xe6\x50\x80\x01\x20\x00\x01\x86\x4c\ -\xdc\x29\xb1\xfd\x62\x0b\x16\x60\x60\xf8\xc3\x0e\xa2\xcd\xa5\x00\ -\x03\x40\x05\x02\x0c\xd8\x7e\xa1\xc2\x7c\x0a\x30\x20\xbe\x50\x61\ -\x4e\x05\x18\x00\x2a\x10\x60\xc0\xf6\x0b\x15\xe6\x55\x80\x01\xf1\ -\x85\x0a\x73\x2b\xc0\x00\x50\x81\x00\x03\xb6\x5f\xa8\x30\xbf\x02\ -\x0c\x00\x36\x60\xc0\xf6\x00\x63\xcc\xb1\x00\x03\x80\x0d\x18\xb0\ -\x35\xc0\x18\xf3\x2c\xc0\x00\x60\x03\x06\x6c\x0b\x30\xc6\x5c\x0b\ -\x30\x00\xd8\x80\x01\x5b\x02\x8c\x31\xdf\x02\x0c\x00\x36\x60\x00\ -\x10\x60\x80\x49\x76\xcf\xff\xe3\x41\xa0\x7b\xa9\x6e\x43\x0b\x30\ -\x00\xd8\x80\x01\xdb\x2f\x8c\xb1\x05\x0b\x30\x00\xd8\x80\x01\x40\ -\x80\x01\xf6\xe2\xf6\x33\x23\x5a\x7a\x1b\x5a\x80\x01\xc0\x06\x0c\ -\x00\x02\x0c\xf0\x28\xb7\x9f\x19\xd9\x92\xdb\xd0\x02\x0c\x00\x36\ -\x60\x00\x10\x60\x00\x40\x80\x81\x68\xbc\xff\x0b\xf3\xdf\x07\x16\ -\x60\x00\xb0\x01\x03\x80\x00\x03\x00\x02\x0c\x44\xe2\xfd\x5f\xf8\ -\xdb\x9c\xf7\x81\x05\x18\x00\x6c\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x03\xf3\x01\x2c\xf8\xd9\xd4\x0f\x62\x1d\x78\xc8\xea\ -\x7a\x77\xfa\x66\xf6\x7f\xfb\xf6\xec\x83\x07\x10\xa0\x51\x02\xdc\ -\x40\x68\xa7\xfe\x9a\xc2\x0c\x20\xc0\x82\x1b\xe0\xf7\x16\x64\x00\ -\x01\x16\xdd\xca\x5f\x97\x18\xd3\xa3\x8b\xcd\x27\x0f\xc2\xa0\x8f\ -\xd7\xe1\xf6\x95\x00\x8b\x6e\x7b\x5f\xaf\x18\x23\x22\xf4\x34\x07\ -\xad\xc5\x58\x80\x07\x09\xef\x43\x7f\x86\xf5\xd1\x0b\x4f\x28\xe2\ -\x4b\x17\x73\xd1\x52\x84\x7d\x1b\xd2\x44\xbb\xf3\x2f\x5d\xc4\xf7\ -\xf6\x9f\x69\x77\xfe\xc5\x93\x8b\xf8\x62\x3e\x04\x58\xa4\xfc\x19\ -\x09\x3b\x27\x15\xbf\x07\x58\x7c\x89\x3e\x27\x53\xbe\x17\x58\x80\ -\x45\xc9\x9f\x19\x87\x2a\xe6\xc5\x06\x1c\x2f\x44\xfe\xfc\xe0\x30\ -\xc5\xdc\xe4\xe0\x43\x58\xc2\xb3\xd7\x63\xe1\x83\x5a\x00\x36\x60\ -\xf1\xf5\xb8\x00\x34\xcf\x06\x1c\x20\x30\xbb\xd3\xd7\x7b\xfd\x7b\ -\x3f\x8e\x5e\x5e\xff\xff\xe3\xcd\x61\xf1\xaf\x73\xfd\xec\xe9\xe5\ -\x6a\xb5\x5a\xed\xbe\x7d\x7f\x62\x62\x28\xc5\xed\x67\x96\xce\x4f\ -\xd4\x6f\x4d\x12\xe0\x1b\x61\x89\x14\xdb\xbb\xfc\x72\xfe\xe7\x75\ -\x84\x3f\x6f\x2f\x7e\xfa\xe7\xa5\xa2\xbc\x7e\xf6\xf4\x52\x84\x01\ -\x04\x38\x74\x7c\x97\x04\xf7\xb1\x08\xdf\x76\x3b\xca\x39\x83\x2c\ -\xc2\x00\x02\x1c\x2e\xbe\xa9\xa3\x3b\x25\xc2\xf7\x05\x39\x47\x8c\ -\x45\x18\x60\xbe\x61\x3f\x84\x95\x23\xbe\xbb\xd3\xd7\xd9\xe3\x7b\ -\x33\xc2\x53\x7c\xde\x5e\xdc\x79\xdb\x3a\xfa\x1d\x04\x00\x01\x16\ -\xdf\x10\xe1\x5d\x12\xe1\x5c\x21\x16\x61\x00\x01\x2e\x1a\x8b\x5a\ -\xe1\x5d\x1a\xe1\x1c\x21\x16\x61\x00\x01\xce\x1e\x89\x08\xe1\x4d\ -\x11\xe1\xd4\x21\x16\x61\x72\x68\xf9\xef\x7b\xc5\xfc\x08\x70\xe2\ -\xf8\x46\xb4\x24\xc2\x57\x21\x16\x61\x00\x01\x16\xdf\x4a\x11\x4e\ -\x11\x62\x11\x06\x10\xe0\x61\xe2\x9b\x2a\xc2\xa9\xb6\x61\x11\x26\ -\x25\xb7\xa1\xe9\x71\x6e\xba\x0e\x70\x8a\x08\x44\x7b\xbf\x57\x84\ -\x71\x98\x42\x1f\xf3\xe2\x2f\x63\xe8\x60\xeb\xcd\x19\xe1\x1c\xdf\ -\x3b\x4c\xe3\x2f\x6c\xbf\xfe\xea\x50\x45\x7c\xef\xeb\xc6\xf3\x3f\ -\xf6\xfe\xe1\x44\xdd\x06\x78\xe9\xf6\xd5\x72\x7c\x53\x46\x78\xe9\ -\x36\x6c\x0b\x46\x84\x31\x1f\x03\x05\x58\x7c\xd3\x13\x61\x1c\xb2\ -\x98\x8b\xb4\xfc\x6d\x48\x9d\xc7\x77\xdf\x9f\x1b\xbd\x6f\x84\x6b\ -\xfc\x35\x88\xf0\xd8\x61\xeb\xaf\x2c\x34\x07\x2d\xea\x2e\xc0\x4b\ -\xb6\xad\x5e\x37\xdf\x08\x11\xf6\x17\x37\xe0\x10\xde\x4f\x89\x17\ -\x13\xee\x20\xc4\xd0\xd5\x2d\x68\xf1\x7d\x38\xc2\x2d\x3f\x3f\x00\ -\x02\xdc\x21\xef\xf9\x4e\xdf\x82\x01\x10\xe0\x45\xdb\xd5\x48\xf1\ -\x4d\xb9\x05\xcf\x8d\xb0\x2d\x18\xc0\x06\x3c\xe4\xe6\x1b\x21\xc2\ -\x74\xf0\x82\xb7\xe2\xf7\x02\x43\xd8\xa6\x4c\xf8\x1e\xe0\x6e\x02\ -\x6c\xab\xf2\x7c\x01\xd8\x80\x6d\xbf\xb6\x60\x00\xfa\x0f\xf0\x9c\ -\x6d\xca\x87\xae\xd2\x9a\x13\x61\x5b\x30\x20\xc0\xd8\x82\x01\x10\ -\x60\xdb\xaf\x2d\x98\x46\xae\x3f\x1f\xc4\x82\xbf\xdb\x32\xf1\x03\ -\x58\x36\x60\x5b\xb0\x07\x01\xc0\x06\x5c\xe0\x15\x8a\xed\x37\xdc\ -\x16\x0c\x20\xc0\x8d\x71\xfb\xb2\x8f\x2d\xd8\xf3\x08\x08\xb0\xed\ -\x17\x5b\x30\x53\x5f\x40\x79\x1f\x18\x66\xbd\xff\x3b\x54\x80\x89\ -\xbb\x05\x03\xd8\x80\x5b\x79\xd5\x3d\xf1\xb6\xa5\xed\x37\xf6\x16\ -\xec\x36\x34\x20\xc0\x00\x80\x00\x53\x8e\xdb\xd0\xcc\xe5\x7d\x60\ -\x46\x36\xf7\xfd\xdf\x21\x02\xec\xf6\x73\x1d\x3e\x8c\x05\xd0\x59\ -\x80\xbd\x5f\xd8\xe9\x16\xe5\x79\x05\x04\x98\x51\xb9\x0d\xcd\xec\ -\x17\x50\x6e\x43\x33\xa0\x25\xb7\x9f\xbb\x0f\xb0\xdb\xcf\x75\xb9\ -\x0d\x0d\x60\x03\x06\x00\x01\x06\xfa\xe3\x36\x34\x23\x59\x7a\xfb\ -\xb9\xb9\x00\xfb\xa0\x4e\xe7\x07\xb8\xe7\x17\xb0\x01\x33\x2a\x1f\ -\xc4\xc2\x16\x0c\xf9\xb7\x5f\x01\x06\x00\x1b\x70\xe2\x57\x28\x3e\ -\x01\x1d\x82\x4f\x42\x03\xd8\x80\x81\x12\x2f\x7e\x13\xdd\x9e\x83\ -\xde\xe7\x5b\x80\x01\xc0\x06\x0c\xd8\x12\x60\x8c\xb9\x16\x60\x00\ -\xb0\x01\x03\xb6\x05\x18\x63\x9e\x05\x18\x00\x6c\xc0\x80\xad\x01\ -\xc6\x98\x63\x01\x06\x00\x1b\x30\x60\x7b\x80\x31\xe6\x57\x80\x01\ -\xc0\x06\x9c\xce\xfa\xec\xa3\x67\x37\x80\xe3\xcd\xa1\x07\x01\x5b\ -\x30\xe6\xd6\x06\xcc\x63\x7e\x1c\xbd\xf4\x20\x20\xc2\x98\xd7\x02\ -\xf3\x2a\xc0\x00\x50\x41\x53\x01\xde\x7d\xfb\xee\x15\x74\xcf\xaf\ -\x38\x3d\xbf\xb6\x0a\x18\x68\x4e\x6d\xc0\x80\x08\x43\x85\xf9\x14\ -\x60\x00\xa8\xa0\xeb\x00\xfb\x24\xf4\x34\xa9\x3f\x80\xe5\x13\xd0\ -\xd8\x82\x31\x97\x36\x60\x40\x84\x21\xd4\x3c\x36\x17\x60\x1f\xd4\ -\xe9\x74\xf8\x3d\xaf\xc0\x60\xba\xdf\x80\xdd\x86\xde\x8f\xdb\xcf\ -\xd8\x82\x31\x87\x02\x0c\x38\xfc\xa0\xfb\xf9\x13\x60\x40\x84\x31\ -\x77\x02\xbc\xe7\x83\x36\xf1\xfd\x42\xb7\xa1\x1f\x56\xfb\xf6\xb3\ -\xf7\x7f\x81\x11\xd9\x80\x01\xdb\x48\x20\x87\xdb\x57\x4d\xff\xfa\ -\xe6\x4d\x80\x6d\xc1\x8d\x6c\xbf\x20\xc2\x8c\x3a\x67\xcd\x06\xd8\ -\x6d\xcb\x4e\x2e\x04\xcf\x23\x22\xcc\xa0\xf3\x35\xd4\x2d\x68\x5b\ -\xb0\xed\x17\x87\x64\x0b\x72\xdd\x26\x1e\xfd\xf6\x73\xb4\xb9\xf2\ -\x1e\x30\xe0\xb0\x1c\x20\xc2\xe2\x1b\x6f\x9e\x9a\x0e\xf0\x9c\xdb\ -\x97\xb6\xe0\x38\xdb\xaf\xdb\xcf\x88\x70\x99\x68\x8a\x6f\xcc\x39\ -\xb2\x01\x03\x0e\xcf\x8e\x23\x2c\xbe\x71\xe7\xa7\xf9\x00\xdb\x82\ -\x6d\xbf\x38\x44\x45\x58\x7c\x5b\x9c\x9b\x83\x51\x9f\x98\xf5\xd9\ -\xc7\xd5\xee\xf4\xb5\x93\xad\x42\x7c\x61\xee\x61\xba\xfe\xfa\xdb\ -\xa5\x08\xaf\x56\x17\x9b\x4f\xa2\xdb\xc1\x8b\xb6\x2e\x02\xbc\xfb\ -\xf6\xfd\xc9\xfa\xd9\xd3\x4b\x23\x57\x7e\xfb\x9d\xfb\x7c\x79\x26\ -\x10\xe1\xf2\x1b\xb1\xf8\xc6\x32\xf4\x7b\xc0\xa3\xdd\x8a\xf6\x6d\ -\x47\x38\x5c\x31\x1f\x02\x1c\x66\xab\xf2\xa9\xe8\xb2\xf1\xb5\xfd\ -\x22\xc2\x98\x0b\x1b\xf0\x50\x11\x4e\xb9\xfd\xda\x7c\x71\xd8\x62\ -\x1e\x04\x38\xd9\x76\xd5\x73\x84\x23\xbc\xef\x6b\xfb\xc5\xa1\x8b\ -\x39\xe8\x7c\x03\x16\xe1\xbc\xf1\x75\xeb\x19\x87\x2f\x9e\x7f\x01\ -\xce\xc2\x7b\xc2\xe9\xe3\x0b\x25\x0e\x61\x21\xf6\x9c\x0b\x70\xe3\ -\x5b\x70\x4f\x11\x8e\xf2\xbe\xaf\xed\x17\xdb\x10\x9e\xe7\x81\x36\ -\xe0\xd1\x23\x2c\xbe\x38\x9c\xf1\xfc\xc6\x76\xe0\xe9\x7c\x38\xc2\ -\x2d\xfe\xb4\xac\x54\xf1\x75\xcb\x99\xd6\x0f\x69\x3f\xb4\x43\x78\ -\x6d\xc0\x8d\x6e\xc1\x57\x11\x6e\x69\x1b\x8e\x14\x5f\xdb\x2f\x0e\ -\x6d\x3c\x8f\x83\x06\x38\x65\x04\x5a\x88\xb0\xf8\xc2\xdd\x87\xb7\ -\x10\x7b\xee\x04\x58\x84\x43\xc7\xf7\x78\x73\x28\xbe\xd8\xa2\xf0\ -\x7c\x09\xb0\x08\x97\x8e\x6f\xa4\xc7\x19\x6c\x54\x9e\x23\x01\x16\ -\xe1\x3b\x23\x1c\x25\xc4\x4b\xe3\x9b\x6a\xeb\x15\x5f\x6c\x57\x78\ -\x5e\xa6\x19\xee\x53\xd0\x29\xff\xea\xc2\xab\x08\xd7\xfa\xa4\xf4\ -\x92\xf8\xa6\xfe\x84\xb3\xf8\xd2\xea\x61\xef\x93\xd2\xc2\x2b\xc0\ -\x8d\x46\xb8\x56\x88\xe7\xc6\x37\xc7\xb7\x16\x89\x2f\x42\x8c\xf0\ -\x0a\x70\xb5\x08\x97\x0c\xf1\x9c\xf8\xe6\xfa\x9e\x5e\xf1\x45\x88\ -\x11\x5e\x01\x0e\x11\xe1\x9b\x21\xce\x11\xe3\x29\xf1\xcd\xfd\x83\ -\x34\xc4\x17\x21\x46\x78\x05\x38\x5c\x84\xef\x8a\xf1\xd2\x20\x3f\ -\x16\xdf\x92\x3f\xb9\x4a\x7c\x11\x62\x84\x57\x80\xc3\x47\xf8\xa1\ -\x20\xef\x1b\xe5\xdb\xf1\xad\xf9\x63\x22\xc5\x97\x51\xe3\x21\xc6\ -\x13\xfc\xfe\x6f\xe7\x85\x00\xef\x19\xc6\xa3\x17\x7f\x0d\xcb\xf9\ -\x97\xf2\xbf\xf7\x1e\xdf\xd2\x74\x1c\xe0\xdb\x9e\x5c\x48\x88\xb1\ -\xad\x58\x78\xd3\xf1\xf7\x01\xdf\x13\x62\x3c\x2e\x70\xef\xf5\xf0\ -\xf5\xd7\xeb\xff\xf1\xbf\xe8\x5e\xfd\xcf\x79\x61\x03\x6e\x75\x1b\ -\x16\x5e\x68\x2f\xc6\xd7\xe7\xc5\xbf\xfe\x39\xdc\xa6\xeb\xbc\x10\ -\xe0\x6c\xf1\x19\x39\xc2\x2e\x26\x98\x78\x5e\xfc\x7e\xeb\xbc\xe8\ -\x29\xc8\x77\x04\xd7\x79\x21\xc0\xb6\x61\xe1\x85\x98\xe7\xc5\xed\ -\x68\xb5\x14\xe4\x47\x82\xeb\xbc\x10\x60\x21\x16\x5e\x68\xe7\xbc\ -\xb8\x2b\x6a\x11\xa2\xbc\x67\x6c\x9d\x17\x02\x5c\xfd\xc2\xda\x6c\ -\x36\xab\x77\xa7\x6f\x84\x17\x58\x7e\x5e\x3c\x16\xbf\x14\x81\x9e\ -\x11\x58\xe7\x85\x00\x87\xf5\xf6\xec\xc3\x6a\xb5\x5a\x35\x1d\xe2\ -\xb7\x67\x1f\x56\xdb\xed\xd6\x93\x09\x91\xcf\x8b\x84\xf1\x74\x5e\ -\x08\x70\x97\x17\x56\x2b\x31\xbe\xf9\xf5\x02\xce\x0b\xe7\x85\x00\ -\xbb\xb8\x5c\x44\xe0\xbc\x70\x5e\x08\x30\xe9\x87\xb8\xe4\x05\xe6\ -\x02\x02\xe7\x85\xf3\x42\x80\x79\x64\xc8\x97\x5c\x68\x2e\x1c\x70\ -\x5e\x38\x2f\x04\x18\x17\x05\xe0\xbc\x60\x02\x3f\x0b\x1a\x00\x04\ -\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ -\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ -\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\ -\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\ -\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\ -\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\ -\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ -\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ -\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x86\x74\ -\xe0\x21\x80\xb8\xde\x9d\xbe\x99\xfd\xdf\xbe\x3d\xfb\xe0\x01\x04\ -\x01\x06\x72\xc6\x76\xca\xaf\x27\xcc\x20\xc0\x20\xb8\x01\x7e\x5f\ -\x41\x06\x01\x06\xd1\xad\xfc\x35\x89\x31\x08\x30\x88\xae\x18\x83\ -\x00\x03\x7d\x87\xf7\xa1\xaf\x5f\x88\x41\x80\xa1\x09\xbb\xf3\x2f\ -\xdd\xbe\x90\x58\x1f\xbd\xf0\x04\x83\x00\x83\xf0\xd6\xfa\x33\x0a\ -\x31\x08\x30\x08\xaf\x10\x43\x93\xfc\x24\x2c\x10\x5f\x7f\x7e\xb0\ -\x01\x83\xf0\xd8\x86\xc1\x06\x0c\x88\xaf\xc7\x05\x6c\xc0\x50\xd7\ -\xfa\xd9\xd3\xcb\x1a\x91\xd9\x9d\xbe\xde\xeb\xdf\xfb\x71\xf4\xf2\ -\xfa\xff\x1f\x6f\x0e\x45\x18\x04\x18\xfa\x88\x6f\xa4\xd8\xde\xe5\ -\x97\xf3\x3f\xaf\x23\xfc\x79\x7b\xf1\xd3\x3f\x2f\x15\xe5\xf5\xb3\ -\xa7\x97\xbb\x6f\xdf\x9f\x98\x1a\x10\x60\x08\x1b\xdf\x25\xc1\x7d\ -\x2c\xc2\xb7\xdd\x8e\x72\xce\x20\x8b\x30\x08\x30\x84\x8b\x6f\xea\ -\xe8\x4e\x89\xf0\x7d\x41\xce\x11\xe3\xab\xc7\x4e\x88\xe1\x6e\x3e\ -\x84\x05\x85\xe2\xbb\x3b\x7d\x9d\x3d\xbe\x37\x23\x3c\xc5\xe7\xed\ -\xc5\x9d\xb7\xad\xa3\xdf\x41\x00\x01\x06\xf1\x0d\x11\xde\x25\x11\ -\xce\x19\x62\x11\x06\x01\x86\x62\xb1\xa8\x15\xde\xa5\x11\xce\x15\ -\x62\x11\x06\x01\x86\x22\xf1\x8d\x62\x6e\x84\x73\x84\x58\x84\x41\ -\x80\x21\x4b\x1c\x22\x6c\xbd\xa9\x23\x7c\x15\x62\x11\x06\x01\x86\ -\xb0\xf1\x8d\x2c\x45\x84\x53\x85\x58\x84\x41\x80\x61\x88\xf8\xa6\ -\x8a\x70\xea\x6d\x18\x04\x18\xc4\x77\x76\x78\x5b\x89\x6f\xb4\x08\ -\xdb\x82\x11\x60\xa0\xeb\xad\x37\x67\x84\x97\x86\x58\x84\x11\x60\ -\xb0\xfd\x0e\x13\xdf\x94\x11\x4e\xb1\x0d\x8b\x30\x02\x0c\xe2\x3b\ -\x4c\x7c\x53\xf3\xbe\x30\x08\x30\x64\xd3\xe2\xfb\xbd\xa5\xb6\xe0\ -\xa5\x11\xb6\x05\x23\xc0\x60\xfb\x1d\x6e\xeb\x15\x61\x10\x60\x08\ -\x19\xdf\x11\xa4\x8c\x30\x20\xc0\x90\x84\xf7\x7c\x6d\xc1\x20\xc0\ -\x50\x78\xfb\x1d\x29\xbe\x6e\x45\x83\x00\x83\xcd\x77\xf0\x08\x83\ -\x00\xc3\xc0\xdb\x2f\x9e\x2f\x10\x60\xb0\xfd\xda\x82\x41\x80\xa1\ -\xef\x6d\xca\x87\xae\xd2\x9a\x1b\x61\x5b\x30\x02\x0c\xd8\x82\x01\ -\x01\x06\xdb\xef\x38\x5b\x30\x08\x30\x60\x0b\x6e\xe0\x05\x14\x08\ -\x30\x34\xc8\xf6\x6b\x0b\x06\x01\x06\xdb\x93\x2d\xd8\xf3\x88\x00\ -\x83\xed\x17\x5b\x30\x08\x30\x30\xdc\x16\x0c\x02\x0c\x8d\x98\x72\ -\xdb\xd2\xf6\x1b\x7f\x0b\x76\x1b\x1a\x01\x06\x00\x04\x18\x28\xc3\ -\x6d\x68\x10\x60\x48\xca\xed\xe7\x3a\x7c\x18\x0b\x04\x98\x0e\x79\ -\xbf\xd0\xf3\x0a\x02\x0c\x74\xc3\x6d\x68\x10\x60\x48\xc2\xed\xe7\ -\xba\xdc\x86\x46\x80\x01\x00\x01\x06\x00\x01\x86\xc6\xf8\xa0\x8e\ -\xe7\x17\x04\x18\xe8\x8e\x0f\x62\x81\x00\x03\x80\x00\x43\x6b\x7c\ -\x02\x3a\x06\x9f\x84\x46\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\ -\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\ -\x01\x40\x80\x01\x00\x01\x86\x02\xd6\x67\x1f\x3d\x08\x01\x1c\x6f\ -\x0e\x3d\x08\x08\x30\xc0\x63\x7e\x1c\xbd\xf4\x20\x80\x00\x03\x80\ -\x00\x43\x08\xbb\x6f\xdf\x9f\x78\x14\x3c\xbf\x20\xc0\x00\x80\x00\ -\x03\x80\x00\x43\x65\x3e\x09\x3d\x4d\xea\x0f\x60\xf9\x04\x34\x02\ -\x0c\x00\x08\x30\x2c\xe5\x83\x3a\x9e\x57\x10\x60\x08\xce\x6d\xe8\ -\xfd\xb8\xfd\x0c\x02\x0c\x00\x02\x0c\x00\x08\x30\x5c\x9b\xf2\x7e\ -\xa1\xdb\xd0\x0f\x8b\x70\xfb\xd9\xfb\xbf\x08\x30\x00\x20\xc0\x90\ -\x8a\x2d\x38\xee\xf6\x0b\x02\x0c\x8d\x71\xdb\xd2\xf3\x08\x02\x0c\ -\xb6\x60\xdb\xaf\xed\x17\x04\x18\xb0\xfd\x82\x00\x43\xa0\x03\xdc\ -\x16\x6c\xfb\x05\x01\x06\x00\x01\x06\x5b\xb0\xed\xb7\xec\xf6\xeb\ -\xf6\x33\x02\x0c\x03\x72\x2b\xba\x6e\x7c\x41\x80\x61\xd0\x2d\xd8\ -\xf6\xeb\xf9\x02\x01\x06\x5b\x70\x93\xf1\xb5\xfd\x82\x00\xc3\xec\ -\xad\xca\xad\xe8\xf2\xf1\xb5\xfd\x22\xc0\xc0\x30\x11\x4e\xb9\xfd\ -\x8a\x2f\x08\x30\x38\xe0\x0b\xc7\x17\x10\x60\x48\x1a\xe1\x5e\xb7\ -\xe0\x48\xef\xfb\x7a\x71\x84\x00\x03\xf7\x46\xd8\x7b\xc2\xe2\x0b\ -\x02\x0c\x85\xb7\xe0\xde\xb6\xe1\x28\xef\xfb\x82\x00\x83\x08\x0f\ -\x13\xe1\x48\xf1\xb5\xfd\x22\xc0\xc0\x10\x11\x4e\x15\xdf\xe3\xcd\ -\xa1\xf8\x82\x00\x43\x9d\x00\xb4\xf6\xbe\x70\xca\xf8\xd6\x7e\xec\ -\x41\x80\x61\xf0\x08\xb7\xb2\x0d\x47\x8a\x2f\x20\xc0\x30\x44\x84\ -\x53\xc4\x37\xc5\x2d\x67\xdb\x2f\x08\x30\x64\x8b\x70\xb4\x10\xa7\ -\x8a\x6f\xa4\xc7\x19\x04\x18\x44\x38\xf4\x36\xbc\x34\xbe\x29\xb7\ -\x5e\xf1\x85\xff\x77\xe0\x21\x80\x9f\x23\xb1\x7e\xf6\xf4\x32\x55\ -\x84\x77\xa7\xaf\x9b\x8b\x6f\x8e\xf7\x79\xc5\x17\x04\x18\x8a\x45\ -\xb8\x56\x88\xe7\xc6\x37\xd7\x07\xac\xc4\x17\x04\x18\xaa\x44\xb8\ -\x64\x88\xe7\xc4\x37\xe7\x27\x9b\xc5\x17\x04\x18\xaa\x47\xf8\x66\ -\x88\x73\xc4\x78\x4a\x7c\x73\x7f\x3b\x91\xf0\x82\x00\x43\xb8\x08\ -\xdf\x15\xe3\xa5\x41\x7e\x2c\xbe\x25\xbf\x7f\x57\x7c\x41\x80\x21\ -\x7c\x84\x1f\x0a\xf2\xbe\x51\xbe\x1d\xdf\x9a\x3f\x2c\x43\x7c\x41\ -\x80\x21\x79\x58\x4e\x4e\x4e\x2e\x77\xe7\x5f\x8a\xfe\xbe\xfb\x7c\ -\x4b\xd3\x71\x90\x6f\x7b\x5a\x1f\xbd\x58\xed\xbe\x7d\x37\x2c\xb0\ -\x07\xdf\x07\x0c\x33\x22\x83\xc7\x05\x6c\xc0\x50\x31\x36\xa5\xb7\ -\x61\xe1\x05\x1b\x30\x20\x3e\xe2\x0b\x36\x60\xb0\x0d\x0b\x2f\x08\ -\x30\x08\xb1\xf0\x02\x02\x0c\x42\xbc\xc4\xdb\xb3\x0f\xab\xed\x76\ -\xeb\x89\x05\x01\x86\x76\xc2\xb5\x5a\xad\x56\xef\x4e\xdf\x34\xfd\ -\xf5\x03\x02\x0c\xcd\x87\x2c\x7a\x8c\x45\x17\x04\x18\xc4\x58\x74\ -\x41\x80\x81\xfc\xe1\x2b\x15\x64\xc1\x05\x01\x06\x1e\x09\xe3\x92\ -\x28\x0b\x2d\x08\x30\x20\xa2\xc0\x2d\x7e\x12\x16\x00\x08\x30\x00\ -\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\ -\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\ -\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\xd7\xb3\xdd\x6e\xfd\ -\x39\x00\xe7\x05\x02\x0c\x00\x02\x0c\xd8\x7c\x00\x01\xde\xd7\xfb\ -\xf7\xef\x9f\x8c\x74\x28\x4d\xfd\xfa\xa7\x3e\x3e\xe6\xc4\xe3\xe3\ -\xcf\xe9\xbc\x40\x80\x01\x40\x80\x7b\xd2\xea\xab\x5a\xb7\x14\x3d\ -\xd6\x66\xc5\x63\x69\x06\x04\x18\x00\x86\xe4\x3e\xfd\x2d\x27\x27\ -\x27\x97\x53\xff\x9b\xcd\x66\xd3\xf5\xab\x59\xef\xe7\x2c\x9f\x93\ -\x96\x66\x64\xee\xac\x8c\x38\x27\xce\x0b\x73\x60\x03\x06\x00\x01\ -\x1e\x4f\x2b\xef\x91\x78\x2f\xc7\x63\x6f\x56\x3c\xb6\x66\x40\x80\ -\xc3\x9a\x7b\xfb\x24\xfa\xb0\xce\xfd\xfa\xdc\x4e\xf2\xb8\x78\x3c\ -\x9c\x17\xe6\x40\x80\xbd\x62\xf4\x4a\xd6\x7c\xf8\x3a\xcd\x83\xe7\ -\xbf\x1b\x5e\xad\xdc\x63\xce\x87\x2b\xae\x44\xfa\x90\xc5\x92\x8b\ -\xc9\xab\xd9\x3c\x73\x12\xf9\x43\x38\x3e\x74\xe3\xbc\x70\x5e\xd8\ -\x80\xbd\xb2\xf5\x4a\xd6\x7c\xf8\xba\xcc\x83\xe7\xdf\x06\xec\x55\ -\x6d\x7b\xaf\x6c\x97\x5e\x4c\x5e\xcd\xe6\x9f\x93\x1e\x36\x1f\x73\ -\xe2\xbc\x30\x07\xf3\x1d\x78\x08\xf2\x0f\x75\xc9\x0b\xcb\xab\xd8\ -\xb6\xe6\x23\x42\x84\xcd\x8c\xf3\x02\x1b\x70\x97\xaf\x6a\x4b\xbd\ -\xc2\x4d\x79\x21\x79\x35\x5b\x76\x4e\x5a\xdd\x7c\xcc\x89\xf3\xc2\ -\x1c\xd8\x80\x87\x7e\x85\xeb\x15\xac\xb9\x30\x37\xe6\xc2\xf3\x6e\ -\x03\xf6\xaa\xb6\xd0\xab\xdc\x9c\x17\x91\x57\xb3\xf5\xe7\xa4\x85\ -\xcd\xc7\x9c\x38\x2f\xcc\x81\x00\x77\x71\x51\x45\xe1\x62\x8a\x35\ -\x27\x51\x37\x1f\x73\xe2\xbc\x30\x07\x02\xec\xa2\x72\x31\x0d\x33\ -\x27\x51\x36\x1f\x73\xe2\xbc\x30\x07\x02\xec\xa2\x72\x31\x99\x13\ -\x73\x62\x0e\xcc\x81\x00\xbb\xa8\x5c\x4c\x98\x13\xcc\x01\x02\xec\ -\xa2\x72\x31\x99\x13\x73\x62\x0e\xcc\x81\x00\xbb\xa8\x5c\x4c\xe6\ -\xc4\x9c\x60\x0e\x10\x60\x17\x95\x8b\xc9\x9c\x98\x13\x73\x60\x0e\ -\x04\xd8\x45\xe5\x62\x32\x27\xe6\xc4\x1c\x98\x03\x01\xa6\xeb\x0b\ -\xcb\x85\x64\x4e\xcc\x89\x39\x30\x07\x02\xec\xc2\x72\x21\x61\x4e\ -\x30\x07\x02\xec\x21\xe8\xf3\xc2\x72\x21\x99\x13\x73\x62\x0e\xcc\ -\x81\x00\xbb\xb0\x0a\x5e\x58\x2e\x24\x73\x62\x4e\xcc\x81\x39\x10\ -\x60\x0a\x5d\x5c\x2e\x22\x73\x62\x4e\xcc\x81\x39\x10\x60\x0a\x5c\ -\x60\x2e\x20\x73\x62\x4e\xcc\x81\x39\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x46\xf0\x5f\x02\x01\x09\xc2\xac\x20\ -\x70\x6f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x43\xd0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -3564,592 +7287,6 @@ qt_resource_data = b"\ \x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\ \x44\x44\x44\x44\x44\x44\x44\x64\xd1\xfd\x7f\x3d\xc4\xd2\xf1\x0a\ \xaf\x45\xef\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x13\x17\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x05\x15\x08\x30\x36\xed\xcc\x19\x83\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x12\x7f\x49\x44\x41\x54\x78\xda\xed\xdd\xbd\x56\x23\xc9\x16\ -\xa0\x51\xa5\x96\x5e\x09\x03\x83\x32\xca\xa8\x87\xc6\xc0\x00\x03\ -\x83\x87\xa2\x2c\xad\x56\x53\x12\xa4\x32\xe3\xf7\x9c\xbd\xad\x3b\ -\x63\xcc\x74\xa7\x22\xe2\xcb\x13\x08\x7a\x39\x00\xd5\x3d\x3d\x3e\ -\x7c\xce\xf4\xcf\xfb\xf6\xfe\xb1\xf8\xd4\xa0\x2e\x9b\x0c\x92\xc5\ -\x55\xa4\x41\x80\x41\x64\xc5\x19\x04\x18\x10\x5b\x51\x06\x01\x06\ -\xa1\x15\x66\x10\x60\x10\x5c\x04\x19\x04\x18\x04\x57\x90\x41\x80\ -\x41\x70\x11\x64\x10\x60\x04\x17\x41\x06\x01\x06\xd1\x45\x8c\x41\ -\x80\x11\x5c\x04\x19\x04\x18\x44\x17\x31\x46\x80\x41\x74\x11\x63\ -\x10\x60\x84\x17\x84\x18\x01\x06\xd1\x45\x8c\x41\x80\x11\x5d\x10\ -\x63\x04\x18\x84\x17\x21\x06\x01\x46\x74\x41\x8c\x11\x60\x84\x17\ -\x84\x18\x04\x18\xd1\x05\x31\x46\x80\x11\x5e\x10\x62\x04\x18\x84\ -\x17\x84\x18\x01\x46\x78\x41\x88\x11\x60\x84\x57\x78\x41\x88\x11\ -\x60\x84\x17\x84\x18\x01\x46\x78\x01\x21\x46\x80\x11\x5e\x10\x62\ -\x04\x18\xe1\x05\x84\x18\x01\x46\x78\x41\x88\x11\x60\x84\x17\x10\ -\x62\x7c\xd8\xe2\x0b\x88\x30\x02\x8c\xf0\x02\x42\x2c\xc0\x08\x2f\ -\x20\xc4\x08\x30\xc2\x0b\x42\x8c\x00\x23\xbe\x80\x08\x23\xc0\x08\ -\x2f\x08\x31\x02\x8c\xf0\x02\x42\x8c\x00\x8b\x2f\x20\xc2\x08\x30\ -\xc2\x0b\x08\x31\x02\x2c\xbe\x80\x08\x23\xc0\x08\x2f\x20\xc4\x02\ -\x8c\xf8\x02\x22\x8c\x00\x0b\x2f\x80\x10\x0b\x30\xe2\x0b\x88\x30\ -\x02\x2c\xbe\x00\x42\x2c\xc0\x08\x2f\x20\xc2\x08\xb0\xf8\x32\xac\ -\xe7\x97\xd7\xe1\xfe\x99\xfe\xfc\xfe\xe5\x83\x11\x62\x1a\x39\x7a\ -\x04\xe2\x0b\x38\x77\x30\x01\xdb\x00\x98\x7e\x4d\xc1\x98\x84\x4d\ -\xc0\x88\x2f\x10\xff\x2c\x72\x1e\x09\xb0\xf8\x02\x38\x97\xd2\x70\ -\xf5\x60\x81\xd3\xd8\xc8\xd7\xcf\x67\xae\xa1\xf3\x72\x25\x6d\x02\ -\x16\x5f\x00\x67\x95\x09\x18\x0b\x9a\x3c\xd3\xaf\x29\x18\xd3\xb0\ -\x09\x58\x7c\x01\x9c\x5f\x02\x8c\xc5\x0b\x38\xc7\x28\xc7\xf5\x82\ -\x05\x4b\x23\x33\x5d\x3f\x9f\xb9\x86\xe6\xcc\x75\xb4\x09\x58\x7c\ -\x01\x3a\x9d\x6d\xce\x37\x01\x16\x5f\x00\xe7\xdc\xf4\x5c\x29\x58\ -\x94\x34\x30\xe3\xf5\xf3\x99\x6b\x68\xae\x71\x25\x6d\x02\x16\x5f\ -\x00\xe7\x9e\x00\x5b\x84\x00\xce\x3f\xd6\x71\x85\x60\xf1\x51\xd9\ -\xcc\xd7\xcf\x67\xae\xa1\xf9\x8e\xeb\x68\x13\x70\xd3\xf0\x8a\x2f\ -\x80\x61\xc4\x04\x6c\xa1\x61\xfa\x35\x05\x63\x12\x36\x01\x8b\x2f\ -\x40\xd6\x33\xd2\x39\x29\xc0\xe2\x0b\xe0\xbc\x1c\x9a\xeb\x02\x8b\ -\x89\x4a\x22\x5d\x3f\x9f\xb9\x86\xe6\x1e\xae\xa4\x4d\xc0\xe2\x0b\ -\xe0\xfc\x14\x60\x8b\x07\xc0\x39\x8a\x2b\x68\x8b\x86\x2a\x22\x5e\ -\x3f\x9f\xb9\x86\x66\x0b\xd7\xd1\x26\x60\xf1\x05\x70\xae\x0a\xb0\ -\x45\x02\xe0\x7c\xcd\xca\x95\x80\xc5\x41\x61\x91\xaf\x9f\xcf\x5c\ -\x43\xb3\x87\xeb\x68\x13\xb0\xf8\x02\x38\x6f\x4d\xc0\x16\x03\xa6\ -\x5f\x53\x30\x26\x61\x13\xb0\xf8\x02\xe0\xfc\x15\x60\x1f\x3e\x80\ -\x73\x58\x80\x81\xab\x32\x5d\x3f\x67\xfc\xf7\x05\x01\xf6\xd6\x05\ -\xe0\x3c\x16\x60\x1f\x36\x00\xce\xe5\x2d\x16\x1f\x32\xec\x97\xf9\ -\x3a\xd6\xb7\xa1\x29\x29\xd3\x37\xa3\x53\x4d\xc0\xe2\x0b\xe0\x9c\ -\x16\x60\x1f\x2a\x00\x89\xcf\xeb\xc5\x87\x09\xfb\xf8\x36\xb0\x6b\ -\x68\xea\x88\x7e\x1d\x1d\x7e\x02\x16\x5f\x00\xe7\xb7\x00\x83\xe9\ -\xd7\x73\x00\xe2\x07\xd8\xf4\x0b\xe0\x1c\x17\x60\x1f\x5a\xb3\x49\ -\xc4\x34\x02\x38\xcf\xc7\xb7\xf8\xb0\x62\xc5\xf7\x2b\x5f\x8e\x69\ -\xfb\xbc\xb3\xb3\xde\xa8\x29\xda\x97\xb2\x4e\xe2\x1b\x3b\x06\x97\ -\xff\xf7\x0e\x47\x88\xb1\xcf\xb3\xee\xe5\xa7\xc7\x87\xcf\x48\x11\ -\x5e\xa2\x7d\x38\xe2\x6b\x4a\x31\x01\x9b\x80\x33\xac\xb5\xcc\xcf\ -\x3a\x4a\x84\x05\x38\x79\x04\x1c\x98\xe2\x2b\xc2\xf3\xae\xb1\xac\ -\xcf\x5a\x80\xc5\x37\x54\x04\x1c\x9a\x02\x6c\x2d\xcd\xb9\xb6\x44\ -\x78\x5e\x21\xbe\x05\x2d\xbe\x82\x02\x11\xf6\xf4\x96\x7d\x98\x75\ -\xef\x46\x38\xf7\x8f\x3e\x04\xf1\xbd\x76\x00\x08\xb2\x03\xcf\xf3\ -\x69\xf7\xac\xf6\x3e\x33\x11\x16\x60\x82\x1c\x6e\x22\xec\x80\xe3\ -\x30\xdd\x3e\xb3\x46\xe7\x33\xf5\x1d\x7a\xb6\xe9\xb7\xe7\x06\xcb\ -\xfa\x73\x26\x87\x9a\x35\x33\xdb\x9a\xca\xf8\xdc\x67\xfd\x79\xf0\ -\xb4\x01\x16\xdf\x3e\x07\xea\xf3\xcb\x6b\xe8\x0d\x7e\xfe\xf7\x13\ -\x5e\x51\x98\x79\xff\x8a\xb0\x00\x8b\x6f\xe0\x29\x2c\xda\x06\x17\ -\x5c\x6b\x27\xda\xba\x12\x61\x01\x16\xe0\xe0\x61\x98\x75\x93\x9b\ -\x74\xad\x9d\x0c\x7b\x37\x5b\x84\x05\x58\x7c\xd3\x4e\x65\x33\x6c\ -\x76\xc1\x1d\x73\xdd\x44\xfa\xd1\xc6\x68\x6b\x4c\x84\x05\x58\x7c\ -\x13\x85\x62\xb4\x0d\x2f\xba\xd6\x4f\xf6\x35\x26\xc2\x02\x2c\xbe\ -\xc9\x82\xd1\x7b\xd3\x0b\xaf\x35\x64\x8d\x89\xb0\x00\x0b\x70\xda\ -\x68\xf4\xd8\xf4\xc2\x2b\xc4\xd6\x97\x08\x0b\xb0\xf8\x0a\x47\xa3\ -\xcd\xef\x4b\x55\x42\x6c\x7f\x8a\xf0\x6c\x11\x1e\xfe\x2f\x61\x89\ -\x6f\xac\x7f\xc7\x92\x7f\xfd\xe7\xeb\xff\x1b\xe2\x9b\x67\x9f\xb4\ -\xfe\xac\x23\xad\xad\x4c\xfb\x64\xf4\x7e\x2c\x1e\xa0\x0d\x31\xeb\ -\xdb\xb8\xe0\x52\xfb\x56\xc5\xb3\x33\x05\xa7\x0d\xb0\xf8\x3a\x48\ -\xaf\x3d\x2f\x57\xcd\xd4\x8c\x49\xa6\xb5\x25\xc2\x02\x2c\xbe\xac\ -\x3a\x0c\x3c\x2f\x6a\x46\x25\xeb\xfa\x12\xe1\x7e\xfc\xd7\x90\xc4\ -\x77\xa8\x67\x72\xed\x67\x7c\x5b\xff\x3b\xa9\x58\x47\x6b\xf7\x61\ -\xe6\xf5\x65\x6f\x99\x80\x53\x4d\xbf\x16\x3c\xf4\x9f\xee\xec\xc3\ -\x7c\x93\xf0\x68\x53\xf0\x70\x01\x16\x5f\xa0\x66\x64\xec\x41\x11\ -\x1e\xe5\x9f\xc5\x15\xb4\xf8\x82\x3d\x88\xe7\x93\x7d\x02\x8e\x3c\ -\xfd\x5a\xd8\x80\x49\xd8\x14\x6c\x02\x06\xc0\xc0\x60\x02\x8e\x3f\ -\xfd\x5a\xd4\x80\x49\xd8\x14\x3c\xe4\x04\x9c\xe9\xbf\x74\x04\x80\ -\xee\x0c\x13\x60\x6f\x93\x00\xce\xab\x6c\xba\x07\xd8\xf4\x0b\x40\ -\xc6\xfe\x98\x80\x01\x30\xfd\x66\x0b\x70\xc6\xe9\xd7\xc2\x06\x30\ -\x05\x9b\x80\x01\xa0\x93\x6e\x5f\xc3\xce\xfe\xb3\x5f\xbf\x92\x04\ -\x8c\x28\xeb\x2d\x5d\x8f\x5f\x4b\xea\x32\x01\xfb\xe2\x15\x00\x23\ -\xe9\xd1\x25\x57\xd0\xde\x32\x01\x9c\x4b\x1d\x34\x1f\xb9\x4d\xbf\ -\xff\xe7\x2a\x1a\x10\xdf\x71\xb4\xbc\x8a\x36\x01\x8b\x2f\x80\xf3\ -\x28\xfa\x04\x6c\xfa\xb5\xe8\x01\x13\xb0\x29\xd8\x04\x6c\xd1\x03\ -\xd0\x4d\xb3\x00\x9b\x7e\x01\x0c\x02\x33\x68\xd5\x2b\x13\xb0\xc5\ -\x0f\x38\x7f\x88\x3a\x01\x9b\x7e\x01\x30\x05\x9b\x80\x01\x30\xfd\ -\x76\x57\xfd\x9b\x5e\xa6\xdf\xf5\x7c\x23\x1a\x10\xe1\xb1\xd4\xfc\ -\x46\xb4\x09\x18\x40\x7c\x89\x36\x01\x9b\x7e\x4d\xc1\x80\xf8\x9a\ -\x82\x4d\xc0\x36\x05\x00\xc3\xa8\x16\x60\xd3\x2f\x80\x17\xfd\x08\ -\x6a\xf5\xcc\x04\x6c\x73\x00\xce\x17\xa2\x4c\xc0\xa6\x5f\x80\x31\ -\xf9\x9e\xc9\x38\x5d\x33\x01\x03\x98\x80\xe9\xa0\xf8\x37\xbb\x4c\ -\xbf\xde\x54\x01\xf1\x8d\xaa\xe4\x37\xa2\x4d\xc0\x00\x30\xfb\x04\ -\x6c\xfa\x35\x05\x03\xa6\x5f\x53\xb0\x09\x18\x00\x86\x25\xc0\x00\ -\xd0\x41\xb1\x2b\x68\xd7\xcf\xf5\xb8\x86\x06\xf6\x70\xfd\x5c\x5e\ -\x89\x6b\x68\x13\x30\x00\xcc\x3a\x01\x9b\x7e\x4d\xc1\x80\xe9\xd7\ -\x14\x6c\x02\xb6\x89\x00\x18\x9e\x00\x03\x78\x71\x67\xc6\x00\xbb\ -\x7e\x06\x10\xdf\x8c\xf6\xf6\xcf\x04\x6c\x43\x01\x30\xdb\x04\x6c\ -\xfa\x05\xc0\x14\x6c\x02\x36\x05\x03\x38\x27\x72\x4c\xc0\x00\xc0\ -\x36\x9b\x7f\x87\xc9\xf5\x73\x5f\x7e\x2f\x38\xf7\x64\xf3\xfc\xf2\ -\x7a\xf3\x7f\x63\x8d\xd0\xde\x96\xdf\x09\x16\x60\x11\x26\xc9\x01\ -\x6a\xbd\x58\x3f\x8c\x15\xe0\x93\xc7\x26\xbe\xb4\x3f\x20\xcf\x9f\ -\x5f\xcb\xc3\xf2\xda\xff\x5f\x97\xff\x1c\xd6\x14\xb4\xb5\x69\x02\ -\x36\xfd\x8a\x30\x71\x27\x13\xeb\xca\x1a\xa3\xcd\x14\x6c\x02\x0e\ -\xb0\xd9\x1c\x98\x0e\xc4\x5a\xff\xcc\xd6\x16\x0c\x34\x01\x9b\x7e\ -\x4d\x2b\xe4\x9c\x42\xac\x35\xeb\x8e\xb2\x53\xb0\x00\x3b\x18\x71\ -\xf8\x59\x73\xd6\x1f\x1d\x02\xec\xf7\x80\x1d\x84\xec\x38\xf0\xfe\ -\xfc\xfe\x95\xf2\xf0\xbb\xfc\xf7\x76\xf8\xc3\x36\x77\x4d\xc0\xa6\ -\x5f\x01\x46\x70\xac\x45\xeb\x91\x32\x53\xb0\x09\x18\x36\x4c\x7d\ -\x78\x3e\x5e\x7c\xd8\xcb\xb7\xa0\xc1\x84\x51\xe5\x79\x09\x83\xf5\ -\x49\xa1\x09\xd8\xf5\xb3\x37\x5f\x87\x1b\x9e\x1d\x94\xeb\xa5\x2b\ -\x68\xf1\xe5\x46\x38\x04\xc4\xb3\x74\x16\x30\xc4\x04\x0c\x82\x81\ -\x67\x0a\x02\xec\x8d\x97\x6a\xa1\xc0\x33\x76\x26\xd0\xc2\xaa\xaf\ -\x4a\xfb\xf9\xaf\xcd\x26\x0a\x58\xc7\xd6\x32\xf7\xf9\xe9\xd7\x91\ -\x4c\xc0\x38\xb0\xf0\xec\x3d\x4f\x3a\x10\x60\x53\x83\x03\x0b\x9f\ -\x81\xb3\x81\x0e\x7e\xbc\x82\x76\xfd\x6c\x93\x39\xf0\xb1\xbe\xad\ -\x71\xb6\xf9\xee\x1a\xda\x04\xec\x70\x72\x30\xe1\x33\x82\x0e\x04\ -\x58\x7c\x1d\xec\xf8\xac\x9c\x15\x08\x30\x0e\x25\xcf\x0e\x9f\x99\ -\x08\xe7\xf0\xed\xcf\x80\xfd\xfc\xd7\x86\x72\x90\x63\xdd\x5b\xf7\ -\xec\x73\xeb\xe7\xc0\x26\x60\x87\x90\x43\x08\x9f\xa1\x33\x83\x0e\ -\x04\x18\x07\x37\x3e\x4b\x11\x46\x80\xb1\x89\x1c\xd8\xf8\x4c\x49\ -\x1e\x60\x3f\xff\xc5\x41\x8d\xcf\xd6\x0b\x3c\xfb\xdd\xea\xa9\x09\ -\xd8\xe6\x71\x40\xe3\x33\x86\x91\x26\x60\x70\x30\xe3\xb3\xf6\x22\ -\x8f\x00\x83\x03\x19\x9f\x39\xf1\x03\xec\xe7\xbf\xde\x5a\x1d\xc4\ -\xf8\xec\xa1\x9c\x6b\x5d\x35\x01\xe3\x00\xc6\x1a\xf0\x42\xcf\x28\ -\x13\x30\x36\x0b\x00\x02\xec\xad\x1e\xc0\x8b\x7d\x38\xff\xfc\x7d\ -\x4a\x3f\xff\xb5\x51\xbc\xa4\x60\xcf\xd8\x33\xd4\x71\xf9\x77\xa1\ -\x4d\xc0\x38\x48\xb0\x26\xbc\xa4\xd0\x81\x00\xdb\x24\x0e\x5a\xac\ -\x0d\x10\x60\x00\xbc\xe0\x0b\x30\x36\x87\x09\x07\x6b\x04\x04\x18\ -\x07\x2b\x58\x2b\x5e\xf4\x83\x06\xd8\x37\xa0\x71\xa0\x62\xcd\x78\ -\x36\xd4\x73\xd9\x59\x13\xb0\xb7\x52\xcf\x06\x6b\xc6\xb3\xa1\xf7\ -\x04\x0c\xde\xd8\xb1\x66\x40\x80\xc1\x41\x8a\xb5\x63\x0a\x16\x60\ -\x6c\x06\x07\x28\xd6\x10\x94\x73\x3a\xff\x0f\x5f\xc0\x12\x5e\x00\ -\xea\x7b\x7a\x7c\xf8\x7c\x7b\xff\x58\x4e\x1e\x85\xe8\x9a\x5c\x88\ -\xbe\x96\xec\x3b\x86\x9e\x80\x11\x5d\x20\xd7\xb9\xe4\x45\xb7\xaf\ -\xe5\x72\x24\xf6\x38\x44\xd7\xf4\x8b\x3d\x69\xbf\x51\xdf\xdb\xfb\ -\xc7\x22\xc0\x36\xb9\xc3\x00\xfb\x13\xfb\x4f\x80\x6d\x6a\x1c\x02\ -\xd8\xa7\xf6\xa1\x00\x63\x33\xdb\xf4\xd8\xb7\xd8\x97\x95\x02\x7c\ -\x12\x5f\x9b\x17\x60\xcd\xd9\x27\xc4\xe5\x3c\x3d\x3e\x7c\x2e\x02\ -\x2c\xbc\xde\xb2\xb1\x9f\xb1\x5f\xdb\xf3\x6b\x48\x36\x29\xc0\xae\ -\x33\x52\x8c\x05\x58\x74\x01\xc4\x78\x1a\xe9\xaf\xa0\x45\x77\x0c\ -\x36\x2d\xf6\xbd\x3d\x6d\x02\xb6\x01\x01\x30\x15\x0b\xb0\xe8\x02\ -\x88\x71\x44\xe1\xaf\xa0\x45\x77\x7c\x36\x24\xce\x06\x7b\xdf\x04\ -\x6c\x63\x01\xd0\xf8\xac\xce\x1a\xe2\x53\xa4\xe9\x57\x78\x01\xe6\ -\x3e\xbb\x33\xc5\x78\x99\x3d\xc0\xa2\x3b\x37\xd7\xcf\x38\x3f\xc8\ -\x7a\x3e\x9c\x6c\x1c\x00\x4c\xc6\xed\x1d\x7d\xc4\x78\xbb\xc5\x1a\ -\x64\x86\x18\x47\x1b\xbc\xa6\xbd\x82\x36\x01\x3b\x00\xc1\x39\xe2\ -\xfc\x30\x01\x03\x80\xa9\x58\x80\xf1\xf6\x0a\xd6\x20\x02\x0c\x00\ -\x08\x30\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x84\xe6\xcb\x2f\x58\ -\x8b\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\ -\x00\x02\x0c\x00\x02\x0c\xdf\xf0\x6b\x1f\x58\x93\x20\xc0\x00\x20\ -\xc0\xe4\xe0\xbf\xc1\x8a\x35\x09\x02\x4c\x07\xae\xfb\xb0\x26\x41\ -\x80\x01\x40\x80\xc9\xc1\x75\x1f\xd6\x24\x08\x30\x1d\xb8\xee\xc3\ -\x9a\x04\x01\x06\x00\x01\x26\x07\xd7\x7d\x58\x93\x20\xc0\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x2b\xf8\xb5\x0f\xac\x45\x04\x18\x00\x10\x60\x00\x10\x60\x00\ -\x40\x80\x01\x40\x80\x61\x27\x5f\x7e\xc1\x1a\x44\x80\x27\xf4\xe7\ -\xf7\x2f\xff\x09\x31\x00\xa6\xb5\x3c\x3d\x3e\x7c\x7a\x9b\xa5\xd7\ -\x4b\x14\x38\x37\xc8\x7a\x96\x1c\xa3\x7d\x08\x0e\x75\x07\x1f\x58\ -\x83\xcc\xe0\x14\xfd\x6d\xc8\x06\x03\x30\xf9\x8e\x28\xd4\x15\xb4\ -\xb7\x5d\x9b\x08\x9c\x07\xce\x8b\x69\x26\xe0\xb7\xf7\x8f\x34\x11\ -\x36\x19\x03\x08\xef\x30\x01\xce\xfe\x61\x0a\x31\x80\xe8\xf6\xb0\ -\x1c\x0e\x87\x43\xa6\x6b\xe8\xef\x88\xb1\x8d\x86\xbd\x8e\xb3\xc0\ -\x04\xdc\xf9\x83\xb7\x41\x01\x44\x57\x80\xc5\x18\x40\x78\x83\x71\ -\x05\x7d\x07\x21\xb6\x19\xb1\x8f\xb1\xcf\x4d\xc0\xa6\x62\x00\xd1\ -\x15\x60\x31\x06\x40\x74\xef\xe1\x0a\xba\x30\x31\xb6\x69\xb1\x3f\ -\xed\x61\x56\x4f\xc0\x99\xfe\x18\x47\xab\xc5\x67\xa3\x03\xa2\xcb\ -\x2d\x6f\xef\x1f\xcb\x72\xfe\x3f\x08\xb0\xb7\x6e\x9b\x19\xfb\x10\ -\xfb\x54\x80\x1d\x02\x36\x35\xd8\x7f\xf6\xa7\x00\xe3\x30\xb0\xc9\ -\xb1\xdf\xec\x49\x04\xd8\xa1\x60\xc3\x83\x7d\x66\x0f\x4e\x1f\x60\ -\xbf\x86\x34\xc0\x22\x77\x38\x00\xa2\x9b\x8f\x00\x33\xec\xc4\xe2\ -\x30\xc0\xf4\x2b\xba\x29\x02\xec\x57\x91\x00\x84\x97\xfa\xde\xde\ -\x3f\x96\xc3\xe1\x70\x38\x7a\x14\x98\x5c\xb0\x86\xc4\x97\xf6\x04\ -\xd8\x66\x70\x80\x62\xed\x80\x00\x83\x83\x14\x6b\x06\x01\xc6\x14\ -\xec\xd9\x60\xcd\x78\x36\xb4\x08\xf0\xf9\x07\xc3\x78\x63\xf7\x6c\ -\xb0\x66\xa0\xbc\xcb\xce\x9a\x80\xbd\x95\x3a\x50\xb1\x56\xa0\xf7\ -\x04\x0c\x0e\x56\xac\x11\x2f\xfa\x08\xb0\xcd\x01\x80\x00\x83\x09\ -\x07\x6b\xc3\x0b\x3e\x02\x6c\x93\x38\x68\xc1\x9a\x60\x6a\x57\xbf\ -\xf5\xec\x4f\x52\x3a\x48\xbc\xac\x60\xcf\xd8\x2b\x94\xf5\xf5\x37\ -\x8d\x4c\xc0\x36\x0a\xe0\x25\x85\x0e\x04\x18\xc0\x8b\x3d\x02\x8c\ -\xcd\xe2\xad\x1e\x6b\x80\xc4\x01\xf6\x17\xb1\x70\x00\xe3\xb3\xf7\ -\x42\x4f\x39\xd7\xba\x6a\x02\xc6\x41\x8c\xcf\x1c\x46\x99\x80\xf1\ -\xd6\xea\x40\xc6\x67\x0d\x02\x0c\x0e\x66\x7c\xc6\x5e\xe4\xf3\x04\ -\xd8\xcf\x81\x6d\x1e\x07\x34\x3e\x5b\xd8\xef\x56\x4f\x4d\xc0\x38\ -\xa8\xf1\x99\x7a\x81\x67\xa4\x09\x18\x9b\xc8\x81\x8d\xcf\x12\x04\ -\x58\x84\x71\x70\xfb\x0c\x71\x66\x84\xf2\xe3\xcf\x79\xfd\x5d\x68\ -\x87\x90\xc3\x08\xeb\xde\x7a\x67\x9b\xef\xbe\x4f\x65\x02\xb6\xa1\ -\x1c\xe4\xf8\xcc\x3c\x3b\x3a\x10\x60\x11\x76\x28\xe1\xb3\x72\x56\ -\x20\xc0\xe0\x60\xf7\x19\x21\xbe\x39\xac\xfa\x5d\x5f\x3f\x07\x76\ -\x40\x39\xac\xb0\xa6\xad\x69\xee\xf3\xd3\xdf\xd3\x30\x01\xdb\x60\ -\x0e\x7e\x7c\x06\xce\x06\x3a\x10\x60\x07\x96\xe7\x89\x67\x0f\x1d\ -\xac\xfe\x73\x93\xae\xa1\x1d\x5c\x26\x08\xac\x5f\xeb\x97\x75\xd6\ -\xfc\x39\x67\x13\xb0\x8d\x86\x30\x78\xc6\xce\x04\x3a\x10\x60\xb8\ -\x12\x08\xa1\xf0\x4c\xa1\x36\x57\xd0\xa6\x09\x4c\x16\xd6\xa8\x35\ -\x4a\x61\x45\xaf\xa0\xfd\xe7\x09\x11\x10\x3c\x3b\xf1\xa5\x5c\x2f\ -\x4f\x1e\x95\xc3\x8d\x75\xcf\xda\x61\x67\x6d\x42\x49\x7e\x06\xec\ -\xcd\x97\x3b\xc2\x22\x2e\x9e\x0f\x74\x09\xb0\x6b\x68\x53\x06\xbe\ -\x54\xe4\x59\x40\x99\x4e\xde\x1d\x54\x5f\xc6\x12\x60\xfe\x95\xed\ -\x46\xc2\xfa\xb3\xe6\x10\x60\xf1\xc5\xc1\x68\xdd\x59\x6b\xe4\x08\ -\xb0\x08\x3b\x04\xc9\x73\x40\x5a\x6f\xd6\x17\x75\xe2\x7b\x38\xf8\ -\x16\x34\x34\x0b\xd8\x2c\x87\xa5\xe8\xce\xb5\xbe\x44\x78\x5e\x9b\ -\xbf\x54\x65\x0a\x76\x30\xb2\x7d\x6a\x19\xe5\x57\x9b\x2e\xff\x39\ -\xac\x2f\x93\x30\xed\xa6\x5f\x01\x16\x60\x12\x1d\xa6\xd6\x8f\xf5\ -\xc2\x58\x01\x76\x05\x0d\x13\xbd\x68\x9d\x0f\xdb\xcb\xab\xc7\xaf\ -\xff\x9b\x7c\xeb\x45\x84\xe7\xb4\xeb\xf7\x7a\x4d\xc1\xa6\x5f\xc0\ -\x24\x6c\xfa\xdd\xf6\x37\x32\xfc\x25\x2c\x00\xe8\x40\x80\x4d\xbf\ -\x80\x73\x82\xd9\x02\xec\x4f\x53\x02\x90\xd9\x9e\x0e\x9a\x80\x01\ -\x4c\xc1\xcc\x36\x01\x9b\x82\x6d\x28\x00\xd3\xaf\x09\x58\x7c\x01\ -\xc8\x33\x01\x03\xe0\xc5\x9d\xfb\x15\xbb\x3e\xf6\x3b\xc1\x36\x11\ -\x30\x0e\xbf\x17\x5c\x57\x89\x1f\xbf\x9a\x80\x01\x60\xe6\x09\xd8\ -\x14\x6c\xfa\x05\x4c\xc1\xa6\x5f\x13\x30\x00\x0c\x4d\x80\x01\xa0\ -\x83\xe2\xbf\xc3\xeb\x1a\x7a\x1f\xd7\xcf\x40\x49\xae\xa1\xcb\x2a\ -\xf9\xb7\x2f\x4c\xc0\x00\x10\x61\x02\x36\x05\x9b\x7e\x01\x53\xb0\ -\xe9\xd7\x04\x2c\xbe\x00\x0c\xa9\x4a\x80\xfd\x7d\x68\x6f\xa8\x00\ -\xa6\x5f\x13\xb0\x09\x18\x70\xbe\x90\x63\x02\x36\x05\xdb\x1c\x00\ -\xa6\x5f\x13\x30\x80\x17\x7d\x2f\xfa\xc3\xa9\x3e\xa5\xfa\x46\xb4\ -\x4d\x01\x8c\xc3\xf7\x4d\xc6\x98\x7e\x4d\xc0\xe2\x0b\x40\xd4\x09\ -\xd8\x14\x2c\xc2\x80\x29\xd8\xf4\x6b\x02\x16\x5f\x00\x86\xd0\x24\ -\xc0\xbe\x11\x0d\x80\xe9\xd7\x04\x6c\xfa\x05\x9c\x3f\xe4\x98\x80\ -\x4d\xc1\x16\x3f\x80\xe9\xd7\x04\x0c\x60\x10\x30\x08\x74\xd7\x7c\ -\x2a\xcd\xfe\x8d\x68\x8b\x1e\x18\x89\x6f\x44\xf7\x99\x7e\x4d\xc0\ -\x00\xe2\x4b\x27\xcd\x03\xec\x67\xc1\x00\x63\x70\x23\xd7\xb7\x4f\ -\x26\x60\x8b\x1d\x70\x2e\x91\x61\x02\x36\x05\x03\x90\x7d\xfa\x3d\ -\x1c\x3a\x7c\x09\xeb\x52\xa6\x2f\x64\x79\xcb\x04\x46\x96\xf9\xe7\ -\xc1\xbd\x86\x42\x57\xd0\x00\x90\x2d\xc0\xae\xa2\x01\xc6\x90\xf5\ -\x96\xae\x67\x87\x4c\xc0\x16\x36\x00\x19\x03\x6c\x0a\x06\x20\x63\ -\x7f\x4c\xc0\xa6\x5f\x00\xe7\x55\xd6\x00\x9b\x82\x01\xc8\xd6\x9d\ -\xa1\xc2\x17\xf5\xd7\x92\xbc\x55\x02\x33\x89\xfe\x2b\x49\xa3\x0c\ -\x7d\xae\xa0\x2d\x66\x00\xb2\x4f\xc0\x91\xa7\x60\x93\x30\x60\x60\ -\x30\xfd\x9a\x80\x2d\x6c\xcf\x07\xb0\x07\x4d\xc0\xb9\xa6\x60\x93\ -\xf0\x7d\x9b\xde\xb3\x02\xf1\x8d\x38\xfd\x0e\x3b\x01\x47\xff\x56\ -\xb4\xb7\xcc\xff\x9e\xc1\x4f\xcf\xc2\xb3\x62\xcf\x1a\x5b\xbb\xce\ -\x3c\x2b\xf1\x35\x01\x27\x9a\x82\x33\x4f\x77\x5b\x37\xbb\x69\x98\ -\x12\xeb\xcb\x3a\xca\xf9\x92\x2b\xc0\x22\x9c\xfa\x30\x28\xb9\xd1\ -\x1d\xa2\x7c\x5d\x5b\xcf\x2f\xaf\xab\xd7\x98\xf5\x23\xbe\x02\x2c\ -\xc2\x29\x0e\x83\x9a\x9b\xdc\x41\xca\x9e\xf5\x95\x79\xfd\x88\xaf\ -\x00\x0b\x70\xd0\x83\xa0\xe5\xe6\x3e\x4f\x3e\x62\x2c\x20\xf6\xa0\ -\xf8\x0a\xb0\x08\xa7\x3e\x00\x7a\x6e\x6e\x11\x8e\x1f\x8e\x7b\xae\ -\x9a\xad\x21\xf1\x1d\xf9\x9f\x6f\x9a\x6f\x1b\x8b\xb0\x8d\xed\x10\ -\x15\x5f\xeb\x48\x7c\xa3\xc4\x57\x80\x45\x38\xfc\x86\x16\x62\xd1\ -\xb0\x86\xf2\xc5\x57\x80\x45\x38\xf4\xa6\x9f\x71\x33\x8b\xb1\x60\ -\x64\x5d\x3f\xe2\x2b\xc0\x22\x3c\xf9\x86\x8f\xb2\x89\x7d\x69\x4b\ -\x28\x32\x85\x58\x7c\x05\x58\x80\x27\xde\xec\xd1\x37\xb0\x10\xf7\ -\x5d\x5b\xb5\xbf\x54\x95\x79\xed\x88\xaf\x00\x8b\xf0\xc4\x9b\x3c\ -\xd3\x06\x16\x62\xeb\x2a\xd2\xda\xc9\xf8\xe7\x37\x05\x58\x84\x43\ -\x6c\xf0\xec\x7f\x3b\x57\x8c\x4d\xba\x5b\xd6\xcc\x28\x3f\xda\x10\ -\x5f\x01\x16\xe0\xc9\xa2\xe0\x0f\xd6\x8b\xb1\x35\x35\xff\x9a\x11\ -\x5f\x01\x16\xe1\x89\x36\xb6\xf0\x8a\xb0\xb5\x14\x63\xdd\x88\xef\ -\x5c\x8e\x1e\x7c\xce\x03\xce\x7f\xa6\x0d\x87\x7f\xbb\x67\xd2\xe2\ -\xd9\x78\xfe\x26\x60\x93\xf0\x04\x6f\xd6\x36\xaa\x29\xd8\xe1\x1f\ -\x6b\x1d\x65\x7d\xfe\xb3\x0f\x61\x47\xdb\x21\xcf\x81\x77\xf9\x1f\ -\x28\x07\x62\xbc\xac\x88\xaf\x09\xd8\x14\x3c\xf0\xdb\xb4\xe8\x9a\ -\x80\x4d\xc0\x31\xd7\x94\xf8\x0a\xb0\x08\x0f\xb8\x89\x1d\x88\x22\ -\x2c\xbe\xb1\xd7\x56\xe6\xe7\x2e\xc0\x22\x3c\xe4\xe6\x75\x18\x0a\ -\xb0\x00\xc7\x5f\x63\xe2\x1b\x43\xc8\x6f\x11\x67\x8d\x30\x02\x2c\ -\xc0\xf1\xd7\x9b\xf8\xc6\x21\xc0\x20\xc2\xe2\x3b\xc9\x9a\x13\xdf\ -\x58\x4e\x51\x3f\x28\x11\x06\xbc\xe8\x88\xef\xc8\x8e\x3e\x30\x00\ -\x9c\xe5\x02\xec\x83\xc3\x34\xe2\x39\x40\x0a\xe1\xff\x10\x87\x08\ -\x03\x38\xbf\x05\x18\x4c\x7f\xfe\xfd\x41\x7c\xf3\x04\xd8\x14\x0c\ -\xe0\xcc\x16\x60\x1f\x28\x00\xce\xea\x43\xba\x28\xf9\xf5\x24\x4a\ -\xca\xf8\x3b\xc1\xae\x9f\x11\x5f\x13\xb0\x0f\x18\xc0\xd9\x2c\xc0\ -\x3e\x68\x00\x9c\xc9\x02\xec\x03\xa7\x89\x6c\xd7\xb1\xae\x9f\x41\ -\x80\x45\x18\xc0\x39\x2c\xc0\x3e\x7c\x00\x9c\xbf\x02\x0c\x4d\x65\ -\xb9\x96\x75\xfd\x8c\xf8\x0a\xb0\x85\x00\xe0\xcc\x9d\x9e\x87\x70\ -\xc1\xef\x08\xb3\x47\xe4\xdf\x09\x36\xfd\x22\xbe\x26\x60\x0b\x03\ -\xc0\x19\x2b\xc0\x16\x08\x00\xce\xd6\x6d\x3c\x90\x1b\x5c\x47\xb3\ -\x45\xc4\x6b\x68\xd7\xcf\x88\xaf\x09\xd8\x82\x01\x70\x96\x0a\xb0\ -\x85\x03\x80\x33\x74\x3b\x0f\x67\x05\xd7\xd1\xdc\x23\xd2\x35\xb4\ -\xeb\x67\xc4\xd7\x04\x6c\x21\x01\x38\x33\x05\xd8\x82\x02\xc0\x59\ -\xb9\x8f\x07\x75\x27\xd7\xd1\xac\x11\xe1\x1a\xda\xf5\x33\xe2\x6b\ -\x02\xb6\xc0\x00\x9c\x8d\x26\x60\x4c\xc3\xc4\x9f\x82\x4d\xbf\x08\ -\xaf\x09\xd8\xc2\x03\x70\x06\x0a\x30\x16\x20\x80\xb3\xaf\x0c\x0f\ -\xb0\x10\xd7\xd1\x5c\x33\xe3\x35\xb4\xeb\x67\xc4\xd7\x04\x6c\x41\ -\x02\x38\xeb\x04\x18\x0b\x13\x70\xc6\x79\x0a\xe5\x78\x98\x15\xb8\ -\x8e\xe6\xd2\x4c\xd7\xd0\xae\x9f\x11\xdf\x76\x4e\x1e\x41\xbd\x85\ -\x2a\xc4\x80\xf0\x72\x8b\x2b\x68\x0b\x17\xc0\x19\xd6\x81\x87\xdb\ -\x80\x49\x98\x19\xae\xa1\x5d\x3f\x23\xbe\x26\x60\x0b\x19\xc0\x99\ -\x65\x02\xc6\x24\x4c\xfc\x29\xd8\xf4\x8b\xf8\xb6\xe7\x4b\x58\x1d\ -\x16\xb6\x10\x03\xc2\x8b\x2b\x68\x0b\x1d\x70\x26\x39\x93\x3a\xf0\ -\xd0\x3b\x32\x09\xe7\x33\xe2\x35\xb4\xeb\x67\xf1\xf5\x14\xfa\x70\ -\x05\x3d\xc0\xc2\x17\x62\x40\x78\x4d\xc0\x98\x86\x01\xf1\x45\x80\ -\x45\x18\x40\x7c\x05\x18\x21\x06\x84\x17\x01\x16\x61\x00\xf1\x15\ -\x60\x44\x18\x10\x5f\x04\x58\x88\x01\xe1\xf5\x14\x04\x18\x11\x06\ -\xc4\x17\x01\x16\x62\x40\x78\x11\x60\x44\x18\x10\x5f\x01\x46\x88\ -\x01\xe1\x45\x80\x11\x61\x40\x7c\x05\x18\x21\x06\x84\x17\x01\x46\ -\x88\x41\x78\x11\x60\x44\x18\x10\x5f\x04\x18\x21\x06\xe1\x45\x80\ -\x11\x62\x40\x78\x11\x60\x21\x06\x84\x17\x01\x46\x84\x01\xf1\x15\ -\x60\x84\x18\x10\x5e\x04\x18\x21\x06\xe1\x45\x80\x11\x62\x40\x78\ -\x11\x60\x84\x18\x84\x17\x01\x46\x88\x01\xe1\x45\x80\x11\x62\x10\ -\x5e\x04\x18\x21\x06\xe1\x05\x01\x46\x88\x41\x78\x11\x60\x84\x18\ -\x84\x17\x01\x06\x21\x06\xe1\x45\x80\x11\x63\x10\x5d\x04\x18\x84\ -\x18\x84\x17\x01\x46\x8c\x41\x74\x11\x60\x10\x62\x84\x17\x04\x18\ -\x31\x06\xd1\x45\x80\x41\x8c\x11\x5d\x10\x60\x84\x18\x84\x17\x01\ -\x06\x31\x46\x74\x11\x60\x10\x63\x44\x17\x04\x18\x04\x19\xc1\x45\ -\x80\x41\x8c\x11\x5d\x10\x60\x10\x64\xc1\x15\x5c\x04\x18\x04\x19\ -\xc1\x05\x01\x06\x41\x16\x5c\x10\x60\x10\x64\x04\x17\x04\x18\x84\ -\x59\x68\x41\x80\x41\x94\xc5\x16\x04\xd8\x23\x00\x71\x16\x59\x68\ -\xef\x2f\x90\xef\xb1\x79\x7d\x29\xea\x03\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x08\x4c\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ -\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ -\x15\x07\x21\x33\xc5\x23\x89\x21\x00\x00\x00\x19\x74\x45\x58\x74\ -\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ -\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x07\ -\xc6\x49\x44\x41\x54\x78\xda\xed\xdd\xb1\x4d\xe4\x40\x14\x80\xe1\ -\x19\xb4\xc9\xf6\x40\x80\xab\x20\xdf\x12\xe8\x00\x51\x82\xc3\x8d\ -\x09\xb7\x04\x44\x07\x94\xe0\x9c\x2a\x4c\x40\x0f\x64\x98\x08\x09\ -\x89\x00\x16\xc9\x66\xe6\xbd\xef\x8b\xef\xd0\x31\xf6\xbc\xdf\x63\ -\xc4\x5e\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x24\xb5\x2c\xd5\x22\x00\x80\x08\ -\x03\x80\x08\x03\x00\x22\x0c\x00\x22\x0c\x00\x88\x30\x00\x88\x30\ -\x00\x20\xc2\x00\x20\xc2\x00\x80\x08\x03\x80\x08\x03\x00\x22\x0c\ -\x04\x67\xa8\xd1\x57\x84\x6b\x5d\x7a\xff\x36\x0e\xa7\xe5\xe2\xb7\ -\x7f\x76\x1a\xeb\x7b\x2b\x5f\x1b\x10\xe0\x73\x87\xdd\xe2\x32\x07\ -\x6a\xb0\xa7\x46\x1a\x32\x8d\xd5\xed\x88\x00\x8b\x2e\x20\xc6\x08\ -\xb0\xf8\x02\x42\x0c\x79\x02\x2c\xbe\x80\x08\x23\xc0\xe2\x0b\x88\ -\x30\xc4\x0e\xb0\xf8\x02\x22\x4c\x6f\x2e\x2c\x01\x80\xc3\x01\x02\ -\x0c\x20\xc2\xa4\x50\xdd\xdc\x00\xeb\xf3\x3a\x1a\x27\x60\x00\x87\ -\x05\x04\x18\x40\x84\xc9\x29\xe5\x2b\xe8\xc3\xdb\xbd\x2b\xdf\xb8\ -\x69\x7f\x3c\xfb\xef\xbc\x3e\x3f\x5a\xb8\x80\x2e\xaf\x6f\x4b\x4b\ -\x7b\xfc\x2f\xf7\xe6\xb7\xaf\xe1\x75\x34\x19\x4f\xc0\xe2\x1b\x93\ -\xf8\xba\xb6\x3d\xcd\x10\x27\x61\xd2\x05\x58\x7c\x0d\x68\x5c\x63\ -\x11\x46\x80\x01\x92\x3f\xd0\x8b\xb0\x00\x03\x20\xc2\x08\x30\x80\ -\x08\x23\xc0\x00\x88\x30\x02\x0c\x20\xc2\x08\x30\x00\x22\x8c\x00\ -\x03\x88\x30\x02\x0c\x20\xc2\x22\x8c\x00\x03\x88\x30\x02\x0c\x20\ -\xc2\x22\x2c\xc0\x96\x00\x40\x84\x11\x60\x00\x11\x16\x61\x01\x06\ -\x40\x84\x11\x60\x00\x11\x16\x61\x01\x06\x40\x84\x11\x60\x00\x11\ -\x46\x80\x01\x10\x61\x04\x18\x40\x84\x11\x60\x00\x44\x18\x01\x06\ -\x10\x61\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\ -\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\ -\x04\x18\x40\x84\x45\x58\x80\x01\x10\x61\x04\x18\x40\x84\x11\x60\ -\x00\x44\x58\x80\x01\x10\x61\x04\x18\x00\x11\x16\x60\x00\x44\x18\ -\x01\x06\x10\x61\x11\x16\x60\x00\x44\x18\x01\x06\x10\x61\x11\x16\ -\x60\x00\x44\x18\x01\x06\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\ -\x10\x61\x11\x16\x60\x00\x44\x58\x80\xdb\xba\xc1\x4e\x4b\x75\x09\ -\x01\x44\x58\x80\x01\x10\x61\x04\x18\x00\x11\x16\x60\x00\x44\x18\ -\x01\x06\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\x10\x61\x11\x16\ -\x60\x00\x44\x58\x80\x01\x10\x61\x11\x16\x60\x00\x44\x58\x80\x01\ -\x10\x61\x52\x04\x78\x1a\xab\x0b\x0e\x20\xc2\x02\x0c\x80\x08\x5b\ -\x49\x01\x06\x40\x84\x05\x18\x00\x11\x46\x80\x01\x10\x61\x01\x06\ -\x40\x84\x05\x18\x00\x44\x58\x80\x01\x10\x61\x01\x06\x40\x84\x45\ -\x58\x80\x01\x10\x61\x01\x06\x40\x84\x45\x58\x80\x01\x10\x61\x01\ -\x06\x40\x84\x45\x58\x80\x01\x10\x61\x01\x06\x40\x84\x05\x18\x00\ -\x44\x58\x80\x01\x10\x61\x01\x06\x00\x11\x16\x60\x00\x44\x58\x80\ -\x01\x40\x84\x05\x18\x00\x11\x16\x60\x00\x44\x58\x84\x05\x18\x80\ -\xae\x22\x2c\xc0\x00\xf0\x0f\x11\x8e\x7a\x0a\x16\x60\x00\x9c\x84\ -\x05\x18\x00\x11\xce\x71\x0a\x16\x60\x00\x9c\x84\x05\x18\x00\x11\ -\x16\x60\x00\x10\x61\x01\x06\x40\x84\x05\x18\x00\x10\x60\x00\x10\ -\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\ -\x06\x00\x04\x18\x00\x04\x18\x5a\x72\x79\x7d\x6b\x11\x5c\x63\x10\ -\x60\x30\xa0\x71\x6d\xe1\x67\x3b\x4b\x80\x41\x0d\xe0\x04\x0c\x00\ -\x02\x0c\x00\x08\x30\x89\xf8\xbf\x42\x71\xef\x20\xc0\x00\x80\x00\ -\x03\x80\x00\xc3\x8a\xbc\x4a\xc4\x3d\x83\x00\x83\x81\x8a\x7b\x05\ -\x04\x18\x83\x15\xdc\x23\x08\x30\x18\xb0\xb8\x37\xe0\x6c\x3e\x09\ -\x8b\x2e\x07\xed\xb4\x3f\x5a\x10\xf7\x02\x08\x30\x18\xc0\x00\xe7\ -\xf1\x0a\x1a\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ -\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ -\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\ -\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ -\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ -\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\ -\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ -\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ -\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ -\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\ -\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ -\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ -\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10\x60\ -\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ -\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\xd8\xd8\xce\x12\x6c\x6b\ -\xda\x1f\x2d\x02\xd0\x84\xc3\xdb\xbd\x45\x10\x60\xd1\x05\xf8\xcf\ -\xd9\x24\xc6\xdb\xf3\x0a\x5a\x7c\x01\xcc\x2a\x01\x76\x43\x03\x98\ -\x59\x02\x8c\x1b\x19\x30\xbb\x10\x60\x37\x30\x80\x19\x26\xc0\x00\ -\x80\x00\x03\x80\x00\xa7\xe6\xd5\x0d\x60\x96\x21\xc0\x00\x20\xc0\ -\x00\xc0\x27\x9f\x84\xd5\x80\x87\x9b\x17\x8b\x00\xac\xea\xee\xe9\ -\xca\x22\x38\x01\x23\xbe\x80\x59\x83\x00\xdb\x10\x80\x99\x83\x00\ -\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\ -\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ -\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\ -\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ -\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\ -\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\ -\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\ -\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\ -\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ -\x00\x02\x0c\x00\x61\xed\x2c\x01\xa5\x94\x32\x0c\x83\x45\x80\x95\ -\xcc\xf3\x6c\x11\x70\x02\x46\x7c\xc1\x1e\x43\x80\x31\x18\xc0\x5e\ -\x43\x80\x01\x00\x01\xc6\x13\x39\xd8\x73\x08\x30\x00\x20\xc0\x00\ -\x20\xc0\xf4\xca\xaf\x46\x80\x3d\x87\x00\x03\x80\x00\xe3\x89\x1c\ -\xb0\xd7\x10\x60\x0c\x06\xb0\xc7\x08\xc7\x47\x51\x62\x40\x00\x38\ -\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\ -\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\ -\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\ -\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\ -\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\ -\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ -\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\ -\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x31\xed\x2c\x01\xa5\x94\x32\ -\x0c\x83\x45\x80\x95\xcc\xf3\x6c\x11\x70\x02\x46\x7c\xc1\x1e\x43\ -\x80\x31\x18\xc0\x5e\x43\x80\x01\x00\x01\xc6\x13\x39\xd8\x73\x08\ -\x30\x00\x20\xc0\x00\x20\xc0\xf4\xca\xaf\x46\x80\x3d\x87\x00\x03\ -\x80\x00\xe3\x89\x1c\xb0\xd7\x10\x60\x0c\x06\xb0\xc7\x08\xc7\x47\ -\x51\x62\x40\x00\x38\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ -\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\ -\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\ -\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\ -\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\ -\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\ -\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ -\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\ -\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x1c\xc1\xb4\x3f\x36\ -\xf5\xef\xb9\x7b\xba\x72\x07\x02\x69\x67\x4e\x6b\x33\x59\x80\x45\ -\x18\x40\x7c\x13\xa8\xbd\x7f\x03\x87\xd3\xb2\xd8\x5a\x00\x09\x0e\ -\x50\x63\xad\x91\xbe\x1f\x3f\x03\x06\x00\x01\x06\x80\x1c\x42\x1c\ -\xe7\xbd\x86\x06\x88\x2d\xda\xeb\x67\x27\x60\x00\x10\x60\x00\xc8\ -\x23\xcc\x91\xde\x6b\x68\x80\x98\x22\xbe\x7e\x0e\x15\x60\x11\x06\ -\x10\x5f\x01\x16\x61\x00\xc4\x37\x57\x80\x45\x18\x40\x7c\x05\x58\ -\x8c\x01\x10\xdd\x9c\x01\x06\x58\xf9\x21\xff\xd7\x73\x74\x1a\xab\ -\x03\x01\x00\x6c\x1d\x60\xf8\xca\xef\x01\x03\x80\x00\x03\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\xb0\x8d\x0f\x65\x11\x6d\x17\x7d\xcf\x89\x52\x00\ -\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x08\xc2\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x44\x00\x58\x00\x6b\xec\xff\ -\x82\x2e\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe3\x03\x0d\x0e\x24\x3b\xa3\xb3\x44\x09\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x08\x2a\x49\x44\x41\x54\x78\xda\xed\xdd\x31\x6e\x53\x41\x10\ -\x80\x61\x07\x99\x0a\x89\x13\xe4\x00\x6e\xa2\x48\x29\x53\x27\x05\ -\x55\xa4\x88\x03\x50\xf9\x0e\x9c\x80\x3b\xb8\xe2\x00\x08\x29\x15\ -\x05\xd4\x29\x91\xa2\x34\xee\x28\x48\xc3\x29\x4c\x83\x84\x88\x50\ -\x82\xc3\xee\x7b\xb3\x33\xdf\x57\x53\xa0\x7d\xb6\xff\xcc\xc4\xda\ -\x2c\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x90\xd3\x81\x23\x78\xd8\xd9\xe9\xd1\ -\xce\x29\xc4\xf3\xe5\xfa\xd6\x6b\x17\x10\x60\xd1\x45\x8c\x01\x04\ -\x58\x7c\x45\x18\x40\x80\xc5\x17\x11\x06\x10\x60\xf1\x15\x61\x00\ -\x01\x16\x5f\x44\x18\xa8\xea\x99\x23\x00\x00\x01\x06\x80\x12\xca\ -\xaf\xea\xac\x9f\x73\xb2\x86\x06\x4c\xc0\x00\x80\x00\x03\x40\x04\ -\x4b\x47\xb0\xbf\xe3\xd5\xa1\x43\x98\xd0\xcd\xf6\xce\x21\x00\x26\ -\x60\xf1\x15\x5f\x67\x0e\x20\xc0\x42\xe0\xec\x01\x04\x18\x00\x10\ -\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\ -\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\ -\x00\x40\x80\x01\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ -\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ -\x40\x80\x01\x40\x80\x01\x00\x01\x86\xa7\x3b\x3b\x3d\xda\x39\x05\ -\x40\x80\x41\x84\x01\xfe\xb0\x74\x04\x88\x30\xb0\xaf\x2f\xd7\xb7\ -\x07\x4e\x41\x80\x01\x98\xf1\x87\x5b\x31\x7e\x1a\x2b\x68\x00\x9a\ -\xc5\x18\x01\x26\xa1\xe3\xd5\xa1\x43\x00\x11\x16\x60\x00\x10\x61\ -\x01\x06\x40\x84\x05\x18\x7a\xb1\x86\x06\x04\x18\x44\x18\x40\x80\ -\x11\x61\x20\x06\x6b\x68\x01\x46\x84\x01\xc2\x72\x11\x07\x69\x22\ -\x7c\xb3\xbd\x73\x20\x80\x00\x83\x89\x18\x72\xf0\xc3\x6d\x1f\x56\ -\xd0\x00\xf8\xe1\x56\x80\x01\x10\x61\x01\x06\x00\x04\x18\x00\x04\ -\x18\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\ -\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\ -\x00\x10\x60\x00\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\ -\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10\x60\x00\x10\x60\x00\ -\x40\x80\x01\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\ -\x04\x18\x00\x12\x5a\x3a\x02\xe6\x70\xf1\xe6\xad\x43\xa0\xac\xab\ -\xf7\xef\x1c\x02\x02\x8c\xe8\xc2\x9c\xef\x05\x31\xae\xcb\x0a\x1a\ -\xf1\x05\xef\x0d\x04\x18\x1f\x30\xe0\x3d\x82\x00\x83\x0f\x16\xf0\ -\x5e\x41\x80\xf1\x81\x02\xde\x33\x08\x30\x00\x20\xc0\x00\x20\xc0\ -\x60\x95\x06\xde\x3b\x08\x30\x00\x08\x30\x00\xb0\x70\x13\x16\x81\ -\xac\x56\x2b\x87\x40\x3a\xdb\xed\xd6\x21\x60\x02\x46\x7c\xc1\x6b\ -\x1b\x01\x06\x1f\x50\x78\x8d\x23\xc0\x00\x80\x00\x03\x80\x00\x03\ -\x00\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\ -\x20\xc0\x00\x20\xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ -\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x20\ -\xc0\x8e\x00\x00\xa6\xb7\x74\x04\x54\xb5\xd9\x6c\x1c\x42\x72\xeb\ -\xf5\xda\x21\x20\xc0\x20\xbc\xcc\xf5\xac\x85\x98\x88\xac\xa0\x11\ -\x5f\x3c\x77\x10\x60\x00\x10\x60\x30\x05\xe1\xf9\x83\x00\x03\x80\ -\x00\x03\x00\x02\x0c\x8f\xf3\x4d\x58\xcf\x1f\x04\x18\x00\x04\x18\ -\x4c\x41\x78\xee\x30\x35\x17\x71\x50\xf6\xc3\xd8\xb7\x62\x85\x17\ -\x04\x18\x7c\x38\x03\xc5\x58\x41\x03\x80\x00\x03\x80\x00\x03\x00\ -\x02\x0c\x00\x02\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\ -\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ -\x0c\x00\x08\x30\x00\x08\x30\x00\x20\xc0\x00\x20\xc0\x00\x80\x00\ -\x03\xc0\x6c\x96\x8e\x80\xaa\x36\x9b\x8d\x43\x48\x6e\xbd\x5e\x3b\ -\x04\x04\x18\x84\x97\xb9\x9e\xb5\x10\x13\x91\x15\x34\xe2\x8b\xe7\ -\x0e\x02\x0c\x00\x02\x0c\xa6\x20\x3c\x7f\x10\x60\x00\x10\x60\x00\ -\x40\x80\xe1\x71\xbe\x09\xeb\xf9\x83\x00\x03\x80\x00\x83\x29\x08\ -\xcf\x1d\xa6\xe6\x22\x0e\xca\x7e\x18\xfb\x56\xac\xf0\x82\x00\x83\ -\x0f\x67\xa0\x18\x2b\x68\x00\x10\x60\x00\x10\x60\x00\x40\x80\x01\ -\x40\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\xe2\x39\xa8\ -\x7e\x00\x67\xa7\x47\xbb\x7f\xfd\xb7\xc7\xab\xc3\x70\xff\xff\x6f\ -\xdf\x7f\x78\x15\x03\xdc\xf3\xf1\xf3\xd7\xf0\x7d\x73\x13\xd6\x80\ -\x44\x17\xe0\x61\x97\xe7\x27\xbb\xe8\x31\xb6\x82\x16\x5f\x80\x32\ -\x31\x16\x60\xc4\x17\xa0\x78\x84\x05\x58\x7c\x01\x44\x58\x80\x11\ -\x5f\x80\x1a\x11\x16\x60\x00\x10\x60\x00\x10\x60\x02\xb0\x7e\x06\ -\x68\x2b\xca\x1a\x5a\x80\x01\x40\x80\x01\xa0\x06\x37\x61\x25\xf4\ -\xfa\xe2\x95\x43\x00\xca\xf8\x70\xf5\xc9\x04\x4c\x5b\x4f\xf9\xfd\ -\xaf\xf8\x02\x3c\x2c\xca\xd5\x94\x02\x6c\xf2\x05\x40\x80\x01\x20\ -\xff\xf4\x2b\xc0\x81\xed\xbb\x7e\x36\xfd\x02\x15\x8d\xfa\xfb\x5f\ -\x01\x06\x00\x01\x06\x80\x7e\xd3\x6f\xb4\xbf\x0b\x2c\xc0\x01\x59\ -\x3f\x03\x98\x80\x01\x00\x01\x06\x80\xf1\xd7\xcf\x02\x1c\x90\xf5\ -\x33\x80\x09\x18\x00\x10\x60\xd3\x2f\x00\x39\xd6\xcf\x02\x3c\x38\ -\xeb\x67\x00\x13\x30\x00\x84\x13\x75\xfa\x15\xe0\x40\x7c\xf9\x0a\ -\xe0\x71\x23\x5f\x3d\x29\xc0\x00\x20\xc0\x00\xd0\x67\xfa\x8d\xbc\ -\x7e\x16\xe0\x20\xac\x9f\x01\x4c\xc0\x00\x80\x00\x03\x40\xbe\xf5\ -\xb3\x00\x07\x60\xfd\x0c\x60\x02\x06\x00\xd3\xaf\x00\x9b\x7e\x4d\ -\xbf\x00\x26\x60\x00\x40\x80\x01\xa8\x20\xeb\xfa\x59\x80\x67\x64\ -\xfd\x0c\x60\x02\x06\x00\x04\x18\x00\x72\xaf\x9f\x05\x78\x26\xd6\ -\xcf\x00\x08\x30\x00\xc3\x1b\x6d\xfa\x15\xe0\x01\x98\x7e\x81\x8a\ -\x32\xfd\xdd\x5f\x01\x0e\x62\xdf\xf5\x33\x00\x02\x0c\x00\xe1\xa6\ -\xdf\x11\xd7\xcf\x02\x1c\x7c\xfa\xb5\x7e\x06\x30\x01\x03\x00\x02\ -\x0c\x40\x46\x55\xd6\xcf\x02\x3c\x21\xeb\x67\x00\x04\x18\x00\x04\ -\x18\x00\x6a\xad\x9f\x05\x78\x22\xd6\xcf\x00\x08\x30\x00\xc3\x1b\ -\x7d\xfa\x15\xe0\x80\x4c\xbf\x40\x45\x15\xae\x9e\x14\xe0\x89\xb9\ -\x7a\x12\x00\x01\x06\x60\xf8\xe9\x37\xc3\xfa\x59\x80\x83\x4d\xbf\ -\xd6\xcf\x00\x26\x60\x00\x40\x80\x01\xc8\xa8\xea\xfa\x59\x80\x3b\ -\xb2\x7e\x06\x40\x80\x01\x40\x80\x01\xa0\xf6\xfa\x59\x80\x3b\xb1\ -\x7e\x06\x40\x80\x01\x18\x5e\xb6\xe9\x57\x80\x03\x30\xfd\x02\x15\ -\x55\xbc\x7a\x52\x80\x3b\x73\xf5\x24\x00\x02\x0c\xc0\xf0\xd3\x6f\ -\xc6\xf5\xb3\x00\xcf\x3c\xfd\x5a\x3f\x03\x98\x80\x01\x00\x01\x06\ -\x20\x23\xeb\x67\x01\x6e\xce\xfa\x19\x00\x01\x06\x00\x01\x06\x00\ -\xeb\x67\x01\xee\xc0\xfa\x19\x00\x01\x06\x60\x78\xd9\xa7\x5f\x01\ -\x9e\x81\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\x9c\xab\x27\x01\x10\x60\ -\x00\x86\x9f\x7e\x2b\xac\x9f\x05\x78\xe2\xe9\xd7\xfa\x19\x00\x01\ -\x06\x00\x01\x06\x20\x23\xeb\x67\x01\x6e\xce\xfa\x19\x00\x01\x06\ -\x00\x01\x06\x00\xeb\x67\x01\xee\xc0\xfa\x19\x00\x01\x06\x60\x78\ -\xd5\xa6\x5f\x01\x9e\x80\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\x9c\xab\ -\x27\x01\x10\x60\x00\x86\x9f\x7e\x2b\xae\x9f\x05\xb8\xf3\xf4\x6b\ -\xfd\x0c\x80\x00\x03\x80\x00\x03\x90\x91\xf5\xb3\x00\x37\xf7\xf2\ -\xc5\xf3\xbd\xfe\xbd\xf5\x33\x00\x02\x0c\x00\x02\x0c\x40\x46\xd6\ -\xcf\x02\xdc\x9c\xf5\x33\x00\x02\x0c\xc0\xf0\xaa\x4f\xbf\x02\xdc\ -\x81\xe9\x17\xa8\xc8\xd5\x93\x02\xdc\xdc\xbe\xeb\x67\x00\x10\x60\ -\x00\xc2\x4d\xbf\xd6\xcf\x02\xdc\x7c\xfa\xb5\x7e\x06\x40\x80\x01\ -\x40\x80\x01\xc8\xc8\xfa\x59\x80\x9b\xb3\x7e\x06\x40\x80\x01\x40\ -\x80\x01\xc0\xfa\x59\x80\x3b\xb0\x7e\x06\x40\x80\x01\x18\x9e\xe9\ -\x57\x80\x9b\x33\xfd\x02\x15\xb9\x7a\x52\x80\x9b\x73\xf5\x24\x00\ -\x02\x0c\xc0\xf0\xd3\xaf\xf5\xb3\x00\x37\x9f\x7e\xad\x9f\x01\x10\ -\x60\x00\x10\x60\x00\x32\xb2\x7e\x16\xe0\xe6\xac\x9f\x01\x10\x60\ -\x00\x10\x60\x00\xb0\x7e\x16\xe0\x0e\xac\x9f\x01\x10\xe0\xe0\xf1\ -\x05\x00\x01\x9e\x81\xe9\x17\xa8\xc8\xd5\x93\x02\x0c\x00\x02\x0c\ -\x80\xe9\xf7\x6f\x7c\x01\x4b\x80\x43\xbc\x10\x01\xe0\xbe\xa5\x23\ -\x10\x61\x00\x4c\xc0\x00\x20\xc0\x00\x40\x1f\x7e\x49\xbe\x58\x2c\ -\x2e\xcf\x4f\x76\x4e\x01\xa0\x0d\x5f\xc0\x32\x01\x03\x80\x00\x03\ -\x00\xbf\x59\x13\xfc\x62\x0d\x0d\xf0\xff\xac\x9f\x05\x58\x84\x01\ -\xc4\x57\x80\x45\x18\x40\x7c\x11\x60\x11\x06\x10\x5f\x01\x16\x63\ -\x00\xd1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x22\x7e\x02\xd0\x9c\xed\ -\x7c\x8a\xb7\x2a\x7d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ -\x82\ \x00\x00\x16\x4b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -4509,724 +7646,6 @@ qt_resource_data = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\xc0\xec\xfe\x07\xd6\xc6\xf2\xf4\xdf\x3a\x0f\x10\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x2c\xb6\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00\x7d\xd4\xbe\x95\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ -\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xe3\x05\ -\x15\x07\x25\x17\x9d\x4c\xa8\xf4\x00\x00\x00\x19\x74\x45\x58\x74\ -\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ -\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\ -\x00\x49\x44\x41\x54\x78\xda\xed\xdd\x7b\x90\x9c\xd5\x99\xdf\xf1\ -\xe7\x74\x8f\xc6\x83\x6c\x67\x35\x38\xb2\x31\x88\xf2\x48\x0b\x4b\ -\x95\x11\xc2\xdc\x04\xc6\x2b\xa1\x11\x42\xd3\x53\xa5\xc4\xa8\x6d\ -\x2e\xc9\x12\xaf\xcd\xd5\x59\x27\x95\x54\x45\x54\xb1\x74\x6b\x00\ -\x75\xb7\x64\x52\x72\xa5\x36\x2e\xef\x62\xc3\x66\x37\x89\xb6\xb8\ -\x66\x64\x57\x5c\x35\x33\xba\x8d\x2e\xbb\x20\x84\x0c\x01\x44\xaa\ -\x64\xae\xb1\xe4\xfb\x65\xb4\x0b\x16\x62\xd4\xfd\x9e\xfc\x31\x6a\ -\xa1\x7b\xdf\xce\x79\xdf\x73\xce\xfb\xfd\x54\xb9\x2a\xd9\x42\x3d\ -\xdd\xef\xe5\xfc\xde\xe7\x9c\xf3\x9e\xa3\xb4\xd6\x02\x00\x00\xe2\ -\x95\xe1\x10\x00\x00\x40\x00\x03\x00\x40\x00\x03\x00\x00\x02\x18\ -\x00\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\x80\x00\ -\x06\x00\x80\x00\x06\x00\x00\x04\x30\x00\x00\x04\x30\x00\x00\x04\ -\x30\x00\x00\x20\x80\x01\x00\x08\x49\x17\x87\x00\x00\xdc\xb5\x70\ -\xcb\x6d\x1d\x6f\x59\xb7\x7d\xf1\x3a\xc5\x91\x74\x8f\x62\x3b\x42\ -\x00\xf0\x3b\x60\x09\x68\x02\x18\x00\xe0\x78\xd8\x12\xca\x04\x30\ -\x00\x10\xb8\x1e\x21\x90\x09\x60\x00\x20\x70\x09\x64\x02\x18\x00\ -\x08\xdd\xdb\x52\xdf\x88\x12\xc6\x04\x30\x00\x10\xba\x84\x31\x01\ -\x0c\x00\x04\x2f\x41\x0c\x02\x18\x00\x08\x5d\xc2\x98\x00\x06\x00\ -\x82\x97\x20\x26\x80\x09\x60\x00\x20\x78\x09\x62\x02\x18\x00\x08\ -\x5e\x82\x98\x00\x06\x00\x82\x17\x04\x31\x01\x0c\x00\x04\x2f\x41\ -\x1c\x0a\xb6\x23\x04\x40\xf8\x82\xf3\x42\x05\x0c\x00\x34\xf0\x48\ -\x47\x35\x4c\x05\x0c\x80\xf0\x05\xe7\x8b\x0a\x18\x00\x68\xc8\x91\ -\x8e\x6a\x98\x0a\x18\x00\xe1\x0b\xce\x23\x15\x30\x00\xd0\x60\x23\ -\x1d\xd5\x30\x15\x30\x00\xc2\x17\x9c\x5f\x02\x18\x00\x68\x9c\x91\ -\x8e\xf3\x4c\x17\x34\x00\x1a\x64\x78\xcb\xe7\x2e\x69\x2a\x60\x00\ -\x84\x2f\x38\xff\x04\x30\x00\x10\xbe\x48\xc7\x75\x40\x00\x03\xa0\ -\xd1\x05\xd7\x03\x01\x0c\x00\x84\x2f\xd2\x71\x5d\x10\xc0\x00\x68\ -\x64\xc1\xf5\x91\x00\x66\x41\x03\xa0\x71\xf5\xcc\xf6\xc5\xeb\xce\ -\x74\x8c\x38\x40\xe2\xc7\xec\x68\x02\x18\x00\xe1\xeb\x79\xe8\x12\ -\xc6\x7e\x86\x30\x5d\xd0\x00\x08\xdf\x00\xc3\xb7\x93\x7f\xc7\x75\ -\x43\x00\x03\x00\xe1\xdb\x61\x88\x12\xc2\xee\x5e\x3f\x04\x30\x00\ -\x1a\xcf\x40\xc3\x97\x10\x76\xfb\x3a\x62\x0c\x18\x30\x40\x6b\x91\ -\x35\x6f\xee\xd5\xf7\xce\xbe\x48\xfd\xe8\x9f\x26\xf4\xe7\x77\x8e\ -\x07\xf3\xdb\x9e\xbb\xa6\x5f\x44\x44\x0a\x3f\xde\x23\x1b\xe7\x2f\ -\x50\x99\x98\x46\xd5\x08\xdf\x75\x36\x8e\xa9\xa4\xfc\x98\x3a\x35\ -\x26\x4c\x00\x03\x26\x6e\xa4\x91\xe1\xd4\xdc\x48\x51\x2e\xaf\x94\ -\xe5\x66\x8c\xf0\x5d\x67\xf3\xd8\x12\xc2\x8e\xe8\xa2\xe9\x04\xd2\ -\x19\xa4\xed\xca\x8c\xb6\x77\x8c\xf4\x60\xbe\xa9\x86\x8f\x57\x8d\ -\x60\xfb\xe1\xce\x95\x10\x26\x80\x41\xa8\x1e\x51\xcb\xe5\x15\x47\ -\xcb\x9e\x5a\x24\xa2\x44\x4b\x76\x6c\xfd\x69\xcf\xc7\x82\x8f\x0c\ -\x73\xa0\x90\x9a\x10\xa6\x0b\x1a\x04\x30\x9c\x40\xf8\x4e\x89\x63\ -\xc2\x14\x8b\x75\x1c\x3d\xd6\x89\x86\x30\x15\x30\xbc\xa7\x45\x24\ -\x43\xc8\x02\xf0\x0c\xaf\x21\xc1\x7b\xbf\x3a\x34\x49\xf8\x52\xfd\ -\x02\xed\xf4\x04\x24\xda\x76\x50\x01\xc3\x79\x35\x2d\xd2\x35\x4a\ -\x85\x4b\xf8\x02\x76\x42\x38\xa9\xae\x68\x02\x18\xee\x04\x6d\x24\ -\xd2\x35\x46\xd0\x12\xbe\x40\x3a\x42\x98\x2e\x68\x24\x26\xd2\x53\ -\xe3\xb7\xf5\x79\x80\x84\x2f\x80\x34\xa1\x02\x46\xec\xca\xaf\xef\ -\xd5\x2b\xdf\x78\x8d\x03\x41\xf5\xcb\x41\x40\xaa\xab\x60\x02\x18\ -\xd6\xf1\x1a\x10\x08\x5f\x10\xc2\x27\xa3\x0b\x1a\x84\x2f\x00\x24\ -\x80\x0a\x18\x04\x2d\xa8\x7e\x81\x04\xaa\x60\x02\x18\x6d\x59\xfd\ -\xc6\x5e\x5d\x78\x9d\x71\x5c\x10\xbe\x20\x84\x09\x60\xc4\xe6\xae\ -\x57\x5f\xd4\x8f\xed\x7f\x87\x03\x01\x00\x04\x30\x6c\xda\xf9\xbb\ -\x09\xfd\xf9\xe7\xc7\x39\x10\xa0\xfa\x05\x55\xb0\x41\x4c\xc2\xc2\ -\x19\x55\x23\x11\xc2\x17\x84\x2f\xd2\x1a\xc2\x54\xc0\x88\x15\x4b\ -\x3f\x9a\xd7\xec\x5e\xb8\xae\x60\x52\x1d\x60\x1f\x01\x0c\x39\x5c\ -\x13\xe9\xde\x40\x83\x6b\xcb\xe3\x97\xce\xa7\xfa\x05\x3c\xae\x82\ -\x6d\x75\x45\x13\xc0\x29\x17\x69\xc2\xb7\x19\xd5\x81\xbc\xca\xa6\ -\x68\xc0\xa6\x93\x8a\x9d\xea\x19\x20\x80\x41\xe3\xd8\xb1\xc9\x81\ -\xbc\xea\xca\x88\x28\x0e\x45\x4b\xe1\xad\x46\x86\xf5\xec\x9e\xe9\ -\x32\x4b\xaf\xe3\x80\x80\x2a\x98\x00\x26\x74\x61\xae\xca\x43\x73\ -\xc7\x76\xe1\x96\x75\x5c\x7b\x00\x01\x9c\xce\xd0\x4d\x73\xc8\xa4\ -\xad\xdb\xd8\xc5\xaa\x81\xa3\x00\xaa\xe0\xd3\xa3\x79\xa2\xfa\x0d\ -\x16\xe1\x0b\x80\x0a\x18\xb0\xe0\xfd\x1b\xf2\xaa\x87\x2b\x98\xea\ -\x17\xf0\xb4\x0a\xa6\xf9\xa2\xda\xf5\x42\x35\x97\x57\xf5\x77\x93\ -\x27\x97\xe6\x55\x26\x23\x92\x65\x04\x17\x00\x15\x30\xe2\xa6\x45\ -\x24\x93\x92\xee\xe5\x28\xb7\x5c\x29\xc5\xa4\x29\xaa\x5f\x20\xac\ -\x2a\x98\x00\xa6\xca\x75\xe7\xa1\xe2\xc8\xeb\x2b\xf5\xff\xff\x9c\ -\xb3\xa6\xcb\x9b\x8b\x72\x84\x2e\x00\x2a\x60\x10\xbe\x26\x4d\x2e\ -\x5d\xae\xba\x37\xac\xd7\x27\x86\x30\x67\x1a\x00\x01\x8c\xc4\x55\ -\xde\xd8\xab\x8b\x01\xee\xbb\x1b\xe5\xf2\x74\x2b\x07\x88\xee\x67\ -\xa4\xe5\x3a\x37\xd1\x0d\xcd\x8b\x1a\x0e\xab\x46\x22\x21\x84\x6f\ -\x94\xcb\xab\xeb\xcf\x9e\x79\x7c\x35\x4f\xec\x02\xa0\x02\x86\x6b\ -\x42\xea\x6a\xae\x57\xb8\x9b\xae\x5e\x40\xe4\x52\xfd\x02\x54\xc1\ -\x04\x30\xe1\x6b\x33\x6c\x01\x00\x04\x30\xe1\x4b\xe8\x02\x80\x93\ -\x18\x03\x4e\xd8\xe1\xda\x54\xf0\xfa\x18\xbe\xa5\x0b\x2f\xe6\x04\ -\x42\x44\xe8\x7e\x06\xd7\x3d\x15\xb0\x87\x7c\xda\x8b\x77\x72\x69\ -\x5e\x4d\xcb\x72\xce\x00\xc0\x04\x02\x38\x01\xbe\x54\xbb\x74\x2f\ -\x03\x00\x01\x4c\xe8\x12\xba\x70\x14\xdd\xcf\x48\xfb\xf5\xdf\xee\ -\x6c\x68\xc6\x80\x09\x5f\x00\x00\x15\x70\x78\x0e\x47\x7e\x54\xbd\ -\x91\x16\xc9\x50\xfb\x02\x00\x01\x4c\xc5\x1b\x2f\xc2\x17\x00\x08\ -\x60\x58\xae\x76\x39\x0a\x30\x85\xf1\x5f\xa0\xfd\x71\x60\xc6\x80\ -\x0d\xb8\x67\xcf\x8b\x5a\x6b\xed\xf4\xfb\xbc\xbf\xb9\x7e\xd9\xc3\ -\x51\x8e\xf0\x05\x00\x2a\xe0\x80\x7c\x6f\xdf\x3b\xf2\xbd\x7d\xef\ -\x38\x19\xbc\x7f\x3f\xbf\x5f\xbe\xf0\x89\x5e\x82\x17\x00\x08\xe0\ -\xb0\x1c\xae\xb9\xf9\xbd\xe8\x6a\x06\x00\xb7\xd1\x05\xdd\x81\xe7\ -\x7e\x37\xa1\x5d\x5c\xc9\xaa\x46\x57\x33\x62\xc0\xf8\x2f\xd0\xd9\ -\xfd\x40\x05\xdc\xa2\x48\x8b\x64\x47\xdd\x0b\xdd\x6a\x2e\xaf\x32\ -\xa2\x45\xb1\xd1\x2e\x00\x78\x81\x00\x6e\x81\x16\x37\xc3\x57\x44\ -\x24\xab\x44\x44\x08\x5f\x00\x20\x80\x03\x53\x8b\x44\xba\xc6\xdc\ -\x09\xdf\xf7\x6f\xc8\xab\x1e\xce\x1e\x00\x10\xc0\xa1\x56\xbc\xb5\ -\x48\x64\xda\x98\x7b\x55\x2f\xe1\x0b\x00\x7e\x63\x12\xd6\x99\x0e\ -\xce\xc8\xb0\x76\x31\x7c\x7f\x73\xfd\xb2\x87\x39\x3b\x48\x12\x13\ -\xb0\x80\xce\xef\x0b\xea\xa8\xd3\x98\x74\xf0\xf5\x22\x5e\x2d\x02\ -\x80\x70\x10\xc0\xa7\xe0\xd2\x6a\x56\x84\x2e\x00\x10\xc0\x84\x2f\ -\xa1\x0b\x00\x20\x80\xc3\x0c\xdf\x5a\x6e\x39\xe1\x0b\xb4\x68\xfb\ -\xe2\x75\x1c\x84\x94\x1e\xaf\x85\x5b\x6e\x23\x80\x7d\xa7\x1d\xe8\ -\x74\xa6\xf2\x05\x08\x5d\xb4\x7f\x1d\xf8\x16\xc6\xa9\x0e\x60\x17\ -\x2a\xde\x28\x97\x67\xf1\x2a\x80\xf0\x85\xa1\xeb\xc2\xa7\x10\x4e\ -\xed\x6b\x48\x91\x03\x25\x6f\x8d\xf0\x05\x08\x5f\xa4\xf6\xfa\x48\ -\x6d\x00\x67\x47\xd7\x27\x9a\xc0\x93\x4b\xf3\x2a\x43\xf8\xc2\x43\ -\x49\xbe\x03\x4c\xf8\xc2\xf5\xeb\xa4\x95\xfb\x23\x95\x01\x9c\x74\ -\xd7\xf3\xa1\xa5\x79\x35\x2d\xcb\x4d\x02\x10\xbe\x48\xf3\xf5\x92\ -\xaa\x00\x8e\x22\x9d\x68\xf8\xea\xc1\xbc\xd2\x83\x79\xf5\x11\xc2\ -\x17\x20\x7c\x91\xfa\xeb\x26\x35\x01\x1c\x45\x5a\xb2\x63\xeb\x13\ -\x0d\x5f\x6e\x07\x00\x40\xaa\x02\xb8\x46\xf8\x02\x00\x08\xe0\x98\ -\xc3\x4f\x6b\xe9\x4a\x30\x7c\x23\xc2\x17\xe8\x08\xdd\xcf\x08\xf5\ -\xfa\x09\xfa\x3d\x60\xad\xb5\x64\x12\x9a\xed\x5c\x7f\xc5\x88\xf4\ -\x05\x00\xa4\x2e\x80\x93\x08\xdf\xc9\x81\xbc\x9a\xc6\x26\x8f\x00\ -\x80\xb4\x06\x70\x12\xb3\x9d\x19\xeb\x05\x00\xa4\x36\x80\x93\x7a\ -\xcd\x88\xf0\x05\x00\xb4\x82\xce\x52\x03\x0e\xdd\x40\xf8\x02\x00\ -\x52\x5c\x01\xc7\x5d\xfd\x52\xf5\x02\x00\x52\x5f\x01\x13\xbe\x40\ -\x98\x7c\xde\xef\x15\x5c\x3f\x41\x57\xc0\x49\xbc\x6a\x14\xe5\x96\ -\x13\xbe\x00\x80\x74\x07\x70\xdc\xe1\x4b\xe5\x0b\x00\x30\x92\x5f\ -\x3e\x7f\x79\xba\x9d\x81\x74\xa0\x1b\x1a\x21\x5e\x37\xde\x06\x30\ -\xe1\x0b\xd0\x98\x02\x3e\x5f\x2f\x5e\x06\x30\xe1\x0b\x24\x67\xfb\ -\xe2\x75\x89\xdd\x0f\x84\x30\x5c\xbf\x4e\x5a\xb9\x3f\xbc\x0a\x60\ -\x35\x32\xac\x09\x5f\x80\xc6\x15\x08\xe1\xfa\xf0\x26\x80\xb5\x8e\ -\x7f\x81\x2b\xc2\x17\xa0\x91\x05\xd7\x85\x2d\xde\xcc\x82\x8e\x73\ -\xb6\xf3\x4f\xaf\x5b\x26\xe7\x4e\xef\x26\x7c\x01\x4f\x1a\x5b\xb6\ -\x2c\xe4\x3a\xf0\x91\xf3\x01\x9c\xc4\x7b\xbe\x84\x2f\x40\x23\x9c\ -\x94\x38\x1e\x26\xe8\x41\x70\xa4\xb0\x74\xf9\xcb\xd5\x22\xcd\x7b\ -\xbe\x00\x80\x20\x39\x5b\x01\xb3\x9d\x20\x00\x80\x0a\x38\x05\x08\ -\x5f\x00\x00\x01\x1c\xa3\xbe\x9e\xe9\x84\x2f\xd0\xa2\x24\xdf\x05\ -\x06\x42\xb9\x2f\x9c\x0c\xe0\xb8\xba\x9f\x2b\x17\x5e\x2c\x6f\xf7\ -\xe7\x68\x48\x00\x00\x54\xc0\xd5\x28\xbe\xbf\x75\xff\x05\x17\x11\ -\xbe\x00\x80\x44\x38\x35\x09\x2b\xce\x89\x57\x74\x3b\x03\x00\x52\ -\x5f\x01\x47\x3a\xbe\xf0\xbd\xfd\xbc\x3e\xc2\x17\x00\x40\x00\x8b\ -\x88\x64\x47\xe3\x09\xdf\xd9\x3d\xd3\xe5\xaf\xe7\x5d\x4e\xf8\x02\ -\x06\x30\x11\x0b\xe8\xec\x7e\x48\xd5\x2c\xe8\xb7\x98\x70\x05\x00\ -\xa0\x02\x8e\x17\xdd\xce\x00\x00\x02\xf8\x18\x71\x8c\xfd\x12\xbe\ -\x00\x00\x02\x38\xe6\xf0\x8d\x72\x84\x2f\x60\x0b\xe3\xc0\x40\xfb\ -\xf7\x41\x22\x01\x5c\x8d\x92\x59\xeb\x19\x00\x80\xd4\x56\xc0\x5a\ -\x44\xa6\x8d\xc5\x13\xbe\x7d\x3d\xd3\x45\xf1\x7c\x0e\x00\x20\x80\ -\x45\xe2\xca\xc3\x32\xcb\x4c\x02\x00\x08\xe0\x63\x02\x38\xa6\xae\ -\xe7\x02\xcb\x4c\x02\xb1\x60\x1c\x18\x5c\xff\xed\x89\x75\x29\xca\ -\x5a\x0c\xeb\x3c\x33\xe3\x19\x00\x40\x05\x7c\x62\x38\x5a\xfe\xfc\ -\xc3\x03\x84\x2f\x00\x80\x00\x3e\x89\xed\xc9\x57\x4c\xb8\x02\x92\ -\x41\x37\x34\xb8\xee\x1d\x0e\xe0\x38\xc6\x7e\x69\x01\x00\x00\xbe\ -\xb0\x3e\x06\x1c\xe7\xfb\xbe\x19\x12\x18\x00\xe0\x09\xef\xd7\x82\ -\x5e\xd4\x3b\x53\xf4\x60\x5e\x31\xf9\x0a\x48\x16\xdd\xd0\xe0\x7a\ -\x4f\x59\x00\x8f\x5f\xb3\x80\x9b\x1e\x00\x40\x05\x7c\x2c\x96\x9b\ -\x04\xa8\x0a\x00\xae\xf3\x98\x03\x98\xf0\x05\x00\xe0\xf4\xba\x7c\ -\xfd\xe2\x8c\xf9\x02\x00\x7c\x66\xa5\x02\xa6\xfa\x05\xd2\x8b\x6e\ -\x68\x70\x7d\x27\x18\xc0\x54\xbf\x00\x00\x04\x18\xc0\x00\xa8\x82\ -\x01\xdf\xaf\x6b\xe3\x01\x4c\xf7\x33\x00\x00\x31\x07\xf0\x07\x55\ -\xbb\x5f\x96\xae\x67\x80\x2a\x18\x48\xc2\x8e\x0f\xf2\x6e\x07\x70\ -\xcf\x46\xfb\xd5\x2f\x21\x0c\x00\xa0\x02\x06\x00\xaa\x60\x50\xfd\ -\x26\x1b\xc0\xb6\xc7\x7e\xa9\x7c\x01\x00\x49\x32\x9d\x73\x46\x02\ -\x38\xb2\xdc\xf1\x4c\xf8\x02\x54\xc1\x40\x48\xd5\xaf\xb1\x00\xb6\ -\xb9\x0d\x60\x44\xf8\x02\x00\x02\xd4\x71\x00\xab\x91\x61\x6d\xb3\ -\xfb\x59\xf3\x52\x13\x40\x15\x0c\x38\x52\xfd\xaa\x91\x61\x5d\x8b\ -\x1c\xaa\x80\xad\x85\xef\x60\x5e\x65\xb8\x6d\x01\x42\x18\x70\x20\ -\x7c\x8f\x06\xa7\xa1\xe4\x64\x16\x34\x00\x00\xad\x14\x87\x86\xba\ -\x66\x33\xed\x7f\x01\x56\xbd\x02\x40\x15\x8c\x74\x55\xbf\x22\x22\ -\xd9\xd1\xf5\x5a\x8d\x0c\xeb\x4e\x27\x20\xb7\x1d\xc0\x55\x66\x3e\ -\x03\x20\x84\x91\xb2\xf0\x3d\x2e\x07\x3b\x1c\x0b\xee\xa8\x02\xb6\ -\xe5\xf0\x00\xe1\x0b\x00\x70\xdb\xd3\x3f\xdf\xdf\x51\x12\xb6\x1d\ -\xc0\x5d\x16\x47\x8f\xbf\xbe\xe7\x45\xba\xb6\x01\xaa\x60\xc0\xd9\ -\xea\x57\x44\xe4\x96\x73\x67\x75\x74\x1d\xb7\x15\xa3\x5a\x6b\x79\ -\xfc\xa7\xfb\xad\x85\xe4\x96\xdf\xfe\x8a\x2b\x01\x20\x84\x01\x67\ -\xc3\x57\x44\x64\xda\xd8\xb0\x5e\xf2\xfc\x8e\xb6\xb3\xb0\xab\xad\ -\xd4\x1e\x5d\x6f\xb5\x42\x7d\x63\x51\x8e\x1b\x13\x00\xe0\xbc\xcd\ -\xbf\xfb\x75\xbc\x15\xb0\x4d\xbc\xfb\x0b\x50\x05\x03\xae\x57\xbf\ -\xc7\xe5\x56\x9b\x25\x29\xef\x01\x03\x20\x84\x41\xf8\x76\x12\xc0\ -\x21\x54\xc0\xeb\x2e\x99\xcf\xd5\x00\x10\xc2\x80\x37\xe1\x2b\xd2\ -\xfe\x7e\x08\x2d\x07\xf0\x13\x3f\xb3\x33\xf9\x6a\xf1\xd9\x33\xe5\ -\x4f\x66\xcd\xe2\x26\x04\x00\x78\xa5\xdd\x45\xa9\x5a\x0e\xe0\x7f\ -\xf5\xf2\x2e\x2b\x3f\x60\xf3\xd5\x0b\x08\x5f\x80\x2a\x38\xf5\x16\ -\x6e\xb9\xcd\xeb\xcf\x4f\x5b\xf5\x5b\x77\xb8\x8d\x45\x39\x9c\xe9\ -\x82\x8e\x78\xf3\x17\x20\x84\x09\x61\x78\x18\xbe\x22\x22\x4b\x77\ -\xb5\xfe\x3a\x92\x33\x01\xac\xb8\xed\x00\x10\xc2\xf0\x30\x7c\x45\ -\x44\x46\xaf\x6c\xbd\x17\xd7\x9d\x00\xe6\xba\x00\x40\x08\x8b\x88\ -\xbd\x6e\xe2\xb4\x77\x3f\x6f\x5f\xbc\x4e\xcd\xee\x99\x6e\xe5\xb3\ -\x7b\x36\x0e\xdb\xab\x80\xab\x91\xbd\xdd\x8f\xd8\x78\x01\x00\x21\ -\x6c\x37\x2c\x09\xdf\xa9\xeb\xe9\xad\xfe\x9c\x5a\xf3\x47\x17\xdb\ -\x29\x24\x5b\xcc\xc8\xa6\x03\x78\xda\x98\x9d\xf0\xad\x5c\x78\xb1\ -\x00\x00\x21\x6c\x2f\x34\x09\xdf\xe3\xaf\xa3\xfb\xfe\xf0\x22\x6b\ -\xd7\x55\xad\x85\xc9\x58\x89\x77\x41\x17\x5e\x7f\x8d\x56\x06\x00\ -\x21\x6c\x29\x3c\x09\xdf\x78\xaf\x9f\x56\x2a\x55\x56\xc2\x02\x40\ -\x23\x1a\x68\x08\x13\xbe\xf1\x5f\x37\xad\xf4\x16\x77\x25\x7d\x80\ -\x7e\x7b\xfd\xb2\x7b\x68\x5e\x00\x34\xd3\x98\x2e\xdc\x72\x5b\x6a\ -\x5f\x58\x3c\x36\x4c\xb7\x2f\x5e\x47\xe8\x3a\xfa\xd0\xf6\xf8\xa5\ -\xcd\xaf\xe8\xa8\x74\x93\xab\x48\xdb\x98\x80\xc5\xe4\x2b\x00\x6d\ -\x04\x11\xab\x06\xc0\x48\xf8\x26\x9d\x6b\x0d\xbb\xa0\xb5\xb6\x38\ -\xfb\x99\xeb\x04\x80\x27\x95\x0d\xb8\x3e\x9a\x0d\xf5\x39\xe3\xa3\ -\x4d\xc5\x5b\xc3\x2e\xe8\x6a\x64\xf1\x9b\x6a\xe1\x05\x60\x13\x87\ -\x51\x6b\xb9\xee\x0b\x57\x9f\x74\xc2\xb7\x3f\xbb\x8b\xa3\xeb\x6b\ -\x95\x77\xed\xfc\x53\xde\xc0\x9c\xd3\x0f\x1b\x59\x2a\x61\xb8\xfa\ -\x70\xf6\xf6\xa1\x83\x66\x2a\xe0\x1f\xfd\xe3\x84\xb5\x8b\x9c\xbb\ -\xa7\x75\xb5\x48\xcb\xc2\x6b\xe7\xeb\xff\xf9\x3f\xfe\xbb\x5e\x78\ -\xed\x7c\xbd\xf0\xda\xf9\xfa\x54\xe1\x5b\x6f\xc4\xb7\x6c\xde\x74\ -\xf4\xbf\x5b\x78\xed\x7c\x1d\xb1\xe6\xa7\x73\xfe\xf3\x37\x57\x1f\ -\x3d\x3f\x9b\x37\x6d\xd4\x67\x1a\x16\x7a\xe5\xd5\xd7\xf4\xc2\x6b\ -\xe7\xeb\x9b\xbf\x74\xa3\xbe\xf9\x4b\x37\x1e\xfd\x77\x34\xb6\x20\ -\x7c\xdd\xba\x1e\x9a\xb9\x29\x1b\x8e\x01\xdb\xea\x7e\x16\x11\x89\ -\x06\xf3\xac\x40\xd9\x82\x8d\x1b\x36\xe8\xd2\x83\xc5\x8e\x3f\xe7\ -\xb2\x2b\xae\x92\xbf\xf8\xf6\x77\x38\xf4\x0e\x38\xf8\x41\x55\x72\ -\xfd\xd7\x76\x7c\x8f\x6d\xd9\xf1\xbc\xea\xca\xa6\xf3\x94\x52\x09\ -\xa3\xdd\xf0\x4d\x3a\xdf\x12\x0b\xe0\x83\x4b\xf2\xea\xac\x69\x5c\ -\x38\x0d\x4f\x62\xa4\x65\xd1\x1f\x5f\xad\x87\xff\xf7\x86\xa7\xf3\ -\xff\x62\xe9\x4d\xa6\x3e\xf7\xb2\x2b\xae\x94\x97\x7e\xb4\x9b\x2e\ -\xcd\x24\x02\xc3\x72\xc5\xba\xed\x1f\x9e\x57\x2a\x65\x8f\xb6\x84\ -\x30\xe1\xdb\x8e\x5f\x1e\x9a\xd4\xe7\x8c\xff\x30\xb1\x00\x6e\xd8\ -\x05\x6d\x6b\xdd\x4c\xc2\xb7\x41\xf7\x85\xd6\x47\xc3\x57\x44\xc4\ -\x64\xf8\x8a\x88\xbc\xf4\xa3\xdd\x47\xc3\x40\x6b\x2d\x69\xed\xc6\ -\x0c\x29\x78\xeb\x4e\x37\x24\x11\x7a\x23\x4c\x97\x34\xe7\xbc\x55\ -\x9f\xea\xe9\x56\x49\xbe\x8d\x93\x48\x05\xcc\xeb\x47\x6e\x34\xd4\ -\x27\xba\xf3\x9e\x3f\x93\xaf\xfc\xe9\x57\x39\x37\x01\x9d\xd3\x47\ -\x1e\xfb\x5b\xf9\xec\x67\x3f\x9b\xaa\x73\x4a\x35\x4c\xd5\xdb\x72\ -\x10\x5a\xc8\x39\x23\x15\xf0\x07\x4b\xcd\x87\x25\xf3\x80\x4e\xaf\ -\x96\xe0\xc1\x79\xec\xbb\x7f\xc9\x09\xb0\x60\xf2\x70\x94\xd8\xdf\ -\xfe\xfa\x9d\x5f\x95\xb4\x4d\xbc\xa3\x12\xe6\xfc\x3a\xa1\x89\xdb\ -\xae\xe1\x6b\x48\xcc\x92\x0a\xbf\x4a\x3a\xf1\x3b\x30\x2e\x1c\xd6\ -\x39\x5d\xf4\xc7\x57\xeb\x2d\x3b\x76\xaa\xae\x6c\x7a\x56\x9e\xad\ -\x37\xd2\x54\xc3\x04\xaf\xcb\x1a\xde\x91\xdd\x63\xc3\x5c\xc0\x31\ -\x70\xa9\x4a\x61\x3c\x38\x3c\x8b\x17\x5c\xc3\xab\x4a\xe0\x3c\xc6\ -\x19\xae\xa3\x8d\xb3\xf3\x8c\x01\x7c\xfb\xcb\x2f\xd2\x10\xc7\x58\ -\xa5\x50\xb9\x85\xa3\xfe\xbe\x36\xe7\xd4\x8d\xc6\x9b\x20\xe6\xdc\ -\x25\x52\x58\x35\xb8\xe3\x4e\x3b\x09\xcb\xe6\xfb\x51\xb5\x5c\x5e\ -\x65\xb8\x1d\x8e\x56\xbe\xae\x85\xef\x49\x37\x01\x5d\xd2\x2d\xf9\ -\x0f\xff\xfe\x1b\xfa\xa5\x1f\xbd\xc0\xf9\x74\x10\x5d\xd2\x54\xbd\ -\x71\xe7\xdd\x99\x26\x1d\x9f\x76\x0c\x38\xca\xe5\x55\x33\x25\x74\ -\x5b\x5f\x88\x25\x28\x9d\xad\x7c\x4f\xfd\x14\xa7\x25\xc3\x64\x80\ -\x60\xaa\xcc\x34\x8f\xf3\x33\x36\x4c\xf0\xba\xe4\xf4\x5d\xd0\x16\ -\x0f\x01\x6d\xb9\x5f\xd6\x3e\xbc\x86\xc6\x0a\x34\xf2\xe0\xbc\xc4\ -\x16\xc0\x96\x3c\x7e\xe9\x7c\xa1\xfb\xd9\x9f\x6a\x49\x44\xe4\x8e\ -\xbb\xff\xec\x61\xce\x56\x58\xf6\xbc\xf6\x7f\x53\xff\x50\xc5\xd8\ -\x30\xe7\xa2\x2e\xa9\xb5\x29\x4e\x3b\x06\xac\x45\x24\xc3\x22\x1c\ -\xa9\x0f\xdf\xe3\x6e\x12\xc6\x82\x39\xa7\x21\x9f\x3f\xba\xa5\x53\ -\x5d\xf1\x5a\xdb\x76\xb7\x9d\x31\x60\x00\x61\x2b\x3e\x58\xe6\x20\ -\x9c\x22\x0c\x08\xe2\x74\x05\x6f\x92\x32\x1c\x82\xf8\xad\x59\x5d\ -\xf1\xf2\x06\xe7\xd5\xa4\xd3\x3c\xe1\x6a\x3f\x8f\x4d\xf9\xc1\x22\ -\xe7\xf4\x34\xe1\x40\x40\x70\x6c\xe3\x40\x05\x9c\x80\x91\x1f\xfe\ -\xc0\xdb\xef\x1e\x69\x61\x0c\xff\x04\xd5\x5a\xc4\x41\x08\xb2\x8b\ -\xe0\xc7\x47\x9e\x54\xfe\x88\x63\x41\xc5\x4b\x00\xc3\x81\x00\x8e\ -\xb4\x64\xb2\xdc\x4b\xc7\xfa\x4f\xff\xf1\xdf\x51\x45\xa6\x21\x88\ -\x09\x63\x42\x97\x00\x06\xdc\x72\xf9\x15\x57\xc9\xff\x79\x71\x37\ -\x07\x82\xaa\x18\x04\x2f\x01\x0c\x7b\x78\x87\xfb\x64\xcb\xfe\xe5\ -\xf2\xa7\xff\xdb\xa3\x7f\x75\x13\x47\x82\xaa\x98\xd0\x05\x01\x0c\ -\x6b\xb2\x0c\x00\x9f\xe4\x0f\x66\xfc\xb3\x9b\xa5\xa9\xcd\xc7\x40\ -\x18\x13\xba\x20\x80\x13\xa1\xb5\x96\xeb\xbe\x70\xb5\xd7\x0d\x35\ -\xdb\x15\x9e\xec\x7a\xcf\x77\x1a\xe2\x9c\x9e\x7c\x3c\x8c\x84\x71\ -\x60\x81\x4c\xe0\x12\xc0\x5e\xbb\xe5\xcb\xcb\x83\xa8\x92\x68\xb0\ -\x0d\x35\xd6\x48\x57\x75\xec\x59\x20\x13\xb8\x04\x70\x50\x7e\xf1\ -\xf3\x9f\x71\x10\x00\x02\xd9\xb9\x50\x26\x6c\x09\x60\x00\x20\x94\ -\x2d\x04\x34\x01\x4b\x00\x03\x00\x4c\x07\xf4\x99\x82\x97\xa1\x22\ -\xa7\xb1\x14\x25\x00\x00\x04\x70\xd8\x2e\xbb\xe2\xaa\x20\x7e\xc7\ -\xe6\x1d\x3b\x79\xaa\x46\xb0\x36\x6c\x7d\x2e\x88\xeb\x7b\xfc\xef\ -\x9f\xe7\x3e\x25\x80\x51\xf7\x17\xdf\xfe\x8e\x0a\xa1\x4b\x68\x5a\ -\x96\xcb\xa6\x2e\x84\xf3\x49\x37\xe5\xf1\x7a\xba\xb3\xde\x1f\x93\ -\xed\xcf\xee\x52\xbc\xb3\x4f\x00\x23\x30\x97\x5f\x79\x15\x07\x01\ -\x00\x08\x60\xc4\x6d\xed\x7f\xf9\x36\x8f\xd5\x27\x28\x3c\xc0\xbe\ -\xba\x00\x08\x60\x58\xb6\x75\x7c\x33\x0b\x4f\x9c\xa0\xf2\x50\x91\ -\x83\x00\x80\x00\x86\x5d\x8b\xfa\xaf\xa7\x02\x3e\xc1\x39\x9f\x3e\ -\x97\x83\x00\x80\x00\x86\x5d\xd9\x0c\x97\xcc\x89\x1e\x7f\x7a\x3d\ -\x0f\x25\x00\x08\x60\x1f\x6c\xfb\x07\x3f\x5f\x0f\xd8\xfe\xec\x2e\ -\xc5\x76\x84\xa7\x7a\x28\x51\xde\xce\x9a\x65\x06\x74\x78\xc7\x86\ -\x73\x4a\x00\xe3\x0c\x7c\x4c\xb1\xdb\xef\xfa\xb7\x9c\xb8\xc0\xfc\ -\xf9\x50\x89\x83\x00\x10\xc0\xe9\x33\xb8\xec\x8b\x5e\x7d\xdf\xdb\ -\xbe\xf2\x55\x9e\xaa\x1b\x58\xff\xc3\x0d\x0f\xfb\xf4\x7d\xcf\x3f\ -\xff\x7c\x4e\x1a\x40\x00\xa7\xcf\x7d\x7f\x5e\xf0\x26\xd0\x36\x6d\ -\xdb\xa9\xba\xb2\xe4\x6f\x23\x9f\x38\x7b\xc6\x7d\x3e\x7d\xdf\xb9\ -\x17\x7f\x96\x93\xda\x80\x4f\xdd\xb9\x7f\xf9\xbd\xbf\xa1\xfb\x99\ -\x00\x46\x33\x94\xf2\xe7\xe6\x9e\xd6\xc5\x3d\x4d\xb0\x70\xac\x9c\ -\x7f\xa0\x9a\x7b\x31\xe7\x94\x00\x06\xd2\xeb\xae\xaf\x7f\x83\x83\ -\x80\x44\x68\xde\xd0\x27\x80\x1b\x56\x7e\x23\xc3\x5c\x26\xc7\xf0\ -\x61\x46\x34\x53\x9f\x9b\xf7\x6f\xbe\xf2\xa7\xce\x1f\x2c\xaa\xdf\ -\x56\x83\x4d\x7b\x71\xcc\xb8\x4d\xfd\xcb\xa5\x44\x2a\xe0\x88\x08\ -\x3e\x2e\xdc\x5c\xbd\xb9\xb7\x3f\xbb\x4b\xd1\x58\x87\x75\xdc\x38\ -\x9f\xed\x3f\x80\x72\x9f\x22\x88\x00\x86\xfb\x0d\x23\x37\x34\xe7\ -\x14\x27\xdb\xea\xd8\x16\x7f\x9c\x53\x02\xb8\x65\x14\xc0\x6e\xdf\ -\x4c\xdc\xd4\x9c\x53\x9c\xa6\xc1\xcc\x28\x67\xf6\xd9\xe5\x9c\x06\ -\x1c\xc0\x36\xcf\x2c\x57\x8d\x9b\x37\xd5\x27\xcf\xf9\x34\x37\x75\ -\x80\x0d\x25\xe7\xd4\xac\x6c\x46\xc9\xd6\x04\xe7\x6e\x8c\x8e\x3f\ -\x4b\x97\xb3\x27\xa2\x5c\xfe\x8c\xe7\x49\xe9\x26\xa6\xce\x99\x1e\ -\xa0\xae\xe5\xf2\x8a\xbd\xa2\x9b\xe8\x29\xd0\x22\xd7\x7d\x61\xbe\ -\xf5\x0e\x03\x6e\xe6\x78\x2d\xbc\x96\x73\xca\x39\x6d\xcd\x86\xad\ -\xcf\xa9\x9e\xee\x2c\x07\xda\x56\x51\x68\x61\x12\x96\x1e\xcc\x37\ -\xbc\x07\x1b\x76\x41\xef\x9c\x98\xa0\xc7\x38\xb1\xab\x42\x64\x64\ -\xf3\xb3\x56\x1b\xd2\xcd\x3b\x76\xd2\x50\x07\x66\xf3\x76\xce\x69\ -\xac\x55\x4e\x0c\x2d\x24\xe1\xeb\x67\x01\xd5\xb0\x89\x6f\x54\x01\ -\xcf\x19\x1f\xd5\x6f\x1f\x3a\x68\xf4\x8b\x51\x01\x27\xff\x94\x4d\ -\x85\xc4\x39\x85\xdb\xe7\xf4\xfe\xa1\x92\xe4\x72\x03\x9c\x53\x4f\ -\x2b\xe0\x68\x30\xdf\xf0\xcd\xb0\x86\x15\xb0\xe9\xf0\x15\x11\x21\ -\x7c\xdb\x73\xec\x3b\xc3\x9b\xb6\xed\x54\xe7\x7c\xfa\xdc\x86\x8d\ -\x6e\x7d\xc2\xc8\x39\x9f\x3e\x57\xce\xf9\xf4\xb9\xb2\x79\xfb\x4e\ -\xc6\x8f\x9c\x3a\xa7\xbb\xd4\xa6\x6d\x3b\xd5\xb1\x6b\x83\x37\xda\ -\x5f\x78\xfb\xb3\x53\xff\xe6\x68\xc5\xbb\xe3\x79\xce\xa9\x43\x4e\ -\x3c\x3f\xcd\x3c\x1c\x6d\x7f\x76\x97\xaa\x9f\xf7\x4d\xdb\x76\xaa\ -\xcd\x3b\x76\x2a\xc2\x37\x05\xc1\xdf\xa8\x02\xb6\xf5\x82\x72\x6d\ -\x60\xb9\xca\x90\xc4\x46\x1c\xae\x46\x72\xfd\xc2\x6b\xf4\xa9\xc2\ -\x37\xcb\x31\x0e\xea\x9c\x6e\x7b\x76\x17\xeb\x2d\x78\xea\xe6\x2f\ -\xdd\xa8\x7f\xf1\xf3\x9f\x1d\xf7\x7f\xbb\xf4\x73\x57\xca\x7f\xfd\ -\xce\x77\x14\x8b\xdd\x24\x57\xf9\xea\xc1\xbc\x72\xb6\x02\x9e\xdd\ -\x33\xdd\xca\x0f\xcf\x8e\xad\x67\x6c\xd9\x90\x69\x5d\xa7\x3e\x8d\ -\x84\x6f\x58\xe7\xf4\xee\xaf\x7f\x83\x37\x08\x3c\xf6\xd4\xff\xfa\ -\xfe\x49\xa7\x8f\xf0\x75\x23\x84\x53\x57\x01\xd7\x35\x33\x53\x0c\ -\x00\x00\x9f\xc2\xd7\x48\x05\xfc\x8b\xfe\x65\x9c\x25\x00\x00\x5a\ -\xaa\x2e\x1b\xff\x27\x0d\x03\x78\xe6\x47\xba\xad\x55\xa8\x8d\x5e\ -\x52\x06\x00\xc0\x37\x5f\x3b\xb7\xaf\xa9\xcd\x31\x1a\x06\x70\x86\ -\x25\xb1\x00\x00\x68\xda\x63\xf3\x2e\x6b\x2a\xdd\x9a\x5a\x0b\xda\ -\xd6\x38\x2d\xf9\x0b\x00\x08\x49\x34\x98\x57\x99\x26\x27\xd6\x25\ -\xba\x1b\x92\x1a\x19\xd6\xec\x0f\x0c\x00\x48\x22\x7f\x6c\x7c\xee\ -\x6f\x3f\x98\x7c\xaa\xd9\xff\x96\xed\x08\x01\x00\x30\x44\x8b\xcc\ -\x21\x80\x01\x00\x88\xd9\x27\xb7\xfc\xf0\x0a\x6f\x02\xb8\x3a\xc0\ -\x4c\x68\x00\x40\x18\x6a\x2d\xbc\xdd\xd3\xd4\x76\x84\x22\x53\x3b\ -\x7e\x64\x47\xed\x8d\xd7\xb2\x20\x07\x00\xc0\x36\x9b\xf3\x8e\xee\ -\x9c\xd5\x27\x8f\x5e\x72\x79\xd3\x59\xd6\xd5\x74\xa9\xac\xa6\x42\ -\x92\x49\x53\x00\x00\x1c\x6f\x72\x20\xaf\xa6\xb5\xd8\xa7\xec\xcc\ -\x18\xb0\x26\xd6\x01\x00\x9e\x7a\xf8\xcd\xbd\x2d\xa7\x18\x93\xb0\ -\x00\x00\xa9\xb1\xa8\x77\xa6\x95\xcf\xdd\xf2\xdb\x5f\xb5\xfc\x6f\ -\xdc\xa9\x80\x85\x12\x18\x00\x60\x8f\x1a\x19\xd6\x1b\xe6\x2f\xb0\ -\xf2\xd9\x1b\xaf\x5e\xd0\xf2\x3c\xa6\x96\x03\xd8\xd6\x64\xa9\xec\ -\xe8\x7a\x5d\x8b\xb8\x40\x00\x00\x36\x8a\xbc\x29\xdd\x63\xc3\xc6\ -\x3f\xbb\x96\xcb\xab\x6c\x1b\xc9\xe8\x54\x17\xf4\x05\xdb\x46\x29\ -\x83\x01\x00\xc6\x45\x16\x0b\xbc\x76\xf7\x4c\x70\x2a\x80\xdf\x39\ -\x74\x90\xab\x04\x00\x60\x5c\xd7\x98\xc5\xd7\x68\xdb\x0d\x6e\xd7\ -\x0e\x12\xdd\xd0\x00\x00\xa3\xd5\xaf\xa3\x7d\xab\xce\x05\x70\xd7\ -\xd8\xb0\x8e\xe8\x88\x06\x00\x18\x62\x73\x11\x29\x91\xf6\x77\xf6\ -\xeb\x6a\xe7\x1f\xe9\xc1\xbc\xaa\x45\xf6\x4a\xfa\xdf\x7c\x30\xf9\ -\xbb\x4f\xf6\x74\x9f\xcd\x65\x03\x00\x70\x55\xa7\x93\x92\xdb\xae\ -\x80\x6d\x3e\x4e\x7c\x6a\xfc\x87\xbd\x9c\x5a\x00\x80\xcb\x26\x6b\ -\x9d\xfd\xfb\xb6\x03\xd8\x66\x37\xf1\x61\x36\x68\x00\x00\xb8\x5e\ -\x01\x77\x98\x83\x6d\x07\xf0\x3f\x56\x27\x77\xdb\xfa\x51\xd3\xc6\ -\x58\x6f\x1a\x00\xd0\x39\x9b\xfb\x17\x64\x3a\x2c\x15\xdb\x0e\xe0\ -\xff\xf7\xfe\xef\xaf\xf0\xf5\xa0\x01\x00\xc2\xf7\x41\xd5\xee\xe7\ -\x77\x65\x3a\x8b\xa9\xae\x76\xff\xe1\x95\x33\x7a\x95\x1e\xcc\x13\ -\x94\x00\x00\x27\x75\x59\x7a\xcf\xc7\xd4\x8a\x90\x4e\x6f\xc6\x40\ -\xb8\x03\x00\xda\xcd\x0f\x5b\x6f\xea\xd4\x0c\x7d\xaa\xf3\xbb\x21\ -\x1d\xae\x71\x21\x01\x00\x9a\x57\xf5\x64\x41\xa7\xae\x4e\x3f\x40\ -\x0f\xe6\x95\x16\x91\x8c\xa5\x6a\x75\x5a\x96\x8b\x09\x00\xd0\x42\ -\xb0\x59\x2c\x2d\x4d\x6e\x48\x64\xe4\x6b\xda\x7c\x67\x88\x6e\x68\ -\x00\x40\x88\xb9\x91\xe1\x60\x02\x00\x42\x10\x45\xda\xab\xbc\x30\ -\x16\xc0\xb6\xf6\x09\x26\x84\x01\x00\x0d\x33\x48\x6b\xc9\x8e\xad\ -\xb7\x9a\x13\xa6\x73\xae\x8b\xd3\x06\x20\x0e\x85\x42\xe1\x94\x8d\ -\x63\xa5\x52\x61\xe5\x3b\x74\x5e\xa4\x29\xff\x2e\x23\xef\x02\x58\ -\x8d\x0c\x6b\xdb\xd5\x36\x00\x7b\x81\x7b\xaa\xff\x8e\x10\x86\x89\ -\x6c\xf0\xed\x3b\x1b\x1d\x03\xd6\x83\x79\x65\x33\x1c\xe9\x86\x06\ -\xfc\x08\xde\x57\x5e\x79\x45\xb7\xfa\x6f\x38\x72\x70\x35\x1b\xf4\ -\x60\x5e\x45\x39\xf3\xd9\x96\xe1\xd4\x01\x30\x5d\xf5\x3e\xf9\xe4\ -\x93\xd6\x2a\x66\x20\x91\x90\xb7\x50\x5a\x12\xc0\x00\x8c\x86\x6f\ -\xa7\x9f\x11\x45\x91\x14\x0a\x05\xad\x35\x79\x8c\xc0\x43\xdd\xd6\ -\x45\x1e\x47\x97\x00\xa7\x0f\x08\x27\x7c\x4f\x85\xb1\x61\x84\x9c\ -\x35\xd6\x2a\xe0\xc9\xa5\xf6\x5f\x4b\xe2\x09\x19\x48\x96\xd6\x9a\ -\xae\x63\x24\xa6\xf4\xe3\xbd\x5e\x5f\x7b\xd6\x02\x38\x8e\x19\xe1\ -\x99\xd1\xf5\xdc\xf8\x40\x82\x8a\xc5\xa2\xd5\x7b\x90\x70\xc7\x99\ -\x8a\xb0\xa1\x37\x5f\xf3\xfa\x37\x58\x0b\xe0\xae\x0c\xdd\xc4\x40\ -\xe8\xd5\x6f\x1c\x18\x0f\x46\x12\x56\x5f\x78\xb1\xf5\x0c\xb3\x3a\ -\x09\x8b\x5b\x06\x08\xd7\xb6\x6d\xdb\x62\xbb\xc5\x8b\xc5\xa2\x7e\ -\xef\xbd\xf7\xa8\x88\x11\x9b\x7b\xe7\x5c\x64\xbd\x80\xb4\x1a\xc0\ -\x71\x94\xbf\xbc\x1b\x0c\x24\x53\xfd\x6e\xdc\xb8\x31\xd6\xbf\xb9\ -\x66\xcd\x1a\x5d\xaf\x88\x39\x03\xe9\x16\x47\xbb\x9f\x8d\x63\x18\ -\xd5\xf6\x1f\xa8\x0d\x2c\x57\x21\x9c\x0c\x00\xc7\x57\xa4\x1c\x05\ -\x84\x1a\xbe\x51\x6e\x79\x2c\x2b\x5b\x5a\x0f\xe0\x4c\x46\x89\x1e\ -\xcc\xab\xc9\x01\xfb\xb3\xa2\x6b\x11\x17\x27\x90\x06\x8c\x0b\x13\ -\xbe\xb6\xe8\xc1\xbc\x8a\x6b\x5d\xe9\xd8\x16\xe2\x98\x16\xc7\x5f\ -\x62\xca\x17\x90\xaa\x2a\x9c\xee\x68\x98\xad\x7c\xe3\x9d\x38\x1c\ -\xd4\x6e\x48\x17\x6c\x1d\xd5\x6f\xf7\xe7\x88\x61\x20\x65\xd5\x70\ -\xfd\xff\xcd\xc2\x1d\xe1\x8a\xa3\xc3\x23\xee\x0d\x95\x62\x5d\x8a\ -\xb2\x66\xf9\xe9\xe2\x9d\x43\x07\x19\x0f\x06\x80\x00\x65\x46\xc3\ -\x6b\xdb\x55\xdc\xe3\x28\x87\x6b\x22\xdd\x1b\xe2\xe9\xc7\xe7\x92\ -\x05\xec\x58\xbb\x76\xad\x9e\x98\x98\x70\xf6\xfb\x51\x09\x07\x16\ -\x54\x23\x61\x66\x86\x4a\x62\x22\x43\x9c\x55\x2a\x41\x0c\xd8\xe1\ -\xfa\xf8\x2b\x21\xec\xb7\x3f\xdc\x3a\xaa\xdf\x7a\xff\x60\x2c\x7f\ -\xeb\xf6\xf3\xfa\xe4\xaf\xe7\x5d\x1e\xfb\xf5\xc2\x6e\x48\x00\x82\ -\x0c\xb8\x42\xa1\xa0\x99\x2d\xed\xaf\xb8\xc2\x57\x44\xe4\xd1\x4b\ -\x2e\x4f\xe4\x5a\x4e\x24\x80\xe3\xac\x4a\xb9\xf5\x00\x4b\xf7\x96\ -\x27\xc1\xc6\x3b\xcb\x7e\x5a\xd4\x3b\x33\xbe\x20\x4c\xe8\x51\x32\ -\xb1\x0a\x38\xae\x10\x7e\xe1\xc0\x04\x37\x1f\xe0\x66\x05\x1d\x6b\ -\x35\xcc\x11\xf7\xcb\xd6\x89\x5f\xc7\x92\x43\x49\x0e\x53\x26\xda\ -\x05\x1d\xc7\x0f\xbf\xfa\xb9\x71\x89\xe8\x82\x02\x9c\x53\x28\x14\ -\x12\x09\x61\xc2\xd8\x7d\xa1\x4e\xba\x72\x2a\x80\xe3\x3a\x08\x59\ -\xb6\x2d\x04\x9c\x14\x45\x11\x21\x8c\x0f\xf3\x40\xeb\xd4\x84\xaf\ -\x13\x01\x1c\xd2\x13\x15\x80\xd6\xec\xd9\xb3\x47\x44\xa6\xba\xa3\ -\xeb\xff\x8b\x3b\x8c\xe1\xc8\xc3\x98\xd6\xb1\xec\xf1\x3e\xb9\xd4\ -\x9d\x37\x63\x52\x35\x0b\x5a\x8d\x0c\x6b\xba\xa3\x01\x77\xcc\x9d\ -\x3b\xf7\xa4\xff\x1b\x21\x9c\xc6\xf0\x8d\xaf\xa7\x32\x72\xe8\x8c\ -\x3b\x11\xc0\x71\x76\x07\xd0\x1d\x0d\x18\x7a\xa0\x35\xb0\x6e\x5f\ -\xbd\x02\x26\x84\xd3\x4b\x6b\x2d\xd9\x18\x57\xb9\xea\x76\x68\x01\ -\x66\xe5\xd2\xab\x04\xb5\x48\xa4\x6b\x2c\x9e\x13\xa1\x07\xf3\x4a\ -\x8d\x0c\x6b\x16\xea\x00\x92\x0b\xaf\x52\xa9\x24\x99\x4c\xe6\x4c\ -\x9f\x9f\xc8\xef\x62\x11\x8f\x18\x43\x68\x24\xbe\x36\xdf\xb9\xdf\ -\xee\xe2\xbb\x7c\x71\x8e\xd7\x26\xb5\x02\x0a\x10\x8a\x9f\xfc\xe4\ -\x27\xfa\xbb\xdf\xfd\x6e\x5b\xff\xb6\x5c\x2e\x37\x5d\x49\xc7\x19\ -\xc6\x77\xdf\x7d\xb7\x7c\xe6\x33\x9f\xa1\x5d\x20\x7c\xd3\x17\xc0\ -\x71\x87\xf0\xfb\x37\xe4\x55\x4f\x17\x37\x03\x90\x44\x15\xdc\x4a\ -\x77\x73\xdc\x15\x31\x95\x30\xe1\x6b\x13\x4b\x51\x8a\xc8\x59\x1b\ -\x87\x35\xb3\xa4\x81\xf6\xcc\x9e\x3d\xbb\xd3\x00\xb7\x12\xd6\x2e\ -\x3c\x5c\x20\xf9\x02\xcb\x65\x04\xf0\x31\xfe\x6e\xff\x7e\x2e\x0a\ -\xc0\x71\x71\x87\x70\xb5\x5a\xe5\xa0\x13\xbe\xe9\x0a\xe0\x28\xb7\ -\x3c\xf6\x6e\x83\xdb\x5e\xdd\x25\xb5\x88\x8b\x02\xc0\x87\x1e\x78\ -\xe0\x01\x4d\x25\xec\x67\xf8\x26\x91\x23\xad\x70\x76\xe4\x53\x29\ -\x75\x74\xa6\x72\xac\x07\xe4\xc8\x2c\x6c\x66\x47\x03\x7e\x54\xc1\ -\x2f\xbd\xf4\x92\x3c\xf3\xcc\x33\x56\xff\x5e\xa9\x54\xa2\x3d\xf0\ -\x2c\x7c\x7d\x68\xc3\x9d\xef\x82\x26\x08\x01\xb7\x4d\x4c\x4c\x24\ -\xfa\xf7\x2f\xbb\xec\x32\xb9\xeb\xae\xbb\xac\xfe\x8d\x95\x2b\x57\ -\xb2\xad\x21\xe1\x9b\xbe\x00\x26\x84\x01\xb7\x5d\x71\xc5\x15\x89\ -\x7f\x87\xbe\xbe\x3e\xeb\x7f\x83\x6d\x0d\x09\xdf\x54\x06\x30\x21\ -\x0c\xb8\xeb\xba\xeb\xae\x73\xe2\xde\x8c\x63\x72\x56\xa1\x50\xa0\ -\x12\x76\x38\x7c\xab\x03\xcb\xbd\xca\x09\x66\x41\x03\xe8\xac\x11\ -\xc9\xb8\xd3\x8c\x94\x4a\x25\xfb\xa1\xa2\xa8\x05\x5c\x0c\x5f\x11\ -\x91\x6c\xc6\xaf\x73\xe3\x55\x00\x53\x05\x03\x0e\x36\xb4\x4a\x39\ -\xb3\x60\x45\x26\x93\xb1\xbe\xab\x12\xaf\x25\xb9\x17\xbe\xb5\x81\ -\xe5\xca\xc7\x7c\x50\xbe\x76\xa7\xd8\x3a\xc1\xd5\x5c\x5e\x65\x89\ -\x79\xa0\xb5\x87\x63\xad\x8d\x8c\x91\x9a\x0e\x4e\x9b\x2b\x67\xb1\ -\x4a\x96\x1b\xe1\xeb\x73\x61\xe6\x6d\x17\xb4\xad\x83\x4e\xf8\x02\ -\xed\x55\xc1\x2e\xaa\x54\x2a\xd2\xdb\xdb\x6b\xe5\xb3\x79\x37\x98\ -\xf0\x4d\x6d\x00\x8b\x88\xdc\x39\xab\xcf\xf8\x67\xd6\xb8\xa5\x80\ -\xa0\xac\x58\xb1\xc2\xda\x67\xd7\x6a\x35\x0e\x70\x42\xe1\x3b\xe7\ -\xac\xe9\xde\x1f\x33\xaf\x03\xf8\xb1\xfd\xef\x70\xd5\x03\x68\xaa\ -\x12\xbe\xe5\x96\x5b\x8c\x7f\xee\xd0\xd0\x10\x8f\xec\x92\xcc\x84\ -\xab\x37\x17\xe5\xbc\xef\xaf\x64\x0f\xa0\x13\x2f\x24\x0e\x01\xd0\ -\x32\x1f\xe6\x92\xcc\x9b\x37\x4f\xe6\xcd\x9b\x27\x22\xc9\xed\x33\ -\x4c\xf8\x1a\xb8\xd6\x02\x9a\x8c\xcb\x6b\x48\x27\x5e\x4c\x24\x30\ -\xd0\xb2\xed\xdb\xb7\x7b\x55\x09\x56\x2a\x15\x59\xb2\x64\x89\x91\ -\xcf\x4a\xeb\x58\xb0\xd6\x9a\xf0\x4d\x6b\x00\x1f\xae\xd9\x39\xb9\ -\xe4\x2f\xd0\x3a\x57\x16\xe3\x68\x45\x7f\x7f\xbf\xb1\xcf\x4a\xdb\ -\x02\x1d\x5a\x44\x32\xa3\xeb\x09\xdf\xb4\x06\x70\xf7\x06\xb6\xb4\ -\x02\x5c\xe2\xe3\x86\x05\x26\x5f\x7b\x5a\xbb\x76\x6d\x2a\xda\x24\ -\xad\xb5\x64\x62\xdf\xd5\x28\xcc\x35\x20\xe8\x82\x06\x60\xa6\x31\ -\x99\x5a\x04\x23\xb5\x21\x7c\xe0\xc0\x81\x74\x9c\xe7\x04\x2a\xdf\ -\x50\xbb\x26\x09\x60\x00\xc6\x74\x3a\x1e\x9a\x54\x37\x6e\xa5\x52\ -\x31\xb2\x8c\xe5\xf8\xf8\x78\xd0\x55\x70\x14\xf3\xaf\x0b\x7d\xf5\ -\x43\x02\x38\x25\x27\x1a\x88\xc3\x9c\x39\x73\x3a\xfa\xf7\xc5\x62\ -\x31\xb9\x70\x89\xa2\x8e\x3f\x63\xd3\xa6\x4d\x41\x4f\xca\xca\x8e\ -\xc6\xd7\xf5\x9c\x86\x36\x99\x00\x16\x91\x5a\x8e\xf0\x05\xd2\x2e\ -\x9b\xcd\x9a\x0b\x8f\x00\x27\x64\x55\xde\xd8\x4b\xf8\x12\xc0\x22\ -\x87\x23\x01\x00\xa3\x94\x52\xb2\x6a\xd5\x2a\x23\x9f\xf5\xfd\xef\ -\x7f\x3f\xb8\x04\x2e\xbe\xfe\x1a\xe1\x9b\xf6\x00\x56\x23\xc3\xba\ -\x7b\xcc\x6c\x37\x08\xd3\xa9\x01\xd4\xab\xe0\x72\xb9\xdc\xf1\xe7\ -\x7c\xf1\x8b\x5f\xa4\x57\x8d\xf0\x0d\xb3\x02\x36\x7e\x10\xb8\x55\ -\x00\x23\xbe\xf6\xb5\xaf\x79\x7f\x37\x1d\xd9\x5e\xb1\xa3\xcf\x58\ -\xb9\x72\xa5\x4e\xdb\xbb\xc1\x84\x2f\x01\xdc\xde\x0d\xc7\x21\x00\ -\x8c\x85\x17\x8e\x09\x15\x02\x98\xf0\x0d\x29\x80\xfb\x7a\xcc\xed\ -\x80\x51\x1b\xb8\x51\x31\xfb\x19\x20\x80\x6d\x79\xff\xfd\xf7\x83\ -\xf9\x2d\x87\x07\xec\xb4\x95\x69\x6e\x83\xbd\x0a\x60\x35\x32\xac\ -\xdf\x39\x74\xd0\x60\x63\x41\x07\x00\x60\x5a\xb9\x5c\x0e\xa2\x41\ -\x35\xb1\x40\xc7\xea\xd5\xab\x83\xe9\x86\xee\xca\x88\x94\x2e\xbc\ -\xd8\xe8\x67\x46\xb9\xe5\xa9\x7e\x62\x4b\x75\x02\xd1\x39\x04\x50\ -\x05\x9f\x49\x6f\x6f\x6f\xc7\x9f\x51\x2c\x16\x83\x09\xe1\xc2\x05\ -\x17\x29\xae\x15\x02\x18\x40\xa0\x5c\xda\x2a\x70\xc5\x8a\x15\x46\ -\x2a\xe1\x62\xb1\xa8\x43\x58\xa0\xc3\x44\x5c\xd6\xbb\x9c\x19\xfe\ -\x23\x80\x01\x38\x1a\xc2\xec\xd9\xeb\xa6\x76\xbb\x8d\x7f\xd1\xbf\ -\x8c\xf0\x25\x80\x01\xd8\xd6\xd7\xd7\xc7\x41\x08\x94\x52\xaa\xad\ -\x00\xfd\x54\x4f\x37\xa1\x4b\x00\x1f\x7b\x21\x71\x01\x00\x36\x5c\ -\x70\xc1\x05\x41\xfd\x1e\x53\x3b\x26\x85\xb4\x4e\x74\x7d\x8b\xc0\ -\xc9\x26\x66\x47\x53\xf1\x9e\x26\x83\x7c\x98\x1c\xa0\x2c\xed\x3d\ -\xc9\x45\x01\xd8\x61\x32\x68\x4c\xee\xd9\x6b\xe0\x77\x99\x0c\xf5\ -\x60\xda\x9f\x33\xb5\xd1\xb4\xb3\x9e\x07\x70\xff\xce\x1d\x7a\xeb\ -\xc4\xaf\x09\x5f\x20\xc5\x61\xec\x42\x10\xbf\xf7\xde\x7b\xb2\x66\ -\xcd\x1a\x02\x18\x46\x78\xd1\x05\x6d\x3a\x7c\x01\xc4\x27\xa4\xa0\ -\x99\x3e\x7d\x3a\x27\x14\xe9\x0a\x60\x00\x70\xa2\xc1\xcc\x64\x8c\ -\x6c\xd6\x60\xb2\x67\x00\x04\x30\x00\x58\xe5\xca\x70\x99\xc9\xc5\ -\x23\xa2\x88\xbd\x55\xd3\x2c\xb5\x93\xb0\x18\x03\x06\xe2\x65\xa2\ -\xe2\x2b\x97\xcb\x4e\xad\x9e\x64\x6a\x52\x16\xe3\xc1\x54\xc0\x84\ -\x2f\x00\x6b\x4c\x84\x4c\xb1\x58\x94\x7d\xfb\xf6\x51\x91\x83\x00\ -\xb6\xad\x4a\xef\x0c\x10\x94\x7b\xee\xb9\xa7\xe3\xcf\x78\xe4\x91\ -\x47\x9c\x08\x3f\x76\x7e\x42\xd0\x01\x7c\xcf\x9e\x17\x79\xc4\x04\ -\x02\x72\xde\x79\xe7\x19\x49\x2d\x57\xaa\xcf\x4a\xa5\x62\x64\xc3\ -\x06\x26\x64\x11\xc0\xce\x29\x5f\x38\x97\x33\x04\x04\x24\x9b\xcd\ -\x1a\xf9\x9c\xfd\xfb\xf7\x3b\xf3\x9b\x56\xac\x58\x61\xe4\x73\xde\ -\x7d\xf7\x5d\x2e\x90\x94\x71\x7a\x12\xd6\xa1\xaa\xc8\x59\x1b\x19\ -\x03\x06\x42\x13\xd2\xe2\x1c\xf5\x8a\xbc\x58\x2c\x9a\xaa\xaa\x69\ -\x9f\xa8\x80\x1d\x78\x5a\x36\x7c\x19\xea\xc1\xbc\x22\x7c\x81\xa0\ -\x82\x9c\x83\x00\x02\xd8\x86\xee\x0d\xc3\x8c\x8b\x00\x01\x32\x59\ -\xe5\xb9\x10\xc2\x4a\x29\x29\x95\x4a\x9c\x58\x84\x11\xc0\xb6\x36\ -\x60\x00\x00\x2b\x8d\xa9\xa1\x55\xb2\x98\x90\x45\x00\x03\x80\xf5\ -\x2a\xb8\x54\x2a\x05\x35\x24\xa4\x94\x92\xa5\x4b\x97\x12\xc2\x20\ -\x80\x01\xb8\x5f\x35\x9a\x50\x28\x14\x9c\x19\x0f\xbe\xee\xba\xeb\ -\xe4\xa1\x87\x1e\x22\x84\x41\x00\x03\x48\x4d\x45\x1d\xdc\x83\x05\ -\xc2\xe6\xec\x6b\x48\xa6\xc7\x80\x99\xfd\x6c\xfe\x5c\x70\x4c\x61\ -\xe4\xde\x9c\x7a\x85\x27\xa8\xd7\x92\xea\x55\xb9\xa1\xdf\xc4\x7d\ -\x46\x05\x8c\x74\x34\x86\x22\x35\xfd\x61\xe8\x2e\xde\xb9\x43\x37\ -\x0a\xe7\x27\x7e\xb6\x9f\x65\x71\xd1\xfe\x03\x9e\x52\xc6\x42\xe6\ -\x95\x57\x5e\xa1\x22\x07\x15\x70\x27\x4f\xc3\x99\xd1\xf5\x2c\xbe\ -\xe1\x61\xcf\x03\xc7\x18\x06\xaa\x46\x23\xf7\xbe\x2b\xbb\x26\x99\ -\xa8\x82\xa9\x80\xc3\xd5\xe5\xda\x17\xaa\x46\x5c\x6b\x3e\x85\x6e\ -\xa3\xcf\x21\x94\x91\x54\x55\x1d\xd2\x43\x09\x21\x4c\x00\xc7\x22\ -\xb7\x7b\x07\x9d\x99\xd6\x7b\x19\x44\x32\xa3\xf1\xbc\x67\xcd\xf8\ -\x31\x92\xb9\xc6\xb5\x13\x21\x5c\xef\x86\xee\xb4\x12\xae\xf7\x0c\ -\x10\xc4\x61\x71\x6e\x0c\xb8\xef\xac\x8f\x72\x56\x2c\x8b\x34\xdf\ -\x01\x6e\x32\x15\x30\xc5\x62\xd1\xa9\xfd\x7a\x4d\x8d\x07\x47\x11\ -\x7b\xb4\x86\xc4\xb9\x31\xe0\xc3\x91\x48\xf7\x18\x33\xa0\x6d\xda\ -\x39\x31\xa1\x3f\xbf\x73\xdc\xbd\xaa\x85\xf3\x84\x23\xd6\xae\x5d\ -\xab\x27\x26\x26\x3a\xfe\x1c\x57\xc6\x82\x4d\x54\xc1\x22\x22\x33\ -\x66\xcc\x90\x7b\xef\xbd\x97\xfb\x84\x0a\xd8\x93\x6a\x8f\x46\xfd\ -\xc3\x80\x3b\xf2\x58\xe3\x62\xf8\x1e\x7d\x22\x1c\x19\xd6\xc7\xfe\ -\x8f\xd9\xd5\xe9\xb4\x62\xc5\x0a\x63\x95\x70\x48\x0e\x1c\x38\xc0\ -\xc5\x41\x00\xdb\x6b\x7c\x8d\x57\xbf\x34\xe0\x47\x8e\x83\x96\xcc\ -\xe8\x54\xa8\xb9\x1c\xbe\x27\x5d\xa0\xa3\xc3\x3a\xa2\xbf\x3a\x95\ -\xe6\xcc\x99\x13\xd4\xef\x31\xd5\x0d\xbd\x6f\xdf\x3e\x6e\x88\x40\ -\x38\xd5\x05\x6d\x2b\x1c\xd2\xd8\xb5\x59\x8d\x44\xa6\x8d\x85\xbd\ -\xa1\x45\x94\xcb\x87\x34\xd9\x15\xa7\x78\x68\x34\xb1\x40\x87\x6b\ -\xef\xe3\x9a\x5a\xa0\xa3\x50\x28\xa8\xe9\xd3\xa7\x73\xa1\x10\xc0\ -\xee\x06\xf0\x9d\xb3\xfa\xe4\xd1\x4b\x2e\x4f\x45\x33\xad\x8f\x54\ -\xfc\xd9\xd1\xf4\xec\x24\x15\xe5\xf2\x2a\x12\x91\xae\x13\x7e\x73\ -\x34\x98\x27\x9b\x03\x61\xe2\xdd\xe0\x52\xa9\xe4\xd4\xf2\x90\xac\ -\x92\x05\x91\x14\x8c\x01\xaf\xb9\x68\xee\xd3\x69\x39\x99\x73\xc6\ -\x47\x75\x9a\xc2\x57\x64\xaa\x8b\xba\xeb\x14\xbf\x39\xc3\x76\x96\ -\xc1\x30\x11\x32\x2b\x57\xae\x94\x5a\xad\xc6\xc1\x04\x01\x7c\xca\ -\xea\xcd\x52\x25\xfe\xcf\xbb\xbb\x6f\x0e\xba\x02\xd4\x53\xff\x53\ -\x23\xc3\xfa\x9d\x43\x07\xb9\xa2\x8f\xa1\x46\x86\xf5\x93\x3f\xdb\ -\xaf\x6b\xd1\x54\x97\x7c\x7d\x62\x57\x35\xe2\x35\x28\xdf\xdc\x77\ -\xdf\x7d\x1d\x87\xf0\xd0\xd0\x10\x07\x12\x6e\xb5\x51\xae\x74\x41\ -\xdb\xe8\x7e\x0e\x7d\xec\x57\x51\xe5\x75\x64\x76\xcf\x74\x79\xab\ -\x3f\x47\x17\x9e\x07\x4c\x2d\x51\xc9\x66\x0d\x20\x80\x63\x0a\x12\ -\x02\x18\x8d\xd4\x72\x79\xd5\xa8\xdb\xbe\x9a\xcb\xab\x2c\x4d\x5c\ -\xe2\x42\x9c\x94\x15\x45\x91\xac\x5c\xb9\x92\x10\x4e\x29\x76\x43\ -\x22\x7c\x53\xad\x99\x31\xf3\xae\xd1\x61\x4d\x97\xb5\x03\xd7\xbc\ -\xa1\x5d\x93\x5c\x1a\x0b\x36\x11\xbe\x26\x7b\x08\x40\x05\x4c\x05\ -\x4c\xe8\x86\x57\xbd\xb1\x20\x8c\x51\x26\x02\xc7\x95\x4a\xd8\x54\ -\x57\x74\xa9\x54\x52\x2e\xcd\xf4\x46\x63\x5d\x1c\x02\x87\x1b\x6d\ -\x2d\x22\x4a\x44\x09\x7d\x82\x86\xae\x00\x00\x0c\x24\x49\x44\x41\ -\x54\x93\x86\x42\x39\x9f\xd5\x48\xa4\x7b\x83\xbb\x0f\x52\x8b\xcf\ -\x9e\x29\x63\x57\x2d\x50\x4a\x89\xd4\x22\x91\x8c\x12\xc9\x66\xa6\ -\xae\xc1\xd0\xd4\x6a\x35\xc9\x66\xb3\x89\x7f\x8f\xfb\xef\xbf\x5f\ -\x56\xaf\x5e\xdd\xf1\xe7\x10\xbe\x54\xc0\x6d\x29\xbf\xbe\x57\xaf\ -\x7c\xe3\x35\xa3\x9f\xf9\xc2\xe7\xfb\xe5\xca\x19\xbd\xde\xb7\x1b\ -\x54\xbd\xa0\x82\x0f\xbb\x02\x9e\x7a\x38\xd3\x46\x96\xcd\x64\x2c\ -\x98\x00\x4e\x3c\x60\x42\xe8\xee\x23\x78\x41\x10\x37\x0c\x2c\x56\ -\xc9\x22\x88\xbd\x46\x9f\x85\x43\xea\xef\xf3\x12\xbe\x40\x83\x07\ -\x54\x43\x13\xb2\x0a\x85\x82\xb1\xd0\x03\x08\x60\xf1\x77\x03\x06\ -\xdf\x56\xb1\xd2\x83\x79\x15\xe5\xf2\x8a\x09\x46\x48\x8a\xa9\x4a\ -\x8f\x6d\xb7\x40\x00\x1b\x7b\x3a\xf6\xf0\x3b\x7b\x56\xf5\x2e\x3e\ -\x7b\xe6\x71\xc7\xba\x3a\x40\x08\xa7\xa2\xf2\x1c\x19\xd6\x77\xbf\ -\xfa\x22\x69\x65\x49\xb9\x5c\x36\xf2\x39\xbc\x96\xe4\xc9\xfd\x14\ -\xda\x18\xf0\xe1\x81\xbc\xea\xf2\xe4\xb1\xe2\xf1\x9f\xee\xd7\xff\ -\xfa\x95\x5d\x7e\xf5\x2e\xb4\x58\xed\xfe\xdd\xfe\xfd\xfa\xb6\x57\ -\x77\x71\xa7\x05\xc4\xb5\x15\xc4\x4c\x86\x4d\x68\xaf\x26\x99\xec\ -\x25\x00\x15\xf0\x19\x55\x3d\x08\x5f\x7d\xcc\xda\xcd\xa1\x87\xaf\ -\x88\xc8\x9f\xcc\x9a\xa5\x8e\xad\x90\x7f\xbd\x78\xd9\xd3\xdc\x76\ -\x7e\x7b\xdb\xb1\x35\xc7\x43\x0c\x18\xd7\x26\x87\xc1\x8e\xc4\xde\ -\x03\x8e\x2c\x6c\x9b\xf7\xe2\x3f\x4d\xe8\xab\x1c\x7f\xf5\x28\xe3\ -\xe9\x6e\x45\x9d\x8c\xf3\xd6\xff\xed\x31\x9f\x41\xf7\x18\x00\x02\ -\x38\xa9\x3f\xbc\xfa\x8d\xbd\xc6\x1b\xe1\xcf\x7d\xdc\xed\xf0\xf5\ -\x6d\x9c\xd7\xd6\xe4\xaa\xd3\x7d\x2e\xb3\xbf\x91\xf8\x35\xaf\xb5\ -\x28\x47\x26\x91\x2c\x59\xb2\x44\x36\x6d\xda\xc4\x49\x09\x58\x62\ -\x1d\xb6\xa6\x17\xde\x70\x9d\x6f\xe1\x12\x25\x30\xb3\x39\xca\x2d\ -\x57\x77\x9c\xd7\xc7\x5d\xe9\xb8\xdb\x1d\x3c\x47\x95\x4a\x45\x99\ -\xe8\x8a\x2e\x16\x8b\x12\x45\x91\x13\xbf\xa9\xbf\xbf\xdf\xc8\xe7\ -\x30\x21\xcb\xe1\x5c\x48\x6a\x12\x96\x8d\x40\x72\x6d\x02\xd6\x07\ -\x55\x91\x9e\x8d\xfe\x04\x6f\x2d\x97\x57\x19\x07\xfb\x10\xb4\x88\ -\x64\xa8\x8e\xdd\x79\x38\xcb\xe5\x95\xab\x6f\x1a\x98\x5a\xa0\xa3\ -\x54\x2a\x39\xb5\xb4\xa3\x89\x49\x59\xac\x15\x4d\x00\x5b\x0d\x60\ -\x97\x1a\x06\xba\x9b\x39\xde\x21\xf2\xe1\x3a\x79\xf9\xe5\x97\xf5\ -\x53\x4f\x3d\x65\xa2\xaa\x76\xea\x77\x99\x08\x61\x66\x44\xbb\x25\ -\xb1\x31\xe0\xbe\x9e\xe9\xf2\x8e\xa1\xd9\x94\xae\x55\x6e\xbe\x84\ -\x41\x48\x0b\x68\x9c\xe9\xb7\x10\xce\xe9\x62\x22\x7c\xeb\xd5\xb4\ -\x52\xe4\x15\xec\x49\xa4\x3f\x62\xc9\xf3\x3b\xf4\x3b\x06\x5f\x65\ -\xf8\xf9\xfb\x93\x89\x37\xb0\xd5\x48\x64\xf6\xf8\x28\xcb\x48\x22\ -\x58\xb5\x9c\x1f\x0f\x6c\x95\x4a\x45\xcd\x9e\x3d\xbb\xe3\xcf\x31\ -\xb1\x39\x82\x73\xe7\xd0\xa1\xbd\x90\x91\x50\x17\x74\x88\x1b\x30\ -\xd0\xe5\x1c\xc8\x0d\xc1\x03\xd4\x29\xb9\x3c\xee\x7b\x3a\xa6\x26\ -\x1f\xb9\xd4\x15\x6d\xa2\x1b\xba\x5c\x2e\x2b\x2a\x7b\x37\xc4\xde\ -\x05\x1d\xd2\xbe\xb6\x87\xaa\x22\x67\x79\x34\xc9\x8a\xd0\xb5\x73\ -\x8c\x42\x0d\x6d\xdf\xaf\x97\x4a\xa5\xa2\x4c\x84\x70\x14\x45\x41\ -\xed\xb5\x5b\x2c\x16\x35\x63\xc1\x29\xad\x80\x6d\x35\x56\x49\x34\ -\x16\x3e\x35\xbc\x3e\x2d\xd1\xe9\xa3\xc3\x35\x91\xee\x0d\xe1\x04\ -\x71\x35\x97\x57\xd9\x00\x9a\x68\x53\x55\xf0\xcd\x37\xdf\x2c\x97\ -\x5e\x7a\xa9\x13\xbf\xa9\x56\xab\xc9\xd0\xd0\x50\xdb\xff\x7e\xd5\ -\xaa\x55\x2a\x9b\xcd\x72\xd3\x3a\x20\x88\x26\xf9\x97\xfd\xcb\x26\ -\xe2\xae\xe2\x7d\x08\xdf\xc9\xa5\x53\x3b\x15\xe9\x41\xc2\xd7\xb6\ -\x69\xd9\x30\x7a\x18\xa2\x5c\x5e\x2d\xf9\xc4\x4c\xc9\x06\x52\x1f\ -\xdd\x7f\xff\xfd\x46\x7e\xc9\xdc\xb9\x73\x9d\xf9\x4d\x9d\x86\xe7\ -\xd0\xd0\x90\xe6\xdd\xe0\x94\x56\xc0\xa6\xdf\xe9\x8c\xeb\x49\xbd\ -\x1a\x89\x4c\x1b\xf3\xa7\xc2\x79\xee\x9a\x7e\xb9\xa6\xb7\x97\x6e\ -\x26\xa4\x5e\x88\x63\xc1\x47\x7e\x57\xc7\x9f\xc1\x78\x70\xca\x2a\ -\x60\xd3\xa7\x3a\xae\x27\x75\x9f\xc2\xf7\x6b\xe7\xf6\x11\xbe\xc0\ -\x87\xc1\xa9\x4a\xa5\x52\xc7\xf7\x83\xc9\x1d\x8a\x5c\x51\x2c\x16\ -\x35\x7b\x21\x27\x27\xd6\x49\x58\xb5\x48\xa4\xcb\xa3\x20\xf3\x6d\ -\x72\xcd\xce\x6b\xfa\xe5\xca\x3f\xe8\x55\x2c\x76\x03\x9c\x50\x69\ -\x18\xba\x29\xea\x21\x1c\xd2\x6e\x45\x54\xc0\x29\xa9\x80\x09\x5f\ -\x7b\x96\x7c\x62\xa6\x5c\xdd\xdb\xab\xb2\x19\xf3\xbd\x0c\x00\x8e\ -\xab\xa8\x83\xfa\x1e\x6b\xd7\xae\xa5\x04\x4e\x43\x00\xbb\x4c\x1f\ -\x99\x58\x55\xff\x9f\x57\xdf\x7d\x30\xaf\x36\xce\x5f\x40\xee\x02\ -\x67\xae\x5e\x8d\xdc\x23\x2e\x2d\x66\x61\x22\x84\x27\x26\x26\xe4\ -\xdd\x77\xdf\xe5\x02\x49\xa2\xd0\x8b\xb3\xff\xdf\xe5\x05\x38\x7c\ -\x7d\x97\xb3\x3a\x90\x57\x59\x1e\xa3\x80\x26\x1f\xb4\xcd\x6c\xd6\ -\x70\xcb\x2d\xb7\xc8\xbc\x79\xf3\x5c\x7a\xb8\x30\x15\xe8\x3c\xc8\ -\x87\x58\x01\xb3\xc2\x90\x39\x8b\x7a\x67\x4a\xfd\xf5\x22\xc2\x17\ -\x68\xa1\x1d\x52\x4a\xca\xe5\x72\xc7\x21\xf3\xe4\x93\x4f\x06\x39\ -\x29\x0b\x01\x06\xb0\x8d\xd5\xaf\x7e\xd9\xbf\x6c\xa2\x93\xea\x57\ -\xeb\x0f\xdf\xe7\xf5\xe5\xe1\xa0\x3a\xb0\x5c\xed\xfa\x7c\xbf\x8c\ -\x5f\x43\x77\x33\xd0\x49\x08\x9b\x7a\x3f\x98\x10\x86\xf3\x01\xfc\ -\xc2\x81\x09\xe3\x01\x77\x76\x77\xf7\xd9\x1d\xfd\xf0\xd1\x61\x9d\ -\x1d\xf5\x6b\x19\xc9\x6c\x46\xc9\x55\x33\x78\xbd\x08\xe8\xd4\x59\ -\x67\x9d\xc5\x41\x38\xf5\x03\x05\x3d\x95\x31\x8a\xe5\x35\xa4\x47\ -\xf7\xbd\xed\x44\x55\xed\x6b\x37\x38\x6b\x38\x03\xe6\xab\xe0\x90\ -\xd4\x27\x63\x1d\x19\xe3\x36\x12\xc2\x8c\x07\x07\x52\x01\xff\xd5\ -\xc5\x97\x2b\xf3\x37\x50\x8b\x17\xe8\x1b\x7b\xbd\x0a\xdf\x68\xf0\ -\xc3\x65\x24\xb9\x4c\x01\xf3\x01\x5c\xa9\x54\x94\x89\x90\x71\xa9\ -\x1b\xda\xe4\x83\x05\x0b\x74\x04\x12\xc0\x19\x65\xe3\x42\x6b\xfe\ -\xbf\x5d\xf3\xc6\x5e\x5d\x7c\xfd\x35\xbf\x1a\x08\xae\x4d\xc0\x1b\ -\x85\x42\x21\xb8\xc0\xfa\xfd\xef\x7f\xcf\x89\x0d\x21\x80\x6d\x2c\ -\xc0\xd1\x68\x09\xca\x63\xdf\xeb\xbd\xdf\x93\xf0\xd5\x54\xbd\x40\ -\xec\x4c\x75\xb5\x86\xb6\xd9\xfd\x9a\x35\x6b\x28\x81\x6d\x17\x5a\ -\xb6\x9f\xda\x92\x78\xf7\xd7\xc7\xb1\x5e\x42\x17\x48\xb4\x82\x0d\ -\x6e\xc3\x06\x13\x5d\xe3\x73\xe6\xcc\x91\x3b\xee\xb8\x83\xb6\xc9\ -\xc7\x00\xd6\x7a\x6a\xb6\x71\x5c\x61\xe5\xe3\x0a\x56\x53\xc7\x5f\ -\x09\xcb\xb1\x02\xc9\x8a\xa2\x48\x56\xae\x5c\xd9\x71\x1b\xe2\x52\ -\x08\x9b\x98\x94\x55\x2a\x95\x54\x86\x05\xe6\xad\xb0\x7a\x54\xe3\ -\x4c\xc3\x6a\xe4\x57\xd1\x5b\x7f\x88\x50\x8a\xf0\x05\x9c\x68\x0c\ -\x0d\x85\xcc\xda\xb5\x6b\x9d\x78\x98\x28\x14\x0a\x1d\x87\xaf\x88\ -\x18\x79\x28\x41\x02\x01\x1c\x57\xb0\xd4\x22\x91\x69\x63\xeb\xbd\ -\x7a\xa7\x97\x4b\x0f\x70\x8f\x89\xf1\xe0\x89\x89\x09\x17\x2a\x79\ -\xe3\x95\x34\x3c\x0b\x60\x1b\xc1\x55\x0f\xaf\x63\x27\x59\xf9\xb2\ -\xcb\xd2\x9d\xb3\xfa\xa4\x96\x23\x7c\x81\xd0\x6d\xdd\xba\x35\xb1\ -\xbf\x6d\x3a\x7c\x45\xc4\xc8\xfa\xd9\x88\x3b\x80\x2d\x3e\x35\x65\ -\x46\xfd\x1b\xef\x7d\xf4\x92\xcb\x55\x86\xf8\x05\x9c\x56\x2a\x95\ -\x3a\xbe\x4b\x17\x2c\x58\x10\x6f\xfb\x72\xa4\xad\xb5\xf9\x4e\x32\ -\xab\x64\x99\x67\x6d\x12\x56\xa4\x45\x4c\x2f\xf5\xa8\x07\xf3\xca\ -\xc6\xe7\xda\x52\xcb\xe5\x95\x12\x61\x8c\x17\xf0\x90\x89\xc0\x29\ -\x97\xcb\xd6\x57\xdd\x8a\x7b\x21\x10\x56\xc8\x32\xc7\xda\x52\x94\ -\x36\x42\xb2\xa6\x45\xba\x3c\x0a\x5f\xaa\x5d\x20\xdd\xb4\xd6\x56\ -\x02\x98\x4d\x20\xc2\x60\xad\x0b\xba\xbf\x77\xa6\xf9\xa7\x85\x51\ -\x5f\x76\x2d\x22\x7c\x01\x98\x9b\x59\x0d\x02\xb8\x25\xe3\x13\xbf\ -\x4e\xe5\x01\xbd\x73\x56\x9f\xb0\x47\x2f\xe0\x3f\x57\xd7\x89\x4e\ -\xba\xfa\x65\x2c\xd8\x1c\x6b\x63\xc0\xbe\xee\x3c\xd4\x2e\x5e\x2d\ -\x02\xc2\x63\x6a\x71\x8e\x1b\x6e\xb8\x41\x16\x2d\x5a\xe4\x6d\xe8\ -\xda\x7c\x48\xa1\x02\x46\x47\xa1\x4b\xf8\x02\x81\x36\x90\x86\xba\ -\x90\x37\x6e\xdc\xd8\x76\x88\x56\xab\x55\x67\x8f\x0f\x1b\x36\x38\ -\x58\x01\x57\x23\x91\x69\x63\x61\x57\xc0\x84\x2e\x90\x1e\x49\xad\ -\x15\xed\xc3\x64\x2b\xaa\xe0\xf6\x59\x99\x05\x1d\x7a\xf8\x02\x80\ -\xb5\x87\x7b\xad\xe5\xd5\x57\x5f\x95\x27\x9f\x7c\x92\x83\x11\x38\ -\xba\xa0\xa9\x7e\x01\xc4\x54\xe5\x8d\x8f\x8f\x37\x0c\xdf\x62\xb1\ -\xe8\x55\xf8\x32\x29\xab\x7d\x56\xba\xa0\x43\x9c\x80\x45\xe8\x02\ -\x30\x19\x36\x27\x76\x47\xc7\xd9\xdd\x5c\xff\xdb\xa6\xfe\x26\xdd\ -\xd0\xed\xe9\xe2\x10\x10\xbe\x00\x92\x61\x63\xe3\x84\x56\x83\x1f\ -\x54\xc0\xce\x86\xae\xd6\x2c\x25\x09\x60\xca\xbe\x7d\xfb\xf4\x23\ -\x8f\x3c\x62\x2c\x08\xe3\xaa\x7a\x1b\x85\xae\x89\xef\x41\x15\xdc\ -\x3a\xc6\x80\x1b\x54\xbc\x84\x2f\x80\xba\xf3\xcf\x3f\xdf\x58\x8b\ -\xe0\xd2\x0c\x67\x13\x55\x71\xa1\x50\xd0\x8c\x07\xb7\x86\x2e\xe8\ -\x53\x84\x2e\x00\x34\xaa\xf4\x7c\x09\x9b\x66\xc3\xf5\xcb\x5f\xfe\ -\xb2\x3c\xf3\xcc\x33\x1d\xff\xbd\x28\x8a\x58\x82\x93\x00\x26\x7c\ -\x01\xd8\x0d\x62\x57\x43\xb8\x9d\x8a\xd6\x44\xf8\x8a\x88\x1c\x3c\ -\x78\x50\x3e\xf6\xb1\x8f\x71\x81\x34\x21\xf5\x8f\x29\xd5\x01\xc2\ -\x17\x40\x1b\x0f\xee\xda\xcd\x02\xb8\xdd\xee\x64\x53\x93\xb3\xd6\ -\xac\x59\xa3\x5d\x3d\x36\x04\xb0\x43\x55\xaf\x1e\xcc\x2b\x36\x4e\ -\x00\xd0\x0e\xe5\xe0\x04\x91\x55\xab\x56\x25\x12\xde\x27\x2a\x16\ -\x8b\x24\x70\x33\xd7\x50\x1a\x67\x41\xd3\xe5\x0c\xc0\x94\xa4\xbb\ -\xa1\x67\xcc\x98\x21\x07\x0e\x1c\x90\x52\xa9\x64\x6c\xec\xb5\x5a\ -\xad\xca\x03\x0f\x3c\x60\xa2\x1a\xa7\xad\x8d\xbb\x02\xae\x0e\x2c\ -\x77\xf6\xa0\x13\xbe\x00\x4c\x4a\x3a\x64\xee\xbd\xf7\x5e\xa9\x54\ -\x2a\x46\x27\x3e\x99\xfa\x2c\xba\xa2\xcf\xcc\xca\x24\xac\xac\x63\ -\xbb\xd1\xcf\xee\x99\x2e\x6f\xf5\xe7\x08\x5e\x00\x56\xdc\x7a\xeb\ -\xad\xf2\xc4\x13\x4f\xc4\x19\xfa\x56\x3f\xdf\x54\xf7\xfa\xb7\xbe\ -\xf5\x2d\xbd\x62\xc5\x0a\xda\xde\x38\x03\xd8\x15\xd5\x81\xbc\x52\ -\x4a\x84\xb3\x0f\xc0\xa6\xb9\x73\xe7\x2a\x11\xb1\x5e\xee\x5d\x7f\ -\xfd\xf5\xb2\x78\xf1\x62\xeb\xbf\x47\x29\x65\x64\xa1\x90\x89\x89\ -\x09\x2e\x8e\x33\xf5\x34\xd8\xfa\xe0\x24\xbb\x7a\x0f\xdd\xf0\xe1\ -\x04\xab\x8c\x62\x31\x0d\x00\xf6\x03\x6b\xd5\xaa\x55\xd6\x5b\x9a\ -\xcd\x9b\x37\xc7\xfa\xbb\x4a\xa5\x52\xc7\x9f\xc1\xe2\x1c\x67\xb8\ -\x6e\x6c\xf6\xd1\x6b\xad\x25\x33\xba\x3e\xf6\x83\xcf\x38\x2f\x80\ -\x24\x1c\x59\xdb\xd9\x4a\x9b\x57\x2e\x97\x13\x99\x79\x6d\x72\xc5\ -\x2e\x26\x65\x1d\xcf\x6a\x17\xb4\x52\x4a\xa2\x5c\x5e\x65\x46\xe3\ -\x9b\x15\x1d\xe5\x08\x5f\x00\xc9\xb0\xb1\x02\x14\x9b\x27\x04\x7c\ -\xbd\x58\x2f\xb1\x95\xfd\x8a\xb4\x96\x9b\x9a\x75\xad\x07\xf3\x8a\ -\xee\x66\x00\x49\xaa\x54\x2a\xca\x54\x77\x34\xe1\x4b\x00\x1b\x61\ -\x3a\x84\xeb\xaf\x3a\x45\xb9\xbc\xca\x28\x45\xb7\x33\x00\x67\x84\ -\x54\x09\x54\x2a\x15\x1e\x04\x7c\x0f\x60\x93\x21\xfc\xcb\xfe\x65\ -\x13\xd9\x8c\xa2\xe2\x05\xe0\x24\x53\xe3\xc0\xa1\xed\x98\x84\x04\ -\x03\xb8\x5e\xb1\x46\xb9\xbc\x6a\x77\xb1\x8e\x9d\xd7\xf4\xcb\x27\ -\x7b\xba\xcf\xe6\xd4\x01\x70\xb8\x6a\x54\x21\x4e\x38\x2a\x97\xcb\ -\x9c\x5c\x9f\x03\x58\x1d\x79\x2d\xa8\xdd\xc5\x3a\xae\xee\xed\xa5\ -\xe6\x05\xe0\x4d\x10\x97\x4a\xa5\x8e\xda\xac\x42\xa1\xe0\x4c\x25\ -\x4c\x97\xa3\x59\x89\x2e\xc4\xc1\xb8\x2d\x80\xe0\xab\x1c\x03\x33\ -\xa3\x1f\x7c\xf0\x41\x27\x7e\x8b\x4b\x5d\xe2\x04\x30\x00\xe0\xcc\ -\x85\x86\x81\xb5\x16\xf6\xec\xd9\x23\x97\x5d\x76\x59\x62\xdf\xff\ -\x07\x3f\xf8\x81\xbc\xf0\xc2\x0b\x9c\x4c\xc3\x14\x8b\x65\x03\x40\ -\x2c\xd5\x63\xc7\x8d\x6d\xdc\x8b\x71\xd4\x6a\x35\x19\x1a\x1a\x32\ -\xf6\x79\x2c\xc4\x41\x05\x0c\x00\x5e\x7a\xef\xbd\xf7\xe4\xe3\x1f\ -\xff\x78\x1c\x0f\x0b\x1c\x6c\x02\x18\x00\x50\xf7\xcd\x6f\x7e\xd3\ -\xfa\xeb\x40\x36\xc2\x97\xca\xf7\xd4\x32\x1c\x02\x00\xb0\xcf\x54\ -\x08\xd9\xac\x4e\x6d\x7d\x36\x43\x9d\xa7\xc6\x18\x30\x00\xc4\xc8\ -\xd4\xee\x40\xa6\x2a\xe1\x38\xba\x9b\xa9\x80\xa9\x80\x01\x20\x98\ -\x4a\xb8\x56\xab\x39\x5f\x99\x96\xcb\x65\x45\xf8\x9e\x1e\x63\xc0\ -\x00\xe0\xa1\xa1\xa1\xa1\x8e\xaa\x60\x26\x5a\x51\x01\x03\x00\x62\ -\x14\x45\x11\xe1\xeb\x08\xc6\x80\x01\x20\x01\x2f\xbf\xfc\xb2\x7e\ -\xea\xa9\xa7\x3a\xfa\x8c\xd9\xb3\x67\xcb\x1d\x77\xdc\xd1\xd4\xbb\ -\xc1\x5a\x6b\x19\x1f\x1f\x97\xcd\x9b\x37\xc7\xf2\xfb\xe8\x7a\x26\ -\x80\x01\xc0\x59\xeb\xd7\xaf\xd7\xbb\x77\xef\xee\xf8\x73\x9a\x59\ -\xa0\x23\xce\xaa\x97\xf0\x6d\x0e\x5d\xd0\x00\x90\x90\x1b\x6f\xbc\ -\xd1\x48\x50\x15\x8b\x45\xc2\xd7\x43\x4c\xc2\x02\x80\x00\x68\xad\ -\x8f\xab\x82\xa3\x28\x92\x95\x2b\x57\xc6\xf2\xb7\x7b\x7b\x7b\x65\ -\x62\x62\x42\xca\xe5\x32\xe1\x4b\x00\x03\x80\xfb\x94\x52\x32\x67\ -\xce\x1c\x79\xeb\xad\xb7\x8c\x7c\xd6\xb1\xe2\x0a\xdf\x5b\x6f\xbd\ -\x55\x2e\xb9\xe4\x12\x82\xb7\x9d\x73\xc6\x18\x30\x00\x24\xeb\x48\ -\xb5\xda\x71\x63\x5c\xa9\x54\x64\xed\xda\xb5\x32\x31\x31\x11\xcb\ -\xf7\x2e\x97\xcb\x8a\x3d\x82\x09\x60\x00\xf0\x9a\xd6\x5a\x8a\xc5\ -\xa2\x37\x0d\x72\xa9\x54\x52\x26\xf6\x3a\x4e\x33\xba\xa0\x01\xc0\ -\x85\x6a\xc8\x83\x4a\xf2\xa6\x9b\x6e\x92\xcf\x7d\xee\x73\x94\xbc\ -\x86\xf0\xf8\x02\x00\x68\x0a\xe1\x4b\x00\x03\x40\x90\x5c\x9e\x45\ -\xcc\x0c\x67\xf3\x18\x03\x06\x00\xc7\x8c\x8f\x8f\xeb\x4d\x9b\x36\ -\x25\xfe\x3d\x18\xe7\xb5\x8b\x31\x60\x00\x70\x4c\x7f\x7f\xbf\xda\ -\xbd\x7b\xb7\x3e\x70\xe0\x40\x22\x7f\xbf\x52\xa9\xa8\x13\xdf\x2b\ -\x86\x79\x3c\xda\x00\x80\x83\xee\xb9\xe7\x9e\x44\xd2\xaf\xbe\x92\ -\x15\xe1\x4b\x00\x03\x40\x2a\x7d\xf4\xa3\x1f\x4d\x2c\x7c\x41\x00\ -\x03\x40\x7a\x1b\xe7\x98\xc7\x5e\x09\xdf\xf8\x31\x09\x0b\x00\x1c\ -\x57\x28\x14\xac\x34\xd4\x84\x2e\x01\x0c\x00\x68\x42\xad\x56\x93\ -\xa1\xa1\xa1\x8e\x1b\xed\xd9\xb3\x67\xcb\x9d\x77\xde\x49\xf8\x26\ -\x8c\x2e\x68\x00\xf0\x44\x36\x9b\x35\x52\xb9\x12\xbe\x54\xc0\x00\ -\x80\x36\x55\xab\x55\x79\xe0\x81\x07\x9a\x6e\xc0\x1f\x7a\xe8\x21\ -\xd5\xd5\xc5\x9b\xa7\x04\x30\x00\x00\x29\x47\x17\x34\x00\x00\x04\ -\x30\x00\x00\x04\x30\x00\x00\x20\x80\x01\x00\x20\x80\x01\x00\x00\ -\x01\x0c\x00\x00\x01\x0c\x00\x00\x08\x60\x00\x00\x08\x60\x00\x00\ -\x40\x00\x03\x00\x40\x00\x03\x00\x40\x00\x03\x00\x00\x02\x18\x00\ -\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\xa0\xb1\xff\ -\x0f\xa8\xea\x16\x78\x38\xf7\x10\xb4\x00\x00\x00\x00\x49\x45\x4e\ -\x44\xae\x42\x60\x82\ \x00\x00\x17\xa5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -5815,13 +8234,2190 @@ qt_resource_data = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\xc0\x28\xfe\x03\x1d\x92\x97\xd3\xe0\x7d\x4a\ \xf9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x02\xeb\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x8d\x49\x44\x41\x54\x78\xda\x8c\ +\x93\xdf\x4b\x53\x61\x18\xc7\xbf\x67\x3b\x6e\x3b\xdb\x59\x8e\x31\ +\x62\xc8\x06\x75\x11\xe2\xa6\xa8\xcd\x2e\x76\x23\x04\xb5\xbc\xc9\ +\xd0\xd4\x8b\xc1\x44\x52\x0b\x6a\x19\x31\xba\xe8\x42\x10\x21\xf1\ +\x4a\xba\x11\xaa\x2b\x21\x12\x6a\x8c\xba\xe8\x07\x8c\xfe\x01\x41\ +\x17\x86\xd8\xb6\xa4\x44\x64\x25\x5b\xa7\x79\x36\xf6\xfb\xec\xf4\ +\x9c\xa9\xa1\x35\xb2\x17\x3e\xbc\x70\xde\xf3\x7c\xbf\xcf\xf7\x79\ +\xcf\x61\x70\xcc\xb2\xdb\xed\x70\xb9\x5c\xb0\xd9\x6c\x2d\x26\x93\ +\xa9\xc7\x60\x30\xbc\x65\x18\x26\x76\x70\xae\xc2\x7f\xac\x6a\xb5\ +\xea\xcc\x64\x32\xbd\xc3\xc3\xe3\x73\xd1\x68\xb4\x37\x16\x8b\xa1\ +\x58\x2c\x1e\x2b\xd0\x43\xac\xc8\xb2\x3c\x96\xcd\x66\xfb\x27\x26\ +\xee\xcf\x0e\x0d\x5d\x99\x89\xc7\xe3\xef\x54\x2a\x95\x22\xfa\x4f\ +\x81\x1b\xc4\x4c\x20\x10\x38\xbb\xbd\xbd\x7d\x73\x6a\x6a\x6e\xba\ +\xaf\xcf\x33\x5f\x28\x14\x42\x66\xb3\x79\x8d\xe3\xb8\x16\x49\x92\ +\xee\x92\x78\x73\x3d\x81\x36\xab\xd5\x7a\x9b\x56\xa7\x28\x8a\xf0\ +\xfb\xfd\x9d\xdd\xdd\x1d\xab\x82\x20\xc4\xc8\x35\xa2\x56\xab\x8f\ +\xc4\x51\xd7\x73\x77\xbb\xdd\x1e\xbd\x5e\xcf\xa5\xd3\x69\x54\x2a\ +\x15\x74\x75\x75\x59\x97\x96\x96\xec\xe4\x2c\x19\x8d\xc6\x73\x93\ +\x93\xb3\x0f\x7c\xbe\x81\x19\x32\x78\xc9\xd6\x11\x68\xb7\x58\x2c\ +\x5c\x2a\x95\xaa\xe5\xcc\xe7\xf3\xa0\x56\xe1\xf1\x78\x5a\xc3\xe1\ +\xf0\x9d\xc5\xc5\xd7\x0e\x25\x0e\x19\x84\x74\x3a\xdd\x5a\x3d\x01\ +\x3b\x5d\x93\xa6\x54\x2a\x81\x32\x63\x67\x27\x09\x25\x0a\x5d\x1f\ +\x9c\xce\x36\x07\xc5\x89\xf1\x3c\xff\x39\x97\xcb\x45\x68\xb8\x7f\ +\x0d\xf1\x32\x61\xa6\x62\x55\x3a\x2d\x22\x91\x48\xa2\x54\xaa\x42\ +\xa7\xe3\x21\x49\x0c\x18\x86\x85\xc3\xd1\xde\x4c\x85\x7e\xa5\x43\ +\x1a\x30\x0e\x77\xd0\x4b\x3c\x1c\x19\x19\x39\xbd\xb1\xb1\x49\xee\ +\x55\x70\x1c\xff\xfb\x90\x65\xd5\xd8\xbc\xf8\x1d\x29\xb3\x50\x42\ +\xb2\xf1\x13\xbe\x94\x81\xb2\x8c\xc3\x43\x0c\x53\xf1\xa9\xad\xad\ +\x04\x65\x67\xd1\xd0\xa0\x05\x0d\x0c\x5a\xad\x86\x46\x20\x57\x44\ +\x31\x5d\x48\xb8\x93\x18\x1d\x1b\xd5\x44\xc4\x8f\x59\x9c\x61\x9f\ +\x10\x47\x3a\x78\xb5\xb0\xb0\x30\xe0\xf5\x5e\x6b\x12\x84\x0c\x65\ +\xd6\x21\x14\x7a\x9a\xa0\xe7\xbb\x18\xe7\x4f\xa2\x99\x2d\x43\xcf\ +\xfc\xdc\x95\x76\x5b\x50\xac\x7d\x44\xcb\x90\xb1\x72\x50\xec\x25\ +\xe4\xc1\xc1\x41\x99\x76\xc1\xeb\xbd\x5e\xdb\x89\xab\x8a\x0b\xe6\ +\x4d\xcb\xe7\xbf\xf5\xcb\x7f\xa2\x3c\x67\xf6\x8b\x9f\x51\x31\x82\ +\xc1\xa0\x22\xf6\x88\x18\x25\x7c\xc4\x73\x5c\xd2\x02\x1e\xed\x63\ +\x72\x73\x29\x87\xad\x43\xed\xae\xb5\x17\xab\x7b\xce\xcc\x5e\x07\ +\x07\xce\x0a\xb7\x08\x8b\x72\x13\x84\x89\x38\x41\x18\x09\x03\xc1\ +\x61\x9a\x8f\x34\x7d\x75\xca\xb4\xaf\xec\xff\x06\x8c\x32\xc4\xc2\ +\xfa\xfa\xfa\x05\xda\xef\x11\xef\x6b\x2f\x02\x64\x0b\x0d\xd1\xb0\ +\x8f\xba\x56\xd0\x28\x77\x64\x56\x7f\xc8\xd8\x90\x3e\x20\x5a\x7d\ +\xa3\xb8\xff\x12\x60\x00\x16\xa7\x22\x09\x8f\x08\x94\x30\x00\x00\ +\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x1e\xda\ +\x00\ +\x00\x6b\xd6\x78\x9c\xed\x5d\x6b\x6f\x1c\xc7\x95\xfd\xee\x5f\xd1\ +\xcb\x7c\x71\x80\x99\x56\xbd\x1f\x8a\xe5\x00\xeb\x6c\x90\x05\x36\ +\xc0\x02\x9b\x0d\xf6\x5b\x40\x93\x63\x91\x6b\x8a\x14\x48\x5a\xb2\ +\xf5\xeb\xf7\x9c\x53\xd5\x3d\x3d\xc3\x21\x47\x52\xcc\xc4\x0b\x58\ +\x86\xad\xa9\x9a\x7e\xd4\xe3\x3e\xce\x3d\xf7\xd6\xf8\xab\xdf\xff\ +\xf8\xe6\x6a\x78\xb7\xb9\xbd\xbb\xbc\xb9\x7e\x75\x62\x47\x73\x32\ +\x6c\xae\xcf\x6e\xce\x2f\xaf\x5f\xbf\x3a\xf9\xef\xbf\xfc\x71\x5d\ +\x4e\x86\xbb\xfb\xd3\xeb\xf3\xd3\xab\x9b\xeb\xcd\xab\x93\xeb\x9b\ +\x93\xdf\x7f\xfd\xc5\x57\xff\xb2\x5e\x0f\xdf\xdc\x6e\x4e\xef\x37\ +\xe7\xc3\xfb\xcb\xfb\x8b\xe1\xdf\xaf\xbf\xbf\x3b\x3b\x7d\xbb\x19\ +\xbe\xbc\xb8\xbf\x7f\xfb\xf2\xc5\x8b\xf7\xef\xdf\x8f\x97\xbd\x73\ +\xbc\xb9\x7d\xfd\xe2\xb7\xc3\x7a\xfd\xf5\x17\x5f\x7c\x75\xf7\xee\ +\xf5\x17\xc3\xb0\x7c\xa7\x3d\x61\xc7\xe5\xf9\xab\x13\x7c\xe7\xd4\ +\x78\x7f\x79\x7e\x7f\xf1\xea\x24\xdb\x32\x26\xfc\xa9\xea\xbc\xd8\ +\x5c\xbe\xbe\xb8\xc7\x1d\xbe\xf5\x66\xf5\xbe\xbb\xdc\xbc\xff\xd7\ +\x9b\x1f\x5f\x9d\x98\xc1\x0c\xf3\x0d\xc3\xee\x45\x77\x98\xd1\x5b\ +\xfc\xfb\xf2\xfc\xe6\xec\xfa\xf4\x0d\x26\xf2\x5f\xff\xf6\xcd\xcd\ +\x7f\xfe\xed\x96\x4f\xbc\xbb\x3c\xdf\x8c\x78\x75\x1b\x46\x1f\xf3\ +\xcb\xc5\x00\xdd\xe8\x86\x2f\xbf\x35\xa7\x25\x94\x14\x83\x5d\x0d\ +\xce\x38\xb7\xb6\x6e\x6d\xec\x6f\x75\x13\x16\xf1\xfa\xee\xe5\x74\ +\xeb\xab\x93\xc7\xd6\x80\xaf\xbe\x7b\x7b\x7a\xb6\xb9\x7b\x31\xf5\ +\x2f\xee\x9f\x06\x39\xdf\x3f\x75\x8c\x77\x37\x3f\xdc\x9e\x6d\xbe\ +\xc3\x23\x36\xe3\xf5\xe6\xfe\xc5\x1f\xfe\xf2\x87\xf9\xcb\xb5\x19\ +\xcf\xef\xcf\xb7\x8f\xd9\x79\xfb\x7b\xaf\xf7\x3a\x63\xcc\x8b\x69\ +\x86\xfd\x65\xef\x5e\x3f\x79\xe5\xd7\xb8\xf4\xab\xf3\xcd\x77\x77\ +\xbc\xa5\xed\x0e\x5b\xe9\x64\x78\xa1\xaf\xe6\x15\xe5\x9c\xce\xb9\ +\x09\xdb\x0b\xe7\xae\x70\xd2\x3a\xdf\x9e\xbe\xde\x9c\xdd\x5c\xdd\ +\xdc\xbe\x3a\xf9\x4d\x34\xfc\xa7\x7f\xf1\xed\xcd\xed\xf9\xe6\x76\ +\xfa\x6a\xa3\x3f\x3b\x5f\xdd\x60\xb5\x2e\xef\x7f\xc2\x2e\xf4\xee\ +\x79\x7f\xee\x2e\x6e\xde\xf3\xb9\x77\x17\xa7\xe7\x37\xef\xb1\xfd\ +\xfb\x17\xf0\xcb\xf9\xf6\x83\xdf\x9e\x5d\x6c\xce\xbe\xdf\xdc\x7e\ +\x7b\x73\x7a\x7b\x7e\xe0\x92\xf3\xcd\xdd\xf7\x07\x47\xcd\x57\xbf\ +\xbe\xe5\x4c\xbf\x3b\xbd\xba\xdb\xec\xdf\xf7\xe1\xe6\xe6\x0d\xc5\ +\x26\x1b\x5b\x9d\xdf\xff\xf6\x0c\xa2\xea\x63\x1d\x63\xf5\x07\xbe\ +\xc4\x50\x53\x1d\x3d\xff\xa4\xfd\x2f\xdf\x5f\x5e\x63\xa6\xeb\xae\ +\x1b\x78\xf6\x83\x11\xf7\x2b\x66\x45\xb1\xf9\xc1\xb2\xf5\x4b\x7e\ +\x7c\xf2\x01\x87\x16\xac\x7f\xf5\xe6\xf4\xc7\xcb\x37\x97\x1f\x36\ +\xe7\x07\xb6\xe4\xec\x87\xdb\xdb\xcd\xf5\xfd\xfa\xea\xf4\xa7\x0d\ +\x16\xed\xb5\x35\x93\xb4\xbc\xde\x0a\xc7\xeb\xb2\x7f\xdb\xeb\xdb\ +\x9b\x1f\xde\xbe\xb9\x39\x87\xe2\xe8\xce\xfd\xef\xaf\x4e\xbf\xdd\ +\x5c\xbd\x3a\x41\xfb\x6f\x9b\x1f\xef\xff\xf6\x3f\xfa\xd3\x2f\xba\ +\xbf\x3d\xbd\xbe\x83\x62\x60\xc1\xdf\x9c\xde\xdf\x5e\xfe\xf8\xa5\ +\x6d\xab\xe7\xfd\xca\xe0\x9f\xf5\xb2\x39\xdb\x84\xdf\x4a\xbc\xb7\ +\xe3\xea\x23\xb3\xd3\xa4\x77\x9e\x8b\x41\x5c\x6d\xbe\x34\xa3\x9d\ +\xee\xc2\x7d\x6f\x4f\xef\x2f\xa6\x4b\xdb\xcd\xec\xb1\xee\x64\xdb\ +\x79\x77\xff\xd3\x15\x66\xf4\xdd\xe5\xd5\xd5\xcb\xdf\x38\x6f\xbf\ +\x73\xe6\x77\x6c\xac\xbb\x4c\xbe\xb4\xad\x79\xfb\xc3\xd5\xe6\xe5\ +\xe6\xdd\xe6\xfa\xe6\xfc\xfc\x77\x77\xf7\xb7\x37\xdf\x6f\x5e\x5e\ +\xc3\xd6\x2e\x1e\x85\xc7\xff\x79\x70\xa5\xc6\xd1\xe6\x58\x87\xec\ +\x13\x64\x2b\xd8\x30\xfc\xc7\xa2\xd7\x8e\x30\x4e\x2e\x56\xf6\x7a\ +\x93\xcc\x58\x7c\x3c\xdc\xe9\x62\x18\x6b\x8e\xc9\xb1\xd3\xfa\x3a\ +\x66\x0b\x83\xb9\xed\xfd\x66\xf0\xce\x95\x31\xe6\x54\x16\xbd\xde\ +\xd5\x3a\x06\xe7\xf2\xe0\x72\x1e\x4b\xa9\x0e\x7d\x3e\xba\x31\x19\ +\x97\xf0\xad\x1f\x7d\xaa\x36\xf3\xee\x60\xe2\x98\x33\x7b\x21\xcb\ +\x30\x95\xd6\xa3\xcf\x3b\x5c\xe0\xc3\x10\xf0\xe8\x94\x39\x8e\x6d\ +\x5f\x34\x6e\x0c\xd5\xb8\x76\xf7\xd4\x9b\x22\xae\xac\xc1\xf2\x3d\ +\x18\x65\xb1\x61\x39\x77\x6f\x31\xb4\x58\xe2\x23\xcb\xb1\xed\xfd\ +\x30\xfc\x79\x3b\xf7\x64\x34\xdd\xa2\x05\xb1\x2e\x8e\xd5\xf0\x4d\ +\x73\x2f\xe7\x6e\xc3\x68\x92\xf7\x8b\x5e\xef\x30\x14\xeb\x43\x19\ +\x62\xb6\x63\xf5\xc6\xc6\x45\x5f\xa8\x09\x03\xce\xae\xad\xdc\xdc\ +\x6b\xeb\x88\xd5\xf2\x8b\x07\xfa\x62\xc6\x18\x13\x96\x75\xfb\xea\ +\x6d\xdf\x62\x87\x0e\x76\x6e\x87\xf3\x61\xe8\x7a\xf5\x94\x2c\x86\ +\xe7\x94\x45\x6e\x58\x09\x29\x0f\x11\x02\x60\x33\xfe\x60\xee\x0e\ +\xab\x3d\x46\x83\x51\x6f\x7b\x9d\x0f\x61\x74\x26\xd9\x21\xba\x8c\ +\xdd\x74\xc5\x0e\xce\x55\x78\xd4\x00\x99\x0a\xb9\x60\x4a\xb1\x24\ +\xde\xed\x82\x19\x5d\x65\xaf\xc3\x44\x7d\xa8\xbc\x12\x4f\x0c\x26\ +\x60\x99\x92\x1d\x53\x29\x79\xd1\xe5\x32\x44\xd3\xa5\x5c\x75\xf3\ +\xd4\x6b\xab\x19\x2b\x24\x87\x57\x42\x68\x82\xf5\x79\xb0\x2e\x8c\ +\xd8\x85\xca\xbe\x82\x3e\x8f\xbe\x1c\x47\x1f\x6c\x71\xdc\x72\x47\ +\xf1\x0a\xc9\xa7\xc1\x71\x27\x2b\x77\x0d\xa3\x29\x18\x38\x06\x01\ +\x1d\xca\xb5\x1a\xbc\xc7\x05\x48\x97\xc0\xc5\xdc\x85\x9b\x63\xc1\ +\xac\x7d\x59\xf6\xba\x44\xd9\x34\x90\x5c\x4c\xda\x50\x91\xf8\x09\ +\x5a\x11\x8b\xb5\x03\xd4\x27\x59\xbc\x93\xf2\xe2\xa0\x5b\x78\x24\ +\x7a\x2d\xf4\xc2\x26\x6f\xa0\x73\xb9\x60\xf9\xaa\x83\xfa\x56\xdc\ +\x2e\x31\xd9\xf6\x39\xbc\xce\x56\x7e\xfa\x66\xd1\xeb\x53\x80\x90\ +\x38\x4b\xed\x8c\x19\x93\xb0\x69\xb9\x8e\xd9\x40\x65\x23\xfb\x96\ +\x2b\x4e\x05\xf3\x11\xf7\x2c\xf6\x26\x62\x81\x6a\xdc\xd9\xd9\x43\ +\xbb\x4d\xa5\xc2\x72\x40\x2b\xb3\xb7\xd2\x69\x68\x67\xd0\x98\x22\ +\x5e\x01\x71\x5f\x74\xba\x64\xf3\xe8\x30\xc4\xc1\xe7\x3a\x62\xd1\ +\x73\x58\xf4\xe1\xb5\xa3\x09\x55\xca\xb7\xed\xb5\x5c\xa5\x8c\xdb\ +\xdb\x03\x83\xf1\x5c\xa2\x38\x96\xea\x23\xcd\x92\xc1\x36\xdb\x9d\ +\x3e\x09\x20\xfc\x6a\xc6\xc2\x2e\xae\xf4\xb8\xbb\x78\x5e\x99\xd3\ +\xe8\x52\x81\x80\x6d\xfb\x68\xca\x8c\xb3\x51\x5b\x31\xf7\x42\x89\ +\x47\x8b\x41\x52\x7c\xb1\x1c\x11\x66\x04\x0b\x0c\xab\x54\x2a\x97\ +\x23\x58\x83\x2d\x63\x5f\xc1\x0d\xc6\x67\x4d\x3b\x78\xec\x3f\x44\ +\x0a\x8a\x1f\x31\x1f\x9b\xf1\x9e\x00\xa9\x8d\xbb\x0b\x74\x68\xd1\ +\x9e\xd2\x67\xe8\xdb\x9b\xc1\x71\x3e\xd1\xaf\x68\x05\xb9\x8b\x67\ +\xc3\x3a\x02\x5f\xac\xd6\xe8\x36\xc6\xd7\x61\x6d\x31\xf3\x10\x56\ +\x6b\x9f\x31\x5c\x8f\x55\x5b\x03\xa3\x8e\x75\xd9\x61\x21\xd0\xc5\ +\xae\x0c\x3e\x55\x28\x4b\x5a\x61\xc0\x15\x0a\xc7\x6b\x21\x84\x65\ +\x05\xe1\xae\x30\x32\x68\x63\xae\xd1\xae\x20\x52\x58\x75\x34\xab\ +\x1f\xd3\x0a\x43\x85\xc6\xe4\xa9\xe9\x22\xae\xe6\xf6\xc0\xad\x5a\ +\x8f\xc1\x61\x39\xa0\x8f\x65\xe5\x20\xe6\x78\xca\x60\xf1\xb7\xa9\ +\x2b\xc7\x55\x87\x2b\xc8\x70\xa0\x76\x85\xff\x26\x87\xad\xc0\xba\ +\xd8\xbc\xe2\x25\x15\xaa\x96\xfd\x68\xec\xd4\x82\xcb\x70\x19\xa3\ +\xc4\x06\x40\x7a\x57\x6b\xc8\x2b\x8c\x3c\x6c\xfa\xe8\x30\x5f\xe8\ +\x67\x8c\xc3\x5f\x21\x89\x09\x8b\x57\xb8\x12\x21\x8f\x21\xaf\xb0\ +\x98\xbe\x78\xce\xd2\x72\xa5\x02\x66\x90\x2d\x9a\xdc\xb6\x38\x37\ +\x53\xc2\xdf\x5a\x02\x67\x78\x17\x56\x09\xb3\x48\xbc\xce\xf2\x3a\ +\xce\xbc\xc0\x8a\xac\x61\x8b\x4a\x59\xad\x03\xf6\xb4\x16\xdc\x47\ +\x18\xb1\x5a\x57\xe2\x87\x30\x37\x6d\xa6\xc5\xca\x58\x82\x75\x82\ +\xbf\xc4\x9c\x35\x76\x3c\x1c\xce\xd0\xd1\x59\x40\x95\xd0\xe4\x42\ +\x42\x98\x80\x3e\x22\xe6\x80\x47\x43\x03\x07\xd8\xa9\x98\x56\x7c\ +\x94\x8d\x69\xb0\x5a\xce\xb9\xc9\x51\x07\x2e\x42\xdb\x56\x48\x94\ +\x33\xb0\x63\x70\x3e\x36\xac\x02\x16\x18\x2e\xf5\xaf\x43\x17\x87\ +\xe7\x31\xf4\x93\x23\x71\xe6\x88\x70\x62\x1b\x0c\xe7\x49\xac\xc1\ +\x59\x5f\x60\xf5\xb8\x7c\x18\x60\x73\xc2\x19\x5d\x01\x4b\x52\x38\ +\x66\xa0\x05\x6c\x76\x1a\xfe\x84\x0d\xc6\x86\xf3\xaa\x80\x85\x09\ +\x29\xe2\x2a\xba\x00\x18\x3b\xcc\xcc\xc0\x62\x1b\xbb\xbc\xca\xe2\ +\x59\xce\x78\x5e\x05\x59\xb0\x14\x82\xfe\xc6\x67\x9e\xbf\x3b\x36\ +\x7f\x07\x39\x2d\x7e\x15\xe9\xbd\x0a\x45\xd2\x16\xee\x7f\xa6\xa0\ +\xf9\x84\x7d\x2d\x90\x34\x03\x5d\x8a\x18\x75\xa4\x1a\x99\x45\x07\ +\xf5\x2a\xe8\x5a\x68\x39\x14\x10\x2a\x03\x03\x0f\x33\xd1\x81\x16\ +\xb6\xbf\xc0\x48\x05\x0a\x5a\xc0\x73\xbd\xa3\x34\x1b\xe7\x07\xe8\ +\x61\x30\x50\x4c\xba\x3e\x5f\x06\x38\x55\x60\xb2\x95\x73\x70\xae\ +\x54\x04\x38\x06\xa8\x29\x24\xa9\x46\x68\x38\x56\x16\x26\x69\x05\ +\xb7\x03\xe7\x00\x89\x76\x9e\x03\xb3\x2b\x8c\x1c\xe2\x58\x07\xea\ +\x41\x5c\x41\x85\xb9\x39\x78\x84\xc9\x61\x25\x6d\x81\xe7\x26\xe4\ +\x29\x2b\x5c\x68\x65\xae\x89\xce\x28\x92\xb0\x7b\xb4\x1b\xd4\x79\ +\x8c\xa4\x42\x88\x0d\x0c\x41\x49\x6c\xc2\x8e\x37\x57\x6c\x0a\x66\ +\x1a\xe0\x33\x11\xa7\x26\xa2\x70\x74\xc3\x3f\x58\x76\x7b\x98\x89\ +\x2b\xd8\x72\x78\x39\x2a\x06\x56\x04\xde\x0f\x46\x9d\xd6\xc0\xc1\ +\xb4\x85\x18\x20\x01\x35\xd0\x5a\x59\xd8\xd8\x42\xe7\x10\x0b\x2c\ +\x05\x6d\x43\x19\x12\x3c\x47\xaa\x15\x6d\x58\x39\xaa\x1b\x9d\x4b\ +\x58\x55\x2c\x13\x3c\x24\x70\x59\x1e\x61\x54\x56\x25\x65\x3d\x20\ +\x40\x49\x4b\x8e\xab\x0c\x79\xf5\x58\x14\xb6\x63\xf0\x30\x4a\x78\ +\x4c\x94\x55\xa5\xf8\x41\xed\x31\x55\xc2\x64\x8c\x8a\xda\xcc\xa5\ +\x03\x36\x80\x86\xc2\x13\xa0\xad\xdd\x0d\x03\x95\x11\xd7\x62\x30\ +\x58\x25\xec\x79\xa6\x78\x52\xf9\x21\x0f\xf0\xa4\xb6\xc8\xf0\xd1\ +\xc4\x60\x62\x99\x1b\x62\x22\x6e\x87\xc7\xa6\x17\x59\x63\x10\xa9\ +\xe0\xf1\xd8\xb6\x02\x6d\x5e\x3b\x8b\x65\xae\x4e\x1d\x5c\x67\x98\ +\xf4\x42\xf9\xc6\x3a\xd1\x5d\x63\xc3\x0a\xed\x29\x87\x88\xb9\xad\ +\x3d\x96\xbe\x16\x49\x91\x05\x4a\xdc\x13\xc2\x67\x56\x89\xf0\xab\ +\x4a\xfc\xaa\x12\xbf\x6c\x95\xf8\xf0\x88\x0a\x50\xa4\x27\xf1\x9e\ +\xd4\xa1\x35\x1b\xb1\xf2\x12\x20\x06\x01\xef\xd4\x77\x75\x79\xbd\ +\x39\x3b\x7d\xfb\xf2\xdb\x1f\xee\xef\x97\x7d\xff\x7b\x73\x79\xfd\ +\xf2\xcd\xe5\xfd\xe6\x76\xea\x55\xe3\xea\x12\x7f\xbd\x74\x14\xbb\ +\x98\xa6\x6f\xce\x4f\xef\x2e\x4e\x6f\x6f\x4f\x7f\x5a\xbe\x7c\xab\ +\x7e\x87\x14\x2c\x1d\x51\x30\x20\x51\x4c\x13\x02\x08\xe8\x84\x00\ +\x7f\x78\x87\x10\x79\x2c\x8e\x9a\x06\x5c\x84\x25\x8f\x0d\x55\x60\ +\x21\xb1\x7a\x23\xe3\x55\x20\x89\xca\xad\x23\x22\xc5\x4e\x69\xa3\ +\xb0\x4d\x80\xc3\x52\x16\x20\x45\x80\x09\x84\x2e\xc0\x95\x71\x6a\ +\x84\x51\xe2\x59\x46\x89\xac\x07\x12\xc2\xed\x8e\xae\x9e\x90\xd9\ +\x63\x33\xd1\x9d\x01\xda\x22\xd1\x12\xdc\x71\xe0\xb5\x61\xe5\x19\ +\xde\x0d\x4e\x18\x6f\xf4\xd0\x17\x28\x14\x74\x00\x2b\x8b\x08\x04\ +\x43\x52\xac\x02\xf7\x6d\x74\x53\x26\x4f\x11\x2b\xee\x2a\xb5\xb6\ +\x8f\x09\xfb\x5a\x80\xab\xa8\xa9\x99\x32\x28\x63\x82\x11\x71\xc8\ +\x6e\x05\xd1\xa6\x06\x13\x02\x13\x28\x41\x54\xa8\xa4\x2b\xc6\x5c\ +\xb8\x1a\x52\xe0\xf1\x84\xc0\x3b\xb9\x13\x78\x07\xa3\x0b\xf4\x43\ +\x65\xf9\x12\x81\xe1\x31\x38\x3c\x32\xf1\x39\xa1\x0d\x1d\x50\x13\ +\xd3\x6d\xba\xbf\xa6\xe1\x29\xbc\xc0\x09\x5d\x73\x00\x90\x0c\xe3\ +\x08\xac\x11\x98\x40\xc1\x18\x7c\x0e\x44\xa4\xb0\x5c\x96\x21\x0f\ +\x5a\x91\x08\x9b\x2a\x96\xf8\xb4\x4c\x93\x40\xfb\xa7\xcf\x4e\xe6\ +\xc1\x68\xf0\x9a\x26\x31\x35\xbe\xc6\x8a\x00\xe7\x3a\x21\x1f\xcf\ +\x25\xe3\xa8\x3c\x76\x28\xf2\x25\x9c\x1d\xc7\x12\x79\x31\x4d\x1c\ +\x6c\x00\x67\x01\xbc\x84\x51\x65\x2e\x15\x79\x9e\xc2\xcd\xe5\x3e\ +\x71\x67\xb9\xea\x08\x61\x71\x43\x86\x21\x1a\x65\xbc\x8a\xd3\x27\ +\x20\x52\xda\x1b\x6c\x80\xf4\x06\x2a\x8d\x79\x54\xd2\x64\x40\xbd\ +\x58\xf5\xc4\x5e\x2c\x90\xa5\x19\xa1\x80\x04\xec\x13\x2c\x1a\xb4\ +\x14\x52\x02\x39\x5b\x7b\x6e\x90\xa7\x65\x70\x9a\x02\x76\x36\x72\ +\xe2\x5c\x39\x6f\x35\x6f\x57\xb1\x56\x14\x4b\x2e\x7f\xa5\x08\x60\ +\xb7\xd7\x49\xe1\x00\xde\x83\x05\x15\x4e\xf6\x0c\x3e\xf1\x40\x62\ +\x5a\xec\x30\x4d\x30\x26\x83\x40\x60\x64\x8c\x83\x6b\x02\x25\x8d\ +\x1b\xd4\x2f\x51\x18\xa3\xc7\x18\x21\x60\xbc\xaa\xda\xe9\x33\x37\ +\x96\xc8\x1e\xc1\x6f\x33\x09\x49\xd1\x80\x40\x36\x25\xcd\xe9\x31\ +\x85\x5f\x65\xc4\x85\xdc\x2a\x5a\x2e\x04\x70\x91\x0f\x32\x12\x7a\ +\xb2\x05\x6b\x1a\x9b\x46\x1c\x26\x3d\x36\xae\x24\x46\x8e\xf7\x18\ +\x06\x05\x58\xf6\xdc\xbc\x89\x1e\x90\x9b\x28\x66\x3e\x40\xe1\x54\ +\x6b\xc0\xd6\x65\xc5\x06\x58\xa7\x48\x6f\x92\x22\xef\xa5\x96\x5a\ +\xad\x39\x96\xd5\x52\x0b\x18\x4a\xd0\x7d\x71\xfb\x5d\xd0\x53\xc8\ +\x89\x29\xfa\xe1\x7f\xb1\x49\x5c\x8a\x75\x5b\xea\xa8\xcf\x8c\xb8\ +\x22\x94\x0d\x32\x8a\x6b\x10\xc9\xe3\xde\x76\x09\x6c\x1f\x45\x67\ +\x4d\xff\x93\xb9\x8f\x0c\x2b\xa2\x26\x93\x34\x4b\x6a\x90\x14\x99\ +\xf1\x0f\xee\x65\x68\x8c\x75\x67\xa4\xc5\x55\xa2\x6e\xf2\xa2\x82\ +\xe8\xaa\x3d\x9f\x2b\x1e\x28\x84\x81\xb6\x24\xe9\x5d\x08\x1f\xf1\ +\x86\x84\xb5\x83\xbd\x59\x61\xd1\xb3\xa5\x51\xe1\xbb\x70\xa1\x97\ +\x76\x37\xa1\x89\xe4\x3e\xc6\xac\x7b\x6b\xf4\xfd\x33\xde\x68\x0a\ +\xb5\x01\x6f\x0d\x59\xab\x19\xb9\x9a\x91\xee\x87\xea\x4c\xeb\x84\ +\xa5\x69\x3b\xeb\x6c\x5b\x89\xc0\xed\x8d\xf4\x28\xd8\xdf\xc2\xbb\ +\xbc\xa6\x84\xbf\xfa\xfe\x84\xaa\xb5\xc9\x4d\x67\xb5\x0b\x56\x1a\ +\x0c\x3f\x18\x39\xce\xc4\x20\x11\x32\xe2\xb8\x58\x31\xf0\xc2\x48\ +\xdb\x81\x19\x7b\x4a\x02\x1c\xb5\x75\x73\x4b\xb2\xcc\x70\x31\x71\ +\xb3\x4d\xbb\x9b\xbe\x9c\x92\x0c\x57\xbd\x96\x96\x12\x73\xe0\x1a\ +\x86\xcb\xab\xb6\x31\x7c\x1f\x23\x68\x46\xcc\x9f\x8b\xc5\xe0\x2c\ +\x3e\x6c\x6e\x6f\x8e\x61\xb1\x72\xc4\x55\x04\x03\xcc\x43\x7f\xcf\ +\x0d\x45\x6c\x06\xc0\x80\x01\xbe\xe3\x9e\x57\xec\xd9\x05\xad\x6b\ +\xa0\x3a\xf7\x95\xa5\xdd\xe3\x04\x10\xea\x72\x9f\x18\x7f\x52\x75\ +\xb0\x09\x65\xdb\xc4\xfa\xc3\xb4\x88\x4a\xa0\x13\x80\xb4\x48\xdb\ +\x23\xd7\x15\x08\x82\x6a\x4d\xb9\xa0\x25\x93\xb6\x63\x49\xb1\x47\ +\x2e\xf7\xcf\xc4\x03\x04\x58\xb4\x7a\xb6\xca\x92\x55\xd1\x11\xb0\ +\x95\x00\x61\x30\x0d\x94\x69\x22\x21\x4f\x0b\x44\xc3\x1e\x68\x72\ +\x0c\x0d\x2d\x71\x0a\x06\x0b\x97\x05\xc8\x23\x97\xe0\xb8\x4b\xbd\ +\x41\x89\x70\x1c\x19\x20\x23\xb5\x90\xbe\x2d\x13\x1b\xb4\xc8\x1c\ +\x36\x07\x36\x12\xb3\x87\xc4\x06\xe2\x1b\x72\x39\x80\x75\xa3\x88\ +\x2e\x47\x91\xb1\xc4\x36\x7e\x60\xe8\x1a\xa7\x06\x91\x17\x3d\xa1\ +\x2f\xcd\x36\x78\x01\xb1\xde\x62\xd0\x0a\x67\xfb\x61\x78\xd3\x57\ +\x77\x15\x83\x9e\x4e\xe7\x60\x64\x16\x00\xb5\xce\x64\x65\x64\x72\ +\xac\xcd\x12\x17\x2b\x93\x63\xac\x56\xdb\x4a\x93\xb9\x02\x74\x66\ +\x65\x52\xc1\x75\xf3\xe7\xb9\xb9\xad\xd6\x80\xc4\xda\x40\xe6\x45\ +\xaa\x2f\x55\x93\x9b\x27\xcf\x4f\x82\xb2\xed\x22\x06\xe0\xbb\x2f\ +\x27\x67\x52\xb4\x1c\xb1\x61\x81\xa8\x91\xb4\x06\xf6\x8b\x5b\x49\ +\x57\x45\x1f\x4c\xf0\x04\xcd\xc3\x6e\x13\x37\x54\x3e\x90\xde\x14\ +\x9e\x0f\x9a\xca\x5d\x24\x2d\xcd\x8f\x5c\x2d\xec\xee\xbb\x41\xc2\ +\x10\x9f\x57\xcc\xfd\x31\x16\x22\x38\xa0\x48\xf7\x40\xd2\x2d\xc6\ +\x07\xbc\x4f\xb0\x2a\xf1\x81\x8c\x65\x45\x02\xd8\x68\x3a\x72\xda\ +\x06\xd8\x9c\x48\xef\x5c\x93\x5c\x4d\xa6\xdc\x92\xd4\xa3\xc1\xa2\ +\x38\x1b\x5a\xa4\xa6\x0f\xbd\x01\xe9\x93\xf0\xeb\x62\xae\x6f\xd5\ +\x05\xb4\x37\x5d\x60\x08\xc0\x64\xe2\x89\x7b\x69\x1e\xa9\x3c\x41\ +\xa0\xaa\xb7\xc8\x49\x4b\x14\xc9\xf9\x64\x11\x1b\x1a\x31\xc1\x5c\ +\x0a\xe2\xcc\x38\x62\x6d\x85\x95\x25\x72\x52\x11\x5b\x24\xdb\xd8\ +\x94\xa9\x45\x3a\xb9\x0f\xa7\xc8\x7d\xd8\x9c\x34\x9e\xdc\xa4\x22\ +\x4a\xa4\xc8\x44\xa5\xc6\x91\x71\xf8\x1c\x4d\xe2\x75\x6a\xe0\x81\ +\x05\xdf\x3c\x18\x8c\x0c\x85\x81\x70\x56\x8b\xae\xa9\x87\x5f\x71\ +\x92\x17\x70\x6a\xd2\xcb\x4c\xdf\x66\xbd\x4c\xad\x20\xfa\x0a\x76\ +\x21\xc1\x0a\x7b\x46\x3f\x53\x43\x9e\x19\x82\x36\xb9\x54\xd3\x18\ +\x33\xba\x3f\xc8\x35\xd3\x06\x8d\x1f\x83\x7e\x0c\x8d\x48\xc3\xe0\ +\x1d\x8d\x83\xac\x35\x63\x87\x4c\x7c\x69\x09\x85\x00\x41\x88\x68\ +\x0b\xc5\x90\x16\x81\xb1\x9b\x9b\x1a\x24\x9b\xa8\xad\x34\x25\xd3\ +\x44\x5b\x23\xd0\x48\x3b\x4d\x34\xd1\x9a\x3f\xb3\xd4\x1e\xe3\x8e\ +\x02\x3c\x25\x41\x1c\x16\x5f\xe1\x62\xb3\xc6\x6d\x23\x60\x72\xec\ +\xae\xc5\x26\x9f\x98\x76\x37\xa2\x2a\x40\x9c\x37\xa2\xd0\xeb\x60\ +\xc2\xb4\x47\x0d\xd9\x39\xd2\xa1\xc0\xea\xdc\xe6\xfe\x59\xde\x92\ +\xc1\x75\x20\x5a\xa5\xaf\xa5\xb9\x73\x14\x29\x2e\x56\xf4\x84\x89\ +\x04\x01\x55\x6c\x27\x61\x26\x11\x01\x2e\x08\x65\x6a\x79\x42\x2f\ +\x5a\x20\x5a\x2e\x7a\x4a\xd8\x59\xaa\x02\xd3\x81\x56\xa2\x48\x9f\ +\x1d\x38\x2b\x27\xf8\x5b\xa5\x1a\x25\x46\x01\xe8\xd2\x20\x80\x7c\ +\xac\xef\x46\xad\x37\x9b\x1b\x6d\x06\xbc\xd0\x85\x32\x97\xb0\x6e\ +\x7e\x80\x2f\xcb\xdd\xd2\x72\xc6\x2b\xbc\x80\x44\xfc\x3b\x79\x71\ +\x44\xfd\x52\x19\xc2\x42\x74\x3a\x59\x45\x3c\xb6\x19\x3f\xa7\x29\ +\xf4\x60\xc5\x0a\x9e\x79\x86\xd6\x84\xcb\x6b\x4a\x61\xa5\xfd\xb7\ +\x76\x6a\x30\x42\x90\xb8\xea\x5e\x0c\xca\x04\xae\x18\xa1\xbf\x13\ +\x9d\x1b\xa9\x52\x34\x08\xb4\x8c\x00\x3e\x84\x18\x25\xb7\xcf\x94\ +\x7b\x68\x91\x69\xd7\x12\x33\x08\x8a\xdb\x16\x94\xc0\x87\x35\xc2\ +\xda\x4c\xd6\x87\x50\x30\x35\xe7\xc5\xd8\x1d\x30\xd0\xc9\xaf\xc5\ +\x3c\xb7\x68\x58\xa4\xe5\xcd\x55\x34\x79\x91\x15\xb1\x5a\x5a\x2d\ +\xf4\xe4\x2c\x8c\x97\xf9\xb2\x0d\x52\x09\xae\xb6\x96\x12\x5c\xcf\ +\x2d\xf5\xc7\xe8\xa1\x10\x58\xff\x10\xf7\x6d\x35\x89\x5f\x6b\xc4\ +\x20\x4f\xcd\x7e\xc5\x33\x8f\xf7\x58\xb4\x1d\x62\x51\xb8\x56\x6d\ +\x56\xac\x81\xf1\x66\x9a\x52\x4a\x5b\x83\x45\x6d\x97\xbd\x10\x14\ +\x61\x2b\xc4\xa3\x36\xad\xc9\xd4\x93\xc4\xdc\x45\x22\x77\xa2\xa0\ +\x8c\x8c\x86\xb0\x3f\xf9\x94\x3c\x35\xac\x13\xc6\xa4\xf1\x82\x78\ +\x34\x81\xf3\x84\x0e\x93\xc0\xbd\x13\x0e\x75\x49\xb4\x4c\x95\xad\ +\x4c\x0d\xf7\x76\xc1\x25\x2a\x26\x0e\x83\xb2\xf3\x1d\x53\x93\xd9\ +\x03\xa1\x58\x0c\xa6\x45\xb1\x59\x5a\x07\x35\xe3\x68\xac\x70\x2e\ +\xe2\xf3\xda\x00\x07\x55\xc2\x8b\xb0\x4a\x53\x23\x58\x81\x74\x88\ +\x33\x43\x41\x85\xf0\xde\x08\x93\xd1\xd6\x38\x7e\x4f\x40\x52\x15\ +\x10\x1a\x56\x04\x10\x42\x50\x61\xa3\xde\x06\xdb\xcb\x6f\x5a\x83\ +\xc0\x47\xdc\x5e\x1c\x6d\x0b\x10\x64\x7d\x4a\xc3\xf1\x39\x30\xf4\ +\xc5\x68\x84\x14\xad\x02\x51\xa7\x45\x2d\x71\x6e\x11\x78\xd9\x3c\ +\x23\xae\x1c\x7b\x24\x2d\xba\x0a\x88\xab\x36\x1c\xc5\xa2\x82\x15\ +\xbf\x67\x80\x91\x69\x91\x54\xa5\x90\x69\xad\xf0\x06\x6a\x5e\x54\ +\xa0\xe0\x81\x1b\x5a\x90\x0a\x25\x86\xe5\xeb\x0d\xc1\x3b\xd3\x6d\ +\xcb\x1c\x04\xd2\x7c\x59\xe5\xa5\x5a\xe0\x2b\x54\x45\xfa\x00\x3e\ +\xcb\x37\x6c\x28\x00\x6d\xb4\xb7\xe4\x82\x3c\x61\x76\x04\x66\xfa\ +\xec\xfa\x90\x8f\x14\xe4\x63\xb1\x80\xaf\x25\xd3\xf6\xc7\x82\x65\ +\x72\xcc\xcb\xac\x2b\x13\x5d\x72\x2e\x10\x71\x74\xe0\x02\x2f\x54\ +\x42\x3e\x11\x10\x1c\x97\x44\x4f\xf6\xf4\x9d\x82\x00\xc2\xf6\x8b\ +\x21\x50\x7d\xfb\x45\x49\x5e\x6b\xee\xf1\x41\xc4\xe1\x05\x79\xd0\ +\xec\xa7\x6b\xea\x67\x27\xa9\x3e\x6e\xe6\xe1\x28\x3c\x24\x27\x89\ +\xed\x59\xcc\xbc\xd9\x18\x80\xad\x86\x78\x04\xb6\x5c\x83\x87\x32\ +\xd0\x98\x89\x62\x1d\xca\x69\x98\x5b\x85\x50\xa7\xc9\x44\x11\x69\ +\xe6\x04\xf4\xad\x22\x4f\xe8\x3c\x13\xa4\x92\x89\xa6\xee\x6b\x79\ +\x64\x3a\xb5\x1c\xa7\x06\xbd\x48\x3a\x80\xfc\x66\xb0\x55\xca\x1e\ +\xd8\x6a\x5e\x7f\xf6\xf1\x56\x60\x2b\x65\x37\x41\x20\x7c\xd3\x22\ +\x27\x0c\xa2\x37\x1a\x65\x65\x88\x02\x8a\xdc\x05\x4b\x1d\xb0\x15\ +\x8c\x82\x19\xfb\x63\x6b\x93\x6c\x57\x33\x69\x55\xee\x9b\x20\x37\ +\xd7\xde\xf0\x5e\x9e\xbd\x41\x25\x1b\xec\x33\xef\xe0\x51\xa8\xe4\ +\x38\x59\xb8\xca\x02\x28\x4c\x9b\x15\x7c\xc3\x0d\xf3\x8a\xd1\x3a\ +\x56\x06\x8d\xeb\xc0\x6c\xf2\xbc\x90\x62\xd4\x33\x69\xb3\x75\x2e\ +\xa2\xe1\xcf\x00\x0e\x48\x75\xb1\x4c\x69\xf0\x0d\x5e\x2a\x88\x19\ +\xb8\x4e\x2d\xc0\xea\x2b\x2e\x1b\x9f\x49\x15\x06\x6c\xb4\x48\x0d\ +\xb1\x72\x85\xf7\xd5\x66\x40\x2d\x5f\x50\xc8\x6b\xe4\xaa\x64\xc1\ +\x05\x51\x83\xab\xcf\xbc\x62\x47\xdd\xac\x0b\x82\xdc\xd9\x36\x9e\ +\xf3\x8c\xd1\x8d\x51\xfa\x5b\xe4\x92\x95\x57\x51\x68\xb9\xea\x41\ +\x83\x93\x91\x14\xb3\xe1\x1b\x8d\x27\xae\x4c\x9f\x8b\x3c\x92\xe9\ +\xe4\xae\xc8\xdb\x28\x46\x67\xfa\x36\x97\x41\xd4\x59\x23\xeb\xc9\ +\x74\xf5\x6b\xfb\x1b\x9c\x22\x52\xd9\xfe\xd8\xb0\x99\x08\xa7\x22\ +\xe3\x3a\x51\xc6\xe2\x5e\x2c\x2b\x5a\xb4\x2d\x8d\x29\x6e\x9f\xdb\ +\x2b\x4c\x0b\x9a\x9d\x08\x38\x37\xf3\x42\xed\x92\xdc\xd2\xf5\x52\ +\x75\xfe\x57\x81\x8f\x62\x22\x57\x9a\x41\xb7\x53\x83\xce\xa3\x88\ +\x03\xb3\x3e\x4a\x21\x17\x36\x61\x57\x0d\x89\x44\xba\xe1\x78\xe6\ +\x2d\x3d\x8a\x44\x3c\xb7\x34\xad\x12\x0b\x29\x94\x58\xe3\x96\x7a\ +\xb2\xe0\xa6\xb4\x58\x8e\xdc\xdc\x84\x24\xdb\xe7\xdc\xb8\x0b\xf6\ +\x89\xb5\x0b\x2d\x3a\x8c\x2d\x5a\x15\x22\x9d\xc2\x43\x1a\x9a\x76\ +\x3d\x95\x29\x94\xa9\xc1\x72\x40\x27\x04\x12\xa3\x48\xd2\x27\x4c\ +\xd6\x5f\x87\x94\x54\xc9\x31\x5b\x2c\xd1\x97\x59\x55\x21\x44\x42\ +\x2c\x17\x81\x52\x32\x95\x20\xf7\x4c\xf0\x23\x66\x35\x30\x95\x25\ +\x3a\x81\x8c\x0c\x43\x55\xcb\xf2\x9c\xfe\x39\xd0\x78\x1a\x92\x8c\ +\x5e\xd4\x35\x84\x51\x08\x47\xe4\x75\xce\xb3\xa9\x7c\xe6\x2d\x3a\ +\xca\xb7\x05\x02\x0a\xe8\x46\xce\xa3\x74\x8e\xb0\x47\x5c\x19\x4d\ +\x44\x84\xce\x18\xb1\xde\x45\x54\x77\x54\x15\x4b\x43\x73\x98\x0d\ +\xb3\x1e\x74\x16\x5e\x50\x25\x5a\x37\xb5\x58\x1b\x67\x6d\x23\xc0\ +\xa8\xa9\xac\xca\x5c\xb1\x50\x92\x21\x99\xd8\x7c\x96\xb8\xd0\x74\ +\x57\x41\x30\x96\x8b\x34\x20\x29\xf4\x87\xd5\x13\x52\xed\x0d\xd2\ +\x99\x8a\x00\x8b\x08\x8c\xa0\x78\xc9\x37\xd8\xa5\xa7\x15\x3c\xc8\ +\x08\x83\x91\x23\xe4\x86\x31\x6b\x47\xde\xd3\x4d\xad\x40\x62\xa2\ +\x2a\x04\x04\xb4\xca\xe2\x18\x48\x80\x30\x57\x59\x1a\x1d\x9a\xac\ +\x2e\x13\xbf\x5b\xdb\xc3\x3b\x6f\x4b\xee\x28\x35\xba\x97\x77\xfa\ +\x4a\xea\x66\x6a\x52\x33\x95\x66\x62\xb9\x0d\x9c\xdc\x99\x30\x5a\ +\xaf\x5c\x52\x4d\x13\x4c\x75\x6d\xa9\x97\x55\x83\x6f\x9e\xa1\x8f\ +\x0c\x7c\xab\xf3\x69\xe0\x9b\xe2\x80\xd9\xf6\x96\x27\x2e\xd7\x78\ +\xf1\x72\xc3\x9c\x14\xdd\x5f\x67\xb1\xaa\xf0\xa7\x37\x9a\x53\xd2\ +\x04\xb3\xa8\x04\x1b\x9b\x7b\x20\x6b\xc7\xf2\x40\xc1\x7d\x35\x28\ +\xbf\x4e\xc9\x5b\x3a\x85\x16\x88\xb2\xec\x4c\xeb\x5f\x84\xfa\xa1\ +\x99\x4c\xcf\x72\x31\x1d\x25\x9d\xd9\x36\x7d\xf6\x46\x4b\x6e\xa4\ +\x0b\xae\xf4\x44\x09\x16\xb8\x2a\x6e\x33\xa2\x7a\x9c\x72\x59\x86\ +\xe9\x2e\x1f\x5b\x64\x9c\xe0\x7d\xac\x20\x09\x5f\xf3\xcc\x2e\x39\ +\x1e\x05\x55\xb1\x28\xae\xfd\x39\x40\x55\x3a\x08\xaa\xe2\x02\x53\ +\xa5\xfa\x39\xa0\xea\x90\x35\xdf\x03\x55\xe1\x18\xa8\x2a\x47\x41\ +\x55\x5a\x82\xaa\xfc\x8b\x01\x55\xf1\x28\xa8\xca\xac\xd0\x8e\xfb\ +\x3b\x38\xb3\xa6\x79\x9f\x35\x2d\x4b\xd6\x34\x3d\x64\x4d\xa5\x7b\ +\xd5\x3e\xc2\x9a\xfa\x3a\xd1\xa6\x8d\x35\x6d\xcc\x77\x49\x4b\xda\ +\xd4\x2d\x59\xd3\xba\xc3\x9a\xd6\xce\x9a\xd6\x87\xdb\x6c\x27\xd6\ +\x34\xcf\xac\xa9\x2a\x0a\x3e\x8e\x35\x8d\x3b\xac\x69\x6d\xac\x69\ +\x9d\xc0\xc3\xcc\x9a\xfa\xda\xd9\xc4\x3a\xb5\x8e\xf2\xa6\x0f\xa0\ +\x3c\x29\xd2\x25\x6f\x1a\x0e\xf0\xa6\x49\xbc\x69\x9e\x1a\x8d\x6d\ +\x5e\xd0\xa6\x45\xb4\x69\x58\xd0\xa6\x32\xe2\xd6\x50\xca\x5c\x6a\ +\xbc\xa9\x5f\x12\xa7\x7e\x28\x22\x4d\x5d\x5d\xb2\xa6\x65\xc9\x9a\ +\x96\x03\xac\x69\x5d\xb2\xa6\x71\x66\x4d\x9f\x59\x68\x8f\xe2\xda\ +\x52\xe4\x49\x13\xeb\x9b\xeb\x4c\xc7\xd4\x46\xc7\xd4\x03\x74\x4c\ +\xa4\xd9\x65\xda\x71\x97\x8e\x61\xe6\x33\xc8\x03\x56\x15\x9c\x2c\ +\xe8\x18\xff\xf1\x74\x4c\xdc\xa5\x63\xd2\xa7\xd3\x31\xe9\x51\x3a\ +\x26\x2c\xe9\x98\xb8\xcb\xc7\xf8\xce\xc7\xf8\xba\x25\x64\xd2\x92\ +\x90\x29\x8f\x11\x32\x69\x49\xc8\xa4\x03\x84\x8c\xdb\x21\x64\xdc\ +\x20\x8a\xe5\x00\x21\xe3\xfe\x31\x84\x4c\x58\x10\x32\xf1\x49\x42\ +\x26\x4d\x8e\xe2\x01\x23\x53\xe6\x62\x00\x31\x32\x7e\xf8\x13\xe4\ +\x28\x3f\xb7\xfd\x3d\x86\xe7\x23\xa4\x8a\x06\xe7\x57\x5a\xe2\x17\ +\x4a\x4b\xc4\x63\x70\x3f\x9a\x92\xe9\x56\x48\x11\x9b\xac\x7a\x74\ +\xe5\x7c\x19\x82\x4a\x02\x43\x69\x19\x58\xdb\xaa\x08\xe2\xb6\xa5\ +\x9a\x9d\x16\x17\x04\xa1\x7f\xc2\xc3\xde\xf2\x2a\xe3\x6b\x4e\x8d\ +\xe7\x48\x2e\x9a\x2f\xa5\x9b\x53\x59\x4f\x6c\x1c\x83\x3a\xc8\xe9\ +\xc3\x7c\x5f\x69\x6f\x94\x74\x77\x8d\x8a\x6b\x35\x91\x2c\x98\x86\ +\x99\x62\x5c\x96\x3d\xf7\xea\x42\xa6\x07\x3d\x5c\x43\xa3\x74\xbf\ +\xd2\x26\xb9\x07\xf6\xae\x95\x01\x04\xc3\xc0\x3b\x37\x3a\x84\xd1\ +\x96\xeb\x95\x27\xcc\x58\xa7\x9e\xaa\x63\x95\x0f\xae\x75\x71\x6a\ +\x04\xca\x28\x4b\xc6\x98\xf2\x97\xcc\xb4\x38\x8f\xc5\x22\x49\x71\ +\x34\xd7\xe9\x79\x37\x2d\x1d\x05\xae\xc6\x28\x4f\xee\x58\x66\x99\ +\x4b\x8f\x30\x8c\x9f\x0a\x65\xa8\x5c\x51\x84\x03\xa3\x6a\x96\x98\ +\xda\xb9\xe5\x5a\xd9\x1b\x49\xa6\x56\xe2\x51\x98\xcd\x8f\xa2\x3b\ +\x24\xe4\xad\x08\xc1\xf7\x5c\x79\x68\x41\x4b\xe1\x8e\xb6\x4a\x21\ +\xb5\x22\xb1\x88\xa3\x6e\x03\xb4\x40\xa1\x74\x86\x21\x78\xc5\x0d\ +\x50\xf7\x40\x81\x12\xb4\xb2\x8a\xf4\x98\xb0\x87\x0a\x7b\x65\xd9\ +\x98\x89\xb3\xe4\x93\x5d\xe9\x9f\xad\x8c\x88\x69\x1b\x3d\xd5\x24\ +\x29\xe5\xb7\x5e\x4a\x03\x0d\xf6\x59\xcb\x24\x31\xc0\x36\x4a\xc6\ +\xf1\x5c\x15\x53\xfd\x8c\xd9\x48\xde\xa6\xa9\x81\x87\xb6\x42\x8a\ +\xd8\x83\x44\x95\xac\xca\xe0\x34\x9b\x6a\x5b\x61\x9b\x9b\x12\x6e\ +\x9d\x74\xe0\x23\xcd\x54\x8a\xc1\x68\x2d\xc9\xef\x99\x86\x29\x48\ +\x0c\xd9\x7e\x92\xc3\xa9\xaa\xc8\x13\x0c\x4e\xa5\x08\x4e\x75\x48\ +\x0a\x33\x5b\x66\x58\x15\x3e\x91\x9e\x57\x9e\xbd\xb5\xb8\xbe\xcd\ +\x61\xc5\x89\x57\xa2\x3b\x5f\x55\x55\x4b\xb5\x22\x35\x5b\x9f\x99\ +\x6d\x4f\x47\xc1\xb5\x29\xe2\x27\x78\xe6\x2c\xca\x34\xb0\x4c\x50\ +\x54\x8c\x17\xd1\xd6\xa9\x80\xa0\x9a\x46\x51\x01\x55\xbb\x43\x62\ +\x80\x5c\x40\x2b\x4e\xe2\xe1\x16\x1e\x9e\x48\x53\xab\x3b\x77\x23\ +\xee\xa4\x30\x11\xe9\x3b\xac\x0d\x8c\xec\x8d\x8e\xbb\xd0\x68\x90\ +\x49\x51\x05\x8b\x51\x64\xea\x26\xba\x81\x69\xd9\x99\x7b\xa0\x1d\ +\x57\x59\xb6\x93\xdd\x8a\xc2\x36\x78\x80\xca\x65\xfa\x25\x46\xd9\ +\xdc\xce\x4f\xd8\xd8\x2a\xd6\xbc\x02\xfb\xde\x62\x41\xb0\x71\x9d\ +\x0d\x10\x8b\xd4\x0a\x6e\xbc\x13\x44\x95\x5f\x5a\x69\xa6\xa5\xcd\ +\xb1\x57\x71\x05\x39\xf0\x46\x3f\x91\xa6\xb4\x4d\xdf\xfa\xcb\xd9\ +\x24\xa6\x60\x75\x20\x4b\xbe\xa9\x1d\xaa\x54\x6a\x71\x84\x32\xc5\ +\x4c\xad\xaa\x96\xb8\x08\x91\x37\x20\xb2\x96\x19\x5a\x37\xd2\x76\ +\x9d\x1a\xd7\xd5\x70\x76\x6f\x61\xf8\x9c\xa8\xd1\x11\xa0\xcc\xb4\ +\xad\x9c\x4b\x3b\x7e\x43\xdf\x5a\xe6\xd6\x44\xe0\x30\x3c\x2f\x82\ +\x53\x39\xf6\x46\xaf\x59\x52\x21\x93\x93\x87\x36\x42\x62\x42\x2b\ +\x54\xed\xde\x78\x66\x49\x3c\x8a\x98\x7d\xcb\x1a\xeb\xe0\xe5\xd6\ +\xb3\xf7\x28\x2f\xd8\x39\xca\xa3\x86\x6f\xa3\xbc\xf8\xf7\x46\x79\ +\xf6\x60\x98\x97\xb7\x61\x5e\xc3\x81\xbd\x36\x26\xf5\xcf\x8a\xf1\ +\xe2\x0c\x44\xf2\x7e\x8c\xe7\xed\xe7\xc4\x78\x07\x2b\x63\x76\x62\ +\xbc\xbc\xa8\x8c\x29\x87\x0b\x63\x1e\x12\x9f\xd5\x1d\x09\xf0\x7a\ +\x61\x8c\x6a\x74\x4b\x5e\x06\x78\x65\x1b\xe0\x3d\x55\x18\x93\xdd\ +\xb6\x30\xa6\x45\x78\x9f\x52\x19\x53\x97\x31\x5e\x55\x8c\x67\x77\ +\x82\xbc\x72\x38\xc6\xfb\xec\xe3\xc3\x1f\x29\xb2\xc7\x73\xee\x40\ +\xc6\x94\xbd\x5d\x91\xb5\x8f\xca\x6c\x5e\xca\xec\x4e\x3d\x97\x5b\ +\xc8\xec\x4e\x3d\x57\xfc\x68\x66\x22\x2f\x0a\xba\x9a\xcc\x4e\xd4\ +\x44\xda\x61\x26\x7e\x76\xa9\x3d\xce\x4c\xe4\x25\x33\x51\x1e\x21\ +\x26\xfe\x5e\xb9\x4d\xc7\xe4\x36\x2c\xe5\xd6\x7d\x84\xdc\xfa\x4f\ +\x97\xdb\x5f\x82\xd8\x1e\x65\xff\x93\x13\x16\x3b\x20\xb6\x73\xd1\ +\xdc\xba\x2f\xf2\x5a\xa5\xfa\xb3\x5f\xa2\x03\x73\x2a\xb1\x55\xa4\ +\xef\x7d\xdb\xd5\xde\x24\x0a\x93\x8c\xea\x37\x2c\x56\xa2\xa5\xc3\ +\xd4\x0a\xf4\xfa\xa1\x09\x5a\x9a\x2a\xc4\x5c\xdf\x7d\xc6\xc8\xc2\ +\xf7\x3a\x05\xa0\x5a\x28\xa6\x81\x48\x96\x79\x31\xda\x6e\x6e\x15\ +\x62\x3b\x95\x82\x92\xd0\xa6\x43\x6f\x71\x1a\xd9\xa6\x56\x78\xde\ +\xaa\xa6\xe4\x4c\xc8\x34\xd4\xf6\x11\x73\x0e\xaa\x22\xe0\xb9\x55\ +\x9b\xbb\x64\x59\xc0\xfd\xbe\x0e\xcf\xbb\x2b\xf9\x28\xde\xcf\xa1\ +\x52\xa9\xf6\x76\x25\x4e\x61\x76\x7e\x3a\xcc\xf6\x07\x89\xea\x96\ +\x56\x64\x06\x75\x4b\x54\x97\x47\x89\xea\x90\x76\xe2\xec\xf0\x50\ +\x35\xc3\x03\xd5\x7c\xc0\x54\xef\xc4\xd9\x49\x34\x60\xad\x9f\x16\ +\x67\x77\xa6\x1a\xf3\x9c\x99\x6a\x53\xff\xf9\x71\x76\x3e\xce\x54\ +\x57\xe5\x7b\x03\x26\xc1\xe8\xe6\x50\x32\xdb\x37\x68\xe8\x65\x7b\ +\x18\x81\x2b\x95\xad\xe4\xb0\x63\x76\x31\x27\xd7\x3f\xb7\x58\xee\ +\x70\x2e\xbb\x6c\x73\xd9\x59\xb9\xec\x76\x24\x62\x4a\x65\x3f\x9a\ +\xc9\x4e\x3f\x47\x26\x3b\x2e\x33\xd9\x75\x9b\xc9\xe6\xe1\xbd\x45\ +\x2e\xdb\x2e\x73\xd9\x76\x3f\x97\x9d\xdd\x53\x32\xf5\x8f\x52\xca\ +\xa3\xa0\xb4\x1a\x95\x91\xf3\x48\x62\x09\xad\x3e\xde\xb7\xa2\xf4\ +\x34\x97\x39\x66\x31\x0f\x6b\x57\xe9\x76\xa6\x96\xed\xd5\xf8\x6b\ +\xc9\x02\xc3\x28\x26\xc5\xbc\x32\xe3\x8c\x94\xbd\xce\x1c\x04\x55\ +\x6a\x18\x1d\xfc\x0c\x9d\x6b\x6c\xae\x5f\x2d\x5f\x65\x33\x5b\x14\ +\xc5\xdf\xc0\x90\x9e\xb7\xa4\x47\x0b\x6a\x02\x8f\x5d\x85\x1e\xfd\ +\xa8\x3e\xc4\xca\x0f\x85\x95\x8e\x83\x44\xe6\x54\xeb\xf4\x59\x04\ +\xb0\x19\x14\x92\xb5\x73\x38\x61\x68\x14\x9d\x22\x21\x9e\x69\xcf\ +\xc4\xcc\xfd\x1c\x40\xec\x34\x0d\x9d\x60\x62\xc1\xd9\x64\x6c\x58\ +\x0c\xdc\xcf\x58\x50\xa4\x35\x4b\x23\xf1\xf0\x0d\xea\x50\x89\xab\ +\x94\x58\x75\x7c\x59\x51\x5b\x9e\x4f\xb5\xe9\xd0\x06\x3d\xc9\xdc\ +\x52\x2c\x6c\x7b\xe2\x93\x75\x20\xa4\x5c\x5b\x3d\x6f\x61\xcd\x1e\ +\x8f\x22\x79\x23\x7e\x3b\xb1\xbc\x55\xa7\x63\xb8\x04\x51\xa9\x4e\ +\xba\x08\x81\x1d\x16\x65\x87\xd8\x2a\x62\x3d\x4b\x3b\xb8\x52\xf8\ +\x32\xb9\x15\x2d\x46\xe8\x84\xf8\x73\x57\x6b\xe6\xe3\x9c\x2a\x09\ +\xfa\x78\xc8\xd8\x1f\x3a\xf3\x12\xfa\x99\x97\x61\x79\xe4\x45\x47\ +\x46\xb6\x47\x5e\xd8\xa4\x00\xd4\xe9\xc8\x8b\xd7\x91\x17\xbb\x38\ +\xf2\x12\xf2\xfe\x91\x17\xaf\x23\x2f\x69\x6a\xb0\xf8\xd8\xb9\xe9\ +\xcc\x8b\x40\x10\x22\x28\x05\x90\xaa\x5e\x47\xb0\xa4\x53\x2f\x69\ +\xe7\xd4\x4b\xde\x9e\x7a\x09\x9f\x78\xea\xa5\xec\x9e\x7a\xa9\xd3\ +\xa9\x17\xb7\x73\xea\xa5\x0c\x2d\x17\xdf\x61\xee\xe2\xd4\x4b\x3e\ +\x78\xea\xc5\xef\x9c\x7a\xa9\x4f\x9f\x7a\x31\x75\x16\x77\x1d\x7b\ +\x69\xca\x27\xb3\x65\xfa\x8a\x4f\xc7\x5e\xe2\xe2\xd8\x4b\x3f\x3e\ +\xe4\xe7\x7a\x9e\x43\xc7\x5e\xd2\x63\xc7\x5e\xea\xe2\xd8\x4b\xea\ +\x68\x27\x36\x3e\x64\x7b\xec\xc5\x3d\x38\xf6\xc2\x1f\xb6\x9a\x8f\ +\xbd\x24\x3e\x90\x85\x27\x3c\x01\xf3\xf0\xdc\x0b\xcf\x81\xf6\x73\ +\x2f\xcf\xed\x17\x8f\xf3\xcf\x35\x28\x60\xaf\x9e\x95\x06\x67\xdb\ +\x65\xdc\xe3\x9f\xdd\x0e\xff\xec\x0e\xf3\xcf\x7e\xc1\x3f\xe7\x89\ +\x7d\xb6\x0f\xd8\xe7\xf4\xe9\xec\xf3\x3b\x6d\x7d\xbb\x75\x8f\x7e\ +\x0e\x33\xfd\xcc\x83\xc0\x84\xa3\x62\x9f\x75\x7c\xc9\x76\xf6\x99\ +\xee\xb8\x9d\x39\x24\x2d\x26\xb2\x8f\x84\x33\xc9\x29\x1d\xfb\xe9\ +\x8d\x7d\xf6\x39\x2f\xd8\xe7\x28\xcf\xc7\x55\x7a\xde\x2d\x2b\xc7\ +\xd0\x68\xb4\x58\x33\xf8\xad\x5f\xa1\xcc\x47\x41\x99\x3f\x61\xc1\ +\x6c\xf9\xe7\x01\x99\x72\x0c\x9a\x46\x67\x75\x48\x8e\x3c\x6f\xcb\ +\x79\x1e\x28\xf9\xfa\xac\x8a\x2f\x93\x0f\x54\x7c\x45\xb7\xac\xf8\ +\x0a\x9f\x5f\xf2\xe5\x76\x4a\xbe\xea\xa3\x25\x5f\x76\x59\xf2\x55\ +\xfd\x5c\xf2\xd5\xce\xe9\xa6\x5e\xf2\xe5\x76\x4b\xbe\xdc\xa1\x92\ +\xaf\x78\xa4\xe4\x2b\xed\x95\x7c\xcd\x35\x5f\xf6\x50\xd1\x97\xce\ +\x43\x32\xbf\x99\x75\xe0\xb7\x65\xf8\x55\xf3\xe5\xa6\xd6\x4e\xcd\ +\xd7\xb2\xe2\xab\x3c\x56\xf1\x15\x26\x46\x9b\xef\x37\x55\x01\x72\ +\x9d\x5b\xb4\x26\xb6\xd7\x7c\xf9\x45\xcd\x57\xfc\xe4\x9a\x2f\xbf\ +\xa8\xf9\x6a\x27\xe2\x7b\xd1\x57\x4a\x8b\xaa\xaf\xba\xad\xfa\x12\ +\x40\x5b\xf7\x97\xa9\xf5\xcc\x62\x7f\x0c\xbf\x47\xcf\x1f\x61\xf1\ +\xfb\x38\x2b\x7c\x64\x50\xfd\x64\xf5\x57\xde\xc9\x5d\x97\xc7\x72\ +\xd7\xc7\x83\xea\xc7\xf9\xae\x27\x83\xea\xcf\x2b\xff\x6a\x41\x75\ +\xf9\xc5\x04\xd5\xe5\x69\xa8\xfc\xe7\xc1\x57\x05\x07\xab\x48\xf9\ +\x4f\xb4\xa8\x30\x3d\x85\x66\xf8\x42\x99\xbe\xf6\x2b\x5b\x31\x2a\ +\xcd\x74\x81\x1d\x1f\xf5\x93\x6b\x44\x80\x84\xc2\x31\x37\x78\x99\ +\xe4\x32\x7a\x2b\x94\xd9\x48\xc0\xf2\xd8\x3a\x9d\xca\x27\x52\xb5\ +\x12\xe8\xd4\xf2\xc8\xbd\x58\x86\x3f\xa4\x21\xb3\xa3\x23\xb7\xbd\ +\x04\x87\x28\x51\x61\x20\x53\xa2\x65\xdb\x56\x32\x68\x95\x19\x7b\ +\x24\x66\x93\x0b\x51\x81\x21\x71\xa9\x84\xa4\x7e\x68\x88\x90\xb2\ +\xa5\x42\xf3\x8a\xdb\x5c\x4a\x6f\x30\x76\xcb\xad\x88\x36\xaa\xc8\ +\x85\x4a\x27\x0d\x14\x3b\x3c\x5f\xc4\xd6\xc5\xd0\x52\x9c\xcf\xbc\ +\x41\xc7\x0f\xef\x17\xc5\x87\x95\xc8\x35\xd5\x0e\x15\x42\xab\xf7\ +\x4e\xdb\x82\x6f\xd3\x62\x00\x3b\x37\x16\x35\xdf\xb1\xb6\xa2\x6f\ +\x53\x0f\x95\x7d\x87\x43\x65\xdf\x26\xee\x16\x7e\xef\x49\xc6\x54\ +\xe7\x6d\xad\xd3\x8f\xc9\x6c\x2b\xbf\x2b\xcd\x69\x74\x87\x4a\xbf\ +\xfd\x5c\xfb\xad\x73\x97\xdb\xe2\x6f\x55\xb0\x99\xaa\xea\xef\x2c\ +\x50\x1d\x55\xf1\xed\x16\xd5\xdf\x6e\x51\xfd\x1d\x96\xd5\xdf\xa9\ +\x55\x7f\x53\x16\xfa\x1a\x3d\xef\x8e\xd5\xe3\x07\x8d\xa2\x62\x2b\ +\x96\x47\xb5\xf0\xed\x10\x1a\x68\xa9\x74\xf2\x1d\x0d\x0f\x04\xbf\ +\x44\x04\xb9\xfd\x3c\x80\x77\x0d\x12\xc4\x34\x35\x55\x05\x6e\xea\ +\x04\x0a\x22\x01\x2f\xb3\x90\xac\x03\xcf\x79\x01\x0b\x9a\x3b\x9f\ +\x71\x81\xdf\x01\x06\x0d\x19\xd4\xb9\xb5\x84\x06\x4b\x64\x10\x3b\ +\x32\x88\x0b\x64\x90\x75\x64\xb6\x27\x50\x01\x0d\xfc\xd4\x14\x36\ +\x70\x65\x0b\x0e\xe2\x53\x05\xe1\xed\x97\x20\x72\xee\xf0\x20\x65\ +\xb7\x53\x13\x5e\xe8\x4f\x04\x11\xf2\xa2\x63\x17\x24\xd8\xe8\x1f\ +\x83\x09\xc4\x57\x5b\x9c\x10\xeb\x12\x27\x18\xbf\x83\x14\x92\x5d\ +\x42\x05\x66\x1a\xa6\x02\x71\xb3\x8b\x17\xc2\x02\x30\xb0\x8c\x72\ +\x8b\x18\x4c\xde\x85\x0c\x61\x17\x33\x84\x03\xa0\x21\xc4\x65\xa5\ +\xb8\xd1\x2f\xb3\x38\xc1\x06\x2f\x18\x66\x1b\x70\x48\xa1\x35\x84\ +\x1c\xa2\x9f\xa1\x43\x5c\x62\x87\xa8\x09\x19\xdb\xc0\x43\x6c\xe8\ +\xc1\x37\xf4\x10\xda\xaa\x0b\x9d\xd4\xca\x7a\x82\xf9\xb5\x6c\x3e\ +\xb3\xaa\x1c\x3f\xd1\x45\xf3\xcd\x90\x31\xb8\xda\x8c\xdb\xb6\x76\ +\x8a\x3f\x93\xb3\x88\x5e\xdb\x2f\xb5\x6c\xe3\xd7\xd6\x3e\x10\xc1\ +\x26\xf2\x1e\xdb\x18\xd6\xb4\xdf\x58\x68\x71\x6c\x79\x10\xc8\x86\ +\xba\x1f\xc9\xd6\x47\x22\xd9\xb0\xa8\xa3\xaa\xfc\x05\x07\xfd\x22\ +\xc2\x7a\xea\x82\x37\x2b\xa6\xb3\x35\x73\x24\x3b\xd5\x51\x25\xbf\ +\x0c\x65\xf3\x36\x96\x95\x4f\x9b\x83\xd9\xd8\xea\x61\xe4\x44\x5b\ +\x2b\xd0\xc0\x99\x16\x8c\x29\x9c\xd5\x4f\xa5\xb8\xd2\xe2\x59\xfd\ +\x0e\x6a\x5b\xbb\x67\xde\xc9\xe3\xf5\x05\x51\x66\x7b\xcf\xe8\x4d\ +\x7b\x03\xf5\x5a\x1a\xbd\x66\x7a\xb6\x56\xcf\x7f\x8e\xd5\xcb\x8f\ +\x5b\xbd\xf8\x84\xd5\x2b\x07\xad\xde\xc1\x80\xe8\x80\xd9\x4b\xbb\ +\x66\x2f\x3d\x6a\xf6\xd2\xae\xd9\xdb\xb5\x7a\x65\xdf\xea\xe5\x7d\ +\xab\x57\x1e\x5a\xbd\xfc\xcb\xb4\x7a\xee\x57\xab\xb7\xa7\x2b\x1f\ +\x51\xd8\x40\xbc\xcc\x9c\x6a\xac\xfa\x0d\x81\xf6\x2b\x53\xa2\x25\ +\xc5\xf6\x2c\x52\x1f\x2a\x44\x60\xf2\x23\x2f\xda\x4c\x7f\x84\x29\ +\xfd\x51\x94\xfe\x50\xe5\xe8\x36\x01\x12\x5c\x3b\xf6\x14\x62\x4f\ +\x81\xc4\xa7\x72\x20\x79\x4a\x82\x24\xf2\xa8\x50\x0a\x65\x41\x5c\ +\x59\xa6\x41\xbc\xaa\xc9\x5c\x4f\x83\x88\x68\xc0\xae\x2a\xf7\x81\ +\x16\x7f\xee\xb7\xce\xad\x45\x2a\xa4\xae\xfa\x4f\x92\x6d\x53\x21\ +\xc2\xed\x08\x19\x0d\x83\xf0\xc7\x92\x21\x3e\x2f\xb3\x21\x6a\xb5\ +\x02\xcd\xdd\x74\x08\x6b\xbc\x97\xf9\x10\xb7\xcc\x87\x94\xbd\x84\ +\x88\xf1\x7b\x29\x91\xb0\xcd\x89\xf8\x65\x52\x24\xc7\x65\x56\xc4\ +\xd7\x45\x5a\x24\x2c\x12\x23\xed\xbb\x39\x3b\xd2\x9a\x8b\x14\x09\ +\x85\xde\x92\xc6\x5c\xe6\x48\x30\xf5\xb6\xef\xcf\x2c\x85\x47\x03\ +\x0b\x1e\x4f\x0c\xe5\x1f\x69\xb1\xff\x19\x38\xf5\xe7\x31\xd8\x0f\ +\x60\xea\xff\x63\x83\xfd\x2b\x4c\xdd\x53\x15\x6b\x8e\x86\x74\x29\ +\x27\xe2\xd4\x43\x11\x70\xe2\xef\x25\xd5\x45\x04\xdc\x2f\x7a\xee\ +\x31\x6f\xb1\xf5\x57\x2f\x5e\xeb\x7f\xb1\xc3\xbf\xbe\xe2\xff\xba\ +\xe9\xeb\x2f\xfe\x0f\x03\xf8\x2c\xc4\ +\x00\x00\x02\x88\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x2a\x49\x44\x41\x54\x78\xda\x8c\ +\x53\x4b\x68\x13\x51\x14\xbd\x6f\xe6\x65\x66\xd2\x4c\x26\x93\x4f\ +\xeb\x87\xda\xa8\x04\xec\xa6\x42\xc1\x45\xd6\xee\x2c\x48\x16\x7e\ +\x36\x2e\x04\x37\x2a\x2e\xba\x33\xb8\xaa\xba\x29\x08\x8a\x1b\x45\ +\x17\xba\x50\x41\x70\x65\xc0\x8d\x9b\xe2\x52\x70\x53\x15\x24\x44\ +\x52\xa3\xa9\xf8\x49\x63\x87\x24\x9d\xef\xfb\x38\x93\x34\x3a\x29\ +\x43\xc9\x85\xc7\xdc\x7b\xe7\xdc\xc3\xb9\xf3\xe6\x20\xce\x39\x04\ +\x51\x2a\x95\x4e\xd6\x6a\xb5\x7d\xf5\x7a\x1d\x3c\xcf\x0b\x5a\x13\ +\xfe\xc9\x4a\x92\x24\xab\xaa\x4a\x35\x4d\x73\xd2\xe9\xb4\xad\xeb\ +\xba\x9d\x4c\x26\x1b\x95\x4a\xe5\x65\x00\xc2\xb0\x1d\xeb\xb3\x0b\ +\xda\xeb\x47\xcf\xaf\xac\xfd\xde\xfa\x33\xa9\xca\xca\xde\x8c\x92\ +\xfb\x69\xd8\xdf\x1c\x8f\x21\xcb\xa5\xc8\x25\x0c\x01\x70\x98\xc9\ +\x25\xd2\x67\xef\x3c\xbb\x35\x9c\x13\x86\x89\xaf\x04\xc1\x98\x11\ +\xc6\xee\x4a\x80\x05\x84\x55\x05\x27\x63\xa2\x80\xc7\x21\x10\xc2\ +\x20\x71\x30\xac\xdf\x7e\xe2\x1d\x33\xb7\xf0\x81\x30\x49\x18\x1b\ +\xa9\xc0\xf3\xc4\xc9\x7b\x2f\x7a\xd3\x37\x1e\xf6\xe6\x12\x0a\x25\ +\x4f\x5f\xd9\xf9\x09\x59\x54\xc6\x52\x10\x97\x44\xf9\xcd\x3b\x7b\ +\xea\xf4\xf1\x78\x7b\xe9\xa2\xfa\x71\x63\xd3\xc5\xe7\x16\xa4\xaf\ +\xa6\x43\xed\x5d\x15\x30\xc6\xfa\xac\x22\x42\xc2\xfc\x6c\xac\xbb\ +\x27\x2b\x5a\x8c\x03\xbd\x7e\x39\xb5\x9a\xd4\xd8\xba\x61\xa0\xe9\ +\x84\x8c\xe3\x61\x6c\xa4\x82\x9e\x43\xac\xa9\x1c\xfa\x5e\x6f\x3a\ +\xfa\xe2\x72\x73\x5e\x40\x48\xec\x76\x79\xf6\xfd\x27\x53\x67\x9c\ +\xd3\x9d\x0a\x70\x48\xc1\xff\xa6\x88\xe4\xa5\xfb\x0d\x3d\x93\xc2\ +\xde\xe2\xf2\x97\xb9\xfc\x7e\xd9\x3a\x73\x22\xd3\xb4\x5c\xe2\xfa\ +\xaf\x13\x61\x6c\xe4\x2d\x10\xca\x9d\xa5\x4b\x33\xc6\xaf\x0d\x2b\ +\x76\xf7\xda\xa1\x0f\xe7\x4f\x65\x57\x09\xa2\x3f\xa2\xb0\x78\xe7\ +\x37\x18\xe4\x9c\x16\xf2\xf1\xcd\x07\x37\x8f\x7c\xee\x9a\x9e\x6d\ +\x7b\x2c\x90\x8e\xa2\xb0\x91\x2b\xf4\x6b\x7f\x5f\xd3\x21\x5d\xc2\ +\xfa\x57\x36\xf2\x93\x8d\xac\x3b\x4c\x0a\x8d\x15\xe7\xed\xca\xc1\ +\xa3\x9d\x4e\x07\x6a\x8c\x81\x69\x9a\xd0\x6e\xb7\x0b\x84\x10\x50\ +\x14\x05\x7c\x43\x41\x2a\x95\x82\x96\xa6\x05\x58\x5f\xd1\xd5\x51\ +\x82\x6a\xb5\x2a\x15\x8b\x45\x30\x0c\x03\x2c\xcb\x02\x42\x18\xb4\ +\x5a\x3d\x70\x1c\xee\x13\xc4\xc1\x77\x63\x9f\xc0\x77\x23\x94\xcb\ +\xe5\x7f\x73\x68\x68\x67\xdf\xb6\x17\x28\xa5\x87\x83\x7a\xbb\xd7\ +\x97\x8d\xd0\x40\x7d\xe8\xc9\x05\x41\x58\x73\x5d\xf7\x71\x50\xff\ +\x15\x60\x00\x0a\x59\x1e\x3f\x8e\xdb\xef\xb9\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x02\x87\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x29\x49\x44\x41\x54\x78\xda\xa4\ +\x53\xbb\x6b\x14\x41\x18\xff\x66\x76\x73\xbb\x93\xbd\xcb\x49\x3c\ +\x53\xc8\x15\x22\x6a\xb4\x94\x09\x12\x3b\x1b\x4b\xb1\x12\x1f\x1c\ +\x8a\x60\x8c\x60\x73\x9d\x7f\x84\x85\x42\xaa\xab\x4d\x11\x93\xca\ +\xce\x42\x39\x88\x20\x16\xae\xcf\x48\x4c\x50\x82\xc1\x28\x39\x1f\ +\x70\xc9\x65\x77\xf6\x35\xe3\x37\x93\xdb\xa8\xa7\x49\x93\x0f\x7e\ +\x3b\xcc\xcc\xf7\xfb\xcd\xf7\x5a\xa2\x94\x82\xdd\x18\x85\x5d\x1a\ +\x39\x78\x6b\x16\x0a\xae\x6b\xd0\xe7\x38\x06\xda\x94\x94\xe0\xf6\ +\xf7\xff\x76\x24\xa4\x81\x0b\xff\x83\xeb\x37\xaf\x0e\x8d\xdb\x3b\ +\xa9\x27\x71\x0c\xd4\xb2\xf2\x2d\x3f\x7f\x7a\x3f\x4f\x12\x00\x1b\ +\x59\xd3\x8f\xbe\x6c\x93\x82\x52\x35\x84\x7e\x0d\xb2\x34\x85\x14\ +\x19\x39\xc2\x50\x42\xbb\x9d\xe2\x9a\x99\xbd\x36\xbb\x97\x8c\xaf\ +\xd6\xf3\x6d\x14\x86\x26\x15\x87\x31\x66\xdb\x16\x15\x62\x93\x4c\ +\xa9\x05\x49\x14\xfd\x1d\x81\xea\x92\x2f\x9f\x3d\xc4\xf5\xa5\xd8\ +\xd8\x30\x11\xa0\x31\x3c\xbf\x50\x74\x95\xf7\x6a\x6e\x09\x5e\xbf\ +\xfb\x08\x4b\xcb\xab\x5a\x40\x6e\x45\x60\xc8\x51\x54\x1f\xbb\x74\ +\x9c\xaf\x7c\x0d\x21\x16\x42\x1f\x3f\x37\x77\x04\x68\xb1\xe8\x78\ +\xa5\x7d\xde\x81\xe5\x9f\x01\x28\xea\x00\x8d\x54\x86\x3e\xa1\x11\ +\xc8\xc9\x37\xae\x8c\xf2\xc7\x73\x6b\xf0\x03\x63\xaa\x9e\x1c\xe6\ +\x12\xe7\x43\xe2\x88\xa4\xf8\xe9\x88\x0c\xde\x60\xe8\xd2\x1d\x00\ +\x4a\x08\x58\x89\xe8\xa0\xc0\x82\x11\x48\x84\xa8\xdf\x1c\x3b\xc5\ +\x1f\x2c\x46\xf0\x56\x31\x90\x19\x9e\x76\xfe\xd3\x12\x17\xf3\x25\ +\x00\x83\x24\x4d\x5b\x2f\x3f\xac\x64\x42\x4c\x99\x1a\xe0\xeb\x77\ +\xef\x4c\x3c\xf4\xf7\x56\x8b\xb0\x5e\x60\xd0\xe7\x31\x18\xdc\xc3\ +\xa0\x5c\x66\x50\x1a\x60\xe0\x95\x18\xb0\x22\xc2\xb5\x33\x2f\x58\ +\x6f\x8b\x67\xfe\x62\xb0\xfa\xbd\x11\x47\x51\x33\x4f\x61\x52\xf7\ +\x7b\x76\x62\xa6\x3e\x7a\xfd\x1c\xff\x14\x00\xac\xdd\x9b\xf1\x7b\ +\xde\xd7\x05\x0b\xb1\x71\x0b\x38\x50\x53\x38\x1b\x4d\x9b\x52\xf3\ +\x0f\x10\x8f\x5f\x04\x52\x39\x82\xb1\x1d\xae\xa1\x58\xbd\x3a\x5e\ +\xe3\x9f\x1b\x93\x3e\xb5\xed\x11\x74\xfe\x27\x13\xd9\x9a\x07\xf9\ +\xed\x3d\x04\x2f\xee\xeb\xe2\xc3\x96\x87\x35\x74\x0c\xe8\xd1\x33\ +\x35\x52\x19\x36\x73\x90\x3e\xb9\x3d\xa2\x1d\x77\x32\x2d\x90\x0f\ +\x92\x93\xb5\xe6\x4b\x88\xa7\x94\x5f\xab\x80\x53\x3e\x81\xe4\x7c\ +\xee\x75\x59\x63\x84\xe8\x42\xb7\x2f\xea\x9e\xa5\x79\x04\x5a\xa8\ +\xa0\x85\xba\xab\xd5\x93\xbf\x16\x49\x7b\x90\x61\x04\xf2\x97\x00\ +\x03\x00\x94\x33\x1c\xf1\xe4\x3f\xe0\xef\x00\x00\x00\x00\x49\x45\ +\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x15\x98\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\ +\x3d\x22\x31\x2e\x31\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\ +\x67\x32\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x32\ +\x31\x2e\x33\x33\x33\x33\x31\x22\x0a\x20\x20\x20\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x31\x37\x32\x22\x0a\x20\x20\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x36\x32\x31\x2e\x33\x33\x33\ +\x33\x31\x20\x31\x37\x32\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x53\x45\x43\ +\x6f\x50\x2d\x6c\x6f\x67\x6f\x2e\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\ +\x3d\x22\x31\x2e\x32\x2e\x32\x20\x28\x62\x30\x61\x38\x34\x38\x36\ +\x35\x34\x31\x2c\x20\x32\x30\x32\x32\x2d\x31\x32\x2d\x30\x31\x29\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ +\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x2e\x73\x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\ +\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\ +\x69\x2d\x30\x2e\x64\x74\x64\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\ +\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\ +\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\ +\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\ +\x30\x30\x30\x2f\x73\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\x65\x66\ +\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x36\ +\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\ +\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\ +\x23\x35\x30\x35\x30\x35\x30\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\ +\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x65\x65\x65\x65\ +\x65\x65\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\ +\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x68\x6f\x77\x70\x61\x67\ +\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\ +\x61\x63\x69\x74\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x63\x68\x65\x63\ +\x6b\x65\x72\x62\x6f\x61\x72\x64\x3d\x22\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x65\x73\x6b\x63\ +\x6f\x6c\x6f\x72\x3d\x22\x23\x35\x30\x35\x30\x35\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x66\x61\ +\x6c\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x31\x2e\x33\x37\x32\x30\x39\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x78\x3d\x22\x33\x31\x30\x2e\x34\x37\x34\x35\x38\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\ +\x3d\x22\x38\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\ +\x3d\x22\x31\x39\x32\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x31\x31\x37\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\ +\x78\x3d\x22\x31\x39\x32\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\ +\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\ +\x65\x64\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\ +\x65\x72\x3d\x22\x67\x31\x30\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x67\ +\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x38\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\ +\x70\x6d\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\ +\x6c\x3d\x22\x69\x6e\x6b\x5f\x65\x78\x74\x5f\x58\x58\x58\x58\x58\ +\x58\x22\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\ +\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x31\x2e\x33\x33\x33\x33\ +\x33\x33\x33\x2c\x30\x2c\x30\x2c\x2d\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x33\x2c\x30\x2c\x31\x37\x32\x29\x22\x3e\x0a\x20\x20\x20\x20\ +\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x31\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\ +\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x31\x29\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x31\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x32\x33\x31\x66\x32\x30\x3b\ +\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x33\x35\x36\x34\ +\x2e\x31\x37\x20\x39\x31\x34\x2e\x33\x37\x30\x31\x34\x20\x4c\x20\ +\x33\x35\x36\x34\x2e\x31\x37\x20\x37\x2e\x30\x37\x35\x31\x39\x35\ +\x35\x20\x4c\x20\x33\x37\x36\x38\x2e\x36\x39\x31\x35\x20\x37\x2e\ +\x30\x37\x35\x31\x39\x35\x35\x20\x4c\x20\x33\x37\x36\x38\x2e\x36\ +\x39\x31\x35\x20\x33\x31\x39\x2e\x35\x38\x34\x39\x37\x20\x4c\x20\ +\x33\x38\x36\x36\x2e\x30\x38\x39\x20\x33\x31\x39\x2e\x35\x38\x34\ +\x39\x37\x20\x43\x20\x33\x39\x37\x35\x2e\x37\x39\x38\x39\x20\x33\ +\x31\x39\x2e\x35\x38\x34\x39\x37\x20\x34\x30\x36\x33\x2e\x32\x36\ +\x36\x20\x33\x34\x37\x2e\x38\x36\x36\x36\x32\x20\x34\x31\x32\x38\ +\x2e\x39\x32\x35\x39\x20\x34\x30\x34\x2e\x30\x31\x38\x35\x36\x20\ +\x43\x20\x34\x31\x39\x34\x2e\x35\x37\x35\x38\x20\x34\x36\x30\x2e\ +\x33\x39\x30\x35\x31\x20\x34\x32\x32\x37\x2e\x34\x30\x37\x33\x20\ +\x35\x33\x34\x2e\x30\x34\x33\x37\x37\x20\x34\x32\x32\x37\x2e\x34\ +\x30\x37\x33\x20\x36\x32\x35\x2e\x31\x38\x30\x36\x38\x20\x43\x20\ +\x34\x32\x32\x37\x2e\x34\x30\x37\x33\x20\x38\x31\x38\x2e\x30\x34\ +\x33\x34\x39\x20\x34\x31\x31\x33\x2e\x31\x35\x33\x32\x20\x39\x31\ +\x34\x2e\x33\x37\x30\x31\x34\x20\x33\x38\x38\x34\x2e\x34\x34\x33\ +\x35\x20\x39\x31\x34\x2e\x33\x37\x30\x31\x34\x20\x4c\x20\x33\x35\ +\x36\x34\x2e\x31\x37\x20\x39\x31\x34\x2e\x33\x37\x30\x31\x34\x20\ +\x7a\x20\x4d\x20\x33\x37\x36\x38\x2e\x36\x39\x31\x35\x20\x37\x35\ +\x37\x2e\x35\x37\x33\x32\x36\x20\x4c\x20\x33\x38\x34\x39\x2e\x30\ +\x32\x33\x35\x20\x37\x35\x37\x2e\x35\x37\x33\x32\x36\x20\x43\x20\ +\x33\x39\x35\x37\x2e\x38\x37\x33\x34\x20\x37\x35\x37\x2e\x35\x37\ +\x33\x32\x36\x20\x34\x30\x31\x32\x2e\x32\x39\x35\x20\x37\x31\x30\ +\x2e\x39\x31\x38\x39\x39\x20\x34\x30\x31\x32\x2e\x32\x39\x35\x20\ +\x36\x31\x37\x2e\x36\x32\x32\x30\x39\x20\x43\x20\x34\x30\x31\x32\ +\x2e\x32\x39\x35\x20\x35\x32\x32\x2e\x33\x37\x36\x31\x38\x20\x33\ +\x39\x35\x37\x2e\x38\x37\x33\x34\x20\x34\x37\x34\x2e\x36\x33\x38\ +\x36\x38\x20\x33\x38\x34\x39\x2e\x30\x32\x33\x35\x20\x34\x37\x34\ +\x2e\x36\x33\x38\x36\x38\x20\x4c\x20\x33\x37\x36\x38\x2e\x36\x39\ +\x31\x35\x20\x34\x37\x34\x2e\x36\x33\x38\x36\x38\x20\x4c\x20\x33\ +\x37\x36\x38\x2e\x36\x39\x31\x35\x20\x37\x35\x37\x2e\x35\x37\x33\ +\x32\x36\x20\x7a\x20\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x31\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\ +\x23\x32\x33\x31\x66\x32\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x4d\x20\x33\x30\x37\x39\x2e\x37\x36\x30\x38\x20\x36\x38\ +\x36\x2e\x35\x32\x38\x33\x34\x20\x43\x20\x32\x39\x37\x30\x2e\x37\ +\x30\x30\x39\x20\x36\x38\x36\x2e\x35\x32\x38\x33\x34\x20\x32\x38\ +\x38\x33\x2e\x38\x38\x36\x33\x20\x36\x35\x36\x2e\x32\x39\x34\x31\ +\x35\x20\x32\x38\x31\x39\x2e\x37\x33\x36\x34\x20\x35\x39\x35\x2e\ +\x38\x32\x35\x32\x31\x20\x43\x20\x32\x37\x35\x35\x2e\x35\x39\x36\ +\x35\x20\x35\x33\x35\x2e\x33\x35\x33\x32\x37\x20\x32\x37\x32\x33\ +\x2e\x36\x32\x38\x20\x34\x35\x31\x2e\x33\x34\x30\x35\x33\x20\x32\ +\x37\x32\x33\x2e\x36\x32\x38\x20\x33\x34\x34\x2e\x32\x32\x33\x36\ +\x34\x20\x43\x20\x32\x37\x32\x33\x2e\x36\x32\x38\x20\x32\x34\x30\ +\x2e\x35\x35\x35\x37\x35\x20\x32\x37\x35\x34\x2e\x35\x30\x39\x34\ +\x20\x31\x35\x38\x2e\x32\x36\x39\x39\x31\x20\x32\x38\x31\x36\x2e\ +\x32\x37\x39\x34\x20\x39\x37\x2e\x37\x39\x32\x39\x37\x31\x20\x43\ +\x20\x32\x38\x37\x38\x2e\x30\x34\x39\x33\x20\x33\x37\x2e\x33\x32\ +\x34\x32\x33\x32\x20\x32\x39\x36\x32\x2e\x39\x33\x33\x33\x20\x37\ +\x2e\x30\x38\x39\x38\x34\x33\x39\x20\x33\x30\x37\x30\x2e\x39\x31\ +\x33\x32\x20\x37\x2e\x30\x38\x39\x38\x34\x33\x39\x20\x43\x20\x33\ +\x31\x38\x30\x2e\x36\x32\x33\x31\x20\x37\x2e\x30\x38\x39\x38\x34\ +\x33\x39\x20\x33\x32\x36\x37\x2e\x30\x31\x33\x34\x20\x33\x38\x2e\ +\x31\x39\x31\x30\x33\x34\x20\x33\x33\x33\x30\x2e\x30\x37\x33\x33\ +\x20\x31\x30\x30\x2e\x36\x30\x35\x34\x37\x20\x43\x20\x33\x33\x39\ +\x33\x2e\x31\x34\x33\x33\x20\x31\x36\x33\x2e\x30\x32\x33\x34\x31\ +\x20\x33\x34\x32\x34\x2e\x36\x35\x38\x33\x20\x32\x34\x38\x2e\x31\ +\x31\x33\x31\x38\x20\x33\x34\x32\x34\x2e\x36\x35\x38\x33\x20\x33\ +\x35\x35\x2e\x36\x36\x34\x30\x37\x20\x43\x20\x33\x34\x32\x34\x2e\ +\x36\x35\x38\x33\x20\x34\x35\x35\x2e\x32\x32\x32\x39\x37\x20\x33\ +\x33\x39\x34\x2e\x30\x30\x35\x38\x20\x35\x33\x35\x2e\x33\x35\x33\ +\x32\x37\x20\x33\x33\x33\x32\x2e\x38\x38\x35\x38\x20\x35\x39\x35\ +\x2e\x38\x32\x35\x32\x31\x20\x43\x20\x33\x32\x37\x31\x2e\x37\x36\ +\x35\x39\x20\x36\x35\x36\x2e\x32\x39\x34\x31\x35\x20\x33\x31\x38\ +\x37\x2e\x33\x32\x30\x37\x20\x36\x38\x36\x2e\x35\x32\x38\x33\x34\ +\x20\x33\x30\x37\x39\x2e\x37\x36\x30\x38\x20\x36\x38\x36\x2e\x35\ +\x32\x38\x33\x34\x20\x7a\x20\x4d\x20\x33\x30\x37\x36\x2e\x30\x38\ +\x34\x31\x20\x35\x33\x33\x2e\x34\x30\x38\x32\x32\x20\x43\x20\x33\ +\x31\x37\x32\x2e\x36\x32\x34\x20\x35\x33\x33\x2e\x34\x30\x38\x32\ +\x32\x20\x33\x32\x32\x31\x2e\x30\x30\x31\x31\x20\x34\x37\x32\x2e\ +\x39\x34\x33\x31\x31\x20\x33\x32\x32\x31\x2e\x30\x30\x31\x31\x20\ +\x33\x35\x31\x2e\x37\x38\x32\x32\x34\x20\x43\x20\x33\x32\x32\x31\ +\x2e\x30\x30\x31\x31\x20\x32\x32\x34\x2e\x31\x34\x32\x33\x36\x20\ +\x33\x31\x37\x33\x2e\x30\x35\x37\x37\x20\x31\x36\x30\x2e\x32\x30\ +\x39\x39\x36\x20\x33\x30\x37\x37\x2e\x33\x38\x37\x38\x20\x31\x36\ +\x30\x2e\x32\x30\x39\x39\x36\x20\x43\x20\x32\x39\x37\x36\x2e\x39\ +\x35\x37\x39\x20\x31\x36\x30\x2e\x32\x30\x39\x39\x36\x20\x32\x39\ +\x32\x36\x2e\x36\x34\x30\x37\x20\x32\x32\x32\x2e\x33\x39\x38\x38\ +\x39\x20\x32\x39\x32\x36\x2e\x36\x34\x30\x37\x20\x33\x34\x36\x2e\ +\x38\x30\x31\x37\x37\x20\x43\x20\x32\x39\x32\x36\x2e\x36\x34\x30\ +\x37\x20\x34\x30\x36\x2e\x31\x39\x31\x37\x31\x20\x32\x39\x33\x39\ +\x2e\x38\x32\x37\x31\x20\x34\x35\x32\x2e\x32\x30\x35\x33\x38\x20\ +\x32\x39\x36\x35\x2e\x39\x35\x37\x31\x20\x34\x38\x34\x2e\x38\x31\ +\x39\x33\x35\x20\x43\x20\x32\x39\x39\x32\x2e\x30\x38\x37\x31\x20\ +\x35\x31\x37\x2e\x32\x31\x33\x33\x32\x20\x33\x30\x32\x38\x2e\x37\ +\x38\x34\x31\x20\x35\x33\x33\x2e\x34\x30\x38\x32\x32\x20\x33\x30\ +\x37\x36\x2e\x30\x38\x34\x31\x20\x35\x33\x33\x2e\x34\x30\x38\x32\ +\x32\x20\x7a\x20\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x4d\x20\x32\x36\x31\x33\x2e\x39\x2c\x35\x33\x2e\x39\x38\x30\ +\x35\x20\x43\x20\x32\x35\x35\x30\x2e\x30\x37\x2c\x32\x33\x2e\x31\ +\x30\x35\x35\x20\x32\x34\x36\x36\x2e\x34\x33\x2c\x37\x2e\x36\x36\ +\x37\x39\x37\x20\x32\x33\x36\x33\x2e\x33\x38\x2c\x37\x2e\x36\x36\ +\x37\x39\x37\x20\x63\x20\x2d\x31\x33\x34\x2e\x33\x33\x2c\x30\x20\ +\x2d\x32\x34\x30\x2e\x30\x39\x2c\x33\x39\x2e\x34\x32\x35\x38\x33\ +\x20\x2d\x33\x31\x37\x2e\x30\x36\x2c\x31\x31\x38\x2e\x34\x38\x34\ +\x30\x33\x20\x2d\x37\x37\x2e\x31\x38\x2c\x37\x39\x2e\x30\x35\x35\ +\x20\x2d\x31\x31\x35\x2e\x35\x35\x2c\x31\x38\x34\x2e\x33\x39\x35\ +\x20\x2d\x31\x31\x35\x2e\x35\x35\x2c\x33\x31\x36\x2e\x30\x31\x36\ +\x20\x30\x2c\x31\x34\x30\x2e\x31\x37\x32\x20\x34\x33\x2e\x31\x38\ +\x2c\x32\x35\x33\x2e\x38\x35\x35\x20\x31\x32\x39\x2e\x37\x34\x2c\ +\x33\x34\x31\x2e\x30\x34\x37\x20\x38\x36\x2e\x35\x37\x2c\x38\x37\ +\x2e\x31\x39\x31\x20\x31\x39\x38\x2e\x39\x39\x2c\x31\x33\x30\x2e\ +\x37\x38\x35\x20\x33\x33\x37\x2e\x30\x38\x2c\x31\x33\x30\x2e\x37\ +\x38\x35\x20\x38\x35\x2e\x35\x32\x2c\x30\x20\x31\x35\x37\x2e\x37\ +\x2c\x2d\x31\x30\x2e\x38\x34\x34\x20\x32\x31\x36\x2e\x33\x31\x2c\ +\x2d\x33\x32\x2e\x35\x33\x35\x20\x56\x20\x36\x39\x31\x2e\x34\x33\ +\x34\x20\x63\x20\x2d\x35\x38\x2e\x36\x31\x2c\x33\x35\x2e\x30\x34\ +\x36\x20\x2d\x31\x32\x35\x2e\x33\x36\x2c\x35\x32\x2e\x35\x36\x32\ +\x20\x2d\x32\x30\x30\x2e\x34\x35\x2c\x35\x32\x2e\x35\x36\x32\x20\ +\x2d\x38\x32\x2e\x31\x39\x2c\x30\x20\x2d\x31\x34\x38\x2e\x37\x33\ +\x2c\x2d\x32\x35\x2e\x38\x36\x33\x20\x2d\x31\x39\x39\x2e\x32\x31\ +\x2c\x2d\x37\x37\x2e\x35\x39\x34\x20\x2d\x35\x30\x2e\x34\x38\x2c\ +\x2d\x35\x31\x2e\x37\x33\x20\x2d\x37\x35\x2e\x37\x32\x2c\x2d\x31\ +\x32\x31\x2e\x38\x31\x36\x20\x2d\x37\x35\x2e\x37\x32\x2c\x2d\x32\ +\x31\x30\x2e\x32\x36\x31\x20\x30\x2c\x2d\x38\x34\x2e\x36\x38\x38\ +\x20\x32\x33\x2e\x37\x38\x2c\x2d\x31\x35\x32\x2e\x32\x37\x20\x37\ +\x31\x2e\x35\x35\x2c\x2d\x32\x30\x32\x2e\x35\x33\x39\x20\x34\x37\ +\x2e\x35\x36\x2c\x2d\x35\x30\x2e\x32\x37\x34\x20\x31\x31\x31\x2e\ +\x38\x2c\x2d\x37\x35\x2e\x35\x31\x32\x20\x31\x39\x32\x2e\x35\x33\ +\x2c\x2d\x37\x35\x2e\x35\x31\x32\x20\x37\x36\x2e\x39\x37\x2c\x30\ +\x20\x31\x34\x37\x2e\x34\x37\x2c\x31\x38\x2e\x37\x37\x33\x20\x32\ +\x31\x31\x2e\x33\x2c\x35\x36\x2e\x33\x31\x36\x20\x56\x20\x35\x33\ +\x2e\x39\x38\x30\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x32\x33\x31\ +\x66\x32\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x61\x74\x68\x32\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x4d\x20\x31\x38\x31\x38\x2e\x30\x35\x2c\x37\x2e\x30\x37\ +\x30\x33\x31\x20\x48\x20\x31\x32\x37\x33\x2e\x38\x31\x20\x56\x20\ +\x39\x31\x34\x2e\x33\x36\x33\x20\x68\x20\x35\x32\x33\x2e\x33\x20\ +\x76\x20\x2d\x31\x36\x36\x2e\x33\x20\x68\x20\x2d\x33\x31\x38\x2e\ +\x37\x38\x20\x76\x20\x2d\x32\x30\x31\x2e\x39\x33\x20\x68\x20\x32\ +\x39\x36\x2e\x37\x34\x20\x56\x20\x33\x38\x30\x2e\x34\x38\x20\x48\ +\x20\x31\x34\x37\x38\x2e\x33\x33\x20\x56\x20\x31\x37\x32\x2e\x39\ +\x33\x38\x20\x68\x20\x33\x33\x39\x2e\x37\x32\x20\x56\x20\x37\x2e\ +\x30\x37\x30\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x32\x33\x31\ +\x66\x32\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x61\x74\x68\x32\x32\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x6d\x20\x35\x2e\x32\x39\x36\x38\x38\x2c\x31\x31\x2e\x33\ +\x31\x36\x34\x20\x63\x20\x32\x32\x36\x2e\x33\x34\x38\x31\x32\x2c\ +\x30\x20\x34\x35\x31\x2e\x38\x36\x37\x31\x32\x2c\x30\x2e\x30\x33\ +\x39\x31\x20\x36\x37\x38\x2e\x32\x31\x31\x31\x32\x2c\x30\x2e\x30\ +\x33\x39\x31\x20\x31\x38\x34\x2e\x35\x35\x35\x2c\x30\x20\x32\x36\ +\x32\x2e\x39\x34\x35\x2c\x32\x39\x2e\x37\x39\x32\x39\x20\x33\x34\ +\x33\x2e\x30\x34\x32\x2c\x31\x30\x37\x2e\x34\x36\x38\x35\x20\x35\ +\x33\x2e\x35\x2c\x35\x31\x2e\x38\x38\x37\x20\x31\x31\x35\x2e\x33\ +\x33\x2c\x31\x34\x31\x2e\x32\x39\x37\x20\x31\x31\x34\x2e\x37\x33\ +\x2c\x32\x37\x34\x2e\x33\x37\x39\x20\x2d\x31\x2e\x34\x38\x2c\x33\ +\x32\x34\x2e\x36\x36\x20\x2d\x32\x39\x36\x2e\x35\x33\x34\x2c\x32\ +\x38\x38\x2e\x31\x33\x37\x20\x2d\x32\x39\x31\x2e\x33\x35\x38\x2c\ +\x34\x37\x33\x2e\x37\x37\x34\x20\x31\x2e\x31\x36\x34\x2c\x34\x31\ +\x2e\x39\x39\x36\x20\x32\x37\x2e\x32\x35\x38\x2c\x38\x32\x2e\x31\ +\x38\x37\x20\x36\x34\x2e\x31\x32\x35\x2c\x31\x30\x32\x2e\x36\x37\ +\x35\x20\x33\x35\x2e\x30\x31\x39\x2c\x31\x39\x2e\x34\x35\x20\x37\ +\x30\x2e\x32\x35\x34\x2c\x32\x39\x2e\x30\x31\x36\x20\x31\x32\x37\ +\x2e\x38\x39\x33\x2c\x32\x39\x2e\x31\x36\x34\x20\x32\x33\x35\x2e\ +\x37\x31\x2c\x30\x2e\x35\x37\x39\x20\x2d\x30\x2e\x37\x38\x2c\x30\ +\x20\x32\x34\x34\x2e\x34\x39\x2c\x30\x2e\x33\x37\x39\x20\x6c\x20\ +\x33\x32\x30\x37\x2e\x30\x39\x2c\x2d\x30\x2e\x30\x31\x31\x20\x31\ +\x36\x31\x2e\x37\x35\x2c\x32\x37\x38\x2e\x33\x35\x36\x20\x2d\x33\ +\x34\x39\x39\x2e\x36\x2c\x30\x2e\x30\x31\x20\x43\x20\x39\x39\x38\ +\x2e\x36\x31\x33\x2c\x31\x32\x37\x33\x2e\x37\x34\x20\x38\x33\x31\ +\x2e\x32\x34\x32\x2c\x31\x32\x38\x36\x2e\x31\x31\x20\x37\x30\x34\ +\x2e\x36\x37\x32\x2c\x31\x31\x36\x39\x2e\x33\x31\x20\x36\x30\x33\ +\x2e\x33\x33\x32\x2c\x31\x30\x37\x35\x2e\x38\x20\x35\x36\x38\x2e\ +\x34\x37\x33\x2c\x39\x36\x38\x2e\x33\x30\x31\x20\x35\x36\x38\x2e\ +\x30\x36\x36\x2c\x38\x37\x31\x2e\x30\x38\x36\x20\x35\x36\x37\x2e\ +\x36\x33\x37\x2c\x37\x36\x37\x2e\x39\x39\x36\x20\x35\x39\x39\x2e\ +\x35\x38\x36\x2c\x36\x39\x38\x2e\x30\x36\x33\x20\x36\x33\x36\x2e\ +\x35\x39\x34\x2c\x36\x34\x34\x2e\x37\x34\x36\x20\x37\x32\x34\x2e\ +\x34\x38\x2c\x35\x31\x38\x2e\x31\x30\x32\x20\x38\x36\x37\x2e\x37\ +\x33\x2c\x34\x39\x33\x2e\x31\x34\x38\x20\x38\x36\x36\x2e\x35\x32\ +\x33\x2c\x33\x39\x37\x2e\x37\x31\x39\x20\x38\x36\x35\x2e\x32\x32\ +\x33\x2c\x32\x39\x35\x2e\x32\x37\x33\x20\x37\x36\x36\x2e\x38\x39\ +\x38\x2c\x32\x38\x33\x2e\x31\x32\x39\x20\x36\x30\x34\x2e\x37\x38\ +\x31\x2c\x32\x38\x33\x2e\x39\x33\x20\x34\x35\x38\x2e\x30\x32\x37\ +\x2c\x32\x38\x34\x2e\x36\x35\x32\x20\x33\x31\x30\x2e\x38\x32\x2c\ +\x32\x38\x33\x2e\x34\x34\x31\x20\x31\x36\x34\x2e\x30\x32\x37\x2c\ +\x32\x38\x33\x2e\x39\x36\x35\x20\x4c\x20\x35\x2e\x32\x39\x36\x38\ +\x38\x2c\x31\x31\x2e\x33\x31\x36\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\ +\x23\x32\x33\x31\x66\x32\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x32\x34\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x6d\x20\x35\x2e\x32\x39\x36\x38\x38\x2c\ +\x31\x31\x2e\x33\x31\x36\x34\x20\x63\x20\x32\x32\x36\x2e\x33\x34\ +\x38\x31\x32\x2c\x30\x20\x34\x35\x31\x2e\x38\x36\x37\x31\x32\x2c\ +\x30\x2e\x30\x33\x39\x31\x20\x36\x37\x38\x2e\x32\x31\x31\x31\x32\ +\x2c\x30\x2e\x30\x33\x39\x31\x20\x31\x38\x34\x2e\x35\x35\x35\x2c\ +\x30\x20\x32\x36\x32\x2e\x39\x34\x35\x2c\x32\x39\x2e\x37\x39\x32\ +\x39\x20\x33\x34\x33\x2e\x30\x34\x32\x2c\x31\x30\x37\x2e\x34\x36\ +\x38\x35\x20\x35\x33\x2e\x35\x2c\x35\x31\x2e\x38\x38\x37\x20\x31\ +\x31\x35\x2e\x33\x33\x2c\x31\x34\x31\x2e\x32\x39\x37\x20\x31\x31\ +\x34\x2e\x37\x33\x2c\x32\x37\x34\x2e\x33\x37\x39\x20\x2d\x31\x2e\ +\x34\x38\x2c\x33\x32\x34\x2e\x36\x36\x20\x2d\x32\x39\x36\x2e\x35\ +\x33\x34\x2c\x32\x38\x38\x2e\x31\x33\x37\x20\x2d\x32\x39\x31\x2e\ +\x33\x35\x38\x2c\x34\x37\x33\x2e\x37\x37\x34\x20\x31\x2e\x31\x36\ +\x34\x2c\x34\x31\x2e\x39\x39\x36\x20\x32\x37\x2e\x32\x35\x38\x2c\ +\x38\x32\x2e\x31\x38\x37\x20\x36\x34\x2e\x31\x32\x35\x2c\x31\x30\ +\x32\x2e\x36\x37\x35\x20\x33\x35\x2e\x30\x31\x39\x2c\x31\x39\x2e\ +\x34\x35\x20\x37\x30\x2e\x32\x35\x34\x2c\x32\x39\x2e\x30\x31\x36\ +\x20\x31\x32\x37\x2e\x38\x39\x33\x2c\x32\x39\x2e\x31\x36\x34\x20\ +\x32\x33\x35\x2e\x37\x31\x2c\x30\x2e\x35\x37\x39\x20\x2d\x30\x2e\ +\x37\x38\x2c\x30\x20\x32\x34\x34\x2e\x34\x39\x2c\x30\x2e\x33\x37\ +\x39\x20\x6c\x20\x33\x32\x30\x37\x2e\x30\x39\x2c\x2d\x30\x2e\x30\ +\x31\x31\x20\x31\x36\x31\x2e\x37\x35\x2c\x32\x37\x38\x2e\x33\x35\ +\x36\x20\x2d\x33\x34\x39\x39\x2e\x36\x2c\x30\x2e\x30\x31\x20\x43\ +\x20\x39\x39\x38\x2e\x36\x31\x33\x2c\x31\x32\x37\x33\x2e\x37\x34\ +\x20\x38\x33\x31\x2e\x32\x34\x32\x2c\x31\x32\x38\x36\x2e\x31\x31\ +\x20\x37\x30\x34\x2e\x36\x37\x32\x2c\x31\x31\x36\x39\x2e\x33\x31\ +\x20\x36\x30\x33\x2e\x33\x33\x32\x2c\x31\x30\x37\x35\x2e\x38\x20\ +\x35\x36\x38\x2e\x34\x37\x33\x2c\x39\x36\x38\x2e\x33\x30\x31\x20\ +\x35\x36\x38\x2e\x30\x36\x36\x2c\x38\x37\x31\x2e\x30\x38\x36\x20\ +\x35\x36\x37\x2e\x36\x33\x37\x2c\x37\x36\x37\x2e\x39\x39\x36\x20\ +\x35\x39\x39\x2e\x35\x38\x36\x2c\x36\x39\x38\x2e\x30\x36\x33\x20\ +\x36\x33\x36\x2e\x35\x39\x34\x2c\x36\x34\x34\x2e\x37\x34\x36\x20\ +\x37\x32\x34\x2e\x34\x38\x2c\x35\x31\x38\x2e\x31\x30\x32\x20\x38\ +\x36\x37\x2e\x37\x33\x2c\x34\x39\x33\x2e\x31\x34\x38\x20\x38\x36\ +\x36\x2e\x35\x32\x33\x2c\x33\x39\x37\x2e\x37\x31\x39\x20\x38\x36\ +\x35\x2e\x32\x32\x33\x2c\x32\x39\x35\x2e\x32\x37\x33\x20\x37\x36\ +\x36\x2e\x38\x39\x38\x2c\x32\x38\x33\x2e\x31\x32\x39\x20\x36\x30\ +\x34\x2e\x37\x38\x31\x2c\x32\x38\x33\x2e\x39\x33\x20\x34\x35\x38\ +\x2e\x30\x32\x37\x2c\x32\x38\x34\x2e\x36\x35\x32\x20\x33\x31\x30\ +\x2e\x38\x32\x2c\x32\x38\x33\x2e\x34\x34\x31\x20\x31\x36\x34\x2e\ +\x30\x32\x37\x2c\x32\x38\x33\x2e\x39\x36\x35\x20\x5a\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x23\x32\x33\x31\x66\x32\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3a\x34\x2e\x39\x39\x37\x35\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\ +\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x32\x32\x2e\x39\x32\x35\x36\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x36\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\ +\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x02\x8e\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x30\x49\x44\x41\x54\x78\xda\xa4\ +\x92\xcb\x6b\x13\x51\x14\xc6\xbf\x99\xb9\x33\x49\x9d\x58\x12\xc5\ +\x47\x5b\xad\x94\x22\x38\x55\x34\x05\x5d\x74\xd1\xad\x68\x45\x44\ +\x5a\xb2\x73\x53\x29\x44\x23\xb8\x96\x2c\x74\xe1\xc6\x9d\x22\xd8\ +\x81\xba\x54\xc1\x3f\xc0\x55\x71\xd5\x85\x60\x75\x51\x11\x91\x28\ +\x0a\x45\xb0\xc5\x14\x66\x32\x79\x4c\x32\xaf\x9e\x73\xeb\x74\x23\ +\x56\xd4\x81\x6f\xce\xc9\xdc\xfb\xfd\xce\xb9\x27\x57\x49\x92\x04\ +\xff\xf3\x88\x52\xa9\x74\x91\xe2\xc0\x3f\xfa\xbf\x8b\x28\x8a\x86\ +\x6c\xdb\x9e\x0f\x82\xe0\xaf\x9c\xba\xae\xa3\x5c\x2e\x5f\x13\x71\ +\x1c\x2b\xbd\x5e\x0f\x95\x4a\x05\x94\xcb\x45\x8e\x7c\x34\x56\x9a\ +\xf3\x1e\xdf\x0f\xa0\x69\x1a\x0a\x85\x3c\x6c\xfb\x11\xaf\x29\x22\ +\x0c\x43\x85\xba\x90\x1b\x2d\xcb\x92\x91\xbe\xc1\x3f\x3d\x8a\x64\ +\xe9\x3d\xb8\x33\xd7\xf5\xd0\x68\xb4\x91\xcd\x0a\x08\x61\xa0\xdd\ +\x6e\x80\x3d\xec\x65\x80\xca\x3f\xb8\x0a\x6f\x66\x33\x2b\x1e\xda\ +\x8b\xae\xef\x93\xb9\x89\x4e\xa7\x47\x2d\x67\x49\x86\x04\x04\x81\ +\x9f\x02\x54\x09\x90\x06\xaa\xcc\x6d\x32\x84\xa5\x0f\xef\xa3\xaa\ +\x2d\x74\xbb\x11\x0c\xa3\x6f\xdb\x2c\x84\x4e\xdf\x8c\xb4\x90\xaa\ +\xa6\x00\x26\xfa\x54\x31\x9a\x38\x26\x23\x3f\x3c\xd7\xdc\xd8\x08\ +\x06\xee\xcf\xa1\x7f\xea\x0c\x32\x99\x2c\xc1\xb2\x12\xf2\x0b\x40\ +\x99\x3c\x81\xa8\x34\x49\xe7\x6b\x63\xf7\xdd\x59\x09\xc8\x59\x23\ +\x28\x5c\x9f\x82\x73\xeb\x29\x94\xe1\x3d\x18\xbd\x37\x8b\xe9\xf9\ +\xdb\x04\x10\xdb\x00\x41\xed\x4a\x40\x67\xf1\x0d\xdc\xb7\x5f\x64\ +\x27\xee\x8b\x57\x30\xad\xa3\x64\xbe\x80\xe6\xc2\x22\x4c\x33\x8f\ +\xe4\xd9\x32\x9e\x58\x0f\xf0\xb0\xd0\x80\x59\xcc\x48\x00\x7b\x55\ +\x7e\xb1\x69\xab\xe5\x40\xce\x41\xd7\x77\x21\xb3\xde\x45\xeb\xf1\ +\x4b\xf4\xfd\x08\xe5\xd9\x79\x0e\x4e\x7f\x13\x97\x67\x2e\xc1\xcb\ +\xb7\x65\x21\xf6\x8a\x14\x60\x9a\x26\x3c\xcf\x4b\xaf\x09\xfd\x2b\ +\x1b\xd0\x3e\x3a\xf0\x55\x15\xef\x8a\x35\xd4\x73\x75\x80\x46\xe3\ +\x46\x2e\xd4\x28\xc6\x95\x4f\x37\xb0\x76\x76\x7d\x5a\x38\x8e\x93\ +\x51\x69\x53\xb5\x5a\xfd\xed\xad\xbb\x5a\xbb\x89\xe2\xb9\x71\x99\ +\xd7\xc3\x3a\x4e\x96\xb6\xf2\xcf\xab\xb5\xc3\x0a\x55\x2e\x13\xe0\ +\xc8\x4e\xd7\xb6\x33\x83\xf3\xf1\x21\xe5\x00\xe7\x63\x73\xa7\x0e\ +\x7e\x58\x58\x59\x93\x0b\xab\xd1\x6b\x0e\x06\x69\x3f\x69\xf0\x8f\ +\xba\x63\xae\x0c\x7e\x3d\x9e\x70\xfc\xe9\x31\x34\x7a\xf1\x04\x5b\ +\x24\x6f\x47\x4d\x08\x0f\x85\x64\xdc\x5b\xda\x00\xba\xf1\x32\x34\ +\xe5\x39\xbe\xc5\xd1\xa6\x00\x03\x00\xfe\x0f\x58\xe5\x77\x1c\x22\ +\x63\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x1d\x3f\ +\x00\ +\x00\x6e\x64\x78\x9c\xed\x5d\x6b\x6f\x1c\x47\x76\xfd\xee\x5f\xd1\ +\xe1\x7e\xf1\x02\x3d\xad\x7a\x3f\xb4\x96\x17\x88\x93\xc0\x01\xd6\ +\x40\x80\x6c\x8c\x7c\x5b\xd0\xe4\x58\x64\x4c\x71\x04\x92\x92\x6c\ +\xfd\xfa\x9c\x73\xaa\x7b\xa6\x7b\xf8\x18\x49\x6b\x32\x76\x56\x5e\ +\x24\x56\xd5\xf4\xa3\x1e\xf7\x9e\x7b\xee\xa9\xdb\xf2\x57\x7f\xfe\ +\xf9\xd5\x45\xf7\x76\x7d\x75\x7d\xbe\xb9\x7c\x71\x64\x07\x73\xd4\ +\xad\x2f\x4f\x36\xa7\xe7\x97\x2f\x5f\x1c\xfd\xd7\x5f\xff\x6d\x55\ +\x8e\xba\xeb\x9b\xe3\xcb\xd3\xe3\x8b\xcd\xe5\xfa\xc5\xd1\xe5\xe6\ +\xe8\xcf\x5f\x7f\xf1\xd5\x3f\xad\x56\xdd\x37\x57\xeb\xe3\x9b\xf5\ +\x69\xf7\xee\xfc\xe6\xac\xfb\xf7\xcb\x9f\xae\x4f\x8e\x5f\xaf\xbb\ +\x2f\xcf\x6e\x6e\x5e\x3f\x7f\xf6\xec\xdd\xbb\x77\xc3\xf9\xd8\x39\ +\x6c\xae\x5e\x3e\xfb\x63\xb7\x5a\x7d\xfd\xc5\x17\x5f\x5d\xbf\x7d\ +\xf9\x45\xd7\xcd\xdf\x69\x8f\xd8\x71\x7e\xfa\xe2\x08\xbf\x39\x35\ +\xde\x9d\x9f\xde\x9c\xbd\x38\x4a\x3e\x0c\x09\xff\x54\x75\x9e\xad\ +\xcf\x5f\x9e\xdd\xbc\x38\x72\xd6\x0f\x9e\xff\xa8\xf7\xed\xf9\xfa\ +\xdd\x3f\x6f\x7e\x7e\x71\x64\x3a\xd3\x6d\x6f\xe8\x96\x17\x5d\x63\ +\x46\xaf\xf1\x7f\xcf\x4f\x37\x27\x97\xc7\xaf\x30\x91\xff\xfc\xd7\ +\x6f\x36\xff\x61\xdd\xdf\xae\xdf\xfc\x70\x73\x7e\x73\xb1\x5e\xdd\ +\x5c\x1d\x5f\x5e\xbf\x3e\xbe\x5a\x5f\xde\xac\x4e\x36\x6f\x2e\x6f\ +\x30\xc0\xd5\x05\xdf\x38\x60\x58\x6d\x88\xe3\x7c\x9e\xcf\x06\xef\ +\x06\xd7\x7d\xf9\x83\x39\x2e\xa1\xa4\x18\x6c\xdf\x39\xe3\xdc\xca\ +\xba\x95\xb1\x7f\xd4\x4d\x58\xe0\xcb\xeb\xe7\xd3\xad\x2f\x8e\xee\ +\x5b\x1f\x0e\x0b\xef\x3f\x59\x5f\x3f\x9b\xfa\x67\xf7\x4f\x13\xd8\ +\xde\x3f\x75\x0c\xd7\x9b\x37\x57\x27\xeb\x1f\xf1\x88\xf5\x70\xb9\ +\xbe\x79\xf6\x2f\x7f\xfd\x97\xed\x8f\x2b\x33\x9c\xde\x9c\xee\x1e\ +\xb3\x78\xfb\x3b\xaf\xf7\x3a\x63\xcc\xb3\x69\x86\xe3\xcb\xde\xbe\ +\x7c\xf0\xca\xaf\x71\xe9\x57\xa7\xeb\x1f\xaf\x79\x4b\xdb\x39\xb6\ +\xd2\x51\xf7\x4c\x3f\x6d\x57\x9b\x73\x3a\xe5\x06\xed\x2e\xdc\x76\ +\x85\xa3\xd6\xf9\xfa\xf8\xe5\xfa\x64\x73\xb1\xb9\x7a\x71\xf4\x87\ +\x68\xf8\xbf\xf1\x87\x1f\x36\x57\xa7\xeb\xab\xe9\xa7\xb5\xfe\x59\ +\xfc\xb4\xc1\x6a\x9d\xdf\xfc\x82\x5d\x18\xbb\xb7\xfb\x73\x7d\xb6\ +\x79\xc7\xe7\x5e\x9f\x1d\x9f\x6e\xde\xc1\x34\xf6\x2f\xe0\x8f\xdb\ +\xdb\xef\xfc\xf5\xe4\x6c\x7d\xf2\xd3\xfa\xea\x87\xcd\xf1\xd5\xe9\ +\x1d\x97\x9c\xae\xaf\x7f\xba\x73\xd4\x7c\xf5\xcb\x2b\xce\xf4\xc7\ +\xe3\x8b\xeb\xf5\xfe\x7d\xef\x37\x9b\x57\xb2\x79\x93\x5c\xdc\xff\ +\xf1\x04\x56\xec\x0a\xec\xb6\xd4\xe2\x6f\xfd\xc8\x89\x9a\x24\xf3\ +\xce\xfb\x3f\xbe\x3b\xbf\xc4\x44\x57\xa3\xdb\xd8\xea\x6e\x0d\x78\ +\xbc\x62\xf2\x21\x6b\xf3\xad\x55\x1b\x2f\xf9\xf9\xc1\x07\xdc\xb5\ +\x5e\xe3\x4f\xaf\x8e\x7f\x3e\x7f\x75\xfe\x7e\x7d\x7a\xc7\x8e\x9c\ +\xbc\xb9\x92\x67\x5d\x1c\xff\xb2\xc6\x9a\xbd\xb4\x66\x32\x96\x97\ +\x3b\xdb\x78\x59\xf6\x6f\x7b\x79\xb5\x79\xf3\xfa\xd5\xe6\x14\x7e\ +\xa3\x3b\xf7\x7f\xbf\x38\xfe\x61\x7d\xf1\xe2\x08\xed\xbf\xad\x7f\ +\xbe\xf9\xdb\x7f\xeb\x9f\xf1\x22\x39\x34\xfc\x02\xeb\xfd\xea\xf8\ +\xe6\xea\xfc\xe7\x2f\x6d\x43\x04\xef\x7b\x83\xff\xad\xe6\xcd\x2d\ +\x5c\xfc\x51\xd6\xbd\x1b\xd7\x38\x32\x3b\x4d\x7a\xf1\x5c\x0c\xe2\ +\x62\xfd\xa5\x19\xec\x74\x17\xee\x7b\x7d\x7c\x73\x36\x5d\xda\x6e\ +\x66\x8f\x75\x47\xbb\xce\xeb\x9b\x5f\x2e\x30\xa3\x1f\xcf\x2f\x2e\ +\x9e\xff\xe1\xc7\x13\xfe\xef\x4f\x6c\xac\x46\x93\x7c\x6e\x5b\xf3\ +\xea\xcd\xc5\xfa\xf9\xfa\xed\xfa\x72\x73\x7a\xfa\xa7\xeb\x9b\xab\ +\xcd\x4f\xeb\xe7\x97\x80\xe1\xd9\xa3\xf0\xf8\xef\x3a\x9f\x7c\x1a\ +\x6a\xf0\xb1\xb3\xce\xd6\xc1\x05\xef\xba\xbf\xcc\x7a\x5d\x8d\x83\ +\x71\xd5\x15\xf6\x96\x10\x07\x57\x8a\xbb\xa7\x37\x71\x21\x52\xb5\ +\x9e\xbd\x35\x84\x21\xda\x94\x67\xbd\xdf\x74\xc1\xc4\x34\xb8\x9c\ +\xd2\xac\x37\x58\xdc\xef\x53\xf2\x5d\x0a\x6e\xb0\x25\xe2\x49\xc1\ +\x59\x80\x63\x48\x78\x66\xad\xb0\xe9\x90\x13\xef\x76\xb9\x0e\xd6\ +\x25\xdb\x65\x3c\xa6\x18\x3c\x3c\x78\x5c\x18\xb3\x0f\x5d\xf1\x76\ +\x28\xce\xdb\x32\xeb\xab\x8e\x90\xee\x4d\xe1\xcd\xdb\x5e\x8b\x99\ +\xe2\x31\xa1\xe2\xd5\x35\xe1\x8d\xb9\xce\x26\xef\x6b\xf2\x83\x33\ +\xc5\xde\xb3\x20\xbb\xde\xf7\xdd\x77\xb3\xc9\x5b\x13\xeb\x10\xfd\ +\x38\x79\x97\xf1\x86\x3a\xeb\xe4\xdc\x7d\x19\x8c\x29\xf3\xde\x60\ +\xaa\x1f\x42\xc8\x18\x94\xc1\xf0\x8c\xf1\x69\xd6\x57\x2d\xde\x99\ +\x5d\x8a\xba\x7b\xea\x2d\x78\x7f\x0d\x25\xc7\xd9\x13\x73\x86\x41\ +\x3a\xef\xc2\xee\xd5\xbb\xae\xf9\x16\xdd\xdd\xbb\x1b\xd0\xfb\x6e\ +\xf4\xad\x87\xec\x31\x3c\xa6\x3d\xda\xe0\x61\x37\xd8\xb2\x5a\x30\ +\x91\x94\x6b\xc6\xec\xbd\xf1\x6e\x08\xd6\xd4\x59\xaf\xc3\x76\x0c\ +\xd8\x2c\xdb\x55\x58\x83\x8f\x25\xa6\xce\x95\x5c\x86\x04\x2b\xe8\ +\x4a\x0d\x43\x4e\x11\x16\xf4\x0d\x7a\x61\x6c\xae\x62\xcb\x8a\xf7\ +\x83\x8d\x35\x95\xce\xe5\x62\x86\x0c\x53\xec\x72\xc8\x03\x6c\x6e\ +\xde\x95\xb0\xae\x21\xd9\x6a\x79\xf3\xb6\x37\x62\x0c\x25\x19\x63\ +\xf9\x40\x5a\x2a\xfa\x42\xa8\x83\x09\xc5\xb1\x2f\x47\x40\x33\xb6\ +\xc5\x63\x88\x01\xb6\xcb\x81\xe3\xad\xd8\x22\x87\x6d\xf3\x2e\x0e\ +\x25\x54\xd8\x9f\x37\x30\x4b\x6d\xa0\xdc\x28\xf8\xea\x31\x6d\xaf\ +\xbe\x30\xeb\xc3\xb4\xe1\x02\xb0\xb5\xec\xe7\x57\x7a\x5c\xe9\x38\ +\x31\xef\x12\x06\x66\x72\x41\x5f\xc5\x80\x2b\xfb\xaa\x19\xf0\xfc\ +\xcc\x69\x7b\x8c\x61\xc8\x1e\xee\x12\xa2\x1f\x4a\x09\x70\x3b\x1f\ +\xb0\x2e\x25\xc2\xcc\x62\x30\x43\xc4\xea\xe5\x59\x5f\x8a\xc0\x23\ +\xe7\x4c\xd2\xdd\x53\x6f\x8e\x16\xc6\x51\x2b\xef\x86\x6f\x24\x78\ +\xe0\x6c\x21\x7d\x30\x30\xa9\xc8\xbe\xd9\x92\x63\x94\x58\x18\xd8\ +\xe2\x6c\x73\xb0\x02\x7e\x30\xd9\xe4\xd9\x26\xde\xb5\xdd\xf2\x2b\ +\x8b\xfb\x73\x8e\x51\x7e\x6d\x73\xca\x51\xeb\x81\xd5\xb4\x36\x86\ +\x59\xaf\xc7\xc2\x03\x21\xb0\x0a\x39\xc1\x88\xc9\xa5\x66\x7d\x09\ +\x0b\x68\xc1\xe9\x8a\xee\x9e\x7a\x81\x4b\x83\x0d\xc5\xda\xf6\xc4\ +\x18\x3d\x90\x04\xb3\x34\xce\x00\x15\x30\x26\xfc\x11\x1b\x37\xeb\ +\x93\x09\x96\x21\x57\x5f\x67\xbd\x8e\x83\x8e\x3e\x78\x3c\x31\x0c\ +\x1e\x83\x8f\xb3\xbe\xa4\xc7\x94\x66\x82\xdb\xde\x8c\xe5\x8a\x55\ +\xeb\x01\x4e\x44\x4f\x8e\x30\x41\x6c\x5f\x4c\xd8\x35\xee\x1d\xb6\ +\xa5\x84\x2e\x17\x3b\x60\x39\x92\x46\x6e\x62\x80\xbd\x15\x3a\x7f\ +\x50\x2f\xe6\x6d\x2a\x1f\xb4\x58\xa1\xbb\x56\xed\x21\x8f\x86\xc7\ +\xbd\xea\x5c\x4a\x05\x7e\xd4\x7b\xa0\x2f\x1c\xa5\x3b\xe9\x56\x89\ +\xe8\xde\xaf\xf0\x8c\x80\xb5\x5e\x59\x98\x85\xf3\xfd\x0a\x8e\x62\ +\x31\xc6\x95\x8b\xb0\xf4\xba\x6b\x5b\x60\x63\x09\xbd\xc1\x2f\x04\ +\xfd\xdc\xc3\xb4\x2c\x26\xb8\xf2\xce\x0d\xb5\xf4\xd6\x99\x01\x50\ +\xdf\xad\xe4\x9c\x3d\xfc\x09\x58\x83\xdb\x6c\x86\xfd\xf6\xf0\xa3\ +\xa1\x78\xb7\x6d\x7b\xa0\x33\x2e\x36\xbd\xc5\x80\x32\xc0\x8d\x6e\ +\x5e\x7b\x17\xb1\x51\x15\x40\x09\x2f\xb4\x19\xa3\x85\x93\xc1\x6c\ +\x0a\x0c\xa2\xf4\xf8\xff\x8c\x4a\x06\x37\xd8\xde\xc2\x36\x1d\x1c\ +\x05\xf7\xf9\x3c\xb5\x68\x5d\x0e\x43\xb4\x09\x63\x09\x08\xe0\xd8\ +\x1b\x6c\x16\x46\xe6\x23\x66\x4a\x6b\xee\xbe\xef\x6a\xc5\xc3\x13\ +\x97\x00\x80\x88\x47\xf9\x38\x64\x0c\x0c\x7b\x92\x7b\x18\x2f\x17\ +\x03\x1b\x3f\xb8\xa9\x01\xc2\x95\xf9\x54\x2c\x11\x36\xa3\x5f\xc1\ +\x23\xbd\xae\xc1\xbc\xb1\x80\x99\xe0\x80\x67\x61\x1d\xd1\x8a\x0e\ +\xab\x10\xb1\x0a\x18\x0a\x56\x13\x11\x68\x30\x30\xd6\xa9\xed\x2c\ +\xf7\xd8\x63\xe2\xab\x02\xaf\x87\xb3\xe2\x02\x87\xfb\x2c\x97\x1b\ +\x31\x0f\xdb\x53\x70\x19\x78\x1c\x96\xa8\x93\xc9\xf4\x7c\xb6\xc3\ +\x8f\x16\x08\x57\xb0\x25\x19\x11\xc3\x01\xd0\x19\xd7\xdc\xb6\x89\ +\x75\x47\x7a\x81\xc9\xb7\x8d\xb4\x8c\xa2\x98\xbc\x05\xfc\xc7\x3e\ +\xc2\x29\xb2\xc5\xe4\x47\x03\x78\x1c\x70\x9f\x82\x87\x33\x07\xcc\ +\x91\x04\x00\xb3\xef\x85\x78\x30\x93\x33\xac\x1f\xac\x1f\x7e\xf7\ +\x56\xf1\x1c\xe1\x17\x7d\x11\x3b\x06\x98\xfa\x1e\xa1\x0b\x08\x0c\ +\xc7\xf8\x16\x93\x23\x67\x40\x57\x81\x11\x82\x53\xe0\x2a\x78\x13\ +\x02\x1c\xba\xe0\x08\xb0\x96\x34\xbf\x8a\x50\x56\x4b\xe1\x55\xc0\ +\x08\x3d\x6b\x7c\xe5\x23\x2f\x80\x3b\xb4\x00\xf0\xfb\xe2\xb9\x00\ +\x95\xb8\x0a\x63\x74\x1e\x1e\x93\x0d\x3d\x2c\x24\xe2\x3b\xff\x88\ +\x91\x56\xb0\x23\x83\x90\xe4\xa7\x26\x20\x02\xd7\xb8\x04\x87\x8a\ +\xb1\xc7\x5d\xf0\x12\x02\x39\xc2\x11\x76\xdd\xe0\xdf\x0c\x63\xe4\ +\x65\x3d\x8c\x91\x18\x44\x9f\x0b\xf0\x50\xfa\x98\x47\x0b\x8e\x9c\ +\x7b\xd2\x2c\xd8\x29\x2d\xda\xe3\x21\x19\xa0\xb0\xe2\x52\x9a\xe4\ +\x31\x2a\xe2\x35\x41\x00\x26\x96\x6b\xe8\x11\xfc\x10\x12\x70\x2f\ +\x01\xaa\x97\xcb\x76\xf4\x97\x94\x7a\x79\x07\x82\x0a\xec\x35\xe2\ +\xf5\x78\x2f\xc0\x35\x82\x91\x15\x9a\x20\x18\x16\xc8\x48\x8c\x70\ +\x6d\xbc\x0e\x43\xc1\xab\xf0\x66\xb6\x10\xdc\x09\x21\x30\x59\xde\ +\x82\x4c\x14\xdd\x98\x17\x63\x6d\x44\x1f\x66\x7a\xc1\xe8\x97\xe4\ +\x64\x98\x3a\xec\x3f\x21\xf6\x60\xe4\x78\x25\xd0\x6f\xe5\x23\xda\ +\xf0\x07\xfd\x76\x42\xf7\xac\xc4\x90\x15\x9c\x04\xfe\xcc\x49\x01\ +\xfd\xfb\xc2\xe1\xad\x02\x7e\x0b\x78\x17\x20\x01\x03\x60\xe8\x4b\ +\x40\x05\x90\x42\x40\x07\x67\xd0\x21\x78\x81\x9f\x02\x49\x10\xc6\ +\x81\x7b\x68\x87\xa1\x46\x2c\xa8\x65\xc4\x4f\x6a\x23\xa2\x60\x86\ +\x99\xb8\x07\x6a\x9b\x31\xce\xda\x57\x04\xe5\x6a\x03\x16\x00\x63\ +\x8b\xa5\x17\x23\x46\x24\xca\xf8\xb7\xc3\xe0\x0a\xfc\x8f\x88\x56\ +\xb0\x89\x08\xe3\x7d\xc6\xbf\x81\xd9\x80\x34\xdc\x87\xc9\x24\x80\ +\x11\x91\xbe\x00\xbb\x52\x04\xe6\xa0\x3f\x01\xb4\x32\xf9\x05\x00\ +\x3b\xc2\xbb\x11\xbe\x30\x5c\x47\x43\x41\x9b\xef\x05\x32\x10\x29\ +\xf0\x7e\xb6\x89\x9f\x42\x61\xe3\x74\x7d\xc4\xea\xd8\x4c\x60\x6c\ +\xbf\x83\x51\xfd\x65\xdf\xe2\x1e\xd9\xfe\xc3\x67\xfb\xff\x6c\xff\ +\x8f\x69\xff\x9c\x2f\xf7\xbc\x22\x39\x07\xff\x2d\xdc\xab\xaa\x60\ +\x69\x78\x1f\x66\x1c\xf8\x02\x3f\x1a\xcd\xfb\x7b\xec\x9d\xf6\x3b\ +\xd9\xf2\x1f\x90\x52\xfc\xe8\xcc\xd8\x6c\x5a\xc9\x73\xac\x02\x08\ +\xdf\xd4\x77\x71\x7e\xb9\x3e\x39\x7e\xfd\xfc\x87\x37\x37\x37\xf3\ +\xbe\xff\xd9\x9c\x5f\x3e\x7f\x75\x7e\xb3\xbe\x9a\x7a\xd5\xb8\x38\ +\xc7\xbf\x9e\xd3\x33\xc1\xe5\xa7\x5f\x4e\x8f\xaf\xcf\x8e\xaf\xae\ +\x8e\x7f\x99\xbf\x7c\xe7\x6b\x77\x79\x53\x3a\xe4\x4d\x58\x9b\xe0\ +\x4b\x0f\x63\x41\x8e\x63\x11\x44\x3d\xf9\x03\xe6\x7d\xd2\x25\xe6\ +\x3d\xa0\x10\x24\xa6\x05\xf6\x37\x64\xe4\xdd\xfd\xaa\x92\x61\x22\ +\xe5\x00\x6b\x09\x34\x30\x3c\x22\xc0\xec\x3b\x18\x35\x76\x69\x05\ +\x0b\x07\x86\x20\x9e\x96\x42\x4e\x88\x50\x0b\x46\xef\x00\x29\xd1\ +\xc6\x6d\x1b\x2c\x15\xc4\x16\x46\x8b\x2d\xe3\xde\x63\xe5\x41\xe0\ +\x38\x1a\x83\x64\xa9\xb7\xdc\x38\x50\xb4\xf6\x06\x58\x1b\xec\x07\ +\xc3\x41\x8a\x0e\x47\x61\xce\x9b\x79\x23\x8d\x0e\x97\x20\x9e\x77\ +\x98\x85\x03\x87\xc2\x90\x52\xe1\xd3\x41\x93\x3d\x7e\x03\x67\x02\ +\x9b\x27\x97\x0f\x3d\x39\x29\xac\x0d\x7e\x08\xe2\xdd\xe3\x45\xb0\ +\x4f\xb4\x32\x22\x7a\x8f\x51\xe5\x5a\xa7\x16\xe6\xed\x81\x8b\x06\ +\x0f\xb0\x85\xee\x05\x0b\x4c\xe8\x35\x24\x6b\x4e\xb3\x04\x61\x2a\ +\x82\x80\xe2\x0c\x9c\x1e\xf6\x8d\x56\x20\xf4\xc0\xc7\x41\x57\xe1\ +\x95\x30\x42\x9f\x23\x6e\xab\x9e\xf8\x00\x0e\x87\xe1\x3a\xe5\xde\ +\xab\xc4\x19\x45\xbe\xb6\x90\xd7\x6a\x64\xb8\x92\x23\xc2\x53\x00\ +\x1d\x55\xd3\xc4\x7d\xb0\x44\x64\x67\x3d\xb9\x48\x25\x93\x46\x53\ +\x97\xd2\x32\xb9\xf2\x09\x94\x14\x53\x23\x1d\x5c\x39\x25\x9d\x58\ +\x21\xcc\x83\x04\xda\x61\x94\xa0\x43\x04\x13\xa4\x67\x7c\xab\xc3\ +\x5e\xf7\xf0\x16\x8e\x01\x9d\x1e\x5e\x48\x48\x03\x0a\x4e\x4d\x27\ +\x5f\xc2\xdc\x39\x43\xe0\x46\x43\xa3\x48\x07\xc5\x42\x1a\x58\x40\ +\x8f\x8d\x07\xa1\xf2\xcc\xb7\xdd\x38\x68\xe4\xb0\xb1\x24\xbe\xd8\ +\x12\xea\x3c\xe3\x49\xe0\x6d\x80\x44\xdc\x56\x8a\x76\x4a\xcb\x8f\ +\x21\x27\x4e\xa0\x60\x47\xc9\xae\x33\x71\x86\x89\x88\xcc\x87\x5b\ +\x0f\xce\x8b\x3b\x39\x91\xc6\xef\x1d\xe1\x03\x24\xbe\xb5\x38\x2e\ +\x41\x3d\xae\xc1\xdc\x05\x70\x11\x79\x13\x26\x1f\x61\x62\x94\xde\ +\x80\x70\xd8\x42\x24\xbe\x6c\x60\x47\xf8\xd2\x08\xc3\xa0\x6d\x2a\ +\x45\xc0\x70\xc1\x22\x69\x8c\x19\xd4\xff\x2d\x11\x4f\x3c\xf8\x44\ +\xdb\x4b\x13\x2b\x24\xe2\x91\x59\x49\x4f\xc4\xac\xda\x08\x18\x01\ +\x7d\xda\x71\x37\x41\x8e\x69\x6d\x64\xf3\x89\xef\xc7\xe8\x12\xf7\ +\xb9\x12\xfa\x90\xa4\x00\x89\x74\x1d\x36\x9d\x06\x5c\xdb\xae\xe7\ +\x9c\xb1\x2c\x58\x7f\xda\x0e\xd0\x2c\x04\x4e\x12\x41\x96\x57\x66\ +\x01\x7a\xe0\x6f\xed\x91\xc8\x44\x12\x9f\x18\x53\x8a\x63\x43\x86\ +\x9a\x98\x51\x64\xd8\x55\x16\x66\x79\x62\x36\x96\x1e\x7b\x9b\x39\ +\x63\xcb\xcc\x8a\x74\xd6\xf3\x57\xa6\x6c\xdc\xf9\xec\x99\xd5\x0c\ +\x4c\x5b\x57\xa3\xef\xb4\x97\x72\xce\x72\x9e\x15\xe7\xd3\x35\x0f\ +\x4d\xbd\x2c\x36\x73\x11\x42\xb2\x04\x01\x60\x26\x0d\xde\xe5\xcc\ +\x64\x04\xee\x93\x64\xff\x35\xc8\xab\x5d\x72\xbb\x66\x12\xac\x9a\ +\x11\x0b\x98\xdc\xc1\x84\xf9\x08\xf0\x69\x7a\x80\x32\x11\xbc\xb4\ +\xe3\x1b\x11\xca\x57\xcc\xaa\x4a\xd7\x7c\x59\x4f\x43\x18\x49\xcc\ +\x11\x3d\x1f\x66\x23\x00\x04\x43\x76\xda\xd0\x52\x69\x89\x94\xfc\ +\x38\x46\x0a\x02\x00\xa4\xa0\x5c\x47\xa6\x8b\xbe\xe8\xab\xae\x8c\ +\x55\x96\x09\x9f\xe4\x95\x0d\x5f\x60\x77\x81\x97\xd2\x43\x68\x25\ +\xbc\x94\x69\xa1\x4c\x53\x00\xc3\xe7\x10\x1a\x32\x33\xb6\x66\x9b\ +\xc2\x0e\x3e\x84\xf6\xcc\xd7\x69\x92\x34\x3b\xca\x94\x8e\x2b\x4b\ +\x53\xae\x7c\x39\x51\x8e\x71\x54\x46\x88\x5d\xc4\x23\x1c\xb0\x02\ +\xd9\x29\x97\xd8\x53\xb6\xec\x84\x61\x9c\x28\x5d\xc2\xd1\xa7\xf5\ +\x04\xe6\xf5\x53\x2b\xcb\xa7\x0d\xe1\xd6\x1a\x65\xd9\x04\x27\xfc\ +\x90\x68\x95\xcc\x1a\x09\x6b\x3d\x9d\x9e\xee\xa5\x2d\x0f\x49\xcb\ +\x95\x10\xd4\xf1\x56\x53\x8b\xf2\x58\x1b\x61\xe4\x08\x79\xca\xd9\ +\xf1\xaf\x1a\x68\xc2\xf2\xca\x36\x54\x1f\x1b\x96\x60\xd3\xac\xe6\ +\xc5\x85\x43\x22\x09\xc3\x73\x6d\xfc\xcc\x4a\xb9\x9c\x32\x21\xf8\ +\x2f\xb3\x73\xbc\xc8\xb0\xc3\x91\x35\x11\x7d\x42\x03\xc3\x6d\x87\ +\x3c\xc6\x2b\xfb\xa5\xae\x02\x83\x63\xb8\x0d\xc4\x50\x18\x15\x51\ +\x4d\x1a\x6e\x1b\x2b\x37\xc9\xd2\xcf\x69\xcb\xc4\x0d\x6c\x04\x77\ +\x37\xb5\x91\x08\x04\x09\x1a\xdb\x93\x8d\x8f\xa6\x9f\x08\x99\xef\ +\xd7\x57\x9b\x43\xf4\xb3\x3c\x18\x30\xbf\xeb\xc8\x52\x48\x30\x13\ +\xb9\x57\xce\x48\x19\x0b\xf2\xc3\x60\x99\x46\x3a\x84\x39\xf8\x07\ +\x72\x46\xb0\x40\x4a\x86\x6f\xc9\x2d\x28\x3d\xe0\x2a\x70\x25\x53\ +\x05\x36\xf0\x46\xe3\x95\xa4\x92\xd7\x30\x49\xa5\xa8\x03\x66\xb2\ +\xbd\xea\xfb\x8e\x3a\x1d\xf7\xe5\xac\xc3\x8b\xb8\xdf\xdf\x77\xe3\ +\x1b\x1f\x77\xfe\xfe\x50\xfe\xed\x3c\x09\x68\x24\x61\xf0\x44\xbc\ +\x13\x61\x4f\x91\xdb\xe4\x16\x86\xb8\xdb\x34\x9b\x28\xb0\xc1\xea\ +\x10\x96\xa7\xa6\xa3\x01\xd2\x28\x9a\x14\x44\x18\xc0\x62\xac\x90\ +\xd4\x23\x80\x50\xda\xa9\xb4\x08\xca\x65\x60\x90\x41\xec\x00\x37\ +\x51\x69\xea\x29\x6c\x36\xfb\x51\x13\xb7\x24\x7a\x8c\xe9\x1d\xe2\ +\xa1\x95\xaf\x23\x94\xe7\x26\x5e\x60\x97\x6a\x8f\x1c\x1e\x2e\x0d\ +\xf6\x0b\x83\x62\xa4\x23\x00\x49\xa8\xef\xa9\x14\x20\xbe\x25\x6a\ +\xfe\x53\x83\x51\x47\x09\x42\xc5\x2e\x36\x8c\xa3\x88\x0e\x87\xa2\ +\x57\x98\xd0\x42\x45\xd4\x16\x9f\x08\xc0\x01\x64\xc4\x10\x8e\x90\ +\x3b\xdf\x57\xa1\xcc\xca\xc3\x79\xed\xd4\xa0\x8a\x22\xc4\x66\x68\ +\xb5\x74\xfa\x42\xff\xe4\x30\xaa\xfc\x91\xc2\x03\xc3\x6f\x16\xb5\ +\x62\xd8\xa0\xaf\x46\xb9\x76\xa2\xa7\x8f\x4d\x2a\xa6\x9e\xa1\x99\ +\x8f\xcc\x08\x57\x81\xaa\x0d\xa3\xbc\x83\x97\x10\x59\x88\x73\x78\ +\x09\x1e\x8f\xd5\xf4\xbd\x62\xba\xa3\xee\x35\x10\x2c\xf9\x18\x4b\ +\x4d\x15\x77\x87\x5d\xd3\x92\x70\x70\xd6\xda\x36\x61\x30\x98\x57\ +\x95\x10\x84\x70\x04\xec\x6d\x01\xf2\x91\x1d\xcf\x1f\xd2\x3d\x90\ +\xf2\x30\xb8\x52\x8f\xca\xd4\xc9\xb8\x03\x98\xa0\x96\xd6\x33\x73\ +\x00\x0d\x22\xdd\x61\xc6\x02\xc3\xe0\x76\xbb\x34\xf2\x2b\x82\x0b\ +\x76\x2b\x30\xa0\x11\x40\xc1\xff\x98\x5b\xe4\x34\x35\x29\x09\x15\ +\x6c\xab\x21\x59\xa2\x41\x32\x40\xc8\xe0\xb8\xb4\x99\x8b\x11\x62\ +\x23\x37\x4c\xfb\xf4\xb0\xc0\x25\x03\x17\xd4\x8b\xb0\x1b\x89\xe2\ +\xe5\xd8\xe0\x53\xb8\xa8\x54\xed\x15\xfa\x08\x10\x3c\xc7\xaa\x42\ +\x70\x5d\x62\xa8\xaa\xae\xc6\x47\xa1\x93\xe8\x8d\x61\x49\xae\x6b\ +\xad\xc0\x80\xd3\x76\x1c\xcf\xa3\x16\xa8\x99\x69\xba\xa2\x1e\x3c\ +\x00\xe2\x75\x1c\x6d\x68\x53\xf5\xb6\x81\x3e\x03\x10\xf5\xc6\xa2\ +\x17\xe6\x14\xb3\x5c\x31\xe4\x5d\xfb\x7d\xf7\x0a\xc1\x19\x69\x50\ +\xa5\x38\x6d\xb5\xa4\x3c\x27\x68\x82\xe5\xd0\xc8\x7c\x35\x59\x0b\ +\x9d\x15\x0c\x73\xe3\xb9\xe0\xa7\x0c\x20\x7c\x65\x96\x6d\xd2\x98\ +\xc0\xac\xc6\x16\xfc\x09\x44\x51\x04\x00\x31\x95\x39\x57\x6d\x82\ +\xb1\x27\x99\xf0\x5a\x37\xbf\x6b\x62\x7d\x2d\x73\x01\x17\x87\xc6\ +\x5e\x03\x92\x83\xb1\x85\xa9\x82\xd5\x51\xf5\x84\xd3\x93\xad\x29\ +\x22\xf7\x1e\x7e\xcb\xa0\x87\x8b\x10\xe5\x5a\xeb\x91\xed\xf3\x61\ +\x5d\xe2\x3b\x9e\x68\x4a\x6b\xa6\x48\x40\x82\xbd\x05\x6c\x4a\x94\ +\xf0\xf6\x94\x17\x11\x22\xf2\x10\x08\x2b\x2e\xe1\x35\x59\xaa\x0c\ +\x0a\xfa\x20\xfd\x63\x2b\x12\x56\xad\x76\x9f\xb2\x71\x68\x31\xbb\ +\x67\x44\x61\xb0\xe0\xd5\xa9\xc1\x42\xa2\x98\x4e\xd6\x9f\x65\x4f\ +\x46\x2b\x93\x65\x42\x96\x34\x01\x17\x87\x51\x54\x6e\x4d\xed\x7c\ +\x9f\x0b\x29\x33\xdd\x3b\x32\x32\x63\x50\x44\x23\x26\xc8\xd8\xef\ +\xe8\x46\x24\x2c\x3d\x4f\x40\xca\xf8\x67\x2c\x38\xb8\x23\xfd\x84\ +\x87\x4b\xca\x1b\x80\x2d\xe8\xd5\xf6\x6f\xaf\x61\xeb\x4c\xc8\x15\ +\x3e\x59\x2f\xfd\xc0\x7d\x39\x94\xe1\x3a\x9a\x19\x40\x7e\xb6\x1b\ +\xb6\x68\x87\xde\x32\x13\x10\x5b\x3a\x63\x96\x17\x24\x6e\x48\x3f\ +\xc7\x52\x51\x20\x01\x55\xc4\x52\xc0\x02\x01\xa6\xd8\x2f\xf1\x2c\ +\xcb\x43\x8a\xb4\x6d\xb6\xf0\x17\x73\x11\xc2\xeb\xec\xc0\x2b\x19\ +\xd2\x0e\x58\xdc\x08\xfe\xa6\x38\xd0\xd8\x20\x75\x77\x38\x38\x97\ +\xad\x66\x06\x38\x17\x7d\x9d\x9a\x8e\x3a\x76\x8b\x68\x14\xb9\x02\ +\xcf\x98\x91\xf4\x58\x79\x01\xd3\x31\x5f\x06\xf2\x65\x80\x7c\x41\ +\xb6\x40\x95\x87\xa3\x74\x4c\x39\x33\x33\x76\xc1\x57\x16\x5b\xab\ +\xdc\x96\xda\x52\x0d\x47\xf5\x6a\xdb\x62\x7a\xd6\x86\x9b\x18\x2b\ +\x94\x06\x31\x6e\xb7\xa7\xca\x97\x99\xce\xbf\xa5\x15\x98\x48\x54\ +\xa0\x4b\x22\xd3\xca\x8a\x92\x4c\xc7\x10\xd0\xad\x34\x20\x06\x0a\ +\xe6\x07\x63\x0b\x53\x76\x98\x87\x61\xd4\x64\x12\x2b\x03\x00\x12\ +\x4c\x4d\x1e\xb9\x60\xe1\x69\x7e\xe3\x26\x30\x8a\x67\xe5\x28\xb8\ +\xb7\xd6\xd4\xb8\xb3\x6d\x50\x94\xc6\x84\x86\xc9\x6b\xb3\x5c\xe5\ +\x2c\x3a\x0c\xaa\xd2\x94\xb0\xaa\x2d\x67\xf1\x59\x24\xdf\x8c\x2b\ +\x4d\xdd\x82\x99\xe2\xb6\xd1\xa2\x81\x08\x35\xd3\x04\xa0\x2a\xc3\ +\xbb\x6b\xc4\x9d\x39\x22\x02\x3c\x21\xae\xe5\xae\x9e\x12\x82\xd7\ +\xdb\x12\x13\x1d\x2a\x60\xca\x1a\x3c\x59\x1d\x89\x44\x74\xdb\x66\ +\x55\x32\xc8\xa3\x23\x22\x39\x55\x07\x1e\x1c\xe9\xcf\x92\x4a\xa8\ +\x5c\x18\x6d\x3d\x70\xad\x0a\x0a\x47\x6a\xa3\xdc\x85\x2d\xae\x69\ +\x35\x54\x5f\x9a\x31\x3d\xb2\xcb\x3c\xcc\x71\x5f\x75\x41\xc8\x1c\ +\xf7\x5c\x86\x46\xfd\xb6\x03\xef\xcb\x3c\x86\x92\xb1\x35\x91\xb4\ +\x65\x83\x3d\xe5\x87\x48\x2a\x47\x55\x8e\x42\x02\xc8\x2c\xd3\x92\ +\x0a\xd0\x02\x96\x67\x31\x26\x20\x7b\xaf\x8d\x95\xb7\x80\x80\x4c\ +\x2d\xe6\xb3\xb2\x4a\xac\xcc\x98\x43\x29\xcf\xc0\x55\xcc\xc9\x68\ +\x60\x45\x0f\xd7\x76\x36\x53\xc4\x16\x7b\xa6\xf5\x94\x02\xa2\xdf\ +\x36\x1d\x53\x13\xbb\x04\xe0\xdd\xf8\x79\x98\x19\xdb\xf8\xb5\x4b\ +\x99\xf7\x15\xe6\xec\x41\xe8\xcb\xdb\x03\x82\xe0\xd4\x2c\x3c\xc4\ +\x1c\x07\x26\xff\xa0\xf2\xa1\x71\xd9\xdc\xe2\xb7\x72\x5f\x18\x03\ +\xb2\x02\x29\x3b\x71\xcc\xce\x1b\x51\x23\x9d\x1d\x9b\x3a\x90\x77\ +\xb3\x81\x7d\xdb\x39\x8c\x87\x27\x8b\x78\xd6\xa0\x91\x6e\xb1\x89\ +\x43\xf6\x95\xc7\x54\x86\x9b\x81\x01\x17\xc9\xa0\x0a\xb5\xa5\x6b\ +\xeb\xc2\x4a\x15\x30\x46\x84\x17\x44\xd9\xa9\xd5\xde\x66\x88\xe6\ +\xcc\xba\xb0\x3d\xce\x04\xb1\x40\xc0\xe0\x8a\xd1\xc9\x81\xdf\x48\ +\x3b\x21\x3e\x87\x4e\xbc\x4a\x33\xb1\xca\x91\x2d\xaf\xa3\xf2\xed\ +\xc8\x24\x63\x15\xc7\x31\x40\x7b\x11\x6f\xe1\x14\xd9\x30\x8f\xc6\ +\xb7\x0d\x12\xaa\x28\xca\xd3\x30\x6a\x35\x8a\x46\x53\x33\x70\xcb\ +\xdc\x53\xa5\x31\xe1\x50\x1a\x13\x0a\x68\x24\xac\x2f\xf3\x98\xd8\ +\xf9\x31\x02\x24\x6e\x05\xd9\x08\x81\xf2\x5b\x50\xba\x22\xc8\xbc\ +\x73\x7b\xb0\x9e\x54\x32\x77\xdb\x53\x29\xf1\x51\xf4\x82\x79\x48\ +\x8d\xaa\x3d\x80\xd7\x62\x7d\xdb\x79\xf7\xd4\x6a\x29\xb8\x0e\x22\ +\x68\xe2\x4d\x18\x09\xa4\xe5\x26\x34\x9b\x61\x12\x50\x38\xae\xad\ +\xae\x40\x05\xab\x24\x31\x2b\xca\x26\x63\x2b\x20\xe4\x97\x38\xf2\ +\xc3\xa0\x64\x8b\x41\xb9\x67\x92\x42\x4c\xa3\xc9\xca\x48\xc9\x4d\ +\x2b\x03\x74\x95\x69\x33\x64\x09\x03\xc5\xcf\x72\xd5\x66\x47\x49\ +\x8a\xd8\xae\x62\xec\xac\xa3\x25\xe3\x53\xb8\x08\x7d\x9a\x2e\x6c\ +\x91\x47\x38\x0c\x0c\x10\xa4\x6b\x25\xfa\x20\x1f\x50\xda\x40\xd4\ +\x75\xcd\xd7\x94\xdb\x44\x6a\xba\x4d\x97\xc8\x14\xc3\x5c\x57\xa5\ +\x00\x72\x5e\x21\x23\xda\x4a\xa2\x94\x8d\xd2\xa1\x39\x7c\xef\x1b\ +\xa7\xa1\x2f\x62\x01\x33\x53\xcb\xa9\x6d\x29\x47\x71\x21\x8d\x1e\ +\x2a\xe5\xb4\x70\x59\xa9\x2d\x63\x91\x2a\x52\x68\xca\xc6\xc8\xf7\ +\x88\x32\x8e\xe0\x8b\x41\xf4\x8c\xd3\x00\xff\xb1\x85\xc5\x42\xb0\ +\x74\x0d\xcf\x2a\x01\x00\x90\x15\xb8\x5b\x9a\x68\x51\x8b\x87\x45\ +\x0c\x43\x0d\xdc\x90\x2a\x49\xfe\x62\x62\xa6\x6c\x80\xd5\x2f\x9c\ +\x84\x44\xe8\xb1\x29\x66\x2f\xe0\x18\x63\x55\xd3\xa0\xb8\x8e\x93\ +\x34\x43\x02\x95\xda\x5e\x66\x1d\xcc\x54\xe9\x9e\x8d\xd7\xdb\x6d\ +\x13\x29\x9e\x37\x8f\x1c\x14\xc2\xc3\xf9\xd7\x77\x48\x95\xbd\x60\ +\x72\x87\x5d\x58\xbc\x51\xc0\x70\x64\xe0\x5b\xf7\x88\x4f\xe6\xe5\ +\x87\xce\x0a\x73\xa4\x18\x4f\x61\x9a\xf1\x9c\x58\xba\x2a\x08\x56\ +\x54\x7a\x19\xf6\xab\x0e\x2f\xa8\xcf\x4b\x48\x54\xba\xc2\xf3\x96\ +\xae\x25\xbe\xa2\xda\x35\x3b\xda\x50\x62\xea\x8e\xb4\x85\xe5\x54\ +\x44\xb6\xda\xa8\x76\xa4\xbc\x40\xaa\x1d\xc3\xae\x0d\x0e\x61\x4a\ +\x6d\x09\x8d\x01\xf1\x1a\xed\x92\x20\x8d\xd6\x64\x97\x7f\xe9\x32\ +\x3d\x05\x0b\x5a\x47\x35\xc1\x39\x45\x36\x4a\xa2\xe2\x6c\xcd\xd6\ +\xa5\xa9\x93\xe3\x18\x6a\xda\xb3\x0e\x2b\xd9\x49\x9e\x59\x45\x59\ +\x29\x34\xa8\xac\xa6\x90\x3c\x4a\xb5\x97\x7e\x46\xf6\x42\xab\x8c\ +\x4c\xca\xc6\x54\x8d\x24\x3d\x98\xb4\x6b\x53\x8e\xf1\x91\xdc\x53\ +\xf2\xb8\xd3\xb1\x49\x65\x6a\x45\x9a\x82\x67\xd1\x4f\x43\x2b\x41\ +\x69\x31\x8f\x99\x1a\x4f\x69\xe8\x28\x08\x7d\x3c\xd5\x53\x75\x1b\ +\xd1\x6c\x6a\x51\xfc\xb0\x23\xd6\x11\xf4\x24\x79\x96\xae\x89\x28\ +\xa2\x87\x99\xd5\x5a\x4d\x43\xad\xed\x55\x0e\x28\x42\x51\x56\x1c\ +\x64\xdb\x24\x85\xf4\x23\x73\xac\x8a\x76\x0a\xae\x12\xed\x0d\x07\ +\xcc\x19\x66\x27\x36\x92\x80\x79\xbc\x48\xa7\x30\x58\xe5\x6d\x7e\ +\xa2\x14\xbe\x8f\xcd\xb9\x18\xe8\x2a\xf9\x47\x0d\x51\x9a\x92\x37\ +\x76\x6a\x15\xe6\x9e\x66\x04\x30\xb7\x15\xc3\x09\x97\x1a\x28\x19\ +\x80\xa8\x7c\x2f\x6d\x5d\xc8\x8a\x89\x35\xc2\xab\x93\x21\xea\xf1\ +\x59\xc0\xc6\x78\x71\xd6\xa9\xd6\xee\x93\x2b\x23\x3f\xd0\x1f\x0e\ +\x9e\xf6\x19\xd2\xb7\xb4\x9f\x0b\xf9\xc6\xeb\x1c\x05\x6d\xf1\x22\ +\x96\xc5\x96\x06\x7d\x3d\x85\xaa\x12\x04\x5b\x58\xad\xa9\x35\xea\ +\x1b\xc0\x71\x11\x22\x5d\xc0\xea\xbd\xe6\x16\x3a\x46\xe5\xd1\x50\ +\x69\x4e\x53\x78\x83\xe8\x3b\x35\x36\x9f\xb6\x4d\x61\x75\x59\x30\ +\xa2\x9a\x0d\x93\x88\x5b\x41\x57\x89\xea\xa8\x83\xcc\x39\x11\x0c\ +\xa8\xb1\xe9\xd4\xe8\x89\x6f\x2a\xa2\xe8\x89\x35\xdb\x16\x33\x29\ +\xda\xa1\x53\xad\x55\x10\x51\x82\xdf\x10\x97\x25\xfc\x23\xed\x96\ +\x2c\x56\x74\x14\x61\x75\xbc\x2e\x8a\x1a\xeb\xd4\x82\xd5\xc6\x90\ +\x9f\x0c\xdc\x0e\x29\xd1\xd6\x56\xcf\xf1\x8f\xcb\x04\x8c\x53\x99\ +\xdd\x6e\x25\xad\x45\xe0\x48\x2c\xe0\x30\x45\x62\xeb\x76\x41\xc9\ +\x5d\x98\x3e\x52\x4a\xa0\x36\x4b\x1a\x58\xa8\x46\xb8\xa1\x99\xb4\ +\xd5\x02\x0e\x31\x09\x6f\x22\x0b\x58\xb1\x64\x2d\x8d\xa2\xc8\xab\ +\x0d\x90\xb1\x50\x74\xd0\x71\x4c\xd6\xa9\x46\x3f\xc1\x13\xe9\x3b\ +\x5d\xb4\x70\xf7\x91\xa8\xb2\x10\xa3\xc7\x8b\x0a\xf3\xc1\x33\xe6\ +\x96\xe9\x91\xbd\x21\x1e\x2c\x25\x73\x54\x58\x61\x21\x26\x4d\x9a\ +\xae\x1f\xcd\x3a\x69\x61\xe9\xe0\xa3\x24\xe6\x45\xf6\x78\x54\x96\ +\xda\xb1\x05\xaf\x65\x51\x81\x44\xc1\xf6\x67\x51\x65\x1d\x1b\x13\ +\x02\x78\x10\xd7\x93\x7c\xd8\x6e\xfc\x55\x26\x4a\x5d\x9b\x07\x6e\ +\xc0\x57\xd7\xd4\xd6\x6e\x7a\x41\x3b\x55\xa5\x1c\xd4\x54\x3c\x9e\ +\x54\xd3\xc0\xed\xe4\x62\x7a\x3b\xe9\x3c\x1e\xdf\x36\x47\x07\x53\ +\xe3\x9f\xdb\x0b\x8c\x52\x64\x57\x74\x56\xd7\x8e\x83\x34\xbc\x34\ +\x25\xc4\x70\x80\x5e\xf3\x50\xce\xa2\x67\x47\x17\x04\x79\xdb\x06\ +\x61\x96\xf8\x49\x3c\x8b\xed\xb8\xff\x5b\x56\xb6\xc3\xde\x6e\xf9\ +\xe5\x53\xf9\x43\x3c\x58\x18\xe7\x15\xae\x61\x74\x99\xb1\x66\xdc\ +\x4e\x6e\x17\x8d\x93\x39\x18\x93\x73\x29\x98\x8c\x79\x69\x6a\xe4\ +\x51\x0e\x21\x88\x88\xa4\xe9\x8a\x31\x27\xb2\xb4\x77\xad\x94\x42\ +\xf3\xf8\xa0\x96\x1e\x6d\xff\x0c\xe3\xe6\x51\xc8\x7e\xc2\x99\xfc\ +\xfe\x62\xe9\x04\x41\x6a\xcc\x08\x61\x72\xb9\x44\x7a\x4a\xd4\xa1\ +\x48\x48\x2c\x8b\x56\x8c\xbf\xd1\x6b\x9e\x66\x44\xea\xb6\x74\x61\ +\xe9\x03\x3a\x3e\x67\xa1\x16\x4f\x16\xc7\x3f\xb3\x16\x5b\xe5\x14\ +\xb1\x9d\x88\xb3\xda\xc9\xaa\xc6\xd3\x8e\x89\x6f\xc3\xce\x47\x56\ +\xf1\xe3\xc1\xea\x2d\x96\xa2\xe7\x85\x7c\x36\xaa\xbf\xab\x06\x11\ +\x4d\x2a\x67\x6a\x63\x47\x35\xdd\xe6\x91\x1d\x8d\x1a\x7e\x3b\x53\ +\xf1\xd2\x19\xa5\x67\xa9\x11\x3c\x75\xb6\xd4\x24\xb0\x48\xf7\xf2\ +\x52\x8f\x33\x57\x22\xf5\x92\xc8\x63\xa7\x43\x56\x31\x74\x30\x00\ +\xb1\x82\xbe\xd1\x28\x56\x11\xb3\xb8\xa4\x35\x78\x60\x49\x5d\x96\ +\x43\x92\x7c\x0f\x6a\xc0\x2c\x2e\xc6\x26\x36\x54\x9e\x02\xe7\xf1\ +\xd0\x36\x28\xa5\x8b\x4d\xbd\x0f\x14\xed\x5a\x2b\xf0\x0c\xab\x2a\ +\x3b\x2b\x0a\x1c\x78\x8e\x6b\xb2\xb7\x67\x0d\xb6\x32\xbd\xa2\xeb\ +\xa2\x1f\x27\x19\xa7\x13\xdb\xa0\x74\x42\xf8\x9b\xc6\x73\x35\x7d\ +\xfd\xb2\x6b\xd3\x47\x2d\x01\xc1\x82\x86\xc3\xde\xa7\xa3\xb8\xaa\ +\x23\x57\xd2\x19\x55\x38\x18\x1d\xc9\x15\x95\x31\x37\xc6\x43\x74\ +\xa3\xd5\x96\xa1\xd1\x48\xa3\xda\x27\x9e\xa5\xf0\xad\x63\xd3\x13\ +\xbf\xdb\xe0\x99\xb6\x34\x08\xd3\x90\x6a\x5b\x46\xd2\x63\xb2\x7e\ +\x6f\xbb\x26\xfa\xb7\x82\x84\xe9\xe8\x82\x03\x71\x3c\xb7\x2f\x9a\ +\xf3\xd4\x64\x81\x0f\x11\x8e\xc3\x53\x45\x08\xbf\x96\xe0\x81\x0e\ +\xe3\x86\xce\xb5\x75\x44\xc1\xc2\x44\x9d\x1a\x70\xb3\x0a\x4f\x9e\ +\x7d\x6b\xa8\x58\xdb\x78\x55\x7f\x33\xa9\x6a\xa5\x18\xb4\x04\x7e\ +\x37\xb0\x9a\xae\x89\xca\xab\x30\x0e\x98\xd9\x28\x1e\x66\xf1\xd5\ +\x49\x69\x6c\x2f\xfc\x3b\xaa\x99\x3f\xd0\x1d\x0e\x12\x32\x84\xd6\ +\x47\x25\x64\x65\xc9\xc7\x16\x74\x6c\xc9\xc6\xee\x24\x63\x36\x14\ +\x04\xa3\xdb\x98\xbf\x47\xc5\xf2\xc8\xc4\x16\x44\x6c\xce\xc3\x7e\ +\xb7\x2c\x2c\x1e\xd2\x4a\x6d\xe6\x0e\xee\x1f\x2f\xc4\xfa\x80\x54\ +\xba\x50\x4a\xe7\x42\x69\x9d\xe9\xa4\x71\x2e\x93\xba\x99\x4a\x1a\ +\x26\x91\xd4\x3d\xa4\x91\xce\x25\xd2\xbc\x50\x48\xf3\xfd\x02\x69\ +\x7d\x40\x1f\x5d\xc8\xa3\x71\xae\x8e\xa6\xad\x38\xba\xd0\x46\x17\ +\xd2\xa8\x9d\x2b\xa3\x61\x21\x8c\x86\x3b\x75\x51\xcb\x2a\xd1\x72\ +\x67\xfc\x5c\xe8\xa2\x4d\x16\x75\x73\x55\x34\xcd\x55\xd1\x34\x13\ +\x45\xc3\xa8\x89\x2e\x25\xd1\x99\x22\xea\x67\x82\x68\x5a\x08\xa2\ +\x69\xa6\x87\xa6\xb9\x1a\x9a\xee\x15\x43\xd3\xa8\x85\x86\x85\x14\ +\x1a\x9e\x5a\x09\x4d\x07\x59\x70\x25\xc9\xa9\xfb\x1a\x89\x6d\x1a\ +\x89\x5d\x48\x24\x7b\x0a\xc9\x52\x20\x99\xeb\x23\x65\xa9\x8e\xa4\ +\x3d\x71\x64\xd2\x46\x16\xd2\xc8\x56\x19\xc1\xca\x6c\x25\x11\xbf\ +\x54\x44\xc2\x9e\x20\x62\xf7\xf4\x10\xb7\x95\x43\x96\x6a\xc8\x03\ +\x62\x88\x5d\x48\x21\xf6\x4e\x21\x24\x2e\x74\x90\xb9\x0c\x92\xe7\ +\x2a\x88\x9d\x8b\x20\x75\xae\x81\xb8\x51\x02\x89\x0b\x05\x64\x2e\ +\x80\xf8\xb9\xfe\x91\x17\xf2\x47\xbe\xad\x7e\xec\x89\x1f\x0b\xed\ +\x63\x2e\x7d\xcc\x95\x0f\x37\x13\x3e\xdc\x5c\xf6\xb8\x4b\xf4\xf0\ +\xf7\x6a\x1e\x7e\x2e\x79\xb8\xa5\xe2\x11\xf7\x05\x8f\x47\xb6\xed\ +\x83\x35\x23\x86\xe2\xae\x7d\xaa\xf0\xea\x3e\x2e\xbc\x4e\x27\xd1\ +\xff\xc0\xe1\x35\x1d\xca\x17\x1c\x3f\x83\x43\x5a\x90\x2c\x63\x69\ +\xa1\xc1\x07\x31\x5b\xc7\xf3\x91\xc6\x57\x6d\xd9\x1e\xd4\xaa\xd4\ +\x30\xee\x9a\xaa\x30\x1e\x93\x8b\xd8\x14\x4b\x7e\xe3\x31\x36\x3d\ +\x11\xaf\xda\x16\xf5\x32\x3f\x06\x39\x6b\x99\x1f\x2b\xf7\x54\x83\ +\x5c\x9b\x54\xa1\x0e\x92\x68\x18\xcc\x45\xa7\x50\xd9\xb7\x8a\xb0\ +\xd9\xd6\xa9\xf8\x41\x5b\x37\xdd\xd9\xea\x21\x58\xcd\x17\x55\x2d\ +\xdd\x0e\x42\x44\x6e\x59\xfb\xea\x5b\x41\xa8\x67\x28\xf2\xad\x1a\ +\x2c\xb1\x84\x35\xa8\xda\x75\x3a\xea\xce\x43\x3b\xa3\x57\x61\x9c\ +\x95\xe2\x33\xb5\x54\x88\xc3\xa4\x8f\xe4\x96\xe1\x5e\x16\x60\xc9\ +\xac\x59\xfe\xf3\x7d\x37\xae\xda\x23\xef\xe1\xc1\x0a\x8c\xc4\x6f\ +\x5c\xfc\xad\xe3\xe4\xfb\x29\x92\x9b\x53\xa4\xfc\xe9\x14\xc9\xfe\ +\xea\x14\xa9\x7c\x12\x45\xca\x77\x52\xa4\xb2\xa0\x48\x1f\xc7\x90\ +\x1e\xc6\x8e\x19\x43\x6a\xd8\xc1\x6f\x2a\xee\x3b\x37\x3e\xc4\x90\ +\xd2\xfc\xcc\xf8\xde\x23\xe3\x39\x43\x6a\x9f\x15\x6c\x0f\x8c\xef\ +\x3f\x2f\x9e\x8e\x8b\x97\xa7\xc5\x4f\x4e\x91\x0e\x71\x7c\x00\x31\ +\xcb\xe0\xff\xbf\x73\x7c\xf7\xa4\x1c\xff\x41\x8d\xec\x0e\x0b\xfe\ +\x20\x03\xf6\xff\x88\x14\x3f\x1f\xac\xd9\xae\x55\xfa\xff\x1d\xa6\ +\xa0\x85\xd6\xc7\xd0\xab\x71\xa9\x19\x9f\xec\x58\xd1\x99\x5b\xed\ +\xa7\x8a\x48\xb8\xc6\xed\xdb\x41\x55\x7b\x6f\xdb\xfa\xf8\xdd\x48\ +\xb1\x8b\x52\xec\x42\xe4\x47\x25\xad\xa9\x6f\x2b\x55\x4c\x96\xaa\ +\xbe\x96\xd1\x1e\x07\x15\x07\xc0\x75\x9a\x6a\x65\x9a\xb0\x44\xae\ +\x2c\x76\xce\x6a\xc9\x1c\x9a\x78\xa4\x73\xf3\xb1\xd9\x3e\x6f\xa4\ +\xc2\xa4\x2f\xa2\x18\x1c\x1b\xd3\x99\xea\x01\x34\x32\x95\x3a\xb0\ +\x7e\x82\x5f\x28\x46\x1e\x08\xd9\xd6\x80\x05\x22\xd9\x08\xcd\x69\ +\xab\x8d\x6d\x2c\xb1\x3e\xd9\x36\x1d\x62\xab\x9e\xe7\x35\x64\x16\ +\x9f\xd9\xea\x6f\x93\xad\xe6\x43\x6c\xd5\xf3\xdb\x69\x96\xc2\x1d\ +\x3c\x51\x2a\xbf\xe6\x89\x92\x9b\x4e\x94\x6c\xdd\x1d\x29\x95\xdd\ +\x91\x92\x6d\x67\x4a\x6e\x76\xa6\xe4\x9e\xea\x4c\xc9\x2d\xcf\x94\ +\xec\xec\x48\xe9\x7e\x8b\x7a\xaa\xfd\x3c\xc4\x5c\x3d\xbf\x0c\xe6\ +\x77\x24\x51\xdf\x5d\xb6\xaa\xd4\x6a\x5b\xe9\x67\x6a\xe0\x18\x55\ +\x6a\x6a\x24\xf0\x7b\x3b\xd6\xc9\xb7\x26\x91\x6a\x2a\xd0\xa8\xfc\ +\x02\x55\xf5\xa2\x4c\xe6\xdb\xd9\x86\x0d\xa1\xd5\x09\x59\x15\x11\ +\xe5\x56\xc7\xad\xef\x45\x54\x42\xbf\x6d\x01\x4c\xf1\xfe\xf1\xf3\ +\x04\x7e\x41\x1a\x07\x85\xe7\x49\x6e\x0f\xed\x33\xcc\xf6\x49\x41\ +\x3b\xb0\x65\x80\xe2\xd9\xb0\x3e\x0f\xe4\xe7\xeb\x76\x6a\xb4\xb3\ +\x14\xa3\x6f\x14\x6c\xfb\x4e\x2e\x75\x0d\x3f\x54\x1b\xeb\x47\x87\ +\x1e\xbf\x95\x26\x02\x8d\xc9\x0e\x03\x24\x10\xb6\xea\x33\x38\x7d\ +\xcf\x52\xa7\x06\xd5\xf4\x30\x1e\x3c\x28\x41\x71\x2a\x75\xaa\xfa\ +\x8b\x60\x5a\x15\x33\x23\x0b\xd0\x6d\xd5\xbe\x2c\x5d\xd9\xf6\xb7\ +\x9e\x28\xbc\xb8\x6d\x93\x95\xa7\x35\x8d\xe7\x0e\x14\x12\xbc\xee\ +\x61\xdd\x5b\x6c\x6e\x2f\x8b\xe2\x39\x75\x65\xc4\xb7\x92\x9d\x74\ +\x40\xc0\x83\x91\x76\xd4\x50\x0c\x8c\x19\x58\x9a\xf3\xae\xd9\x56\ +\x59\xb3\xd6\xc7\xa8\x3e\x65\xfe\xa5\x4c\xdc\x20\xfe\xc4\x4f\xec\ +\xbe\xef\xc6\x7d\x7e\x64\xab\x3b\x44\x37\x7d\x60\xd5\xdf\x9d\x71\ +\x60\x59\xb0\xee\xdb\xfe\xe8\x9c\xb6\x7d\x19\x3c\x51\xc9\x95\x3e\ +\xd1\x67\xa1\xf9\xf8\xb5\xcf\xb6\x2d\xeb\xb8\xa7\x58\x7d\x5e\xab\ +\x1e\x67\xa5\xea\x65\x5e\xa8\x5e\xee\x2b\x53\x5f\x54\xa9\x87\xfd\ +\x22\xf5\x3b\x6b\xd4\xcb\x87\x94\xa8\x2f\x0a\xd4\xcb\x7d\xf5\xe9\ +\x7e\x5e\x9e\xbe\xa8\x4e\x9f\x15\xa7\xfb\xb1\x34\xbd\x2c\x2a\xd3\ +\xcb\xed\xc2\x74\x3f\xab\x4b\x2f\x7b\x35\xe9\xcb\x92\xf4\x65\x45\ +\xfa\xac\x20\x7d\x51\x8f\x5e\x67\xe5\xe8\xd3\x27\x40\xfb\xd5\xe8\ +\xcb\x62\xf4\xb2\xac\x45\x5f\x94\xa2\x2f\x2b\xd1\xe7\x85\xe8\x6e\ +\xaa\x43\x9f\x95\xa1\xcf\xaa\xd0\xe3\xac\x08\x7d\x51\x83\xfe\xd4\ +\x25\xe8\xe5\x10\x65\xf5\x81\x7f\xbd\x87\xdf\xd3\x7d\xf2\xc7\xe8\ +\x3e\x69\xd2\x7d\xec\x52\xf7\xb1\x8f\xa0\xfb\xe4\xdb\xba\x4f\xfe\ +\x7b\x75\x9f\x8f\x13\x7d\xdc\xd3\x8a\x3e\xe5\x20\x99\xe5\x5f\xc1\ +\x94\xca\x3d\x54\x28\x3e\x16\x15\xf2\x9f\xa9\xd0\xa7\xed\xe7\x41\ +\x6a\x9b\x9c\x12\x8e\xdf\x51\xe5\x86\x9b\x57\x6e\x84\x79\xe5\x86\ +\x5f\x54\x6e\xe4\x45\xe5\x46\xfe\xc0\xca\x8d\xba\xac\xdc\x18\xcb\ +\xea\x77\xa5\x1b\x71\xaf\x74\x23\xff\x2e\x4a\x37\xe2\xe7\xd2\x8d\ +\xd1\x21\x0e\xe6\x06\xfc\x5b\x43\x67\x7f\x11\xc0\x6f\x32\x5b\xbf\ +\x47\x5d\xfb\x87\xc8\xd6\xcb\xc1\xcf\xdc\xac\x6d\x38\xf2\x6b\x15\ +\x0c\x86\x45\xc1\xa0\x9d\x57\x0c\x96\x59\xc5\x60\xf9\x55\x2b\x06\ +\xd3\xbc\x62\xd0\xcf\x2a\x06\xe3\xae\x62\xd0\xcf\x2a\x06\xf3\xae\ +\x62\x30\xfc\x06\x2a\x06\xeb\xc1\x2f\xb5\x6c\xe1\x5f\xa6\xb1\x1f\ +\x78\xd2\x87\x04\x1e\xff\x39\xf0\x7c\x0e\x3c\xbf\xb3\xc0\x53\x0f\ +\x31\xeb\xc0\xbf\x2a\x9a\x1f\x62\x7d\x7a\x6a\x94\x3f\x3e\x35\xaa\ +\xfb\xa9\x51\xdd\x4f\x8d\xca\x63\x1f\x89\x6f\x73\xed\x5b\x47\xe2\ +\x79\x9e\x1d\x95\x96\x1d\xd9\xff\xc3\xec\xa8\x1e\x62\xd3\xe1\x77\ +\x57\x06\xed\x3e\xb0\x0c\x3a\x2e\x30\x2d\xde\x83\x69\xee\xe1\x32\ +\xe8\x4f\xc0\xb4\x78\x0b\xd3\xdc\x84\x69\x79\x81\x69\xe1\x01\x4c\ +\x4b\x4b\x4c\x4b\x77\x62\x9a\x7f\x00\xd3\xd2\x02\xd3\xf2\x83\x98\ +\x16\x47\x4c\xb3\x73\x50\xcb\x4f\x0d\x6a\xf9\x69\x40\xed\x10\x9b\ +\x0e\x91\x47\xec\x1f\xa7\xb4\xa7\xa5\xd2\x9e\x27\xa5\xdd\x3f\xa4\ +\xb4\x87\xa5\xd2\x1e\x17\x4a\x7b\xfc\x18\xa5\x3d\xce\x94\xf6\x58\ +\x0f\x4a\xed\xbf\xa6\xd2\x1e\xef\x52\xda\xdd\xdf\x2b\xb4\xa7\xa5\ +\xce\xee\x3f\x59\x67\x0f\xbf\x09\x9d\xbd\x1e\xe4\xff\xfa\x0f\x8a\ +\xa4\xcf\xcc\xf2\x37\xc6\x2c\x3f\x05\x85\xcb\x67\x66\x79\xd0\x21\ +\xac\x39\x98\x6b\xf1\xbf\x34\xc1\xbf\x0d\xf8\x76\x56\xba\xf8\xc4\ +\xdf\x3f\x55\x0e\x0f\x86\xb8\x1d\xf2\x57\xcf\x5e\xea\xbf\xea\xc4\ +\x7f\x7d\xc5\xff\x58\xd8\xd7\x5f\xfc\x2f\xcc\x34\xdf\xb0\ +\x00\x00\x02\xbc\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x5e\x49\x44\x41\x54\x78\xda\x8c\ +\x93\x4d\x68\x13\x51\x10\xc7\xdf\x7e\x9a\x64\x93\x6c\xb6\xb2\x5a\ +\xab\x4d\xfa\x15\xb1\x21\x6d\xb5\x55\xe3\xa1\xa4\x31\x15\x04\x8b\ +\xa9\x14\x14\x11\x02\x05\x0b\xea\xb5\xad\x87\x9e\xed\x55\x28\x08\ +\xbd\x69\xc1\x8b\x28\xf5\x10\x10\xe9\x41\xd0\x83\x1f\x84\x42\x21\ +\x50\x1b\x4d\x29\xbd\xa4\x11\x83\x26\xa9\x31\xc9\x6e\x36\xbb\xeb\ +\xbc\x90\x62\xb3\x6e\xc1\x81\x1f\xef\x83\xff\xcc\x9b\x99\xf7\x1e\ +\x11\x89\x44\x90\x99\x51\x14\x85\x11\x08\x82\x18\x80\x65\x1b\xc0\ +\x01\x25\x20\xa3\xeb\x7a\x42\x55\xd5\x3c\x80\x68\x74\xb0\x75\xda\ +\xec\xfc\xc5\xf3\xa3\x91\xde\x33\x83\xe7\x7a\xda\x44\x67\x6b\x55\ +\x96\x73\xf1\x78\xfc\xeb\x9b\x57\x2f\xbb\x8a\xbb\xb9\xb7\xa0\xd9\ +\xa6\xbc\x5e\x2f\x82\x88\x4d\x80\x09\x9c\xd3\x35\x36\x71\x7b\x36\ +\xd8\x7d\xf2\x94\xdf\x7d\xc4\x29\xd2\x24\x41\xb3\x0c\xe3\xf0\x74\ +\x74\x78\x5a\xbb\xfa\x1c\xc9\xc4\x2a\x29\x4b\xe5\x6d\x12\xa7\x61\ +\xa4\x56\xab\x0d\x06\xc2\x11\x9f\x43\x38\xec\x11\x38\x96\x25\x09\ +\x44\xec\xa5\x85\xe7\xee\x13\xc7\x7a\x86\x2f\x5f\xeb\xc3\x3a\xba\ +\x5a\xad\x9a\xa5\xdf\xee\xf5\x0f\xb9\xf1\x24\x93\xaf\x48\x18\xa3\ +\xc0\x37\x70\xb6\x73\x79\xe9\x51\x3b\xad\x28\x8a\x59\x00\xde\x62\ +\xb5\xb6\xa8\x5a\xbd\x1c\xd4\x7b\xdc\xe9\x34\x0a\xd2\xb9\x0a\x03\ +\xbe\xfc\x41\x19\x94\x35\x45\x2a\x22\xea\x10\x6f\xe6\x5c\x2f\x45\ +\xad\x16\xc1\xb7\x4c\xca\xb2\x8c\x4c\x48\x27\xd7\x3e\x65\x68\x8a\ +\xa4\x94\x9a\xae\x1a\x9d\x71\x62\xeb\x6b\x1f\x77\xb0\x8e\x14\x04\ +\x01\xf1\x3c\x8f\x1c\x0e\x07\xb2\xdb\xed\x88\xe3\x38\xc4\xb2\xec\ +\x66\xec\xf9\x52\x9a\xa9\xfd\x56\xaa\xaa\xd6\x7c\x32\x49\x50\xbb\ +\x3f\xbf\x67\x1f\x2f\x2e\x24\x4b\xa5\xd2\x2a\x69\x8c\x0e\xd7\xe8\ +\x61\x18\x66\xfc\xde\x9d\xbb\xf3\x53\x37\xaf\xc6\x57\x62\x2f\x52\ +\xba\x22\x95\xad\x2c\x65\x21\x54\xb9\xb2\x12\x5b\xfe\x72\x7d\xfc\ +\xca\x87\x8d\xcf\xeb\xaf\x25\x49\xfa\x41\x84\xc3\x61\xa4\x69\xda\ +\x1e\x3e\x9b\x8d\x9b\x98\x9e\xbe\xff\x20\x1a\xbd\x35\x9f\xcf\xe7\ +\x9e\x41\x4c\x3f\xd0\x0d\xe0\x5e\xfc\x02\xb6\x80\x77\x36\x9b\x2d\ +\xeb\x72\xb9\xfe\xbe\x44\x38\xf9\x82\x28\x1e\x8d\xcc\xcc\xcc\xcd\ +\x45\xa3\x37\x1e\x82\xf3\x53\xd8\xde\x04\x36\xcc\x9a\x08\x6f\x00\ +\x65\xb3\x59\x84\x42\xa1\x10\x0a\x06\x83\x63\x93\x93\x53\x0b\x89\ +\xc4\x96\xde\xdf\x7f\x7a\x91\xa6\xe9\x21\xfc\x17\xe0\x1f\x40\xcd\ +\xe4\x3f\x34\x99\xdb\xed\x46\x81\x40\x60\x36\x95\xca\xea\x23\x23\ +\xa3\x4f\xc0\xf9\x12\x76\xfc\x5f\xc3\x4a\x8b\x28\x8a\xc3\x50\x42\ +\xa8\x50\x28\x7c\x83\xd4\xde\xc3\x1e\xbe\xba\x5a\x03\x65\xdf\xa8\ +\xec\x5b\x63\x8d\x8a\x03\xe0\x3e\xb4\x34\x46\xbd\x81\x66\x82\x6a\ +\x18\xeb\xba\x3f\x02\x0c\x00\xdb\x67\x23\xc5\x30\xda\x47\x97\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x02\x23\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x01\xc5\x49\x44\x41\x54\x78\xda\xa4\ +\x93\xbb\x4a\x03\x51\x10\x86\xff\xb3\x7b\xf6\x22\xab\x92\x28\x16\ +\x22\x44\x44\x04\x57\x2c\xb5\xb0\xc8\x0b\x28\x56\x42\x1e\x40\x10\ +\xa2\x79\x02\x49\x61\x63\x63\x67\xa5\x0b\xda\xea\x1b\x58\x89\x95\ +\x85\x85\xda\x59\xd8\x28\x58\x89\x88\xb0\xb9\x98\xdd\x64\x77\xb3\ +\xce\x9c\xb0\x11\xb1\x8a\x1e\x18\xe6\x5c\xe6\xff\x66\xce\x4d\xa4\ +\x69\x8a\xff\x34\x59\x2a\x95\xd6\xc9\x4f\xfe\x51\xff\x2a\x93\x24\ +\x99\xf2\x3c\xef\x38\x8a\xa2\x81\x94\x86\x61\xa0\x5c\x2e\x6f\xcb\ +\x6e\xb7\x2b\x3a\x9d\x0e\x2a\x95\x0a\xa8\xaf\x16\xd9\xf3\xd6\xd8\ +\xb2\x3e\xc7\x84\x61\x04\x5d\xd7\x91\xcf\xe7\xe0\x79\x47\xbc\x26\ +\x64\x1c\xc7\x82\xaa\x50\x81\xae\xeb\x2a\x4f\x73\x08\x97\x66\x91\ +\x5e\x3f\x80\x2b\xab\xd5\x1a\xa8\xd7\x5b\xb0\x6d\x09\x29\x4d\xb4\ +\x5a\x75\xb0\x86\xb5\x0c\xd0\x78\xc0\x59\x38\x98\xc5\x6c\xdd\xa9\ +\x71\xb4\xc3\x90\xc4\x4d\x04\x41\x87\x4a\xb6\xc9\x4c\x05\x88\xa2\ +\x30\x03\x68\x0a\xa0\x04\x94\x99\xcb\x64\x08\x9b\x51\x98\xa0\xac\ +\x9f\x68\xb7\x13\x98\xe6\x50\x5f\x2c\xa5\x41\x73\x66\x96\x48\xd3\ +\x32\x00\x13\x43\xca\x98\xac\xcc\x2b\xcf\x8d\xcf\x75\x78\x61\x06\ +\x93\x87\x5b\x18\x5d\x5d\x86\x65\xd9\x04\xb3\x15\xe4\x17\x40\x14\ +\x17\x91\x94\x8a\xb4\xbf\x16\x46\xf6\x37\x15\x60\xd8\x9d\x41\x7e\ +\x67\x15\xfe\xee\x19\x44\x61\x0c\xb3\x07\x9b\xd8\x38\xde\x23\x80\ +\xec\x03\x24\x95\xab\x00\xc1\xe5\x1d\x6a\xf7\xcf\xaa\x92\xda\xc5\ +\x0d\x1c\x77\x8e\xc4\x6b\x68\x9e\x5c\xc2\x71\x72\x48\xcf\x6f\xf1\ +\x94\xdc\xe0\x59\x00\x42\x08\x05\x60\xad\x02\xb0\xa8\x57\x72\xef\ +\x10\x2d\x6b\x04\xd6\x5b\x1b\x9f\xa7\x57\x18\x7a\x8f\xa1\xd1\xde\ +\x59\x94\xb5\x20\x68\xaa\x44\x3f\x00\x8e\xe3\xa0\xd1\x68\x64\xcf\ +\x84\x6e\xe5\x03\xfa\xa3\x8f\x50\xd3\x94\xb8\x07\xe8\x41\x2c\x4b\ +\xff\x06\xf8\xbe\x6f\x69\x14\x54\xad\x56\x07\x7a\x89\xac\x61\xad\ +\xa0\xcc\x65\x1a\x4c\xff\xe5\x23\xd0\xd5\xbf\x70\x4d\x26\x59\x8e\ +\x3f\xd6\x80\xfa\x98\xcc\x17\xff\xfd\xce\x5f\x02\x0c\x00\x9d\xc7\ +\x2e\x5f\xac\xac\xac\x4a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x1d\x29\ +\x00\ +\x00\x6e\x47\x78\x9c\xed\x5d\x6b\x6f\x1c\x47\x76\xfd\xee\x5f\xd1\ +\xe1\x7e\xb1\x81\x9e\x56\xbd\x1f\x5a\xcb\x0b\xc4\x9b\x85\x03\xd8\ +\x40\x80\x6c\x84\x7c\x33\x68\x72\x2c\x32\xa6\x48\x81\xa4\x25\x59\ +\xbf\x3e\xe7\x9c\xea\x9e\xe9\x1e\x3e\x46\x92\x4d\xc6\x8e\xe5\x45\ +\x62\x55\x4d\x3f\xea\x71\xef\xb9\xe7\x9e\xba\x2d\x7f\xf9\xb7\xb7\ +\x2f\xcf\xba\xd7\xeb\xcb\xab\xd3\x8b\xf3\x67\x07\x76\x30\x07\xdd\ +\xfa\xfc\xe8\xe2\xf8\xf4\xfc\xc5\xb3\x83\xff\xfa\xe7\x3f\x56\xe5\ +\xa0\xbb\xba\x3e\x3c\x3f\x3e\x3c\xbb\x38\x5f\x3f\x3b\x38\xbf\x38\ +\xf8\xdb\x57\x9f\x7d\xf9\x2f\xab\x55\xf7\xf5\xe5\xfa\xf0\x7a\x7d\ +\xdc\xbd\x39\xbd\x3e\xe9\xfe\xfd\xfc\xa7\xab\xa3\xc3\x57\xeb\xee\ +\xf3\x93\xeb\xeb\x57\x4f\x9f\x3c\x79\xf3\xe6\xcd\x70\x3a\x76\x0e\ +\x17\x97\x2f\x9e\x7c\xd1\xad\x56\x5f\x7d\xf6\xd9\x97\x57\xaf\x5f\ +\x7c\xd6\x75\xf3\x77\xda\x03\x76\x9c\x1e\x3f\x3b\xc0\x6f\x4e\x8d\ +\x37\xa7\xc7\xd7\x27\xcf\x0e\x92\x0f\x43\xc2\x3f\x55\x9d\x27\xeb\ +\xd3\x17\x27\xd7\xcf\x0e\x9c\xf5\x83\xe7\x3f\xea\x7d\x7d\xba\x7e\ +\xf3\xaf\x17\x6f\x9f\x1d\x98\xce\x74\x9b\x1b\xba\xe5\x45\x57\x98\ +\xd1\x2b\xfc\xdf\xd3\xe3\x8b\xa3\xf3\xc3\x97\x98\xc8\x7f\xfe\xdb\ +\xd7\x17\xff\xf1\xfd\xd5\xcf\x3f\x5c\x9f\x5e\x9f\xad\x07\xbc\xb9\ +\x8d\x62\x1c\xf2\xd3\xd9\xf8\xdc\xe0\xba\xcf\x7f\x30\x87\x25\x94\ +\x14\x83\xed\x3b\x67\x9c\x5b\x59\xb7\x32\xf6\x0b\xdd\x84\x35\x3c\ +\xbf\x7a\x3a\xdd\xfa\xec\xe0\xae\x25\xe0\x9b\xaf\x5e\x1d\x1e\xad\ +\xaf\x9e\x4c\xfd\xb3\xfb\xa7\x31\x6e\xee\x9f\x3a\x86\xab\x8b\x9f\ +\x2f\x8f\xd6\x3f\xe2\x11\xeb\xe1\x7c\x7d\xfd\xe4\xef\xff\xfc\xfb\ +\xe6\xc7\x95\x19\x8e\xaf\x8f\xb7\x8f\x59\xbc\xfd\x8d\xd7\x7b\x9d\ +\x31\xe6\xc9\x34\xc3\xf1\x65\xaf\x5f\xdc\x7b\xe5\x57\xb8\xf4\xcb\ +\xe3\xf5\x8f\x57\xbc\xa5\x6d\x0e\x5b\xe9\xa0\x7b\xa2\x9f\x36\x0b\ +\xca\x39\x1d\x73\x0f\xb6\x17\x6e\xba\xc2\x41\xeb\x7c\x75\xf8\x62\ +\x7d\x74\x71\x76\x71\xf9\xec\xe0\x2f\xd1\xf0\x7f\xe3\x0f\x3f\x5c\ +\x5c\x1e\xaf\x2f\xa7\x9f\xd6\xfa\x67\xf1\xd3\x05\x56\xeb\xf4\xfa\ +\x17\xec\xc2\xd8\xbd\xd9\x9f\xab\x93\x8b\x37\x7c\xee\xd5\xc9\xe1\ +\xf1\xc5\x1b\xec\xfe\xee\x05\xfc\x71\x73\xfb\xad\xbf\x1e\x9d\xac\ +\x8f\x7e\x5a\x5f\xfe\x70\x71\x78\x79\x7c\xcb\x25\xc7\xeb\xab\x9f\ +\x6e\x1d\x35\x5f\xfd\xe2\x92\x33\xfd\xf1\xf0\xec\x6a\xbd\x7b\xdf\ +\xbb\x8b\x8b\x97\x32\x6b\x93\x5c\xdc\xfd\xf1\x08\x86\xea\x6d\x1e\ +\x5c\x29\xd6\xdf\xf8\x91\x13\x35\x49\x16\x9c\x76\x7f\x7c\x73\x7a\ +\x8e\x89\xae\x46\xcf\xb0\xd5\xdd\x18\xf0\x78\xc5\xe4\x26\xd6\xe6\ +\x1b\xab\x36\x5e\xf2\xf6\xde\x07\xdc\xb6\x5e\xe3\x4f\x2f\x0f\xdf\ +\x9e\xbe\x3c\x7d\xb7\x3e\xbe\x65\x47\x8e\x7e\xbe\xbc\x5c\x9f\x5f\ +\xaf\xce\x0e\x7f\x59\x63\xcd\x5e\x58\x33\x19\xcb\x8b\xad\x6d\xbc\ +\x28\xbb\xb7\xbd\xb8\xbc\xf8\xf9\xd5\xcb\x8b\x63\xf8\x8d\xee\xdc\ +\xfd\xfd\xec\xf0\x87\xf5\xd9\xb3\x03\xb4\xbf\x5f\xbf\xbd\xfe\xfe\ +\xbf\xf5\xcf\x78\xd1\xf5\xe5\xe1\xf9\x15\xfc\x02\xeb\xfd\xf2\xf0\ +\xfa\xf2\xf4\xed\xe7\xb6\x39\xbd\xf7\xbd\xc1\xff\x56\xf3\xe6\x06\ +\x11\xbe\x90\x75\x6f\xc7\x35\x8e\xcc\x4e\x93\x5e\x3c\x17\x83\x38\ +\x5b\x7f\x6e\x06\x3b\xdd\x85\xfb\x5e\x1d\x5e\x9f\x4c\x97\xb6\x9b\ +\xd9\x63\xdd\xc1\xb6\xf3\xea\xfa\x97\x33\xcc\xe8\xc7\xd3\xb3\xb3\ +\xa7\x7f\x71\xde\xfe\xe8\xcc\x5f\xd9\x58\x8d\x26\xf9\xd4\xb6\xe6\ +\xe5\xcf\x67\xeb\xa7\xeb\xd7\xeb\xf3\x8b\xe3\xe3\xbf\x5e\x5d\x5f\ +\x5e\xfc\xb4\x7e\x7a\x0e\xa4\x9d\x3d\x0a\x8f\xff\xae\xf3\xc9\xa7\ +\xa1\x06\x1f\x3b\xeb\x6c\x1d\x5c\xf0\xae\xfb\x76\xd6\xeb\x6a\x1c\ +\x8c\xab\xae\xb0\xb7\x84\x48\x03\x73\x77\xf4\x26\x2e\x44\xaa\xd6\ +\xb3\xb7\x86\x30\x44\x9b\xf2\xac\xf7\xeb\x2e\x98\x98\x06\x97\x53\ +\x9a\xf5\x06\x8b\xfb\x7d\x4a\xbe\x4b\xc1\x0d\xb6\x44\x3c\x29\x38\ +\x0b\x70\x0c\x09\xcf\xac\x75\xc0\x1b\x72\xe2\xdd\x2e\xd7\xc1\xba\ +\x64\xbb\x8c\xc7\x14\x83\x87\x07\x8f\x0b\x63\xf6\xa1\x2b\xde\x0e\ +\x05\x0b\x52\x66\x7d\xd5\x11\xb5\xbd\x29\xbc\x79\xd3\x6b\x31\x53\ +\x3c\x26\x54\xbc\xba\x26\xbc\x31\xd7\xd9\xe4\x7d\x4d\x7e\x70\xa6\ +\xd8\x3b\x16\x64\xdb\xfb\xae\xfb\x6e\x36\x79\x6b\x62\x1d\xa2\x1f\ +\x27\xef\x32\xde\x50\x67\x9d\x9c\xbb\x2f\x83\x31\x65\xde\x1b\x4c\ +\xf5\x43\x08\x19\x83\x32\x18\x9e\x31\x3e\xcd\xfa\xaa\xc5\x3b\xb3\ +\x4b\x51\x77\x4f\xbd\x05\xef\xaf\xa1\xe4\x38\x7b\x62\xce\x30\x48\ +\xe7\x5d\xd8\xbe\x7a\xdb\x35\xdf\xa2\xdb\x7b\xb7\x03\x7a\xd7\x8d\ +\xbe\x75\x9f\x3d\x86\x87\xb4\x47\x1b\x3c\xec\x06\x5b\x56\x0b\x26\ +\x92\x72\xcd\x98\xbd\x37\xde\x0d\xc1\x9a\x3a\xeb\x75\xd8\x8e\x01\ +\x9b\x65\xbb\x0a\x6b\xf0\xb1\xc4\xd4\xb9\x92\xcb\x90\x30\x8c\xae\ +\xd4\x30\xe4\x14\x61\x41\x5f\xa3\x17\xc6\xe6\x2a\xb6\xac\x78\x3f\ +\xd8\x58\x53\xe9\x5c\x2e\x66\xc8\x30\xc5\x2e\x87\x3c\xc0\xe6\xe6\ +\x5d\x09\xeb\x1a\x92\xad\x96\x37\x6f\x7a\x23\xc6\x50\x92\x31\x96\ +\x0f\xa4\xa5\xa2\x2f\x84\x3a\x98\x50\x1c\xfb\x72\x04\x34\x63\x5b\ +\x3c\x86\x18\x60\xbb\x1c\x38\xde\x8a\x2d\x72\xd8\x36\xef\xe2\x50\ +\x42\x85\xfd\x79\x03\xb3\xd4\x06\xca\x8d\x82\xaf\x1e\xd3\xf6\xea\ +\x0b\xb3\x3e\x4c\x1b\x2e\x00\x5b\xcb\x7e\x7e\xa5\xc7\x95\x8e\x13\ +\xf3\x2e\x61\x60\x26\x17\xf4\x55\x0c\xb8\xb2\xaf\x9a\x01\xcf\xcf\ +\x9c\xb6\xc7\x18\x86\xec\xe1\x2e\x21\xfa\xa1\x94\x00\xb7\xf3\x01\ +\xeb\x52\x22\xcc\x2c\x06\x33\x44\xac\x5e\x9e\xf5\xa5\x08\x3c\x72\ +\xce\x24\xdd\x3d\xf5\xe6\x68\x61\x1c\xb5\xf2\x6e\xf8\x46\x82\x07\ +\xce\x16\xd2\x07\x03\x93\x8a\xec\x9b\x2d\x39\x46\x89\x85\x81\x2d\ +\xce\x36\x07\x2b\xe0\x07\x93\x4d\x9e\x6d\xe2\x6d\xdb\x2d\xbf\xb2\ +\xb8\x3f\xe7\x18\xe5\xd7\x36\xa7\x1c\xb5\x1e\x58\x4d\x6b\x63\x98\ +\xf5\x7a\x2c\x3c\x10\x02\xab\x90\x13\x8c\x98\x5c\x6a\xd6\x97\xb0\ +\x80\x16\xb4\xad\xe8\xee\xa9\x17\xb8\x34\xd8\x50\xac\x6d\x4f\x8c\ +\xd1\x03\x49\x30\x4b\xe3\x0c\x50\x01\x63\xc2\x1f\xb1\x71\xb3\x3e\ +\x99\x60\x19\x72\xf5\x75\xd6\xeb\x38\xe8\xe8\x83\xc7\x13\xc3\xe0\ +\x31\xf8\x38\xeb\x4b\x7a\x4c\x69\x26\xb8\xe9\xcd\x58\xae\x58\xb5\ +\x1e\xe0\x44\xf4\xe4\x08\x13\xc4\xf6\xc5\x84\x5d\xe3\xde\x61\x5b\ +\x4a\xe8\x72\xb1\x03\x96\x23\x69\xe4\x26\x06\xd8\x5b\xa1\xf3\x07\ +\xf5\x62\xde\xa6\xf2\x41\x8b\x15\xba\x6d\xd5\xee\xf3\x68\x78\xdc\ +\xcb\xce\xa5\x54\xe0\x47\xbd\x07\xfa\xc2\x51\xba\xa3\x6e\x95\x88\ +\xee\xfd\x0a\xcf\x08\x58\xeb\x95\x85\x59\x38\xdf\xaf\xe0\x28\x16\ +\x63\x5c\xb9\x08\x4b\xaf\xdb\xb6\x05\x36\x96\xd0\x1b\xfc\x42\xd0\ +\xcf\x3d\x4c\xcb\x62\x82\x2b\xef\xdc\x50\x4b\x6f\x9d\x19\x00\xf5\ +\xdd\x4a\xce\xd9\xc3\x9f\x80\x35\xb8\x0d\x74\x25\xbb\x1e\x7e\x34\ +\x14\xef\x36\x6d\x0f\x74\xc6\xc5\xa6\xb7\x18\x50\x06\xb8\xd1\xcd\ +\x6b\xef\x22\x36\xaa\x02\x28\xe1\x85\x36\x63\xb4\x70\x32\x98\x4d\ +\x81\x41\x94\x1e\xff\x9f\x51\xc9\xe0\x06\xdb\x5b\xd8\xa6\x83\xa3\ +\xe0\x3e\x9f\xa7\x16\xad\xcb\x61\x88\x36\x61\x2c\x01\x01\x1c\x7b\ +\x83\xcd\xc2\xc8\x7c\xc4\x4c\x69\xcd\xdd\xf3\xae\x56\x3c\x3c\x71\ +\x09\x00\x88\x78\x94\x8f\x43\xc6\xc0\xb0\x27\xb9\x87\xf1\x72\x31\ +\xb0\xf1\x83\x9b\x1a\xc5\x73\xc4\x86\x4b\x84\xcd\xe8\x57\xf0\x48\ +\xaf\x6b\x30\x6f\x2c\x60\x26\x38\xe0\x59\x58\x47\xb4\xa2\xc3\x2a\ +\x44\xac\x02\x86\x82\xd5\x44\x04\x1a\x0c\x8c\x75\x6a\x3b\xcb\x3d\ +\xf6\x98\xf8\xaa\xc0\xeb\xe1\xac\xb8\xc0\xe1\x3e\xcb\xe5\x46\xcc\ +\xc3\xf6\x14\x5c\x06\x1e\x87\x25\xea\x64\x32\x3d\x9f\xed\xf0\xa3\ +\x05\xc2\x15\x6c\x49\x46\xc4\x70\x00\x74\xc6\x35\xb7\x69\x62\xdd\ +\x91\x5e\x60\xf2\x6d\x23\x2d\xa3\x28\x26\x6f\x01\xff\xb1\x8f\x70\ +\x8a\x6c\x31\xf9\xd1\x00\x1e\x06\xdc\xa7\xe0\xe1\xcc\x1e\x73\x24\ +\x01\xc0\xec\x7b\x21\x1e\xcc\xe4\x04\xeb\x07\xeb\x87\xdf\xbd\x56\ +\x3c\x47\xf8\x45\x5f\xc4\x8e\x01\xa6\x9e\x23\x74\x01\x81\xe1\x18\ +\xdf\x60\x72\xe4\x0c\xe8\x2a\x30\x42\x70\x0a\x5c\x05\x6f\x42\x80\ +\x43\x17\x1c\x01\xd6\x92\xe6\x57\x11\xca\x6a\x29\xbc\x0a\x18\xa1\ +\x67\x8d\xaf\x7c\xe0\x05\x70\xfb\x16\x00\x7e\x5f\x3c\x17\xa0\x12\ +\x57\x61\x8c\xce\xc3\x63\xb2\xa1\x87\x85\x44\x7c\xe7\x1f\x31\xd2\ +\x0a\x76\x64\x10\x92\xfc\xd4\x04\x44\xe0\x1a\x97\xe0\x50\x31\xf6\ +\xb8\x0b\x5e\x42\x20\x47\x38\xc2\xae\x1b\xfc\x9b\x61\x8c\xbc\xac\ +\x87\x31\x12\x83\xe8\x73\x01\x1e\x4a\x1f\xf3\x68\xc1\x91\x73\x4f\ +\x9a\x05\x3b\xa5\x45\x7b\x3c\x24\x03\x14\x56\x5c\x4a\x93\x3c\x46\ +\x45\xbc\x26\x08\xc0\xc4\x72\x0d\x3d\x82\x1f\x42\x02\xee\x25\x40\ +\xf5\x72\xd9\x8e\xfe\x92\x52\x2f\xef\x40\x50\x81\xbd\x46\xbc\x1e\ +\xef\x05\xb8\x46\x30\xb2\x42\x13\x04\xc3\x02\x19\x89\x11\xae\x8d\ +\xd7\x61\x28\x78\x15\xde\xcc\x16\x82\x3b\x21\x04\x26\xcb\x5b\x90\ +\x89\xa2\x1b\xf3\x62\xac\x8d\xe8\xc3\x4c\xcf\x18\xfd\x92\x9c\x0c\ +\x53\x87\xfd\x27\xc4\x1e\x8c\x1c\xaf\x04\xfa\xad\x7c\x44\x1b\xfe\ +\xa0\xdf\x8e\xe8\x9e\x95\x18\xb2\x82\x93\xc0\x9f\x39\x29\xa0\x7f\ +\x5f\x38\xbc\x55\xc0\x6f\x01\xef\x02\x24\x60\x00\x0c\x7d\x09\xa8\ +\x00\x52\x08\xe8\xe0\x0c\x3a\x04\x2f\xf0\x53\x20\x09\xc2\x38\x70\ +\x0f\xed\x30\xd4\x88\x05\xb5\x8c\xf8\x49\x6d\x44\x14\xcc\x30\x13\ +\xf7\x40\x6d\x33\xc6\x59\xfb\x8a\xa0\x5c\x6d\xc0\x02\x60\x6c\xb1\ +\xf4\x62\xc4\x88\x44\x19\xff\x76\x18\x5c\x81\xff\x11\xd1\x0a\x36\ +\x11\x61\xbc\xcf\xf8\x37\x30\x1b\x90\x86\xfb\x30\x99\x04\x30\x22\ +\xd2\x17\x60\x57\x8a\xc0\x1c\xf4\x27\x80\x56\x26\xbf\x00\x60\x47\ +\x78\x37\xc2\x17\x86\xeb\x68\x28\x68\xf3\xbd\x40\x06\x22\x05\xde\ +\xcf\x36\xf1\x53\x28\x6c\x9c\xae\x8f\x58\x1d\x9b\x09\x8c\xed\x77\ +\x30\xaa\x6f\x77\x2d\xee\x81\xed\x3f\x7c\xb2\xff\x4f\xf6\xff\x90\ +\xf6\xcf\xf9\x72\xcf\x2b\x92\x73\xf0\xdf\xc2\xbd\xaa\x0a\x96\x86\ +\xf7\x61\xc6\x81\x2f\xf0\xa3\xd1\xbc\xbb\xc3\xde\x69\xbf\x93\x2d\ +\x4f\xb6\xdf\x9a\x4d\x2b\x79\x8a\x55\x00\xe1\x9b\xfa\xce\x4e\xcf\ +\xd7\x47\x87\xaf\x9e\xfe\xf0\xf3\xf5\xf5\xbc\xef\x7f\x2e\x4e\xcf\ +\x9f\xbe\x3c\xbd\x5e\x5f\x4e\xbd\x6a\x9c\x9d\xe2\x5f\x4f\xe9\x99\ +\xe0\xf2\xd3\x2f\xc7\x87\x57\x27\x87\x97\x97\x87\xbf\xcc\x5f\xbe\ +\xf5\xb5\xdb\xbc\x29\xed\xf3\x26\xac\x4d\xf0\xa5\x87\xb1\x20\xc7\ +\xb1\x08\xa2\x9e\xfc\x01\xf3\x3e\xea\x12\xf3\x1e\x50\x08\x12\xd3\ +\x02\xfb\x1b\x32\xf2\xee\x7e\x55\xc9\x30\x91\x72\x80\xb5\x04\x1a\ +\x18\x1e\x11\x60\xf6\x1d\x8c\x1a\xbb\xb4\x82\x85\x03\x43\x10\x4f\ +\x4b\x21\x27\x44\xa8\x05\xa3\x77\x80\x94\x68\xe3\xa6\x0d\x96\x0a\ +\x62\x0b\xa3\xc5\x96\x71\xef\xb1\xf2\x20\x70\x1c\x8d\x41\xb2\xd4\ +\x5b\x6e\x1c\x28\x5a\x7b\x03\xac\x0d\xf6\x83\xe1\x20\x45\x87\xa3\ +\x30\xe7\xcd\xbc\x91\x46\x87\x4b\x10\xcf\x3b\xcc\xc2\x81\x43\x61\ +\x48\xa9\xf0\xe9\xa0\xc9\x1e\xbf\x81\x33\x81\xcd\x93\xcb\x87\x9e\ +\x9c\x14\xd6\x06\x3f\x04\xf1\xee\xf1\x22\xd8\x27\x5a\x19\x11\xbd\ +\xc7\xa8\x72\xad\x53\x0b\xf3\xf6\xc0\x45\x83\x07\xd8\x42\xf7\x82\ +\x05\x26\xf4\x1a\x92\x35\xa7\x59\x82\x30\x15\x41\x40\x71\x06\x4e\ +\x0f\xfb\x46\x2b\x10\x7a\xe0\xe3\xa0\xab\xf0\x4a\x18\xa1\xcf\x11\ +\xb7\x55\x4f\x7c\x00\x87\xc3\x70\x9d\x72\xef\x55\xe2\x8c\x22\x5f\ +\x5b\xc8\x6b\x35\x32\x5c\xc9\x11\xe1\x29\x80\x8e\xaa\x69\xe2\x3e\ +\x58\x22\xb2\xb3\x9e\x5c\xa4\x92\x49\xa3\xa9\x4b\x69\x99\x5c\xf9\ +\x04\x4a\x8a\xa9\x91\x0e\xae\x9c\x92\x4e\xac\x10\xe6\x41\x02\xed\ +\x30\x4a\xd0\x21\x82\x09\xd2\x33\xbe\xd5\x61\xaf\x7b\x78\x0b\xc7\ +\x80\x4e\x0f\x2f\x24\xa4\x01\x05\xa7\xa6\x93\x2f\x61\xee\x9c\x21\ +\x70\xa3\xa1\x51\xa4\x83\x62\x21\x0d\x2c\xa0\xc7\xc6\x83\x50\x79\ +\xe6\xdb\x6e\x1c\x34\x72\xd8\x58\x12\x5f\x6c\x09\x75\x9e\xf1\x24\ +\xf0\x36\x40\x22\x6e\x2b\x45\x3b\xa5\xe5\xc7\x90\x13\x27\x50\xb0\ +\xa3\x64\xd7\x99\x38\xc3\x44\x44\xe6\xc3\xad\x07\xe7\xc5\x9d\x9c\ +\x48\xe3\xf7\x8e\xf0\x01\x12\xdf\x5a\x1c\x97\xa0\x1e\xd7\x60\xee\ +\x02\xb8\x88\xbc\x09\x93\x8f\x30\x31\x4a\x6f\x40\x38\x6c\x21\x12\ +\x5f\x36\xb0\x23\x7c\x69\x84\x61\xd0\x36\x95\x22\x60\xb8\x60\x91\ +\x34\xc6\x0c\xea\xff\x9a\x88\x27\x1e\x7c\xa4\xed\xa5\x89\x15\x12\ +\xf1\xc8\xac\xa4\x27\x62\x56\x6d\x04\x8c\x80\x3e\xed\xb8\x9b\x20\ +\xc7\xb4\x36\xb2\xf9\xc4\xf7\x63\x74\x89\xfb\x5c\x09\x7d\x48\x52\ +\x80\x44\xba\x0e\x9b\x4e\x03\xae\x6d\xd7\x73\xce\x58\x16\xac\x3f\ +\x6d\x07\x68\x16\x02\x27\x89\x20\xcb\x2b\xb3\x00\x3d\xf0\xb7\xf6\ +\x48\x64\x22\x89\x4f\x8c\x29\xc5\xb1\x21\x43\x4d\xcc\x28\x32\xec\ +\x2a\x0b\xb3\x3c\x31\x1b\x4b\x8f\xbd\xcd\x9c\xb1\x65\x66\x45\x3a\ +\xeb\xf9\x2b\x53\x36\xee\x7c\xf6\xcc\x6a\x06\xa6\xad\xab\xd1\x77\ +\xda\x4b\x39\x67\x39\xcf\x8a\xf3\xe9\x9a\x87\xa6\x5e\x16\x9b\xb9\ +\x08\x21\x59\x82\x00\x30\x93\x06\xef\x72\x66\x32\x02\xf7\x49\xb2\ +\xff\x1a\xe4\xd5\x2e\xb9\x6d\x33\x09\x56\xcd\x88\x05\x4c\xee\x60\ +\xc2\x7c\x04\xf8\x34\x3d\x40\x99\x08\x5e\xda\xf1\x8d\x08\xe5\x2b\ +\x66\x55\xa5\x6b\xbe\xac\xa7\x21\x8c\x24\xe6\x88\x9e\x0f\xb3\x11\ +\x00\x82\x21\x3b\x6d\x68\xa9\xb4\x44\x4a\x7e\x1c\x23\x05\x01\x00\ +\x52\x50\xae\x23\xd3\x45\x5f\xf4\x55\x57\xc6\x2a\xcb\x84\x4f\xf2\ +\xca\x86\x2f\xb0\xbb\xc0\x4b\xe9\x21\xb4\x12\x5e\xca\xb4\x50\xa6\ +\x29\x80\xe1\x73\x08\x0d\x99\x19\x5b\xb3\x4d\x61\x07\x1f\x42\x7b\ +\xe6\xeb\x34\x49\x9a\x1d\x65\x4a\xc7\x95\xa5\x29\x57\xbe\x9c\x28\ +\xc7\x38\x2a\x23\xc4\x2e\xe2\x11\x0e\x58\x81\xec\x94\x4b\xec\x29\ +\x5b\x76\xc2\x30\x4e\x94\x2e\xe1\xe8\xd3\x7a\x02\xf3\xfa\xa9\x95\ +\xe5\xd3\x86\x70\x6b\x8d\xb2\x6c\x82\x13\x7e\x48\xb4\x4a\x66\x8d\ +\x84\xb5\x9e\x4e\x4f\xf7\xd2\x96\x87\xa4\xe5\x4a\x08\xea\x78\xab\ +\xa9\x45\x79\xac\x8d\x30\x72\x84\x3c\xe5\xec\xf8\x57\x0d\x34\x61\ +\x79\x65\x1b\xaa\x8f\x0d\x4b\xb0\x69\x56\xf3\xe2\xc2\x21\x91\x84\ +\xe1\xb9\x36\x7e\x66\xa5\x5c\x4e\x99\x10\xfc\x97\xd9\x39\x5e\x64\ +\xd8\xe1\xc8\x9a\x88\x3e\xa1\x81\xe1\xa6\x43\x1e\xe3\x95\xfd\x52\ +\x57\x81\xc1\x31\xdc\x06\x62\x28\x8c\x8a\xa8\x26\x0d\xb7\x8d\x95\ +\x9b\x64\xe9\xe7\xb4\x65\xe2\x06\x36\x82\xbb\x9b\xda\x48\x04\x82\ +\x04\x8d\xcd\xc9\xc6\x07\xd3\x4f\x84\xcc\x77\xeb\xcb\x8b\x7d\xf4\ +\xb3\xdc\x1b\x30\xbf\xeb\xc8\x52\x48\x30\x13\xb9\x57\xce\x48\x19\ +\x0b\xf2\xc3\x60\x99\x46\x3a\x84\x39\xf8\x07\x72\x46\xb0\x40\x4a\ +\x86\xaf\xc9\x2d\x28\x3d\xe0\x2a\x70\x25\x53\x05\x36\xf0\x46\xe3\ +\x95\xa4\x92\xd7\x30\x49\xa5\xa8\x03\x66\xb2\xb9\xea\x79\x47\x9d\ +\x8e\xfb\x72\xd2\xe1\x45\xdc\xef\xe7\xdd\xf8\xc6\x87\x9d\xbf\xdf\ +\x97\x7f\x3b\x4f\x02\x1a\x49\x18\x3c\x11\xef\x48\xd8\x53\xe4\x36\ +\xb9\x85\x21\xee\x36\xcd\x26\x0a\x6c\xb0\x3a\x84\xe5\xa9\xe9\x68\ +\x80\x34\x8a\x26\x05\x11\x06\xb0\x18\x2b\x24\xf5\x08\x20\x94\x76\ +\x2a\x2d\x82\x72\x19\x18\x64\x10\x3b\xc0\x4d\x54\x9a\x7a\x0a\x9b\ +\xcd\x7e\xd4\xc4\x2d\x89\x1e\x63\x7a\x87\x78\x68\xe5\xeb\x08\xe5\ +\xb9\x89\x17\xd8\xa5\xda\x23\x87\x87\x4b\x83\xfd\xc2\xa0\x18\xe9\ +\x08\x40\x12\xea\x7b\x2a\x05\x88\x6f\x89\x9a\xff\xd4\x60\xd4\x51\ +\x82\x50\xb1\x8b\x0d\xe3\x28\xa2\xc3\xa1\xe8\x15\x26\xb4\x50\x11\ +\xb5\xc5\x47\x02\x70\x00\x19\x31\x84\x23\xe4\xce\xf7\x55\x28\xb3\ +\xf2\x70\x5e\x3b\x35\xa8\xa2\x08\xb1\x19\x5a\x2d\x9d\xbe\xd0\x3f\ +\x39\x8c\x2a\x7f\xa4\xf0\xc0\xf0\x9b\x45\xad\x18\x36\xe8\xab\x51\ +\xae\x9d\xe8\xe9\x63\x93\x8a\xa9\x67\x68\xe6\x23\x33\xc2\x55\xa0\ +\x6a\xc3\x28\xef\xe0\x25\x44\x16\xe2\x1c\x5e\x82\xc7\x63\x35\x7d\ +\xaf\x98\xee\xa8\x7b\x0d\x04\x4b\x3e\xc6\x52\x53\xc5\xdd\x61\xdb\ +\xb4\x24\x1c\x9c\xb5\xb6\x4d\x18\x0c\xe6\x55\x25\x04\x21\x1c\x01\ +\x7b\x5b\x80\x7c\x60\xc7\xf3\xfb\x74\x0f\xa4\x3c\x0c\xae\xd4\xa3\ +\x32\x75\x32\xee\x00\x26\xa8\xa5\xf5\xcc\x1c\x40\x83\x48\x77\x98\ +\xb1\xc0\x30\xb8\xdd\x2e\x8d\xfc\x8a\xe0\x82\xdd\x0a\x0c\x68\x04\ +\x50\xf0\x3f\xe6\x16\x39\x4d\x4d\x4a\x42\x05\xdb\x6a\x48\x96\x68\ +\x90\x0c\x10\x32\x38\x2e\x6d\xe6\x62\x84\xd8\xc8\x0d\xd3\x3e\x3d\ +\x2c\x70\xc9\xc0\x05\xf5\x22\xec\x46\xa2\x78\x39\x36\xf8\x14\x2e\ +\x2a\x55\x7b\x85\x3e\x02\x04\xcf\xb1\xaa\x10\x5c\x97\x18\xaa\xaa\ +\xab\xf1\x51\xe8\x24\x7a\x63\x58\x92\xeb\x5a\x2b\x30\xe0\xb4\x1d\ +\xc7\xf3\xa8\x05\x6a\x66\x9a\xae\xa8\x07\x0f\x80\x78\x1d\x47\x1b\ +\xda\x54\xbd\x6d\xa0\xcf\x00\x44\xbd\xb1\xe8\x85\x39\xc5\x2c\x57\ +\x0c\x79\xdb\x7e\xd7\xbd\x44\x70\x46\x1a\x54\x29\x4e\x5b\x2d\x29\ +\xcf\x09\x9a\x60\x39\x34\x32\x5f\x4d\xd6\x42\x67\x05\xc3\xdc\x78\ +\x2e\xf8\x29\x03\x08\x5f\x99\x65\x9b\x34\x26\x30\xab\xb1\x05\x7f\ +\x02\x51\x14\x01\x40\x4c\x65\xce\x55\x9b\x60\xec\x49\x26\xbc\xd6\ +\xcd\x6f\x9b\x58\x5f\xcb\x5c\xc0\xc5\xa1\xb1\xd7\x80\xe4\x60\x6c\ +\x61\xaa\x60\x75\x54\x3d\xe1\xf4\x64\x6b\x8a\xc8\xbd\x87\xdf\x32\ +\xe8\xe1\x22\x44\xb9\xd6\x7a\x60\xfb\xbc\x5f\x97\xf8\x8e\x27\x9a\ +\xd2\x9a\x29\x12\x90\x60\x6f\x00\x9b\x12\x25\xbc\x3d\xe5\x45\x84\ +\x88\x3c\x04\xc2\x8a\x4b\x78\x4d\x96\x2a\x83\x82\x3e\x48\xff\xd8\ +\x8a\x84\x55\xab\xdd\xa7\x6c\x1c\x5a\xcc\xee\x19\x51\x18\x2c\x78\ +\x75\x6a\xb0\x90\x28\xa6\x93\xf5\x67\xd9\x93\xd1\xca\x64\x99\x90\ +\x25\x4d\xc0\xc5\x61\x14\x95\x5b\x53\x3b\xdf\xe7\x42\xca\x4c\xf7\ +\x8e\x8c\xcc\x18\x14\xd1\x88\x09\x32\xf6\x3b\xba\x11\x09\x4b\xcf\ +\x13\x90\x32\xfe\x19\x0b\x0e\xee\x48\x3f\xe1\xe1\x92\xf2\x06\x60\ +\x0b\x7a\xb5\xfd\x9b\x6b\xd8\x3a\x11\x72\x85\x8f\xd6\x4b\xdf\x73\ +\x5f\xf6\x65\xb8\x8e\x66\x06\x90\x9f\xed\x86\x2d\xda\xa1\xd7\xcc\ +\x04\xc4\x96\x4e\x98\xe5\x05\x89\x1b\xd2\xcf\xb1\x54\x14\x48\x40\ +\x15\xb1\x14\xb0\x40\x80\x29\xf6\x4b\x3c\xcb\xf2\x90\x22\x6d\x9a\ +\x2d\xfc\xc5\x5c\x84\xf0\x3a\x3b\xf0\x4a\x86\xb4\x03\x16\x37\x82\ +\xbf\x29\x0e\x34\x36\x48\xdd\x1d\x0e\xce\x65\xab\x99\x01\xce\x45\ +\x5f\xa7\xa6\xa3\x8e\xdd\x22\x1a\x45\xae\xc0\x33\x66\x24\x3d\x56\ +\x5e\xc0\x74\xcc\x97\x81\x7c\x19\x20\x5f\x90\x2d\x50\xe5\xe1\x28\ +\x1d\x53\xce\xcc\x8c\x5d\xf0\x95\xc5\xd6\x2a\xb7\xa5\xb6\x54\xc3\ +\x51\xbd\xda\xb4\x98\x9e\xb5\xe1\x26\xc6\x0a\xa5\x41\x8c\xdb\xed\ +\xa9\xf2\x65\xa6\xf3\xaf\x69\x05\x26\x12\x15\xe8\x92\xc8\xb4\xb2\ +\xa2\x24\xd3\x31\x04\x74\x2b\x0d\x88\x81\x82\xf9\xc1\xd8\xc2\x94\ +\x1d\xe6\x61\x18\x35\x99\xc4\xca\x00\x80\x04\x53\x93\x47\x2e\x58\ +\x78\x9a\xdf\xb8\x09\x8c\xe2\x59\x39\x0a\xee\xad\x35\x35\xee\x6c\ +\x1b\x14\xa5\x31\xa1\x61\xf2\xda\x2c\x57\x39\x8b\x0e\x83\xaa\x34\ +\x25\xac\x6a\xcb\x59\x7c\x16\xc9\x37\xe3\x4a\x53\xb7\x60\xa6\xb8\ +\x69\xb4\x68\x20\x42\xcd\x34\x01\xa8\xca\xf0\xee\x1a\x71\x67\x8e\ +\x88\x00\x4f\x88\x6b\xb9\xab\xa7\x84\xe0\xf5\xb6\xc4\x44\x87\x0a\ +\x98\xb2\x06\x4f\x56\x47\x22\x11\xdd\xa6\x59\x95\x0c\xf2\xe8\x88\ +\x48\x4e\xd5\x81\x07\x47\xfa\xb3\xa4\x12\x2a\x17\x46\x5b\x0f\x5c\ +\xab\x82\xc2\x91\xda\x28\x77\x61\x8b\x6b\x5a\x0d\xd5\x97\x66\x4c\ +\x0f\xec\x32\xf7\x73\xdc\x97\x5d\x10\x32\xc7\x1d\x97\xa1\x51\xbf\ +\xee\xc0\xfb\x32\x8f\xa1\x64\x6c\x4d\x24\x6d\xd9\x60\x4f\xf9\x21\ +\x92\xca\x51\x95\xa3\x90\x00\x32\xcb\xb4\xa4\x02\xb4\x80\xe5\x59\ +\x8c\x09\xc8\xde\x6b\x63\xe5\x2d\x20\x20\x53\x8b\xf9\xac\xac\x12\ +\x2b\x33\xe6\x50\xca\x33\x70\x15\x73\x32\x1a\x58\xd1\xc3\xb5\x9d\ +\xcd\x14\xb1\xc5\x9e\x69\x3d\xa5\x80\xe8\x37\x4d\xc7\xd4\xc4\x2e\ +\x01\x78\x3b\x7e\x1e\x66\xc6\x36\x7e\xed\x52\xe6\x7d\x85\x39\x7b\ +\x10\xfa\xf2\xf6\x80\x20\x38\x35\x0b\x0f\x31\xc7\x81\xc9\x3f\xa8\ +\x7c\x68\x5c\x36\xb7\xf8\xad\xdc\x17\xc6\x80\xac\x40\xca\x4e\x1c\ +\xb3\xf3\x46\xd4\x48\x67\xc7\xa6\x0e\xe4\xdd\x6c\x60\xdf\x74\x0e\ +\xe3\xe1\xc9\x22\x9e\x35\x68\xa4\x1b\x6c\xe2\x90\x7d\xe5\x31\x95\ +\xe1\x66\x60\xc0\x45\x32\xa8\x42\x6d\xe9\xda\xba\xb0\x52\x05\x8c\ +\x11\xe1\x05\x51\x76\x6a\xb5\xb7\x19\xa2\x39\xb3\x2e\x6c\x8f\x33\ +\x41\x2c\x10\x30\xb8\x62\x74\x72\xe0\x37\xd2\x4e\x88\xcf\xa1\x13\ +\xaf\xd2\x4c\xac\x72\x64\xcb\xeb\xa8\x7c\x3b\x32\xc9\x58\xc5\x71\ +\x0c\xd0\x5e\xc4\x5b\x38\x45\x36\xcc\xa3\xf1\x4d\x83\x84\x2a\x8a\ +\xf2\x34\x8c\x5a\x8d\xa2\xd1\xd4\x0c\xdc\x32\xf7\x58\x69\x4c\xd8\ +\x97\xc6\x84\x02\x1a\x09\xeb\xcb\x3c\x26\x76\x7e\x8c\x00\x89\x5b\ +\x41\x36\x42\xa0\xfc\x06\x94\xae\x08\x32\x6f\xdd\x1e\xac\x27\x95\ +\xcc\xed\xf6\x54\x4a\x7c\x14\xbd\x60\x1e\x52\xa3\x6a\x0f\xe0\xb5\ +\x58\xdf\x76\xde\x3d\xb5\x5a\x0a\xae\x83\x08\x9a\x78\x13\x46\x02\ +\x69\xb9\x09\xcd\x66\x98\x04\x14\x8e\x6b\xa3\x2b\x50\xc1\x2a\x49\ +\xcc\x8a\xb2\xc9\xd8\x0a\x08\xf9\x25\x8e\xfc\x30\x28\xd9\x62\x50\ +\xee\x99\xa4\x10\xd3\x68\xb2\x32\x52\x72\xd3\xca\x00\x5d\x65\xda\ +\x0c\x59\xc2\x40\xf1\xb3\x5c\xb5\xd9\x51\x92\x22\xb6\xab\x18\x3b\ +\xeb\x68\xc9\xf8\x14\x2e\x42\x9f\xa6\x0b\x5b\xe4\x11\x0e\x03\x03\ +\x04\xe9\x5a\x89\x3e\xc8\x07\x94\x36\x10\x75\x5d\xf3\x35\xe5\x36\ +\x91\x9a\x6e\xd3\x25\x32\xc5\x30\xd7\x55\x29\x80\x9c\x57\xc8\x88\ +\xb6\x92\x28\x65\xa3\x74\x68\x0e\xdf\xfb\xc6\x69\xe8\x8b\x58\xc0\ +\xcc\xd4\x72\x6a\x5b\xca\x51\x5c\x48\xa3\x87\x4a\x39\x2d\x5c\x56\ +\x6a\xcb\x58\xa4\x8a\x14\x9a\xb2\x31\xf2\x3d\xa2\x8c\x23\xf8\x62\ +\x10\x3d\xe3\x34\xc0\x7f\x6c\x61\xb1\x10\x2c\x5d\xc3\xb3\x4a\x00\ +\x00\x64\x05\xee\x96\x26\x5a\xd4\xe2\x61\x11\xc3\x50\x03\x37\xa4\ +\x4a\x92\xbf\x98\x98\x29\x1b\x60\xf5\x0b\x27\x21\x11\x7a\x6c\x8a\ +\xd9\x0b\x38\xc6\x58\xd5\x34\x28\xae\xe3\x24\xcd\x90\x40\xa5\xb6\ +\x97\x59\x07\x33\x55\xba\x67\xe3\xf5\x76\xd3\x44\x8a\xe7\xcd\x03\ +\x07\x85\x70\x7f\xfe\xf5\x1d\x52\x65\x2f\x98\xdc\x62\x17\x16\x6f\ +\x14\x30\x1c\x19\xf8\xc6\x3d\xe2\xa3\x79\xf9\xbe\xb3\xc2\x1c\x29\ +\xc6\x53\x98\x66\x3c\x27\x96\xae\x0a\x82\x15\x95\x5e\x86\xfd\xaa\ +\xc3\x0b\xea\xf3\x12\x12\x95\xae\xf0\xbc\xa5\x6b\x89\xaf\xa8\x76\ +\xcd\x8e\x36\x94\x98\xba\x23\x6d\x61\x39\x15\x91\xad\x36\xaa\x1d\ +\x29\x2f\x90\x6a\xc7\xb0\x6d\x83\x43\x98\x52\x5b\x42\x63\x40\xbc\ +\x46\xbb\x24\x48\xa3\x35\xd9\xe5\xb7\x5d\xa6\xa7\x60\x41\xeb\xa8\ +\x26\x38\xa7\xc8\x46\x49\x54\x9c\xad\xd9\xba\x34\x75\x72\x1c\x43\ +\x4d\x7b\xd6\x61\x25\x3b\xc9\x33\xab\x28\x2b\x85\x06\x95\xd5\x14\ +\x92\x47\xa9\xf6\xd2\xcf\xc8\x5e\x68\x95\x91\x49\xd9\x98\xaa\x91\ +\xa4\x07\x93\xb6\x6d\xca\x31\x3e\x92\x7b\x4a\x1e\x77\x3a\x36\xa9\ +\x4c\xad\x48\x53\xf0\x2c\xfa\x69\x68\x25\x28\x2d\xe6\x31\x53\xe3\ +\x29\x0d\x1d\x05\xa1\x8f\xa7\x7a\xaa\x6e\x23\x9a\x4d\x2d\x8a\x1f\ +\x76\xc4\x3a\x82\x9e\x24\xcf\xd2\x35\x11\x45\xf4\x30\xb3\x5a\xab\ +\x69\xa8\xb5\xbd\xca\x01\x45\x28\xca\x8a\x83\x6c\x9a\xa4\x90\x7e\ +\x64\x8e\x55\xd1\x4e\xc1\x55\xa2\xbd\xe1\x80\x39\xc3\xec\xc4\x46\ +\x12\x30\x8f\x17\xe9\x14\x06\xab\xbc\xc9\x4f\x94\xc2\xf7\xb1\x39\ +\x17\x03\x5d\x25\xff\xa8\x21\x4a\x53\xf2\xc6\x4e\xad\xc2\xdc\xd3\ +\x8c\x00\xe6\x36\x62\x38\xe1\x52\x03\x25\x03\x10\x95\xef\xa5\xad\ +\x0b\x59\x31\xb1\x46\x78\x75\x32\x44\x3d\x3e\x0b\xd8\x18\x2f\x4e\ +\x3a\xd5\xda\x7d\x74\x65\xe4\x7b\xfa\xc3\xde\xd3\x3e\x43\xfa\x96\ +\x76\x73\x21\xdf\x78\x9d\xa3\xa0\x2d\x5e\xc4\xb2\xd8\xd2\xa0\xaf\ +\xa7\x50\x55\x82\x60\x0b\xab\x35\xb5\x46\x7d\x03\x38\x2e\x42\xa4\ +\x0b\x58\xbd\xd7\xdc\x42\xc7\xa8\x3c\x1a\x2a\xcd\x69\x0a\x6f\x10\ +\x7d\xa7\xc6\xe6\xd3\xa6\x29\xac\x2e\x0b\x46\x54\xb3\x61\x12\x71\ +\x23\xe8\x2a\x51\x1d\x75\x90\x39\x27\x82\x01\x35\x36\x9d\x1a\x3d\ +\xf1\x4d\x45\x14\x3d\xb1\x66\xd3\x62\x26\x45\x3b\x74\xaa\xb5\x0a\ +\x22\x4a\xf0\x1b\xe2\xb2\x84\x7f\xa4\xdd\x92\xc5\x8a\x8e\x22\xac\ +\x8e\xd7\x45\x51\x63\x9d\x5a\xb0\xda\x18\xf2\xa3\x81\xdb\x3e\x25\ +\xda\xda\xea\x39\xfe\x71\x99\x80\x71\x2a\xb3\xdb\xae\xa4\xb5\x08\ +\x1c\x89\x05\x1c\xa6\x48\x6c\xdd\x2c\x28\xb9\x0b\xd3\x47\x4a\x09\ +\xd4\x66\x49\x03\x0b\xd5\x08\x37\x34\x93\xb6\x5a\xc0\x21\x26\xe1\ +\x4d\x64\x01\x2b\x96\xac\xa5\x51\x14\x79\xb5\x01\x32\x16\x8a\x0e\ +\x3a\x8e\xc9\x3a\xd5\xe8\x27\x78\x22\x7d\xa7\x8b\x16\xee\x3e\x12\ +\x55\x16\x62\xf4\x78\x51\x61\x3e\x78\xc2\xdc\x32\x3d\xb0\x37\xc4\ +\xbd\xa5\x64\x8e\x0a\x2b\x2c\xc4\xa4\x49\xd3\xf5\xa3\x59\x27\x2d\ +\x2c\x1d\x7c\x94\xc4\xbc\xc8\x1e\x8f\xca\x52\x3b\xb6\xe0\xb5\x2c\ +\x2a\x90\x28\xd8\xfe\x2c\xaa\xac\x63\x63\x42\x00\x0f\xe2\x7a\x92\ +\x0f\xdb\x8d\xbf\xca\x44\xa9\x6b\xf3\xc0\x0d\xf8\xea\x9a\xda\xda\ +\x4d\x2f\x68\xa7\xaa\x94\x83\x9a\x8a\xc7\x93\x6a\x1a\xb8\x9d\x5c\ +\x4c\x6f\x27\x9d\xc7\xe3\xdb\xe6\xe8\x60\x6a\xfc\x73\x7b\x81\x51\ +\x8a\xec\x8a\xce\xea\xda\x71\x90\x86\x97\xa6\x84\x18\x0e\xd0\x6b\ +\x1e\xca\x59\xf4\xec\xe8\x82\x20\x6f\xd3\x20\xcc\x12\x3f\x89\x67\ +\xb1\x1d\xf7\x7f\xc3\xca\x76\xd8\xdb\x0d\xbf\x7c\x2c\x7f\x88\x7b\ +\x0b\xe3\xbc\xc2\x35\x8c\x2e\x33\xd6\x8c\xdb\xc9\xed\xa2\x71\x32\ +\x07\x63\x72\x2e\x05\x93\x31\x2f\x4d\x8d\x3c\xca\x21\x04\x11\x91\ +\x34\x5d\x31\xe6\x44\x96\xf6\xae\x95\x52\x68\x1e\x1f\xd4\xd2\xa3\ +\xcd\x9f\x61\xdc\x3c\x0a\xd9\x4d\x38\x93\xdf\x5d\x2c\x9d\x20\x48\ +\x8d\x19\x21\x4c\x2e\x97\x48\x4f\x89\x3a\x14\x09\x89\x65\xd1\x8a\ +\xf1\x37\x7a\xcd\xd3\x8c\x48\xdd\x96\x2e\x2c\x7d\x40\xc7\xe7\x2c\ +\xd4\xe2\xc9\xe2\xf8\x67\xd6\x62\xab\x9c\x22\xb6\x13\x71\x56\x3b\ +\x59\xd5\x78\xda\x31\xf1\x6d\xd8\xf9\xc0\x2a\x7e\xdc\x5b\xbd\xc5\ +\x52\xf4\xbc\x90\xcf\x46\xf5\x77\xd5\x20\xa2\x49\xe5\x4c\x6d\xec\ +\xa8\xa6\xdb\x3c\xb2\xa3\x51\xc3\x6f\x67\x2a\x5e\x3a\xa3\xf4\x2c\ +\x35\x82\xa7\xce\x96\x9a\x04\x16\xe9\x5e\x5e\xea\x71\xe6\x4a\xa4\ +\x5e\x12\x79\xec\x74\xc8\x2a\x86\x0e\x06\x20\x56\xd0\x37\x1a\xc5\ +\x2a\x62\x16\x97\xb4\x06\x0f\x2c\xa9\xcb\x72\x48\x92\xef\x41\x0d\ +\x98\xc5\xc5\xd8\xc4\x86\xca\x53\xe0\x3c\x1e\xda\x06\xa5\x74\xb1\ +\xa9\xf7\x81\xa2\x5d\x6b\x05\x9e\x61\x55\x65\x67\x45\x81\x03\xcf\ +\x71\x4d\xf6\xf6\xac\xc1\x56\xa6\x57\x74\x5d\xf4\xe3\x24\xe3\x74\ +\x62\x1b\x94\x4e\x08\x7f\xd3\x78\xae\xa6\xaf\x5f\xb6\x6d\xfa\xa8\ +\x25\x20\x58\xd0\x70\xd8\xfb\x74\x14\x57\x75\xe4\x4a\x3a\xa3\x0a\ +\x07\xa3\x23\xb9\xa2\x32\xe6\xc6\x78\x88\x6e\xb4\xda\x32\x34\x1a\ +\x69\x54\xfb\xc4\xb3\x14\xbe\x75\x6c\x7a\xe2\x77\x1b\x3c\xd3\x96\ +\x06\x61\x1a\x52\x6d\xcb\x48\x7a\x4c\xd6\xef\x6d\xd7\x44\xff\x56\ +\x90\x30\x1d\x5d\x70\x20\x8e\xe7\xf6\x45\x73\x9e\x9a\x2c\xf0\x21\ +\xc2\x71\x78\xaa\x08\xe1\xd7\x12\x3c\xd0\x61\xdc\xd0\xb9\xb6\x8e\ +\x28\x58\x98\xa8\x53\x03\x6e\x56\xe1\xc9\xb3\x6f\x0d\x15\x6b\x1b\ +\xaf\xea\x6f\x26\x55\xad\x14\x83\x96\xc0\xef\x06\x56\xd3\x35\x51\ +\x79\x15\xc6\x01\x33\x1b\xc5\xc3\x2c\xbe\x3a\x29\x8d\xed\x85\xbf\ +\xa2\x9a\xf9\x3d\xdd\x61\x2f\x21\x43\x68\x7d\x50\x42\x56\x96\x7c\ +\x6c\x41\xc7\x96\x6c\xec\x56\x32\x66\x43\x41\x30\xba\x89\xf9\x3b\ +\x54\x2c\x8f\x4c\x6c\x41\xc4\xe6\x3c\xec\x0f\xcb\xc2\xe2\x3e\xad\ +\xd4\x66\xee\xe0\xee\xf1\x42\xac\xf7\x48\xa5\x0b\xa5\x74\x2e\x94\ +\xd6\x99\x4e\x1a\xe7\x32\xa9\x9b\xa9\xa4\x61\x12\x49\xdd\x7d\x1a\ +\xe9\x5c\x22\xcd\x0b\x85\x34\xdf\x2d\x90\xd6\x7b\xf4\xd1\x85\x3c\ +\x1a\xe7\xea\x68\xda\x88\xa3\x0b\x6d\x74\x21\x8d\xda\xb9\x32\x1a\ +\x16\xc2\x68\xb8\x55\x17\xb5\xac\x12\x2d\xb7\xc6\xcf\x85\x2e\xda\ +\x64\x51\x37\x57\x45\xd3\x5c\x15\x4d\x33\x51\x34\x8c\x9a\xe8\x52\ +\x12\x9d\x29\xa2\x7e\x26\x88\xa6\x85\x20\x9a\x66\x7a\x68\x9a\xab\ +\xa1\xe9\x4e\x31\x34\x8d\x5a\x68\x58\x48\xa1\xe1\xb1\x95\xd0\xb4\ +\x97\x05\x57\x92\x9c\xba\xab\x91\xd8\xa6\x91\xd8\x85\x44\xb2\xa3\ +\x90\x2c\x05\x92\xb9\x3e\x52\x96\xea\x48\xda\x11\x47\x26\x6d\x64\ +\x21\x8d\x6c\x94\x11\xac\xcc\x46\x12\xf1\x4b\x45\x24\xec\x08\x22\ +\x76\x47\x0f\x71\x1b\x39\x64\xa9\x86\xdc\x23\x86\xd8\x85\x14\x62\ +\x6f\x15\x42\xe2\x42\x07\x99\xcb\x20\x79\xae\x82\xd8\xb9\x08\x52\ +\xe7\x1a\x88\x1b\x25\x90\xb8\x50\x40\xe6\x02\x88\x9f\xeb\x1f\x79\ +\x21\x7f\xe4\x9b\xea\xc7\x8e\xf8\xb1\xd0\x3e\xe6\xd2\xc7\x5c\xf9\ +\x70\x33\xe1\xc3\xcd\x65\x8f\xdb\x44\x0f\x7f\xa7\xe6\xe1\xe7\x92\ +\x87\x5b\x2a\x1e\x71\x57\xf0\x78\x60\xdb\xde\x5b\x33\x62\x28\xee\ +\xda\xc7\x0a\xaf\xee\xc3\xc2\xeb\x74\x12\xfd\x27\x0e\xaf\x69\x5f\ +\xbe\xe0\xf8\x19\x1c\xd2\x82\x64\x19\x4b\x0b\x0d\x3e\x88\xd9\x3a\ +\x9e\x8f\x34\xbe\x6a\xcb\xe6\xa0\x56\xa5\x86\x71\xdb\x54\x85\xf1\ +\x98\x5c\xc4\xa6\x58\xf2\x1b\x8f\xb1\xe9\x89\x78\xd5\xb6\xa8\x97\ +\xf9\x31\xc8\x49\xcb\xfc\x58\xb9\xa7\x1a\xe4\xda\xa4\x0a\x75\x90\ +\x44\xc3\x60\xce\x3a\x85\xca\xbe\x55\x84\xcd\xb6\x4e\xc5\x0f\xda\ +\xba\xe9\xce\x56\x0f\xc1\x6a\xbe\xa8\x6a\xe9\x76\x10\x22\x72\xcb\ +\xda\x57\xdf\x0a\x42\x3d\x43\x91\x6f\xd5\x60\x89\x25\xac\x41\xd5\ +\xae\xd3\x51\x77\x1e\xda\x19\xbd\x0a\xe3\xac\x14\x9f\xa9\xa5\x42\ +\x1c\x26\x7d\x24\xb7\x0c\xf7\xb2\x00\x4b\x66\xcd\xf2\x9f\xe7\xdd\ +\xb8\x6a\x0f\xbc\x87\x7b\x2b\x30\x12\xbf\x71\xf1\x37\x8e\x93\xef\ +\xa6\x48\x6e\x4e\x91\xf2\xc7\x53\x24\xfb\x9b\x53\xa4\xf2\x51\x14\ +\x29\xdf\x4a\x91\xca\x82\x22\x7d\x18\x43\xba\x1f\x3b\x66\x0c\xa9\ +\x61\x07\xbf\xa9\xb8\xeb\xdc\x78\x1f\x43\x4a\xf3\x33\xe3\x3b\x8f\ +\x8c\xe7\x0c\xa9\x7d\x56\xb0\x39\x30\xbe\xfb\xbc\x78\x3a\x2e\x5e\ +\x9e\x16\x3f\x3a\x45\xda\xc7\xf1\x01\xc4\x2c\x83\xff\xff\xce\xf1\ +\xdd\xa3\x72\xfc\x7b\x35\xb2\x5b\x2c\xf8\xbd\x0c\xd8\xff\x19\x29\ +\x7e\xde\x5b\xb3\x5d\xab\xf4\xff\x5b\x4c\x41\x0b\xad\x8f\xa1\x57\ +\xe3\x52\x33\x3e\xd9\xb1\xa2\x33\xb7\xda\x4f\x15\x91\x70\x8d\xdb\ +\xb7\x83\xaa\xf6\xde\xb4\xf5\xf1\xbb\x91\x62\x17\xa5\xd8\x85\xc8\ +\x8f\x4a\x5a\x53\xdf\x56\xaa\x98\x2c\x55\x7d\x2d\xa3\x3d\x0e\x2a\ +\x0e\x80\xeb\x34\xd5\xca\x34\x61\x89\x5c\x59\xec\x9c\xd5\x92\x39\ +\x34\xf1\x48\xe7\xe6\x63\xb3\x7d\xde\x48\x85\x49\x5f\x44\x31\x38\ +\x36\xa6\x33\xd5\x03\x68\x64\x2a\x75\x60\xfd\x04\xbf\x50\x8c\x3c\ +\x10\xb2\xad\x01\x0b\x44\xb2\x11\x9a\xd3\x56\x1b\xdb\x58\x62\x7d\ +\xb4\x6d\xda\xc7\x56\x3d\xcf\x6b\xc8\x2c\x3e\xb1\xd5\xdf\x27\x5b\ +\xcd\xfb\xd8\xaa\xe7\xb7\xd3\x2c\x85\xdb\x7b\xa2\x54\x7e\xcb\x13\ +\x25\x37\x9d\x28\xd9\xba\x3d\x52\x2a\xdb\x23\x25\xdb\xce\x94\xdc\ +\xec\x4c\xc9\x3d\xd6\x99\x92\x5b\x9e\x29\xd9\xd9\x91\xd2\xdd\x16\ +\xf5\x58\xfb\xb9\x8f\xb9\x7a\x7e\x19\xcc\xef\x48\xa2\xbe\xbb\x6c\ +\x55\xa9\xd5\xb6\xd2\xcf\xd4\xc0\x31\xaa\xd4\xd4\x48\xe0\xf7\x76\ +\xac\x93\x6f\x4d\x22\xd5\x54\xa0\x51\xf9\x05\xaa\xea\x45\x99\xcc\ +\xb7\xb3\x0d\x1b\x42\xab\x13\xb2\x2a\x22\xca\xad\x8e\x5b\xdf\x8b\ +\xa8\x84\x7e\xd3\x02\x98\xe2\xfd\xe3\xe7\x09\xfc\x82\x34\x0e\x0a\ +\xcf\x93\xdc\x1e\xda\x67\x98\xed\x93\x82\x76\x60\xcb\x00\xc5\xb3\ +\x61\x7d\x1e\xc8\xcf\xd7\xed\xd4\x68\x67\x29\x46\xdf\x28\xd8\xf6\ +\x9d\x5c\xea\x1a\x7e\xa8\x36\xd6\x8f\x0e\x3d\x7e\x2b\x4d\x04\x1a\ +\x93\x1d\x06\x48\x20\x6c\xd5\x67\x70\xfa\x9e\xa5\x4e\x0d\xaa\xe9\ +\x61\x3c\x78\x50\x82\xe2\x54\xea\x54\xf5\x17\xc1\xb4\x2a\x66\x46\ +\x16\xa0\xdb\xaa\x7d\x59\xba\xb2\xed\x6f\x3d\x51\x78\x71\x9b\x26\ +\x2b\x4f\x6b\x1a\xcf\x1d\x28\x24\x78\xdd\xc3\xba\xb7\xd8\xdc\x5e\ +\x16\xc5\x73\xea\xca\x88\x6f\x25\x3b\xe9\x80\x80\x07\x23\xed\xa8\ +\xa1\x18\x18\x33\xb0\x34\xe7\x6d\xb3\xad\xb2\x66\xad\x8f\x51\x7d\ +\xca\xfc\x4b\x99\xb8\x41\xfc\x89\x9f\xd8\x3d\xef\xc6\x7d\x7e\x60\ +\xab\xdb\x47\x37\x7d\x60\xd5\xdf\xad\x71\x60\x59\xb0\xee\xdb\xfe\ +\xe8\x9c\xb6\x7d\x19\x3c\x51\xc9\x95\x3e\xd1\x67\xa1\xf9\xf8\xb5\ +\xcf\xa6\x2d\xeb\xb8\xa3\x58\x7d\x5e\xab\x1e\x67\xa5\xea\x65\x5e\ +\xa8\x5e\xee\x2a\x53\x5f\x54\xa9\x87\xdd\x22\xf5\x5b\x6b\xd4\xcb\ +\xfb\x94\xa8\x2f\x0a\xd4\xcb\x5d\xf5\xe9\x7e\x5e\x9e\xbe\xa8\x4e\ +\x9f\x15\xa7\xfb\xb1\x34\xbd\x2c\x2a\xd3\xcb\xcd\xc2\x74\x3f\xab\ +\x4b\x2f\x3b\x35\xe9\xcb\x92\xf4\x65\x45\xfa\xac\x20\x7d\x51\x8f\ +\x5e\x67\xe5\xe8\xd3\x27\x40\xbb\xd5\xe8\xcb\x62\xf4\xb2\xac\x45\ +\x5f\x94\xa2\x2f\x2b\xd1\xe7\x85\xe8\x6e\xaa\x43\x9f\x95\xa1\xcf\ +\xaa\xd0\xe3\xac\x08\x7d\x51\x83\xfe\xd8\x25\xe8\x65\x1f\x65\xf5\ +\x81\x7f\xbd\x87\xdf\xd1\x7d\xf2\x87\xe8\x3e\x69\xd2\x7d\xec\x52\ +\xf7\xb1\x0f\xa0\xfb\xe4\x9b\xba\x4f\xfe\xb5\xba\xcf\x87\x89\x3e\ +\xee\x71\x45\x9f\xb2\x97\xcc\xf2\xaf\x60\x4a\xe5\x0e\x2a\x14\x1f\ +\x8a\x0a\xf9\x4f\x54\xe8\xe3\xf6\x73\x2f\xb5\x4d\x4e\x09\xc7\x1f\ +\xa8\x72\xc3\xcd\x2b\x37\xc2\xbc\x72\xc3\x2f\x2a\x37\xf2\xa2\x72\ +\x23\xbf\x67\xe5\x46\x5d\x56\x6e\x8c\x65\xf5\xdb\xd2\x8d\xb8\x53\ +\xba\x91\xff\x10\xa5\x1b\xf1\x53\xe9\xc6\xe8\x10\x7b\x73\x03\xfe\ +\xad\xa1\xb3\xbf\x08\xe0\x77\x99\xad\xdf\xa1\xae\xfd\x29\xb2\xf5\ +\xb2\xf7\x33\x37\x6b\x1b\x8e\xfc\x56\x05\x83\x61\x51\x30\x68\xe7\ +\x15\x83\x65\x56\x31\x58\x7e\xd3\x8a\xc1\x34\xaf\x18\xf4\xb3\x8a\ +\xc1\xb8\xad\x18\xf4\xb3\x8a\xc1\xbc\xad\x18\x0c\xbf\x83\x8a\xc1\ +\xba\xf7\x4b\x2d\x5b\xf8\x97\x69\xec\x06\x9e\xf4\x3e\x81\xc7\x7f\ +\x0a\x3c\x9f\x02\xcf\x1f\x2c\xf0\xd4\x7d\xcc\x3a\xf0\xaf\x8a\xe6\ +\x87\x58\x1f\x9f\x1a\xe5\x0f\x4f\x8d\xea\x6e\x6a\x54\x77\x53\xa3\ +\xf2\xd0\x47\xe2\x9b\x5c\xfb\xc6\x91\x78\x9e\x67\x47\xa5\x65\x47\ +\xf6\xff\x30\x3b\xaa\xfb\xd8\x74\xf8\xc3\x95\x41\xbb\xf7\x2c\x83\ +\x8e\x0b\x4c\x8b\x77\x60\x9a\xbb\xbf\x0c\xfa\x23\x30\x2d\xde\xc0\ +\x34\x37\x61\x5a\x5e\x60\x5a\xb8\x07\xd3\xd2\x12\xd3\xd2\xad\x98\ +\xe6\xef\xc1\xb4\xb4\xc0\xb4\x7c\x2f\xa6\xc5\x11\xd3\xec\x1c\xd4\ +\xf2\x63\x83\x5a\x7e\x1c\x50\xdb\xc7\xa6\x43\xe4\x11\xfb\x87\x29\ +\xed\x69\xa9\xb4\xe7\x49\x69\xf7\xf7\x29\xed\x61\xa9\xb4\xc7\x85\ +\xd2\x1e\x3f\x44\x69\x8f\x33\xa5\x3d\xd6\xbd\x52\xfb\x6f\xa9\xb4\ +\xc7\xdb\x94\x76\xf7\x6b\x85\xf6\xb4\xd4\xd9\xfd\x47\xeb\xec\xe1\ +\x77\xa1\xb3\xd7\xbd\xfc\x5f\xff\x41\x91\xf4\x89\x59\xfe\xce\x98\ +\xe5\xc7\xa0\x70\xf9\xc4\x2c\xf7\x3a\x84\x35\x7b\x73\x2d\xfe\x97\ +\x26\xf8\xb7\x01\xdf\xcc\x4a\x17\x9f\xf8\xfb\xc7\xca\xe1\xc1\x10\ +\x37\x43\xfe\xf2\xc9\x0b\xfd\x57\x9d\xf8\xaf\x2f\xf9\x1f\x0b\xfb\ +\xea\xb3\xff\x05\xcf\x2f\xa9\xfe\ +\x00\x00\x02\xd9\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x02\x7b\x49\x44\x41\x54\x78\xda\xa4\ +\x93\xdf\x6f\xd2\x50\x14\xc7\x0f\x6d\xe9\x28\xc8\xc2\x18\x2c\x88\ +\x19\x46\x60\x22\x68\xb6\x2c\x61\x33\x99\x59\xc2\x5e\xf6\xb2\xf8\ +\x32\x7d\xf5\x9f\xe0\x2f\xd8\x5f\xc0\x93\x7f\x00\x89\xc9\x9e\x0c\ +\x5b\xe2\xc3\xde\xcc\x8c\xbf\x96\xc8\x8b\x59\x1c\xc1\x41\xe6\x34\ +\x99\x80\x80\x42\xa1\x2d\xa5\x2d\x9e\x53\x0a\x81\xc5\x37\x6f\xf2\ +\x6d\x6f\x7b\xcf\xe7\x7b\xcf\xbd\xf7\x5c\xdb\x60\x30\x80\xff\x69\ +\x1c\x3d\x5e\xd8\x6c\xc0\xe2\x9b\x64\x03\x08\xa2\x76\xb1\xbb\x81\ +\x0a\x59\x71\xdf\x51\x1f\x70\xaa\x1c\xea\x4a\xc7\x0f\xd2\x33\x9c\ +\x9c\xbb\x66\xf8\xd8\x2e\x08\xe9\xf0\xf2\x72\x34\xb8\xb4\xe4\x15\ +\x66\x67\x1d\x94\xa1\xdc\x6e\xaf\x5e\x9d\x9f\x6f\x5e\x9c\x9e\x3e\ +\x51\x65\x39\x83\x71\xaf\xa6\x32\x18\xc1\x82\xc7\xb3\xf7\x70\x67\ +\x27\x3e\xe0\x38\xa1\xa7\x69\xd0\x6b\xb5\x46\x63\xce\x40\x3c\xee\ +\xf4\x87\xc3\xf3\xf9\xa3\xa3\xbd\xee\xf0\xbf\x69\xc2\xd0\x03\xd3\ +\x0a\xb2\x0e\x47\x7a\x75\x7b\x3b\xde\x92\x24\x21\x90\xcd\x42\xa7\ +\xd3\x99\x92\xf9\x4f\x51\x84\x07\xa9\x54\x9c\x99\x99\x49\x13\x33\ +\x36\xc0\xf5\xec\x86\x12\x89\xe8\x6f\x51\x14\xee\xe6\x72\xe6\x94\ +\xf7\x0e\x0f\x41\x14\x45\x53\xd4\xa7\x16\x3b\x38\x00\x11\x4d\x16\ +\x22\x91\xa8\x3e\xdc\xa7\xe1\x12\x34\x80\x47\x6e\xbf\xdf\x5b\x6f\ +\x36\xe1\x65\x34\x0a\x4f\x4b\x25\x50\x14\x05\x42\xfb\xfb\x20\x49\ +\x12\x94\xf0\x9b\x61\x18\x78\x9d\x4c\x82\xdd\x6e\x07\xdf\xdc\x9c\ +\x97\x18\x44\x9f\x33\x96\xc1\xa2\xc1\x30\x0e\x0d\xd7\xed\x76\xb9\ +\x20\xeb\xf3\x41\xa1\x50\x80\x6a\xb5\x6a\x1a\xd9\xf0\x94\xde\x20\ +\xcc\xd3\x29\xf5\xfb\xa0\x48\x92\x83\x98\xc9\x0c\x40\xc3\x01\x15\ +\xd3\x95\x30\x0b\x97\x61\x00\xcb\xb2\xe6\x6c\x3c\xcf\x9b\xba\x31\ +\xb1\xdb\x2c\xc6\x6a\x56\xdf\xcc\xa0\x0f\xf0\x43\xac\xd5\x94\x41\ +\xbd\x0e\x82\xae\x43\xec\xf8\x78\x0a\xe6\x38\x0e\x52\xc5\x22\x38\ +\xe9\x38\x08\x50\x55\x85\x98\xb1\x01\xba\xbd\xaf\x55\x2a\x0d\x37\ +\x06\x2e\x4e\xc0\x9f\xd7\xd6\xe0\xd3\xca\x8a\x69\x40\xda\x28\x97\ +\x4d\x83\xb6\x2c\x37\x89\x99\x34\xc8\x7d\x6b\x34\xca\xb8\x53\xf2\ +\xe5\xd6\x96\x09\x9f\x21\x7c\x0b\xc7\x48\x27\xb1\x98\x99\xee\xbb\ +\x48\x04\x0c\xc3\x90\x2b\xbd\x5e\x89\x98\xb1\x81\x81\xe5\xd9\xd5\ +\xf5\xcc\xc7\x7a\xbd\xe0\x05\x90\xbf\xae\xaf\xc3\x6d\xfc\x2f\x58\ +\xa2\xfe\x09\xc2\x1e\x84\xf3\x9d\x4e\x41\x32\x8c\x0c\x31\xc4\xda\ +\xa8\x54\x69\x97\x29\x28\x89\xd5\x78\x87\x61\xd2\x71\x9e\x8f\xc6\ +\x78\xde\xeb\x61\x59\x07\x05\xfd\xd1\x75\xa5\xa8\xaa\xcd\x82\xaa\ +\x96\x2e\x10\xce\x63\x15\x5e\x52\x01\x12\x6b\x19\xd0\x69\xcc\xa3\ +\x7c\x58\x5e\x81\x04\xc0\xe6\x02\xc0\x7d\xbc\x5c\x37\xad\x42\xfb\ +\x59\x03\xf8\x72\x06\xf0\x16\xa7\xc5\x2e\xfc\x42\xd5\x91\xd5\x46\ +\x06\x8c\xb5\xc1\xce\x6b\xf7\xe3\x5f\x8d\x2e\x62\x17\x25\x21\x6b\ +\xfc\x15\x60\x00\xcf\x23\x1c\x65\xff\xcb\xd4\xf5\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x0a\ +\x05\xb6\x32\xc2\ +\x00\x63\ +\x00\x66\x00\x67\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x6f\x00\x72\ +\x00\x04\ +\x00\x07\x2b\xb3\ +\x00\x6c\ +\x00\x65\x00\x64\x00\x73\ +\x00\x06\ +\x07\xfc\x33\x67\ +\x00\x79\ +\x00\x65\x00\x6c\x00\x6c\x00\x6f\x00\x77\ +\x00\x05\ +\x00\x6e\x8b\xbe\ +\x00\x67\ +\x00\x72\x00\x65\x00\x65\x00\x6e\ +\x00\x06\ +\x07\x68\x84\xd5\ +\x00\x6f\ +\x00\x72\x00\x61\x00\x6e\x00\x67\x00\x65\ +\x00\x07\ +\x0c\x52\x56\x3e\ +\x00\x75\ +\x00\x6e\x00\x6b\x00\x6e\x00\x6f\x00\x77\x00\x6e\ +\x00\x03\ +\x00\x00\x78\xb4\ +\x00\x72\ +\x00\x65\x00\x64\ +\x00\x05\ +\x00\x7d\xf0\xa5\ +\x00\x77\ +\x00\x68\x00\x69\x00\x74\x00\x65\ +\x00\x04\ +\x00\x06\xe8\x89\ +\x00\x67\ +\x00\x72\x00\x61\x00\x79\ +\x00\x05\ +\x00\x6a\x2b\x82\ +\x00\x63\ +\x00\x6c\x00\x65\x00\x61\x00\x72\ +\x00\x08\ +\x06\xc1\x59\x87\ +\x00\x6f\ +\x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0f\ +\x00\xe2\x09\xa7\ +\x00\x61\ +\x00\x64\x00\x64\x00\x5f\x00\x63\x00\x6f\x00\x6d\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x08\xc8\x58\x67\ +\x00\x73\ +\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x0c\x2a\xdc\x27\ +\x00\x6d\ +\x00\x6f\x00\x64\x00\x75\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x0c\xad\x0f\x07\ +\x00\x64\ +\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0f\x2a\x09\xc7\ \x00\x64\ \x00\x75\x00\x70\x00\x6c\x00\x69\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x09\ +\x07\xbc\x8f\xc7\ +\x00\x65\ +\x00\x6d\x00\x70\x00\x74\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x11\ +\x06\x4b\xf9\x47\ +\x00\x61\ +\x00\x64\x00\x64\x00\x5f\x00\x70\x00\x61\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\ +\x00\x08\ +\x0b\x07\x5a\x27\ +\x00\x65\ +\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x07\ +\x04\xca\x57\xa7\ +\x00\x6e\ +\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0d\ +\x07\xd4\x51\x07\ +\x00\x70\ +\x00\x61\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x01\x6c\xc5\xe7\ \x00\x61\ @@ -5830,51 +10426,14 @@ qt_resource_name = b"\ \x0c\x83\x9f\x27\ \x00\x63\ \x00\x6f\x00\x6d\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0d\ -\x07\xd4\x51\x07\ -\x00\x70\ -\x00\x61\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x07\ -\x04\xca\x57\xa7\ -\x00\x6e\ -\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0a\ -\x0c\xad\x0f\x07\ -\x00\x64\ -\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0a\ -\x0c\x2a\xdc\x27\ -\x00\x6d\ -\x00\x6f\x00\x64\x00\x75\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x11\ -\x06\x4b\xf9\x47\ -\x00\x61\ -\x00\x64\x00\x64\x00\x5f\x00\x70\x00\x61\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\ \x00\x0c\ \x07\x4a\x9a\xc7\ \x00\x70\ \x00\x72\x00\x6f\x00\x70\x00\x65\x00\x72\x00\x74\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x0b\x07\x5a\x27\ -\x00\x65\ -\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x08\xc8\x58\x67\ -\x00\x73\ -\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x06\xc1\x59\x87\ -\x00\x6f\ -\x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x07\x25\xc7\x07\ \x00\x69\ \x00\x6e\x00\x74\x00\x65\x00\x72\x00\x66\x00\x61\x00\x63\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0f\ -\x00\xe2\x09\xa7\ -\x00\x61\ -\x00\x64\x00\x64\x00\x5f\x00\x63\x00\x6f\x00\x6d\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x11\ \x06\xbf\x6f\x47\ \x00\x61\ @@ -5884,63 +10443,177 @@ qt_resource_name = b"\ \x05\x53\x70\x47\ \x00\x61\ \x00\x64\x00\x64\x00\x5f\x00\x70\x00\x72\x00\x6f\x00\x70\x00\x65\x00\x72\x00\x74\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x07\ +\x0a\x65\x4b\x64\ +\x00\x63\ +\x00\x6f\x00\x6e\x00\x6e\x00\x65\x00\x63\x00\x74\ +\x00\x0f\ +\x03\x17\xd9\xe5\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x5f\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x74\x00\x69\x00\x74\x00\x6c\x00\x65\ +\x00\x05\ +\x00\x7b\x88\x98\ +\x00\x74\ +\x00\x72\x00\x61\x00\x73\x00\x68\ +\x00\x06\ +\x07\xab\x94\x04\ +\x00\x73\ +\x00\x75\x00\x62\x00\x6d\x00\x69\x00\x74\ +\x00\x04\ +\x00\x07\x35\xdf\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\ +\x00\x08\ +\x03\x67\x39\x44\ +\x00\x70\ +\x00\x6c\x00\x6f\x00\x74\x00\x2d\x00\x61\x00\x64\x00\x64\ +\x00\x13\ +\x01\x2d\xb2\x94\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x5f\x00\x73\x00\x75\x00\x62\x00\x74\x00\x69\x00\x74\x00\x6c\x00\x65\x00\x5f\x00\x6c\x00\x69\x00\x67\ +\x00\x68\x00\x74\ +\x00\x07\ +\x0a\xca\x80\xf3\ +\x00\x64\ +\x00\x65\x00\x74\x00\x61\x00\x69\x00\x6c\x00\x73\ +\x00\x04\ +\x00\x07\x73\x64\ +\x00\x70\ +\x00\x6c\x00\x6f\x00\x74\ +\x00\x0d\ +\x0d\x27\xa7\xa5\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x5f\x00\x73\x00\x75\x00\x62\x00\x74\x00\x69\x00\x74\x00\x6c\x00\x65\ +\x00\x04\ +\x00\x07\xab\x60\ +\x00\x73\ +\x00\x74\x00\x6f\x00\x70\ " qt_resource_struct_v1 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\ -\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x01\x17\x67\ -\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x08\xa8\ -\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x97\ -\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x01\x5b\xca\ -\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x01\x00\x00\x85\xe0\ -\x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x01\x44\x21\ -\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\xf8\x52\ -\x00\x00\x01\x4e\x00\x00\x00\x00\x00\x01\x00\x01\x01\x18\ -\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x99\x13\ -\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xf1\ -\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x02\ -\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x00\xdc\xe7\ -\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x57\ -\x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x17\x18\ -\x00\x00\x00\x92\x00\x00\x00\x00\x00\x01\x00\x00\x68\xdb\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ +\x00\x00\x00\x2a\x00\x02\x00\x00\x00\x08\x00\x00\x00\x20\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x15\ +\x00\x00\x00\x10\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\ +\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x9e\x1a\ +\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x01\x3a\xc4\ +\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x01\x1f\xda\ +\x00\x00\x02\x8c\x00\x00\x00\x00\x00\x01\x00\x01\xf1\xd9\ +\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x00\xf9\x8c\ +\x00\x00\x02\x64\x00\x00\x00\x00\x00\x01\x00\x01\xda\x30\ +\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x95\x54\ +\x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x01\xc3\xe1\ +\x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x01\x80\x0d\ +\x00\x00\x01\x5e\x00\x01\x00\x00\x00\x01\x00\x00\xf8\xd1\ +\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x01\x29\x1e\ +\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\xca\xd4\ +\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x01\x0c\xbf\ +\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xd3\x24\ +\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x01\x49\x34\ +\x00\x00\x01\x24\x00\x00\x00\x00\x00\x01\x00\x00\xde\xad\ +\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x29\ +\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x02\x25\x8f\ +\x00\x00\x03\x70\x00\x00\x00\x00\x00\x01\x00\x02\x5d\xc0\ +\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x02\x7d\x14\ +\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x02\x20\x78\ +\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x02\x3d\xbd\ +\x00\x00\x02\xc6\x00\x01\x00\x00\x00\x01\x00\x02\x01\x9a\ +\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x02\x3b\x2b\ +\x00\x00\x02\xfa\x00\x00\x00\x00\x00\x01\x00\x02\x23\x04\ +\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xfe\xab\ +\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x02\x5b\x00\ +\x00\x00\x03\x7e\x00\x01\x00\x00\x00\x01\x00\x02\x5f\xe7\ +\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x07\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x61\xdd\ +\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x67\xd1\ +\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x05\x2b\ +\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x3f\xdc\ +\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x44\ +\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x11\x56\ " qt_resource_struct_v2 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x01\x17\x67\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x08\xa8\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x97\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x01\x5b\xca\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x01\x00\x00\x85\xe0\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x01\x44\x21\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\xf8\x52\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\x4e\x00\x00\x00\x00\x00\x01\x00\x01\x01\x18\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x99\x13\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xf1\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x02\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x00\xdc\xe7\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x57\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x17\x18\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x92\x00\x00\x00\x00\x00\x01\x00\x00\x68\xdb\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x6b\x4a\xca\x90\x2f\ +\x00\x00\x00\x2a\x00\x02\x00\x00\x00\x08\x00\x00\x00\x20\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x15\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x10\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x9e\x1a\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x01\x3a\xc4\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x01\x1f\xda\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x02\x8c\x00\x00\x00\x00\x00\x01\x00\x01\xf1\xd9\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x00\xf9\x8c\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x02\x64\x00\x00\x00\x00\x00\x01\x00\x01\xda\x30\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x95\x54\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x01\xc3\xe1\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x01\x80\x0d\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x5e\x00\x01\x00\x00\x00\x01\x00\x00\xf8\xd1\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x01\x29\x1e\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\xca\xd4\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x01\x0c\xbf\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xd3\x24\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x01\x49\x34\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x24\x00\x00\x00\x00\x00\x01\x00\x00\xde\xad\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\xf0\x29\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x02\x25\x8f\ +\x00\x00\x01\x86\xdf\x75\x02\x17\ +\x00\x00\x03\x70\x00\x00\x00\x00\x00\x01\x00\x02\x5d\xc0\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x02\x7d\x14\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x02\x20\x78\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x02\x3d\xbd\ +\x00\x00\x01\x86\xdf\x9f\x5c\xd6\ +\x00\x00\x02\xc6\x00\x01\x00\x00\x00\x01\x00\x02\x01\x9a\ +\x00\x00\x01\x86\xdf\x77\x25\x7f\ +\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x02\x3b\x2b\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xfa\x00\x00\x00\x00\x00\x01\x00\x02\x23\x04\ +\x00\x00\x01\x86\xca\x96\x09\x21\ +\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xfe\xab\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x02\x5b\x00\ +\x00\x00\x01\x86\xdb\x75\x5b\x7a\ +\x00\x00\x03\x7e\x00\x01\x00\x00\x00\x01\x00\x02\x5f\xe7\ +\x00\x00\x01\x86\xdf\x77\x8f\x6c\ +\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x07\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x61\xdd\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x67\xd1\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x05\x2b\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x3f\xdc\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x44\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x11\x56\ +\x00\x00\x01\x86\xca\x96\x09\x22\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] diff --git a/frappy/gui/resources_qt6.py b/frappy/gui/resources_qt6.py new file mode 100644 index 0000000..19cbf7b --- /dev/null +++ b/frappy/gui/resources_qt6.py @@ -0,0 +1,10575 @@ +# Resource object code (Python 3) +# Created by: object code +# Created by: The Resource Compiler for Qt version 6.4.2 +# WARNING! All changes made in this file will be lost! + +from PyQt6 import QtCore + +qt_resource_data = b"\ +\x00\x00,\xb6\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07%\x17\x9dL\xa8\xf4\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00 \ +\x00IDATx\xda\xed\xdd{\x90\x9c\xd5\x99\xdf\xf1\ +\xe7t\x8f\xc6\x83lg58\xb21\x88\xf2H\x0bK\ +\x95\x11\xc2\xdc\x04\xc6+\xa1\x11B\xd3S\xa5\xc4\xa8m\ +.\xc9\x12\xaf\xcd\xd5Y'\x95TET\xb1tk\x00\ +u\xb7dRr\xa56.\xefb\xc3f7\x89\xb6\xb8\ +fdW\x5c53\xba\x8d.\xbb \x84\x0c\x01D\xaa\ +d\xae\xb1\xe4\xfbe\xb4\x0b\x16b\xd4\xfd\x9e\xfc1j\ +\xa1{\xdf\xcey\xdfs\xce\xfb\xfdT\xb9*\xd9B=\ +\xdd\xef\xe5\xfc\xde\xe7\x9c\xf3\x9e\xa3\xb4\xd6\x02\x00\x00\xe2\ +\x95\xe1\x10\x00\x00@\x00\x03\x00@\x00\x03\x00\x00\x02\x18\ +\x00\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\x80\x00\ +\x06\x00\x80\x00\x06\x00\x00\x040\x00\x00\x040\x00\x00\x04\ +0\x00\x00 \x80\x01\x00\x08I\x17\x87\x00\x00\xdc\xb5p\ +\xcbm\x1doY\xb7}\xf1:\xc5\x91t\x8fb;B\ +\x00\xf0;`\x09h\x02\x18\x00\xe0x\xd8\x12\xca\x040\ +\x00\x10\xb8\x1e!\x90\x09`\x00 p\x09d\x02\x18\x00\ +\x08\xdd\xdbR\xdf\x88\x12\xc6\x040\x00\x10\xba\x841\x01\ +\x0c\x00\x04/A\x0c\x02\x18\x00\x08]\xc2\x98\x00\x06\x00\ +\x82\x97 &\x80\x09`\x00 x\x09b\x02\x18\x00\x08\ +^\x82\x98\x00\x06\x00\x82\x17\x041\x01\x0c\x00\x04/A\ +\x1c\x0a\xb6#\x04@\xf8\x82\xf3B\x05\x0c\x004\xf0H\ +G5L\x05\x0c\x80\xf0\x05\xe7\x8b\x0a\x18\x00h\xc8\x91\ +\x8ej\x98\x0a\x18\x00\xe1\x0b\xce#\x150\x00\xd0`#\ +\x1d\xd50\x150\x00\xc2\x17\x9c_\x02\x18\x00h\x9c\x91\ +\x8e\xf3L\x174\x00\x1adx\xcb\xe7.i*`\x00\ +\x84/8\xff\x040\x00\x10\xbeH\xc7u@\x00\x03\xa0\ +\xd1\x05\xd7\x03\x01\x0c\x00\x84/\xd2q]\x10\xc0\x00h\ +d\xc1\xf5\x91\x00fA\x03\xa0q\xf5\xcc\xf6\xc5\xeb\xce\ +t\x8c8@\xe2\xc7\xech\x02\x18\x00\xe1\xeby\xe8\x12\ +\xc6~\x860]\xd0\x00\x08\xdf\x00\xc3\xb7\x93\x7f\xc7u\ +C\x00\x03\x00\xe1\xdba\x88\x12\xc2\xee^?\x040\x00\ +\x1a\xcf@\xc3\x97\x10v\xfb:b\x0c\x180@k\x91\ +5o\xee\xd5\xf7\xce\xbeH\xfd\xe8\x9f&\xf4\xe7w\x8e\ +\x07\xf3\xdb\x9e\xbb\xa6_DD\x0a?\xde#\x1b\xe7/\ +P\x99\x98F\xd5\x08\xdfu6\x8e\xa9\xa4\xfc\x98:5\ +&L\x00\x03&n\xa4\x91\xe1\xd4\xdcHQ.\xaf\x94\ +\xe5f\x8c\xf0]g\xf3\xd8\x12\xc2\x8e\xe8\xa2\xe9\x04\xd2\ +\x19\xa4\xed\xca\x8c\xb6w\x8c\xf4`\xbe\xa9\x86\x8fW\x8d\ +`\xfb\xe1\xce\x95\x10&\x80A\xa8\x1eQ\xcb\xe5\x15G\ +\xcb\x9eZ$\xa2DKvl\xfdi\xcf\xc7\x82\x8f\x0c\ +s\xa0\x90\x9a\x10\xa6\x0b\x1a\x040\x9c@\xf8N\x89c\ +\xc2\x14\x8bu\x1c=\xd6\x89\x860\x150\xbc\xa7E$\ +C\xc8\x02\xf0\x0c\xaf!\xc1{\xbf:4I\xf8R\xfd\ +\x02\xed\xf4\x04$\xdavP\x01\xc3y5-\xd25J\ +\x85K\xf8\x02vB8\xa9\xaeh\x02\x18\xee\x04m$\ +\xd25F\xd0\x12\xbe@:B\x98.h$&\xd2S\ +\xe3\xb7\xf5y\x80\x84/\x804\xa1\x02F\xec\xca\xaf\xef\ +\xd5+\xdfx\x8d\x03A\xf5\xcbA@\xaa\xab`\x02\x18\ +\xd6\xf1\x1a\x10\x08_\x10\xc2'\xa3\x0b\x1a\x84/\x00$\ +\x80\x0a\x18\x04-\xa8~\x81\x04\xaa`\x02\x18mY\xfd\ +\xc6^]x\x9dq\x5c\x10\xbe \x84\x09`\xc4\xe6\xae\ +W_\xd4\x8f\xed\x7f\x87\x03\x01\x00\x040l\xda\xf9\xbb\ +\x09\xfd\xf9\xe7\xc79\x10\xa0\xfa\x05U\xb0AL\xc2\xc2\ +\x19U#\x11\xc2\x17\x84/\xd2\x1a\xc2T\xc0\x88\x15K\ +?\x9a\xd7\xec^\xb8\xae`R\x1d`\x1f\x01\x0c9\x5c\ +\x13\xe9\xde@\x83k\xcb\xe3\x97\xce\xa7\xfa\x05<\xae\x82\ +muE\x13\xc0)\x17i\xc2\xb7\x19\xd5\x81\xbc\xca\xa6\ +h\xc0\xa6\x93\x8a\x9d\xea\x19 \x80A\xe3\xd8\xb1\xc9\x81\ +\xbc\xea\xca\x88(\x0eEK\xe1\xadF\x86\xf5\xec\x9e\xe9\ +2K\xaf\xe3\x80\x80*\x98\x00&ta\xae\xcaCs\ +\xc7v\xe1\x96u\x5c{\x00\x01\x9c\xce\xd0Ms\xc8\xa4\ +\xad\xdb\xd8\xc5\xaa\x81\xa3\x00\xaa\xe0\xd3\xa3y\xa2\xfa\x0d\ +\x16\xe1\x0b\x80\x0a\x18\xb0\xe0\xfd\x1b\xf2\xaa\x87+\x98\xea\ +\x17\xf0\xb4\x0a\xa6\xf9\xa2\xda\xf5B5\x97W\xf5w\x93\ +'\x97\xe6U&#\x92e\x04\x17\x00\x150\xe2\xa6E\ +$\x93\x92\xee\xe5(\xb7\x5c)\xc5\xa4)\xaa_ \xac\ +*\x98\x00\xa6\xcau\xe7\xa1\xe2\xc8\xeb+\xf5\xff\xff\x9c\ +\xb3\xa6\xcb\x9b\x8br\x84.\x00*`\x10\xbe&M.\ +]\xae\xba7\xac\xd7'\x860g\x1a\x00\x01\x8c\xc4U\ +\xde\xd8\xab\x8b\x01\xee\xbb\x1b\xe5\xf2t+\x07\x88\xeeg\ +\xa4\xe5:7\xd1\x0d\xcd\x8b\x1a\x0e\xabF\x22!\x84o\ +\x94\xcb\xab\xeb\xcf\x9ey|5O\xec\x02\xa0\x02\x86k\ +B\xeaj\xaeW\xb8\x9b\xae^@\xe4R\xfd\x02T\xc1\ +\x040\xe1k3l\x01\x00\x040\xe1K\xe8\x02\x80\x93\ +\x18\x03N\xd8\xe1\xdaT\xf0\xfa\x18\xbe\xa5\x0b/\xe6\x04\ +BD\xe8~\x06\xd7=\x15\xb0\x87|\xda\x8bwri\ +^M\xcbr\xce\x00\xc0\x04\x028\x01\xbeT\xbbt/\ +\x03\x00\x01L\xe8\x12\xbap\x14\xdd\xcfH\xfb\xf5\xdf\xee\ +lh\xc6\x80\x09_\x00\x00\x15px\x0eG~T\xbd\ +\x91\x16\xc9P\xfb\x02\x00\x01L\xc5\x1b/\xc2\x17\x00\x08\ +`X\xaev9\x0a0\x85\xf1_\xa0\xfdq`\xc6\x80\ +\x0d\xb8g\xcf\x8bZk\xed\xf4\xfb\xbc\xbf\xb9~\xd9\xc3\ +Q\x8e\xf0\x05\x00*\xe0\x80|o\xdf;\xf2\xbd}\xef\ +8\x19\xbc\x7f?\xbf_\xbe\xf0\x89^\x82\x17\x00\x08\xe0\ +\xb0\x1c\xae\xb9\xf9\xbd\xe8j\x06\x00\xb7\xd1\x05\xdd\x81\xe7\ +~7\xa1]\x5c\xc9\xaaFW3b\xc0\xf8/\xd0\xd9\ +\xfd@\x05\xdc\xa2H\x8bdG\xdd\x0b\xddj.\xaf2\ +\xa2E\xb1\xd1.\x00x\x81\x00n\x81\x167\xc3WD\ +$\xabDD\x08_\x00 \x80\x03S\x8bD\xba\xc6\xdc\ +\x09\xdf\xf7o\xc8\xab\x1e\xce\x1e\x00\x10\xc0\xa1V\xbc\xb5\ +Hd\xda\x98{U/\xe1\x0b\x00~c\x12\xd6\x99\x0e\ +\xce\xc8\xb0v1|\x7fs\xfd\xb2\x879;H\x12\x13\ +\xb0\x80\xce\xef\x0b\xea\xa8\xd3\x98t\xf0\xf5\x22^-\x02\ +\x80p\x10\xc0\xa7\xe0\xd2jV\x84.\x00\x10\xc0\x84/\ +\xa1\x0b\x00 \x80\xc3\x0c\xdfZn9\xe1\x0b\xb4h\xfb\ +\xe2u\x1c\x84\x94\x1e\xaf\x85[n#\x80}\xa7\x1d\xe8\ +t\xa6\xf2\x05\x08]\xb4\x7f\x1d\xf8\x16\xc6\xa9\x0e`\x17\ +*\xde(\x97g\xf1*\x80\xf0\x85\xa1\xeb\xc2\xa7\x10N\ +\xedkH\x91\x03%o\x8d\xf0\x05\x08_\xa4\xf6\xfaH\ +m\x00gG\xd7'\x9a\xc0\x93K\xf3*C\xf8\xc2C\ +I\xbe\x03L\xf8\xc2\xf5\xeb\xa4\x95\xfb#\x95\x01\x9ct\ +\xd7\xf3\xa1\xa5y5-\xcbM\x02\x10\xbeH\xf3\xf5\x92\ +\xaa\x00\x8e\x22\x9dh\xf8\xea\xc1\xbc\xd2\x83y\xf5\x11\xc2\ +\x17 |\x91\xfa\xeb&5\x01\x1cEZ\xb2c\xeb\x13\ +\x0d_n\x07\x00@\xaa\x02\xb8F\xf8\x02\x00\x08\xe0\x98\ +\xc3Ok\xe9J0|#\xc2\x17\xe8\x08\xdd\xcf\x08\xf5\ +\xfa\x09\xfa=`\xad\xb5d\x12\x9a\xed\x5c\x7f\xc5\x88\xf4\ +\x05\x00\xa4.\x80\x93\x08\xdf\xc9\x81\xbc\x9a\xc6&\x8f\x00\ +\x80\xb4\x06p\x12\xb3\x9d\x19\xeb\x05\x00\xa46\x80\x93z\ +\xcd\x88\xf0\x05\x00\xb4\x82\xceR\x03\x0e\xdd@\xf8\x02\x00\ +R\x5c\x01\xc7]\xfdR\xf5\x02\x00R_\x01\x13\xbe@\ +\x98|\xde\xef\x15\x5c?AW\xc0I\xbcj\x14\xe5\x96\ +\x13\xbe\x00\x80t\x07p\xdc\xe1K\xe5\x0b\x000\x92_\ +>\x7fy\xba\x9d\x81t\xa0\x1b\x1a!^7\xde\x060\ +\xe1\x0b\xd0\x98\x02>_/^\x060\xe1\x0b$g\xfb\ +\xe2u\x89\xdd\x0f\x840\x5c\xbfNZ\xb9?\xbc\x0a`\ +52\xac\x09_\x80\xc6\x15\x08\xe1\xfa\xf0&\x80\xb5\x8e\ +\x7f\x81+\xc2\x17\xa0\x91\x05\xd7\x85-\xde\xcc\x82\x8es\ +\xb6\xf3O\xaf[&\xe7N\xef&|\x01O\x1a[\xb6\ +,\xe4:\xf0\x91\xf3\x01\x9c\xc4{\xbe\x84/@#\x9c\ +\x948\x1e&\xe8Ap\xa4\xb0t\xf9\xcb\xd5\x22\xcd{\ +\xbe\x00\x80 9[\x01\xb3\x9d \x00\x80\x0a8\x05\x08\ +_\x00\x00\x01\x1c\xa3\xbe\x9e\xe9\x84/\xd0\xa2$\xdf\x05\ +\x06B\xb9/\x9c\x0c\xe0\xb8\xba\x9f+\x17^,o\xf7\ +\xe7hH\x00\x00T\xc0\xd5(\xbe\xbfu\xff\x05\x17\x11\ +\xbe\x00\x80D85\x09+\xce\x89Wt;\x03\x00R\ +_\x01G:\xbe\xf0\xbd\xfd\xbc>\xc2\x17\x00@\x00\x8b\ +\x88dG\xe3\x09\xdf\xd9=\xd3\xe5\xaf\xe7]N\xf8\x02\ +\x060\x11\x0b\xe8\xec~H\xd5,\xe8\xb7\x98p\x05\x00\ +\xa0\x02\x8e\x17\xdd\xce\x00\x00\x02\xf8\x18q\x8c\xfd\x12\xbe\ +\x00\x00\x028\xe6\xf0\x8dr\x84/`\x0b\xe3\xc0@\xfb\ +\xf7A\x22\x01\x5c\x8d\x92Y\xeb\x19\x00\x80\xd4V\xc0Z\ +D\xa6\x8d\xc5\x13\xbe}=\xd3E\xf1|\x0e\x00 \x80\ +E\xe2\xca\xc32\xcbL\x02\x00\x08\xe0c\x028\xa6\xae\ +\xe7\x02\xcbL\x02\xb1`\x1c\x18\x5c\xff\xed\x89u)\xca\ +Z\x0c\xeb<3\xe3\x19\x00@\x05|b8Z\xfe\xfc\ +\xc3\x03\x84/\x00\x80\x00>\x89\xed\xc9WL\xb8\x02\x92\ +A74\xb8\xee\x1d\x0e\xe08\xc6~i\x01\x00\x00\xbe\ +\xb0>\x06\x1c\xe7\xfb\xbe\x19\x12\x18\x00\xe0\x09\xef\xd7\x82\ +^\xd4;S\xf4`^1\xf9\x0aH\x16\xdd\xd0\xe0z\ +OY\x00\x8f_\xb3\x80\x9b\x1e\x00@\x05|,\x96\x9b\ +\x04\xa8\x0a\x00\xae\xf3\x98\x03\x98\xf0\x05\x00\xe0\xf4\xba|\ +\xfd\xe2\x8c\xf9\x02\x00|f\xa5\x02\xa6\xfa\x05\xd2\x8bn\ +hp}'\x18\xc0T\xbf\x00\x00\x04\x18\xc0\x00\xa8\x82\ +\x01\xdf\xafk\xe3\x01L\xf73\x00\x001\x07\xf0\x07U\ +\xbb_\x96\xaeg\x80*\x18H\xc2\x8e\x0f\xf2n\x07p\ +\xcfF\xfb\xd5/!\x0c\x00\xa0\x02\x06\x00\xaa`P\xfd\ +&\x1b\xc0\xb6\xc7~\xa9|\x01\x00I2\x9dsF\x02\ +8\xb2\xdc\xf1L\xf8\x02T\xc1@H\xd5\xaf\xb1\x00\xb6\ +\xb9\x0d`D\xf8\x02\x00\x02\xd4q\x00\xab\x91am\xb3\ +\xfbY\xf3R\x13@\x15\x0c8R\xfd\xaa\x91a]\x8b\ +\x1c\xaa\x80\xad\x85\xef`^e\xb8m\x01B\x18p \ +|\x8f\x06\xa7\xa1\xe4d\x164\x00\x00\xad\x14\x87\x86\xba\ +f3\xed\x7f\x01V\xbd\x02@\x15\x8ctU\xbf\x22\x22\ +\xd9\xd1\xf5Z\x8d\x0c\xebN' \xb7\x1d\xc0Uf>\ +\x03 \x84\x91\xb2\xf0=.\x07;\x1c\x0b\xee\xa8\x02\xb6\ +\xe5\xf0\x00\xe1\x0b\x00p\xdb\xd3?\xdf\xdfQ\x12\xb6\x1d\ +\xc0]\x16G\x8f\xbf\xbe\xe7E\xba\xb6\x01\xaa`\xc0\xd9\ +\xeaWD\xe4\x96sgut\x1d\xb7\x15\xa3Zky\ +\xfc\xa7\xfb\xad\x85\xe4\x96\xdf\xfe\x8a+\x01 \x84\x01g\ +\xc3WDd\xda\xd8\xb0^\xf2\xfc\x8e\xb6\xb3\xb0\xab\xad\ +\xd4\x1e]o\xb5B}cQ\x8e\x1b\x13\x00\xe0\xbc\xcd\ +\xbf\xfbu\xbc\x15\xb0M\xbc\xfb\x0bP\x05\x03\xaeW\xbf\ +\xc7\xe5V\x9b%)\xef\x01\x03 \x84A\xf8v\x12\xc0\ +!T\xc0\xeb.\x99\xcf\xd5\x00\x10\xc2\x807\xe1+\xd2\ +\xfe~\x08-\x07\xf0\x13?\xb33\xf9j\xf1\xd93\xe5\ +Of\xcd\xe2&\x04\x00x\xa5\xddE\xa9Z\x0e\xe0\x7f\ +\xf5\xf2.+?`\xf3\xd5\x0b\x08_\x80*8\xf5\x16\ +n\xb9\xcd\xeb\xcfO[\xf5[w\xb8\x8dE9\x9c\xe9\ +\x82\x8ex\xf3\x17 \x84\x09ax\x18\xbe\x22\x22Kw\ +\xb5\xfe:\x923\x01\xac\xb8\xed\x00\x10\xc2\xf00|E\ +DF\xafl\xbd\x17\xd7\x9d\x00\xe6\xba\x00@\x08\x8b\x88\ +\xbdn\xe2\xb4w?o_\xbcN\xcd\xee\x99n\xe5\xb3\ +{6\x0e\xdb\xab\x80\xab\x91\xbd\xdd\x8f\xd8x\x01\x00!\ +l7,\x09\xdf\xa9\xeb\xe9\xad\xfe\x9cZ\xf3G\x17\xdb\ +)$[\xcc\xc8\xa6\x03x\xda\x98\x9d\xf0\xad\x5cx\xb1\ +\x00\x00!l/4\x09\xdf\xe3\xaf\xa3\xfb\xfe\xf0\x22k\ +\xd7U\xad\x85\xc9X\x89wA\x17^\x7f\x8dV\x06\x00\ +!l)<\x09\xdfx\xaf\x9fV*UV\xc2\x02@\ +#\x1ah\x08\x13\xbe\xf1_7\xad\xf4\x16w%}\x80\ +~{\xfd\xb2{h^\x004\xd3\x98.\xdcr[j\ +_X<6L\xb7/^G\xe8:\xfa\xd0\xf6\xf8\xa5\ +\xcd\xaf\xe8\xa8t\x93\xabH\xdb\x98\x80\xc5\xe4+\x00m\ +\x04\x11\xab\x06\xc0H\xf8&\x9dk\x0d\xbb\xa0\xb5\xb68\ +\xfb\x99\xeb\x04\x80'\x95\x0d\xb8>\x9a\x0d\xf59\xe3\xa3\ +M\xc5[\xc3.\xe8jd\xf1\x9bj\xe1\x05`\x13\x87\ +Qk\xb9\xee\x0bW\x9ft\xc2\xb7?\xbb\x8b\xa3\xebk\ +\x95w\xed\xfcS\xde\xc0\x9c\xd3\x0f\x1bY*a\xb8\xfa\ +p\xf6\xf6\xa1\x83f*\xe0\x1f\xfd\xe3\x84\xb5\x8b\x9c\xbb\ +\xa7u\xb5H\xcb\xc2k\xe7\xeb\xff\xf9?\xfe\xbb^x\ +\xed|\xbd\xf0\xda\xf9\xfaT\xe1[o\xc4\xb7l\xdet\ +\xf4\xbf[x\xed|\x1d\xb1\xe6\xa7s\xfe\xf37W\x1f\ +=?\x9b7m\xd4g\x1a\x16z\xe5\xd5\xd7\xf4\xc2k\ +\xe7\xeb\x9b\xbft\xa3\xbe\xf9K7\x1e\xfdw4\xb6 \ +|\xdd\xba\x1e\x9a\xb9)\x1b\x8e\x01\xdb\xea~\x16\x11\x89\ +\x06\xf3\xac@\xd9\x82\x8d\x1b6\xe8\xd2\x83\xc5\x8e?\xe7\ +\xb2+\xae\x92\xbf\xf8\xf6w8\xf4\x0e8\xf8AUr\ +\xfd\xd7v|\x8fm\xd9\xf1\xbc\xea\xca\xa6\xf3\x94R\x09\ +\xa3\xdd\xf0M:\xdf\x12\x0b\xe0\x83K\xf2\xea\xaci\x5c\ +8\x0dOb\xa4e\xd1\x1f_\xad\x87\xff\xf7\x86\xa7\xf3\ +\xffb\xe9M\xa6>\xf7\xb2+\xae\x94\x97~\xb4\x9b.\ +\xcd$\x02\xc3r\xc5\xba\xed\x1f\x9eW*e\x8f\xb6\x84\ +0\xe1\xdb\x8e_\x1e\x9a\xd4\xe7\x8c\xff0\xb1\x00n\xd8\ +\x05mk\xddL\xc2\xb7A\xf7\x85\xd6G\xc3WD\xc4\ +d\xf8\x8a\x88\xbc\xf4\xa3\xddG\xc3@k-i\xed\xc6\ +\x0c)x\xebN7$\x11z#L\x974\xe7\xbcU\ +\x9f\xea\xe9VI\xbe\x8d\x93H\x05\xcc\xebGn4\xd4\ +'\xba\xf3\x9e?\x93\xaf\xfc\xe9W97\x01\x9d\xd3G\ +\x1e\xfb[\xf9\xecg?\x9b\xaasJ5L\xd5\xdbr\ +\x10Z\xc89#\x15\xf0\x07K\xcd\x87%\xf3\x80N\xaf\ +\x96\xe0\xc1y\xec\xbb\x7f\xc9\x09\xb0`\xf2p\x94\xd8\xdf\ +\xfe\xfa\x9d_\x95\xb4M\xbc\xa3\x12\xe6\xfc:\xa1\x89\xdb\ +\xae\xe1kH\xcc\x92\x0a\xbfJ:\xf1;0.\x1c\xd6\ +9]\xf4\xc7W\xeb-;v\xaa\xaelzV\x9e\xad\ +7\xd2T\xc3\x04\xaf\xcb\x1a\xde\x91\xddc\xc3\x5c\xc01\ +p\xa9Ja<8<\x8b\x17\x5c\xc3\xabJ\xe0<\xc6\ +\x19\xae\xa3\x8d\xb3\xf3\x8c\x01|\xfb\xcb/\xd2\x10\xc7X\ +\xa5P\xb9\x85\xa3\xfe\xbe6\xe7\xd4\x8d\xc6\x9b \xe6\xdc\ +%RX5\xb8\xe3N;\x09\xcb\xe6\xfbQ\xb5\x5c^\ +e\xb8\x1d\x8eV\xbe\xae\x85\xefI7\x01]\xd2-\xf9\ +\x0f\xff\xfe\x1b\xfa\xa5\x1f\xbd\xc0\xf9t\x10]\xd2T\xbd\ +q\xe7\xdd\x99&\x1d\x9fv\x0c8\xca\xe5U3%t\ +[_\x88%(\x9d\xad|O\xfd\x14\xa7%\xc3d\x80\ +`\xaa\xcc4\x8f\xf336L\xf0\xba\xe4\xf4]\xd0\x16\ +\x0f\x01m\xb9_\xd6>\xbc\x86\xc6\x0a4\xf2\xe0\xbc\xc4\ +\x16\xc0\x96<~\xe9|\xa1\xfb\xd9\x9fjID\xe4\x8e\ +\xbb\xff\xeca\xceVX\xf6\xbc\xf6\x7fS\xffP\xc5\xd8\ +0\xe7\xa2.\xa9\xb5)N;\x06\xacE$\xc3\x22\x1c\ +\xa9\x0f\xdf\xe3n\x12\xc6\x829\xa7!\x9f?\xba\xa5S\ +]\xf1Z\xdbv\xb7\x9d1`\x00a+>X\xe6 \ +\x9c\x22\x0c\x08\xe2t\x05o\x922\x1c\x82\xf8\xadY]\ +\xf1\xf2\x06\xe7\xd5\xa4\xd3<\xe1j?\x8fM\xf9\xc1\x22\ +\xe7\xf44\xe1@@pl\xe3@\x05\x9c\x80\x91\x1f\xfe\ +\xc0\xdb\xef\x1eia\x0c\xff\x04\xd5Z\xc4A\x08\xb2\x8b\ +\xe0\xc7G\x9eT\xfe\x88cA\xc5K\x00\xc3\x81\x00\x8e\ +\xb4d\xb2\xdcK\xc7\xfaO\xff\xf1\xdfQE\xa6!\x88\ +\x09cB\x97\x00\x06\xdcr\xf9\x15W\xc9\xffyq7\ +\x07\x82\xaa\x18\x04/\x01\x0c{x\x87\xfbd\xcb\xfe\xe5\ +\xf2\xa7\xff\xdb\xa3\x7fu\x13G\x82\xaa\x98\xd0\x05\x01\x0c\ +k\xb2\x0c\x00\x9f\xe4\x0ff\xfc\xb3\x9b\xa5\xa9\xcd\xc7@\ +\x18\x13\xba \x80\x13\xa1\xb5\x96\xeb\xbep\xb5\xd7\x0d5\ +\xdb\x15\x9e\xecz\xcfw\x1a\xe2\x9c\x9e|<\x8c\x84q\ +`\x81L\xe0\x12\xc0^\xbb\xe5\xcb\xcb\x83\xa8\x92h\xb0\ +\x0d5\xd6HWu\xecY \x13\xb8\x04pP~\xf1\ +\xf3\x9fq\x10\x00\x02\xd9\xb9P&l\x09`\x00 \x94\ +-\x044\x01K\x00\x03\x00L\x07\xf4\x99\x82\x97\xa1\x22\ +\xa7\xb1\x14%\x00\x00\x04p\xd8.\xbb\xe2\xaa ~\xc7\ +\xe6\x1d;y\xaaF\xb06l}.\x88\xeb{\xfc\xef\ +\x9f\xe7>%\x80Q\xf7\x17\xdf\xfe\x8e\x0a\xa1KhZ\ +\x96\xcb\xa6.\x84\xf3I7\xe5\xf1z\xba\xb3\xde\x1f\x93\ +\xed\xcf\xeeR\xbc\xb3O\x00#0\x97_y\x15\x07\x01\ +\x00\x08`\xc4m\xed\x7f\xf96\x8f\xd5'(<\xc0\xbe\ +\xba\x00\x08`X\xb6u|3\x0bO\x9c\xa0\xf2P\x91\ +\x83\x00\x80\x00\x86]\x8b\xfa\xaf\xa7\x02>\xc19\x9f>\ +\x97\x83\x00\x80\x00\x86]\xd9\x0c\x97\xcc\x89\x1e\x7fz=\ +\x0f%\x00\x08`\x1fl\xfb\x07?_\x0f\xd8\xfe\xec.\ +\xc5v\x84\xa7z(Q\xde\xce\x9ae\x06tx\xc7\x86\ +sJ\x00\xe3\x0c|L\xb1\xdb\xef\xfa\xb7\x9c\xb8\xc0\xfc\ +\xf9P\x89\x83\x00\x10\xc0\xe93\xb8\xec\x8b^}\xdf\xdb\ +\xbe\xf2U\x9e\xaa\x1bX\xff\xc3\x0d\x0f\xfb\xf4}\xcf?\ +\xff|N\x1a@\x00\xa7\xcf}\x7f^\xf0&\xd06m\ +\xdb\xa9\xba\xb2\xe4o#\x9f8{\xc6}>}\xdf\xb9\ +\x17\x7f\x96\x93\xda\x80O\xdd\xb9\x7f\xf9\xbd\xbf\xa1\xfb\x99\ +\x00F3\x94\xf2\xe7\xe6\x9e\xd6\xc5=M\xb0p\xac\x9c\ +\x7f\xa0\x9a{1\xe7\x94\x00\x06\xd2\xeb\xae\xaf\x7f\x83\x83\ +\x80Dh\xde\xd0'\x80\x1bV~#\xc3\x5c&\xc7\xf0\ +aF4S\x9f\x9b\xf7o\xbe\xf2\xa7\xce\x1f,\xaa\xdf\ +V\x83M{q\xcc\xb8M\xfd\xcb\xa5D*\xe0\x88\x08\ +>.\xdc\x5c\xbd\xb9\xb7?\xbbK\xd1X\x87u\xdc8\ +\x9f\xed?\x80r\x9f\x22\x88\x00\x86\xfb\x0d#74\xe7\ +\x14'\xdb\xea\xd8\x16\x7f\x9cS\x02\xb8e\x14\xc0n\xdf\ +L\xdc\xd4\x9cS\x9c\xa6\xc1\xcc(g\xf6\xd9\xe5\x9c\x06\ +\x1c\xc06\xcf,W\x8d\x9b7\xd5'\xcf\xf947u\ +\x80\x0d%\xe7\xd4\xaclF\xc9\xd6\x04\xe7n\x8c\x8e?\ +K\x97\xb3'\xa2\x5c\xfe\x8c\xe7I\xe9&\xa6\xce\x99\x1e\ +\xa0\xae\xe5\xf2\x8a\xbd\xa2\x9b\xe8)\xd0\x22\xd7}a\xbe\ +\xf5\x0e\x03n\xe6x-\xbc\x96s\xca9m\xcd\x86\xad\ +\xcf\xa9\x9e\xee,\x07\xdaVQha\x12\x96\x1e\xcc7\ +\xbc\x07\x1bvA\xef\x9c\x98\xa0\xc78\xb1\xabBdd\ +\xf3\xb3V\x1b\xd2\xcd;v\xd2P\x07f\xf3v\xcei\ +\xacUN\x0c-$\xe1\xebg\x01\xd5\xb0\x89oT\x01\ +\xcf\x19\x1f\xd5o\x1f:h\xf4\x8bQ\x01'\xff\x94M\ +\x85\xc49\x85\xdb\xe7\xf4\xfe\xa1\x92\xe4r\x03\x9cSO\ ++\xe0h0\xdf\xf0\xcd\xb0\x86\x15\xb0\xe9\xf0\x15\x11!\ +|\xdbs\xec;\xc3\x9b\xb6\xedT\xe7|\xfa\xdc\x86\x8d\ +n}\xc2\xc89\x9f>W\xce\xf9\xf4\xb9\xb2y\xfbN\ +\xc6\x8f\x9c:\xa7\xbb\xd4\xa6m;\xd5\xb1k\x837\xda\ +_x\xfb\xb3S\xff\xe6h\xc5\xbb\xe3y\xce\xa9CN\ +\x8d\ +\x84oX\xe7\xf4\xee\xaf\x7f\x837\x08<\xf6\xd4\xff\xfa\ +\xfeI\xa7\x8f\xf0u#\x84SW\x01\xd753S\x0c\ +\x00\x00\x9f\xc2\xd7H\x05\xfc\x8b\xfee\x9c%\x00\x00Z\ +\xaa.\x1b\xff'\x0d\x03x\xe6G\xba\xadU\xa8\x8d^\ +R\x06\x00\xc07_;\xb7\xaf\xa9\xcd1\x1a\x06p\x86\ +%\xb1\x00\x00h\xdac\xf3.k*\xdd\x9aZ\x0b\xda\ +\xd68-\xf9\x0b\x00\x08I4\x98W\x99&'\xd6%\ +\xba\x1b\x92\x1a\x19\xd6\xec\x0f\x0c\x00H\x22\x7fl|\xee\ +o?\x98|\xaa\xd9\xff\x96\xed\x08\x01\x000D\x8b\xcc\ +!\x80\x01\x00\x88\xd9'\xb7\xfc\xf0\x0ao\x02\xb8:\xc0\ +Lh\x00@\x18j-\xbc\xdd\xd3\xd4v\x84\x22S;\ +~dG\xed\x8d\xd7\xb2 \x07\x00\xc06\x9b\xf3\x8e\xee\ +\x9c\xd5'\x8f^ry\xd3Y\xd6\xd5t\xa9\xac\xa6B\ +\x92IS\x00\x00\x1cor \xaf\xa6\xb5\xd8\xa7\xec\xcc\ +\x18\xb0&\xd6\x01\x00\x9ez\xf8\xcd\xbd-\xa7\x18\x93\xb0\ +\x00\x00\xa9\xb1\xa8w\xa6\x95\xcf\xdd\xf2\xdb_\xb5\xfco\ +\xdc\xa9\x80\x85\x12\x18\x00`\x8f\x1a\x19\xd6\x1b\xe6/\xb0\ +\xf2\xd9\x1b\xaf^\xd0\xf2<\xa6\x96\x03\xd8\xd6d\xa9\xec\ +\xe8z]\x8b\xb8@\x00\x006\x8a\xbc)\xddc\xc3\xc6\ +?\xbb\x96\xcb\xabl\x1b\xc9\xe8T\x17\xf4\x05\xdbF)\ +\x83\x01\x00\xc6E\x16\x0b\xbcv\xf7Lp*\x80\xdf9\ +t\x90\xab\x04\x00`\x5c\xd7\x98\xc5\xd7h\xdb\x0dn\xd7\ +\x0e\x12\xdd\xd0\x00\x00\xa3\xd5\xaf\xa3}\xab\xce\x05p\xd7\ +\xd8\xb0\x8e\xe8\x88\x06\x00\x18bs\x11)\x91\xf6w\xf6\ +\xebj\xe7\x1f\xe9\xc1\xbc\xaaE\xf6J\xfa\xdf|0\xf9\ +\xbbO\xf6t\x9f\xcde\x03\x00pU\xa7\x93\x92\xdb\xae\ +\x80m>N|j\xfc\x87\xbd\x9cZ\x00\x80\xcb&k\ +\x9d\xfd\xfb\xb6\x03\xd8f7\xf1a6h\x00\x00\xb8^\ +\x01w\x98\x83m\x07\xf0?V'w\xdb\xfaQ\xd3\xc6\ +Xo\x1a\x00\xd09\x9b\xfb\x17d:,\x15\xdb\x0e\xe0\ +\xff\xf7\xfe\xef\xaf\xf0\xf5\xa0\x01\x00\xc2\xf7A\xd5\xee\xe7\ +we:\x8b\xa9\xaev\xff\xe1\x953z\x95\x1e\xcc\x13\ +\x94\x00\x00'uYz\xcf\xc7\xd4\x8a\x90No\xc6@\ +\xb8\x03\x00\xda\xcd\x0f[o\xea\xd4\x0c}\xaa\xf3\xbb!\ +\x1d\xaeq!\x01\x00\x9aW\xf5dA\xa7\xaeN?@\ +\x0f\xe6\x95\x16\x91\x8c\xa5juZ\x96\x8b\x09\x00\xd0B\ +\xb0Y,-MnHd\xe4k\xda|g\x88nh\ +\x00@\x88\xb9\x91\xe1`\x02\x00B\x10E\xda\xab\xbc0\ +\x16\xc0\xb6\xf6\x09&\x84\x01\x00\x0d3Hk\xc9\x8e\xad\ +\xb7\x9a\x13\xa6s\xae\x8b\xd3\x06 \x0e\x85B\xe1\x94\x8d\ +c\xa5Ra\xe5;t^\xa4)\xff.#\xef\x02X\ +\x8d\x0ck\xdb\xd56\x00{\x81{\xaa\xff\x8e\x10\x86\x89\ +l\xf0\xed;\x1b\x1d\x03\xd6\x83ye3\x1c\xe9\x86\x06\ +\xfc\x08\xdeW^yE\xb7\xfao8rp5\x1b\xf4\ +`^E9\xf3\xd9\x96\xe1\xd4\x010]\xf5>\xf9\xe4\ +\x93\xd6*f \x91\x90\xb7PZ\x12\xc0\x00\x8c\x86o\ +\xa7\x9f\x11E\x91\x14\x0a\x05\xad5y\x8c\xc0C\xdd\xd6\ +E\x1eG\x97\x00\xa7\x0f\x08'|O\x85\xb1a\x84\x9c\ +5\xd6*\xe0\xc9\xa5\xf6_K\xe2\x09\x19H\x96\xd6\x9a\ +\xaec$\xa6\xf4\xe3\xbd^_{\xd6\x028\x8e\x19\xe1\ +\x99\xd1\xf5\xdc\xf8@\x82\x8a\xc5\xa2\xd5{\x90p\xc7\x99\ +\x8a\xb0\xa17_\xf3\xfa7X\x0b\xe0\xae\x0c\xdd\xc4@\ +\xe8\xd5o\x1c\x18\x0fF\x12V_x\xb1\xf5\x0c\xb3:\ +\x09\x8b[\x06\x08\xd7\xb6m\xdbb\xbb\xc5\x8b\xc5\xa2~\ +\xef\xbd\xf7\xa8\x88\x11\x9b{\xe7\x5cd\xbd\x80\xb4\x1a\xc0\ +q\x94\xbf\xbc\x1b\x0c$S\xfdn\xdc\xb81\xd6\xbf\xb9\ +f\xcd\x1a]\xaf\x889\x03\xe9\x16G\xbb\x9f\x8dc\x18\ +\xd5\xf6\x1f\xa8\x0d,W!\x9c\x0c\x00\xc7W\xa4\x1c\x05\ +\x84\x1a\xbeQny,+[Z\x0f\xe0LF\x89\x1e\ +\xcc\xab\xc9\x01\xfb\xb3\xa2k\x11\x17'\x90\x06\x8c\x0b\x13\ +\xbe\xb6\xe8\xc1\xbc\x8ak]\xe9\xd8\x16\xe2\x98\x16\xc7_\ +b\xca\x17\x90\xaa*\x9c\xeeh\x98\xad|\xe3\x9d8\x1c\ +\xd4nH\x17l\x1d\xd5o\xf7\xe7\x88a e\xd5p\ +\xfd\xff\xcd\xc2\x1d\xe1\x8a\xa3\xc3#\xee\x0d\x95b]\x8a\ +\xb2f\xf9\xe9\xe2\x9dC\x07\x19\x0f\x06\x80\x00eF\xc3\ +k\xdbU\xdc\xe3(\x87k\x22\xdd\x1b\xe2\xe9\xc7\xe7\x92\ +\x05\xecX\xbbv\xad\x9e\x98\x98p\xf6\xfbQ\x09\x07\x16\ +T#af\x86Jb\x22C\x9cU*A\x0c\xd8\xe1\ +\xfa\xf8+!\xec\xb7?\xdc:\xaa\xdfz\xff`,\x7f\ +\xeb\xf6\xf3\xfa\xe4\xaf\xe7]\x1e\xfb\xf5\xc2nH\x00\x82\ +\x0c\xb8B\xa1\xa0\x99-\xed\xaf\xb8\xc2WD\xe4\xd1K\ +.O\xe4ZN$\x80\xe3\xacJ\xb9\xf5\x00K\xf7\x96\ +'\xc1\xc6;\xcb~Z\xd4;3\xbe L\xe8Q2\ +\xb1\x0a8\xae\x10~\xe1\xc0\x047\x1f\xe0f\x05\x1dk\ +5\xcc\x11\xf7\xcb\xd6\x89_\xc7\x92CI\x0eS&\xda\ +\x05\x1d\xc7\x0f\xbf\xfa\xb9q\x89\xe8\x82\x02\x9cS(\x14\ +\x12\x09a\xc2\xd8}\xa1N\xbar*\x80\xe3:\x08Y\ +\xb6-\x04\x9c\x14E\x11!\x8c\x0f\xf3@\xeb\xd4\x84\xaf\ +\x13\x01\x1c\xd2\x13\x15\x80\xd6\xec\xd9\xb3GD\xa6\xba\xa3\ +\xeb\xff\x8b;\x8c\xe1\xc8\xc3\x98\xd6\xb1\xec\xf1>\xb9\xd4\ +\x9d7cR5\x0bZ\x8d\x0ck\xba\xa3\x01w\xcc\x9d\ +;\xf7\xa4\xff\x1b!\x9c\xc6\xf0\x8d\xaf\xa72r\xe8\x8c\ +;\x11\xc0qv\x07\xd0\x1d\x0d\x18z\xa05\xb0n_\ +\xbd\x02&\x84\xd3Kk-\xd9\x18W\xb9\xeavh\x01\ +f\xe5\xd2\xab\x04\xb5H\xa4k,\x9e\x13\xa1\x07\xf3J\ +\x8d\x0ck\x16\xea\x00\x92\x0b\xafR\xa9$\x99L\xe6L\ +\x9f\x9f\xc8\xefb\x11\x8f\x18Ch$\xbe6\xdf\xb9\xdf\ +\xee\xe2\xbb|q\x8e\xd7&\xb5\x02\x0a\x10\x8a\x9f\xfc\xe4\ +'\xfa\xbb\xdf\xfdn[\xff\xb6\x5c.7]I\xc7\x19\ +\xc6w\xdf}\xb7|\xe63\x9f\xa1] |\xd3\x17\xc0\ +q\x87\xf0\xfb7\xe4UO\x177\x03\x90D\x15\xdcJ\ +ws\xdc\x151\x950\xe1k\x13KQ\x8a\xc8Y\x1b\ +\x875\xb3\xa4\x81\xf6\xcc\x9e=\xbb\xd3\x00\xb7\x12\xd6.\ +<\x5c \xf9\x02\xcbe\x04\xf01\xfen\xff~.\x0a\ +\xc0qq\x87p\xb5Z\xe5\xa0\x13\xbe\xe9\x0a\xe0(\xb7\ +<\xf6n\x83\xdb^\xdd%\xb5\x88\x8b\x02\xc0\x87\x1ex\ +\xe0\x01M%\xecg\xf8&\x91#\xadpv\xe4S)\ +ut\xa6r\xac\x07\xe4\xc8,lfG\x03~T\xc1\ +/\xbd\xf4\x92<\xf3\xcc3V\xff^\xa9T\xa2=\xf0\ +,|}h\xc3\x9d\xef\x82&\x08\x01\xb7MLL$\ +\xfa\xf7/\xbb\xec2\xb9\xeb\xae\xbb\xac\xfe\x8d\x95+W\ +\xb2\xad!\xe1\x9b\xbe\x00&\x84\x01\xb7]q\xc5\x15\x89\ +\x7f\x87\xbe\xbe>\xeb\x7f\x83m\x0d\x09\xdfT\x060!\ +\x0c\xb8\xeb\xba\xeb\xaes\xe2\xde\x8ccrV\xa1P\xa0\ +\x12v8|\xab\x03\xcb\xbd\xca\x09fA\x03\xe8\xac\x11\ +\xc9\xb8\xd3\x8c\x94J%\xfb\xa1\xa2\xa8\x05\x5c\x0c_\x11\ +\x91l\xc6\xafs\xe3U\x00S\x05\x03\x0e6\xb4J9\ +\xb3`E&\x93\xb1\xbe\xab\x12\xaf%\xb9\x17\xbe\xb5\x81\ +\xe5\xca\xc7|P\xbev\xa7\xd8:\xc1\xd5\x5c^e\x89\ +y\xa0\xb5\x87c\xad\x8d\x8c\x91\x9a\x0eN\x9b+g\xb1\ +J\x96\x1b\xe1\xebsa\xe6m\x17\xb4\xad\x83N\xf8\x02\ +\xedU\xc1.\xaaT*\xd2\xdb\xdbk\xe5\xb3y7\x98\ +\xf0Mm\x00\x8b\x88\xdc9\xab\xcf\xf8g\xd6\xb8\xa5\x80\ +\xa0\xacX\xb1\xc2\xdag\xd7j5\x0epB\xe1;\xe7\ +\xac\xe9\xde\x1f3\xaf\x03\xf8\xb1\xfd\xefp\xd5\x03h\xaa\ +\x12\xbe\xe5\x96[\x8c\x7f\xee\xd0\xd0\x10\x8f\xec\x92\xcc\x84\ +\xab7\x17\xe5\xbc\xef\xafd\x0f\xa0\x13/$\x0e\x01\xd0\ +2\x1f\xe6\x92\xcc\x9b7O\xe6\xcd\x9b'\x22\xc9\xed3\ +L\xf8\x1a\xb8\xd6\x02\x9a\x8c\xcbkH'^L$0\ +\xd0\xb2\xed\xdb\xb7{U\x09V*\x15Y\xb2d\x89\x91\ +\xcfJ\xebX\xb0\xd6\x9a\xf0Mk\x00\x1f\xae\xd99\xb9\ +\xe4/\xd0:W\x16\xe3hE\x7f\x7f\xbf\xb1\xcfJ\xdb\ +\x02\x1dZD2\xa3\xeb\x09\xdf\xb4\x06p\xf7\x06\xb6\xb4\ +\x02\x5c\xe2\xe3\x86\x05&_{Z\xbbvm*\xda$\ +\xad\xb5db\xdf\xd5(\xcc5 \xe8\x82\x06`\xa61\ +\x99Z\x04#\xb5!|\xe0\xc0\x81t\x9c\xe7\x04*\xdf\ +P\xbb&\x09`\x00\xc6t:\x1e\x9aT7n\xa5R\ +1\xb2\x8c\xe5\xf8\xf8x\xd0Up\x14\xf3\xaf\x0b}\xf5\ +C\x028%'\x1a\x88\xc3\x9c9s:\xfa\xf7\xc5b\ +1\xb9p\x89\xa2\x8e?c\xd3\xa6MAO\xca\xca\x8e\ +\xc6\xd7\xf5\x9c\x866\x99\x00\x16\x91Z\x8e\xf0\x05\xd2.\ +\x9b\xcd\x9a\x0b\x8f\x00'dU\xde\xd8K\xf8\x12\xc0\x22\ +\x87#\x01\x00\xa3\x94R\xb2j\xd5*#\x9f\xf5\xfd\xef\ +\x7f?\xb8\x04.\xbe\xfe\x1a\xe1\x9b\xf6\x00V#\xc3\xba\ +{\xccl7\x08\xd3\xa9\x01\xd4\xab\xe0r\xb9\xdc\xf1\xe7\ +|\xf1\x8b_\xa4W\x8d\xf0\x0d\xb3\x026~\x10\xb8U\ +\x00#\xbe\xf6\xb5\xafy\x7f7\x1d\xd9^\xb1\xa3\xcfX\ +\xb9r\xa5N\xdb\xbb\xc1\x84/\x01\xdc\xde\x0d\xc7!\x00\ +\x8c\x85\x17\x8e\x09\x15\x02\x98\xf0\x0d)\x80\xfbz\xcc\xed\ +\x80Q\x1b\xb8Q1\xfb\x19 \x80my\xff\xfd\xf7\x83\ +\xf9-\x87\x07\xec\xb4\x95in\x83\xbd\x0a`52\xac\ +\xdf9t\xd0`cA\x07\x00`Z\xb9\x5c\x0e\xa2A\ +5\xb1@\xc7\xea\xd5\xab\x83\xe9\x86\xee\xca\x88\x94.\xbc\ +\xd8\xe8gF\xb9\xe5\xa9~bKu\x02\xd19\x04P\ +\x05\x9fIooo\xc7\x9fQ,\x16\x83\x09\xe1\xc2\x05\ +\x17)\xae\x15\x02\x18@\xa0\x5c\xda*p\xc5\x8a\x15F\ +*\xe1b\xb1\xa8CX\xa0\xc3D\x5c\xd6\xbb\x9c\x19\xfe\ +#\x80\x018\x1a\xc2\xec\xd9\xeb\xa6v\xbb\x8d\x7f\xd1\xbf\ +\x8c\xf0%\x80\x01\xd8\xd6\xd7\xd7\xc7A\x08\x94R\xaa\xad\ +\x00\xfdTO7\xa1K\x00\x1f{!q\x01\x006\x5c\ +p\xc1\x05A\xfd\x1eS;&\x85\xb4Nt}\x8b\xc0\ +\xc9&fGS\xf1\x9e&\x83|\x98\x1c\xa0,\xed=\ +\xc9E\x01\xd8a2hL\xee\xd9k\xe0w\x99\x0c\xf5\ +`\xda\x9f3\xb5\xd1\xb4\xb3\x9e\x07p\xff\xce\x1dz\xeb\ +\xc4\xaf\x09_ \xc5a\xecB\x10\xbf\xf7\xde{\xb2f\ +\xcd\x1a\x02\x18Fx\xd1\x05m:|\x01\xc4'\xa4\xa0\ +\x99>}:'\x14\xe9\x0a`\x00p\xa2\xc1\xccd\x8c\ +l\xd6`\xb2g\x00\x040\x00X\xe5\xcap\x99\xc9\xc5\ +#\xa2\x88\xbdU\xd3,\xb5\x93\xb0\x18\x03\x06\xe2e\xa2\ +\xe2+\x97\xcbN\xad\x9edjR\x16\xe3\xc1T\xc0\x84\ +/\x00kL\x84L\xb1X\x94}\xfb\xf6Q\x91\x83\x00\ +\xb6\xadJ\xef\x0c\x10\x94{\xee\xb9\xa7\xe3\xcfx\xe4\x91\ +G\x9c\x08?v~B\xd0\x01|\xcf\x9e\x17y\xc4\x04\ +\x02r\xdey\xe7\x19I-W\xaa\xcfJ\xa5bd\xc3\ +\x06&d\x11\xc0\xce)_8\x973\x04\x04$\x9b\xcd\ +\x1a\xf9\x9c\xfd\xfb\xf7;\xf3\x9bV\xacXa\xe4s\xde\ +}\xf7].\x90\x94qz\x12\xd6\xa1\xaa\xc8Y\x1b\x19\ +\x03\x06B\x13\xd2\xe2\x1c\xf5\x8a\xbcX,\x9a\xaa\xaai\ +\x9f\xa8\x80\x1dxZ6|\x19\xea\xc1\xbc\x22|\x81\xa0\ +\x82\x9c\x83\x00\x02\xd8\x86\xee\x0d\xc3\x8c\x8b\x00\x012Y\ +\xe5\xb9\x10\xc2J))\x95J\x9cX\x84\x11\xc0\xb66\ +`\x00\x00+\x8d\xa9\xa1U\xb2\x98\x90E\x00\x03\x80\xf5\ +*\xb8T*\x055$\xa4\x94\x92\xa5K\x97\x12\xc2 \ +\x80\x01\xb8_5\x9aP(\x14\x9c\x19\x0f\xbe\xee\xba\xeb\ +\xe4\xa1\x87\x1e\x22\x84A\x00\x03HME\x1d\xdc\x83\x05\ +\xc2\xe6\xeckH\xa6\xc7\x80\x99\xfdl\xfe\x5cpLa\ +\xe4\xde\x9cz\x85'\xa8\xd7\x92\xeaU\xb9\xa1\xdf\xc4}\ +F\x05\x8ct4\x86\x225\xfda\xe8.\xde\xb9C7\ +\x0a\xe7'~\xb6\x9feq\xd1\xfe\x03\x9eR\xc6B\xe6\ +\x95W^\xa1\x22\x07\x15p'O\xc3\x99\xd1\xf5,\xbe\ +\xe1a\xcf\x03\xc7\x18\x06\xaaF#\xf7\xbe+\xbb&\x99\ +\xa8\x82\xa9\x80\xc3\xd5\xe5\xda\x17\xaaF\x5ck>\x85n\ +\xa3\xcf!\x94\x91TU\x1d\xd2C\x09!L\x00\xc7\x22\ +\xb7{\x07\x9d\x99\xd6{\x19D2\xa3\xf1\xbcg\xcd\xf8\ +1\x92\xb9\xc6\xb5\x13!\x5c\xef\x86\xee\xb4\x12\xae\xf7\x0c\ +\x10\xc4aqn\x0c\xb8\xef\xac\x8frV,\x8b4\xdf\ +\x01n2\x150\xc5b\xd1\xa9\xfdzM\x8d\x07G\x11\ +{\xb4\x86\xc4\xb91\xe0\xc3\x91H\xf7\x183\xa0m\xda\ +91\xa1?\xbfs\xdc\xbd\xaa\x85\xf3\x84#\xd6\xae]\ +\xab'&&:\xfe\x1cW\xc6\x82MT\xc1\x22\x223\ +f\xcc\x90{\xef\xbd\x97\xfb\x84\x0a\xd8\x93j\x8fF\xfd\ +\xc3\x80;\xf2X\xe3b\xf8\x1e}\x22\x1c\x19\xd6\xc7\xfe\ +\x8f\xd9\xd5\xe9\xb4b\xc5\x0ac\x95pH\x0e\x1c8\xc0\ +\xc5A\x00\xdbk|\x8dW\xbf4\xe0G\x8e\x83\x96\xcc\ +\xe8T\xa8\xb9\x1c\xbe']\xa0\xa3\xc3:\xa2\xbf:\x95\ +\xe6\xcc\x99\x13\xd4\xef1\xd5\x0d\xbdo\xdf>n\x88@\ +8\xd5\x05m+\x1c\xd2\xd8\xb5Y\x8dD\xa6\x8d\x85\xbd\ +\xa1E\x94\xcb\x874\xd9\x15\xa7xh4\xb1@\x87k\ +\xef\xe3\x9aZ\xa0\xa3P(\xa8\xe9\xd3\xa7s\xa1\x10\xc0\ +\xee\x06\xf0\x9d\xb3\xfa\xe4\xd1K.OE3\xad\x8fT\ +\xfc\xd9\xd1\xf4\xec$\x15\xe5\xf2*\x12\x91\xae\x13~s\ +4\x98'\x9b\x03a\xe2\xdd\xe0R\xa9\xe4\xd4\xf2\x90\xac\ +\x92\x05\x91\x14\x8c\x01\xaf\xb9h\xee\xd3i9\x99s\xc6\ +Gu\x9a\xc2Wd\xaa\x8b\xba\xeb\x14\xbf9\xc3v\x96\ +\xc10\x112+W\xae\x94Z\xad\xc6\xc1\x04\x01|\xca\ +\xea\xcdR%\xfe\xcf\xbb\xbbo\x0e\xba\x02\xd4S\xffS\ +#\xc3\xfa\x9dC\x07\xb9\xa2\x8f\xa1F\x86\xf5\x93?\xdb\ +\xafk\xd1T\x97|}bW5\xe25(\xdf\xdcw\ +\xdf}\x1d\x87\xf0\xd0\xd0\x10\x07\x12n\xb5Q\xaetA\ +\xdb\xe8~\x0e}\xecWQ\xe5udv\xcfty\xab\ +?G\x17\x9e\x07L-Q\xc9f\x0d \x80c\x0a\x12\ +\x02\x18\x8d\xd4ry\xd5\xa8\xdb\xbe\x9a\xcb\xab,M\x5c\ +\xe2B\x9c\x94\x15E\x91\xac\x5c\xb9\x92\x10N)vC\ +\x22|S\xad\x991\xf3\xae\xd1aM\x97\xb5\x03\xd7\xbc\ +\xa1]\x93\x5c\x1a\x0b6\x11\xbe&{\x08@\x05L\x05\ +L\xe8\x86W\xbd\xb1 \x8cQ&\x02\xc7\x95J\xd8T\ +Wt\xa9TR.\xcd\xf4Fc]\x1c\x02\x87\x1bm\ +-\x22JD\x09}\x82\x86\xae\x00\x00\x0c$IDA\ +T\x93\x86B9\x9f\xd5H\xa4{\x83\xbb\x0fR\x8b\xcf\ +\x9e)cW-PJ\x89\xd4\x22\x91\x8c\x12\xc9f\xa6\ +\xae\xc1\xd0\xd4j5\xc9f\xb3\x89\x7f\x8f\xfb\xef\xbf_\ +V\xaf^\xdd\xf1\xe7\x10\xbeT\xc0m)\xbf\xbeW\xaf\ +|\xe35\xa3\x9f\xf9\xc2\xe7\xfb\xe5\xca\x19\xbd\xde\xb7\x1b\ +T\xbd\xa0\x82\x0f\xbb\x02\x9ez8\xd3F\x96\xcdd,\ +\x98\x00N<`B\xe8\xee#xA\x107\x0c,V\ +\xc9\x22\x88\xbdF\x9f\x85C\xea\xef\xf3\x12\xbe@\x83\x07\ +TC\x13\xb2\x0a\x85\x82\xb1\xd0\x03\x08`\xf1w\x03\x06\ +\xdfV\xb1\xd2\x83y\x15\xe5\xf2\x8a\x09FH\x8a\xa9J\ +\x8fm\xb7@\x00\x1b{:\xf6\xf0;{V\xf5.>\ +{\xe6q\xc7\xba:@\x08\xa7\xa2\xf2\x1c\x19\xd6w\xbf\ +\xfa\x22ieI\xb9\x5c6\xf29\xbc\x96\xe4\xc9\xfd\x14\ +\xda\x18\xf0\xe1\x81\xbc\xea\xf2\xe4\xb1\xe2\xf1\x9f\xee\xd7\xff\ +\xfa\x95]~\xf5.\xb4X\xed\xfe\xdd\xfe\xfd\xfa\xb6W\ +wq\xa7\x05\xc4\xb5\x15\xc4L\x86Mh\xaf&\x99\xec\ +%\x00\x15\xf0\x19U=\x08_}\xcc\xda\xcd\xa1\x87\xaf\ +\x88\xc8\x9f\xcc\x9a\xa5\x8e\xad\x90\x7f\xbdx\xd9\xd3\xdcv\ +~{\xdb\xb15\xc7C\x0c\x18\xd7&\x87\xc1\x8e\xc4\xde\ +\x03\x8e,l\x9b\xf7\xe2?M\xe8\xab\x1c\x7f\xf5(\xe3\ +\xe9nE\x9d\x8c\xf3\xd6\xff\xed1\x9fA\xf7\x18\x00\x02\ +8\xa9?\xbc\xfa\x8d\xbd\xc6\x1b\xe1\xcf}\xdc\xed\xf0\xf5\ +m\x9c\xd7\xd6\xe4\xaa\xd3}.\xb3\xbf\x91\xf85\xaf\xb5\ +(G&\x91,Y\xb2D6m\xda\xc4I\x09Xb\ +\x1d\xb6\xa6\x17\xdep\x9do\xe1\x12%0\xb39\xca-\ +Ww\x9c\xd7\xc7]\xe9\xb8\xdb\x1d5\xbc>-\xd1\xe9\xa3\xc35\x91\xee\x0d\xe1\x04\ +q5\x97W\xd9\x00\x9ahSU\xf0\xcd7\xdf,\x97\ +^z\xa9\x13\xbf\xa9V\xab\xc9\xd0\xd0P\xdb\xff~\xd5\ +\xaaU*\x9b\xcdr\xd3: \x88&\xf9\x97\xfd\xcb&\ +\xe2\xae\xe2}\x08\xdf\xc9\xa5S;\x15\xe9A\xc2\xd7\xb6\ +i\xd90z\x18\xa2\x5c^-\xf9\xc4L\xc9\x06R\x1f\ +\xdd\x7f\xff\xfdF~\xc9\xdc\xb9s\x9d\xf9M\x9d\x86\xe7\ +\xd0\xd0\x90\xe6\xdd\xe0\x94V\xc0\xa6\xdf\xe9\x8c\xebI\xbd\ +\x1a\x89L\x1b\xf3\xa7\xc2y\xee\x9a~\xb9\xa6\xb7\x97n\ +&\xa4^\x88c\xc1G~W\xc7\x9f\xc1xp\xca*\ +`\xd3\xa7:\xae'u\x9f\xc2\xf7k\xe7\xf6\x11\xbe\xc0\ +\x87\xc1\xa9J\xa5R\xc7\xf7\x83\xc9\x1d\x8a\x5cQ,\x16\ +5{!''\xd6IX\xb5H\xa4\xcb\xa3 \xf3m\ +r\xcd\xcek\xfa\xe5\xca?\xe8U,v\x03\x9cPi\ +\x18\xba)\xea!\x1c\xd2nET\xc0)\xa9\x80\x09_\ +{\x96|b\xa6\x5c\xdd\xdb\xab\xb2\x19\xf3\xbd\x0c\x00\x8e\ +\xab\xa8\x83\xfa\x1ek\xd7\xae\xa5\x04NC\x00\xbbL\x1f\ +\x99XU\xff\x9fW\xdf}0\xaf6\xce_@\xee\x02\ +g\xae^\x8d\xdc#.-fa\x22\x84'&&\xe4\ +\xddw\xdf\xe5\x02I\xa2\xd0\x8b\xb3\xff\xdf\xe5\x058|\ +}\x97\xb3:\x90WY\x1e\xa3\x80&\x1f\xb4\xcdl\xd6\ +p\xcb-\xb7\xc8\xbcy\xf3\x5cz\xb80\x15\xe8<\xc8\ +\x87X\x01\xb3\xc2\x909\x8bzgJ\xfd\xf5\x22\xc2\x17\ +h\xa1\x1dRJ\xca\xe5r\xc7!\xf3\xe4\x93O\x069\ +)\x0b\x01\x06\xb0\x8d\xd5\xaf~\xd9\xbfl\xa2\x93\xeaW\ +\xeb\x0f\xdf\xe7\xf5\xe5\xe1\xa0:\xb0\x5c\xed\xfa|\xbf\x8c\ +_Cw3\xd0I\x08\x9bz?\x98\x10\x86\xf3\x01\xfc\ +\xc2\x81\x09\xe3\x01wvw\xf7\xd9\x1d\xfd\xf0\xd1a\x9d\ +\x1d\xf5k\x19\xc9lF\xc9U3x\xbd\x08\xe8\xd4Y\ +g\x9d\xc5A8\xf5\x03\x05=\x951\x8a\xe55\xa4G\ +\xf7\xbd\xedDU\xedk78k8\x03\xe6\xab\xe0\x90\ +\xd4'c\x1d\x19\xe36\x12\xc2\x8c\x07\x07R\x01\xff\xd5\ +\xc5\x97+\xf37P\x8b\x17\xe8\x1b{\xbd\x0a\xdfh\xf0\ +\xc3e$\xb9L\x01\xf3\x01\x5c\xa9T\x94\x89\x90q\xa9\ +\x1b\xda\xe4\x83\x05\x0bt\x04\x12\xc0\x19e\xe3Bk\xfe\ +\xbf]\xf3\xc6^]|\xfd5\xbf\x1a\x08\xaeM\xc0\x1b\ +\x85B!\xb8\xc0\xfa\xfd\xef\x7f\xcf\x89\x0d!\x80m,\ +\xc0\xd1h\x09\xcac\xdf\xeb\xbd\xdf\x93\xf0\xd5T\xbd@\ +\xecLu\xb5\x86\xb6\xd9\xfd\x9a5k(\x81m\x17Z\ +\xb6\x9f\xda\x92x\xf7\xd7\xc7\xb1^B\x17H\xb4\x82\x0d\ +n\xc3\x06\x13]\xe3s\xe6\xcc\x91;\xee\xb8\x83\xb6\xc9\ +\xc7\x00\xd6zj\xb6q\x5ca\xe5\xe3\x0aVS\xc7_\ +\x09\xcb\xb1\x02\xc9\x8a\xa2HV\xae\x5c\xd9q\x1b\xe2R\ +\x08\x9b\x98\x94U*\x95T\x86\x05\xe6\xad\xb0zT\xe3\ +L\xc3j\xe4W\xd1[\x7f\x88P\x8a\xf0\x05\x9ch\x0c\ +\x0d\x85\xcc\xda\xb5k\x9dx\x98(\x14\x0a\x1d\x87\xaf\x88\ +\x18y(A\x02\x01\x1cW\xb0\xd4\x22\x91ic\xeb\xbd\ +z\xa7\x97K\x0fp\x8f\x89\xf1\xe0\x89\x89\x09\x17*y\ +\xe3\x954<\x0b`\x1b\xc1U\x0f\xafc'Y\xf9\xb2\ +\xcb\xd2\x9d\xb3\xfa\xa4\x96#|\x81\xd0m\xdd\xba5\xb1\ +\xbfm:|E\xc4\xc8\xfa\xd9\x88;\x80->5e\ +F\xfd\x1b\xef}\xf4\x92\xcbU\x86\xf8\x05\x9cV*\x95\ +:\xbeK\x17,X\x10o\xfbr\xa4\xad\xb5\xf9N2\ +\xabd\x99gm\x12V\xa4EL/\xf5\xa8\x07\xf3\xca\ +\xc6\xe7\xdaR\xcb\xe5\x95\x12a\x8c\x17\xf0\x90\x89\xc0)\ +\x97\xcb\xd6W\xdd\x8a{!\x10V\xc82\xc7\xdaR\x94\ +6B\xb2\xa6E\xba<\x0a_\xaa] \xdd\xb4\xd6V\ +\x02\x98M \xc2`\xad\x0b\xba\xbfw\xa6\xf9\xa7\x85Q\ +_v-\x22|\x01\x98\x9bY\x0d\x02\xb8%\xe3\x13\xbf\ +N\xe5\x01\xbdsV\x9f\xb0G/\xe0?W\xd7\x89N\ +\xba\xfae,\xd8\x1ckc\xc0\xbe\xee<\xd4.^-\ +\x02\xc2cjq\x8e\x1bn\xb8A\x16-Z\xe4m\xe8\ +\xda|H\xa1\x02FG\xa1K\xf8\x02\x816\x90\x86\xba\ +\x907n\xdc\xd8v\x88V\xabUg\x8f\x0f\x1b68\ +X\x01W#\x91icaW\xc0\x84.\x90\x1eI\xad\ +\x15\xed\xc3d+\xaa\xe0\xf6Y\x99\x05\x1dz\xf8\x02\x80\ +\xb5\x87{\xad\xe5\xd5W_\x95'\x9f|\x92\x83\x118\ +\xba\xa0\xa9~\x01\xc4T\xe5\x8d\x8f\x8f7\x0c\xdfb\xb1\ +\xe8U\xf82)\xab}V\xba\xa0C\x9c\x80E\xe8\x02\ +0\x196'vG\xc7\xd9\xdd\x5c\xff\xdb\xa6\xfe&\xdd\ +\xd0\xed\xe9\xe2\x10\x10\xbe\x00\x92ac\xe3\x84V\x83\x1f\ +T\xc0\xce\x86\xae\xd6,%\x09`\xca\xbe}\xfb\xf4#\ +\x8f\xf6\xb1\x8fq\x814!\xf5\x8f)\xd5\x01\xc2\ +\x17@\x1b\x0f\xee\xda\xcd\x02\xb8\xdd\xeedS\x93\xb3\xd6\ +\xacY\xa3]=6\x04\xb0CU\xaf\x1e\xcc+6N\ +\x00\xd0\x0e\xe5\xe0\x04\x91U\xabV%\x12\xde'*\x16\ +\x8b$p3\xd7P\x1agA\xd3\xe5\x0c\xc0\x94\xa4\xbb\ +\xa1g\xcc\x98!\x07\x0e\x1c\x90R\xa9dl\xec\xb5Z\ +\xad\xca\x03\x0f<`\xa2\x1a\xa7\xad\x8d\xbb\x02\xae\x0e,\ +w\xf6\xa0\x13\xbe\x00LJ:d\xee\xbd\xf7^\xa9T\ +*F'>\x99\xfa,\xba\xa2\xcf\xcc\xca$\xac\xacc\ +\xbb\xd1\xcf\xee\x99.o\xf5\xe7\x08^\x00V\xdcz\xeb\ +\xad\xf2\xc4\x13O\xc4\x19\xfaV?\xdfT\xf7\xfa\xb7\xbe\ +\xf5-\xbdb\xc5\x0a\xda\xde8\x03\xd8\x15\xd5\x81\xbcR\ +J\x84\xb3\x0f\xc0\xa6\xb9s\xe7*\x11\xb1^\xee]\x7f\ +\xfd\xf5\xb2x\xf1b\xeb\xbfG)ed\xa1\x90\x89\x89\ +\x09.\x8e3\xf54\xd8\xfa\xe0$\xbbz\x0f\xdd\xf0\xe1\ +\x04\xab\x8cb1\x0d\x00\xf6\x03k\xd5\xaaU\xd6[\x9a\ +\xcd\x9b7\xc7\xfa\xbbJ\xa5R\xc7\x9f\xc1\xe2\x1cg\xb8\ +nl\xf6\xd1k\xad%3\xba>\xf6\x83\xcf8/\x80\ +$\x1cY\xdb\xd9J\x9bW.\x97\x13\x99ymr\xc5\ +.&e\x1d\xcfj\x17\xb4RJ\xa2\x5c^eF\xe3\ +\x9b\x15\x1d\xe5\x08_\x00\xc9\xb0\xb1\x02\x14\x9b'\x04|\ +\xbdX/\xb1\x95\xfd\x8a\xb4\x96\x9b\x9au\xad\x07\xf3\x8a\ +\xeef\x00I\xaaT*\xcaTw4\xe1K\x00\x1ba\ +:\x84\xeb\xaf:E\xb9\xbc\xca(E\xb73\x00g\x84\ +T\x09T*\x15\x1e\x04|\x0f`\x93!\xfc\xcb\xfee\ +\x13\xd9\x8c\xa2\xe2\x05\xe0$S\xe3\xc0\xa1\xed\x98\x84\x04\ +\x03\xb8^\xb1F\xb9\xbcjw\xb1\x8e\x9d\xd7\xf4\xcb'\ +{\xba\xcf\xe6\xd4\x01p\xb8jT!N8*\x97\xcb\ +\x9c\x5c\x9f\x03X\x1dy-\xa8\xdd\xc5:\xae\xee\xed\xa5\ +\xe6\x05\xe0M\x10\x97J\xa5\x8e\xda\xacB\xa1\xe0L%\ +L\x97\xa3Y\x89.\xc4\xc1\xb8-\x80\xe0\xab\x1c\x033\ +\xa3\x1f|\xf0A'~\x8bK]\xe2\x040\x00\xe0\xcc\ +\x85\x86\x81\xb5\x16\xf6\xec\xd9#\x97]vYb\xdf\xff\ +\x07?\xf8\x81\xbc\xf0\xc2\x0b\x9cL\xc3\x14\x8be\x03@\ +,\xd5c\xc7\x8dm\xdc\x8bq\xd4j5\x19\x1a\x1a2\ +\xf6y,\xc4A\x05\x0c\x00^z\xef\xbd\xf7\xe4\xe3\x1f\ +\xffx\x1c\x0f\x0b\x1cl\x02\x18\x00P\xf7\xcdo~\xd3\ +\xfa\xeb@6\xc2\x97\xca\xf7\xd42\x1c\x02\x00\xb0\xcfT\ +\x08\xd9\xacNm}6C\x9d\xa7\xc6\x180\x00\xc4\xc8\ +\xd4\xee@\xa6*\xe18\xba\x9b\xa9\x80\xa9\x80\x01 \x98\ +J\xb8V\xab9_\x99\x96\xcbeE\xf8\x9e\x1ec\xc0\ +\x00\xe0\xa1\xa1\xa1\xa1\x8e\xaa`&ZQ\x01\x03\x00b\ +\x14E\x11\xe1\xeb\x08\xc6\x80\x01 \x01/\xbf\xfc\xb2~\ +\xea\xa9\xa7:\xfa\x8c\xd9\xb3g\xcb\x1dw\xdc\xd1\xd4\xbb\ +\xc1Zk\x19\x1f\x1f\x97\xcd\x9b7\xc7\xf2\xfb\xe8z&\ +\x80\x01\xc0Y\xeb\xd7\xaf\xd7\xbbw\xef\xee\xf8s\x9aY\ +\xa0#\xce\xaa\x97\xf0m\x0e]\xd0\x00\x90\x90\x1bo\xbc\ +\xd1HP\x15\x8bE\xc2\xd7CL\xc2\x02\x80\x00h\xad\ +\x8f\xab\x82\xa3(\x92\x95+W\xc6\xf2\xb7{{{e\ +bbB\xca\xe52\xe1K\x00\x03\x80\xfb\x94R2g\ +\xce\x1cy\xeb\xad\xb7\x8c|\xd6\xb1\xe2\x0a\xdf[o\xbd\ +U.\xb9\xe4\x12\x82\xb7\x9ds\xc6\x180\x00$\xebH\ +\xb5\xdaqc\x5c\xa9Td\xed\xda\xb5211\x11\xcb\ +\xf7.\x97\xcb\x8a=\x82\x09`\x00\xf0\x9a\xd6Z\x8a\xc5\ +\xa27\x0dr\xa9TR&\xf6:N3\xba\xa0\x01\xc0\ +\x85j\xc8\x83J\xf2\xa6\x9bn\x92\xcf}\xees\x94\xbc\ +\x86\xf0\xf8\x02\x00h\x0a\xe1K\x00\x03@\x90\x5c\x9eE\ +\xcc\x0cg\xf3\x18\x03\x06\x00\xc7\x8c\x8f\x8f\xebM\x9b6\ +%\xfe=\x18\xe7\xb5\x8b1`\x00pL\x7f\x7f\xbf\xda\ +\xbd{\xb7>p\xe0@\x22\x7f\xbfR\xa9\xa8\x13\xdf+\ +\x86y<\xda\x00\x80\x83\xee\xb9\xe7\x9eD\xd2\xaf\xbe\x92\ +\x15\xe1K\x00\x03@*}\xf4\xa3\x1fM,|A\x00\ +\x03@z\x1b\xe7\x98\xc7^\x09\xdf\xf81\x09\x0b\x00\x1c\ +W(\x14\xac4\xd4\x84.\x01\x0c\x00hB\xadV\x93\ +\xa1\xa1\xa1\x8e\x1b\xed\xd9\xb3g\xcb\x9dw\xdeI\xf8&\ +\x8c.h\x00\xf0D6\x9b5R\xb9\x12\xbeT\xc0\x00\ +\x806U\xabUy\xe0\x81\x07\x9an\xc0\x1fz\xe8!\ +\xd5\xd5\xc5\x9b\xa7\x040\x00\x00)G\x174\x00\x00\x04\ +0\x00\x00\x040\x00\x00 \x80\x01\x00 \x80\x01\x00\x00\ +\x01\x0c\x00\x00\x01\x0c\x00\x00\x08`\x00\x00\x08`\x00\x00\ +@\x00\x03\x00@\x00\x03\x00@\x00\x03\x00\x00\x02\x18\x00\ +\x00\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\x00\xa0\xb1\xff\ +\x0f\xa8\xea\x16x8\xf7\x10\xb4\x00\x00\x00\x00IEN\ +D\xaeB`\x82\ +\x00\x00\x09@\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00D\x00X\x00k\xec\xff\ +\x82.\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x03\x0d\x0e \x00v\xd4h)\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x08\xa8IDATx\xda\xed\xddKn\xdbH\x14\ +@Q2\xe0&\xb4\x0c\xed\x8fC\xeeO\xcb\xd02\xe8\ +\x91\xe0 \x08\x0c\x89\xe6\xe7}\xce\x195\xd0\xdd\xe86\ +\xabR\x97\xaf\xe48\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0m\xf4\x08\x00\x8e\ +\xf1|\x0c\xeb\xeb\xafow\xe7-\x02\x0cpJt\x7f\ +\x22\xc8L\x1e\x01\xc0y\xe1\x85\x97?\x1e\x01\x80`#\ +\xc0\x00b\x8a\x00\x03\x00\x02\x0c`rF\x80\x01\x10Q\ +\x04\x18@\xc0\x11`\x00\xf1\x04\x01\x06\x00\x01\x06\xc0$\ +\x8d\x00\x03\x88&\x02\x0c \xe8t\xe1gA'\xb0,\ +\x8b_\x98p\x80y\x9e7\xfd\x81\x08b\x89\x00\x8b.\ +\x00I\xb9\x82\x16_ \x08\x93\xb5\x00#\xbe\x80H\x22\ +\xc0\xe2\x0b\x80\x00#\xbe`\xfa5a#\xc0\x00 \xc0\ +\x00\x98\x82\x11\xe0<\x5c?\x83(\x22\xc0\x00\x80\x00\x03\ +\xf4\x9c~M\xdc\xf5\xf9IXIm\xfd\x11z\x00\x98\ +\x80\x11_0\xfd\x9a\x82\x05\x18\xf1\x05@\x80\x01@\x80\ +\x01:\x8ap\x05\xec\x1aZ\x80\x01\x00\x01\x06\xe83y\ +\x9a\x82\x05\x18\x00\x10`\x00\x10`\x802\x22^\xf9\xba\ +\x86\x16`\x00@\x80\x01L\x9a\x080\x00^\x0e\x10`\ +\x00\x10`\x00\x13\xa6)\x18\x01\x06\x00\x01\x060Y\x22\ +\xc0\x00xY@\x80\x01\x04\x0d\x01\x06\xc0K\x03\x02\x0c\ +\x00\x02\x0c`\x92\x04\x01\x06\xf0\xf2\x80\x00\x03\x08\x18\x08\ +0\x80\x97\x08\x04\x18\x00\x04\x18\xc0\xe4\x08\x02\x0c\x80\x97\ +\x09\x01\x06\x10,\x10`\x00\xc8l\xf2\x08\x00\x13n\x8d\ +\xaf\xf9v\x1fF\xab/\xc0\x00\xc2\x99\xe0\xf9\x89\xb6\x00\ +\x03\xe2\x89h\x0b0\xe00\x86\xbd\xf7\x89p\x0b0 \ +\xbe\x98\xb6\x05\x18\x10_\xf8doV\x89\xb2\xdf\x86\x04\ +\x0e8\xf1\xc5\x9e\x15`\xc0A\x06=\xf6\xae\x00\x03 \ +\xc2\x02\x0c\x00=\x22,\xc0\xe0\xe0\x02\x04\x18\x00\x04\x18\ +\x00\xc2\xcbz\x9b#\xc0\xd0\x94\x9fJ\x04\x02\x0c\x880\ +\xb4\xdb\xc7\x02\x0c\x0e/\x11\xc6\xfe\x15`\xe0\xaaCL\ +\x88\x11_\x01\x06\x1chP\xfe\x85Q\x80\x01\x11\xc6\xfe\ +\x14`\xc0!\x07=\xf6\xa5\x00\x03\x22\x8c\xfd(\xc0\x80\ +C\x0fz\xec\xc3\xc9\xd2\x02\xef\x1c~~v4\xc2k\ +\x02\x06\x1c\x86\xd8o\x02\x0c8\x14\xc1>\x13`\xc0\xe1\ +\x88\xfd%\xc0P\xd6\xba\xb6\x8e\x90\x08s\xc4\x9e\xea\xb6\ +\xaf\x04\x18\xb6\x18\xc7U\x84E\x18{I\x80A\x84M\ +-\x88\xaf\x00\x83\x08;D\xc1\xbe\x11`\x10a\x87)\ +\xf6\x8b\x00\x83\x08;T\xe9\xbeG\xec\x13\x01\x06\x11\x16\ +a\xec\x0d\x01\x06\x116\xe5 \xbe\x02\x0c\x88\xb0C\x17\ +\xfb@\x80A\x84\x1d\xbe\xe4\x5c{\xeb/\xc0 \xc2\x22\ +\x8c5\x17`\x10a\x072\xd6Z\x80\x01\x11v0c\ +\x8d\x05\x18D\xb8\xfe\x01\xed\x90\x16_\x04\x18D\xd8a\ +\x8d\x97*\x01\x06\x11\x16a\xac\xa1\x00\x03\x22\xec\x00\xc7\ +\xda\x090\x88\xb0\x83\x1ckV\xc9\xe4\x11\xc0\xc5\x11\x1e\ +\xc7\xd5\xc3\xf8>\xd0\x9f\x8f\xc1\xf3\x10^\x130`\x12\ +v\xc0cm\x04\x18D\xd8A\x8f5\x11`@\x84\x1d\ +\xf8\xd6\x02\x01\x06\x11v\xf0c\x0d\x04\x18\x10a\x01\xc8\ +\xff\xdc={\x01\x06\x11\x16\x031\xf0\xd2#\xc0\x80\x08\ +\x0b\x83g\x8c\x00\x83\x087\xe2\xf7\x08\x8b\xaf\x00\x03\x22\ +\x0c\x080\x880\xfc\x9e\x1b\x06\x01\x06D\x18\x04\x18\x10\ +a\xd3\x19\x080\x88\xb0I\x18\x04\x18\x10ajq\xd3\ + \xc0\x80\x08\x8b\x02\x02\x0c\x880 \xc0\x80\x08\x83\x00\ +\x03\x22L-\xae\xfc\x05\x18\x10a1@\x80\x01\x11\x06\ +\x04\x18\x10a\x10`@\x84\xa9\xc5\xd5\xbf\x00\x03\x8d#\ +,\x02\x080 \xc2\x80\x00\x03\x22\x0c\x02\x0c\x880%\ +\xf9\x08@\x80\x81\x86\x11v\xf8#\xc0\x80\x08\x03\x02\x0c\ +\x880\x080 \xc2\x94\xe6\xa3\x00\x01\x06\x1aE\xd8\xa1\ +\x8f\x00\x03\x22\x0c\x080 \xc2 \xc0\x80\x08\x1f\xc0\xf5\ +s<\xd6D\x80\x01\x930\x080 \xc2\x80\x00\x03\x22\ +\x0c\x02\x0c\x88\xf0\x16>k\x8c\xcb\xda\x080`\x12\x86\ +\x12&\x8f\x00\xf81\xc2\xe3h\xf2\xd9\xe0v\x1fF\xd3\ +#&`\xc0$|bx\xff\x8e\xef\xbf1\x06\x01\x06\ +BE8\xfb\x94\xf8\xbf\xf0~\xf2\xf730\xc9\x0b0\ +`\x12\x0e\x17\xdf#\xfeYj\xf3\x190\xf0~\x84\xd9\ +%\xa6\xaf\x7f\xcfDi\x02\x06\xe0\xc3\x80\xee1\xc9\x9a\ +\x86\x05\x18\xe0R\x99&\xc1\xbd\xa3\x99\xed\xb3aS\xfb\ +~\x5cA\x03\x04\x98V]K\x9b\x80\x0189\xbeW\ +\xfd\xb70\x01\x03\xb4\x0f\xafi\xd8\x04\x0cp\xaa\x88\x91\ +\x89\xf2\xb9\xaciX\x80\x01L\xbd\xcd_\x06\xa2\xbf4\ +\x090@\xe2\xf0F\x9e8M\xc3\xf5\xf8\x0c\x18h=\ +Ie\x0a\x9b\xcf\x86M\xc0\x00e\xa6^\xff\xdf\x080\ +\xc0\x89\x01\xcb\x1e\xb1\xab\xbf\x06S\xb8\x00\x03\xb4\x9e\x1e\ ++\xbcL\x080@\xe1\x09\xaaz\xa8D8\x1f\xdf\x84\ +\x05\x98x\x8b}\xad\xae\x87M\xc0\x00\xe2[\xf8\xeb\x16\ +z\x130\x80\xf0\x9a\x86M\xc0\x00WNN\xe2\xeby\ +\x98\x80\x01\x84\xc64\x8c\x09\x18\xa8\x1b\x17\xf1\xbd\xee%\ +E\xd4\x05\x18\x10\x14\xbc\xb0\xa4\xe2\x0a\x1a\x10\xde\xc6\xcf\ +\xd0\x04k\x02\x060\xbdy\x99\x11`\x80h\x87\xbeP\ +\xc4|\xb1\xb1.\x02\x0c\x14\x8d\xb0\xa97\xee\x8b\x91u\ +\x11`\xa0\xe8\x81\xef\x80\x8f;\x0d[\x1b\x01\x06\x0aF\ +\xd8\xd4\x1b\xfb\xe5\xc8\xda\xec\xc3wA\x03\xe1'a\xae\ +]\x97\xe7cX\xad\x91\x09\x18\x00/H\x02\x0c\x00\x08\ +0\x00\x080\x00 \xc0\x00 \xc0\x00\xd0\x9d\xdf\x86\x04\ +\x90\xdc\xb2,o\xff\x81\x0a\xf3<\xfb\x8ef\x130\x00\ +\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\x080\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00\x080\x00 \xc0\x00 \xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ + \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ + \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ + \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\ +\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ + \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\ +\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ + \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \ +\xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00{\x04\x00 \xc0\x00\ + \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ +\x080\x00\x080\x00 \xc0\xe9,\xcb\xb2z\x0a\x803\ +A\x80\xf1\x0b\x0ep\x16\xb0\xc1\xe4\x11\xf8\x85\x07\x80\x09\ +\x18\x00\x04\x18\x008\xc6\xe8\x11\xc4\xe0J\x198\xda<\ +\xcf\xce|\x130\x00\x080\x00p2\xd7\x11\x81\xb8\x86\ +\x06\x8e\xe2\xfaY\x80\x11a@|\x11`\x11\x06\xc4\x17\ +\x01F\x84\x01\xf1\x15`\xc4\x18\x10]\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x002\xf8\x02R1SQ\x9b\ +6\x0b\x01\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x11x\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00D\x00X\x00k\xec\xff\ +\x82.\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x03\x0d\x0e \x1a\x8b\xb6\x91S\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x10\xe0IDATx\xda\xed\xdd\xd1u\x1b\xc7\x12\ +EQ\x0c\x97caH\x0c@\x811\x00\x85\xa4`\x08\ +\x7f\xd8\xfc\xb0MI\xa09\xd3]Uw\xef\x00\xde2\ +\x81\xae:\xd3\x00\xa9w\xbb\x01\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\xcd\x1c^\x02\xa8\xe1~\xbb\xdd\x17\x0c\xbc\ +\x99\x07\x01\x06Am\xb0 \xec\x08\x10`\x10X\x81\x06\ +\x01\x06\xa1E\x98A\x80Ah\x85\x19\x04\x18\x04\x17A\ +\x06\x01\x06\xb1\x15e\x10`\x10\x5c\x04\x19\x04\x18\xd1E\ +\x8cA\x80Ap\x11d\x04\x18D\x171\x06\x01Ft\ +A\x8c\x11`\x10]\xc4\x18\x04\x18\xd1\x051F\x80A\ +t\x11c\x10`\x84\x17\x84\x18\x01Ft\xbd\x0a\x881\ +\x080\xc2\x0bB\x8c\x00#\xbc \xc4\x080\x88.\x88\ +1\x02\x8c\xf0\x82\x10#\xc0 \xbc \xc4\x080\xc2\x0b\ +B\x8c\x00#\xbc \xc4 \xc0\x08/\x081\x02\x8c\xf0\ +\x82\x10\x83\x00#\xbc \xc4\x080\xc2\x0bB\x8c\x00#\ +\xbc\x80\x10#\xc0\x88/\x880\x02\x8c\xf0\x02B\x8c\x00\ +#\xbc \xc4\x080\xc2\x0b\x081\x02\x8c\xf8\x82\x08#\ +\xc0\x08/ \xc4\x08\xb0\xf8\x02\x22\x8c\x00#\xbc\x80\x10\ +\x0b0\xe2\xcb\xe0e\xeb|8\x17\x080\x16\xab\xe5\xe9\ +L!\xc4\x02\x8c\xf8b1:s\xce\x1a\x02\x8c%h\ +\xf99\x938\x8b\x02\x8cEg\xc1\xe1\xac:\xa3\x08\xb0\ +ef\x99Yf\xce0\xce\xae\x00cqYZ8\xd7\ +\xce3\x02lIaA9\xeb\xce\xb83.\xc0XF\ +\x16\x12\xce\xbfs\x8f\x00[>\x96\x0f\xe6\xc1\x1c \xc0\ +X6\x96\x0d\xe6\xc3\x5cxo\xb0X,\x17\xcc\x8cY\ +A\x80-\x12,\x12\xcc\x90\xd9\x11`,\x0e\xcb\x03\xf3\ +d\x8e\x10`\xcb\xc2\xb2\x00\xf3e\xae\x04\x18\x8b\xc1\x82\ +\xc0\xbc\x993\x04\xd82\xb0\x10\xc0\xec\x999\x01\xc6\x02\ +\xb0\x000\x8bf\x10\x016\xf0\x86\x1e\xcc\xa5y\x14`\ +C\xee\xd09w\x98Q\xb3\x89\x17\xdb`\x1bn0\xaf\ +\xe6T\x80\x0d\xb3\x81\x06\xb3kf\x05\x18\xc3k\x88A\ +\x88\x11`\x03kp\xc1L\x9be\x01\xc6\xa0\x1aV\xcc\ +\xb7\xb9F\x80\x0d\xa7\x01\x05\xb3n\xc6\x05\xd8@\x1aJ\ +0\xf7\xe6\x1d\x016\x84\x86\x11\xcc\xbf\xb9\x17`\xc3g\ +\x00\xc1.\xb0\x03\x10`\x03g\xe8\xc0^\xb0\x0f\x04\xd8\ +\x90\x196\xb0\x1f\xec\x05\x01\xc6p\x190\xb0+\xec\x08\ +\x016P\x06\x0b\xec\x0c\xbbB\x80\x0d\x92\xf0\x02\xf6\x87\ +\xbd!\xc0\x86\xc7\x10\x81=b\x7f\x08\xb0\xa11<\x80\ +\x08\xf3\x80?\xbc\x04\x18\x18\xd83s\xfe\x7f\xc2\xdd\x80\ +\xf1\xb4\x0a\xd8/\xf6\x8a\x00\x1b\x0eC\x02\xf6\x8c\xfd\x22\ +\xc0\x86Bx\x01;\xc7\xae\x11`\x83` \xc0\xee\xb1\ +s\x04\xd8\x00\x18\x04\xc0\x0e\xb2{\x04\xd8\xc1w\xf8\xc1\ +>\xb2\x87\x04\xd8aw\xe8\x01{\xc9>\xfa\x85'/\ +\xc1\xe8\xa7+\x87\x1d\xcc1n\xc0\x9e2\x0d-\x90\xbe\ +\xa3\xec&\x01\x16_\xc0\xae\xb2\xa3\x04\xd8\x81v\xb0\x01\ +\x11\x16`\x07\xd9a\x06\xec/{\xebr~\x09K|\ +\x01s\x8f\x1b\xb0\xa7GC\x08$\xed\xb2\xe4\x1dv8\ +\xb0\x0e.`\xa7\xd9e\x02\xec\xa0:\xb0\x80\x08G\xf0\ +\x1d\xb0\x83\x0a\xd8\x0b\xb8\x01{B4d@\xea\x9eK\ +\xdbo\x87C\xe9p\x02\xf6\x9d='\xc0\x0e\xa3C\x09\ +\x88p\xc4\xbe\xf3\x1d\xb0\xc3\x08\xd8\x1b\xb8\x01{\x0a4\ +D\x80\x1d\x98\xb1\xfb\x0e\x07\xcf\x01\x04D\xd8\x0e\x5c\xcf\ +G\xd0\x0e\x1e`\x9f\xe0\x06\xec\x89\xcf\xb0\x00\xf6b\xc6\ +><\x1c2\x87\x0d\x10a{q=\x1fA\x03\x80\x1b\ +\xb0\xdb\xaf#\x09\xd8\x93\x19\xfb\xf1p\xa8\x1c.@\x84\ +\xed\xc9\xf5|\x04\xedP\x01\xf6\x0en\xc0y\xb7_C\ +\x00\xd8\x9d\x99;\xf3p\x80\x1c$@\x84\xed\xce\xf5|\ +\x04\xed\x00\x01\xf6\x91}$\xc09\xb7_\x00\xb2\xf7\xfe\ +\xe1M\xf0\xb4\x09\xd0q\xa7v\xdf\xa5>\x82v`\x00\ +\xec'7\xe0\xd9\xb7_\x87\x1b\xb0_\xedU7`\x00\ +p\x03v\xfb\x05\xb0g\xb3\xf6\xab\x1b\xb0\xc3\x01`o\ +\xb9\x01\xcf\xbb\xfd:\xc4\x80\x9b\xb0]\xdb\xfe\x06\xeco\ +~\x01\x98\xd2\x07\x1fA{\x22\x03\xb0\xc7\xf6\xbc\xb6\x9e\ +n\x1cZ\x80\x19;\xb8\xd3\xeeu\x03\x16_\x00{M\ +\x80g\xdc~\x01\xd0\x0b7`O\x89\x00\xf6[\xcd\xd7\ +\xd3\xd3\x8c\xc3y\x9e\xe7\x97\xd7\x0f\xdf\xaf\x1f\xdf\xbf\x19\ +\x5c\x9ca\xb7L\xfbX\x80\x05\xf8\xc4w\xe8\xe9v;\ +\xde~\xb6\xb4>Zb\xcf/\xafw\xcb\x8cJ\xc1}\ +?\x97\x8f\x9e\xe1\xf7s/\xc0\xf6\xf1\xd8\x00\x8bo\xcf\ +\x9b\xc2\xa3D\x18gX\x84\x93\xf7\xb2\xef\x80\xc5w\xcb\ +\xe2:\xeb\x7f\x03\x9ca{\xaf\xab\xb2\x01\xf6\x9b\xcf\xb3\ +\x17\x97\x05\x863LzG\xdc\x80=\x05n_6\x16\ +\x18\xce\xb0\xfd\xe7\x06\xec\xa9\x85MKF\x84q\x86I\ +\xeb\x89\x1b\xb0\xa7\xbf2\xcb\xc5\x02\xc3\x19\xb6\x07\xdd\x80\ +=\xad8t\xff|W\x96\x9d\x13\x11\xa6\xff\xb9\xba\xc7\ +]l\x0e\x7fQ\xe3\x06\xcce\xe3\xb5\xf4\xef\x1dE\x98\ +\xde\xe7)\xf7\xef\x83\xf9\xf4\x83\x8b\xa7\x14\xb7\xdf\x9aA\ +\xf4w\xc28\xbb\xbdT\xdf\xe1\xd5v\xb7\x1b0\x96'\ +\xce\x0f$\xdf\x80\xdd~-1\xb7\x09\x9c[\xb7\xe0\xa4\ +\x1d\xee\x06\x8ce\x8a\xf3\x02\x02\xec\xf6\x8b\xa5\x8asb\ +O\x0a\xf02\xfeQo,W\x9c\x0f\x11N\xeb\x8d\x1b\ +0\x96,\xce\x05$\x06\xd8\xed\x17\xcb\x16\xe7\xc1-8\ +\xb1;n\xc0\xfcR\xd5\xdf\xe4\xb4t\xa9|\x0e\xfc\xe6\ +>\xe5\x03\xec\xf6\x8b\x08\xe3\xfdw\x0bN\xed\x8f\x1b0\ +\xad\x9f\xe6-a\xf15/\xb8\x01{z\xb3\xec\xfc\xf7\ +\xe1\xfdv\x1e\xed\xd1\xfa\x01\xf6\xff\xf9\xeb\x06l\xe91\ +\xf1}v\x03\xeecw\x87\xdc\x80=\xb5\x890\xe2+\ +\xbe\xf6iJ\x80\xdd~EX\x84\x11_\xd2o\xc1n\ +\xc0\x9e\xd6D\x18\xef\xa7\xf8\xda\xab\x02\x8c\x08\x8b0\xe2\ +\x8b\x00\x8f\xbb\xee#\xc2\x88\xaf\xf8R\xa5Kn\xc0\xff\ +\xe2c\x12\x11\xc6\xfb&\xbe\xf6\xab\x00#\xc2\x22,\xbe\ +\xce=s\x1fH\xe6_\xf3=\x9dY\x9a\x96\xa6s\xe4\ +\x1c\xd5Q\xb5\x05\xab\x1b\xe0\x06\x8c\x9b0\xde\x1f\xf1e\ +\x03\x01v\xfb\x15a\xbc/\xe2k\xdfN\x0e\xb0\xdf~\ +\x16a\xcb\x1e\xf1\xa5\xb2\xd5\x9dr\x03F\x84\xf1>\x88\ +/\x93o\xc0\x95\xf98D\x84\xf1\xfa\x8b\xaf\xbd;2\ +\xc0>~\x16a\x11@|\xe9`e\xaf\xe2o\xc0\x9e\ +\xc2,1\x11\xf6z\x8b\xaf\xfd;\xf6\x06\x8c\x08\x8b\x02\ +\xe2\x0b\x8b\x03\xec\xe3gD\x18\xf1\xa5\x93U\xdd\x8a\xbe\ +\x01\xfb\xf8\xd9r\x13a\xaf\xab\xf8\xda\xc3co\xc0 \ +\xc2\xe2\xeb\x5c\x82\x00c\xd9\x89\xb0\xd7Q|\xa9r\xfb\ +\xbfN\xe5\xef\x7f}\xfcl9[\xce\xde_\xefo\x1d\ +\x15{qu'\xdc\x80\xb1\xfc\xdc\x84\xc5\x176\x10`\ +,A\x11\x16_\xd8s\xc3\xbe\x86\x8f\x9f\xb1\xb4\xbd\x8f\ +\xdeG\xbaw\xe3\xca^\xb8\x01c)\xba\x09\x8b/l\ + \xc0X\x8e\x22,\xbe \xc0\xd7\xf3\xf1\xb3%)\xc2\ +\xe2\x8b\xfd<6\xc0\xfe\xf9IDX|\x9d'&\xb8\ +\xb2g>\x82\xc6\xd2\x14a\xf1\x85)7\xe0\xaa|\xfc\ +,\xc2\x22,\xbe\xd8\xd3\x02\x0c\x22,\xbe\xe2\x8b\x1b0\ +X\xa6\x22,\xbe\xd0:\xc0~\x01\x0b\x11\x16_\xe7\x84\ +I\xae\xeaZ\xcc\x0d\xd8\xf7\xbf\x22,R\xe2\x8b}=\ +\xfa\x06\x0c\x22<+\xc2\xe2\x0b\x02\x0c\x22\xec\xe7\x10_\ +\x04\xf8#\xbe\xff\xc5\xd2\x9d\x13a\xf1\x85k\xfb\x16q\ +\x03\xf6\xfd\xaf\x08\x8b\x98\xf8bo\x8f\xbe\x01\x83%\xdc\ +?\xc2\xe2\x0b\x02\x0c\x22\xec\xbfS|\x11`\xb0\x94g\ +\xc7M|A\x80O\xe5\xfb_\x11\x169\xf1\xc5\xfe\x1e\ +\x1d`\xbf\x01\x8d%\xdd3v\xe2\x0b{:\xe7#h\ +D88z\xe2\x0b\x03n\xc0`i\xf7\x8a\x9f\xf8\x82\ +\x00\x83\x08\x8b\xaf\xf8\x22\xc0\x93\xf8\x05,DX|\xb1\ +\xc7\x05\x18,\xf3\xedQ\x14_\x18\x16`\xbf\x01\x8d\xa5\ +^?\x8e\xe2\x0b\xb5z\xe7\x06\x8c\x08\x07DX|a\ +\xe8\x0d\x18D\xb8n,\xc5\x17\x04\x18,\xfb\xc5\xd1\x14\ +_\x10\xe0\xe5\xfc\x064\xe9\x11\x16_\xecs\x01\x06\xcb\ +\x7fqD\xc5\x17\x04\x18D`q\x84\xc5\x17\x04\x18D\ +xq\x84\xc5\x17\x82\x02\xeco\x80\x11\xe1\x1a\x11\x16_\ +X\xe3\xac\xee\xb9\x01\xc3\x80\x08\x8b/\x04\xde\x80A\x84\ +\xf7FX|A\x80\xcb\xf0'H\xa4DX|I1\ +q\xaf\x7f\xf9\x07\xaa\xf8\x1d\xb0\x00s\xc5M\x13\xf1e\ +\xafJ\xbd9\xa33>\x82\x06\xf1\xf0\xfa\xc1\x06\x02\x0c\ +\x22\xe2u\x03\x01\x061\xf1z\x81\x00\x03\xa2\xe2u\x02\ +\x01\x06q\xf1\xfa\x80\x00\x83\xc8\xe0u\x01\x01\x06\xb1\xf1\ +z@P\x80\xfd;\xd0\x88\x8e\xd7\xc1\xab@\xa23\xfa\ +\xe7\x06\x0c\xe2\xe3\xe7\x87n7\xe0\x8a\xfc+X\x88\x90\ +\x9f\x9b\x99\xa6\xedw7`\x10#?/\x080\x88\x92\ +\x9f\x13\x04\x18\x10'\xf1\x05\x01\x06\x91\xf2s\x81\x00\x03\ +!\xb1\x12_\x10`\x10-?\x07\x0800;^\xe2\ +\x0b\x02\x0c\x22\xe6\xbf\x1b\x04\x18\x98\x1d3\xf1\x05\x01\x06\ +\x11\xf6\xdf\x09\x02\x0c\xfc\x7f\xcf/\xafw\xff\x9d\x80\x00\ +\x83\xa8\x890\x080\x88\xaf\xffn\x10`@\xc4D\x18\ +\x04\x18\xc4\xcb\xcf\x01\x02\x0c\x04FK\x84A\x80A\xac\ +\xfc\x5c \xc0@V\xa4D\x18\x04\x18\xc4\xc9\xcf\x09\x02\ +\x0c\xe2\x9b\x15%\x11\x06\x01\x061\xf2s\x83\x00\x83\x08\ +\xf9\xf9\x81\xc7}\xf9\x1f^\xbf\xdfn\xf7\x82?\x94\x7f\ +P\x1e\xf1Y\xc4\xff\x81\x03\xabT\xea\xcd\x19\x9dq\x03\ +\x06\xf1\xf5z\xc0\x06\x02\x0cb\xe3u\x01\x01\x06\x91\xf1\ +\xfa\x80\x00\x03\xe2\xe2u\x02\x01\x06Q\xf1z\x81\x00\x83\ +\x98\xe0u\x03\x01\x06\x11\xf1\xfa\x81\x00\x83x,\xd0\xe1\ +\xefoE\x18\x04\x18F\xc6W\x84A\x80A|7\xdd\ +|E\x18\x04\xb8\x8c\x8a\xff<&\xe2{E|E\x98\ +\x14\x13\xf7\xfa\x97\x03\xec\xdf]F|\xf7\xc6W\x84a\ +\xad\xb3\xba\xe7#h\xc4w\xd0/\x5c\x890\x04\xdd\x80\ +A|k\xc4W\x84A\x80A|7\xc5W\x84A\x80\ +\xc1\xf2\xdf\x14_\x11\x06\x01\x06K\x7fs\x11\xe0s\xf9\x1e\x18\xf1E\x84\ +\xe9dU\xb7\xa2o\xc0>\x86\xb6\xd4\xc4\xd7\xeb,\xc2\ +\xf6\xf0\xd8\x1b0\xe2+\x0a\x880l\x0a\xb0\x8f\xa1\xc5\ +W\x0c\x10a:X\xd9\xab\xf8\x1b\xb0\x8f\xa1\xc5\x17\xaf\ +\xbf\x08\xdb\xbfco\xc0\x88\xaf\xe5\x8f\x08\xc3\x7fn\xdb\ +\x9ev\xfe~!,d\xf1\xc5\xb9qn\x82{\xb0\xba\ +\x03n\xc0X\xa2x_\xdc\x84\xd9@\x80\x11_\xbc?\ +\x22\xcc\x9e\x1b\xf7Z>\x86\x16_\xcb\x1d\xe7)\x9b\x8f\ +\x9f\xdd\x80\xb1,\xf1~\xb9\x09\xb3\x8d\x007\xb9\x9d[\ +B\xe2+\xc2\xce\xbf=+\xc0\xed\xae\xf9\x88/\x22,\ +\xc2T\xeb\x92\x1b\xb0\xa73\xf1\xc5\xfb(\xc2\xf6\xab\x00\ +c\xd9\x88/\x22\x8c\x00\x8f\xbb\xee#\xbe\x88\xb0\x08S\ +\xa5Gn\xc0\x1f\xf01\x89\xf8\xe2\xfd\x15a{ul\ +\x80\xdd\x82\xc5W|\x11aRo\xbfn\xc0\x9e\xd6F\ +,=\xf1u\x1e\xfd\xf7\xd9\xa7n\xc0\xb8\x01[v\x84\ +\xbf\xefn\xc0\xb4\x08p\xf5\x8f\xa1=\xb5Y\xc2x\xff\ +\x99\xb9G+\xf4\xc7\x0d\x98\x96O\xf3\x96/\x95\xcf\x81\ +[0-\x02\xec\x16\x8c\xf8\xe2<\xb8\xfd&v\xc7\x0d\ +\x18\xcb\x16\xe7\x02R\x03\xec\x16\x8c%\x8b\xf3\xe1\xf6\x9b\ +\xd6\x1b7`,W\x9c\x13\x10`OsX\xaa8/\ +\xf6e\x86\xc3\x9b\xf6\xe9\x17,n\xb8w\xfeF\xa7e\ +\x8as+\xbeS\xf7\xb7\x1b0n28?\x90~\x03\ +v\x0bv\x9b\xb0Ow{\x95\x9e\x01\xeep\ +\xbb\xcc\xfb\x05\x83\xe3M|\x11\xe1z\xf3b/\xf6\xee\ +\x8a'5\xca,0\xf1\xc5\x19&\xeaj\xe3ij\xf6\ +m\xfdlW}\x9ffq\xe1\x0c\xbb\xfd\xa6\xedi7\ +\xe0\xe1\x0f\x09\x1d\x96\x8c\xf8\xe2\x0c\xdb\x83\x89\xca\x068\ +\xf1v\x99\xb8\xc0\xc4\x17g\x98\xd4\x8e\xb8\x01{\xfa\xdb\ +\xb6t,.\x9ca\xfb/\xfc\x01\xc1\x1b\xec\xb6\xfe\xa5\ +w\xe8\xe9v;\xde\x1e\xfd^\xed\xc7\xf7o\xc7\xf3\xcb\ +\xeb]|\xa9\xe2\xfd<~\xe6\x0c\xbf\x9f{\x17\x10\xdf\ +\xfd\x0a\xb07\xbb\xd42sS\xc0\x19\x16_;y@\ +\x80E\x18\xc0N\x9e\xb8\x8b}\x07\x0c\x00n\xc0n\xc1\ +\x00vq\xc6\x0ev\x03\x0e}P\x00\xb0\xdf\x04\xd8\xcd\ +\x12\x80\xb8N\xb8\x01{J\x04\xb0\xd7\xf6<08\x04\ +\x9e\xc6\x00z\xef\xdd\x8e\xfb\xf6p\x18\x1c\x0a\x00\xf1]\ +\xcfG\xd0\x00\xe0\x06\xec\x16\x0c`\xcff\xecW7`\ +\x87\x18\xc0\xder\x03\x9e}@\xdc\x84\x01\xbb\xd5Nu\ +\x03\x06\x007`\xb7`\x00;5k\x97\x1e\x0e\x8c\x83\ +\x03 \xbe\xeb\xf9\x08\xda!\x07\xb0\x97\x04\xd8\x8d\x12\x80\ +\x8c}?*\x5c>\x8a\x06\x98\xbb;\xa7\xedL\x1fA\ +;\xf4\x80=\x84\x1bp\xe6ar\x13\x06\xec\xcb\xbc=\ +y8T\x0e\x17 \xbe\xf6\xe3z>\x826\x0c\x80}\ +\x83\x1b\xb0\x03\xe6&\x0c\xd8\x8d\x19;q\xec\x0dX\xc8\ +\x00\xecq\x01f\xfc\xcd\x1d\xb0_\xf8\xf4\x03\x86\x03\xe7\ +\xc9\x0f\xb0\x0b\xed@\x01v\xf0D\x18\x10\xdf\x00>\x82\ +64\x80=\x82\x1b\xb0C\xe8&\x0c$\xef\xbd\xa4}\ +w8\x8c\x0e%`\xdf\xd9s\x02\xecP:\x9c\x80\xf8\ +F\xf0\x1d\xb0\xa1\x02\xec\x09\xdc\x80\x1dPO\x8a@\xda\ +nK\xddi\x87\x83*\xc2\x80\x9df\x97\x09\xb0\x03\xeb\ +\xe0\x02\xe2\x1b\xc1w\xc0\x86\x0e\xb0\x07p\x03vx=\ +E\x02\x09\xfb\xcb\xde\xf2\x02\x880`o\xd9W\x02\xec\ +0;\xd8\xc0\xec]eG\x09\xb0\x08\x03v\x94\xdd\xb4\ +\x95_\xc22\xa4\x80\xb9\xc6\x0d\xd8!\xf7\xb4\x09L\xdc\ +K\xf6\x91\x00\x8b0`\x1f\xd9C\x02\xec\xd0;\xfc\x80\ +\xf8\x0a0\xa3#l\x10\xc0\xee\xb1s\x04\xd8 \x18\x08\ +@|\x05\xd8K \xc2\x80]c\xc7\x08\xb0\xc10$\ +`\xbf\xd8+\x11\xfc\x1d\xb0\xa1\x07\xcc!n\xc0\x06\xc5\ +\x13+\xd8)v\x89\x00\x13\xf6\xb4jx\xc0\x1e\xb1?\ +\x04\xd8\xf0\x18\x22\xb0?\xec\x0d\x01F\x84\x01{\xc3\xbe\ +\x10`\xc3d\xb0\xc0\xae\xb0#\x04\xd8`\x890 \xbe\ +\x08\xb0\x013l`/\xd8\x07\x02l\xd8\x0c\x1d\xd8\x07\ +\xf6\x00\x02l\xe8\x0c \xd8\x01f_\x80\x0d\xa0a\x04\ +so\xde\x05\x18\xc3h(\xc1\xbc\x9bs\x016\x94\x06\ +\x14\xcc\xb8\xd9\x16`\x0c\xa8a\x85\xc8\xb96\xcf\x02l\ +`\x0d.\x98c\xf3+\xc0\x18^C\x8c\xf95\xb7\x08\ +\xb0!6\xd0`f\xcd\xaa\x00c\xa0\x0d7\xe6\xd4|\ +\x22\xc0\x86\xdb\xa0\x83\xd94\x93\x02\x8cA7\xf4\x98G\ +s\x88\x00\x1bz\x0b\x00|\x1ae\xf6\x04\xd8\x12\x10b\ +\x0b\x01\xf3f\xce\x04\x18K\xc1\x82\xc0\x8c\x99-\x04\xd8\ +\x82\xb0,\xbc\x0a\x98+\xf3$\xc0X\x16\x96\x07\xe6\xc8\ +\xfc \xc0\x16\x88E\x02\xe6\xc6\xbc\x080\x96\x89\xe5\x82\ +91\x1f\x08\xb0\xe5b\xd9`.\xcc\x03\x02\x8c\x85c\ +\xf9`\x06\x9c}\x04\xd8\x02\xb2\x90p\xe6\x9du\x04\x18\ +\x0b\xc9\x82\xc2\x19w\xb6\x05\x18K\xca\xd2\xc2Yv\x86\ +\x11`,.\xcb\xcc\xb9\xc5y\x15`,4\x0b\x0e\xe7\ +\xd3\xb9D\x80\xb1\xe4,?\xe7\xd0\xf9C\x80\xb1\x00I\ +Z\x8c\xce\x99\xf3\x85\x00c9Z\x9e\xce\x91\xf3\x83\x00\ +c\x81R{\xd9:\x13\xce\x02\x02\x8c\x08\x03\xe2+\xc0\ +\x081 \xbc\x080\x22\x0c\xe2\x8b\x00#\xc4\x80\xf0\x22\ +\xc0\x081\x08/\x02\x8c\x10\x03\xc2\x8b\x00#\xc2 \xbe\ +\x080B\x0c\x08/\x02\x8c\x10\x83\xf0\x22\xc0\x081\x08\ +/\xce\x08\x081\x08/\x02\x8c\x10\x83\xf0\x22\xc0 \xc4\ + \xbc\x080B\x0c\xc2\x8b\x00\x83\x10#\xbc \xc0\x08\ +1\x08/\x02\x0cb\x8c\xe8\x82\x00#\xc4 \xbc\x080\ +B\x0c\xc2\x0b\x0e\x1bb\x8c\xe8z\x15\x10`\x84\x18\x84\ +\x17\x01\x061FtA\x80\x11c\x10]\x04\x18\xc4\x18\ +\xd1\x05\x01F\x8c\xb1\xcc\xec3\x04\x18\xc4\x18\xd1\x05\x01\ +F\x90\x11\x5c\x10`\x10cD\x17\x04\x18AFpA\ +\x80A\x94\xc5\x16\x04\x18\x04\x19\xc1\x05\x01\x06a\x16Z\ +\x10`@\x98\x85\x16\x04\x18\x04Z`A\x80\x81\xc2\xc1\ +\x16T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +:\xf9\x13\xbe\xd2\x7f}\xdc\xdb\xc8\xbd\x00\x00\x00\x00I\ +END\xaeB`\x82\ +\x00\x00\x16K\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00=\x009\x005\xdd\xfb\ +\xddt\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x04\x12\x06/3\xfa\xd5\xdf\x91\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x15\xb3IDATx\xda\xed\xdd;n\x1bi\x1a\ +\x86\xd1\xa2\xa1\xc4\xeb\x11\x1c\x18\x90\x02\x05J\xbc$\x02\ +\x8c\x08pIN\x1c(\xb0\x80\x0e\x1aZ\x8fBM\xd0\ +-\xb7\xc6\xd6\x85U\xff\xfd\xfb\xcfIf\xa6\x0d\xf7\xd8\ +\x14\xab\x1e\xbd\xc5\x22\xb5,\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xc2\xceC\xf0\x9f\ +\xfd~\xff\xf4\xd6\xaf\x9dN'\x8f\x15\x00\x02\x5c*\xb4\ +k\x093\x00\x02\x5c!\xb8\x82\x0c\x80\x00w\x14^!\ +\x06`\xea\x00\xb7\x8c\xae\x18\x030]\x80{\x0c\xaf\x10\ +\x03\x10:\xc0#\xc4W\x84\x01\x08\x13\xe0\x91\xc2+\xc4\ +\x00\x84\x08\xf0\xc8\xf1\x15a\x00\x86\x0b@\x84\xf0\x0a1\ +\x00C\x9d\xf8#\xc6W\x84\x01\x04X|E\x18\x00\x01\ +\x9e+\xbe\x22\x0c \xc0\xd3\xc4\xf7tu\xf9\xee\xaf?\ +\xde|{\xf3\xd7\x8e\xc7\xa3\x08\x03\x103\xc0%\xe2\xfb\ +Qt\xd7D\xb8d\x8cE\x18@\x80C\xc4wmx\ +\xd7\x04\xb8T\x88E\x18@\x80\x87\x8d\xef\xd6\xf0n\x8d\ +p\xee\x10\x8b0@L\x17Q\xffb9\xc2\xbb\xd5\xe1\ +p(\xb2\x88\x01\xb0\x80\xbb^\xbf%\xe2\xbbv\x05\xe7\ +\x5c\xc3V0\x80\x00w\x1d\xdf\xd2\xabwk\x84s\x84\ +X\x84\x01b\xf9\x14\xe5/\xd2\xf2\x92\xf39\x9e/K\ +\x03@W\x01NY\xbf\xbd\xc77G\x84g\xfa0\x12\ +\x80\x19tqYs\xa4\xf8\xa6\x5c\x86~\x96r9\xda\ +\xa5h\x00\x0b\xb8\xb9Q\x96o\xce%\x0c\x80\x007_\ +\xbf-|\xbe\xfb\xee\xf1\x02`\xde\x05<\xea\xfa\xb5\x82\ +\x01\x186\xc0\xad\xe3\x9bk\x05\x8b0\x80\x007\xe1r\ +\xaa\xc7\x0d@\x80\xad\xdf&\xac`\x00\x01\xb6\xe2Vp\ +3\x16\x00\xd3,\xe0h\xeb\xd7\x0a\x06\x10`\x00@\x80\ +\xe7Y\xbfV0\x80\x00W\xe3\xf5K\x8f#\x80\x00\xb3\ +Y\xeb\x1b\xb1\x00\x10\xe0\xa2\xa2_~~\xe624\x80\ +\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x8c\x16`w\xeez<\ +\x01\xb0\x80\x01@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\xf8\x03\xa7\xd3i\xe7a\xf7x\x02\x08\ +0\x00 \xc0\x00 \xc0\x00\xc0\xbc\x01\xde\xdf?t\xf9\ +\xe7z\xbc\xf9\x96\xf5\xdfw<\x1e=#\x01\x04\x18\x00\ +\x08\x15`w\xeez\x1c\x01\x04x\x10\xbd^\x86\xce\xc5\ +\xe5g\x00\x01\x06\x00\x04\xb8\xcf\x15\x9c\xf3\x06,\xeb\x17\ +@\x80\xab\xf1\xfa\xa5\xc7\x0f@\x80\xad\xe0f\xac_\x00\ +\x01\xb6\xe2\xce\x94\xfb\xfd\xbf\xd6/\x80\x00[\xc1\xd6/\ +\x00\x15\x5c\x8c\xfa\x07\xdf\xdf?,\xa7\xab\xcba\xd7\xaf\ +\xf8\x02\xb3\xd8\xef\xf7O[\x7fo\xe4+~\xcd\x03|\ +:\x9dv)_\x9c\xd9\xb8\xfc\x0cD\x0e\xeeG\xff\xae\ +H\xe7\xc0\x8b\xa1\xbf\xc8\x95W\xb0\xf5\x0bP>\xba\xe7\ +\xfe\xff\x8c\x1e\xe3]\x84/^\xad\x08\xe7\x08pJ|\ +\xad_`\xc6\xe8F=?\xee\xa2|1kD85\ +\xc0\xe2\x0b\x08\xaf\x10?\xbb\x08\xf3\x84(|9\xbae\ +|\x01\x84w\xdd\x9fq\x84\x10\xef\x22~\x81s\x878\ +%\xbe9\xc2\xfb\xf3\xee\xc7?\xff\xf9\xd7\xdfV0 \ +\xbcA\x16\xf1\xa7\x88\x0fV/\xef\x13\xce\x19\xdfeY\ +\x96\xeb\xaf_\xdc-\x0e\x88o\x90?\xff.\xfa\x03\x96\ +\xba\x86\xb7\xac\xdf\x9c\x97\x9b_\x06\xf8\xd7?\xb3\x84\x01\ +\xe1\x1d~\x0d\xeff\xf9\xe2o\x0d\xf1\x9a\x00\xe7~\x9d\ +\xf7\xb5\xf8\x8a0 \xbe1\x22\xbc\x9b\xedI\xb0&\xc4\ +\xe7\xc6\xb7\xc4\x0dV\xef\xc5W\x84\x01\xf1\x1d?\xc2\xbb\ +\x99\x9f\x0c\xef\xc5\xf8\xa3\xf8\x96\xbc\xab\xf9\x9c\xf8\x8a0\ + \xbecGx\xe7I\xd1\x975\xf1\x15a`\xb4\xf3\ +\xec[\xc3\xe7\xe5\xe8\xa9\xf5\xb6\xcd\xd6\x11\xdeyr\x8c\ +\x1d_\x11\x06z=\xbf\xae\xbd\xf7\xe6\xbd+\x8f\xa5\xa2\ +\xdc2\xc2;O\x92\xf1\xe3+\xc2@O\xe7\xd5\x927\ +\xbd\x96\x08q\xab\x08\xef\x8f\x1dx\x88\xb0\ +\x93\x97\x18[\xbdC>\x9fG\x7f\xbe:\xd8\x10\xe1\xc9\ +\xa3+\xc6V\xefH\xcf\xf3H\xcfK\x07\x18\x22,\xba\ +bl\xf5v{\x0cD~\xee\xed\x22|\xe1\x9c\x1c\x9c\ +\xf4z<\xc9\xf9 \x03\xcfA\xf1e\xa8\x00\xe78i\ +\x09\xb2\x13`\xcb\x93\x9d\xcf\xd2\xf5\xdc\x13^\x86\x0ap\ +\x91\x1f\x0a-\xc4N\x84\x95O|~\x9a\x8c\xe7\x9b\xf8\ +2L\x80k\x9c\xb0\x84\xd8I\xb1\xf4\x09p\xa6\xf0F\ +?\xbe\x84\x97\xf0\x01v\xcb:\x11\x22\xdf}O\x8e\xf0\xe1p(\xf6\xf3\x85\xc5\x17\x01\ +\xe6\xec0;\x09\x8c\xbd~g\xbc\xe3\xb9e\x84\xafo\ +n\xb3\xac`\xc7\x1c\x02\xfc\xda\x89\xf0\xfe\xa1\xeaI\xad\ +\xc4\xcf\x0f\xb6\x9a\xa1_\x8e+\x04\x18a\xb6~\xad\xe0\ +\x8a+\xd8q\x83\x00S,\xccN2\xe0\xb8`|M\ +\x7f\x18C\xcf\x97\xa0K\xdc\x85\xe9\x044\xde\x02\xf6i\ +W\xffhuW\xf4\xb9\xc7\xa1\xe7=\x16\xf0\x86(\xd6\ +8\xc1\xf5\xf0\xfao\xeb\xd5<\xfb\x09\xca\xfb~\xd3\xe4\ +\xb8\x14\xbd\xe9\xf9\xfc\xc1eh\xe1E\x80\x11\xe6\x80\xac\ +\xdf\xbcr\xbf-\xc9s\x17\x01\xee|\x05\xcf\xb4~s\ +\x86\xd9\x09\x8e^y^\x12E\xf6'rOw\x9an\ +\x8d\xef\xa8\xaf\xff:\x01\xe6{NZ\xbf\xafk\xfdZ\ +\xb0\xf8b\x01\x0f\xb0\x84-\xdf\xfa\xab\xd9\xc9\x11\xdf\xf4\ +A\xc3\x05\x9c\xb2\x82s-\x8f\x94\xf8\x9eN\xa7\xdd9\ +\xb1a\x9c\x13\xe8\x08\x9fSn\x05\xaf;.\xc1\x02\xee\ +p\x09\xe7^\xbeo\x85C\x98\xc7X\xcd\xee~\x8ea\ +\xbf\xdf?\x890\x02|\xe6w\xab)'\xbe\xe7\x88\xae\ +\x09q\x8e\xf0\xae9\xc0\x85y\xec0\xb3]\xab\xb7$\ +\x81\x00W^\xc3\xff\x17\xc8\x17A\xee\xf55^a.\ +\x1b\xe6\xd2qv\xf9\xb9\x8e\x9e~R\x12\x84\x0bp\xea\ +\x0a.\xb5rs\xac\xdf\x9ca\x16g\xab\x19\x98S\xf1\ +\x13\xd6\x08\xaf\xc1\xf5\xfa\xda\x920'>~7\xb7\x16\ +pA\xa9\x97\xa1\xb7,`\xaf\x03c\x01S\x85\xcb\xd9\ +\x00\x16p\xd8\x15\x1c\xed;jq\xde\xbe\x80\xad\xdf\xba\ +\x0bx\xcb\x0a\xb6\x80\xb1\x807D\xae\xc7\x08G<\x98\ +\xadf\x00\x01\xee:\xc2\xb3}'-\xcc\x00\x93\x06\xf8\ +e\xf4Z\x86\xd8%\xac\xf3\xc2,\xce|\xc4\xfb\x81a\ +\xa0\x00\xb7^\xc3\xe2k5\x03L\x1d\xe0\xdakXx\ +\x85\x19\xa07\xdd\x84\xa9D\x88\x85\xb7\x1f\xb5\xe3\xec=\ +\xc0ux/0\x0c\xb8\x80K.b\x07\xa8\xd5\x0c \ +\xc0\x89\xf1<'\xc8\x82+\xcc\x00\x02\x5c8\xc8\xcc\x1d\ +fq\x06\x04\x18\xacf\x00\x01\x86\x97a\xbe\xbe\xb9\x15\ +c\xa0k\x9f<\x04\x00 \xc0\x90\x85{\x07|]A\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ +\x18\xe2\xdb\xdf?x\x10Vh\xf1\x83\x18@\x80\x01\x00\ +\x01\x86\xd7x\xcf\xa8\xaf'\x080\x00 \xc0\xf0\x16\xaf\ +\x03\xd7\xe1\xf5_\x10``\x83\xd4\x1b\xb0\x00\x01&8\ +\xaf\x1b\xfa:\x82\x00\xc3 \x5c\x86.\xcb\xe5g\x10`\ +`\x03\x97\x9fA\x80\xe1,[._Z\xc1\xfd\xac_\ +\x97\x9f\x11`\xc0\xfa\xb5~A\x80\xa14+\xb8\xfd\xfa\ +\x05\x01\x86\xc1\xb9\x8c9\xe6\xfa\xf5uC\x80\xc1\x0a\xc6\ +\xfa\x05\x01\x06\x80\xd1\xb9\xbc\xc3\x5c\x8bv\xbf\x7f\xda\xf2\ +\xfbNW\x97S?n)\x97\x9f\xb7\xae_\x97\x9f\xb1\ +\x80\x01\xf1\x05\x04\x18Rl]U^\x0b\xb6~A\x80\ +\xa1\x91\x19#\xdc\xe2\xd23\x080X\xc1\x22\xdc \xbe\ +\xd6/\x02\x0c\x22<5\xef\xfb\x05\x01\x86\xae\xcc\xb0\x82\ +]z\x06\x01\x86.\xd7\x96K\xd1\xf9\xe3k\xfd\x22\xc0\ +\xc0\xd4\x11\xde\xba~-_X\xc7w\x9c\x08\xe9\xc6\x0f\ +\xe7\xf8\xb5\xdc\x02}HG\xab\xf8Z\xbf\x080\x88\xf0\ +\xb4\x11\x16_\xa8\xcb%h\xc8\x10\x81Y_\x13\x16_\ +\xd8\xee\xc2C\x00\x99V\xf4\xbf\x11\x1eq\x0d\xaf]\xbf\ +^\xef\x85t\xbe\xfb\x84\x97\x11M\xbc\x14\xfdk\xd9\x0d\ +\x14\xe1V\xf1\xb5~\x11``\xda\x08\x8b/\x080\x84\ +\x8cp\xcf!^\x13\xdf\x9c\x97\x9c\xc5\x17\x04\x18\xaaE\ +\xb8\xb7\x10\x9f\x1b\xdf\xdc\xaf\xf5\x8a/\x0804\x89p\ +\x0f!>'\xbe%n\xb2\xfay\xf7c\xf9\xf9\xd7\xdf\ +\xce9 \xc0\xd0.\xc2\xadB\xfcQ|K\xdd\xdd\xfc\ +\xf3\xee\xc7?\xff)\xc0 \xc0\xd0C\x84k\x86\xf8\xbd\ +\xf8\x96|[\xd1s|\x7f\xfdo\x11\x06\x01\x86^\x22\ +\x5c:\xc6\xaf\xc5\xb7\xc6{y\x7f\x8f\xaf\x08\x83\x00\xc3\ +j\xd7_\xbf<]\xdf\xdcV\xfd\xff\xcc\x11\xe4\xe7\xf8\ +\xd6\xfe\xf0\x8c\xb7\xe2+\xc2 \xc0\xb0:\xc0\xbf\xfe{\ +\xe5\x10\x8f\xe4\xa3\xf0\x8a0\x080l\x8a\xaf\x08\xe7\x89\ +\xaf\x083;?\x8c\x01*\xc6\xc6\xe3\x01X\xc0\x90\xb0\ +~\xad\xe1\xbc\xe1\xb5\x82\x11``u|g\x0d\xf1\xcb\ +O\xb5Z\xfb8\x890\xb8\x04\x0d\xdd\xad\xc1\xd1\xe2\x9b\ ++\x9e9\x22\x0e\x160L\xb8~\x7f\x0fR\x8d\xf7\x0d\ +\xb7\x0eo\x89\x88Z\xc2\x080\x88o\x96\x88D\x08\xf1\ +\x9a\x1f\xa2 \xc2 \xc0\xd0l\xfd\xbe\xf5k#\xc58\ +\xe5'\x17\xe5\xfc\x06\x06\x04\x18\xc47k8z\x8cq\ +\xce\x1f\x17(\xc2 \xc0\xd0e\x80{\x89q\xa9\x9f\xd1\ +\xebR4\x080t\x1d\xdf\xdaA.\x15\x5c\x11\x06\x01\ +\x86\xa1\xe3\x9b\x1a\xe8\x9a\x81\x15a\x10`\x98*\xc03\ +=\xb6\x1ec\xa2\xf2A\x1c \xbe\xc5y\x8c@\x80\xa1\ +\xc8:\xa3|\x84}\x9d\x10`\xc0\xb2\xf3\xcd\x12$s\ +\xf2\xc0\x09]|\x87\x8b\xa8\xc7\x1e\x0b\x18\xa0A<-\ +a,`\xb0~\xb1\x84A\x80A|E\x18F\xe1\x12\ +4\xd0\x8cx\x22\xc0`u\x09\xc6\xc4+\x1a\x04\x18\x9c\ +\xac\xad`_W\x04\x18\xb0~E\x18JqB\xc1\xfa\ +\x15\xdf\x10_#_+,`\x00K\x18\x04\x18\xac\xdf\ +\xf9\x22\x0c\x02\x0c\xe2\xcb`_s\x10`\xc0\x0a\x16a\ +\x02\xf3\xdd=\x96\x90\xf5\x1bz\xc9\xfa:b\x01\xc3\x80\ +'o,a\x10`\x18\xec\xc4\x8f\x08\x83\x00c\xfd\x8a\ +\xafo\x88@\x80\x01\xc6\xfa\xa6\x0cJ\xf0]%N\xb4\ +\x96\xd6T\x11\xf55F\x80A|\x11a&\xe6\x124\ +0\x147ea\x01\x83\xf5\x8b%\x0c\x160N\xc6\x1e\ +\x05K\x18\x04\x18\x9c\xc8\x19\xe0k\xe7\x1b7Zr\xe2\ +\xa1\x99\xfd~\xff\xc7\xc9\xeft:\xad~N\xba\xf4<\ +7\x97\xa2\x11`X\x11\xda\xb5\xde\x0b\xb3\x00#\xc2\x08\ +0d\x8c\xee91\x16_D\x18\x01Ft\x0bF\xf7\ +\xcd\x13\xe6\xdd\x0f'ZD\x18\x01Fx[Y\x1bb\ +'Y\x11\xf6\xfc\xa05wA3||\x97eY\xae\ +on\x9d\x5c\xf1\xf5\xc5\x02Fx{^\xc3N\xd0V\ +\xb0\x90#\xc0\x88o\xe5\x08;\xa9\x8a\xb0\x08#\xc0\x88\ +o\xe5\x08;\x99\x8a\xb0\x08\xd3\x13\xaf\x01\x132\xbe\xcb\ +\xb2\xeeuab\xf2\x83\x1b\xb0\x80\x11\xdf\xc6K\xd8\x8a\ +\xb1\x84-a,`\xc4\xd7\x12f\xc0%\x0c\x02\x8c\xf8\ +N\xfc\xf7`\xec\x15\x0d/\xf9\xae\x90\xaa\xd1:]]\ +\xbe\xfa\xcf\x1fo\xbe\xfd\xf1\xcf\x8e\xc7c\xf6\xbf\xd3\x96\ +\x1f\xf6\x80\x88Z\xd3\x080C\xc6\xf7\xad\xe8~\x14\xe0\ +R1\x16a\x11\x16az\xe0\x124\xc5\x9c\xae.\xcf\ +\x8a\xef\xb2,\xcb\xe7\xbb\xef\xef\xfe\xfa\xe1pX\x0e\x87\ +\x83\x07\x95d\xee\x8c\xc6\x02&\xec\xfa=7\xbakW\ +p\xceEl\x05c\x09c\x01#\xbeg\xae\xe0\xdf\x17\ +q\xcb\xbf'\x960\x080\xddH\x89\xef\x16.I\x13\ +aE3/\xdf\x01\x92e\x15\xe6\x8c\xef\x9aK\xd1\xcb\ +\x92v9\xda\xa5h\x5c\x8a\xc6\x02\xc6\xf2\xb5\x84i\xc0\ +MY\x080\xe2+\xc2\x880\x02\xcclz\xba)i\ +\xcd\xcdX\x91\xfe\xde\x880\x02\x0cC\xad_+\x98\x9e\ +\x22\x0c\x02\x0c\xd0\x80\x15\x8c\x00s\xb6-\x97a{[\ +\xbf)+\xd8ehr\xaf`\x11F\x80\x01D\x18\x01\ +\x86\xf3\xd5\xbc\x11\x0bD\x18\x01f\x08\xbd^~~\xe6\ +f,D\x18\x01\x06\x10a\x10`\x80\x16\x11\xb6\x82\x11\ +`\xfe\xe0\x0e`\x8f\x03u\x880\x02\x0c\xd0`\x05\x8b\ +0\x02\x0c \xc2\x080\x80\x08#\xc0\x00\x880\x02L\ +\x0d~ \xbd\xc7\x81v\x11F\x80\x01h\xc0\x0a\x16`\ +\x00\x1a\xad`\x11\x16`8\xdb\xfe\xfe\xa1\xeb?\xdf\xf1\ +x\xf4EB\x84\x11`\x00\x11\x16a\x04\x18@\x84\x11\ +`\xfa\xb0\xe5\x0e\xe0^/Co\xb9\xfc\xec\x0ehz\ +\x8a0\x02\x0cM=\xde|\xf3 0%+X\x80a\ +\xb8\x15\xec\xe6+\xa2\xac`\x11\x16`&2\xebeX\ +\x97\x9f\x11a\x04\x18+\xd8\xfaE\x84EX\x80a\x9c\ +\x08\x8b/\x22\x8c\x003\xb4\x94\xcb\xb19#\xbc\xe6\x06\ +\xac\x94\xf8\xba\xfc\xcc(\x11F\x80\xa1\xab%l\xf92\ +\x0b+X\x80\xb1\x82\xbb\x89pj|\xad_F[\xc1\ +\x22\x1c\x8f\x93\x10\xaf\x87t\xbfO>\xd8OW\x97\xab\ +\x7f\xcfG\x97\x9fs\xac^\xf1e\xe4%\xeb\x92v\x1c\ +\x17\x1e\x02\x8aE\xfc\xdf5\xbc%\xc4%\xc2\x0b=,\ +\xe1\xd4\x08_\x7f\xfd\xf2$\xc2\x160Vp\xd6U\xfc\ +\xfb\xfa-\x11]\xeb\x17K\x18\x01f\xda\x08\xb7\x22\xbe\ +D\x8a\xb0\x00\x0b0\x22,\xbe \xc2l\xe0.h\xc2\ +\xc7K|\x11p,`,a\xf1\x85\xec\x11\xb5\x84\x05\ +\x18\x11\x16_\x10a\x04\x98\x99#,\xbe\x880\xbd\xf3\ +\x1a0\xe1\xe2&\xbe\x8cH<-`\x18v\x0d\x0b/\ +\x96p\x9e\x90\xa7\x1c\xd7\x8eC\x01f\xb2\x08;\xe8\x11\ +\xe0\xed\x11.y\x0c;6\x05\x98\xa0!vp#\xc2\ +\xdb\x22\xecx\x15`\xc4\xd8A\x0c\x15#\xec\x8a\x95\x00\ +#\xc6\x0eX\xa8\x18\xe1\x1e\xdf\xbd0\xfbq\xed\xa4F\ +Wa\x16Z\xc8\x1b\xe1\xeb\x9b\xdb\xee\xff\x8e\xb3\x1e\xf7\ +Nv\x00\x01#\x02\x0c\ +@\xe0\xf5k\x05\x0b0\x80u\xb7\xf4\xff\xbao\xee\x08\ +\x8f\xba\x82\x05\x18\xc0\xf2\xedb\x05\xcf\xb6\x84\x05\x18 \ +\xd0\xfa\xf5x\x090\x00\x93\xad\xdf\x5cfY\xc1\x02\x0c\ +@V\xa9\x97\xa1g!\xc0\x00\x9d\xd9r95\xca\xfa\ +MY\xc1\xa3]\x86\x16`\x00\x10`\x00\x10`\x00\x06\ +\x10\xed\xf2\xf3\xb3\xe87c\x090@G\xa2\xbc\xfd\xa8\ +\xd5\x8dX#=~\x02\x0c\x00\x02\x0c\x00\x02\x0c@\xe7\ +\xa2\xbe\xfe\xfb,\xf2\xeb\xc0\x02\x0c\x00\x02\x0c\x00\x02\x0c\ +\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x90\xd1\xfe\xfe!\xf4\xdf\xefx<\x0a0\x00\ + \xc0\x00 \xc0\x00\xe4q:\x9dv\x1e\x859\x1e?\ +\x01\x06\x18\x5c\x8f\xaf\x03?\xde|K\xfewD~\xfd\ +W\x80\x01@\x80\x01@\x80\x01hd\xcb\xeb\x98\xd1\xde\ +\x8e\xb4\xe5\xf2\xf3h\xaf\x9f\x0b0\x00\x080\x00[\xf5\ +\xb2\x82So\xc0\x8a~\xf3\x95\x00\x03t\xcc\xdb\x91\xe2\ +?^\x02\x0c`\x05wc\x96\xf5\xbb,\xcb\xe2;,\ +\x80\x9e\x83\xba\xdf?mZ\x84W\x97M\xfe\xbc)\x97\ +\x9f\xb7\xc6w\xd4\xab\x05\x160\x80%l\xf9\x0a0\x00\ +\xa3\xae\xbb\x1c\x9f~5\xcb\xfa\x15`\x00+\xd8\xfam\ +\xc4k\xc0\x00#\xc4t\xe3k\xc1\xcbR\xe7\xf5\xe0\xad\ +\xeb7%\xbe\xa3\xdf)~\xe1i\x0d0\xc7\x12nu\ +c\x96\xd5\xfb:\x97\xa0\x01\x06\x90c\xed\xf5rI:\ +G|#\xbcO\xda%h\x80\x91\xd6l\xc2\xa5\xe8_\ +\xf1\xca\xbc\x84\xd7\x5c~\x16\xdf\xff\xb8\x04\x0d0[\xc4\ +3^\x92>7\xbe.9[\xc0\x00Vp\xc6E\xfc\ +Q\x80s\x877\xd2Gt\x0a0\x80\x08o\x8a\xf1[\ +\xf1-\xb5v\xa3}>\xb6\x00\x03\x88\xf0\xa6 ?\x07\ +\xb8\xc6\xe5\xe5\x88?\x9cB\x80\x01D\xb8kQ\x7f2\ +\x94\x00\x03\x88\xb0\xf8\x0a0\x00\x22\x1c?\xbe\x02\x0c \ +\xc2\xe2+\xc0\x00\xcc\x1e\xe2\x19\xc2+\xc0\x00\x22,\xbe\ +\x02\x0c\xc0\xac!\x9e-\xbc\x02\x0c \xc4\xc2+\xc0\x00\ +\xcc\x12\xe2\xd9\xc3+\xc0\x00B,\xbc\x02\x0c@\xc4\x18\ +\x8b\xae\x00\x03P!\xc8\x82\x0b\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\xc0\xec\xfe\x07\xd6\xc6\xf2\xf4\xdf:\x0f\x10\x00\x00\ +\x00\x00IEND\xaeB`\x82\ +\x00\x00\x08\xa4\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07\x1f$\x075\x17\x9b\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x08\ +\x1eIDATx\xda\xed\xdc\xbdN\xc30\x14\x80\xd1\ +^\x94\x85\xd7\xca#\x91\x11\x8f\xee\xd8>R^\x8b\xad\ +fC\x08\x81D\x9a\x7f\xfb\x9c\x11&,\xec/\xd7\xd0\ +\x5c.\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x1cSX\x02\xe6\xe8o\xa5X\x05j5\x0e\xe1\ +\x8cD\x80\x11]\x10c\x04\x18\xf1\x05!\x06\x01F|\ +A\x84\x11`\xc4\x17D\x18\x04\x18\xf1\x05\x11\xe6\x88^\ +,\x01\x80\x87S\x04\x18@\x84i\x82\xeb\x13\x1c.\xb0\ +\x00\xd7\xd1\x98\x80\x01<\xac\x22\xc0\x00\x22\x0c\xbfqe\ +\xc2\xe2\x07\x8a\xab8Z\x0f\xa3=\x80\x09\x98\xcd9x\ +8\xfd\xef\xf0\xdb\xfcs\xd1$\x8c\x00#\xbe0UD\ +\x11a\x04\x18@\x84\x11`\x00\x11\x16a\x04\x18@\x84\ +\x11`\x00\x11\x16a\x04\x18@\x84\x11`\x00\x11\x16a\ +\x04\x18@\x84\x11`\x00\x11F\x80\x01\x10a\x04\x18@\ +\x84\x11`\x00D\x18\x01\x06\x10a\x04\x18@\x84E\x18\ +\x01\x06\x10a\x04\x18@\x84E\x18\x01\x06\x10a\x04\x18\ +@\x84EX\x80\x01\x10a\x04\x18@\x84EX\x80\x01\ +\x10a\x04\x18@\x84\x11`\x00D\x18\x01\x06\x10a\x04\ +\x18\x00\x11F\x80\x01D\x18\x01\x06\x10a\x11\x16`\x00\ +D\x18\x01\x06\x10a\x11\x16`\x00D\x18\x01\x06\x10a\ +\x11\x16`\x00D\x18\x01\x06\x10a\x11\x16`\x00D\x18\ +\x01\x06\x10a\x04\x18\x00\x11\x16`\x00D\x18\x01\x06@\ +\x84\x05\x18\x00\x11F\x80\x01DX\x84\x05\x18\x00\x11F\ +\x80\x01DX\x84O\xa4k}\x01r\xce\xcd\xfd\x02\x8e\ +\xaf\xef\x1e\xbc\xa0\x86\x08\x97\xf2\xd2\xdf/\x8f\xb9\x11\x1e\ +\x87\x08\x0b*\xc0\xa2\xbb\x81\xfe\xe3\xfaH)\xc5?6\ +\xa6M\x09\x22\xccJ\x9a\x9b\x84Z\x8f\xafu\x80\x0a#\ +\xec:Z\x80E\x07@\x84\x11`\xf1\xb5& \xc2\x22\ +,\xc0B\x03 \xc248\x01\x03\x88\xb0\x08\x0b0\x87\ +\xf0\x9f\xff\x84\x06D\x18\x01~\x8a\xebg@\x84EX\ +\x801\xfd\x02\x22\x8c\x00\x8b/ \xc2\x22\xbc\x97\xce\x12\ +\x08\xd4_\xc6!J\x7f\xb3\xe7\xa0\x8a\x08{c\x96\x09\ +X|ae\xc5+D1\x09\x0b\xb0\xf8\xc2.\x07\xad\ +\x08#\xc2\x02\x0c\x880\x22\x8c\x00\x83\x08\x83\x08\x0b0\ + \xc2\x88\xb0\x00\x03\x22\x8c\x08\x8b\xb0\x00\x03\x22\x8c\x08\ +\x0b0 \xc2\x88\xb0\x08\x0b0 \xc2\x88\xb0\x00\x03\x22\ +\x8c\x08\x8b\xb0\x00\x03\x22\x8c\x08\x0b0 \xc2\x880\x02\ +\x0c\x880\x22,\xc0\x80\x08#\xc2\x02\x0c\x88\xb0\x08#\ +\xc2\x02\x0c\x880\x22,\xc0\x80\x08\x83\x08\x0b0 \xc2\ +\x88\xb0\x00\x03\x22\x8c\x08\x8b\xb0\x00\x03\x22\x8c\x08\x0b0\ + \xc2\x88\xb0\x08\x0b0 \xc2\x1c3\xc2\x02\x0c \xc2\ +\xec\x10\xe1V\xa7`\x01\x06D\x18\x93\xb0\x00\x03\x22L\ +\x8b\x11nq\x0a\x16`@\x841\x09\x0b0 \xc2\xfb\ +\xf2\xf9T\x11\x16`@\x84EX\x84+\xd6Y\x02`\ +v\x84#\xaa\x0b\x96\x08\xcft\xb7\x04&`\xc0$\x0c\ +\x02\x0c\x880 \xc0@\x13\x11\x1e\x87\xf0p\x80\x00\x03\ +\x22\x0c\x080 \xc2 \xc0\x80\x08\xaf\xc554\x02\x0c\ +\x88\xb0\x08\x83\x00\x03\x22\x0c\x02\x0c\x88\xb0\x08\xd3\x08o\ +\xc2\x02\xb6\x8b\xf0\x81\xde\x98\xf5=\xc2\xdez\x85\x00\x03\ +\x22l\x22\xae\x8a\x87\x9b\xbf\xb9\x82\x06\xb6\x8f0 \xc0\ +\x80\x08\x83\x00\x03\x22\x0c\x02\x0c \xc2 \xc0\x80\x08\x83\ +\x00\x03\x880\x080 \xc2 \xc0\x00\x22\x0c\x02\x0c\x88\ +0\x080\x80\x08\x83\x00\x03\x22\x0c\x02\x0c \xc2\x080\ +\x80\x08\x83\x00\x03\x22\x0c\x02\x0c \xc2 \xc0\x80\x08\x83\ +\x00\x03\x880\x080 \xc2 \xc0\x00\x22\x0c\x02\x0c\x88\ +0\x080\x80\x08#\xc0\x00\x22\x0c\x02\x0c \xc2\x080\ +\x80\x08\x83\x00\x03\x880\x02\x0c \xc2 \xc0\x80\x08\x83\ +\x00\x03\x880\x080 \xc2 \xc0\x00\x22\x8c\x00\x03\x88\ +0\x080\x80\x08#\xc0\x00\x22\x0c\x02\x0c \xc2\x080\ +\x80\x08\x83\x00\x03\x880\x02\x0c \xc2 \xc0\x00\x22\x8c\ +\x00\x03\x880\x02\x0c \xc2 \xc0\x00\x22\x8c\x00\x03\x88\ +0\x080\x80\x08#\xc0\x00\x15F\x18\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\xd8\x12\x00\x80\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\ +\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00\ + \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\ +\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\ +0\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\ +\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00\ + \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\xb4\xa4\ +\xbf\x95b\x15\x00g\x82\x00c\xc3\x01\xce\x82\xc3\xea,\ +\x016\x1e\x80\x09\x18\x00\x04\x18\x00\x10`v0\x0e\x11\ +V\x01p\xd6\x080\x00\x080\x00 \xc0\xac\xc454\ +\xe0\x8c\x11`l\x10\xc0\xd9\x22\xc0\xd8(\x00\xce\x14\x01\ +\xc6\x86\x01\x9c%\xa7\xe1MX\xcc\xda8\xdez\x05\x88\ +\xae\x00cC\xc1\xe2\xfa[\x89\x09\xfb\xc1\x03)\x02\x0c\ +\xb0\xe0\x83\xa6\xb0\xb28\x7f\x03\x06\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x10`\x008\x17\x1fC\x02\x98\ + \xe7\xfc\xf5\x91\xa4\x94\x92\xcf\xc1#\xc0\x00[\x85\xf7\ +\xe7\xd7\x84\x98g\xb8\x82\x06x\x22\xbeS\xbe\x0f\x02\x0c\ +0Q\xffq},\x11i\x10`\x00\x10`\x00\x10`\ +\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10`\x00\x10`\x00\x10`\x00@\x80\x01\ +@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10`\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\ +\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10\ +`\x00\x10`\x00@\x80w\x94s.V\x01p& \ +\xc06\x1c\xe0,\xa0R\x9d%\xb0\xf1\x000\x01\x03\x80\ +\x00\x03\x00\xeb\x88\x16~HW\xca\xc0\xdaRJa\x15\ +0\x01\x03\x80\x00\x03\x00?5se\xe2\x1a\x1aX\x8b\ +\xebg\x04X\x84\x01\xf1E\x80E\x18\x10_\x10`\x11\ +\x06\xc4\x17\x01\x16c@t\x01\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80]|\x02\x18\ +\x91p\xef\xf9(\xe8\xaa\x00\x00\x00\x00IEND\xae\ +B`\x82\ +\x00\x00\x0b\x85\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00=\x009\x005\xdd\xfb\ +\xddt\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x04\x12\x060\x03\x11V\xe1\xa3\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x0a\xedIDATx\xda\xed\xddAN\xe3H\x14\ +\x80ah\xf9Z\xd9\xf8T$R\x14E\x96\x92\x9c\xca\ +\x1b\x0e\xd6\xbdhh1=i0qU\xb9\xaa\xde\xf7\ +\xadF\xd3\x10\x1c\x17\xf8\xe7\xd9\x89yz\x02\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xd6s\ +K\x1b{8\x1c~Z2\x00>s\xb9\x5c\x9ah[\ +\x13\x1b)\xbc\x00\xf4\x16\xe2\xaa7Nx\x01\xe85\xc4\ +\xd5\x06X|\x01\xe89\xc2U\x06X|\x01\xe8=\xc2\ +?,\x09\x00\x98\x80M\xbf\x00\x84\x98\x82M\xc0\x00\x10\ +}\x026\xfd\x02\x10e\x0a6\x01\x03\x80\x00\x03@\x0c\ +C\xab\x1b>\x8e\xa3\xd5\xa3k\xf3<\xfby\x80\x0c?\ +/&`\x00\x08L\x80\x01@\x80\x01@\x80\x01\x00\x01\ +\x06\x80~\x0c\x11\x9f\xf4\xf9\xb8\xff\xf3\xdf\xa7\xe9\xea\xbb\ +\x00\x00\x01.\x11]1\x06@\x807\x0a\xefg\x1f+\ +\xc4\x00\xe4\xd6\xf55\xe0\xef\xc47\xc5\xe7\x01@\xf8\x00\ +\xaf\x8d\xa8\x08\x03 \xc0\x00 \xc0\xfdO\xbf\xa6`\x00\ +\x04\x18\x00\x04\x18\x00\x10\xe0;R\x9f6v\x1a\x1a\x00\ +\x01\x06\x00\x01\x06\x00\x04\xf8M\xea\xbbX\xb9+\x16\x00\ +\x02\x0c\x00\x02\x0c\x00\x08\xf0\x07\xa9N\x1b;\xfd\x0c\x80\ +\x00\x03\x80\x00\xf7?\x05\x9b~\x01\x10\xe0\xc2\x11\x15_\ +\x00r\x1bz\x7f\x82\xef1]rG+\xe1\x05@\x80\ +3N\xc3\x1fc,\xba\x00\x08\xf0\x061\x06\x80-x\ +\x154\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\xc0\ +\x0a\x83]\x00\xb4\xea\xb3\xf7\xf7\xf7\xfcn\x87\xa8\xcf\xdb\ +\x04\x0cPy\x84\x96\xfc\xbb\xe7\x8d\x00\x03$\x8eP\xaf\ +1\x8a\xfa\xbc\x05\x18\x00\x10`\x00\x10`\x00@\x80\x01\ +@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01\xa0\x01\xcd\xfe\ +=\xe0y\x9e\xbb_\x9cq\x1c}\x87\x02\x98\x80\xf1K\ +\x06\x00\x02,\xc2\x00\x080\x00 \xc0\x00 \xc0\x00\x80\ +\x00\x03\x80\x00\x03\x80\x00\x03\x00\x85\x0cv\x01[:\x1f\ +\xf7_~\xcci\xba\xdaQ\x80\x00SVOw\xc3Z\ +\x12\xdb\xa5\x9f'\xca\x80\x00#\xbe\x99\xc2\xbb\xe41\x85\ +8\xe6\xfa\xb7\xf4\xf5[\x7f\xde~\xc6\x04\xb8\xeb\xc9\xd0\ +\x01@\x88}\x0fP\xf3\x1a\xfa\xf9\xca\xc3\x8b\xb0\xc8\xf2\ +\x03[\xfa\xc0\xbb\xc5\xd7D|\xad%\x02L\xd8\xf0\x0a\ +\xb1\x036\xd6T\x80\xf1\xc3i{\x00\x04\x18\xb1\x13a\ +@\x80\x11_\xdb\x07 \xc0\xc4\x8a\x9b\x08\x03\x02\x8c\xf8\ +\xda^\x00\x01&V\xccD\x18\xa8\x89;aQE\xc4\ +^\x8f/\xff\xfb\x7f\xbb\xe9\x96e\xfb\xddT \xbf\xd3\ +t\xf5\x0bO\x87k\x8a\x00\xd3A|\xef\x05\xf7\xab\x8f\ +I\x15d\x11\x16a\xc4W\x80\x09gIx\xbf\xfa\xdc\ +\x1c\x931m\x1d\xb8\xbf\x13\xf6\x9e\xe2\x11\xf5y\xf7\xca\ +5`\x8aL\xbf\xaf\xc7\x97U\xf1M\xfdX&3@\ +\x801\xf5V\xf6\xb8\x00\x02L\xf3\xd3o\xeeH\xaey\ +|S0 \xc0\x98|M\xc2\x80\x00\xc3\xfa)\xb1t\ +\x14\x1f\xfdz\xa6`@\x801\xf9\x9a\x84\x01\x01\x868\ +\xd3\xa1)\x18\x10`L\xbf\xa6`@\x80\x01\x00\x01\xc6\ +\xf4k\x0a\x06\x04\x18\x00\x10`\x92\x8b\xf6\xc2$/\xc4\ +\x02\x04\x18\x00\x04\x18\x96\xa9\xed\xba\xab\xeb\xc0\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x02\x0c\x00\x080M\xd9M7\ +\xdb\x03 \xc0\x00 \xc04\xe84]=_\x00\x01\x06\ +\x00\x01\x86\xbbj\xb9\xee\xea\xfa/ \xc0\x00\xc0]C\ +\xab\x1b>\xcfs\xf7\x8b3\x8ec\x93S\xf0\x96\xb7\x81\ +4\xfd\x02&`\x9a\xff%#\xca\x0b\x93\xbc\x00\x0b\x10\ +`\xba\x98\xf4\xb7\x9aBM\xbf\x80\x00\x13~:,\x1d\ +\xc3G\xbf\x9e\xe9\x17\x10`\xbaS*\xc2&_@\x80\ +1\x05\x17\x8e\xe3\x9a\xc77\xfd\x02\x02\x8cI\xd8\xe4\x0b\ +\x080\xa4\x9f\x16w\xd3-Y0S<\x96\xe9\x17\xd8\ +\xda`\x17\xb0\xc54\xfc\xc8{\x85M\xbc\x80\x00\x13v\ +\x0a>\x1f\xf7IC\xfc\xee^\x90s\x05\xd7\xf4\x0b\x08\ +0_\xaa\xednX)#\xbc\xc5t+\xbe@-\x5c\ +\x03\x16\xdf0\x11\x13_\xc0\x04\xdcq\x9c\xa2\xc85\x09\ +\x8b/`\x02\x86N\xa2&\xbe\x80\x00#\xc2\xb6\x0f@\ +\x80\xe9;r\xe2\x0b\x080\x22,\xbe\x00\xff\xe1mH\ +$\x8f\xde\x96/\xce\x12^@\x80\x11\xe2\x82!\x16^\ +@\x80\xa1`\x88\x85\x17\x10`(\x18b\xe1\x05\x04\x18\ +VDsI\x94\xc5\x16\x10`(\x10e\x80\x08\xbc\x0d\ +\x09\x00\x04\x18\x00bp\x0a\x1a\xc8\xa6\x86?\xd8\xd1\xd2\ +\x1f\x0d\xa9\xf5y\xbbTd\x02\x06\xc4\x17k)\xc0\x00\ +\x0e\xd8\xd6\x14\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10`\x00\x10`\x00\x10`\x80\x07\xb9q\x835E\x80\ +\x01\x07l\xac\xa5\x00\x03\x0e\xdcXC~s/h\xa0\ +\xb9\x03\xf8w\xee\xca\xd4S@\xa2>o\x130\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\x90R\xb3\xb7\xa2\ +\x9c\xe7\xb9\xfb\xc5\x19\xc7\xd1w(\x80\x09\x18\xbfd\x00\ + \xc0\x22\x0c\x80\x00\x03\x94\xb3\xf4/\xfd\xf4\xf6\x17\x81\ +\xa2>o\x01\x06h(F\xbdF(\xea\xf3\xee\x91\xbf\ +\x07\x0ct?\x11z\xde\x98\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x01\x06\x00\x0480w\xc3\x02\x10`\xc4\x17\x80D\ +\x9a}\x1b\x928\x01`\x02\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10`\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\ +\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10\ +`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00\x10`\ +\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10`\x00\x10`\x00\x10`\x00@\x80\x01\ +@\x80\x01\x80,\x06\xbb\x00\xda7\xcf\xb3\x9d\x00&`\ +\x00@\x80\x01@\x80\x81\xa5\xc6q\xb4\x13@\x80\x01\x00\ +\x01\x06S0 \xc0\x00\x80\x00\x83)\x18\x10`@\x84\ +\x01\x01\x86\xc6#,\xc4 \xc0\x80\x10\x03+\xb8\x15%\ +4\x1cb\xe0\xb7\x16o\xc7j\x02\x06\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\ +\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\ +\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\ +\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\ +\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\ +\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00h\ +\xd4`\x17\xf4\xe9|\xdc\xdb\x09\x8d:MW;\x01\x04\ +\x18\xd1e\xcbu\x14c\xe8\x97S\xd0\xe2\x8bu\x05\x04\ +\x18\x07i\xac/\x080\x0e\xceXg@\x80qP\xb6\ +\xde\x80\x00\x03\x00\x02\x0c\x00\x02L\x01NGZw\xa0\ +m\xde\x07\x0c\x90\xf9\x97\x22\xef\xe7F\x80\x012\xc7v\ +\xe9\xe7\x892\x02\x1c\xc0\xeb\xf1\xc5N\xa8\xdcn\xba\xd9\ +\x09\x1d\x86w\xc9c\x0a\xb1\x00\x03P \xbcB\x8c\x00\ +\x03l\x18^!F\x80\x016\x0c\xaf\x10\xc7\xe5mH\ +\x00O\xf5\xbd\xc5\xcb[\xce\x04\x18@|m\x17\x02\x0c\ +\x10+r\x22,\xc0\x00\xe2k;\x11`\x80XQ\x13\ +a\x01\x06\x10_\xdbM\x02\xde\x86\x04\x88o\x02\xf7\xee\ +8\x97\xe3\x0eg\xe7\xe3\xde[\x94\x04\x18 n|\x97\ +\xdc\xe2\xf5\xef\x8fI\x15d\x11\x16`\x80p\xd6\xdc[\ +\xfd\xfds\xdd\xfb\x9b\xa7'\xd7\x80\x01\xd3\xef\xe2x\xa6\ +\xfa\xc3&)\x1e\xcb\xf5`\x01\x060\xf5V\xf6\xb8\x08\ +0@\xf3\xd3o\xeeH\xaey|S\xb0\x00\x03\x98|\ +M\xc2\x080\xc0\xfa)\xb1t\x14\x1f\xfdz\xa6`\x01\ +\x060\xf9\x9a\x84\x11`\x808\xd3\xa1)X\x80\x01L\ +\xbf\xa6`\x04\x18\x00\x04\x18\xc0\xf4k\x0aF\x80\x01@\ +\x80\x01\x92\x8b\xf6\xc2$/\xc4\x12`\x00@\x80\x01\x96\ +\xa9\xed\xba\xab\xeb\xc0\x02\x0c\x00\x080\x00\x080\x00 \ +\xc0\x00 \xc0\x00M\xd9M7\xdb\x83\x00\x03\x80\x00\x03\ +4\xe84]=_\x04\x18\x00\x10`\x80\xbbj\xb9\xee\ +\xea\xfa\xaf\x00\x03\x00\x02\x0c\xd0\xff\xf4i\xfa\x15`\x80\ +\xe6Eya\x92\x17`\x090\x80)\xd8\xf4\x8b\x00\x03\ +<>\x1d\x96\x8e\xe1\xa3_\xcf\xf4+\xc0\x00&a\x93\ +/\x02\x0c\x90fJ\xcc\x1d\xc75\x8fo\xfa\x15`\x00\ +\x93\xb0\xc9\x17\x01\x06H?-\xee\xa6[\xb2`\xa6x\ +,\xd3o\xfb\x06\xbb\x00\xe0\xfbS\xeb\xeb\xf1\xc5\xc4\x8b\ +\x00\x03,\x9d\x1a\xcf\xc7}\xd2\x10\xbf\xbb\x17\xe4\x5c\xc1\ +5\xfd\x0a0@\xe8\x08o1\xdd\x8ao?\x5c\x03\x06\ +BF\xd8v#\xc0\x00b&\xbe\x019\x05\x1d\x80\x17\ +~\xc0\xbf\xa3\x96\xe3t\xb4\xf8b\x02\x06h\xe9\xf3q\xff\xe7\xbf\ +O\xd3\xd5w\x01\x80\xe3\xb1\x00\x97Xd\x8b\x0f\xe0x\ +,\xc0\x1b-\xf4g\x1f+\xc4\x00\x8e\xc7\xb9\xfd\xb0\xd8\ +\xe9>\x0f\x00\xc7\xe3\xf0\x01^\xbbh\x22\x0c\xe0x,\ +\xc0\x00 \xc0\xfd\xff\xb6e\x0a\x06p<\x16`\x000\ +\x01\x03\x00\x02|G\xea\xd3\x14NC\x038\x1e\x0b0\ +\x00\x080\x00 \xc0oR\xdf5\xc5]\xb1\x00\x1c\x8f\ +\x05\x18\x00\x04\x18\x00\x10\xe0\x0fR\x9d\xa6p\xfa\x19\xc0\ +\xf1X\x80\x01@\x80\xfb\xff\xad\xcb\xf4\x0b\xe0x,\xc0\ +\x85\x17M|\x01\x1c\x8fs\x1b\xa2,\xfa\x92;\xa8\x08\ +/\x80\xe3\xb1\x00g\xfc\xed\xeb\xe3\xe2\x8b.\x80\xe3\xb1\ +\x00o\xb0\xf8\x008\x1eo\xc1\xab\xa0\x01@\x80\x01@\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00Vx\xaeic\x0e\x87\ +\xc3OK\x02@N\x97\xcb\xa5\x8a\xf6\x99\x80\x01@\x80\ +\x01 \x86\xe7\xda6\xc8ih\x00r\xa9\xe5\xf4\xb3\x09\ +\x18\x00L\xc0\xa6`\x00bL\xbf&`\x000\x01\x9b\ +\x82\x01\x881\xfdV\x1d`\x11\x06\xa0\xd7\xf8V\x1f`\ +!\x06\xa0\xb7\xf06\x15`!\x06\xa0\x97\xf0\x02\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0]\xbf\x00\ +\xb8\xfae_\xda\x82!\xd8\x00\x00\x00\x00IEND\ +\xaeB`\x82\ +\x00\x00\x11\xa2\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00=\x009\x005\xdd\xfb\ +\xddt\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x04\x12\x060\x0f\x18\xe0\xad\x88\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x11\x0aIDATx\xda\xed\xdd\xbdN\x1cY\x13\ +\x06\xe0aE\xb2\x17D@0H\x8cd\x02_\x11F\ +B\xc8B\x02_\xd1\x06F\x1a$O@\xc0\x059d\ +\x83\x15\x88\xc5\xfcu\xf7\xf9\xa9s\xce\xf3D+}\xeb\ +5tW\xd5{\xaa\xa7\xe1[\xad\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\xa0={.A]ggg\x0f\ +S\xff\xcc\xd5\xd5\x95\xfb\xa6N\xd4\x89:P\x07\x02\x98\ +\xdc\x0d\xa4\xc1\xd4\x89:Q\x07\xea@\x00\x13\xa4\x894\ +\x97:Q'\xea@\x1d\x08`\x024\x92\xc6R'\xea\ +D\x1d\xa8\x03\x01\xac\x91*6\x92\xc6R'\xeaD\x1d\ +\xa8\x03\x01\xac\x91\x02\xd1X\xeaD\x9d\xa8\x03u \x80\ +5\x92\xc6R'\xeaD\x1d\xa8\x03\x01\xec\x12\x8c\xd3L\ +\x9aJ\x9d\xa8\x13u\xa0\x0e\x04\xb0f\xd2T\xeaD\x9d\ +\xa8\x03u \x80\x19\xab\x994\x95:Q'\xea@\x1d\ +\x08`\xcd\xa4\xa9\xd4\x89:Q\x07\xea@\x003V3\ +i*u\xa2N\xd4\x81:\x10\xc0\xc36\xd3f\xb3\x99\ +\xfcg\xb6\xdb\xad\xa62t\x0d_\xf3\xc2\xbc\x10\xc0\x9a\ +\xa9D\x13\x95h.M%|\xd5\x89y\xa1\x0e\x04p\ +\x97\xcd\x94\xb2\x91r5\x96\xa6\x8a\x19\xbeQ6\x1fu\ +b^\xa8\x03\x01\xdcT3\xe5l\xa4\x1c\x8d\xa5\xa9b\ +\x84o\xd4\xcdG\x9d\x98\x17\xea \x8d}\x97 \x9f\x92\ +\x8d\xf4\xf2\xef\xcc\xb9\xfd\xd0^\xdd\xa8\x0b\xf3B]\xd8\ +\x80\x879\xcd\xd6h\xa6\x94\xa7[\xa7\xda\xf2\xdbok\ +\x9b\x8f:1/\xd4\xc12\x7f\xb9\x04}\x9cd#\x7f\ +\x1d||\x9fJ\xdf\xab\x1a\x7f'\xe6\x056\xe0\xac\xa7\ +\xd9\x88E<\xf7d\xebT\x9b\x7f\xfbm}\xf3Q'\ +\xe6\x85:\xb0\x01;A:\xd9\xaa\x17\xf5\xe1\xfe\xab\x07\ +\x1b\xf0\x88\xa7\xd9\x16\x8av\xce\xc9\xd6\xa96\xcf\xf6\xdb\ +\xd3\xe63z\x9d\x98\x17\xea\xc0\x06\xec\xc4\xe8d\xab^\ +\xd4\x87\xfb\xaf\x1e\x04\xf0\x98[\x8d\xeb\xe1\xba\xb4>\xd4\ +\xe6~}\xa3\xd6\x89\xfep=\x04\xb0S\xa2S\xadk\ +\xafF\x5c[\xb5 \x80\x01\x80\x8f\xf8\xc0\xfc\x99\xa9\x8f\ +OZ>\x1dN}\xc1\xc2\xcb\x15\xf3\xeb\xa4\xd5Z\xf1\ +\x12\x8eya^\xd8\x80\x01@\x00\xd3\xfei\xb6\x87\xaf\ +\xdf\xb5\xf6u\xbb\x96\xbe~\x01\x0c\x00\x08\xe0\xb9\xbc>\ +\xef\xfa\xe4\xb8\x0e\xa3m>\xa3\xd4\x89~p}\x04p\ +#C\xc9\xf7\x01\xe6\x85\xef\x03\x01\x0c\x00\x02\x18l>\ +\xbe\x0f\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\x10\ +\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\x10\xc0\x00 \ +\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00 \x80\x01\x00\ +\x01\x0c\x00\x02\x18\x00\x10\xc0\x00 \x80\x01@\x00\x03\x00\ +\x02\x18\x00\x040\x00 \x80\x01@\x00\x03\x00\x02\x18\x00\ +\x040\x00 \x80\x01@\x00\x03\x80\x00\x06\x00\x040\x00\ +\x08`\x00@\x00\x03\x80\x00\x06\x00\x040\x00\x08`\x00\ +@\x00\x03\x80\x00\x06\x00\x040\x00\x08`\x00\x10\xc0\x00\ +\x80\x00\x06\x00\x01\x0c\x00,\xb0\xef\x12\xd4\xf5\xfd\xfc\xdb\ +\xec?{qy\xed\x02\x82ya^\x08`r5\xce\ +\xd4\xff\xa6F\x03\xf3\xc2\xbc\x10\xc0\x1a(\xc0\xdf\xad\xc1\ +\xc0\xbc0/\x04\xb0&\xaa\xfcui.0/\xcc\x0b\ +\x01\xac\x894\x17\x98\x17\xe6\x85\x00\xa6\xefFz\xef{\ +X\x1f\x7fqC\xc1\xbc0/\x04pl\xbb\xdb\x9b\xd5\ +\xee\xf6\xa6\xbb\xefIc\x81ya^\x08\xe0\xd0E7\ +\xc2\xf7\xa8\xb1\xc0\xbc0/\x04\xb0F\xd2X`^\x98\ +\x17]\xf2\x9b\xb04\x93\xef\x1f\xf4\x8b\xef\xdf\x06\xac\x90\ +\x9cn\xc1\xbc0/l\xc0\x9a\x09\xd7\x05\xf4\x85\xebb\ +\x03\xee\xb7`v\xe7\xa7\x9f\xfa\xf7~\x1f\x7f}\xfa\xe7\ +\x93\xcdQ\xf1\xafs}x\xf0\xb0Z\xadV\xbb\xbb\xfb\ +=\x15\x83ya^\x98\x17\x028Y\xa1Dj\x9e\xd7\ +\xfc}\xfb\xcfSS\xfd\xdc\xfe\xfa\xe3\x7f/\xd5d\xeb\ +\xc3\x83\x07M\x85ya^\x98\x17\x028t3-i\ +\xa0\x8f\x9a\xea\xa5\x97M\x96\xb3\xc14\x15\xe6\x85ya\ +^\x08\xe0p\xcd\x94\xba\x89\xa64\xd5[\x0d\x96\xa3\xb9\ +4\x15\xe6\x85ya^\xcc\xf7\x97fJ\xdbH\xb9\x9b\ +\xe9ySM\xf1s\xfb\xeb\xd5\xc7P\xd17\x020/\ +\xcc\x0b\x01\xac\x99B4\xd2\x92\xa6\xca\xd5X\x9a\x0a\xf3\ +\xc2\xbc0/\x04p\xd1\x9b_\xab\x91\x966U\x8e\xc6\ +\xd2T\x98\x17\xe6\x85y!\x80\xb3\xdf\xf4\x08\x8d\x94\xa2\ +\xa9R7\x96\xa6\xc2\xbc0/\xcc\x0b\x01\x9c\xb5\x99\x22\ +Z\xd2T\x8f\x8d\xa5\xa9\xc0\xbc0/\x04\xb0f\xaa\xd4\ +T)\x1aK\x08c^\x98\x17\xe6\x85\x00\x1e\xa6\x99R\ +5U\xaa\xd3\xad\x10\xc6\xbc0/\xcc\x8b\x81\x038\xc5\ +M\x8d\xf6\xf9\x8d\xa6\x02\xf3\xc2\xbc\x10\xc0\xddk\xad\x91\ +r4U\x8e\x9f\x05\x04\xf3\xc2\xbc\xa0\xe3\x00^z\x9a\ +j\xb9\x99R6\xd5\xd2\xd3\xad-\x18\xf3\xc2\xbc0/\ +\x06\x0a`\xcd\x94\x9e\xa6B\xf8\x9a\x17\xe6\x85\x00\xce\xaa\ +\xb7fJu\xaa]\xdaT`^\x98\x17t\x1e\xc0K\ +NO\xbd\x9ed#4\x95-\x18\xf3\xc2\xbc0/:\ +\x0e`\xcdT\xa6\xa9j\xdc\x1f0/\xcc\x0b\x01\xdc!\ +\x9f\xe1\x949\xd5\x82ya^\xd0a\x00\xcf=-\x8d\ +\xd4L\x1e-\x81ya^\x08`'\xd9\x81\x9b\x0a\xcc\ +\x0b\xf3\x82N\x02\xd8V\xe5~\x81\xfas\xbf\x04\xb0\xd3\ +\xacS-\x98\x17\xe6\x85y\xd1\x7f\x00\xcf9\x1dy\x89\ +\x22\xad9Me\x0b\xc1\xbc0/F\x9f\x17\xde\x82v\ +\xaa\x050/\x04\xb0\xd3\xacS-\x98\x17\xe6\xc5\x18\xf3\ +\xc2\x06\xecT\x0b`^\x08\xe0\xbc\x9cf\xe3\x9dj\xc1\ +\xbc0/\x04pc<\xbe\xec\xe3T\xeb>\xa2\xce\xcc\ +\x8bQ\xef\xe30\x1b\xb0\xd3\xacS-\x98\x17\xe6\x85\x00\ +\xc6\xa9\x160/\x06\xd7d\x00O}\x0c\xe14\x1b\xfb\ +T\xeb\xf1 \xe6\x85y1\xe2\xbc\xb0\x01\x03\x80\x00\xa6\ +\x16\x8f\x95\x00\xf3B\x00'\xe5qR\x1d^\xc6\xc2\xbc\ +\xc0\xbc\xe8,\x80}^\xd8'\xf7\x15u\xc5h\xf7\xd5\ +#h\x9ex\xac\x04\x98\x17\x028\x09\x8f\x93\xea\xf2\x18\ +\x1a\xf3\x02\xf3\xc2\x06\x0c\x00\x02\x18\x00\x04pC\xbcP\ +\xd17\xf7\x17\xf5\xc4H\xf7\xd7\x06\xcc\xffx\xb1\x020\ +/\x040\x00\x08\xe0\xd6x\xa31\x06oBc^`\ +^\xd8\x80\x01@\x00\x03\x80\x00\x06\x00\x040\x00\x08`\ +\x00@\x00\x03\x80\x00\x06\x00\x040\x00\x08`\x00@\x00\ +\x03\x80\x00.`}\xf9\xc3\xdd\x0d\xe0ds\xe4\x22`\ +^`^\xd8\x80\xf9\xc8\xef\xe3\xaf.\x02`^\x08`\ +\x00\x10\xc0\xd5\xed\xee\xee\xf7\xdc\xb2~\xb9\xbf\xa8'F\ +\xba\xbf6`\x00\x10\xc0\x00 \x80\x9b\xe7\xcd\xc6iR\ +\xbfP\xe1\x0dh\xcc\x0b\xf3\xc2\xbc\xb0\x01\x03\x80\x00^\ +\xc2\x8b\x15}r_QW\x8cv_\xbb\xdf\x80=V\ +\xfa\x1c\x8f\x93\xc0\xbc0/\x040\x00\x08`\x00@\x00\ +\xafV\xab\xe9\xcf\xff=Vz_\xed\xc7I>\xa7\xc3\ +\xbc0/F\x9c\x176`\x00\x10\xc0\xf98\xd5\xc6<\ +\xcd\x82ya^\x08\xe0\xc6xl\xd9\x07\xf7\x11u\xc6\ +\xa8\xf7q\xa8G\xd0N\xb5N\xb3`^\x98\x17\x02\x18\ +\x00\x04p\x9b\xe6<\x8ep\xaa\x8ds\x9a\xf5X\x10\xf3\ +\xc2\xbc\x18y^\xd8\x80\x01@\x00;\xd5:\xcd\x82y\ +a^\x8c1/\x86\xdd\x80=Z\xaa\xd7L`^\x98\ +\x17t\x12\xc0\xb6\xa9z\xa7Y\xf7\x0b\xf3\xc2\xbcp\xbf\ +l\xc0N\xb5\x85\x9b\xc9i\x16\xf3\xc2\xbc0/\x04\xf0\ +\xecS\x92GKe\x9b\xc9\xf6\x81ya^\x98\x176\ +\xe0\xa1\x9a*\xe5i\xd6I\x16\xf3\xc2\xbc0/\x04p\ +\xb2\xd3R\xcfM\x15\xe1s\x1c\xdb/\xe6\x85ya^\ +t\xbe\x01k\xaa\xbc\xcd\xe4Q\x12\xe6\x85ya^\x08\ +\xe0,|\xc6\x93\xbe\x99\xc0\xbc0/\x18$\x80\x97\x9e\ +\x9ezi\xaa(\x9f\xe3\xd8~1/\xcc\x0b\xf3b\xa0\ +\x0dx\xf4\xa6\xd2L`^\x98\x17\x02\xb8Y\xad6U\ +\xaaf:\xd9\x1cy\x8c\x04\xe6\x85y!\x80\xeb\x9c\xa6\ +\xd6\x97?\x9aj\xac\x94\xcd\x14\xe1\xfa\x83ya^\x08\ +\xe0\x81\x9b\xaa\x95\xd3\xadf\x02\xf3\xc2\xbc\x10\xc0\x9a\xaa\ +\xc1fJ\xf5\x08I\xf8b^\x98\x17\xe6\x85\x00\x1e\xa2\ +\xa9R5S\xa4\xeb\x0c\xe6\x85y\xd1\xbb\xfd\xd1\x9aj\ +}x\xf0\x90\xaa\xa9v\xe7\xa7\xcd7S\xca\x97&\x84\ +/\xe6\x85ya^\x08\xe0\xecM\x15\xa1\xb1\x964S\ +\xea\xb7\x155\x13\xe6\x85ya^\x08\xe0\xa2MU\xab\ +\xb1\xe66S\x8e\x1f\x13\xd0L\x98\x17\xe6\x85y!\x80\ +\xab5U\xc9\xc6\x9a\xd3L\xb9~>O3a^\x98\ +\x17\xe6\x85\x00\x0e\xd1T\xcf\x1b+GsMi\xa6\xdc\ +?\x14\xaf\x990/\xcc\x0b\xf3B\x00\x87k\xaa\xd7\x9a\ +ki\x83}\xd4L%\x7f\x0b\x8df\xc2\xbc0/\xcc\ +\x0b\x01\x1c\xbe\xa9\xdek\xb0\xcf6\xd9\xcbf\xaa\xf9+\ +\xdf4\x13\xe6\x85ya^\x08\xe0t\x85~\xfc\xe5\xbf\ +b\xb9\xbd)\xffw\x7f\xe2g\x05O\x02\xfc<\xa1F\ +\x02\xf3\xc2\xbcH\xc7\xff\x19\xc3\x1b\x8d\x85\xeb\x02\xfa\xc2\ +u\xb1\x01\x0ft\xba\xd5H`^\x98\x176`\xc54\ +x1i&\xd0/\xbe\x7f\x1b\xb0\xd3\xadF\x02\xf3\xc2\ +\xbc\x10\xc0\x1aK#\x01\xe6\x05\xcbx\x04=\xa3\xe8.\ +.\xaf\xbb\xfb\x9e4\x13\x98\x17\xe6\x85\x00n\xc2\xc5\xe5\ +u\xf3\x8duqy\xad\x91\xc0\xbc0/*\xf1\x08:\ +AQ>\xfa~\xfe\xad\xa9\xaf\x170/\xcc\x0b\x01\xac\ +\xb94\x11\x98\x17\xe6\x85\x00&}\x11\x97l0\x0d\x04\ +\xe6\x85y!\x80\xf9\xa0\xc8\x974\x9a\xc6\x01\xf3\xc2\xbc\ +\x10\xc0h\x0a\xc0\xbc`\x02oA\x03\x80\x00\x06\x00\x01\ +\x0c\x00\x08`\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08\ +`\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x02\x18\x00\x10\ +\xc0\x00 \x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00 \ +\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x040\x00 \x80\x01@\ +\x00\x03\x00\x02\x18\x00\x040\x00 \x80\x01@\x00\x03\x00\ +\x02\x18\x00\x040\x00\x08`\x00@\x00\x03\x80\x00\x06\x00\ +\x040\x00\x08`\x00@\x00\x03\x80\x00\x06\x00\x040\x00\ +\x08`\x00\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\ +\x10\xc0\x00\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\x10\xc0\x00\ +0\xa4}\x97\x00\xe2\xfa~\xfem\xf6\x9f\xbd\xb8\xbcv\ +\x01A\x00\x039\xc3v\xca\x7fO0\x83\x00\x06\x81\x1b\ +\xe0\xef\x15\xc8 \x80A\xe8V\xfe\x9a\x841\x08`\x10\ +\xba\xc2\x18\x040\xd0w\xf0\xbe\xf7\xf5\x0bb\x10\xc0\xd0\ +\x84\xdd\xedM\xb7\x07\x89\xf5\xf1\x177\x18\x040\x08\xde\ +Z\xdf\xa3 \x06\x01\x0c\x82W\x10C\x93\xfc&,\x10\ +\xbe\xbe\x7f\xb0\x01\x83\xe0\xb1\x0d\x83\x0d\x18\x10\xbe\xae\x0b\ +\xd8\x80\xa1\xae\xf5\xe1\xc1C\x8d\x90\xd9\x9d\x9f~\xea\xdf\ +\xfb}\xfc\xf5\xe9\x9fO6GB\x18\x040\xf4\x11\xbe\ +\x91\xc2\xf65\x7f\xdf\xfe\xf3\x14\xc2?\xb7\xbf\xfe\xf8\xdf\ +K\x85\xf2\xfa\xf0\xe0aww\xbf\xa7j@\x00C\xd8\ +\xf0]\x12\xb8\x1f\x85\xf0K/C9g \x0ba\x10\ +\xc0\x10.|S\x87\xee\x94\x10~+\x90s\x84\xf1\xe3\ +\xb5\x13\xc4\xf0:/aA\xa1\xf0\xdd\x9d\x9ff\x0f\xdf\ +\xe7!<\xc5\xcf\xed\xafW\x1f[G\x7f\x82\x00\x02\x18\ +\x84o\x88\xe0]\x12\xc29\x83X\x08\x83\x00\x86ba\ +Q+x\x97\x86p\xae \x16\xc2 \x80\xa1H\xf8F\ +17\x84s\x04\xb1\x10\x06\x01\x0cY\xc2!\xc2\xd6\x9b\ +:\x84\x1f\x83X\x08\x83\x00\x86\xb0\xe1\x1bY\x8a\x10N\ +\x15\xc4B\x18\x040\x0c\x11\xbe\xa9B8\xf56\x0c\x02\ +\x18\x84\xef\xec\xe0m%|\xa3\x85\xb0-\x18\x01\x0ct\ +\xbd\xf5\xe6\x0c\xe1\xa5A,\x84\x11\xc0`\xfb\x1d&|\ +S\x86p\x8amX\x08#\x80A\xf8\x0e\x13\xbe\xa9\xf9\ +\x5c\x18\x040d\xd3\xe2\xe7\xbd\xa5\xb6\xe0\xa5!l\x0b\ +F\x00\x83\xedw\xb8\xadW\x08\x83\x00\x86\x90\xe1;\x82\ +\x94!\x0c\x08`H\xc2g\xbe\xb6`\x10\xc0Px\xfb\ +\x1d)|=\x8a\x06\x01\x0c6\xdf\xc1C\x18\x040\x0c\ +\xbc\xfd\xe2~\x81\x00\x06\xdb\xaf-\x18\x040\xf4\xbdM\ +y\xe9*\xad\xb9!l\x0bF\x00\x03\xb6`@\x00\x83\ +\xedw\x9c-\x18\x040`\x0bn\xe0\x00\x05\x02\x18\x1a\ +d\xfb\xb5\x05\x83\x00\x06\xdb\x93-\xd8}D\x00\x83\xed\ +\x17[0\x08``\xb8-\x18\x0404b\xcacK\ +\xdbo\xfc-\xd8ch\x040\x00 \x80\x812<\x86\ +\x06\x01\x0cIy\xfc\x5c\x87\x97\xb1@\x00\xd3!\x9f\x17\ +\xba\xaf \x80\x81nx\x0c\x0d\x02\x18\x92\xf0\xf8\xb9.\ +\x8f\xa1\x11\xc0\x00\x80\x00\x06\x00\x01\x0c\x8d\xf1\xa2\x8e\xfb\ +\x0b\x02\x18\xe8\x8e\x17\xb1@\x00\x03\x80\x00\x86\xd6x\x03\ +:\x06oB#\x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\ +\x00 \x80\x01\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00 \x80\ +\x01@\x00\x03\x00\x02\x18\x0aX_\xfep\x11\x028\xd9\ +\x1c\xb9\x08\x08`\x80\x8f\xfc>\xfe\xea\x22\x80\x00\x06\x00\ +\x01\x0c!\xec\xee\xee\xf7\x5c\x05\xf7\x17\x040\x00 \x80\ +\x01@\x00Ce\xde\x84\x9e&\xf5\x0bX\xde\x80F\x00\ +\x03\x00\x02\x18\x96\xf2\xa2\x8e\xfb\x0a\x02\x18\x82\xf3\x18\xfa\ +s<~\x06\x01\x0c\x00\x02\x18\x00\x10\xc0\xf0d\xca\xe7\ +\x85\x1eC\xbf/\xc2\xe3g\x9f\xff\x22\x80\x01\x00\x01\x0c\ +\xa9\xd8\x82\xe3n\xbf \x80\xa11\x1e[\xba\x8f \x80\ +\xc1\x16l\xfb\xb5\xfd\x82\x00\x06l\xbf \x80!\xd0\x00\ +\xb7\x05\xdb~A\x00\x03\x80\x00\x06[\xb0\xed\xb7\xec\xf6\ +\xeb\xf13\x02\x18\x06\xe4Qt\xdd\xf0\x05\x01\x0c\x83n\ +\xc1\xb6_\xf7\x0b\x040\xd8\x82\x9b\x0c_\xdb/\x08`\ +\x98\xbdUy\x14]>|m\xbf\x08``\x98\x10N\ +\xb9\xfd\x0a_\x10\xc0`\xc0\x17\x0e_@\x00C\xd2\x10\ +\xeeu\x0b\x8e\xf4\xb9\xaf\xc3\x11\x02\x18x3\x84}&\ +,|A\x00C\xe1-\xb8\xb7m8\xca\xe7\xbe \x80\ +A\x08\x0f\x13\xc2\x91\xc2\xd7\xf6\x8b\x00\x06\x86\x08\xe1T\ +\xe1{\xb29\x12\xbe \x80\xa1N\x00\xb4\xf6\xb9p\xca\ +\xf0\xad}\xedA\x00\xc3\xe0!\xdc\xca6\x1c)|\x01\ +\x01\x0cC\x84p\x8a\xf0M\xf1\xc8\xd9\xf6\x0b\x02\x18\xb2\ +\x85p\xb4 N\x15\xbe\x91\xae3\x08`\x10\xc2\xa1\xb7\ +\xe1\xa5\xe1\x9br\xeb\x15\xbe\xf0\x7f\xfb.\x01\xfc\x19\x12\ +\xeb\xc3\x83\x87T!\xbc;?m.|s|\xce+\ +|A\x00C\xb1\x10\xae\x15\xc4s\xc37\xd7\x0bV\xc2\ +\x17\x040T\x09\xe1\x92A<'|s\xbe\xd9,|\ +A\x00C\xf5\x10~\x1e\xc49\xc2xJ\xf8\xe6\xfeq\ +\x22\xc1\x0b\x02\x18\xc2\x85\xf0ka\xbc4\x90?\x0a\xdf\ +\x92?\xbf+|A\x00C\xf8\x10~/\x90?\x1b\xca\ +/\xc3\xb7\xe6/\xcb\x10\xbe \x80!y\xb0\x9c\x9d\x9d\ +=\xecno\x8a\xfe\xbd\x9f\xf9\x91\xa6\x93 ?\xf6\xb4\ +>\xfe\xb2\xda\xdd\xdd+\x16\xf8\x04?\x07\x0c3B\x06\ +\xd7\x05l\xc0P1lJo\xc3\x82\x17l\xc0\x80\xf0\ +\x11\xbe`\x03\x06\xdb\xb0\xe0\x05\x01\x0c\x82X\xf0\x02\x02\ +\x18\x04\xf1\x12\x17\x97\xd7\xab\xedv\xeb\xc6\x82\x00\x86v\ +\x82k\xb5Z\xad\xbe\x9f\x7fk\xfa\xeb\x07\x0404\x1f\ +d\xd1\xc3X\xe8\x82\x00\x06a,tA\x00\x03\xf9\x83\ +\xafT \x0b\x5c\x10\xc0\xc0\x07\xc1\xb8$\x94\x05-\x08\ +`@\x88\x02/\xf8MX\x00 \x80\x01@\x00\x03\x00\ +\x02\x18\x00\x040\x00 \x80\x01@\x00\x03\x00\x02\x18\x00\ +\x040\x00 \x80\x01@\x00\x03\x80\x00\x06\x00\x040\x00\ +\x08`\x00@\x00\x03\x80\x00\x06\x00\x040\x00\x08`\x00\ +@\x00\x03\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\x10\xc0\x00\ +\x80\x00\x06\x00\x01\x0c\x00\x08`\x00\x10\xc0\x00\x80\x00\x06\ +\x00\x01\x0c\x00\x02\x18\x00\x10\xc0\x00 \x80\x01\x00\x01\x0c\ +\x00\x02\x18\x00\x10\xc0\x00 \x80\x01\x00\x01\x0c\x00\x02\x18\ +\x00\x040\x00 \x80\x01@\x00\x03\x00\x02\xb8\x9e\xedv\ +\xeb\xfb\x00\xcc\x0b\x040\x00\x08`\xc0\xe6\x03\x08\xe0\xcf\ +\xba\xba\xba\xda\x1bi(M\xfd\xfa\xa7^\x1fu\xe2\xfa\ +\xf8>\xcd\x0b\x040\x00\x08\xe0\x9e\xb4z\xaa\xf5H\xd1\ +\xb5V+\xae\xa5\x1a\x10\xc0\x000$\xcf\xe9_8;\ +;{\x98\xfag6\x9bM\xd7\xa7Y\x9f\xe7,\xaf\x93\ +\x96jdn\xad\x8cX'\xe6\x85:\xb0\x01\x03\x80\x00\ +\x1eO+\x9f\x91\xf8,\xc7\xb5W+\xae\xad\x1a\x10\xc0\ +a\xcd}|\x12\xbdX\xe7~}\x1e'\xb9.\xae\x87\ +y\xa1\x0e\x04\xb0\x13\xa3\x93\xac\xfa\xf0u\xaa\x07\xf7\xbf\ +\x1bN+o\x98\xf3r\xc5\xa3H/Y,i&\xa7\ +\xd9\xe1\ +:\xc1\xaa\x0bu\xa3.\xdcw\x1b\xb0Sm\xa1Sn\ +\xce&r\x9a\xad_'-l>\xea\xc4\xbcP\x07\x02\ +\xb8\x8b\xa6\x8aB3\xc5\xaa\x93\xa8\x9b\x8f:1/\xd4\ +\x81\x00\xd6T\x9ai\x98:\x89\xb2\xf9\xa8\x13\xf3B\x1d\ +\x08`M\xa5\x99\xd4\x89:Q\x07\xea@\x00k*\xcd\ +\x84:A\x1d \x805\x95fR'\xeaD\x1d\xa8\x03\ +\x01\xac\xa94\x93:Q'\xa8\x03\x04\xb0\xa6\xd2L\xea\ +D\x9d\xa8\x03u \x805\x95fR'\xeaD\x1d\xa8\ +\x03\x01L\xd7\x8d\xa5\x91\xd4\x89:Q\x07\xea@\x00k\ +,\x8d\x84:A\x1d\x08`\x97\xa0\xcf\xc6\xd2H\xeaD\ +\x9d\xa8\x03u \x805V\xc1\xc6\xd2H\xeaD\x9d\xa8\ +\x03u \x80)\xd4\x5c\x9aH\x9d\xa8\x13u\xa0\x0e\x04\ +0\x05\x1aL\x03\xa9\x13u\xa2\x0e\xd4\x01\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x000\x82\x7f\x01\xc1\xb1U\ +\x00\x01\xa13\xe7\x00\x00\x00\x00IEND\xaeB`\ +\x82\ +\x00\x00\x17\xa5\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07$1VZ\x1cH\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x17\ +\x1fIDATx\xda\xed\xddMn\x1bW\xa2\x86\xe1\ +\xb2\xa1\x897\xd2\x1b\x10\x1c\xc0\x0d\xc9\x80\x12x\xe2-\ +\xd8+a\x9a#v\xb8\x92x\x0b\x9e\x18\xb6\x80\xc8@\ +\x06\x817\xd0\x1b\xf1P=H\xa8(6)U\x9d\x9f\ +:\x7f\xcf\x03\x5c\xdc\xbe\x9d\x9b\xee\x98*\xd6\xab\xef\x90\ +\xa2\xa6\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00Jx\xe2!\xf8\xdbf\xb3\xb9=\xf5\ +\xd7\xf6\xfb\xbd\xc7\x0a\x00\x01\xce\x15\xda\xa5\x84\x19\x00\x01\ +^!\xb8\x82\x0c\x80\x00W\x14^!\x06`\xe8\x00\x97\ +\x8c\xae\x18\x03\xa9]~|\x13}O\xbb\xf9\xe9\x9d{\ +\x90\x00\x8f\x15^!\x06\xd6\x08\xac@\x0b\xb0\xf8\x8a0\ +PylEY\x80\x87\x0b\xaf\x10\x83\xe0\xb6L\x90\x05\ +\xb8\x8b\xf8\x8a0\x08\xae \xd3\xdc\x03\xd8Cx\x85\x18\ +DW\x8ci\xeaA\xeb1\xbe\x22\x0c\xa2+\xc6\x02,\ +\xbe\x22\x0c\x08\xaf\x10\x0b\xf0X\xf1\x15a\x10]1\x16\ +\xe0a\xe2\xbb\xbf8\x7f\xf0\xaf\x7f\xbdz}\xf2\xaf\xed\ +v;\x11\x06\xe1E\x88\xfb\x0cp\x8e\xf8>\x16\xdd%\ +\x11\xce\x19c\x11\x06\xe1\x15b\x01\xee\x22\xbeK\xc3\xbb\ +$\xc0\xb9B,\xc2 \xbcB,\xc0\xcd\xc674\xbc\ +\xa1\x11N\x1db\x11\x06\xe1\x15\xe2>\x9d\xf5\xfa\x07K\ +\x11\xdeP\xdb\xed6\xcb\x22\x06\x84\xb7\xe7\xaf\xc5h!\ +\xae\xee\x0f\x9bb\xfd\xe6\x88\xef\xd2\x15\x9cr\x0d[\xc1\ + \xbe\xd6\xb0\x00W\x1d\xdf\xdc\xab74\xc2)B,\ +\xc2 \xbcB\xdc\x97\xa7\xbd\xfcAJ\x1e9\xcfq8\ +\x96\x06\xc4\x17_\xaf\xaa\x16p\xcc\xfa]+\xbe1\x0b\ +8\xc5\x12\xb6\x82\xc1\x8d\xdc\x1a\x16\xe0\xe1\xe2+\xc2 \ +\xbe\x88pJM\x1fA\xd7~\xec|\x8a\xe3h\xc8\x1f\ +^\xf1\xf55\x15\xe0\x8c\xeb\xb7\x84g\xd7\xef=^`\ +\xf5\xe2\xeb;\xee\x02nu\xfdZ\xc1\xe0\xe6\x8c\xafs\ +\xb3\x01.\x1d\xdfT+X\x84!\xdd\x0dY|}\xcd\ +\x05x\x01\xc7\xa9\x1e7\xb0\x86\x18\xf5\xeb\xdf\xdc\x02n\ +\xfd\xe8\xd9\x0a\x067_\x5c\x07E\x03\xdc\xfa\x8a\xf3f\ +,p\xd3\xc5\xf50\xcc\x02\xeem\xfdZ\xc1 \xbe\x8c\ +{]<\xf5%\x03\xdcdq}\xac\xaf\x99_G\xd8\ +\xeb\xfa\xbd\xbf\x82\xfd\xfaB\x10\xdf9~\xfb\xf1\xd7\x93\ +\x7f\xed\xe5\xa7\xb7\xae\x93\x8fon[\xf8\xe4\xac\x22\xff\ +\x80!\xaf_\xd6\x18\xe0\x14\x1fKy_H\x80}4\ +%\xe2+\xbab|\x5c\xed\x11v\x04\x1d\xa1\xf4\x1b\xb1\ +@|\xc57\xc7\xdf\xe7\xba\x11\xe0\xaa\xd7o\x0e\xde\x8c\ +\x05\xe2\x9b:\xa2\x22\x5c\xef\xf5c\x01\x03n\x9e\x9d\xc6\ +W\x84\xeb\xbe\x8e\x04\x18p\xd3\xec8\xbe\x22\x5c\xef\xf5\ +$\xc0\x80\x9be\xe7\xf1\x15\xe1:\xaf\xab\xd5\x03\xec\x13\ +\x9c<\x9e \xbe\xb8\xbe,`\xc0\xcd\x11\xd7\x99\x00\x03\ +n\x8a\xa3\xcb}L<\xfa1tM\xd7\x9b\x00\x03\x80\ +\x00\x03\xd6\x08\x8cq\xdd\x090 \xbe\xb8\xfe\x04\x18p\ +\xf3\x831\xae\xc3\xd5\x03\xec\x97\x07x<\x01\xb0\x80\x01\ +\xeb\x17\x8a\x5c\x8f\x02\x0c\x88/\x14\xb8.\x05\x18\x00\x0a\ +h\x22\xc0\x9b\xcf_\xaa\xfc\xe7\xfaz\xf5:\xe9\x7f\xde\ +n\xb7sEbe\xc0 \xd7\xa7\x05\x0c\x88/\x14\xb8\ +N\x8b\x04\xd8;w=\x8e\x00\xa3kf\x01\xd7z\x0c\ +\x9d\x8a\xe3g\xac\x0a\x18\xebzu\x04\x0d\x88/\x14\xb8\ +n\x9b\x0apM+8\xe5\x1b\xb0\xac_\x80\xf1\x14\x0b\ +\xb0\xd7/=~X\x110\xf2\xf5\xdb\xdc\x11to\xaf\ +\x05[\xbf\x00\x16\xb0\x157S\xea\x9f\xff\xb5~\xb1\x1e\ +`\xbc\xeb\xb8\xc97a\xf5\xb2\x82\xad_\x00\x0bX\x84\ +W^\xbf\xe2\x8b\xd5\x00c_\xcf\xc5\x03\xec8\xd5\xe3\ +\x05`\x01[\xc1\xd6/X\xbf\xb0\xcau]E\x80c\ +V]k\xaf\x07\xc7\xc4\xd7\xfa\x05\xb0\x80EX|\xc1\ +\xfa\xc5\xf5\xddC\x80c\xe5\x8ep\xec\xf1\xb3cg\x00\ +\xaa\x0dp\xec\xca\xdb|\xfe\x92%\xc41\xf1\xdd\xedv\ +\xd1\xf1\xbd\xb9\xfe0]\xbexnU\x00\x08p\xbd\x11\ +^c\x0d\xaf\xb9zo\xae?\xdc\xfdk\x11\xa6v\x8e\ +\x9fq\x9d\xcfw\xd6\xeb\x03t\x88\xf0\xfe\xe2|\xf5\xf5\ +\x9b\xf3\xb8\xf9\xf2\xc5\xf3\xdb\x9b\xdf\xff\xf0z0@\xe3\ +\xaa\xbd\x91o6\x9b\xa4\xdfI\x87\x86xI\x80S\x87\ +\xf7\xfe\xfa\xfd\xee\xaf\x890\xd6o\x97~\xfb\xf1\xd7\xec\ +\xff\x1d/?\xbd\xf5@\xa7\xb8G\xff\xf4.\xea>\x5c\ +\xed\x9b\xb0R\xbf\xeb7\xe4\xf5\xe1\xb9\xf1M\xf1:\xef\ +\x92\xf8\x1e\x96\xb0\xcb\x1f\xa0]U\x1fA\xef\xf7\xfb'\ +\xa9\x97\xf0\xfd\x08?\xb4\x8a\x1f\x8bo\xcec\xe6\xc7\xe2\ +{?\xc2\x960@\x9b\x9a\xb8y\xa7\x8ep\xcd\xe6\xc6\ +\xf7\x1f\x7f\x8f\x08S\x98\xe3\xe7t\x1cA7v\xcf\x8e\ +8\x86n\xe2\xe7\x80G\xf9\x10\x8a\x90\xf8\x1e\x96\xb0\xa7\ +\x01@[\x9a\xf9 \x8e\xde#\x1c\x1a_\x11\x06\x10`\ +\x11.\x14_\x11\xa6$\xc7\xcf\xb8\xfe\xc34\xf7s\xc0\ +\x87\x08\xf7\xf0\xba\xf0\xfdo(R\xc5\xd3\x1b\xb3\x00,\ +`kx\xc1?\x7f\xcahZ\xc2\x00\xf5k\xfa\x93\xb0\ +Z\x5c\xc3\x0f}\xe3p\xf3\xfb\x1fO,a\x00\x0b\xd8\ +\x1a.\xf0\xcfi\x09\xd3\x12\xaf\xffB\xf8\xf3\xa0\x9b\xcf\ +\x82\xaey\x0d/\xfd\x06\xc1\x12\x06\xe8_w\xbf\x8c\xe1\ +~\xecJ\xc68v\x95\x8b0\x80\x00[\xc5+\x86W\ +\x84\x01\xc60\xe4\x0d9e\x90\xd7x\xfd9\xe5k\xb9\ +\x22L\xb2\xeb\xd2\xeb\xbfY\xf8(\xcav-\xfdX\xca\ +\xb3\x11\x1f\xa4S\xd1|(\xcc%\xdf\xe8e\x09\x03\xf4\ +\xe7\xccCPGdE\x18`,O=\x04\xed\xf0#\ +J\x00\x02\x8c\x08\x03 \xc0\x22,\xc2\xac\xc9\x1b\xb0 \ +\xfey!\xc0\x22,\xc2\x00\x160\x22\x0c \xc0\x880\ +\x00\x99\xf8Q\x94N\xf8\xb0\x0eV\xbd\xde*{\x0dx\ +\x8d\x0f\xaf\xa0N\xb5}\xa8\xc8\x92\x0f\xe3p\xa3\x15a\ +\x11\xa6\xc9\x00\x8b.5\xc6xI\x80\x1dAw\xc4q\ +4\xa3\x10_z\xb8.\x04X\x84E\x187Y\x5c\x1f\ +\x058f\xec\x94\xe3h\xb2][\x05\x8f\x9f\xc5\x97\xb9\ +J\x1eG\xcf=\x86\xb6\x80-aK\x18\xcb\x06\xd7K\ +\x01\x02,\xc2\x22\x8c\x9b)\xae\x1b\x01F\x84\x01\xc6 \ +\xc0\x22,\xc2\x00\x02\x8c\x08\xc3?9~\xa6\xd7\xebG\ +\x80EX\x84\x01\x04\x18\x11\x06\x10`DX\x84\x01\x04\ +\x18\x11\x06\x10`DX\x84\x01\x04\x18\x11\x06\x10`D\ +\x18\x92\xa9\xed\xf7\xbd\xe2\xfa\x11`D\x18\xc0\x02F\x84\ +E\x18@\x80\x11a\xba\xe2\x18\x9a\x1e\xaf\x1b\x01F\x84\ +q3\xc5\xf5R\x80_\xb4\xce*\xf1L\x19u*\xb8\ +6>\xbe)\xf6\x8d\x95\xcf\x86\xa6\xe6\xf8\xde\xfc\xf4n\ +\xf6\xbd\xce\x02\xc6\x12\xc6\xcd\x15\xd7G\x01\x02\x8c\x08\xe3\ +&\x8b\xeb\xa2\x00\xc7\x82\xac\x1eO\xc7\xd1\x1d\x5c\x0f\x05\ +\x8f\xa0\x8fq,-\xba\xd5\x8c\x96\x05G\xd0n\x84\x88\ +0\xcd\x07\xb8'k|3\xe1\x04\xa1\x8e\x00;\x82\xa6\ +H4\x1dG\x03\xa3\x13`D\x18@\x80\x11a\x00\x01\ +\x06\x11\xe6\xf8\xd7\x7f\xc1\xeb\x5c\xe0y!\xc0\x880\x80\ +\x05\x8c\x08\x8b0 \xc0 \xc2\x00\x02\x8c\x08{D\x01\ +\x01\x06\x11\xe6\xd8\xd7\xdb\x1b\xb1 \xea\xf9 \xc0\x880\ +\x80\x05\x8c\x08\x8b0 \xc0 \xc2\x00\x02\x8c\x08S\xdd\ +\xd7\xd8\xeb\xc0\x10\xfc<\x10`D\x18\xc0\x02F\x84E\ +\x18\x10`\x10a\x00\x01F\x84E\xb8\xca\xaf\xab\xd7\x81\ +q\xfd\x0b0\x22\x0c`\x01\x83\x08\x03\x080\x22L\xc6\ +\xaf\xa7ch\x5c\xf7\x02\x8c\x08\x03X\xc0 \xc2\x00\x02\ +\x8c\x08\x93\xf1\xeb\xe8\x18\x1a\xd7\xfb\x22g\x1eFj\x89\ +p\xaax^\xbex~\x9b2\xea5\xdal6'\x1f\ +\xab\xfd~/\x84\xd0\x00OT\xaa\x92r\xc1\xb6\x1c\xe1\ +\x87\x02\x1b+w\xa0/?\xbeq\x0a\x11\xe1\xb7\x1f\x7f\ +\xcd\xfe\xdf\xf1\xf2\xd3[\x0ft\xe1\xf5k\x01c\x09\x0f\ +\x10\xdc\xc7\xfe\xbb,f(C\x80\x11\xe1\x01\xa2;\xf7\ +\x9fC\x8ca=\x9elT\xab\xc7\xe3\xe8Z\xa2;G\ +L\x8c\x1dC\x87s\x04]\xf9@H\xf8fC\x0b\x18\ +KXt-c\xb0\x80\xc3n^n\x0e\x96p\x8dK\ +\xb8\xd5\xf0\xa6z\xaeY\xc1\x16\xb0\xf5\xdbX\x80S\xdc\ +\xb4\x04Y\x84KF\xb8\xc7\xf0\x86<\xc7\x04X\x80\x05\ +\xb8\x91\x00\xe7\xb8i\x09\xb1\x08\xaf\x1d\xe1\x11\xe2+\xc2\ +\x02,\xbe\x9d\x04x\x8d\x1b\x96\x10\x8bp\xee\x08\x8f\x14\ +\xde%\xcf/\x01\x16`\x01\xae0\xc0%nXB,\ +\xc2\xa9#\xbfDX\x80\xc5\xf7\xb8\x22\ +\x9f\x05]\xea\xa6\xe5f\xd9\xc9\x93\xa1\x92\xcf\x8ev=\ +y<\xa0\x99\x05\x5c\xd3\x13\xd4\x1a\xb6\x84c\xa2.6\ +\xcb\x9e[V\xb0\x05l\xfd\x16\x0cp\x8d7,\x11\x16\ +\xe1\xa5\x11^\xfb:\xde_\x9c\x07\xfd}_\xaf^\x7f\ +\xf7\xef\xedv\xbbb\xcf/\x01\x16`\x01.\x14\xe0\x9a\ +\xd7\x82\x08\x8b\xf0\xdc\x08\xaf\xf2\x86\xc1\xc0\xe0\xce\x8d\xf0\ +\xdaA\x16a\x01\x16\xdf\x82\x01n\xe1\xa8N\x84E\xf8\ +\xb1\x08g\xfd\xedD\x09\xa3\xbb4\xc2k\xc4X\x84\x05\ +X|\x8f{\xeaa\xa6\x8b'K\xc67f\xe5\x8a\xef\ +\xfe\xe2\x81\x12\xfc\x16\xa5\x94\xf1-\x1d\xde\x83g\xd7\xef\ +\x17G\xf8p,\x9d*\xc4\x9b\xcd\xe6\xd67\xba\x90q\ +\x01\xc7\xae\xdf\x98\x1bVl\x88\xdd\x1c,\xe1T\xf1\xad\ +%\xbc)\x96p\xeaE\xfc\xcb/\xbfXa\x16\xf0\xd0\ +\xebw\x9a*|\x13V\xecM\xab\xd6\x9b\x1ee\x96\xb0\ +\xf8\x1e_\xc2\xa1R\xbdQ\xeb\xe7\x9f\x7f^%4P\ +k|\xb3\x048f\xfd\xa6\xbaiE-h\xef\xd8\x1c\ +6\xc2#\xc4\xb7\xb6\x08\xc3\xc8\xaaY\xc0\xa9oZ\x96\ +01K8\xf4\x9ak\xe9\xba\x8b\x8dp\x8a\x10[\xc1\ +\x8c\xba~\x93\x078t=\xe6\xbai\x85\xfe\xe7Z\xc1\ +\xe3E8v\xfd\xb6\xfa\x0d_L\x84S\xacaG\xd1\ +\x8c\x1a\xdf*\x16p\xee\x1b\x97%\xccc\x11\x1e5\xbe\ +\x22\x8c\xf8\xbe+\xfa\xa6[\x9f\x84\xc5\xd0\x11\x1e=\xbe\ +5E\x18FS4\xc0k\xdd\xbc\xac`\xe6,a\xd7\ +U\x9c\xd8\x08[\xc1\x7f\xca\xfd#B~\x04\xa9\x8e\xf5\ +\x9b4\xc0\xbd\xbdn\xeau\xe0\xfe#\x1c\xb3~{\x8c\ +o\xec\x0a\x8e\x8d\xb0\xa3hF\x8ao\xf1\x05\x0c-\xea\ +y\xf9\x96\x8e\xb0%\xcc(\xf1\x15\xe0G\xa4\xfc`\x7f\ +\xea\xe2\x84#o\x84cV\xf0\xcb\x7f\xff0M\xff\xf9\ +\xdf\xd0_\x83\x5c\xc7\xc4\xa3\x1f?\xd7\x14\xdfiJ\xf8\ +Q\x94Koh%V\xc4\xd2\x8f\xa9\xbc\xb9\xfep\xfa\ +\xaf\xad\xf4\xb3\xa5\xd4\x15\xdfQ^\xf7\x8d\xf9\xb8\xca\x83\ +\x98\x8f\xad\xbc{\xee\xfd\xf7_C_\xab)O\x03\xc4\ +\xf7]u\xf7l\x0b8b\x1d\x1f\xfb\x1f\x8fL\xbfF\ +z\xd3U\x0dG\xd1\xd34Y\xc2\x89\xa2)\xbe\xef\xaa\ +\x1cL\x16p\xe0\x02\x0e\xba\x08\xac\xe6f\xd7\xef\xa8\xef\ +x.\xb9\x84\xff\xf1\xfc\xb3\x84\xc5\xb7\xb3\xf8NS\xc1\ +_G\xb8\xf9\xfce\xd5\x9bZ\x0d\xbf\xae\xf0\xd4B\x16\ +f\x98\xb1\x84\x07\x8e\xf0\xcbOo\x83\x22,\xbe\xef\xaa\ +\xbe\xb7\x16[\xc0k\xaf\x8a\x90\x00\xa7^\xc0\x16\xb3\xf5\ +k\x05G>\x07\x07_\xc2s\x16\xb1\x9f\xf3m#\xbe\ +E\x170\xe1\x8bY\x9c\xb1\x84\xc7&\xb2\xed\xc7w\x9a\ +\x12\xbe\x09\xab\xb7_d_z\xfd\xce\x89\xb37\x81\xe5\ +\xe7\xd3\xae*zC\xd6\xfd\x08C\xe3\xf1M\x1a\xe0\x10\ +k\xbd.[\xc3\xeb\xbf\xc2\x5c\x96\x9f\xfb-\x1f\xe1\xa0\ +\xeb\xf9\xd4\xa7\x95\x890\x8d\xc7w\x9a\x1cA\x0f\x15\xe6\ +\xa3\x17\xac\xa3l\xebw%\xdb\xed6\xeag\x83\x8f\xdd\ +l/?\xbe\xf1\x8d\x15M\xc6\xb7\x8a\x00\xe7~7\xf4\ +H\xeb7e\x98\xc5\x99jo\xb4\xf7\xaeK\x11\xa6\xd5\ +\xf8NS\xc2wA\xdf\x05\xaf\xa2w\x9a\x86\xc6\xb7\xf6\ +\xd7\x7fk\xba\x01\xb6\xa0\xf6w\xe8\xb7\xa4\xd4;\xa2\x0f\ +\xcf\xc9\x93\xbf\xd3Y\x84\xc5\xb7A\xd5\x1cA\xa7^\xc2\ +\x96\xef\xfa\xab\xd9b\xa6\xd47}\x87\x9b\xb0\x10\x0b\xef\ +\xd0\x0b8f\x05\xa7Z\x1e1\xf1\xfd\xf6\xdd\xdc\xde\xc0\ +\xd4\xfejn\xe1S\xda\xac\xe0e\xcf\xcb\x07\xbfA\x14\ +a\xf1\xb5\x80\xcb,\xe1\xd4\xcb\xf7\xe4\x91\x9707\xb1\ +\x9a\xbd\xfb\xb9\x0f\x9b\xcd\xe6vn\x84\xbd.,\xbeC\ +\x07x\xbf\xdf?\x89\xb9\xf1\x1d\x22\xba$\xc4)\xc2\xbb\ +\xe4\xbblan;\xcc\x84{v\xfd>\xc9\x0a^\xe3\ +&-\xc4\xc2k\x01'Z\xb3\xf7\x83\x5c\xebk\xbc\xc2\ +\x9c7\xcc\xb9\xe3\xec\xf8y\x1d\xa9\x7f$\xc9\x1a\x16_\ +\x01N\xb8\x82s\xad\xdc\x14\xeb7e\x98\xc5\xd9j\xc6\ +\x1af\xac\xf0\x1ed\xff\xc3\xb5\xf0\x1a\x5c\xad\x1f\xa3)\ +\xcc\x91\x8f\xdf\xa9OQ\xb2\x80\x93\x88=\x86\x0eY\xc0\ +\xb1\xcfU\x11\x16\xdf!\x160\xf9V\xb30\x835,\ +\xbc\x16p\xf3+\xb8\xb7_\x22!\xce\xe1\x0b\xd8\xfa]\ +w\x01\x87\xac\xe0\x94\xcfW\x11\x16\xdf!\x16p\x8e\xd7\ +\x83\xc5\xd7j\x06kXx\x05\xb8\xc1\x08\xf7\x18_a\ +\x06!\x16^\x01~0z%C\ +\xfdj\x94\xf5+\xc0\x00V\xb0\xf5[\x88\xd7\x80\x01Z\ +\x88i\xe0k\xc1\xd3\xb4\xce\xeb\xc1\xa1\xeb7&\xbe\xad\ +\xbfS\xfc\xcce\x0d0\xc6\x12.\xf5\xc6,\xab\xf78\ +G\xd0\x00\x0dH\xb1\xf6j9\x92N\x11\xdf\x1e~N\ +\xda\x114@Kk6\xe2(\xfa.^\x89\x97\xf0\x92\ +\xe3g\xf1\xfd\x9b#h\x80\xd1\x22\x9e\xf0Hzn|\ +\x1d9[\xc0\x00Vp\xc2E\xfcX\x80S\x87\xb7\xa7\ +\x8f\xe8\x14`\x00\x11\x0e\x8a\xf1\xa9\xf8\xe6Z\xbb\xbd}\ +>\xb6\x00\x03\x88pP\x90\x0f\x01^\xe3x\xb9\xc7_\ +N!\xc0\x00\x22\x5c\xb5^\x7f3\x94\x00\x03\x88\xb0\xf8\ +\x0a0\x00\x22\xdc\x7f|\x05\x18@\x84\xc5W\x80\x01\x18\ +=\xc4#\x84W\x80\x01DX|\x05\x18\x80QC<\ +Zx\x05\x18@\x88\x85W\x80\x01\x18%\xc4\xa3\x87W\ +\x80\x01\x84Xx\x05\x18\x80\x1ec,\xba\x02\x0c\xc0\x0a\ +A\x16\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00F\xf7\x7f\ +\xee\x88\xa1\xe9\xc1NW\xab\x00\x00\x00\x00IEND\ +\xaeB`\x82\ +\x00\x00\x0el\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07$\x11m4<\x80\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x0d\ +\xe6IDATx\xda\xed\xddMR\xdbX\x17\x80a\ +\x91\xf2>\x98e\x17f \x96\x91L\xb2\x0b\xa0\xdaE\ +\xb9\x9c\x02v\x91I\xb2\x8ch\x10\xef\xa2gY\x09=\ +\xc8\x1f\x9d\x98 [\xf7J\xf7\x9e\xfb<\x93\xaf\xebK\ +0Br\xf4\xfa\xe8\x8f\xae\x03\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x98\xe2\xcc*\x00(\xd7\xfa\xf3\x9b\xc7\xa9\xaf\xb1\ +\xbf\xfcd_/\xc0\x00\xa4\x0e\xac@\x0b0\x00\x85\xc7\ +V\x94\x05\x18@p+\x22\xc8\x02\x0c \xb8\x82,\xc0\ +\x00\xa2\xdbNt\xc5X\x80\x01DW\x8c\x05\x18@x\ +\x11b\x01\x06\x10]1\x16`\x00\xe1E\x88\x05\x18@\ +x\x85X\x80\x01\x84W\x88\x05\x18@x\x11b\x01\x06\ +\x10^!\x16`\x00\xf1E\x84\x05\x18@x\x85X\x80\ +\x01\xc4\x17\x11\x16`\x00\xe1\x15b\x01\x06\x10_DX\ +\x80\x01\xe1E\x88\x05\x18@|i<\xc2U\xfd\x107\ +77\xfea\x01\x7f\xd91\x7f\xb5\x12\x9a\xf9\xa0u\xfe\ +\xec\x9f\xdd\xdd\xddU\xd1\xb6*\x16Rx\x01\xe1%Z\ +\x88\x8b^8\xe1\x05\xc4\x97)\x11.9\xc4\xc5\x06X\ +|\x01\xf1%r\x84\x8b\x0c\xb0\xf8\x02\xe2K\xf4\x08\xbf\ +\xb2\xc9\x00\xf1\xc5\xfb\xc2\x04l\xfa\x05\xc4\x97l\x93p\ +IS\xf0\xca\xa6\x02\xc4\xb7._\xfa\x8f\xcf\xfe\xd9\xc5\ +\xf0\xd6\xfb\xe4\xf2\xeb\x8b\x87\xa3M\xc0\xa6_@|'\ +GW\x8c\x8f\x9b\x84K\x99\x82\x9d\x03\x06\xc47`|\ +\xa7|\x9d\xf7\x8d\x00\x03\x88\xef\xc4\x88\x8ap\xb9\xef\x9f\ +j\xcf\x01\xf7}o\xcfDh\xc304\xff\xefa{\ +\xf6A|\x13\xbdN\xcb\x87\xa3K='l\x02\x06\xc4\ +7p|M\xc2\xe5N\xc2\x02\x0c\x88o\xf0\xf8\x8ap\ +\x99\x11\x16`@|\x11a\x01\x06\xc4\x17\xf2*\xe5w\ +F\x0b0 \xbe\x05\xc9}\x98\xb8\xf5\xc3\xd0%E\xb8\ +\xc9'am7\xd7?\xff\xfbvw\xef\x9d\x08\x80\x00\ +\xcf\x11]1\x06\xd3/\xac?\xbfy\xdc_~Z\xec\ +\xa9X\xe1\x03\xfc\x5cx\xff\xf6w\x85\x18\xc4\x17\x11\xce\ +-\xf49\xe0c\xe2\x9b\xe2\xeb\x00\xf1\xa5\xce\x08\x0bp\ +\x01\xf1\x15a\x00\x04\x180\xfdB\xd0)8d\x80S\ +M\xaf\xa6`\x10_DX\x80\x01 \x10\x01\x06L\xbf\ +\xb0\xc0\x14\x1c.\xc0\xa9\x0f\x1b;\x0c\x0d\xe2\x8b\x08\x0b\ +0\x00\x04!\xc0\x80\xe9\x17\x16\x98\x82\xc3\x058\xf5S\ +\xac<\x15\x0b\xc4\x17\x11\x16`\x00\x08B\x80\x01\xd3/\ +,0\x05\x87\x0cp\xaa\xc3\xc6\x0e?\x03 \xc0\x80\xe9\ +\x17\x02M\xc1a\x03\x0cC\xf8\x8d\xd3\xf7\xbd\ +w(@P&`\x1f2\x00\x10`D\x18@\x80\x01\ +\x0er\x01\x16\xfc\xe9\xd8\x0b\xb1\x04\x18\x00L\xc0\x00 \ +\xc0\x00@&+\xab\x00\xa8\xdd\x97\xfe\xa3\x95\xd0\xe8\xfa\ +\xba\x18\xde\x0a0\x80\x88\xb0\xe4\xfb\xa0\xb6\x18\x0b0\x8b\ +\xdan\xae_\xfc;\xb7\xbb{+\x0a\xf1e\xd4\xfb\xa2\ +\xa6\x08\x0bp\xe1\x22=\x0dkLl\xc7~\x9d(\x8b\ +/\xd4\x1ea\x17a\x89\xef,\xe1=5\xbes\xbe&\ +#\xd7\xfd\x82\xf7\x00\x8b/\xa5\xbfO\x8e\xb9\x17\xb8\xda\ +\x09\xd8s\x92\xe3N\xbc\xa7|\x0f\x13\xb1\x9d*\xd46\ +\x09;\x04M\x95\xe1\x15b\xf1\x85\xda#,\xc0T\x1d\ +^!\x06j\xe5\x1c0a\xe2[\xf2\xf2\x00\x080\xcd\ +\xc4N\x84cp\xf8\x99\xa8\xef\x1f\x01&t\xe4D\x18\ +\x10`\xc4\xd7r\x02\x080mEM\x84\x01\x01F|\ +-7\x80\xdb\x90(#b\xfb\xcd\xd5\x1f\xff\xdfz\xf7\ +\x90e\xf9\xdd\xa2\x04\x080\xcd\xc6\xf7Pp_\xfa;\ +\xa9\x82,\xc2\x80\x00\xd3\x9c1\xe1}\xe9ksL\xc6\ +\x94\xebbx\xebV$&\xbd\x7fJ\xe5\x1c0\xb3L\ +\xbf\xfb\xcd\xd5\xa4\xf8\xa6~-\xe7\x83\x01\x01\xc6\xd4[\ +\xd8\xeb\x02\x080\xd5O\xbf\xb9#9\xe5\xf5M\xc1\xf5\ +\xa8\xe9\x97\xac\xe3}#\xc0\x84\x9d|M\xc2v\xa6\x10\ +\xe1\xfd\x22\xc0d\x99\x12\xe7\x8e\xe2\xa9\xdf\xcf\x14|\xbc\ +\xdb\xc7wv\xaa\x88\xefs\xfb\xa2\xcbOg\x02L\xf8\ +\xc9\xd7$l\xe7\x0a5\xbf?\x04\x98\xe6\xa7CS\xb0\ +\x9d,\xde\x17Kp\x1f0\xa1\xa6\xd0\xfd\xe6\xca}\xc2\ +\x0d\xeel\xdd'\xec}P#\x01\x06\xec\x84\x0b2\xc7\ +\x87\x09G\x10\xca\xe0\x104a\xa6\xdf\xd2\x96\x03@\x80\ +\x01@\x80\xa9Ak\x17&\xb9\x10\x0b\x10`\xa0xK\ +\xde\x0b\x0c\xa5:\xe6\x1e`\x01&\xdd\x1b\xaf\xb0\xf3\xae\ +\xce\x03\x03&`\x00@\x80\x01@\x80\x01@\x80\x01\xc6\ +s!\x16\xfcr\xec\x05X\x02L2\xa5=\xfe\xd1\xe3\ +(\x01\x130\x00 \xc0\x8cs\xbb\xbb\xf7\xf3\x02\x080\ +P\xe4\x07\x17\xe7\x81\xe1\xa4\xf3\xbf\x02LR\xa5\x9cw\ +u\xfe\x170\x01\x03\x00\x07U\xfb\xfb\x80\x87a\x08\xbf\ +q\xfa\xbe\xafr\x0a^\xf21\x90\xa6_\xc0\x04L\xf5\ +\x1f2Z\xb90\xc9\x05X\x13\xd7\x9f\xf3\xc04\xec\xd4\ +\xf3\xbf\x02,\xc2\xa1\xa6P\xd3/`\x02\xa6\xf9\xe9p\ +\xee\x18\x9e\xfa\xfdL\xbf\x80\x00\x13\xce\x5c\x116\xf9\x16\ +\xf0A\xcdah\x1a4\xe5\xf0\xb3\x00\x93}J\xcc\x1d\ +\xc7)\xafo\xfa\x05L\xc0\x98\x84M\xbe\x80\x00C\xfa\ +iq\xbd{H\x16\xcc\x14\xafe\xfa\xcd\xf0\x1eq\x18\ +\x9a\x86L=\xfc\xdcu\x15\xdf\x07L\xdd\xd3\xf0)\xf7\ +\x0a\x9bx\x81H\x04\x98\xa3\xa6\xc6\xed\xe6:i\x88\x7f\ +~\x9a<\x10\xe4\x5c\xc15\xfd\xe6\x9d\x82\xb7g\x1f\xac\ +\x08L\xbf\x02\x5c\xbf\xd2\x9e\x86\x952\xc2KL\xb7\xe2\ +\x0b\x94\xc29`\xf1m&b\xe2\x0b\x94\xa4\xda\x09\xb8\ +\xc6\xe7$G\x92k\x12\x16\xdf\x00\xef\x0d\x87\xa1\x09,\ +\xd5\xe1g\x130MDM|\x81\x12\x090\xa1\xe3&\ +\xbe\xcbM\xc1`\xfa\x15`\x1a\x8d\x9c\xf8\x02&`D\ +X|M\xc1`\xfa\xfd\x1f\xb7!\x91/jy\x04\x18\x10\xe1\x06\x22\ +,\xbe\xe7\xc5-\x93\x00\x03\x22\x1c<\xc2\xe2{^\xe4\ +r\x090 \xc2\x81#,\xbe\xe7\xc5.\x9b\x00\x03\x22\ +\x1c4\xc2\xe2{^\xf4\xf2\xb9\x0a\x1a\xa8&\xc2-_\ +\x1d\xfd4\xa6_\xfa\x8f\xa2[y|\x05\x18\x10\xe1\x86\ +&b\xf1-\x8bC\xd0@u\x11\x86\xda\xe3+\xc0@\ +\x9d<1\x8b\xca\xe3+\xc0\x80\x08#\xbe\x0b\xa9\xf6\x1c\ +\xf00\x0c\xe1\xdfP}\xdf\xfbW\x05/E\xf8\xfdk\ +\xeb\xa1q\xb7\x8f\xef\xba\xa1\xab\xaf\x09&`\x1f2\xc0\ +$L\xd5\xf1\xad\x95\xab\xa0+\x88\xb0I\x18FF\xd8\ +4,\xbc&`\x80\x8c;\xdf\xe7~\xc3\x92iX|\ +\x05\x18@\x84\x11\xdf\xbfq\x08\x1a\x88\x17\xe1\xc7o\xff\ +\xe3\xa1\x1d\xc2k\x02\x06\xb0\xd3\xc6v4\x01\x03\xed\xed\ +\xbcM\xc3\xc2k\x02\x06\xb03\xc7\xf62\x01\x03\xa6a\ +\x84\xd7\x04\xcc\x1f\xdc\x03\x0cv\xf2\xb6\x8b\x09\x18\xf1\x05\ +\xd30\xc2\xdbz\x80\xc5\x09\x10b\xe1\x15`\x00!F\ +x\x05\x18@\x88\x85W\x80\x01\x84\xd8\xbaD\x80\x01N\ +\x8d\x87\x18\x8b\xae\x00\x03\x98\x8a\x85W\x80\x01L\xc5\xd6\ +\x07\x02\x0c \xc6\xa2+\xc0\x00\xedN\x82\x91\x82,\xb8\ +\x02\x0c \xc8\x82+\xc0\x00L\x8bZ\x09Q\x16[\x01\ +\x06\x10\xe5\x0c\x81\x16X\x01\x06@<\xf9\xce\xaf#\x04\ +\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\x04\ +\x18\x00\x04\x18\x00\x98le\x15@\xfd\x86a\xb0\x12\xc0\ +\x04\x0c\x00\x080\x00\x0800V\xdf\xf7V\x02\x080\ +\x00 \xc0`\x0a\x06\x04\x18\x00\x10`0\x05\x03\x02\x0c\ +\x880 \xc0Py\x84\x85\x18\x04\x18\x10b`\x02\x8f\ +\xa2\x84\x8aC\x0c|S\xe3\xe3XM\xc0\x00 \xc0\x00\ + \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ +\x080\x00\x080\x00 \xc0\x00 \xc0\x00 \xc0\x00\x80\ +\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x08\ +0\x00 \xc0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\ +\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\ +\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\ +\x00\x95ZY\x051m7\xd7VB\xa5nw\xf7V\ +\x02\x080\xa2\xcb\x92\xdbQ\x8c!.\x87\xa0\xc5\x17\xdb\ +\x15\x10`\xec\xa4\xb1}A\x80\xb1s\xc6v\x06\x04\x18\ +;e\xdb\x1b\x10`\x00@\x80\x01@\x80\x99\x81\xc3\x91\ +\xb6;P7\xf7\x01\x03d\xfeP\xe4~n\x04\x18 \ +sl\xc7~\x9d(#\xc0\x0d\xd8o\xae\xac\x84\xc2\xad\ +w\x0fVB\xc0\xf0\x8eyM!\x16`\x00f\x08\xaf\ +\x10#\xc0\x00\x0b\x86W\x88\x11`\x80\x05\xc3+\xc4\xed\ +r\x1b\x12@W\xde-^n9\x13`\x00\xf1\xb5\x5c\ +\x080@[\x91\x13a\x01\x06\x10_\xcb\x89\x00\x03\xb4\ +\x155\x11\x16`\x00\xf1\xb5\xdc$\xe06$@|\x13\ +8\xf4\xc4\xb9\x1cO8\xdbn\xae\xdd\xa2$\xc0\x00\xed\ +\xc6w\xcc#^\x7f\xff;\xa9\x82,\xc2\x02\x0c\xd0\x9c\ +)\xcfV\xff\xf1\xb5\x9e\xfdM\xd79\x07\x0c\x98~G\ +\xc73\xd5/6I\xf1Z\xce\x07\x0b0\x80\xa9\xb7\xb0\ +\xd7E\x80\x01\xaa\x9f~sGr\xca\xeb\x9b\x82\x05\x18\ +\xc0\xe4k\x12F\x80\x01\xa6O\x89sG\xf1\xd4\xefg\ +\x0a\x16`\x00\x93\xafI\x18\x01\x06hg:4\x05\x0b\ +0\x80\xe9\xd7\x14\x8c\x00\x03\x80\x00\x03\x98~M\xc1\x08\ +0\x00\x080@r\xad]\x98\xe4B,\x01\x06\x00\x04\ +\x18`\x9c\xd2\xce\xbb:\x0f,\xc0\x00\x80\x00\x03\x80\x00\ +\x03\x00\x02\x0c\x00\x02\x0cP\x95\xf5\xee\xc1\xf2 \xc0\x00\ + \xc0\x00\x15\xba\xdd\xdd\xfby\x11`\x00@\x80\x01\x0e\ +*\xe5\xbc\xab\xf3\xbf\x02\x0c\x00\x080@\xfc\xe9\xd3\xf4\ ++\xc0\x00\xd5k\xe5\xc2$\x17`\x090\x80)\xd8\xf4\ +\x8b\x00\x03\x9c>\x1d\xce\x1d\xc3S\xbf\x9f\xe9W\x80\x01\ +L\xc2&_\x04\x18 \xcd\x94\x98;\x8eS^\xdf\xf4\ ++\xc0\x00&a\x93/\x02\x0c\x90~Z\x5c\xef\x1e\x92\ +\x053\xc5k\x99~\xeb\xb7\xb2\x0a\x00\x8e\x9fZ\xf7\x9b\ ++\x13/\x02\x0c0vj\xdcn\xae\x93\x86\xf8\x87C\ +A\xce\x15\x5c\xd3\xaf\x00\x034\x1d\xe1%\xa6[\xf1\x8d\ +\xc39`\xa0\xc9\x08[n\x04\x18@\xcc\xc4\xb7A\x0e\ +A7\xc0\x85\x1f\xf0|\xd4r\x1c\x8e\x16_L\xc0\x00\ +\x95\xc7M|\x05\x18@\x84-\x17\x02\x8c\x7f\x98\xb6;\ +\xb1\xd7\xadm\x1d\x9fs\xc0\x00\xbfEo\xc9\xf3\xc2\xc2\ ++\xc0\x00B\x130\x00\x080\x00\xb4\xe1\xac\xb4\x05r\x18\ +\x1a\x80\x5cJ9\xfcl\x02\x06\x00\x13\xb0)\x18\x806\ +\xa6_\x130\x00\x98\x80M\xc1\x00\xb41\xfd\x16\x1d`\ +\x11\x06 j|\x8b\x0f\xb0\x10\x03\x10-\xbcU\x05X\ +\x88\x01\x88\x12^\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x8e\xf5\x1f\xbe\x18F\x80rF\x87\xca\x00\ +\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x13/\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07#8`\xc72+\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x12\ +\xa9IDATx\xda\xed\xdd=nTY\x1a\x80\xe1\ +b\xe4\xa4W\xd1\xd9\xec\x80\x80\xa0,\xb9\x10\x0e\xd8B\ +\xb3\x10\xb0\xdaB\xc8#`!\xf4\x16:\x00Q\x96\x5c\ +\x01\x01;\x98lVA\xe8\x09z\xec\xf6\x18\xff\xd4\xbd\ +\xf7\xfc|\xe7\x9c\xe7\x91F\x1a\xa9\xbb\xc1T}\xf7\xbc\ +\xf5\xdd*\x9b\xd5\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\ +\x89'\x1e\x02\x80\xb8\xd6_\x7f\xbb\x5c\xfak\xec\x9e\xff\ +\xe1\xac\x17`\x00R\x07V\xa0\x05\x18\x80\xe0\xb1\x15e\ +\x01\x06\x10\xdc\x86\x08\xb2\x00\x03\x08\xae \x0b0\x80\xe8\ +\x8e\x13]1\x16`\x00\xd1\x15c\x01\x06\x10^\x84X\ +\x80\x01DW\x8c\x05\x18@x\x11b\x01\x0e\xe9\xe4\xe4\ +d\xf2E\xfe\xfe\xfd{\xcf\x9b91'\xc2+\xc4\x02\ +L\xee\x83\xd4AkN\xcc\x89\xf0\x0a\xb1\x00\x13\xe40\ +u\xc8\x9a\x13s\x22\xbcB,\xc0\x048P\x1d\xb0\xe6\ +\xc4\x9c\x08\xaf\x10\x0b\xb0\x03\xb5\xe2\x81\xea\x805'\xe6\ +D|EX\x80\x1d\xa8\x81\x08\xb191'\xc2+\xc4\ +\x02\xec@u\xc0\x9a\x13s\x22\xbe\x0c\x1fa\x87\xf1@\ +\x87\xaa\x08\x9b\x93\x11\xe7Dx\x85X\x80\x1d\xaa\x0eW\ +sbN\xc4\x17\x11\x16\xe0\x91\x0fU\x116'\xbd\xcf\ +\x89\xf0\x0a\xb1\x00;T\x1d\xae\xe6\xc4\x9c\x88/\x22,\ +\xc0\x0eU\x116'}\xcf\x89\xf8\x8a\xb0\x00;T\xf7\ +\xb6\xd9l&\xff7\xdb\xedV\x84\xc5W\x84\x85\x97\xc6\ +C\xec\xd0\xadp\xa8\xce\x89n\x89\x18\x8b\xb0\xf8\xb68\ +'\xe2K\xab\x11v\xe0\x16\xefsz\ +|r<\x0e\xa3\xdd)\x993'\xe2\xcb\xa8\x11\x16\xe0\ +\x02\x87\x92?\x07\x88/\xe6P\x80\x01 \x00\x01\x86L\ +\xdc)\xb1\xfdb\x0b\x16``\xf8\xc3\x0e\xa2\xcd\xa5\x00\ +\x03@\x05\x02\x0c\xd8~\xa1\xc2|\x0a0 \xbePa\ +N\x05\x18\x00*\x10`\xc0\xf6\x0b\x15\xe6U\x80\x01\xf1\ +\x85\x0as+\xc0\x00P\x81\x00\x03\xb6_\xa80\xbf\x02\ +\x0c\x006`\xc0\xf6\x00c\xcc\xb1\x00\x03\x80\x0d\x18\xb0\ +5\xc0\x18\xf3,\xc0\x00`\x03\x06l\x0b0\xc6\x5c\x0b\ +0\x00\xd8\x80\x01[\x02\x8c1\xdf\x02\x0c\x006`\x00\ +\x10`\x80Iv\xcf\xff\xe3A\xa0{\xa9nC\x0b0\ +\x00\xd8\x80\x01\xdb/\x8c\xb1\x05\x0b0\x00\xd8\x80\x01@\ +\x80\x01\xf6\xe2\xf63#Zz\x1bZ\x80\x01\xc0\x06\x0c\ +\x00\x02\x0c\xf0(\xb7\x9f\x19\xd9\x92\xdb\xd0\x02\x0c\x006\ +`\x00\x10`\x00@\x80\x81h\xbc\xff\x0b\xf3\xdf\x07\x16\ +`\x00\xb0\x01\x03\x80\x00\x03\x00\x02\x0cD\xe2\xfd_\xf8\ +\xdb\x9c\xf7\x81\x05\x18\x00l\xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x03\xf3\x01,\xf8\xd9\xd4\x0fb\x1dx\xc8\xea\ +zw\xfaf\xf6\x7f\xfb\xf6\xec\x83\x07\x10\xa0Q\x02\xdc\ +@h\xa7\xfe\x9a\xc2\x0c \xc0\x82\x1b\xe0\xf7\x16d\x00\ +\x01\x16\xdd\xca_\x97\x18\xd3\xa3\x8b\xcd'\x0f\xc2\xa0\x8f\ +\xd7\xe1\xf6\x95\x00\x8bn{_\xaf\x18#\x22\xf44\x07\ +\xad\xc5X\x80\x07\x09\xefC\x7f\x86\xf5\xd1\x0bO(\xe2\ +K\x17s\xd1R\x84}\x1b\xd2D\xbb\xf3/]\xc4\xf7\ +\xf6\x9fiw\xfe\xc5\x93\x8b\xf8b>\x04X\xa4\xfc\x19\ +\x09;'\x15\xbf\x07X|\x89>'S\xbe\x17X\x80\ +E\xc9\x9f\x19\x87*\xe6\xc5\x06\x1c/D\xfe\xfc\xe00\ +\xc5\xdc\xe4\xe0CX\xc2\xb3\xd7c\xe1\x83Z\x006`\ +\xf1\xf5\xb8\x004\xcf\x06\x1c 0\xbb\xd3\xd7{\xfd{\ +?\x8e^^\xff\xff\xe3\xcda\xf1\xafs\xfd\xec\xe9\xe5\ +j\xb5Z\xed\xbe}\x7fbb(\xc5\xedg\x96\xceO\ +\xd4oM\x12\xe0\x1ba\x89\x14\xdb\xbb\xfcr\xfe\xe7u\ +\x84?o/~\xfa\xe7\xa5\xa2\xbc~\xf6\xf4R\x84\x01\ +\x048t|\x97\x04\xf7\xb1\x08\xdfv;\xca9\x83,\ +\xc2\x00\x02\x1c.\xbe\xa9\xa3;%\xc2\xf7\x059G\x8c\ +E\x18`\xbea?\x84\x95#\xbe\xbb\xd3\xd7\xd9\xe3{\ +3\xc2S|\xde^\xdcy\xdb:\xfa\x1d\x04\x00\x01\x16\ +\xdf\x10\xe1]\x12\xe1\x5c!\x16a\x00\x01.\x1a\x8bZ\ +\xe1]\x1a\xe1\x1c!\x16a\x00\x01\xce\x1e\x89\x08\xe1M\ +\x11\xe1\xd4!\x16arh\xf9\xef{\xc5\xfc\x08p\xe2\ +\xf8F\xb4$\xc2W!\x16a\x00\x01\x16\xdfJ\x11N\ +\x11b\x11\x06\x10\xe0a\xe2\x9b*\xc2\xa9\xb6a\x11&\ +%\xb7\xa1\xe9qn\xba\x0ep\x8a\x08D{\xbfW\x84\ +q\x98B\x1f\xf3\xe2/c\xe8`\xeb\xcd\x19\xe1\x1c\xdf\ +;L\xe3/l\xbf\xfe\xeaPE|\xef\xeb\xc6\xf3?\ +\xf6\xfe\xe1D\xdd\x06x\xe9\xf6\xd5r|SFx\xe9\ +6l\x0bF\x841\x1f\x03\x05X|\xd3\x13a\x1c\xb2\ +\x98\x8b\xb4\xfcmH\x9d\xc7w\xdf\x9f\x1b\xbdo\x84k\ +\xfc5\x88\xf0\xd8a\xeb\xaf,4\x07-\xea.\xc0K\ +\xb6\xad^7\xdf\x08\x11\xf6\x177\xe0\x10\xdeO\x89\x17\ +\x13\xee \xc4\xd0\xd5-h\xf1}8\xc2-??\x00\ +\x02\xdc!\xef\xf9N\xdf\x82\x01\x10\xe0E\xdb\xd5H\xf1\ +M\xb9\x05\xcf\x8d\xb0-\x18\xc0\x06<\xe4\xe6\x1b!\xc2\ +t\xf0\x82\xb7\xe2\xf7\x02C\xd8\xa6L\xf8\x1e\xe0n\x02\ +l\xab\xf2|\x01\xd8\x80m\xbf\xb6`\x00\xfa\x0f\xf0\x9c\ +m\xca\x87\xae\xd2\x9a\x13a[0 \xc0\xd8\x82\x01\x10\ +`\xdb\xaf-\x98F\xae?\x1f\xc4\x82\xbf\xdb2\xf1\x03\ +X6`[\xb0\x07\x01\xc0\x06\x5c\xe0\x15\x8a\xed7\xdc\ +\x16\x0c \xc0\x8dq\xfb\xb2\x8f-\xd8\xf3\x08\x08\xb0\xed\ +\x17[0S_@y\x1f\x18f\xbd\xff;T\x80\x89\ +\xbb\x05\x03\xd8\x80[y\xd5=\xf1\xb6\xa5\xed7\xf6\x16\ +\xec64 \xc0\x00\x80\x00S\x8e\xdb\xd0\xcc\xe5}`\ +F6\xf7\xfd\xdf!\x02\xec\xf6s\x1d>\x8c\x05\xd0Y\ +\x80\xbd_\xd8\xe9\x16\xe5y\x05\x04\x98Q\xb9\x0d\xcd\xec\ +\x17PnC3\xa0%\xb7\x9f\xbb\x0f\xb0\xdb\xcfu\xb9\ +\x0d\x0d`\x03\x06\x00\x01\x06\xfa\xe364#Yz\xfb\ +\xb9\xb9\x00\xfb\xa0N\xe7\x07\xb8\xe7\x17\xb0\x013*\x1f\ +\xc4\xc2\x16\x0c\xf9\xb7_\x01\x06\x00\x1bp\xe2W(>\ +\x01\x1d\x82OB\x03\xd8\x80\x81\x12/~\x13\xdd\x9e\x83\ +\xde\xe7[\x80\x01\xc0\x06\x0c\xd8\x12`\x8c\xb9\x16`\x00\ +\xb0\x01\x03\xb6\x05\x18c\x9e\x05\x18\x00l\xc0\x80\xad\x01\ +\xc6\x98c\x01\x06\x00\x1b0`{\x801\xe6W\x80\x01\ +\xc0\x06\x9c\xce\xfa\xec\xa3g7\x80\xe3\xcd\xa1\x07\x01[\ +0\xe6\xd6\x06\xccc~\x1c\xbd\xf4 \xc2\x98\xd7\x02\ +\xf3*\xc0\x00PAS\x01\xde}\xfb\xee\x15t\xcf\xaf\ +8=\xbf\xb6\x0a\x18hNm\xc0\x80\x08C\x85\xf9\x14\ +`\x00\xa8\xa0\xeb\x00\xfb$\xf44\xa9?\x80\xe5\x13\xd0\ +\xd8\x821\x976`@\x84!\xd4<6\x17`\x1f\xd4\ +\xe9t\xf8=\xaf\xc0`\xba\xdf\x80\xdd\x86\xde\x8f\xdb\xcf\ +\xd8\x821\x87\x02\x0c8\xfc\xa0\xfb\xf9\x13`@\x841\ +w\x02\xbc\xe7\x836\xf1\xfdB\xb7\xa1\x1fV\xfb\xf6\xb3\ +\xf7\x7f\x81\x11\xd9\x80\x01\xdbH \x87\xdbWM\xff\xfa\ +\xe6M\x80m\xc1\x8dl\xbf \xc2\x8c:g\xcd\x06\xd8\ +m\xcbN.\x04\xcf#\x22\xcc\xa0\xf35\xd4-h[\ +\xb0\xed\x17\x87d\x0br\xdd&\x1e\xfd\xf6s\xb4\xb9\xf2\ +\x1e0\xe0\xb0\x1c \xc2\xe2\x1bo\x9e\x9a\x0e\xf0\x9c\xdb\ +\x97\xb6\xe08\xdb\xaf\xdb\xcf\x88p\x99h\x8ao\xcc9\ +\xb2\x01\x03\x0e\xcf\x8e#,\xbeq\xe7\xa7\xf9\x00\xdb\x82\ +m\xbf8DEX|[\x9c\x9b\x83Q\x9f\x98\xf5\xd9\ +\xc7\xd5\xee\xf4\xb5\x93\xadB|a\xeea\xba\xfe\xfa\xdb\ +\xa5\x08\xafV\x17\x9bO\xa2\xdb\xc1\x8b\xb6.\x02\xbc\xfb\ +\xf6\xfd\xc9\xfa\xd9\xd3K#W~\xfb\x9d\xfb|y&\ +\x10\xe1\xf2\x1b\xb1\xf8\xc62\xf4{\xc0\xa3\xdd\x8a\xf6m\ +G8\x5c1\x1f\x02\x1cf\xab\xf2\xa9\xe8\xb2\xf1\xb5\xfd\ +\x22\xc2\x98\x0b\x1b\xf0P\x11N\xb9\xfd\xda|q\xd8b\ +\x1e\x048\xd9v\xd5s\x84#\xbc\xefk\xfb\xc5\xa1\x8b\ +9\xe8|\x03\x16\xe1\xbc\xf1u\xeb\x19\x87/\x9e\x7f\x01\ +\xce\xc2{\xc2\xe9\xe3\x0b%\x0ea!\xf6\x9c\x0bp\xe3\ +[pO\x11\x8e\xf2\xbe\xaf\xed\x17\xdb\x10\x9e\xe7\x816\ +\xe0\xd1#,\xbe8\x9c\xf1\xfc\xc6v\xe0\xe9|8\xc2\ +-\xfe\xb4\xacT\xf1u\xcb\x99\xd6\x0fi?\xb4Cx\ +m\xc0\x8dn\xc1W\x11ni\x1b\x8e\x14_\xdb/\x0e\ +m<\x8f\x83\x068e\x04Z\x88\xb0\xf8\xc2\xdd\x87\xb7\ +\x10{\xee\x04X\x84C\xc7\xf7xs(\xbe\xd8\xa2\xf0\ +|\x09\xb0\x08\x97\x8eo\xa4\xc7\x19lT\x9e#\x01\x16\ +\xe1;#\x1c%\xc4K\xe3\x9bj\xeb\x15_lWx\ +^\xa6\x19\xeeS\xd0)\xff\xea\xc2\xab\x08\xd7\xfa\xa4\xf4\ +\x92\xf8\xa6\xfe\x84\xb3\xf8\xd2\xeaa\xef\x93\xd2\xc2+\xc0\ +\x8dF\xb8V\x88\xe7\xc67\xc7\xb7\x16\x89/B\x8c\xf0\ +\x0ap\xb5\x08\x97\x0c\xf1\x9c\xf8\xe6\xfa\x9e^\xf1E\x88\ +\x11^\x01\x0e\x11\xe1\x9b!\xce\x11\xe3)\xf1\xcd\xfd\x83\ +4\xc4\x17!Fx\x058\x5c\x84\xef\x8a\xf1\xd2 ?\ +\x16\xdf\x92?\xb9J|\x11b\x84W\x80\xc3G\xf8\xa1\ + \xef\x1b\xe5\xdb\xf1\xad\xf9c\x22\xc5\x97Q\xe3!\xc6\ +\x13\xfc\xfeo\xe7\x85\x00\xef\x19\xc6\xa3\x17\x7f\x0d\xcb\xf9\ +\x97\xf2\xbf\xf7\x1e\xdf\xd2t\x1c\xe0\xdb\x9e\x5cH\x88\xb1\ +\xadXx\xd3\xf1\xf7\x01\xdf\x13b<.p\xef\xf5\xf0\ +\xf5\xd7\xeb\xff\xf1\xbf\xe8^\xfd\xcfya\x03nu\x1b\ +\x16^h/\xc6\xd7\xe7\xc5\xbf\xfe9\xdc\xa6\xeb\xbc\x10\ +\xe0l\xf1\x199\xc2.&\x98x^\xfc~\xeb\xbc\xe8\ +)\xc8w\x04\xd7y!\xc0\xb6a\xe1\x85\x98\xe7\xc5\xed\ +h\xb5\x14\xe4G\x82\xeb\xbc\x10`!\x16^h\xe7\xbc\ +\xb8+j\x11\xa2\xbcgl\x9d\x17\x02\x5c\xfd\xc2\xdal\ +6\xabw\xa7o\x84\x17X~^<\x16\xbf\x14\x81\x9e\ +\x11X\xe7\x85\x00\x87\xf5\xf6\xec\xc3j\xb5Z5\x1d\xe2\ +\xb7g\x1fV\xdb\xed\xd6\x93\x09\x91\xcf\x8b\x84\xf1t^\ +\x08p\x97\x17V+1\xbe\xf9\xf5\x02\xce\x0b\xe7\x85\x00\ +\xbb\xb8\x5cD\xe0\xbcp^\x080\xe9\x87\xb8\xe4\x05\xe6\ +\x02\x02\xe7\x85\xf3B\x80yd\xc8\x97\x5ch.\x1cp\ +^8/\x04\x18\x17\x05\xe0\xbc`\x02?\x0b\x1a\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\ +\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\ +\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\ +\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x86t\ +\xe0!\x80\xb8\xde\x9d\xbe\x99\xfd\xdf\xbe=\xfb\xe0\x01\x04\ +\x01\x06r\xc6v\xca\xaf'\xcc \xc0 \xb8\x01~_\ +A\x06\x01\x06\xd1\xad\xfc5\x891\x080\x88\xae\x18\x83\ +\x00\x03}\x87\xf7\xa1\xaf_\x88A\x80\xa1\x09\xbb\xf3/\ +\xdd\xbe\x90X\x1f\xbd\xf0\x04\x83\x00\x83\xf0\xd6\xfa3\x0a\ +1\x080\x08\xaf\x10C\x93\xfc$,\x10_\x7f~\xb0\ +\x01\x83\xf0\xd8\x86\xc1\x06\x0c\x88\xaf\xc7\x05l\xc0P\xd7\ +\xfa\xd9\xd3\xcb\x1a\x91\xd9\x9d\xbe\xde\xeb\xdf\xfbq\xf4\xf2\ +\xfa\xff\x1fo\x0eE\x18\x04\x18\xfa\x88o\xa4\xd8\xde\xe5\ +\x97\xf3?\xaf#\xfcy{\xf1\xd3?/\x15\xe5\xf5\xb3\ +\xa7\x97\xbbo\xdf\x9f\x98\x1a\x10`\x08\x1b\xdf%\xc1}\ +,\xc2\xb7\xdd\x8er\xce \x8b0\x080\x84\x8bo\xea\ +\xe8N\x89\xf0}A\xce\x11\xe3\xab\xc7N\x88\xe1n>\ +\x84\x05\x85\xe2\xbb;}\x9d=\xbe7#<\xc5\xe7\xed\ +\xc5\x9d\xb7\xad\xa3\xdfA\x00\x01\x06\xf1\x0d\x11\xde%\x11\ +\xce\x19b\x11\x06\x01\x86b\xb1\xa8\x15\xde\xa5\x11\xce\x15\ +b\x11\x06\x01\x86\x22\xf1\x8dbn\x84s\x84X\x84A\ +\x80!K\x1c\x22l\xbd\xa9#|\x15b\x11\x06\x01\x86\ +\xb0\xf1\x8d,E\x84S\x85X\x84A\x80a\x88\xf8\xa6\ +\x8ap\xeam\x18\x04\x18\xc4wvx[\x89o\xb4\x08\ +\xdb\x82\x11`\xa0\xeb\xad7g\x84\x97\x86X\x84\x11`\ +\xb0\xfd\x0e\x13\xdf\x94\x11N\xb1\x0d\x8b0\x02\x0c\xe2;\ +L|S\xf3\xbe0\x080d\xd3\xe2\xfb\xbd\xa5\xb6\xe0\ +\xa5\x11\xb6\x05#\xc0`\xfb\x1dn\xeb\x15a\x10`\x08\ +\x19\xdf\x11\xa4\x8c0 \xc0\x90\x84\xf7|m\xc1 \xc0\ +Px\xfb\x1d)\xbenE\x83\x00\x83\xcdw\xf0\x08\x83\ +\x00\xc3\xc0\xdb/\x9e/\x10`\xb0\xfd\xda\x82A\x80\xa1\ +\xefm\xca\x87\xae\xd2\x9a\x1ba[0\x02\x0c\xd8\x82\x01\ +\x01\x06\xdb\xef8[0\x080`\x0bn\xe0\x05\x14\x08\ +04\xc8\xf6k\x0b\x06\x01\x06\xdb\x93-\xd8\xf3\x88\x00\ +\x83\xed\x17[0\x0800\xdc\x16\x0c\x02\x0c\x8d\x98r\ +\xdb\xd2\xf6\x1b\x7f\x0bv\x1b\x1a\x01\x06\x00\x04\x18(\xc3\ +mh\x10`H\xca\xed\xe7:|\x18\x0b\x04\x98\x0ey\ +\xbf\xd0\xf3\x0a\x02\x0ct\xc3mh\x10`H\xc2\xed\xe7\ +\xba\xdc\x86F\x80\x01\x00\x01\x06\x00\x01\x86\xc6\xf8\xa0\x8e\ +\xe7\x17\x04\x18\xe8\x8e\x0fb\x81\x00\x03\x80\x00Ck|\ +\x02:\x06\x9f\x84F\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\ +\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\ +\x01@\x80\x01\x00\x01\x86\x02\xd6g\x1f=\x08\x01\x1co\ +\x0e=\x08\x080\xc0c~\x1c\xbd\xf4 \x80\x00\x03\x80\ +\x00C\x08\xbbo\xdf\x9fx\x14<\xbf \xc0\x00\x80\x00\ +\x03\x80\x00Ce>\x09=M\xea\x0f`\xf9\x044\x02\ +\x0c\x00\x080,\xe5\x83:\x9eW\x10`\x08\xcem\xe8\ +\xfd\xb8\xfd\x0c\x02\x0c\x00\x02\x0c\x00\x080\x5c\x9b\xf2~\ +\xa1\xdb\xd0\x0f\x8bp\xfb\xd9\xfb\xbf\x080\x00 \xc0\x90\ +\x8a-8\xee\xf6\x0b\x02\x0c\x8dq\xdb\xd2\xf3\x08\x02\x0c\ +\xb6`\xdb\xaf\xed\x17\x04\x18\xb0\xfd\x82\x00C\xa0\x03\xdc\ +\x16l\xfb\x05\x01\x06\x00\x01\x06[\xb0\xed\xb7\xec\xf6\xeb\ +\xf63\x02\x0c\x03r+\xban|A\x80a\xd0-\xd8\ +\xf6\xeb\xf9\x02\x01\x06[p\x93\xf1\xb5\xfd\x82\x00\xc3\xec\ +\xad\xca\xad\xe8\xf2\xf1\xb5\xfd\x22\xc0\xc00\x11N\xb9\xfd\ +\x8a/\x0808\xe0\x0b\xc7\x17\x10`H\x1a\xe1^\xb7\ +\xe0H\xef\xfbzq\x84\x00\x03\xf7F\xd8{\xc2\xe2\x0b\ +\x02\x0c\x85\xb7\xe0\xde\xb6\xe1(\xef\xfb\x82\x00\x83\x08\x0f\ +\x13\xe1H\xf1\xb5\xfd\x22\xc0\xc0\x10\x11N\x15\xdf\xe3\xcd\ +\xa1\xf8\x82\x00C\x9d\x00\xb4\xf6\xbep\xca\xf8\xd6~\xec\ +A\x80a\xf0\x08\xb7\xb2\x0dG\x8a/ \xc00D\x84\ +S\xc47\xc5-g\xdb/\x080d\x8bp\xb4\x10\xa7\ +\x8ao\xa4\xc7\x19\x04\x18D8\xf46\xbc4\xbe)\xb7\ +^\xf1\x85\xffw\xe0!\x80\x9f#\xb1~\xf6\xf42U\ +\x84w\xa7\xaf\x9b\x8bo\x8e\xf7y\xc5\x17\x04\x18\x8aE\ +\xb8V\x88\xe7\xc67\xd7\x07\xac\xc4\x17\x04\x18\xaaD\xb8\ +d\x88\xe7\xc47\xe7'\x9b\xc5\x17\x04\x18\xaaG\xf8f\ +\x88s\xc4xJ|s\x7f;\x91\xf0\x82\x00C\xb8\x08\ +\xdf\x15\xe3\xa5A~,\xbe%\xbf\x7fW|A\x80!\ +|\x84\x1f\x0a\xf2\xbeQ\xbe\x1d\xdf\x9a?,C|A\ +\x80!yXNNN.w\xe7_\x8a\xfe\xbe\xfb|\ +K\xd3q\x90o{Z\x1f\xbdX\xed\xbe}7,\xb0\ +\x07\xdf\x07\x0c3\x22\x83\xc7\x05l\xc0P16\xa5\xb7\ +a\xe1\x05\x1b0 >\xe2\x0b6`\xb0\x0d\x0b/\x08\ +0\x08\xb1\xf0\x02\x02\x0cB\xbc\xc4\xdb\xb3\x0f\xab\xedv\ +\xeb\x89\x05\x01\x86v\xc2\xb5Z\xadV\xefN\xdf4\xfd\ +\xf5\x03\x02\x0c\xcd\x87,z\x8cE\x17\x04\x18\xc4Xt\ +A\x80\x81\xfc\xe1+\x15d\xc1\x05\x01\x06\x1e\x09\xe3\x92\ +(\x0b-\x080 \xa2\xc0-~\x12\x16\x00\x080\x00\ +\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\ +\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\x080\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c\x00\x080\x00\x080\x00\x080\x00 \xc0\x00 \xc0\ +\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\ +\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00\ +\x080\x00 \xc0\x00 \xc0\x00\x80\x00\xd7\xb3\xddn\xfd\ +9\x00\xe7\x05\x02\x0c\x00\x02\x0c\xd8|\x00\x01\xde\xd7\xfb\ +\xf7\xef\x9f\x8ct(M\xfd\xfa\xa7>>\xe6\xc4\xe3\xe3\ +\xcf\xe9\xbc@\x80\x01@\x80{\xd2\xea\xabZ\xb7\x14=\ +\xd6f\xc5ci\x06\x04\x18\x00\x86\xe4>\xfd-''\ +'\x97S\xff\x9b\xcdf\xd3\xf5\xabY\xef\xe7,\x9f\x93\ +\x96fd\xee\xac\x8c8'\xce\x0bs`\x03\x06\x00\x01\ +\x1eO+\xef\x91x/\xc7coV<\xb6f@\x80\ +\xc3\x9a{\xfb$\xfa\xb0\xce\xfd\xfa\xdcN\xf2\xb8x<\ +\x9c\x17\xe6@\x80\xbdb\xf4J\xd6|\xf8:\xcd\x83\xe7\ +\xbf\x1b^\xad\xdcc\xce\x87+\xaeD\xfa\x90\xc5\x92\x8b\ +\xc9\xab\xd9t\xe3\xbcp^\xd8\ +\x80\xbd\xb2\xf5J\xd6|\xf8\xba\xcc\x83\xe7\xdf\x06\xecU\ +m{\xafl\x97^L^\xcd\xe6\x9f\x93\x1e6\x1fs\ +\xe2\xbc0\x07\xf3\x1dx\x08\xf2\x0fu\xc9\x0b\xcb\xab\xd8\ +\xb6\xe6#B\x84\xcd\x8c\xf3\x02\x1bp\x97\xafjK\xbd\ +\xc2My!y5[vNZ\xdd|\xcc\x89\xf3\xc2\ +\x1c\xd8\x80\x87~\x85\xeb\x15\xac\xb907\xe6\xc2\xf3n\ +\x03\xf6\xaa\xb6\xd0\xab\xdc\x9c\x17\x91W\xb3\xf5\xe7\xa4\x85\ +\xcd\xc7\x9c8/\xcc\x81\x00wqQE\xe1b\x8a5\ +'Q7\x1fs\xe2\xbc0\x07\x02\xec\xa2r1\x0d3\ +'Q6\x1fs\xe2\xbc0\x07\x02\xec\xa2r1\x99\x13\ +sb\x0e\xcc\x81\x00\xbb\xa8\x5cL\x98\x13\xcc\x01\x02\xec\ +\xa2r1\x99\x13sb\x0e\xcc\x81\x00\xbb\xa8\x5cL\xe6\ +\xc4\x9c`\x0e\x10`\x17\x95\x8b\xc9\x9c\x98\x13s`\x0e\ +\x04\xd8E\xe5b2'\xe6\xc4\x1c\x98\x03\x01\xa6\xeb\x0b\ +\xcb\x85dN\xcc\x8990\x07\x02\xec\xc2r!aN\ +0\x07\x02\xec!\xe8\xf3\xc2r!\x99\x13sb\x0e\xcc\ +\x81\x00\xbb\xb0\x0a^X.$sbN\xcc\x819\x10\ +`\x0a]\x5c.\x22sbN\xcc\x819\x10`\x0a\x5c\ +`. sbN\xcc\x819\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00F\xf0_\x02\x01\x09\xc2\xac \ +po\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x08L\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07!3\xc5#\x89!\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x07\ +\xc6IDATx\xda\xed\xdd\xb1M\xe4@\x14\x80\xe1\ +\x19\xb4\xc9\xf6@\x80\xab \xdf\x12\xe8\x00Q\x82\xc3\x8d\ +\x09\xb7\x04D\x07\x94\xe0\x9c*L@\x0fd\x98\x08\x09\ +\x89\x00\x16\xc9f\xe6\xbd\xef\x8b\xef\xd01\xf6\xbc\xdfc\ +\xc4^)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00$\xb5,\xd5\x22\x00\x80\x08\ +\x03\x80\x08\x03\x00\x22\x0c\x00\x22\x0c\x00\x880\x00\x880\ +\x00 \xc2\x00 \xc2\x00\x80\x08\x03\x80\x08\x03\x00\x22\x0c\ +\x04g\xa8\xd1W\x84k]z\xff6\x0e\xa7\xe5\xe2\xb7\ +\x7fv\x1a\xeb{+_\x1b\x10\xe0s\x87\xdd\xe22\x07\ +j\xb0\xa7F\x1a2\x8d\xd5\xed\x88\x00\x8b. \xc6\x08\ +\xb0\xf8\x02B\x0cy\x02,\xbe\x80\x08#\xc0\xe2\x0b\x88\ +0\xc4\x0e\xb0\xf8\x02\x22Lo.,\x01\x80\xc3\x01\x02\ +\x0c \xc2\xa4P\xdd\xdc\x00\xeb\xf3:\x1a'`\x00\x87\ +\x05\x04\x18@\x84\xc9)\xe5+\xe8\xc3\xdb\xbd+\xdf\xb8\ +i\x7f<\xfb\xef\xbc>?Z\xb8\x80.\xafoKK\ +{\xfc/\xf7\xe6\xb7\xaf\xe1u4\x19O\xc0\xe2\x1b\x93\ +\xf8\xba\xb6=\xcd\x10'a\xd2\x05X|\x0dh\x5cc\ +\x11F\x80\x01\x92?\xd0\x8b\xb0\x00\x03 \xc2\x080\x80\ +\x08#\xc0\x00\x880\x02\x0c \xc2\x080\x00\x22\x8c\x00\ +\x03\x880\x02\x0c \xc2\x22\x8c\x00\x03\x880\x02\x0c \ +\xc2\x22,\xc0\x96\x00@\x84\x11`\x00\x11\x16a\x01\x06\ +@\x84\x11`\x00\x11\x16a\x01\x06@\x84\x11`\x00\x11\ +F\x80\x01\x10a\x04\x18@\x84\x11`\x00D\x18\x01\x06\ +\x10a\x04\x18@\x84EX\x80\x01\x10a\x04\x18@\x84\ +EX\x80\x01\x10a\x04\x18@\x84EX\x80\x01\x10a\ +\x04\x18@\x84EX\x80\x01\x10a\x04\x18@\x84\x11`\ +\x00DX\x80\x01\x10a\x04\x18\x00\x11\x16`\x00D\x18\ +\x01\x06\x10a\x11\x16`\x00D\x18\x01\x06\x10a\x11\x16\ +`\x00D\x18\x01\x06\x10a\x11\x16`\x00DX\x80\x01\ +\x10a\x11\x16`\x00DX\x80\xdb\xba\xc1NKu\x09\ +\x01DX\x80\x01\x10a\x04\x18\x00\x11\x16`\x00D\x18\ +\x01\x06\x10a\x11\x16`\x00DX\x80\x01\x10a\x11\x16\ +`\x00DX\x80\x01\x10a\x11\x16`\x00DX\x80\x01\ +\x10aR\x04x\x1a\xab\x0b\x0e \xc2\x02\x0c\x80\x08[\ +I\x01\x06@\x84\x05\x18\x00\x11F\x80\x01\x10a\x01\x06\ +@\x84\x05\x18\x00DX\x80\x01\x10a\x01\x06@\x84E\ +X\x80\x01\x10a\x01\x06@\x84EX\x80\x01\x10a\x01\ +\x06@\x84EX\x80\x01\x10a\x01\x06@\x84\x05\x18\x00\ +DX\x80\x01\x10a\x01\x06\x00\x11\x16`\x00DX\x80\ +\x01@\x84\x05\x18\x00\x11\x16`\x00DX\x84\x05\x18\x80\ +\xae\x22,\xc0\x00\xf0\x0f\x11\x8ez\x0a\x16`\x00\x9c\x84\ +\x05\x18\x00\x11\xceq\x0a\x16`\x00\x9c\x84\x05\x18\x00\x11\ +\x16`\x00\x10a\x01\x06@\x84\x05\x18\x00\x10`\x00\x10\ +`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\ +\x06\x00\x04\x18\x00\x04\x18Zry}k\x11\x5cc\x10\ +`0\xa0qm\xe1g;K\x80A\x0d\xe0\x04\x0c\x00\ +\x02\x0c\x00\x080\x89\xf8\xbfBq\xef \xc0\x00\x80\x00\ +\x03\x80\x00\xc3\x8a\xbcJ\xc4=\x83\x00\x83\x81\x8a{\x05\ +\x04\x18\x83\x15\xdc#\x080\x18\xb0\xb87\xe0l>\x09\ +\x8b.\x07\xed\xb4?Z\x10\xf7\x02\x080\x18\xc0\x00\xe7\ +\xf1\x0a\x1a\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00\ +@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ +\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\ +\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00\ +@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\ +\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01@\ +\x80\x01\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\ +\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\x10`\ +\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x04\x18\x00\xd8\xd8\xce\x12lk\ +\xda\x1f-\x02\xd0\x84\xc3\xdb\xbdE\x10`\xd1\x05\xf8\xcf\ +\xd9$\xc6\xdb\xf3\x0aZ|\x01\xcc*\x01vC\x03\x98\ +Y\x02\x8c\x1b\x190\xbb\x10`70\x80\x19&\xc0\x00\ +\x80\x00\x03\x80\x00\xa7\xe6\xd5\x0d`\x96!\xc0\x00 \xc0\ +\x00\xc0'\x9f\x84\xd5\x80\x87\x9b\x17\x8b\x00\xac\xea\xee\xe9\ +\xca\x228\x01#\xbe\x80Y\x83\x00\xdb\x10\x80\x99\x83\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\ +\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00\ + \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\ +\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x08\ +0\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\ +\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\ +\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00a\xed,\x01\xa5\x942\x0c\x83E\x80\x95\ +\xcc\xf3l\x11p\x02F|\xc1\x1eC\x801\x18\xc0^\ +C\x80\x01\x00\x01\xc6\x139\xd8s\x080\x00 \xc0\x00\ + \xc0\xf4\xca\xafF\x80=\x87\x00\x03\x80\x00\xe3\x89\x1c\ +\xb0\xd7\x10`\x0c\x06\xb0\xc7\x08\xc7GQb@\x008\ +\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x08\ +0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\ +\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\ +\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\ +\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\ +\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\ +\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\ +\x00\x03\x80\x00\x03\x00\x02\x0c\x001\xed,\x01\xa5\x942\ +\x0c\x83E\x80\x95\xcc\xf3l\x11p\x02F|\xc1\x1eC\ +\x801\x18\xc0^C\x80\x01\x00\x01\xc6\x139\xd8s\x08\ +0\x00 \xc0\x00 \xc0\xf4\xca\xafF\x80=\x87\x00\x03\ +\x80\x00\xe3\x89\x1c\xb0\xd7\x10`\x0c\x06\xb0\xc7\x08\xc7G\ +Qb@\x008\x01\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ +\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\ +\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\ +\x00\x03\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\ +\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\ +\x00\x80\x00\x03\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x0c\ +\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\x1c\xc1\xb4?6\ +\xf5\xef\xb9{\xbar\x07\x02igNk3Y\x80E\ +\x18@|\x13\xa8\xbd\x7f\x03\x87\xd3\xb2\xd8Z\x00\x09\x0e\ +Pc\xad\x91\xbe\x1f?\x03\x06\x00\x01\x06\x80\x1cB\x1c\ +\xe7\xbd\x86\x06\x88-\xda\xebg'`\x00\x10`\x00\xc8\ +#\xcc\x91\xdekh\x80\x98\x22\xbe~\x0e\x15`\x11\x06\ +\x10_\x01\x16a\x00\xc47W\x80E\x18@|\x05X\ +\x8c\x01\x10\xdd\x9c\x01\x06X\xf9!\xff\xd7st\x1a\xab\ +\x03\x01\x00l\x1d`\xf8\xca\xef\x01\x03\x80\x00\x03\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\xb0\x8d\x0fe\x11m\x17}\xcf\x89R\x00\ +\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x08\xc2\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00D\x00X\x00k\xec\xff\ +\x82.\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x03\x0d\x0e$;\xa3\xb3D\x09\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x08*IDATx\xda\xed\xdd1nSA\x10\ +\x80a\x07\x99\x0a\x89\x13\xe4\x00n\xa2H)S'\x05\ +U\xa4\x88\x03P\xf9\x0e\x9c\x80;\xb8\xe2\x00\x08)\x15\ +\x05\xd4)\x91\xa24\xee(H\xc3)L\x83\x84\x88P\ +\x82\xc3\xee{\xb33\xdfWS\xa0}\xb6\xff\xcc\xc4\xda\ +,\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x90\xd3\x81#x\xd8\xd9\xe9\xd1\ +\xce)\xc4\xf3\xe5\xfa\xd6k\x17\x10`\xd1E\x8c\x01\x04\ +X|E\x18@\x80\xc5\x17\x11\x06\x10`\xf1\x15a\x00\ +\x01\x16_D\x18\xa8\xea\x99#\x00\x00\x01\x06\x80\x12\xca\ +\xaf\xea\xac\x9fs\xb2\x86\x06L\xc0\x00\x80\x00\x03@\x04\ +KG\xb0\xbf\xe3\xd5\xa1C\x98\xd0\xcd\xf6\xce!\x00&\ +`\xf1\x15_g\x0e \xc0B\xe0\xec\x01\x04\x18\x00\x10\ +`\x00\x10`\x00@\x80\x01@\x80\x01@\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\ +\x00@\x80\x01@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00@\x80\x01\ +@\x80\x01@\x80\x01\x00\x01\x86\xa7;;=\xda9\x05\ +@\x80A\x84\x01\xfe\xb0t\x04\x880\xb0\xaf/\xd7\xb7\ +\x07NA\x80\x01\x98\xf1\x87[1~\x1a+h\x00\x9a\ +\xc5\x18\x01&\xa1\xe3\xd5\xa1C\x00\x11\x16`\x00\x10a\ +\x01\x06@\x84\x05\x18z\xb1\x86\x06\x04\x18D\x18@\x80\ +\x11a \x06kh\x01F\x84\x01\xc2r\x11\x07i\x22\ +|\xb3\xbds \x80\x00\x83\x89\x18r\xf0\xc3m\x1fV\ +\xd0\x00\xf8\xe1V\x80\x01\x10a\x01\x06\x00\x04\x18\x00\x04\ +\x18\x00\x10`\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\ +\x06\x00\x01\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\ +\x00\x10`\x00@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\ +\x00\x01\x06\x00\x04\x18\x00\x04\x18\x00\x10`\x00\x10`\x00\ +@\x80\x01@\x80\x01\x00\x01\x06\x00\x01\x06\x00\x01\x06\x00\ +\x04\x18\x00\x12Z:\x02\xe6p\xf1\xe6\xadC\xa0\xac\xab\ +\xf7\xef\x1c\x02\x02\x8c\xe8\xc2\x9c\xef\x051\xae\xcb\x0a\x1a\ +\xf1\x05\xef\x0d\x04\x18\x1f0\xe0=\x82\x00\x83\x0f\x16\xf0\ +^A\x80\xf1\x81\x02\xde3\x080\x00 \xc0\x00 \xc0\ +`\x95\x06\xde;\x080\x00\x080\x00\xb0p\x13\x16\x81\ +\xacV+\x87@:\xdb\xed\xd6!`\x02F|\xc1k\ +\x1b\x01\x06\x1fPx\x8d#\xc0\x00\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00\ + \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\ +\x02\x0c\x00\x080\x00\x080\x00 \xc0\x00 \xc0\x00 \ +\xc0\x8e\x00\x00\xa6\xb7t\x04T\xb5\xd9l\x1cBr\xeb\ +\xf5\xda! \xc0 \xbc\xcc\xf5\xac\x85\x98\x88\xac\xa0\x11\ +_\x0c\x5cB\xd4\x1b\xd9\xeb\x07\xe1\xfa\ +]\x9d[\xa2\x04,\x22\x13\xaa^g\xb5\xb5\x1c\x02`\ +-\x0f\x1bC\x13p\xddn\x1a^\x91\xc9\xe7\xc5/\x81\ +\xb7\x01{\x02\xf7\xf9A\xb8Y!\xaal\x1a\x03\x16\x99\ +o+ji\x06~\x05\x8c\x19\xc3(\x851_\xdd\xe8\ +\xca,\x0b\xa0\x17\x01\x7f.$\xe0\xf3\x80\xef*D\x95\ +Mc\xc0\x22\xb3\xd4\x9e\x98\xb7\xeb\xb9\xce\x05\xc0\x15\xc0\ +\xaaB\xc3\xb9\x0f\xb0FQ\x929T\xc3\xcb\x81\xbd\x0a\ +\xed\xf2\xff\xf3\x5c\xe7\xa2\xe4\x17L\xf1|\x81T\xd8\x1d\ +\x98\x88\xecBrj\x91\xe7:\xa7\x00\x9f\x03\x8eA\xdd\ +\xccR\xdcdl\x80aky\x971\xd4\x00w\xf9A\ +\xf8g\x85F\x09X\xa4\xeae\x9a\xd2\xc7Yk\xfb\x89\ +\x16]P\xf2\x95\x85J\xc2\xb1/\xf8A\xf8\x0e\x85\xa5\ +\xb2\xa8\x0bZd\x06&u;\xbf\xc6Z{S!\xf9\ +\xeaFV\x16\xa38z\x8b\xe7:\xbf\x8e_\xb4\x95\xd6\ +\x12\x97\xa2\x0aXd\xc1\xaa\xdd\x9dKHz\xae\xf3z\ +\xe0b\xe0\x84i*\x15\x91\x85\xac\x86\xaf\x04.\xf5\x83\ +pXaQ\x02\x16\xa9\x0aG\x1d\xf1,\xf3\x94\x83\x0e\ +|\xbe\xb5\xf6\x97@\xad\x12\xaf,a\x12\xfe\xf8\xd8\xd8\ +\xd8gz\x07n{Ta)o\xea\x82\x16\x99\x81\x83\ +\x0f<\xc0\xb3\xd6\xf6\x15\x92\xafn^e)\x8b\xa5\x0f\ +\xd5\xd4\xd4|M!Q\x02\x16\xa9Hm-\x0d\xc91\ +\xdf7\x00_!\x9a&\x12W#\x22K\xe9t\xcfu\ +~\xdc\xda\xdc\xb0Wt\xbejL\xb8\x1c\xd5(\x04\x22\ +\x13%\x97\x00\xf4\x5c\xe7\xc5\xc0\x87\x88\xa6\x1a\xa1\xeaW\ +J@7\x9fU\ +_W\xfb\xb4\xfa\xba\xda\xdb\xbbz\x07\x1ek\xf7\x1a\xcd\ +\xc6lN\xd1)qjTD\x0a\x9e}\xe4\xe1\xa9\x03\ +\x0e\xd8/m\xe0\xfb\xc03\x94x\xa5\xcc\x920\xc0G\ +\xf3y{uO\xff\xe0\x03\x0aK\xe9\xd3nH\x22\x05\ +\x07\x1d\xb8\x7f\xdaZ\xdb\xcdx\xcf\x90\x92\xaf\x94[!\ +\xf5\xe1T\xca\x1c\x01\xbc^a)}\x1a\x03\x96\xaa\xe5\ +\xb9Nr\xaa\xd1y\xd6\xda\xef%\x92\xaf\xa6\x1aI\xd9\ +'\xe4\xe4\x12\xaaRz4\x06,U\xa9\xad\xa51\xb9\ +\xbc\xe4\xcb\x81\xf7\x03\xcf\x9e\xa6\xaa\x10)'c\xf5u\ +\xb5\x8f\xe5\xf3\xf9?\xdcy\xd7\x9fl[\x8b\xc6\x83K\ +\xfeNI\xa4\x1ae\x9a\xd2\xc7Zk}\xa2}|5\ +\xe6+\xe5.y\x0eg\xfc \xf4\x15\x92\xd2\xa5.h\ +\xa9\xe6\xe4\xfb\x12kmo!\xf9\xea\x86T*\xad\xa8\ +Z\xe7\xb9\xce\xdb\x15\x12%`\x91%\x97\x9c\x1f\xe9\xb9\ +\xce\x1b\xac\xb5\x9f\x04\xd6$*\x07\x91J\xa9\x82\x01V\ +\x1a\xc3\xaa\xf8\x83\xed\x9e\x96\xab,\xe5\xbb%\x91J\xae\ +vMW\xef\x80=\xfe\xd8c\xcc\x9a=\xf7l1\x86\ +\xaf\x01G\xa0ng\xa9l_\xb7\xd6~\x06\xf8sw\ +\xdf\xa0n2K\x8c\xa6!IU\x88\x1f\xb8\xda{\xaf\ +5'XkoM\x9c\xfbJ\xbeR\xc9\xdeh\x8c9\ +~\xd9\xb2e\x0d\xc0\xa8\xc2QZ\xd4\x05-\x15-\xb9\ +K\x8c\xe7:g[k\xaf\xd3\x8d\xa7T\x19\xbb\xde\x0f\ +F!\xea\x09R8J\x87\xa6!I\x05'\xdf\x06\xd3\ +\xd1\xbdsW\xa3W\x03\xef\x03\x8e\x8a\x1b%U\xbfR\ +-\xea\xebj\x97\x1fz\xc8\xd37\xfaA\xa8]\x93J\ +\x88\x1a \xa9x\x9e\xeb<\x0f\xb8\x058P\x89W\xaa\ +\xad\xfaM\x9c\xef/\xf1\x83\xf0\xb7\x0aI\xe9P\x17\xb4\ +Tz\xf2=\x15\xe8/$_\xddtJ5\x17Y;\ +\x14\x0e%`\x91\x05\x93\x1c\xe3\xf2\x5c\xe7\x02\xe0\xb3\xb0\ +s*\x86\x9e\x02\x95j\xf6\x08h\xbb\xc2R\xa21`\ +\xa9\x18\xad\xcd\x0d\xc9\xe5%O\x06>\x0e\x1c\xc3x7\ +\x9c\x1a\x1e\xa9f\xf7\xd7\xd7\xd5f\xbbz\x07\x1eT(\ +\x94\x80E\x8a*\xde\xcf7\xd3\x94>\x0e\xe8\x00\x9eZ\ +\xf8\x94\x12\xaf\x08d\x80}\xb3\xb9\x91\xeb\x14\x8a\xd2\xa0\ +.h){\xa7\xb45'\xbb\x9d\xcf\xb2\xd6\xde\x04\xac\ +PdD\x9e$\xaf\x10\x94\x0e\xcd\x87\x94\xf2\xbe\xa5o\ +J\x9b\x9b;z\xe2n\xe7\xd7\x03\x17\x03\x07\x17>\xad\ +'\x9eE&\x1aS\x08\x94\x80E\x8a\xa2\xabw\xc0\x1e\ +|\xd0\x01\xe6\xe8#\x0e;\xdeZ{)\xf044\xe6\ ++\xa2\x0aX\x09Xd\xe1\x1du\xf8\xb3Z\x0b\xdd\xce\ +\xcb\x0b\x1fR\xe2\x15\x99\x9af\x02\x94\x10=\x84%e\ +\xa7\xddswn0\xee\xb9\xce\x1b\x80KP\xb7\xb3\xc8\ +L\xd4\xd5\xd7\xd5>\xbb\xbe\xae\xb6;\x9b\x1b\xd9\xa2p\ +,-=\x84%e\xa5\xb5)m\xd6\xfbA<\xe6\xfb\ +\x22\xe0\x22\xc6\x97\x97T\xf5+\xb2\xeb\xea\xf7`\xe0\x5c\ +c\xcc\x9e\x0a\xc7\xd2S\x17\xb4\x94\x95\xce\xc2<\xdfL\ +S\xfaXk\xedO\x81\xd5\xaazEf$\xbeF\x1e\ +Dc\xc1\xaa\x80E\xe6\xc2s\x9d3\xad\xb5\x9d\x85\xe4\ +\xab\xaaWD\x94\x80E\x16Br\xe9<\xcfu\xce\x05\ +>\x04\xecW\xf8\x90\x1e*\x11\x91\xb2\xa4.h)y\ +\x9d=\xfd\xf6\xc4\xe3\x9f\x9b\xdas\x8f=N\xb4\xd6~\ +\x0c\xa8GS\x8dDD\x09Xd\xe1\xed\xb1zu\xa3\ +\xb5\xb6\x8b\xf1'\xf7\x95xE\xa4\xac\xa9\x0bZJ\xd2\ +\xa4n\xe7\xf3\x80k\x13\xc9W\xdd\xce\x22\xa2\x04,R\ +lm-\x0d\xa6\xb3\xa7?\x9ej\xf42\xe0B\xe0Y\ +\x89/Q\xf5+\x22eO]\xd0Rr:\xba\xfb\x93\ +S\x8d\xae\x05\xf6FS\x8dDD\x15\xb0\xc8\xc2\xf3\x5c\ +\xe7tkmo!\xf9\xaa\xea\x15\x11U\xc0\x22\x0b\xa1\ +\xad\xa5\xc1\xc4\x95oay\xc9w\x03k\x0a\x9fV\xf5\ +[9\xa6;\x96\xdf\x04nI\x1c\xf3]y\x1c8\xa1\ +p\x8e\xcc\xf4\xe7\x8b(\x01\x8bL\xa5\xa3\xbb\xdf>\xf7\ +\xd9G\xa6\xf6\xdbw\x1f\x97h\x9e\xefah\xaaQ%\ +\x8a\x8f\xe5mD+2\xad,\xb4CW\xf9Ax\xdb\ +L\x7f\x88\xe7:\x9d\xc0q\x85\xef\xdf\x02\xec\x094\xea\ +\x5c\x11%`\x919\xd8\x7f\xbf}O(\xacp\xa5\xa9\ +F\x95'^\xfa0\x05l1\xc6\x5c\xd0\xd5;p\xe7\ +\x5c\x7f\x98\x1f\x84Y`m\x22!?\x1d\xd8\x00\xeb\ +\x07\xe1\x86\xe4\xc7=\xd7\xf9\x08\xf0.\xe0\xb9\xd3\xfc}\ +\x22KJ'\xa2,\xa9\xc2T\xa3\x0e`\x7f5\x8e\x15\ +c\x07\xb0\x09\xd8\x17\xf8\x1f?\x08/)$D\xe3\x07\ +\xe1\xa2V\xa3\x19\xd79\xcf\xc2\x15\xc0\xc3D\xdd\xd3\xab\ +ux\xb8\xdf\x18sbW\xef\xc0&\x85bi\xa9\x0b\ +Z\x96\x8c\xe7:\xa7Yk\x07\x0a\xc9W7\x84\x95Q\ +\xfd\x02\xfc!\x9f\xcf\x9f8::Z\x0f\x5c\x19\x7fr\ +\xb1\x93o\xc1\x8f\xc6\xc6\xc6\x9ee\xad}\x0e\xd0\xa1C\ +$\xa5D]\xd0\xb2h\x92]\x8e\x85\xa9F\x17\x03\xab\ +\x12\x8d\xb7\x12p\xf9&\xde\xf8i\xf5_\x00\x9f\xec\xe9\ +\xdf\xf0`\xfc\xc9\xe4\x14\xb3\xc5T\xe8\x9a\xde\x0al-\ +\x9cs\xef#\x1a\x17\xbe@\xe7\x9c\xa8\x02\x96\xaa\x91i\ +J\xefL\xbe-\x8d'\xad\x05\xdeG46gU\xfd\ +VD\xf2\x05\xe8\x07>\xed\x07\xe1@\xf2\x0b\x96\x22\xf9\ +F\xbf\xb7\xcf&o\xfe\xfc \xfc\x03\xf0i\xe0\xd6\xc4\ +\xdfm\xab\xf4\x98m\x89\xe3\xa2Sx\xe9(\xf8\xb2\xa8\ +<\xd7y~\xa1\xa1^\xaehT\x94l*\x95:\xa9\ +\xb3\xa7\xff\x81R\xffC_|j\xfb\xb2\xc76o\xee\ +'Z\xcc\xa3\x1a\xfd\xc3\x18\xe3v\xf5\x0e\xdc\xa3\xd3V\ +\x15\xb0T\xb0I\xbb\x1a\xbd\x16\xf8\xad\x92o\xc5\xb9\x05\ +\xc8\x94C\xf2\x05\xf8\xed\xba\xf5\xa3\xd6\xda\x97\x00\xdf\x9f\ +T\x15V\x8b\x03\xac\xb5\xeb=\xd7y\xf1\xe4O\xb4\xb5\ +4\xaa([D\x9as)\x0b\x98|\xd3\xa6\xb3g\xc0\ +&\x92\xef{\x81#\x12\x0d\x9e.\xf6\xf2\x94\xe5\x07\xe1\x1dQ\x03\xde`6fK\xf7\xe1\xda\ +LS\xda\x0c\x0do\x22\x9b\x1b\xd9\x5c_W{\x0f\xd1\ +Z\xe3\xc72\xde\x1dm\xaa\xe0\xd8\xa5\x80}\x80\x83\xeb\ +\xebj\x0f\xaa\xaf\xab=\xb9\xbe\xae\xf6\x85\xf5u\xb5\xa3\ +]\xbd\x03\x1buz/\x1e5\x80\xb2\x08\x8d\x9es\xbc\ +\xb5\x5cO4\x0dD\x89\xb72\x8c\x02\xf7\x00g\xfaA\ +xW\xf2f\xab\x1c\xb457\x98\x8e\x9e~\x9biJ\ +?\xc5Z{}!\x09W\xd3C\xa9S]\x87?\xb1\ +\xd6^\x08\xac1\xc6,\x03\x1e\xf6\x830\xa7S]\x09\ +X\xca6\xf9\xa6\xdb\xac\xb57\x02+\x14\x8d\x8ar[\ +*\x95Z\xdb\xd9\xd3\xffH\xb9\xbf\x91\xf4\x09\xcf[\xb1\ +r\xe5\xca_\x02\xa7\xe9\xa6\x8a\xad\x85\xbc\xb0'\xf0S\ +?\x08_\xa5S}\xe1h\x0cX\x8a\x9dp\x93c\xbe\ +o\xb0\xd6~>\x91|\xb5$`eTN\x00k\xe2\ +\xe4\x9b<\xe6\xe5x\xae\x0e\xdcv\xe7v\xa2M\x1d\xaa\ +\xf9\x1c\xb5\x85\x1e\x805\x85\xe4\x0bp\xb2\xe7:?)\ +\xfcw\xa3\xe7:W$\xbf\xe1\xe4\xc4R\xb2\xa2\x0aX\ +J\xa0A\xeb\xea\xdd9\xe6{\x1ap)\x13\x97\x01\x94\ +\xca\x90\x05\xbe\xb1b\xc5\x8a\x8f\xdd\xd2\xd93V\x09o\ +\xc8s\x9dw\x03o\x03\x8eJ$\xa4jn\x1f\xa7z\ +\xff\x8f\x03\xef$\x9a\xc2\xb4q\xf2t3Q\x02\x96\xd2\ +H\xc4\xc7Zk\xfb\x89\x96\xfd\xd3\x98o\xe55\xca\xef\ +\xf0\x83\xf0\x0b\x95\xf6\xe6<\xd7y9\xf0S\xd438\ +\x93\x84\xfc\xdb\xad\xdb\xb6\xbdb\xd5\xca\x95\xcb\x88f5\ +\x8c\xfaA\xf8\xb8\xc24;:\xd1\xa4\xd8\x8d\xd8+\x0b\ +k;\xaf\xd6M^\xc5\xd9l\x0c\xa7=\xf4\xf0\xa3_\ +\xae\xc4774<\xf2\x0b\xc0%Z\xc7Zv]\xac\ +\xb5\xadZ\xb9\xf2\xf7\xc0\xed\xc0_\x80o%?\xd9\xee\ +\xb9\xba\xee\x95\x80e\xa1%\xe7\x0dz\xaes\x0e\xf0A\ +\xc6\xd7v\xd6\x98oe\x19\x03\xf3\xbb?\xfc\xf1\xcfc\ +\x956_\xb4\xad\xa5\xd1ds\x9b\xac1f\x03\xd1\xf6\ +\x89\xb2\xebjx\x0f\xe0\xc8\xc2\x7f\x07\x03/\xf4\x5c\xe7\ +3\x9e\xeb|\xd6s\x9d3\xd6\xfbAb\x15\xb2\xb4\x92\ +\xf1\x0c\xefjDf\xed9\xcf>2u\xc0~\xfb\x9e\ +`\xad\xfd\x19P\x87\xba\x9d+\xd5\x16c\xccq]\xbd\ +\x03wW\xea\x1b\xf4\x5cg\x7f\xe0N\xa0V\x87{V\ +\x099y\xbd\xdfj\xad}\x17\xb0G*\x95\xba\xa7\xab\ +w\xe0A\x85H\x15\xb0,\x90\x03\xf6\xdb\xb7\xd1Z\x1b\ +\x14\x92\xafn\xec*W\xbe\x8a\x12\x8a\xcc\xbd\x90k3\ +\xc6\xdca\x8c\x09\xc1\xbeF\xe1Q\x02\x96\x22J\x8e\xef\ +x\xaes\xbe\xb5\xf6[\x8c/b\xa0\xc6\xab2u\x03\ +\xa7\x8d\x8e\x8e\x0eW\xf2\x9b\x1c\x1b\x1b{\x148\x03\xf8\ +\xa5\x0e\xf9\x9co^Rq{`-\x17\x15\xa60\xdd\ +\x98iJ\xd7M\xfe\xe2\xb6\x96\xea\xde\x0cB\x95\x8a\xcc\ +J\xbc\x82P!\xf9\xbe\x14\xf8\x18p\x9c\x22S\xf1\xbe\ +\xed\x07\xe1\xf9\xf1\x0dXr\x8c\xaf\x92n,\xe3\xf7\xe5\ +\xb9\xce'\x80\x0fTh\x824s\xf8\x5c1~\xd7\xa5\ +@H4\xd7x9\xf0[?\x08\x87\x93\xc9x\xa9v\ +\xceR\x02\x96\xb2R\x98j\xd4\x03\xec\x85\xc6|\xab\xc1\ +\x8f\xfc <\xabZ\xde\xac\xe7:\x9f\x05\xde]\xa1o\ +/\x0f\xe1\xb9\ +N\x9f\xe7:7\xb567\xec3\xa1m\xaa\xa0\x95\xb5\ +\xd4\xa0\xca\x93$\xbb\x1a=\xd7y%p\x11\xe3\x0fI\ +\xa8\xebY\xa4\x0a\xc4]\xf1~\x10\xde9\xe9\xe3\x9f\x03\ +\x9a\x0bm\xc1\x9b\x88\xa6\x14\x15\x93\x05\x8e\x88_\xe4\xf3\ +\xf9\xf7{\xae\xb3\x09x\xc0\x0f\xc2\x1fv\xf6D;\xae\ +%w_+WjHeZ\x85\xa9F\x9dD\x0fI\ +(\xf1V\xafW\xf8Ax]\x15\x9e\xff\x8d\x85\xa9v\ +\x15;\x06\x5c\x84$}\x0bp<\xb0\x1dx\xea\x02$\ +\xe2d\x9b\x93\x05N&\x1a'\xde\xee\x07a\xd9/q\ +\xa9.h\x99\xae\xf1yaaK\xc1\xfdt\xb3&\x22\ +\xd3x\xd5\xf6\x1d;\x9e\x06\x9c3E\xf2,v\x81x\ +\x08\xd0\x07\xe4\x80\x8f$\xda\xaa\xb2m\x9b\x94\x80\x05\x80\ +\xf6\x89\xbb\x1a\xbd\xc1Z\xfbi\xc6\xe7~jyI\x11\ +y\x12?\x08\x1f\xea\x1f\xfc\xddvcL\x0fp\x1ep\ +\x16p\xed47\xec\xf3iG\xe2%.\x0f \x9a>\ +{\xb6\xe7:\x97\x9f\xb66\x93JvC\x9f\x9ci*\ +\xabd\xac1`\xc1s\x1d\xb3\xbe\xbb\xcf\xd6\xd7\xd5\x9a\ +\xba\xda\xa7\xb7\x02\xef\x07\x8eb\xbc\x0bH\xd5\xaf\x88L\ +\xa9\xb5\xb9\xc1t\xf6\xf4o-$^2M\xe9\xac\xb5\ +\xf6P\xa2m\x1d\xb7\x11uM\xcfw>\xb5\x99\x94\x8c\ +\x0f\x00.|b\xcb\x96\xdf{\xae3\x04l\xf6\x83p\ +\xe0\x96\xae\xde\xb2*\x16\x94\x80e\xe7\xb4\x8bC\x0fy\ +\xfa\xf1\xc0M\x8c?T\xa1\xc4+\x22\xbb\xd4\xd93q\ +\xfd\xe6\xae\xde\x81>\xa2\xa7\xa6)$\xe4\xb4\xb5\xb6\x0b\ +X\x09\x8c1\xff\x05\xa0\x92\xed\xd2\xd7\x0b\xff\x0f\xdb=\ +\xd7[\xef\x07\xdb<\xd7\xa9\xf1\x83\xb0,\x96\xb5T\x17\ +t\x15[;qW\xa3\xd7\x03\xbf\xa1\xf8O4\x8aH\ +u\xbb\x03p\xad\xb5\x87\x03WM\xfa\x5c\xb1*\xd6\xe7\ +\x8d\x8e\x8e\x06\x9e\xeb\xfc\x15\xf8\xb7\xf8\x83\xed^cI\ +\x17\x11J\xc0U\xaa\xb5\xb9\xc1\xdc:\xbe\xf3\xcbY\xc0\ +\xc5\xc0\xd3\x8a|QHe\xd8\x0c\xd1\xf4\xb4jx\xb3\ +\x9e\xeb\xc4\xef\xf31\x1d\xfa\xf9\xb73]\xbd\x03\xdb\xfc\ + \xbc\xbd\xbbo\xf0o\xc07\x81\xcb\x81\xff\x07\xdc\xcd\ +\x93\xbb\x96\xe7\xc2\x16\xaa\xeb\xe7\x13-\x14\xf46\xcfu\ +\xde\x04\xb0\xde/\xed\xc5c\xd4\xc5X\xe52M\xe9\xe3\ +\xac\xb57\x12\xad\xfb\xaa\xa9F2\x95\x7f\x1b\x1b\x1b\xfb\ +Z\xef\xc0mOT\xcb\x1bni\x9f\x7f\xbb\xe7:\xa7\x17\xda\ +?\xbaz\x07\xecR?\xd7\xa0F\xb7\xfa\x12\xf1qD\ +\xab\xc9\xacBc\xbe2s?\xdb\xbam\xdbk\xc2\xdb\ +\xee\x1c\xab\x92\xeb\xe4j\xe0\x9d\x15\xfa\xf6\x96d\x0cx\ +W\xdaZ\x1aLG\xf7\x84\xf1\xe1\xaf\x03\x17\x14n\x84\ +\xf6,r;\xb5\xc9\x18\xd3\xd8\xd5;\x90S\x05,\x0b\ +*3qW\xa3W\x037\x17\x92\xafn\xc0d6^\ +\xbaj\xe5\xca \xd3\x94>\xb4\xc2\x13\xef>\x9e\xeb\xdc\ +\x04\xbcE\x87|\xf1$\x93o\xc1\x07\x89\x1e\xcc\xca\x00\ +\xff\x9c\xf4\xb9\xf9\x0e\x97\xd5Zk\x03\xcfu<%`\ +Y\xc8\xc6d\xe7n!\x9e\xeb\x9c\x0d\xfc'p`\x91\ +Nb\xa9\x1e\x96h~\xb8\x93\xb8y\xabT\xcb\x80\x13\ +\x89\x9e\x8d\xd05\xb2DE\x83\x1f\x84\x7f\xf7\x83\xf0^\ +?\x08o\x07>Ph\xbb>\x9f(\x1c\xe63>\x0c\ +\xd1\xba\xd2\x1f\xf3\x5c\xe7\xa5\x13~\xf7\xf8\x14\xb4E\xa1\ +\x0a\xa8\xc257\x9ehjR5'Xk\xaf+\x9c\ +t\xeav\x96\xb9z\xc4\x18s\x5cW\xef\xc0P\x05\xdf\ +\xb4\xeeE\xb4p\xc43+\xf88\x96\x5c\x17\xf4TZ\ +\x9b\xd3&\xdez0z\xddpp>\x9f\xbf\x0eh(\ +B\xf1\x18\xb7\x83\x1b\x88\x1e\x00[\x01l\xf2\x83\xf0\x01\ +U\xc0R\xbc\x03lR\xcd\xd6\xda\xbeB\xf2\xd5M\x97\ +\x88\x94\x85d\xf2\x8d^\xf7\xff\xe3\xee\xbfml\x06n\ +)b\xf1\xf9|\xe0\xf6\xc2\x7foZ\xf4\xf6Y\x87\xb9\ +\xb2L\x1a\xf3=\x9fh\xad\xd4e\x89\xbb>\x91\xb9\xda\ +\xd3Z\xfb3\xcfuN\x8d?PIOD{\xae\xf3\ +|\xe0z\xe0\xe9:\xd4\xa5\xd9\xae\xdd\xf7\x8f\x07,\xf0\ +>\xe04\xe0\xb5\xc0\x8ey\xb4m\xf1\x0eK\xf1T\xcc\ +\x8b=\xd7\xb9,Qq/\xf8\xb9\xadj\xa8\x82$W\ +\x9a\xf1\x5c\xe7%\xc0'\x80\xe3\x14\x19)\x82\xe4\xd0\xc5\ +\x8d\xc0%\xcb\x96-\xeb\x5c_X\xce\xb4\xdc\xb54\x9e\ +\x946\xc6\x5cXh\xd4'\xbf\xdfJS\x16]\xd03\ +\xbci\xfa8\xf0F\xc6\x97\xd1\x9d\xeb\xb1\x8b\xbf\xe7\x09\ +\xe0\x22\xe0{~\x10.\xf8R\xa4\xaa\x80+H\x9c|\ +3\xaes,\xf0\x83B\xf2U\xd5+\xc5\xbcY\xb7\x85\ +\xea\xe3\x9aU+WTL\xfba\x8c\xb9$\x91|U\ +\x9c\x94\x09?\x08?\x04|\x91h\x97\xa5\x7f\x02\xa3s\ +\xf7\x0a\xd5\xfd\x19\ +D\xab\x9a\xfdG\x11\x8e\xdd\x87=\xd7\xb9<\xd1\xee\x16\ +\xe5\x1c\xd7\x18p\x99iki4\x1d\x85-\xb5<\xd7\ +yE\xe1\xe4z\xb6\x22#K$^\xa6\xf2\x98\x1d;\ +v\xd4\xd4\xd7\xd5\xfe\xa5\xabw\xe0\xd1r~C\x9e\xeb\ +\x18?\x08\x1f\xce\xe6F\x86\xb2\xb9\x91l}]\xed\x18\ +\x90\x03\xee\x22\x9aYP\xee7\x18\x153\x06<\xd9\xd0\ +\xf0&\xe2\xe7\x11\xb2\xb9\x91M\xd9\xdc\xc8\xdf\x9fq\xe8\ +!w\x03{\x03\xc7\x16\x0a\x95\xd9\x0e\xd1\xc5;*=\ +\xa7\xbe\xae\xf6\xf1g\xd6\xd7\xdd\xd5\xd5;\xb0\xbd\x18c\ +\xc2\xea\xaa,S\x99\xa6\xf4\xb1\xd6\xda.`_4\xe6\ ++K\x9f\x84\xe3\xf3\xef\xe3[\xb6l\xfd\xef\xc1\xdf\xfd\ +\xbe\xe2vM\xf2\x5cgO\xa2\x87\xb4\x9e\x01\xe4\x19_\ +W\xbd\xdcT\xf4\x18\xf0\x147Sq\xc1\xf2s\xa2\xb1\ +\xfdy\x9d\xe3\xc6\x98s\xbbz\x07\xbeS\x8c\xbfO]\ +\xd0\xe5yR\xbd\xc8Z\x1b\x14\x92\xafn\xa4d\xa9%\ +\xcf\xbf\x0f\xad^\xbd\xea\x87\xc9O\xb6UF\x974D\ +\x8b4\x9cF\xb4\xe8\xc3\xbfNj\x9c\xa5\x04\xc5\xc9\xb7\ +\xf0\xefW0\xf1y\x859\xed1l\xad\xbd\xd6s\x9d\ +O\x8c\x17Cs\xef\x8eV\x17tyT\xbb\xc9\xa9F\ +o\x00\xfe\x0b\xa8\x9b\xa2\xfa\x10)\x85J\xb8\xae\xbe\xae\ +\xf6\xf0\xfa\xba\xda\xd7\xd5\xd7\xd5\x8eu\xf5\x0e\xfc)\xae\ +F\xb2E\x9e\xc61\x95\xb5\x9ek\xee\xcd>y\xab\xd7\ +\x933M\xe6\xde\xa1\xe19_\x83~\x10\xdaln\xe4\ +\x89lnd\xac\xbe\xaev#\xb0\x11\xf0\x88\xba')\ +\xa3\xeb\xb1b\xbb\xa0w\xe7\xd0C\x9e\xfeGc\xccf\ +\xa2\xf1}3\x8f\xe3uT}]\xed\xfe\xd9\xdc\xc8-\ +C\xc3#\xb467\xcci\x1a\x9e\x1a\xee\x12\x17\x8f\xf9\ +\xbe\xe4\xb4v\xf3\xe8\xa3\x9b=\xe0+\xc0\x91J\xbcR\ +\xe2I8\xb6\x1e\xb8\xb8\xb0\xad\xdc\x04\xc9\xa5S\x17\x82\ +\xe7:\xe9B\xb5\xfa\x80\x1f\x84\xbd\xd1\xf54q\xe3\xf7\ +9\xfe\xdcd\xb7\xe6\xe5\xc0ID\xbd\x89\xcder\x8c\ +\xaa\xa6\x0bz\xaa\xe3\xd6\xd2x\xd2Jc\xcc\xb5\xc0K\ +\x988\xd5l\xa6mj\xf2\xeb\xce7\xf0\xb3\xae \xdc\ +<\x97\xbfI\x0dx\xf9T\xc1'Xk\xfb\xd1\xd3\xce\ +R~6\xa5\x8c9\xb1\xb3w\xe0~\xcfu\x96\x03\xd6\ +\x183\x16\xefU]\xc4\x06v\x19`\xfc \xdc\xb16\ +\xe3\xae\xda\xb1c\xb4\x8f\xe8\xa1\xa9{kjjN\xea\ +\xe8\xee{p\x01\xaf\xcfC\xad\xb5\x1b\x88\xc6\x85\xc7(\ +\xed\xde\xc5\xaaL\xc0S\x9c/\xdf\x06\xce%Z\xbe\xb2\ +f\x1e\xf9\xf0_\xfd \xbcf.\xdf\xa81\xe0R=\ +9\x12\xe3\x0a\x9e\xeb\xbc\xdeZ\xfb+%_)SO\ +\xcf[{\xa3\xe7:\xfdD\xdb\xbeu\x01O\x99\xfcE\ +3\x1d+\x9ej\x9a\x93\xe7:+\x80\xdf\x00wx\xae\ +3\xb0c\xc7h\x0f\xe3\xb3\x03\x9e966\xd6\xed\xb9\ +N\xc3\xee~\xce\x5c-_\xb6,\x07\x9cj\xad=\x8a\ +hq\x92\xc9\x15\x93\x94\x9e\xff\xb2\xd6>\xdf\x18\xd3\x06\ +<4\x8fc\xf5\xa9\xe4\x14\xa5\xd9,\xcd\xaa\x0a\xb8\x04\ +M\xda\xd5\xe8,\xa2\xed\xb7N\x98e7\x89H)\x98\ +\xee|\xbd\x1a\xf8\x0b\xd1\x9a\xe5)\xe0[~\x10\xe6f\ +Q\xbd\xec\x0b\xbc\xb5pS\xfa8\xd1\xf2\x83\xef\x9f\xe2\ +K\xf3\x89B\xe3'@o\xe1\xdf\xd7\xf8A\xb8=\xd3\ +\x946\xf3\xad\xc4\x93S\x03\x0b\x7f\xdb\xa1\xc0\xbf\x11=\ +\xb4\xf5\x22\xa2.\xea\x99\xc4D\x15\xf0\x229\xb9\xb5\xc9\ +\xdc\xd2\xd9\x9b\x7fm*\x95\xdao\xb7?\xc0\xda\x87\x8d1/\ +\x00\xbe3\x8b\x9f?\xf9\xe3/{\xe4\xd1\xc7~s\xe7\ +]\x7f\xca/\xd4\xcdst\x0d;o\xb1\x96O\x00\x0f\ +\x17n\x06\xf6\x03\x0e^\xe2c\xa0.\xe8)\x12\xb1\xe7\ +:\xff\x09|r\x9e\xe7\xf4\xd9yk\x7f\xdc\xd37\xb8\ +c&\xdf\xa8.\xe8\x12\xe5\xb9\xce)\x851\xdf\x83t\ +\xb3$\x15d\xba\xf3\xf8\x13\xa9T\xea\xaf\xc0\xe0\xee\xfe\ +3\xc6\xdc\x0d|i\x96?\x7f\xf2\xc7\x7f\xb9\xcf\xde{\ +\xbdkr\xf2\x9c\xef\x9b{\xd2Ce\x96o\x03G\x00\ +'\xf9Ax4\xd1\x0c\x86\xc9\x8d\xb7,\x91d\x15\xcc\ +\xf8\x0er\xf39\xa7\xbf\x9b2\xe6#3\xfdF\x8d)\ +\x96\x88v\xcf5\xf1\xe6\xe6\x9e\xeb\x5c\x00\xbc\x07X\xb9\ +\x9b\xbbz\x91J\xb1\x9a\x89\xd3y\x16\xc3;\x0a\xe3\xc2\ ++\x8c1\xef\xeb\xec\xe9\xbf'\xf9\x84s\x11n\xa2M\ +W\x10n\x03\xb6\xedl\xa9\x8d\xf9\x85\xb5v3\xf0\x18\ +\xf0n`\xed\x0c\xaawY\x1c_\x01\xb6\x02\x1f\x9d\xe7\ +\xf1X\x11\xffc\xf2\xf0\xc4d\x9a\x07\x5c\x02&-/\ +y\x0a\xf01\xe0\x98\xc4\x09\xa0\x8bR\xa4\xb8,\xd1\x13\ +\xcb\xc7\xc6\xd7Z}]\xed\xdd~\x10\xc6\x0f\xe3L\x98\ +\x7f?\x17\x93\xe7<\xb7\xb54\x9a\xce\x9e\xfe\xcd\xd9\xdc\ +\xc8\xef\xb3\xb9\x91\xbf\xd4\xd7\xd5n\x03\xf6\x01\xee\x04j\ +\x81U\x8b\x94\x8c\xabv\x1e\xf0\xb4\x05PK\xa3\xe9\xec\ +\x1dx\xb8\xbe\xae\xf66\xa2\x95\xce\x0eK&\xd2Yz\ +\xb4\xbe\xae\xf6\xdelndxc6G[K\xa3\xd9\ +\x98\xcd\xed\xb6t\x96%\xe6\xb9\xceqD{\x92\xae\xd4\ +\xdd\xb0\xc8\xa2\xfb\x89\x1f\x84\xafni\xe3\xd0C~\xdf\xd9\xd3\xff\xc4\xf8\ +\x8d\xb3;m\x97\xe2\x5ces#\x8f\x0e\xe7F\x1e\xca\ +\xe6F\x86\xea\xebj\x1f\x05n\x03n \x9a3\xfd|\ +\x8a\xbb\xdc\xa5\xba\xa0w#7r\xdf\x8e\xfa\xba\xda\xbf\ +\x12-\xaa\xf2\x1cf\xf7|B||\xf6\x01~\x99\xcd\ +\x8d\xdc\xb5\xbbl-K\xe0\xa8#\x9ee\x0e>\xf0\x80\ +\xe7\x03\xbf$\x1a\x03R\xe2\x15)\x8dd\x9c\xbc\x0e\xff\ +\xc5Z{\xb31f\xa5\x1f\x84\x7f\x5c\xa8_\xba\xd6s\ +\xcd\xad\x85\x071\x93<\xd7\xf9\x06\xd1\xbe\xc4\xdb\x81\xa3\ +\x8b\xf0\xab\xd4\x05\xbd\x1b\x93\x9e\xcb\xb9\x97h\x5cx.\ +\xfe+\x9f\xcf_\xd3\xd3\xbf\xe1\xa1\xa9>\xa9.\xe8%\ +t\xf0\x81\x07xDc\xbe\xb5\xba!\x12)\x19\x93\xaf\ +\xc3\xab\x8c1\x7f\x03~\x9diJ\xef\xb7P\xbft\xaa\ +\xe4\x1b\xdf\x00\xf8Ax\x981\xe6\xe5\xc0f\x1d\x9e\x85\ +\x17'\xdf\xd6\xe6\x86}\x99_O\xf1\xc7R\xa9\xd4W\ +\xa6\xfb\xa4\x12\xf0\x22J\xce3,\xecj\xf4\x15\xc6\xa7\ +\x82i\x8cG\xa44\xc5O\xc3>\xcbZ\xfb\xeb\xc9K\ +Z&\x9f\xe5X\x08~\x10n\x07X\xb5j\xe5_\x80\ +3\x89\xc6\xa7O-\xfc\xfb\xa1i*x)\x82\xbc\xcd\ +o\x06^I\xb4\xa9\xc8\x5c\xe3\xbb2\xd1\xee\x9b]\xdd\ +\xe9\xc9\x02&\xdf\xc4\x98\xef\x8b\x81O\x01\xcfSdD\ +\xcaB\xb2[\xfa\xbb\xc0\xcf\x80U\xc6\x98\xeb\xbaz\x07\ +v\x8e\x0f\xb76\xa5Mg\x917\x99\x88\xda\x8f\xb4\xe9\ +\xec\x19\x98\xaa{\xfa\xa3\xc0s\x89\xe6\x15[\xa2\x87\xb8\ +\x0e\xda\xc5\xdf\x0e\xea\x82\x9e\x91\xb6\xe6\x06\xd31\xb1\xcd\ +\xfeO\xa2\x1d\xaff\x9b7\xef\x04>\x0e\xdc\xe0\x07\xe1\ +cJ\xc0K(\xd3\x94>\xd6Z\x1b\x00{\xa21_\ +\x91rN\xc4\x00/x\xe8\xe1Gn\xddo\xdf}\xd6\ +\xf8A\xf8\xc8R\xffq\x9e\xeb|\x1d\xb8\x80hmb\ +[hgVM\xfa2%\xe0\xd9\xdc\xfc\x14n\xaa\x0a\ +m\xf7\xed\xcc\xaeK:y\xbe\x1c\xe7\x07\xe1\x9d\xc9O\ +\xaa\x0bzq/\x8eWXk\xbb\x0a\x17\x85n\x80D\ +\xca\xcf\xe4k\xf6[\xfb\xed\xbb\xcf\xdf\x81\x9f\x97\xc8\xdf\ +\xf7\x1f\xc0\xe1\xf9\xbc=ql,\x7f$\xf0\xc3i\x92\ +\x82\xccP\xa2Gc\xc5<\xce\x97\xed\xc6\x98Ga\xe2\ +\x946%\x80E\xb8s*$\xdfs\x81\x0b\x89\xa6\x14\ +\xa0\xeaW\xa4\xa2\x8c\x01_&\xdap\xa1\xdf\x0f\xc2k\ +'\x7f\xc1tO9/\xf0M\x7f\x1a8\x99h\x89\xc5\ +\xcd\xc0k\x80S\x8c1\xf5]\xbd\x03Y\x1d\xb6\x99\xcb\ +4\xa5\x9b\xac\xb5=sl\xbfG\x81_\x10\xed\xc2\xb5\ +s\x03-/)Ri,Q\xb7\xe4\ +\xdb\x0b\xaf\x9bZ\x1aO\xfa_ e\x8cY\x09<\xe2\ +\x07\xe1\xef\x17;\xf9\xb6\xb74\x9a\xf5\xdd}\x03\xc0@\ +\x22!\x8f\x00\xcb\x8d1\xdbt\xd8f{\x94\xedC@\ +\x0fp\x22O\xee\xd6\xdf\xdd\xf9\xb1\x8c\xe8a\xae{I\ +<\xd0\xa5$\xb0\xf0w\xa0\x8d@7Z\xf4D\xa4\x9a\ +\x12r\x9clS\xc0\x1d\xabV\xadL\xaf[\xdf\xbd\xbd\ +\x04\xda#\x03\x18?\x08\xf3:Ls\x8e\xe1\xad@\xfb\ +\x1c\xbf\xfd\xa3~\x10\xee\xdc-Ic\xc0\x0bs\x82\xc7\ +\xff>\x0f\xf8^\x22\xf9j\xecE\xa4\xf2\x93\xaf)\xb4\ +\xadq\xfbz\xcc\xd6\xad\xdb\xd6y\xae\x13z\xae\xf3\xde\ +\xe9\xda\x8b\x85\xd6\xd6\xd2`\xfc \xb4J\xbe\xf3k\xd7\ +\x89\x86\x1b\xe6\xea\x89\xe4\xcfT\x05\x5c\xd4\x13|\xc2\xea\ +)/\x07>\x02\x1c\xaf\xc8\x88T}B\x8e\xfd/p\ +\x19\xd1\x83\x98\xeb\xfc \xfcS\xb2A.\xd6V\x88\xb2\ +\xa0\xc9\xf8\x16&n#9\x1b\xeb\x80\xabFG\xc7\xae\ +\x0f\xc2\xdbF\x95\x80\x17\xe6\x00\x1d\x0b\xf8Dk\x81\xea\ +a+\x11\x99*\x19_\x82\xe5\xa3\x18\xf63\xf0@W\ +\x10\xeeP\x88*:\x01\xc7\xc7\x7f\xc8\x18\xf3\x9c\xae\xde\ +\x81\xc7\xd5\x05]\xfc\x83\xf3\x12 ($_\x94|E\ +d\x9a\xb6\xe0_1d\x81\xdbm\xb4/\xf1\x04\xc9\x95\ +\xf3\xa4\xa2\x8e\xff\x13\x85d\xac\xa7\xa0\xe7+\xb9BM\ +ay\xc9\x0b\x19\x9f\xe7\x91\x1b\x8aO\x00\x00 \x00I\ +DAT\xab\xeaWD\xa6\xab\x86\xd6\x14\xfe\x03\xf8\xa4\ +\xe7:\x7f!\xdaug\x15pEgO\xff\x86\xf8\x8b\ +3Mi\xd3\xb5\x00+l\xc9\x92\xd89\x06\xaf\x04\x5c\ +\x84\xe4{\xec1G\x9b}\xf7\xd9\xab\x05\xf8 \xd1\x96\ +\x82\x9aj$\x22\xb3\xa9\x86O+\xfc\x17{\xccs\x9d\ +\x1a`M*\x95\xea\xed\xec\xe9\xdf\x9a\xfc\xe2\xe4\xf3&\ +R\xbe\x94\x80\xe7!\xae|\xf7\xddg\xaf\x13\x80[\x13\ +\xf1T\xe2\x15\x91\xf9x{\xe1?\xac\xb5\xcd@o!\ +!\x03\xe4\x95|+\x83\xc6\x80\xe7 \xb9\x94\x98\xe7:\ +g\x03\xd7\xe9fFD\x16\x82\xb5\xf6\xab\x9e\xeb\xf4\x10\ +m]z;\xd1\x86\x00\xd3\xb6IR|\x93\xa6!\x15\ +\xeda9%\x8d\xd9&\xdf\xe6\x86\xe4T\xa3W\x03\x17\ +\x01\x87\xc4\xd7\x8a\xaa_\x11)\xb2gOz\xfd\xef\x85\ +\x99\x16{\x02\xab\x0c\x5c\xdf\xd1\xdd\xb7!\xf9\x05\xed^\ +\xa3Y\xef\xabJ.\x16?\x08\xad\xe7:\x07\x01\xe7\x00\ +G\x15\xeb\xe7*Y\xcc\xfd\x8e\xe88\xe0f\xe0@%\ +^\x11Y\xac\x82x\x8a\xb6\xe6+\xf9|\xfe\x03\xc6\x98\ +\xbd\x8d15\xc0\xc3~\x10>\xa0P\x15W\xa6)\xdd\ +`\xad\xed+B\xb1u\x971&\xdd\xd5;\xf0\x84\xba\ +\xa0\xe7v N%\xea\x0e:P72\x22\xb2\x88\xa6\ +jk\xceK\xa5R\x7f1\xc6l\x00\xfe\x02|Ba\ +*\x9e\xd6\xa6t\x1c\xf3-\x8c?\xc1l\x16\xea`\xca\ +\x93\x13\xee\xce)\x00\x85\xa9F\xef\x01\x9eS\x84;!\ +\x11\x91bW\xc4\xf7\x037\x11-\x81\xbb\x06\xb8\xdd\x0f\ +\xc2\xff\x9e2\xb947\x98\xce\xc2\xa6\xf32Q[s\ +\x83\xe9(\xc4\xc6s\x9d\xd3\x81\x0f\x00\x8d\xf3h\xef\xe3\ +c5b\x8c9\xb2\xabw\xe0q\x8d\x01\xef\xee\xee'\ +q\x82\xb6\xb8\xce\xc9\xc0{\x81c\xd0T#\x11)\xbd\ +\x8a\xd8\x02O\x01\xceM|\xcc\xf5\x5c\xe7\x8eB\x05\x17\ +\xefi\xbb\x0c\xe8\xef\xec\xe9\xdf\xa4\x10N\x91|'.\ ++\xdcP(\xba\xdcy\x16]\x06\xc8\x01?\xce\xe7\xf3\ +\xa3\xaa\x80gU\x05;\xc7Y\xcb\x00s\xdb\x94YD\ +\xa4\xd4\x5c\xec\x07\xe1\xe5\x9e\xeb\xacN$\x88\xbc\x1f\x84\ +[\x15\x9a\xb8\xddO?\xcdZ;\x08<\xbdH?\xf2\ +\xc3~\x10~,~\xa11\xe0i\x9c\xd2\xda\x9c\x9cj\ +\xf4\x1ak\xb9I\xc9WD*\xc8{=\xd7\xf9\x1d\xd1\ +~\xc1\x03D\x1bE\xfc|\xba/nmNWt\xc1\ +6yg*\xcfu\xe3E\xa7\xa4\x1e|\xf8\x91\xef\ +\x03'\x01\xdbf\x11\x93\xd9\xc8\x03\xa7\xfbA8\xa0\x0a\ +x\x0a\xed\x9ek\xd6\xfbAr\xaa\xd1\xfb\x19_\xf1D\ +\xd5\xaf\x88\xa82~\xb2\xf5\xc0\x83\x89B%\x99[\xf6\ +0\xc6|\xbc\xabw\xa0c.\xbf\xb4\xad\xa5\xc1tt\ +\xef~\x8a\xd4l\xba\xc0=\xd7y\x01\xf0\x1f\xc0\xe3\x85\ +\xf75F\xf4l\xcf\x0b\xa6x\x0f\xc5\x8a\xdb_\x81w\ +.[\xb6l\xddz?\xb0\xc9'\xac\x95Tx\xd2\x96\ +\x82/\x02\xfe\x87)\xf6\xe7\x14\x11\x91Y\x15%?\x00\ +\xbe\x0b\xec5\x8b*\xbc\xc6\x18scW\xef\xc0?f\ +\xfa\xc7x\xae\xb3'\xf0R\xa2^\xdd\xb1i\xbe\xec1\ +\xe0\x02\xe0\xccy\xbe\xa7\xd9\xc4\xe6O\xc0g\xfd \xfc\ +r\xe1\xef4~\x10ZU\xc0S\xdfI\x1d[Xj\ +l\x0fU\xbd\x22\x22\x8b\x92\xa4\xa7\xf2f?\x08\xbf\xe6\ +\xb9\xce\xbe\xbb\xfbB?\x08\x1f\xf6\x5c\xe7\x85\xc0\xf5\x8b\ +\xf0w\xcd\xc6\x0e\xe0\x95~\x10\xfejWw\x1b\x02d\ +\x5c\xe7L\x0b_\x05\xf6S4DD\x96\xd4?\x80G\ +\x88V\xf3\xda\x9d1\xa2\x8d)\x9e^\x02\x7fw\x9c\xdc\ +\x1f\x05N\xf6\x83ppW_\x5c\xb5\x0fa%W\xb8\ +\xf2\x5c\xe7\x5c\x0b\x17&\x92\xaf\xaa_\x11\x91\xa5Kb\ +\x073>\xf5\xb3\x9c\x18\xe0\xf7\xc0\xa7\xe2\xe4\x9b\x1c\xf3\ +U\x05\x9c\xd0\x94>\xc1\xd4\xd4\xd48\xc0\x8f\x80z%\ +^\x11\x11\x99\x87\xbf\x03\x1f\xf2\x83\xf0\xeb\xbbK\xbeU\ +\x9f\x803Mi\xd7Z\xeb3\xb3n\x0e\x11\x11\x91]\ +i\xf6\x83\xb0w\xa6_\x5cUKQ\xb667$\x97\ +\x97<\xdfZ\xfb\x9dD\xf2\xd5\x8e \x22R\xe9\xec<\ +?/O\x8e\xd1\x17\x80\x06\xe0\xe4\xc2\x96\x903V5\ +c\xc0\xc99e\x9e\xeb\xbc\x0cx7\xf0,\xf5\x06\x88\ +H\x151D\xbb\x22\xfd\x1cx\x98\xf1\xb9\xaf[\x89\x96\ +^\xc0\xa7\x80U\x15\x94d\ +\x937)\xff\x0b\x5cJ\xd4M\xbf\x07pOg\xef@\ +ng\xcc\x5c\xc7t%V\xb5\x9a\xeb\x9dPE;\xe6\ +\xa8#R\x07\xec\xbfo\x13\xf0\x0d\xe0p%^\x11\xa9\ +b\x0f\x037\x03o\xf7\x83\xf0\x9f\xbb\xfa\xc2\xc9\xcb&\ +N\xf35\xdf\x00\x9e\x0bl\x9e\xe6Kv\x00\x07\x01\xc7\ +\x97h<\x1e\x016\x14rB2/\xec\x03|\xcf\x0f\ +\xc2K\xe7\x12\x17%\xe0\x9dwv\xceI\xd6\xd2\x87\xc6\ +0DD\xbe\xea\x07\xe1[\x16\xb7\x0d\x9e0\xdds.\ +[\x17\xcef\xb6N\x9fH\xbe\xba\x9b\x13\x11\ +\x99\xda\xf7\xad\xb5o\xda16:\xa6P(\x01\xcf)\ +\xf9\xc6]&\x9e\xeb\x9cF\xb4\xbc\xe4\xd1\xe5^\xc5\x8b\ +\x88,4c\xe8\xee\xee\x1b\x0c\xfd\xde\xd0\xb6\xb74\xaa\ +\xad,1%\xff\x10V\x9c|\x0b\xcbK\xfe\x1cX\x8d\ +\xc6|EDv\xcbZ\xf6\x8c\xff\xbd\xbe\x8cV\x88R\ +\x05\x5cB<\xd7yeam\xe7\xd5\xaazEDv\ +\x9dw\x19o(W)\x1cJ\xc0\xb3\xd2\x96\xe8*\xf1\ +\x5c\xe7\x1c\xe0\x83\x8c\xaf\xed\xac\xbb8\x11\x91\xe9\x93o\ +\xdc~^m\xe1\x17\x0aI\xe9*\xd9J\xf29G\x1f\ +\x91:`\xff\xfdN\xb0\xd6\xfe\x148\x14u;\x8b\x88\ +\xcc\xc4(\xd0\x05\x9c\xe1\x07\xe1\xe6r\xda\x1dH\x09\xb8\ +Dx\xae\xd3\x0ct\xb2\xc8\xfbW\x8a\x88\x94\xb9\x9f\xf9\ +A\xf8J\x85\xa1\xf4\x95L\x17t\xbb7\xa1\xdb\xf9|\ +\xe0\x9b\x89\xe4\xab\xbb7\x11\x91\xa9%\xdb\xc7\xcb\xac\xb5\ +\xff\xae\x90(\x01\xcfX[K\x83Y\xef\xf7\xc5S\x8d\ +^\x0a\x5c\x08\x1c^\x0e\x95\xba\x88\xc8\x12'_\x03\xe4\ +\x81\xef\x03Wu\xf7\x0d\xe6\x92\x05\x8d\x94\xae\x92:H\ +\x9e\xeb\x1c\x0b\xf4\x00{\xa11_\x11\x91\x99\xea\xf0\x83\ +\xb0\x1d\xa2=\xd2\xe3mZE\x15\xf0\x8cd\x9a\xd2/\ +\x05\xba\x0b\xc9WU\xaf\x88\xc8\xcc|i\xfb\x8e\x1d/\ +\x8a_(\xf9*\x01\xefV\xfb\xc4\xa9F\xe7[k?\ +\x0a\xec]\xf8\x90N \x11\x91\xa9%\xdb\xc7\xcf\x01\x97\ +\xf6\x0f\xfen+@\xc6uT\xb8\x94\x91%=X\xa7\ +\xb46\x9bm\xdb\xb7\xbb\xc0\xb5\xc0\xb3P\xb7\xb3\x88\xc8\ +L\xec\x00\xd6\xa7R\xa9\xb3:{\xfa\x1f\xd6T#%\ +\xe0Y\xcb4\xa5\x1dkm\x80\xa6\x1a\x89\x88\xcc\xc6\xaf\ +\xfc |\x99\xc2P\xde\x16\xb5\x0bz\xd2\xaeF\xe7Z\ +k\x7f\xa2\xe4+\x22\xb2[\xc9\xea\xf6\xf2|\xde\xbeU\ +!Q\x02\x9e\xb1\xb6\x96\xc6\xe4\xaeF\xaf$\x9ajt\ +\xe8\x14'\x97\x88\x88LL\xbeq\xf1\xf2-\xe0\x9a\x9e\ +\xfe\xc1\xfb\x14\x96\xf2\xb7\xe8]\xd0\x99\xa6\xf4\xb1\xd6\xda\ +\x0e`\x7f4\xe6+\x222S\x9d\xcf8\xb4\xb6\xfd\xda\ +\x1f^g5\xe6\xab\x04\x9dH\xbe\ +\xba{\x13\x11\x99\xda\x841_\xe0\xe3q\xf2MN\xe1\ +\x14U\xc0S\xca\xb8\x8e\xe9\x0aB{\xd4a\xcf4\x07\ +\x1f|`+\xf0E\xe0(\xd4\xed,\x222\x13\xdb\x81\ +u\xc6\x98\x0b\xbaz\x07\x1e\xc84\xa5w>G#J\ +\xc03K\xc4M\xe9\xe3\xad\xb5\x03\xc0r\x85[Dd\ +\xc6n\xf4\x83\xf0\x85\x0aC\xe5*z\x17t\xbb\xe7&\ +\xbb\x9d_g\xad\xfd\xad\x92\xaf\x88\xc8nMX\xe1*\ +\x9f\xcf\x9f\xad\x90(\x01\xcfXks\x83Y\xef\x07\xf1\ +T\xa3\xb3\x80\xf7\x00O\x9b\xe2\xe4\x12\x11\x91\x89\xc97\ +.^\xbe\x02\x5c\xdd\xd3\xbf\xe1\xff\x14\x96\xca\xb6 ]\ +\xd0\x99\xa6\xf4q\xd6\xda\x1b\x81\xa7\xa01_\x11\x91\x99\ +\xc8\x03]55\xa9\x17tt\xf7\xef\xd0\xaeFJ\xc0\ +sI\xbe\xed\xd6\xda\x1b\x80\x15\x0a\xaf\x88\xc8\x8c}\xd7\ +\x0f\xc2s\x14\x86\xea1\xef.\xe8\xd6\xe6\x86\xe4\x98\xef\ +\x1b\xac\xb5W'\x92\xaf\xee\xdeDD\xa6\x96l\x1f/\ +\x03>\x94(d\xd4k\xa8\x0ax\xd7<\xd71~\x10\ +\xc6c\xbe/(\x9cD\xcfUXEDv\x9b|\x0d\ +\xd1\xaeF\xbf\x02\xde\xe5\x07\xe1H\xb2M\x15%\xe0\x19\ +\xc94\xa5\x9fg\xad\xed\x07V\xa11_\x11\x91\x99\xba\ +\xd9\x0f\xc2S'\x174R\x1d\xe6\xd4\x05\xed%6}\ +\xf6\x5c\xe7U\xd6\xda[\x0a\xc9\xb7hI]D\xa4B\ ++\xdf\xd8\xd5\xc0\x99\xf1\x0b%\xdf\xea\xb3l.\xc97\ +\xd1\xed|6p1p`\xe2\xe4R\x02\x16\x11\x99:\ +\xf9\xc6\xed\xe3\x17,\x5c\xd9\x1d\x84\x8f),\xd5kN\ +\xc9\xf2\xb4\xb5\x9e\xd9\xb2u\xdb\x09\xd6\xda\xeb\x80C\x94\ +xEDfd\x14\xe8\xb2\xd6\xbe\xac\xbbo\xf0qu\ +;+\x01\xcfZ\xa6)\xdd\x5c\xd8Rp\x99B(\x22\ +2c?\xf1\x83\xf0\xd5\x0a\x83\xc0\x0c\xc7\x803M\xce\ +\xe4\xa9F\xdfH$_\xdd\xbd\x89\x88L-\xd9>^\ +j\xad\xbdH!\x91\x19'\xe0\xd6\xe6\x06\xd3\xd5\xbbs\ +\xcc\xf7t\xe0B\xe0\x88\xf9V\xd1\x22\x22U\x90|\x0d\ +0\x06\xfc\x00\xb8\xaa\xbbop8\xb9v\x82T\xb7\x19\ +\x9f\x08\x9e\xeb\x1c\x0b\xf4\x02k\xd0\x98\xaf\x88\xc8L\xad\ +\xf7\x83pm\x5c\xd0hyI\x99q\x05\x0c\x90q\x9d\ +3\x80\xeeB\xf2U\xd5+\x22\xb2\xeb\xca7\xf6%\xe0\ +\xc5\xf1\x0b%_I\xda\xedCT\x9e\xeb\xbc\xc9\xc2;\ +\x80\xbd\x13'\x97\x12\xb0\x88\xc8\xd4\xc97n\x1f\xaf\xb4\ +\xd6^\xdd\xdd7\xb8Ua\x91\xb9V\xc0o\x07NH\ +\xdc\xd5)\xf9\x8a\x88L-^^r\x1d\xf0\xe1\xee\xbe\ +\xc1\xbb\x93\x0b\x17\x89\xcc\xaa\x02\x06\x1eQ\xe2\x15\x11\x99\ +\xb1\xeb\xfd <#~\xa1y\xbe2\xab\x0ax\xd2N\ +\x1c;\x14&\x11\x91iM\xd8\xd5\xc8Z\xfb6\x85D\ +fb\xda\xaa\xd6s\x9d\x03\x81W\x13-5y\x98B\ +%\x222e\xf2\x8d\xdb\xd1k\x8d1\x1f\xe9\xea\x1d\xb8\ +Wa\x91\x99\xd8U\x17\xf4\x91\xc0\xe7\xa78\xc9DD\ +db\x11\xd3\xe9\x07\xe1y\x00m-\x8d\xa6\xa3\xbbO\ +\xdd\xce\xb2[\xbbz\x08k\x0c=x%\x22\xb2;_\ +\xdb\xb2u\xeb)\xf1\x0b%_\x99s\x02\x8e\xc7\x7f\x8d\ +1\x0f\x03y\x85HDd\x82d\x82\xfd\xac\x85O\x0d\ +\xde\xfe\xfbQ\x80\xd6\x89\xcf\xcf\x88\xec\xd2\x94'\x8b\xe7\ +:O\x07^\x07|\x9a9\xee\x19,\x22R\xc1v\x00\ +\xeb\x8c1\xe7w\xf5\x0e\xfcS+\x5cI1\x13\xf0g\ +\x81w+<\x22\x22S\xba\xde\x0f\xc2\x17+\x0c2\x1f\ +\xa9Y~\x5cD\xa4\x1a%\xab\xdb+\xf2\xd6\x9e\xa7\x90\ +\xc8B%\xe0Q\x85FDdg\xf2\x8d{\x0b\xbf\x0a\ +\x5c\xd3\xd37\xf8O\x85E\x16*\x01\xeb\xe1+\x11\x91\ +\x88)$\xe1\x8eT*\xf5v?\x08\xff\xda\xa6-\x05\ +\xa5\x08\xa6\x9b\x07<\xa6\xd0\x88\x88\xec\xf4]?\x08\xcf\ +\x8d_t\xe8\x81+)v\x05\xec\xb9\xce\x9e\x9e\xeb\x5c\ +\x0e\xbc^\xa1\x11\x91*6yy\xc9\x0f\xc7/\xda=\ +W\xd5\xaf\x14?\x01\x1b\xc3J\xe0\x8d@\xdd\xa4\x13P\ +D\xa4\x9a\x92o\xbc\xab\xd1u\xc6\x98\xcb\xba\xfb\x06\xef\ +mk\x89\xba\x9d\xd7\xfb\x81\xdaF)\x8ae\x93N;\ +\x0b<\x08\xec\x83V\xbf\x12\x91\xea\x94\x5c^\xf2\x15\xa0\ +\xe5%e\x11*`\x11\x91*\xaf|cWYk_\ +\x15\xbfP\xf2\x15%`\x11\x91\x85K\xbeq\xe5\xfb\x05\ +\xe0\xaa\xee\xbe\xc1G\x14\x16Q\x02\x16\x11YX\x86h\ +\xfd\x83[\x97/_~\x91\x1f\x84wg\xb4\xae\xb3,\ +\xb0e\x0a\x81\x88\x08\x00?\xf3\x83\xf0\xac\xf8EW\xef\ +\x80\xba\x9dE\x15\xb0\x88\xc8\x02H&\xd8K-\xbc7\ +~\xa1\xeaW\x94\x80ED\x16.\xf9\x1a\xa2E\x87~\ +d\x8c\xb9\xb2;\x08\xb3\x9e\xeb\x18U\xbf\xb2X\xd4\x05\ +-\x22\xd5(\xaep\xbb\xe2n\xe7\xd6\xe6\xb4\xe9\xecQ\ +\xe2\x15U\xc0\x22\x22\x0bU\xf9\xc6\xbe\x98\xcf\xe7_\x12\ +\xbfP\xf2\x15%`\x11\x91\x85K\xbeq\xe5{\x95\x85\ +\xcb{\xfa7l\x89\xaa_m\xae J\xc0\x22\x22\x0b\ +%^^\xf2f\xe0C\xdd\x89\xa9F\x9d\xda\x5cA\x96\ +\x80\xc6\x80E\xa4\x9a\xfc&^^\x12\xf4\xb0\x95\xa8\x02\ +\x16\x11Y(\x93w5z\xa7B\x22\xaa\x80ED\x16\ +>\xf9\x9a\xc2\xff\xbfk\xad\xbd\xa6\xbbopDa\x91\ +RN\xc0\xaa\x8aE\xa4\x12$\xa7\x1a\x9d\x0b\xd0\xd6\xd2\ +`:\xba5\xde+\xa5!5\xe9t5\xc0\x1e\x89\xbb\ +G\x11\x91r\xf65\xe0\x94\xf8\x85\x92\xaf\x94l\x02\xce\ +\xe7\xedf\xe0\xcd@\x07\xda\x0fXD\xcaO2\xc1~\ +\xd6Z{\x89\x1f\x84\xa3\x00'g\x9a\xd4\xa6II\xa9\ +\x89\xff\xd1\xd6\xd2h\xbaz\x07\xc6\xb2\xb9\x91?\xd7\xd7\ +\xd5\x1e\x01d\x14\x1e\x11)3\xf1T\xa3u\xc6\x98\x0b\ +\xfd \xdc\xe4\xb9\x8e\xc9\xe6F\xb8whX\xd1\x91\x92\ +\xb2s\x0cx\xd2\x86\xd3\xab\x15\x1a\x11)S\xeb\xfc \ +\xdc\xb9\xc2\x95\x1f\x84\xeav\x96\x92\xa4\x07\xaeD\xa4\xdc\ +M\xe8v\xce\xe7\xf3oPH\xa4\x9c\x13\xb0*`\x11\ +)\x97\xe4\x1b\x8f\xed~\x1d\xb8\xa6\xa7\x7f\xc3\x03\x0a\x8b\ +\x94s\x02\x1e\x026+<\x22R\xe2\xe2\xe4\xdb\xb1b\ +\xf9\xf2\xb7\xfaA\xf8\xb7\xb6\x16\xad\xeb,\xe5u\xf2>\ +\x89\xe7:\xa7\x007\x90xPKD\xa4\x04}\xdb\x0f\ +\xc2\xf3\x15\x06)\xfb\x0a8^\x9c\xdc\xc0\xfd\x0a\x8f\x88\ +\x94\xa0\xe4\x98\xef\xe5\xc0\xff\x8b_hW#)\xeb\x04\ +\x1c/NnaM\xa2\xfa\xd5S\x84\x22R*\xc97\ +\x9ej\xf4K\xe03~\x10\xde\xe3\xb9\x8ev5\x92\xb2\ +\xb3\xab\xb5\xa0G\x89\xc6\x81\xd7\xa0E9D\xa44\xc4\ +m\xd1z?\x08\xcf\x88?\xa8\xa9FR\x11\x15pl\ +\xc7\xe8\xe8\xed@\x1a\x18P\x98D\xa4\x04*\xdf\xd8\x95\ +\xd6\xda\xb3\x14\x12\xa9\xc8\x04\x9ciJ\x9b\xbe\xf0\xf6Q\ +?\x08\xffX\xa8\x84'_\x00\x22\x22\x8b\x99|\xe3\xca\ +\xf7\x8b\xd6ruw\xdf\xe0\xc3\x0a\x8bTd\x02\x9e\xb4\ +I\xf5\x1f\x88\xba\xa2\xd5\x0d-\x22K\xc1\x00c@\xc7\ +\xb2e5\xef\xee\xee\x0b\xefn-<,*R\xee'\ +\xf6ny\xae\xf3\xaf\xc0U\x0a\x97\x88,\x91\x1f\xf8A\ +\xf8:\x85A*\xc9\xb2\x19~\x9d\x16\xe5\x10\x91\xc5\x94\ +\xecv\xbe\x0c\xb8R!\x91J3\xd3\xb5\xa0\xf7\x9ct\ +a\x88\x88,t\xf2\x1d\x05~l\xad\xfd\x9c\x1f\x84\xd9\ +\xf6\x96Fu;K\xd5V\xc0\xf9B\xc2\xd6E \x22\ +\x0b)nc|?\x08_\x03\xd1\x83\xa1\xeb'\xee\xd8\ +&R5\x15\xf0\xb5D\xfb\x03oS\x15,\x22\x0bX\ +\xf9\xc6>?66\xf6\xd2\xf8\xc5\xa4\x07CE*\xc2\ +n\xd7ynmn0]\xbd\x036\x9b\x1b\x19\xae\xaf\ +\xab\xcd\x02\xcf\x01\x0eT\xe8D\xa4\xc8\xc97\xae|\xaf\ +\x06>\xd7\xd3\xbf\xe1>\x85E\xaa:\x01\x0f\x0do\x22\ +\xd3\xe4\x98\xa1\xe1\x11\xb2\xb9\x91;\xea\xebj\x01N$\ +Z!KD\xa4\x18\xe2\xe5%;jjj\xde\xd2\xd5\ +;p_ks\x83\x19\x1a\xde\xa4\xc8HE\x9f\xf4\xb3\ +\x96iJ\x9fb\xad]\xa7\xf0\x89H\x11\xfd\xdc\x0f\xc2\ +3\x15\x06\xa9\x16\xa99}S*\xd5a\x8cy\x01\xe3\ +;&i|FDf+\xd9n\x5cf\xad}\x97B\ +\x22\xd5d\xd6{\xfdz\xaec\xbaz\x07\xf2C\xc3\x9b\ +\xee\xa9\xaf\xab\xdd\x0a\x1c\xce\xf8\x98\xb0EOI\x8b\xc8\ +\xcc\x92\xaf)\xfc\xff{\xc0%\xdd}\x83\xc3k3\xae\ +\xb9w(\xa7\xe8HU\x98w\xb2\xf4\x5c\xe7<\xe0+\ +\xc0\x0a\x85SDf\xa9\xc3\x0f\xc2v\x80\xb6\xe6\x06\xd3\ +\xa1\xed\x04E\x09xv2M\xe9fkm\x17Q\x97\ +\xb6\xaa`\x11\x99\x89\xaf\x8e\x8d\x8d\xbd\xb3w\xe0\xb6\xed\ +\x0a\x85T\xa3\xd4|\xbe9\xde\x04\xbb\xabw\xa0\x078\ +\x07\xf8\xab\x92\xaf\x88L#Y\xdd^\x01\xfcO\x9c|\ +\xdb\xb4\xca\x95T\xa1\x9a\xf9|s67Bo_\xab\x90\x88\xec^\xcdb\xfd\xa2\xa8;\ +:\xb4C\xb9\x91l}]\xed?\x81#\x80\x83t\x08\ +D\xca>\xf9\xc6=i_\x06\xae\xe8\xee\x1bT_\xb3\ +H)%\xe0\x8d\xd9\x1c\xf1\xb2s\xd9\xdc\xc8m\xf5u\ +\xb5c@\x0b\xb0J\x87A\xa4l\x19 \x0ft._\ +\xbe\xec\xf5\x9d=\xfd\x0f\xc4\xcb\xd3\x8a\xc8\xee/\x9e%\ +\x93iJ\xb7Zk;\xa6\xb8\x93\x16\x91\xf2\xf1}?\ +\x08_\xaf0\x88\xccNj)~i[K\x83\x01\xa8\ +\xa9\xa9\xe9\x06^\x0a\x0c\xa3)J\x22\xe5\x22y\x9d^\ +\x06\xfc\xe7\xe4k[Dv\xaff)~\xe9\xc6\xec&\ +\xda[\x1a\xcd\xfa\xee\xbe|67\xf2\x97\xfa\xba\xda<\ +\xd1\x98\xf0\xfe\xaa\x86EJ>\xf9\xc6S\x8d\xae\x03>\ +\xe2\x07\xe1pks\xbc\xab\x91\xba\x9eEf\xaad\x92\ +\x5c\xa6)\xfd\x1ak\xed\x0f\x94xE\xca\xc2-~\x10\ +\x9eR\xb8vMW\xef\x80z\xafDf)U*\x7f\ +HW\xef\xc0\x8f\x00\x0f\xd8\x9a\xb8\xd3\x16\x91\xd2\xa9|\ +c\xd7\x8c\x8d\x8d\xbd\xd3\xdd78\xac\xb0\x88T\x16%\x92\ +\x19\xf0\x5c\xe7\x0dD\xeb\xec\xaeV4d\x11u\xfaA\ +\xd8\x06\xd0\xd6\xd2h:\xba\xfb\xd4\x0b#\xa2\x04\x5c\x95\ +I\xb8\x19\xe8V\x15,\x8b\xe4\xeb[\xb7m\xfb\x97\xf0\ +\xb6;G\x15\x0a\x91\xca\xa41\xe0\xddhmn0\x00\ +~4E\xe9,\xe0o\x85\xe4\xabjD\x8a)y>\ +}\x16\xf8d\x9c|\xe3sPD*\x8b\xc6\x80wc\ +hx\x13\xf12\x7f\xd9\xdc\xc8]\xf5u\xb5\x068\x06\ +\xd8W\xd5\xb0\x14Q<\xd5\xe8Fc\xcc\xc5~\x10n\ +\x8aw\xef\xd2\x12\x93\x22\x95{\xd1\xcb,e\x9a\xd2/\ +\xb5\xd6\xfeR\x91\x90\x22\xbb\xc1\x0f\xc2\x17)\x0c\x22\xd5\ +A]\xd0s\xb0c\xc7\x8e\xdf\x12-[\xf9H\xa2\x0a\ +\x16\x99\xad\x09\xdd\xce\xf9|\xfe\x5c\x85D\xa4z\xa8\x0b\ +z\x96\xda\x9a\x1bLw\xdf`>\x9b\x1b\x19\xaa\xaf\xab\ +}\x088\x1c8(\xd1\xa0\xaaWAf\x9a|\xe3s\ +\xe5\xab\xc0\x15\xdd}\x839\x85ED\x09X\xa6\xb1q\ +x\x13m-\x0dfcv\x13\xd9\xdc\xc8\x86\xc2V\x86\ +\xad\xc0J%_\x99\x85\xf8A\xbe\xae\xd5\xabV\x9d\xb5\ +\xde\x0f\xfe\xd9\xd6\xdc`6j\xbcW\xa4\xaa\x1a\x01\x99\ +'\xcfu2@\xa7\xaa`\x99\xa5\xef\xf8A\xa8ng\ +\x91*\xa51\xe0yhm\x8evQ\xda\xb6}{\x0f\ +\xf0r \x8b\xa6(\xc9\xf4\x92\xe7\xc5e\xd6\xda\x0f\xc7\ +/\xda=W7m\x22UF]\xd0\xf304\xbc\x89\ +\xd6\xe6\xb4\xe9\xed\xbf-\x9f\xcd\x8d\xfc\xb9\xbe\xae\xd6\x02\ +G\x02\xfb\xab\x1a\x96)\x92o<\xd5\xe8W\xc0\x7fu\ +\xf7\x0d\x0e\xc7S\x8d6f5\xfc+Rm\x94\x1c\x8a\ +\xccs\x9dW\x01?V$d\x1a7\xfbAx*h\ +yI\x91j\xa7.\xe8b\xdf\xd1\x98\xd4O\x01\x0fx\ +\x22Q\xf9HuW\xbe\xb1\xab\x80W\xc6/\x94|E\ +\xaa\x9b\xba\xa0\x8b\xa8\xad\xa5\xd1t\xf6\xf4\xdbln$\ +[_W{?p\x14\xe3\xbb(Iu&\xdf\xb8\x97\ +\xe9\x8b\xc0\x15~\x10\xfe]a\x11\x11%\xe0\x22\xdb\x98\ +\xcd\xe1\xb9\x8e\xc9\xe6F\xc8\xe6Fn\xaf\xaf\xab\x1d\x03\ +\x1a\x81=\x14\x9d\xaad\x80Q\xa0\xd3\x18s\xbe\x1f\x84\ +\xff\x88\x975\x15\x11\xd1\x18\xf0\x02\xf3\x5c\xa7\x1d\xb8U\ +\x91\xa8Z?\xf2\x83\xf0,\x85AD&\xd3\x18\xf0\x02\ +iki4\x00[\xb6n\xf5-\xbc\x04\x88\xcb\x1e\x8d\ +\xfbU\xb6\x09S\x8d\x80\xf7\xc4/2Mi\xdd\xf0\x8a\ +\xc8N\xea\x82^ \x1b\xb39Z\x9b\xd2&\x08o\xcf\ +gs#w\xd7\xd7\xd5\x8e\x12-[y@\xa2\xa1V\ +\x83\x5cy\xc9\xd7\x00cDO\xc2\x7f\xdc\x0f\xc2\xe1\xb5\ +\x99&s\xef\xd0\xb0v5\x12\x91\x09\x94\x00\x16\x91\xe7\ +:\xaf\x07\xbe\x05,S4*\xda\xad~\x10\x9e\x0c\xd1\ +^\xbe\x9d=\xfd\xea\xf5\x10\x91'Q\x17\xf4\x22\xf2\x83\ +\xf0{&\xdaEi{\xa2b\x92\xca\xa8|c_\xb4\ +\xd6\x9e\x1e\xbfP\xf2\x15\x11%\xe0%\xd6\xda\xdc`\x00\ +\xba\x82\xb0\x07x3\xf0\x17\xd4\x03Q)\xc97>\x8e\ +W\x01\x97w\xf7\x0dn\x81h\xe7,\x85GD\xa6\xa3\ +1\xe0E\x12-[\x19-;\x98\xcd\x8d\xdcY_W\ +k\x80\xe7\x03k\x14\x9d\xb2\x16//\xb9\xde\x18\xf36\ +?\x08\xff\x1eO5\xd2\xceF\x22\xb2\xbb\xc6C\x96\x88\ +\xe7:\xa7\x017(\x12e\xef\x17~\x10\xbe\x5ca\x10\ +\x91\xd9P\x17\xf4\x12\xda\xbe}\xc7-\xc0\xa9\xc0?\x0a\ +\x1f\xd2xay\x98\xbc\xab\xd1;\x14\x12\x11\x99-u\ +A/\x91LS\xda\xf4\x0el\xc8gs#\xf7\xd4\xd7\ +\xd5n\x05\x0ec|\xd9JMQ*\xed\xe4\x1bo9\ +\xf9]\xe0\xd3\xdd}\x83\xc3\x0a\x8b\x88\xcc\x96\x1a\xf9\x12\ +\xe1\xb9\xce\xf9D\xeb\x05\xafR4\xcaB\xa7\x1f\x84m\ +\xa0]\x8dDD\x09\xb8\x12\x92p3\xe0'*,\x1d\ +\x9f\xd2\xf4\xb5'\x9e\xd8\xf2\xf6\x0dw\xfca\x87B!\ +\x22s\xa51\xe0\x12\x10/[\xe9GS\x94^\x07\xfc\ +M\xc9\xb7\xa4$\xab\xdb\xcfZ\xcb%q\xf2=9\xd3\ +\xa4\xe3$\x22s\xa21\xe0\x12\xb01\x9b\xa3\xdds\xcd\ +\xc6l\x8eln\xe4\xae\xc2\x14\xa5\xe7\x00\xfb(:%\ +\xc1\x10-\x9er\x13pQw_\x98k\xf7\x1a\xcd\xc6\ +l\x8e{\x874\xfc+\x22soX\xa4\x04y\xaes\ +:\xf0+E\xa2d\xfc\xd6\x0f\xc2\x97(\x0c\x22R,\ +\xea\x82.Q\xd6\xda\xeb\x89\x96\xad|8\xfe\x90\xa2\xb2\ +\xb8\x87 \xf1\xef+\xf2\xf9\xfc\x1b\x14\x12\x11)&u\ +A\x97\xa0\xd6\xe6\x06\xe3\x07a>\x9b\x1b\x19\xaa\xaf\xab\ +}\x84h\x17\xa5\x83\x12\x89A=\x17\x0b\x9f|\xe3\x18\ +\x7f\x1d\xb8\xac\xbbo0\xa7\xb0\x88\x88\x12p\x85\x1b\x1a\ +\xdeD\xa6\xc91C\xc3#ds#\x83\xf5u\xb5\xdb\ +\x80v`\xa5\x92\xef\xa2\x88c\xdc\xb9f\xcd\x1e\xaf\xbe\ +\xa5\xb3\xf7\xff\xdaZ\x1a\xcc\xc6\xac\x96\x96\x14\x91\xe27\ +4R\xe22Mi\xcfZ\xdb\xa5*x\xd1\x5c\xeb\x07\ +\xe1y\x0a\x83\x88,\x14\x8d\x01\x97\xb8x\x8a\xd2\xf2\xe5\ +\xcb{\x803\x81\x8d\x8c\xcf\x13\x96\xe2\x99\xbc\xbc\xe4\x7f\ +\xef<\x06\xda\xd5HD\x16\x80\xba\xa0K\xdc\xc6l\x8e\ +LS\xdatt\xf7\xd9ln\xe4O\xf5u\xb5\x00G\ +\x01\xfb\xa9\x1a.j\xf2\x8dw5\xfa\xb51\xe6\x03~\ +\x10\x0e{\xaec\xb2\xb9\x11\xedj$\x22\x0bB\x0dw\ +\x19\xf2\x5c\xe7L\xe0\xa7\x8aD\xd1\xad\xf3\x83\xf0\x05\x0a\ +\x83\x88,\x06uA\x97\xa1G\x1f{\xec:c\xf0\x80\ +\xc7\x13\x15\x9c\xcc\xad\xf2\x8d]i\xad}\x8dB\x22\x22\ +\x8bE]\xd0e\xa6\xad\xa5\xd1\xf4\x0f\xfe\xce\x0e\x0d\x8f\ +d\xeb\xebj\xef\x07\x8ed|\x8a\x92\xcc.\xf9\xc6=\ +@_\x04>\xd7\xdd78\xa2\xb0\x88\x88\x12\xb0Li\ +c6G{Kc\xbcl\xe5\xed\xf5u\xb5c@\x13\ +\xb0Z\xd1\x99\x15\x03\xe4\x81\x0ek\xedy\xdd}\x83\xff\ +\xc84\xa5\xcd\x90\xc6{Ed\x11\x1b!)s\x99\xa6\ +t\x9b\xb5v\xbd\x221k?\xf4\x83\xf0\xb5\x0a\x83\x88\ +,\x05\x8d\x01\x97w\xe25\x00\xa3\xa3c\xdd\xc0\xe9@\ +\xbcZ\x93\xc6\x84\xa7\x96\x8c\xcb\xa5\x16\xde\xa7\x90\x88\xc8\ +RQ\x17t\x19\x8bV\xccJ\x9b\xee\xbe\xc1|67\ +rw\xa1;\xfa\x08\xe0\x80D\xc2Q/\xc7\xc4X\x8c\ +\x02?5\xc6|\xd4\x0f\xc2\xe1\xb6Bw\xbe\x88\xc8b\ +S\xe3\x5cED\xa2L\x00\x00\x03 IDATa\ +<\xd7y\x1d\xf0\x1d\xd4\xbb1\x9d[\xfd <9\xee\ +A\xe8\xea\x1dPo\x81\x88,\x095\xd2\x15\xc6\x0f\xc2\ +\xef\x03\x19`[\xa2\xf2\xab\xf6\xca7\xf6\xf9\xb1\xb1\xfc\ +\xcb\xe2\x17J\xbe\x22\xa2\x04,E\xd1ZX2\xd1\x0f\ +\xc2\x1e\xe0\xad\xc0\x9f\xa9\xee^\x8ed\x17\xfc\xd5\xc0\x15\ +\xbd\x03\x1b\x1e/\xf4\x14\xa8\xf7GD\x96\x94\xc6\x80+\ +H<&<4\xbc\x89ln\xe4\x8e\xc2\xb2\x95'\x02\ +k\xaa4$\xf1\xf2\x92\xeb\x81\xb7\xfaA\xf8\xf7\xd6\xe6\ +\x868>:aDd\xc9\x1b(\xa9`\x9e\xeb\x9c\x0a\ +\xdcT\xc5!\xf8\xb9\x1f\x84g\xeaL\x10\x91R\xa3.\ +\xe8\xca\xb7\xde\x18s*p\x7f\xe1u\xa5\x8f{N\xde\ +\xd5\xe8]:\x05D\xa4\x14\xa9\x0b\xba\xb2\xab_\xe3\x07\ +a~hx\xd3=\xf5u\xb5[\x81\xc3\x81\x03\x13\x89\ +\xaa\xd2z@\xe2\xf7d\x81\xef\x01\x97t\xf7\x0d\x0e\xb7\ +{\x9aj$\x22\xa5G]\xd0\xd5\x95\x90\xcf\x03\xbe\x02\ +\xac\xa8\xf0\xb7\xda\xe1\x07a;@[K\x83\xe9\xe8\xee\ +\xd7\xd3\xce\x22\xa2\x04,K\x9e\x84\x9b\x81.\xa2\xe1\x87\ +J\xac\x82\xbf266\xf6\xaf\xbd\x03\xb7m\xd7\xd1\x16\ +\x91R\xa61\xe0\xeaI\xbc\xc9)Jg\x03\x7f\xad\x90\ +\xe4\x9b\xacn\xaf\x00>\x1d'\xdf\xf6\x96F\xdd`\x8a\ +H\xc9\xd2\x18p\x95\xc8\xe6Fhkn0\x1b\xa3)\ +8\x7f\xa8\xaf\xab5\xc0\xb1\xc0\xdee\x98p\x93\x89\xd5\ +\x00\xdb\x81\x9bS\xa9\xd4\xbfw\xf5\x0el\x8a\xa7bi\ +\xdcWDJ\x99*\x84\xea\xae\x8a_\x02\xfc\xbaL\xab\ +\xde\xb8\xf2M\x01\xbf\xf1\x83\xf0t\x1dQ\x11)'\xcb\ +\x14\x82\xea\xb5u\xdb\xb6\x1bW\xafZ\xd5n\xad\xfd\x09\ +\xe3\x1b8LWi\x96R\xd5\xfb\x1bk\xed\xfb1f\ +\x8d\x81\xe5\x8cO\xb1\x12\x11Q\x05,\xa5\xad\xb5\xb9\xc1\ +t\xf6DO\x07{\xaes!p$\xb0\xb9\x90\xec\xce\ +\x01\x9e\xb6\x84\x09y\xaa\xdf\xf5\x10\xf0\x0d`\x15\xf0k\ +?\x08\xaf\xd7Q\x14\x11%`)Kk=\xd7\xdc\xea\ +\x07O\x9a\xa2\xe3\xb9\xce5\xc0\xeb\x0bI/\x0f\x1c\x0c\ +\xec\xb5\xc8\x7f\xde\xe3\xc0}D]\xcc\xfb\x02\xbf\xf5\x83\ +\xf0\x9c\xa9n DD\x94\x80\xa5\x22x\xae\xb3'\xb0\ +\x12\xc8?\xfa\xd8\xe6\xc7\xf6\xdek\xcd5\xc0\xbf\xcc\xa2\ +Z-\x86\x1f\xe7\xf3\xf9\xb3\x81=R\xa9T\x0d\xb0\xc3\ +\x0f\xc2\xc7ttDD\x09X\xaaF\xc6u\x9ek!\ +\xcd\xf8\x16\x87[\x89\xba\xa8\xaf,\xd29\xf4>\xe0n\ +`\xcf\xc2\xeb\x95\xc0\x9d~\x10\x0e*\xfa\x22\xa2\x04,\ +UiW]\xbd\x9e\xeb|\x1d\xa8\x07\x9e\x98\xe3\x8f_\ +\x05\xfc\xdf\xf2\xe5\xcb.\xb8\xb5+\xd8\xf2\xa4\xc4\xdf\x94\ +6\xda\xb3WDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDDDDDDDDDD\ +DDDDDDDd\xd1\xfd\x7f=\xc4\xd2\xf1\x0a\ +\xafE\xef\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x00\xb7\ +\x00\ +\x00\x04+x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\ +\xe0\xf5\xf4p\x09b``|\x00\xc2\x1cl@\x91\xda\ ++\xfb\xa6\x02)\xb6$ow\x17\x06[\x06K\x06\xd3\ +\xbb\xbf\xef\x96\x00E8\x0b<\x22\x8b\x19\x18\xb8\x85A\ +\x98\x91a\xd6\x1c\x09\xa0 {\x89\xa7\xaf+\xfbc\x16\ +q^F\xa5\x05/_\xce\x01\x0aI\x96\xb8F\x948\ +\xe7\xe7\xe6\xa6\xe6\x9508\x17\xa5&\x96\xa4\xa6(\x94\ +g\x96d(\xb8{\xfa\x06\x847\xf2\x89300O\ +\xf6tq\x0c\xa9\xb8\xf5\xf6 ##PK\x93\xc2\xff\ +\xf5y\x1e\x0e \xe6(\x18\x05\xa3`\x00\xc0\x87\x0c\xa1\ +M\x0c\x8cb\xde\xea3A\xe7\xac\xb5\xf7\xfe\xee\xdf\xdak\xaf-\x04\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\xc0\x87$M\x00$\xee\xee\xd7\x95\x5c\xfc\x97\xd2G\xf4\ +\xfa\x9c_\x96\x07+n\xad\x0d\xd4n\xf7\xcaoK\x8d\ +\xa5\x0e\x12B\x88Z\xadvn~\xaa\xfe\xad\xa2\x112\ +N\x8f\x03\x040\xe0\x0c\x15\xc5\xca/?\xf5\xbekt\ +\xed\x99[\xa5\xa2\xd3\x01\x02\x18 H\xdd #\x8f\xf3\ +\x0d\xf09A\x9a\x00\x84\xea\x19\xd9\x9f\xea\x812\x11\xa1\ +\xbdL\x92\xb3B\x05\xdf.[\x1c\x7fkr\xdb\x18a\ +\x0dP\x01\x83\x00\x06\xd52@\x00\x03-\xb1S)\xd9\ +\xef\xc5\x08\x13\x83\xbcD\x89cB\x08%\xa4\xe8t\xfe\ +\xff4!IOZ\xfe-\x19\xa5\x91@\x00\x036\xbb\ +\xa6\xa4\xf2\xda\xe3)\xef\xbfOKP!\x03\x040`\ +\xa0\xdc\x88\x0a\x94\xa4F\xa8x@@\x83\x00\x06\xcc\x90\ +\xb3L\x05K;D\x1ah\x09\x98a\xf4I=y\xed\ +x\xc9\xfe\x05\xc7\xd0h\x02\xd8\xe5\xdbG\x95\x16RJ\ +>\xb0YI!\x84 |a\xa6\xb5\xed\x22\xf5\xe7\xfe\ +\xef\xcc\xe5J{J)\x0a\x10P\x01\xc3_\x02kK\ +g\xc6\xb4\xd8lZ\x02\x8e\xc1\x905\x08`x\x12\x8f\ +\x01\x81@\x06\x08`\x10\xbe\x00!\x0c\x02\x18\x04-@\ +0\x83\x00\x06\x9a\xb1\xe3\x94\x97\x84\x94\x8c\xcf\xa3%\xe0\ +;J\x1c\xfd\xfc\x02!\x13\xdbdi\xcbnK\xe6\x02\ +\x14\x040,P\x1e\x99/\xa4\x9aNC\x00T\xc5 \ +\x80a\xa2Vk*\x06\x9d\x0e\x9c\xdeFK\x00\x8d\xcb\ +>\xa9\xb7/\x1b/O\xd2\x12h\x0c\xcf\x01\xe3\xd2'\ +\x93\xa5*\x89\xf0\x05\x9a\xae\xac]\xe4\x04\xad\x00*`\ +\xb4\xc8\xb4\x83*\xb8\xf0\x10\x8bb\x18\xcamC\x94L\ +\xaa3L\xd6\x09=e\xcd\x04YOK\x80\x00\xc6\x97\ +\x8c~A%\xaf\xbd,RGK\x98CS\xda\xc4x\ +f\xeer\x02\x18B\x88s\x93\xb8\x0e\x8b\x8c\xbco\xd1\ +\x18\x040|\xec\xee?)m\xd1_#1Z\xe2\xd2\ +rk\xf5\xa4\x12\x9dW\xe0\x11\xde\x06b\xe2\x16\x01L\ +\x13pr\xc4\xc5\xe5\xc5\xf5\x94I\x99\xa2!OJ\xda\ +\xad\xb9\xfb\xd9\xb9\xc7u\xce{lG\x08!\xb2N\xe8\ +\x815\xed\xb9\xf0#\x90\x09`\x10\xba\x9c\xf0`\x8b\xd1\ +KU\xdb\xb5\x1d#\xcc\x18f\xdf\xf4\xa5 M\xe0\xf1\ +\xd0\xf5\xf1\x81\x9c\xaf\xe9IE#\x196v\xb2\xb5\x05\ +\xf2\xd3\x8b\x16\x02~\xbfp\xe4\x18\xf6<\x1eC\xa2\xfa\ +\xf5,\xc2\xd7\x03U\xa0\x92\x0b8n\xe1U\x5cYq\ +\x00\xbbV\xe6Gz\x9b\xf2\xc9\xf2\x14\x9d\xcd>\xee\xf5\ +\x0b\x91q\xc5*\xb82\x8f\x0bJ\x02\x18\x9c\x90l\x90\ +sJ\x0f\x96\xb6\x8eD\x85\x10b\xf4Gzj\xfb\xaf\ +\x89\xd8\x0b\xb7sB\xf2\xbd\xf2\xe2\xf5B\x8a\x11\x9f\xfd\ +\xffJl\x18sB\xcf^\xdd!\xf2\xa9gG\x05@\ +\x00\xc3^!\xa5d\xf8\xc5H\xdc'\x15\x80&\x84`\ +H\x0e\x5c\x8c\x12\xca\x0408\xb1\x98v\x22\xf9\xe2\xef\ +;\x222\xf2n\xa0\xd3\x91\xe0\xb1rd\xc0\x96\x9bn\ +\xec\x9a}\x93x\xee#\xef^\xb4\xce\xb8A\x0f\xcc\xef\ +\x22\xe3t<\x01\x0c\xc2\xb7Q\x83w\x0dL\xd9\xd6\xb7\ +\xb2\x8e+yX%\xb8\xb6\xec\xf2\xa8\x16\xfd\x87W\x7f\ +\xdf\xfd_\xd7\x03O\xf6$\x84\x09`\x18B+/)\ +\x8c\xcb\xf8\x5c\xcf]\xad\x7f]\xd7\xe6\xf7dq\x0bp\ +ak\x86\xaf\xd7^\xff\xf5?\xeb}\xfeB\xe7:\xfc\ +\xfcN\x138Wn\xb1J\xf2B\xf8\xe6\x9c\xd05\xa1\ +\xc4\x86\xcf\xff;\xc2\x17\x8eq\xa1\x91\x17\x97\x8f\xc6\xfc\ +9\xf5\xd8\x9f\xc7\xacP\xad\xe9\x5c*`\xf8\xf9\x8a\x9c\ +aep\x1cr\x1c\x82\x00\xe6\xa0\xe7 \x07Zjr\ +\xa9\x92K\x92\xdd;\x89kBL\xd7\x96g1\xf2D\ +\x00\xc3;\xe1K\xe8\x82\xe3\xd5U\xc7k\xfe\x06%\x8b\ +F\x10\xc4N\xc0=`\x9b\x8d\xadP)\xa2\xa2X\xb9\ +\xf1`\xd6T`&=\x08\xb8\xeb\xa2\xa1\xa8.\x12\xcf\ +.R\xa94\x06\x150\x5c\x14\xbcY\xd5z\xea\x9a\x02\ +YG\xa7\x01_6\xa6B\x05V\x8b\x88{Vgc\ +\xf4\x8a\x00&t9@\x01\x8eu\x8eu\x02\x18\x1c\x88\ +\x1c\x88\x80\xa1\xc6oSr\xc5`\xa98\x07\xe0|\xdc\ +\x03&|\x01\x98h\xc5`\x97Mx\xe2|E\x00{\ +Ev\x91Jv\xc3\x15\xef\xd8\x98\x1e\xe0\xca\x170\xcf\ +\xf7\x87\xea\xda\x94\x0e.9\xce\x08aKp\xc2e\xe7\ +e\xc8\x09\xb0X\xfb\xd5\xeb\xaf<\x11\xfc\xe4o\x9c#\ +\xfc-H\x13\xf8\x0c\x07\x12`\xbb\x13c\xbe\xf9\xe1\x97\ +\x0a \xaaN\xdfa\x08\xda\x98\x8a\xf7\xa9+\xbb|K\ +:\xf9y\xde\xe4\x86\xe4+\xfe\xcf]:\xfd\x0d8\xf8\ +\xe2x\xeci=\xe0\xd0s\xdc\xb9s\x9b\x14\xe5\xc5?\ +\xa6\xb3\x8cA5d\xd4\xce\xe9Pm\xa3\xed\x86}:\ +\xe6\xce-t\x12\xe0\x1e9\xc5*\xa9\xb4U\xa4\xde\xc9\ +\x17\x0b\xf4\x12\x01l\xbb\xb1\x15*e\x95\x88\xd4r\x80\ +\x000C\xd6\x12\x95\xb2\xe6rg\x9dcrN\xeam\ +J\xc7\xcbS\xf4\x0e\x01l\x9b\xd6k\xd6\x0d>\x15\xa8\ +\xd9\xea\xb4\xef5\xbaZ\x0f\xac-\xe0\xa5\xdc\x80g8\ +u\x94\x8d\x0b}\x02\xd8J\x0f|\xa0\xb4\xdf\xbd\x16\x89\ +9\xed{Mh\xad'\x1d*y)\xb6\xfb7#\x99\ +\xc8\x01x3\x84\x9f\xfa\xc6\xf6\x1d\xf7\xef\x1e\xd4\xdfq\ +\x17\xd7\xd9\x9f\xea\xc1\xb2|\x19\xa3\x93\x08`\xd3\x14+\ +%\xf3^t\xe8\xeb\xc8\xb8\x12\x05\xa8\x86m\xa4\x07u\ +-r'oY\x22\x80\xcd\xb8\xc2[\xaa\x02e\x1d\x9d\ +\xb3\xd0zV\xb5\xdevM\x81\xac\xa1g\x00\xc2\xd81\ +!\x5c\xab'Gt\xd9@\xc7\x10\xc0\x09\xfb\xadR\xf2\ +\xa5\x95\x22\xb8\xba\xad\x03g#R\xf1\x02ppE|\ +\xf7\xd7tmQ/*\xe2K\xe1\xb9\xd0Kx\xf0\xc5\ +H\xdc\x89\xe1\x9b\x12O\xbd\x82\xde\x01 \x84\x10\xd9'\ +\xcf<;<\xa8\xb2_\x8a\x93\xbe\xd7\xa2\xbfD\x98\x08\ +J\x05\xdc\xc2\x9dz\x85J-k\x179M\xd5\x0b\x80\ +j\x98\xf3\x16\x01\xec\xc7\x9d\x98\x9d\x17@\x0b\xe4\xacP\ +\xc1\xd2v\x11g\xdc\x8f\xe5\xe0\xe1\xaa\x00\xe1\x0b\ +\x00.8_\x95G\xe6\x13\xc0\x1e1\xa2\xf0?\xe5\xab\ +\xb7\x1d\xb0mX\xe3\xff\x8e\xd2Y\xec\x04\x00!\xdcT\ +RM\xf7K3{\xba2\xbb\xb6\xef$\xf9\xc1\xac<\ +[f\x1a\x8f\xab\xd5\x03]s\x85\x9a#y\xcc\x08\x80\ +\x8b\xd95$\xed\x83\x91C\xc9\x8ec\xac\xdc\x06=\xa5\ +$[\xd6s\xd4\x02\xe0\x5c\x9a\x98\xfb\xda\xe8\xda3\xb7\ +y\xb7\x88\x91\xec0\x5c\xb1\x01@\x93\xf2\xa2\xa2\xd8\xf2\ +\x11\xc5\xa1\xbbz\x06\xb6\xfc\xb4s\xdc\x9b\x0dJ\xf0\x12\ +\xbe\x00\xe0\xe0sl\xff\xca^\xc9;\xe6\xa47x\xad\ +)\x99 d\x80\xac\x8f\xf56\xb4\x02\x00?\x08\xc6\x83\ +\x05V\x7f\xe6\x8e\x81\xfb\xea\xbd\xb8l\xa5\xb7\xaa6\xab\ +;\x88\xaa\x17\x80\x7fY?$\xed\xb1s\xaew~\x0c\ +\xe1\x0b\x00\x9e?\xf7\x0e\xda|m`\xfb\xe3\x83\xf6\ +K\x00\x13\xbe\x00\xe0\xdfs\xb2\xcb\xcf\xcb\x1a\x1dM\xf8\ +\x02\x00\xe7I\x02\x98\xf0\x05\x00B\xb8Yy\x90\xf3\x07\ +\xe5\xca,sW\xb00\xbc\x01\x00\x9c\xaf=r\xbev\ +\xcdU\xc3\x80\xd0\x0eIg\x02\x00\x95\xb0\xa3B\xdf\x0f\ +\x01\xfc\xea\x90\xbfX\xf6\xdc\xd7u\xb5\x9d\xfe\x95\xf0\x05\ +\x00\x03BX\x89\x8d\x84\xb0K\x03x\xf8\xe3\xfb-\x7f\ +\xce\xf7]\xfd\xd6?s\xe4\x00\x80\x012\xf3FX\xbd\ +|e\xef\xef\xfe\xc1\x15\xc5\xa5\xa3\xab\xbc!\xb3\xde\x0a\ +l\xed\xfbf\xd4\xf2+6\x00\x80\xfb+S\x87\x9f\xcf\ +%\x9dE\xf8\x02\x00\xe7u\xeb\xb1\xa4\x22\xe1\x0b\x00\x9c\ +g\x09`\x1b(q\x8c\x9d\x02\x00\x08a\x02X\x08\xcb\ +\x86)\xa4\xd2\x0aEf^'v\x03\x00\xf0h\x08;\ +xV\xb4\xe3\x02x\xe2F\x95dY\xf1\x9b\x99\x1b\xe6\ +H\x00\x00*a;8\xab\x01\xac\xbcR\xa1\xf3\x01\xc0\ +7\xe7\xfdq\x0dz\xab\x95\xd9\xb2\x96\x00>\xcf}\xbb\ +\x95\xf6\xcc\xdf\x221KJ~\xa5=\x1b\xcf\xcc\x9d\xc6\ +^\x0f\x00\xfe+\xbe&\xa4\xe8\xc1\xe5#d\xcc\x09?\ +\xdb\x11C\xd0V\x85\xafP\xe2(\xe1\x0b\x00\x0e\x93\x91\ +'\xa5\x92\x9b\xac\xf8\xa8\x95\xa7\xcbBN\xf9\xd9\xfe\x9a\ +\x05\x9d\x99\x97\xc6\x9e\x0e\x00\xce\xa32\xf5;\xac\xf8\x9c\ +\xab\x1a\xae}\x86\x00\xb6\xe1\x0a\x8b]\x1c\x00\xfc}\x9e\ +\xfe \xe5/\xff\xeb\x94\x9fk\x7f(Y1\xf6O\xf8\ +\x02\x80{\xf8$\x174\xaf7r\xc1e:\x8b\x8d\x00\ +\x00\x95\xf0\x97\xf2'k\x99\x0a\xfa.\x80\xf3\x8aU\x92\ +U\xb3\xde\xae\xe9\xcf\xbe\x0c\x00\xf8\xb25\x1d\x22\x0dv\ +.\xd4ay\x00\xffD)Y\xdc*Ro\xc9\x87)\ +q\xec\x97\x01\xa9\xd8\xcd\x00\xc0]r\xeb\xf4T\xab>\ +k\xcc2\x95\xe2\x8b\x00\x9e-\xad\x09\xc4\x80\x0a\xccd\ +\x99I\x00p\xa7\x92\x5cYg\xd5g\xc9\xa0=\xf3\xa1\ +\xac\xffP\xab\xca}&^\x01\x807X\x90\x1b\x0f_\ +}Z{\xbc\xcfdKGL-\xad\x80\xc7\xac\xb0\xe0\ +\x86wF\x9e$|\x01\xc0C,8\xa7?\xfe\xd7V\ +q\xab\x7f\x96\xa5\x01\x1co0\xb7\xe2\x9e\xd8FOf\ +O\x05\x00B\xd8\x0d,\x0d\xe0\xb5\x97\x9b;\xf9J\x93\ +\x82\x09W\x00\x80\x16\xc9Z\xa1\x02\xde\x0c`\x0b\xc6\xf0\ +\x93\xda\x8a8\xbb\x10\x00\xa0%\xd6\xb4\x8bD\xad\xfc<\ +K\x1ev\xb6\xec\xd7p\xef\x17\x00\xbc\xcdC\x13y]\ +\xbfJ\x94T\xf2e&^\x01\x80Od\xe4\xc9\x94X\ +\xea \xb3?\xa6`\x932=\x1f]\x1f\xc0*S\x1f\ +\xce\x1e\x09\x00\xfeQ\x97\x95Yizq\x97$\x5c^\ +\x01\xdb\xb8\xc4\x17\x00\x00-\xb5\xe4D$*L\xbeM\ +k^\x00\x13\xbe\x00\x007\xab(6ub\xaf{\x87\ +\xa0\xb9\xef\x0b\x00\xfe\x95\x91'\xb3k\xf4\x80\x9b\x7f\x82\ +9\x01L\xf5\x0b\x000Y\xd98\x19\xcf:mn\x08\ +goQ\xa6\x15z\xee\xac\x80\xa9|\x01\x00B\x885\ +y\xd2\xd4a\xe2\xb2\x93\x11\xd3\xb6\xcf\xcb\xea\x01\x00\xb0\ +\x81\xf1\x01\xcc\xf03\x00\xc0B\xb9u\xe6\xdf\x0b\x9e~\ +\xc0\xf8\xa1hC\x038g\x85jmj\x0b0\xf4\x0c\ +\x008OI\xae\x8c\x0b%\x17\x98\xf6\x01\x15\xc5j\xc1\ +\xbb\xc6\x0fE\x1b\x1a\xc0\xa5\xed\x225\xa6\xb74!\x0c\ +\x008\xcf\x7fg\xe4~\xdbm\xdf\x99{\xc0\x00\x00\xd7\ +{HJ\xd7\xdd\xfe4.\x80\xcd\xbe\xf7K\xe5\x0b\x00\ +h$'\xa4\xd2\x16\x9a\xb6}\x83s\xce\x90\x00\xbew\ +\xb7\xc9\x8bV\x13\xbe\x00\x80&P\x99\xb9\xf7\x09%\x8e\ +\xf9\xa6\x02~\xf6\x1b\xe6=\x87\xb5v\x94\xce09\x00\ +\xa0\xc9ft\xd1o\xf4G\x00W\x14+3\x87\x9f\x97\ +\xff\x91\xfb\xd4\x00\x80\xa6\xfb\xe4\xb0\x89\x1b\xaf(V\x13\ +7\xaa\xa0c*`\xd3d\xe4\xc9%w\xca\x18\xbb\x13\ +\x00\xa0\xa9\x8a\xee\x921=z\x8bi\xcf\x06O\x1e.\ +\x0c\xc9%\xaaK\x00\x80\xe7D\xc6\xa4\xc5[\xc5Z\x0d\ +6c\xdb\xf37\xec6d^R\x8b\x03xb\xa5\x92\ +\xacz\x05\x00p\xaa\x06\xd9p\xbd\x19\xdb-\xad\x7f/\ +&*\x8aU\xc1\x86\xc4& \xb7\xf8\x8f\xeb\xabE\x92\ +\xa9-\xc7\xccg\x00@\x02\xa2\xa3\xb3_0s\xfbu\ +'E\xb2=\x01\xfc\x89y\xc3\xd7c\xaa\xf5dv\x1d\ +\x00\x80\x93\x8b\xb9\xb2\xe0\xda\xb1\xb6\x04p\xeb+D\x83\ +Y?j\xcde%\xbfg\xaf\x01\x008YN\xfd\xe8\ +\x15\x96\x07\xf0\xe5=\xf3e\xa4n\xedD\xb3~\x94\x12\ +\xea\x0e\xba\x16\x00\xe0d+S#\xf5\xa2\xbcx}K\ +\xff\xbeE\xcf2}\xf4\xf8\xf8\xb8\x10\xf5\xa6\xfd\xa8\xa9\ +\xd7\xe87.\xa6o\x01\x00N'\xc5\x08K+`S\ +e\xe4\xc9\xc5}\xcc[Y\x0b\x00\xe03&O\xea\xfd\ +aC\xcb\xde\x15\xccs\xc0\x00\x00\xcf\x1b't\xd3\x9e\ +\xdc\xa9Z)\xdc\x1f\xc0I\xf1\xe4)\xec&\x00\x00\xa3\ +]\x9e&L[\xb7\xa2|R\xcbFm\x9b\x1d\xc0\xda\ +\xda\x92\x09\xa6\xfc\x02%66\x8c\xceZ\xc2n\x02\x00\ +0\xdaS]eL*\xf9\x8c)\x1bo\xe1\xa2T\xcd\ +\x0e\xe0\xb8\x16_f\xca\x0f\xc8\xcc\x1b\xc1.\x02\x000\ +\x8b\xca\xd4\xa7OM6g(z\xec\x1a\xd5\xec\xf5+\ +\x1c3\x04\xfd\xa3j\xc5\xfdh\x00\x80\xa9\x16\xd7GL\ +Y\xc3\xa2X+y\xc9\xb5\x01\xdc\xe62\xc1\xba\xd2\x00\ +\x00W\xca:\x99\x9b\xe9\xda\x00\x9e%%\x01\x0c\x000\ +\x97\x12G\xcd\xd8\xec\xea\xf6\x91\x1a\xd3\x02x\x5c\x89J\ +6\xed\xedG\xbcx\x01\x00`\x85\xcc\xbc4\xa1\xc4#\ +\xa6l\xbb\x99\x19\xd9\xe4\x00^\x99\x12\xa93\xe3\xfbJ\ +\xa5\x15\xb2G\x00\x00,\x0c\xe1\xff2k\xd3\xf9e\xaa\ +\xc9+L\xda>\x04\xadd|\x1e{\x03\x00\xc0\x0b\xea\ +?m\xfa\xa2\x1c\xcc<\x06\x00\xc0 \xa5\x1d#M~\ +Q\x82\xed\x01\x1c\x8c\x07\xbfB\x97\x01\x00\xbc@SZ\ +\x93\xdf\x14\xd8\xf4\xc9OfL\xc0b\xf2\x15\x00\xc0.\ +6\xe7Z\xa3\x15pv\x91\x92f\xcd~~B)\x02\ +\x18\x00\xe0\xadP//>\xd2\x94\xff\xb4\xd1\xd9Z*\ +.L{\x83\xc4\xfew\xe8+#\xf4\xf9\xf1a\xd9z\ +\xf3\x84/-\x06\xbe\xa5r\x17\x178.5t`\xdf\ +\x0b^\xf4\xd2\xa7\xf4)\x5c@\x8aN\x86\x04\xf0\x1f\xdb\ +\xbc\xf8\x0d\xb3\xbe\xe3\x87\xfb\x85\x14\x82\x15\xb0\x9a\xa3\xdb\ +}\xe5\x81\xaf\xbc\xf9\xb3\xa8\x12ZH\x8axX\x08!\ +\xc4\xe6\x09\x17=\xe0\x95\x90\xe3\xa5P+\xce\xfd\xbbO\ +z\x85\x03\xfb\x9e\xfa\x16\xef[v\x90!\x03\xfb>-\ +\x85\x98!\x84\x10Jh\x13\x8eh\xdd\x8aD|\xff\x05\ +\xff\xdbA\xc3\xee\x1c\x1ch\xa8\xde\xaa\xc4\x99\xc5\x04\xa4\ +8s\xa0s\x12wv\xd8^\xaa\x7f\x86\x0e\xec\xab\xf6\ +\x7f\xdcA\xebq\xd9'\x9f\x1d\x97J\x88\x0d[+w\ +}\x93\x96t\xafG\x94\x92\x8f5\xb2\xc0T\xa3C\xd0\ +\xa7\x03\xa7\xb7\x99\xf5\x05\xbf\x99K\xf86\xebD=x\ +\xf0\xa4\xaf\xbc\xf9\xb3\xe8\x99\x13\xef\xd9\xf0m\xf4B\xec\ +\x9f\xe1+\x84\x10\x1d\xf6\x85bC\x06\xf6\xdb@k:\ +C\x8f\xe9\xeb\xda\x9c\x0b\xdf\xb3\xfd\xba\xfc\x86\xf8\xfe\x8b\ +^ \x05\x1a\xaa\xb7\x9e\x0b\xdes\xe1+\x84\x107?\ +X\x19\xa45\x1dsAu\xa4\xa9\xd5\xefg\xfb\xc1\xe7\ +\xc2\xf7l\xff\x8e\xe8\xfao;\xb9\xa8r\xb1+\x9bt\ +~n\x8cI\xf7\x7f\xc7T\xeb\xedV\x17\xc8O\xe9\xa6\ +FN\xd0\xd3*\xb4\x8eo\xfd4V\xdf\xb6\xebW\x93\ +?\xadz\xdf\xa8\xed*!6J!\xee\xa0r\xb2\xbf\ +:2\xda\x89o<\xa1\xbd\xfe\xc4\x00.n-t\xf3\ +\x03[\xb5\xf6\xaf}?f\xf4v9N\xcduMI\ +\xe5\xb5\xc7S\xde\x7f\xdf\x8cm\x87F\xe9Z8\xd1\x0a\ +\xd8\xb4u3\x09\xdfKj\x7f}Oy\xeb\x8f\xaa\xb4\ +\x8eo\xfd4&\x84\x10F\x86\xef\xd9+\xaf;\xce\x85\ +A\xa0u;iv(\xc0\xfc\xe0\xfdl\xdf\xd9\xfd\xef\ +\xdcb\xb0\xea\x04>p\xba\xec\xf5o\xdb\x83f\x84\xef\ +\xe7\x8f\xd3\x1e\xd3_\x0a\x0c\x1d\xd8Wq\x9c\x1a\xebx\ +\xee\xc0\x0f\xccz\x1a'\xe0\xd8\x0a\x98\xc7\x8f\x1cq\xa2\ +\xfe\xf2\xb5V\xa0pk\xe5\xabaz\xc0C}\xaa\xa5\ +\xf4\xdf\xbam\xebNz\xc0;}Z\xdd}np\xff\ +\x82\xbbb\xf4\x80\x81L\xc8\xb9\x99\xa3tmN\xa2\x15\ +\xf0\xe8j\xbd\x95\xd1_l\xda\x1e\x15\xa0\xc7/\xec\x1b\ +?\xdck[\xdbH\x11cYP\x13\xf4\xfa\xee\xa6\x14\ +\xdb\xfa4^\xb7\xe3\xe6\x077\xb3\xe2\x9d\xc1\x86\x0c\xec\ +\xb7\xd1\xae\xcf\xeex\xe0\xd1h\xaf\x07\xb7s\x0eu\xb8\ +\xd3M\x88\xf4F\x0f\xcc\x94\xcb\x84\xe1\xc3Y\xd1St\ +\xce\xc5\xae\xa8[m\x9f\x11\xf5\xe3U\xbd\x97\xfb\xb4\xc3\ +\xde\x87j\xed\xfc\x0e\xed\xf7\xfc(\xd6\xeb\xfe\x0dL\xd2\ +2\xb0O\xa5P\xc3\xed\xfc\x0e\x1d\xf6|/\xda\xeb;\ +\x1b\xb9\xb0r\xb0\xa3\xe5\x06\x04p\xb14\xfe-H\x92\ +\x01\xe8/\xe9\xf3\xbd?9\xe6`\x22\x84\xbd\xa7\xc3\xeb\ +?n\xa0\x15\x8c\xa8|\xfb\x1eqL\x9f\xee{8V\ +\xb0\x99\xc5\x8c\x9c\xaa8\x10i\xb4x\xbd\xe4I_+\ +/}\xd6\x94o\xc6.\xf3%\xadw\xde\xef\xa8{:\ +\x84p\x82\x17T\xff\xf9V\xc0imH\x9f\x1aQ\xf9\ +6m\x81\x05\xab\xbc\xf7\xe3~L\xb8s\xb0\x89\x9b\x95\ +\xd6\xb2(4\xe9\xf1#!\x84\x98\xdaV\x0f.\x1e&\ +\x99D \x84\xb8\xf9\x81\xf5Z\xfb\xd7\x1eqt[\xf0\ +\x08Ds\xab\xa4~\x1b\xa4Pw\xd0\x9f\xde\x09^7\ +|O\xfa5\x01&\xe6\xdd\xa5&\x1d_4\x9d\x1f\xfe\ +\xa6n\xda\x90h\xfd\x09j\xe0s\x9c\x1e\xbeB\x081\ +\xec\xe7\x0d\xdckjV\x95\xe4\xdc\xf0\xa5\x12n\xbe\xe4\ +\xff\xf8\x83+\xf6\xff\x89/1\x1c\xed6\x17\xdd\xb1:\ +$\x99\xf7\xa1*U0l\xe2\x22\xf1\xc8\xa0'i\x05\ +\xf8\xd5\x86\x89\x1d]q\xc1rx\xe3\xdf\x08`\xaf\x04\ +\xb0Ye\x99\x16\xd7&\xae\xf8\xa6$\x80]T\x894\ +\xb4I\xff\x09\xbd\xe5-\x83\x87\xdc>\x80V\xf0\xd6q\ +\x9a\xf2\xcahn\xeb\xb5\x94MkSX>\xb4\x12\x1f\ +\x9d\xbb\x9c\xdev\xd70`r\xcd;\x1f0l\xe9\xad\ +>\xd5b5\x95\xf4\xa9\xb7\xfa\xd4\x8d\xdf\x97\x0a\x18\x80\ +/\xc5\xb5\xd4\xc9\xb4\x02@\x00\xfb\xca\x90\x81\x03\x9e\xa1\ +\x1a\xf0\x8eQ\x8b\x95+\xd7\xd2\xd6\xe2\xb5K\xe8S\xef\ +\xed\xef\xf4)\x01\x8cK\x90\x226\xcd\xad\xdf\xfd\x8e_\ ++\xf6\x99\xf3\xbc\xb7e}\x12\xad\x00\x80\x00\x86\xa9>\ +\xfe\xf3k\xec3\xe7\xe9\xb8\xbfp\x1d\xad\x00\x80\x00\x86\ +\xa9\x1a\xeaO\xd0\x08\xe7\x93\xc1M4\x02\x00\x02\x18\xa6\ +\x0a$\xb5\xe2\xfe\xd2\xf9\x17%moX@+\x00 \ +\x80a\xaa\xbd\xbf\xee\xcf\xb3\x86\xe79\x95>\xfd\xef\xb4\ +\x02\x00\x02\xd8\xc1n~p\xb3t\xfb\x0cEfX~\ +\xd9e{~TO\x9fz\xc7\xd0\x81}\x15\xc7)\x08\ +`\x8fi\xb7\xe7G\x87\xbdr\x82\xa27i\x0b8\xdb\ +\x90\x81\xfd\xb95B\x00\xe3\x1c\xa7\xbd\xca\x0c\x80\x97\xcf\ +7\xf1\xfbh\x05\x02\x18\x00\x00\x10\xc0\x00\x00\x10\xc0\x00\ +\x00\x10\xc00\x97\x12r\xa3\x17~Gu\xafy\xc9\xf4\ +&\xbc\xea\x93\xee?k\xed\x85\xdfq\xea\x8e\xa5Az\ +\x93\x00\xc6Y[+w\x8e\xd8R\xb9\xcb\xf5/\xcd\xde\ +\xff\xd4\x9d\x0d\xf4\xe6\x19^\xe8O/\xfc\x06#\xed[\ +\x90y\xda\xedm\xb2\xa5r\x97\xfc\xd3\xbc\xce<\xb3O\ +\x00\xc3[U\xbc\xd8@+\x00\x00\x01\x0c\x8b}\xdc+\ +<\x92V\xf8\xa2x\xa0\xd5\x14Z\x01\x00\x01\x0cS]\ +\xf6\xc6O\xc6\xd2\x0a\xe7\x1dD\xb1\xd3\xcf\xd3\x0a\x00\x08\ +`\x98\xea\x1f\xdd\x1f]E+|\x91\x12\xe2(\xad\x00\ +\x80\x00\x86\xa9n~(\x83\x89\x1d\xe79}\xdb\xb2t\ +Z\x01\x00\x01\xec\x02'\x87\xfe\xd6\x95\xed\xbe\xa5r\x97\ +\x5c\x9e.Y\xfb\xf8<\x7f\xfa\xaf\x1bcn\x9d5\xcb\ +\x0ch\xef\xb5\x0d}J\x00\xe3\x12\xf6\xfew?\xd7\x85\ +\x98\x92I?\xa1\xe7\xbc%\x1ehs7\xad\x00\x10\xc0\ +\xbe\xa3D`\xa1\x9b\xbeoM\xff\xdf>F\xaf]Z\ +}\x9b\xf4k]\xf6\x95\x0f\xd2k\x00\x01\xec;)\x93\ ++\xa7\xbb\xe5\xbb~\xd2\xeb\xf1\xd4\xd7~}K\x94^\ +\xbb\xb4\x1d\xeb_8\xee\xa6\xef\xbbm\xeb\xcb\xaf\xd2k\ +\x97\xe6\xa6\xe1\xdcx\xb0\xdd \x86\x9f\x09`4\xc1\x86\ +\x07\xa5r\xcb\xc1\xd2\xee\xaa\x9b\xea\xe91\x82\x85\xb6r\ +\xf8\x05\xd5\x96\x8d\x95\xf4\x16\x01\x0c\x8f\xa9\xad\xf9+\x8d\ +\xd0DJh!Z\x01v\xc8x^qQE\x007\ +\xa2\xa2\x98Y\xb4\x9f\xf3\xe6'W;\xfe\x22\xe8O\xbf\ +\xeaM\x9f5\xd1\xd6\xca\x1d\x8e\xbfWN\xf5\xdb<7\ +\xe6\xffN\xba\xa1\xcd*\xa6\xf0\x84\x82\xdbrI\xb3#\ +\x99\xef~UQy\x9f\xf5\x8f7\xd7:v(zK\ +\xe5.\xc9\xc9\xda[\xedF\x7f6\xdf\xa1\xa2\x07\x94\x93\ +\xdb\x8e\xe3\xd4\x83\x15\xb0\x99\x09\xd9\xf0\x89`gq\xf8\ +\x89\x91\x03\x9a>\xc5\x97Uw\x99\x1d\xa0Oaz\x00\ +\xa7\x9a\xf8\xa1\x81\x14\x02\xd8\xc9\x07\x13\x075}\x8a\x0b\ +\xdb\xff\xdc\xa8\xf8\xa9\xc1K\x82\xf4)L\x0d\xe0\xefK\ +\xf3\xee'\x04R\x04\xf7*\x1cxP)!\xdf\xe5\xa0\ +\xf6\xde\x89\x92>5\xd6\x9f~\xd1%\xd60\xfa\x8f\xb6\ +U\xc2\x1fu\x9b\xd3\x96>u\x87)\x97\xe9\x97\x1cL\ +nZ'\x1a|\x83\xfa\xee\x0ezp\xd1`\xc9\x9a\xc2\ +\x8d\x18\xbdT\xc9O\xfe\xa7_\x9c\x13\xb4\xb7\x0c\x1d\xd8\ +W\xd1\xa7\xf4i\xb3B\xb7\xcb\xec\xd6\x07\x9e\x1bu\x9a\ +\x966\x89\x19\x93\xb02\xf2\x1a=\x06\x1b\xbd\xd5\x9b\xb2\ +\xa6| \xbdc\x8f\xc1\x93\x84\xa8\xbeiV{3?\ +\xe3\xe3[\x7f\x95LK{\xcb\x89[~\x93B+X\ +gd\x91\xf9\x93J\x09_\xf7y(\xde\xf8ca\x8d\ +\xde\xcb\xa8\xd3j\x97\x1a\xfd\xc5\x92\xdb\xd29M\xf1\xc8\ +\x99\xdb\x00'\xc5\xd9\x91\x0a#\xaf\xb2?\xab\x90*\x87\ +\xd2\xd0\x16\xfb|ujN\x9f\x0e\xa2\x91-\xb4._\ +\xc6\xc5\xe7F\x13\x8d\xea\xd3x\xa0\xf5\xd4m[7\xf3\ +\xaei\x97Ji\xc2\x18T\xe3WnRt2\xfa\x8b\ +\xcd\xbf\x99\xe1\xe7\x96\xf8\xe4\xe6_|\xd6_'z\xff\ +2U\x09q\xb4\xb1\xa1\xc6\xda\xa1\x8b\x82B\x9cyg\ +\xad\x12\xe2hu\xf7\xd9\xc9\x0cO:\xc7U\xb3wj\ +g\xfa\xf2\x9fk\x837\xf6~\xe1-\x95\xbbdu\xf7\ +\xb9\x9f\xcd\x93\xac\x19\xf0\x14}\xea\xb0\x0b\xac\xea\x1es\ +S/v\xd1u\xb1\xbf9\xd7\xef\x1f\xf7\xfc\xaf\xd4\x8f\ +o\xfey2\xe1\xeb}\x8d\x1f\xb4&=\xa0\x1b\x9ds\xbcy\x08\x80%B\xa1\xd0\x05\ +/\xa2\xc3\xe10\xf3<\x90\xb07\x9f\xff\x8d\x12\x13\x87\ +\xb9\xea;\xbb/\x80+\x8a\x15\x13\xb3\x00\xf7\x06\xee\x85\ +\xfe;B\x18\x86d\x83\xcbHW6\x04\x01\x0c8:\ +x\xa5\x94\x13\x95R\xcb\x9a\xf3w\x840\x9c\x9c9?\ +:\xa1\xe4/\xda\x1b;\xe1\x98\xf7\xee\x020\x84RJ\ +\x9e\xabz\x9b\x1b\xbe\xcd\xa9\x98\x01;\x18\x1d\xbeBp\ +\x0f\x18\x80A\x0a\x0b\x0b\x13^\x0b \x14\x0a\xa9\xfd\xfb\ +\xf7\x07z\xf4\xe8\x11KKK\xd3\xa6O\x9fN(\xc3\ +\xb3\xcc\xa9\x80\x99\x11\x0d\xf8\x8a\x91\xd5k\x8f\x1e=b\ +B\x08q\xe4\xc8\x918-\x0b\xdb\xf3\xc0\xc4<3m\ +\x08z\xf4'z\xaa\x05\x8d\xce=#\xc0^\x92\xa1c\ +\xd8%\xb8\xb6\xec'T\xc0\x17\xda\xb0\x12\xe6_\xbdV\ +\x14s\x85\x0c\xd8[\xf9\xc6M\xde>\xe1\x8e\x8b\x16a\ +Q-:\x8b\x00\xbe\x80\xd5\x93d\x03\xb3\x95\x01\xef\x8a\ +\xc5b\x96\x1c\xdf\xa1PH-_\xbe\x9cs\x09,%\ +\x95\x0c\x99\x9da\xa6\xce\x82\xfe\x99R\x1c4\x80G\xcd\ +\x9c9\xf3\xc7V}\xd6\xbe}\xfb\xe2s\xe6\xcc\xb9&\ +\x14\x0a)\xc5y\x05\x16\xc8\xad\xcd\xfd\x85k+`!\ +\x84\xf8\x99\x99/i8\x87\x09Y\x80\xe5\xd6\xaf_\xaf\ +\x09!\xc2V~\xe6\xe9\xd3\xa7?\x10\xe2\xcclkB\ +\xd8\xe7,8\xef\xdf8\x5cD]\x1d\xc0B\x08\xd1\xb3\ +\xa8&@\x08\x03\xde\xb2q\xe3\xc6\x18\xad\x00\xaf\x86o\ +\xf7\xe55\xda\x7f_n~\x01i\xd9Ud\xeeJ\x95\ +\x5c\xd2&Rg\xe6g\x8c\xf9DOZ=QF\xd9\ +C\x01s9arT\xff\xfe\xfd\x83\xd9\xd9\xd9\x5c\x08\ +\x10\xbe\xc6\xb2p\xee\x92e+a\x95\x8c\x93\xf5f\x7f\ +F (\xa8\x84\x01\x9f\xd8\xb1cG\x94Y\xd20\xd2\ +\xf7\x87\xea\x96\xae\x0e\xe9\xa9\x95\xb0JZG\x0e\x09!\ +:\xb1\x1b\x01\xfe\xac\xc6YO\xda\xbb\x1ex[\xc9\xdf\ +\x1d\x8e\x98\xfa\x19\xbfn'-\xbd\xa0\xb34\xed\xef\xef\ +\xa9\x9b{?X\x8a\xeb\xb9\x1f\x0c\x00\xde\xf3\xbb\xc3\x11\ +\xcf\xad\xfb`i\x00?\xf9u\x19\x1f]\xad\xa7\x98\xfe\ +A\x840`\xb6\xa3N\xad\x86\x19\x96\xf6 \x8f\xdd\xfb\ +\xfdg\xcd\xe8\xd5\xc6\xb4\xb1Q\x01?pz\xd01\x1c\ +\xed\xfa\xd0=,\x84H\xb3$\x08\x95\xb6Pe\xe6\xde\ +G\x00\x13\xc0\x00!l\xa0^\xbdz\x05&L\x98\xc0\ +\xb2\xb5T\xbd\x175.\xa6\x07VfI\xcb\xf7\x11{\ +\xde\x07la(\xfe\x86\x07\xf6\x01s\xce\x8f\x15\x15\xae\ +8\xb6\xf6\xed\xdb\xc7\xa3J.$\x95|\xd9\xaa\xcf\xb2\ +#|\xed\x0b`\x0bC\xf8\x87\xe5\xab\xfb\xb2+\x03\xc6\ +\xfb\xe0\x83\x0f\x12:\x86\xad\x1c\x22\xe6\xbe\xb0\xfb(\xa9\ +n\xb7$\x87l\x1c%\xd5lma\x0b~xT\x8b\ +\xee\xb8}\xd6{\x1a\xbb3`\xac\xd4\xd4\xc4\xde8\x1a\ +\x0a\x85\x94\x1d!L\x18\xbb\x80G']9+\x80-\ +j\x84\x97\xfb\xeeb\x08\x0a0\xfa\xe26\x9a\xf8\xa2s\ +\xcf?\xff|\x80\x10\xc69]\xf3\xffM\xfa%|\x9d\ +\x11\xc0^\xba\xa2\x02|D\xca\xc4\xcfaUUU\xe3\ +\x8483\x1c}\xee\x1f\xab\xc3\x18\xce0x\xcekZ\ +\xd5=\xc3M\xbf\x17\x9bS\xab\xa7:\xe57\xfbkh\ +\xb6\xa2Xe>\xf9&\xc3\xd1\x80\x01\xbau\xeb\x96x\ +\xc5\xd3\xb5\xeb\xaa\xf3\xff\x1d!\xec?\xff~\x5ci\xdb\ +\xfa\x1c\xb1d\xa42vJ\x04\x9c\xf2\xbb\x9d\x11F\x16\ +\x0e\x07\x94\xff\xeb[\x0cG\x03\x06\xe8\xd3\xa7O\xc2\xe1\ +UUU5\xf6B\xff\x9e\x10\xf6\x8f\x11\xbf\xda$\x9f\ +\xd8\x13\xb1\xec\xbc\xdc\xbb@\x9cv\xcaow\xd4c\x04\ +\x13^R\xc1\xe5\xb1H\x83e\xa1_Q\xacxN\x18\ +\xb0/\xbc\xd2\xd3\xd3\x93\xee\xbd\xf7\xde\xa8\xd3\xc2\x91E\ +<,d\xd5\xedA\x07\x9e\xeb\xa5\xaf;D\x08\xa1)\ +\xed\xd9xf\xee4\x8e\x02\xa0ef\xce\x9c90\x16\ +\x8bmo\xd1E\xf7\x84\x09\x81^\xbdz5\xe9\xbe\x9f\ +\x95a\x9c\x94\x944l\xd6\xacY[\xe8]\xc2\xd7\xd4\ +\xfcqd\xa7X\xd8Xq\x19\xbf7{\xa5j\xc3\x91\ +\x00\xb4LK\xc3W\x08!\x96/_\xde\xe4\xa1G+\ +\xab\xd2\x86\x86\x86W\x18\x9a&|\xfd\x19\xc0\x16+k\ +\x13\xf9\x94Y\xd2@\x8b\xbd\x9c\xc8\x1f7'\xe8\xac\x1e\ +\x1a&\x84]\x1e\xbe\x0eG\x00\x7fN\xf2\xda\xb5Sh\ +\x05\xc0\xd9\xac\x0e\xe1\xa5K\x97\xb6\xa2\xd5\x09__\x05\ +\xf0\xa0\xca$\xcb\xbf[\xbdV\xb7x\xf4\x0a\x15`\xb7\ +\x00p\xce\x81\x03\x07NQ\x09\xbb3|\xaf\xfe\xe9z\ +G\x17\x99A\xa7~\xb1\xeds\xc6(!\x84\xb4\xba\xc3\ +\xd6\xb6\x8bDEE1oQ\x02\x5cR\x05\xcf\x9c9\ +\xf3\xeeX,\xf6\x9c\x99\x9fw\xc3\x0d7$\xd1\xea.\ +\xab|3\xf2\xe4_\xa9\x80\x13oD\xf6\x5c\xc0\xd1\xae\ +\xb7\xf3\xc3\xe7\xcc\x99\xb3())\xe9v3?\xe3\xf0\ +\xe1\xc3\x0dEEE\xdc\xb2sQ\xf8\xba\xa1Y\xdc\xb1\ +C\x11\xc2\x80cI)\x9f\xb3\xfb;\xcc\x9a5k\xb3\ +\xd9\x9f\xb1w\xef^\x16\xf1!|}\x18\xc0\x840\xe0\ +\xdc\xf2\xf7\xfa\xeb\x1fs\xc2\xf7\xb0brV(\x14R\ +G\x8e\x1c\xe1\x5c\xe4\xd0\xf0\x1d\xfeZ7W\xdd*`\ +H\x05@B\x8a\x8b\x8b\x1b\x9c\xf2]z\xf5\xea\x95l\ +\xf6g\xa4\xa5\xa51!\xcb\x89\x95\xaf\x10bS\xe1M\ +Q75\x91\xa4S\xa9\xb8\x01\xa3\xaaC'U\xaff\ +\xcd\x5c\xee\xd4\xa9S\xab\x193f\xd4\xd2\xe3\xce\x09\xdf\ +\xfe\x1b\x03\x81\x1d\xbf\xc8\x89\xbb\xad\x99$\x1d\xfcE\x05\ +m\xf4\xa4\xa5\xb7\xc9(G\x10\xd0t\xc7\x8e\x1d\x93O\ +?\xfdt\xc2'@\xa3\x83\xd8\xcc\xc7\x87X/\xda!\ +\x95\xaf\x8b\x8b%\xf7\x0eA\x9b\xd4\xe8\x84/\xd0|\xd7\ +]w\x9d#\xbf\xd7\xd9\x90<\xea\xb4\x8a\x9f\xf0%|\ +\xdd\x1d\xc0B\x08\xa1\xe4\x02\xa37y\xdf~\x15\xe4(\ +\x02\xbc#\x1c\x0e\xa7\x99\xb5\xed\x85\x0b\x17\xa6\xd0\xc26\ +\x85\xaf\x10G\xdc\xded\xee\x0e`\xa9\xa6\x1b\xbd\xc9\x86\ +O9\x8e\x00\x0f\x86\xb0\x94RN4z\xbb\x87\x0e\x1d\ +\xe2^\xb0=\xe1+DF\xde\x0dno6\xaa\xbd\xf3\ +\xb4\xbdF0\xac\x044\xd3\x8e\x1d;\x1c\xff\x1d\xe7\xcd\ +\x9b\xb7\x5c\x08\xb1\x5c\x08\x86\x8f]\x1d\xbe\x1e\x9a \xcb\ +cH\xe7\xb9\xf7:\x11\xa7\x15\x80\xe6Y\xbdz\xf5\xc3\ +.\xac\x88\x7fb\xc4\xb6\xfc\x1a\xe6\xdd\x0b\x9e\x95\x84\xaf\ +O\x038k\xb9J1\xac\x9e\xb1-\x00\x00\x161I\ +DAT\xa3s\xfbJ\xc9\x951\xd0\xfc\xea\xf2q\x17\ +~\xe79Fm+\x14\x0a\xa9\xfd\xfb\xf7\xfb\xe6E.\ ++\x94\x92\x07\x0a\xda[[\xacx\xf0\xd1P\xd7\x06\xf0\ +\x9a\xf6\x11\xee\xbd\x00\x0e!\xa5T\xbd{\xf7Nv\xdb\ +\xf76\xf2Q\xa2\x17^x\xe1\x90\x1f\xfa\xba\xdd\xd5B\ +\x8e\x7f1bi\xf8\xfe\xc7H\xdd\x93\xa3\xb5\x0cA\x03\ +0D~~~\x83\x1b\x9f\x8d5\xf0;_\xef\x87~\ +>\xf9l\xb1\xe5\x95\xef\xff\xd3\xbc92I\x00\x030\ +L\xa2\xf7C\xa7M\x9bfK\x80\x87\xc3a9l\xd8\ +\xb0\x14\x03~\x7f\xa1\x97\xfb\xf7\x9e\xbd\xca\xda\xcc\xf0\xf8\ +\x8a\x84\x04\xb0O:\x1a\xb0\xc8\x86D\xfe\xf8\x9ak\xae\ +\xb1m\x12\xe4\xdf\xff\xfew#\x16\xf2\x9f\xeb\xe5IY\ +\xcf\xbd\x1f\xb1\xee\x8dP>8'\x13\xc0B\x88\x09R\ +\xe7q,\xc0\xe7\xbe\xf6\xb5\xaf\xd5\x19\xb5\xad={\xf6\ +xo\xc2Py\x89u\xd5\xbdO\x0a\x22W\x06\xb0\x1e\ +Q\x86N\xf6hs-'\x1f\xc0\xefn\xbf\xfd\xf6\xe8\ +\x8d7\xdeh\xc8\xd3\x15\xabV\xadz\xdak\xed\x13\x97\ +\xf1\xb9\x84\xaf\xdf\x03\xb8\xa2XER#u\xc6\xeeY\ +\x82\xe1g\x00b\xda\xb4i\xf5\x0b\x17.L\xf8\xbc\xd8\ +\xb7o\xdf\xef\xd2\x9a\x84\xaf'+`\xa3\xfd\xcb-\x22\ +F+\x00\x89\xeb\xd2\xa5\xcb]n\xff\x0d\xc7\x8f\x1fW\ +\x89\xce\x8c\xde\xb5kWC(\x14REEE\x01\xf6\ +\x0a\xc2\x97\x00\xbe\x84\xd9,\xbe\x01\x18\x22\x18\x0cr,\ +}\x8e\x94\x92s,\xe1\xeb\xa1\x00V\xe2\x98Q\x9b\xea\ +\xbbnw\x80\xd9\xcf\x80q\x0a\x0a\x0aX\xca\xf5s\xde\ +x\xe3\x8d\x0e^\xf9-9\xa7ts\x16Z\xf1\xf19\ +\xd8]\x01\x5cQ\xac\x844\xeea\xf7\xc1\x0f\x86\xb9Z\ +\x07\x0c6r\xe4HO\x0c\xbb\x1a\xb1@G4\x1a\xfd\ +\xb0\xb4\xb4\xd4\x13\x01S:V6h*0\xd3\xc8m\ +>\xd8\xba\xa3\xafG\x08|\xfd\xe3?8\xc4\x10<`\ +\xb4a\xc3\x86y\xa9\x0aN\xf8\x9d\xb3;w\xee\x8c?\ +\xff\xfc\xf3\x9e8\xd7,\xca\xc8\x9eg\xe4\xf6~{\xfb\ +\x1d\xbe.\x82|\x1d@\xa9m9Y\x02N\xe3\xa4\x85\ +,\xc2\xe1\xf0\x0dFT\xc2o\xbd\xf5V\xcc\x0b\x0bt\ +L1b\xbe\xcc\xb9!gn\xff\xf9;\x80\x93\x08`\ +\xc0\xb1!\xcc;{\x9d\xa9\xe7\xd2\xc3-\xca\x8d+\xeb\ +\xaf\xbe\x96\xf0%\x80?\x13Le\x07\x00L\xb2\x99&\ +\xf0\xa67\x96>\xa4Z\x12\xa0\x1f\xe6\x0c9N\xeb\x11\ +\xc0\x9f\xe9\xdfM0c\x130\x81\x94r\xbd\x97~\x8f\ +QoL\xf2RU\xff@\xd73\xaf\x08\xcck\xd0\x1b\ +_=\x8c\x8a\xf7\xc2\xc7\x89+\xbeeE\xb19;-\ +;\x05`\x0a#\x83\xc6I\xaf8\xf4\xea\xef2\xf5\x1c\ +\xcdy\xd6\xdd\x01,\xcb#\x9b\x94T\xb7\x13\xbe\x80\x7f\ +\xc3\xd8\x09\x815{\xf6\xec\xabkkk\x8f{\xe5\xf7\ +\xc0^\xae\x18\x826<|\x01X\xc6KAs\xed\xb5\ +\xd7\xfe\x83\x1e\x85\xaf\x02\x18\x00\x9c`\xc6\x8c\x19\xd1\x9b\ +n\xba\xc9\x90\xf3&\xb3\xbcA\x00\x03p\x85\xce\x9d;\ +;\xa2\x92\x9e2e\x8aa\xc19i\xd2$\xce\xc1>\ +\xe6\xdfIX\xdc\x03\x06,eD\xc5\xd7\xb5k\xd7\xc0\ +\xd4\xa9S\xe3^\xfaMBp?\x98\x0a\x98\xf0\x05`\ +\x22#B\xa6\xaa\xaa*\xf6\xe8\xa3\x8f\x0ep\xc2\xef1\ +\xe2\xbd\xc1 \x80\x1dk\xf26\x95D\x17\x01\xde\x11\x08\ +\x04\x06%\xba\x8dx<^YUUe\xfbE\xf4\xb4\ +i\xd3XG\x00\xde\x0d\xe0\xa5\x1f\x97>I\x17\x01\xde\ +q\xe3\x8d7\xee1b;{\xf7\xeeu\xc4\xb9\xebl\ +U\x7f4\xd1\xed0!\x8b\x00v\x9c\xaf\xd5\xfd\xebO\ +\xe9\x22\xc0;\xa6N\x9dZo\xc4v\x0e\x1c8\xd0\xcf\ +)\xbf)\x1c\x0e\xa7\x19\xb1\x9d\xb9s\xe7^\xcb\x1eB\ +\x00;F\xaf\xd3\xb7V\xd3E\x80wH)\x95\x11\xf7\ +\x82c\xb1\xd8v'U\x8dF\xccf>u\xea\xd4\xfb\ +T\xc2\x04\xb0c\x04\x93D\xd4\xd0\x0df\xe4I&`\ +\x01\xde\x11\x0a\x85\x94R\xca\xf6c\xba\xa6\xa6\x86\xf3\x0a\ +\xbc\x15\xc0em#\xb5t\x11\xe0=F>vSX\ +Xh\xfbd\xa8\xfe\xfd\xfb\xc7{\xf6\xec\xc9\xa4Qx\ +$\x80\xcdz\x01\x03\x00\x98`\xe2\xc4\x89\xd1\x01\x03\x06\ +$|Ne\x18\x9a\x00\x06\x00\xd3\xab\xe0N\x9d:y\ +\xaaj\x1c3f\x8c\x12B\x1d.\xe7\xbfb\xfcvk\xb2\xee\xfa\xbb\x97\ +;p\xfcz\xa5\x05\x82B\xbcp\xca_\xc1\xdb$\x15\ +\xc5J*9aBjnqC\x8d\x90\xab\x82g\x86\ +\xe4sO\xe9\xc9W\xf4\x14\xb1\xf9]$!\xed\x96\x0b\ +\xe96m\xbeVSS\xf3\x97D\xb6\xb1s\xe7\xceZ\ +!\x98\x13\x02\xe7p\xce\xce\xc8\xeb\x07\x9d\xd1f~\xa2\ +\xc4Q\x91\x99\x97FC8\x9f\x17\x87l\x19\x86\x863\ +:\x8e\xc9W\x04\xb0M\x0a4=\xb04~\xe9\xd1\x83\ +\xdcZ=X\xa2KF\x18l\xb6r\xe5\xca\xc0k\xaf\ +\xbd\x96\xf0}\x5c'\x05\xd6\xe2\xc5\x8b\x83UUU\x0d\ +^\xfaMh:\x1e\xef |}\xad\xb1\xf0\x15B\x88\ +\x92\xd4Ht\xf2vV\xee\xb2\xdb\xb8q\xe3b\xf3\xe6\ +\xcdK\xf8\x9c\xb5h\xd1\x22\xc7\xdc\x0b6\x22|\x8d\xac\ +\xa6A\x05L\x05L\xe8z\x0f\xab\xb1\x19\xcaKo\x19\ +2*\x0d`3|\xa5\xe1\ +\xcak\xac\xfc\xbc\x09\x9bT\xc0\x0dUO\xf6\xc7z\xaa\ +\xc8\xc8\x93\x22#O\x96\xe6K\x1e?0Q\xd9\x04Y\ +\xe7\x85\x8aQ\xaf\xd35!\xc4\xfa\xd2<\xe9\x89\x0b\xe5\ +`0x\xa5\x11\xdbIKK[\xe5\x94\xdft\xcf=\ +\xf7\xd4&\xf2\xf7o\xbf\xfdv\x1d\xcf\x06;\x83\xe5'\ +\x8cB\xa5\xe4<\x03\x9f\xe9\xcc>\xad\x07\xcb,8Y\ +L|Y%/;\x15\xa9sK\xc7\xa6\xc6R\x07\xd5\ +feV\xb2\x8b\xc3\xef\xbc:lk\xd0\xfd\xe0\xc0\xb0\ +a\xc3\x98\xe9\xed\x97\x0ax\x9e4v\x22G\x99EW\ +\xean\x0a_M\x05\x9e#|\x81\x7f\x06g\xb7n\xdd\ +\x12~]\xa6\x17\xab\xc6u\xeb\xd6\xc5\x0e\x1e<\xa8\xb1\ +\x97\xd8\xc3\xd2\xfb\xf0\xe2\xc5\x8b\xb5\xaa\xaa\xaa\x84\ +\x0a\x0b/>j\xe5T\x964\xf0\xe8%*y\xed\xe5\ +\xc6.dQ\xd0NO]:T6y\x9bZyI\ +a\x5c\xc6\xe7\xba\xa5c\xe6\x8c\xd2\xb5\x99t\xa9\x0a\xb1\xa2X\x9d\x0b_\xd7 |\x01\ +W;x\xf0\xa0#^O\x1a\x0e\x87\xa5\x81\xabd\xad\ +\xa7g\xcdc\xeaI\xff\xfe\x83J>y\xc8\x84 \xbc\ +XX\xb9p\x05\xab\xe9\x07\xe32\xb5\xa3\x14\xffs%\ +C\xce\x80\x9d\x16-Z\x14|\xfb\xed\xb7\x13~m\xa7\ +\x93\xee\x07o\xde\xbc9\xf0\xd2K/%4\x02Y]\ +]\x1d\xfc\xfd\xef\x7f\xcfz\x03n\xab\x80?\xdco\xdd\ +\xf0\xc5\xb0y\xc7\xdd\xb5\x22\xd4\xd9\x8b\x88\x05\x9d5E\ +\xf8\x02\xf6\xbb\xfb\xee\xbb\x0d\xb9U\x16\x0a\x85\x0e\xdb\xfd\ +[\x96.]\x1a\x08\x85B*\xd1\xf0\x15B\x88\x8e\x1d\ +;F\xd9;\x5c\x18\xc0\x83s\xad\xb9\xf9\x9a\xbbZ\x05\ +_\xb9e\x9b{^8\xcfp3\xe0H\x06U\xafi\ +J)\xdb\x8e\xf1e\xcb\x96%\x1d8p\xc0\xd0\xd0\xdc\ +\xbbw/\xe7,\xb7\x05\xb0\xe1\x1b?\xbb\xfc\xa2\x10B\ +|\xf7\xd8?_\x9eP\x12\x8c\xb8#|\x95\x5c\x90\x1f\ +`\xedf\xc0\xeb\x0a\x0b\x0b\x1f\xb1\xeb\xb3\xdfx\xe3\x8d\ +z\xa3\xb7YTT\xc4\xe3Hn\x0b\xe0G\xaf0\xef\ +\xa2\xe9\xf7o\xbap\x92U\xa6>\xa3\xe8.\xd6n\x06\ +\x9c\xacs\xe7\xceI\x89n#==\xfd\x17V~\xe7\ +\xb1c\xc7J!\xcc]\xc9\x8aU\xb2\x8cgZB\x8e\ +_\xad\xb4\x15A\x83\x97z\xcc\xc8\x93\xf9\xcb\x94V\xd4\ +\xc1\x1dKH\x8e\x13z\xb0C\x9a\x88/\xe8\xca=^\ +\xc0m\x8c\x08\x9c\xcc\xcc\xcc\xc0\xe0\xc1\x83\xe3N\xff\x9e\ +\xcd\xc1\x0aY\xc61m8\xd4\xf0\xf0\x15B\xe4\x96\xaa\ +@Qr\xc4\x15\x13\x02\xc6\xa7\xe8\x81\x15#$\xc36\ +\x80\x8f}\xf4\xd1G\x01!\x84\xe1\xe7\x01\xaaQo0\ +m\x08Z*\xb9\xc9\xe8m\x96\xb8$|\xc7J=\x89\ +\xf0\x050z\xf4hf\x10\xc3\xfa\x00VR\xf9\xf3\x95\ +yJ.X5Jr\xd0\x01.g\xc4Pkaa\ +\xa1\xe7\xaa_\xaao\x03\x0bU\xd3\xb6\xec\xd67\x0f\xb5\ +\x14\x8f\x16\x01\x9e3p\xe0@m\xf8\xf0\xe1F\xdcN\ ++\x0c\x87\xc3a\xaf\x85\x1e\xf7\x83\x1dZ\x01\xfb*t\ +\x09_\xc0\x93*++\x8d\xaa`\xe7\xb54D\x17,\ +X\xd0\xca\xa9\xed3k\xd6\xac\xab\xd8K\x1c\x16\xc0Y\ +KU\x92\xe7[\x8e\xf0\x05|\xc1\xce*/\x14\x0a\xa9\ +#G\x8e8\xf6\x05\x0fuuu\x7fe\x0fi9S\ +fA\xaf\xe9\x18\xa9\xa7i\x01\xa0\xf9^y\xe5\x15\xf9\ +\xd2K/\x8dWJ-\xa35\xa8\x80q\xb1\xea\x17\x00\ +Up\xf3*\xda\xc2K\xfd\xef\xdb\xb7o\xd7\xd6\xad[\ +\x17wS\xf82)\xab\xe5\xcc\x09\x12/N\xc0\x22t\ +\x01\xdf32l\xce\x0fu+\x83\xec\xdcg\x1b\xf5\x99\ +L\xc6j\x19\xd6%&|\x01\xd8d\xf1\xe2\xc5\x81\xaa\ +\xaa*K\x1f[$,\x09`\xd7\x84\xee\x0fj\x94\xfc\ +\x15\xad\x01@\x08\xa1i\xda\x80x<\xfe\xaaQ\xdb\xb3\ +*|/\x16\xbaFU\xc2\xa1PH\x11\xec\xcd\xc7\x10\ +4\x15/\x80f\x86\x8d\xdb\xbesS\xc2\x91\xe1h\x1b\ +.\xe8h\x82\xcf\x85\xee\xe7^w\x08\x00\x17\x0b\x187\ +\x85LS\xbfk \x10\xb8\xc7\x88\xcf[\xb4hQ\x80\ +\xbd\xa4i\x18\x82\xa6\xe2\x05\xd0\xc2`\xf3\xd2\x0aU\xb1\ +X\xec9#>\xfb\xddw\xdf\xbdB\x08\xc1\xf3\xc1T\ +\xc0\x8d\xcb\x97z\x12\xbb\x01\x80\xe6:x\xf0\xa0#\xcf\ +\x9f-\xad\xce\x8d\xaa\xeakkk\x8f\xff\xf1\x8f\x7f\xa4\ +\xa8!\x80\x1b\xa9z3\xf2d\x11/N\x00\xd0\x02\x9d\ +;wv\xdc\x1b\xcf\xd2\xd2\xd2R\xec\x08\xef\xf3m\xda\ +\xb4\x89\xb7\xc1\x11\xc0\x97\x08_\x00\xb0\xa9\xda4\xd81\ +!\x84\xe8\xde\xbd{p\xfa\xf4\xe9\xf5F\xfc\xa6\xb4\xb4\ +\xb4\x84\xd7\x9ff\x81\x0e\x9b\x02X\x8f\x8fv\xee\xb0.\ +\xe1\x0b\xc0C!\x1c\x0e\x87;\x85\xc3aYPP\x10\ +3j\x9bRJC\xb6U^^\xce\x84\xacK0e\ +\x12VdtJTT\x14;\xe7W*qTd\xe6\ +\xa5\xd1\xdd\x00L2^\x08\xb1\xc2+\xa1\xdf\xae];\ +C\x02x\xdb\xb6m\xef\x08!8\xf7ZY\x01;E\ +\xeeI=8\xf5r=x\xcfW\xf5\x1b\xe8j\x00f\ +)((Xe\xc5\xe7H)\x7fjE\xc5\x9d\x9f\x9f\ +\x1f7\xe8s:\xb1w\xd8\x11\xc06\x0e\xf5fU\xeb\ +\xadEF\x9e,\x19/c\x8b\x07\xc8\xd8s\xb7H\xee\ +E\x000M\xf7\xee\xdd\xe3\xbd{\xf7N5\xfbs\x94\ +R\xb3\xac\xfc]\xb7\xddv[\xc2\xb7\x13\xb9\x17|\x89\ +\x0b*37\xde\xff\x91Yr\xc7\xd0\x1e\xd6\xcf\x86\xe3\ +>/\x00\x1b<\xf3\xcc3I\x87\x0f\x1f6\xe5u\xac\ +\xb7\xdcrK`\xdc\xb8q\x96\x9fO\xcd|\x01\x05\x15\ +\xb0\x89v<\xf6S55E\xb7t\x98\xfb\x87w\xea\ +\xac\xee\x05\xc0\x16\xf7\xddw_\x83\xd1\xdb<\xb7\xf2\x96\ +\x1d\xe1\x0b\x17\x07\xb0\x10B,\x1e!\x95\xd9\x15\xe9\xd0\ +=7\x07\xceU\xbe\xbf\x0c2\xdc\x0c\xc0>\xe1pX\ +v\xeb\xd6-\xd5\xa8m\xd1\xa2\x04p\xe2\x0c\x0e\xe1o\ +\xbc\xd81(\x84\x10\xd9\xa7tm\xcb\xa37\xc6\x19v\ +\x06\xe0\x14\xf1x\xdc3\xd5\xaa\xdb\xd6\xbe&\x80M\x0e\ +\xe1\xab\xea\xaf\xbev\xf7\x13w\xc4DF\x9e,\x1bK\ +\xc5\x0b\xc0Y\xaa\xaa\xaa\x0c\xb9\x0f\xec\xa4\x09L\x84\xb0\ +\xdb\x03X\x081\xaaZ\xd7\xeeI\xd7\xb5A\xdb:\xb7\ +\xe8\x19\xe4\xa4h\xd2\xc0\xbf\xe5\x0c9N\xd7\x01\xa0j\ +\xb4\xd6\xec\xd9\xb3\x99cc {w\x90\x96\xbc7\x98\ +\xa1f\x00.RTT\x94\xbcw\xef\xde:\xafT\xa0\ +\x89T\xe5T\xd1_d\xef\xeb\x08\x09S\x00\x1e\x97\x9f\ +\x9f_\x1f\x0a\x85\x12\xdaF\xa7N\x9d\xda\xb9=|\xe1\ +\xb4\x00\x06\x00\x8f{\xf5\xd5W\xb5\xd5\xabW'\xb4\x8d\ +\xf7\xde{o\xac\x10\xe29;\xbe\xff\x9a5kde\ +e\xe5\x93B\x88o\xd3\x9b\xc6\xa2\x02\x05\x00\x97T\x8f\ +}\xfa\xf4\x09\xe6\xe5\xe5\xc5\xac\xfa\xce\xf3\xe7\xcfO>\ +z\xf4h\x9dQ\xdbc\x08\x9a\x0a\x18\x00\x5c\xa9\xaa\xaa\ +\xeaj!\xc4\xfbV],\x1c=z\x94F'\x80\x01\ +\x00555\xff+L\x1e\xb94\xe3>/\x95\xef\x85\ +1\xa5\x1c\x00,`T\x08\x999\x11\xca\xacm\xbf\xf5\ +\xd6[\x04\xf0\x05\xd0(\x00`!\xa3B\xce\x0d\x81N\ +\x05L\x05\x0c\x00\x9e\xab\x84\x97/_\x9e\x9c\xe86\xe6\ +\xcf\x9foj\x06\xe4\xe4\xe4h\x84/\x01\x0c\x00\x9e\xb2\ +o\xdf\xbe\x84f'\x87B!u\xf4\xe8QSgT\ +\x7f\xf8\xe1\x87d\xcc%0\x09\x0b\x00|d\xe1\xc2\x85\ +I\x87\x0e\x1d\xaa\xb7\xe2\xb3n\xbb\xed6^\xa1x\x09\ +\x0c\x0d\x00\x80\x0d\x0a\x0b\x0b'*\xa5^Hp3\x9b\ +~\xfe\xf3\x9f\x8fhhhh\xf4>nqq\xb1\xdc\ +\xb3g\xcfL\xa5\xd4,+~\x1fC\xcf\x040\x008\ +V(\x14\x9a/\x84\x98\x9e\xe8v&O\x9e\xacu\xeb\ +\xd6M5\xf2Y\x96-#I\xf86\x0d\xe3\xf3\x00`\ +\x93\xfc\xfc\xfc\xef\x18\xb1\x9d%K\x96\xc4\x09_\xf7\xe1\ +\x1e0\x00\xd8\xe4\xa6\x9bn2,\x18\xdfy\xe7\x1d-\ +==\xfd\xb3 \x8eD\x22\xc9\xbbw\xef\xae\xb3\xe8\xa7\ +\x1c\x15BtJOO\xa7\xa8#\x80\x01\xc0\xf9RR\ +RT(\x14\xda \x84\x18\x91\xe8\xb6>\x1f\xbeB\x08\ +aa\xf8\x8e\x0f\x87\xc3E\xf4f\xf31T\x00\x006\ ++((\xd0\xae\xbb\xee\xba\x84\x1f\x09\x0a\x87\xc32\x14\ +\x0a\x1d\x11Bt\xb2\xe2{\xf7\xea\xd5K\x9b0a\x02\ +\xaf($\x80\x01\xc0\xbd\x06\x0c\x18 \xef\xb8\xe3\x0e\xd7\ +<\xb6\xd3\xa7O\x9f\xa4\xbc\xbc\xbc(=G\x00\x03\x80\ +\xeb9\xfd\x85\xf7\x9a\xa6M\x99;w\xee\x12z\xca\xa0\ +\xf6\xa4\x09\x00\x00MA\xf8\x12\xc0\x00\xe0I\xef\xbe\xfb\ +\xaec\xcf\xc9\xbd{\xf7&/\x0c\xc6\x104\x008L\ +aa\xe1\xa3J\xa99v\x7f\x8f.]\xba$\xdd}\ +\xf7\xdd\xdc\xe7%\x80\x01\xc0?B\xa1\xd0Q!\xc4\xf5\ +v|v8\x1c\x96\xd5\xd5\xd5\xb2c\xc7\x8e\xccp6\ +\x11C\x0a\x00\xe0@\xed\xda\xb5\x1bfW\xf8\x0a!\x04\ +\xe1K\x00\x03\x80/\xa5\xa5\xa5}hW\xf8\x82\x00\x06\ +\x00\xdf\xba\xfd\xf6\xdb\xeb\xac\xfc\xbcy\xf3\xe6\x91\x07\x16\ +\xe3j\x07\x00\x1c\xce\xac\xe7\x83\xa9x\x09`\x00@\x13\ +\xacX\xb1\x22\xf5\xf5\xd7_?m\xc0\xa6^\x0e\x87\xc3\ +\xc3iQ{1\xe4\x00\x00.1~\xfc\xf8Z#*\ +W\xc2\x97\x0a\x18\x00\xd0B\x0b\x16,H=r\xe4H\ +\x93\xab\xe1\xb4\xb4\xb4\xd6\xd3\xa7O?M\xcb\x01\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80K\xfa\xff\ +\xcdjR\x8e\x06\x13\xf3:\x00\x00\x00\x00IEND\ +\xaeB`\x82\ +\x00\x00\x13\x17\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\ +\xe3\x05\x15\x0806\xed\xcc\x19\x83\x00\x00\x00\x19tE\ +XtComment\x00Create\ +d with GIMPW\x81\x0e\x17\x00\ +\x00\x12\x7fIDATx\xda\xed\xdd\xbdV#\xc9\x16\ +\xa0Q\xa5\x96^\x09\x03\x832\xca\xa8\x87\xc6\xc0\x00\x03\ +\x83\x87\xa2,\xadVS\x12\xa42\xe3\xf7\x9c\xbd\xad;\ +c\xcct\xa7\x22\xe2\xcb\x13\x08z9\x00\xd5==>\ +|\xce\xf4\xcf\xfb\xf6\xfe\xb1\xf8\xd4\xa0.\x9b\x0c\x92\xc5\ +U\xa4A\x80Ad\xc5\x19\x04\x18\x10[Q\x06\x01\x06\ +\xa1\x15f\x10`\x10\x5c\x04\x19\x04\x18\x04W\x90A\x80\ +Ap\x11d\x10`\x04\x17A\x06\x01\x06\xd1E\x8cA\ +\x80\x11\x5c\x04\x19\x04\x18D\x171F\x80At\x11c\ +\x10`\x84\x17\x84\x18\x01\x06\xd1E\x8cA\x80\x11]\x10\ +c\x04\x18\x84\x17!\x06\x01FtA\x8c\x11`\x84\x17\ +\x84\x18\x04\x18\xd1\x051F\x80\x11^\x10b\x04\x18\x84\ +\x17\x84\x18\x01FxA\x88\x11`\x84WxA\x88\x11\ +`\x84\x17\x84\x18\x01Fx\x01!F\x80\x11^\x10b\ +\x04\x18\xe1\x05\x84\x18\x01FxA\x88\x11`\x84\x17\x10\ +b|\xd8\xe2\x0b\x880\x02\x8c\xf0\x02B,\xc0\x08/\ + \xc4\x080\xc2\x0bB\x8c\x00#\xbe\x80\x08#\xc0\x08\ +/\x081\x02\x8c\xf0\x02B\x8c\x00\x8b/ \xc2\x080\ +\xc2\x0b\x081\x02,\xbe\x80\x08#\xc0\x08/ \xc4\x02\ +\x8c\xf8\x02\x22\x8c\x00\x0b/\x80\x10\x0b0\xe2\x0b\x880\ +\x02,\xbe\x00B,\xc0\x08/ \xc2\x08\xb0\xf82\xac\ +\xe7\x97\xd7\xe1\xfe\x99\xfe\xfc\xfe\xe5\x83\x11b\x1a9z\ +\x04\xe2\x0b8w0\x01\xdb\x00\x98~M\xc1\x98\x84M\ +\xc0\x88/\x10\xff,r\x1e\x09\xb0\xf8\x028\x97\xd2p\ +\xf5`\x81\xd3\xd8\xc8\xd7\xcfg\xae\xa1\xf3r%m\x02\ +\x16_\x00g\x95\x09\x18\x0b\x9a<\xd3\xaf)\x18\xd3\xb0\ +\x09X|\x01\x9c_\x02\x8c\xc5\x0b8\xc7(\xc7\xf5\x82\ +\x05K#3]?\x9f\xb9\x86\xe6\xccu\xb4\x09X|\ +\x01:\x9dm\xce7\x01\x16_\x00\xe7\xdc\xf4\x5c)X\ +\x9440\xe3\xf5\xf3\x99kh\xaeq%m\x02\x16_\ +\x00\xe7\x9e\x00[\x84\x00\xce?\xd6q\x85`\xf1Q\xd9\ +\xcc\xd7\xcfg\xae\xa1\xf9\x8e\xebh\x13p\xd3\xf0\x8a/\ +\x80a\xc4\x04l\xa1a\xfa5\x05c\x126\x01\x8b/\ +@\xd63\xd29)\xc0\xe2\x0b\xe0\xbc\x1c\x9a\xeb\x02\x8b\ +\x89J\x22]?\x9f\xb9\x86\xe6\x1e\xae\xa4M\xc0\xe2\x0b\ +\xe0\xfc\x14`\x8b\x07\xc09\x8a+h\x8b\x86*\x22^\ +?\x9f\xb9\x86f\x0b\xd7\xd1&`\xf1\x05p\xae\x0a\xb0\ +E\x02\xe0|\xcd\xca\x95\x80\xc5Aa\x91\xaf\x9f\xcf\x5c\ +C\xb3\x87\xebh\x13\xb0\xf8\x028oM\xc0\x16\x03\xa6\ +_S0&a\x13\xb0\xf8\x02\xe0\xfc\x15`\x1f>\x80\ +sX\x80\x81\xab2]?g\xfc\xf7\x05\x01\xf6\xd6\x05\ +\xe0<\x16`\x1f6\x00\xce\xe5-\x16\x1f2\xec\x97\xf9\ +:\xd6\xb7\xa1))\xd37\xa3SM\xc0\xe2\x0b\xe0\x9c\ +\x16`\x1f*\x00\x89\xcf\xeb\xc5\x87\x09\xfb\xf86\xb0k\ +h\xea\x88~\x1d\x1d~\x02\x16_\x00\xe7\xb7\x00\x83\xe9\ +\xd7s\x00\xe2\x07\xd8\xf4\x0b\xe0\x1c\x17`\x1fZ\xb3I\ +\xc44\x028\xcf\xc7\xb7\xf8\xb0b\xc5\xf7+_\x8ei\ +\xfb\xbc\xb3\xb3\xde\xa8)\xda\x97\xb2N\xe2\x1b;\x06\x97\ +\xff\xf7\x0eG\x88\xb1\xcf\xb3\xee\xe5\xa7\xc7\x87\xcfH\x11\ +^\xa2}8\xe2kJ1\x01\x9b\x803\xac\xb5\xcc\xcf\ +:J\x84\x058y\x04\x1c\x98\xe2+\xc2\xf3\xae\xb1\xac\ +\xcfZ\x80\xc57T\x04\x1c\x9a\x02l-\xcd\xb9\xb6D\ +x^!\xbe\x05-\xbe\x82\x02\x11\xf6\xf4\x96}\x98u\ +\xefF8\xf7\x8f>\x04\xf1\xbdv\x00\x08\xb2\x03\xcf\xf3\ +i\xf7\xac\xf6>3\x11\x16`\x82\x1cn\x22\xec\x80\xe3\ +0\xdd>\xb3F\xe73\xf5\x1dz\xb6\xe9\xb7\xe7\x06\xcb\ +\xfas&\x87\x9a53\xdb\x9a\xca\xf8\xdcg\xfdy\xf0\ +\xb4\x01\x16\xdf>\x07\xea\xf3\xcbk\xe8\x0d~\xfe\xf7\x13\ +^Q\x98y\xff\x8a\xb0\x00\x8bo\xe0),\xda\x06\x17\ +\x5ck'\xda\xba\x12a\x01\x16\xe0\xe0a\x98u\x93\x9b\ +t\xad\x9d\x0c{7[\x84\x05X|\xd3Ne3l\ +v\xc1\x1ds\xddD\xfa\xd1\xc6hkL\x84\x05X|\ +\x13\x85b\xb4\x0d/\xba\xd6O\xf65&\xc2\x02,\xbe\ +\xc9\x82\xd1{\xd3\x0b\xaf5d\x8d\x89\xb0\x00\x0bp\xda\ +h\xf4\xd8\xf4\xc2+\xc4\xd6\x97\x08\x0b\xb0\xf8\x0aG\xa3\ +\xcd\xefKUBl\x7f\x8a\xf0l\x11\x1e\xfe/a\x89\ +o\xac\x7f\xc7\x92\x7f\xfd\xe7\xeb\xff\x1b\xe2\x9bg\x9f\xb4\ +\xfe\xac#\xad\xadL\xfbd\xf4~,\x1e\xa0\x0d1\xeb\ +\xdb\xb8\xe0R\xfbV\xc5\xb33\x05\xa7\x0d\xb0\xf8:H\ +\xaf=/W\xcd\xd4\x8cI\xa6\xb5%\xc2\x02,\xbe\xac\ +:\x0c^|\xd8\xcb\xb7\xa0\xc1\x84Q\xe5y\x09\x83\xf5\ +I\xa1\x09\xd8\xf5\xb37_\x87\x1b\x9e\x1d\x94\xeb\xa5+\ +h\xf1\xe5F8\x04\xc4\xb3t\x160\xc4\x04\x0c\x82\x81\ +g\x0a\x02\xec\x8d\x97j\xa1\xc03v&\xd0\xc2\xaa\xaf\ +J\xfb\xf9\xaf\xcd&\x0aX\xc7\xd62\xf7\xf9\xe9\xd7\x91\ +L\xc08\xb0\xf0\xec=O:\x10`S\x83\x03\x0b\x9f\ +\x81\xb3\x81\x0e~\xbc\x82v\xfdl\x939\xf0\xb1\xbe\xad\ +q\xb6\xf9\xee\x1a\xda\x04\xecpr0\xe13\x82\x0e\x04\ +X|\x1d\xec\xf8\xac\x9c\x15\x080\x0e%\xcf\x0e\x9f\x99\ +\x08\xe7\xf0\xed\xcf\x80\xfd\xfc\xd7\x86r\x90c\xdd[\xf7\ +\xecs\xeb\xe7\xc0&`\x87\x90C\x08\x9f\xa13\x83\x0e\ +\x04\x18\x077>K\x11F\x80\xb1\x89\x1c\xd8\xf8LI\ +\x1e`?\xff\xc5A\x8d\xcf\xd6\x0b<\xfb\xdd\xea\xa9\x09\ +\xd8\xe6q@\xe33\x86\x91&`p0\xe3\xb3\xf6\x22\ +\x8f\x00\x83\x03\x19\x9f9\xf1\x03\xec\xe7\xbf\xdeZ\x1d\xc4\ +\xf8\xec\xa1\x9ck]5\x01\xe3\x00\xc6\x1a\xf0B\xcf(\ +\x1306\x0b\x00\x02\xec\xad\x1e\xc0\x8b}8\xff\xfc}\ +J?\xff\xb5Q\xbc\xa4`\xcf\xd83\xd4q\xf9w\xa1\ +M\xc08H\xb0&\xbc\xa4\xd0\x81\x00\xdb$\x0eZ\xac\ +\x0d\x10`\x00\xbc\xe0\x0b06\x87\x09\x07k\x04\x04\x18\ +\x07+X+^\xf4\x83\x06\xd87\xa0q\xa0b\xcdx\ +6\xd4s\xd9Y\x13\xb0\xb7R\xcf\x06k\xc6\xb3\xa1\xf7\ +\x04\x0c\xde\xd8\xb1f@\x80\xc1A\x8a\xb5c\x0a\x16`\ +l\x06\x07(\xd6\x10\x94s:\xff\x0f_\xc0\x12^\x00\ +\xea{z|\xf8|{\xffXN\x1e\x85\xe8\x9a\x5c\x88\ +\xbe\x96\xec;\x86\x9e\x80\x11] \xd7\xb9\xe4E\xb7\xaf\ +\xe5r$\xf68D\xd7\xf4\x8b=i\xbfQ\xdf\xdb\xfb\ +\xc7\x22\xc06\xb9\xc3\x00\xfb\x13\xfbO\x80mj\x1c\x02\ +\xd8\xa7\xf6\xa1\x00c3\xdb\xf4\xd8\xb7\xd8\x97\x95\x02|\ +\x12_\x9b\x17`\xcd\xd9'\xc4\xe5<=>|.\x02\ +,\xbc\xde\xb2\xb1\x9f\xb1_\xdb\xf3kH6)\xc0\xae\ +3R\x8c\x05Xt\x01\xc4x\x1a\xe9\xaf\xa0Ew\x0c\ +6-\xf6\xbd=m\x02\xb6\x01\x010\x15\x0b\xb0\xe8\x02\ +\x88qD\xe1\xaf\xa0Ew|6$\xce\x06{\xdf\x04\ +lc\x01\xd0\xf8\xac\xce\x1a\xe2S\xa4\xe9Wx\x01\xe6\ +>\xbb3\xc5x\x99=\xc0\xa2;7\xd7\xcf8?\xc8\ +z>\x9cl\x1c\x00L\xc6\xed\x1d}\xc4x\xbb\xc5\x1a\ +d\x86\x18G\x1b\xbc\xa6\xbd\x826\x01;\x00\xc19\xe2\ +\xfc0\x01\x03\x80\xa9X\x80\xf1\xf6\x0a\xd6 \x02\x0c\x00\ +\x080\x00\x080\x00\x080\x00 \xc0\x84\xe6\xcb/X\ +\x8b\x080\x00 \xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\xdf\xf0k\x1fX\x93 \xc0\x00 \ +\xc0\xe4\xe0\xbf\xc1\x8a5\x09\x02L\x07\xae\xfb\xb0&A\ +\x80\x01@\x80\xc9\xc1u\x1f\xd6$\x080\x1d\xb8\xee\xc3\ +\x9a\x04\x01\x06\x00\x01&\x07\xd7}X\x93 \xc0\x00 \ +\xc0\x00 \xc0\x00\x80\x00\x03\x80\x00\x03\x00\x02\x0c\x00\x02\ +\x0c+\xf8\xb5\x0f\xacE\x04\x18\x00\x10`\x00\x10`\x00\ +@\x80\x01@\x80a'_~\xc1\x1aD\x80'\xf4\xe7\ +\xf7/\xff\x091\x00\xa6\xb5<=>|z\x9b\xa5\xd7\ +K\x1487\xc8z\x96\x1c\xa3}\x08\x0eu\x07\x1fX\ +\x83\xcc\xe0\x14\xfdm\xc8\x06\x030\xf9\x8e(\xd4\x15\xb4\ +\xb7]\x9b\x08\x9c\x07\xce\x8bi&\xe0\xb7\xf7\x8f4\x11\ +6\x19\x03\x08\xef0\x01\xce\xfea\x0a1\x80\xe8\xf6\xb0\ +\x1c\x0e\x87C\xa6k\xe8\xef\x88\xb1\x8d\x86\xbd\x8e\xb3\xc0\ +\x04\xdc\xf9\x83\xb7A\x01DW\x80\xc5\x18@x\x83q\ +\x05}\x07!\xb6\x19\xb1\x8f\xb1\xcfM\xc0\xa6b\x00\xd1\ +\x15`1\x06@t\xef\xe1\x0a\xba01\xb6i\xb1?\ +\xedaVO\xc0\x99\xfe\x18G\xab\xc5g\xa3\x03\xa2\xcb\ +-o\xef\x1f\xcbr\xfe?\x08\xb0\xb7n\x9b\x19\xfb\x10\ +\xfbT\x80\x1d\x0265\xd8\x7f\xf6\xa7\x00\xe30\xb0\xc9\ +\xb1\xdf\xecI\x04\xd8\xa1`\xc3\x83}f\x0fN\x1f`\ +\xbf\x864\xc0\x22w8\x00\xa2\x9b\x8f\x003\xec\xc4\xe2\ +0\xc0\xf4+\xba)\x02\xecW\x91\x00\x84\x97\xfa\xde\xde\ +?\x96\xc3\xe1p8z\x14\x98\x5c\xb0\x86\xc4\x97\xf6\x04\ +\xd8fp\x80b\xed\x80\x00\x83\x83\x14k\x06\x01\xc6\x14\ +\xec\xd9`\xcdx6\xb4\x08\xf0\xf9\x07\xc3xc\xf7l\ +\xb0f\xa0\xbc\xcb\xce\x9a\x80\xbd\x95:P\xb1V\xa0\xf7\ +\x04\x0c\x0eV\xac\x11/\xfa\x08\xb0\xcd\x01\x80\x00\x83\x09\ +\x07k\xc3\x0b>\x02l\x938h\xc1\x9a`jW\xbf\ +\xf5\xecOR:H\xbc\xac`\xcf\xd8+\x94\xf5\xf57\ +\x8dL\xc06\x0a\xe0%\x85\x0e\x04\x18\xc0\x8b=\x02\x8c\ +\xcd\xe2\xad\x1ek\x80\xc4\x01\xf6\x17\xb1p\x00\xe3\xb3\xf7\ +BO9\xd7\xbaj\x02\xc6A\x8c\xcf\x1cF\x99\x80\xf1\ +\xd6\xea@\xc6g\x0d\x02\x0c\x0ef|\xc6^\xe4\xf3\x04\ +\xd8\xcf\x81m\x1e\x074>[\xd8\xefVOM\xc08\ +\xa8\xf1\x99z\x81g\xa4\x09\x18\x9b\xc8\x81\x8d\xcf\x12\x04\ +X\x84qp\xfb\x0cqf\x84\xf2\xe3\xcfy\xfd]h\ +\x87\x90\xc3\x08\xeb\xdezg\x9b\xef\xbeOe\x02\xb6\xa1\ +\x1c\xe4\xf8\xcc<;:\x10`\x11v(\xe1\xb3rV\ + \xc0\xe0`\xf7\x19!\xbe9\xac\xfa]_?\x07v\ +@9\xac\xb0\xa6\xadi\xee\xf3\xd3\xdf\xd30\x01\xdb`\ +\x0e~|\x06\xce\x06:\x10`\x07\x96\xe7\x89g\x0f\x1d\ +\xac\xfes\x93\xae\xa1\x1d\x5c&\x08\xac_\xeb\x97u\xd6\ +\xfc9g\x13\xb0\x8d\x860x\xc6\xce\x04:\x10`\xb8\ +\x12\x08\xa1\xf0L\xa16W\xd0\xa6\x09L\x16\xd6\xa85\ +JaE\xaf\xa0\xfd\xe7\x09\x11\x10<;\xf1\xa5\x5c/\ +O\x1e\x95\xc3\x8du\xcf\xdaagmBI~\x06\xec\ +\xcd\x97;\xc2\x22.\x9e\x0ft\x09\xb0khS\x06\xbe\ +T\xe4Y@\x99N\xde\x1dT_\xc6\x12`\xfe\x95\xed\ +F\xc2\xfa\xb3\xe6\x10`\xf1\xc5\xc1h\xddYk\xe4\x08\ +\xb0\x08;\x04\xc9s@Zo\xd6\x17u\xe2{8\xf8\ +\x1644\x0b\xd8,\x87\xa5\xe8\xce\xb5\xbeDx^\x9b\ +\xbfTe\x0av0\xb2}j\x19\xe5W\x9b.\xff9\ +\xac/\x930\xed\xa6_\x01\x16`\x12\x1d\xa6\xd6\x8f\xf5\ +\xc2X\x01v\x05\x0d\x13\xbdh\x9d\x0f\xdb\xcb\xab\xc7\xaf\ +\xff\x9b|\xebE\x84\xe7\xb4\xeb\xf7zM\xc1\xa6_\xc0\ +$l\xfa\xdd\xf672\xfc%,\x00\xe8@\x80M\xbf\ +\x80s\x82\xd9\x02\xecOS\x02\x90\xd9\x9e\x0e\x9a\x80\x01\ +L\xc1\xcc6\x01\x9b\x82m(\x00\xd3\xaf\x09X|\x01\ +\xc83\x01\x03\xe0\xc5\x9d\xfb\x15\xbb>\xf6;\xc16\x11\ +0\x0e\xbf\x17\x5cW\x89\x1f\xbf\x9a\x80\x01`\xe6\x09\xd8\ +\x14l\xfa\x05L\xc1\xa6_\x130\x00\x0cM\x80\x01\xa0\ +\x83\xe2\xbf\xc3\xeb\x1az\x1f\xd7\xcf@I\xae\xa1\xcb*\ +\xf9\xb7/L\xc0\x00\x10a\x026\x05\x9b~\x01S\xb0\ +\xe9\xd7\x04,\xbe\x00\x0c\xa9J\x80\xfd}ho\xa8\x00\ +\xa6_\x13\xb0\x09\x18p\xbe\x90c\x026\x05\xdb\x1c\x00\ +\xa6_\x130\x80\x17}/\xfa\xc3\xa9>\xa5\xfaF\xb4\ +M\x01\x8c\xc3\xf7M\xc6\x98~M\xc0\xe2\x0b@\xd4\x09\ +\xd8\x14,\xc2\x80)\xd8\xf4k\x02\x16_\x00\x86\xd0$\ +\xc0\xbe\x11\x0d\x80\xe9\xd7\x04l\xfa\x05\x9c?\xe4\x98\x80\ +M\xc1\x16?\x80\xe9\xd7\x04\x0c`\x100\x08t\xd7|\ +*\xcd\xfe\x8dh\x8b\x1e\x18\x89oD\xf7\x99~M\xc0\ +\x00\xe2K'\xcd\x03\xecg\xc1\x00cp#\xd7\xb7O\ +&`\x8b\x1dp.\x91a\x026\x05\x03\x90}\xfa=\ +\x1c:|\x09\xebR\xa6/dy\xcb\x04F\x96\xf9\xe7\ +\xc1\xbd\x86BW\xd0\x00\x90-\xc0\xae\xa2\x01\xc6\x90\xf5\ +\x96\xaeg\x87L\xc0\x166\x00\x19\x03l\x0a\x06 c\ +\x7fL\xc0\xa6_\x00\xe7U\xd6\x00\x9b\x82\x01\xc8\xd6\x9d\ +\xa1\xc2\x17\xf5\xd7\x92\xbcU\x023\x89\xfe+I\xa3\x0c\ +}\xae\xa0-f\x00\xb2O\xc0\x91\xa7`\x930``\ +0\xfd\x9a\x80-l\xcf\x07\xb0\x07M\xc0\xb9\xa6`\x93\ +\xf0}\x9b\xde\xb3\x02\xf1\x8d8\xfd\x0e;\x01G\xffV\ +\xb4\xb7\xcc\xff\x9e\xc1O\xcf\xc2\xb3b\xcf\x1a[\xbb\xce\ +<+\xf15\x01'\x9a\x823Ow[7\xbbi\x98\ +\x12\xeb\xcb:\xca\xf9\x92+\xc0\x22\x9c\xfa0(\xb9\xd1\ +\x1d\xa2|][\xcf/\xaf\xab\xd7\x98\xf5#\xbe\x02,\ +\xc2)\x0e\x83\x9a\x9b\xdcA\xca\x9e\xf5\x95y\xfd\x88\xaf\ +\x00\x0bp\xd0\x83\xa0\xe5\xe6>O>b, \xf6\xa0\ +\xf8\x0a\xb0\x08\xa7>\x00znn\x11\x8e\x1f\x8e{\xae\ +\x9a\xad!\xf1\x1d\xf9\x9fo\x9ao\x1b\x8b\xb0\x8d\xed\x10\ +\x15_\xebH|\xa3\xc4W\x80E8\xfc\x86\x16b\xd1\ +\xb0\x86\xf2\xc5W\x80E8\xf4\xa6\x9fq3\x8b\xb1`\ +d]?\xe2+\xc0\x22<\xf9\x86\x8f\xb2\x89}iK\ +(2\x85X|\x05X\x80'\xde\xec\xd17\xb0\x10\xf7\ +][\xb5\xbfT\x95y\xed\x88\xaf\x00\x8b\xf0\xc4\x9b<\ +\xd3\x06\x16b\xeb*\xd2\xda\xc9\xf8\xe77\x05X\x84C\ +l\xf0\xec\x7f;W\x8cM\xba[\xd6\xcc(?\xda\x10\ +_\x01\x16\xe0\xc9\xa2\xe0\x0f\xd6\x8b\xb155\xff\x9a\x11\ +_\x01\x16\xe1\x896\xb6\xf0\x8a\xb0\xb5\x14c\xdd\x88\xef\ +\x5c\x8e\x1e|\xce\x03\xce\x7f\xa6\x0d\x87\x7f\xbbg\xd2\xe2\ +\xd9x\xfe&`\x93\xf0\x04o\xd66\xaa)\xd8\xe1\x1f\ +k\x1de}\xfe\xb3\x0faG\xdb!\xcf\x81w\xf9\x1f\ +(\x07b\xbc\xac\x88\xaf\x09\xd8\x14<\xf0\xdb\xb4\xe8\x9a\ +\x80M\xc01\xd7\x94\xf8\x0a\xb0\x08\x0f\xb8\x89\x1d\x88\x22\ +,\xbe\xb1\xd7V\xe6\xe7.\xc0\x22<\xe4\xe6u\x18\x0a\ +\xb0\x00\xc7_c\xe2\x1bC\xc8o\x11g\x8d0\x02,\ +\xc0\xf1\xd7\x9b\xf8\xc6!\xc0 \xc2\xe2;\xc9\x9a\x13\xdf\ +XNQ?(\x11\x06\xbc\xe8\x88\xef\xc8\x8e>0\x00\ +\x9c\xe5\x02\xec\x83\xc34\xe29@\x0a\xe1\xff\x10\x87\x08\ +\x038\xbf\x05\x18L\x7f\xfe\xfdA|\xf3\x04\xd8\x14\x0c\ +\xe0\xcc\x16`\x1f(\x00\xce\xeaC\xba(\xf9\xf5$J\ +\xca\xf8;\xc1\xae\x9f\x11_\x13\xb0\x0f\x18\xc0\xd9,\xc0\ +>h\x00\x9c\xc9\x02\xec\x03\xa7\x89l\xd7\xb1\xae\x9fA\ +\x80E\x18\xc09,\xc0>|\x00\x9c\xbf\x02\x0cMe\ +\xb9\x96u\xfd\x8c\xf8\x0a\xb0\x85\x00\xe0\xcc\x9d\x9e\x87p\ +\xc1\xef\x08\xb3G\xe4\xdf\x096\xfd\x22\xbe&`\x0b\x03\ +\xc0\x19+\xc0\x16\x08\x00\xce\xd6m<\x90\x1b\x5cG\xb3\ +E\xc4kh\xd7\xcf\x88\xaf\x09\xd8\x82\x01p\x96\x0a\xb0\ +\x85\x03\x803t;\x0fg\x05\xd7\xd1\xdc#\xd25\xb4\ +\xebg\xc4\xd7\x04l!\x0183\x05\xd8\x82\x02\xc0Y\ +\xb9\x8f\x07u'\xd7\xd1\xac\x11\xe1\x1a\xda\xf53\xe2k\ +\x02\xb6\xc0\x00\x9c\x8d&`L\xc3\xc4\x9f\x82M\xbf\x08\ +\xaf\x09\xd8\xc2\x03p\x06\x0a0\x16 \x80\xb3\xaf\x0c\x0f\ +\xb0\x10\xd7\xd1\x5c3\xe35\xb4\xebg\xc4\xd7\x04lA\ +\x028\xeb\x04\x18\x0b\x13p\xc6y\x0a\xe5x\x98\x15\xb8\ +\x8e\xe6\xd2L\xd7\xd0\xae\x9f\x11\xdfvN\x1eA\xbd\x85\ +*\xc4\x80\xf0r\x8b+h\x0b\x17\xc0\x19\xd6\x81\x87\xdb\ +\x80I\x98\x19\xae\xa1]?#\xbe&`\x0b\x19\xc0\x99\ +e\x02\xc6$L\xfc)\xd8\xf4\x8b\xf8\xb6\xe7KX\x1d\ +\x16\xb6\x10\x03\xc2\x8b+h\x0b\x1dp&9\x93:\xf0\ +\xd0;2\x09\xe73\xe25\xb4\xebg\xf1\xf5\x14\xfap\ +\x05=\xc0\xc2\x17b@xM\xc0\x98\x86\x01\xf1E\x80\ +E\x18@|\x05\x18!\x06\x84\x17\x01\x16a\x00\xf1\x15\ +`D\x18\x10_\x04X\x88\x01\xe1\xf5\x14\x04\x18\x11\x06\ +\xc4\x17\x01\x16b@x\x11`D\x18\x10_\x01F\x88\ +\x01\xe1E\x80\x11a@|\x05\x18!\x06\x84\x17\x01F\ +\x88Ax\x11`D\x18\x10_\x04\x18!\x06\xe1E\x80\ +\x11b@x\x11`!\x06\x84\x17\x01F\x84\x01\xf1\x15\ +`\x84\x18\x10^\x04\x18!\x06\xe1E\x80\x11b@x\ +\x11`\x84\x18\x84\x17\x01F\x88\x01\xe1E\x80\x11b\x10\ +^\x04\x18!\x06\xe1\x05\x01F\x88Ax\x11`\x84\x18\ +\x84\x17\x01\x06!\x06\xe1E\x80\x11c\x10]\x04\x18\x84\ +\x18\x84\x17\x01F\x8cAt\x11`\x10b\x84\x17\x04\x18\ +1\x06\xd1E\x80A\x8c\x11]\x10`\x84\x18\x84\x17\x01\ +\x061Ft\x11`\x10cD\x17\x04\x18\x04\x19\xc1E\ +\x80A\x8c\x11]\x10`\x10d\xc1\x15\x5c\x04\x18\x04\x19\ +\xc1\x05\x01\x06A\x16\x5c\x10`\x10d\x04\x17\x04\x18\x84\ +YhA\x80A\x94\xc5\x16\x04\xd8#\x00q\x16Yh\ +\xef/\x90\xef\xb1y})\xea\x03\x00\x00\x00\x00IE\ +ND\xaeB`\x82\ +\x00\x00\x0c\xce\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x01\xe0\x00\x00\x01\xe0\x08\x06\x00\x00\x00}\xd4\xbe\x95\ +\x00\x00\x00\x09pHYs\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x07tIME\x07\xe3\x05\ +\x15\x07#\x02\xa6\xcb\xeb\x99\x00\x00\x00\x19tEXt\ +Comment\x00Created \ +with GIMPW\x81\x0e\x17\x00\x00\x0c\ +HIDATx\xda\xed\xdd\xbdQ\x1dK\x13\x80\xe1\ +\x85\x22\x16e C\xc6\xc1\x800 \x14L\x85\x02a\ +\x80\x01\x86\x0ce@2\x5cC\xa5\xba\x02\x81\xd8\x9f9\ +\xdb=\xd3\xcf\xe3~_\xe9V-\xbd\xf3\xaa\x07t\x98\ +&\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80-N<\x02\x80\ +\xbc\x0e\xf7W/[\xff\x8c\xa7\xcb;g\xbd\x00\x03\xd0\ +:\xb0\x02-\xc0\x00$\x8f\xad(\x0b0\x80\xe0vD\ +\x90\x05\x18@p\x05Y\x80\x01D\xb7Nt\xc5X\x80\ +\x01DW\x8c\x05\x18@x\x11b\x01\x06\x10]1\x16\ +`\x00\xe1E\x88\x05\x18@x\x85X\x80\x01\x84W\x88\ +\x05\x18@x\x11b\x01\x06\x10^!\x16`\x00\xf1E\ +\x84\x05\x18@x\x85X\x80\x01\xc4\x17\x11\x16`\x00\xe1\ +\x15b\x01\x06\x10_DX\x80\x01\xe1E\x88\x05\x18@\ +|)\x1ea\x01\x06\xc4\x17\x11\x16`\x00\xe1\xa5F\x88\ +\x05\x18\x10_DX\x80\x01\xc4\x97\x1a\x11\x16`@|\ +\x11a\x01\x06\x10_jDX\x80\x01\xf1E\x84\x05\x18\ +@|?\xf3xq\xfb\xe1\xffv\xfep\xed\x01u\x12\ +a\x01\x06\xc4\xb7\xf3\xe8\x8aq\x9f\x11\x16`@|\x07\ +\x8c\xaf\x08\xe7\x8f\xb0\x00\x03\xe2;h|E8w\x84\ +\x05\x18\x10\xdf\x81\xe3+\xc2y#,\xc0\x80\xf8\x0e\x1e\ +_\x11\xce\x19a\x01\x06\xc4\xb7@|E8_\x84O\ +\xbd\xea\x80\xf8b\xbe\x04\x18p8B\x899s\x05\x0d\ +8\x14\x139\xe6\xf5\xf3o>\xac\xe3\x97\xe8\xebh\x1b\ +0\x00\x080`\xfb\x85\x1as'\xc0\x80\xf8b\xfe\x04\ +\x18p\xf8A\x8d9\x14`\x00\x10`\xc0\xd6\x015\xe6\ +Q\x80\x01\xf1\x85\x80\xb9\x14`\x00\x08 \xc0\x80\xed\x17\ +\x02\xe6S\x80\x01\xf1\x85\x809\x15`\x00\x08 \xc0\x80\ +\xed\x17\x02\xe6U\x80\x01\xf1\x85\x80\xb9\x15`\x00\x08 \ +\xc0\x80\xed\x17\x02\xe6W\x80\x01\xc0\x06\x0c\xd8\x1e\xa0\xc6\ +\x1c\x0b0\x00\xd8\x80\x01[\x03\xd4\x98g\x01\x06\x00\x1b\ +0`[\x80\x1as-\xc0\x00`\x03\x06l\x09Pc\ +\xbe\x05\x18\x00l\xc0\x00 \xc0\x00\x8b\xb8~\xc6\x9c\x0b\ +0\x00\xd8\x80\x01[\x01\x98w\x01\x06\x00\x1b0\x00\x08\ +0\xc0\x0a\xae\x9f1\xf7\x02\x0c\x006`\x00@\x80\x81\ +#p\xfd\x8c\xf9\x17`\x00\xb0\x01\x03\x00\x02\x0c\x00\x02\ +\x0c\x8c\xc1\xf7\x7fa\xfd{ \xc0\x00`\x03\x06\x00\x01\ +\x06\x00\x04\x18\xc8\xc4\xf7\x7fa\xdb\xfb \xc0\x00`\x03\ +\x06\x00\x01\x06\x00\x04\x18\x00\x04\x18(\xcc\x0f`\xc1\xf6\ +\xf7B\x80\x01\xc0\x06\x0c\x00\x02\x0c\x00\x1c\xc9\x99G\x00\ +\xf4\xee\xf1\xe2\xd6C(\xfa\xbc\xce\x1f\xae\x05\x18@D\ +\x88\x9c\x83\xdeb\xec\x0a\x1a\x10_\xcc\x85\x00\x03\x88/\ +5\xe6\xe3\xc4\x97\x0bX\x22\xf2\xdf\x00\x8b/sE^\ +G?]\xde\xcdj\xab\x0d\x18\xb0\xd9`^\x02\x080\ +\xe00\xc5\xdc\x080\x00\xd4 \xc0\x00 \xc0\x00\xaf\xb9\ +~f\xd4\xf9\x11`\x00\x10`\x00\x10`\x00@\x80\x01\ +@\x80\x01\x00\x01\x06\x00\x01\x06h\xa6\xe7\xdf\xf7\x8a\xf9\ +\x11`\x00\x10`\x00@\x80\x81\xf4\x5cC3\xe2\xdc\x08\ +0\xe00\xc5\xbc\x048\xf1e\x02\x96:\xdc_\xbdD\ +\xfd\xb7}64\x99\xe3\xfbty7\xbb\xab6`\xc0\ +\xe1\x8a\xf9\x08 \xc0\x80C\x16s\x11\xe0\xcc\x97\x0c\xe8\ +\xfd\xb0u-m\x0ez$\xc0\x80C8\x91=\xfe2\ +\xe1\x06!\x07W\xd0\x00 \xc0\x00 \xc0\x00\x80\x00\x03\ +Y,\xf9\xb7\x8e\xe0\xbd\x10`\x00\xb0\x01\x03\x80\x00\x03\ +\x00\x02\x0c\x00\x02\x0c\xf0\x0e?\x88\x05\xdb\xde\x07\x9f\x84\ +\x05\x89\x1d\xbe}}\xf1\x14`L\x02\x0c\x82\x0b\x080\ +\x88. \xc0\x80\xf0\xfe\xdb\xcd\xf34}\xff\xe2\x8bI\ +ik\x7f\x1eB\x80At\x81\x00~\x0a\x1a\xc4\x17\x10\ +`\x10_@\x80\x01\xf1\xfd\xdc\xcd\xb3/2em\xf9\ +\xf7\xf0\x02\x0c\xe2\x0b\xd8\x80A|\x01\x01\x06\xc4w\x1e\ +\xd7\xd0\x14\xb4\xf5\xe3X\x05\x18\xc4\x17\xb0\x01\x83\xf8\x02\ +\x02\x0c\x88\xef|\xae\xa1)\xa4\xc5o\x03\x13`\x10_\ +\xc0\x06\x0c\xe2k\x0b\x86\xf1\xb7_\x01\x06\xf1\x05l\xc0\ + \xbe\x80\x00\x03\xe2\xbb\x8ekh\x06\xd6\xea\xfaY\x80\ +A|\x01\x1b0\x88\xaf-\x18jl\xbf\x02\x0c\xe2\x0b\ +\xd8\x80A|m\xc1Pc\xfb\x15`\x10_\xc0\x06\x0c\ +\xe2k\x0b\x86\x1a\xdb\xaf\x00\x83\xf8\x026`\x10_[\ +0\xd4\xd8~\x05\x18\xc4\x17\xb0\x01\x83\xf8\xda\x82\xa1\xc6\ +\xf6+\xc0 \xbe\x22\x0c\x01\xf1\x15`\x10_ \x88\x00\ +#\xbe\xe2k\x0b\x86\x9d\xb7_\x01F|\xc5W\x84!\ + \xbe\x02\x8c\xf8\x02\x04\x11`\xc4\x17[0\xec\xbc\xfd\ +\x0a0\xe2\x8b\x08C@|\xa7i\x9a\xce\xc65t\xf5\ +\xeb\xe7l\x7f\xb9\x13`\xc4\x97t\xf1\x15\xe1\xf6\x11\x16\ +\xdf|7+\xae\xa0\x11_\x1c\x9aI\xb5\x8a\xa6\xf8\xe6\ +\x9c#\x1b0\xe2K\xca\xed\xd7&\xdcf\x13\x16\xdf\xbc\ +\x7f\x89\x13`\xc4\x97\xd4\xf1\x15\xe1\xf5\x11\x16\xdf\xdc7\ +(\x02\x8c\xf8\xd2E\x80Ex^\x8c\xfd;\xdf>\xe2\ ++\xc0\x88/]\x05X\x84\x19%\xbe\x02\x8c\xf8\xd2U\ +|E\x98Q\xe2;M~\x0a\x1a\xf1\xc5!\x8b\xb9\x10\ +`\x10_D\x98*\xf3`\x80\x11_\xfe?\xc4:\xfc\ +MG\xae\xa3\xe9\xf5/c6`\xc4\x97\xbe\xdd<{\ +\x06\xe2\xdb%\xbf\x0f\x18\xf1e\x9c\x08\x7f\xff\xe2Y\x08\ +\xaf\x0d\x18\xc4\x17\xdb0\xe2+\xc0\x88/\x22\x8c\xf8\xa6\ +\xe2\x0a\x1a\xf1e\xdc\x08\xbb\x92\x16^\x1b0\x88/\xb6\ +a\xc4\xd7\x06\x8c\xf8b\x1bFxm\xc0 \xbe\xd8\x86\ +\xa9\x15\xdfi\xf2A\x1c\x88/o\x0f\xbe\x8e>\x8cc\ +\xf5\xec\xd8\x86\x85\xd7\x06\x8c\xf8\x8a/\xb6a\xea\xc5w\ +\x9a|\x0f\x18\xf1\xa5z\x84m\xc3\xc2\x1b\xc4\x154\xe2\ +\xcb\xdf\x07b\x0f\xbf\x92\xb0\xf5\x0c\x09\xb1\xf0\xda\x80\x11\ +_\xb0\x11\x0b\xaf\x00\x83\xf8\x22\xc4\x08\xef\x11x\x18\x88\ +/\xef\x1f\x96\x89\xaf\xa1w\x9d%!\x16^\x01F|\ +\x11\xe1\xe0Y\x12c\xd1m\xc8\x154\xe2\x0bs\xb9\x9e\ +\x16^\x1b0\xe2K\xe5-8\xd5l\x89\xb1\xe8\x0a0\ +\x0eHDX\x8cEW\x80\x11_\xf1\x15a\xf36R\ +\x90\xdf\xf9\xf4\xb0\x9e>\xb6T\x80\x11_D\xb8\xd0\xec\ +\xbd}^\x87\xfb\xab~\xde\x8d\x99\x1f\xd7)\xc2\x02\x8c\ +\x03\x10\x11N7\x87s\x9eU\x86(\xffy\x9d\xbc\xe6\ +\xd9\x89\xb0\x00\xe3\xd0C\x88S\xcdc\x8bg\xd4\x22\xd0\ +K\xbf_+\xc2\x02\x8c\xf8R0\xc2\xbfg\xa9\xd5\x9f\ +\x1d9\x9b=GI\x84\x05\x18\xf1\xa5@\x8c?\x9a\xa1\ +\x96\x07z\xc4\x9c\x8e\x10\xa4\xa5\xcfM\x84\x05\x18\xf1%\ +y\x8c\x97\xccN\xaf!\x1e%F\x22,\xc0\x88/\xa2\ +\xde\xd5\x0cW\x0d\xb0\x08\x0b0\xe2\x8b\x10\x87\xce\xf3H\ +\x11\xb2\x05\x0b0\xe2\x0bG;\xdc[\xcf\xf6h\x11\x12\ +a\x01F|\xa1\x8b\x10\x8f\x18 \x11\x16`\xc4\x17v\ +9\xe4\xb7\xcc\xfd\xa8\xf1\x89\xfa\x01:\x01F|A\x88\ +\x05\xd8s\x10`\xc4\x17\xf6>\xec\xe7\xbe\x13#\x87\xc7\ +\x16,\xc0\x88/\x84\x1e\xfa\xffzGF\x0f\x8f\x08o\ +s\xe6\x11 \xbe\x8c<\xbf\xc7>\xf8\xff\xfc\xf3\xbd3\ +\xd8\x80\x11_\x08\xde\xc0\x0e\xdf\xbe\xbe\xd8\x80m\xc1\x02\ +\x8c\xf8\x82\x10\x84\x9f\x17\x9e\xfbk\xa7\x1e\x01\xe2K\xc5\ +97\xeb\xd8\x80\x11_\xb0\x11\x97973\xce4\xf3,\xb3\xce6\xfb\ +\xf2+,\xf0c\xe5UV]m\xf5\xed6\xa1\xb4\xe3\ +N;\xef\xb2\xebn\xbb\x1fB\xed\x84\xe7\xc4\x93N>\ +\xe5\xd4\xd3N\xff\xe5\xb5\xcf\xad\xff\xf4\xfb?\xf0\x9a\xfb\ +\xbc\xe6\xcdS\xba\xb0\xfc\xf2\x1a\xafR1\xbe[8\xc1\ +I\x92\xcfp\x98\x7f\xa2\xc3\xe3E. \xa0\xbd|\xf6\ +V\x17\xa3\x97\xe7\xe4\xb3\xb7\x01\x7f!y\x16\x99\xe4\xb3\ +\xe5\xe41<\x18\xb7\xf3\xe9\xb8\x1f\xdf=\xfezT\x9e\ +\xfb_\xf9\xed)\xf1/~\xf3\xffS\xcf=r\xdd\x7f\ +\xe8\xb9\x7f\xf6\xdb\xdfym\xa9\x0cM\xf3\xd8\xcdB\x19\ +\xf5\x0dd\x1f?\xdf\xb5\xfb\xdaU\xec\xee\xd7\xcdKn\ +\xe3\xa7z\xa8\x22\xa5\x00.\xe9p\xe9r\xdcu\xef\x96\ +N\xd8\xa5\xa6\x91r%\xe4\x0fFe\x1b\x06T\x01\xa4\ +\xdag\xcd\xc1\xcdS\xdd\xc9\x81\x9d\xc1\xc7\x82\x8d\xd2n\ +A7\xc1\xf3'z}\xd7N\x5c\xb1\x1c\xae\xefE\xff\ +w%\xben\xb2\xd5\xc4\x7f\xf1O^\xe3\xec1\xf5\xb6\ +\x18\x0a1\x9a\xc7\xf2\xe7Iq\xb9\xcd\xa6}J\xb3\xef\ +A9\x0b\x93t\x1f\x80\xa5_\x98\xf8\xbc-\x15\xbf\xdf\ +\x86\xcb\x89\xa7\x19\x5c-n\x9d\x95;\xb0>}\x8f\xab\ +p\xdf\xb2\xb1\xd1:g\x9c\xe6\xef\xd3\x81iwx\x07\ +\xcfJg\xf7Y\xf4\x8e\x82\x11W\xd7\xcf\xe7\x09m\x1c\ +\xef\xce&\x1eNb\xdbQ\xd1\xb0\x86\x7f\xc6`\xc9@\ +Ky\xc3&RX\xed\xe6FD#Q\xb4\xc3\xe1y\ +e\xbb3qq\xc0\xb0\xa1\xac\xc0\xae1 \x8f_\xc7\ +\x12B\xe1\xb5\xd6\xa3\xccXD\xc6\xe8\x85\x80\xac\xd1\x93[y\xbc\ +\xba\x92\x0ck\xc3\x99ww*|S\xa6Y\xef\xa9+\ +\xe0\x22\xdd\xde\x11\xc9\xf7\xf65\xfd\xdc\xe2t\x8cdA\ +QO\x8c\x87\xdd\xb4Ux\xf9\x9fW\xfd\xdce\xf7\x93\ +\x06\xb1\xcd\x1b\x22\xe9\x83\xd3\x944\xcb\xc7\x5c\xba\xf7\x0a\ +\xf8\xb1\xf0\x00\xa6\x18\xba\x86\xab\xed\x9e)m\xc2\xa8/\ +\x82\xe7}rK>-\xef\xab\xdeIr\x1d\xd2\x9c\xb4\ +\xe1\xf2\xd2G\xfa\xd7\x9ez\x85=y(D\x14T\xf9\ +\xe9\xbb\x8c8o<\xac4\xa0Y\xf0\x5c\x02\xbd\xf8\xb0\ +\xb3\xc2\x81\x5cJ%\x1c\xa2`\xe9vm\xae\xd3\xdek\ +W\xe5_\xdac\xf4S\xd3\x83\xb9\xa8;kZ\xae\x95\ +\x9b.\x1b\x8caQ\xb2L\x8a\xad\x93\xd1c\xa7y\ +^ xx\x82\xaf\x92\xe7x\x07\xc4\x14xL\x85\xdd\ +\x0e\x95\xdb\x0a^\xa83\x98\x96\x00\xc5\xffe\x1a\xec$\ +A\xa0\x0fi\xa6\xc7R\xac\xf4u\xd1\x86D\xdf\xd1\xfc\ +\xdb[&\x1c *+\xa69\x03e\xc6mJ\x10\x88\ +\x8blq\xb1@\x06I\xbe\x12x@\xee\x83J\x9b\xdc\ +\xcd\xa4\xd3\xcayu\x97\x01\x96\xb8\x03X\xc1\x0d\x160\ +{\xc6\x1c\xf0Z\xe2\xb6\xac\xe3\xc7\x06\x9f\xf3\xc9\xae\xc1\ +8K\x0e[\xa93\xc3r`v%\x92\xb6\xab n\ +\x1c\xa4k\x1ed?\x9e\x8b\x85P\x04\x95\xb8%\x81\x5c\ +)\x02\x10S\xecf\x0f\xa6T\x9d_\xd6\xe5\xc2t\x8d\ +\xddG\xe0z\xbc\xb7\xfc\xa66\x03l\x10\xaf\xedg\x19\ +w\xc3\xa9\xdcX\xee=\xea\x96qp\xd7\x7f\xdc\x92\xe0\ +\xdb!>/[\x87\xfd/\xe1\xdd\xd0\x96\xceE\xa8\x9f\ +\xebUUD-\xab\x05+P\xed\xe6\xd8\xce\xc1\xbf!\ +\xe2\xf0zU\x16J\xa4\x22\xfb\xcb\xe5\x06?\x00\x16\xe4\ +\xf3J\x05\x15\xc0\xed{#\xd7n\xdeu\x12\x1d\xdf\xbf\ +3\xd7\xe3\xd6\x0c\x9eT\xda\x96>a.\xbc\x16A/\ +n\xf4\x0eCI\xfe\xa4\x8bLxu\xacD\xb2\x10\x16\ +\xd8\x0a\xbe@\x0d\x99.\x9f\xe1S\x9cd\xe8\xda\xb3\xb8\ +\x16\xea\x06\x0c\xf7\x03p\x98\x93Xv'\x8b\xcd*\x1e\ +x\x00\x89\x06\xcb\x93\x1bA\x8a\xb9}\xb9\xc1\x10\x88\xf5\ +@\xd6\xbb-\x82\xc0{\x15\x0c'\xac'\x8c\x8a3\x93\ +\xfb\x97\xf1\xc4\xde\xc9\xa2\x8d\x06\xf5\xcbl\xd5\x803A\ +$\x1b\xee\x08sy\x02\x16\xf2\xa4\xf7\x1aTu\xb3\xd8\ +\xed\x1aqC\xac\x91\x93\x88\xa4\x91@&\x02\x8a}\xab\ +\x1a\x04\xea\x03\x16G\xfe\xf8A\xf6\xb9\x0a\xd4\x11HX\ +_\xba\x7fL\x15_ \xe2\xa5\xd8\xaf\xd7\xdf\xede\x9f\ +>\xa7\xab\xceOVU\xe0\x12\x0d|^c\x0f6T\ +\x07e3\xf3\xefX\xb5\x8d\x87\xbc\x0f\xc1u.\x05T\ +\x0e\xdc\x1b\xf4x\xf3?\xd3\x17\xd2-m\x96I\xf2U\ +gq\xd5 <|\x03\x9f\x87\xa4\xe7\x87l\xce\xa4\xa8\ +\x03\x18\xd7\xdc=\xe4\x02*\x00\x8f\x88\xe7\xb5I\xad\x9c\ +\xaaJhM\xbePT\x85\xe1\xd4\xa3\xc1\xdbeE\xd2\ + c\xa9\xb3\xe2y\xd8\x0b\xf0E$P4(\x03B\ +\xa9S+\x8f\x18\x04\xce\x81E\x18\xee\x18HM\xdc}\ +\xa4\xbe\x85|o\xa9~\xbe\x14u.\x84\xd7\xec\x07\x8a\ +@u\xa0\xf2\x02dV\x00\xc4\xb9\xd0\x86b\x123\x92\ +\x10\xa0T\xe8\x1b\xca\x05f\x0e\xd0m$\x14\xca\xf1\xc2\ +\xf4u\xb6\xd2Y\xeb\x0eh\x91\xd9)\xadp\xdb\xde\xd8\ +\xdf\x10\xc0\x8c\x0c\x95\xc4\x1fCYT\x97\xd0(\xdf2\ +\xed\x815\xd0\x09*\x08\xac\xbf}\x03[\xd4M\xec\xb0\ +\x9e<0\xf1\x8a\x98D,f'j\xd6\x86\x82$\x00\ +\x22U)\xcef\x01\xffA\x9cn\x9a\xe49\x8b}4\ +\xa8\xf0-\x81\xc5p\xc8\xdcgT\x99\xbf\x15\x9eG\xdf\ +\x5co*\xb7\xec\xb8\x89Sa\xbcq^\x0a\xaa~\x92\ +e\x03\x88\x80\xad\x8b\x04e\xbb\x14\xe9\x07\x8e\xad\xebn\ +!:\xd7N\xc5\x824\x08^E50R\xe8*\xd4\ +G\xce\x87\xc9\xdf:K\xedq\xe0\x0e\xf7\xdas\x87\xa7\ +\xf6TK\x1eTn\x0f\x8aR6\xe1\x0bP\xae\x84\x8b\ +Aun\xd5\x12\xf9I\x98!B:\x8c\xb7\xc2d\xa1\ +\x08\x90\x13R}B\x87\xdan\x94\x85\xf7Q\x91GP\ +V\x0fK\xe1\x16,\xdf\x1b\x99\xaa\xc4\xf6\xda\xc40l\ +3\xc3A\xd9\xd6\xdcUIQ\xdb\x80\xf2\ +:\xb657\xe5uD\xce>\x00+Y\x91&\xd4q\ +\x82v\x0d\x18k<\x13+\xc0\xb0(T\x03\xfb\xaad\ +b \x18\xfb;-\xdd\x0a\xfb\xa7@\x12\xd7\xbb\x9e/\ +\x01(\xd4\xfb\x15\xcdqF\xc8\xde\x86\xaf\xa6+\x90\xc4\ +\xe53\x18\x8a\x1b\xc5q.\x12\xb9\xb1\xe0\xdd\x95e5\ +\xb54\xb6:3+\xd6NT\x9c\x82\x01\xa8\xf5$%\ +K\xe7\x86y\x1a\xccQ\xabaWA\x5cc\x0a\xdc\x1c\ +\xb15\xd2\x84\x0d\xe1\xce@u\x99\x10v\xd4\xcc\xccP\ +d\xadX\x9d\x8a\x0dM\x8a%\x8b\xda\xc96\x98s\x9d\ +Kb@\xcf\xf3\xa1\xa7\xffAO#\x90\x97\xb1\xa1\x08\ + $\xa8\x8e\xadlGt\xa3,T\xe8T\xfc\xa6'\ +F\x8bH\xe82\x87\xc1\xef\x108\xb7X\xafLI>\ +V}\x9d\xef\xcf^\x07\xee\x86\xd0\x0d\xc8*(\xc0\x5c\ +\x8b\x1b\xb7\xea\xc1\x084v\x7f\x9d\x9fH\x5c \x1f\x16\ +\xc1\xfe\xa8\xf3\x05|y\xe5A2\x5cl\xb1\xe3\x22C\ +\xc8\x1dnU\x13D\x80\xd9\xaa\xb1\x07t\x12\x85\x9a\x16\ +1\x98\x8d\xb8\xc7 \x18\x87\xdbAR:\xa6+\x88\xb9\ +\x8c\x12@;\xe0\xef\x07\xdeC\xdd\x87\xe3\xbf\x85\x0b\x09\ +\x9c\x8e\x12!\x00\xba\xe8\xd4\xb8\x9c\xe3u\xd7B\x91\x1d\ +'\xd2q`C\xd8b\x8f\x918.\xaf\xf8\x90l\xf4\ +JP\xc1\x99\xf4~\x16\x05\xa0.\x11\x83tmQ\xe6\ +P\xfa\x80\xf2\xa3\xdd\x10)\xf6\xf5\x1f(\x19\xa4\x9b(\ +\x90\x0b\xc5\xc8z\xa9\x0b\x8bp&]\x89:\xa7?\xe2\ +6j:z\xf5\x11\x91\xf3\x01'\xcf,\x8a\xb2\x1d\xf8\ +\xeaM\x81B^Y\x068\xff i \x17\xef{\xb9\ +\x8eJ$\xc6c\xf7\xd8\x8e \xe9j\x22S\xc7\xd1\xfb\ +v\xc5]Mpf\xce\x19\xf2n\x19\xa7\xacw\xb8\x07\ +\xeb ::\xf0Dy\xf2\x06\xe5r\xcfKQ-P\ +-JZ\x9c]\x1c\x83\xb4\xf1\xd9*'\xb7\x06=\x93\ +\x1a\xd6\xf9\xa7\x84\x86'D\xe0=\xea\xc7\xeaC\xc2\xf9\ +\xeaL\x01#\xe7\xa3\xf6\xcb\xf2\xe2\xf1\xa2\xc1q\x08\xad\ +v\xaaj)\x00\xafh\xa8\xbbL-\x92W\x1e\xd6H\ +\xcc\xf7d&k^\xd4\xee-\x82pre\x98\xd4\x19\ +\x92EB\xf4f\x8a*\x98E_V\x099H*\xfd\ +\x08\x09$D\xf5\xce\xab;\x0aq\xa9\xaa\xca\xc0\xe3\xec\ +\x92%\xec\x1d2\xbd\xae\xa7|\x15\x82l\x15\x98\x08\x1d\ +\xc6i\xe9\x0f\x0f?\xbf\xb9\xb8\xe07O\xf0\x01&#\ +Vr\xa5n\x8a\x9c\x97\xf6Ce!\xe3\xd3\xce+-\ +\x12\xa3|\x81\xa0\xdb\x7fX\xf1\xe8\xee\xb5S\x1d`\x1a\ +~)_x\xc8Z\x14\x82\x99\x03u\x0a\xf8\xab\x8b\x1a\ +I\xc5\x08\x94\xe2D:\xf7\xb9\x7fi\xb9\xebm\x9e\xf3\ +\xf4\xf4\xc9\xb9\xf0K\xce\xedz\x19\x92\xfb\xc7\x13_8\ +\xdb\x90\x15\xe1i\xa9\xae$\x8c\xc7\x03\x90\xa6\x80*!\ +\xe8\xce\x93)^\x19\xb2\x89\xf7\x11\x038\x062\xe7_\ +\xa2\x04\x17\xd7(=\x0c\x83W\xc9\xc8`\x9a=\x008\ +\xb7\x0e\x0f\x10.a-\xee\xe4d#\xcb\xe1d9\x1c\ +\x15\x86;bw=|#\x89f\xbf\x1e\xdba&\xa3\ +\xa7U\xd7[\x9b)\xc1\xfc`\xe6\xfc\x00\x9a6\x03$\ +\xa2\xa3U\xf6\x1e\xde\xa1\xb4\xd4 \xa1\xdc\x82\xa1\xe2L\ +\x9e\xf4\xc4\x89\xf2\x95\x0f2\xe0\xb1\x1e\xd5Q\x17\xa6\x9b\ +V\xc6\xe3C\xd2l\x97'H\x82\xabtd\xe8\xed\x22\ +\x0e2(\x9d(]\x9b\xab\x5c\xa6rd\xe5'\x1e\xe2\ +\x09\xe8\x1a\x95\xe0\xa1z\xa7\xa5\xbd\xb7\x81U/B\xf2\ +l<\xc5_\x84\x0a\x8c\xa3\x95p\x0b_\x94\xacW+\ +\x85h\x222a\x16\x14\x0b\xb9)\xa7\x0b\xbc*o!\ +\x5c-\xe7\x9f\xad\xc6\x84\xdb\x00\xe5>\xc6\xcf\x09Dn\ +\x01\xb5L\x1d(\x07\x04|l\xec\x8fjK|\xa9%\ +\x84\x0e\xf7_\xca\xfd\xf6\xf5\xf9\xf3\x85\x7f\xf3\xd5\xc7\xae\ +\x86\xe1\xad\xb2W\x91\x0f\xc8Y\xc3\xe6\xc8,^\x22\x01\ +\x8bc\x05\x08ok\xc1G\xa5\x89\xea\x7f%\x96)\xf2\ +\x22\xdc\x0d\xbe\x22\xa5+\xb0\x14\xb2\x88\x86\xed)\x09\x04\ +\xc3\xa5\xf4\x96G\xe5\x06N\x84N\xee\xe9\x03\xd6\x86T\ +-\xd3\xe4\x18rQ\x0c\xc0t\x22\xa9\xe7\xdb\xf5\x1f\xa8\ +5\xdfO:\x13\x0c\x00\x0d\xd4\xaf\x12:\xb8*\x0c\x11\ +\xea\xbd\xb3G\x04S\x89r$\x95\x0b\xc1I4\x12\x93\ +\xc3T$5 X\x7f\xc4nRni0\x8a\x01\xf8\ +G]\xa2\x82r\xba*I\x03\x10\x93:/p\x07\x05\ +\x9atC$O\x87\xb7\xc2\x08\x08*\xce\xd80\xf4b\ +/\xdf\xa8\xd8Z\xad\x7f\x805\x92\xfd\x02\xad1\x0bU\ +N\x03ZL\xc8\xa5\xcej*\x95\x0c\x9c\x9b\x08\xb1\xf8\ +\x8e\xd1\xe0Zo~IK\x921\xab\xdd\x85\xca>%\ +\x19\xa4\xa9#,\xf6\x04I\xe7\xdd7\xab\x9aj\xaf\xca\ +\xa9,G\xd6\x8e\x98\xc0\x17\xf0>JVP\xf4\xd5\x16\ +\x1b\xb0&\xd6\xfc@P@ \xe0\x83\x9dR\xac\xb28\ +Wv\xff\x88\xd8_\x01\xdb\xd5\xd7\xf1\x1b\xe9H1\x80\ +tBbE\xa2\xf6@\xb8\xaf\x19\x9f\x93\x03\x15i\x83\ +\xd1B\xf8\xa8\x1aW\xd5\x16$z\x8bO\x15\x06\x08P\ +\xfc7B\xed\xf9\xf7\x17\xc0\x0e\x12*D\x8de \x8d\ +\xc2\x8a\x9c\xddVp1-U\xd0\x05\xe9\x18\xb9\xc4\xa0\ +\xf6V\xb5\xa5z\x5c\xda0\x08\x82\x9fQ\xb8\xd8\x86\x04\ +z\xcb\xa9Q\xce\xe7^u\xb6%\xcec\x5c\x1e\xf5\xb4\ +DK\xb3(\xeb\x93\x09?\x8a\x1a\xb8rp\xefDm\ +\xe6\xbd\xf8\x0ak\xa6\x12\x90\x81p\x1e\xac\x9d\xabPD\ +\xbc\xd9\x12\x84\xe2^\xad\xbb\xb5Q[\xe2%/*\x1b\ +\xb0C^K\x19\xc2g\x96\xb7>#\xa0\x8f\x08o!\ +B\xf3G\xd8P\xdd\xdej\x89\x0e4'\xc8\xfa_\xc3\ +\x82\xd5!\xfc\xf6\x1a\xa6?\xd8\xb1\xc1\x07\x82\x5c\xf1\x02\ +\x12\x82\xdf\xadD_\xa9\x93\xc3\x17\x82\x8f\x8c%\xadX\ +\xa2x` _\xad\x01\x04DZg4\x9d\xd7n\xf0\ +\x95+\x07\xc0\xb2\xcd\x00I\x0ch:\xa7\xb7%r\x09\ +\xb0\xa9T\x11\xe9\x13\x12\xb9\xa8e\xb1o\xb65\x97\xc4\ +\x96\x9e\xfd*9\x08\x1cu\x95PS*\x0c\xa3\xc1\x7f\ +P\xb6un|\x04O\x83\x8bGt:\xb1\xab\x18\x81\ +\x11S\xe4\xd5\xd8\xe7=\x1f\x09H\xcf\xcf7\xff\xe9W\ +_\xd1;\x08\x17\xc5\xb1T\xf2\xa3\xa66\x0a\xc8\xc3u\ +G\xf7l\x03R\x8b`\x82\xfeD\x1cz{\x1d\x11\x94\ +9\xdak\xd1^{\xceZ\xedj\xed\xee\xd5\xd9^\x1f\ +m6\xdcn\x04\x9b=\xe5b\x17\x11\x89\xb2\x03E\xd4\ +~\xe9\xa1\x00\x8f[\xfd\xdc\xe8\x11Dk\xa83\x09\xe7\ +1\xdbs\x19e&?kX\x07\xc8\x08T\xa5\xf4m\ +7\xa6\x1b?$\xaf\x88:\xdc>\xb6\x05\x87K\x02\x13\ +\x14:\x22\x8a\xd0g'\x9d\xcb\xa4\xa3\x9f\xaa:1\xc0\ + \xaa$EH\x18\xd8\xde\x1c\xbf\x9e^\xb5\xf0\xb2>\ +\x9a\xf1\xa1@\x18I\x88\xebX\x17\x81\xfc\x8e\xd5\xd4G\ +\x04\xb9E\x8fM\x07\xc1\xef\x83\x1a6W\xbfM\x14\xa2\ +\xa1\xa9\x02#(0\x16\x96\x11\x02\xb8\x86\x8d\x14Hg\ +\xd4\xdc\x85\x8e\x10\xa5\xea\xe2\x934t _\xfc/\xbf\ +>6\x13\x10\xd0\xfe\xf1\x95\x86j\xbdn\xb0\x95\xc7\xa9\ +W\xab\xb6\x19\xc9\xd0\xb4\x87\xfdj\x0f_z\x8bk\x8f\ +\x81\xbaFL.\xa2s\xec\xc7\xaf\xeb\xb1lD\xf7w\ +\x8fYV\x92\xd0:~u\x9b2PM\xe2M\x0a\xbd\ +\xa5\x1c*]-\xd7\x9aT\xbd\xdd\xa3#\x1att\xb8\ +-\xdc\xbe\xf2\x92\x8c\xfe\xb1\xbbj\x93Y\xfe\x97\xdd\xd3\ +h\x12d0\x99\xa0\x03\x85\xae\x16\x03^\xdf\xc8\xf5\x9b\ +\x88j\xce\x93B:\xe7\xf2?k\x9c:\xf4/w\x8d\ +\xd4\xfd\x86|\xd0\xc9\x88\xfbq\x9c\xef\xb6\xe9\x06\xd8\x92\ +k\xe1\xdb\xb5J\x80\xdd\xd4u\xdc\x11\xe1\x5csT\xf3\ +\x91\x10\xf3\xbf4\xf8\xf3\xdf\xf6\x8c\xbb\xcc`D\x0b\xfc\xaa\xb7\x87\xbc\x15T\ +P\xfe,\x9c-\x0b1E\xd8\x9f\x8d\x06k\x11\x0d\xe5\ +\xac\x9f\xd5Y\xbbK\xc1\x17\x0ad4\xaa\xaa|c\x87\ +\xea\xd3\xd4\xa5\xf6\xe9{\x8f\x0a\x09\x0a\xffA\xed\xedO\ +\x15!e1\x7f\x065N\xdc\xb6\xc3\xd6\x87\xf8\xab\x03\ +\x15e\x04\x802I\x05\x15\x01(Y\x8d\x08\x11\x00\xb2\ +\x149\x03b\xc6\x99\xbf\x83\xbf\xa2\xbe\x99N\xc9I\xcb\ +)\x0f\xf8\x0c\x87\xccS\x5c\x14\xce\xe9:\xdc\x0c\xda\x06\ +\x8cR%\xdc\x05\x11W\xb34\xc7\x17Q\xafZ^\x1a\ +PC\xb2\xbd0L\x9dG\xc7\x16T\x93\x1eA\x8a\xfa\ +\xa4\xf9\xbf>\xb7\xfa\xb7_\x1f\x8f\xaeF\xb6O\xf4\xb9\ +No\x11\xb1\xc1\x1c\x0f\x92-\xe2pJ\xcak\x1b\xf9\ +t\xed\x13\x1d\xcc\x12\xd3DQ-I`\xa8\x09\xa9\x0b\ +S~\xe2\x95\xbf\xe1]j\x22\x7f\x84\xc2\x86\xd0H\xd9\ +\x0e^\xa8\xc2\x101\xfe\xbd'>\x8b\x9a\x03%\x0a5\ +\x8b\xd3P|\xa8\xb6`\xf7x\x86\xa9\xe4\xdb`}\xd5\ +\xf7S\x1f\x1a\x9b\x1e\xeb\xe0\x0c\x5c\xb2z\xc45U\xef\ +\x8d\xca\xd2\x14\xdc\xee\xe1W\xb0|a\xf1(.|\x98\ +N\x87\x9a\xb8N\x07k\xfbVZ\x885\xa2YQ\xa4\ +\x96F\xb3\xdax\x05c\x8e\x97\xc7g\xe8\xb0\xf1x\x9c\ +\xf3\xa0\x11$\x18\xfb \xf4\xff^x\x12\xe55K@\ +\x94l\x02\xa2\xc7+ n\xb7D\xed\x9a\x93f\xa3\xf6\ +G8#v\x8b\x15\x81R\xe1\xf4\x98\xe0PsPm\ +\xd0or\x0c\x82$}\xa7.?\x04v\xdcX\x14B\ +:[\xaduOc{\xbe\x83n\x89\xca&Z\x19\xd4\ +\xd8\x1fUb\x03a\x80ED\xe1\x15\xcf\x18U\x9dS\ +r\xf8\xb5\xde\xfe\x94\xc04\xba\xb7\x14\xffO\x17-\xce\ +3\x81\xce\xb8\xd55\x8d\xbc8\xd5(2\x02M\x84\x9a\ +KiI\xaf\x07x\x94\x98\x1f\xf7\xd0\xd4\x83\xb8\xcb\xef\ +\xa1\xf4\xfc\x0fb\x8fd\xd0\xb94\x22'Rk\x87\x83\ +\xeej\x8c\xd1\xf3t\x1bp\xe0\xcfw\x8cXnwb\ +\xaa?AL\x81\xe7\xb9\xab\xc18\xbfS.%\xe9\x95\ +\x96\xd6\x93\xb0\x16\xff#\x85\xb9#WT\xb2\x0dkX\ +\xb3\x8d\x00\xbb\xaa\xf2\x0b\xd6\xf4G\xb0\xba\x5cbhD\ +\x1c(\x89yc\xab\xd0c\xe9\x96\xd5\xc8\x14\xf0\x00B\ +|\xcf\xfc\xb7\x8e3@\xed\x11\xaf\xdc\xba\x87\xe5h(\ +q\xa8Q\xef1\x93|\x98\xdbg\xf0\xe7U%\x0f\xe2\ +0\xc9D#\xc1f\xcd\x89Z\xeb\xb2\xe6\x04\x5c={\ +\x13\x8d\xeaI\xef9\x8d\xc9\xc4\xf0\x87\xf2|\xae\xf4\x14\ +\xf1\xa6\xf8\x0ehy4\x01\x9c\x94z\xc4\xc8\xb8\xa0V\ +\x10\x04Z\xa3F\x13\xc6mxZ\x9fe~\xc7\x9c~\ +<\x88\xa7B\x09\xfa\xda8\xa7k\x9cc9\xf5\xd8B\ +\xcc\x19\xdfg\xd6`]\x1c\xd2T\x7f\xad\x8b\x83\xc2R\ +s\x83\x02\xa2\xac\xc5u\xe4Z\xf4VI/tE\xf5\ +\xbb\xf5\xe8\xbc\xec<\xf36y\xac\xdb:n\xcf\xbb\x0e\ +\xeb\xb6&;J*\x11j\xa9nk\xc9hZ\xd7V\ +\x1d\xe1\x90a\xb9A\x03\xbc\x98\x15\x17Z\xbf\xa6\xb1C\ +SQ\xbf?\xcc\x13Ap\xeb\x1eA`8\xc5@\xd6\ +y\xff\x94\xd7G\x9e\x0d\x1f\xab\x16%\xa5\xaa\xf1~\xfb\ +[<^c,\xa8\xb4Qn\x03\xa3\xe9\xb8@\x95\xb9\ +[\xbe}\x1dPu&\x9e\x96?\xe2`m\xd0\xedd\ +\xb2\x0cpL\x0f\x82\x08\xc2g\xf3\xf7\x8fk\xd5QZ\ +\xf1\xbeW\xc7 \xb2T\xdf\xfa\xc5\x00\x02\xf2|\xe7F\ +\xed\xd8Y$`\xc4#\xaa:\xab[J\x09\x9b\xf6{\ +\xf4\x84r=\x86\xa2Z\xeeH\xe9P\x9d5DZ\xd3~\x9f\ +\xdb\x031V\xaf\xe3\xba\x8e\x8a\xddb\x1b\x89\x0av\xa8\ +*\xe4\xc2N\x83\xf2O-\x9f:\xf2Y\x13\xb6\x00\xa6\ +T\xb7R-\xc5\xfa\xadp\xd9\xc7\xfax6\xb4\xc2\xce\ +\xcb\x16\x7f\xdf\xde\x82:\x9f:\xcaM\xe0~y\xc9=\ +7.\x1er\x90\x10\x09\xdc\xc4z\x843\xb2o*-\ + \x85/\xb7hSF\xa6CCq\x22\xca\xac\xbcq\ +8\x99?C\xe1B\xddjJ\xb4uKP\x0f\xe9\x8a\ +!j\xa9\x00\xfdl54\x7f\xc6\xce@3\x9c|\xbe\ +\xc17\x0d\x95i\x0c%Y'T\x83o\xea\x84\x8ax\ +\xdb\xba>\xc9\xe3\x0d\x91\x10P\x8f\x0e\xb45v3\x92\ +\x8eoy\xb3FCPRjHz\xd8\xd6N\xdeo\ +R\x83r\xdf\xd4\x1bu\xe1k\x07\x1e\xe5\xb9H:\x98\ +\x12\x8aZ\x1a\x9a\xb2\x80\x8d\x93\x86\x19\x0d\xc6J\xd9\xf9\ +\xcf1\x98\xd7y\xfc\x8a\xe1\x1e\x83\xe96\xb3\xddc0\ +P\x19Y\x12\x96z\xda\xe0<*;\x0b&\x5cQ#\ +\xe87\x98\x10\x02\x08\xb5YyV\x1bNt\x7f\x1e\xd0\ +\x9d\xccTa\x08\x0dG4\x8af\x8bu4\xa2\xfe\x09\ +\xefN\xaa\xce\xfd\xc5\x95*HT\xda\xcb\x1e\xd1\x8eB\ +e\xeb\xe2\xebD$q3=T\xf5\x0b\x14\xe6!:\ +Zt\x12=e\xc6\xc7F0\xec\x142\xc7;\x136\ +\x87\xe7\x9al=\xa6\xad\xb3p\xee{\x8f\xc4\x9a\xa6D\ +\xc8%\xe2\xd5\xe4\x02\xe1\xbe\xa4\xb7\xa7\x8eW\xad\xd0\x1f\ +\xe4\xe5\x09\x1f\xb2\xb4\xf2s\x9a\xadc\xe7\x9a%*\xef\ +i\xb6\xf3\xfb\xb7\xd3\xec\xef\x94\xddO\x8dp\x96\xc7D\ +h\x9f\xebN\x5c\x15\x08\xc0\xb5\xd4\xdb\x82:\xe9Bm\ +\x9bVy\xad-0\x80\xe8\x02ED\x5c\x0eB+5\ +\xea\xc3\xdc\xab\x89\xd6\xc88whG\x0aN\xe7\xd2\x14\ +\x92\xac\xae\xa5fv\x10\x16wd\x072\xd5S\x86\xb4\ +\xe9#\x07\x05\xed\x93(}\x1d\xd2\x1b\x89+H\xc8c\ +\xccS\xe3fp\xb0V\x10\xed\x1a}e}u\x9a\x1a\ +Z\xf7X\x9a\x92d\xf30\xd6\x15\x1d\xbc[\xe2\xb8N\ +\x9b\x7f\xd7(Y\xee\x0f\x16\x85C\x05\xbc\xbd\xa8\xa5\x88\ +\x182\xb4\x09\xa4S\xb8\xf4\xf5Ek\x16M\xa9\xf4i\ +\xbc\xad\xd9@\x80\x19P:\xc5L\xc8v\x9e\x95\xb2\x8e\ +\xa2\x9d\x19O'39w\xc2\x13y\x0dn\x9a\xdd\xef\ +Iv:\xdfIv\xb6\x93\xec\xfes\x92\x1dG\xb7[\ +>\xf3\x98\xf2\x08\xdf\xf8\x0b\xa1\x81wm\x9e\xaf\xc6}\ +'\xc36\xd4\x85rA%>\xd9Yk?\xec[,\ +o\x90a\xffZ\x1e\x14!\xee+I\xb3\xfd\x17\xd8\x9a\ +Z\x0f\xe4\x81M(\x08\xfeGo\xebvm5\x11z\ +~\xc3F.\xcca\xd9X\xd8\xf3\xfe\x0a1iod\ +9hDu\x8dNs\x84;7\x98\xc9:\xa5\xd9!\ +\xce<~\xab\x98\x91\x7f-\xa6\x0c\xccy\xcb6\x1d)\ +

(\ +\xd5\xf1*\xf4Y+\x8eP\x9d\xe9\xaa\xfc'\x9d{\x18\ +\xdd_\xb0\x11Z\x80\x89lX\xa7-\x1dm\xea<\x1b\ +\x02\xfe\x90\x1a Cj\x13\x08'\xf6b\xb6q\xe0\x5c\ +4\xefbM\xf4{\x9e\x0d\xe0\xfd\x9cg'\xe3\x05>\ +\xed\xef<[\xcfn\xb0\xda\xbf\xf6\x9d\x03\x85\xdb\xa1(\ +\xd7\xcf\x84\x90\xd3\xc1|+\xdf\x84\xd0\xa4\xde\xa8\xeb\x19\ +\x82>\xccC\xdd\xd2\x80\x10\xf9o\xa7Y\xeaAUI\ +\x86z'\x8f\x80\xcf;s\x00\x80\xee\xd7\xaan\x19C\ +\xc7&\xe2D\xe1\xe4\xb5P\x85 `\xde\x84%$l\ +\xba8\xc3\x03\x17\x05\xda3H\x91A)\x81\xe6pE\ +cR\x86\x19j9\xab*kn\xf8\xdf\x8e\x14R\xfb\ +\xbf^M\x8d\xe4\xc9]\xd1\xf1w\x16Kt\xda\xe38\ +\xa9*\xb5$(\xed\xa8\x13\x12\x7f\xa1O\x85\x83@{\ +'\x906\xa1\xb3\x1e\xb7\xa5\xb2b\xfa\xa6\xc5,\xf0\x7f\ +\xd3E\x0d'\x17\xf5[\xd9\x8a\xe6\xff\xb6@\xc3k\xf0\ +2d\xb5\x92\x16\xc1\xe7\x90B06y\x1bkA\xaf\ +^\xe9\xb9;x\xe7m\xcc\xd8\xdau%\x01\x96\xbe,\ +\xa7\xb4O\xd9ZJj+\x83\xd6\x1a\x05\x8c\x1f\xd5z\ +*\x86\x8aw\x04\xf8\xd8\x10\xf95\xf4\x8c\xd6\xb7\xb0r\ +'\x16S\xc7\xd0\xe7-\x0at[\xb9i\xe3\xae\xaa\x87\ +A\x1aBC\x17O\xbf\xa3\x7fG\xad\x8fh\xc2\xa2\x1f\ +\xb0\xf8\xb6Xs\xe1.\xc10Th\xcd\xf5\xba|\xde\ +s\xd4\xefr\x22\x07\xa8<\x8f\xd3\xa4\xbe\x18\xfe\x19_\ +\xdb\xc9\x7f$Dt4\xf0$\ +\xd7\xead\xe9}2?\xc8\xd4+\xf7\x1b\xee\x91\xa9\x15\ +\xe2\x9b\xf5\xaaM\xbf\xe6\xad!\xedo\xfa\x95\xb4\xd3\x08\ +a\xc2\x9a/\xe4D\xc3\xaf\xed\xcc\xe7\x8ee\xfc\xcb\xd9\ +BM\xc1^\x03\x939vt\x18\xdd=\xadi\xea\xbf\ +\xcb\xbe\x9ajv\xfd\xd14\xdb7\xeb{4I\x07\xac\ +\xddY_\xaf\xe0_w\xd6\x17\xb4\xd2gGVt\x1a\ +\xc0\xf9\xef\x9cf\x05\xf0\xd3\xaf\x1e\xb9|SD\xbc\x06\ +a\xe0n\xfa\x5c\x16\xf4c\xef\x8c\x1e\xd4\xc0V\x9d3\ +\xb8\xa62\xd5Ol7\xb2Srw\xf6y\xedo\xf6\ +\x9980[U\xb1\xb4\x9f\x0fM\xfc\xddg&\x14Y\ +\xc0gGi\x97\xc7\xe9\xd8\x19\x82\x1e3(\xe3=\xc4\ +dg\x8aET\x8b\xec\xa5\xbe\x17On\xb2\xe2\xa6f\ +\xa0\xa7Z\x12E6\xa8\xa2\x99\xb2\xf5\xa3\xe8\x04lH\ +\xba\xf63}\x9d\xef''\xd4\xc9\xfa\xfd\xb3\x13:@\ +\xb0OO\xe8\xf0^\xc00\xed4\x5c\x9a\x19\xc1+r\ +\xd1\xdbC\xd9\xd4\xe4\x0d\xfc\x9c\xf2\x11\x0b>\xd7\x08\x12\ +Y\x0b\xbb\x85\x0a\xdf\xeeK\xd5\x0c\xbef\xffl\xde\xd5\ +\xb2\xf3h\x9cO\xd3\xe8(DM\x98>\x1ag\xd14\ +\x8b>\x95 \xec\xd86e\x0f[\x84\xb8h\xca^\x1f\ +\x95\xf9\xa6\xecEQ \xc6\xea\x9ekN\x9f\xf2\x9el\ +\xd6\x11=\x89\xee\x0f6\xd8\x9fK\xd2\x1b5\xd6\xc2\x12\ +n\xf9\x19\x9f1\xdeeT\x9a\xfa&\xe1-\x8e` \ +\x03\xeb\xb4\xe6\xa1A!%\x1bwL)\xafI\x0a\xbf\ +\xa8[\x0d\xeezM\xf6\xc0K\x9a\x0d\xb5\xca\xa2u\xa4\ +\xfa\xcd!\x0b\x0dTWD\xbb\xcawB\xf6\xeax\xf5\ +fV\xd7\xbc#\xfci~\x0f\xa5B\xae|\xef\x5c\x03\ + cwv\xdf\xdb/\x9bR\xeft\xfcZ\xf1\xf3\xe7\ +\x92\xd3\xd6\xc0\xcb\xab\x0f$\xccW\x83\x0fT\xb9\xb7\xc1\ +\x8c1\x95\xd4J\xd6\xa8g\xda\xd3\x1aA\x04\x9c\xbb\x93\ +\xb5\xf5q0%@W}\xf2\xdd\x5cEv\xa2{s\ +1KQ\x9a\x80\x1e\x1bk\xfe\x8b\x87~9\x08\x09u\ +\xe5N\xb7\xe3\x8c\xa9\xcfT\xa8L\xef\xd6n($H\ +g\x8c\x0a\x85\xea\x81\xf99\x15\x0a\x01v\xb5\x81\x8aW\ +cW,\x91;\xdfA$\xfbp\x03\x8c\xad\x11\x1d6\ +px.\xa0O} \xc5>qC\xa6\xad;rV\ +\x84\xbf\xcef9\xa98\xfe\xfb0\x0fU\x5c\xa3%Q\ +\x1f\xe6y\xa8-Y\x9d\xf89\x9d}\x9aG%\xa8i\ +\x8a\xd5U*\x15\x11aGf?co\xea&\xd9\x07\ +'\xee\xc7&\xecC\x13:\x91\xbdc\x8c\x1e\xce\xf0\xda\ +\xc4\xd5\xd7\xd3\x1a\xa7ZF\x13k\xa5\xa9\xfb]b\xfb\ +\xf9(\xd3\x82\xfbe0\xcd>\xca$\xa2\xe8\x9b}\x94\ +\xe9q\xfc[T\x07\xbfq\xe0\x7f\xfe\xb8\xc4o\x9f\x96\ +0\x02\xf3'\x7fay\xfa<\xed\xff\x07\xde\xd1\xb1\xc6\ +\x01Gu\xe4\x00\x00\x01\x83iCCPICC \ +profile\x00\x00x\x9c}\x91=H\xc3\ +@\x1c\xc5_S\xa5\x22-\x0evPq\xc8P\x9d\xec\ +\xa2\x22\x8e\xb5\x0aE\xa8\x10j\x85V\x1dL.\xfd\x82\ +&\x0dI\x8a\x8b\xa3\xe0Zp\xf0c\xb1\xea\xe0\xe2\xac\ +\xab\x83\xab \x08~\x80\xb8\xba8)\xbaH\x89\xffK\ +\x0a-b<8\xee\xc7\xbb{\x8f\xbbw\x80\xd0\xac2\ +\xcd\xeaI\x00\x9an\x9b\x99TR\xcc\xe5W\xc5\xd0+\ +\x04D\x10F\x08\xc32\xb3\x8c9IJ\xc3w|\xdd\ +#\xc0\xd7\xbb8\xcf\xf2?\xf7\xe7\x88\xa8\x05\x8b\x01\x01\ +\x918\xc1\x0c\xd3&\xde \x9e\xd9\xb4\x0d\xce\xfb\xc4Q\ +V\x96U\xe2s\xe2\x09\x93.H\xfc\xc8u\xc5\xe37\ +\xce%\x97\x05\x9e\x195\xb3\x99y\xe2(\xb1X\xeab\ +\xa5\x8bY\xd9\xd4\x88\xa7\x89c\xaa\xa6S\xbe\x90\xf3X\ +\xe5\xbc\xc5Y\xab\xd6Y\xfb\x9e\xfc\x85\xe1\x82\xbe\xb2\xcc\ +u\x9a\xa3Ha\x11K\x90 BA\x1d\x15Ta#\ +N\xabN\x8a\x85\x0c\xed'}\xfc#\xae_\x22\x97B\ +\xae\x0a\x189\x16P\x83\x06\xd9\xf5\x83\xff\xc1\xefn\xad\ +\xe2\xd4\xa4\x97\x14N\x02\xbd/\x8e\xf31\x06\x84v\x81\ +V\xc3q\xbe\x8f\x1d\xa7u\x02\x04\x9f\x81+\xbd\xe3\xaf\ +5\x81\xd9O\xd2\x1b\x1d-v\x04\x0cl\x03\x17\xd7\x1d\ +M\xd9\x03.w\x80\xa1'C6eW\x0a\xd2\x14\x8a\ +E\xe0\xfd\x8c\xbe)\x0f\x0c\xde\x02\xfdk^o\xed}\ +\x9c>\x00Y\xea*}\x03\x1c\x1c\x02\xe3%\xca^\xf7\ +yw_wo\xff\x9ei\xf7\xf7\x03.\x8fr\x8b\x0d\ +\x14B\x02\x00\x00\x0dxiTXtXML:c\ +om.adobe.xmp\x00\x00\x00\x00\ +\x00\x0a\x0a \x0a \ +\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ + \x0a \x0a \x0a\x0a\ + \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \ +\x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a\ + \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \x0a \ + \ + \ + \ + \ + \ + \ + \x0a \ + \x0a\ +<$0\x11\x00\x00\x00\x06bKGD\x00\ +\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x00\x09pHY\ +s\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\ +\x00\x07tIME\x07\xe7\x02\x0d\x0c\x08\x09\xf7 \xc1\ +\xef\x00\x00\x00\x15IDAT8\xcbc`\x18\x05\xa3\ +`\x14\x8c\x82Q0\x0a\xa8\x03\x00\x06T\x00\x01C\x87\ +\x1f\x9c\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x05\xd1\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00PLTE\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$\ +$$\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\x00I\x00\ +\x00$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\ +\x00I\x00\x00$\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00m\ +m\x00II\x00$$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00m\x00\x00I\x00\x00$\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92m\x00mI\x00I$\x00$\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00mm\x00II\x00$$\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$$\ +\xff\xb6\xb6\xdb\x92\x92\xb6mm\x92IIm$$\xff\ +\x92\x92\xdbmm\xb6II\x92$$\xffmm\xdbI\ +I\xb6$$\xffII\xdb$$\xff$$\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92m\x92mImI$I$\xb6\ +\xff\xb6\x92\xdb\x92m\xb6mI\x92I$m$\x92\xff\ +\x92m\xdbmI\xb6I$\x92$m\xffmI\xdbI\ +$\xb6$I\xffI$\xdb$$\xff$\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\xb6\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x92\x92\xff\ +mm\xdbII\xb6$$\x92mm\xffII\xdb$\ +$\xb6II\xff$$\xdb$$\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92mmmIII$\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6m\x92\x92Imm$\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$\xff\xffm\xdb\xdbI\xb6\xb6\ +$\xff\xffI\xdb\xdb$\xff\xff$\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92m\x92mImI$I\xff\xb6\xff\xdb\ +\x92\xdb\xb6m\xb6\x92I\x92m$m\xff\x92\xff\xdbm\ +\xdb\xb6I\xb6\x92$\x92\xffm\xff\xdbI\xdb\xb6$\xb6\ +\xffI\xff\xdb$\xdb\xff$\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6m\x92\x92Imm$II\xb6\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$mm\x92\xff\xffm\xdb\xdb\ +I\xb6\xb6$\x92\x92m\xff\xffI\xdb\xdb$\xb6\xb6I\ +\xff\xff$\xdb\xdb$\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +m\x92mImI$I$\x00\xff\xb6\x92\xdb\x92m\ +\xb6mI\x92I$m$\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +m\x92\x92Imm$II\x00$\xff\x92\xb6\xdbm\ +\x92\xb6Im\x92$Im\x00$\xdb\xb6\xff\xb6\x92\xdb\ +\x92m\xb6mI\x92I$m$\x00I\xb6\x92\xff\x92\ +m\xdbmI\xb6I$\x92$\x00m\xb6\xdb\xff\x92\xb6\ +\xdbm\x92\xb6Im\x92$Im\x00$I\x92\xb6\xff\ +m\x92\xdbIm\xb6$I\x92\x00$m\xb6\xff\xdb\x92\ +\xdb\xb6m\xb6\x92I\x92m$mI\x00I$\x92\xff\ +\xb6m\xdb\x92I\xb6m$\x92I\x00m$\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\x00\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6m\x00\x92I\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00m\x92\x00I\x00\xb6\xff\x00\x92\xdb\x00m\xb6\x00\ +I\x92\x00\x00\x00\x00\x00\x00\xcf*\x02\x04\x00\x00\x02\x8c\ +IDAT8\xcb\xb5\x95\xbfK#Q\x10\xc7\xbf\xfb\ +\xb2\xab\x12\x03f\xcd\xc6\xd5\xacDEA!\x9d\x01\xb9\ +\x98\xe2\x82\xe0\x0aZ\x09\x96G\x1a\xf1`5\xb5WX\ +[\xdc\xfd\x03\x81\xb3[,\x05+\x0f]Ar\x85\xe6\ +\x1a\xcbt\x82\x1a\x8c$\xb2q#DQw\xb3s\x85\ +\x11\x7f\xa0\x9c\x81\xdc\x17\xa6\x99\xc7|\x98y\xf3\xf8>\ +\x0e\xcf\xb4\xb6\xf6\x93[X\xf8J\x19\xc3h3\xaf*\ +j\xf9\xd2\xd2N\xce\x0a\x93\x0e\xb9\x1e\x00\xe09V\xeb\ +\xefUv\x03\x9dbZ\xea\xf0\x1b\x09U\xbd}\xacy\ +dpx\xa5u]\x9f>-\x9c\xa73\x07\xfb\xe1\xa3\ +\x5c\x0eb\xc5\x84\xdc\x22\x00\x00J\xf76,\xbf\x84\xa1\ +H\x04\x89\xf1x\xbeO\x09i_\x92\xc9_\xcf\xeb_\ +\x00u]_\xfe\x9d\xfd\xf3=\xbb\xb9\x81\x89V\x8ef\ +\x02>D=.'\xba6\x00\xc0b\x02\x0ek\x8c\xb6\ +\xcaU\xec\xdd\x11\x17\x9b\x9d\xc3\xe7\xd8\xa7o\xc9d\xf2\ +\xc7\x8b1\x1faK\xa9\x14E\x83\x22m\x8f\x0d\x13\x8d\ +*Da\x9e\xa8\x07Dr=z\xf0\x90\x1bUh{\ +l\x98\xa2A\x91\x96R)\xd2u}\xf99\x0b\xeb\xba\ +>=\xaf-R4(R1>B4\xe8%\xea\xae\ +\x03B\xaf\xa2\x07\x0fg\x83^*\xc6G(\x1a\x14i\ +^[\xa4u]\x9f\x06\x00\x961\x8c\xb6\xd3\xc2y:\ +\xbb\xb9\x81\xd5\x81.\xc8\xc5%\xa4\xc5f\ +\xe7\xb0r|\x81Rw\xf8\x09J\xeftU\x87\x95\xba\ +\xc3X9\xbe@lv\x0e}JHK\xa8\xeam\xd3\ +\xcd\xa1\xe9\xf6\xf5\x7f\x0d\xb6\x19_\xc0_h:\x9d\x16\ +M\x7fe\x90\x00\x00\x00\x00IEND\xaeB`\x82\ +\ +\x00\x00\x05'\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00PLTE\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$\ +$$\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\x00I\x00\ +\x00$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\ +\x00I\x00\x00$\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00m\ +m\x00II\x00$$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00m\x00\x00I\x00\x00$\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92m\x00mI\x00I$\x00$\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00mm\x00II\x00$$\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$$\ +\xff\xb6\xb6\xdb\x92\x92\xb6mm\x92IIm$$\xff\ +\x92\x92\xdbmm\xb6II\x92$$\xffmm\xdbI\ +I\xb6$$\xffII\xdb$$\xff$$\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92m\x92mImI$I$\xb6\ +\xff\xb6\x92\xdb\x92m\xb6mI\x92I$m$\x92\xff\ +\x92m\xdbmI\xb6I$\x92$m\xffmI\xdbI\ +$\xb6$I\xffI$\xdb$$\xff$\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\xb6\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x92\x92\xff\ +mm\xdbII\xb6$$\x92mm\xffII\xdb$\ +$\xb6II\xff$$\xdb$$\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92mmmIII$\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6m\x92\x92Imm$\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$\xff\xffm\xdb\xdbI\xb6\xb6\ +$\xff\xffI\xdb\xdb$\xff\xff$\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92m\x92mImI$I\xff\xb6\xff\xdb\ +\x92\xdb\xb6m\xb6\x92I\x92m$m\xff\x92\xff\xdbm\ +\xdb\xb6I\xb6\x92$\x92\xffm\xff\xdbI\xdb\xb6$\xb6\ +\xffI\xff\xdb$\xdb\xff$\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6m\x92\x92Imm$II\xb6\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$mm\x92\xff\xffm\xdb\xdb\ +I\xb6\xb6$\x92\x92m\xff\xffI\xdb\xdb$\xb6\xb6I\ +\xff\xff$\xdb\xdb$\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +m\x92mImI$I$\x00\xff\xb6\x92\xdb\x92m\ +\xb6mI\x92I$m$\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +m\x92\x92Imm$II\x00$\xff\x92\xb6\xdbm\ +\x92\xb6Im\x92$Im\x00$\xdb\xb6\xff\xb6\x92\xdb\ +\x92m\xb6mI\x92I$m$\x00I\xb6\x92\xff\x92\ +m\xdbmI\xb6I$\x92$\x00m\xb6\xdb\xff\x92\xb6\ +\xdbm\x92\xb6Im\x92$Im\x00$I\x92\xb6\xff\ +m\x92\xdbIm\xb6$I\x92\x00$m\xb6\xff\xdb\x92\ +\xdb\xb6m\xb6\x92I\x92m$mI\x00I$\x92\xff\ +\xb6m\xdb\x92I\xb6m$\x92I\x00m$\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\x00\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6m\x00\x92I\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00m\x92\x00I\x00\xb6\xff\x00\x92\xdb\x00m\xb6\x00\ +I\x92\x00\x00\x00\x00\x00\x00\xcf*\x02\x04\x00\x00\x01\xe2\ +IDAT8\xcb\xb5\x951\x8b\xe2@\x18\x86\xdf\x89\ +)\xac\x96\x0c\x11rX\xecFH\x95\xc6\x22\x95]\x10\ +\xd4C\xff\xc2\xc2\x15a\x0fDm\xf7\x1fX\xec/\x10\ +n+C\xfe\x82g\x5cA\xd2YY\xd8\x07\x8c\x16\xe2\ +JB\x16\xab\x83\x8d~W\xe4\xe4\xee\x96\xdb\xe3\x14\xef\ +\x81\xb7\x1a\xe6a\x86\xe1{\x87\xe1\x17\x1e\x1f\xbf\xb0\xbb\ +\xbb\xcf\xe4yn6\x0cw\xd5(\x8a\x9bA\xb0\xae$\ +\x092\x00 \x8a\xd8\xabj~,\xcb\xbc\x97\xcb]=\ +\x99\xe6\xc7o\xc7=G\x07\xc3\x1b\x1c\xa7__.7\ +=\xcf\x9b^\xfb\xfe\x1c\x9c/\xa0(\xe9\xda\xf33\x10\ +\xc7\x05hZ\x11\xa6YZ\xdd\xdc|h\xde\xde~\xfa\ +\x8a\xf7\xb0m\xfb\xde\xb2:\xa4\xeb\x12\xb5\xdb8\x0c\x87\ +8l\xb7\xa0\xd7\xd74\xdb-h8\xc4\xa1\xdd\xc6A\ +\xd7%\xb2\xac\x0e\xd9\xb6}\x8f\xb7\xd7<\xcaZ\xad\x0e\ +\x19\x86H\xae\x0b\x22bD\x84w\xc2\xc8uA\x86!\ +R\xab\xf5Szt\xc1q\xfau\xcbJe\x9b\x0d\xfe\ +\x22\xfa=\x9bM*\xb5\xac\x0e9N\xbf\x0e\x00\xf0<\ +7\xdb\xed>,u]\xfaq\xb2\xd3\xe2\xba ]\x97\ +\xa8\xdb}Xz\x9e\x9b\x15\xc2pW\xf5\xbc\xe9u\xb9\ +\xfcB\xb5\x1a\xc3\xa9\xd4j\x0c\xe5\xf2\x0by\xde\xf4:\ +\x0cwU!\x8a\xe2\xa6\xef\xcf\xd1h\x00\x00\xe1t\x08\ +\x8d\x06\xe0\xfbsDQ\xdc\x14\x82`]\xe1|\x01\xc3\ +\x00\xc3\x99\x18\x06\x18\xe7\x0b\x04\xc1\xba\x22$\x092\x8a\ +\x02p\x8e\xb3\xe1\x1cP\x14 I\x90\x11pa\x04Q\ +\xc4>\x9d\x80\xf3%q\x9cN\x91(b/\xa8j~\ +\x1c\xc7\x05\xccfg\xbd\x08\x00`6\x03\xc5q\x01\xaa\ +\x9a\x1f\x0b\xb2\xcc{\x9aV\xc4`\xf0\xc7\xd1\xfe\x07\x18\ +\x06\x03@\xd3\x8a\x90e\xde\x13\xd2\xd6(\xad&\x13\x89\ +\x8dF\xa7\x1fr4\x22L&\x123\xcd\xd2*\x97\xbb\ +z\xba\xfc\xe8\xfd\x97r\xb8d}]\xbc`\xd9\xa5\xbf\ +\x80\xefEj\xde\x22lL{\x8e\x00\x00\x00\x00IE\ +ND\xaeB`\x82\ +\x00\x00(\xad\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00$\xaezTXtRaw prof\ +ile type exif\x00\x00x\ +\xda\xad\x9ck\x92\x1e\xb7\x12\x5c\xff\xf7*\xbc\x84\xc6\x1b\ +X\x0e\x9e\x11\xde\x81\x97\xef\x93\x85\x1e\x92\xd2\x95\xae\xc3\ +\x0e\x8b\x12\x87\x9c\xe9\xaf\x1b]\x8f\xac\xccBA\xcf\xfe\ +_\xff\xf3<\xff\x83\x7f\x9a\x7f\xe3\x13S\xa9\xb9\xe5\xfc\ +\xf2Ol\xb1\xf9\xce\x1f\xea{\xff\xb9_\xdd\x1b\xed\xf7\ +\xfb\x97\xf8\xfd\xcc\xfd\xf5\xfb\xcf\xaf\x1fx\xbe\x15\xf8\x1a\ +\xee_\xf3\xfe\xae\xef|?\xfd\xfe@\xf9\xaew\xe3\xaf\ +\xdf\x7f\xca\xfc\xeeS\xbf\x1b\xb9_7\xb6\x7f\x82\x9e\xac\ +?\x7f\xd7\xd5\xefF\xc1\xdf\xef\xff,\xe4i\xdf\xe7z\ +\xfc\xe3u\xbe\xff\xfc\xfcn\xfb\xdd\xfc\xef\x7f\x8f\x05c\ +\xac\xc4\xfd\x82\x7f\xfc\x0e-4~wzJ`\x05\xa1\ +\x86\xce\xd7\xc6\xef\xfc\xdd\xeb;\x8e?'\xfe\xd6C\x0c\ +\xfe\x9fm\xf7\xfc\xfa\xe3\xdf\x8c\xf7\xebO\x7f\xb3\xdd\xdb\ +\xbf\xef\x87\xbf\x9a\xe2y\xf3wA\xfe\x9b\x8d\xbe\xef\xbb\ +\xf4\xb7\xef\x87_\x8f\xf1\x7f\xf5\xda\xef'\xff\xe5\x07k\ +{\xff\xfe\xf9\xcf\x1f\xb6;g\xd5s\xf6}\xbb\x1e3\ +\x96\xca\xcf\xf7R?\xafb\x7f\xe2\xc2\x81)\x83},\ +\xf3\xab\xf0_\xe2\xcf\xc5~5~U^q\xe2\xb1\x85\ +7\x07\xbf\xe6\xe3\x9a\xf3.\xbc\xc7E\xb7\x5cw\xc7m\ +\xfb:\xddd\x89\xd1o_\xf8\xea\xfd\xf4\xc1\xbeWC\ +\xf1\xcdOsJ\xd4/w|\xc11\xeb\xc1G>L\ +\xbc\x16\xe4\x91_kq\xf6\xdcf\xcf\x9b\xae\xf2\xe4\xe5\ +\xb8\xd2;n\xe6\xf8\xc4\x7f\xfcz\xfe\xe9\x9b\xff/\xbf\ +~\xdd\xe8\x1c\x85\xaeso\xfde+\xd6e\x06g\x19\ +\xf2\x9c~\xe7*\x1c\xe2\xceg\xd3d\xf6\xb5_\xcf\x1f\ +q\xf3\xfe\xe1\xd8\x80\x07\x93\x99\xb9\xf2\x82\xfd\x1d\xf7\x16\ +#\xb9\xdf\xb1\x15\xcc\xcf\x81\xeb\x12\xd9\xff\xde\xd4pe\ +}7\xc0D<;\xb1\x18\x22:\xba7\xbb\x90\x5cv\ +o\xf1\xbe8\x87\x1d+\xfe\xe9\xac\xdc\x87\xe8\x07\x1ep\ +)\xf9\xe5\x9e\x83oB\xc88\xa7z=\x9b\xcf\x14g\ +\xd7\xfa\xe4\xef\xb7\x81\x16\x1c\x91B\x0e\x05\xd7\x90:8\ ++\xc6D\xfc\x94X\x89\xa1\x9eB\x8aOJ)\xa7\x92\ +jj\xa9\xe7\x90cN9\xe7\x92\x85Q\xbd\x84\x12K\ +*\xb9\x94RK+\xbd\x86\x1ak\xaa\xb9\x96Zk\xab\ +\xbdy\xd24\xb6\xd4r+O\xab\xad\xb5\xdeyh\xe7\ +\xd6\x9dOw\xae\xe8}\xf8\x11F\x1ci\xe4QF\x1d\ +m\xf4I\xf8\xcc8\xd3\xcc\xb3\xcc:\xdb\xec\xcb\xaf\xb0\ +H\xff\x95WyV]m\xf5\xed6\xa1\xb4\xe3N;\ +\xef\xb2\xebn\xbb\x1fb\xed\x84\x13O:\xf9\x94SO\ +;\xfd\x97\xd7>\xaf\xfe\xd5k\xeeo\x9e\xfb\xef^s\ +\x9f\xd7\xe4\xb1h\xd7\x95\xdf^\xe3\xdb\xa5\xfc\xdc\xc2\x09\ +N\x92|\x86\xc7|tx\xbc\xc8\x03\x04\xb4\x97\xcf\xde\ +\xeab\xf4\xf2\x9c|\xf66OR$\x8f\xd7\x5c\x92s\ +\x96\x93\xc7\xf0`\xdc\xce\xa7\xe3~\xf9\xee\xb7\xe7\xfe\xab\ +\xdf\x9e\x14\xff\xaf\xfc\xe6\xff\xcds\x8f\x5c\xf7\xff\xc3s\ +\x8f\x5c\xf7y\xee?\xfd\xf6\x0f^[\xdd*J0\x07\ +)\x0be\xd37\x1c\x80\x8d\x0bv\xed\xbev\xd5\xa4\xfb\ +u\xf3-\xb7qT=\xa1\x97\x02\xb6\xa4C\xa2.\xc7\ +]\xf7n\xe9\x84]j\x1a)WB\xfe`\xd3\x9e\x9f\ +nH\x15\x80\xaa}\xd6\x1c\xdc=\xd5\x9d\x1c\xe0\x19|\ +,%\xa4\xdd\x82n\x82\xe7O\xf4\xfaS;q\xc5r\ +\xb8\xbc\x17\xfd\xddQ3\xdd|x\xd7\xc4\xdf\xf1O^\ +\xe3\xec1\xf5\xb9\x18\x0a1\x9a\xc7\xf2'\xc5\xe56\xef\ +\xecS\x9a}\x0f*R\x98\xa4\xfb\x00,\xfd\x229\xce\ +\xdbR\xf1\x9b\x02\x89\xcb\x09\xa8\x19\x5c-n\x9d\x95;\ +\xb8>}\x8f\xabp\xdf\xb2y\xfc9\xe34\x7f\x9f\x0e\ +L\xbb\xc3\x07xT:\xbb\xcf\xa2\x0f\x14\x8c\xf8\xac\xae\ +\x0b\xe6\x09m\x1c\xef\xce&\x91O\xe2\xbd\xa3\xa2a\xe1\ +\xb7\xc1\x8aA\x96\xf2\x86M\xa0\xb0X\xee\x0d#pD\ +\xd1\x0e\x87\xc7\x95\xed\xce\xec\xcf\xf0\x01\xc3\x86\xb2\x02\xaf\ +\x8d\x05y\xfe:\x96\x11\x0a\xaf\xb5\x94\x19\x8b\xc0\x18\xbd\ +\x10\x90\xa7\x8c\xe6\xea\xaeu\xc8\x1f\x07\x12\x91\xcf\xdaZ\ +\x0a6\xea\xba\xd3\x99{x?<\xe6\x98\xe5\xf4\x14\x07\ +\x05\xdc\xaf\xb1v\x05\xcfV\x02\xf8p\xde\xee]\x96o\ +\x04\x1f\x0f\x0c3o^\xff\xe0\xc5\xb3\x1f\xdf\xeb\x1b\xba\ +\x0b+7?\xde\x86\xe9\x1b\x19\xf6\xceZ\x09\xa7\x15Z\ +2\xc7;\x05\xc1\xf4J\x12\xdd\xa0\xf3R\xf7\x06\xb0\x9e\ +w\x8d\x9e\x1c\x019^]J\x86\xb5\xe1\xcc\xbd;\x15\ +\xfeP\xa6Y\xaf\xae\x80\x8btwG$\xdf\xbb\xd7\xf4\ +s\x8b\xd31\x92\x05\xc5SO\x8c\x87\xb7i\xab\xf0\xfd\ +\x7f^\xb6\xef\xfd\xa4Al\xf3\x81H\xf6\xe04%\xcd\ +\xf21\x97\xee\xbd\x02~<\x0b\x17`\x8a\xa1\x8b\xb8\xdc\ +\xee\x99\xd2&\x8c\xfa\x22z\xde\xdc\x92O\xcb\xfb\xaaO\ +\x92\x5c\x04\x16\xae\xd3\xd5\xa5\x8f\xf4\xdbQ\xcf\xdf=\xf5\ +\x0a|\xf2P\x8c(\xa8r\xdfe\xc4y\xc3a\xa5\x11\ +\xc8\xeb$\xe8*>\xec\xacp \x95R!\xd7\x08\x83\ +%\xc7\xb7\xb9N{\xafa\x95\x7fi\x8f\xd1OMX\ +\x8b\xba\xb3\xa6\xe5Z\xb9\xe9\xb2\x81\x18\x16%\x0b\xa6\xd8\ +:\x19=\x09\xc8\xdd\xec\xb5\xca\xf1\xb6`\xd8L?@\ +K\x0f\x8b\xec\xc1\xd0-\xaf\x5cR+\xb5\x13{\xad\xbd\ +\xab\xf7\xbe\x1aDb\xbb)n\xd0\xc4Jrx\xdeJ\ +*t\xbdQ\xaf0e\x8c\xf4\xa5\xa6\xdb%\x99\x17G\ +\xc6\xe0\x9d\xcc\xd6\x12m\x15\xfdt\xa7U\xf0\xe2\xb6B\ +^*<\xf6#\xae j]\xdc}\xbdy\xb4\xed\xe3\ +\x18+\xe6\xd5|\x8c5\xf3\x15\xc4H*\x1b\x93\xf5\xb6\ +\xb9\x09\x91\x0d\x0d\x0e\xee7\xfe<\x7f\x05\xa2?\xbe\x12\ +\xf9/\x18B\xa0\xf6Q\xea\xc8\x80bfa\xde\xcfsdG+\xe7\xd5]\x06\ +X\xe2\x0eXE\x81Y\xc0\xec\x19s\xc0k\x89\xecQ\ +\xd6\xf1c\x83\xcf\xf9d\xd7\xa0\x9c%\x87\xad\xd4\x99a\ +\xb9\xb4+\x91\xb4]\x05q\xe3 ]\xf3 \xfb\xf1\x5c\ +,\x84\x22\xa8\xc4-\x89\xe3\xfaP\x05`\xa6\x18\xce\x9e\ +L\xad:\xbf\xcc\xcb\x95\xe9\xe6\xe0\x08\x5c\x8f\xf7\x16,\ +\xf7`\xdc\x0a\xf1\xda~\x96\xeb\x8a#\xd0\x7f\x14\xcb\xbd\ +\xf3\xd65\xc6\xc1]\x7f\xdf\x92\xe8\xdbz\xc3\x9da\xff\ +Kp7\xf4J\xe7\x22\xd4\xcf\xe5\xaa*\xa2\x96O\xb5\ +h\x05\xaa\xdd\x1c\xdb9\x088L\x1cb\xaf\xca\xb2\xed\ +g_*7\xaf\xf7\xec\xf2y\xa5\x80\x0a\xe0\xf6\xbd\x91\ +\xe3{ZQ\xed$:\xbe\x7fg\xae\xc7\xad\x19<\xb9\ +\xb4\x95?o\x98$t\x04\xbd\xb8\xd1;\x0c%\xf97\ +]d\xc2\xa9c%\x92\x85\xb0\xd8\xed9\xf0\x05j\xc8\ +t\xf9\x0c\x9f\xe2$E\xd7\x9e\xc5\xb5P7hH%\ +\x0b\xe6$V\xddIb\xb3\x8a\x07\x1d@\xa2\xc1\xf2\xe4\ +F\x80b\x82\xd9\xe5FC \xd8\x03Y\xef\xb6\x18\x02\ +\x1fV0\x1c\x05C\xc5\x97\xc9\xfdk<\xf1\xeed\xd1\ +~\xde\xb1\xfdR\x95'\xc2x\x1c\xd9\xcf\x1bwt\xb2\ +\x5c\x01\x0dI\xef5\xa8\xcaf\xb1\xdb5\xe2\x86P#\ +%\x11I#\x81L\x04\xd4xz\x110\x07\x0a\x04\x16\ +G\xff\xf8A\xf6\xb9\x0a\xd4\xc9aT\xd6T\xc6T\xed\ +\x05!^\x8a\xfdz\xfd}\xbd\xec\xd3\xc5\xaf\xae2?\ +\x1f\x96U \x13\x0d|^c\x0f^\xa8\x8e\xd9G\xe6\ +\xf7\xb1j\x83\x16\xe5\x10\x5c\xe7R0\xe5@\xbdA\x8f\ +7\xff'{y\xc8\xb7\xb4Y'\xd9W\x9d\xe5Y\x83\ +\xf1\xf0\x07\x08=,\x1d\x92\xa0\xf7\xeb\x0e`\x5cs\xf7\ +\x90\x0b\xa0\x00<\x22w\xd7&\xb3r\xaa*\xa1\xf5I\ +\xbePT\x05\xe2\xd4\xa3\xc1\xc7eF\xf2 c\xa9\xb3\ +0'\xd2b\xb3\x0a*2u$\x0a\xa4N\xad\xe2\xf0\xad\xa0\ +)\x5c.>&\x04\xeaxx\x0e\xeae\xd4\x17\xd2\xb7\ +\x94\x22\x98\xdd\xb5u\xf3\x08\xc2b>E\xce\x9e\xba\xd0\ +#\xc3$\x0d\xdc\xe2}/\xd5Q\x89\xc4v\xbc\ +<\xb6#F \xef\xd0'\x14l{\x96]rW\x13\ +\x9c\xd9s\x86\xbc\x1b\x22$\xadw8\xac\x83\xe8\xe8\xa0\ +\x13\xd5\xc9\x1b\x92\xcb;o\x87}%\x14W\x8b\x95\x18\ +\x88\xe3Iq_\xfa9\x05\x0e\xce\x8a\x9e\xf8J\x87\xe0\ +U\xc4\x00\x98Sg\x85\x9a\x0c(\x89\x80\x95\xfc\xddZ\ +.\xea\xc5T]\xbb\xb8\xfaPE\xdb]v \xe4\xa9\ +2\xad\x02\xab\x14f\xc48\xcai\xc0\x22@\xc7\xb7\x22\ +B\x86\xc3%\xdc\x7f\xdc:\xac\xd7v\xac*\xca\x16T\ +Z\x11\x83\xf3\xae\x8f9\x8a\xe0^a~d\xacM\xf1\ +\xc9\xbc\x98r\xc8d<\xfcI7(\xab\xab\xfc\x9cZ\ +\xbeL\xe8\x0f\x15\x82xr\xb0\xb6\xe5\xc1q\xca2y\ +J\xf8PxL;\x02/,\xe1\xde\x5cr\x09\xf4\x02\ +e\xa2\xe9:\x0b\xc6\xb7\x0d\xa5\xef\x837\xfd\x92\x87\xea\ +\xf7A\xaahQ<5\xb0\xbb\xa8\xdc\xb8I\xa9\x18\x10\ +1\x98QIV3\x95 \xadD\x0b\xca|)\xe9C\ +\xbe\xb2x)m\xd6\x82Y\xf0\xf6\x18\xb1\x22\x8c\x84 \ +\xb8'\x5c.\xcdJ\xf8D'I)b\xf9Z5\x92\ +\xe3\x92\xae\xae\xef\xfa\xe0\xd1\x17FN![56\xef\ +\xf2\x1b\xf5\x0a\xe3f~.|\x1a\x87\x13i\xc4o\x22\ +Y\xb1[;\x92\xbb<\xbb}\xd5\xf7eq\xcfG\xec\ +\x945C\xa2\xf4`\x13\xa9\xd9`\xe1\xfc\xf6\xd4af\ +I\xb4\x0b\x11\xe7c\xf5\xce\xab3\xdd7\xce\x84\x10Q\ +\x9af\x97$D\x1d%\x84\x0cN#\xd6\xab\xb0{\xdf\ +\xda\x1e\x91\x22\xbc[\xfa\x9d^\xd6\x11\xb8\x06\xfe\x12\xac\ +\x905\x1eW\x01\xe5\xe3\x89\x15\xa8\xaar\xb3WX\xf0\ +\x1e\x01\xd9\xbc\xf1\xf2\x02\x96\x8a\x1eP\xf4\x80\xd7*\xdd\ +\x85jt#\xa5\x19\x9a\xe7\x97\xd0\x8a\xa7\xac\xf5P\x87\ +g\x0e\x04\x01\xc5\xa7.(\x0a\xf5:\xc0\x84\x12h\xda\ +\xe7\x96\x1cDH\xbfb\x08\xcbPZ\xf2K\xfe\x05i\ +\xb7\xa1\xb7\xb3\x07=\xdf\x93^\xa8\xf2P\xba\x13\xf2\xa9\ +\xae\xa4\xd2JPAU\x03Z\x90\x5c\x07\xa2B\xccP\ +|r\x0e\x05F\xf1\x86A\xfb\x97\xd4\xec\xc1\xd5\xe8\xb4\ +\x22\x84\x93\x0au\xa6\x92\x0c)\x0c\xa3N\xeb\x8c/j\ +\xf7\xcd&\xb3\x8e\x81\xe7}\xf4\xb9\xa2\x15\x00\x8dX\xbe\ +?,b\x93\xa2S\x91B%\x9e\xc9\xb4A\x15\xdeZ\ +\x95\x80c\xc2\xbb\x11F\xfc\x08\x96\x0c2\x8cN\x1e\xed\ +=\xbcC\xe7\xaa=\x05\xd9\xc1\xd8K\x01A\x10N\xfc\ +x\xfd\xe5\x83lHa\xb6\x88\x8do\xea\xd6\xab\xc0\xed\ +#^\xdf\x15\xfb\xc9\x92\xb1\x00\xb2J\x81AegJ\ +e\x82>l\xaet\x99\xea\x9d\x85\x91x\x8a\x07\xa1-\ +\xc5\x83\x86H\x87\x96\xa8\xce\xdf\xa9\xce\x8a\x12\xbe\xe2?\ +t\x22\x84\xaf\xa97BFG5U\xd4\xc8\x22\x9e\xe6\ +G\xed(\xd6\xdd /'q\xedK/\x82@\x14\xd4\ +\xc2l\x16WnS\xac\xf61\x8d\xa4\x80\xe4F\xf0{\ +`+\xa3\xfe\xaa\x8f\x8d\xb7\x84\xf2\x10f\xea\xcba%\ +S\x0a\xd8w:k@\x8a\xdc\x1ar\x01\xb2\xbb\x0b\x1f\ +\x1d\xe2xl\x08\xef\xb2\xef\xe2\x94\x0c\x8f\xb2\xca>\x93\ +\x12\xec\xb5\x9e$\xa5'X\x8f\x81\x9a\x1aw\x1b\xda+\ +\xe8H\x17L\x11\x13\x0ae\x81\x06\x9b\xc8v\xda\xc0Y\ +U\xd4\xc3\x99\xd0t&8\xe1o\xbc'\x05 \xdf\x02\ +@\x8e\x16e\xd5\x0b\xc5\x87\xe7\x0cW\xde\x9a\xc8\xf5\xac\ +\x86yq\xcfT\xec\xe8}\x83\x82\x10F\xe0V\xb6:\ +2n\x87\xc8:b\x02\x0d\xc32t\xbe\x9a\xd2bK\ +\x10\xc9&r\xd6n\x8f\xee\xf9\xe3\xc2$!\x01\x1dS\ +\xc9H\xf0\x15\xea\x14\xa55\xf8\x11\xaa\xd5\x85\xfa\xf5i\ +(oj\xd5\x00\xee\x04\xc48T\x1a\xcc\xc0\x8d\xa0I\ +Yk\xe9u\xa9y\x99\xd5b\xa0\xd4\xba\x8c&\xa5^\ +\x03cz\xaf\xf8Q<\x82\xc7\xa5\xdbM}\xbf&\x0b\ +\x91+~t\xd0X\xaf\xfa\x99y\xe1AD\x1fOM\ +0\x97\x06h\x92\xd5\x84!!\xb7\xd7\xc0V{\xb3\x00\ +\xf5\xcf\x0c\x02\xa6u\x1e\xa4\x07\xdcm t\xa1\x85\x5c\ +\x19Q\x1dG\xbc\x06\x12\x8f\xa8\x92d\xcc\x8e\x92\xc8\x12\ +(RBb\xf8\x8d\x0aU\xea\xea\xc1\xdfrp\xbb\x5c\ +c?A\x90;X\x09\xba\x03C:\x02j\xf1y\xed\ +jE\xc1\x9f\xcaf\x05\xa0\xe0\xcd\x12\xb1\x0d\x0d\xa0\xee\ +\x91\x08\x88\xaa\xb5\xa4\xcd\x9e]R\x14#\x9dk$\xe0\ +\x16>2z\xfa\xc8J{\xd3*\xd3:\x1c\x85$\x80\ +U[\xeb\x05D\xf5M\xbd@\xaf\xce\xf8\x8f\xa5\x1e3\ +\x15E\x07T\x83\x89\xc8\xd2\x12\xa9{g\xef\x10|\xa7\ +\xe4\x08D\x17\xa0\x07\xa8!0\xe4k\x8av_\xb7h\ +\x7f\xc0[\xcdFf9\xa9s.1\xbbu\xb13\x19\ +-\xa9\x9b\x89\xb3\x84\x1e\x92\xe2T\xfdj\xf53\xab\x9b\ +)\xf4P\xab\x02'P[\x1fX\xb0\x96\xebQ\x82@\ +\xf8\xadWF\xd6EF\x8d\xbc`A.u\xe6|\xc8\ +ativJ\xe8;FC\xbe\xbc\xf9\x05tkx\ +N\xee\xc9-\xd8Y\x91\xfc\x0c\xb6\xc9\x22A\x82\x03\xf9\ +\xf4\x18\x17\x81\xd4\xca\xdb\xe6'\x9cL\x01M\xd4P(\ +T\x94T\x87G\x97I]\x1b(\x11\x16\x0d\xe7\xa7\xae\ +P\x14$\xd1\x00 \xe9\x98\xec.\xacVw\x1b\xab\x06\ +B]\xbdR\xbfa\x13\x10,\x84\x1c\xc2P\xc2\xe4\xd9\ +\x03\x9eCH\x9f\x0cC\x017\xb2uf\xa2xcU\ +\xa7\x1d8*>UT\x15U\x80\xf5\xfc\x82\x94ts\ +\x14|\x84\x08\xbf\xe7\xb1\xf6\x1b\x04\xae\x01\x0b\x8449\ +\xdc3\xf29\x81\x95\x8a\xa0\xb8p\x1c\xf2\x8f\xda%\x80\ +\x94\xda\xbd\xa2\xc1\x09\x96\x02\x0f\x5cMY.\xaf\x05\xfd\ +\xe4\xfb>f\xb7\xfd\x0b=)_!l.\xf6D\x8f\ +oY\xa8\xdb\xe5\x19\xf0\x88\x88G\xdf\xe5\x1e\x97v\x12\ +\x88#R\x10\xf3\x1fwC\xbez\xa9\x08D\xae \x8d\ +\xaaM\xaaO\xed\xd1\x80\x8e\x07\x1c\x0bn\xa8\xc7\x04\x8e\ +7\xe1\xafi\x86\xcd\x05\x1aeh\xeak\x97.\xd9]\ +c\xff\xc1P\xa4\xd2\x9e\x1fQ\x0d\xbc(\xaa\x0fI\xd7\ +A\xad\x8aN\xa5\x0e\xbcj\xca\xf7W\xbd\x9a\xaa\xce\xf9\ +\xc3\xa7j\xfc\xdd5[jw\x8e\x0e\xc3J_3\xcd\ +Zi\x00\x805\xda:\xf5YU\x84(\x82\xbb-c\ +p\xbb\x22N\xd6\x13X\x8f\x83\x22x\xd4\x1d\xb5HB\ +g\xdf\xee#\x91\x07W\xc0\xe9\xbca\x02_\xb5-\x06\ +#\x00\xaaU\ +\xd1o)C\x14\xc3ZK\x1bV\xc5\x11\x96I\xd4\xb3\ +\xab\xb3\xd8rj\x08\x91\x09\x19\x9bmI\xadY\x17\xa2\ +v\x11\x0b\xb4\x07u\xefI\x99$\x07[)\xc9\x87$\ +\x9a\x08\xfd\xbc\x17_\xd1\xfb\xf0(\xea\x16j\xcd^<\ +\xd7\xf5\xb5\xea\x92\xfamQ\x14No\x0bq\xa5\xe4>\ +\xff\xf0\xba\xde\xb6H`L\xa42\xd1\xe4\x1a\xf0\xbd\x91\ +\xe9\x1dt\x03\x14\x97\x92\xb9\x7f\xe9g\xc9\xc7\xeaP\x90\ +\xa0\xe8\xd59A\xdd\x020Z9)\xaa\xe8=\xc4\xd5\ +W\x97\xdc\xf0\x85\x04\x07\x15A.\x16\x88\xc9p\xc8\x0e\ +wo\x808d\x85\xe99\xef\x171\xda\xf5\x81\x97\xf0\ +\x8a\x01eK\xcc\xea\xaf\x89\x8a\x0d\xfe\x112\x90/u\ +U\x80\xca\xa2F+\x14\xef\xb6W\x93$\xdeF\x1d]\ +B\xa7\x90J\x8b\xe2\x22f5\x1a4;NO\x22\xe3\ +\x1d\xe4en8)\xa0\xfc\xba\xf2\x10!\xdfI\xed\xa5\ +a\x98\xe4\xd4\x19\xd1\xd7\xe7\xe7\x0f\x7f\xf9\xea^4\x82\ +^\xe4\xdbN\x19\xb6~$N\x9f\xa1\xc7\x19\x97\xb6)\ +d<\xd8\x86\xb4\xef;\xd0k\xb6Q\xf4\xdf\x98\xed\x14\ +\x04\xb6\xdbn!\xc8\xc2\x1f\xbd\x09\x22\x8eH\xe7\x1d\xea\ +z\x90\xbb$c^\xb3\xae\x81\xfaTO\xd49\xec\xa2\ +M\xda\xc3\x02\xd4\xb2\x1f\xb1\xc1\xa0`R`\xd6\x0eD\ +U\x00\xbb\x039\x04{\x03=A\x0cK\x91\xfb\x8cz\ +\xac\xf0\x81\xd0\x9fR\xaawS\xe9-\x97\xacZ\xc3P\ +\xbd6.\xc4\x9a\x13W\xf7\x10\xa9}\xa4%\x98\xaa\xad\ +C\xa7\xde#\xf2\x99\x00\xcaTl\xc4\x92:\x026Y\ +r\xd4\x05#\x99\x93\xa0\x91`Q\xbf\xca'\x9bU\xd2\ +\xfeHk\xa5\x98\x83\x0b\xb4\xe6?\xbaV\x11\xf9su\ +\x86\x0bK\x1b\x0d\xdc\x98\x9ck\x0d\x8e\x14r\x96\x1f\xd5\ +\x8d\x02\xaaWQ+J\x1d\xc9\x98P\xd9\x17\xc6^\x85\ +u\x1e\x093\xab\xf3S\x17\xd2yTq{\xf40L\ +\x068\x228\x9c\xaa\xfb\xd0\xe2\xd3!\x8e\x97$\xa0\x1a\ +\x0b\x10\x0dT6\xbc\xef\x93Mn'+C\x12\xec\x94\ +5\xb8\x10\x11\x01C7P\xf3\x80C\xec\xb5~\xfb\x94\ +D\xe4\x17\xe7\xd8\xc8#E\xad\xed\xe5\x9a\xbb\x1bq\xd9\ +]\xd3\x8e\xcb\xaa\x0e2\xeb\x90\x12T\x0b\x98\xdc\xc4F\ +8#\xe7 ]`\x91\x1d\x03?\xe4\xfe\xe7vk\xde\ +\xa6\xb6\xeepF\xc5\xde\xcb\xafA8\xd59\x0cJ\x01\ +\xa42e\x8d\x044\x9c\xbd]\xafY \xa5M\xcd\xdf\ +A\xfc\xfcgT;t\xd9\xf06\xf8\x04\x0d\x06\xb4\x7f\ +\xb4\xa3+\xbc\xcc \xe8}\xd7\xb4\xdb\x09\xb7\xc1\x12\x11\ +\xa8\xef\x8d\xa3<~u9\x14\xb5\x89r\xb4\x81\x18\xf7\ +.\x09\xa2\x0e\xf4\xbcs!m5\x93P\xb3\x9eH\x0e\ +O\xc8\xa0\xda\xa4\xbc9\xd7\xa0\xb2\xc1\xa8\xbbe\x0b0\ +\x88+a\xf5\xa5-r\xb5,j\x22\x8b\xd1\xf8s\x8d\ +>\xe7\xa6\x1aK%\xbf=\xe6\x00r.mY\xf3p\ +\xd5\xaf\x0a\x8c\xd4\xcb\x90\x8c(\x02o\xb0\x19x^\xc1\ +\xf5\x10q\xb46f\x15\xf7\xdb\xee\x88\x00\xc1\x08f\x10\ +\x019\xdaE\xfda\x03h\xe4\xe7k\x8a\x05\xf7\xc3\x9a\ +L\xc8\xe83h\x08n\x8d\x83+KY\xd0[\xe9\xb6\ +7\x8dRP\xca\xf0r\x89et\x14O\x18\xa4\x13\xd9\ +O\xcc\xbffg\xbdV\x80\xbe\x12=j'6.\x82\ +\x13q\x99\xc8\xb0\xb6\x90\x00\xd7\x06d\x10\xac\xc8\xc3m\ +\xe5BM\xa71x\xd2C\xd9E\xed\xf7\xbb\xcd\xd2\x88\ +;5P\x8c!:B\xb2\x19\xbeS\x1c4\x84\xe4\xa0\ +\xdf\xfe\x06$\x15\x05\xb5e\xf0\x8d@\xd0\xce\xe3\x83=\ +-\x22-C\xf3\x17\xd3y)G\xa5\xbe\xc4\x16\xd5m\ +\xf86\x14\xab\x15\x88\x95F\xab7\xde\xc3\xab\x14\xad\xb5\ +=?\x01_n\xc0\xab\x7f\x0d(k\xdc\xc3\xdf\x15\xce\ +\xdb\xe7\x12%\x04\x91a\x93\x80\xa73Q\xb9l\x07\xc2\ +w{\xdd\xa7\xa9\x0d$H\xfaB\xd9n\xa8\xe0\xc5\xc7\ +\x84\xcf\xa8\xaeA\xfdE\x89\xcc\x8e\xe9\x9f\xbe\xb6\xd8\xcb\ +\xd3\x81H\x83\x0d\x0dT(S\xe2\x05\xba\xae\x90\xd4\x8e\ +\xb1'\x9cN\x15%\x85Ha\x13\xafa\x1b\x1f\xa7\x1a\ +5b\x8c\xad\xabI\xb7\x9f\xa5\xc6\xe2\xc0D;J\xa1\ +rK8\x89\xa5\x1d\xec\xe3@\x0c\xc9WH\xd8\xee\xd2\ +\xf9\x90\x03\x87\xe0M\xcb&\x88`M/\xea\xa8\xc2g\ +\xdc\xd6\xe0\xc0{\xfa\x1d\x05\xf8\xb7\xe4\x1dU\xc8\xfcJ\ +-4\xe9\xc4\x8f\xdf\x7f5\xd0y\x98\xbct\x7f\xaa\x8b\ +\x14op\xe3\xae\x96\xc6Q\xe5 <\xae\x9f\xb6\xc90\ +\xf5n\x13o\x85\xc1>\x8d*\xa0V\xf0O\xa3 @L4\ +\x8d\x09\x1b\xa5\xc8\xc4\x09\x8b*\x91\x15b\xb8\xe8\xdfI\ +\xf6\xf1_\xe9\x1e\xa4\xcb\xdaz\xe6Q0\xaa\x9a\x9f\xcb\ +\xba\xe0!\xe7\x1b_\xd4\x8e\x19\x80\xa2\xf1i\x85\xde\xbf\ +\xcf\x00\xfcl\x14\xd8\x00\xc2~\x8e\x82\xf7\x9b\xe2=\x13\ +Vg\xe3\x07\xc9b\x18\x7f\xc1\x9aR[9\x09R\xe1\ +Ku\xfe\xcb\x10\xeb\xfb\xfc\x1eb%I\x09{\x9b\xa3\ +Jw\x7f\xbb\xde0\xad\xde\xdb<\xa6\x86\xa3_\xa3,\ +!]\xf1\xaa\xc9H-\xc0\x95\xf4t\x94{\x87\x1bP\ +K\x09\xd1\xd5\x0a\xfcc\xed\x1d\x82\x04\x80\xb6d\xb4\xbb\ +A0A{\xb9N\x5cF}\xcamh\xf6\xe7\xe3\xf0\ +\x1aA\xcbE'\xaayK\xc0\xab\xe1\x12\xe3~c\xbb\ +#\x08\xce\xd9\x00B\xfe\x06\x10\x5c\xf9\xd9!\x1d\xdf\x0e\ +\xa9\x88UM\x8f\x18F2\xc9(\xb2w]\x09\xa7\x96\ +\x9e\xb4\xb6FJ\x88\x00\x99M\xf4\xbfj\xffI5\xbb\ +\xf9d\xff\xc6\x10\xec\xd0K*:T\xe1\x8c\xaeoH\ +f\xd7\xfd\xa8\xb5\x1a\xa6\x0e\xfb\xdcq\x822\xfdo\x96\ +\xa9\x8d\x9c\x84Q\x93\xb5\xef\xad\xe5r\x97\xf0\x5c\x92\x07\ +\x01\x1a\x95\xf8\x06hD\xc9\xb4%'\x01\x01gG\x00\ +\x12\x06\xda3\x09\xb1\x1b)P\xc9\xccw^\xaa\xa8c\ +$^\x12\xd4\x86\x96h\xfa/0\xa2J\x07\x01#\xca\ +\xd1\xa0J@\xeb'\xc4\x01u\xae\x03\xbc\x98\x95\x98\xae\ +\xee!t3\xf4Y\xb3\x93z\x05\xa2\xbetcc3\ +\xd9\x88\xc97\xdf\x12\xe5\xae\xb6\xfe\x1dX\xe0G\xd3\x22\ +t\x0b,\xbem5\xcc\xfdg\x886\xe5\xd5k9\x11\ +\xb2\xb6\xa7\x1b03)\xd3\xd4\xe1\x0e\xe4\xaaG05\ +{\xbc\x8ad14d\xcf\x11m\xde7\xdcF\xf4\xd4\ +\x14y\xf4\x01\xd2\xa3\x9d\xc0y'\xfa'\xd5\xfc\xa6\xed\ +\x1d\xb2.Q\xc7\x1f\x9e\x1e\x1b\xfc\x9b\x88|#\ +V\x83\xf4Y\xf3\xb1\xde\xda\xd06\x1f\x0b(?\x03o\x9a\x09\xca\xcd\x06*Y\xfb\xcaY\x8a\ +}\xa0'\xd50\xa9\x1ae\xb0\x03U\xe7\x8b\x8d\xacv\ +_\x1a!C\xdd\x13\x11\x8fx+~\xf2\xf7]\xb2\xb6\ +[\x16\xe6i\xd6\xaa\xa2\x8c\xa1\xff\xec,\x09\xfab\xe2\ +~\xb5\x9c\xc2\xd8\x9a\x1e\xd3Ia\xde!\x06a\xd1k\ +S\xaf\x948\x9d\xb7\xf2`\xff\x10%K\x8a\x7f\xd3\xf5\ +q\x0cW\x00%\xc895\x1b\xf0WMX\xa1\x92\x8c\ +\xd0}\x1e\xb0\xe6\xe2\x016]\xef\xc37\x5c\xff\xde\x99\ +\x83$\x83\xea\x88\xdchy\xc0\xb5\xfc\x1d\xe2\x05`|\ +\xd3\x88\x1e\x02\x16JUu\xf6E\x03\x84f\xc3\xf53\ +\xc1z\xb5\xe27\xf6\xbe\xd1\x9a\xe9\x1b\x1eNw\xc2\xa4\ +\x88]\x13\xa4\x0fH\x0c\x98\x9a\xf1\x97\x8d&\xfa\x1f.\ +\x86i\xe2\x9dz\xbe\xc3\x82\xe9\x0e\x9e\xed;\xd0\xe0\xfa\ +\xdd\xa8\xcb\x9a\xe7W\xc9\xfeJK\xb1^\xad\xc3\xb3\x9a\ +\xf5\x04s\xdfs\xc9z\xd3\x19\x84/\xd4\xbe\x09Y\xbf\ +\x9b\xe6x\x22\x90'\xd7\xdb\x84l~lDV\x04t\ +\xfc\xeb\xb4j@bl\x9b\xec\xae6\x9a\xab\xf8\xc2\xa5\ +k\xdbx\xac\x1a\x0a\xe0\xc3\xa3S2q\xa9`\x8dY\ +\x07F\x97\x1c3\x19e\xba\x9b[\xa4f\xf9v\xd4(\ +\xdfk\xec;Wj\xc3\xe82\x85\x95I\xd4\x11\xa1\xff\ +.\x0d\x09\x92s\x0bci@\x02\x16\xa0\xbdz\xd8U\ +\x1b\xdaIG\xa0\x96\x16@#\x9d\x88s\xf00\x9d-\ +\x22\xd9\xed\xec\x06K}\xbbmf\xa6o\xb4\xb2\x9fU\ +.%w\x9a'\xeb\x84\xa96\xbd\x9d\xba\xf5\x1a\xcf\xd7\ +yH\x91\xe4;\x9e\x9f)\xd9;y\x1b\xcf\x87s\xb4\ +\x07\x9d240q\x8f\x9eeW\xee\xc8\xbf5\xc4\xfd\ +\xb9\x93\xffN\x8f&\xbf\xfe\xb6\x81\xa2\x9e\xbd\x1dO\xd2\ +\xf3\x90Y\xabj\x80S\xc7y\x04H;\xc3\x13\xc8\xb8\ +\x01j\xac\xfaR\xc0l\x9e>mk\xde\x12\xcc6\xa2\ +am\x22\xc3\xd0v\xe9_{\xfay\xb3\x8a0\x14@\ +\xb2\xdf\xe9\xa4\xf7\x19yW\xe3\xb5\xb9\x0dPci\xa3\ +\xf6\xedBw\xcd\xa4\x0cL\xa4\xcd\x04\xc3\x82:\xee\xc1\ +\xa1\xc7:\x0b\xaa\xd1\xc4'\x19!\xf5D\x12\x5c\x90E\ +D\x9dK\xe3c\xc1\xdb\xc2\xc9:\x14\xf8d\x98\xa6\xb8\ +\x8e\x09\x8at\x99\xbf\xb3\x03D\xc0\x9e\x1d\x19\x01(\x11\ +\x8b\xf7\xc8\x08I\x83\x05\x90\x0c\x05\x88\xcd\xd2\x9c\xe7\xdf\ +\xce'a\xb0g\xe2`5v\xba\x86\xdf\xc8w;\xd1\ +B\x81\xa7\x16\xda\x89\x16\xf5\xe9\xaa\x9dhixZ'\ +Z\xf6?\x9dF\xaa\xcf\xab\xceJ>.l;P\xe3\ +\x07\x8f\xce\xe4<9\x83\xf8\xd4\x81\x9a\x94\x0d\x0b\xa9j\ +6\xa8g\x9d\xfe\x1d\xdd7.\x975\x1fD\xd9{\xd4\ +\xe5\xad\xa2\x02\xdd\xb5\x18 \x06\xfbk/\xdf#\x5c\x94\ +\xa7f\xfd\x9f\xa5q\x04\x18\xbaM\xf7\x85\x8fb\xb5\xa4\ +l\xb3cI\x0f\xe8R\xef~\xb8\x1da\x5cw|\xe1\ +~\xc2\x8a\x80\x8d\x0d\x16\xafZCe\xae\x81\x90\xb7\xbd\ +\xc7\x16~F\xb2\xe0\x82\xd0\x9a\xdf'\x93\xa4\xe3\xd5h\ +\x8a3\xdc\xb3Q\xfb\x1b\xb7\xf8\xa1\xa3\x02=\x96xb\ +i~\xbb\xd6\x10\xfa\xbe\x17W\x03\x14\xfd<\x1d\xb8\x1c\ +\x98\xd4\x1aN\xcag\x1d\xdf\x12YQ\xc7Fi6\xfb\ +\xd1.\xeep5\x03c\x1f\xfa\xe5\xeb\xa1\xda~\x9dE\ +z\xfe8\x8c\xa4N\x1dO\xb5P\xa0$\xb2\x04\x1ez\ +\x8f\x92Q\x94\xb5\xc3\xa3P\x00\xa0\xbe\xd3C\x7f\x89\xa6\ +'}G)\xf6\xfa\xd7\xe3IJJuC\xcb\xcf\xd1\ +\xa1\x0bu\x92\xc4\x0d\x92\xc4wk\x9a\x0f\x80\xa2\xc3\x89\ +\x07\xb7\x0f\x8d\xf6\x82\xc9D4\xe4\x16\x92L\x91\x0f:\ +g\xcc7\xd1~\xd0\xa3\xf33\x15\x09\xff\xfd\xa6\x22\xf7\ +7\x15\xf9x;Ub\xbe\x11)\xfcN\xf8IB\xc4\ +q\xdb\xb9\xbc#\xd6-:}\xeaF\x5cjL\x8f\xa2\ +s\x1a\xc1\x1f\xc3+\xdem\xb8G\xd4V\x87\x7f\x92N\ +\xe5\xe8\xd8\x01\xfa\xf3\xef\xd3\x05\xff<\x5c\x00x\x02\x1d\ +\xdeN\xe8\xcd\xa8\x03\xde\xd0'\xd8)\x14N\xf4\xa3\xe8\ +0\xf9\x9b]\x8d9\xdb@\xf5\xa2\xce\xab)`B\xf8\ +\xbd\xe7\x90\x95!C\x91 \x89!\x92\xf6\x9eG\x16\xd7\ +P\x13W,\xd3D],K\xef{\xfc\xa1R\xf1\xc2\ +\xd5\xe6P\xfd\xb09\xd4\xc6\xdb+\x80\xdeAA\x1d\xf3\ +\xa5\xa8\xc3\x9f\x0f\xa2(\x12\xc6\x18\x00\ +@\xd344\x1a\x0d\xa3\x5c.\xa3V\xab\x11Y\x961\ +==\xfd5\x1e\x8f\x7f\xef2L\xa9T\x8a\xe4r9\ +\xa4\xd3\xe9/\x87\x87\x87\xdfvww\x11\x89D\x10\x0c\ +\x06I__\x1f\x01\x80N\xa7\x83\xa7\xa7'PJ\xf1\ +\xe9\xd3'211A\x06\x06\x06\xb0\xb5\xb5\x05\xc6\x98\ +\xbc\xb0\xb0\xf0\xf7\xc6\xc6F)\x95J\x11\xd2\x1d\xb3X\ +,\xfe\xb9\xb7\xb7\x87d2\x09\x93\xc9\x84N\xa7\x83\xfb\ +\xfb{\x9c\x9c\x9c\xe0\xe2\xe2\x02\x8a\xa2@\x14E\xf8\xfd\ +~\x8c\x8d\x8d\x811\x06]\xd7\xb1\xb4\xb4\x84P(\x04\ +I\x92~\x8b\xc5b[\xa6B\xa1\xc0NOO\xffZ\ +[[\xb3E\x22\x11\x08\x82\x80\xa7\xa7'\x10BP\xaf\ +\xd7\xb1\xb2\xb2\x82\xeb\xebk<>>\xa2\xd9l\xe2\xf8\ +\xf8\x18\x0e\x87\x03N\xa7\x13f\xb3\x19\x83\x83\x83\xc8\xe5\ +rp\xbb\xdd\xd2\xe2\xe2\xe2\x1f\xa6\xd9\xd9\xd9\xcf\x9b\x9b\ +\x9b\xbf\xf7\xf7\xf7\x1b\xc1`\x90h\x9a\x06\xf2#8T\ +U\xc5\xd4\xd4\x14\xa2\xd1(B\xa1\x10noo\xd1l\ +6\xc19\xc7\xe4\xe4$8\xe7p:\x9d\xb8\xba\xba2\ +.//\xfb\xbd^\xef\x11m\xb5Z\x89J\xa5\x02\x9f\ +\xcf\x87\x970\x00\x18\x1e\x1e\xc6\xe8\xe8(zzz\xd0\ +\xdb\xdb\x0b\x87\xc3\x81\xee\x9d\x02\x00!\x04\x9a\xa6\xc1\xe7\ +\xf3\xa1R\xa9\xa0\xd5j%\xa8\xa2(2\x00\x88\xa2H\ +8\xe7\xf8H777(\x95J\x00\x80\xf1\xf1qP\ +J\x01\x00\x9cs\x88\xa2H\x00@Q\x14\x99r\xceM\ +6\x9b\x0d\x8c1|\x04l\xb7\xdb\xc8d2xxx\ +\x80\xd7\xeb\x85\xdf\xef\x7f\xde\xe3\x9c\x831\x06\x9b\xcd\x06\ +\xce\xb9\x89\xe2?d\x18\x06\x0e\x0e\x0ep~~\x0e\x87\ +\xc3\x81h4\x0a\xab\xd5\xfa\xe1yJ)\xd5UU\x85\ +\xa6i\xcfc\xbc\x05\x9e\x9d\x9d\xc1j\xb5\x22\x10\x08@\ +\x10\x84\xb7\x00h\x9a\x06UUA)\xd5\xcd.\x97+\ +\x0f\xe0\xd7F\xa3a\x0c\x0d\x0d\x11]\xd7\xdf\x19\x92\xc9\ +\xe4\xbf%B\xbd^7\x00\x10\x97\xcb\x95\xa7v\xbb}\ +\xd9\xe3\xf1\xa0\x5c.\x831\x06\xc30^\x198\xe7X\ +__G&\x93\xc1\xd1\xd1\xd1\xbb\xf4\x8c1\x94\xcbe\ +x<\x1e\xd8\xed\xf6e*\x08\xc2\x8e$IJ\xadV\ +#\xd5j\x15\x16\x8b\xe5]\x8aJ\xa5\x82R\xa9\x84v\ +\xbb\xfdj\xddb\xb1\xa0Z\xad\xa2V\xab\x11I\x92\x14\ +A\x10vh8\x1c\xd6DQL\xc8\xb2\x8cl6\x0b\ +]\xd7a6\x9b\xdf%}\x9b\xccl6C\xd7ud\ +\xb3Y\xc8\xb2\x0cQ\x14\x13\xe1pX#\xdd>\xeb\x96\ +\xc3\xf6\xf66\xe6\xe6\xe6022\x02M\xd3\xc09\x7f\ +~N\x94RPJ\xc1\x18C\xb5ZE6\x9b\xc5\xcc\ +\xcc\x0c\x02\x81\xc0\xd7x<\xfe\xfd\xb9\x1c~f}\xfd\ +\xbf\x05\xfb3\xbe\x80\x7f\x00\xa1\xec\xdc\x87\x9e\x22p\xd1\ +\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x06\x15\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00PLTE\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$\ +$$\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\x00I\x00\ +\x00$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\ +\x00I\x00\x00$\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00m\ +m\x00II\x00$$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00m\x00\x00I\x00\x00$\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92m\x00mI\x00I$\x00$\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00mm\x00II\x00$$\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$$\ +\xff\xb6\xb6\xdb\x92\x92\xb6mm\x92IIm$$\xff\ +\x92\x92\xdbmm\xb6II\x92$$\xffmm\xdbI\ +I\xb6$$\xffII\xdb$$\xff$$\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92m\x92mImI$I$\xb6\ +\xff\xb6\x92\xdb\x92m\xb6mI\x92I$m$\x92\xff\ +\x92m\xdbmI\xb6I$\x92$m\xffmI\xdbI\ +$\xb6$I\xffI$\xdb$$\xff$\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\xb6\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x92\x92\xff\ +mm\xdbII\xb6$$\x92mm\xffII\xdb$\ +$\xb6II\xff$$\xdb$$\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92mmmIII$\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6m\x92\x92Imm$\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$\xff\xffm\xdb\xdbI\xb6\xb6\ +$\xff\xffI\xdb\xdb$\xff\xff$\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92m\x92mImI$I\xff\xb6\xff\xdb\ +\x92\xdb\xb6m\xb6\x92I\x92m$m\xff\x92\xff\xdbm\ +\xdb\xb6I\xb6\x92$\x92\xffm\xff\xdbI\xdb\xb6$\xb6\ +\xffI\xff\xdb$\xdb\xff$\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6m\x92\x92Imm$II\xb6\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$mm\x92\xff\xffm\xdb\xdb\ +I\xb6\xb6$\x92\x92m\xff\xffI\xdb\xdb$\xb6\xb6I\ +\xff\xff$\xdb\xdb$\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +m\x92mImI$I$\x00\xff\xb6\x92\xdb\x92m\ +\xb6mI\x92I$m$\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +m\x92\x92Imm$II\x00$\xff\x92\xb6\xdbm\ +\x92\xb6Im\x92$Im\x00$\xdb\xb6\xff\xb6\x92\xdb\ +\x92m\xb6mI\x92I$m$\x00I\xb6\x92\xff\x92\ +m\xdbmI\xb6I$\x92$\x00m\xb6\xdb\xff\x92\xb6\ +\xdbm\x92\xb6Im\x92$Im\x00$I\x92\xb6\xff\ +m\x92\xdbIm\xb6$I\x92\x00$m\xb6\xff\xdb\x92\ +\xdb\xb6m\xb6\x92I\x92m$mI\x00I$\x92\xff\ +\xb6m\xdb\x92I\xb6m$\x92I\x00m$\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\x00\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6m\x00\x92I\x00\xff\x00\xb6\xdb\x00\x92\ +\xb6\x00m\x92\x00I\x00\xb6\xff\x00\x92\xdb\x00m\xb6\x00\ +I\x92\x00\x00\x00\x00\x00\x00\xcf*\x02\x04\x00\x00\x02\xd0\ +IDAT8\xcb\xb5\x95\xbdOZa\x14\xc6\x9f\xf3\ +\xe2\xb5TP\xb8aPP\xee*\x13\x9b\x18L\x1d\x1a\ +\x05M\xfb\x0f\x18\x8d\x10c4!i\xd3\xad\x8eMG\ +];\x90`\xfa!\x8d\xc6\x7f\xa0\xc6\xcft\xa0\x95\x88\ +\x1b\x13\xa6K{Q\xd0\x81\x5cP\xb0\xc6+\x9c\x0e\xb7\ +\x12\xdb\xf8Q\x12\xfb\xcc\xe7\xfc\xde\xe7}O\xce\xf3\x12\ +\xae(6\x1f\xa3\xe9\xa9i^\xddZ3\x1fk\xa5\xa0\ +V\xd0\x2295\x17\xe0*\x9b\x00\x80LTu)\xae\ +\x0d\xd9!G\xdbd\xdb\xfa\xf0\xc0\xd0\xd9e\xcf%\x83\ +\xf0\x97\x16>.<\xc9g\xf3\xd1d\x22\xa9\xa43i\ +\xa8\xb4\x0f\xd8\x7f\x97\x15\x19\x0aw\xc1\xeb\xf1\xc2\xdf\xef\ +W\x9dng$<\x1e^\xb9\xda\xff\x070\x1e\x8f\xbf\ +L}\xd9\x99]\xda\x5cF\xb1\xbb\xccV\x9f\x0d\xb2\xc7\ +ARk3\x00@?9\x87\x96)p9U\x82}\ +\xcfJ\xa3\x83#\xf0=\xea\x9d\x09\x85Bsu\xe0\xa5\ +\xe5x<\xferwgw6\xb6\xfe\x16\xd2\x98\x05\x9d\ +}nX\x9aZ @l\x9c\xcb\xc4\xa8\xa1\x86\xca\ +\xc5)\x0e\xb6\xb3\xd0\x17+\x98\x0eN\xa2\xa7\xb7g&\ +\x14\x0a\xcd\xc5\xe6cD\x97\xd7\xdcM\xa4>\xcd\x7f~\ +\x0f\xfb\xab\x0et\xb4\xb7C\x22\x09\x0c\xc6u\x22\x10t\ +\xd6qxt\x84\xe2\xebCL=\x9e@O\xbf\xefi\ +x<\xbc\x22V\xb7\xd6\xcc\xf9l>\xba\xb4\xb9\x0ci\ +\xccb\xc0\xc4\xcd0\x00`0$!\x19\xb5c\x16,\ +m.#\x9f\xcdGW\xb7\xd6\xcc\xe2X+\x05\x93\x89\ +\xa4R\xec.sg\x9f\xdbp\xc67\xc3\xeaPfH\ +$\xa1\xb3\xcf\x8dbw\x99\x93\x89\xa4r\xac\x95\x82B\ ++h\x91t&\x0d\xab\xcf\x06KS\xcb\xad\xce\xaes\ +jij\x81\xd5gC:\x93\x86V\xd0\x22\x22\xa7\xe6\ +\x02*\xedC\xf68H@\xa0Q\x09\x08\xc8\x1e\x07\xa9\ +\xb4\x8f\x9c\x9a\x0b\x08\xae\xb2\x09v\x82\xd4\xda\x5c\x9ff\ +#\x226za'p\x95M\x8d[\xba\xcb1\x99\xa8\ +\x8a\x22C?9\x07\x137\x0c`2zQd\x90\x89\ +\xaa\xc2\xa5\xb86\x14\xee\x82\x96)p\x0d\xb5\x86\x815\ +\xd4\xa0e\x0a\xacp\x17\x5c\x8akC\xc8\x0e9\xea\xf5\ +xQN\x95P\xb98\x05\xe1\xdf\xdf\x91@\xa8\x5c\x9c\ +\xa2\x9c*\xc1\xeb\xf1Bv\xc8Q\xd1&\xdb\xd6\xfd\xfd\ +~\xd5\xbeg\xa5\x83\xed,t\xd6At7\x94\xc8\xd8\ +\x96\x83\xed,\xec{V\xf2\xf7\xfb\xd56\xd9\xb6.\x86\ +\x07\x86\xce\x9cngdtp\x04\xfab\x05\x87GG\ +\xd0k\xfa\xadN\x09\x04\xbdf\xac\x9e\xbeX\xc1\xe8\xe0\ +\x08\x9cngdx`\xe8\xcc\x14\x9b\x8f\xd1\xe4\xc4\xe4\ +\xb7g/\x9e\xfft\x9a\xdb\x03_\xdf%P\xb2\x97\xf1\ +\xa0\xeb!$\x93\x04A\xc2\x08\x08\x22@\x18C(W\ ++\xf8\xb1\xfd\x1d\xa7o4L\x07'\xe1\xeb\xf3\xcd\x84\ +C\xe1\x0f\xf5p\xb8\xd7\xf8\xfa\xaf\x01{\x1f_\xc0/\ +\xcdk\x87\x8d7\xf2\x80\xb0\x00\x00\x00\x00IEND\ +\xaeB`\x82\ +\x00\x00!\xfd\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x1fwzTXtRaw prof\ +ile type exif\x00\x00x\ +\xda\xad\x9bi\x96\xdc8\x92\x84\xff\xe3\x14s\x04b\x07\ +\x8e\x83\xf5\xbd\xb9\xc1\x1c\x7f>\x03\x18\xa9\x94J\xaa\xae\ +\xee\x19\xa5\xa4\xcc\x8c`\x90\xa0/\xe6f\x0e\xa7Y\xff\ +\xf3\xdf\xdb\xfc\x17\x7f\x8aM\xc9\x84\x98K\xaa)=\xfc\ +\x095T\xd7\xf8\xa1<\xf7\xcf\xfdn\x9fp\xfe\xbf\xbf\ +\x84\xf7=\xfb\xf3\xeb\xe6\xeb\x0d\xc7K\x9e\xef\xfe\xfe\x9a\ +\xd6{|\xe3\xf5\xf8\xe3\x03\xf9=\xde\xf6\x9f_7y\ +\xbc\xe7)\xef\x89\xec\xd7\x89\xcf\x1f\xaf+\xeb\xe7\xf7\xb8\ +\xf2\x9e\xc8\xbb\xfb\xfag!\xa6\xbe\x9fk\xe1\xdb\xed\xbc\ +\xff\xdcxO\xfb\x9e\xfc\xd7\xdfC\xc6\x183r>\xef\ +\x8c[\xbe\xfa\xca\xffVW\xf1\xac\xc0\x17\xdf\xf8^\xf9\ +\x9f\xdf\x9d^\xb1\xfc\x1c}8\xaf\xd4\xdf\xdb\xce|\xfd\ +\xf8\x8b\xf1\xbe~\xfa\xc5vO{_\xf7?\x9b\xc2<\ +\xe9= \xfdb\xa3\xf7u\x1b\x7fy\xdd\x7f]\xc6\xfd\ +\xec\xb5\x1fW\xfe\xe9\x8d\xf9\xd8\xf5|\xff\xf3\xcdv{\ +\xcf\xb2\xf7\xbaw\xd7B\xc2R\xc9\xbc7\xf5\xb9\x95\xf3\ +\x13\x07vL\xe9\xcf\xc7\x12_\x99\x7f\x91\x9f\xf3\xf9\xaa\ +|\x15nq\xe0\xb1\x897;_\xc3\xd8j\x9d\xf5\xcf\ +\xb6\xc1N\xdb\xec\xb6\xeb|\x1fv\xb0\xc4\xe0\x96\xcb|\ +wn8\x7f^+>\xbb\xea\xc6qJ\xd0\x97\xdd.\ +\xe3\x98i\xf0\x91\xf3\x03\xafy^v_k\xb1\xe7\xba\ +\xf5\x5co\xd8\xc2\x95\xa7\xe5Hg9\x99\xe5\x13\x7f\xf9\ +2\xbf{\xf1?\xf9\xfa:\xd1\xde\x0a]k\x9f\xf2e\ ++\xd6\xe5\x14\xd3,C\x9e\xd3\xff\x1c\x85C\xec~m\ +\x1a\x8f}\xcf\x97\xf9\x167\xcf7\xc7z<\x18\x8f\x99\ +\x0b7\xd8\x9e~O\xd1\xa3\xfd\x11[\xfe\xf8\xd9s\x5c\ +|\x82ynj\xd8<\xdf\x13`\x22\xae\x1dY\x0c\x11\ +\x1d\xec\x93\xac\x8f6\xd9';\x97\xad\xc5\x8e\x05\xff4\ +V\xee|p\x1d\x0f\xd8\x18\xdd\xb4f\xe3\x1b\xef\x13\xce\ +)N\xd7\xe63\xd9\x9ec]t\xf7e\xa0\x05GD\ +\x9f|\xc65\xa4\x0e\xce\x0a!\x12?9\x14b\xa8E\ +\x1f\x83\x891\xa6\x98c\x895\xb6\xe4SH1\xa5\x94\ +\x930\xaae\x9fC\x8e9\xe5\x9cK\xae\xb9\x15_B\ +\x89%\x95\x5cJ\xa9\xa5UG\x9a\x86\x1ak\xaa\xd9\xd4\ +Rkm\x8d\x8b6N\xdd\xf8t\xe3\x88\xd6\xba\xeb\xbe\ +\x87\x1e{\xea\xb9\x97^{\x1b\x84\xcf\x08#\x8e4\xf2\ +(\xa3\x8e6\xdd\xf4\x93\xf4\x9fif3\xcb\xac\xb3-\ +\xbb\x08\xa5\x15V\x5ci\xe5UV]m\x13k\xdb\xef\ +\xb0\xe3N;\xef\xb2\xebn_^{\xbd\xfa\xb3\xd7\xec\ +/\x9e\xfb{\xaf\xd9\xd7k\xf2X8\xc7\xe5\x1f^\xe3\ +\xe5\x9c?\xa7\xb0\x82\x93(\x9f\xe11\x17,\x1e\xcf\xf2\ +\x00\x01\xed\xe4\xb3\xa7\xd8\x10\x9c<'\x9f=\xd5\x91\x14\ +\xd1\xe15\x1b\xe5\x9ci\xe51<\x18\x96uq\xdb/\ +\xdf\xfd\xf0\xdc\xdf\xfa\xcd\xc4\xf0o\xf9\xcd\xfd\xc9sF\ +\xae\xfb\xff\xf0\x9c\x91\xeb^\xcf\xfd\xd5o\xbf\xf1\xdal\ +\xa7\xa2\xf8\xe3 e\xa1l\xfa\xf8\x0d\xb0q\xc0*\xcd\ +\x95\xa6\x9at\xbf/^\xb2\x0bG\x95\xed[\xce`K\ +\xdc$\xea\xb4\x9cu\xad\x1a\xb7_\xb9\xc4\x1eS!\xe4\ +76m\xc9\xb4\x83T\x1e\xa8Z{\x8e\xce\xd9cY\ +\xd1\x02\x9e\xde\x85\x9c}\x5c\xd5\xeb$x~\x07\xa7\x9f\ +\xea\x0e3\xe4\xcd\xe1-\xebwK\xcd\xb4\xc3p\xaf\x91\ +\xdf\xf1O\x9a}\xaf>\xf4\xb9\xe031\x9a\xfat;\ +\x86i\x17\xf7\xecb\x1cmu*\x92\x1f\xa4{\x07,\ +\xdd$9\xf6Scv\x8b\x02\x89\xcb\x09\xa8\xe1m\xc9\ +v\xee\x99\x1a\xb8>\x5c\x0b3s\xde\xbc\xb8\xfc\xde}\ +Ww\xaf\x0eL\xdb\xcd\x07\xb8T\xdc\xab\x8d\xac\x0fd\ +\x8chf\xd3\x01c\xfb\xda\xb7\xb3{\x91\xc8;r\xdf\ +A\xd10\xf1[g\xc5 K~\xfc\x22PX,\xe7\ +\x86\x11X\xa2h\xf9\xcd\xe5\xf2\xb2{4\xd3\x9d\xc7\xb0\ +>O\xcfmcA\xae?\xf7\xc9\x08\x85\xd7\x9c\xca\x8c\ +I`\xf4\x96\x09\xc8\x9d{\xb5e\x95\xd2\xe5\x8f\x0d\x89\ +H{.-\x05\x1b5\x9di\x8f\xd5\x9d\xeb\x0es\x8c\ +\xbc[\x0c\x9d\x02\xeef\x9f\xab\x80g3\x02|8o\ +\xb5&\xcbW\x82\x8f\x0b\xfa\x91\x16\xb7\xbf\xf1\xe2^\xc6\ +\xb5\xf2\xf8f\xfdL\xd5\xf5\xa7b\xfaJ\x86=\xa3\x14\ +\xc2i\xfa\x1a\x8f\xe3\xad\x82`8%\x89N\xd0\xb8\xa9\ +{\x02X\xcf3{\x8b\x96\x80\xec\x8f\x0e%\xc3j\xb7\ +\xc7\xbd+f~\xc8\xe3X\xafL\x8f\x8btvK$\ +\xdf\xb3\x97\xf89\xc5n\x18\xe9\x04\x85);\x84\xcd\xdd\ +\xd4\x99y\xfd\xf7\xcbv\xad\xed\xd8\x89m>\x10\xc8\x1e\ +\x9c\xa6\xa4\x99.\xa4\xdc\x9cS\xc0w3q\x01\xa6\xe8\ +:\x88\xc3\xcf9c\x5c\x84Q\x9bD\xcf\x93jtq\ +:W\xf4I\x92\x8b\xc0\xc2u::\xb7\x1e\x7f8\xca\ +\xfc\xea\xa9G\xe0\x93\xbabDA\x95\xda\xca=\x8c\x1b\ +\x0e3vO^GAWv~%\x85\x03\xa9\x143\ +\xb9F\x18L9\xbe\x8e\xb9\xebs\x0d\xab\xfc\x8b\xab\xf7\ +\xb6K\xc4Z\xd4\x9d9N\xae\xe5\x9b.\x0b\x88aQ\ +\xb2`\x0c\xb5\x91\xd1\x83\x80\x5c\xf5\xdcV\xde\xee,x\ +9\xd76\xd0\xd2\xfc${0tM3\xe5Xsi\ +\xc4^\xad\xcfl\xad\xcd\x0a\x91Xv\x88\x1bT\xb1\x92\ +\xe4\xcdSH\x85\xa6;j\x05\xa6\x8c\x91\xde\xd4\xb4+\ +\xc7\xe3\xc5\x9e0x#\xb3\xb5\xc4\xb3\x8a\xb6\x9b\xd5*\ +\xb8\xf1\xb3Bn\xca\x9b\xf3\x16G\x10\xb56\xac6\x9f\ +\xd4\xebr\xa1\xf7\x19\xd2\xac.\x84\x92\xf8\x0ebD\x95\ +\x8d\xc1z\xebX\x84\xc8\x82\x06{\xfb\x03\x7f\xcc\xcf@\ +\xf4\xed;\x91\xff\x80!\x04j\xeb\xb9\xf4\x04(&\x16\ +\xc6\x15g\x03\x90\xc0\x87\xb4\x5c\xaf#\xa4\x11\xe0P\xa6\ +\x00\x94\xcf\x09\x13,\x9b\xe3\xb2\xc7R\x84\x0a\x1e\x08#\ +\x1c\xfb\x1dg\x82\xe3Cf\xac6:\x85\x18\x88\xa0\xf7\ +\xc8\xe0\x82_\xa6i+\xcc6\x135\xaf\xd7\xddm\x22\ +|w\x22\xdc\xc8\xac\xed]\x0a}\xc5\xb1\x1f\x10\xb8;\ +\x82\xaf\x90\xe78\x07\xc4\x14x\x0cE\xdd\xf2\x85\xd3Z\ +#H\xf0\x11\xd3\x12\xa1\xf8?\x8f\x83;Q\x18\xe8|\ +\x14\xe8\x91b\xb9\xcd\x0b6$\xfa\x0a\xc7\xbd\xdco\xb2\ +m\x08\x94T!\xac\xc9\xddo\x92\xac5L\xd2\xbb\x8d\ +\x04\x14\xf5\x0c\xc6\x0a*q\x11\x17\xd3\xb3\xaeo\x14Q\ +\x07'd\x82\xbc\x02\x97\x02e\xa8 9\xf6F\x81\x84\ +^\x828\xa1\x87Z\x00\x91\xb5\xa87\xa3r\xbf\x93[\ +\x1d\xab>)?@\xd2zH\xfc&\xe5a\x17\x0b\x88\ +\xe4\x8br\xf2Y\x18\x0e*\xba\x83\xc9\x84U\x8bia\ +\xfc\x15\xf2\x84\x15Y\x91\xe8\x1ec?\xb7\xf3\xb4\x96\x87\ +%\x92\xc0\xd7s{UF\xdaD\x8c\xe2\x7f8\xa5W\ +\xa4P\x19\x15\xb7\x1d\xea\xec\x9c\xba`\xd5]\x13\x06$\ +\x90\xcei\x00\xed\x96\x94\xff\xe7\x9b\x821\xc2\xe3qW\ +{N\xd8\xb2ra\xfa\x88\x93\xba\x96\xc7@\xe1L\x01\ +#\x80\xa4\xb0\xc5\xde\x0bL\xce\x80#%\xef9!P\ +)\xfd\xbcn\xb3\x0e\xdd_\x17\xf5\x9f\x8b\x9a\xefW-\ +\x02x\xee\x0e@.\xef\xf5\xfd\x22\xc8\xfez\xfd\xeb\x81\ +k\xa1Gwd\x85\xd91\xcd@5\x7f\x8e\x85\xfc$\ +@z\x94Q\xed>\x00\xcb\xdfxA\x8dx\xe8\xf03\ +@5\xaeg\xce\x07T\x98.\xe5\xde!\x08\xe6\xd9\x0e\ +H\xdaI`\x22\xbaR\x06\xd4\x9f\x9b\x9a\xd4\x0a<\xeb\ +\xe27?\x13\xdec\x97\xac\x98\x97r\xa0\x16\x81lD\ +\x03\x95\x14\x0e\x09*\xaenO\xe5X\xfd\x89\x00\xcd\x02\ +I\x07\xf5\xac\xad\x81;\xb3\x00\x95H\x9dO\x8c'}\ +J\xb8\x19\xa5\xe2\xad\x1b\x85 \xbd\x91\x0d\x08\xc4a\xa9\ +\x1f\xfdf\x92\x80\x8eLR\xe9\x86\x8f\x1d\xe8\xd8\x80R\ +;\xa0B\xed\xc4\xf9\xcb]\x1bz\xa1\x95\x95\x222\xca\ +\xaf\xee\xc8\xaf\xdas\xe0\x0a\xae\xa5\xd0\x92\x1d\xc0)\xd5\ +\x04\x94\xf2\xaay\xb8\x01\x04)\x80a\xfdCr\x9b7\ +\xbb3\xc5\x9d\xca\xc3\xdd\x85\xe9\xb48\x8a:\xb1ls\ +\xc5\x15\xfc\x9f; oA\x92\x04_\xe4\xe0\x00}:\ +F\x13\xd7\x89\x04\xbcA,\x9c\x1f\xec\xf4\x22\x0f\x84\xc4\ +\xbd\xd6\x94\xc7\xe5\xa9\xe4\xae\xeb\xa9I%\x81R\x96\x9b\ +\xe9\xc1+\xf4+\xe0GLUX\xe30!\xd9>\xf4\ +\x02\xd4(,\x8fl\xdfh\xc6\xbe\x90\xda\xcbf\xa0K\ +\xe6\x04g0k\xdc\xed\xc4\xb4\x9f\xf2\xeb\x8e\x09{\xcc\ +E\xbcB\x7fI\x11Jh\xdc\x90+L\x0fC\x0a\x5c\ +\xa6PT\xa8\x80uP\xbaA\xc9bW{\x08Aj\ +*\x97\xf7\xed\x22\xfas\xf8\x8e\x10\x9dK\x01DFv\ +,u?e\x17\xf8\xeb\x98d\x0cb(7(mL\ +pJV\xed\xfb\x06\x10\xfcYw\x12\x99\xcbO\x1b\x90\ +\x1f\xc7\xfd\xe5vB5\x0d\x13\x0f\xd2\x91E#\xdb\xae\ +\x1c\x9a\xca\x1f\xf8\x10\x995(R\xf0=\x1bG\x17\xf4\ +w\xc0\x99\x9b\xac\xab\xb7\x12\xd2\xc9\xce\xd1\xe1T\xe3\x81\ +\xa6\x18\xf2B\xdc\xa1gf\xc6nE(\xeaD\x87\xa0\x98pv\xd4\xa1!\ +\x03\xea\x84\xa4T\xea\xd0Y/\x0e\xe7\xb4\xc9\x16\x22&\ +\x5c\x01!\x94\xee\xcb\xd5\x17\xa5\xf7A\xe9\xf8\x01i\xf4\ +\xd6\xd3\xe0\x90@\x0e\xe7\x05\x9c0 \x84\x00&\x03\xe9\ +\x14C\xb0\xeb\x8bz\xae\xcb\x8e\xdaq\xd7!\x9f\xfb\xe5\ +\x9eS\x10\x00G\x86\xb0#\x0d'\xc8:\xdb@\xc6I\ +\x1az\x8b\x9c\xe6\xe4\x9eB6zq\xe4\x84#h\xc9\ +P;Px\xdc\x9f\x0f\x9c\x1a\x99\x86\xf7\x06\x01\xc1\x92\ +6\x08y!\xa4Q\x80\x840\xe1\x22\x8c*D>\x02\ +2\x9e\xf71\xe7\x89\x1aLG\xb2'.9\x1c\x01U\ +E\xf68\x88\xa400E\xf8Z\x86)\x22\xd5zY\ +\xa1\x8cG\x12\x93\xf0A4\x0c\x82\x80\xeb9\xabz\x06\ +\xd9\xbaV\x12\xefm\x12F\xd8\x11~\x12\x0a,\xcf\x94\ +\xf5\x88\xcf\xe1bt\x9dt\xc58\x9a\x16\x80\xe8G\x99\ +a\x0d4R\x92\xacR\x8b@0\x0c\xe0\xdd\x00\xf9\x00\ +1\xb9\xf4\x98\x8c\x84R\x88\x90E\x99\x1a\x93\x83\xe2\x18\ +\xf2\xe5\x12\xc8\x9c\x88G\xc9\xa4I\xc0 i\x22\x1a\x0b\ +\x81:\xea\x94=}\xcdp\xbeI\x04r\xf7\xc5DG\ +h~(\x81\xa2}\xedu\x99-\x8aMax\x9c\xee\ +\x5c\x9a\x8b\xc4(\xd0\x90\xa3\xda\xb4\x0c\xc1\x9eD\xcc\x80\ +\xee$%-\x18\xc5\xffxN\xd9\x17kw\x90\x9eg\ +\xfa\x96\xbc\xf0\xd4yo\xf1k\x81\xdd\x17\xdc\x9a\xbbR\ +\x81\xc8CdW\x9d\xa7\x16\xa2\xbc>\xa6[\x07\x7f\x08\ +\xdc\xa5#\xab\xf9\xa8\xea\xf7\xa7\x8e\x7f}O\x80\xbf\x0f\ +U\x87\xf9\xa2\xc6\x12\xe2w\xf85\xc3hBE\x0a\xae\ +Y\xd5\x13\xf6\xde?\xb5\x91\x8dd\x88[s\x00\xb0O\ +R\x07\x16\xefa\x9f\xcb\x8ap:\x86\xcf\xfa_A9\ +\x95\x92m\x16\xee\x10n\xfd\x18h\xf3[1\xa2\x1f\xa2\ +\x9b\x1e\x14;5c\x9ef\xb3\x12d\xe2\xad\xbe|\xb8\ +*g=n\xaa5\x0c\xa1\x07\x1f\xe0\x9f\xa8\xe9\x8e\xb1\ +\x81\xd5\xa8\xee\x00:\xaa\x1d\x0b\x11o\x92R\xf19\xf8\ +\x8dA\x08e\xac\xa7\x04\x92\xcd\x8f\xf1eu\x11\xb18\ +\x0el\x03^\x06]\x1d\xe2\x9bKT\x00\x19\x1d\xe6F\ +\xc1\xa2v\xc1\xe2\x0211[\x08O\x90\xa1\x89>\x8e\ +\xc7\xb1\x16pFpA\x0es\xf0\xd20\xde\x8c\x13\xfa\ +\xb7\xd6NT\xbev>b\x0e\xe3p\x89%\x9eA<\ +,\xca\xc2\xf2\x00f\xe3\x9eF\x9a^\x18A8\xab3\ +\x01z\x8a\xfb\x9a_\xd2\xea&\xd5\xe9\xcb\x10S\xc2\x8a\ +\xfa\xf4\x9f/&\x153\xcf\x0d\xed6R\x83kJ\xfa\ +\x1a\xa8\x9e\xed!A\x90\xa4}a\x8c\xac\x86$z\xba\ +'r\x02\x01\xf2\xb4\x1am\x19\xeeaU=\x1e\x1c!\ +\xfdT\xd3\xd5\x91\xf2\xea2\xa8k\xa0\xd6\x18\x9f\xbd\xe8\ +\x22s\xfax\x1bAS\xb2\x1aX\x84i\x03.*U\ +q\xcd\x14E\xab\xb4\xde\x17\xe6>\xbaN\x0d\x84I\x8e\ +\x14\xf1\x14\xe4\xee\x0c\xa4K\x9c\xdey@\xa6>\x14H\ +\xd5:\xa0\xbd\xcc\xd35B\x90\xact\xf9\xa0X[M\ +\x12\x82\xcf\xb9q\xc0\x1f^\xad\xeb\xf0Fl\x22]\xfe\ +\x5ck\xc9X\xcb\x9f~\x98M\x16yDxq\xd3\xa7\ +\x1d42q@\xf6\xbb\x80\xf1\x11s\xe3\xd9\xa6\x1d.\ +\x06\x90\xe4?\xf4\xf8HN\x96/\xae\xe4\xb9\xe2\x5c\x9e\ +\x1a(\x22\xff\xdc\xfaG\xa8\xa8s\x87\x84 \x92\x81\xf6\ +~\x92\xf8\x80\x10'>$V\xab:M*\xf1\x0dy\ +\x06\x0b>\xea\x01\x22\xaa\xadJqGD{\x94\x11|\ +\xdf\x07\xb3\xd4ML)\x05\xf5U\xdd\xacH\xdf\x82R\ +\xe2$\xa0s\xdf\xbdh\xc5\xbfi\x0b\xfc\xfa\xdd\xfc\xed\ +\x01\xd5uX\xb8\xc4?k\xd1.O\x07DP\xad\xd4\ +B\x98m\xb3\x90D\xd8^#\xf6\x9b\x19\xfe9\xcd5\ +but\xee\x1c\x16\x14r\x02\x90\x09q+~X\xe1\ +\xe3\xaa\x95\xb9\x9e6\xe6\xad\x95\x8dZ\xd2\xd4\xde\xb3\xb6\ +\x5c\xd1j \xbb\x07&v\xbe\x1c\x15T\x17\xb3-T\ +\x1b\xae\x1f\xb7\x85\x99\x05\xd8\xe3s\xb80T\xf5\xe0\xb5\ +\x87wOu\xe7\x10\xca\x8f|]\xcc\xe8\xe9\xb8\xfbV\ +\x08\xeac\xeb\xc4\x11\x1c\xbfCD\x9e\x9aC\x03\x90\xc8\ +\xb2:\xabmp\xe4\x9c\xc0{\x17PQ\xe4\xb3\xdc\xf2\ +\x82\x8e\x81\xfb\xe2\xcf\xd3\x89\xba\x80\xa5*\xa2^\x14\x8e\ +\x0f\xc7\xc5e_\xf6\x04\xf4\xc0\x1b\xc0\xb2\xa8.\x17u\ +\x0d\xb0\xf19\x22\xcb\x10\x9b\xdd\xb8#\x80\xfcJ\x9c\x1d\ +\xba\xaa\x1b}\x83\x1d\xafG'jc\x8f\xb0!*o\ +\x1f\xee\xf2$\x04\xa5\xf88XC.\x135&P\x97\ +\x1a\xb8\xf3\xf4^\x01K\x04\x18\x9a\xb1x\xf0,Z\xc1\ +\x02\x97\x94)\xf8T\xe77\x12\xf8m\x11\x92k\x13s\ +\xe7\x1bw\x026\xb1\x00\xf1\xabn\xa5\x9c\x95\xc00\x19\ +Tx\x82gd\xfc\xb7\x12\x06\xc9\xb5B40\xda\x00\ +c\xcbC~\xa9\xc2;\xed\xfe\x95|s\x8d\xbbZ\xf5\ +\x12L\x81i@\xafCaD\xf7vI\x94#Q5\ +B\x89\xb4G@\x22m\xbb\xa3|\x92\x0c\x1dM)\xad\ +\x84\xe8>\xd4\xde\x14\x98\xf8\x89\x1a\xd4\xa5\xee\xf5i\x09\ +\xc9\x0b\x07\xe0\x0cE\x8c]\xb1\xf9\x0f\xbe\x9b?\xbd\xa1\ +F\xd2\xd7y\x03wMyU\xdf\x00\xdc\xb6\x97\x94\xe6\ +y\xb9\xcb\x8dQs\x82\x94\xa8U\x8b\xbb\x8f\xc5]@\ +q$\xb9\xa1h\x94\xf5\x0e\x85\xeb\xa40Rj\xcc1\ +\xfb\x84\x0f\xc0F`0;]6v\xabJ0\xb7\xaf\ +\xbdp\x07X\x86\x9e\xb9\xe6\xf6jz\x80\xbd9AD\ +\xd4\x1c\xb3\xc8+\xbc}\x0d3\x83Z6\x98\x1b\xa61\ +\xce\x89z0i\xdd\xf6N\x13A\x065\x86\xda\x82\x14\ +\xc4\xa1;p\x0f\x85\x8eT}i\x06\xa1\x82DJ\xa4\ +%\xbeB\xb6\x90(\x0d?BC]6\xaa\xdf\x1e\x8e\ +\xbc\x16\xc4\x09\xecM\x85;&\x0f\xdb#6\x95\xe5\xa7\ +|\x9b\xd3j\x1d\xc0\xd1VT\xeb\x5c\x9b\x7f\xe8\x0a\x84\ +\x5c\x99@T\xaa\x06w\x9fD\xc8\x0aT\x02\x19\xdd_\ +\x95\x84V\x9c\x90\xd0\xb4\x12\xe8\x92\xb4\xd0oJ\x5cT\ +\xaf'\xa0\x8e\xaa\x14o\x83+\xd9\x11{\xb5\xdd`B\ ++\xf8%\xb7Y\x0fw\xf8\x88\xc6\x22\xfb\xd4G \xc7\ +\xc3\x94z\xd1\xb2\x16\x15K$\xbb\xf2J\x80 @\xc8\ +CI\x11\x15\x06\x0eP\xd7\xbav\xc4d\x1b%\x1ay\ +\x88\xd0\xbc\xdc_\xd9\xa9F\x12\xb5\xa7\xc3h\xec\x7f\x18\ +G\xbf~'\xf3R\xa52I?r1\x08B\xcc\x93\ +\xachY4\xb1\x22j\xa8\x8b\x10\x90\xcf\x0d\x02\x1a\x08\ +\xc2\xbaTzp\xd7\xc9X\x94 x\x06Y\x87tR\ +\x83)\xed\x15`\xefHQ\xd4\x08\x92Vv\xac\x86\xe2\ +\xadT9[Cb\x0e\xc0euj\xf4j[\xfb*\ +6;\xb4\xedt:\x22\xe4;\x04m\xa9s\x1f\xe0i\ +PB\xc9\x00\xea\x5c3\xf6\x87\xe3\xff\xe2h\x80\xdf\x1e\ +\xe0\xcfJ\x82\x0e\x91\xc6\xe2\x8eRl\xc5\x14)F\xea\ +\x7fp\xeb8\x04\x1b\x1d*\xd2\x8b\x82\x03i\x81\xe2>\ +\xd5\xfb\xc4k}\xa4\xff \x0cE>sG\xb4\xc7\x8d\ +\xdb\xbc\xfc \xd0(p\x9f\x1b\xdb\xe6Q\xe1,\x22W\ +\xfc{}\xbc\xa9y\x9f\xe3\x0e9\x0e:\xe6\xf6f\xa6\ +z3U\xad\x19\x04\x0d (\xd3\xe2\xeam\xa8\xf7P\ +V\xe4\x0eiU\x7f\xc3g\xff\xe9w\xf3\xa778{\ +KO\x84\x85\x96\x0a\xbf\x85\xba\xe2i\xa4\x98Z\x0b\x92\ +\x1c\xae\x83q\xaa\xf3]=Z\xdc\x7f\xa9\x80?\x0b\xe6\ +~RB\xb76\xed\x9d\xe4y\x9b\xcf\xaf$\xe6\xb4o\ +\xff\xef\xea\x82 \xe2\x84\xfa\x96\xa4Bi\x043C\xc8\ +\x0d\x91\xf1\x9c6\x92\x93\x0a\xca\xc2\xd5\xee\xa3\x8ad\xfa\ +\x18\xbd\x1e\xa3\xdf]\x11'\xa4\xd5\xeaQ\xaf\x87\x8e\x05\ +[q?\xca1\xbd\xa9\x89\xa4w\xd7\xa7P\x13|\xea\ +\xdcu\xa9\xbd.\x95\xd7\x08\xcb\xe9\xbd\xc4\xe7>\xcb\xbc\ +:.M#-\x8d\xcaa\x95`^\x09\x1b\x82O\xce\ +\xb2\x96\xa02um\xe0|\xb9+\xfb\xe63\x81R\xef\ +H\x08pg\x22\xf6\xcc\x94\x01@\x7f\xc0\xf3\xff\xe0\xb3\ +h\xcd\x1f\xde`\x8d\x90k\x84\x11!\xe4!0\x90v\ +K\xb4\x04\xf9,\xf4\x97E\x1e\x94\xb9\xce\x98F\xac\x87\ +\xe2C\x10V\x05\xab\xdf\xea\xa3\x9e\xc0f\x951\x0bd\ +W|\x8d|\x0f\xebk>oI\x9fM\xfb\xbe\xd7\xd8\ +\xa7\xcfq\xdc\xffHk\xced\xf1%R\xa3\xca\x95\xe1\ +\xba\xf2\xd2\xd3\xebL{v\xfd\xc7\xdae\xf4#K\xad\ +N0\x1e\xf3E\x08\xce\xfe\xcam/\x0f\x89\xd6\xa1\xd6\ +\x0cl\x02\x8e\xa9\x06\x09R\x8f \x88\xb8\xa4#HE\ +L\xae\x1bW\xf6\x077\xcc\xd0m\x1c\xe0P\xff\xef\x92\ +.\x80c\x1f\xe0@\xad\xe5\xe1\xd5\x92]\xd4\x07>U\ +)G\x19E\x87\xb6\x80\xfcQ\x8bO\xd0:\x0ce\x0e\ +\xef\x02\xe4\x08\x07!kRs\x03\x7f\xc7G\xf8.P\ +\x16\x9d\x98\xa3\xcc.\x01\x06\x86\x09\x93\x9b0Ye&\ +\x01\xc0\x15\x16\xdd\x82\xf9{\xae\xfa\x0f\xbf\xe3k\xa0\x16\ +h\xc7\xdf\xd2|[\xdb\x02qp\xad\x0b\xc9\xc1\xa9\xdd\ +\x0b$\xf3\x89\x9a\x81VT\xeaC\xd6\x1e\xaaXN\xcd\ +\x1e\xd4J\xf5\x06\x9c\x09r2\xf2*\xdd.\xc3\xcd\x5c\ +\xd2\x9c\xbf\x05\xda[\xc4\x14\x167\x1f\xf4\xd6\xb9\xc7\x15\ +!\xe5\x93\xc2\xb3\x22\x05\x87\x0b\x16u\xcdL\xce\x22X\ +75=\x1eU\x09\x14ORu.\x0d\x1e;\x1e\xab\ +\xcd@\x95\xd5\x05\xc98e5\x9d&\x8a\xe2A\x9c\xfe\ +\xf8\xda|s67\xa8\xe6\x17g;\xbb\x17Qq\x09\ +\x08N \xc1\x07\x0b\xe8\xc3;\xe1{2\xae\xe5\x10\x84\ +\xe8J_\x1c\xd3\xfc\x8ed\xaa\x04i#\xca\xabq\xb4\ +\x0e\xf2#i$tg\x82]t\xf5\xa2\xc9l>\xe1\ +4]\xb1\xb4\x93nDA\xb5\xa3\xe8\xd2H\xda]\xe9\ +\x96\x9c\xd2N\xbc\xf6u1@:\xa6\x85\x15\xa8=\xed\ +E\x89\xb4;\xc89{C*aG\xe5\xc3R\x03!\ +\x9fV\xa8:v#\xd9*\x89\xc4\x05\x88\x14\x88\x12\xd7\ +=m\xb5\x0f\xe1\xfc\x03\xdf\x04.\xc30\xfeQGc\ +\x83\xca\xeaQ\x81/\xffa<\xfd\x14\x90u4\x7f:\ +%\xdc\xc6=/\x09\xcao\x0d\x92\x8b\xc6%\xd2\xe7\x87\ +\xe4\xe218\x12\xa5A$\x17\xea\x9cM\xf2\x87\xe5\x06\ +n\xfd6\xb0\xff\x86p\x8aoJ\xd0\xa4x\xcd]\x01\ +\x11G\x85\xc6\xb1\xcb\xdc\x1d\xc7\xcd\xef\xb0&\x19\xc9\xa3\ +\xe4\xc7\x19|\xf8\xda\x04O9\xbe\xbb\xa2\xee\x04\xcai\ +phK]\xde\x86d\xe2\xd1j\xc8\x00\xa1^\x93\xac\ +\x05\x06\xa1\xa9\xa7\xf9\x1c\x84\x17\x11\xc375](\xf7\ +*\xd5\x0b\xed\xb1\xb6\xda\xa8\xee/\x1c\xd3|#\x99\x84\ +\x1c\x81X\xeb\xa9\xec\xd6\x8fh\x89\xc0\xab\x7fR\x81s\ +\x888@>\x22\x05F\xdd\x0db\xbd\x11F\xa7\xca-\ +o\x86\xa6\x08\xe0qR\x98\xdak\x01\x90\x0a\x12\xf2(\ +\xaf\x16^I\xf8\xbc[\x09\x9a.\xea\xfb\x15q\xa9\x93\ +\xf6\xf1\x88\xb8\xb4\x1e\xd3\xcbQq\xc4\x99\x93\x8a\xd3\xee\ +\xfa\x18\xfb\x8c\xc98X\xf7\xb5\xcds\xf6\xda\xe2\x19\xdf\ +\xf1\xa7m^\xb4E8\xb4\xdaJ\x04\xdb\x93k\xda\x98\ ++\xe15\xe6\xe1\xa3\xf9\xedaA\xc1\xcep\xc2\x05\xe0\ +\xa9w\x09\xe9\x95\x1d\x11*\xe8\xf0c\xa9Wr\xa2\xd3\ +\xa8\x83\xa7\x00\xad\x22d\xf85\xcc5\x8en\xa60z\ +'\xbb\xf6\x1a5\xd2(\xd9\xccmR\x02\xb1;\xaf\xdb\ +\xdb\x0a\xd0\xe4\x97\x8a\x8f\xf9\xd6\x0d\xc0\xd8\xfe\x1f\xab\xa1\ +?\xb0Z\xd5\x86\x18A\xc3\xb6\x13+9\xb6\xd4.q\ +\xadd\xdf\xc2\x08\xa4`q\x88\x93I\x09\xffj\x06\x9c\ +\xd5\xbc{J\xe6v\x04X\x8cv\xb5\xb0\xfb\xdb\xd4\x18\ +\xedmj\xa8\x85\xe1\xa3:\xb0\x16^L4\xdc\xf6H\ +(U\xcdY\x88QT9@fi\xf3\x91\xa2#\xd7\ +\xa2\xa0\x86:\x9f\x9f\xb9\x8a3U\xa1\xd5W\xad\xb97\ +?\x91\x07\x0d\xb1\xdd\xa1\xff\xf0\xaeBm\xaa\x14\x17M\ +EfC\xb6`i\x18Y\x9cgH\xc0\xbf}\x00X\ +\xcd\x09\xb5\xb7a\x9a\xed\xdd\x08U\xd3H1&8n\ +\x0fp\xdf4uA\x09\xe6D\xd4\xc9\x82\x07\x03\x09f\ +m\x0b\xee\x19\x88\xbf\xa1M9\xb7\xcf>\xc6\x1b\xec\xad\ +\xa8\xacm\xfbv\xc0\xe3MgGVP\x86\xac\xd9\xfc\ +\x94\xa59e\x8c\x90\xde\xd9\x90\xf66\x0d&\xc1\x0f[\ +\xd2\xac\x95Z\xe9w\xd6j\xddVy9\x0d\x07\xe9f\ +\x12\x5c\x8d(M\xbbL\x02u\xc7:\xb5Y\x06\xc5]\ +\xa9\x8c?L\xac|\x1bX!\xfc\x89\x97)Q\x86\xca\ +\xe6\xc2\xe52zw\x06/4\x05u8<\xf5\xee\xb4\ +\x13\xf3\xdbN\xcc\xa7G\xdfn\x7f\xb2\x22Uj~\xfb\ +\x93p\xb4\x84\x82\xbc\x0d\xca\x00C9\x0dJ\x5c\xc8\xd5\ +|o\xeb\xca\xbf\xaf\x0b\x11>\xbc\xafa\x05\xb2\xd1\xd7\ +\xdb0]OP\x1f\xe79)\x02\xb0\xac}\xf6k\xc2\ +i\x08e5\x84n7\xe8t\x89\xcf&\x93ne\xe5\ +qw\x95\xab\xf5\x89b\xb8\x86\x1am'@\x80\x11\xae\ +\x01G\x83M?q\x9f\xcdl\xd8K*\xdbk\xe0\xa7\ +\x09\x8dP\x8bn\x92V\xd0RH\xfd(82\x97\xad\xc6D,\xf3l\ +\xe59\xf1\xb2\xf1|\xea\x9a\x8f*\x9d.\xe3\xe0\xbbO\ +\xb5\xc9\x01j\xa1\xf6\xa9&L\x0a\x1e\xffnS\x85\xa4\ +\xdd\xc1\xd5\x86\xe7\xc5\xfc#\xa7\xcc'\xa9\x94\xcf\xf9\xdd\ +\xfa:\xb3\x9b\xfd\xce\x7f(\x8e\xdb\x19u\xeb*\x81\xba\ +\xacxfqD\xb2xW\xc05\xda\xa3\x83g\xa73\ +\xbf\x19\xdeM\xba\xa2\x01\xb1>\xdc\xdd\xa4Cq?6\ +\xf8\xb3Iww\xa7\x97\xc6=(\x8b\x1aM\xdd\xf3\x94\ +\xa3\xbco]\x13\xeb:D\xeck\x9a\x02\x94y\xe7)\ +\xb0\xc5n\xef\xde#E\xeb\x0c\xfe\xf4\xe7km\xb7\x11\ +\x93\xcb%\xa3\xa5\x9e>\xb0D%t%;\xed\x81\xf5\ +H\xa1\x80\xe9\x01z\x16\xa6@\x18Y\x1cK~C\xa1\ +\x8a\x9d|\x84\x8b\xe53\x8fRr\xbc\xedCg\xdf!\ +\xbdK\xe74pS\xfc;\xcaA\xc2j\xc3\xc9k\x92\ +\xa3\xe0\xfd\xa60 %*\xa7Z\x01\xfc)\x843I\ +\x1dC5w %\xf7\x9en'\xc4=]LE\xd5\ +\xbeY\xf1\x06\xc4\xc9\xe9\xbd\x94\x8e\xba\xd2\xc8\xc7\x19\xe2\ +@\xe5 \x0d\xf0T\x1dSC\x1c$\xedh\x88'`\ +\xa8\x96\x0c<\x00\xea\xe8\xd5y\xa68\xd2\x99E\x1a\xfb\ +\xee$g} \x9d\xe6M\xff\xcd\xc8\x85yg.4\ +\xd0\xbbD|2$\x10\x11\x02\x97\xd4\xeec\xac\xd4O\ +P,\xaa\xfbY\xee\xf6S>\xe3M\xbb_^D\x98\ +)\xfd,\xb9\xd6?\x83\x16\xef\x94\x85\x04\x00\xde \x91\ +\xb7W\xbb\xcd\x0d\xcd\x05i\x98\xe3\xfa\xca\xc5w\x88\xc0\ +\xa5w\x9cC5\xd8\xc4\xa0q\x12m\xc3\xd5r\xe79\ +\x08\xc1\x9c\xdf\x89\x0e\x7f\xb6h@\x0a\xdb5\x88Y\xfc\ +91\xda$\x9d\x13\xe7\x1f'6\xf7\xccp\x98\xe74\ +EG\x5c\xe8\xdeC}-XA!\xd7d\x5c\xc7\x90\ +\xe2\xa9\x16\xcf\xe7\xd3\x02l\xee\xce`,b{O\xf2\ +\xd5P6\x90\xcfN\xa0\x87\x84\xaa\xfc\xfb4Pak\ +\x1e\xf2'\xc2\xad\xdd8X\x0a\xda\xbd\xa8{\xef\x22E\ +\xbe\xc2\x8e\xd3\x15\xf0Tm\x10R\xcd}\xc0#\x92A\ +\xa5h\xeb \x0b\xba\xf6\x19\xc2\x88ASz\xfe48\ +c\xb2I\x81;\xcf\xe0\x88\x13\x92n\x0d\x8e\xd8b\x91\ +\xde\xdb\x90\xd6G\xc1\x93\xb8S-<\xddO\xef\x0b\xe1\ +\x9a\xdc \xd7O\xd7\x97\xe8\x99\x15\x955gC\xf79\ +Q\xfc\xf2H\xb2\xe0\xf8~\xf7\xe0\x0d\x8a\xd0\x8d\xa3\xfa\ +/\xd7'F4\xd2\x7f:s\xe5\xccY\x9c9\x88x\ +\x9a1_s\x16\x19\xd0\xd58\x07\x9a\xba\xb4\x8a\xd5\x8a\ +\x19uF\xef\xef<\x87\xf6j\xf7\x9d\xe8\x10\xf9\x15\xf2\ +\xa2\xb2\xee<\xc7\xdbus\x87]Xys\xac\xef#\ +\x17\xe6\xa7\x99\x0bBjC\xe1>\x03Dg*\xe9\x04\ +4\x92\x972\x0d\xb0\xdf\xe1#\xc4\x9cT\xa3\xaeE\xc2\ +\xa1\x0e\xd0k*LP\x9duI\x0a\x99\xa6\x0e\xdf\x07\ +\x8dY\xa9]g\x8cC\xaf\xde(\xfe\x8cq \xe7\xd0\ +\xa1Z\xb0\xdb\xd4\x03\x83n\xda}\x14m9j\x8e\xc3\ +\xee\x1a\x88\x80!\xfe\xbb\xb4\xc3DRo\xf5z\xd7\xec\ +\xeb\xce\x8f\x8dB\x96T\xb5-\xf4,\x8fmU\x83\x7f\ +\xd1 *\x8a\x8a\xbeF9z,A\x1bU\xbc\x84\xf3\ +\x90O\xcb\x93X\x94P*\x91\x9ek\x81\x07\xc9\x05\x9a\ +\xe4Pa\x19\x9f\xc6\x96\x86*\xcc\xe5g\xf3\xe5gw\ +\xb2bW\x16[5\xb0\x0bo\xb0p\xf7\xd8\xd5\xa9\x15\ +\x04\xc1\xbb\x12\x05K\xca\x86\x10\x00\x0b|\xd5\x18\x0fI\ +{\xf3e\xe9\x09\x98\xbb\x0dz\x9b./\xf5\xbb\xee\x19\ +\xbfTt\xaa\xcaz\xce(\xf0\xb9\x1e\xf86\xb7\x81\x8b\ +\xf6\x0b{j\x1drW\xb1\x03Mg7\xe6\xb9\x13)\ +\xeb\xb4p\xbb\xcd\xe3\x86@PG\x11\xa4\xae\xe7R\xa0\ +\xae\xa6R\x9cQ\xaf\x86\x80]\xed\xcc\x10\xc2\xadW9\ +\xb5\xfc\x1d\x22\x14ox\xce\x10\xa1\xd3\x0c\x9e\xfa\xc7\x8f\ +\xd2\xa6\xefY\xfa\x1d\xd2=s9\xcb\xf43\xda\xef\xdf\ +!\x10\x0d\x1d\xdd\xdaq7\xc9\xda\x13\x90\xa1\xebL\x0c\ +\x9d\xfdNW\xc5.\xc6\x96\xc4\x0dw>\xd2\x9eY]\ +#>OvRB\xb5\xc7\x84\xa4\xb2\x94\xfe\xf1P>\ +I\xf1Q|\xd1\xd0j z\xca\x1f\xe7\x811Z\x99\ +T\xda\xa1\x01~`\xeaN\xec\xaaw\x16@\xb2\xac\x81\ +]\xb5+\x14\xc1\xda0\x03\x96\x10\xcd\xf5\x0e\x95\x15\xd2\ +\x0f\x06Nq\xa1d\x9fIT\xf3\xcb0\xb0\x0aJ\xd1\ +\x08\x8d\xb5\xfd\x9dP\xc5:U\x93k\xaa\x11\xe1Hd\ +\x7fFx\xfdg\x84\x97\xe8\x18\xb8_-\x9ew\xdc-\ +\x9e\x19\xde\xa2\x1e\xe1:\xd5\xb7QpO\xd3\x11\x89\x85\ +\xd9o@\xdc\x91\x1d\xd8f\xf7\xef\x83\x16\x9a\xb85C\ +J\xf4\x09\x9a\xf3\x11\x03s\x085\x8d\xe9\xa9\x1d\xf5\xdc\ +\xd6}L\x99\xc0\xf4\xf1P\xe5\xafgG\xc6\x19e\xf8\ +\xb1\x04s\xd7\xa0'\x0a\xbe\xael\xffxeX\xb3\x1e\ +\xf0\xb0\xef\x03\x1e\x1a\xe8-\xeft\xbd\x01\xf2\xee,\xaf\ +\x98K\xd0&\xc6\x96N9\x93\xbc\xd7N\x9au\xa60\ +C\xbb\x97F\x9dA(\xd9\xc9\x9eA^\xaf\xfd\x0bM\ +\x93d\xa3!\xd6\xb3\x1d\xf6h\xa4Ks\xbb\xa1_\x99\ +\xe9\xd5\xc9B\xecP\xdb\xd3\xa9!\x8f\xa6N\xfb\xedu\ +P\x83\xbe\xb9\x9b\xe82\xbf\x19\x0a&.,\xc1U$\ +\xa9!D\xddCx\xedb-\xda\x19EY\xc4\xa8\xa9\ +\xddE\xb5\xf0\xb8RQ\x09\xd0\x19\x7f\xc6r\xf7\x8b4\ +\xa0\xec:\xc3\x0c\xbf\x1f\x0cV\xbf%\xef\xe4\xd6;\xac\ +{\xadX\xf4T\x859\x0fr\xd4\xa4\xb7\xce8|Z\ +\xf7\xb1\x8dw \x1e\xc6\x80\x15\xb4\xe7\x87\xf0\x87\xf8S\ +\x19+\xbc\xa37\xd82\xaf\xbb\xf9Y\x809S\x0c\xca\ +\xad\x97\x97\x05\x15\xc3\xf6\xaf\xf2\x1dRd\xf5\xdc\xc1\xe7\ +!\x80\xdd\x8cf?\xe2\xfb\x14\x80\xd38\xe5\xbcO\x01\ +\xa8\xc9\x1b\xd4\xc8\x84G\xdb\x7f\xd0C0\x1ar\xd7l\ +[\x18\x02\xd4\x82d\xd0\xdc0W\xb7\xce\x82$\x0bU\ +\x0a\x10\xe22\xe4\x8e\xb7U\x19$\xf5\xf7R\xd2\xf3H\ +\x84\xca\xc86\xe2\xa4\xfe\x04\xa5\xa8\xe8\x9d]\xfbi\xca\ +\xe2\xf3\x1c\xd5\xa1\xff\xb8\x11fGDJ\x05\xc7\x0cF\ +\xda\x0a\xb4\xa8}H\x88\xfc\xfd\xec\xca\x91\x95\x14/e\ +\xa8G\xcc\xde\x8e\xf7V\xafU\xb3\xf5\xe9}\x92\xca\xfc\ +\xeeQ*\x85\xbeZS\xe3\xb9\x83\x1f\x15\x22\x91!0\ +R\xed\xd4'\x16\x9e\xbb6\x83\xc9\x97\x5c\xcfS\xce\xeb\ +\x11\x87\x1c\xea6\xdcVW\xd1#9P\xc1w&b\ +\xdf\x86sH\xf5\x1d\x03YwWw\xdf\x0b\x88Y\x09\ +\xb1\xb4\x97d\xce\xb37\x10\x22h\x85\x9e\xbd\xd1\x03t\ +z\xf6\x862J\x1dm'A\xf5\xe8\xce\xa3\x81t\x0a\ +\x8a\xc6\xc5X\xf0y\xd6'\x81\x84\xe5<\xeb\xe3[G\ +\x1c\xeba\x9f\xd7\x14(/\x8d\xef@\xca\xf4\xdc\xd3~\ +\x1f\xf2\x083g\x7f\xbb8V\xd9^46?\x04X\ +\x83\x00| \xdd\xe7Q\x18\xa7\xd9C\x0a\xfa\xe1\x9dw\ +\xba\xf0A\x90h\xben\xc7;\xf8\xd9\xd7y\xb3k\xcf\ +\xf7\xf44\xc7\xcd/Ie\x094e\xaf\xd1e\x17\x9c\ +.\xddS\x17\xaf\xe4\xd0\x99\xed\xfb\xe1T\xb9[\x15\x7f\ +=\x86\xf6\xc75G\xa3\xf2\xf7\x9c\xc7\x94\xd4\xea\x87\xdf\ +\xc0\x18\xea\xd82\xd51(\xc6\x8a(\xfe\xa5\xed\x14h\ +\xb8fW5\xbe\x01\xe1K\xf5Rym\x93,\xdc_\ +\xa2\x98\xac\x1e\x8e\xea\xe71\x08\xecu\xf5\xd0\xdf{+\ +j\xb8\x12\x85\xc0\xe9q|\xa3d\x0b\x1a\x16h\x7fb\ +\x03\xb6\x90BPl\x14\xd42c\xfd\x0dV\ +\xfb\xdc\x87\x02O{\xee\xd0X\xf5\xbd\xeb\x11\x82T\xdb\ +\xf7AG\x89\xce4\xf6}\xceq\xc0\x92U<\xf5\x9c\ +\xa3\xc6\xcdpI6\xda\x8b\xb2\xf3\xebY\xaa\xdfv\xfc\ +|-\xbf\x80\x10\xab\xa0\x96\x98\xff\x05\xa2\x87\xc1\x0f\xaa\ +O\xc1\xbf\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\ +\xff\xa0\xbd\xa7\x93\x00\x00\x00\x09pHYs\x00\x00.\ +#\x00\x00.#\x01x\xa5?v\x00\x00\x00\x07tI\ +ME\x07\xe2\x09\x14\x096\x1d\xa0\xf8t\xb3\x00\x00\x02\ +\x07IDAT8\xcb\xb5\xd5\xb1\xaa\xe2@\x14\x06\xe0\ +\x7f\xc6\x14vaHea@H\x91\x07\xb0\xb1H%\ +\xb1\xf0\x11\x84\x94\x06\xc4\xfe>\x8a\x16v\xce;\xac\x90\ +!U\x0a\x1b\x1f u\xa6\x940\xa4\x8b8\xce\xd9\xca\ +\xcb\xe5\xc2e\xd7\xc5\xfd\xe1\x94\xf31\xa7\x98\x7f\x18\xbe\ +\xe4p8\xb0\xf5zMeY\x0e\x8d1\x8b\xb6m7\ +M\xd3\xa4\xce\xb9\x01\x00p\xce\x1fa\x18\xaa \x08\xf6\ +B\x88b>\x9f\xf7\xcf3O\x83\xe1[\xa4\x94K\xad\ +\xf5\xbe\xaa\xaa\xb0\xaek\x00\x80\xef\xfb\x00\x80\xae\xeb\x00\ +\x00q\x1c#I\x92f<\x1eo\xb2,\xfb\x85\x9fr\ +<\x1e?\xf2<\xa7\xc9dB\xab\xd5\xca\x9dN'w\ +\xbd^\xc9ZK\xd6Z\xba^\xaft:\x9d\xdcj\xb5\ +r\x93\xc9\x84\xf2<\xa7\xe3\xf1\xf8\x81\xefk>\xb1\xed\ +vKQ\x14QQ\x14DDt\xbf\xdf\xe9v\xbbQ\ +\xdf\xf7\xd4\xf7=\xddn7\xba\xdf\xefDDT\x14\x05\ +EQD\xdb\xed\xf6\x13}Z\x90R.\xf3<\xa7(\ +\x8aHkM\xd6\xdaO\xe4\xa7\xb1\xd6\x92\xd6\x9a\xa2(\ +\xa2<\xcfIJ\xb9\x04\x00^\x96\xe5Pk\xbdWJ\ +a\xb7\xdba4\x1a\xc1Z\x8b?\xc5Z\x8b\xd1h\x84\ +\xddn\x07\xa5\x14\xb4\xd6\xfb\xb2,\x87\xdc\x18\xb3\xa8\xaa\ +*\x9c\xcdf\x94\xa6\xe9_a_\xd14M1\x9b\xcd\ +\xa8\xaa\xaa\xd0\x18\xb3\xe0m\xdbn\xea\xbaF\x96e/\ +a_\xd1,\xcbP\xd75\xda\xb6\xdd\xf0\xa6iR\x00\ +\x98N\xa7\xcc9\xf72\xe8\x9c\xc3t:e\x00\xd04\ +M\xca\x9ds\x03\xdf\xf7!\x84\x00\x11\xbd\x0c\x12\x11\x84\ +\x10\xf0}\x1f\xce\xb9\x01\xc7\x9b\xc39\xe7\x8f\xae\xeb`\ +\x8c\x01c\xece\x801\x06c\x0c\xba\xae\x03\xe7\xfc\xc1\ +\xc30T\x00p\xb9\x5c\x88s\xfe/7\xc2\xe5r!\ +\x00\x08\xc3P\xf1 \x08\xf6q\x1cCJ\x09\xcf\xf3^\ +\x06=\xcf\x83\x94\x12q\x1c#\x08\x82=\x17B\x14I\ +\x924\xe7\xf3\x99)\xa5^B=\xcf\x83R\x0a\xe7\xf3\ +\x99%I\xd2\x08!\x8a\xb7?\xbd\xffS\x0e\xef\xac\xaf\ +\xb7\x17,{\xf7\x17\xf0\x1b9v\x0e\x01\xc1\xbf\xd8\xe3\ +\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x06\x0e\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ +\x00\x00\x03\x00PLTE\x00\x00\x00\xff\x00\x00\x00\xff\ +\x00\xff\xff\x00\x00\x00\xff\xff\x00\xff\x00\xff\xff\xff\xff\xff\ +\xdb\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$\ +$$\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\x00I\x00\ +\x00$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\x92\x00\x00m\x00\ +\x00I\x00\x00$\x00\xdb\xdb\x00\xb6\xb6\x00\x92\x92\x00m\ +m\x00II\x00$$\x00\x00\x00\xdb\x00\x00\xb6\x00\x00\ +\x92\x00\x00m\x00\x00I\x00\x00$\xdb\x00\xdb\xb6\x00\xb6\ +\x92\x00\x92m\x00mI\x00I$\x00$\x00\xdb\xdb\x00\ +\xb6\xb6\x00\x92\x92\x00mm\x00II\x00$$\xff\xdb\ +\xdb\xdb\xb6\xb6\xb6\x92\x92\x92mmmIII$$\ +\xff\xb6\xb6\xdb\x92\x92\xb6mm\x92IIm$$\xff\ +\x92\x92\xdbmm\xb6II\x92$$\xffmm\xdbI\ +I\xb6$$\xffII\xdb$$\xff$$\xdb\xff\xdb\ +\xb6\xdb\xb6\x92\xb6\x92m\x92mImI$I$\xb6\ +\xff\xb6\x92\xdb\x92m\xb6mI\x92I$m$\x92\xff\ +\x92m\xdbmI\xb6I$\x92$m\xffmI\xdbI\ +$\xb6$I\xffI$\xdb$$\xff$\xdb\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\xb6\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x92\x92\xff\ +mm\xdbII\xb6$$\x92mm\xffII\xdb$\ +$\xb6II\xff$$\xdb$$\xff\xff\xff\xdb\xdb\xdb\ +\xb6\xb6\xb6\x92\x92\x92mmmIII$\xff\xff\xb6\ +\xdb\xdb\x92\xb6\xb6m\x92\x92Imm$\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$\xff\xffm\xdb\xdbI\xb6\xb6\ +$\xff\xffI\xdb\xdb$\xff\xff$\xff\xdb\xff\xdb\xb6\xdb\ +\xb6\x92\xb6\x92m\x92mImI$I\xff\xb6\xff\xdb\ +\x92\xdb\xb6m\xb6\x92I\x92m$m\xff\x92\xff\xdbm\ +\xdb\xb6I\xb6\x92$\x92\xffm\xff\xdbI\xdb\xb6$\xb6\ +\xffI\xff\xdb$\xdb\xff$\xff\xdb\xff\xff\xb6\xdb\xdb\x92\ +\xb6\xb6m\x92\x92Imm$II\xb6\xff\xff\x92\xdb\ +\xdbm\xb6\xb6I\x92\x92$mm\x92\xff\xffm\xdb\xdb\ +I\xb6\xb6$\x92\x92m\xff\xffI\xdb\xdb$\xb6\xb6I\ +\xff\xff$\xdb\xdb$\xff\xff\xff\xdb\xb6\xdb\xb6\x92\xb6\x92\ +m\x92mImI$I$\x00\xff\xb6\x92\xdb\x92m\ +\xb6mI\x92I$m$\x00\xff\xb6\xdb\xdb\x92\xb6\xb6\ +m\x92\x92Imm$II\x00$\xff\x92\xb6\xdbm\ +\x92\xb6Im\x92$Im\x00$\xdb\xb6\xff\xb6\x92\xdb\ +\x92m\xb6mI\x92I$m$\x00I\xb6\x92\xff\x92\ +m\xdbmI\xb6I$\x92$\x00m\xb6\xdb\xff\x92\xb6\ +\xdbm\x92\xb6Im\x92$Im\x00$I\x92\xb6\xff\ +m\x92\xdbIm\xb6$I\x92\x00$m\xb6\xff\xdb\x92\ +\xdb\xb6m\xb6\x92I\x92m$mI\x00I$\x92\xff\ +\xb6m\xdb\x92I\xb6m$\x92I\x00m$\xdb\xff\xb6\ +\xb6\xdb\x92\x92\xb6mm\x92IIm$$I\x00\xb6\ +\xff\x92\x92\xdbmm\xb6II\x92$$m\x00\xff\xb6\ +\x00\xdb\x92\x00\xb6m\x00\x92I\x00\xf6\xa2\x08\xf6a\x06\ +\xb6\x00m\x92\x00I\x00\xb6\xff\x00\x92\xdb\x00m\xb6\x00\ +I\x92\x00\x00\x00\x00\x00\x00\x1a\x88\xeb\xf1\x00\x00\x02\xc9\ +IDAT8\xcb\xb5U1H[Q\x14=\xf7\xff\ +4\xfe$\x1a\x0bi D\x12\x89\x98\x04~[t\x10\ +\x1c\x9d\xe2\x107A\x04m\xa7j4Nu\xa9\x94\xce\ +R\xec\xa2SBc\x87.\x0a\x22\xd8I):\xd9N\ +\x82\x94H\xe9\x87$b0!!\x10\x1c\xb4\xe6\xffo\ +\xc8\xf7ux\xc6Z+6\x82=\xeb{\xe7\xbcs\xde\ +\xbb\xf7>\xc2\x15\xc4c1\x8aNM\xb1\xd5\xe5%\xa9\ +\xa2\x9f\xf5\xab\xba\x1e-\x1f\x9f\x84j\x8c\x89\x00`\x22\ +2\x9c\xad\xf6-\xab$\xc5mR\xd3\xe6\xd0\xc8\xa8^\ +\xe7\xd45\x08\xd7\xf0!\x91\x08\x1f\x9d\xfc\x8c\xefe\xf6\ +\xbd\x05EAOv\x1bn+_+\xaa\xc0\xae\xaf\x0f\ +m\xb2\x8c.\x7fg\xceao\x89\x8eE\x22\x1bW\xf9\ +\x7f\x08.&\x12\xaf\x94\xc3\xfc\x5cyc\x05\x83b\x9a\ +u\x07\x01W\x87\x99\xcc6\xbe\xadZa(\x1dTY\ +2\x05\xac\x19\x01r\x86\x87!\xb7{f\xc6#\x91w\ +\x97\x82u\xcb\x8b\x89\xc4\xabl>?\xa7\xad\xcc\xe3e\ +\xf7)\xbc\xbd\x16T\x1d\x80ab\xbf\x8fe\x80X#\ +\x98\x8f\x80\xdc\x8e\x86\x85d3,\xc3\xd3\xf0y\xb8h\ +<\x16#\xaa\xc7\xfcq\x98_\xc7\xea<\xde\x0e\x9c\x82\ +d\x0bj\x16\x06b\x5c\x04\xd721\x02L\x1a\x81)\ +\x1a^\xaf7\x03C\xd3x\xdc\xee\x19\x18\x8bD6h\ +uyI:(\x96R\xdf\x97\xde{g\xfdi\xb8B\ +\x16\x18\x16\x06\x9c\xe3v\x08\x80\xa8\x11J[\x1a\xded\ +\x02x::\x91\xebp\xbb\x82BE?\xeb\xdf\xcb\xec\ +{\x07\xc54\xf3\xf6rg\xff\x14\x03\x80s\xa0fa\ +\xf0\xf6Z0(\xa6\xd9^f\xdf[\xd1\xcf\xfa\x05U\ +\xd7\xa3\x05EAw\x10\xa8:\xc0c6\x08b\x9c\xd3\ +\x1d\x04\x0a\x8a\x02U\xd7\xa3B\xf9\xf8$\xd4\x93\xdd\x86\ +\xab\xc3L\x86\x89\xfd}g\xb7\x81\xf1Gsu\x98\xa9\ +'\xbb\x8d\xf2\xf1IH\xa81&\xba\xad\x80\xd9F7\ +Te#69\xd7m\x05j\x8c\x89\x02\xee\x19\x82\x89\ +\xc8(\xaa\xbch\xef\x14\xf7J\xecj\x85\xa1\xa8\xf2\xd6\ +\x14\x9c\xad\xf6\xad]_\x1fJ\x07U&\xd6\xee\x18\x9b\ +x\xa1\x97\x0e\xaal\xd7\xd7\x07g\xab}K\xb0JR\ +\xbcM\x96\x91L\x01\xe6#^\xb4\x0d\x9b#\xceI\xa6\ +\x806Y\x86U\x92\xe2\x82Mj\xda\xec\xf2w\xe6\xd6\ +\x8c\x00\xe5v4\x984\x02\x1a\xb9Y\x81wKnG\ +\xc3\x9a\x11\xa0.\x7fg\xce&5m\x0aC#\xa3\xba\ +\xc3\xde\x12u\x86\x87\xb1\x90l\x06S4\x88\x1a\x81\x09\ +\xb89>\x01\xec\xa2K\x98\xc2\xfb\xd9\x19\x1e\x86\xc3\xde\ +\x12\x1d\x1a\x19\xd5\xc5x,F\x13\x93\x93\x99\x17\xcf\x9f\ +i\xa7\x1e9\xf4\xf9\xd37\x91B\xaa\x85P\xb5\x03\xfa1Wy\xd9\ +\xdd\xbb[r!\xf7\xf4\xdf\xc3;\x1f\x1f\xef\x10|\x83\ +\xef\xfb\xe4\xfc\xfc\x5c\x86a\xc8\xca\xb2<.\x8ab\x92\ +e\x99\xd7u\x9d\x02\x00\x94\xd2\xd60\x8c@\xd7\xf5Y\ +\xbf\xdf\xbfw]W\xacg\xd6\x0e\x82\x1f\xb8\xbe\xbe\xfe\ +\x90\xe7\xf9,\x8a\x22#I\x12\x00\x80\xa6i\x00\x80\xaa\ +\xaa\x00\x00\x96e\xc1q\x9c\x8cs>\x19\x8dF\xcbo\ +\xe7\xbf\x13\xce\xe7\xf3\x8fOOO\x9f\x83 \x80i\x9a\ +\xd2\xb6mp\xce\x09c\x0c\x00 \x84@\x9e\xe72\x8e\ +c\xa4iJ<\xcf\xc3\xc1\xc1\xc1\xa7\xf1x\xfc\xeb\xda\ +\xa1\xf8\xbeO\xee\xee\xee0\x9f\xcf?>??\x7f~\ +xx\xc0\xe9\xe9)\x0e\x0f\x0f\xc9\xe6\xe6&\x01\x80\xba\ +\xae\xd14\x0d(\xa5\xd8\xda\xda\x22{{{d{{\ +\x1b\xcb\xe5\x12\x8c1\xef\xe2\xe2\xe2\xcb\xed\xed\xed\x1f\xbe\ +\xef\x13\xb2~f\x14E\xbf?>>b:\x9dBQ\ +\x14\xd4u\x0dB\xfe\xb6\x11\x00\x80\x94\x12\xaa\xaa\xa2m\ +[\x5c^^\xe2\xe8\xe8\x08\x8e\xe3\xfc2\x1a\x8d\x964\ +\x0cC\x96\xe7\xf9,\x08\x02\x0c\x87C(\x8a\x82\xa6i\ +\xfeU\x06\x00\x84\x104M\x03EQ0\x1c\x0e\x11\x04\ +\x01\xf2<\x9f\x85a\xc8hY\x96\xc7Q\x14\x19\xa6i\ +\xca\xc1`\x80\xba\xae\xf1Z\xea\xba\xc6`0\x80i\x9a\ +2\x8a\x22\xa3,\xcbcZ\x14\xc5$I\x12\xd8\xb6\x0d\ +!\xc4O\x93\xfdSR!\x04l\xdbF\x92$(\x8a\ +bB\xb3,\xf3\x00\x80sN\xba\xae\xc3\x7f\xa5\xeb:\ +p\xce\x09\x00dY\xe6\xd1\xae\xeb\x14M\xd3\xc0\x18\xc3\ +[\x85\x8c1h\x9a\x86\xae\xeb\x14\x8aw\x86RJ\xdb\ +\xaa\xaa \x84\x00\xa5\xf4-\x02\x08!PU\x15(\xa5\ +-5\x0c#\x00\x80<\xcf\xe5[\x85y\x9eK\x000\ +\x0c#\xa0\xba\xae\xcf,\xcbB\x1c\xc7`\x8cAJ\xf9\ +j\x99\x94\x12\x8c1\xc4q\x0c\xcb\xb2\xa0\xeb\xfa\x8c\xf6\ +\xfb\xfd{\xc7q\xb24M\xc9j\xb5\x82\xaa\xaa\xaf\x16\ +\xaa\xaa\x8a\xd5j\x854M\x89\xe38Y\xbf\xdf\xbf\xa7\ +\xae\xeb\x0a\xce\xf9\xc4\xf3<,\x16\x0b\xb4m\x8b^\xaf\ +\xf7\xd3\xa4RJ\xf4z=\xb4m\x8b\xc5b\x01\xcf\xf3\ +\xc09\x9f\xb8\xae+\x14\xdf\xf7\xc9\xd9\xd9\xd9\x9f\xd3\xe9\ +\xf4\x0bc\xcc\xbb\xb9\xb9\xc1\xee\xee.vvv\xbe\x9e\ +\xd1ZN)\x85\xa2(\xd8\xd8\xd8\xc0\xcb\xcb\x0b\xae\xae\ +\xaeprr\x82\xfd\xfd\xfdO\xe3\xf1\xf8\xb7\xaf\xe5\xf0\ +\x9e\xf5\xf5\xff\x16\xec{|\x01\x7f\x01\xe6|}\xedp\ +\xe4\x03\xa4\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x02\x88\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x02*IDATx\xda\x8c\ +SKh\x13Q\x14\xbdo\xe6ef\xd2L&\x93O\ +\xeb\x87\xda\xa8\x04\xec\xa6B\xc1E\xd6\xee,H\x16~\ +6.\x047*.\xba3\xb8\xaa\xba)\x08\x8a\x1bE\ +\x17\xbaPApe\xc0\x8d\x9b\xe2RpS\x15$D\ +R\xa3\xa9\xf8Ic\x87$\x9d\xef\xfb8\x934:)\ +C\xc9\x85\xc7\xdc{\xe7\xdc\xc3\xb9\xf3\xe6 \xce9\x04\ +Q*\x95N\xd6j\xb5}\xf5z\x1d<\xcf\x0bZ\x13\ +\xfe\xc9J\x92$\xab\xaaJ5Ms\xd2\xe9\xb4\xad\xeb\ +\xba\x9dL&\x1b\x95J\xe5e\x00\xc2\xb0\x1d\xeb\xb3\x0b\ +\xda\xebG\xcf\xaf\xac\xfd\xde\xfa3\xa9\xca\xca\xde\x8c\x92\ +\xfbi\xd8\xdf\x1c\x8f!\xcb\xa5\xc8%\x0c\x01p\x98\xc9\ +%\xd2g\xef<\xbb5\x9c\x13\x86\x89\xaf\x04\xc1\x98\x11\ +\xc6\xeeJ\x80\x05\x84U\x05'c\xa2\x80\xc7!\x10\xc2\ + q0\xac\xdf~\xe2\x1d3\xb7\xf0\x810I\x18\x1b\ +\xa9\xc0\xf3\xc4\xc9{/z\xd37\x1e\xf6\xe6\x12\x0a%\ +O_\xd9\xf9\x09YT\xc6R\x10\x97D\xf9\xcd;{\ +\xea\xf4\xf1x{\xe9\xa2\xfaqc\xd3\xc5\xe7\x16\xa4\xaf\ +\xa6C\xed]\x150\xc6\xfa\xac\x22B\xc2\xfcl\xac\xbb\ +'+Z\x8c\x03\xbd~9\xb5\x9a\xd4\xd8\xbaa\xa0\xe9\ +\x84\x8c\xe3al\xa4\x82\x9eC\xac\xa9\x1c\xfa^o:\ +\xfa\xe2rs^@H\xecvy\xf6\xfd'Sg\x9c\ +\xd3\x9d\x0apH\xc1\xff\xa6\x88\xe4\xa5\xfb\x0d=\x93\xc2\ +\xde\xe2\xf2\x97\xb9\xfc~\xd9:s\x22\xd3\xb4\x5c\xe2\xfa\ +\xaf\x13al\xe4-\x10\xca\x9d\xa5K3\xc6\xaf\x0d+\ +v\xf7\xda\xa1\x0f\xe7OeW\x09\xa2?\xa2\xb0x\xe7\ +7\x18\xe4\x9c\x16\xf2\xf1\xcd\x077\x8f|\xee\x9a\x9em\ +{,\x90\x8e\xa2\xb0\x91+\xf4k\x7f_\xd3!]\xc2\ +\xfaW6\xf2\x93\x8d\xac;L\x0a\x8d\x15\xe7\xed\xca\xc1\ +\xa3\x9dN\x07j\x8c\x81i\x9a\xd0n\xb7\x0b\x84\x10P\ +\x14\x05|CA*\x95\x82\x96\xa6\x05X_\xd1\xd5Q\ +\x82j\xb5*\x15\x8bE0\x0c\x03,\xcb\x02B\x18\xb4\ +Z=p\x1c\xee\x13\xc4\xc1wc\x9f\xc0w#\x94\xcb\ +\xe5\x7fshhg\xdf\xb6\x17(\xa5\x87\x83z\xbb\xd7\ +\x97\x8d\xd0@}\xe8\xc9\x05AXs]\xf7qP\xff\ +\x15`\x00\x0aY\x1e?\x8e\xdb\xef\xb9\x00\x00\x00\x00I\ +END\xaeB`\x82\ +\x00\x00\x02\xeb\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x02\x8dIDATx\xda\x8c\ +\x93\xdfKSa\x18\xc7\xbfg;n;\xdbY\x8e1\ +b\xc8\x06u\x11\xe2\xa6\xa8\xcd.v#\x04\xb5\xbc\xc9\ +\xd0\xd4\x8b\xc1DR\x0bj\x191\xba\xe8B\x10!\xf1\ +J\xba\x11\xaa+!\x12j\x8c\xba\xe8\x07\x8c\xfe\x01A\ +\x17\x86\xd8\xb6\xa4Dd%[\xa7y6\xf6\xfb\xec\xf4\ +\x9c\xa9\xa15\xb2\x17>\xbcp\xde\xf3|\xbf\xcf\xf7y\ +\xcfap\xcc\xb2\xdb\xedp\xb9\x5c\xb0\xd9l-&\x93\ +\xa9\xc7`0\xbce\x18&vp\xae\xc2\x7f\xacj\xb5\ +\xea\xccd2\xbd\xc3\xc3\xe3s\xd1h\xb47\x16\x8b\xa1\ +X,\x1e+\xd0C\xac\xc8\xb2<\x96\xcdf\xfb'&\ +\xee\xcf\x0e\x0d]\x99\x89\xc7\xe3\xefT*\x95\x22\xfaO\ +\x81\x1b\xc4L \x108\xbb\xbd\xbd}sjjn\xba\ +\xaf\xcf3_(\x14Bf\xb3y\x8d\xe3\xb8\x16I\x92\ +\xee\x92xs=\x816\xab\xd5z\x9bV\xa7(\x8a\xf0\ +\xfb\xfd\x9d\xdd\xdd\x1d\xab\x82 \xc4\xc85\xa2V\xab\x8f\ +\xc4Q\xd7sw\xbb\xdd\x1e\xbd^\xcf\xa5\xd3iT*\ +\x15tuuY\x97\x96\x96\xec\xe4,\x19\x8d\xc6s\x93\ +\x93\xb3\x0f|\xbe\x81\x192x\xc9\xd6\x11h\xb7X,\ +\x5c*\x95\xaa\xe5\xcc\xe7\xf3\xa0V\xe1\xf1xZ\xc3\xe1\ +\xf0\x9d\xc5\xc5\xd7\x0e%\x0e\x19\x84t:\xddZ=\x01\ +;]\x93\xa6T*\x812cg'\x09%\x0a]\x1f\ +\x9c\xce6\x07\xc5\x89\xf1<\xff9\x97\xcbEh\xb8\x7f\ +\x0d\xf12a\xa6bU:-\x22\x91H\xa2T\xaaB\ +\xa7\xe3!I\x0c\x18\x86\x85\xc3\xd1\xdeL\x85~\xa5C\ +\x1a0\x0ew\xd0K<\x1c\x19\x199\xbd\xb1\xb1I\xee\ +Up\x1c\xff\xfb\x90e\xd5\xd8\xbc\xf8\x1d)\xb3PB\ +\xb2\xf1\x13\xbe\x94\x81\xb2\x8c\xc3C\x0cS\xf1\xa9\xad\xad\ +\x04eg\xd1\xd0\xa0\x05\x0d\x0cZ\xad\x86F WD\ +1]H\xb8\x93\x18\x1d\x1b\xd5D\xc4\x8fY\x9ca\x9f\ +\x10G:x\xb5\xb0\xb00\xe0\xf5^k\x12\x84\x0ce\ +\xd6!\x14z\x9a\xa0\xe7\xbb\x18\xe7O\xa2\x99-C\xcf\ +\xfc\xdc\x95v[P\xac}D\xcb\x90\xb1rP\xec%\ +\xe4\xc1\xc1A\x99v\xc1\xeb\xbd^\xdb\x89\xab\x8a\x0b\xe6\ +M\xcb\xe7\xbf\xf5\xcb\x7f\xa2 Z}\ +\xa3\xb8\xff\x12`\x00\x16\xa7\x22\x09\x8f\x08\x940\x00\x00\ +\x00\x00IEND\xaeB`\x82\ +\x00\x00\x02\xbc\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x02^IDATx\xda\x8c\ +\x93Mh\x13Q\x10\xc7\xdf~\x9ad\x93l\xb6\xb2Z\ +\xabM\xfa\x15\xb1!m\xb5U\xe3\xa1\xa41\x15\x04\x8b\ +\xa9\x14\x14\x11\x02\x05\x0b\xea\xb5\xad\x87\x9e\xedU(\x08\ +\xbdi\xc1\x8b(\xf5\x10\x10\xe9A\xd0\x83\x1f\x84B!\ +P\x1bM)\xbd\xa4\x11\x83&\xa91\xc9n6\xbb\xeb\ +\xbc\x90b\xb3n\xc1\x81\x1f\xef\x83\xff\xcc\x9b\x99\xf7\x1e\ +\x11\x89D\x90\x99Q\x14\x85\x11\x08\x82\x18\x80e\x1b\xc0\ +\x01% \xa3\xebzBU\xd5<\x80ht\xb0u\xda\ +\xec\xfc\xc5\xf3\xa3\x91\xde3\x83\xe7z\xdaDgkU\ +\x96s\xf1x\xfc\xeb\x9bW/\xbb\x8a\xbb\xb9\xb7\xa0\xd9\ +\xa6\xbc^/\x82\x88M\x80\x09\x9c\xd356q{6\ +\xd8}\xf2\x94\xdf}\xc4)\xd2$A\xb3\x0c\xe3\xf0t\ +txZ\xbb\xfa\x1c\xc9\xc4*)K\xe5m\x12\xa7a\ +\xa4V\xab\x0d\x06\xc2\x11\x9fC8\xec\x118\x96%\x09\ +D\xec\xa5\x85\xe7\xee\x13\xc7z\x86/_\xeb\xc3:\xba\ +Z\xad\x9a\xa5\xdf\xee\xf5\x0f\xb9\xf1$\x93\xafH\x18\xa3\ +\xc07p\xb6sy\xe9Q;\xad(\x8aY\x00\xdeb\ +\xb5\xb6\xa8Z\xbd\x1c\xd4{\xdc\xe94\x0a\xd2\xb9\x0a\x03\ +\xbe\xfcA\x19\x945E*\x22\xea\x10o\xe6\x5c/E\ +\xad\x16\xc1\xb7L\xca\xb2\x8cLH'\xd7>eh\x8a\ +\xa4\x94\x9a\xae\x1a\x9dqb\xebk\x1fw\xb0\x8e\x14\x04\ +\x01\xf1<\x8f\x1c\x0e\x07\xb2\xdb\xed\x88\xe38\xc4\xb2\xec\ +f\xec\xf9R\x9a\xa9\xfdV\xaa\xaa\xd6|2IP\xbb\ +?\xbfg\x1f/.$K\xa5\xd2*i\x8c\x0e\xd7\xe8\ +a\x18f\xfc\xde\x9d\xbb\xf3S7\xaf\xc6Wb/R\ +\xba\x22\x95\xad,e!T\xb9\xb2\x12[\xfer}\xfc\ +\xca\x87\x8d\xcf\xeb\xaf%I\xfaA\x84\xc3a\xa4i\xda\ +\x1e>\x9b\x8d\x9b\x98\x9e\xbe\xff \x1a\xbd5\x9f\xcf\xe7\ +\x9eAL?\xd0\x0d\xe0^\xfc\x02\xb6\x80w6\x9b-\ +\xebr\xb9\xfe\xbeD8\xf9\x82(\x1e\x8d\xcc\xcc\xcc\xcd\ +E\xa37\x1e\x82\xf3S\xd8\xde\x046\xcc\x9a\x08o\x00\ +e\xb3Y\x84B\xa1\x10\x0a\x06\x83c\x93\x93S\x0b\x89\ +\xc4\x96\xde\xdf\x7fz\x91\xa6\xe9!\xfc\x17\xe0\x1f@\xcd\ +\xe4?4\x99\xdb\xedF\x81@`6\x95\xca\xea##\ +\xa3O\xc0\xf9\x12v\xfc_\xc3J\x8b(\x8a\xc3PB\ +\xa8P(|\x83\xd4\xde\xc3\x1e\xbe\xbaZ\x03e\xdf\xa8\ +\xec[c\x8d\x8a\x03\xe0>\xb44F\xbd\x81f\x82j\ +\x18\xeb\xba?\x02\x0c\x00\xdbg#\xc50\xdaG\x97\x00\ +\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x02\xd9\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x02{IDATx\xda\xa4\ +\x93\xdfo\xd2P\x14\xc7\x0fm\xe9(\xc8\xc2\x18,\x88\ +\x19F`\x22h\xb6,a3\x99Y\xc2^\xf6\xb2\xf8\ +2}\xf5\x9f\xe0/\xd8_\xc0\x93\x7f\x00\x89\xc9\x9e\x0c\ +[\xe2\xc3\xde\xcc\x8c\xbf\x96\xc8\x8bY\x1c\xc1A\xe64\ +\x99\x80\x80B\xa1-\xa5-\x9eS\x0a\x81\xc57o\xf2\ +mo{\xcf\xe7{\xcf\xbd\xf7\x5c\xdb`0\x80\xffi\ +\x1c=^\xd8l\xc0\xe2\x9bd\x03\x08\xa2v\xb1\xbb\x81\ +\x0aYq\xdfQ\x1fp\xaa\x1c\xeaJ\xc7\x0f\xd23\x9c\ +\x9c\xbbf\xf8\xd8.\x08\xe9\xf0\xf2r4\xb8\xb4\xe4\x15\ +fg\x1d\x94\xa1\xdcn\xaf^\x9d\x9fo^\x9c\x9e>\ +Qe9\x83q\xaf\xa62\x18\xc1\x82\xc7\xb3\xf7pg\ +'>\xe08\xa1\xa7i\xd0k\xb5Fc\xce@<\xee\ +\xf4\x87\xc3\xf3\xf9\xa3\xa3\xbd\xee\xf0\xbfi\xc2\xd0\x03\xd3\ +\x0a\xb2\x0eGzu{;\xde\x92$!\x90\xcdB\xa7\ +\xd3\x99\x92\xf9OQ\x84\x07\xa9T\x9c\x99\x99I\x133\ +6\xc0\xf5\xec\x86\x12\x89\xe8oQ\x14\xee\xe6r\xe6\x94\ +\xf7\x0e\x0fA\x14ES\xd4\xa7\x16;8\x00\x11M\x16\ +\x22\x91\xa8>\xdc\xa7\xe1\x124\x80Gn\xbf\xdf[o\ +6\xe1e4\x0aOK%P\x14\x05B\xfb\xfb I\ +\x12\x94\xf0\x9ba\x18x\x9dL\x82\xddn\x07\xdf\xdc\x9c\ +\x97\x18D\x9f3\x96\xc1\xa2\xc10\x0e\x0d\xd7\xedv\xb9\ + \xeb\xf3A\xa1P\x80j\xb5j\x1a\xd9\xf0\x94\xde \ +\xcc\xd3)\xf5\xfb\xa0H\x92\x83\x98\xc9\x0c@\xc3\x01\x15\ +\xd3\x950\x0b\x97a\x00\xcb\xb2\xe6l<\xcf\x9b\xba1\ +\xb1\xdb,\xc6jV\xdf\xcc\xa0\x0f\xf0C\xac\xd5\x94A\ +\xbd\x0e\x82\xaeC\xec\xf8x\x0a\xe68\x0eR\xc5\x228\ +\xe98\x08PU\x85\x98\xb1\x01\xba\xbd\xafU*\x0d7\ +\x06.N\xc0\x9f\xd7\xd6\xe0\xd3\xca\x8ai@\xda(\x97\ +M\x83\xb6,7\x89\x994\xc8}k4\xca\xb8S\xf2\ +\xe5\xd6\x96\x09\x9f!|\x0b\xc7H'\xb1\x98\x99\xee\xbb\ +H\x04\x0c\xc3\x90+\xbd^\x89\x98\xb1\x81\x81\xe5\xd9\xd5\ +\xf5\xcc\xc7z\xbd\xe0\x05\x90\xbf\xae\xaf\xc3m\xfc/X\ +\xa2\xfe\x09\xc2\x1e\x84\xf3\x9dNA2\x8c\x0c1\xc4\xda\ +\xa8Ti\x97)(\x89\xd5x\x87a\xd2q\x9e\x8f\xc6\ +x\xde\xebaY\x07\x05\xfd\xd1u\xa5\xa8\xaa\xcd\x82\xaa\ +\x96.\x10\xcec\x15^R\x01\x12k\x19\xd0i\xcc\xa3\ +|X^\x81\x04\xc0\xe6\x02\xc0}\xbc\x5c7\xadB\xfb\ +Y\x03\xf8r\x06\xf0\x16\xa7\xc5.\xfcB\xd5\x91\xd5F\ +\x06\x8c\xb5\xc1\xcek\xf7\xe3_\x8d.b\x17%!k\ +\xfc\x15`\x00\xcf#\x1ce\xff\xcb\xd4\xf5\x00\x00\x00\x00\ +IEND\xaeB`\x82\ +\x00\x00\x1d\x10\ +\x00\ +\x00nGx\xda\xed]ko\x1cGv\xfd\xee_\xd1\ +\xe1~\xb1\x81\x9eV\xbd\x1fZ\xc9\x0b\xc4\x9b\x85\x03\xd8\ +@\x80l\x84|3(r,2\xa6H\x81\xa4%Y\ +\xbf>\xe7\x9c\xea\x9e\xe9\x1e\x91\x1cI6\x19;\x96\x17\ +\x89U5\xfd\xa8\xc7\xbd\xe7\x9e{\xea\xb6\xfc\xe4oo\ +_\x9eu\xaf\xd7\x97W\xa7\x17\xe7O\x0f\xec`\x0e\xba\ +\xf5\xf9\xd1\xc5\xf1\xe9\xf9\x8b\xa7\x07\xff\xf5\xcf\x7f\xac\xca\ +Awu}x~|xvq\xbe~zp~q\ +\xf0\xb7\xaf\xbfx\xf2/\xabU\xf7\xcd\xe5\xfa\xf0z}\ +\xdc\xbd9\xbd>\xe9\xfe\xfd\xfc\xa7\xab\xa3\xc3W\xeb\xee\ +\xcb\x93\xeb\xebW\x8f\x1f=z\xf3\xe6\xcdp:v\x0e\ +\x17\x97/\x1e}\xd5\xadV_\x7f\xf1\xc5\x93\xab\xd7/\ +\xbe\xe8\xba\xf9;\xed\x01;N\x8f\x9f\x1e\xe07\xa7\xc6\ +\x9b\xd3\xe3\xeb\x93\xa7\x07\xc9\x87!\xe1\x9f\xaa\xce\x93\xf5\ +\xe9\x8b\x93\xeb\xa7\x07\xce\xfa\xc1\xf3\x1f\xf5\xbe>]\xbf\ +\xf9\xd7\x8b\xb7O\x0fLg\xba\xcd\x0d\xdd\xf2\xa2+\xcc\ +\xe8\x15\xfe\xef\xf1\xf1\xc5\xd1\xf9\xe1KL\xe4?\xff\xed\ +\x9b\x8b\xff\xf8\xe1\xea\xe7\xe7\xd7\xa7\xd7g\xeb\x01on\ +\xa3\x18\x87\xfcx6>7\xb8\xee\xcb\xe7\xe6\xb0\x84\x92\ +b\xb0}\xe7\x8cs+\xebV\xc6~\xa5\x9b\xb0\x86\xe7\ +W\x8f\xa7[\x9f\x1e\xdc\xb6\x04|\xf3\xd5\xab\xc3\xa3\xf5\ +\xd5\xa3\xa9\x7fv\xff4\xc6\xcd\xfdS\xc7pu\xf1\xf3\ +\xe5\xd1\xfaG9\ +^\xffx\xc5[\xda\xe6\xb0\x95\x0e\xbaG\xfai\xb3\xa0\ +\x9c\xd31\xf7`{\xe1\xa6+\x1c\xb4\xceW\x87/\xd6\ +G\x17g\x17\x97O\x0f\xfe\x12\x0d\xff7\xfe\xf0\xfc\xe2\ +\xf2x}9\xfd\xb4\xd6?\x8b\x9f.\xb0Z\xa7\xd7\xbf\ +`\x17\xc6\xee\xcd\xfe\x5c\x9d\x5c\xbc\xe1s\xafN\x0e\x8f\ +/\xde`\xf7w/\xe0\x8f\x9b\xdbo\xfc\xf5\xe8d}\ +\xf4\xd3\xfa\xf2\xf9\xc5\xe1\xe5\xf1\x0d\x97\x1c\xaf\xaf~\xba\ +q\xd4|\xf5\x8bK\xce\xf4\xc7\xc3\xb3\xab\xf5\xee}\xef\ +..^\xca\xacMrq\xf7\xc7#\x18\xaa\xb7yp\ +\xa5X\xff\xde\x8f\x9c\xa8I\xb2\xe0\xb4\xfb\xe3\x9b\xd3s\ +Lt5z\x86\xad\xce\xdcr\xc5\xe4&\xd6f{\xcb\ +%o\xef|\xc0M\xeb5\xfe\xf4\xf2\xf0\xed\xe9\xcb\xd3\ +w\xeb\xe3\x1bv\xe4\xe8\xe7\xcb\xcb\xf5\xf9\xf5\xea\xec\xf0\ +\x975\xd6\xec\x855\x93\xb1\xbc\xd8\xda\xc6\x8b\xb2{\xdb\ +\x8b\xcb\x8b\x9f_\xbd\xbc8\x86\xdf\xe8\xce\xdd\xdf\xcf\x0e\ +\x9f\xaf\xcf\x9e\x1e\xa0\xfd\xc3\xfa\xed\xf5\x0f\xff\xad\x7f\xc6\ +\x8b\xae/\x0f\xcf\xaf\xe0\x17X\xef\x97\x87\xd7\x97\xa7o\ +\xbf\xb4\xcd\xe9\xbd\xef\x0d\xfe\xb7\x9a77\x88\xf0\x95\xac\ +{;\xaeqdv\x9a\xf4\xe2\xb9\x18\xc4\xd9\xfaK3\ +\xd8\xe9.\xdc\xf7\xea\xf0\xfad\xba\xb4\xdd\xcc\x1e\xeb\x0e\ +\xb6\x9dW\xd7\xbf\x9caF?\x9e\x9e\x9d=\xfe\x8b\xf3\ +\xf6Gg\xfe\xca\xc6j4\xc9\xc7\xb65/\x7f>[\ +?^\xbf^\x9f_\x1c\x1f\xff\xf5\xea\xfa\xf2\xe2\xa7\xf5\ +\xe3s \xed\xecQx\xfc\xf7\x9dO>\x0d5\xf8\xd8\ +Yg\xeb\xe0\x82w\xddw\xb3^W\xe3`\x5cu\x85\ +\xbd%D\x1a\x98\xbb\xa57q!R\xb5\x9e\xbd5\x84\ +!\xda\x94g\xbd\xdft\xc1\xc44\xb8\x9c\xd2\xac7X\ +\xdc\xefS\xf2]\x0an\xb0%\xe2I\xc1Y\x80cH\ +xf\xad\x03\xde\x90\x13\xefv\xb9\x0e\xd6%\xdbe<\ +\xa6\x18<\ +\x18\x98Td\xdfl\xc91J,\x0clq\xb69X\ +\x01?\x98l\xf2l\x13o\xdan\xf9\x95\xc5\xfd9\xc7\ +(\xbf\xb69\xe5\xa8\xf5\xc0jZ\x1b\xc3\xac\xd7c\xe1\ +\x81\x10X\x85\x9c`\xc4\xe4R\xb3\xbe\x84\x05\xb4\xa0m\ +EwO\xbd\xc0\xa5\xc1\x86bm{b\x8c\x1eH\x82\ +Y\x1ag\x80\x0a\x18\x13\xfe\x88\x8d\x9b\xf5\xc9\x04\xcb\x90\ +\xab\xaf\xb3^\xc7AG\x1f<\x9e\x18\x06\x8f\xc1\xc7Y\ +_\xd2cJ3\xc1Mo\xc6r\xc5\xaa\xf5\x00'\xa2\ +'G\x98 \xb6/&\xec\x1a\xf7\x0e\xdbRB\x97\x8b\ +\x1d\xb0\x1cI#71\xc0\xde\x0a\x9d?\xa8\x17\xf36\ +\x95\x0fZ\xac\xd0M\xabv\x97G\xc3\xe3^v.\xa5\ +\x02?\xea=\xd0\x17\x8e\xd2\x1du\xabDt\xefWx\ +F\xc0Z\xaf,\xcc\xc2\xf9~\x05G\xb1\x18\xe3\xcaE\ +Xz\xdd\xb6-\xb0\xb1\x84\xde\xe0\x17\x82~\xeeaZ\ +\x16\x13\x5cy\xe7\x86Zz\xeb\xcc\x00\xa8\xefVr\xce\ +\x1e\xfe\x04\xac\xc1m\xa0+\xd9\xf5\xf0\xa3\xa1x\xb7i\ +{\xa03.6\xbd\xc5\x802\xc0\x8dn^{\x17\xb1\ +Q\x15@\x09/\xb4\x19\xa3\x85\x93\xc1l\x0a\x0c\xa2\xf4\ +\xf8\xff\x8cJ\x067\xd8\xde\xc26\x1d\x1c\x05\xf7\xf9<\ +\xb5h]\x0eC\xb4\x09c\x09\x08\xe0\xd8\x1bl\x16F\ +\xe6#fJk\xee\x9eu\xb5\xe2\xe1\x89K\x00@\xc4\ +\xa3|\x1c2\x06\x86=\xc9=\x8c\x97\x8b\x81\x8d\x1f\xdc\ +\xd4(\x9e#6\x5c\x22lF\xbf\x82Gz]\x83y\ +c\x013\xc1\x01\xcf\xc2:\xa2\x15\x1dV!b\x150\ +\x14\xac&\x22\xd0``\xacS\xdbY\xee\xb1\xc7\xc4W\ +\x05^\x0fg\xc5\x05\x0e\xf7Y.7b\x1e\xb6\xa7\xe0\ +2\xf08,Q'\x93\xe9\xf9l\x87\x1f-\x10\xae`\ +K2\x22\x86\x03\xa03\xae\xb9M\x13\xeb\x8e\xf4\x02\x93\ +o\x1bi\x19E1y\x0b\xf8\x8f}\x84Sd\x8b\xc9\ +\x8f\x06p?\xe0>\x05\x0fg\xf6\x98#\x09\x00f\xdf\ +\x0b\xf1`&'X?X?\xfc\xee\xb5\xe29\xc2/\ +\xfa\x22v\x0c0\xf5\x0c\xa1\x0b\x08\x0c\xc7\xf8\x16\x93#\ +g@W\x81\x11\x82S\xe0*x\x13\x02\x1c\xba\xe0\x08\ +\xb0\x964\xbf\x8aPVK\xe1U\xc0\x08=k|\xe5\ +=/\x80\xdb\xb7\x00\xf0\xfb\xe2\xb9\x00\x95\xb8\x0act\ +\x1e\x1e\x93\x0d=,$\xe2;\xff\x88\x91V\xb0#\x83\ +\x90\xe4\xa7& \x02\xd7\xb8\x04\x87\x8a\xb1\xc7]\xf0\x12\ +\x029\xc2\x11v\xdd\xe0\xdf\x0cc\xe4e=\x8c\x91\x18\ +D\x9f\x0b\xf0P\xfa\x98G\x0b\x8e\x9c{\xd2,\xd8)\ +-\xda\xe3!\x19\xa0\xb0\xe2R\x9a\xe41*\xe25A\ +\x00&\x96k\xe8\x11\xfc\x10\x12p/\x01\xaa\x97\xcbv\ +\xf4\x97\x94zy\x07\x82\x0a\xec5\xe2\xf5x/\xc05\ +\x82\x91\x15\x9a \x18\x16\xc8H\x8cpm\xbc\x0eC\xc1\ +\xab\xf0f\xb6\x10\xdc\x09!0Y\xde\x82L\x14\xdd\x98\ +\x17cmD\x1ffz\xc6\xe8\x97\xe4d\x98:\xec?\ +!\xf6`\xe4x%\xd0o\xe5#\xda\xf0\x07\xfdvD\ +\xf7\xac\xc4\x90\x15\x9c\x04\xfe\xccI\x01\xfd\xfb\xc2\xe1\xad\ +\x02~\x0bx\x17 \x01\x03`\xe8K@\x05\x90B@\ +\x07g\xd0!x\x81\x9f\x02I\x10\xc6\x81{h\x87\xa1\ +F,\xa8e\xc4Oj#\xa2`\x86\x99\xb8\x07j\x9b\ +1\xce\xdaW\x04\xe5j\x03\x16\x00c\x8b\xa5\x17#F\ +$\xca\xf8\xb7\xc3\xe0\x0a\xfc\x8f\x88V\xb0\x89\x08\xe3}\ +\xc6\xbf\x81\xd9\x804\xdc\x87\xc9$\x80\x11\x91\xbe\x00\xbb\ +R\x04\xe6\xa0?\x01\xb42\xf9\x05\x00;\xc2\xbb\x11\xbe\ +0\x5cGCA\x9b\xef\x052\x10)\xf0~\xb6\x89\x9f\ +Ba\xe3t}\xc4\xea\xd8L`l\xbf\x83Q}\xb7\ +kq\xf7l\xff\xe1\xb3\xfd\x7f\xb6\xff\xfb\xb4\x7f\xce\x97\ +{^\x91\x9c\x83\xff\x16\xeeUU\xb04\xbc\x0f3\x0e\ +|\x81\x1f\x8d\xe6\xdd-\xf6N\xfb\x9dly\xb2\xfd\xd6\ +lZ\xc9c\xac\x02\x08\xdf\xd4wvz\xbe>:|\ +\xf5\xf8\xf9\xcf\xd7\xd7\xf3\xbe\xff\xb98=\x7f\xfc\xf2\xf4\ +z}9\xf5\xaaqv\x8a\x7f=\xa6g\x82\xcbO\xbf\ +\x1c\x1f^\x9d\x1c^^\x1e\xfe2\x7f\xf9\xd6\xd7n\xf2\ +\xa6\xb4\xcf\x9b\xb06\xc1\x97\x1e\xc6\x82\x1c\xc7\x22\x88z\ +\xf2\x07\xcc\xfb\xa8K\xcc{@!HL\x0b\xeco\xc8\ +\xc8\xbb\xfbU%\xc3D\xca\x01\xd6\x12h`xD\x80\ +\xd9w0j\xec\xd2\x0a\x16\x0e\x0cA<-\x85\x9c\x10\ +\xa1\x16\x8c\xde\x01R\xa2\x8d\x9b6X*\x88-\x8c\x16\ +[\xc6\xbd\xc7\xca\x83\xc0q4\x06\xc9Ro\xb9q\xa0\ +h\xed\x0d\xb06\xd8\x0f\x86\x83\x14\x1d\x8e\xc2\x9c7\xf3\ +F\x1a\x1d.A<\xef0\x0b\x07\x0e\x85!\xa5\xc2\xa7\ +\x83&{\xfc\x06\xce\x046O.\x1fzrRX\x1b\ +\xfc\x10\xc4\xbb\xc7\x8b`\x9fheD\xf4\x1e\xa3\xca\xb5\ +N-\xcc\xdb\x03\x17\x0d\x1e`\x0b\xdd\x0b\x16\x98\xd0k\ +H\xd6\x9cf\x09\xc2T\x04\x01\xc5\x198=\xec\x1b\xad\ +@\xe8\x81\x8f\x83\xae\xc2+a\x84>G\xdcV=\xf1\ +\x01\x1c\x0e\xc3u\xca\xbdW\x893\x8a|m!\xaf\xd5\ +\xc8p%G\x84\xa7\x00:\xaa\xa6\x89\xfb`\x89\xc8\xce\ +zr\x91J&\x8d\xa6.\xa5er\xe5\x13()\xa6\ +F:\xb8rJ:\xb1B\x98\x07\x09\xb4\xc3(A\x87\ +\x08&H\xcf\xf8V\x87\xbd\xee\xe1-\x1c\x03:=\xbc\ +\x90\x90\x06\x14\x9c\x9aN\xbe\x84\xb9s\x86\xc0\x8d\x86F\ +\x91\x0e\x8a\x854\xb0\x80\x1e\x1b\x0fB\xe5\x99o\xbbq\ +\xd0\xc8acI|\xb1%\xd4y\xc6\x93\xc0\xdb\x00\x89\ +\xb8\xad\x14\xed\x94\x96\x1fCN\x9c@\xc1\x8e\x92]g\ +\xe2\x0c\x13\x11\x99\x0f\xb7\x1e\x9c\x17wr\x22\x8d\xdf;\ +\xc2\x07H|kq\x5c\x82z\x5c\x83\xb9\x0b\xe0\x22\xf2\ +&L>\xc2\xc4(\xbd\x01\xe1\xb0\x85H|\xd9\xc0\x8e\ +\xf0\xa5\x11\x86A\xdbT\x8a\x80\xe1\x82E\xd2\x183\xa8\ +\xffk\x22\x9ex\xf0\x91\xb6\x97&VH\xc4#\xb3\x92\ +\x9e\x88Y\xb5\x110\x02\xfa\xb4\xe3n\x82\x1c\xd3\xda\xc8\ +\xe6\x13\xdf\x8f\xd1%\xees%\xf4!I\x01\x12\xe9:\ +l:\x0d\xb8\xb6]\xcf9cY\xb0\xfe\xb4\x1d\xa0Y\ +\x08\x9c$\x82,\xaf\xcc\x02\xf4\xc0\xdf\xda#\x91\x89$\ +>1\xa6\x14\xc7\x86\x0c51\xa3\xc8\xb0\xab,\xcc\xf2\ +\xc4l,=\xf66s\xc6\x96\x99\x15\xe9\xac\xe7\xafL\ +\xd9\xb8\xf3\xd93\xab\x19\x98\xb6\xaeF\xdfi/\xe5\x9c\ +\xe5<+\xce\xa7k\x1e\x9azYl\xe6\x22\x84d\x09\ +\x02\xc0L\x1a\xbc\xcb\x99\xc9\x08\xdc'\xc9\xfek\x90W\ +\xbb\xe4\xb6\xcd$X5#\x160\xb9\x83\x09\xf3\x11\xe0\ +\xd3\xf4\x00e\x22xi\xc77\x22\x94\xaf\x98U\x95\xae\ +\xf9\xb2\x9e\x860\x92\x98#z>\xccF\x00\x08\x86\xec\ +\xb4\xa1\xa5\xd2\x12)\xf9q\x8c\x14\x04\x00HA\xb9\x8e\ +L\x17}\xd1W]\x19\xab,\x13>\xc9+\x1b\xbe\xc0\ +\xee\x02/\xa5\x87\xd0Jx)\xd3B\x99\xa6\x00\x86\xcf\ +!4dfl\xcd6\x85\x1d|\x08\xed\x99\xaf\xd3$\ +iv\x94)\x1dW\x96\xa6\x5c\xf9r\xa2\x1c\xe3\xa8\x8c\ +\x10\xbb\x88G8`\x05\xb2S.\xb1\xa7l\xd9\x09\xc3\ +8Q\xba\x84\xa3O\xeb\x09\xcc\xeb\xa7V\x96O\x1b\xc2\ +\xad5\xca\xb2\x09N\xf8!\xd1*\x995\x12\xd6z:\ +=\xddK[\x1e\x92\x96+!\xa8\xe3\xad\xa6\x16\xe5\xb1\ +6\xc2\xc8\x11\xf2\x94\xb3\xe3_5\xd0\x84\xe5\x95m\xa8\ +>6,\xc1\xa6Y\xcd\x8b\x0b\x87D\x12\x86\xe7\xda\xf8\ +\x99\x95r9eB\xf0_f\xe7x\x91a\x87#k\ +\x22\xfa\x84\x06\x86\x9b\x0ey\x8cW\xf6K]\x05\x06\xc7\ +p\x1b\x88\xa10*\xa2\x9a4\xdc6Vn\x92\xa5\x9f\ +\xd3\x96\x89\x1b\xd8\x08\xeenj#\x11\x08\x1246'\ +\x1b\x1fM?\x112\xdf\xad//\xf6\xd1\xcfrg\xc0\ +\xfc\xbe#K!\xc1L\xe4^9#e,\xc8\x0f\x83\ +e\x1a\xe9\x10\xe6\xe0\x1f\xc8\x19\xc1\x02)\x19\xbe&\xb7\ +\xa0\xf4\x80\xab\xc0\x95L\x15\xd8\xc0\x1b\x8dW\x92J^\ +\xc3$\x95\xa2\x0e\x98\xc9\xe6\xaag\x1du:\xee\xcbI\ +\x87\x17q\xbf\x9fu\xe3\x1b\xefw\xfe~_\xfe\xed<\ +\x09h$a\xf0D\xbc#aO\x91\xdb\xe4\x16\x86\xb8\ +\xdb4\x9b(\xb0\xc1\xea\x10\x96\xa7\xa6\xa3\x01\xd2(\x9a\ +\x14D\x18\xc0b\xac\x90\xd4#\x80P\xda\xa9\xb4\x08\xca\ +e`\x90A\xec\x007Qi\xea)l6\xfbQ\x13\ +\xb7$z\x8c\xe9\x1d\xe2\xa1\x95\xaf#\x94\xe7&^`\ +\x97j\x8f\x1c\x1e.\x0d\xf6\x0b\x83b\xa4#\x00I\xa8\ +\xef\xa9\x14 \xbe%j\xfeS\x83QG\x09B\xc5.\ +6\x8c\xa3\x88\x0e\x87\xa2W\x98\xd0BE\xd4\x16\x1f\x09\ +\xc0\x01d\xc4\x10\x8e\x90;\xdfW\xa1\xcc\xca\xc3y\xed\ +\xd4\xa0\x8a\x22\xc4fh\xb5t\xfaB\xff\xe40\xaa\xfc\ +\x91\xc2\x03\xc3o\x16\xb5b\xd8\xa0\xafF\xb9v\xa2\xa7\ +\x8fM*\xa6\x9e\xa1\x99\x8f\xcc\x08W\x81\xaa\x0d\xa3\xbc\ +\x83\x97\x10Y\x88sx\x09\x1e\x8f\xd5\xf4\xbdb\xba\xa3\ +\xee5\x10,\xf9\x18KM\x15w\x87m\xd3\x92pp\ +\xd6\xda6a0\x98W\x95\x10\x84p\x04\xecm\x01\xf2\ +\x9e\x1d\xcf\xef\xd3=\x90\xf20\xb8R\x8f\xca\xd4\xc9\xb8\ +\x03\x98\xa0\x96\xd63s\x00\x0d\x22\xdda\xc6\x02\xc3\xe0\ +v\xbb4\xf2+\x82\x0bv+0\xa0\x11@\xc1\xff\x98\ +[\xe445)\x09\x15l\xab!Y\xa2A2@\xc8\ +\xe0\xb8\xb4\x99\x8b\x11b#7L\xfb\xf4\xb0\xc0%\x03\ +\x17\xd4\x8b\xb0\x1b\x89\xe2\xe5\xd8\xe0S\xb8\xa8T\xed\x15\ +\xfa\x08\x10<\xc7\xaaBp]b\xa8\xaa\xae\xc6G\xa1\ +\x93\xe8\x8daI\xaek\xad\xc0\x80\xd3v\x1c\xcf\xa3\x16\ +\xa8\x99i\xba\xa2\x1e<\x00\xe2u\x1cmhS\xf5\xb6\ +\x81>\x03\x10\xf5\xc6\xa2\x17\xe6\x14\xb3\x5c1\xe4m\xfb\ +]\xf7\x12\xc1\x19iP\xa58m\xb5\xa4<'h\x82\ +\xe5\xd0\xc8|5Y\x0b\x9d\x15\x0cs\xe3\xb9\xe0\xa7\x0c\ + |e\x96m\xd2\x98\xc0\xac\xc6\x16\xfc\x09DQ\x04\ +\x001\x959Wm\x82\xb1'\x99\xf0Z7\xbfmb\ +}-s\x01\x17\x87\xc6^\x03\x92\x83\xb1\x85\xa9\x82\xd5\ +Q\xf5\x84\xd3\x93\xad)\x22\xf7\x1e~\xcb\xa0\x87\x8b\x10\ +\xe5Z\xeb\x9e\xed3\xec\x09\x0c\xbe\x06i\xcd\x14\x09H\ +\xb07\x80M\x89\x12\xde\x9e\xf2\x22BD\x1e\x02a\xc5\ +%\xbc&K\x95AA\x1f\xa4\x7flE\xc2\xaa\xd5\xee\ +S6\x0e-f\xf7\x8c(\x0c\x16\xbc:5XH\x14\ +\xd3\xc9\xfa\xb3\xec\xc9he\xb2L\xc8\x92&\xe0\xe20\ +\x8a\xca\xad\xa9\x9d\xefs!e\xa6{GFf\x0c\x8a\ +h\xc4\x04\x19\xfb\x1d\xdd\x88\x84\xa5\xe7\x09H\x19\xff\x8c\ +\x05\x07w\xa4\x9f\xf0pIy\x03\xb0\x05\xbd\xda\xfe\xcd\ +5l\x9d\x08\xb9\x82\xbd\xe7}I{\x03\x96'\x8a\xf5\ +\xb3\xdd\xb0E;\xf4\x9a\x99\x80\xd8\xd2\x09\xb3\xbc q\ +C\xfa9\x96\x8a\x02\x09\xa8\x22\x96\x02\x16\x080\xc5~\ +\x89gY\x1eR\xa4M\xb3\x85\xbf\x98\x8b\x10^g\x07\ +^\xc9\x90v\xc0\xe2F\xf07\xc5\x81\xc6\x06\xa9\xbb\xc3\ +\xc1\xb9l53\xc0\xb9\xe8\xeb\xd4t\xd4\xb1[D\xa3\ +\xc8\x15x\xc6\x8c\xa4\xc7\xca\x0b\x98\x8e\xf92\x90/\x03\ +\xe4\x0b\xb2\x05\xaa<\x1c\xa5c\xca\x99\x99\xb1\x0b\xbe\xb2\ +\xd8Z\xe5\xb6\xd4\x96j8\xaaW\x9b\x16\xd3\xb36\xdc\ +\xc4X\xa14\x88q\xbb=U\xbe\xcct\xfe5\xad\xc0\ +D\xa2\x02]\x12\x99VV\x94d:\x86\x80n\xa5\x01\ +1P0?\x18[\x98\xb2\xc3<\x0c\xa3&\x93X\x19\ +\x00\x90`j\xf2\xc8\x05\x0bO\xf3\x1b7\x81Q<+\ +G\xc1\xbd\xb5\xa6\xc6\x9dm\x83\xa24&4L^\x9b\ +\xe5*g\xd1aP\x95\xa6\x84Um9\x8b\xcf\x22\xf9\ +f\x5ci\xea\x16\xcc\x147\x8d\x16\x0dD\xa8\x99&\x00\ +U\x19\xde]#\xee\xcc\x11\x11\xe0\x09q-w\xf5\x94\ +\x10\xbc\xde\x96\x98\xe8P\x01S\xd6\xe0\xc9\xeaH$\xa2\ +\xdb4\xab\x92A\x1e\x1d\x11\xc9\xa9:\xf0\xe0H\x7f\x96\ +TB\xe5\xc2h\xeb\x81kUP8R\x1b\xe5.l\ +qM\xab\xa1\xfa\xd2\x8c\xe9\x9e]\xa6\xecq\x99 d\ +\x8e;.C\xa3~\xdd\x81\xf7e\x1eC\xc9\xd8\x9aH\ +\xda\xb2\xc1\x9e\xf2C$\x95\xa3*G!\x01d\x96i\ +I\x05h\x01\xcb\xb3\x18\x13\x90\xbd\xd7\xc6\xca[@@\ +\xa6\x16\xf3YY%Vf\xcc\xa1\x94g\xe0*\xe6d\ +4\xb0\xa2\x87k;\x9b)b\x8b=\xd3zJ\x01\xd1\ +o\x9a\x8e\xa9\x89]\x02\xf0v\xfc<\xcc\x8cm\xfc\xda\ +\xa5\xcc\xfb\x0as\xf6 \xf4\xe5\xed\x01Apj\x16\x1e\ +b\x8e\x03\x93\x7fP\xf9\xd0\xb8ln\xf1[\xb9/\x8c\ +\x01Y\x81\x94\x9d8f\xe7\x8d\xa8\x91\xce\x8eM\x1d\xc8\ +\xbb\xd9\xc0\xbe\xed\x1c\xc6\xc3\x93EM\x17\ +\xb6\xc8#\x1c\x06\x06\x08\xd2\xb5\x12}\x90\x0f(m \ +\xea\xba\xe6k\xcam\x225\xdd\xa6Kd\x8aa\xae\xab\ +R\x009\xaf\x90\x11m%Q\xcaF\xe9\xd0\x1c\xbe\xf7\ +\x8d\xd3\xd0\x17\xb1\x80\x99\xa9\xe5\xd4\xb6\x94\xa3\xb8\x90F\ +\x0f\x95rZ\xb8\xac\xd4\x96\xb1H\x15)4ec\xe4\ +{D\x19G\xf0\xc5 z\xc6i\x80\xff\xd8\xc2b!\ +X\xba\x86g\x95\x00\x00\xc8\x0a\xdc-M\xb4\xa8\xc5\xc3\ +\x22\x86\xa1\x06nH\x95$\x7f11S6\xc0\xea\x17\ +NB\x22\xf4\xd8\x14\xb3\x17p\x8c\xb1\xaaiP\x5c\xc7\ +I\x9a!\x81Jm/\xb3\x0ef\xaat\xcf\xc6\xeb\xed\ +\xa6\x89\x14\xcf\x9b{\x0e\x0a\xc1\xed\xe1\xb7\xc9y\xc1\xe4\ +\x16\xbb\xb0x\xa3\x80\xe1\xc8\xc07\xee\x11\x1f\xcc\xcb\xf7\ +\x9d\x15\xe6H1\x9e\xc24\xe39\xb1tU\x10\xac\xa8\ +\xf42\xecW\x1d^P\x9f\x97\x90\xa8t\x85\xe7-]\ +K|E\xb5kv\xb4\xa1\xc4\xd4\x1di\x0b\xcb\xa9\x88\ +l\xb5Q\xedHy\x81T;\x86m\x1b\x1c\xc2\x94\xda\ +\x12\x1a\x03\xe25\xda%A\x1a\xad\xc9.\xbf\xeb2=\ +\x05\x0bZG5\xc19E6J\xa2\xe2l\xcd\xd6\xa5\ +\xa9\x93\xe3\x18j\xda\xb3\x0e+\xd9I\x9eYEY)\ +4\xa8\xac\xa6\x90m\x9a\xc2\xea\xb2`D5\x1b&\ +\x11\xef\x05]%\xaa\xa3\x0e2\xe7D0\xa0\xc6\xa6S\ +\xa3'\xbe\xa9\x88\xa2'\xd6lZ\xcc\xa4h\x87N\xb5\ +VAD\x09~C\x5c\x96\xf0\x8f\xb4[\xb2X\xd1Q\ +\x84\xd5\xf1\xba(j\xacS\x0bV\x1bC~0p\xdb\ +\xa7D[[=\xc7?.\x130Nev\xdb\x95\xb4\ +\x16\x81#\xb1\x80\xc3\x14\x89\xad\x9b\x05%wa\xfaH\ +)\x81\xda,i`\xa1\x1a\xe1\x86f\xd2V\x0b8\xc4\ +$\xbc\x89,`\xc5\x92\xb54\x8a\x22\xaf6@\xc6B\ +\xd1A\xc71Y\xa7\x1a\xfd\x04O\xa4\xeft\xd1\xc2\xdd\ +G\xa2\xcaB\x8c\x1e/*\xcc\x07O\x98[\xa6{\xf6\ +\x86\xb8\xb7\x94\xccQa\x85\x85\x984i\xba~4\xeb\ +\xa4\x85\xa5\x83\x8f\x92\x98\x17\xd9\xe3QYj\xc7\x16\xbc\ +\x96E\x05\x12\x05\xdb\x9fE\x95ulL\x08\xe0A\x5c\ +O\xf2a\xbb\xf1W\x99(um\x1e\xb8\x01_]S\ +[\xbb\xe9\x05\xedT\x95rPS\xf1xRM\x03\xb7\ +\x93\x8b\xe9\xed\xa4\xf3x|\xdb\x1c\x1dL\x8d\x7fn/\ +0J\x91]\xd1Y];\x0e\xd2\xf0\xd2\x94\x10\xc3\x01\ +z\xcdC9\x8b\x9e\x1d]\x10\xe4m\x1a\x84Y\xe2'\ +\xf1,\xb6\xe3\xfeoY\xd9\x0e{{\xcf/\x1f\xca\x1f\ +\xe2\xde\xc28\xafp\x0d\xa3\xcb\x8c5\xe3vr\xbbh\ +\x9c\xcc\xc1\x98\x9cK\xc1d\xccKS#\x8fr\x08A\ +D$MW\x8c9\x91\xa5\xbdk\xa5\x14\x9a\xc7\x07\xb5\ +\xf4h\xf3g\x187\x8fBv\x13\xce\xe4w\x17K'\ +\x08RcF\x08\x93\xcb%\xd2S\xa2\x0eEBbY\ +\xb4b\xfc\x8d^\xf34#R\xb7\xa5\x0bK\x1f\xd0\xf1\ +9\x0b\xb5x\xb28\xfe\x99\xb5\xd8*\xa7\x88\xedD\x9c\ +\xd5NV5\x9evL|\x1bv\xde\xb3\x8a\x1f\xf7V\ +o\xb1\x14=/\xe4\xb3Q\xfd]5\x88hR9S\ +\x1b;\xaa\xe96\x8f\xech\xd4\xf0\xdb\x99\x8a\x97\xce(\ +=K\x8d\xe0\xa9\xb3\xa5&\x81E\xba\x97\x97z\x9c\xb9\ +\x12\xa9\x97D\x1e;\x1d\xb2\x8a\xa1\x83\x01\x88\x15\xf4\x8d\ +F\xb1\x8a\x98\xc5%\xad\xc1\x03K\xea\xb2\x1c\x92\xe4{\ +P\x03fq16\xb1\xa1\xf2\x148\x8f\x87\xb6A)\ +]l\xea}\xa0h\xd7Z\x81gXU\xd9YQ\xe0\ +\xc0s\x5c\x93\xbd=k\xb0\x95\xe9\x15]\x17\xfd8\xc9\ +8\x9d\xd8\x06\xa5\x13\xc2\xdf4\x9e\xab\xe9\xeb\x97m\x9b\ +>j\x09\x08\x164\x1c\xf6>\x1d\xc5U\x1d\xb9\x92\xce\ +\xa8\xc2\xc1\xe8H\xae\xa8\x8c\xb91\x1e\xa2\x1b\xad\xb6\x0c\ +\x8dF\x1a\xd5>\xf1,\x85o\x1d\x9b\x9e\xf8\xdd\x06\xcf\ +\xb4\xa5A\x98\x86T\xdb2\x92\x1e\x93\xf5{\xdb5\xd1\ +\xbf\x15$LG\x17\x1c\x88\xe3\xb9}\xd1\x9c\xa7&\x0b\ +|\x88p\x1c\x9e*B\xf8\xb5\x04\x0ft\x187t\xae\ +\xad#\x0a\x16&\xea\xd4\x80\x9bUx\xf2\xec[C\xc5\ +\xda\xc6\xab\xfa\x9bIU+\xc5\xa0%\xf0\xbb\x81\xd5t\ +MT^\x85q\xc0\xccF\xf10\x8b\xafNJc{\ +\xe1\xaf\xa8f\xfe@w\xd8K\xc8\x10Z\xef\x95\x90\x95\ +%\x1f[\xd0\xb1%\x1b\xbb\x91\x8c\xd9P\x10\x8c\xde\xc7\ +\xfc\x1d*\x96G&\xb6 bs\x1e\xf6\x87eaq\ +\x9fVj3wp\xf7x!\xd6;\xa4\xd2\x85R:\ +\x17J\xebL'\x8ds\x99\xd4\xcdT\xd20\x89\xa4\xee\ +.\x8dt.\x91\xe6\x85B\x9ao\x17H\xeb\x1d\xfa\xe8\ +B\x1e\x8dsu4m\xc4\xd1\x856\xba\x90F\xed\x5c\ +\x19\x0d\x0ba4\xdc\xa8\x8bZV\x89\x96\x1b\xe3\xe7B\ +\x17m\xb2\xa8\x9b\xab\xa2i\xae\x8a\xa6\x99(\x1aFM\ +t)\x89\xce\x14Q?\x13D\xd3B\x10M3=4\ +\xcd\xd5\xd0t\xab\x18\x9aF-4,\xa4\xd0\xf0\xd0J\ +h\xda\xcb\x82+IN\xdd\xd5Hl\xd3H\xecB\x22\ +\xd9QH\x96\x02\xc9\x5c\x1f)Ku$\xed\x88#\x93\ +6\xb2\x90F6\xca\x08Vf#\x89\xf8\xa5\x22\x12v\ +\x04\x11\xbb\xa3\x87\xb8\x8d\x1c\xb2TC\xee\x10C\xecB\ +\x0a\xb17\x0a!q\xa1\x83\xcce\x90\xe6\xd2\xc7\ +\x5c\xf9p3\xe1\xc3\xcde\x8f\x9bD\x0f\x7f\xab\xe6\xe1\ +\xe7\x92\x87[*\x1eqW\xf0\xb8g\xdb\xde[3b\ +(\xee\xda\x87\x0a\xaf\xee\xe3\xc2\xebt\x12\xfd'\x0e\xaf\ +i_\xbe\xe0\xf8\x19\x1c\xd2\x82d\x19K\x0b\x0d>\x88\ +\xd9:\x9e\x8f4\xbej\xcb\xe6\xa0V\xa5\x86q\xdbT\ +\x85\xf1\x98\x5c\xc4\xa6X\xf2\x1b\x8f\xb1\xe9\x89x\xd5\xb6\ +\xa8\x97\xf91\xc8I\xcb\xfcX\xb9\xa7\x1a\xe4\xda\xa4\x0a\ +u\x90D\xc3`\xce:\x85\xca\xbeU\x84\xcd\xb6N\xc5\ +\x0f\xda\xba\xe9\xceV\x0f\xc1j\xbe\xa8j\xe9v\x10\x22\ +r\xcb\xdaW\xdf\x0aB=C\x91o\xd5`\x89%\xac\ +A\xd5\xae\xd3Qw\x1e\xda\x19\xbd\x0a\xe3\xac\x14\x9f\xa9\ +\xa5B\x1c&}$\xb7\x0c\xf7\xb2\x00Kf\xcd\xf2\x9f\ +g\xdd\xb8j\xf7\xbc\x87i\xff\x17\xa4\x91\x00\xb7{\x1c\ +{;Ers\x8a\x94?\x9d\x22\xd9\xdf\x9c\x22\x95O\ +\xa2H\xf9F\x8aT\x16\x14\xe9\xe3\x18\xd2\xdd\xd81c\ +H\x0d;\xf8M\xc5m\xe7\xc6\xfb\x18R\x9a\x9f\x19\xdf\ +zd\x9c\x16'\xc6\x8b\x03\xe3\xdb\xcf\x8b\xa7\xe3\xe2\xe5\ +i\xf1\x83S\xa4}\x1c\x1f@\xcc2\xf8\xff\xef\x1c\xdf\ +=(\xc7\xbfS#\xbb\xc1\x82?\xc8\x80\xfd\x9f\x91\xe2\ +\xe7\xbd5\xdb\xb5J\xff\xbf\xc1\x14\xb4\xd0\xfa\x18z5\ +.5\xe3\x93\x1d+:s\xab\xfdT\x11\x09\xd7\xb8}\ +;\xa8j\xefM[\x1f\xbf\x1b)vQ\x8a]\x88\xfc\ +\xa8\xa45\xf5m\xa5\x8a\xc9R\xd5\xd72\xda\xe3\xa0\xe2\ +\x00\xb8NS\xadL\x13\x96\xc8\x95\xc5\xceY-\x99C\ +\x13\x8ftn>6\xdb\xe7\x8dT\x98\xf4E\x14\x83c\ +c:S=\x80F\xa6R\x07\xd6O\xf0\x0b\xc5\xc8\x03\ +!\xdb\x1a\xb0@$\x1b\xa19m\xb5\xb1\x8d%\xd6\x07\ +\xdb\xa6}l\xd5\xf3\xbc\x86\xcc\xe23[\xfd}\xb2\xd5\ +\x1c\xf6\xee`\x16A\xdb\x7f\xa2T~\xcb\x13%7\x9d\ +(\xd9\xba=R*\xdb#%\xdb\xce\x94\xdc\xecL\xc9\ +=\xd4\x99\x92[\x9e)\xd9\xd9\x91\xd2\xed\x16\xf5P\xfb\ +\xb9\x8f\xb9z~\x19\xcc\xefH\xa2\xbe\xbblU\xa9\xd5\ +\xb6\xd2\xcf\xd4\xc01\xaa\xd4\xd4H\xe0\xf7v\xac\x93o\ +M\x22\xd5T\xa0Q\xf9\x05\xaa\xeaE\x99\xcc\xb7\xb3\x0d\ +\x1bB\xab\x13\xb2*\x22\xca\xad\x8e[\xdf\x8b\xa8\x84~\ +\xd3\x02\x98\xe2\xfd\xe3\xe7\x09\xfc\x824\x0e\x0a\xcf\x93\xdc\ +\x1e\xdag\x98\xed\x93\x82v`\xcb\x00\xc5\xb3a}\x1e\ +\xc8\xcf\xd7\xed\xd4hg)F\xdf(\xd8\xf6\x9d\x5c\xea\ +\x1a~\xa86\xd6\x8f\x0e=~+M\x04\x1a\x93\x1d\x06\ +H l\xd5gp\xfa\x9e\xa5N\x0d\xaa\xe9a\xd1g\xa1\xf9\xf8\xb5\xcf\xa6-\ +\xeb\xb8\xa5X}^\xab\x1eg\xa5\xeae^\xa8^n\ ++S_T\xa9\x87\xdd\x22\xf5\x1bk\xd4\xcb\x87\x94\xa8\ +/\x0a\xd4\xcbm\xf5\xe9~^\x9e\xbe\xa8N\x9f\x15\xa7\ +\xfb\xb14\xbd,*\xd3\xcb\xfb\x85\xe9~V\x97^v\ +j\xd2\x97%\xe9\xcb\x8a\xf4YA\xfa\xa2\x1e\xbd\xce\xca\ +\xd1\xeb-\xd5\xe8\xcbb\xf4\xb2\xacE_\x94\xa2/+\ +\xd1\xe7\x85\xe8n\xaaC\x9f\x95\xa1\xcf\xaa\xd0\xe3\xac\x08\ +}Q\x83\xfe\xd0%\xe8\xc5\xec\xf5\x01\xfe\xf5\x1e~G\ +\xf7\xc9\x1f\xa3\xfb\xa4I\xf7\xb1K\xdd\xc7\xde\x83\xee\x93\ +\xdf\xd7}\xf2\xaf\xd5}>N\xf4q\x0f+\xfa\x94\xbd\ +d\x96\x7f\x05S*\xb7P\xa1x_T\xc8\x7f\xa6B\ +\x9f\xb6\x9f{\xa9mrJ8\xfe@\x95\x1bn^\xb9\ +\x11\xe6\x95\x1b~Q\xb9\x91\x17\x95\x1b\xf9\x03+7\xea\ +\xb2rc,\xab\xdf\x96n\xc4\x9d\xd2\x8d\xfc\x87(\xdd\ +\x88\x9fK7F\x87\xd8\x9b\x1b\xf0o\x0d\x9d\xfdE\x00\ +\xbf\xcbl\xfd\x16u\xedO\x91\xad\x97\xbd\x9f\xb9Y\xdb\ +p\xe4\xb7*\x18\x0c\x8b\x82A;\xaf\x18,\xb3\x8a\xc1\ +\xf2\x9bV\x0c\xa6y\xc5\xa0\x9fU\x0c\xc6m\xc5\xa0\x9f\ +U\x0c\xe6m\xc5`\xf8\x1dT\x0c\xd6\xbd_j\xd9\xc2\ +\xbfLc7\xf0\xa4\x0f\x09<\xfes\xe0\xf9\x1cx\xfe\ +`\x81\xa7\xba\xbd_\xe7:\xfe\x95\x81\xbf&5\xca\x1f\ +\x9f\x1a\xd5\xdd\xd4\xa8\xee\xa6F\xe5\xbe\x8f\xc4\xc3\xadG\ +\xe2y\x9e\x1d\x95\x96\x1d\xd9\xff\xc3\xec\xa8\x86\xbd{\xf8\ +G+\x83v\x1fX\x06\x1d\x17\x98\x16o\xc14ww\ +\x19\xf4'`Z|\x0f\xd3\xdc\x84iy\x81i\xe1\x0e\ +LKKLK7b\x9a\xbf\x03\xd3\xd2\x02\xd3\xf2\x9d\ +\x98\x16GL\xb3sP\xcb\x0f\x0dj\xf9a@m\x1f\ +\x9b\x0e\x91G\xec\x1f\xa7\xb4\xa7\xa5\xd2\x9e'\xa5\xdd\xdf\ +\xa5\xb4\x87\xa5\xd2\x1e\x17J{\xfc\x18\xa5=\xce\x94\xf6\ +X\xf7J\xed\xbf\xa5\xd2\x1eoR\xda\xdd\xaf\x15\xda\xd3\ +Rg\xf7\x9f\xac\xb3\x87\xdf\x85\xce^\xf7\xf2\x7f\xfd\x07\ +E\xd2gf\xf9;c\x96\x9f\x82\xc2\xe53\xb3\xdc\xeb\ +\x10\xd6\xec\xcd\xb5\xf8_\x9a\xe0\xdf\x06\xfc~V\xba\xf8\ +\xc4\xdf?T\x0e\x0f\x86\xb8\x19\xf2\x93G/\xf4_u\ +\xe2\xbf\x9e\xf0?\x16\xf6\xf5\x17\xff\x0b\xcf/\xa9\xfe\ +\x00\x00\x02\x87\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x02)IDATx\xda\xa4\ +S\xbbk\x14A\x18\xfffvs\xbb\x93\xbd\xcbI<\ +S\xc8\x15\x22j\xb4\x94\x09\x12;\x1bK\xb1\x12\x1f\x1c\ +\x8a`\x8c`s\x9d\x7f\x84\x85B\xaa\xabM\x11\x93\xca\ +\xceB9\x88 \x16\xae\xcfHLP\x82\xc1(9\x1f\ +p\xc9ew\xf65\xe37\x93\xdb\xa8\xa7I\x93\x0f~\ +;\xcc\xcc\xf7\xfb\xcd\xf7Z\xa2\x94\x82\xdd\x18\x85]\x1a\ +9xk\x16\x0a\xaek\xd0\xe78\x06\xda\x94\x94\xe0\xf6\ +\xf7\xffv$\xa4\x81\x0b\xff\x83\xeb7\xaf\x0e\x8d\xdb;\ +\xa9'q\x0c\xd4\xb2\xf2-?\x7fz?O\x12\x00\x1b\ +Y\xd3\x8f\xbel\x93\x82R5\x84~\x0d\xb24\x85\x14\ +\x199\xc2PB\xbb\x9d\xe2\x9a\x99\xbd6\xbb\x97\x8c\xaf\ +\xd6\xf3m\x14\x86&\x15\x871f\xdb\x16\x15b\x93L\ +\xa9\x05I\x14\xfd\x1d\x81\xea\x92/\x9f=\xc4\xf5\xa5\xd8\ +\xd80\x11\xa01<\xbfPt\x95\xf7jn\x09^\xbf\ +\xfb\x08K\xcb\xabZ@nE`\xc8QT\x1f\xbbt\ +\x9c\xaf|\x0d!\x16B\x1f?7w\x04h\xb1\xe8x\ +\xa5}\xde\x81\xe5\x9f\x01(\xea\x00\x8dT\x86>\xa1\x11\ +\xc8\xc97\xae\x8c\xf2\xc7sk\xf0\x03c\xaa\x9e\x1c\xe6\ +\x12\xe7C\xe2\x88\xa4\xf8\xe9\x88\x0c\xde`\xe8\xd2\x1d\x00\ +J\x08X\x89\xe8\xa0\xc0\x82\x11H\x84\xa8\xdf\x1c;\xc5\ +\x1f,F\xf0V1\x90\x19\x9ev\xfe\xd3\x12\x17\xf3%\ +\x00\x83$M[/?\xacdBL\x99\x1a\xe0\xebw\ +\xefL<\xf4\xf7V\x8b\xb0^`\xd0\xe71\x18\xdc\xc3\ +\xa0\x5cfP\x1a`\xe0\x95\x18\xb0\x22\xc2\xb53/X\ +o\x8bg\xfeb\xb0\xfa\xbd\x11GQ3OaR\xf7\ +{vb\xa6>z\xfd\x1c\xff\x14\x00\xac\xdd\x9b\xf1{\ +\xde\xd7\x05\x0b\xb1q\x0b8PS8\x1bM\x9bR\xf3\ +\x0f\x10\x8f_\x04R9\x82\xb1\x1d\xae\xa1X\xbd:^\ +\xe3\x9f\x1b\x93>\xb5\xed\x11t\xfe'\x13\xd9\x9a\x07\xf9\ +\xed=\x04/\xee\xeb\xe2\xc3\x96\x875t\x0c\xe8\xd13\ +5R\x196s\x90>\xb9=\xa2\x1dw2-\x90\x0f\ +\x92\x93\xb5\xe6K\x88\xa7\x94_\xab\x80S>\x81\xe4|\ +\xeeuYc\x84\xe8B\xb7/\xea\x9e\xa5y\x04Z\xa8\ +\xa0\x85\xba\xab\xd5\x93\xbf\x16I{\x90a\x04\xf2\x97\x00\ +\x03\x00\x943\x1c\xf1\xe4?\xe0\xef\x00\x00\x00\x00IE\ +ND\xaeB`\x82\ +\x00\x00\x02\x8e\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x020IDATx\xda\xa4\ +\x92\xcbk\x13Q\x14\xc6\xbf\x99\xb93I\x9dX\x12\xc5\ +G[\xad\x94\x228U4\x05]t\xd1\xadhED\ +Z\xb2sS)D#\xb8\x96,t\xe1\xc6\x9d\x22\xd8\ +\x81\xbaT\xc1?\xc0Uq\xd5\x85`uQ\x11\x91(\ +\x0aE\xb0\xc5\x14f2yL2\xaf\x9es\xebt#\ +V\xd4\x81o\xce\xc9\xdc\xfb\xfd\xce\xb9'WI\x92\x04\ +\xff\xf3\x88R\xa9t\x91\xe2\xc0?\xfa\xbf\x8b(\x8a\x86\ +l\xdb\x9e\x0f\x82\xe0\xaf\x9c\xba\xae\xa3\x5c._\x13q\ +\x1c+\xbd^\x0f\x95J\x05\x94\xcbE\x8e|4V\x9a\ +\xf3\x1e\xdf\x0f\xa0i\x1a\x0a\x85:\xf0U\x15\xef\x8a5\xd4su\x80F\xe3\ +F.\xd4(\xc6\x95O7\xb0vv}Z8\x8e\x93\ +QiS\xb5Z\xfd\xed\xad\xbbZ\xbb\x89\xe2\xb9q\x99\ +\xd7\xc3:N\x96\xb6\xf2\xcf\xab\xb5\xc3\x0aU.\x13\xe0\ +\xc8N\xd7\xb63\x83\xf3\xf1!\xe5\x00\xe7cs\xa7\x0e\ +~XXY\x93\x0b\xab\xd1k\x0e\x06i?i\xf0\x8f\ +\xbac\xae\x0c~=\x9ep\xfc\xe914z\xf1\x04[\ +$oGM\x08\x0f\x85d\xdc[\xda\x00\xba\xf124\ +\xe59\xbe\xc5\xd1\xa6\x00\x03\x00\xfe\x0fX\xe5w\x1c\x22\ +c\x00\x00\x00\x00IEND\xaeB`\x82\ +\x00\x00\x1d&\ +\x00\ +\x00ndx\xda\xed]ko\x1cGv\xfd\xee_\xd1\ +\xa1\xbfx\x81\x9eV\xbd\x1fZ\xcb\x0b\xc4\x9b\x85\x03\xd8\ +@\x80l\x8c|3hr,2\xa68\x02I=\xac\ +_\x9fsNu\xcft\x8fH\x8ee\x9b\x8c\x1d\xcb\x8b\ +\xc4\xaa\x9a~\xd4\xe3\xdes\xcf=u[\xfe\xfcoo\ +_\x5ct\xaf\xd7W\xd7\xe7\x9b\xcbgGv0G\xdd\ +\xfa\xf2dsz~\xf9\xfc\xd9\xd1\x7f\xfd\xf3\x1f\xabr\ +\xd4]\xdf\x1c_\x9e\x1e_l.\xd7\xcf\x8e.7G\ +\x7f\xfb\xe2\x93\xcf\xffe\xb5\xea\xbe\xbcZ\x1f\xdf\xacO\ +\xbb7\xe77g\xdd\xbf_\xfex}r\xfcr\xdd}\ +vvs\xf3\xf2\xe9\x93'o\xde\xbc\x19\xce\xc7\xcea\ +s\xf5\xfc\xc9_\xba\xd5\xea\x8bO>\xf9\xfc\xfa\xf5\xf3\ +O\xban\xfeN{\xc4\x8e\xf3\xd3gG\xf8\xcd\xa9\xf1\ +\xe6\xfc\xf4\xe6\xec\xd9Q\xf2aH\xf8\xa7\xaa\xf3l}\ +\xfe\xfc\xec\xe6\xd9\x91\xb3~\xf0\xfcG\xbd\xaf\xcf\xd7o\ +\xfeu\xf3\xf6\xd9\x91\xe9L\xb7\xbd\xa1[^t\x8d\x19\ +\xbd\xc4\xff==\xdd\x9c\x5c\x1e\xbf\xc0D\xfe\xf3\xdf\xbe\ +\xdc\xfc\x87u\xdf]\xbf\xfa\xfe\xe6\xfc\xe6b\xbd\xba\xb9\ +:\xbe\xbc~y|\xb5\xbe\xbcY\x9dl^]\xde`\ +\x80\xab\x0b\xbeq\xc0\xb0\xda\x10\xc7\xf9<\x9d\x0d\xde\x0d\ +\xae\xfb\xec{s\x5cBI1\xd8\xbes\xc6\xb9\x95u\ ++c\xff\xa2\x9b\xb0\xc0\x97\xd7O\xa7[\x9f\x1d\xdd\xb5\ +>\x1c\x16\xde\x7f\xb2\xbe~2\xf5\xcf\xee\x9f&\xb0\xbd\ +\x7f\xea\x18\xae7\xaf\xaeN\xd6?\xe0\x11\xeb\xe1r}\ +\xf3\xe4\xef\xff\xfc\xfb\xf6\xc7\x95\x19NoNw\x8fY\ +\xbc\xfd\x8d\xd7{\x9d1\xe6\xc94\xc3\xf1e\xaf\x9f\xdf\ +{\xe5\x17\xb8\xf4\xf3\xd3\xf5\x0f\xd7\xbc\xa5\xed\x1c[\xe9\ +\xa8{\xa2\x9f\xb6\xab\xcd9\x9dr\x83v\x17n\xbb\xc2\ +Q\xeb|y\xfc|}\xb2\xb9\xd8\x5c=;\xfa4\x1a\ +\xfeo\xfc\xe1\xfb\xcd\xd5\xe9\xfaj\xfai\xad\x7f\x16?\ +m\xb0Z\xe77?a\x17\xc6\xee\xed\xfe\x5c\x9fm\xde\ +\xf0\xb9\xd7g\xc7\xa7\x9b70\x8d\xfd\x0b\xf8\xe3\xf6\xf6\ +[\x7f=9[\x9f\xfc\xb8\xbe\xfa~s|uz\xcb\ +%\xa7\xeb\xeb\x1fo\x1d5_\xfd\xfc\x8a3\xfd\xe1\xf8\ +\xe2z\xbd\x7f\xdf\xbb\xcd\xe6\x85l\xde$\x17\xf7\x7f<\ +\x81\x15\xbb\x02\xbb-\xb5\xf8\xf7~\xe4DM\x92y\xe7\ +\xfd\x1f\xdf\x9c_b\xa2\xab\xd1mlu\xe6\x8e+&\ +\x1f\xb26\xdb;.y{\xef\x03n[\xaf\xf1\xa7\x17\ +\xc7o\xcf_\x9c\xbf[\x9f\xde\xb2#'\xaf\xae\xe4Y\ +\x17\xc7?\xad\xb1f\xcf\xad\x99\x8c\xe5\xf9\xce6\x9e\x97\ +\xfd\xdb\x9e_m^\xbd|\xb19\x85\xdf\xe8\xce\xfd\xdf\ +/\x8e\xbf__<;B\xfb\xbb\xf5\xdb\x9b\xef\xfe[\ +\xff\x8c\x17\xc9\xa1\xe1\x17X\xef\x17\xc77W\xe7o?\ +\xb3\x0d\x11\xbc\xef\x0d\xfe\xb7\x9a7\xb7p\xf1\x17Y\xf7\ +n\x5c\xe3\xc8\xec4\xe9\xc5s1\x88\x8b\xf5gf\xb0\ +\xd3]\xb8\xef\xe5\xf1\xcd\xd9ti\xbb\x99=\xd6\x1d\xed\ +:\xafo~\xba\xc0\x8c~8\xbf\xb8x\xfa\xe9\x0f'\ +\xfc\xdf_\xd9X\x8d&\xf9\xd4\xb6\xe6\xd5\xab\x8b\xf5\xd3\ +\xf5\xeb\xf5\xe5\xe6\xf4\xf4\xaf\xd77W\x9b\x1f\xd7O/\ +\x01\xc3\xb3G\xe1\xf1\xdft>\xf94\xd4\xe0cg\x9d\ +\xad\x83\x0b\xdeu_\xcfz]\x8d\x83q\xd5\x15\xf6\x96\ +\x10\x07W\x8a\xbb\xa37q!R\xb5\x9e\xbd5\x84!\ +\xda\x94g\xbd_v\xc1\xc44\xb8\x9c\xd2\xac7X\xdc\ +\xefS\xf2]\x0an\xb0%\xe2I\xc1Y\x80cHx\ +f\xad\xb0\xe9\x90\x13\xefv\xb9\x0e\xd6%\xdbe<\xa6\ +\x18<x<1\x0c\x1e\x83\x8f\xb3\xbe\ +\xa4\xc7\x94f\x82\xdb\xde\x8c\xe5\x8aU\xeb\x01NDO\ +\x8e0Al_L\xd85\xee\x1d\xb6\xa5\x84.\x17;\ +`9\x92Fnb\x80\xbd\x15:\x7fP/\xe6m*\ +\x1f\xb4X\xa1\xdbV\xed>\x8f\x86\xc7\xbd\xe8\x5cJ\x05\ +~\xd4{\xa0/\x1c\xa5;\xe9V\x89\xe8\xde\xaf\xf0\x8c\ +\x80\xb5^Y\x98\x85\xf3\xfd\x0a\x8eb1\xc6\x95\x8b\xb0\ +\xf4\xbak[`c\x09\xbd\xc1/\x04\xfd\xdc\xc3\xb4,\ +&\xb8\xf2\xce\x0d\xb5\xf4\xd6\x99\x01P\xdf\xad\xe4\x9c=\ +\xfc\x09X\x83\xdbl\x86\xfd\xf6\xf0\xa3\xa1x\xb7m{\ +\xa03.6\xbd\xc5\x802\xc0\x8dn^{\x17\xb1Q\ +\x15@\x09/\xb4\x19\xa3\x85\x93\xc1l\x0a\x0c\xa2\xf4\xf8\ +\xff\x8cJ\x067\xd8\xde\xc26\x1d\x1c\x05\xf7\xf9<\xb5\ +h]\x0eC\xb4\x09c\x09\x08\xe0\xd8\x1bl\x16F\xe6\ +#fJk\xee\xbe\xedj\xc5\xc3\x13\x97\x00\x80\x88G\ +\xf98d\x0c\x0c{\x92{\x18/\x17\x03\x1b?\xb8\xa9\ +\x01\xc2\x95\xf9T,\x116\xa3_\xc1#\xbd\xae\xc1\xbc\ +\xb1\x80\x99\xe0\x80ga\x1d\xd1\x8a\x0e\xab\x10\xb1\x0a\x18\ +\x0aV\x13\x11h00\xd6\xa9\xed,\xf7\xd8c\xe2\xab\ +\x02\xaf\x87\xb3\xe2\x02\x87\xfb,\x97\x1b1\x0f\xdbSp\ +\x19x\x1c\x96\xa8\x93\xc9\xf4|\xb6\xc3\x8f\x16\x08W\xb0\ +%\x19\x11\xc3\x01\xd0\x19\xd7\xdc\xb6\x89uGz\x81\xc9\ +\xb7\x8d\xb4\x8c\xa2\x98\xbc\x05\xfc\xc7>\xc2)\xb2\xc5\xe4\ +G\x03x\x18p\x9f\x82\x873\x07\xcc\x91\x04\x00\xb3\xef\ +\x85x0\x933\xac\x1f\xac\x1f~\xf7Z\xf1\x1c\xe1\x17\ +}\x11;\x06\x98\xfa\x16\xa1\x0b\x08\x0c\xc7\xf8\x0a\x93#\ +g@W\x81\x11\x82S\xe0*x\x13\x02\x1c\xba\xe0\x08\ +\xb0\x964\xbf\x8aPVK\xe1U\xc0\x08=k|\xe5\ +\x03/\x80;\xb4\x00\xf0\xfb\xe2\xb9\x00\x95\xb8\x0act\ +\x1e\x1e\x93\x0d=,$\xe2;\xff\x88\x91V\xb0#\x83\ +\x90\xe4\xa7& \x02\xd7\xb8\x04\x87\x8a\xb1\xc7]\xf0\x12\ +\x029\xc2\x11v\xdd\xe0\xdf\x0cc\xe4e=\x8c\x91\x18\ +D\x9f\x0b\xf0P\xfa\x98G\x0b\x8e\x9c{\xd2,\xd8)\ +-\xda\xe3!\x19\xa0\xb0\xe2R\x9a\xe41*\xe25A\ +\x00&\x96k\xe8\x11\xfc\x10\x12p/\x01\xaa\x97\xcbv\ +\xf4\x97\x94zy\x07\x82\x0a\xec5\xe2\xf5x/\xc05\ +\x82\x91\x15\x9a \x18\x16\xc8H\x8cpm\xbc\x0eC\xc1\ +\xab\xf0f\xb6\x10\xdc\x09!0Y\xde\x82L\x14\xdd\x98\ +\x17cmD\x1ffz\xc1\xe8\x97\xe4d\x98:\xec?\ +!\xf6`\xe4x%\xd0o\xe5#\xda\xf0\x07\xfdvB\ +\xf7\xac\xc4\x90\x15\x9c\x04\xfe\xccI\x01\xfd\xfb\xc2\xe1\xad\ +\x02~\x0bx\x17 \x01\x03`\xe8K@\x05\x90B@\ +\x07g\xd0!x\x81\x9f\x02I\x10\xc6\x81{h\x87\xa1\ +F,\xa8e\xc4Oj#\xa2`\x86\x99\xb8\x07j\x9b\ +1\xce\xdaW\x04\xe5j\x03\x16\x00c\x8b\xa5\x17#F\ +$\xca\xf8\xb7\xc3\xe0\x0a\xfc\x8f\x88V\xb0\x89\x08\xe3}\ +\xc6\xbf\x81\xd9\x804\xdc\x87\xc9$\x80\x11\x91\xbe\x00\xbb\ +R\x04\xe6\xa0?\x01\xb42\xf9\x05\x00;\xc2\xbb\x11\xbe\ +0\x5cGCA\x9b\xef\x052\x10)\xf0~\xb6\x89\x9f\ +Ba\xe3t}\xc4\xea\xd8L`l\xbf\x83Q}\xbd\ +oq\x0fl\xff\xe1\xa3\xfd\x7f\xb4\xff\x87\xb4\x7f\xce\x97\ +{^\x91\x9c\x83\xff\x16\xeeUU\xb04\xbc\x0f3\x0e\ +|\x81\x1f\x8d\xe6\xdd\x1d\xf6N\xfb\x9dl\xf9S\xa4\x14\ +?836\x9bV\xf2\x14\xab\x00\xc27\xf5]\x9c_\ +\xaeO\x8e_>\xfd\xfe\xd5\xcd\xcd\xbc\xef\x7f6\xe7\x97\ +O_\x9c\xdf\xac\xaf\xa6^5.\xce\xf1\xaf\xa7\xf4L\ +p\xf9\xe9\x97\xd3\xe3\xeb\xb3\xe3\xab\xab\xe3\x9f\xe6/\xdf\ +\xf9\xdam\xde\x94\x0ey\x13\xd6&\xf8\xd2\xc3X\x90\xe3\ +X\x04QO\xfe\x80y\x9ft\x89y\x0f(\x04\x89i\ +\x81\xfd\x0d\x19yw\xbf\xaad\x98H9\xc0Z\x02\x0d\ +\x0c\x8f\x080\xfb\x0eF\x8d]Z\xc1\xc2\x81!\x88\xa7\ +\xa5\x90\x13\x22\xd4\x82\xd1;@J\xb4q\xdb\x06K\x05\ +\xb1\x85\xd1b\xcb\xb8\xf7Xy\x108\x8e\xc6 Y\xea\ +-7\x0e\x14\xad\xbd\x01\xd6\x06\xfb\xc1p\x90\xa2\xc3Q\ +\x98\xf3f\xdeH\xa3\xc3%\x88\xe7\x1df\xe1\xc0\xa10\ +\xa4T\xf8t\xd0d\x8f\xdf\xc0\x99\xc0\xe6\xc9\xe5CO\ +N\x0ak\x83\x1f\x82x\xf7x\x11\xec\x13\xad\x8c\x88\xde\ +cT\xb9\xd6\xa9\x85y{\xe0\xa2\xc1\x03l\xa1{\xc1\ +\x02\x13z\x0d\xc9\x9a\xd3,A\x98\x8a \xa08\x03\xa7\ +\x87}\xa3\x15\x08=\xf0q\xd0Ux%\x8c\xd0\xe7\x88\ +\xdb\xaa'>\x80\xc3a\xb8N\xb9\xf7*qF\x91\xaf\ +-\xe4\xb5\x1a\x19\xae\xe4\x88\xf0\x14@G\xd54q\x1f\ +,\x11\xd9YO.R\xc9\xa4\xd1\xd4\xa5\xb4L\xae|\ +\x02%\xc5\xd4H\x07WNI'V\x08\xf3 \x81v\ +\x18%\xe8\x10\xc1\x04\xe9\x19\xdf\xea\xb0\xd7=\xbc\x85c\ +@\xa7\x87\x17\x12\xd2\x80\x82S\xd3\xc9\x970w\xce\x10\ +\xb8\xd1\xd0(\xd2A\xb1\x90\x06\x16\xd0c\xe3A\xa8<\ +\xf3m7\x0e\x1a9l,\x89/\xb6\x84:\xcfx\x12\ +x\x1b \x11\xb7\x95\xa2\x9d\xd2\xf2c\xc8\x89\x13(\xd8\ +Q\xb2\xebL\x9ca\x22\x22\xf3\xe1\xd6\x83\xf3\xe2NN\ +\xa4\xf1{G\xf8\x00\x89o-\x8eKP\x8fk0w\ +\x01\x5cD\xde\x84\xc9G\x98\x18\xa57 \x1c\xb6\x10\x89\ +/\x1b\xd8\x11\xbe4\xc20h\x9bJ\x110\x5c\xb0H\ +\x1ac\x06\xf5\x7fM\xc4\x13\x0f>\xd1\xf6\xd2\xc4\x0a\x89\ +xdV\xd2\x131\xab6\x02F@\x9fv\xdcM\x90\ +cZ\x1b\xd9|\xe2\xfb1\xba\xc4}\xae\x84>$)\ +@\x22]\x87M\xa7\x01\xd7\xb6\xeb9g,\x0b\xd6\x9f\ +\xb6\x034\x0b\x81\x93D\x90\xe5\x95Y\x80\x1e\xf8[{\ +$2\x91\xc4'\xc6\x94\xe2\xd8\x90\xa1&f\x14\x19v\ +\x95\x85Y\x9e\x98\x8d\xa5\xc7\xdef\xce\xd82\xb3\x22\x9d\ +\xf5\xfc\x95)\x1bw>{f5\x03\xd3\xd6\xd5\xe8;\ +\xed\xa5\x9c\xb3\x9cg\xc5\xf9t\xcdCS/\x8b\xcd\x5c\ +\x84\x90,A\x00\x98I\x83w93\x19\x81\xfb$\xd9\ +\x7f\x0d\xf2j\x97\xdc\xae\x99\x04\xabf\xc4\x02&w0\ +a>\x02|\x9a\x1e\xa0L\x04/\xed\xf8F\x84\xf2\x15\ +\xb3\xaa\xd25_\xd6\xd3\x10F\x12sD\xcf\x87\xd9\x08\ +\x00\xc1\x90\x9d6\xb4TZ\x22%?\x8e\x91\x82\x00\x00\ +)(\xd7\x91\xe9\xa2/\xfa\xaa+c\x95e\xc2'y\ +e\xc3\x17\xd8]\xe0\xa5\xf4\x10Z\x09/eZ(\xd3\ +\x14\xc0\xf09\x84\x86\xcc\x8c\xad\xd9\xa6\xb0\x83\x0f\xa1=\ +\xf3u\x9a$\xcd\x8e2\xa5\xe3\xca\xd2\x94+_N\x94\ +c\x1c\x95\x11b\x17\xf1\x08\x07\xac@v\xca%\xf6\x94\ +-;a\x18'J\x97p\xf4i=\x81y\xfd\xd4\xca\ +\xf2iC\xb8\xb5FY6\xc1\x09?$Z%\xb3F\ +\xc2ZO\xa7\xa7{i\xcbC\xd2r%\x04u\xbc\xd5\ +\xd4\xa2<\xd6F\x189B\x9erv\xfc\xab\x06\x9a\xb0\ +\xbc\xb2\x0d\xd5\xc7\x86%\xd84\xabyq\xe1\x90H\xc2\ +\xf0\x5c\x1b?\xb3R.\xa7L\x08\xfe\xcb\xec\x1c/2\ +\xecpdMD\x9f\xd0\xc0p\xdb!\x8f\xf1\xca~\xa9\ +\xab\xc0\xe0\x18n\x031\x14FET\x93\x86\xdb\xc6\xca\ +M\xb2\xf4s\xda2q\x03\x1b\xc1\xddMm$\x02A\ +\x82\xc6\xf6d\xe3\x83\xe9'B\xe6\xbb\xf5\xd5\xe6\x10\xfd\ +,\xf7\x06\xcco:\xb2\x14\x12\xccD\xee\x953R\xc6\ +\x82\xfc0X\xa6\x91\x0ea\x0e\xfe\x81\x9c\x11,\x90\x92\ +\xe1kr\x0bJ\x0f\xb8\x0a\x5c\xc9T\x81\x0d\xbc\xd1x\ +%\xa9\xe45LR)\xea\x80\x99l\xaf\xfa\xb6\xa3N\ +\xc7}9\xeb\xf0\x22\xee\xf7\xb7\xdd\xf8\xc6\x87\x9d\xbf?\ +\x94\x7f;O\x02\x1aI\x18<\x11\xefD\xd8S\xe46\ +\xb9\x85!\xee6\xcd&\x0al\xb0:\x84\xe5\xa9\xe9h\ +\x804\x8a&\x05\x11\x06\xb0\x18+$\xf5\x08 \x94v\ +*-\x82r\x19\x18d\x10;\xc0MT\x9az\x0a\x9b\ +\xcd~\xd4\xc4-\x89\x1ecz\x87xh\xe5\xeb\x08\xe5\ +\xb9\x89\x17\xd8\xa5\xda#\x87\x87K\x83\xfd\xc2\xa0\x18\xe9\ +\x08@\x12\xea{*\x05\x88o\x89\x9a\xff\xd4`\xd4Q\ +\x82P\xb1\x8b\x0d\xe3(\xa2\xc3\xa1\xe8\x15&\xb4P\x11\ +\xb5\xc5'\x02p\x00\x191\x84#\xe4\xce\xf7U(\xb3\ +\xf2p^;5\xa8\xa2\x08\xb1\x19Z-\x9d\xbe\xd0?\ +9\x8c*\x7f\xa4\xf0\xc0\xf0\x9bE\xad\x186\xe8\xabQ\ +\xae\x9d\xe8\xe9c\x93\x8a\xa9gh\xe6#3\xc2U\xa0\ +j\xc3(\xef\xe0%D\x16\xe2\x1c^\x82\xc7c5}\ +\xaf\x98\xee\xa8{\x0d\x04K>\xc6RS\xc5\xdda\xd7\ +\xb4$\x1c\x9c\xb5\xb6M\x18\x0c\xe6U%\x04!\x1c\x01\ +{[\x80|`\xc7\xf3\x87t\x0f\xa4<\x0c\xae\xd4\xa3\ +2u2\xee\x00&\xa8\xa5\xf5\xcc\x1c@\x83Hw\x98\ +\xb1\xc00\xb8\xdd.\x8d\xfc\x8a\xe0\x82\xdd\x0a\x0ch\x04\ +P\xf0?\xe6\x169MMJB\x05\xdbjH\x96h\ +\x90\x0c\x1028.m\xe6b\x84\xd8\xc8\x0d\xd3>=\ +,p\xc9\xc0\x05\xf5\x22\xecF\xa2x96\xf8\x14.\ +*U{\x85>\x02\x04\xcf\xb1\xaa\x10\x5c\x97\x18\xaa\xaa\ +\xab\xf1Q\xe8$zcX\x92\xebZ+0\xe0\xb4\x1d\ +\xc7\xf3\xa8\x05jf\x9a\xae\xa8\x07\x0f\x80x\x1dG\x1b\ +\xdaT\xbdm\xa0\xcf\x00D\xbd\xb1\xe8\x859\xc5,W\ +\x0cy\xd7~\xd7\xbd@pF\x1aT)N[-)\ +\xcf\x09\x9a`942_M\xd6Bg\x05\xc3\xdcx\ +.\xf8)\x03\x08_\x99e\x9b4&0\xab\xb1\x05\x7f\ +\x02Q\x14\x01@Le\xceU\x9b`\xecI&\xbc\xd6\ +\xcd\xef\x9aX_\xcb\x5c\xc0\xc5\xa1\xb1\xd7\x80\xe4`l\ +a\xaa`uT=\xe1\xf4dk\x8a\xc8\xbd\x87\xdf2\ +\xe8\xe1\x22D\xb9\xd6z`\xfb\x0c\x07\x02\x83\xafAZ\ +3E\x02\x12\xec-`S\xa2\x84\xb7\xa7\xbc\x88\x10\x91\ +\x87@Xq\x09\xaf\xc9ReP\xd0\x07\xe9\x1f[\x91\ +\xb0j\xb5\xfb\x94\x8dC\x8b\xd9=#\x0a\x83\x05\xafN\ +\x0d\x16\x12\xc5t\xb2\xfe,{2Z\x99,\x13\xb2\xa4\ +\x09\xb88\x8c\xa2rkj\xe7\xfb\x5cH\x99\xe9\xde\x91\ +\x91\x19\x83\x22\x1a1A\xc6~G7\x22a\xe9y\x02\ +R\xc6?c\xc1\xc1\x1d\xe9'<\x5cR\xde\x00lA\ +\xaf\xb6\x7f{\x0d[gB\xae`\x1fx_\xd2\xc1\x80\ +\xe5\x89b\xfdl7l\xd1\x0e\xbdf& \xb6t\xc6\ +,/H\xdc\x90~\x8e\xa5\xa2@\x02\xaa\x88\xa5\x80\x05\ +\x02L\xb1_\xe2Y\x96\x87\x14i\xdbl\xe1/\xe6\x22\ +\x84\xd7\xd9\x81W2\xa4\x1d\xb0\xb8\x11\xfcMq\xa0\xb1\ +A\xea\xeepp.[\xcd\x0cp.\xfa:5\x1du\ +\xec\x16\xd1(r\x05\x9e1#\xe9\xb1\xf2\x02\xa6c\xbe\ +\x0c\xe4\xcb\x00\xf9\x82l\x81*\x0fG\xe9\x98rff\ +\xec\x82\xaf,\xb6V\xb9-\xb5\xa5\x1a\x8e\xea\xd5\xb6\xc5\ +\xf4\xac\x0d71V(\x0db\xdcnO\x95/3\x9d\ +\x7fM+0\x91\xa8@\x97D\xa6\x95\x15%\x99\x8e!\ +\xa0[i@\x0c\x14\xcc\x0f\xc6\x16\xa6\xec0\x0f\xc3\xa8\ +\xc9$V\x06\x00$\x98\x9a4.\x9b[\xfc\ +V\xee\x0bc@V e'\x8e\xd9y#j\xa4\xb3\ +cS\x07\xf2n6\xb0\xaf:\x87\xf1\xf0d\x11\xcf\x1a\ +4\xd2-6q\xc8\xbe\xf2\x98\xcap30\xe0\x22\x19\ +T\xa1\xb6tm]X\xa9\x02\xc6\x88\xf0\x82(;\xb5\ +\xda\xdb\x0c\xd1\x9cY\x17\xb6\xc7\x99 \x16\x08\x18\x5c1\ +:9\xf0\x1bi'\xc4\xe7\xd0\x89Wi&V9\xb2\ +\xe5uT\xbe\x1d\x99d\xac\xe28\x06h/\xe2-\x9c\ +\x22\x1b\xe6\xd1\xf8\xb6AB\x15Ey\x1aF\xadF\xd1\ +hj\x06n\x99{\xac4&\x1cJcB\x01\x8d\x84\ +\xf5e\x1e\x13;?F\x80\xc4\xad \x1b!P~\x05\ +JW\x04\x99\xb7n\x0f\xd6\x93J\xe6n{*%>\ +\x8a^0\x0f\xa9Q\xb5\x07\xf0Z\xaco;\xef\x9eZ\ +-\x05\xd7A\x04M\xbc\x09#\x81\xb4\xdc\x84f3L\ +\x02\x0a\xc7\xb5\xd5\x15\xa8`\x95$fE\xd9dl\x05\ +\x84\xfc\x12G~\x18\x94l1(\xf7LR\x88i4\ +Y\x19)\xb9ie\x80\xae2m\x86,a\xa0\xf8Y\ +\xae\xda\xec(I\x11\xdbU\x8c\x9du\xb4d|\x0a\x17\ +\xa1O\xd3\x85-\xf2\x08\x87\x81\x01\x82t\xadD\x1f\xe4\ +\x03J\x1b\x88\xba\xae\xf9\x9ar\x9bHM\xb7\xe9\x12\x99\ +b\x98\xeb\xaa\x14@\xce+dD[I\x94\xb2Q:\ +4\x87\xef}\xe34\xf4E,`fj9\xb5-\xe5\ +(.\xa4\xd1C\xa5\x9c\x16.+\xb5e,RE\x0a\ +M\xd9\x18\xf9\x1eQ\xc6\x11|1\x88\x9eq\x1a\xe0?\ +\xb6\xb0X\x08\x96\xae\xe1Y%\x00\x00\xb2\x02wK\x13\ +-j\xf1\xb0\x88a\xa8\x81\x1bR%\xc9_L\xcc\x94\ +\x0d\xb0\xfa\x85\x93\x90\x08=6\xc5\xec\x05\x1cc\xacj\ +\x1a\x14\xd7q\x92fH\xa0R\xdb\xcb\xac\x83\x99*\xdd\ +\xb3\xf1z\xbbm\x22\xc5\xf3\xe6\x81\x83Bp\x07\xf8m\ +r^0\xb9\xc3.,\xde(`82\xf0\xad{\xc4\ +G\xf3\xf2Cg\x859R\x8c\xa70\xcdxN,]\ +\x15\x04+*\xbd\x0c\xfbU\x87\x17\xd4\xe7%$*]\ +\xe1yK\xd7\x12_Q\xed\x9a\x1dm(1uG\xda\ +\xc2r*\x22[mT;R^ \xd5\x8ea\xd7\x06\ +\x870\xa5\xb6\x84\xc6\x80x\x8dvI\x90Fk\xb2\xcb\ +\xaf\xbbLO\xc1\x82\xd6QMpN\x91\x8d\x92\xa88\ +[\xb3ui\xea\xe48\x86\x9a\xf6\xac\xc3Jv\x92g\ +VQV\x0a\x0d*\xab)$\x8fR\xed\xa5\x9f\x91\xbd\ +\xd0*#\x93\xb21U#I\x0f&\xed\xda\x94c|\ +$\xf7\x94<\xeetlR\x99Z\x91\xa6\xe0Y\xf4\xd3\ +\xd0JPZ\xccc\xa6\xc6S\x1a:\x0aB\x1fO\xf5\ +T\xddF4\x9bZ\x14?\xec\x88u\x04=I\x9e\xa5\ +k\x22\x8a\xe8af\xb5V\xd3Pk{\x95\x03\x8aP\ +\x94\x15\x07\xd96I!\xfd\xc8\x1c\xab\xa2\x9d\x82\xabD\ +{\xc3\x01s\x86\xd9\x89\x8d$`\x1e/\xd2)\x0cV\ +y\x9b\x9f(\x85\xefcs.\x06\xbaJ\xfeQC\x94\ +\xa6\xe4\x8d\x9dZ\x85\xb9\xa7\x19\x01\xccm\xc5p\xc2\xa5\ +\x06J\x06 *\xdfK[\x17\xb2bb\x8d\xf0\xead\ +\x88z|\x16\xb01^\x9cu\xaa\xb5\x0b\x0f\xec\x0f\x07\ +O\xfb\x0c\xe9[\xda\xcf\x85|\xe3u\x8e\x82\xb6x\x11\ +\xcbbK\x83\xbe\x9eBU\x09\x82-\xac\xd6\xd4\x1a\xf5\ +\x0d\xe0\xb8\x08\x91.`\xf5^s\x0b\x1d\xa3\xf2h\xa8\ +4\xa7)\xbcA\xf4\x9d\x1a\x9bO\xdb\xa6\xb0\xba,\x18\ +Q\xcd\x86I\xc4{AW\x89\xea\xa8\x83\xcc9\x11\x0c\ +\xa8\xb1\xe9\xd4\xe8\x89o*\xa2\xe8\x895\xdb\x163)\ +\xda\xa1S\xadU\x10Q\x82\xdf\x10\x97%\xfc#\xed\x96\ +,Vt\x14au\xbc.\x8a\x1a\xeb\xd4\x82\xd5\xc6\x90\ +\x1f\x0d\xdc\x0e)\xd1\xd6V\xcf\xf1\x8f\xcb\x04\x8cS\x99\ +\xddn%\xadE\xe0H,\xe00Eb\xebvA\xc9\ +]\x98>RJ\xa06K\x1aX\xa8F\xb8\xa1\x99\xb4\ +\xd5\x02\x0e1\x09o\x22\x0bX\xb1d-\x8d\xa2\xc8\xab\ +\x0d\x90\xb1Pt\xd0qL\xd6\xa9F?\xc1\x13\xe9;\ +]\xb4p\xf7\x91\xa8\xb2\x10\xa3\xc7\x8b\x0a\xf3\xc13\xe6\ +\x96\xe9\x81\xbd!\x1e,%sTXa!&M\x9a\ +\xae\x1f\xcd:ia\xe9\xe0\xa3$\xe6E\xf6xT\x96\ +\xda\xb1\x05\xafeQ\x81D\xc1\xf6gQe\x1d\x1b\x13\ +\x02x\x10\xd7\x93|\xd8n\xfcU&J]\x9b\x07n\ +\xc0W\xd7\xd4\xd6nzA;U\xa5\x1c\xd4T<\x9e\ +T\xd3\xc0\xed\xe4bz;\xe9<\x1e\xdf6G\x07S\ +\xe3\x9f\xdb\x0b\x8cRdWtV\xd7\x8e\x834\xbc4\ +%\xc4p\x80^\xf3P\xce\xa2gG\x17\x04y\xdb\x06\ +a\x96\xf8I<\x8b\xed\xb8\xff+V\xb6\xc3\xde\xde\xf3\ +\xcb\xc7\xf2\x87x\xb00\xce+\x5c\xc3\xe82c\xcd\xb8\ +\x9d\xdc.\x1a's0&\xe7R0\x19\xf3\xd2\xd4\xc8\ +\xa3\x1cB\x10\x11I\xd3\x15cNdi\xefZ)\x85\ +\xe6\xf1A-=\xda\xfe\x19\xc6\xcd\xa3\x90\xfd\x843\xf9\ +\xfd\xc5\xd2\x09\x82\xd4\x98\x11\xc2\xe4r\x89\xf4\x94\xa8C\ +\x91\x90X\x16\xad\x18\x7f\xa3\xd7<\xcd\x88\xd4m\xe9\xc2\ +\xd2\x07t|\xceB-\x9e,\x8e\x7ff-\xb6\xca)\ +b;\x11g\xb5\x93U\x8d\xa7\x1d\x13\xdf\x86\x9d\x0f\xac\ +\xe2\xc7\x83\xd5[,E\xcf\x0b\xf9lT\x7fW\x0d\x22\ +\x9aT\xce\xd4\xc6\x8ej\xba\xcd#;\x1a5\xfcv\xa6\ +\xe2\xa53J\xcfR#x\xeal\xa9I`\x91\xee\xe5\ +\xa5\x1eg\xaeD\xea%\x91\xc7N\x87\xacb\xe8`\x00\ +b\x05}\xa3Q\xac\x22fqIk\xf0\xc0\x92\xba,\ +\x87$\xf9\x1e\xd4\x80Y\x5c\x8cMl\xa8<\x05\xce\xe3\ +\xa1mPJ\x17\x9bz\x1f(\xda\xb5V\xe0\x19VU\ +vV\x148\xf0\x1c\xd7do\xcf\x1alezE\xd7\ +E?N2N'\xb6A\xe9\x84\xf07\x8d\xe7j\xfa\ +\xfae\xd7\xa6\x8fZ\x02\x82\x05\x0d\x87\xbdOGqU\ +G\xae\xa43\xaap0:\x92+*cn\x8c\x87\xe8\ +F\xab-C\xa3\x91F\xb5O\x92[\x86{Y\x80%\ +\xb3f\xf9\xcf\xb7\xdd\xb8j\x0f\xbc\x87\xe9\xf0\x17\xa4\x91\ +\x00\xb7\x7f\x1c{7Ers\x8a\x94\x7f9E\xb2\xbf\ +9E*\xbf\x88\x22\xe5[)RYP\xa4\x0fcH\ +\xf7c\xc7\x8c!5\xec\xe07\x15w\x9d\x1b\x1fbH\ +i~f|\xe7\x91qZ\x9c\x18/\x0e\x8c\xef>/\ +\x9e\x8e\x8b\x97\xa7\xc5\x8fN\x91\x0eq|\x001\xcb\xe0\ +\xff\xbfs|\xf7\xa8\x1c\xff^\x8d\xec\x16\x0b\xfeY\x06\ +\xec\xff\x8c\x14?\x1f\xac\xd9\xaeU\xfa\xff-\xa6\xa0\x85\ +\xd6\xc7\xd0\xabq\xa9\x19\x9f\xecX\xd1\x99[\xed\xa7\x8a\ +H\xb8\xc6\xed\xdbAU{o\xdb\xfa\xf8\xddH\xb1\x8b\ +R\xecB\xe4G%\xad\xa9o+UL\x96\xaa\xbe\x96\ +\xd1\x1e\x07\x15\x07\xc0u\x9aje\x9a\xb0D\xae,v\ +\xcej\xc9\x1c\x9ax\xa4s\xf3\xb1\xd9>o\xa4\xc2\xa4\ +/\xa2\x18\x1c\x1b\xd3\x99\xea\x0142\x95:\xb0~\x82\ +_(F\x1e\x08\xd9\xd6\x80\x05\x22\xd9\x08\xcdi\xab\x8d\ +m,\xb1>\xda6\x1db\xab\x9e\xe75d\x16\x1f\xd9\ +\xea\xef\x93\xad\xe6pp\x07\xb3\x08\xda\xe1\x13\xa5\xf2[\ +\x9e(\xb9\xe9D\xc9\xd6\xdd\x91R\xd9\x1d)\xd9v\xa6\ +\xe4fgJ\xee\xb1\xce\x94\xdc\xf2L\xc9\xce\x8e\x94\xee\ +\xb6\xa8\xc7\xda\xcfC\xcc\xd5\xf3\xcb`~G\x12\xf5\xdd\ +e\xabJ\xad\xb6\x95~\xa6\x06\x8eQ\xa5\xa6F\x02\xbf\ +\xb7c\x9d|k\x12\xa9\xa6\x02\x8d\xca/PU/\xca\ +d\xbe\x9dm\xd8\x10Z\x9d\x90U\x11Qnu\xdc\xfa\ +^D%\xf4\xdb\x16\xc0\x14\xef\x1f?O\xe0\x17\xa4q\ +Px\x9e\xe4\xf6\xd0>\xc3l\x9f\x14\xb4\x03[\x06(\ +\x9e\x0d\xeb\xf3@~\xben\xa7F;K1\xfaF\xc1\ +\xb6\xef\xe4R\xd7\xf0C\xb5\xb1~t\xe8\xf1[i\x22\ +\xd0\x98\xec0@\x02a\xab>\x83\xd3\xf7,ujP\ +M\x0f\xe3\xc1\x83\x12\x14\xa7R\xa7\xaa\xbf\x08\xa6U1\ +3\xb2\x00\xddV\xed\xcb\xd2\x95m\x7f\xeb\x89\xc2\x8b\xdb\ +6YyZ\xd3x\xee@!\xc1\xeb\x1e\xd6\xbd\xc5\xe6\ +\xf6\xb2(\x9eSWF|+\xd9I\x07\x04<\x18i\ +G\x0d\xc5\xc0\x98\x81\xa59\xef\x9am\x955k}\x8c\ +\xeaS\xe6_\xca\xc4\x0d\xe2O\xfc\xc4\xee\xdbn\xdc\xe7\ +\x07\xb6\xbaCt\xd3\x07V\xfd\xdd\x1a\x07\x96\x05\xeb\xbe\ +\xed\x8f\xcei\xdb\x97\xc1\x13\x95\x5c\xe9\x13}\x16\x9a\x8f\ +_\xfbl\xdb\xb2\x8e;\x8a\xd5\xe7\xb5\xeaqV\xaa^\ +\xe6\x85\xea\xe5\xae2\xf5E\x95z\xd8/R\xbf\xb5F\ +\xbd\xfc\x9c\x12\xf5E\x81z\xb9\xab>\xdd\xcf\xcb\xd3\x17\ +\xd5\xe9\xb3\xe2t?\x96\xa6\x97Eezy\xbf0\xdd\ +\xcf\xea\xd2\xcb^M\xfa\xb2$}Y\x91>+H_\ +\xd4\xa3\xd7Y9z\xbd\xa3\x1a}Y\x8c^\x96\xb5\xe8\ +\x8bR\xf4e%\xfa\xbc\x10\xddMu\xe8\xb32\xf4Y\ +\x15z\x9c\x15\xa1/j\xd0\x1f\xbb\x04\xbd\x98\x83>\xc0\ +\xbf\xde\xc3\xef\xe9>\xf9Ct\x9f4\xe9>v\xa9\xfb\ +\xd8\x07\xd0}\xf2\xfb\xbaO\xfe\xb5\xba\xcf\x87\x89>\xee\ +qE\x9fr\x90\xcc\xf2\xaf`J\xe5\x0e*\x14\x1f\x8a\ +\x0a\xf9\x8fT\xe8\x97\xed\xe7Aj\x9b\x9c\x12\x8e?P\ +\xe5\x86\x9bWn\x84y\xe5\x86_Tn\xe4E\xe5F\ +\xfe\x99\x95\x1buY\xb91\x96\xd5\xefJ7\xe2^\xe9\ +F\xfeC\x94n\xc4\x8f\xa5\x1b\xa3C\x1c\xcc\x0d\xf8\xb7\ +\x86\xce\xfe\x22\x80\xdfe\xb6~\x87\xba\xf6\xa7\xc8\xd6\xcb\ +\xc1\xcf\xdc\xacm8\xf2[\x15\x0c\x86E\xc1\xa0\x9dW\ +\x0c\x96Y\xc5`\xf9M+\x06\xd3\xbcb\xd0\xcf*\x06\ +\xe3\xaeb\xd0\xcf*\x06\xf3\xaeb0\xfc\x0e*\x06\xeb\ +\xc1/\xb5l\xe1_\xa6\xb1\x1fx\xd2\xcf\x09<\xfec\ +\xe0\xf9\x18x\xfe`\x81\xa7\xba\x83_\xe7:\xfe\x95\x81\ +\xbf&5\xca\x1f\x9e\x1a\xd5\xfd\xd4\xa8\xee\xa7F\xe5\xa1\ +\x8f\xc4\xc3\x9dG\xe2y\x9e\x1d\x95\x96\x1d\xd9\xff\xc3\xec\ +\xa8\x86\x83{\xf8G+\x83v?\xb3\x0c:.0-\ +\xde\x81i\xee\xfe2\xe8_\x80i\xf1=Ls\x13\xa6\ +\xe5\x05\xa6\x85{0--1-\xdd\x8ai\xfe\x1eL\ +K\x0bL\xcb\xf7bZ\x1c1\xcd\xceA-?6\xa8\ +\xe5\xc7\x01\xb5Cl:D\x1e\xb1\x7f\x98\xd2\x9e\x96J\ +{\x9e\x94v\x7f\x9f\xd2\x1e\x96J{\x5c(\xed\xf1C\ +\x94\xf68S\xdac=(\xb5\xff\x96J{\xbcMi\ +w\xbfVhOK\x9d\xdd\xffb\x9d=\xfc.t\xf6\ +z\x90\xff\xeb?(\x92>2\xcb\xdf\x19\xb3\xfc%(\ +\x5c>2\xcb\x83\x0ea\xcd\xc1\x5c\x8b\xff\xa5\x09\xfem\ +\xc0\xefg\xa5\x8bO\xfc\xfdc\xe5\xf0`\x88\xdb!\x7f\ +\xfe\xe4\xb9\xfe\xabN\xfc\xd7\xe7\xfc\x8f\x85}\xf1\xc9\xff\ +\x02\xcc4\xdf\xb0\ +\x00\x00\x02#\ +\x89\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\ +\x00\x00\x00\x19tEXtSoftware\ +\x00Adobe ImageRead\ +yq\xc9e<\x00\x00\x01\xc5IDATx\xda\xa4\ +\x93\xbbJ\x03Q\x10\x86\xff\xb3{\xf6\x22\xab\x92(\x16\ +\x22DD\x04W,\xb5\xb0\xc8\x0b(VB\x1e@\x10\ +\xa2y\x02Iaccg\xa5\x0b\xda\xea\x1bX\x89\x95\ +\x85\x85\xdaY\xd8(X\x89\x88\xb0\xb9\x98\xdddw\xb3\ +\xce\x9c\xb0\x11\xb1\x8a\x1e\x18\xe6\x5c\xe6\xfff\xceM\xa4\ +i\x8a\xff4Y*\x95\xd6\xc9O\xfeQ\xff*\x93$\ +\x99\xf2<\xef8\x8a\xa2\x81\x94\x86a\xa0\x5c.o\xcb\ +n\xb7+:\x9d\x0e*\x95\x0a\xa8\xaf\x16\xd9\xf3\xd6\xd8\ +\xb2>\xc7\x84a\x04]\xd7\x91\xcf\xe7\xe0yG\xbc&\ +d\x1c\xc7\x82\xaaP\x81\xae\xeb*Os\x08\x97f\x91\ +^?\x80+\xab\xd5\x1a\xa8\xd7[\xb0m\x09)M\xb4\ +Zu\xb0\x86\xb5\x0c\xd0x\xc0Y8\x98\xc5l\xdd\xa9\ +q\xb4\xc3\x90\xc4M\x04A\x87J\xb6\xc9L\x05\x88\xa2\ +0\x03h\x0a\xa0\x04\x94\x99\xcbd\x08\x9bQ\x98\xa0\xac\ +\x9fh\xb7\x13\x98\xe6P_,\xa5Asf\x96H\xd3\ +2\x00\x13C\xca\x98\xac\xcc+\xcf\x8d\xcfuxa\x06\ +\x93\x87[\x18]]\x86e\xd9\x04\xb3\x15\xe4\x17@\x14\ +\x17\x91\x94\x8a\xb4\xbf\x16F\xf67\x15`\xd8\x9dA~\ +g\x15\xfe\xee\x19Da\x0c\xb3\x07\x9b\xd88\xde#\x80\ +\xec\x03$\x95\xab\x00\xc1\xe5\x1dj\xf7\xcf\xaa\x92\xda\xc5\ +\x0d\x1cw\x8e\xc4kh\x9e\x5c\xc2qrH\xcfo\xf1\ +\x94\xdc\xe0Y\x00B\x08\x05`\xad\x02\xb0\xa8Wr\xef\ +\x10-k\x04\xd6[\x1b\x9f\xa7W\x18z\x8f\xa1\xd1\xde\ +Y\x94\xb5 h\xaaD?\x00\x8e\xe3\xa0\xd1hd\xcf\ +\x84n\xe5\x03\xfa\xa3\x8fP\xd3\x94\xb8\x07\xe8A,K\ +\xff\x06\xf8\xbeoi\x14T\xadV\x07z\x89\xaca\xad\ +\xa0\xcce\x1aL\xff\xe5#\xd0\xd5\xbfpM&Y\x8e\ +?\xd6\x80\xfa\x98\xcc\x17\xff\xfd\xce_\x02\x0c\x00\x9d\xc7\ +._\xac\xac\xacJ\x00\x00\x00\x00IEND\xaeB\ +`\x82\ +\x00\x00\x1e\xc6\ +\x00\ +\x00k\xd6x\xda\xed]ko\x1c\xc7\x95\xfd\xee_\xd1\ +\xcb|q\x80\x99V\xbd\x1f\x8a\xe5\x00\xebl\x90\x056\ +\xc0\x02\x9b\x0d\xf6[@\x93c\x91k\x8a\x14HZ\xb2\ +\xf5\xeb\xf7\x9cS\xd5==\xa3!Gv<\x89\xb1\xb0\ +\x0c[S5\xfd\xa8\xc7}\x9c{\xee\xad\xf1\x17\xbf\xff\ +\xfe\xcd\xcd\xf0ns\xffp}w\xfb\xea\xcc\x8e\xe6l\ +\xd8\xdc^\xdc]^\xdf\xbe~u\xf6\xdf\x7f\xf9\xe3\xba\ +\x9c\x0d\x0f\x8f\xe7\xb7\x97\xe77w\xb7\x9bWg\xb7w\ +g\xbf\xff\xf2\xb3/\xfee\xbd\x1e\xbe\xba\xdf\x9c?n\ +.\x87\xf7\xd7\x8fW\xc3\xbf\xdf~\xfbpq\xfev3\ +|~\xf5\xf8\xf8\xf6\xe5\x8b\x17\xef\xdf\xbf\x1f\xaf{\xe7\ +xw\xff\xfa\xc5o\x87\xf5\xfa\xcb\xcf>\xfb\xe2\xe1\xdd\ +\xeb\xcf\x86a\xf9N{\xc6\x8e\xeb\xcbWg\xf8\xce\xa9\ +\xf1\xfe\xfa\xf2\xf1\xea\xd5Y\xb6eL\xf8S\xd5y\xb5\ +\xb9~}\xf5\x88;|\xeb\xcd\xea}w\xbdy\xff\xaf\ +w\xdf\xbf:3\x83\x19\xe6\x1b\x86\xdd\x8b\x1e0\xa3\xb7\ +\xf8\xf7\xe5\xe5\xdd\xc5\xed\xf9\x1bL\xe4\xbf\xfe\xed\xab\xbb\ +\xff\xfc\xdb=\x9f\xf8p}\xb9\x19\xf1\xea6\x8c>\xe6\ +\x97\x8b\x01\xba\xd1\x0d\x9f\x7fm\xceK()\x06\xbb\x1a\ +\x9cqnm\xdd\xda\xd8\xdf\xea&,\xe2\xed\xc3\xcb\xe9\ +\xd6WgO\xad\x01_\xfd\xf0\xf6\xfcb\xf3\xf0b\xea\ +_\xdc?\x0dr\xbe\x7f\xea\x18\x1f\xee\xbe\xbb\xbf\xd8|\ +\x83Gl\xc6\xdb\xcd\xe3\x8b?\xfc\xe5\x0f\xf3\x97k3\ +^>^n\x1f\xb3\xf3\xf6\xf7^\xefu\xc6\x98\x17\xd3\ +\x0c\xfb\xcb\xde\xbd~\xf6\xca/q\xe9\x17\x97\x9bo\x1e\ +xK\xdb\x1d\xb6\xd2\xd9\xf0B_\xcd+\xca9]r\ +\x13\xb6\x17\xce]\xe1\xacu\xbe=\x7f\xbd\xb9\xb8\xbb\xb9\ +\xbb\x7fu\xf6\x9bh\xf8O\xff\xe2\xeb\xbb\xfb\xcb\xcd\xfd\ +\xf4\xd5F\x7fv\xbe\xba\xc3j]?\xfe\x80]\xe8\xdd\ +\xf3\xfe<\x5c\xdd\xbd\xe7s\x1f\xae\xce/\xef\xdec\xfb\ +\xf7/\xe0\x97\xf3\xed\x07\xbf\xbd\xb8\xda\x5c|\xbb\xb9\xff\ +\xfa\xee\xfc\xfe\xf2\xc0%\x97\x9b\x87o\x0f\x8e\x9a\xaf~\ +}\xcf\x99~s~\xf3\xb0\xd9\xbf\xef\xc3\xdd\xdd\x1b\x8a\ +M6\xb6:\xbf\xff\xed\x05D\xd5\xc7:\xc6\xea\x0f|\ +\x89\xa1\xa6:z\xfeI\xfb_\xbe\xbf\xbe\xc5L\xd7]\ +7\xf0l\xf3\xc4\x15\xb3\xa2\xd8l\x9f\xb8\xe4\xfbg\x1f\ +ph\xc1\xfaWo\xce\xbf\xbf~s\xfdasy`\ +K.\xbe\xbb\xbf\xdf\xdc>\xaeo\xce\x7f\xd8`\xd1^\ +[3I\xcb\xeb\xadp\xbc.\xfb\xb7\xbd\xbe\xbf\xfb\xee\ +\xed\x9b\xbbK(\x8e\xee\xdc\xff\xfe\xe6\xfc\xeb\xcd\xcd\xab\ +3\xb4\xff\xb6\xf9\xfe\xf1o\xff\xa3?\xfd\xa2\xc7\xfb\xf3\ +\xdb\x07(\x06\x16\xfc\xcd\xf9\xe3\xfd\xf5\xf7\x9f\xdb\xb6z\ +\xde\xaf\x0c\xfeY/\x9b\xb3M\xf8\xad\xc4{;\xae>\ +2;Mz\xe7\xb9\x18\xc4\xcd\xe6s3\xda\xe9.\xdc\ +\xf7\xf6\xfc\xf1j\xba\xb4\xdd\xcc\x1e\xeb\xce\xb6\x9d\x0f\x8f\ +?\xdc`F\xdf\x5c\xdf\xdc\xbc\xfc\x8d\xf3\xf6\x1bg~\ +\xc7\xc6\xba\xcb\xe4K\xdb\x9a\xf7\xdf\xddl^n\xdem\ +n\xef./\x7f\xf7\xf0x\x7f\xf7\xed\xe6\xe5-l\xed\ +\xe2Qx\xfc\x9f\x07Wj\x1cm\x8eu\xc8>A\xb6\ +\x82\x0d\xc3\x7f,z\xed\x08\xe3\xe4be\xaf7\xc9\x8c\ +\xc5\xc7\xc3\x9d.\x86\xb1\xe6\x98\x1c;\xad\xafc\xb60\ +\x98\xdb\xde\xaf\x06\xef\x5c\x19cNe\xd1\xeb]\xadc\ +p.\x0f.\xe7\xb1\x94\xea\xd0\xe7\xa3\x1b\x93q\x09\xdf\ +\xfa\xd1\xa7j3\xef\x0e&\x8e9\xb3\x17\xb2\x0cSi\ +=\xfa\xbc\xc3\x05>\x0c\x01\x8fN\x99\xe3\xd8\xf6E\xe3\ +\xc6P\x8dkwO\xbd)\xe2\xca\x1a,\xdf\x83Q\x16\ +\x1b\x96s\xf7\x16C\x8b%>\xb1\x1c\xdb\xde\x0f\xc3\x9f\ +\xb7sOF\xd3-Z\x10\xeb\xe2X\x0d\xdf4\xf7r\ +\xee6\x8c&y\xbf\xe8\xf5\x0eC\xb1>\x94!f;\ +Vol\x5c\xf4\x85\x9a0\xe0\xec\xda\xca\xcd\xbd\xb6\x8e\ +X-\xbfx\xa0/f\x8c1aY\xb7\xaf\xde\xf6-\ +v\xe8`\xe7v8\x1f\x86\xaeW\xcf\xc9b8\xa5,\ +r\xc3JHy\x88\x10\x00\x9b\xf1\x07swX\xed1\ +\x1a\x8cz\xdb\xeb|\x08\xa33\xc9\x0e\xd1e\xec\xa6+\ +vp\xae\xc2\xa3\x06\xc8T\xc8\x05S\x8a%\xf1n\x17\ +\xcc\xe8*{\x1d&\xeaC\xe5\x95xb0\x01\xcb\x94\ +\xec\x98J\xc9\x8b.\x97!\x9a.\xe5\xaa\x9b\xa7^[\ +\xcdX!9\xbc\x12B\x13\xac\xcf\x83ua\xc4.T\ +\xf6\x15\xf4y\xf4\xe58\xfa`\x8b\xe3\x96;\x8aWH\ +>\x0d\x8e;Y\xb9k\x18M\xc1\xc01\x08\xe8P\xae\ +\xd5\xe0=.@\xba\x04.\xe6.\xdc\x1c\x0bf\xed\xcb\ +\xb2\xd7%\xca\xa6\x81\xe4b\xd2\x86\x8a\xc4O\xd0\x8aX\ +\xac\x1d\xa0>\xc9\xe2\x9d\x94\x17\x07\xdd\xc2#\xd1k\xa1\ +\x176y\x03\x9d\xcb\x05\xcbW\x1d\xd4\xb7\xe2v\x89\xc9\ +\xb6\xcf\xe1u\xb6\xf2\xd3W\x8b^\x9f\x02\x84\xc4Yj\ +g\xcc\x98\x84M\xcbu\xcc\x06*\x1b\xd9\xb7\x5cq*\ +\x98\x8f\xb8g\xb17\x11\x0bT\xe3\xce\xce\x1e\xdam*\ +\x15\x96\x03Z\x99\xbd\x95NC;\x83\xc6\x14\xf1\x0a\x88\ +\xfb\xa2\xd3%\x9bG\x87!\x0e>\xd7\x11\x8b\x9e\xc3\xa2\ +\x0f\xaf\x1dM\xa8R\xbem\xaf\xe5*e\xdc\xde\x1e\x18\ +\x8c\xe7\x12\xc5\xb1T\x1fi\x96\x0c\xb6\xd9\xee\xf4I\x00\ +\xe1W3\x16vq\xa5\xc7\xdd\xc5\xf3\xca\x9cF\x97\x0a\ +\x04l\xdbGSf\x9c\x8d\xda\x8a\xb9\x17Jk\xda\xc1c\xff!RP\xfc\ +\x88\xf9\xd8\x8c\xf7\x04Hm\xdc]\xa0C\x8b\xf6\x9c>\ +C\xdf\xde\x0c\x8e\xf3\x89~E+\xc8]\xbc\x18\xd6\x11\ +\xf8b\xb5F\xb71\xbe\x0ek\x8b\x99\x87\xb0Z\xfb\x8c\ +\xe1z\xac\xda\x1a\x18u\xac\xcb\x0e\x0b\x81.ve\xf0\ +\xa9BY\xd2\x0a\x03\xaeP8^\x0b!,+\x08w\ +\x85\x91A\x1bs\x8dv\x05\x91\xc2\xaa\xa3Y\xfd\x98V\ +\x18*4&OM\x17q5\xb7\x07n\xd5z\x0c\x0e\ +\xcb\x01},+\x071\xc7S\x06\x8b\xbfM]9\xae\ +:\x5cA\x86\x03\xb5+\xfc79l\x05\xd6\xc5\xe6\x15\ +/\xa9P\xb5\xecGc\xa7\x16\x5c\x86\xcb\x18%6\x00\ +\xd2\xbbZC^a\xe4a\xd3G\x87\xf9B?c\x1c\ +\xfe\x0aILX\xbc\xc2\x95\x08y\x0cy\x85\xc5\xf4\xc5\ +s\x96\x96+\x150\x83l\xd1\xe4\xb6\xc5\xb9\x99\x12\xfe\ +\xd6\x128\xc3\xbb\xb0J\x98E\xe2u\x96\xd7q\xe6\x05\ +Vd\x0d[T\xcaj\x1d\xb0\xa7\xb5\xe0>\xc2\x88\xd5\ +\xba\x12?\x84\xb9i3-V\xc6\x12\xac\x13\xfc%\xe6\ +\xac\xb1\xe3\xe1p\x86\x8e\xce\x02\xaa\x84&\x17\x12\xc2\x04\ +\xf4\x111\x07<\x1a\x1a8\xc0N\xc5\xb4\xe2\xa3lL\ +\x83\xd5r\xceM\x8e:p\x11\xda\xb6B\xa2\x9c\x81\x1d\ +\x83\xf3\xb1a\x15\xb0\xc0p\xa9\x7f\x1d\xba8\x9c\xc6\xd0\ +O\x8e\xc4\x99#\xc2\x89m0\x9c'\xb1\x06g}\x85\ +\xd5\xe3\xf2a\x80\xcd\x09gt\x05,I\xe1\x98\x81\x16\ +\xb0\xd9i\xf8\x136\x18\x1b\xce\xab\x02\x16&\xa4\x88\xab\ +\xe8\x02`\xec03\x03\x8bm\xec\xf2*\x8bg9\xe3\ +y\x15d\xc1R\x08\xfa\x1bO<\x7fwl\xfe\x0er\ +Z\xfc*\xd2{\x15\x8a\xa4-\xdc\xffLA\xf3\x09\xfb\ +Z i\x06\xba\x141\xeaH52\x8b\x0e\xeaU\xd0\ +\xb5\xd0r( T\x06\x06\x1ef\xa2\x03-l\x7f\x81\ +\x91\x0a\x14\xb4\x80\xe7zGi6\xce\x0f\xd0\xc3`\xa0\ +\x98t}\xbe\x0cp\xaa\xc0d+\xe7\xe0\x5c\xa9\x08p\ +\x0cPSHR\x8d\xd0p\xac,L\xd2\x0an\x07\xce\ +\x01\x12\xed<\x07fW\x189\xc4\xb1\x0e\xd4\x83\xb8\x82\ +\x0ass\xf0\x08\x93\xc3J\xda\x02\xcfM\xc8SV\xb8\ +\xd0\xca\x5c\x13\x9dQ$a\xf7h7\xa8\xf3\x18I\x85\ +\x10\x1b\x18\x82\x92\xd8\x84\x1do\xae\xd8\x14\xcc4\xc0g\ +\x22NMD\xe1\xe8\x86\x7f\xb0\xec\xf60\x137\xb0\xe5\ +\xf0rT\x0c\xac\x08\xbc\x1f\x8c:\xad\x81\x83i\x0b1\ +@\x02j\xa0\xb5\xb2\xb0\xb1\x85\xce!\x16X\x0a\xda\x86\ +2$x\x8eT+\xda\xb0rT7:\x97\xb0\xaaX\ +&xH\xe0\xb2<\xc2\xa8\xacJ\xcaz@\x80\x92\x96\ +\x1cW\x19\xf2\xea\xb1(l\xc7\xe0a\x94\xf0\x98(\xab\ +J\xf1\x83\xdac\xaa\x84\xc9\x18\x15\xb5\x99K\x07l\x00\ +\x0d\x85'@[\xbb\x1b\x06*#\xae\xc5`\xb0J\xd8\ +\xf3L\xf1\xa4\xf2C\x1e\xe0Im\x91\xe1\xa3\x89\xc1\xc4\ +27\xc4D\xdc\x0e\x8fM/\xb2\xc6 R\xc1\xe3\xb1\ +m\x05\xda\xbcv\x16\xcb\x5c\x9d:\xb8\xce0\xe9\x85\xf2\ +\x8du\xa2\xbb\xc6\x86\x15\xdaS\x0e\x11s[{,}\ +-\x92\x22\x0b\x94\xb8'\x84'V\x89\xf0\xabJ\xfc\xaa\ +\x12\xbfl\x95\xf8\xf0\x84\x0aP\xa4'\xf1\x9e\xd4\xa15\ +\x1b\xb1\xf2\x12 \x06\x01\xef\xd4ws}\xbb\xb98\x7f\ +\xfb\xf2\xeb\xef\x1e\x1f\x97}\xff{w}\xfb\xf2\xcd\xf5\ +\xe3\xe6~\xeaU\xe3\xe6\x1a\x7f\xbdt\x14\xbb\x98\xa6o\ +.\xcf\x1f\xae\xce\xef\xef\xcf\x7fX\xbe|\xab~\x87\x14\ +,\x1dQ0 QL\x13\x02\x08\xe8\x84\x00\x7fx\x87\ +\x10y,\x8e\x9a\x06\x5c\x84%\x8f\x0dU`!\xb1z\ +#\xe3U \x89\xca\xad#\x22\xc5Ni\xa3\xb0M\x80\ +\xc3R\x16 E\x80\x09\x84.\xc0\x95qj\x84Q\xe2\ +YF\x89\xac\x07\x12\xc2\xed\x8e\xae\x9e\x90\xd9c3\xd1\ +\x9d\x01\xda\x22\xd1\x12\xdcq\xe0\xb5a\xe5\x19\xde\x0dN\ +\x18o\xf4\xd0\x17(\x14t\x00+\x8b\x08\x04CR\xac\ +\x02\xf7mtS&O\x11+\xee*\xb5\xb6\x8f\x09\xfb\ +Z\x80\xab\xa8\xa9\x992(c\x82\x11q\xc8n\x05\xd1\ +\xa6\x06\x13\x02\x13(AT\xa8\xa4+\xc6\x5c\xb8\x1aR\ +\xe0\xf1\x84\xc0;\xb9\x13x\x07\xa3\x0b\xf4Ce\xf9\x12\ +\x81\xe118<2\xf19\xa1\x0d\x1dP\x13\xd3m\xba\ +\xbf\xa6\xe1)\xbc\xc0\x09]s\x00\x90\x0c\xe3\x08\xac\x11\ +\x98@\xc1\x18|\x0eD\xa4\xb0\x5c\x96!\x0fZ\x91\x08\ +\x9b*\x96\xf8\xb4L\x93@\xfb\xa7\xcfN\xe6\xc1h\xf0\ +\x9a&15\xbe\xc6\x8a\x00\xe7:!\x1f\xcf%\xe3\xa8\ +qg\xb9\ +\xea\x08aqC\x86!\x1ae\xbc\x8a\xd3' R\xda\ +\x1bl\x80\xf4\x06*\x8dyT\xd2d@\xbdX\xf5\xc4\ +^,\x90\xa5\x19\xa1\x80\x04\xec\x13,\x1a\xb4\x14R\x02\ +9[{n\x90\xa7ep\x9a\x02v6r\xe2\x5c9\ +o5oW\xb1V\x14K.\x7f\xa5\x08`\xb7\xd7I\ +\xe1\x00\xde\x83\x05\x15N\xf6\x0c>\xf1@bZ\xec0\ +M0&\x83@`d\x8c\x83k\x02%\x8d\x1b\xd4/\ +Q\x18\xa3\xc7\x18!`\xbc\xaa\xda\xe937\x96\xc8\x1e\ +\xc1o3\x09I\xd1\x80@6%\xcd\xe91\x85_e\ +\xc4\x85\xdc*Z.\x04p\x91\x0f2\x12z\xb2\x05k\ +\x1a\x9bF\x1c&=6\xae$F\x8e\xf7\x18\x06\x05X\ +\xf6\xdc\xbc\x89\x1e\x90\x9b(f>@\xe1Tk\xc0\xd6\ +e\xc5\x06X\xa7Ho\x92\x22\xef\xa5\x96Z\xad9\x96\ +\xd5R\x0b\x18J\xd0}q\xfb]\xd0S\xc8\x89)\xfa\ +\xe1\x7f\xb1I\x5c\x8au[\xea\xa8\xcf\x8c\xb8\x22\x94\x0d\ +2\x8ak\x10\xc9\xe3\xdev\x09l\x1fEgM\xff\x93\ +\xb9\x8f\x0c+\xa2&\x934Kj\x90\x14\x99\xf1\x0f\xee\ +eh\x8cug\xa4\xc5U\xa2n\xf2\xa2\x82\xe8\xaa=\ +\x9f+\x1e(\x84\x81\xb6$\xe9]\x08\x1f\xf1\x86\x84\xb5\ +\x83\xbdYa\xd1\xb3\xa5Q\xe1\xbbp\xa1\x97v7\xa1\ +\x89\xe4>\xc6\xac{k\xf4\xfd3\xdeh\x0a\xb5\x01o\ +\x0dY\xab\x19\xb9\x9a\x91\xee\x87\xeaL\xeb\x84\xa5i;\ +\xebl[\x89\xc0\xed\x8d\xf4(\xd8\xdf\xc2\xbb\xbc\xa6\x84\ +\xbf\xfa\xfe\x84\xaa\xb5\xc9Mg\xb5\x0bV\x1a\x0c?\x18\ +9\xce\xc4 \x112\xe2\xb8X1\xf0\xc2H\xdb\x81\x19\ +{J\x02\x1c\xb5usK\xb2\xccp1q\xb3M\xbb\ +\x9b\xbe\x9c\x92\x0cW\xbd\x96\x96\x12s\xe0\x1a\x86\xcb\xab\ +\xb61|\x1f#hF\xcc?\x15\x8b\xc1Y|\xd8\xdc\ +\xdf\x1d\xc3b\xe5\x88\xab\x08\x06\x98\x87\xfe\x9e\x1b\x8a\xd8\ +\x0c\x80\x01\x03|\xc7=\xaf\xd8\xb3+Z\xd7@u\xee\ ++K\xbb\xc7\x09 \xd4\xe5>1\xfe\xa4\xea`\x13\xca\ +\xb6\x89\xf5\x87i\x11\x95@'\x00i\x91\xb6G\xae+\ +\x10\x04\xd5\x9arAK&m\xc7\x92b\x8f\x5c\xee\x9f\ +\x89\x07\x08\xb0h\xf5l\x95%\xab\xa2#`+\x01\xc2\ +`\x1a(\xd3DB\x9e\x16\x88\x86=\xd0\xe4\x18\x1aZ\ +\xe2\x14\x0c\x16.\x0b\x90G.\xc1q\x97z\x83\x12\xe1\ +82@Fj!}[&6h\x919l\x0el\ +$f\x0f\x89\x0d\xc47\xe4r\x00\xebF\x11]\x8e\x22\ +c\x89m\xfc\xc0\xd05N\x0d\x22/zB_\x9am\ +\xf0\x02b\xbd\xc5\xa0\x15\xce\xf6\xc3\xf0\xa6\xaf\xee*\x06\ +=\x9d\xce\xc1\xc8,\x00j]\xc8\xca\xc8\xe4X\x9b%\ +.V&\xc7X\xad\xb6\x95&s\x05\xe8\xcc\xca\xa4\x82\ +\xeb\xe6\xcfss[\xad\x01\x89\xb5\x81\xcc\x8bT_\xaa\ +&7O\x9e\x9f\x04e\xdbE\x0c\xc0w_N\xce\xa4\ +h9b\xc3\x02Q#i\x0d\xec\x17\xb7\x92\xae\x8a>\ +\x98\xe0\x09\x9a\x87\xdd&n\xa8| \xbd)<\x1f4\ +\x95\xbbHZ\x9a\x1f\xb9Z\xd8\xddw\x83\x84!\x9eV\ +\xcc\xfd1\x16\x228\xa0H\xf7\x91\xa4[\x8c\x0fx\x9f\ +`U\xe2\x03\x19\xcb\x8a\x04\xb0\xd1t\xe4\xb4\x0d\xb09\ +\x91\xde\xb9&\xb9\x9aL\xb9%\xa9G\x83Eq6\xb4\ +HM\x1fz\x03\xd2'\xe1\xd7\xc5\x5c\xdf\xaa\x0bho\ +\xba\xc0\x10\x80\xc9\xc4\x13\xf7\xd21\xednDU\x808oD\xa1\xd7\xc1\x84i\x8f\ +\x1a\xb2s\xa4C\x81\xd5\xb9\xcd\xfd\xb3\xbc%\x83\xeb@\ +\xb4J_Ks\xe7(R\x5c\xac\xe8\x09\x13\x09\x02\xaa\ +\xd8N\xc2L\x22\x02\x5c\x10\xca\xd4\xf2\x84^\xb4@\xb4\ +\x5c\xf4\x94\xb0\xb3T\x05\xa6\x03\xadD\x91>;pV\ +N\xf0\xb7J5J\x8c\x02\xd0\xa5A\x00\xf9X\xdf\x8d\ +Zo67\xda\x0cx\xa1\x0be.a\xdd\xfc\x00_\ +\x96\xbb\xa5\xe5\x8cWx\x01\x89\xf8w\xf2\xe2\x88\xfa\xa5\ +2\x84\x85\xe8t\xb2\x8axl3~NS\xe8\xc1\x8a\ +\x15<\xf3\x0c\xad\x09\x97\xd7\x94\xc2J\xfbo\xed\xd4`\ +\x84 q\xd5\xbd\x18\x94\x09\x5c1B\x7f':7R\ +\xa5h\x10h\x19\x01|\x081Jn\x9f)\xf7\xd0\x22\ +\xd3\xae%f\x10\x14\xb7-(\x81\x0fk\x84\xb5\x99\xac\ +\x0f\xa1`j\xce\x8b\xb1;`\xa0\x93_\x8byn\xd1\ +\xb0H\xcb\x9b\xabh\xf2\x22+b\xb5\xb4Z\xe8\xc9Y\ +\x18/\xf3e\x1b\xa4\x12\x5cm-%\xb8N-\xf5\xc7\ +\xe8\xa1\x10X\xff\x10\xf7m5\x89_k\xc4 O\xcd\ +~\xc5\x89\xc7{,\xda\x0e\xb1(\x5c\xab6+\xd6\xc0\ +x3M)\xa5\xad\xc1\xa2\xb6\xcb^\x08\x8a\xb0\x15\xe2\ +Q\x9b\xd6d\xeaIb\xee\x22\x91;QPFFC\ +\xd8\x9f|J\x9e\x1a\xd6\x09c\xd2xA<\x9a\xc0y\ +B\x87I\xe0\xde\x09\x87\xba$Z\xa6\xcaV\xa6\x86{\ +\xbb\xe0\x12\x15\x13\x87A\xd9\xf9\x8e\xa9\xc9\xec\x81P,\ +\x06\xd3\xa2\xd8,\xad\x83\x9aq4V8\x17\xf1ym\ +\x80\x83*\xe1EX\xa5\xa9\x11\xac@:\xc4\x99\xa1\xa0\ +Bxo\x84\xc9hk\x1c\xbf' \xa9\x0a\x08\x0d+\ +\x02\x08!\xa8\xb0Qo\x83\xed\xe57\xadA\xe0#n\ +/\x8e\xb6\x05\x08\xb2>\xa5\xe1\xf8\x1c\x18\xfab4B\ +\x8aV\x81\xa8\xd3\xa2\x968\xb7\x08\xbcl\x9e\x11W\x8e\ +=\x92\x16]\x05\xc4U\x1b\x8ebQ\xc1\x8a\xdf3\xc0\ +\xc8\xb4H\xaaR\xc8\xb4Vx\x035/*P\xf0\xc0\ +\x0d-H\x85\x12\xc3\xf2\xf5\x86\xe0\x9d\xe9\xb6e\x0e\x02\ +i\xbe\xac\xf2R-\xf0\x15\xaa\x22}\x00\x9f\xe5\x1b6\ +\x14\x806\xda[rA\x9e0;\x023\xb9\x13\x0b\xf2\ +\xb1X\xc0\xd7\x92i\xfbc\xc129\xe6e\xd6\x95\x89\ +.9\x17\x888:p\x81\x17*!\x9f\x08\x08\x8eK\ +\xa2'{\xfaNA\x00a\xfb\xd5\x10\xa8\xbe\xfd\xa2$\ +\xaf5\xf7\xf8 \xe2\xf0\x8a\x17y$\xd3\xc9]\x91\xb7Q\x8c\xce\xf4m.\x83\ +\xa8\xb3F\xd6\x93\xe9\xea\xd7\xf678E\xa4\xb2\xfd\xb1\ +a3\x11NE\xc6u\xa2\x8c\xc5\xbdXV\xb4h[\ +\x1aS\xdc>\xb7W\x98\x164;\x11pn\xe6\x85\xda\ +%\xb9\xa5\xeb\xa5\xea\xfc\xaf\x02\x1f\xc5D\xae4\x83n\ +\xa7\x06\x9dG\x11\x07f}\x94B.l\xc2\xae\x1a\x12\ +\x89t\xc3q\xe2-=\x8aD<\xb74\xad\x12\x0b)\ +\x94X\xe3\x96z\xb2\xe0\xa6\xb4X\x8e\xdc\xdc\x84$\xdb\ +\xe7\xdc\xb8\x0b\xf6\x89\xb5\x0b-:\x8c-Z\x15\x22\x9d\ +\xc2C\x1a\x9av=\x95)\x94\xa9\xc1r@'\x04\x12\ +\xa3H\xd2gL\xd6_\x87\x94T\xc91[,\xd1\x97\ +YU!DB,\x17\x81R2\x95 \xf7L\xf0#\ +f50\x95%:\x81\x8c\x0cCU\xcb\xf2\x9c\xfe9\ +\xd0x\x1a\x92\x8c^\xd45\x84Q\x08G\xe4u\xce\xb3\ +\xa9<\xf1\x16\x1d\xe5\xdb\x02\x01\x05t#\xe7Q:G\ +\xd8#\xae\x8c&\x22Bg\x8cX\xef\x22\xaa;\xaa\x8a\ +\xa5\xa19\xcc\x86Y\x0f:\x0b/\xa8\x12\xad\x9bZ\xac\ +\x8d\xb3\xb6\x11`\xd4TVe\xaeX(\xc9\x90Ll\ +>K\x5ch\xba\xab \x18\xcbE\x1a\x90\x14\xfa\xc3\xea\ +\x09\xa9\xf6\x06\xe9LE\x80E\x04FP\xbc\xe4\x1b\xec\ +\xd2\xd3\x0a\x1ed\x84\xc1\xc8\x11r\xc3\x98\xb5#\xef\xe9\ +\xa6V 1Q\x15\x02\x02Zeq\x0c$@\x98\xab\ +,\x8d\x0eMV\x97\x89\xdf\xad\xed\xe1\x9d\xb7%w\x94\ +\x1a\xdd\xcb;}%u35\xa9\x99J3\xb1\xdc\x06\ +N\xeeB\x18\xadW.\xa9\xa6\x09\xa6\xba\xb6\xd4\xcb\xaa\ +\xc17\xcf\xd0G\x06\xbe\xd5\xf94\xf0Mq\xc0l{\ +\xcb\x13\x97k\xbcx\xb9aN\x8a\xee\xaf\xb3XU\xf8\ +\xd3\x1b\xcd)i\x82YT\x82\x8d\xcd=\x90\xb5cy\ +\xa0\xe0\xbe\x1a\x94_\xa7\xe4-\x9dB\x0bDYv\xa6\ +\xf5/B\xfd\xd0L\xa6g\xb9\x98\x8e\x92\xcel\x9b>\ +{\xa3%7\xd2\x05Wz\xa2\x04\x0b\x5c\x15\xb7\x19Q\ +=N\xb9,\xc3t\x97\x8f-2N\xf0>V\x90\x84\ +\xaf9\xb1K\x8e\xe6x\x5c\xa4\xb8\xf6\xe7\x00U\xe9 \ +\xa8\x8a\x0bL\x95\xeaO\x01U\x87\xac\xf9\x1e\xa8\x0a\xc7\ +@U9\x0a\xaa\xd2\x12T\xe5_\x0c\xa8\x8aGAU\ +f\x85v\xdc\xdf\xc1\x995\xcd\xfb\xaciY\xb2\xa6\xe9\ +c\xd6T\xbaW\xed\x13\xac\xa9\xaf\x13m\xdaX\xd3\xc6\ +|\x97\xb4\xa4M\xdd\x925\xad;\xaci\xed\xaci\xfd\ +x\x9b\xed\xc4\x9a\xe6\x995UE\xc1\xa7\xb1\xa6q\x87\ +5\xad\x8d5\xad\x13x\x98YS_;\x9bX\xa7\xd6\ +Q\xde\xf4#(O\x8at\xc9\x9b\x86\x03\xbci\x12o\ +\x9a\xa7Fc\x9b\x17\xb4i\x11m\x1a\x16\xb4\xa9\x8c\xb8\ +5\x942\x97\x1ao\xea\x97\xc4\xa9\x1f\x8aHSW\x97\ +\xaciY\xb2\xa6\xe5\x00kZ\x97\xaci\x9cY\xd3\x13\ +\x0b\xedQ\x5c[\x8a'jt\ +\x04(3m+\xe7\xd2\x8e\xdf\xd0\xb7\x96\xb95\x118\ +\x0c\xcf\x8b\xe0T\x8e\xbd\xd1k\x96T\xc8\xe4\xe4\xa1\x8d\ +\x90\x98\xd0\x0aU\xbb7N,\x89G\x11\xb3oYc\ +\x1d\xbc\xdcz\xf6\x1e\xe5\x05;Gy\xd4\xf0m\x94\x17\ +\xff\xde(\xcf\x1e\x0c\xf3\xf26\xcck8\xb0\xd7\xc6\xa4\ +\xfeY1^\x9c\x81H\xde\x8f\xf1\xbc\xfd)1\xde\xc1\ +\xca\x98\x9d\x18//*c\xca\xe1\xc2\x98\x8f\x89\xcf\xea\ +\x8e\x04x\xbd0F5\xba%/\x03\xbc\xb2\x0d\xf0\x9e\ ++\x8c\xc9n[\x18\xd3\x22\xbc\x1fS\x19S\x971^\ +U\x8cgw\x82\xbcr8\xc6\x0b'\x16\xd9\xe39w\ + c\xca\xde\xae\xc8\xda'e6/ev\xa7\x9e\xcb\ +-dv\xa7\x9e+~23\x91\x17\x05]Mf'\ +j\x22\xed0\x13?\xbb\xd4\x1eg&\xf2\x92\x99(O\ +\x10\x13\x7f\xaf\xdc\xa6cr\x1b\x96r\xeb>An\xfd\ +\x8f\x97\xdb_\x82\xd8\x1ee\xff\x93\x13\x16; \xb6s\ +\xd1\xdc\xba/\xf2Z\xa5\xfa\xb3_\xa2\x03s*\xb1U\ +\xa4\xef}\xdb\xd5\xde$\x0a\x93\x8c\xea7,V\xa2\xa5\ +\xc3\xd4\x0a\xf4\xfa\xa1\x09Z\x9a*\xc4\x5c\xdf}\xc6\xc8\ +\xc2\xf7:\x05\xa0Z(\xa6\x81H\x96y1\xdann\ +\x15b;\x95\x82\x92\xd0\xa6Coq\x1a\xd9\xa6Vx\ +\xde\xaa\xa6\xe4L\xc84\xd4\xf6\x11s\x0e\xaa\x22\xe0\xb9\ +U\x9b\xbbdY\xc0\xfd\xbe\x0e\xa7\xdd\x95|\x14\xef\xe7\ +P\xa9T{\xbb\x12\xa70;?\x1ff\xfb\x83Du\ +K+2\x83\xba%\xaa\xcb\x93DuH;qv\xf8\ +X5\xc3G\xaa\x19\x9e\x8d\xb3\x93h\xc0Z\x7f\x5c\x9c\ +\xdd\x99j\xccsf\xaaM\xfd\xe7\xc7\xd9\xf98S]\ +\x95\xef\x0d\x98\x04\xa3\x9bC\xc9l\xdf\xa0\xa1\x97\xeda\ +\x04\xaeT\xb6\x92\xc3\x8e\xd9\xc5\x9c\x5c\xff\xdcb\xb9\xc3\ +\xb9\xec\xb2\xcdeg\xe5\xb2\xdb\x91\x88)\x95\xfdd&\ +;\xfd\x1c\x99\xec\xb8\xccd\xd7m&\x9b\x87\xf7\x16\xb9\ +l\xbb\xcce\xdb\xfd\x5cvv\xcf\xc9\xd4?J)\x8f\ +\x82\xd2jTF\xce#\x89%\xb4\xfax\xdf\x8a\xd2\xd3\ +\x5c\xe6\x98\xc5<\xac]\xa5\xdb\x99Z\xb6W\xe3\xaf%\ +\x0b\x0c\xa3\x98\x14\xf3\xca\x8c3R\xf6:s\x10T\xa9\ +at\xf03t\xae\xb1\xb9~\xb5|\x95\xcdlQ\x14\ +\x7f\x03Cz\xde\x92\x1e-\xa8\x09\xd5\xa6C\x1b\xf4$sK\ +\xb1\xb0\xed\x89O\xd6\x81\x90rm\xf5\xbc\x855{<\ +\x8a\xe4\x8d\xf8\xed\xc4\xf2V\x9d\x8e\xe1\x12D\xa5:\xe9\ +\x22\x04vX\x94\x1db\xab\x88\xf5,\xed\xe0J\xe1\xcb\ +\xe4V\xb4\x18\xa1\x13\xe2\xa7\xae\xd6\xcc\xc79U\x12\xf4\ +\xf1\x90\xb1?t\xe6%\xf43/;G^tdd\ +{\xe4\x85M\x0a@\x9d\x8e\xbcx\x1dy\xb1\x8b#/\ +!\xef\x1fy\xf1:\xf2\x92\xa6\x06\x8b\x8f\x9d\x9b\xce\xbc\ +\x08\x04!\x82R\x00\xa9\xeau\x04K:\xf5\x92vN\ +\xbd\xe4\xed\xa9\x97\xf0#O\xbd\x94\xddS/u:\xf5\ +\xe2vN\xbd\x94\xa1\xe5\xe2;\xcc]\x9cz\xc9\x07O\ +\xbd\xf8\x9dS/\xf5\xf9S/\xa6\xce\xe2\xaec/~\ +{\xec\xc5\xf4\x15\x9f\x8e\xbd\xc4\xc5\xb1\x97~|\xc8\xcf\ +\xf5<\x87\x8e\xbd\xa4\xa7\x8e\xbd\xd4\xc5\xb1\x97\xd4\xd1N\ +l|\xc8\xf6\xd8\x8b\xfb\xe8\xd8\x0b\x7f\xd8j>\xf6\x92\ +\xf8@\x16\x9e\xf0\x04\xcc\xc7\xe7^x\x0e\xb4\x9f{9\ +\xb5_<\xce?\xd7\xa0\x80\xbdzV\x1a\x5cl\x97q\ +\x8f\x7fv;\xfc\xb3;\xcc?\xfb\x05\xff\x9c'\xf6\xd9\ +~\xc4>\xa7\x1f\xcf>\xbf\xd3\xd6\xb7[\xf7\xe8\xe70\ +\xd3\xcf<\x08L8*\xf6Y\xc7\x97lg\x9f\xe9\x8e\ +\xdb\x99C\xd2b\x22\xfbH8\x93\x9c\xd2\xb1\x9f\xde\xd8\ +g\x9f\xf3\x82}\x8e\xf2|\x5c\xa5\xd3nY9\x86F\ +\xa3\xc5\x9a\xc1o\xfd\x0ae>\x09\xca\xfc\x09\x0bf\xcb\ +?\x0f\xc8\x94c\xd04:\xabCr\xe4y[\xce\xf3\ +@\xc9\xd7O\xaa\xf82\xf9@\xc5Wt\xcb\x8a\xaf\xf0\ +\xd3K\xbe\xdcN\xc9W}\xb2\xe4\xcb.K\xbe\xaa\x9f\ +K\xbe\xda9\xdd\xd4K\xbe\xdcn\xc9\x97;T\xf2\x15\ +\x8f\x94|\xa5\xbd\x92\xaf\xb9\xe6\xcb\x1e*\xfa\xd2yH\ +\xe67\xb3\x0e\xfc\xb6\x0c\xbfj\xbe\xdc\xd4\xda\xa9\xf9Z\ +V|\x95\xa7*\xbe\xc2\xc4h\xf3\xfd\xa6*@\xaes\ +\x8b\xd6\xc4\xf6\x9a/\xbf\xa8\xf9\x8a?\xba\xe6\xcb/j\ +\xbe\xda\x89\xf8^\xf4\x95\xd2\xa2\xea\xabn\xab\xbe\x04\xd0\ +\xd6\xfdej\x9dX\xec\x8f\xe1\xf7\xe8\xf9#,~\x1f\ +g\x85O\x0c\xaa\x9f\xad\xfe\xca;\xb9\xeb\xf2T\xee\xfa\ +xP\xfd4\xdf\xf5lP\xfd\xd3\xca\xbfZP]~\ +1Auy\x1e*\xffy\xf0U\xc1\xc1*R\xfe\x13\ +-*LO\xa1\x19\xbeR\xa6\xaf\xfd\xcaV\x8cJ3\ +]a\xc7G\xfd\xe4\x1a\x11 \xa1p\xcc\x0d^&\xb9\ +\x8c\xde\x0ae6\x12\xb0<\xb6N\xa7\xf2\x89T\xad\x04\ +:\xb5W\x10\xde~\x09\x22\xe7\x0e\x0fRv;\ +5\xe1\x85\xfeD\x10!/:vA\x82\x8d\xfe)\x98\ +@|\xb5\xc5\x09\xb1.q\x82\xf1;H!\xd9%T\ +`\xa6a*\x107\xbbx!,\x00\x03\xcb(\xb7\x88\ +\xc1\xe4]\xc8\x10v1C8\x00\x1aB\x5cV\x8a\x1b\ +\xfd2\x8b\x13l\xf0\x82a\xb6\x01\x87\x14ZC\xc8!\ +\xfa\x19:\xc4%v\x88\x9a\x90\xb1\x0d<\xc4\x86\x1e|\ +C\x0f\xa1\xad\xba\xd0I\xad\xac'\x98_\xcb\xe6\x89U\ +\xc5}\xcaO6\x04\x86\x8c\xc1\xd5f\xdc\xb6\xb5S\xfc\ +\x99\x9cE\xf4\xda~\xa9e\x1b\xbf\xb6\xf6\x81\x086\x91\ +\xf7\xd8\xc6\xb0\xa6\xfd\xc6B\x8bc\xcbG\x81l\xa8\xfb\ +\x91l}\x22\x92\x0d\x8b:\xaa\xca_p\xd0/\x22\xac\ +\xa7.x\xb3b:[3G\xb2S\x1dU\xf2\xcbP\ +6ocY\xf9\xb49\x98\x8d\xad\x1eFN\xb4\xb5\x02\ +\x0d\x9ci\xc1\x98\xc2Y\xfdT\x8a+-\x9e\xd5\xef\xa0\ +\xb6\xb5;\xf1N\x1e\xaf/\x882\xdb{Fo\xda\x1b\ +\xa8\xd7\xd2\xe85\xd3\xb3\xb5z\xfe\xa7X\xbd\xfc\xb4\xd5\ +\x8b\xcfX\xbdr\xd0\xea\x1d\x0c\x88\x0e\x98\xbd\xb4k\xf6\ +\xd2\x93f/\xed\x9a\xbd]\xabW\xf6\xad^\xde\xb7z\ +\xe5c\xab\x97\x7f\x99V\xcf\xfdj\xf5\xf6t\xe5\x13\x0a\ +\x1b\x88\x97\x99S\x8dU\xbf!\xd0~eJ\xb4\xa4\xd8\ +\x9eE\xeaC\x85\x08L~\xe4E\x9b\xe9\x8f0\xa5?\ +\x8a\xd2\x1f\xaa\x1c\xdd&@\x82k\xc7\x9eB\xec)\x90\ +\xf8\x5c\x0e$OI\x90D\x1e\x15J\xa1,\x88+\xcb\ +4\x88W5\x99\xebi\x10\x11\x0d\xd8U\xe5>\xd0\xe2\ +\xcf\xfd\xd6\xb9\xb5H\x85\xd4\xe9'\xc9\xb6\xa9\x10\xe1v\ +\x84\x8c\x86A\xf8S\xc9\x10\x9f\x97\xd9\x10\xb5Z\x81\xe6\ +n:\x845\xde\xcb|\x88[\xe6C\xca^B\xc4\xf8\ +\xbd\x94H\xd8\xe6D\xfc2)\x92\xe32+\xe2\xeb\x22\ +-\x12\x16\x89\x91\xf6\xdd\x9c\x1di\xcdE\x8a\x84Bo\ +Ic.s$\x98z\xdb\xf7\x13K\xe1\xd1\xc0\x82\xc7\ +\x13C\xf9GZ\xec\x7f\x06N\xfdy\x0cv\xfe\x7fd\ +\xb0\x7f\x85\xa9\xfb\xff\xa3\x0cs4\xa4K9\x11\xa7\x1e\ +\x8a\x80\x13\x7f/\xa9.\x22\xe0~\xd1\xa9\xc7\xbc\xc5\xd6\ +_\xbcx\xad\xff\xc5\x0e\xff\xfa\x82\xff\xeb\xa6/?\xfb\ +?\x03\xf8,\xc4\ +\x00\x00\x15\x98\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ +\x0a \x0a \ +\x0a <\ +path\x0a d=\ +\x22M 2613.9,53.980\ +5 C 2550.07,23.1\ +055 2466.43,7.66\ +797 2363.38,7.66\ +797 c -134.33,0 \ +-240.09,39.42583\ + -317.06,118.484\ +03 -77.18,79.055\ + -115.55,184.395\ + -115.55,316.016\ + 0,140.172 43.18\ +,253.855 129.74,\ +341.047 86.57,87\ +.191 198.99,130.\ +785 337.08,130.7\ +85 85.52,0 157.7\ +,-10.844 216.31,\ +-32.535 V 691.43\ +4 c -58.61,35.04\ +6 -125.36,52.562\ + -200.45,52.562 \ +-82.19,0 -148.73\ +,-25.863 -199.21\ +,-77.594 -50.48,\ +-51.73 -75.72,-1\ +21.816 -75.72,-2\ +10.261 0,-84.688\ + 23.78,-152.27 7\ +1.55,-202.539 47\ +.56,-50.274 111.\ +8,-75.512 192.53\ +,-75.512 76.97,0\ + 147.47,18.773 2\ +11.3,56.316 V 53\ +.9805\x22\x0a \ +style=\x22fill:#231\ +f20;fill-opacity\ +:1;fill-rule:eve\ +nodd;stroke:none\ +\x22\x0a id=\x22p\ +ath20\x22 />\x0a \ +\x0a \ +\x0a \ + \x0a\ + \x0a \x0a\ +\x0a\ +" + +qt_resource_name = b"\ +\x00\x05\ +\x00o\xa6S\ +\x00i\ +\x00c\x00o\x00n\x00s\ +\x00\x04\ +\x00\x07+\xb3\ +\x00l\ +\x00e\x00d\x00s\ +\x00\x0a\ +\x05\xb62\xc2\ +\x00c\ +\x00f\x00g\x00_\x00e\x00d\x00i\x00t\x00o\x00r\ +\x00\x0f\ +\x00\xe2\x09\xa7\ +\x00a\ +\x00d\x00d\x00_\x00c\x00o\x00m\x00m\x00e\x00n\x00t\x00.\x00p\x00n\x00g\ +\x00\x07\ +\x04\xcaW\xa7\ +\x00n\ +\x00e\x00w\x00.\x00p\x00n\x00g\ +\x00\x0a\ +\x0c\xad\x0f\x07\ +\x00d\ +\x00e\x00l\x00e\x00t\x00e\x00.\x00p\x00n\x00g\ +\x00\x0d\ +\x07%\xc7\x07\ +\x00i\ +\x00n\x00t\x00e\x00r\x00f\x00a\x00c\x00e\x00.\x00p\x00n\x00g\ +\x00\x0d\ +\x0f*\x09\xc7\ +\x00d\ +\x00u\x00p\x00l\x00i\x00c\x00a\x00t\x00e\x00.\x00p\x00n\x00g\ +\x00\x0a\ +\x0c*\xdc'\ +\x00m\ +\x00o\x00d\x00u\x00l\x00e\x00.\x00p\x00n\x00g\ +\x00\x0d\ +\x07\xd4Q\x07\ +\x00p\ +\x00a\x00r\x00a\x00m\x00e\x00t\x00e\x00r\x00.\x00p\x00n\x00g\ +\x00\x11\ +\x06\xbfoG\ +\x00a\ +\x00d\x00d\x00_\x00i\x00n\x00t\x00e\x00r\x00f\x00a\x00c\x00e\x00.\x00p\x00n\x00g\ +\ +\x00\x0e\ +\x01l\xc5\xe7\ +\x00a\ +\x00d\x00d\x00_\x00m\x00o\x00d\x00u\x00l\x00e\x00.\x00p\x00n\x00g\ +\x00\x11\ +\x06K\xf9G\ +\x00a\ +\x00d\x00d\x00_\x00p\x00a\x00r\x00a\x00m\x00e\x00t\x00e\x00r\x00.\x00p\x00n\x00g\ +\ +\x00\x08\ +\x08\xc8Xg\ +\x00s\ +\x00a\x00v\x00e\x00.\x00p\x00n\x00g\ +\x00\x08\ +\x06\xc1Y\x87\ +\x00o\ +\x00p\x00e\x00n\x00.\x00p\x00n\x00g\ +\x00\x0c\ +\x07J\x9a\xc7\ +\x00p\ +\x00r\x00o\x00p\x00e\x00r\x00t\x00y\x00.\x00p\x00n\x00g\ +\x00\x09\ +\x07\xbc\x8f\xc7\ +\x00e\ +\x00m\x00p\x00t\x00y\x00.\x00p\x00n\x00g\ +\x00\x0b\ +\x0c\x83\x9f'\ +\x00c\ +\x00o\x00m\x00m\x00e\x00n\x00t\x00.\x00p\x00n\x00g\ +\x00\x08\ +\x0b\x07Z'\ +\x00e\ +\x00d\x00i\x00t\x00.\x00p\x00n\x00g\ +\x00\x10\ +\x05SpG\ +\x00a\ +\x00d\x00d\x00_\x00p\x00r\x00o\x00p\x00e\x00r\x00t\x00y\x00.\x00p\x00n\x00g\ +\x00\x05\ +\x00j+\x82\ +\x00c\ +\x00l\x00e\x00a\x00r\ +\x00\x03\ +\x00\x00x\xb4\ +\x00r\ +\x00e\x00d\ +\x00\x06\ +\x07\xfc3g\ +\x00y\ +\x00e\x00l\x00l\x00o\x00w\ +\x00\x07\ +\x0cRV>\ +\x00u\ +\x00n\x00k\x00n\x00o\x00w\x00n\ +\x00\x05\ +\x00n\x8b\xbe\ +\x00g\ +\x00r\x00e\x00e\x00n\ +\x00\x05\ +\x00}\xf0\xa5\ +\x00w\ +\x00h\x00i\x00t\x00e\ +\x00\x06\ +\x07h\x84\xd5\ +\x00o\ +\x00r\x00a\x00n\x00g\x00e\ +\x00\x04\ +\x00\x06\xe8\x89\ +\x00g\ +\x00r\x00a\x00y\ +\x00\x05\ +\x00{\x88\x98\ +\x00t\ +\x00r\x00a\x00s\x00h\ +\x00\x07\ +\x0aeKd\ +\x00c\ +\x00o\x00n\x00n\x00e\x00c\x00t\ +\x00\x07\ +\x0a\xca\x80\xf3\ +\x00d\ +\x00e\x00t\x00a\x00i\x00l\x00s\ +\x00\x04\ +\x00\x07\xab`\ +\x00s\ +\x00t\x00o\x00p\ +\x00\x0d\ +\x0d'\xa7\xa5\ +\x00l\ +\x00o\x00g\x00o\x00_\x00s\x00u\x00b\x00t\x00i\x00t\x00l\x00e\ +\x00\x06\ +\x07\xab\x94\x04\ +\x00s\ +\x00u\x00b\x00m\x00i\x00t\ +\x00\x08\ +\x03g9D\ +\x00p\ +\x00l\x00o\x00t\x00-\x00a\x00d\x00d\ +\x00\x13\ +\x01-\xb2\x94\ +\x00l\ +\x00o\x00g\x00o\x00_\x00s\x00u\x00b\x00t\x00i\x00t\x00l\x00e\x00_\x00l\x00i\x00g\ +\x00h\x00t\ +\x00\x04\ +\x00\x07sd\ +\x00p\ +\x00l\x00o\x00t\ +\x00\x0f\ +\x03\x17\xd9\xe5\ +\x00l\ +\x00o\x00g\x00o\x00_\x00r\x00i\x00g\x00h\x00t\x00t\x00i\x00t\x00l\x00e\ +\x00\x04\ +\x00\x075\xdf\ +\x00l\ +\x00o\x00g\x00o\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x10\x00\x02\x00\x00\x00\x08\x00\x00\x00 \ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x15\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x008\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01,\x00\x00\x00\x00\x00\x01\x00\x00\x9bI\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00,\xba\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x01\x5c\x85\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01N\x00\x00\x00\x00\x00\x01\x00\x00\xa9\xb9\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x83\xa0\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\xc5<\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00Gz\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00\xce\x02\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\xc0\x00\x01\x00\x00\x00\x01\x00\x01\x11\xd6\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00q\xfa\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01v\x00\x00\x00\x00\x00\x01\x00\x00\xbc\xec\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x01Ij\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00fq\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x01\xd8\x00\x00\x00\x00\x00\x01\x00\x01\x12\x91\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00p\x00\x00\x00\x00\x00\x01\x00\x005\xfe\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00]\xc9\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x02j\x0f\ +\x00\x00\x01\x86\xdfu\x02\x17\ +\x00\x00\x03l\x00\x00\x00\x00\x00\x01\x00\x02I\x1e\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x02\x06\xe6\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x01\xfe\xab\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x03@\x00\x01\x00\x00\x00\x01\x00\x02+\xf4\ +\x00\x00\x01\x86\xdf\x9f\x5c\xd6\ +\x00\x00\x03z\x00\x01\x00\x00\x00\x01\x00\x02KE\ +\x00\x00\x01\x86\xdfw%\x7f\ +\x00\x00\x03*\x00\x00\x00\x00\x00\x01\x00\x02)b\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x02&\xd7\ +\x00\x00\x01\x86\xca\x96\x09!\ +\x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x02\x017\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xd6\x00\x00\x00\x00\x00\x01\x00\x02\x04&\ +\x00\x00\x01\x86\xdbu[z\ +\x00\x00\x02\xf8\x00\x01\x00\x00\x00\x01\x00\x02\x09\xc3\ +\x00\x00\x01\x86\xdfw\x8fl\ +\x00\x00\x02@\x00\x00\x00\x00\x00\x01\x00\x01\x96\xda\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\xa4\x00\x00\x00\x00\x00\x01\x00\x01\xf8\xb7\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x020\x00\x00\x00\x00\x00\x01\x00\x01iW\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x01\xca\x8b\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x01\xd0\xa4\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02\x92\x00\x00\x00\x00\x00\x01\x00\x01\xf2\xa5\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02L\x00\x00\x00\x00\x00\x01\x00\x01\x9c\xaf\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +\x00\x00\x02^\x00\x00\x00\x00\x00\x01\x00\x01\xa1\xda\ +\x00\x00\x01\x86\xca\x96\x09\x22\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/frappy/gui/tabwidget.py b/frappy/gui/tabwidget.py new file mode 100644 index 0000000..a270c72 --- /dev/null +++ b/frappy/gui/tabwidget.py @@ -0,0 +1,557 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# NICOS, the Networked Instrument Control System of the MLZ +# Copyright (c) 2009-2023 by the NICOS contributors (see AUTHORS) +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Jens Krüger +# +# ***************************************************************************** + +"""Detachable TabWidget, taken from NICOS GUI TearOffTabBar.""" + +from frappy.gui.qt import QApplication, QCursor, QDrag, QEvent, QMainWindow, \ + QMimeData, QMouseEvent, QPixmap, QPoint, QPointF, QSize, QStyle, \ + QStyleOptionTab, QStylePainter, Qt, QTabBar, QTabWidget, QWidget, \ + pyqtSignal, pyqtSlot + +# def findTab(tab, w): +# widget = w +# while True: +# parent = widget.parent() +# if not parent: +# return False +# widget = parent +# if isinstance(widget, AuxiliarySubWindow) and tab == widget: +# return True +# return False +# +# +# def findTabIndex(tabwidget, w): +# for i in range(len(tabwidget)): +# if findTab(tabwidget.widget(i), w): +# return i +# return None + + +class TearOffTabBar(QTabBar): + + tabDetached = pyqtSignal(object, object) + tabMoved = pyqtSignal(object, object) + + def __init__(self, parent=None): + QTabBar.__init__(self, parent) + self.setAcceptDrops(True) + self.setElideMode(Qt.TextElideMode.ElideRight) + self.setSelectionBehaviorOnRemove(QTabBar.SelectionBehavior.SelectLeftTab) + self.setMovable(False) + self._dragInitiated = False + self._dragDroppedPos = QPoint() + self._dragStartPos = QPoint() + + def mousePressEvent(self, event): + if event.button() == Qt.MouseButton.LeftButton: + self._dragStartPos = event.pos() + self._dragInitiated = False + self._dragDroppedPos = QPoint() + QTabBar.mousePressEvent(self, event) + + def mouseMoveEvent(self, event): + if not event.buttons() & Qt.MouseButton.LeftButton: + return + if not self._dragStartPos.isNull() and \ + self.tabAt(self._dragStartPos) != -1 and \ + (event.pos() - self._dragStartPos).manhattanLength() \ + < QApplication.startDragDistance(): + self._dragInitiated = True + if (event.buttons() == Qt.MouseButton.LeftButton) and \ + self._dragInitiated and \ + not self.geometry().contains(event.pos()): + finishMoveEvent = QMouseEvent(QEvent.Type.MouseMove, + QPointF(event.pos()), + Qt.MouseButton.NoButton, + Qt.MouseButton.NoButton, + Qt.KeyboardModifier.NoModifier) + QTabBar.mouseMoveEvent(self, finishMoveEvent) + + drag = QDrag(self) + mimedata = QMimeData() + mimedata.setData('action', b'application/tab-detach') + drag.setMimeData(mimedata) + + pixmap = self.parentWidget().currentWidget().grab() + pixmap = pixmap.scaled(640, 480, Qt.AspectRatioMode.KeepAspectRatio) + drag.setPixmap(pixmap) + drag.setDragCursor(QPixmap(), Qt.DropAction.LinkAction) + + dragged = drag.exec(Qt.DropAction.MoveAction) + if dragged == Qt.DropAction.IgnoreAction: + # moved outside of tab widget + event.accept() + self.tabDetached.emit(self.tabAt(self._dragStartPos), + QCursor.pos()) + elif dragged == Qt.DropAction.MoveAction: + # moved inside of tab widget + if not self._dragDroppedPos.isNull(): + event.accept() + self.tabMoved.emit(self.tabAt(self._dragStartPos), + self.tabAt(self._dragDroppedPos)) + self._dragDroppedPos = QPoint() + else: + QTabBar.mouseMoveEvent(self, event) + + def dragEnterEvent(self, event): + mimedata = event.mimeData() + formats = mimedata.formats() + if 'action' in formats and \ + mimedata.data('action') == 'application/tab-detach': + event.acceptProposedAction() + QTabBar.dragEnterEvent(self, event) + + def dropEvent(self, event): + self._dragDroppedPos = event.pos() + event.acceptProposedAction() + QTabBar.dropEvent(self, event) + + +class LeftTabBar(TearOffTabBar): + def __init__(self, parent, text_padding): + TearOffTabBar.__init__(self, parent) + self.text_padding = text_padding + + def paintEvent(self, event): + painter = QStylePainter(self) + option = QStyleOptionTab() + + for index in range(self.count()): + self.initStyleOption(option, index) + tabRect = self.tabRect(index) + tabRect.moveLeft(10) + painter.drawControl(QStyle.ControlElement.CE_TabBarTabShape, option) + text = self.tabText(index) + painter.drawText(tabRect, Qt.AlignmentFlag.AlignVCenter | + Qt.TextFlag.TextDontClip | + Qt.TextFlag.TextShowMnemonic, text) + + def tabSizeHint(self, index): + fm = self.fontMetrics() + tabSize = fm.boundingRect( + self.tabText(index) or 'Ag').size() + QSize(*self.text_padding) + return tabSize + + +class TearOffTabWidget(QTabWidget): + """Tab widget with detachable tabs. + + Detached tabs will reattach when closed. + + Options: + + * ``position`` (default top) -- sets the position of the tab selector. + Choices are top or left. + * ``margins`` (default (0, 6, 0, 0)) -- sets the margin around the tab item. + * ``textpadding`` (default (20, 10)) -- sets the right padding and vertical + padding for the text in the tab label. + """ + + class TabWidgetStorage: + def __init__(self, index, widget, title, visible=True): + self.index = index + self.widget = widget + self.title = title + self.visible = visible + self.detached = None + + def setDetached(self, detached): + self.detached = detached + + def __repr__(self): + return f'index {self.index}, widget {self.widget!r}, title {self.title},' \ + f' visible {self.visible!r}, detached {self.detached!r}' + + def __init__(self, item, window, menuwindow, parent=None): + QTabWidget.__init__(self, parent) + self.menuwindow = menuwindow + # if item.options.get('position', 'top') == 'left': + # tabBar = LeftTabBar(self, item.options.get('textpadding', (20, 10))) + # self.setTabBar(tabBar) + # self.setTabPosition(QTabWidget.West) + # else: + # tabBar = TearOffTabBar(self) + # self.setTabBar(tabBar) + tabBar = TearOffTabBar(self) + self.setTabBar(tabBar) + + self.setMovable(False) + self.previousTabIdx = 0 + tabBar.tabDetached.connect(self.detachTab) + tabBar.tabMoved.connect(self.moveTab) + self.currentChanged.connect(self.tabChangedTab) + self.tabIdx = {} + # don't draw a frame around the tab contents + self.setStyleSheet('QTabWidget:tab:disabled{width:0;height:0;' + 'margin:0;padding:0;border:none}') + self.setDocumentMode(True) + # default: only keep margin at the top (below the tabs) + # margins = item.options.get('margins', (0, 6, 0, 0)) + # for entry in item.children: + # self.addPanel( + # AuxiliarySubWindow(entry[1:], window, menuwindow, self, + # margins), entry[0]) + + def moveTab(self, from_ind, to_ind): + w = self.widget(from_ind) + text = self.tabText(from_ind) + self.removeTab(from_ind) + self.insertTab(to_ind, w, text) + self.setCurrentIndex(to_ind) + + def _findFirstWindow(self, w): + widget = w + while True: + parent = widget.parent() + if not parent: + break + widget = parent + if isinstance(widget, QMainWindow): + break + return widget + + def _tabWidgetIndex(self, widget): + for i in range(self.tabBar().count()): + if self.widget(i) == widget: + return i + return -1 + + def tabInserted(self, index): + w = self.widget(index) + for i in self.tabIdx.values(): + if i.widget == w: + return + self.tabIdx[index] = self.TabWidgetStorage(index, self.widget(index), + self.tabText(index)) + + def _setPanelToolbars(self, panel, visible): + for tb in panel.getToolbars(): + tb.setVisible(visible) + + def _setPanelMenus(self, panel, visible): + for m in panel.getMenus(): + m.menuAction().setVisible(visible) + + # @pyqtSlot(QWidget, bool) + # def setWidgetVisibleSlot(self, widget, visible): + # w = self._findFirstWindow(widget) # get widget which is related to tab + # for i in self.tabIdx.values(): # search for it in the list of tabs + # if i.widget == w: # found + # if isinstance(widget, Panel): + # if not visible or (visible and self.currentWidget() == + # widget): + # self._setPanelToolbars(widget, visible) + # self._setPanelMenus(widget, visible) + # if visible: + # if not i.visible: + # newIndex = -1 + # for j in self.tabIdx.values(): + # if j.visible and j.index > i.index: + # cIdx = self._tabWidgetIndex(j.widget) + # if cIdx < i.index and cIdx != -1: + # newIndex = cIdx + # else: + # newIndex = i.index + # break + # self.insertTab(newIndex, i.widget, i.title) + # else: + # i.visible = False + # index = self._tabWidgetIndex(i.widget) + # self.removeTab(index) + + def _getPanel(self, widget): + panel = widget + if isinstance(widget, QMainWindow): # check for main window type + panel = widget.centralWidget() + if panel and panel.layout(): # check for layout + panel = panel.layout().itemAt(0).widget() + return panel + + def detachTab(self, index, point): + detachWindow = DetachedWindow(self.tabText(index).replace('&', ''), + self.parentWidget()) + w = self.widget(index) + for i in self.tabIdx.values(): + if i.widget == w: + detachWindow.tabIdx = self.tabIdx[i.index].index + self.tabIdx[i.index].detached = detachWindow + break + + detachWindow.closed.connect(self.attachTab) + + tearOffWidget = self.widget(index) + #panel = self._getPanel(tearOffWidget) + #if not isinstance(panel, QTabWidget): + # panel.setWidgetVisible.disconnect(self.setWidgetVisibleSlot) + # panel.setWidgetVisible.connect(detachWindow.setWidgetVisibleSlot) + tearOffWidget.setParent(detachWindow) + + if self.count() < 0: + self.setCurrentIndex(0) + + # self._moveMenuTools(tearOffWidget) + # self._moveActions(tearOffWidget, detachWindow) + + detachWindow.setWidget(tearOffWidget) + detachWindow.resize(tearOffWidget.size()) + detachWindow.move(point) + detachWindow.show() + + # def _moveMenuTools(self, widget): + # for p in widget.panels: + # if hasattr(p, 'menuToolsActions'): + # topLevelWindow = self.topLevelWidget(p) + + # if hasattr(topLevelWindow, 'menuTools'): + # for action in p.menuToolsActions: + # topLevelWindow.menuTools.removeAction(action) + + #def _moveActions(self, widget, window): + # for p in widget.panels: + # for action in p.actions: + # action.setVisible(False) + + # for menu in p.getMenus(): + # action = window.menuBar().addMenu(menu) + # action.setVisible(True) + + # for toolbar in p.getToolbars(): + # toolbar.hide() + # topLevelWindow = self.topLevelWidget(p) + # topLevelWindow.removeToolBar(toolbar) + + # window.addToolBar(toolbar) + # toolbar.show() + + def attachTab(self, detach_window): + detach_window.closed.connect(self.attachTab) + #detach_window.saveSettings(False) + tearOffWidget = detach_window.centralWidget() + #panel = self._getPanel(tearOffWidget) + # if panel and not isinstance(panel, QTabWidget): + # panel.setWidgetVisible.disconnect(detach_window.setWidgetVisibleSlot) + tearOffWidget.setParent(self) + # if panel and not isinstance(panel, QTabWidget): + # panel.setWidgetVisible.connect(self.setWidgetVisibleSlot) + + #for p in tearOffWidget.panels: + # if hasattr(p, 'menuToolsActions'): + # topLevelWindow = self.topLevelWidget(self) + + # if hasattr(topLevelWindow, 'menuTools'): + # for action in p.menuToolsActions: + # topLevelWindow.menuTools.removeAction(action) + + newIndex = -1 + + for i in range(self.tabBar().count()): + w = self.widget(i) + for j in self.tabIdx.values(): + if j.widget == w and j.index > detach_window.tabIdx: + newIndex = i + break + else: + continue + break + + if newIndex == -1: + newIndex = self.tabBar().count() + + newIndex = self.insertTab(newIndex, tearOffWidget, + detach_window.windowTitle()) + if newIndex != -1: + self.setCurrentIndex(newIndex) + + idx = self.find_widget(tearOffWidget) + self.tabIdx[idx].detached = None + + def tabChangedTab(self, index): + # for i in range(self.count()): + # for p in self.widget(i).panels: + # for toolbar in p.getToolbars(): + # self.menuwindow.removeToolBar(toolbar) + # for action in p.actions: + # action.setVisible(False) + + # if self.previousTabIdx < self.count(): + # if self.widget(self.previousTabIdx): + # for p in self.widget(self.previousTabIdx).panels: + # if hasattr(p, 'menuToolsActions'): + # topLevelWindow = self.topLevelWidget(p) + + # if hasattr(topLevelWindow, 'menuTools'): + # for action in p.menuToolsActions: + # topLevelWindow.menuTools.removeAction(action) + + # if self.widget(index): + # for p in self.widget(index).panels: + # p.getMenus() + + # if hasattr(p, 'menuToolsActions'): + # topLevelWindow = self.topLevelWidget(p) + + # if hasattr(topLevelWindow, 'menuTools'): + # for action in p.menuToolsActions: + # topLevelWindow.menuTools.addAction(action) + + # for toolbar in p.getToolbars(): + # if hasattr(self.menuwindow, 'toolBarWindows'): + # self.menuwindow.insertToolBar( + # self.menuwindow.toolBarWindows, toolbar) + # else: + # self.menuwindow.addToolBar(toolbar) + # toolbar.show() + + # for menu in p.actions: + # menu.setVisible(True) + + self.previousTabIdx = index + + def addPanel(self, widget, label): + #sgroup = SettingGroup(label) + #with sgroup as settings: + # detached = settings.value('detached', False, bool) + index = len(self.tabIdx) + self.tabIdx[index] = self.TabWidgetStorage(index, widget, label) + #if not detached: + index = self.addTab(widget, label) + if not label or label.isspace(): + self.setTabEnabled(index, False) + for i in self.tabIdx.values(): # search for it in the list of tabs + if i.widget == widget: + i.setDetached(None) + #else: + # detachWindow = DetachedWindow(label.replace('&', ''), + # self.parentWidget()) + # detachWindow.tabIdx = index + # detachWindow.setAttribute(Qt.WA_DeleteOnClose, True) + # self.tabIdx[index].setDetached(detachWindow) + # detachWindow.closed.connect(self.attachTab) + + # panel = self._getPanel(widget) + # if panel and not isinstance(panel, QTabWidget): + # panel.setWidgetVisible.disconnect(self.setWidgetVisibleSlot) + # panel.setWidgetVisible.connect( + # detachWindow.setWidgetVisibleSlot) + # widget.setParent(detachWindow) + + # self._moveMenuTools(widget) + # self._moveActions(widget, detachWindow) + + # detachWindow.setWidget(widget) + # detachWindow.destroyed.connect(detachWindow.deleteLater) + # # with sgroup as settings: + # # detachWindow.restoreGeometry(settings.value('geometry', '', + # # QByteArray)) + # detachWindow.show() + + def find_widget(self, widget): + for idx, tab in self.tabIdx.items(): + if tab.widget == widget: + return idx + return None + + def replace_widget(self, old_widget, new_widget, title=None): + """If old_widget is a child of either a tab or a detached window, it will + be replaced by new_widget""" + idx = self.find_widget(old_widget) + if not idx: + return + wstore = self.tabIdx[idx] + if title: + wstore.title = title + if wstore.detached: + wstore.detached.setWidget(new_widget) + else: + tabi = self._tabWidgetIndex(old_widget) + self.removeTab(tabi) + self.insertTab(tabi, new_widget, wstore.title) + wstore.widget = new_widget + + def topLevelWidget(self, w): + widget = w + while True: + parent = widget.parent() + if not parent: + break + widget = parent + return widget + + def close_current(self): + self.tabCloseRequested.emit(self.currentIndex()) + + +class DetachedWindow(QMainWindow): + + closed = pyqtSignal(object) + + def __init__(self, title, parent): + self.tabIdx = -1 + QMainWindow.__init__(self, parent) + self.setWindowTitle(title) + self.setWindowModality(Qt.WindowModality.NonModal) + # self.sgroup = SettingGroup(title) + # with self.sgroup as settings: + # loadBasicWindowSettings(self, settings) + + @pyqtSlot(QWidget, bool) + def setWidgetVisibleSlot(self, widget, visible): + self.setVisible(visible) + + def setWidget(self, widget): + self.setCentralWidget(widget) + widget.show() + + def closeEvent(self, event): + # with self.sgroup as settings: + # settings.setValue('detached', False) + self.closed.emit(self) + self.deleteLater() + + def moveEvent(self, event): + QMainWindow.moveEvent(self, event) + # self.saveSettings() + + def resizeEvent(self, event): + QMainWindow.resizeEvent(self, event) + # self.saveSettings() + + # def saveSettings(self, detached=True): + # with self.sgroup as settings: + # settings.setValue('detached', detached) + # settings.setValue('geometry', self.saveGeometry()) + # settings.setValue('windowstate', self.saveState()) + + +def firstWindow(w): + widget = w + while True: + parent = widget.parent() + if not parent: + widget = None + break + widget = parent + if widget.isWindow(): + break + return widget diff --git a/secop/gui/ui/cmdbuttons.ui b/frappy/gui/ui/cmdbuttons.ui similarity index 100% rename from secop/gui/ui/cmdbuttons.ui rename to frappy/gui/ui/cmdbuttons.ui diff --git a/secop/gui/ui/cmddialog.ui b/frappy/gui/ui/cmddialog.ui similarity index 100% rename from secop/gui/ui/cmddialog.ui rename to frappy/gui/ui/cmddialog.ui diff --git a/frappy/gui/ui/console.ui b/frappy/gui/ui/console.ui new file mode 100644 index 0000000..66cc251 --- /dev/null +++ b/frappy/gui/ui/console.ui @@ -0,0 +1,120 @@ + + + Form + + + + 0 + 0 + 779 + 246 + + + + + 0 + 0 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 100 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:11pt;"><br /></p></body></html> + + + + + + + + + >>> + + + + + + + + + + Clear + + + + + + + Send + + + false + + + false + + + + + + + + + + ConsoleLineEdit + QLineEdit +

frappy.gui.console.h
+ + + + + + msgLineEdit + returnPressed() + sendPushButton + animateClick() + + + 313 + 221 + + + 729 + 221 + + + + + diff --git a/frappy/gui/ui/greeter.ui b/frappy/gui/ui/greeter.ui new file mode 100644 index 0000000..12a3e85 --- /dev/null +++ b/frappy/gui/ui/greeter.ui @@ -0,0 +1,273 @@ + + + Form + + + + 0 + 0 + 691 + 621 + + + + Form + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 400 + 120 + + + + + + + :/icons/logo_subtitle + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 20 + + + + <html><head/><body><p align="center">Frappy</p></body></html> + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Welcome to Frappy's graphical SECoP client</p></body></html> + + + 0 + + + + + + + + + Recent SECNodes + + + + + + + <html><head/><body><p>Clear all recent connections</p></body></html> + + + ... + + + + :/icons/trash:/icons/trash + + + + + + + Connect to selected + + + + :/icons/connect:/icons/connect + + + + + + + Select one or more recent Nodes to Connect to + + + true + + + QAbstractItemView::ExtendedSelection + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Connect to SECNode + + + + + + + + + Connect + + + + :/icons/connect:/icons/connect + + + + + + + localhost:10767 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + recentNodes + connectRecentButton + secnodeEdit + AddSECNodeButton + ClearButton + + + + + + + secnodeEdit + returnPressed() + AddSECNodeButton + animateClick() + + + 261 + 456 + + + 462 + 456 + + + + + diff --git a/frappy/gui/ui/logwindow.ui b/frappy/gui/ui/logwindow.ui new file mode 100644 index 0000000..c74aeca --- /dev/null +++ b/frappy/gui/ui/logwindow.ui @@ -0,0 +1,100 @@ + + + Form + + + + 0 + 0 + 659 + 306 + + + + Log + + + + + 0 + 10 + 651 + 291 + + + + + 4 + + + 4 + + + 4 + + + 10 + + + + + + + Info + + + 2 + + + + Error + + + + + Warning + + + + + Info + + + + + Debug + + + + + + + + Clear + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + diff --git a/frappy/gui/ui/mainwin.ui b/frappy/gui/ui/mainwin.ui new file mode 100644 index 0000000..23afe77 --- /dev/null +++ b/frappy/gui/ui/mainwin.ui @@ -0,0 +1,191 @@ + + + MainWindow + + + + 0 + 0 + 1228 + 600 + + + + frappy-gui + + + + + + + + 0 + 0 + 1228 + 30 + + + + + Node + + + + true + + + Recent SECNodes + + + + + + + + + + + + + Help + + + + + + Options + + + + + + + + + + + + + toolBar + + + TopToolBarArea + + + false + + + + + + + :/icons/connect:/icons/connect + + + Open SECNode + + + Ctrl+O + + + + + Exit + + + Ctrl+Q + + + + + About + + + + + About Qt + + + + + true + + + false + + + Show Log Window + + + + + true + + + Advanced Mode + + + + + true + + + Detailed View + + + + + + :/icons/trash:/icons/trash + + + Clear + + + + + djhfs + + + + + Reconnect + + + Ctrl+R + + + + + true + + + true + + + Highlight name upon selection + + + + + + + + + actionExit + triggered() + MainWindow + close() + + + -1 + -1 + + + 613 + 299 + + + + + diff --git a/frappy/gui/ui/modulewidget.ui b/frappy/gui/ui/modulewidget.ui new file mode 100644 index 0000000..8334829 --- /dev/null +++ b/frappy/gui/ui/modulewidget.ui @@ -0,0 +1,235 @@ + + + Form + + + + 0 + 0 + 656 + 428 + + + + Form + + + + 3 + + + 6 + + + + + + + + 18 + 75 + true + + + + moduleName + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + Qt::Horizontal + + + + 20 + 20 + + + + + + + + description + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + ... + + + + :/icons/details:/icons/details + + + true + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 3 + + + + + + + <b>Implementation:</b> + + + Qt::RichText + + + + + + + <impl> + + + + + + + + + + + <b>Features:</b> + + + + + + + <features> + + + + + + + + + + + <b>Interface Classes:</b> + + + + + + + <interfaces> + + + + + + + + + + + <b>Group:</b> + + + + + + + <group> + + + + + + + + + + + + + + + QFrame::HLine + + + QFrame::Raised + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + AnimatedLabel + QLabel +
frappy.gui.modulewidget.h
+
+
+ + + + +
diff --git a/frappy/gui/ui/nodewidget.ui b/frappy/gui/ui/nodewidget.ui new file mode 100644 index 0000000..a313a09 --- /dev/null +++ b/frappy/gui/ui/nodewidget.ui @@ -0,0 +1,192 @@ + + + Node + + + + 0 + 0 + 788 + 531 + + + + + 0 + 0 + + + + Form + + + true + + + + + + Qt::Horizontal + + + 6 + + + false + + + + + 0 + 0 + + + + + 100 + 50 + + + + + + + Qt::Vertical + + + 6 + + + + + + 0 + 0 + + + + + 100 + 50 + + + + NodeInfo + + + + + + Host: + + + + + + + <host> + + + + + + + Protocol version: + + + + + + + <version> + + + true + + + + + + + Description: + + + + + + + true + + + + + + + + + + + + + 0 + 0 + + + + Qt::Vertical + + + + Qt::ScrollBarAlwaysOn + + + true + + + + + 0 + 0 + 62 + 176 + + + + + QLayout::SetMinimumSize + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + + + CollapsibleWidget + QWidget +
frappy.gui.collapsible.h
+ 1 +
+
+ + + + +
diff --git a/secop/gui/ui/parambuttons.ui b/frappy/gui/ui/parambuttons.ui similarity index 100% rename from secop/gui/ui/parambuttons.ui rename to frappy/gui/ui/parambuttons.ui diff --git a/secop/gui/ui/parambuttons_select.ui b/frappy/gui/ui/parambuttons_select.ui similarity index 100% rename from secop/gui/ui/parambuttons_select.ui rename to frappy/gui/ui/parambuttons_select.ui diff --git a/secop/gui/ui/paramview.ui b/frappy/gui/ui/paramview.ui similarity index 63% rename from secop/gui/ui/paramview.ui rename to frappy/gui/ui/paramview.ui index 9234e45..c2c9636 100644 --- a/secop/gui/ui/paramview.ui +++ b/frappy/gui/ui/paramview.ui @@ -6,56 +6,68 @@ 0 0 - 100 - 100 + 387 + 190 Form - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - + + + - + + 12 75 - false true + true - Parameter name: + <html><head/><body><p><span style=" font-size:12pt; font-weight:600; text-decoration: underline;">TextLabel</span></p></body></html> - - - - - - TextLabel + + Qt::RichText + + + Qt::AlignCenter - + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + 0 + 0 + + - Properties + + + + Qt::AlignCenter @@ -76,22 +88,6 @@ - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 20 - - - -
diff --git a/frappy/gui/util.py b/frappy/gui/util.py new file mode 100644 index 0000000..51153e9 --- /dev/null +++ b/frappy/gui/util.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# ***************************************************************************** +# Copyright (c) 2015-2016 by the authors, see LICENSE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Alexander Lenz +# +# ***************************************************************************** + + +from os import path + +from frappy.gui.qt import QColor, uic + +uipath = path.dirname(__file__) + + +def loadUi(widget, uiname, subdir='ui'): + uic.loadUi(path.join(uipath, subdir, uiname), widget) + + +def is_light_theme(palette): + background = palette.window().color().lightness() + foreground = palette.windowText().color().lightness() + return background > foreground + + +class Colors: + @classmethod + def _setPalette(cls, palette): + if hasattr(cls, 'palette'): + return + cls.palette = palette + if is_light_theme(palette): # light + cls.colors = { + 'gray' : QColor('#696969'), + 'red' : QColor('#FF0000'), + 'orange': QColor('#FA6800'), + 'yellow': QColor('#FCFFa4'), + 'plot-fg': QColor('black'), + 'plot-bg': QColor('white'), + 0: QColor('black'), + 1: QColor('blue'), + 2: QColor('#FA6800'), + 3: QColor('green'), + 4: QColor('red'), + 5: QColor('purple'), + } + else: # dark + cls.colors = { + 'gray' : QColor('#AAAAAA'), + 'red' : QColor('#FF0000'), + 'orange': QColor('#FA6800'), + 'yellow': QColor('#FEFE22'), + 'plot-fg': QColor('white'), + 'plot-bg': QColor('black'), + 0: QColor('white'), + 1: QColor('#72ADD4'), + 2: QColor('#FA6800'), + 3: QColor('olive'), + 4: QColor('red'), + 5: QColor('purple'), + } diff --git a/secop/gui/valuewidgets.py b/frappy/gui/valuewidgets.py similarity index 88% rename from secop/gui/valuewidgets.py rename to frappy/gui/valuewidgets.py index 856e6bb..19a742b 100644 --- a/secop/gui/valuewidgets.py +++ b/frappy/gui/valuewidgets.py @@ -22,13 +22,13 @@ # ***************************************************************************** -from secop.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \ - FloatRange, IntRange, StringType, StructOf, TextType, TupleOf -from secop.gui.qt import QCheckBox, QComboBox, QDialog, \ - QDoubleSpinBox, QFrame, QGridLayout, QGroupBox, \ - QLabel, QLineEdit, QSpinBox, QTextEdit, QVBoxLayout -from secop.gui.util import loadUi +from frappy.gui.qt import QCheckBox, QComboBox, QDialog, QDoubleSpinBox, \ + QFrame, QGridLayout, QGroupBox, QLabel, QLineEdit, QSpinBox, QTextEdit, \ + QVBoxLayout +from frappy.datatypes import ArrayOf, BLOBType, BoolType, EnumType, \ + FloatRange, IntRange, StringType, StructOf, TextType, TupleOf +from frappy.gui.util import loadUi # XXX: implement live validators !!!! # XXX: signals upon change of value @@ -36,7 +36,7 @@ from secop.gui.util import loadUi class StringWidget(QLineEdit): def __init__(self, datatype, readonly=False, parent=None): - super(StringWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype if readonly: self.setEnabled(False) @@ -51,13 +51,13 @@ class StringWidget(QLineEdit): class TextWidget(QTextEdit): def __init__(self, datatype, readonly=False, parent=None): - super(TextWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype if readonly: self.setEnabled(False) def get_value(self): - res = self.text() + res = self.toPlainText() return self.datatype(res) def set_value(self, value): @@ -72,7 +72,7 @@ class BlobWidget(StringWidget): # or derive from widget and switch between combobox and radiobuttons? class EnumWidget(QComboBox): def __init__(self, datatype, readonly=False, parent=None): - super(EnumWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype self._map = {} @@ -92,7 +92,7 @@ class EnumWidget(QComboBox): class BoolWidget(QCheckBox): def __init__(self, datatype, readonly=False, parent=None): - super(BoolWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype if readonly: self.setEnabled(False) @@ -106,7 +106,7 @@ class BoolWidget(QCheckBox): class IntWidget(QSpinBox): def __init__(self, datatype, readonly=False, parent=None): - super(IntWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype if readonly: self.setEnabled(False) @@ -122,7 +122,7 @@ class IntWidget(QSpinBox): class FloatWidget(QDoubleSpinBox): def __init__(self, datatype, readonly=False, parent=None): - super(FloatWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype if readonly: self.setEnabled(False) @@ -139,7 +139,7 @@ class FloatWidget(QDoubleSpinBox): class TupleWidget(QFrame): def __init__(self, datatype, readonly=False, parent=None): - super(TupleWidget, self).__init__(parent) + super().__init__(parent) self.datatypes = datatype.members @@ -164,7 +164,7 @@ class TupleWidget(QFrame): class StructWidget(QGroupBox): def __init__(self, datatype, readonly=False, parent=None): - super(StructWidget, self).__init__(parent) + super().__init__(parent) self.layout = QGridLayout() self.subwidgets = {} @@ -197,7 +197,7 @@ class StructWidget(QGroupBox): class ArrayWidget(QGroupBox): def __init__(self, datatype, readonly=False, parent=None): - super(ArrayWidget, self).__init__(parent) + super().__init__(parent) self.datatype = datatype.members self.layout = QVBoxLayout() @@ -234,7 +234,7 @@ def get_widget(datatype, readonly=False, parent=None): class msg(QDialog): def __init__(self, stuff, parent=None): - super(msg, self).__init__(parent) + super().__init__(parent) loadUi(self, 'cmddialog.ui') print(dir(self)) self.setWindowTitle('Please enter the arguments for calling command "blubb()"') @@ -253,12 +253,12 @@ class msg(QDialog): def accept(self): print('accepted') - super(msg, self).accept() + super().accept() def reject(self): print('rejected') - super(msg, self).reject() + super().reject() def done(self, how): - print('done(%r)' % how) - return super(msg, self).done(how) + print(f'done({how!r})') + return super().done(how) diff --git a/secop/io.py b/frappy/io.py similarity index 85% rename from secop/io.py rename to frappy/io.py index a5431c3..dc669cd 100644 --- a/secop/io.py +++ b/frappy/io.py @@ -28,26 +28,23 @@ import re import time import threading -from secop.lib.asynconn import AsynConn, ConnectionClosed -from secop.datatypes import ArrayOf, BLOBType, BoolType, FloatRange, IntRange, \ +from frappy.lib.asynconn import AsynConn, ConnectionClosed +from frappy.datatypes import ArrayOf, BLOBType, BoolType, FloatRange, IntRange, \ StringType, TupleOf, ValueType -from secop.errors import CommunicationFailedError, ConfigError, ProgrammingError -from secop.modules import Attached, Command, \ - Communicator, Done, Module, Parameter, Property -from secop.lib import generalConfig +from frappy.errors import CommunicationFailedError, ConfigError, ProgrammingError, \ + SilentCommunicationFailedError as SilentError +from frappy.modules import Attached, Command, \ + Communicator, Module, Parameter, Property +from frappy.lib import generalConfig generalConfig.set_default('legacy_hasiodev', False) HEX_CODE = re.compile(r'[0-9a-fA-F][0-9a-fA-F]$') -class SilentError(CommunicationFailedError): - silent = True - - class HasIO(Module): """Mixin for modules using a communicator""" - io = Attached(mandatory=False) + io = Attached(mandatory=False) # either io or uri must be given uri = Property('uri for automatic creation of the attached communication module', StringType(), default='') @@ -55,21 +52,25 @@ class HasIO(Module): ioClass = None def __init__(self, name, logger, opts, srv): - io = opts.get('io') super().__init__(name, logger, opts, srv) if self.uri: - opts = {'uri': self.uri, 'description': 'communication device for %s' % name, - 'export': False} + # automatic creation of io device + opts = {'uri': self.uri, 'description': f'communication device for {name}', + 'visibility': 'expert'} ioname = self.ioDict.get(self.uri) if not ioname: - ioname = io or name + '_io' + ioname = opts.get('io') or f'{name}_io' io = self.ioClass(ioname, srv.log.getChild(ioname), opts, srv) # pylint: disable=not-callable io.callingModule = [] srv.modules[ioname] = io self.ioDict[self.uri] = ioname self.io = ioname - elif not io: - raise ConfigError("Module %s needs a value for either 'uri' or 'io'" % name) + + def initModule(self): + if not self.io: + # self.io was not assigned + raise ConfigError(f"Module {self.name} needs a value for either 'uri' or 'io'") + super().initModule() def communicate(self, *args): return self.io.communicate(*args) @@ -100,11 +101,25 @@ class HasIodev(HasIO): class IOBase(Communicator): """base of StringIO and BytesIO""" - uri = Property('hostname:portnumber', datatype=StringType()) + uri = Property("""uri for serial connection + + one of the following: + + - ``tcp://:`` (see :class:`frappy.lib.asynconn.AsynTcp`) + + - ``serial://?baudrate=...`` (see :class:`frappy.lib.asynconn.AsynSerial`) + """, datatype=StringType()) timeout = Parameter('timeout', datatype=FloatRange(0), default=2) wait_before = Parameter('wait time before sending', datatype=FloatRange(), default=0) - is_connected = Parameter('connection state', datatype=BoolType(), readonly=False, default=False) + is_connected = Parameter('connection state', datatype=BoolType(), readonly=False, default=False, + update_unchanged='never') pollinterval = Parameter('reconnect interval', datatype=FloatRange(0), readonly=False, default=10) + #: a dict of default settings for a device, e.g. for a LakeShore 336: + #: + #: ``default_settings = {'port': 7777, 'baudrate': 57600, 'parity': 'O', 'bytesize': 7}`` + #: + #: port is used in case of tcp, the others for serial over USB + default_settings = {} _reconnectCallbacks = None _conn = None @@ -138,20 +153,20 @@ class IOBase(Communicator): self.is_connected is changed only by self.connectStart or self.closeConnection """ if self.is_connected: - return Done # no need for intermediate updates + return True # no need for intermediate updates try: self.connectStart() if self._last_error: self.log.info('connected') self._last_error = 'connected' self.callCallbacks() - return Done + return self.is_connected except Exception as e: if str(e) != self._last_error: self._last_error = str(e) self.log.error(self._last_error) raise SilentError(repr(e)) from e - return Done + return self.is_connected def write_is_connected(self, value): """value = True: connect if not yet done @@ -185,7 +200,7 @@ class IOBase(Communicator): try: removeme = not cb() except Exception as e: - self.log.error('callback: %s' % e) + self.log.error('callback: %s', e) removeme = True if removeme: self._reconnectCallbacks.pop(key) @@ -217,14 +232,14 @@ class StringIO(IOBase): return bytes([value]) if isinstance(value, bytes): return value - raise ValueError('invalid end_of_line: %s' % repr(value)) + raise ValueError(f'invalid end_of_line: {repr(value)}') def earlyInit(self): super().earlyInit() eol = self.end_of_line if isinstance(eol, (tuple, list)): if len(eol) not in (1, 2): - raise ValueError('invalid end_of_line: %s' % eol) + raise ValueError(f'invalid end_of_line: {eol}') else: eol = [eol] # eol for read and write might be distinct @@ -236,14 +251,13 @@ class StringIO(IOBase): def connectStart(self): if not self.is_connected: uri = self.uri - self._conn = AsynConn(uri, self._eol_read) + self._conn = AsynConn(uri, self._eol_read, default_settings=self.default_settings) self.is_connected = True for command, regexp in self.identification: reply = self.communicate(command) if not re.match(regexp, reply): self.closeConnection() - raise CommunicationFailedError('bad response: %s does not match %s' % - (reply, regexp)) + raise CommunicationFailedError(f'bad response: {reply} does not match {regexp}') @Command(StringType(), result=StringType()) def communicate(self, command): @@ -274,7 +288,7 @@ class StringIO(IOBase): self._conn.send(cmd + self._eol_write) self.comLog('> %s', cmd.decode(self.encoding)) reply = self._conn.readline(self.timeout) - except ConnectionClosed as e: + except ConnectionClosed: self.closeConnection() raise CommunicationFailedError('disconnected') from None reply = reply.decode(self.encoding) @@ -329,7 +343,7 @@ def make_bytes(string): def hexify(bytes_): - return ' '.join('%02x' % r for r in bytes_) + return ' '.join(f'{r:02x}' for r in bytes_) class BytesIO(IOBase): @@ -347,14 +361,14 @@ class BytesIO(IOBase): def connectStart(self): if not self.is_connected: uri = self.uri - self._conn = AsynConn(uri, b'') + self._conn = AsynConn(uri, b'', default_settings=self.default_settings) self.is_connected = True for request, expected in self.identification: replylen, replypat = make_regexp(expected) reply = self.communicate(make_bytes(request), replylen) if not replypat.match(reply): self.closeConnection() - raise CommunicationFailedError('bad response: %r does not match %r' % (reply, expected)) + raise CommunicationFailedError(f'bad response: {reply!r} does not match {expected!r}') @Command((BLOBType(), IntRange(0)), result=BLOBType()) def communicate(self, request, replylen): # pylint: disable=arguments-differ @@ -372,7 +386,7 @@ class BytesIO(IOBase): self._conn.send(request) self.comLog('> %s', hexify(request)) reply = self._conn.readbytes(replylen, self.timeout) - except ConnectionClosed as e: + except ConnectionClosed: self.closeConnection() raise CommunicationFailedError('disconnected') from None self.comLog('< %s', hexify(reply)) diff --git a/secop/lib/__init__.py b/frappy/lib/__init__.py similarity index 88% rename from secop/lib/__init__.py rename to frappy/lib/__init__.py index 7ffaefd..2c48b3d 100644 --- a/secop/lib/__init__.py +++ b/frappy/lib/__init__.py @@ -21,6 +21,7 @@ # ***************************************************************************** """Define helpers""" +import re import importlib import linecache import socket @@ -55,7 +56,7 @@ class GeneralConfig: location of this source file and from sys.executable. if configfile is not given, the general config file is determined by - the env. variable FRAPPY_CONFIG_FILE or looked up in /generalConfig.cfg + the env. variable FRAPPY_CONFIG_FILE or /generalConfig.cfg is used if a configfile is given, the values from the FRAPPY section are overriding above defaults @@ -70,7 +71,7 @@ class GeneralConfig: if path.splitext(sys.executable)[1] == ".exe" and not path.basename(sys.executable).startswith('python'): # special MS windows environment cfg.update(piddir='./', logdir='./log', confdir='./') - elif path.exists(path.join(repodir, '.git')): + elif path.exists(path.join(repodir, 'cfg')): # running from git repo cfg['confdir'] = path.join(repodir, 'cfg') # take logdir and piddir from /cfg/generalConfig.cfg @@ -101,11 +102,11 @@ class GeneralConfig: if cfg.get('confdir') is None: cfg['confdir'] = path.dirname(configfile) for key in mandatory: - cfg[key] = environ.get('FRAPPY_%s' % key.upper(), cfg.get(key)) + cfg[key] = environ.get(f'FRAPPY_{key.upper()}', cfg.get(key)) missing_keys = [key for key in mandatory if cfg[key] is None] if missing_keys: if configfile: - raise KeyError('missing value for %s in %s' % (' and '.join(missing_keys), configfile)) + raise KeyError(f"missing value for {' and '.join(missing_keys)} in {configfile}") raise KeyError('missing %s' % ' and '.join('FRAPPY_%s' % k.upper() for k in missing_keys)) # this is not customizable cfg['basedir'] = repodir @@ -124,21 +125,21 @@ class GeneralConfig: except TypeError: if key in self.defaults: # accept retrieving defaults before init - # e.g. 'lazy_number_validation' in secop.datatypes + # e.g. 'lazy_number_validation' in frappy.datatypes return self.defaults[key] raise TypeError('generalConfig.init() has to be called first') from None def get(self, key, default=None): """access for keys not known to exist""" try: - return self.__getitem__(key) + return self[key] except KeyError: return default def getint(self, key, default=None): """access and convert to int""" try: - return int(self.__getitem__(key)) + return int(self[key]) except KeyError: return default @@ -201,11 +202,11 @@ def clamp(_min, value, _max): def get_class(spec): """loads a class given by string in dotted notation (as python would do)""" modname, classname = spec.rsplit('.', 1) - if modname.startswith('secop'): + if modname.startswith('frappy'): module = importlib.import_module(modname) else: # rarely needed by now.... - module = importlib.import_module('secop.' + modname) + module = importlib.import_module('frappy.' + modname) try: return getattr(module, classname) except AttributeError: @@ -214,7 +215,7 @@ def get_class(spec): def mkthread(func, *args, **kwds): t = threading.Thread( - name='%s:%s' % (func.__module__, func.__name__), + name=f'{func.__module__}:{func.__name__}', target=func, args=args, kwargs=kwds) @@ -244,12 +245,11 @@ def formatExtendedTraceback(exc_info=None): while tb is not None: frame = tb.tb_frame filename = frame.f_code.co_filename - item = ' File "%s", line %d, in %s\n' % (filename, tb.tb_lineno, - frame.f_code.co_name) + item = f' File "{filename}", line {tb.tb_lineno}, in {frame.f_code.co_name}\n' linecache.checkcache(filename) line = linecache.getline(filename, tb.tb_lineno, frame.f_globals) if line: - item = item + ' %s\n' % line.strip() + item = item + f' {line.strip()}\n' ret.append(item) if filename not in ('