From a5b4dd625ed4afcc64ce5045434a3752e52612c4 Mon Sep 17 00:00:00 2001
From: fgerlits <fgerlits@cfc7b370-4200-0410-a6e3-cb6bdb053afe>
Date: Fri, 15 Oct 2004 16:48:44 +0000
Subject: [PATCH] added new removeAudioClipFromPlaylist and validatePlaylist
 modified the contract for removeAudioClipFromPlaylist to take a relative  
 offset as argument instead of an audio clip id   (makes more sense this way,
 also implements more neatly :-)

---
 livesupport/doc/model/Scheduler/index.html    | 9996 ++++++++++-------
 .../core/include/LiveSupport/Core/Playlist.h  |   49 +-
 livesupport/modules/core/src/Playlist.cxx     |   47 +-
 livesupport/modules/core/src/PlaylistTest.cxx |   38 +-
 livesupport/modules/core/src/PlaylistTest.h   |    8 +-
 .../scheduler/doc/model/SchedulerModel.zuml   |  Bin 102546 -> 116449 bytes
 .../products/scheduler/etc/Makefile.in        |    8 +-
 .../src/AddAudioClipToPlaylistMethod.cxx      |   32 +-
 .../src/AddAudioClipToPlaylistMethod.h        |   16 +-
 .../src/AddAudioClipToPlaylistMethodTest.cxx  |    4 +-
 .../src/RemoveAudioClipFromPlaylistMethod.cxx |  163 +
 .../src/RemoveAudioClipFromPlaylistMethod.h   |  154 +
 .../RemoveAudioClipFromPlaylistMethodTest.cxx |  175 +
 .../RemoveAudioClipFromPlaylistMethodTest.h   |  135 +
 .../scheduler/src/ValidatePlaylistMethod.cxx  |  146 +
 .../scheduler/src/ValidatePlaylistMethod.h    |  154 +
 .../src/ValidatePlaylistMethodTest.cxx        |  180 +
 .../src/ValidatePlaylistMethodTest.h          |  135 +
 .../products/scheduler/src/XmlRpcTools.cxx    |   22 +-
 .../products/scheduler/src/XmlRpcTools.h      |   19 +-
 20 files changed, 7217 insertions(+), 4264 deletions(-)
 create mode 100644 livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.cxx
 create mode 100644 livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.h
 create mode 100644 livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.cxx
 create mode 100644 livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.h
 create mode 100644 livesupport/products/scheduler/src/ValidatePlaylistMethod.cxx
 create mode 100644 livesupport/products/scheduler/src/ValidatePlaylistMethod.h
 create mode 100644 livesupport/products/scheduler/src/ValidatePlaylistMethodTest.cxx
 create mode 100644 livesupport/products/scheduler/src/ValidatePlaylistMethodTest.h

diff --git a/livesupport/doc/model/Scheduler/index.html b/livesupport/doc/model/Scheduler/index.html
index f8ea22bfd..b19fa7456 100644
--- a/livesupport/doc/model/Scheduler/index.html
+++ b/livesupport/doc/model/Scheduler/index.html
@@ -1,4211 +1,5785 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-  <meta content="text/html; charset=ISO-8859-2"
- http-equiv="content-type">
-  <title>LiveSupport Scheduler specifications</title>
-  <meta content="�kos Mar�y" name="author">
-</head>
-<body>
-<h1>Preface</h1>
-This document is part of the <a href="http://livesupport.campware.org/">LiveSupport</a>
-project, Copyright &#169; 2004 <a href="http://www.mdlf.org/">Media
-Development Loan Fund</a>, under the GNU <a
- href="http://www.gnu.org/licenses/gpl.html">GPL</a>.<br>
-<ul>
-  <li>Author: $Author: fgerlits $</li>
-  <li>Version: $Revision: 1.3 $</li>
-  <li>Location: $Source:
-/home/cvs/livesupport/doc/model/Scheduler/index.html,v $</li>
-</ul>
-<h1>Scope</h1>
-This document contains the specification of the LiveSupport Scheduler
-daemon.<br>
-<br>
-This document contains embedded <a
- href="http://www.w3.org/Graphics/SVG/">SVG</a> figures, thus an SVG
-capable browser is needed to view it, or an SVG plugin like <a
- href="http://www.adobe.com/svg/">Adobe's SVG Viewer</a>.<br>
-<h1>Requirements</h1>
-<h2>Overview<br>
-</h2>
-The purpose of the LiveSupport Scheduler daemon is to execute
-playlists.<br>
-<h2>Goals<br>
-</h2>
-The scheduler daemon is a remotely accessible service accepting
-playlists on a local audio interface. Specific goals include:<br>
-<ul>
-  <li>remote manageability</li>
-  <li>handling remote audio clips referenced by playlists</li>
-  <li>low-latency playback</li>
-</ul>
-<h2>System functions</h2>
-The main system functions are described below. There are three
-categories for these functions:<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">function category<br>
-      </th>
-      <th valign="top">meaning<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top">evident<br>
-      </td>
-      <td valign="top">Should perform, and the user should be cognizant
-that it is performed<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">hidden<br>
-      </td>
-      <td valign="top">Should perform, but not visible to the users.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">frill<br>
-      </td>
-      <td valign="top">Optional<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">ref#<br>
-      </th>
-      <th valign="top">function<br>
-      </th>
-      <th valign="top">category<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top">F1.1<br>
-      </td>
-      <td valign="top">Accept uploaded playlists<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.2<br>
-      </td>
-      <td valign="top">Retrieve remote files referenced by playlists<br>
-      </td>
-      <td valign="top">hidden<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.3<br>
-      </td>
-      <td valign="top">Access local files<br>
-      </td>
-      <td valign="top">hidden<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.4<br>
-      </td>
-      <td valign="top">Provide status information<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.5<br>
-      </td>
-      <td valign="top">Log playlist execution for proof of broadcast
-reasons<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.6<br>
-      </td>
-      <td valign="top">Purge local file storage of unused audio clips<br>
-      </td>
-      <td valign="top">hidden<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.7<br>
-      </td>
-      <td valign="top">Execute playlists<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.8<br>
-      </td>
-      <td valign="top">Play live streams as part of the playlist<br>
-      </td>
-      <td valign="top">hidden<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.9<br>
-      </td>
-      <td valign="top">Remove playists from the schedule<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.10<br>
-      </td>
-      <td valign="top">Re-schedule playlsits<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.11<br>
-      </td>
-      <td valign="top">Delete playlists<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.12<br>
-      </td>
-      <td valign="top">Create playlists<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.13<br>
-      </td>
-      <td valign="top">Edit playlists<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.14<br>
-      </td>
-      <td valign="top">Start the scheduler daemon<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.15<br>
-      </td>
-      <td valign="top">Stop the scheduler daemon<br>
-      </td>
-      <td valign="top">evident<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h2>System attributes</h2>
-Generic attributes<br>
-<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">ref#<br>
-      </th>
-      <th valign="top">attribute<br>
-      </th>
-      <th valign="top">details and constraints<br>
-      </th>
-      <th valign="top">category<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top">A1.1<br>
-      </td>
-      <td valign="top">operating system platform<br>
-      </td>
-      <td valign="top">Linux<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">A1.2<br>
-      </td>
-      <td valign="top">supported audio interfaces<br>
-      </td>
-      <td valign="top">ALSA (maybe also OSS?)<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">A1.3<br>
-      </td>
-      <td valign="top">supported playlist format<br>
-      </td>
-      <td valign="top">SMIL 2.0. only partial support is required,
-which focuses only on audio aspects of SMIL.<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">A1.4<br>
-      </td>
-      <td valign="top">supported audio clip formats<br>
-      </td>
-      <td valign="top">Ogg Vorbis, mp3, wav<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-Attributes related to system functions<br>
-<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">ref#<br>
-      </th>
-      <th valign="top">function<br>
-      </th>
-      <th valign="top">ref#<br>
-      </th>
-      <th valign="top">attribute<br>
-      </th>
-      <th valign="top">details and constraints<br>
-      </th>
-      <th valign="top">category<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top">F1.7<br>
-      </td>
-      <td valign="top">Execute playlists<br>
-      </td>
-      <td valign="top">A1.5<br>
-      </td>
-      <td valign="top">low latency<br>
-      </td>
-      <td valign="top">when executing playlists, very low latency
-should be achieved<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">A1.6<br>
-      </td>
-      <td valign="top">handle time skew<br>
-      </td>
-      <td valign="top">the
-daemon has to take into account that the system's clock is not
-accurate. the clock is synchronized to an external regularly, but the
-resulting time-jump must be handled.<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.8<br>
-      </td>
-      <td valign="top">Play live streams as part of the playlist </td>
-      <td valign="top">A1.7<br>
-      </td>
-      <td valign="top">supported audio stream formats<br>
-      </td>
-      <td valign="top">Ogg Vorbis via HTTP, mp3 via HTTP<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">F1.14<br>
-F1.15<br>
-      </td>
-      <td valign="top">Start / stop the scheduler daemon<br>
-      </td>
-      <td valign="top">A1.8<br>
-      </td>
-      <td valign="top">provide System V init style services<br>
-      </td>
-      <td valign="top">Provide a System V init interface to starting
-and stopping the scheduler daemon<br>
-      </td>
-      <td valign="top">must<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h2>Essential use cases</h2>
-This section lists generic (essential) uses cases, that do not contain
-architecture-specific considerations.<br>
-<br>
-<object type="image/svg+xml" name="essential use cases"
- data="EssentialUseCases.svg" height="800" width="700"></object>
-<h3>UC-1 Upload playlist</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-1 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Upload playlist </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b> </td>
-      <td valign="top">primary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b> </td>
-      <td valign="top">Playlist editor </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b> </td>
-      <td valign="top">Upload a playlist </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b> </td>
-      <td valign="top">The Playlist editor uploads a new playlist. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b> </td>
-      <td valign="top">F1.1 </td>
-    </tr>
-  </tbody>
-</table>
-<h4>Typical course of events</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Playlist editor connects to the scheduler daemon
-with the intent of uploading a new playlist. <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Playlist editor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Playlist editor and
-grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>4.</b> </td>
-      <td valign="top">The Playlist editor presents the new playlist
-and the intended schedule for the playlist.<br>
-      </td>
-      <td valign="top"><b>5.</b> </td>
-      <td valign="top">The system validates the new playlist, and sees
-that it does not conflict with existing schedule. </td>
-    </tr>
-    <tr>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"><b>6.</b> </td>
-      <td valign="top">The system stores the new playlist, adds it to
-the schedule, and sends confirmation to the Playlist editor. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b> </td>
-      <td valign="top">The Playlist editor receives confirmation and
-disconnects. </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.<br>
-  </li>
-  <li><b>action 5:</b> the system finds that the uploaded playlist is
-invalid, or it conflicts the existing schedule. the user is
-notified and the use case ends.<br>
-    <br>
-  </li>
-</ul>
-<h3>UC-2 Manage schedule<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b><br>
-      </td>
-      <td valign="top">UC-2 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Manage schedule </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b><br>
-      </td>
-      <td valign="top">primary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b><br>
-      </td>
-      <td valign="top">Playlist editor </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b><br>
-      </td>
-      <td valign="top">View the schedule and remove or re-schedule
-playlists<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b><br>
-      </td>
-      <td valign="top">The Playlist editor reviews the schedule. If he
-decides to, he might remove or re-schedule some of these playlists. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b><br>
-      </td>
-      <td valign="top">F1.4, F1.9, F1.10<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Playlist editor connects to the scheduler daemon
-with the intent of viewing and editing the schedule.<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Playlist editor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Playlist editor and
-grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The system shows the Schedule to the Playlist
-editor<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The Playlist editor browses the Schedule,
-selects a playlist for detailed viewing.<br>
-      </td>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The system shows the details of the selected
-Playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">The playlist editor removes a playlist from the
-schedule.<br>
-      </td>
-      <td valign="top"><b>8.</b><br>
-      </td>
-      <td valign="top">The system removes the playlist from the
-schedule, than re-displays the updated schedle.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>9.</b><br>
-      </td>
-      <td valign="top">The Playlist editor re-schedules a playlist<br>
-      </td>
-      <td valign="top"><b>10.</b><br>
-      </td>
-      <td valign="top">The system removes the selected playlist from
-the schedule, and re-enters it at a new timepoint<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"> <b>11.</b><br>
-      </td>
-      <td valign="top"> The Playlist editor browses the Schedule<br>
-      </td>
-      <td valign="top"> <b>12.</b><br>
-      </td>
-      <td valign="top"> The system shows the Schedule to the playlist
-editor<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>13.</b><br>
-      </td>
-      <td valign="top">The Playlist editor disconnects.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.</li>
-  <li><b>action 8:</b>
-the user tries to remove a non-existent playlist from the schedule. the
-user is notified, and the schedule is displayed to the user.</li>
-  <li><b>action 10:</b>
-the new playtime for the schedule conflicts with already scheduled
-playlist playtimes. the user is notified, and the schedule is displayed
-again<br>
-  </li>
-</ul>
-<h3>UC-3 Manage playlists<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b><br>
-      </td>
-      <td valign="top">UC-3 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Manage playlists </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b><br>
-      </td>
-      <td valign="top">primary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b><br>
-      </td>
-      <td valign="top">Playlist editor </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b><br>
-      </td>
-      <td valign="top">View and delete playlists </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b><br>
-      </td>
-      <td valign="top">The Playlist editor reviews the uploaded
-playlists. If he decides so, he might delete some of these playlists. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b><br>
-      </td>
-      <td valign="top">F1.4, F1.11<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Playlist editor connects to the scheduler daemon
-with the intent of viewing and deleting playlists.<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Playlist editor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Playlist editor and
-grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The system lists the available Playlists<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The Playlist editor browses the playlists, and
-selects one for detailed viewing.<br>
-      </td>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The system shows the details of the selected
-Playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">The playlist editor deletes a playlist.<br>
-      </td>
-      <td valign="top"><b>8.</b><br>
-      </td>
-      <td valign="top">The system deletes the playlist, than
-re-displays the list of available Playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>9.</b><br>
-      </td>
-      <td valign="top">The Playlist editor disconnects.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.</li>
-  <li><b>action 8:</b>
-the user tries to delete a non-existent or a scheduled playlist. the
-user is notified, and the list of playlists is displayed to the user.<br>
-  </li>
-</ul>
-<h3>UC-4 Retrieve remote files<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-4 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Retrieve remote files </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b><br>
-      </td>
-      <td valign="top">primary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b><br>
-      </td>
-      <td valign="top">(internal actor, initiator), Media archive,
-Local storage<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b><br>
-      </td>
-      <td valign="top">Retrieve remote files referenced by active
-playlists and store them in the local storage<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b><br>
-      </td>
-      <td valign="top">The
-daemon contacts the remote media archive and retrieves audio clips
-referenced by active playlists. The clips are stored locally for
-playing. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b><br>
-      </td>
-      <td valign="top">F1.2 </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-Note that this use case is somewhat reversed, as it is initiated by the
-system (not an actor), and the main tasks are done by an external actor
-(the Media archive).<br>
-<h4>Typical course of events</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">An Internal actor triggers the retrieval of some
-remote files. <br>
-      </td>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The system looks up the URN of the remote file,
-and determines the Media archive to contact regarding the file. </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>3.</b><br>
-      </td>
-      <td valign="top">The system contacts the Local storage and sends
-authorization information<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">Local storage authenticates the system and
-grants access<br>
-      </td>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The system iniquires the local storage about the
-availability of the file to download in the Local storage by presenting
-its unique ID<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">Local storage tells if the required file is
-already stored or not.<br>
-      </td>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">If the file is available in the local storage,
-the use case ends. Otherwise, it continues.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"><b>8.</b><br>
-      </td>
-      <td valign="top">The system contacts the Media archive and sends
-authorization information </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>9.</b> </td>
-      <td valign="top">Media archive authenticates the system and
-grants access </td>
-      <td valign="top"><b>10.</b> </td>
-      <td valign="top">The system requests an audio clip by presenting
-its unique ID </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>11.</b> </td>
-      <td valign="top">Media archive looks up the file, and presents it
-to the system </td>
-      <td valign="top"><b>12.</b> </td>
-      <td valign="top">The system retrieves the file and closes the
-connection to the Media archive<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>13.</b><br>
-      </td>
-      <td valign="top">The system presents the file to Local storage<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>14.</b><br>
-      </td>
-      <td valign="top">Local storage stores the file under the
-specified unique ID<br>
-      </td>
-      <td valign="top"><b>15.</b><br>
-      </td>
-      <td valign="top">The system closes the connection to Local
-storage.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 4:</b> the Local storage finds that the system can not
-be authenticated. the system is notified and the use case ends.</li>
-  <li><b>action 9:</b> the Media archive finds that the system can not
-be authenticated. the system is notified and the use case ends.</li>
-  <li><b>action 11:</b> the Media archive does not hold the requested
-audio clip. the system is notified and the use case ends.<br>
-    <br>
-  </li>
-</ul>
-<h3>UC-5 Review play log<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-5 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Review play log </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b> </td>
-      <td valign="top">secondary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b> </td>
-      <td valign="top">Broadcast auditor </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b> </td>
-      <td valign="top">Review what has been played </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b> </td>
-      <td valign="top">The
-Broadcast auditor reviews the audio clips that have been played in a
-selected time interval. He may generate reports for proof of broadcast
-reasons. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b> </td>
-      <td valign="top">F1.4 </td>
-    </tr>
-  </tbody>
-</table>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Broadcast auditor connects to the scheduler
-daemon with the intent of reviewing what has been played.<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Broadcast auditor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Broadcast auditor
-and grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>3.</b><br>
-      </td>
-      <td valign="top">The Broadcast auditor browses through the play
-log in a time-ordered manner.<br>
-      </td>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The system displays the play log entries.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The Broadcast auditor requests a play report for
-a given time period.<br>
-      </td>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The system displays the requested report.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">The Broadcast auditor disconnects.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.</li>
-</ul>
-<br>
-<h3>UC-6 Create playlist<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-6 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Create playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b> </td>
-      <td valign="top">secondary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b> </td>
-      <td valign="top">Playlist editor<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b> </td>
-      <td valign="top">Create a new playlist, and then edit it.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b> </td>
-      <td valign="top">The Playlist editor connects to the Scheduler
-with the aim of creating a new playlist. A basic user interface is
-provided, which allows professionals to create and edit the playlsits
-on the system.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b> </td>
-      <td valign="top">F1.12, F1.13<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Playlist editor connects to the scheduler with
-the intent of creating a new playlist.<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Playlist editor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Playlist editor and
-grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The Playlist editor signals that he whishes for
-a new playlist<br>
-      </td>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The system creates a new, empty playlist, and
-opens it for editing.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The Playlist editor edits the new playlist. See
-UC-7 actions 7-15 for details.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">The Playlist editor disconnects.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.</li>
-</ul>
-<br>
-<h3>UC-7 Edit playlist<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-7 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Edit playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b> </td>
-      <td valign="top">secondary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b> </td>
-      <td valign="top">Playlist editor<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b> </td>
-      <td valign="top">Edit a previoulsy uploaded playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b> </td>
-      <td valign="top">The Playlist editor connects to the
-Scheduler with the aim of either editing an existing playlist. A basic
-user interface is provided, which allows
-professionals to edit the playlsits on the system.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b> </td>
-      <td valign="top">F1.12 </td>
-    </tr>
-  </tbody>
-</table>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">Playlist editor connects to the scheduler with
-the intent of editing a playlist.<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The Playlist editor provides authentication
-information </td>
-      <td valign="top"><b>3.</b> </td>
-      <td valign="top">The system authenticates the Playlist editor and
-grants access. </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The system lists the available playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The Playlist editor selects a playlist for
-editing.<br>
-      </td>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The system opens the playlist in editing mode.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>7.</b><br>
-      </td>
-      <td valign="top">The Playlist editor browses the available Audio
-clips<br>
-      </td>
-      <td valign="top"><b>8.</b><br>
-      </td>
-      <td valign="top">The system shows the list of available audio
-clips<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>9.</b><br>
-      </td>
-      <td valign="top">The Playlist editor selects an Audio clip<br>
-      </td>
-      <td valign="top"><b>10.</b><br>
-      </td>
-      <td valign="top">The system displays details on the audio clip.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>11.</b><br>
-      </td>
-      <td valign="top">The Playlist editor ads a new audio clip to the
-playlist, at a certain timepoint in the playlist.<br>
-      </td>
-      <td valign="top"><b>12.</b><br>
-      </td>
-      <td valign="top">The new audio clip is added to the playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>13.</b><br>
-      </td>
-      <td valign="top">The Playlist editor removes an audio clip from
-the playlist.<br>
-      </td>
-      <td valign="top"><b>14.</b><br>
-      </td>
-      <td valign="top">The audio clip is removed from the playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>15.</b><br>
-      </td>
-      <td valign="top">The Playlist editor edits the fade-in or
-fade-out of a clip in the playlist.<br>
-      </td>
-      <td valign="top"><b>16.</b><br>
-      </td>
-      <td valign="top">The fade-in or fade-out is edited.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>17.</b><br>
-      </td>
-      <td valign="top">The Playlist editor saves the playlist.<br>
-      </td>
-      <td valign="top"><b>18.</b><br>
-      </td>
-      <td valign="top">The playlist is validated.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><b>19.</b><br>
-      </td>
-      <td valign="top">The playlist is saved.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>20.</b><br>
-      </td>
-      <td valign="top">The Playlist editor disconnects.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 3:</b> the system finds that the user can not be
-authenticated. the user is notified and the use case ends.</li>
-  <li><b>action 6:</b> the selected playlist is currently being
-executed. the user is notified that executing playlists can not be
-edited and the use case ends.</li>
-  <li><b>action 17:</b> the user decides not to save the playlist, but
-to revert to the version prior to editing. the playlist is reverted,
-and is shown to the user in non-edit mode.<br>
-  </li>
-  <li><b>action 18:</b> the playlist turns out not be valid. the user
-is notified that such a playlist can not be saved, and is given an
-opportunity to further edit the playlist. validation errors are also
-shown.</li>
-</ul>
-<br>
-<h3>UC-8 Start/stop scheduler<br>
-</h3>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>ref#</b> </td>
-      <td valign="top">UC-8 </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>use case</b> </td>
-      <td valign="top">Start/stop scheduler<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>type</b> </td>
-      <td valign="top">primary, essential </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>actors</b> </td>
-      <td valign="top">Administrator<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>purpose</b> </td>
-      <td valign="top">Start and stop the scheduler daemon<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>overview</b> </td>
-      <td valign="top">The adminisitrator starts the scheduler deamon
-by invoking a System V init-style startup script. He may also stop the
-deamon with the same script.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>references</b> </td>
-      <td valign="top">F1.14, F1.15, A1.8<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<h4>Typical course of events<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th colspan="2" valign="top">actor action <br>
-      </th>
-      <th colspan="2" valign="top">system response <br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>1.</b> </td>
-      <td valign="top">The Administrator invokes the scheduler's System
-V init script with the start parameter<br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"> <br>
-      </td>
-      <td valign="top"><b>2.</b> </td>
-      <td valign="top">The scheduler daemon starts up.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>3.</b><br>
-      </td>
-      <td valign="top">The Administrator checks to see if the scheduler
-daemon is running<br>
-      </td>
-      <td valign="top"><b>4.</b><br>
-      </td>
-      <td valign="top">The scheduler daemon reports that it is running.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>5.</b><br>
-      </td>
-      <td valign="top">The Administrator stops the scheduler deamon.<br>
-      </td>
-      <td valign="top"><b>6.</b><br>
-      </td>
-      <td valign="top">The scheduler daemon stops.<br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Alternate courses</h4>
-<ul>
-  <li><b>action 2:</b> if the scheduler is already running, indicate
-the starting attempt as an error.<br>
-  </li>
-  <li><b>action 4:</b> if the scheduler daemon is not running, it is
-reported that it is not running.<br>
-  </li>
-  <li><b>action 6:</b> if the scheduler daemon is not running, it is
-not stopped.<br>
-  </li>
-</ul>
-<h2>Conceptual model</h2>
-The following figure displays the semantic concepts identified for the
-Scheduler daemon, and the main associations between the concepts.<br>
-<br>
-<object type="image/svg+xml" name="essential use cases"
- data="Concepts.svg" height="1000" width="950"></object>
-<br>
-<h3>Concepts</h3>
-<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">concept<br>
-      </th>
-      <th valign="top">description<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top"><b>Media archive</b><br>
-      </td>
-      <td valign="top">An archive external to the system, which holds
-Audio clips. The archive offers its clips for download by requesting
-clips based on their unique ids.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Clip retriever</b><br>
-      </td>
-      <td valign="top">Retrieves Audio clips from the Media archive and
-stores them in local storage.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Local storage</b><br>
-      </td>
-      <td valign="top">A local store of Audio clips. Provides access to
-each clip based on the clips' unique id. Allows random access to the
-clip files.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Audio clip</b><br>
-      </td>
-      <td valign="top">A uniquely identified audio file.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Playlist</b><br>
-      </td>
-      <td valign="top">A metafile, containing references to Audio
-clips, and information on how the clips should be played.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>PlaylistElement</b><br>
-      </td>
-      <td valign="top">An association class describing the specifics of
-an instance of an Audio clip in a playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>FadeInfo</b><br>
-      </td>
-      <td valign="top">A class describing fade in or fade out
-characteristics for an Audio clip in a Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Playlist store</b><br>
-      </td>
-      <td valign="top">A container holding a range of playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Schedule</b><br>
-      </td>
-      <td valign="top">Contains Schedule entries<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Schedule entry</b><br>
-      </td>
-      <td valign="top">Contains the time and details of when a playlist
-should be played.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Scheduler daemon</b><br>
-      </td>
-      <td valign="top">Executes playlists at timepoints specified by
-the schedule.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Play log</b><br>
-      </td>
-      <td valign="top">A logging facility, holding Play log entries.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Play log entry</b><br>
-      </td>
-      <td valign="top">A record of when an Audio clip was played.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Play report</b><br>
-      </td>
-      <td valign="top">An audit report of what Audio clips have been
-played in a certain time period<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Authentication</b><br>
-      </td>
-      <td valign="top">Provides authentication services<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Playlist editor</b><br>
-      </td>
-      <td valign="top">An external editor, managing playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Broadcast auditor</b><br>
-      </td>
-      <td valign="top">An external auditor, browsing the Play log.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Administrator</b><br>
-      </td>
-      <td valign="top">The administrator responsible for starting and
-stopping the scheduler daemon.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h3>Associations</h3>
-<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <th valign="top">source<br>
-      </th>
-      <th valign="top">association<br>
-      </th>
-      <th valign="top">target<br>
-      </th>
-      <th valign="top">description<br>
-      </th>
-    </tr>
-    <tr>
-      <td valign="top">Clip retriever<br>
-      </td>
-      <td valign="top">Retrieves clips from<br>
-      </td>
-      <td valign="top">Media archive<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Media archive<br>
-      </td>
-      <td valign="top">Contains<br>
-      </td>
-      <td valign="top">Audio clip<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Clip retriever<br>
-      </td>
-      <td valign="top">Stores clips in<br>
-      </td>
-      <td valign="top">Local storage<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Local storage<br>
-      </td>
-      <td valign="top">Contains<br>
-      </td>
-      <td valign="top">Audio clip<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Playlist<br>
-      </td>
-      <td valign="top">References by PlaylistElement<br>
-      </td>
-      <td valign="top">Audio clip<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">PlaylistElement<br>
-      </td>
-      <td valign="top">Fades in with<br>
-      </td>
-      <td valign="top">FadeInfo<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">PlaylistElement<br>
-      </td>
-      <td valign="top">Fades out with<br>
-      </td>
-      <td valign="top">FadeInfo<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Playlist store<br>
-      </td>
-      <td valign="top">Contains<br>
-      </td>
-      <td valign="top">Play list<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Playlist editor<br>
-      </td>
-      <td valign="top">Uploads playlist to<br>
-      </td>
-      <td valign="top">Playlist store<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Playlist editor<br>
-      </td>
-      <td valign="top">Manages schedule in<br>
-      </td>
-      <td valign="top">Schedule<br>
-      </td>
-      <td valign="top">The Playlist editor schedules playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Schedule<br>
-      </td>
-      <td valign="top">Contains<br>
-      </td>
-      <td valign="top">Schedule entry<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Schedule entry<br>
-      </td>
-      <td valign="top">References<br>
-      </td>
-      <td valign="top">Playlist<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Scheduler daemon<br>
-      </td>
-      <td valign="top">Executes<br>
-      </td>
-      <td valign="top">Schedule<br>
-      </td>
-      <td valign="top">The Scheduler daemon plays the scheduled
-playlists.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Scheduler daemon<br>
-      </td>
-      <td valign="top">Logs into<br>
-      </td>
-      <td valign="top">Play log<br>
-      </td>
-      <td valign="top">The Scheduler daemon logs all the played audio
-clips into the Play log for proof of broadcast purposes.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Play log<br>
-      </td>
-      <td valign="top">Contains<br>
-      </td>
-      <td valign="top">Play log entry<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Play log<br>
-      </td>
-      <td valign="top">Generated<br>
-      </td>
-      <td valign="top">Play report<br>
-      </td>
-      <td valign="top">The play log generates reports based on Play log
-entries.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Play log entry<br>
-      </td>
-      <td valign="top">References<br>
-      </td>
-      <td valign="top">Audio clip<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Broadcast auditor<br>
-      </td>
-      <td valign="top">Browses entries from<br>
-      </td>
-      <td valign="top">Play log<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Broadcast auditor<br>
-      </td>
-      <td valign="top">Requests<br>
-      </td>
-      <td valign="top">Play report<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Playlist editor<br>
-      </td>
-      <td valign="top">Is authenticated by<br>
-      </td>
-      <td valign="top">Authentication<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Broadcast auditor<br>
-      </td>
-      <td valign="top">Is authenticated by<br>
-      </td>
-      <td valign="top">Authentication<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top">Administrator<br>
-      </td>
-      <td valign="top">Manages<br>
-      </td>
-      <td valign="top">Scheduler daemon<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h2>System behavior</h2>
-The behavior of the system as a whole as experienced from the outside
-is discussed in this section.<br>
-<h3>System sequence diagrams</h3>
-System diagrams are presented for each use case below.<br>
-<h4>UC-1 Upload playlists</h4>
-<object type="image/svg+xml" name="upload playlists sequence diagram"
- data="Uploadplaylists_SequenceDiagram.svg" height="200" width="550"></object>
-<br>
-<h4>UC-2 Manage schedule</h4>
-<object type="image/svg+xml" name="manage playlists sequence diagram"
- data="Manageschedule_SequenceDiagram.svg" height="350" width="650"></object>
-<br>
-<h4>UC-3 Manage playlists</h4>
-<object type="image/svg+xml" name="manage playlists sequence diagram"
- data="Manageplaylists_SequenceDiagram.svg" height="300" width="650"></object>
-<br>
-<h4>UC-4 Retrieve remote files<br>
-</h4>
-<object type="image/svg+xml"
- name="retrieve remote files sequence diagram"
- data="Retrieveremotefiles_SequenceDiagram.svg" height="300" width="750"></object>
-<br>
-<h4>UC-5 Review play log</h4>
-<object type="image/svg+xml" name="review play log sequence diagram"
- data="Reviewplaylog_SequenceDiagram.svg" height="250" width="650"></object>
-<h4>UC-6 Create playlist</h4>
-<object type="image/svg+xml" name="create playlist sequence diagram"
- data="Createplaylist_SequenceDiagram.svg" height="250" width="650"></object>
-<h4>UC-7 Edit playlist<br>
-<object type="image/svg+xml" name="edit playlist sequence diagram"
- data="Editplaylist_SequenceDiagram.svg" height="500" width="800"></object>
-</h4>
-<h4>UC-8 Start/stop scheduler</h4>
-<object type="image/svg+xml"
- name="start/stop scheduler sequence diagram"
- data="Startstopscheduler_SequenceDiagram.svg" height="200" width="600"></object>
-<br>
-<br>
-<h3>System objects</h3>
-The following figures shows the system objects and their functions, as
-derived from the system sequence diagrams.<br>
-<object type="image/svg+xml" name="system behaviour"
- data="Systembehaviour.svg" height="450" width="550"></object>
-<h3>Contracts</h3>
-For all operations exposed in the system sequence diagrams, the
-following contracts are defined.<br>
-<h4>Contract for Scheduler : authenticate</h4>
-See Authentication : authenticate<br>
-<br>
-<h4>Contract for Scheduler : uploadPlaylist</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">uploadPlaylist<br>
-(playlist : Playlist,<br>
-playtime: Schedule)<br>
-: UniqueId<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Upload a playlist and
-put it into the schedule.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.1, UC-1<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If the uploaded playlist
-is not valid, indicate as an error<br>
-If the proposed schedule conflicts with existing schedules, indicate as
-an error<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the unique id of the
-ScheduleEntry created with this upload<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">A new Playlist is created, storing the uploaded
-playlist<br>
-      </td>
-      <td valign="top">instance creation </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">Playlist is entered into the Playlist store<br>
-      </td>
-      <td valign="top">association formed<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">A new Schedule is created, according to the
-supplied schedule<br>
-      </td>
-      <td valign="top">instance creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">Schedule is associated with the Playlist<br>
-      </td>
-      <td valign="top">association formed<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displaySchedule</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displaySchedule<br>
-(from : TimeStamp,<br>
-to : TimeStamp)<br>
-: Schedule<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display Schedule entries
-for a time period.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.4, UC-2<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The Schedule entries for
-the specified time period.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displayPlaylist</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displayPlaylist<br>
-(playlistId : UniqueId)<br>
-: Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display a specific
-playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.4, UC-3<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If no playlist exists
-for the specified playlistId, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The requested playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : deletePlaylist</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">deletePlaylist<br>
-(playlist : Playlist)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Delete a specific
-playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.11, UC-3<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If no playlist exists
-for the specified playlistId, indicate as an error.<br>
-If the playlist is referenced by any Schedule entry, indicate as an
-error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The playlist is removed from the Playlist store.<br>
-      </td>
-      <td valign="top">association broken<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">References by the playlist to Audio clips removed<br>
-      </td>
-      <td valign="top">association broken<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The playlist is deleted<br>
-      </td>
-      <td valign="top">instance deletion<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : removeFromSchedule<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">removeFromSchedule<br>
-(scheduleEntryId : UniqueId)<br>
-: bool<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Remove a specific
-playlist from a schedule entry<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.9, UC-2<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If no ScheduleEntry by
-the specified
-scheduleEntryId exist, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">true if the specified
-entry was removed, false if it did not exist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">Reference to the playlist by the scheduleEntry
-is removed.<br>
-      </td>
-      <td valign="top">association broken<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The ScheduleEntry specified by the
-scheduleEntryId is deleted<br>
-      </td>
-      <td valign="top">instance deletion<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : reschedule<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">reschedule<br>
-(scheduleEntryId : UniqueId,<br>
-playtime : TimeStamp)<br>
-: bool<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Change when a certain
-playlist is scheduled to play.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.10, UC-2<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If no ScheduleEntry by
-the specified
-scheduleEntryId exist, indicate as an error.<br>
-If the new playtime conflicts with other schedule entries, indicate as
-an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">false on errors<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The time attribute of scheduleEntry is updated
-to the supplied playtime.<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displayPlaylists</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displayPlaylists<br>
-()<br>
-: Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display Playlists
-contained in the Playlist store<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.4, UC-3<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The playlists contained
-in the Playlist store.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displayPlayLog</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displayPlayLog<br>
-()<br>
-: Play log<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display Play log entries
-contained in the Play log<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.4, UC-5<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The play log entries
-contained in the Play log.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : generatePlayReport<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">generatePlayReport<br>
-(from : TimeStamp,<br>
-to : TimeStamp)<br>
-: Play report<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Present a report on what
-Audio clips have been played to the Broadcast auditor.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.4, UC-5<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A report on the played
-Audio clips played in the specified time period.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : createPlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">createPlaylist<br>
-()<br>
-: Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Create a new playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.12, UC-6<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A new playlist is
-created, and is immediately locked for editing.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">A new Playlist is created<br>
-      </td>
-      <td valign="top">instance creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The lockedForEditing attribute is set to true
-for the playlist<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The playlist is added to the Playlist store<br>
-      </td>
-      <td valign="top">association formed<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : openPlaylistForEditing<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">openPlaylistForEditing<br>
-(playlist : Playlist)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Open a playlist for
-editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A playlist is opened for
-editing. The playlist may not be played when being edited. Also, active
-(currently executing) playlists may not be opened for editing. This is
-in effect a lock, which is released by saving the playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">if the playlist is
-currently being executed, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The current version of the playlist is stored,
-in case the user wants to revert to the last saved version (see
-revertEditedPlaylist)<br>
-      </td>
-      <td valign="top">instance creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The lockedForEditing attribute is set to true
-for the playlist<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : addAudioClipToPlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">addAutioClipToPlaylist<br>
-(playlist : Playlist,<br>
-audioClip : AudioClip,<br>
-relativeOffset : Time)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Add an Audio clip to a
-Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The Audio clip is added
-to the playlist with the specified relativeOffset from the beginning of
-the Playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the Playlist is
-currently opened for editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The new PlaylistElement is created associating
-the playlist with the audio clip, with the specified relativeOffset<br>
-      </td>
-      <td valign="top">association formed, instnace creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displayAudioClips<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displayAudioClips<br>
-()<br>
-: AudioClip<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display the audio clips
-known to the Scheduler<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The Audio clips kown to
-the Scheduler<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : displayAudioClip<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">displayAudioClip<br>
-(audioClipId : UniqueId)<br>
-: AudioClip<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Display the audio clip
-specified by the audioClipId<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">if no audio clip by the
-specified id exists, indicate as an error<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The Audio clip specified
-by the audioClipId<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : removeAudioClipFromPlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">removeAutioClipFromPlaylist<br>
-(playlist : Playlist,<br>
-audioClip : AudioClip)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Remove an Audio clip
-from a Playlist<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The Audio clip is
-removed from the Playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If the Audio clip is not
-in the playlist, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the Playlist is
-currently opened for editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The PlaylistElement associating the AudioClip
-with the Playlist is removed, with the related FadeInfo instances<br>
-      </td>
-      <td valign="top">instance deletion, association broken<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : updateFadeInFadeOut<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">updateFadeInFadeOut<br>
-(audioClip : AudioClip,<br>
-playlist : Playlist)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Update the fade-in and
-fade-out parameters for an audio clip playing in a playlist.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If the Audio clip is not
-in the playlist, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the Playlist is
-currently opened for editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The fade-in and fade-out parameters for the
-audio clip in the playlist are updated<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : validatePlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">validatePlaylist<br>
-(playlist : Playlist)<br>
-: boolean<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Validate a playlist for
-being complete.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The playlist is checked
-for being complete (not containing silence) and other sanity criteria.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : savePlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">savePlaylist<br>
-(playlist : Playlist)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The playlist is saved.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">If the playlist is not
-valid, indicate as an error.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the Playlist is
-currently opened for editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The lockedForEditing attriubute is set to false
-for the playlist<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The old version of the Playlist that could have
-been used for reverting is deleted (see revertEditedPlaylist)<br>
-      </td>
-      <td valign="top">instance deletion<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : revertEditedPlaylist<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">revertEditedPlaylist<br>
-(playlist : Playlist)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Changes are discarded
-for a Playlist that is being edited.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.13, UC-7<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The contents of the
-playlist are reverted to the state prior to when editing began on it.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the Playlist is
-currently opened for editing<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The contents of the Playlist are reverted to the
-last saved version. This includes deleting all created PlaylistElement
-and FadeInfo instances.<br>
-      </td>
-      <td valign="top">attribute modification, instance deletion<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The lockedForEditing attriubute is set to false
-for the playlist<br>
-      </td>
-      <td valign="top">attribute modification<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : start<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">start<br>
-()<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Starts the scheduler
-daemon<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.14, UC-8<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A System V init-style
-daemon starting entry point<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The scheduler daemon is
-currently not running<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The scheduler daemon object is created<br>
-      </td>
-      <td valign="top">instance creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">All the necessary structures are created for the
-deamon to run<br>
-      </td>
-      <td valign="top">instance creation<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : isRunning<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">isRunning<br>
-()<br>
-: boolean<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Tells if the scheduler
-daemon is running<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">UC-8<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A System V init-style
-daemon status entry point<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">true of the daemon is
-running, false otherwise<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="left" valign="top">none<br>
-      </td>
-      <td align="center" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Scheduler : stop<br>
-</h4>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">stop<br>
-()<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Stops the scheduler
-daemon<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">system<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.15, UC-8<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">A System V init-style
-daemon stopping entry point<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">The scheduler daemon is
-currently running<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">The scheduler daemon object is deleted<br>
-      </td>
-      <td valign="top">instance deletion<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Media archive : authenticate</h4>
-TODO: move to Media archive spec<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">authenticate<br>
-(authenticationInfo : AuthenticationInfo)<br>
-: boolean<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Check if the provided
-authentication info is recognized.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">interface<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">UC-4<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">true if the provided
-authentication is recognized, false otherwise<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td valign="top">none<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Media archive : retrieveAudioClip</h4>
-TODO: move to Media archive spec<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">retrieveAudioClip<br>
-(clipId : UniqueId)<br>
-: AudioClip<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Retrieve an AudioClip
-specified by the supplied audio clip id.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">interface<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">F1.2, UC-4<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">if no audio clip exists
-with the supplied id, indicate as an error<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">the requested audio clip<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td align="center" valign="top"><b>condition</b><br>
-      </td>
-      <td align="center" valign="top"><b>type</b><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">A new Audio clip is created and filled with the
-contents of the retrieved audio clip<br>
-      </td>
-      <td valign="top">instance creation </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top">Audio clip is entered into Local storage<br>
-      </td>
-      <td valign="top">association formed<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Local storage : authenticate</h4>
-TODO: move to Local storage spec<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">authenticate<br>
-(authenticationInfo : AuthenticationInfo)<br>
-: boolean<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Check if the provided
-authentication info is recognized.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">interface<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">UC-4<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">true if the provided
-authentication is recognized, false otherwise<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td valign="top">none<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Local storage : existsAudioClip</h4>
-TODO: move to Local storage spec<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">existsAudioClip<br>
-(audioClipId : UniqueId)<br>
-: boolean<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Tell if an audio clip by
-the provided unique id is stored in the Local storage<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">interface<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">UC-4<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">true if an audio clip
-with the provided id exists, false otherwise<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td valign="top">none<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h4>Contract for Local storage : storeAudioClip</h4>
-TODO: move to Local storage spec<br>
-<table border="0" cellpadding="2" cellspacing="2" width="100%">
-  <tbody>
-    <tr>
-      <td valign="top"><b>Name</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">storeAudioClip<br>
-(audioClip : AudioClip)<br>
-: void<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Responsibilities</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">Store an audio clip.<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Type</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">interface<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Cross-reference</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">UC-4<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Notes</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Exceptions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Output</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none<br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Pre-conditions</b><br>
-      </td>
-      <td colspan="2" rowspan="1" valign="top">none</td>
-    </tr>
-    <tr>
-      <td valign="top"><b>Post-conditions</b><br>
-      </td>
-      <td valign="top">The supplied audio clip is stored in the storage.<br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-    <tr>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-      <td valign="top"><br>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<br>
-<h1>Glossary</h1>
-<b>playlist</b><br>
-The playlist is a metafile, containing references to audio clips that
-should be played, and details on how they should be played.<br>
-<br>
-</body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+	<TITLE>LiveSupport Scheduler specifications</TITLE>
+	<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.2  (Linux)">
+	<META NAME="AUTHOR" CONTENT="&Aacute;kos Mar&oacute;y">
+	<META NAME="CREATED" CONTENT="20041015;13061300">
+	<META NAME="CHANGED" CONTENT="20041015;13093000">
+</HEAD>
+<BODY LANG="en-US" DIR="LTR">
+<H1>Preface</H1>
+<P>This document is part of the <A HREF="http://livesupport.campware.org/">LiveSupport</A>
+project, Copyright &Scaron; 2004 <A HREF="http://www.mdlf.org/">Media
+Development Loan Fund</A>, under the GNU <A HREF="http://www.gnu.org/licenses/gpl.html">GPL</A>.</P>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in">Author: $Author: fgerlits $ 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">Version: $Revision: 1.4 $ 
+	</P>
+	<LI><P>Location: $Source:
+	/home/cvs/livesupport/doc/model/Scheduler/index.html,v $ 
+	</P>
+</UL>
+<H1>Scope</H1>
+<P>This document contains the specification of the LiveSupport
+Scheduler daemon.<BR><BR>This document contains embedded <A HREF="http://www.w3.org/Graphics/SVG/">SVG</A>
+figures, thus an SVG capable browser is needed to view it, or an SVG
+plugin like <A HREF="http://www.adobe.com/svg/">Adobe's SVG Viewer</A>.</P>
+<H1>Requirements</H1>
+<H2>Overview</H2>
+<P>The purpose of the LiveSupport Scheduler daemon is to execute
+playlists.</P>
+<H2>Goals</H2>
+<P>The scheduler daemon is a remotely accessible service accepting
+playlists on a local audio interface. Specific goals include:</P>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in">remote manageability 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">handling remote audio clips
+	referenced by playlists 
+	</P>
+	<LI><P>low-latency playback 
+	</P>
+</UL>
+<H2>System functions</H2>
+<P STYLE="margin-bottom: 0in">The main system functions are described
+below. There are three categories for these functions:</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>function category</P>
+		</TH>
+		<TH>
+			<P>meaning</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>evident</P>
+		</TD>
+		<TD>
+			<P>Should perform, and the user should be cognizant that it is
+			performed</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>hidden</P>
+		</TD>
+		<TD>
+			<P>Should perform, but not visible to the users.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>frill</P>
+		</TD>
+		<TD>
+			<P>Optional</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>ref#</P>
+		</TH>
+		<TH>
+			<P>function</P>
+		</TH>
+		<TH>
+			<P>category</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.1</P>
+		</TD>
+		<TD>
+			<P>Accept uploaded playlists</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.2</P>
+		</TD>
+		<TD>
+			<P>Retrieve remote files referenced by playlists</P>
+		</TD>
+		<TD>
+			<P>hidden</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.3</P>
+		</TD>
+		<TD>
+			<P>Access local files</P>
+		</TD>
+		<TD>
+			<P>hidden</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.4</P>
+		</TD>
+		<TD>
+			<P>Provide status information</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.5</P>
+		</TD>
+		<TD>
+			<P>Log playlist execution for proof of broadcast reasons</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.6</P>
+		</TD>
+		<TD>
+			<P>Purge local file storage of unused audio clips</P>
+		</TD>
+		<TD>
+			<P>hidden</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.7</P>
+		</TD>
+		<TD>
+			<P>Execute playlists</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.8</P>
+		</TD>
+		<TD>
+			<P>Play live streams as part of the playlist</P>
+		</TD>
+		<TD>
+			<P>hidden</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.9</P>
+		</TD>
+		<TD>
+			<P>Remove playists from the schedule</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.10</P>
+		</TD>
+		<TD>
+			<P>Re-schedule playlsits</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.11</P>
+		</TD>
+		<TD>
+			<P>Delete playlists</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.12</P>
+		</TD>
+		<TD>
+			<P>Create playlists</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.13</P>
+		</TD>
+		<TD>
+			<P>Edit playlists</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.14</P>
+		</TD>
+		<TD>
+			<P>Start the scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.15</P>
+		</TD>
+		<TD>
+			<P>Stop the scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>evident</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H2>System attributes</H2>
+<P>Generic attributes</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>ref#</P>
+		</TH>
+		<TH>
+			<P>attribute</P>
+		</TH>
+		<TH>
+			<P>details and constraints</P>
+		</TH>
+		<TH>
+			<P>category</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>A1.1</P>
+		</TD>
+		<TD>
+			<P>operating system platform</P>
+		</TD>
+		<TD>
+			<P>Linux</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>A1.2</P>
+		</TD>
+		<TD>
+			<P>supported audio interfaces</P>
+		</TD>
+		<TD>
+			<P>ALSA (maybe also OSS?)</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>A1.3</P>
+		</TD>
+		<TD>
+			<P>supported playlist format</P>
+		</TD>
+		<TD>
+			<P>SMIL 2.0. only partial support is required, which focuses only
+			on audio aspects of SMIL.</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>A1.4</P>
+		</TD>
+		<TD>
+			<P>supported audio clip formats</P>
+		</TD>
+		<TD>
+			<P>Ogg Vorbis, mp3, wav</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR>Attributes related to system functions</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>ref#</P>
+		</TH>
+		<TH>
+			<P>function</P>
+		</TH>
+		<TH>
+			<P>ref#</P>
+		</TH>
+		<TH>
+			<P>attribute</P>
+		</TH>
+		<TH>
+			<P>details and constraints</P>
+		</TH>
+		<TH>
+			<P>category</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.7</P>
+		</TD>
+		<TD>
+			<P>Execute playlists</P>
+		</TD>
+		<TD>
+			<P>A1.5</P>
+		</TD>
+		<TD>
+			<P>low latency</P>
+		</TD>
+		<TD>
+			<P>when executing playlists, very low latency should be achieved</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>A1.6</P>
+		</TD>
+		<TD>
+			<P>handle time skew</P>
+		</TD>
+		<TD>
+			<P>the daemon has to take into account that the system's clock is
+			not accurate. the clock is synchronized to an external regularly,
+			but the resulting time-jump must be handled.</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.8</P>
+		</TD>
+		<TD>
+			<P>Play live streams as part of the playlist 
+			</P>
+		</TD>
+		<TD>
+			<P>A1.7</P>
+		</TD>
+		<TD>
+			<P>supported audio stream formats</P>
+		</TD>
+		<TD>
+			<P>Ogg Vorbis via HTTP, mp3 via HTTP</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>F1.14<BR>F1.15</P>
+		</TD>
+		<TD>
+			<P>Start / stop the scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>A1.8</P>
+		</TD>
+		<TD>
+			<P>provide System V init style services</P>
+		</TD>
+		<TD>
+			<P>Provide a System V init interface to starting and stopping the
+			scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>must</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H2>Essential use cases</H2>
+<P>This section lists generic (essential) uses cases, that do not
+contain architecture-specific considerations.</P>
+<H3>UC-1 Upload playlist</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-1 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Upload playlist 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>primary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Upload a playlist 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor uploads a new playlist. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>F1.1 
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor connects to the scheduler daemon with the
+			intent of uploading a new playlist. 
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Playlist editor and grants access.
+						</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>4.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor presents the new playlist and the intended
+			schedule for the playlist.</P>
+		</TD>
+		<TD>
+			<P><B>5.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system validates the new playlist, and sees that it does
+			not conflict with existing schedule. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>6.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system stores the new playlist, adds it to the schedule,
+			and sends confirmation to the Playlist editor. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor receives confirmation and disconnects. 
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
+	that the user can not be authenticated. the user is notified and the
+	use case ends.</P>
+	<LI><P><B>action 5:</B> the system finds that the uploaded playlist
+	is invalid, or it conflicts the existing schedule. the user is
+	notified and the use case ends.</P>
+</UL>
+<H3>UC-2 Manage schedule</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B></P>
+		</TD>
+		<TD>
+			<P>UC-2 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Manage schedule 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B></P>
+		</TD>
+		<TD>
+			<P>primary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B></P>
+		</TD>
+		<TD>
+			<P>Playlist editor 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B></P>
+		</TD>
+		<TD>
+			<P>View the schedule and remove or re-schedule playlists</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor reviews the schedule. If he decides to, he
+			might remove or re-schedule some of these playlists. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B></P>
+		</TD>
+		<TD>
+			<P>F1.4, F1.9, F1.10</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor connects to the scheduler daemon with the
+			intent of viewing and editing the schedule.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Playlist editor and grants access.
+						</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The system shows the Schedule to the Playlist editor</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor browses the Schedule, selects a playlist
+			for detailed viewing.</P>
+		</TD>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The system shows the details of the selected Playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>The playlist editor removes a playlist from the schedule.</P>
+		</TD>
+		<TD>
+			<P><B>8.</B></P>
+		</TD>
+		<TD>
+			<P>The system removes the playlist from the schedule, than
+			re-displays the updated schedle.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>9.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor re-schedules a playlist</P>
+		</TD>
+		<TD>
+			<P><B>10.</B></P>
+		</TD>
+		<TD>
+			<P>The system removes the selected playlist from the schedule, and
+			re-enters it at a new timepoint</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>11.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor browses the Schedule</P>
+		</TD>
+		<TD>
+			<P><B>12.</B></P>
+		</TD>
+		<TD>
+			<P>The system shows the Schedule to the playlist editor</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>13.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor disconnects.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
+	that the user can not be authenticated. the user is notified and the
+	use case ends. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 8:</B> the user tries to
+	remove a non-existent playlist from the schedule. the user is
+	notified, and the schedule is displayed to the user. 
+	</P>
+	<LI><P><B>action 10:</B> the new playtime for the schedule conflicts
+	with already scheduled playlist playtimes. the user is notified, and
+	the schedule is displayed again</P>
+</UL>
+<H3>UC-3 Manage playlists</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B></P>
+		</TD>
+		<TD>
+			<P>UC-3 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Manage playlists 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B></P>
+		</TD>
+		<TD>
+			<P>primary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B></P>
+		</TD>
+		<TD>
+			<P>Playlist editor 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B></P>
+		</TD>
+		<TD>
+			<P>View and delete playlists 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor reviews the uploaded playlists. If he
+			decides so, he might delete some of these playlists. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B></P>
+		</TD>
+		<TD>
+			<P>F1.4, F1.11</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor connects to the scheduler daemon with the
+			intent of viewing and deleting playlists.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Playlist editor and grants access.
+						</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The system lists the available Playlists</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor browses the playlists, and selects one for
+			detailed viewing.</P>
+		</TD>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The system shows the details of the selected Playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>The playlist editor deletes a playlist.</P>
+		</TD>
+		<TD>
+			<P><B>8.</B></P>
+		</TD>
+		<TD>
+			<P>The system deletes the playlist, than re-displays the list of
+			available Playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>9.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor disconnects.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
+	that the user can not be authenticated. the user is notified and the
+	use case ends. 
+	</P>
+	<LI><P><B>action 8:</B> the user tries to delete a non-existent or a
+	scheduled playlist. the user is notified, and the list of playlists
+	is displayed to the user.</P>
+</UL>
+<H3>UC-4 Retrieve remote files</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-4 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Retrieve remote files 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B></P>
+		</TD>
+		<TD>
+			<P>primary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B></P>
+		</TD>
+		<TD>
+			<P>(internal actor, initiator), Media archive, Local storage</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B></P>
+		</TD>
+		<TD>
+			<P>Retrieve remote files referenced by active playlists and store
+			them in the local storage</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B></P>
+		</TD>
+		<TD>
+			<P>The daemon contacts the remote media archive and retrieves
+			audio clips referenced by active playlists. The clips are stored
+			locally for playing. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B></P>
+		</TD>
+		<TD>
+			<P>F1.2 
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR>Note that this use case is somewhat reversed, as it is
+initiated by the system (not an actor), and the main tasks are done
+by an external actor (the Media archive).</P>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>An Internal actor triggers the retrieval of some remote files. 
+			</P>
+		</TD>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system looks up the URN of the remote file, and determines
+			the Media archive to contact regarding the file. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B></P>
+		</TD>
+		<TD>
+			<P>The system contacts the Local storage and sends authorization
+			information</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>Local storage authenticates the system and grants access</P>
+		</TD>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The system iniquires the local storage about the availability
+			of the file to download in the Local storage by presenting its
+			unique ID</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>Local storage tells if the required file is already stored or
+			not.</P>
+		</TD>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>If the file is available in the local storage, the use case
+			ends. Otherwise, it continues.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>8.</B></P>
+		</TD>
+		<TD>
+			<P>The system contacts the Media archive and sends authorization
+			information 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>9.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Media archive authenticates the system and grants access 
+			</P>
+		</TD>
+		<TD>
+			<P><B>10.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system requests an audio clip by presenting its unique ID 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>11.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Media archive looks up the file, and presents it to the system 
+			</P>
+		</TD>
+		<TD>
+			<P><B>12.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system retrieves the file and closes the connection to the
+			Media archive</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>13.</B></P>
+		</TD>
+		<TD>
+			<P>The system presents the file to Local storage</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>14.</B></P>
+		</TD>
+		<TD>
+			<P>Local storage stores the file under the specified unique ID</P>
+		</TD>
+		<TD>
+			<P><B>15.</B></P>
+		</TD>
+		<TD>
+			<P>The system closes the connection to Local storage.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 4:</B> the Local storage
+	finds that the system can not be authenticated. the system is
+	notified and the use case ends. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 9:</B> the Media archive
+	finds that the system can not be authenticated. the system is
+	notified and the use case ends. 
+	</P>
+	<LI><P><B>action 11:</B> the Media archive does not hold the
+	requested audio clip. the system is notified and the use case ends.</P>
+</UL>
+<H3>UC-5 Review play log</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-5 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Review play log 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>secondary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Broadcast auditor 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Review what has been played 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Broadcast auditor reviews the audio clips that have been
+			played in a selected time interval. He may generate reports for
+			proof of broadcast reasons. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>F1.4 
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Broadcast auditor connects to the scheduler daemon with the
+			intent of reviewing what has been played.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Broadcast auditor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Broadcast auditor and grants
+			access. 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>3.</B></P>
+		</TD>
+		<TD>
+			<P>The Broadcast auditor browses through the play log in a
+			time-ordered manner.</P>
+		</TD>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The system displays the play log entries.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The Broadcast auditor requests a play report for a given time
+			period.</P>
+		</TD>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The system displays the requested report.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>The Broadcast auditor disconnects.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P><B>action 3:</B> the system finds that the user can not be
+	authenticated. the user is notified and the use case ends. 
+	</P>
+</UL>
+<P><BR><BR>
+</P>
+<H3>UC-6 Create playlist</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-6 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Create playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>secondary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Create a new playlist, and then edit it.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor connects to the Scheduler with the aim of
+			creating a new playlist. A basic user interface is provided, which
+			allows professionals to create and edit the playlsits on the
+			system.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>F1.12, F1.13</P>
+		</TD>
+	</TR>
+</TABLE>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor connects to the scheduler with the intent of
+			creating a new playlist.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Playlist editor and grants access.
+						</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor signals that he whishes for a new playlist</P>
+		</TD>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The system creates a new, empty playlist, and opens it for
+			editing.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor edits the new playlist. See UC-7 actions
+			7-15 for details.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor disconnects.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P><B>action 3:</B> the system finds that the user can not be
+	authenticated. the user is notified and the use case ends. 
+	</P>
+</UL>
+<P><BR><BR>
+</P>
+<H3>UC-7 Edit playlist</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-7 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Edit playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>secondary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Edit a previoulsy uploaded playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor connects to the Scheduler with the aim of
+			either editing an existing playlist. A basic user interface is
+			provided, which allows professionals to edit the playlsits on the
+			system.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>F1.12 
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist editor connects to the scheduler with the intent of
+			editing a playlist.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor provides authentication information 
+			</P>
+		</TD>
+		<TD>
+			<P><B>3.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The system authenticates the Playlist editor and grants access.
+						</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The system lists the available playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor selects a playlist for editing.</P>
+		</TD>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The system opens the playlist in editing mode.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>7.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor browses the available Audio clips</P>
+		</TD>
+		<TD>
+			<P><B>8.</B></P>
+		</TD>
+		<TD>
+			<P>The system shows the list of available audio clips</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>9.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor selects an Audio clip</P>
+		</TD>
+		<TD>
+			<P><B>10.</B></P>
+		</TD>
+		<TD>
+			<P>The system displays details on the audio clip.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>11.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor ads a new audio clip to the playlist, at a
+			certain timepoint in the playlist.</P>
+		</TD>
+		<TD>
+			<P><B>12.</B></P>
+		</TD>
+		<TD>
+			<P>The new audio clip is added to the playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>13.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor removes an audio clip from the playlist.</P>
+		</TD>
+		<TD>
+			<P><B>14.</B></P>
+		</TD>
+		<TD>
+			<P>The audio clip is removed from the playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>15.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor edits the fade-in or fade-out of a clip in
+			the playlist.</P>
+		</TD>
+		<TD>
+			<P><B>16.</B></P>
+		</TD>
+		<TD>
+			<P>The fade-in or fade-out is edited.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>17.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor saves the playlist.</P>
+		</TD>
+		<TD>
+			<P><B>18.</B></P>
+		</TD>
+		<TD>
+			<P>The playlist is validated.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>19.</B></P>
+		</TD>
+		<TD>
+			<P>The playlist is saved.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>20.</B></P>
+		</TD>
+		<TD>
+			<P>The Playlist editor disconnects.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
+	that the user can not be authenticated. the user is notified and the
+	use case ends. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 6:</B> the selected
+	playlist is currently being executed. the user is notified that
+	executing playlists can not be edited and the use case ends. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 17:</B> the user decides
+	not to save the playlist, but to revert to the version prior to
+	editing. the playlist is reverted, and is shown to the user in
+	non-edit mode.</P>
+	<LI><P><B>action 18:</B> the playlist turns out not be valid. the
+	user is notified that such a playlist can not be saved, and is given
+	an opportunity to further edit the playlist. validation errors are
+	also shown. 
+	</P>
+</UL>
+<P><BR><BR>
+</P>
+<H3>UC-8 Start/stop scheduler</H3>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>ref#</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>UC-8 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>use case</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Start/stop scheduler</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>type</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>primary, essential 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>actors</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Administrator</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>purpose</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>Start and stop the scheduler daemon</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>overview</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The adminisitrator starts the scheduler deamon by invoking a
+			System V init-style startup script. He may also stop the deamon
+			with the same script.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>references</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>F1.14, F1.15, A1.8</P>
+		</TD>
+	</TR>
+</TABLE>
+<H4>Typical course of events</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH COLSPAN=2>
+			<P>actor action 
+			</P>
+		</TH>
+		<TH COLSPAN=2>
+			<P>system response 
+			</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>1.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The Administrator invokes the scheduler's System V init script
+			with the start parameter</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><B>2.</B> 
+			</P>
+		</TD>
+		<TD>
+			<P>The scheduler daemon starts up.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>3.</B></P>
+		</TD>
+		<TD>
+			<P>The Administrator checks to see if the scheduler daemon is
+			running</P>
+		</TD>
+		<TD>
+			<P><B>4.</B></P>
+		</TD>
+		<TD>
+			<P>The scheduler daemon reports that it is running.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>5.</B></P>
+		</TD>
+		<TD>
+			<P>The Administrator stops the scheduler deamon.</P>
+		</TD>
+		<TD>
+			<P><B>6.</B></P>
+		</TD>
+		<TD>
+			<P>The scheduler daemon stops.</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Alternate courses</H4>
+<UL>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 2:</B> if the scheduler
+	is already running, indicate the starting attempt as an error.</P>
+	<LI><P STYLE="margin-bottom: 0in"><B>action 4:</B> if the scheduler
+	daemon is not running, it is reported that it is not running.</P>
+	<LI><P><B>action 6:</B> if the scheduler daemon is not running, it
+	is not stopped.</P>
+</UL>
+<H2>Conceptual model</H2>
+<P>The following figure displays the semantic concepts identified for
+the Scheduler daemon, and the main associations between the
+concepts.<BR><BR><BR>
+</P>
+<H3>Concepts</H3>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>concept</P>
+		</TH>
+		<TH>
+			<P>description</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Media archive</B></P>
+		</TD>
+		<TD>
+			<P>An archive external to the system, which holds Audio clips. The
+			archive offers its clips for download by requesting clips based on
+			their unique ids.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Clip retriever</B></P>
+		</TD>
+		<TD>
+			<P>Retrieves Audio clips from the Media archive and stores them in
+			local storage.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Local storage</B></P>
+		</TD>
+		<TD>
+			<P>A local store of Audio clips. Provides access to each clip
+			based on the clips' unique id. Allows random access to the clip
+			files.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Audio clip</B></P>
+		</TD>
+		<TD>
+			<P>A uniquely identified audio file.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Playlist</B></P>
+		</TD>
+		<TD>
+			<P>A metafile, containing references to Audio clips, and
+			information on how the clips should be played.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>PlaylistElement</B></P>
+		</TD>
+		<TD>
+			<P>An association class describing the specifics of an instance of
+			an Audio clip in a playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>FadeInfo</B></P>
+		</TD>
+		<TD>
+			<P>A class describing fade in or fade out characteristics for an
+			Audio clip in a Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Playlist store</B></P>
+		</TD>
+		<TD>
+			<P>A container holding a range of playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Schedule</B></P>
+		</TD>
+		<TD>
+			<P>Contains Schedule entries</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Schedule entry</B></P>
+		</TD>
+		<TD>
+			<P>Contains the time and details of when a playlist should be
+			played.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Scheduler daemon</B></P>
+		</TD>
+		<TD>
+			<P>Executes playlists at timepoints specified by the schedule.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Play log</B></P>
+		</TD>
+		<TD>
+			<P>A logging facility, holding Play log entries.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Play log entry</B></P>
+		</TD>
+		<TD>
+			<P>A record of when an Audio clip was played.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Play report</B></P>
+		</TD>
+		<TD>
+			<P>An audit report of what Audio clips have been played in a
+			certain time period</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Authentication</B></P>
+		</TD>
+		<TD>
+			<P>Provides authentication services</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Playlist editor</B></P>
+		</TD>
+		<TD>
+			<P>An external editor, managing playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Broadcast auditor</B></P>
+		</TD>
+		<TD>
+			<P>An external auditor, browsing the Play log.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Administrator</B></P>
+		</TD>
+		<TD>
+			<P>The administrator responsible for starting and stopping the
+			scheduler daemon.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H3>Associations</H3>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TH>
+			<P>source</P>
+		</TH>
+		<TH>
+			<P>association</P>
+		</TH>
+		<TH>
+			<P>target</P>
+		</TH>
+		<TH>
+			<P>description</P>
+		</TH>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Clip retriever</P>
+		</TD>
+		<TD>
+			<P>Retrieves clips from</P>
+		</TD>
+		<TD>
+			<P>Media archive</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Media archive</P>
+		</TD>
+		<TD>
+			<P>Contains</P>
+		</TD>
+		<TD>
+			<P>Audio clip</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Clip retriever</P>
+		</TD>
+		<TD>
+			<P>Stores clips in</P>
+		</TD>
+		<TD>
+			<P>Local storage</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Local storage</P>
+		</TD>
+		<TD>
+			<P>Contains</P>
+		</TD>
+		<TD>
+			<P>Audio clip</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Playlist</P>
+		</TD>
+		<TD>
+			<P>References by PlaylistElement</P>
+		</TD>
+		<TD>
+			<P>Audio clip</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>PlaylistElement</P>
+		</TD>
+		<TD>
+			<P>Fades in with</P>
+		</TD>
+		<TD>
+			<P>FadeInfo</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>PlaylistElement</P>
+		</TD>
+		<TD>
+			<P>Fades out with</P>
+		</TD>
+		<TD>
+			<P>FadeInfo</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Playlist store</P>
+		</TD>
+		<TD>
+			<P>Contains</P>
+		</TD>
+		<TD>
+			<P>Play list</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Playlist editor</P>
+		</TD>
+		<TD>
+			<P>Uploads playlist to</P>
+		</TD>
+		<TD>
+			<P>Playlist store</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Playlist editor</P>
+		</TD>
+		<TD>
+			<P>Manages schedule in</P>
+		</TD>
+		<TD>
+			<P>Schedule</P>
+		</TD>
+		<TD>
+			<P>The Playlist editor schedules playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Schedule</P>
+		</TD>
+		<TD>
+			<P>Contains</P>
+		</TD>
+		<TD>
+			<P>Schedule entry</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Schedule entry</P>
+		</TD>
+		<TD>
+			<P>References</P>
+		</TD>
+		<TD>
+			<P>Playlist</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>Executes</P>
+		</TD>
+		<TD>
+			<P>Schedule</P>
+		</TD>
+		<TD>
+			<P>The Scheduler daemon plays the scheduled playlists.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Scheduler daemon</P>
+		</TD>
+		<TD>
+			<P>Logs into</P>
+		</TD>
+		<TD>
+			<P>Play log</P>
+		</TD>
+		<TD>
+			<P>The Scheduler daemon logs all the played audio clips into the
+			Play log for proof of broadcast purposes.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Play log</P>
+		</TD>
+		<TD>
+			<P>Contains</P>
+		</TD>
+		<TD>
+			<P>Play log entry</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Play log</P>
+		</TD>
+		<TD>
+			<P>Generated</P>
+		</TD>
+		<TD>
+			<P>Play report</P>
+		</TD>
+		<TD>
+			<P>The play log generates reports based on Play log entries.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Play log entry</P>
+		</TD>
+		<TD>
+			<P>References</P>
+		</TD>
+		<TD>
+			<P>Audio clip</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Broadcast auditor</P>
+		</TD>
+		<TD>
+			<P>Browses entries from</P>
+		</TD>
+		<TD>
+			<P>Play log</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Broadcast auditor</P>
+		</TD>
+		<TD>
+			<P>Requests</P>
+		</TD>
+		<TD>
+			<P>Play report</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Playlist editor</P>
+		</TD>
+		<TD>
+			<P>Is authenticated by</P>
+		</TD>
+		<TD>
+			<P>Authentication</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Broadcast auditor</P>
+		</TD>
+		<TD>
+			<P>Is authenticated by</P>
+		</TD>
+		<TD>
+			<P>Authentication</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P>Administrator</P>
+		</TD>
+		<TD>
+			<P>Manages</P>
+		</TD>
+		<TD>
+			<P>Scheduler daemon</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H2>System behavior</H2>
+<P>The behavior of the system as a whole as experienced from the
+outside is discussed in this section.</P>
+<H3>System sequence diagrams</H3>
+<P>System diagrams are presented for each use case below.</P>
+<H4>UC-1 Upload playlists</H4>
+<P><BR><BR>
+</P>
+<H4>UC-2 Manage schedule</H4>
+<P><BR><BR>
+</P>
+<H4>UC-3 Manage playlists</H4>
+<P><BR><BR>
+</P>
+<H4>UC-4 Retrieve remote files</H4>
+<P><BR><BR>
+</P>
+<H4>UC-5 Review play log</H4>
+<H4>UC-6 Create playlist</H4>
+<H4>UC-7 Edit playlist</H4>
+<H4>UC-8 Start/stop scheduler</H4>
+<P><BR><BR>
+</P>
+<H3>System objects</H3>
+<P>The following figures shows the system objects and their
+functions, as derived from the system sequence diagrams.</P>
+<H3>Contracts</H3>
+<P>For all operations exposed in the system sequence diagrams, the
+following contracts are defined.</P>
+<H4>Contract for Scheduler : authenticate</H4>
+<P>See Authentication : authenticate</P>
+<H4>Contract for Scheduler : uploadPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>uploadPlaylist<BR>(playlist : Playlist,<BR>playtime:
+			Schedule)<BR>: UniqueId</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Upload a playlist and put it into the schedule.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.1, UC-1</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If the uploaded playlist is not valid, indicate as an error<BR>If
+			the proposed schedule conflicts with existing schedules, indicate
+			as an error</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the unique id of the ScheduleEntry created with this upload</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>A new Playlist is created, storing the uploaded playlist</P>
+		</TD>
+		<TD>
+			<P>instance creation 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>Playlist is entered into the Playlist store</P>
+		</TD>
+		<TD>
+			<P>association formed</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>A new Schedule is created, according to the supplied schedule</P>
+		</TD>
+		<TD>
+			<P>instance creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>Schedule is associated with the Playlist</P>
+		</TD>
+		<TD>
+			<P>association formed</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displaySchedule</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displaySchedule<BR>(from : TimeStamp,<BR>to : TimeStamp)<BR>:
+			Schedule</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display Schedule entries for a time period.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.4, UC-2</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The Schedule entries for the specified time period.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displayPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displayPlaylist<BR>(playlistId : UniqueId)<BR>: Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display a specific playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.4, UC-3</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If no playlist exists for the specified playlistId, indicate as
+			an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The requested playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : deletePlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>deletePlaylist<BR>(playlist : Playlist)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Delete a specific playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.11, UC-3</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If no playlist exists for the specified playlistId, indicate as
+			an error.<BR>If the playlist is referenced by any Schedule entry,
+			indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The playlist is removed from the Playlist store.</P>
+		</TD>
+		<TD>
+			<P>association broken</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>References by the playlist to Audio clips removed</P>
+		</TD>
+		<TD>
+			<P>association broken</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The playlist is deleted</P>
+		</TD>
+		<TD>
+			<P>instance deletion</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : removeFromSchedule</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>removeFromSchedule<BR>(scheduleEntryId : UniqueId)<BR>: bool</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Remove a specific playlist from a schedule entry</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.9, UC-2</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If no ScheduleEntry by the specified scheduleEntryId exist,
+			indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>true if the specified entry was removed, false if it did not
+			exist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>Reference to the playlist by the scheduleEntry is removed.</P>
+		</TD>
+		<TD>
+			<P>association broken</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The ScheduleEntry specified by the scheduleEntryId is deleted</P>
+		</TD>
+		<TD>
+			<P>instance deletion</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : reschedule</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>reschedule<BR>(scheduleEntryId : UniqueId,<BR>playtime :
+			TimeStamp)<BR>: bool</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Change when a certain playlist is scheduled to play.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.10, UC-2</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If no ScheduleEntry by the specified scheduleEntryId exist,
+			indicate as an error.<BR>If the new playtime conflicts with other
+			schedule entries, indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>false on errors</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The time attribute of scheduleEntry is updated to the supplied
+			playtime.</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displayPlaylists</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displayPlaylists<BR>()<BR>: Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display Playlists contained in the Playlist store</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.4, UC-3</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The playlists contained in the Playlist store.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displayPlayLog</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displayPlayLog<BR>()<BR>: Play log</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display Play log entries contained in the Play log</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.4, UC-5</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The play log entries contained in the Play log.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : generatePlayReport</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>generatePlayReport<BR>(from : TimeStamp,<BR>to : TimeStamp)<BR>:
+			Play report</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Present a report on what Audio clips have been played to the
+			Broadcast auditor.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.4, UC-5</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A report on the played Audio clips played in the specified time
+			period.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : createPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>createPlaylist<BR>()<BR>: Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Create a new playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.12, UC-6</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A new playlist is created, and is immediately locked for
+			editing.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>A new Playlist is created</P>
+		</TD>
+		<TD>
+			<P>instance creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The lockedForEditing attribute is set to true for the playlist</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The playlist is added to the Playlist store</P>
+		</TD>
+		<TD>
+			<P>association formed</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : openPlaylistForEditing</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>openPlaylistForEditing<BR>(playlist : Playlist)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Open a playlist for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A playlist is opened for editing. The playlist may not be
+			played when being edited. Also, active (currently executing)
+			playlists may not be opened for editing. This is in effect a lock,
+			which is released by saving the playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>if the playlist is currently being executed, indicate as an
+			error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The current version of the playlist is stored, in case the user
+			wants to revert to the last saved version (see
+			revertEditedPlaylist)</P>
+		</TD>
+		<TD>
+			<P>instance creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The lockedForEditing attribute is set to true for the playlist</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : addAudioClipToPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>addAutioClipToPlaylist<BR>(playlist : Playlist,<BR>audioClip :
+			AudioClip,<BR>relativeOffset : Time)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Add an Audio clip to a Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The Audio clip is added to the playlist with the specified
+			relativeOffset from the beginning of the Playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the Playlist is currently opened for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The new PlaylistElement is created associating the playlist
+			with the audio clip, with the specified relativeOffset</P>
+		</TD>
+		<TD>
+			<P>association formed, instnace creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displayAudioClips</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displayAudioClips<BR>()<BR>: AudioClip</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display the audio clips known to the Scheduler</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The Audio clips kown to the Scheduler</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : displayAudioClip</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>displayAudioClip<BR>(audioClipId : UniqueId)<BR>: AudioClip</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Display the audio clip specified by the audioClipId</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>if no audio clip by the specified id exists, indicate as an
+			error</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The Audio clip specified by the audioClipId</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : removeAudioClipFromPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>removeAutioClipFromPlaylist<BR>(playlist :
+			Playlist,<BR>relativeOffset: Time)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Remove an Audio clip at the given relative offset from a
+			Playlist</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The Audio clip is removed from the Playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If there is no Audio clip at the specified relative offset in
+			the playlist, indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the Playlist is currently opened for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The PlaylistElement associating the AudioClip with the Playlist
+			is removed, with the related FadeInfo instances</P>
+		</TD>
+		<TD>
+			<P>instance deletion, association broken</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : updateFadeInFadeOut</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>updateFadeInFadeOut<BR>(audioClip : AudioClip,<BR>playlist :
+			Playlist)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Update the fade-in and fade-out parameters for an audio clip
+			playing in a playlist.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If the Audio clip is not in the playlist, indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the Playlist is currently opened for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The fade-in and fade-out parameters for the audio clip in the
+			playlist are updated</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : validatePlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>validatePlaylist<BR>(playlist : Playlist)<BR>: boolean</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Validate a playlist for being complete.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The playlist is checked for being complete (not containing
+			silence) and other sanity criteria.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : savePlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>savePlaylist<BR>(playlist : Playlist)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The playlist is saved.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>If the playlist is not valid, indicate as an error.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the Playlist is currently opened for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The lockedForEditing attriubute is set to false for the
+			playlist</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The old version of the Playlist that could have been used for
+			reverting is deleted (see revertEditedPlaylist)</P>
+		</TD>
+		<TD>
+			<P>instance deletion</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : revertEditedPlaylist</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>revertEditedPlaylist<BR>(playlist : Playlist)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Changes are discarded for a Playlist that is being edited.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.13, UC-7</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The contents of the playlist are reverted to the state prior to
+			when editing began on it.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the Playlist is currently opened for editing</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The contents of the Playlist are reverted to the last saved
+			version. This includes deleting all created PlaylistElement and
+			FadeInfo instances.</P>
+		</TD>
+		<TD>
+			<P>attribute modification, instance deletion</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The lockedForEditing attriubute is set to false for the
+			playlist</P>
+		</TD>
+		<TD>
+			<P>attribute modification</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : start</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>start<BR>()<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Starts the scheduler daemon</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.14, UC-8</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A System V init-style daemon starting entry point</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The scheduler daemon is currently not running</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The scheduler daemon object is created</P>
+		</TD>
+		<TD>
+			<P>instance creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>All the necessary structures are created for the deamon to run</P>
+		</TD>
+		<TD>
+			<P>instance creation</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : isRunning</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>isRunning<BR>()<BR>: boolean</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Tells if the scheduler daemon is running</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>UC-8</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A System V init-style daemon status entry point</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>true of the daemon is running, false otherwise</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=LEFT>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Scheduler : stop</H4>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>stop<BR>()<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Stops the scheduler daemon</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>system</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.15, UC-8</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>A System V init-style daemon stopping entry point</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>The scheduler daemon is currently running</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>The scheduler daemon object is deleted</P>
+		</TD>
+		<TD>
+			<P>instance deletion</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Media archive : authenticate</H4>
+<P STYLE="margin-bottom: 0in">TODO: move to Media archive spec</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>authenticate<BR>(authenticationInfo : AuthenticationInfo)<BR>:
+			boolean</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Check if the provided authentication info is recognized.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>interface</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>UC-4</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>true if the provided authentication is recognized, false
+			otherwise</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Media archive : retrieveAudioClip</H4>
+<P STYLE="margin-bottom: 0in">TODO: move to Media archive spec</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>retrieveAudioClip<BR>(clipId : UniqueId)<BR>: AudioClip</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Retrieve an AudioClip specified by the supplied audio clip id.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>interface</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>F1.2, UC-4</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>if no audio clip exists with the supplied id, indicate as an
+			error</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>the requested audio clip</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>condition</B></P>
+		</TD>
+		<TD>
+			<P ALIGN=CENTER><B>type</B></P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>A new Audio clip is created and filled with the contents of the
+			retrieved audio clip</P>
+		</TD>
+		<TD>
+			<P>instance creation 
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P>Audio clip is entered into Local storage</P>
+		</TD>
+		<TD>
+			<P>association formed</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Local storage : authenticate</H4>
+<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>authenticate<BR>(authenticationInfo : AuthenticationInfo)<BR>:
+			boolean</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Check if the provided authentication info is recognized.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>interface</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>UC-4</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>true if the provided authentication is recognized, false
+			otherwise</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Local storage : existsAudioClip</H4>
+<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>existsAudioClip<BR>(audioClipId : UniqueId)<BR>: boolean</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Tell if an audio clip by the provided unique id is stored in
+			the Local storage</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>interface</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>UC-4</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>true if an audio clip with the provided id exists, false
+			otherwise</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P>none</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H4>Contract for Local storage : storeAudioClip</H4>
+<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Name</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>storeAudioClip<BR>(audioClip : AudioClip)<BR>: void</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Responsibilities</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>Store an audio clip.</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Type</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>interface</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Cross-reference</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>UC-4</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Notes</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Exceptions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Output</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Pre-conditions</B></P>
+		</TD>
+		<TD COLSPAN=2>
+			<P>none</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><B>Post-conditions</B></P>
+		</TD>
+		<TD>
+			<P>The supplied audio clip is stored in the storage.</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+	<TR VALIGN=TOP>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+		<TD>
+			<P><BR>
+			</P>
+		</TD>
+	</TR>
+</TABLE>
+<P><BR><BR>
+</P>
+<H1>Glossary</H1>
+<P><B>playlist</B><BR>The playlist is a metafile, containing
+references to audio clips that should be played, and details on how
+they should be played.</P>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h
index 4359fb7b1..99544b3e6 100644
--- a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h
+++ b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.5 $
+    Version  : $Revision: 1.6 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Playlist.h,v $
 
 ------------------------------------------------------------------------------*/
@@ -71,7 +71,7 @@ using namespace boost::posix_time;
  *  the playlist.
  *
  *  @author  $Author: fgerlits $
- *  @version $Revision: 1.5 $
+ *  @version $Revision: 1.6 $
  */
 class Playlist : public Configurable
 {
@@ -166,7 +166,7 @@ class Playlist : public Configurable
          *  @return the name of the expected XML configuration element.
          */
         static const std::string
-        getConfigElementName(void)                      throw ()
+        getConfigElementName(void)               throw ()
         {
             return configElementNameStr;
         }
@@ -182,7 +182,7 @@ class Playlist : public Configurable
          */
         virtual void
         configure(const xmlpp::Element    & element)
-                                                throw (std::invalid_argument);
+                                                 throw (std::invalid_argument);
 
         /**
          *  Return the id of the playlist.
@@ -190,7 +190,7 @@ class Playlist : public Configurable
          *  @return the unique id of the playlist.
          */
         Ptr<const UniqueId>::Ref
-        getId(void) const                       throw ()
+        getId(void) const                        throw ()
         {
             return id;
         }
@@ -201,7 +201,7 @@ class Playlist : public Configurable
          *  @return the playling length of this playlist, in milliseconds.
          */
         Ptr<const time_duration>::Ref
-        getPlaylength(void) const               throw ()
+        getPlaylength(void) const                throw ()
         {
             return playlength;
         }
@@ -209,12 +209,14 @@ class Playlist : public Configurable
         /**
          *  Test whether the playlist is locked for editing.
          *
-         *  @return true if playlist is locked, false if not
+         *  @return true if playlist is currently being edited;
+         *      false if not, or if the editing has been suspended
+         *      because the playlist is being played
          */
         bool
-        getIsLockedForEditing()                 throw ()
+        getIsLockedForEditing() const            throw ()
         {
-            return isLockedForEditing;
+            return isLockedForEditing && !isLockedForPlaying;
         }
 
         /**
@@ -223,7 +225,7 @@ class Playlist : public Configurable
          *  @return true if playlist is locked, false if not
          */
         bool
-        getIsLockedForPlaying()                 throw ()
+        getIsLockedForPlaying() const            throw ()
         {
             return isLockedForPlaying;
         }
@@ -235,7 +237,7 @@ class Playlist : public Configurable
          *          false otherwise.
          */
         bool
-        setLockedForEditing(bool lockStatus)
+        setLockedForEditing(const bool lockStatus)
                                                 throw ();
 
         /**
@@ -245,7 +247,7 @@ class Playlist : public Configurable
          *          false otherwise.
          */
         bool
-        setLockedForPlaying(bool lockStatus)
+        setLockedForPlaying(const bool lockStatus)
                                                 throw ();
 
         /**
@@ -256,7 +258,6 @@ class Playlist : public Configurable
 
         /**
          *  Get an iterator pointing to the first playlist element.
-         *
          */
         const_iterator
         begin() const                           throw ()
@@ -266,7 +267,6 @@ class Playlist : public Configurable
 
         /**
          *  Get an iterator pointing to one after the last playlist element.
-         *
          */
         const_iterator
         end() const                             throw ()
@@ -287,6 +287,27 @@ class Playlist : public Configurable
          addAudioClip(Ptr<AudioClip>::Ref      audioClip,
                       Ptr<time_duration>::Ref  relativeOffset)
                                                 throw (std::invalid_argument);
+
+        /**
+         *  Remove an audio clip from the playlist.
+         *
+         *  @param relativeOffset the start of the audio clip, relative
+         *             to the start of the playlist
+         *  @exception std::invalid_argument if the playlist does not contain
+         *             an audio clip with the specified relative offset
+         */
+         void
+         removeAudioClip(Ptr<const time_duration>::Ref  relativeOffset)
+                                                throw (std::invalid_argument);
+
+        /**
+         *  Validate the playlist: check that there are no overlaps or gaps.
+         *  If the playlength is the only thing amiss, playlist is considered
+         *  valid, and the playlength is fixed.  (Hence no 'const'.)
+         */
+         bool
+         valid(void)                            throw ();
+
 };
 
 
diff --git a/livesupport/modules/core/src/Playlist.cxx b/livesupport/modules/core/src/Playlist.cxx
index 9371ac4d2..96d3935f9 100644
--- a/livesupport/modules/core/src/Playlist.cxx
+++ b/livesupport/modules/core/src/Playlist.cxx
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.5 $
+    Version  : $Revision: 1.6 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/Playlist.cxx,v $
 
 ------------------------------------------------------------------------------*/
@@ -153,7 +153,7 @@ Playlist::addAudioClip(Ptr<AudioClip>::Ref      audioClip,
                                             throw (std::invalid_argument)
 {
     if (elementList->find(*relativeOffset) != elementList->end()) {
-        std::string eMsg = "two playlist elements at the same relative offset";
+        std::string eMsg = "two audio clips at the same relative offset";
         throw std::invalid_argument(eMsg);
     }
 
@@ -164,11 +164,26 @@ Playlist::addAudioClip(Ptr<AudioClip>::Ref      audioClip,
 }
 
 
+/*------------------------------------------------------------------------------
+ *  Remove an audio clip from the playlist.
+ *----------------------------------------------------------------------------*/
+void
+Playlist::removeAudioClip(Ptr<const time_duration>::Ref  relativeOffset)
+                                            throw (std::invalid_argument)
+{
+    // this returns the number of elements found and erased
+    if (!elementList->erase(*relativeOffset)) {
+        std::string eMsg = "no audio clip at the specified relative offset";
+        throw std::invalid_argument(eMsg);
+    }
+}
+
+
 /*------------------------------------------------------------------------------
  *  Lock or unlock the playlist for editing.
  *----------------------------------------------------------------------------*/
 bool
-Playlist::setLockedForEditing(bool lockStatus)
+Playlist::setLockedForEditing(const bool lockStatus)
                                             throw ()
 {
     if (lockStatus == true) {
@@ -196,7 +211,7 @@ Playlist::setLockedForEditing(bool lockStatus)
  *  Lock or unlock the playlist for playing.
  *----------------------------------------------------------------------------*/
 bool
-Playlist::setLockedForPlaying(bool lockStatus)
+Playlist::setLockedForPlaying(const bool lockStatus)
                                             throw ()
 {
     if (lockStatus == true) {
@@ -214,3 +229,27 @@ Playlist::setLockedForPlaying(bool lockStatus)
     }                                       // was already unlocked!
 }
 
+
+/*------------------------------------------------------------------------------
+ *  Validate the playlist.
+ *----------------------------------------------------------------------------*/
+bool
+Playlist::valid(void)                    throw ()
+{
+    Ptr<time_duration>::Ref            runningTime(new time_duration(0,0,0,0));
+    Ptr<const PlaylistElement>::Ref    playlistElement;
+    Ptr<const AudioClip>::Ref          audioClip;
+
+    PlaylistElementListType::const_iterator  it = elementList->begin();
+    while (it != elementList->end()) {
+        playlistElement = it->second;
+        if (*runningTime != *(playlistElement->getRelativeOffset())) {
+            return false;
+        }
+        audioClip = playlistElement->getAudioClip();
+        *runningTime += *(audioClip->getPlaylength());
+        ++it;
+    }
+    playlength = runningTime;    // fix playlength, if everything else is OK
+    return true;
+}
diff --git a/livesupport/modules/core/src/PlaylistTest.cxx b/livesupport/modules/core/src/PlaylistTest.cxx
index ef62115f8..0a5bd70db 100644
--- a/livesupport/modules/core/src/PlaylistTest.cxx
+++ b/livesupport/modules/core/src/PlaylistTest.cxx
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.5 $
+    Version  : $Revision: 1.6 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/PlaylistTest.cxx,v $
 
 ------------------------------------------------------------------------------*/
@@ -90,6 +90,9 @@ PlaylistTest :: setUp(void)                         throw ()
         CPPUNIT_ASSERT(duration->hours() == 1);
         CPPUNIT_ASSERT(duration->minutes() == 30);
         CPPUNIT_ASSERT(duration->seconds() == 0);
+
+        CPPUNIT_ASSERT(playlist->valid());
+
     } catch (std::invalid_argument &e) {
         CPPUNIT_FAIL("semantic error in configuration file");
     } catch (xmlpp::exception &e) {
@@ -162,10 +165,10 @@ PlaylistTest :: lockTest(void)
 
 
 /*------------------------------------------------------------------------------
- *  Test to see if we can add a new audio clip
+ *  Test to see if we can add or remove an audio clip
  *----------------------------------------------------------------------------*/
 void
-PlaylistTest :: addAudioClipTest(void)
+PlaylistTest :: audioClipTest(void)
                                                 throw (CPPUNIT_NS::Exception)
 {
     Ptr<UniqueId>::Ref       clipId(new UniqueId(20001));
@@ -183,6 +186,8 @@ PlaylistTest :: addAudioClipTest(void)
         CPPUNIT_FAIL(eMsg);
     }
 
+    CPPUNIT_ASSERT(!playlist->valid());    // overlapping audio clips
+
     Playlist::const_iterator       it = playlist->begin();
     CPPUNIT_ASSERT(it != playlist->end());
 
@@ -200,4 +205,31 @@ PlaylistTest :: addAudioClipTest(void)
 
     ++it;
     CPPUNIT_ASSERT(it == playlist->end());
+
+    try {
+        playlist->removeAudioClip(relativeOffset);
+    }
+    catch (std::invalid_argument &e) {
+        string eMsg = "removeAudioClip returned with error: ";
+        eMsg += e.what(); 
+        CPPUNIT_FAIL(eMsg);
+    }
+
+    it = playlist->begin();
+    CPPUNIT_ASSERT(it != playlist->end());
+    ++it;
+    CPPUNIT_ASSERT(it != playlist->end());
+    ++it;
+    CPPUNIT_ASSERT(it == playlist->end());
+
+    Ptr<const time_duration>::Ref  phonyRelativeOffset(
+                                   new time_duration(0,0,1,0));
+    try {
+        playlist->removeAudioClip(phonyRelativeOffset);
+    }
+    catch (std::invalid_argument &e) {
+    return;
+    }
+    CPPUNIT_FAIL("removeAudioClip allowed to remove "
+                 "non-existent audio clip");
 }
diff --git a/livesupport/modules/core/src/PlaylistTest.h b/livesupport/modules/core/src/PlaylistTest.h
index 84d591ee1..e3c09d4aa 100644
--- a/livesupport/modules/core/src/PlaylistTest.h
+++ b/livesupport/modules/core/src/PlaylistTest.h
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.3 $
+    Version  : $Revision: 1.4 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/PlaylistTest.h,v $
 
 ------------------------------------------------------------------------------*/
@@ -58,7 +58,7 @@ namespace Core {
  *  Unit test for the UploadPlaylistMetohd class.
  *
  *  @author  $Author: fgerlits $
- *  @version $Revision: 1.3 $
+ *  @version $Revision: 1.4 $
  *  @see Playlist
  */
 class PlaylistTest : public CPPUNIT_NS::TestFixture
@@ -66,7 +66,7 @@ class PlaylistTest : public CPPUNIT_NS::TestFixture
     CPPUNIT_TEST_SUITE(PlaylistTest);
     CPPUNIT_TEST(firstTest);
     CPPUNIT_TEST(lockTest);
-    CPPUNIT_TEST(addAudioClipTest);
+    CPPUNIT_TEST(audioClipTest);
     CPPUNIT_TEST_SUITE_END();
 
     private:
@@ -100,7 +100,7 @@ class PlaylistTest : public CPPUNIT_NS::TestFixture
          *  @exception CPPUNIT_NS::Exception on test failures.
          */
         void
-        addAudioClipTest(void)                  throw (CPPUNIT_NS::Exception);
+        audioClipTest(void)                  throw (CPPUNIT_NS::Exception);
 
 
     public:
diff --git a/livesupport/products/scheduler/doc/model/SchedulerModel.zuml b/livesupport/products/scheduler/doc/model/SchedulerModel.zuml
index ab5f958122ef312f6bcf71ce82defe126a5e78af..a14396569f24b84273b7482e3f8082885f5d6bd5 100644
GIT binary patch
literal 116449
zcmZ^~Wmp_R*RBf$hv312ySv*U3GVI$cXto&5OjjOTX1)W;2{Ke3or~i*uW<5_g+W#
zK4<2~Om|gRS68oEb+2c2t17&M$AdwB`(h-iaKijQKDclHHOy@+Ej%48-ISayEFIWf
z+??$^Q;bxoDe)pNpdVNuGYwt#&&Z_a4*c^D=H~YCIv-J^FqqMs`rGfe&=i;Wr0WDO
ze0^qRz7Vkg{$_n6(UlR8LaHT`_Juj;*SQc{pk`Egn&B^`v$g#@y9a@M9MEzi3mL)G
zN&MVQS6_O3N=o>Cffz-2%eq+)*89oLf_%Z4NC|9rZJ~Js2kN9s2kn&6r#}KF-=^pZ
z#^e3lOn*>guD7l{`rkGYbNZk~l_&)=CtOL4(P58e{#is+G{Z9XE)@#fuo*{M_75Rd
z!7OmamvDOx{}>+KYW^dY%*WIRnbr#II-5FJuBImr`kacg;G=0S)YsLMY0UbnSa-n?
zGI&$_vb@()qw`lF*S&OR`0w$jgkKLkC@%t*U}X!DS|i)AQlb=Z-ZK8@%vq#Nj84}g
z9?mkdC=|Fe)up(l%<y^=`b85Uqz{<CE-rv}%2PD(x=!uER*+E_v6<CuFyfC3nPy%6
z@VJZ1Z`8PHwZ(M)nhkABz?gqfa&l4t=5iADZZfMXAR+f7bUa4F!obYK!N92g|K3KN
z|MNEbINF}|7$ohtr_kN^_P<005EkUcvZ@ovM{JU5S}&m!AA>Z+^YS)ymPeY*lr26v
zl^j*pz1;4BGIuC}*)&;18@WY_?|J@eM#SUg=Fi&zXJ0P+UXRMhyn`={dqqS5Jx{@#
z&;qTip)OFRuM>Hm7}?86@bhi(v+fHR)c3mh3Jr$ty+WK{uRs8RXhl;WKj7?jV{Z|d
z|FXCBatn6OGZCvgQXya3!OZ8&?_|&CS1P}Iy^Qkiih{nbJBkI0J#W1F`1(MARuJW*
zi)JVzdl1)B7o;!f{!}=XW(D(UXR}8by&~v>&k^GGytVbJ^t2uT{Uv(N*9E2NeT}+!
zt$doDon`NW=D+&4Rd-D<0==UIU;EfGpMoJtuP%24+y1YoYe48?5Yf!*^DQ7Ce-zMv
zeSdf1&n<@PoR{zQ1n>{^?!yB>@2;LZ{8ym9hBHxjKgiC9f=?HIX6=?cuHktacql;@
zlUnT|)vs-!*`fS^bp_wEmp|Pe0H@U>VENEC;HBZ=`uck4g`6yJ6$A+Of!6dnll6H;
z0aM6dLWCMUNgjN=pbO_;3$@g&B4!pBU(07pzvoRIp6r=>3%;v$%l=a(t7KYTQ-eB+
zesx0BjQLax{Ux5t5kvKgs${%%0&%{2{{-P5*)CKmqjLO84n6-$moKq<k1^h|hB)WA
zQnqwge%{*rImM%FBdKd+CZH2Y%E8rKeMPhdS2{toH(No`*Y`M1Vx>6?4^EBSf&!za
z$AHu24;!r;pm_-RAXqfOw}L!r!HeCbi+qzb@z>Dn<Kx4n@8Zi{`@^*>;Klar)i3Df
z#xJpt)HN#k^=Rtw`l3(FD@w3>cGiS!MtSx^X6dfb-{F<fR}|U{Rr$H~ya)K1bjz0;
z9PA`~d$7|d<b$4z*D;C4Eu2~NJ%8pv7fSvK3N3uvbNOXr`&l}w<Jqy-BcD&DE9!9T
z4maow)AN1`6Ej~7;6?rzd<7K+vbN~Z<ePM|*Yi#7I0yTD+}`Ng$j|Qz_FWYte;Il@
z8XHrBKD#|nT`U65Ex}Qd^g$0HNd7k0;9o66Ny1QNwlP=4fxY}klfCA1B!HQnbnxE+
z6K&k!<IqrF8gxV+xiXLR4CSV&bt@#y(_VU&U?_P$+3iZ*^ARxWu6PkM6E540WB7)m
z>WObE4%pjw2Yd|no@N#^?mRaQXU~_mGWYX;4j6DLR_Wz#(;Ee@y;lPIPaQ<fHARP7
zbA(pyB<2i$0681&cy^#;4I`SLR(%gy0Y@zOw(e>4OMq?=j|7faEe-{I0w2c)`!3Ft
zAhY>m&c<F*rqc7F_xKRez=trQ0IMd?)n%|E-QC@nkKa3>39tS?#rh1h8hXUON7cm-
z1(Emi#956628%f^_XPXJwY);;y4GF*B2wtj&%a(gU+cd@0ry@I=fR!r=l41+%`>`R
zt$D(t_7pIzxL-+G_}GB<sN`XSE1Ky~OP_+{&=e8LxdGh7hRV)Y6pIuT?mm$}hz6#<
zV5|CV2b?3zPQ?EHeg!UV{dro)fML>E>l};s7XuBOwQ_Qj#^i(UHfyu#*8`XKfa5!>
z-&T<4Mv`BeZJ!ggDjPoIRm?v@P4LZU>M9A|4JV`u!)!{F#tHX(_M<HKM?^!Cve`{?
zy5ZNF^ThYp^cU$5K%(sdap3A5*4gVe!<Mkmwn#o!7{t5xR0F7`eKPZSKm~zvR>bQe
z+xVTSM16Cxr_*AIebVAucWRq>UUw9dX%z-OLM>G;hKWn`%E!Vmo030*$;hr6ML8pe
zPIc27*H70|hmzdA(1WL=^76VB19dj<oPfy_-<191yBsYlYqB6~m7*b@0>NMrwvPdk
zH@|PsD_(-I66>`1&S7%Mi5|__0p=_B&qPOI>|q28BhU<5i(l|p22KGl8J)vl-I!A7
z05o?|H32W*G${YX0gN|ibt50STg!Tvu{#7>R<o2U0Oq;Mk=_k}y>*o)hg$t|N8~>0
zfQ?JLhQp2pU!grsgGm*X`sLeN?QOny8|tI%pYG?3{nEoL$cL1o7h+C-Wu(4e`u?r4
zkho{np@Oc%jxS9)y@6J8Vw014vW#g;@k6krW{=TlNzDy8$zQ`Fv6H4<n42+F<W){O
zKuj(E6wJ@jTEbEmVB_dQJ2H#EpAV(v;B6jtZcm-^ddtvX^v%S@plQY%)9vKyBI(PX
zanFB!3VW4vzgHg(RIBWRC;qnV-%Z^Y5cHWk>&*NG1_e#r=yV3WhWkKbYD|gUIprRV
zo|TJ}dR=ulenE7k4mykjgI^!PH~jpwCZc2k@f+7VU6zdMqQRD>Zp9ltwg;j{!B)YB
zn!be_fx#otfME1}iHFcVF%*5{i?+2x(9YuWSiO_)s8O!UqXx1*Ou7z9&Ys(5#>f1a
zu06NWK&6MLHBGmfFG)9&_r?m*fc_EthwG`SYx0-p^y?sk=OBLml?(UFtSJJx6)>M#
z>rc|j;G*ka_PcqnbI@0luJW>{TL5M~IpKN6;SX=Lsl-{ETnvBf67<cu8Ph)3_m{n5
zYC>ly{cG!VHil}NeiUQL_8aaF<@1rm{9cu=7(+N~?PD=|U3~%^Rx|6ZNEhLaPc0Lg
zYT8pjvkST~_*CJ29*@n_5Xg;#`+NhQI|LIC_CNg*H_g2sp%vnp`#f2wpPs$8fIn=e
z)hQKpZ}!!SRtjM~p>dl%zsvbK$Eg{C6|b_-@Z!TFet%#69KIqOWlAf>;v`)JHDGRg
zLsu7VI}jhq9u~p$!3b+~C8n^LMXRF)gCAvksa+z2Q{ryzrSq|J&6AznE1Q5}BiO=M
zGITAV^3OdXdi%j-T4e&RQ~Kmp_?=_nUV<r+uvU{PqGxlWidj(5!+lFR(P7=BYR_7P
zVOg>Wvv~|L0zrl#d03s=q~Z$C)b1|^Wc=xY>Oy9`->}A})B;gRV*RAYyhsXoSo=(n
zuRjk6(Z|y#kAH@+lKAlZj1y^T|DMm~_2KvUIgfdXih2Pb5UrCyvRhs%Ws660aQi^$
zkx-PNt)DHc6>B)O(-V0xDkiec_;QN-=_hxiz~HZwEZ&O_<?8~iJ}tlZNJ7x*A3vPy
z&cIy!SuE9Lk+M-slmr^&&l0bFIZz}5<!;{=1uD=4P`@~1&9`p4>Dqk4Qx+{-+F0vq
z4PNN|nX~!w4~7s$>iplMS3@kjQJHloNfw`f>-ZR~x}Z8wnYBc;l^Wo~w18XZq(4-Q
z=2=CioK2RtRaU8=D`Owm-`x4P9WC+)I%kNrcI;UF1*_yF>#soa+dzM}TgXL=(|+%e
z<){}G+zo`w5h<?uyD$Ol($|KyKii=iSXyd{$3}4Qii)<}?MyiZ8{}o?Du2*ieRhoN
zbn43n#sF1^4F9+ejaP|1{#Lcz^<uW%g&wpkRi>oH3~^&N$xf)pr46#<wzV-T>pNun
z6jlW!Xzk)lDHCa>w{OUbVix9&eP9S%maIA4fkmR)B_>ym9acfp*^Jc7DVl#L82?+J
z#)*<Vd&;yqhsxDp-2zfBZRvjQi&!7t_~2QprOo;azxe6B1DRh!du|naI`QQm&Q7e=
zaM`frKNHn{GtmNOQ;-Jr=1K<+VI?*a@LUXmWBzwEkg0M~;M(d$zT~UCiB;rHk*u<r
zOXmHEA@8GFoyD#Ro1uR`oDt$*$z_IB26HYMZi{=TZQ=+|PIh7|x|dm#UXcJ1#Ndnk
zD3yWLz$)X|Po;DVML;eMUu;`aQcU~xD&PoLH=aOb%QYuqi=|%KBvWA}bk3Bn#gf|p
z{jT{?0SjC#a91qH($87aDk9-p7dMf>rCboA>`Hnw30!E%W3qNTQ1|O_0d458jeV&|
zTd0x;4leK+0{eMUFObK0JbeR8L`0&mT)OR6UZuXIlXv*Dj(lJOOhP?U1Elv@tFMZk
zuKSq)e}A{&kJMfjhYQi+Sn+Bkx%Dk1b>>#e$F$!RI~67>>{TMSF+nTVKFI_8rsf?=
zZ_Lfes#%~F5MsuKx0<e)cy*08LnTbiu^!0}k=>$6F@HxipVau<ee(8CD3iH-*oS#U
z$=rT$3NgOi_qu>6#b)%<{^Ne;<>LT<5pk0ZEG}g>+L6|EyZSV>v;~Hj;ntyaN?OT4
z4A^EE2w=l=t^m%$yW*t+mT7utx32rK*vVypy@9FW8+kWjk=}$Vtg3*$7>xJz-=xlv
zhq%a7)+O>V%SCl4XG{2ag^wDeBePsHkpq|Y9pkb@eU^>JvU!cBwHxjHq1z5<aU~+G
zbB;GwGdTX77oGL@DXz+`j8T`nwNawPn0}>JhDGA$?}4rXbJhv1WUb~p2iLIoQscLe
z!>TW8%L0;h*PK2b#d2i!Q)&~W5fI{xo>TC!)>{$ilOfQY1FTJ3C5x+nU;_3@y~4C9
z7j!)`N9?((#hZyB8BaGjIT-9{xE?Z}(~1?mS!ZZT3r077Z&VCU1S?Jgobs-ADxZh+
z6rEEaE--YB`9eykI_15^m#c)`(?MTt4_8USV}tg={hSCMzhCX@37Sw^{>(<XWRr+6
zDNnneTI4bzM@P=L>6$?MAYH2ssQ6VM3%-kjtT5!~JCQ(h(UTi?@D(FgO-GGSTgEMu
ziUbcllaaxI)OR3bi^%#l)1{Qdx|3Ham9?iMm3)5oF6=F@FQx28LD}kGGc$D4`ufyP
z;_|jYL*8%`qI-_PcC`JlZ~#C{6y8tEbQq70G#J&C7K~QSL%&4~5uG@sOv?-yMe5Sc
z!#89(Z?*e7>~wnvE@e!li;nvr4y)^U4qMJZ$M->#IGL{d;yQ6bUL%cMG0-8oQn6wZ
zl@J5R^XL*cmv~v&ueP_3`W1q?znSAb?k9`%0xUOzG;Z*0L;xw6_01=TBy6U-L9u3l
z`E##CX8YTde(*({{Rh}t#f1<#dGmWG8dDsfd<i954$~Bls~8#)E?lyQ7w@e>^lY>d
z0kS{eyZ65{<{!zW6fZB%Fk#D-L%$@D9KtF+Qe*kS;@_RO=b^z$>??2cj7dkn_&Ax1
z1McrP;ri?ki|erU-QKhKzGo)gbE%IvG8skcxqt89r9SI8Wvu#BF}QRJq7v<$KTcd0
z@?cuU%QBu`&WY|k^rO=j%+u!wzA+)sdpX1xnqK}WG+p;mXvw#-ipe`kuB=M2QEqnJ
zGe$_GI)x^?Ba<brqG?Jf_){*2Af=yltxl1$hW4sv=j7G8)#tp&O!J|#^KJ}#Yv7Wx
zt}q00JksFhMT9pV!XD=V_}%6&64}x;#bkPZ#y;k_8i{64FLKRsjn8E_1m4yY?mFX3
z7$lfl)vI7Ku}O8=%!qmn?{au3P4)81oMToStgI6!>c%(YNk<}a==#Qi;{}>oS+Trc
zLI5_R$Q9!ykd2!*tIy1^g&8`rMa`QD2zUMLu@$!d=a^5p`1|BAY7G@=wrnWY@<IHv
zY6-tHCj`fqlhbmIgn}(<a~hizT$O%}{PWLXv*>^RS=<sAcc@{hUk*O;t<ZjAzSt(}
zi34XOt5_$EY4%FM{f1B;zKAM|Xd#YDFlOL(RB4CI>s^OrqFaXx#I|i(!swXzGlTHh
z9dYaSA$VA7C8oCbZRt;J;ZpnEi68KO^F66OXa1&0jcZKw;P{X7f-^B*7NKg*Dl}qW
zhhq-h&idq@(OPpoF>`C+W_d*TOac=#!37W4?bv5ZK3&r?=c~D)Ja9>-h<ib1*YSjd
zX=J@TDO?UmOG{t24XHk|PEA*)edjJ2Yg9R4d`&}+$+)GtbnX1BA+lNgWSn5p_v=`7
zBPElWdIJ=*+R255z(KSMcv}TrU0PWKyZUsBh|PQr+q=hC(?+x#l2mbK3H`2Hb(9pA
zA2=l~SSb5GR)e)n68geke`*`w_JGd6m*7~?rc>08G%M+A(#qOzG+}A$p{NsCHY)%!
zVHPoc{mB-G8OqeZ{od6lkXt3gVGM&v{#@OoMAG2*@hQRIe;VAVU{cfY@S`|-bI}s|
z3bl%cikxo^DPZ}oZB-R5V8DW4+WKagEx8F^y}!bI5x^|C8ax@gXg#2)<yFVvf>7_m
zotf#FQ33)u#fMS~;pQZ+pVGpb6AW$?CnaWpwJzp-*?F01VL4~}>a=ntD5V~>>H<iV
zhDbejhe`%NPg05vC%QWf1t1)w2ZSDuga5gOlM<tM#B@SekHZ=m3-}Pm{hzp&3$jxZ
zSBjZtSvsCK8|@8|F_Yb5oNs4BU}JI@L!=fJozT?AUJ5$qNHttY?uks;Cdq4`lvo`U
zC3F`=L~{1WU9gk6N*b6d+*6vA=+8xr@RICJvvOk;WhIp_U9T+SW=~_Q5^yec3r{-Z
zb^eg6j<L(KpdlFD^nH^~*k;Ljqbl-U?u*r*Y=^Qv?I5Cgnkl9zk0+=Ke7V?t*h{eB
z6DEc#$Mp+}HSb3WVC_PWZ*m5mL0h)8P|u&Mq5Hg1Riur+DeXm}gAOdE*FF0gqt-0^
zNt?p&w;(H#$!{)63g+)`%RHwv3-NVUHCN2o<bTQd|J|&+MomxeP}5T@^RB4rHVxEY
z6gmQ~H;dKUj*b&(>*fFE0i~g;=eMRjHkS>!kh4_1l{jf6b*w)&OCF4Cg2WpOeTDP%
zlRIwyzE!aND2vaDN*~rHsYrRagP0AVXtCWQ0P&GhwTzx#iz^qUYnSo9Z&BJeV_M8Q
zl#a+8tr-3SQKeXW-7XpD>S~n!tQ3a2xmCzjYg;yWtDfm)NM-oN*g>9UKZ;%2THCDn
zTrDe|-&E@7zwrCV%m0Mmmj~ybD_FH^5xG+#q!#Pz^QL`KmdUf1!r=-L$ghKt63KAu
zeIP2QR4Vyk6KcpaR*v3L#4`sg96cbs5Bjnn1@6{X2tsC$`bMriP5roy)6G~!0SE^u
zjbqXuC0`_2=CY+aM713)iw7YGcYGsPH-w#$CF*XoP=V<V4u5t5e{6@l;1lywP&)}B
zkztPJ7%-q_0!iKDIu8ZfxQ`i|!-9fxttSt?=-#v)b&99_9U<hHN36U;Rq~maXvsiX
zR1U#^L5_zNZCY-xP!m_#<K%C2dn&=kzxKa$IzP{zdTiRuSJvlLMhTxn4_Zdu6mfG(
zD`}aO%Kpwg)etx}g+=vPKIr92)+zr%QDFf*DZH)HYpaZ|rON#Ftm4&+f2%IfRu<=>
z&h^9-zhg50$uC4I*Srd|0w^?|`a*dZL+()MbvYF3<xOaX$LfvpV<6ww*=?G4+$U^k
zYpd*gsmC8sn73rd&Q)u$#0{8)0(`CE?{X9V(dH{a5XelqBmZ5`@=CFjWy!X6{NoOf
zx`#$vw#D_Lm;H3vI&tbbz_a=^TQZ_^L^3?ie*6n~HD#WwF^Uhpy?q!PaS9vWY268X
zuMZQ0-?zv?o`DM;o8O=Gn{bm0A_fV4aQ`?)XdNx?Uc);qdh82wev@@VuD@=HNhwpG
z<@O3`ns#>*-lUP7rLZSUhXA_;*N74>#EVhM&w`Ef9Bp08^dbvhI|Vs0$pNoj&JB^%
z5q2a=PKq1uioypF5jnS;fEi9(QyyjK7?LvB=?7}8AlNs7<3}FGyCuf78BAq&2aDsR
z1^_i)|GNJ9wRKKXA4M>v>m>smngHxre`;fC6$_r?8iS^3?C?A=x&kbhwZ(!bMRbJn
z71#};LnEqB3#ucxOmGBz3g3A?pCP`j?7y&r_BYj%yRK)Ht;k3YFThaT-Q|HH{{(WY
zNG{%#4|=2$ZjM=BkW)_MN~+s<<3s@?A?oCLA;ogvE7fOxQ=aT}ttT~?N-hp2Nhb79
zaE7q3@ekmhsdc<d48K}y`jr~WHbHx+*=yzQUV$G^trIhp`oYxsA+UM+J7FO^+tuh<
zA+RrA)_HZ+oE-hv#AwE!X8U2-ql9sR92}p<`(d0>(Yv&NpreD!I|vYKQ$hy*A-U!6
z=gT{hvTf^1bo6cDX)TR34wrV$f1o`61HK#2a0{>47lxQ*e#<Xk37j@D0~kLB<6GjT
zla0GJ!yzL2*o!;y0~Z-&5fSfkH&Wx@#DO<Lr_gJBw*sZ(oGh^~zONhjwR2K@(Tca#
z(#t|i#s-QdB;2OOF=kKEIzfLJh@;F(NB;oR;HQK>ru~i{JNRL}$6=i}WGMwrX&wW#
zZ@$N!s(Ebu%(nQu;mii?#8Np278~No>=E0sl+?gFRCe(aL?kuM$t4t;R8Kbmnz{Z{
z0}wgOOvV3SdO)<c=|4Rny90B*rmCugCpy_XEXtrV#iGt0GT!wcMZmtsQiQ*v*fRj<
z`g&@tUUZtnTPu=V4bd%A`l==#!7dH{zmh;R<J}K;R#WnBl5Tkk%_GcZT9<@Dp#fY6
z<RfrDeY@1s%a<6*!5sfjhi>Q?hgHzg61|K<sk(}^*7O7%_ZtlnSNZBubiWM^kr4HI
z_Weo5pbnRI(8-ZG2ami~Rgo-J58=2d$)^1u<I^Z4k&)m);!_Pomc+EzF73c@<>Y`0
zDCBdpVYyUaB|+@|6wXuw>KDd_vvQbe;6?t23-*p!C)368s|UY;2S*V1TlCMZl#Vq~
z1kaVglDtLt%l1p~$DYW~F`YgnhqbPM2hVzZNb;rxv@|}A?19U>JoU=(ldSpFXk$Ox
zb<QKtRDWe7oxLp_n<v?DX)oOas~A2plSXl`&T+5$u#(Cw#}1`tRsQHxsud7v$yE0r
z)4w!4ka*j>1<E=1ZP9o2F$SwBKs?yXv`LIHAQ-6X%w(pu0^N)pj@Y5KAEE%~eCx<@
zwI5V8v}ox-Z`I9JAFwktnK6PpZnR1@Zw06=-vqqRq9XgU21^6Z+sNJPq94Dx;~%`)
z;G`>F@LN;7925QnZ)eQ+`B)a-t!`_Zp~oDAuBF%X(>T&&St3!sq|5ECcSDuGI+m7V
zhZMpUQgEwr(EcymEA9EO?d`Sff<Gx#ekiv=vd!l02>;Wn7crT-aLFd*!+&$57l{+1
zZ#9j6@;NzYIG%2Q=sIFhgurb%_Zuerdf?w(!3s2^Vw>W4N_@(wIyE1DcPG>5{|WO)
z-@^RFe_?*??zQ^LuQ}AQu(4G#4%@;#kzU^~VW@kYUku=u(4G&jM=<uxIqZHqRHZO+
ztL-Y<{oL-!aMT&Og{znFrtkhx^<%YR>uLL7?y~if%hjj6WvVmXDq&q-MIlO^5o9qA
z{1+%rxM>{<DIcOx`V+0#WA$*IBb%VEpmk#`<#Om$@+`UHu#g_dHBptWFccOix+VhA
zgvWN=;zA4s$Jhx#V%?*9b?LQ-c3INK7)IseS^*aIt{n*xpo6Oj-4o+48EI4MfW{g#
ze?TYDNtpbX0q%x^oqOrE2N%`ya>_y%)N4`vg>SUZR83nZVXj4)KQvpF+Jn{Nygrn;
z(0=30lZjVSe^u{C{!rkIS<l->MmZCws~WY3BPfX&_K-_vmf>1HL3Ll-x=aKb3~*PJ
zvXnp8--}=zU^rez&t@#N&s}+So=lr-F=u(Lwva#0TGKp5(SQ@VrZ~OnjMOhD5Ydoa
zUM~}KZcs!KS|MMIK_m74I^x@{q~d7N?NJq8HxO}CTJat&eJ2hUzvZ$ZEMXB%XAlzM
zj(OIkOf9AMHzY@vnO5PLc>Lnfjf^#trO<x;l-74G*f|Zz)?rTR^a|atX8Eix3J(X<
z`BWgGCAb;FT4-PPmpFoTr~Okqsx&9de{_d@(->BT_=O+wjH$(I##Ks<HLX|a6Fbd(
zP;ipp%U-2$>RG_1glKf@+6n{nPW+QsohU%e>F<&A4f*TU4eKtr(A~bgZ3Bb4?oaCU
zIgc=!RZi{sO0X}~yC?XdvGvRG&BmfJfaGP_<Ylwx`Csm-MEB+N;bF1ut5)W#%ggC(
zE({y})bmz*4&P$=RHlqy&hX3G?5LYPok|?HB8m3po0kL0qj3qvKVe4*rEE|00H^){
zLN@_Uy#Wtm=VXaFNo4#V9Vgks`gVlmY&z`mS2e>v1`w})M_J6*+Y#dBz6CaU;ZjL_
zp~^siwfgeC>*3K7@_aG|AY0wIAc&l23=Mb=xc@Wq6DHm&IDg<`V`yxP9T!GfgQFjB
zo%+wRyiaJ~BBR^1oX?}<;<KZB*3>$R2-$NI!x75!%?zu6(zI_@&lBa<OI_xfrcHX;
zh+-)Y)%|haX}AiZX>M(<{kpHuwEye#$@QTnza+qYEC=nL+Zi{EZyc-n4RD6{G7X~6
z#eC@TqUfEUG^por^Aec_9z{E-8Twt(G`Ds|=I-(m2Fj*a228S9jQ;v=6YGG&cJlMr
z00drS>vX6hM#As9Ioh11e_x?;ayV-0>m$9CZ7O_Vivss@a`>1O*fsPF_hY=Ew%N<^
zYx(qaf(g1mwd2@3-A_@PDFq(2?y%<y6b0UMD$4;)Bm1`Bhu3D0Zp3}P?GL0TlR9$l
z*gY2e)UH*=q(F1z(di!;eEPN-Gs#6IWx!&H0JhrW+KH5y@uf|KL-lk0)#)vWP+gHY
z@JCsK#R#Ma4?2hU*n#OXQ%6P+66jp_7q_mHcpM%?L?&(8hG%j?YSG16Z?db~038&*
zbjA(GJ6uRb#&IAJSW1@3g}|(U_iQwcr#L7LqR|M<C0`aq#RB~Pc%DarzJFsmv~YIK
z-ku#s4~~Topc}PPZoSo?p15nBMw6SHFb`D*`9!iK39G)7(mBiV!;&^r&M;F}X5C?(
zp7=R`4Y==&_@3&;c}Vji;K;cX4r}%c`s^Hb_!uxoe7{ElVgKQ%Gt`Y^naA~gZxV8U
zI2xkKshB01tP0NYz$1R_k|6pN#=1!~@x?8giirCcRRAiazetQZDimRzU1?eM$hpg|
zGOeU^JCllMNezaoZTj_zq}DSazoY~4nk{{r3!YY(0<O9*v0lUD&*kS<GGVzLBGSk&
z9^GPrdwcEI<YeSt!9~B&Rnmq1S`g79Lt8N5ev`FA)RS{<EmPs<a}d8ZDBIBI6`X%N
zaml)+5>KEQA|a2%{41iSmq#Il4#$-dYv+LWL424=BBAJvL~OsVy!?Uv-6qIWXV2XC
zD<mkG_;eh^MP*(I{=Ldz#O1lB4y)|V_I14^QOe(wBWF1GS9o@6VI?W=ge#0nVx*p4
z+k&HE`A`SEj$>5Z-SjMB<z=GecMN0zS9{h4Ls$(IaqFA*r#&Z%s3Q0zs)|_feItRT
zPs(tU&yR-j9jWd~66*^odR2$KJp&u1uSuGNdk^#Qy;xWgeBxd~WZ2Y`Uva3<0lIKT
zVD6044>miCQ<u*+5kD)Kmc|*VDd-VvRW&Cq(kl=SOJhiqJu_i;c0F)n7@C|6i<`<}
zMU3;T4mR|8AKPVf6<oD4ZWuuKKT%Mx8ODc7C-X_jW3L&aN=1;ihSUq*>1opX;SH&k
z$iQx<oyZZ-&g_Oqn2?W-oZf%v^*~wr1y}y{?g%T=3d0|bz@O06)d+8rhL&BRTa#S)
zR+%UyDz|(sU}R)V(q>#?pKH*@lTgjA2e2Q9BQXm*uFEv+nNn5KjQofpJ1!}q+=u;J
z^;>|PX>(^f$7;fm4R771N6;va^!2WQie{Du-nO_hIvZEUl7{(|Y1FLUTWh+oo+ilA
zk{@LW&vOYZx4FxD6FKxrbzMZYEbUO*ib8S-n?u9rH)%N8lvHhu25oSpiy0J*XJAF#
zQHpO5WC`EnVCfRpj^YSQC56vNOGS}OS6{|21I;gu&PItXYZaLDP$(5{8x&}X)!NjM
zn@z|$;_psVtJnM~VR=ZX`9v}>JqVblHBeH}I<b#OQ(PhBb>23V;L!%JA@hf?-ldZs
zxz=r*OtTu2T)yz&GJiilEWP`b!M%?GV7b9PY8;aEjYwk+%vs&RJu$;A3j~30O-{>@
zNG&e_KWyUZ6L8we{YL@GEmhg$i$J7LAE&yZCoOvjOkRgi-;-N_U!R_k2ZciSRv?K>
z6FNqcPhX7G)}N<oLJWR9W70(~e#z~myi>8D%PK6{z2M&;ab=yyeeu2NzHQ=3QUrd6
zJ5eGF7gj?q(K(XaC-Tk2l2xfwA?yY-(|zNsl)q9hNQi1>ce+1DF5x##>nqn!kJ*Xn
zdz&b7Ym}j@!MFY%@C#am=@+(j>ISvkjqKpEfv&3=OmYKl;}3|!0s2);)~&pHZ0)p+
zN$^e#%1W@_-EzKKr0|{G#f=`Nxkk;CDe=p9W|hZfG6+@EgYH*V@@`j7IjK4kS}AOT
zzKZ__1C-Ov6zO&|$!p<9ERJ)<p>FtrR<v12%w2B$bm}tm+t@z~P5HJw21~E~^e8Jy
z=4vB1?!OV){LKd$#h3BQQf{33xrSePyt;s+?J4&n2*o!&BfOiLZePpv7eroi^Y3~z
z3w3>Xl|Q3Is4VW)Bpb4By&z@1dRdiv2p{okEzN#H4SH_RhPx_YLVK#2nn;*N)jfJe
zC*_;Y0&`W5^lb~1qB?Rn!X^lOh$m4`MOj}G)zA|vtkc=p-JO0AYJhVkyM5S9Z6YIS
zELRQ(i3O>DXf?F0jJMdw9)zQ<uJwT-@}(^!2({Q(l6TSa>b~1aN%m%w;=0;=P^8*n
z`s9}L%Mvanxvea|JH=RBRLp(i?aGtmMP$Xlyd79h{B--au{-B#wT~U;N*YSB`I$%m
zj5dv5W%^>4J$v5#<~#v1tD<7m<R9ev)uxve0ECHQTkXt8+z!yZF|Lwt1Nzy=ekZ?C
zBTqUNaV)$E`o<r2)g{Q+*{(5(n)9-*SOBbe8gQts?96Y?ov9kde_FXH?`Ey<ApdE1
z_pZC0Zy!3hy4t#AI%&CJm%22@m~9V=(lmGT0rt{wBjm}uzqeKS<yn~^sw|i;>KY+B
zZ}6q5S#%yh;w;7<6w^8`wTW9+dnE+5?P7JvKIuN+KLb0cd_^O<St(rn>4570-Q57+
zvqLn`ySDeRY;MJl<!ADNQs^d*(uPyYbkNLihsj#bmD}54KR)>GcGFX2ml+}8d)Jot
zh2?NZkS(l#Pab&zju!Cc7BcTRjzCq$RksevKCWSR>Pu?@uV>|kyq=9)J!_|1;yO*_
z+b!=OuTYda6zc6X>imQ~PN3-W6gFHR;4_nk3f?{Z&SfGZ{c%z5T&C=Qc9!r!@T0*C
z^4;%sF#Sup6RELFV)!D}=1)yZv<57du=G6BFeO;K!)f7F3vi`q$(*p5B~p?di3}Ix
zhjL8p!H1oD4BA{oppcZn;tT*j7;8o)F7Ie?*0w=6W7qU$^1tbqAr~ilX3$4lMrR-N
zoy_P7Mn~wmMcRz|rv$15qL{3*NEL-s^7zWeRm~FTp_1IULG!V-B%?rTKvKbsRsLvR
z60;%L5)HS>^!)Be>>+&oISdOC(w7UcJ0mhp(Uty>hJm3`-T|h7KZIkrj)LusgzXQ$
zZT`L$eIT<2vdgp)u^Jh?o`X=9F;p!N@yRj6q7~Vlcc3s35Ole-I8<j3@R*kP`u$ta
z$jDOY<{ryWFuiPnwW$XkP3x_l2pvrw7ntqGgn5Wkz}ud@x}<Des2d5LMaYF26W#v(
z^KdvkKT+w{F_V&P$sgw7zwVHVO-J)vA>bG2ml=Na-$$z5PLJSDqaR}Rw7LMu)6TdW
ztuFh(<L2SOLh2|{&Fm#fiI~HIyjJ=|5fAX3j8RAi3$dP7J6}UUidGxYP#_Sg7PAyr
z+|uStkuj?!pnuKc^GCKu%y7K~ry5Wjfh}|T3n#XC32D1oK)>D_e^*~rzQ$N_ylpzw
z^dp<JxujLQb}UXc0d8ZT|BnrH>cl1M`<Dna$;4R|MOl|rHKF%)3*qP)@d9gxsbiGh
zA}sT;;DM~o{Bc<0btZf&q~VuboC5|cL--exoTMSaeE%NN$6`i0?-M<=t(ZO!(VvHy
z^-X6$TlrowaZ-AuB)^;`cFb&O9n>T1W$Jn}Wfdw&at$u;3w(8E>&u4jY;1J`FoUmL
z+3y;j%&!-qe*&P5{x3Is<e29mNL<+AMfO<zSpNMQ#6%oZG{Vdbwa*)qJa{W%cBlPE
z7-N8e3h;K2^z5fc?$1hgB2J~FwIb)NKF3ITcNPiyus=KuF@hizL58lujjv<O%x$Qc
zX@!ZVT5hif@z@|MA4s}-A&$LO))0l8P0pEJH|zO8kQeJ@|G{{{w8eTZUSI77Glzg}
zk+Qe!`qmcBXC8ixwLoy9g5(ry$|v77at(u>?>{8lsW!*&Xkq9*ncLe(d<)J=F~bGJ
zyue4koT*UKvyg9{_<);v@a*h){*(~b!rHI*B~E$aFUeT)E8=!FOtr4#UT1AVgVSRD
zlOa6&lOdW+NLImsN|J)`3-wgte_-CAg;}C5>S7rAq=|X_shWq^HjPrG2e7VW=FUjb
z{>M>We49UkHXSbXV}4izX;?KYm27GBcI#XW8yZWxWN2H<H_6Zm+D}>ED(8{Ey$7%z
zD*n)nMalWRr^Ye@Z>H=vXRB?X`lY1c?GQQZ-SGZp_(W1hCLaSdMyBtEg9cftl~O-2
z?>jBOr&<X{AZUVf`%V!16Jf-CA`>Y@dKKZRE{vEcW&z6|(!x5*R(T)As9<o}2m@-L
z(tIgI<tSuMg|SL8h8n3M1Vze6H5xR1O&aezXT!OR9%tMbbo-$T9`8M0TB|b#EnyXB
z@d_&w;jm5|U$%~HYWJRKrg^`6S2|=+dM=B@YX_5>lpp`ti*pe5N*Ux75(=9ZJqG-L
z12eA}<Bl7PSdFN|#R!$KhOa61IVvpCX*eJ4(9W%dl~9gV54!4}`iJd?`+_?4bh{>b
z)pDjb?L>Q#vIapMXnE4f79YF6=0ztEvuk=P%^&3OG9}K>mJLTX^{x|5D`QD$r<S{R
zve}K{A`7ok@hf)#nks(O-kdQMjoy`>cjwTYV^l4b1PQ!v{XN~2d1LfeFh{{<$*W!2
z<eFRBuDckk>~$asz3xzWlES`kfFCb?LGE*V3;Mol+O`_J7B-p5T@kuUiVr?!E5Qnw
za?>KQ2~vp5z&CrzT0=K?uWSkS3E~N1haWC@ub!TcQiN>&>F3|{kg^-OQ$V04co_=l
zqJbC&j5aoh`mbEx_yjeF@-o%qd}>&Veq+c%W2vkfoR<DB9$U=^9xu4?xJ5adqMw~1
z_xW^4U?1PCbZ`5m<2@=*wh=A8-z=6WvpEGENueT!RnHTbg#t-#x|8l;Q5FQDZ=bb_
zWH?Da`{8XXW#*M!p4GfxoDmX<k6XTE4miQ7szgwRJ)fmSpC-9OWb-mY*fHa`t*qIJ
zhy?yM10oZvwWRk_+w_UGsEy1vzkj!$sb;HQ!~Ip-ldzU-BZA&TBS#7?#G4Gc+ud@i
zNSC&oyZWkXKk!NYavFSNfrgoM`W8p<V<g#&5DnkN(~5wGZk4pZz7u5j4wQn&Lvs)G
zer&XTi|ltFM`c|#(@@y`-$=8)_l-0=d-YJ?NYn5iX==QYW_#~H(!Bi-X=;-$f6R&!
z4KIRp)S(d6%P$GPSob(C`S*l$AA-DlyR>?i6YQlsHGBGsD=In65Y%sbh4`t)#;f^z
z2jN|{dzP~~%;1^p{FdeFVrwSh*K8c5)ZkEC&6)k{`JHn4%Exw#^)K2i^-E9VpXF9D
zu$StLqzbJ`BQ9<ujZyy+Y-wxpHB=9`v7x5_O)mp+Jfo?mAB9RjdA6j_y*Nrec}5g>
z<mESn-vx%>Rrkbb(BZ6FXN!Eu2=~9QDZT2cvq2vK{x`S^<NG!VNu|l-D)<%#$zRgy
zUH*`p3<(fX(I2QPp;&)LGBZ;}Rlk3siwUx>qWEhZ07}5?Rk$-Tnzv0Hvu0Zf4ipq?
zdMyD58WPX`+;ySr6H9^0kO<umLOM~y1Xt5Cxk~Bg7(Q>C0kPiV3E!i{#G1Db41P)E
zE7h_zzH$R(#5q+4&=-DOgYAB;DS9hAZYeO{F|tiBI}oz9S1i2ZIY{<n`LKnqgIPVt
z9S#;K8`l`zOT{5+F(SezZ4MvHM0KIC-sru+sai1ne$fR&y$sAp=}fxl+UK+w;wISg
zHc3?3;#Ua4u!y<nN_rP9YY?#I`q=BN`JhZP>WLicLojdC094%+;q3$TIY=kXxAAYj
zJvi?<4SKL7D>7&z`Y%3~zjr?>h70b#$-v_jJ<b**1NyFtpFqi+@Akdz9UL658I2H>
zgPrK+6zZNF?OuO6o7TK<<^_4++8C5?L5p2h*{tzqui3v$<9WO9*HGXJd!B+ro3JIg
z@qOBAY9$)PIGi>A{G>FuzLd{Kf6@Nbs1I%<6{&Kaw_9K>dxNLTH+VXr3+?i};pSDC
zj1uS#@8p}SM?O34$KSB?v3cwZe!20zZWKm8@@m}eO+IApH%BJNrSpIH`0Nx_28qUj
zBlgC<4NdBsgXodUYvB_WiKO|M%9zag61ZVT7l*qf6F7|`Jk0>PP`zAXx4LqIwRn)e
zI2@7VxqFJf`dQ~IupwZlFNZ4Oh&Z5co?|gM#P7wl60Vc1Vx_uXUpqmrRD(A@n~B&3
z#B^frVUKKfP)s#QM%W|&H3M5taeU-0Rqn>@H0d0RQo-!1gU<0H!J0|l;S=cS2PHLe
z4CPaV<V7@Oej_$$CQU%8bZuGo4pAaQbJ*pkES$8`S<gW(qUNN$Oz-%=No3Mk$5s+C
zo46>>zAUmNG3sDNVZJ2NVrfHNYJ80nlTBlsmfXxkB5W1YFSeQHPLuL{hAMDPlhP<W
zmDxh;L~<5etMywXLst2vUzY=AEv<nK2!aMU!!>K2E7S<X{S$RDlEIPY0tdLHL8ryJ
z&NP(Vk1(QNB{d%MHlM+lZ#N~Mz$a$0xi8G4Xo?vBH&$DA#iDZe^LZ4wkrm@HY}=_W
zaAL^^ZwG@j4F^B2CaH}D;KV!##EpgtJWp0rEJhAzJog3*jOa|Y(z@PirwG!t?tgh_
zT3tb<OePPG2bw9oQJ2F+LttcWx{ye9Gi}&3xqQktjx>!4&2d1o3F#u-`g<YeUfI88
zUtHJX@>tz;Np8mu-`>8!ROw>BP9@qP6>VyALxAU^KLqDSd%6?i1Jv5copTpUp26wQ
zpaG?(dZojqAyK#XPS&&`&cH}6_x2ZSNOPZ?sMzyz+ofSjN9VbS*4kw1+wZquUR}P=
zZl3}2An7DNABAiz?#>!5Ei;mAX6yx}j9vMYR$b{oP0SlZz(dR6O8?IMr)2jPA%-~T
z46es4UiXi(qyCiNEdK_4It2eDf|d-BE9<}14X=VEurdxzinvF@Ow$#w6;HZ7zBGYU
zwsy<Njq7}jBrg-HSBa2~U))|gd)=;!*f!$Cw~1=Gbws8UsMn*&arGMCDveOpm3`)!
z*!8Tuz$uvbZRB@l<xIi$Nwa!&w9TOME3Tt4?`FfDAcSOAs~Q-_u}%<LlZPeehT_|q
zANZlN2~L-{wwEcSaLq(0JNSyV90-)}P7>8Svigc?C`30?EY^Jb>TvIhP5=1Ii#kSZ
zSr~UC8=Ny`;=9oPJ+=NL^55kq4EKdd%v`Ld(UUn&K0YvB3V)D(oZ;C-C2e=9=m}m8
zyqGg3qGc;#SW0Z~HNO#dG}@1ZS*-aVnX#WXyEH%L1+$eQToZ8_?OjmA{U9xwhY@{M
zME$2G?)b$OdAXAkt~9(b{PmdYjJP_-J73Fmk=EVP!$3f5H_56ioZ0ePQWuzPKgpyr
znA*Gc4eXtr*B^t(W!ZCFsIRar)~JmAt=~JvBlQYMt{qcW*OitDv8;OIfd5TOeEcUR
zhIodQ|L7u#!?ed-^KTfR(JbS9Ao?2bDVaSO3wfk)Csl4TMyznX@dE1xsOnTML`ZwI
zB3Q6|SgM??O}{3_v}0*9emx0$Y@41U``raP7;?JiIw%m%e&yOu*xL>pyMnopTxn*}
zL2)*yqGGPr+RX+TFi?O1V}(7B1j@V0`h(MBs%eR_`vPC-0Yf!429<nuvpa^N)r~_D
zPlwj=nm#g=imzehM1~{YX%gB&Va~D&=`?~8uo(Y48X;ox;R^;t^Jngz1s=o4PPhl4
z)uMot<$Xi|S^WfXMRSNu%($Uw<`mLtu(Y36gC8fi>z{(X<Sshy<1K9w^lxt5L;(7f
zi~bCF(Xl1if@(Gh)gGqEFZpjO+b_7ig-;mcor+&wT!msh>YJRdStVgf{|`3WwO2i|
zR#yEkBSFTd^|F7jnj<5~av*q5mH|gPUc@wCOqfU|iV7}MR9W!x!Y>u^y60ds9;*kJ
zDpZu=3m`NDqBwZm|9tfM<8Ii(E`q-`ROeW?u&}Dt`KQu*5?SPoWh28JE#V21L_*4#
z3W)uA%GGiLtSiQ0T-DfLR*DhM@?p;(s$C-2D*tWKIb2W^qo;&J-&le0eDv)};yiAc
zHzCeO%+O-R81`@Im+kla!`oDQdZK??Lx-$+O`A!!Jg~@SQ-{`Z;mqa`aioRib{XHv
z_YJ)?^>XMZo|*}W<<ZxwR+cn|E6l%1mHGpCOez{L`ojhIgg`pH_ncmEZ79V{MwF(_
z+!7F!;)C|lbSG{ghrUVTEC=zwMOlupHtC(itI}~Y2eIohLijvbRE~XYx9g8mUS$oF
zZ$n9G=buungo-tWK;{3@A~inhz_6lABc}qH8am)75H>)^GXe9Gs@+mkU%l}Wxx*Qo
zC$G(NFI~;=wv;<MK7DoWtfmi(rp&-2pCyh-+Is8qj_p#pHOr+dd#`g99Lcy|+l6pg
z#d;Vx@U?Np5rZx*)p*^B!&hpIa~PVCyj#WWx_|4$O#pdA2^|Q(Ow=1nJiVa=3liWa
z`YBuBCShYMe#b>hsdBHzCV>%iZ7#!i<HN{~rlM_7JJx-1i@9~kVznei!mD1r48?mV
znRgw(*XslMDZe4o=XIqBqlDZDhh}k^-s47y`+4Sl(xJxOZ0*&x0;*8FuU8>7Y<g2C
zfBPGjMbNp-)R3+9j#~kLzLh8v;x$D@$_h=;y3430i1U`?v52AC`Xn5G{t|R)R8dsI
zvHt1ng@}%CroyH0LJ!Q67XtBm6aYqJh;jfbhf=r7#&W2O0_wAJ0<n@P*-&tN!<BN$
zx4yhDNk}NYCpE78@y9HXk^<3@V&sBePQ()Cazs5{!eitDoN{TS)?*(bPur2a>&+Mh
z01mhFNCcGMuYY6=GSRssZwK<^e)J4DOo1)~_jsRFVz*>U8_rm!ck}`SX`Ye<JXGHr
zc|i_0Y2}&3I}noEQzujS<%l)J!XDmwL#*eMd#q(1#F@vOU7NN|rJ$*2)y>zefFKB!
zuF#`3g$<wgpfzp&7&Y&q`?CQ@`l+t_4t35hG=x75HzY3J`u1P{h2qPG%;Ih%z7jTv
zgwHFd_)Nm=#=R-*`~U5_Vrj==8+n2R^P7sUgtNB*f0-*!s5EGUXDN3iO`6{kKL6-O
z6OV|3%o;!XpI*mHllZ}!HjC?8VWu<LPBJ$dR>c`H&D(UcUXE~md>6&jEou5q@;i^3
zH2243Hi8Wt8v4RD0`5<EBnx1i2nh_+1<emy>a{qVnQEW4YjC$bbX4Hfq*xfm@*HTy
zg7)rx2KPRv-`{tjoAf$2{?{Z!#+BbpvRI&G?RWIklj2<9`c}*b2qZcUYh#OrROlNm
z=t2ww)iroXBYF->3Ln+1yjnNY_7wQ%w^GlEe&C-dQdSZoxEPPv06p0f6u{}NY>CVr
zH6Ff4-~C4TXFrR>m^s;}!sN*1w$f#Cv?QLbTn3SarpV3l-h*FgW1ne68^ulWe%5`L
z>zrd^e$TGhsP6K_^xcRn^=5n_T#ecu*AksO#<H?K<C&DHrjSWb8*a9!vP1?yhV1SN
z6|9*q*E%CM59h+vFUb0AHZ}KAkIJuPl)1ZBUco9g^<dC|>&6Cr_(`WoVg92YwUA)v
zvb}fFWT<2W32ZO7LP<y>%yvAX1loMw9uB!vMlt^tLM6?K5xbnT#k6k(Fs0O+ZO9;l
zObZEPzlKi1*}^+@uZ)emT`k5hQ!a5cv!MFuIKhF=@BHBY7p+`9`<Q(SnM?$RMJ=x!
zCZgmJ<9<LOjY5*Z4RO=W&)->9Pqu3(HFgfB7!ySs8Hcu*lyc7X*)(#q2lhjX3t?^4
z9W?u1f_~uP+LGf3x%n_4a0Y{s$S<YPJIn^Q+fgt+$(8na;8d#IJMCG7ef+mvQPrgG
z03Y!hmOC}Vn!?O%m`)@J0}^AGt2tRVBD5Er(ku0eH%geJ_eR7gVQ_nPQAn%On0`Pz
zlOZ?L^KC&iI;P0CFPIO!e+Pz=)3gJq2GmwOZ*Zu5Mse04*lV*13k#{C&KDjzOvOXE
z=3&G>rN^ITj`kkZ;PYUx!q~pO@Vre~qkcvuArUo5c?gh&C8+nGE5NP$^iGh|1|hXl
zg#Et9&rB69o>}7uNubLW`3<&#fx^|++sM(s4*1I<KaQ4!e}DQ<y1{-L8s<s?A4shc
z&2gJlL_frkzqs^bmQHXQAEyw=qShvX;L&}*vS4qq<0=1c;O*s>w3SKIN<wzGbj!Ec
zT3uqM9XqQOX}%eL-ih?no>rh7*12IM|5%5XUJ5p{Dx#a2OL9X^UWUQXmMjK+g^L+)
zu{?66Z8TUln|CP1J=aC(0!q&qvyX!|tUZ-m4{uV1WJX2f&--EQw@Z1eAXj9PrLTR_
z*MTBS=%{4c{4T5}d|sRpM>-n|*MRU`9EZh}2c<Xxl*ENh(8U-pUu$GtZo?=={g;oK
zW`Ua-50N^Y(M{{%KdT9{$5T;6bf^@uaS_LNN=3Cwmg!|8^0v%ItI}UsZ&BzlT0_ab
zKvizX@EAR9yPYs;+N;6t-hWazZd=}s0bAb74kM62x?{24i%6gt%&cL+)?1Jqxb;s9
zq3wN}vh9M1Q8EEr!-dP^WE=lUBz(;9G_o_t#C}UXJG~DP?G*22Ihzm9zx6wt2Yb;N
zWVM+mA<}Pl=mQ7Ipos-#LY+$tXY&Doq8~D|#J=Fx143Wd2AQE#safI=cQ$~td4EGI
z?H@}0d}&zn19vGa#XISR<@|oN@w}B>ord<_HgD;y!mQL3LUMneZfVn!16vIS1GV-A
zs{S_R>szWEkjZgDO}Dtz6Br2(XSL7RhTPaqC=*k}9Oe88`5gEZr$Ad<_<)ZYb#Vk9
z)_uUJ$IHDu3J?Lr_T$2s%^|4Y2c--zB4BZ2X%T$VxyNAF(~Su()k<fL(0Y-D`=Vu>
zu6{q$&Be;{P_MvkADiFmsPW5jo_B+CO`1OC*_-b8??mvnvCt0|xhrx8+Tne`KT^`S
zzaozhQ%-r^X8iR1S!O=<Cd2XtZR@=R?5Azhe>zc{>tphW_B}>DRu5(-WDrubs}=R;
zh}G|vCHc#TbUh+2z&P{5u@CG4D&L5X-cc$<{3lDf*~b3ipEsVe`+zU*(cOYW+UM$#
zGqC$^R<~$REa1Nh$}N7`YuxaQ|70gQ3Uk)C))K(Id1#%fPua>bJYw#y!H|P{kKiVc
zWATjkz9)gN$Qi>>(()(a^;O7kme#us{mM6`X%%6q_kS_=mH}-vY}RlKl;Tc-;>Ep4
z@lxE~o#If6ySux)yBBvT?i6<k?gT4Pg1kfT``O)Z_s{o-NhXtIhRj@Yu5->1Q}?~o
zfULJts)?UMfVBVZKmt<{!q@=54Z~u~APB~u?c~t!yIatPWbKrF9J>y3G+0rK_|m$3
zOBu2F<U3Ew5Y{koLt!5r@J+AgF~njc{i7d5Q%l8|Cik8W%0uduXSi#U{&VYwxWn`O
z)T3w~q#8po>`dwuB7yO1YqS1>i?_Vg)7mB1qSUi1W>X3W*bNB`IUF1R>Em)wYqQt0
zqZb7?k19b-l_U*d>o{CBN;~m+V<<&PXVFd<W$aEDIt?l1v&1Q+nJp<(#hT&|YL;NY
zus6(Sjo_)H?w!(+ac<~s41TgQcD+-gJO<C|UbDNecI9zp+H|dj*O>uUddS3EFRKq8
zzJ?ij`zb`+!htgJRE+w$FJx}7XXQ77Dc%eoEBXPjUDN_Q^=%W(zZg#yxD{^hcO<Q+
zwHDbr7^o*NycXIi-=B~5L)MbF=OE)#xzHM0k7wIHE0){mA-CzA^$DHcD?u_ftJAlV
z%bjhWr*@JX=?1xlU>VXvuo}ImwH=LT^7L)L2tt~+<VNv=nB)dH;$*d~cFd)+W&z%^
z)Pq<n^&{;@xFB|swyBcYFfazzMA+D0ppNKqPN$CFIgU7yTH_gRiD7C#>liLPdmPAp
zq)cwTRf8uDyaAq)hnk*?ueFtbh-tme3W#y=o$bgbzj#^XC;H8H+)@M-U>BS{0wu@@
zxg$944+j;1rb@0sQW8j5p9{`BmEVs}i~vg`1ay-p^lPJc;%n}4bXsW*EMijT^b$?3
zOdip-e2v3UG~RNw#t0_vJB0?Tdw>#4*YBs|3%kHX{sI!`XSO8jXU2h&XMCOT8pt5R
zS6d%e==f#Kky&Ce{a<P({?IoVBL1qh6_Tz1xj^8BTtFULjFjW%3ZE~-h*wRy+NN5f
ztf*no1|F*SqfyRM)XEksda3bC7Txs$_5vMwgcA_*^y}$?DhsGkdd>cZJN<e-l!$;S
z5DoBw&0idF8E;sWj1#Ns<VB7qLs}WopAHVOC3{H%J{p&@q>IOBPo74d&En7r*FQ|j
zyoY5DD6KEE>zKG}2KWT2Ew82eIo9Ul1>4c2!lH{C`Ub5Dh~*By|2dDK;5+NTl~Dn3
z-Qye2VtT>H7WmbOFK%t!2mRZ)TTcMAJC|74+$B~3bNIA(FzHJVT(7oY`yY|zNCj`5
zzdlT<G|H68xN%}Pu`#*BJxp=e2$Gy$H{@c9-`<k#a5;C~uBGs|a$H!^!Ay6;7eGew
zMHMp9#H%L~Lz*t{SLW3|>qx^)KmLZ#kFx5AnNCzK9G=Ic012$9;Vf~&6+q}PMX%H|
z$!VDa1T^I%1wQSZni!u6_mHgVk+mW&Fm>K?9MSJn`~YCi;P%2=ax`(#S2nHAx&9ed
z-EVIp#6G2)F`%acfLMd0YMTyo+l9}mYAiv~5B3NTUKwIL+q!*{yr6CJuz>o98FB&P
zVH)w#N@$1!UWuDJPM8?HQhvxPsg;D|c>YTeu@Uc*FwjmLBGpKShYNPNUh?kfn4KQ&
z9QZFtH$ccu8#wvCaZwmmM;kq(2cy*Ab##5{DaoEmR1g{Y&eX1q(-r{yh~sLeyUk%6
z5IQW;U}GKZ5wni@S1njw@sp?J{dPwE;71CC{NCCsS{3D1O^SBQq6&TXE_K?@!>TN&
zSi&R-F$rOkH6gKeVee&mK+J!|TW7@IYAB1hmW}huYnx=XWi^2`D4pPe2DU>spSw<g
z6oO4r4gHDN{=yRoyw{#}SU}*t>x6KEZc6!hw;+@#gr>VZwzvzVa9cXUWc?H28Qk$C
zGhf>rIo794<u;a*crsBQIUKm3VQ*G#z7XFt%PW=8+S}$|mmf*ao)i}gDS^(CnA%z8
zlbB{kL^SJHEZK9xT=R76iWHgTE{Iss-?eLLhigx?IICb$o(RJnL+W6DO=fYuOyf{O
zh&{$1W)F(+N2L8Z(AcpZ%;Gx!gU)h<tM+hATiLo0Y|iiuH`UkS1NIPmxXZ5Z%TazG
z1$KS={e^K{CC((I4f}#Iu#@NFOp=ISj5JDYJrLJ9n`dPd=FX`(ptp^{UqyNUtI^=s
z;PKhx{2FJN)_~T~q4swUHe6=6K2f#~+>FrN0~bbGC{908zj~fLw6ApV&gwbGF2)k_
z?T-c%hJH}jj)6}-%>|>>ZVr+fV287k@<{rr61#LcM5AUCIq5)hEl{BPGENv685@p?
zObvp*h(PgS=Ce}ORPJpvQ`uH-gP}5cDGzp{Oz-S|_@9og4^D(maA4SD{E{Tw14iBI
zdq#T)_rxA+f@2a0pT|7MBxvs@HXLBSijZ|18r!&jm=No9S6hCNZWG-QgAo=>M+J+r
z)MO4m%;uNaE_=9aRRuT+rawpJ6&~z3@=3)8uzNd-h|}liZ`n-ui=?Agqh^LqP*tc&
zr|TJw6gg!+wDFqR<L(*cjt8p+$&&A5&fdu5bxoJ)=RT15rNuQ~-}eosp;jqK6!Tpn
zSeM7OYwqV(HYl`82VlS2*QU<Jq6Q!+Zd}=|0gcxnRGUInZWNM=S4tS#4TK#vIJ}1X
zZ%E96L0m!Nh+P=aqlNln`xsv&0Oe9JmFT<&P=c@h1g^Avcn?w%1WS^NKj3z1XxW(`
zy_laY_}Y!Gi41@OeF`B}L8S~{=i^&DgGmIDLTS}d&9Ay?>Xid~ls5SD50<PdrpPEH
zV*<D|RU>g?HL$<5Q~dA$dz#jux<`Wh7LDqS6-Ez%FcCL3@WtMfc=PQT;3W4qF^b%E
zA|S)R!xmfhDFZ{`KQR>Gdp1&{h+}~qgJ{7Azow~vwVy-{53?S~lBi><g!Ix1z&&<;
z_z478!zRS&Xf2OxiLDo=RzqeX$DQ8`P(u7)UFnKoJJV}O=Vo-tzeTR~s1&h}DPt$N
zlOVg(`lVFE*l;F(yGr2SOV()(&~$3|lx8pNM%Nn>Tb+xmb>!FDbiS>%CAQvL%y(#&
zx&zsAHxRyJwnMHudbVQ&Z>dE!bl7z&)=^OFXnjzXGNSdiU9mC8=v2h#o5V7Ze~;Ep
z7fRsr&pO0a(y))mhT~hE<Lq<Q-PYVm9l=de$2f|&Pqd^3&7HFyK#<em4V>+0`vz6&
z4wizG#1~(CiH-b6>r<KnN9zy_!D$3wbIMR#^SD;$;m7p&tup$;Gf!#BkQQ&nTRz4}
zQ&WjG$Pm_tvB&&_Vc>n1Rd$9mD));N0iv^(z!pt{Kr&yEJS5k$@X<b6mpDjjy<MU}
zC^+k2qh(qMwW4t^c5%BbOzzlMyzx3dcVRRJ0|l9#r_>T8ojgb|q1M^f^OuCJN<u?(
zr&vM2!F^Kgt*v<lqERRM0tas(oX$pfQin4#LnUiK?XB{1$4e12vfc(e(&Nx|wN`o3
zVZjc3a7XQJRjJ=Oh2#<hpm!0FRa;2XxMyn<<HJ;_Y2Q?Z3+|eeE)E#B0cA*RBD{b8
zUQC1Gh;XeF%p9CD<U?6#(|LzQ4@vn{qq1?QqM*BunK1(^g>5OE=^YM9ZQ7f_n>JA?
zv**U#$Ew_Y=5E%c$<F9WFV~N@EM9?nNV%R#!%9MjvMC>@HEB26S`j5N?*#dgmicKn
zfbsN5PU47jg(_S)UU5C`FzaS7r}VPP$a}IA&UPs!8I+M$X%PFNw@zK+br-9Ev&8f9
zw?j8pN{YVgzh!^ibr&B>!SOio3rIibA4qU##>o-8rvYN~I=e(Zr_fw<NBq8ozOY;o
z)j#WV4o}2g2NMZXiv_d3F}rzMv>Or!dp0*ObH(!BoJtAS^01K#R({#NldxAW6GdUo
zx`I0w%YP6U8Ebo>=-+xN`g`v0DMNG7az#0TQ$6taoXDi7#|FMzZ_Y((IJk{zuo$eR
zt~Xd%V-<s6@)&d1xqa=qQF5Kh8F7pTbHSK5Wx$l%?)uHk+iNL;DBs$;-P_CUC~fU(
zlvlV(hue$sHHJ>TqaHptG4|bdVN*fKp}@xVMf2DUtR(o>rH-mg3$S}@Yrt&%myD);
zyE6Nfy3yl;Ka@#@Y<YamF16d(e-DE!0;I2bS=%PDiAmqgHb<B4rLY_g#4(F`*#3_L
z?TW54gj?E)=L;X=mi)TTK>Cq}zdz_0-lLIb5J!RKt3EVai0R2BCZO7Sz&l#!Y@qY5
zzWt%BF0}FtsO^5GC$H&qHsxdAMzT4-CK7Uq!mQ;1MLgsP&Y@2)rk8MdJVbUrn?vlG
zN6{~swjv2Vh4$BmK9fZCNcpwfvRW-VcP1+Q2q$A{8U3RsV*hHu=}A9T_+I=Z)01%+
zOITSKk)5+B#{K62=n=)YXMi)yY_uCWsXRYAJ=?i0Ir#pV@!dB1ui?#J7hwe(#v!{3
z`HS~{t+*abf@7i~pP>!e|C{Mu#RZ3kS=-dy%$DY!5s3E$1Ak2)F%b|jt*ojqsM=f*
z*7lP!`VIS3Y790zb}m525^(_NSb^61<o`v-!aBgjoMxDHzFLi$pKq*0`J%6}P{{7|
zjLB|pJHCpRtj_+YFegq3)IYuuOE3+&E107!k4|MilXlP8iDBubR8L_^*ok42P|@5&
zxoEY|`?0$d?8B2U)Uea8>jlT#QYycAbSVU)=vhjNBfboCIt{tm9Hi$IgIVWSZ?nDN
z`f$zyYNK)+Mz1Mj!)A#6aP6MP-ck!Yv-Pou9^Iu*K@&?dX{gU{i=~}hD!>zIzzM<N
zsxj$cFSv{M0j8XURb*&VqqdxQT_A(LeAguWr-d(glDz6E^pDEB*R`9YvCWXpNKy0R
zdP(OmZ~B`vn1*rD?d^W}{`jMPkrIz6-iW|#5rC9AI}k)DJ1}R*D)zI%?4pkyAj6ME
z8_E`;)bN3hlk{a9vG!6RDe-^lJqY|BNAGxrV2&}cL)x9Wq!rklN?5<P!UB2xt9g$2
ztei(HmC27zkyx%~l!)DJ-VpB0IxF9YM$sv>E2@$0enWfp3zzeA&9HSy;JEwXZfUp=
zdW$mqXhG)d^#f4-w?lm5!OZ9LyB`qy((n7{_W@I7eZ4oj^tG&sI7tfw`k9kAbEPod
z{4Hqm!Be?AUu`S|gID1A8P<YBQf}t5cV=Bdf5%Q)FJq@kLQ(&?GI?W-O3ZccnKEfQ
zUDJj_sEkc5b$Ne`JLm!d_}+aR#%`4r3I8}Xcp{gZ!)5DpWRXG#MRY3$04`&r-qhe-
zl;1hmw>fm*nku$E$p0kJd;D`#>z_d9vm9khV)A<=XOn#a)M&=*1#oJh7~I^rvWP3c
zMvj!j;2FW}^yOd|gf69%-xrpWzBSUJB#{~WU}*pgrto-k^e|Q!s-cG><%-fNmX;DJ
zwY{W~u(h~JCNmZy#2Vb;8{X0FY~M@}4*uWV7=>1$cD}DLrwhgGWp^6><)T5rbnR@c
zgpFn%k3XL~LN(gzJE6n#CU@{VC~FVb>s@s|P$r$0L5le+0040|0kD{MYdzXdyey)U
zbvKF43(CavyU5<{NcfRQhE3a|7bLpnSc_@n_u8Sb_J*n7+0MOFF_lyH|KiAeCYVLT
zt84DucJO2k>O~Gz9dvA3%yT{+3bJ!kDO<nzavWK{e(aR10(K-*0jpKGRUg7*D*k3v
z0pB8E&SpFWVJmkm==a^KY5%U0$t&xrs`HBqw$yw5bTG1h{1FPWtUU6K!JNnM8%&w!
zn;SAlkLuo#lVdiOqKbJ}s})6TjTYI)_d)LZhp~^EA0SOpCkq%$-ic_6Mqe0I;&uSI
zsmUb=#77xcpVo7mhSPde`EQLD2nKsl`y+GEc69dKA~X2?{mEhuKVu=#czpTxGVBB9
z70%|%F^08_n9VXbdg;~_5HJA6*FLjH8a+pf!!tvo3;EyHl0&Ma{WWX<qEn9mI;HR6
z`cbo-cK1zi^3h*-s^QPkHJarngfc=GRdk<r;Scw=DS%B0H&vUUUcBqH?m4*s>Hv6P
z=$UTvq}BjP4lD0x`GsJLz(EdNHzD|FIms7l*wf(^Ytnf$>OzxEXQzY#wQxxjq(^(B
z=MOiQ1JwdYwJ$8Mz3od&<lu?8f85NrjvTjQ24Eq_>6{K3f#5!U?O>7+XY|N-?(n<+
zn5&sw<9fPpKVHo!Eu3WO5s+wF4*sIx&kJuX%D}pFcB2bRA-t9#jxOi5%)a)D;;_GL
zV`gux*ZQ1W_Ve)9IE>q{W1Ea+_8-C%GpIR$^Zc0AarO-=S0=O0t5|lW(3?N`@Bv?)
zwSSG^5K>qttdfc-C)|bGx9OgF3YXTw-)i>T3HB(jzg<~II|np8ZkWW5_s}0=)C^+c
zburpj%$LAP<<o^13)$vL7==6Ani6x@<bLU~DDExxibcC<<gMRW<HKdT@V38h|4)mx
z@6_``fMMg`4vCSLc0#y@M?)}HM1qEj><M+78q_<1$kQMs=CW{wa5!JfWID6n`fyR#
zIG>3Ix4W`hEjxE+DolotT6K)lsEauM4Yo6a5VMm^AI4B@VIy5c?&g3&cm6?8CfaME
zLC&o2qunU%;2+VM|CPB|F|zd!dLx8uTp5P~q-T(T7(7V&!Elt7l;+UK6ZH6BBBhtq
zW&e`8gnQgGLh+uk;P0d(CNcsp|IF*lnrsSDMZ<Gnq{h=g^H5zLh>uC|zKKhT-@d}M
zw{yr>Xbw3ulvV6@ek!7SWj-cU;UOTW^F9W=-XI~A_BRmstrl!ra;VBzOz5jSft~~t
zl;VTd`)qkfrwd*e7nZSy^l+F@|7eZlNSadkG+m%?=h<`6QF}y*EPCo4;aL0m>c?sM
zYbkP>_ig}wag5!;(IRCrA8L`CLYlX%cAR*S#&$hV9YaZPUQ}Db0?^SW>S<@bWsWD}
zKD{Y<8x9a1J&~wvW!bPgP=^A8{LY*?lR;%?Hm|$>;2|Qvk$@m~=9VPL(jHF#<Z%75
zIkbuCnjEw)88}znkMlBXo-W*cfuKAZzlXL+30V*K9IY7uu~fK~&0`@(P^G_<EpaEO
zViYEzjMl5HY+ZM&q2AY&QCY?FpXqvT+56;y+B!)|-;;CnGTN=lTqpB`Q&cw&{A@la
z!|>nif=Re9pfUHP@M=*mP{m(=tx2Q}H^@Y1GoRrHE=x-Kng;U&1_crw^%3Pl4Sh9u
z@K{+ptt$g<QkZp6`CHmnT}6*}`hRN2)VI6ONq3w|00p69^){1X;}(dQ9)IH{Wbbz!
zuw(zbKSCp``&&0kr3dZSn;!@$0}r-oA>U@sfvc--ogLY7GfOIx-SK|VQc)kmh81o#
z<MW*bT{k_b(Wf@1__cc-unBYYQeu<28KO37tNUc0M0${q#?&&@N;|^{@M32NB5B%u
z;B=_KEGA<JwhUEZt$83^KxKiPP`dMUaW@r@S^9QJ*qI%YWOk5GbT@$%9u{JaRr>aj
z&)I9j!x=PorymKt7dPf+_Pp@XXvY8*Da28X<9#5r*gYF(9<Eq}eKf1WJsXTCxnKat
z@kc6Kb8}~3S!K`nium|WIjc-+Cw+6px#JftQU<b7zoLzSN}?O6B;FawD#rP5foCQu
z+0IB+dvdPLe|n$L-m}%i3uEqlr022oCPi2%&Xv(t$}N=Z<!Mj))_8ZYdna8e2ko>z
zUF>V*z@{aMd;L4KOHQZ`IsY;2+B}92+2uRrs2f8oJIDlI^cMSYhJ=cpXs)xhx^Ja8
zcPVH(Smd5fJR3H_J9kM?!1#q~0`&PdyjbJ&2&iw?z%S{44ZBC^LPt=X7i+qBQwHPL
z&Tyfee?BE#xncOV`N4*Bft)`exT-TB1@@I~<wt9icy<sgGL7f^yJSi`c>p7yF4h;(
zRvAxPn1#)1u~GTG`y*i=<X#}x`vR5E33OQ7#G_TwUQTx3nwxREeR(+(f&FA=Yq#3I
z&e0Ic4k|({L<GJI&B1W$v>Z{Y-t&DLV+=d}bg{ra8%X;z;cS4h#KlEb!rfiu_BLTv
zk_R9aBfi~)B=I2wNIe32nY~^LSnHk*>CM{U?b^lr<)8l{KsH^Q<0cQZ2^joA&G|cf
z+CG`#R~W2s<RVq>v=Ea_m?>Ahk9yXy*1BJJKobZAghN&UOkP}g{TNmVCj4wDD7gVV
z*46h*iU<Aho4#d_c=ennwGpq4t&s@dIJJ0#4T`S1?m#B{QGL6@QmLqWZ2?S%>j^*n
zldwIlfrM>gsbU=OD0%~o0e1Avl8KhBDeAqCC%x!$AO8W&uK^_d*G_lsB5L+rLT6L^
zVnafw-pF|&a=|qKr57VL>mUA3>};w>JKA+oynmwY&5tB01V2b&a#0_%yr%KgQ@Ym+
zKQ=mJw+H%2KrHn{RS4dGq17~!@?4AG6Wbn~O92BDx6di<iiIYsA&hf_jLd9lRu&$g
zJVF|;I{<=;KaFByk`oXGXgsO%R@6p=UH-n~OG=)+u|ie+QqK#)<v&9sXh$z~APAKH
z69klC|2qh*+^#L|LOPGD&^B&Ub0Bw}_`0abE_+*$v(bw~hzSjVK?BgG?a$K&TbI6D
z83OK!Y3HqvRYGWeZ6TuJ9RZhnrGFm(7_+)Xbaq@k{W&bPaQek`g=T60`JeXj({91f
zt{E+bzLOledl&6pb4bCheS2#BMr2J*A;TrS%73`1E0*6NV_*;s=1{$gZt)k(ra(*9
z%%(wlB$%tu%d=b-2kD%r$*<*hPVm)v`qzjKd5SPA<H((dj!#TIxjd@tNCjANSFJTc
z^RI?M#pqI9Int{@qLx|0$ymX7G7+xTKIb4}tLM>{4tIz@6w0s(;_MV^i3C{@d3GqN
zM41tLNryhA{VAQQMkuj(-R}Ftw{R01^xq98**l=YtbR=-b_YUVqMO|3FG={s<@eTS
zU`x2;aNGLEG%+u6<ch#HkxF-MO3iV7ZWVfuI<qrY&3ZruGO@r4<))>*KCdI&O<QL8
zu~z9vKc(F7sYRaGIxKV{FKB2F2MO{zBKk*%i0$D<f)gA1q5ouQ4A$C?XuQx5*8mD?
zUPkcJCxuKdZb=U%S^N(f@qaS3%K87mKS$@%;yIU-+W7y?&*}yVd`_|tQ?V)WE=QQm
zR8)IZdpnDw`Dih#gBb;W;0GDCSBy;x(3fj%H|8G`EzUiK`5ippgVvgT_>j;0fGAT8
zEH8mD?EbC;o0fq^mkX?Du?~>*$UNT{El@@9A^%nO>X^_n(fc0T{+>)?M@D^?DNbF&
zy7|FosWH3T=r!l|I;T}qIq|*u3`q&B!slA&4*N0sR=M7x4}k)#N~gc70+!0YmcB~n
zL$-ekjIBg0wBw9Aog22n;E)x5y+Sx$;=Abrr05FpK|9ZRLSU$0!87azN#=V%N?J)I
zStauvTBFiCq`1jqI`H;7AF)79=y{r~<NZSk^mn^o=b^0{y+dh%bK?@NpE3@`59dLf
zM=*s9qyx8Jp4_1cPROs7Q~^GQ?kJthQIE!4a<5{xKRDJ4d3!pg@m&-1{3iM|kfa4Z
zeaBrQxn}>$mw8Ibpq!?HA*+>Iomsk;<H4uOY1z$yFPapx-ZH|}NvD!(kU7P6xWwPj
zQM{(?AcGJ3RMsmV%)I24Oy!iRgU|9J1i)jG65;IKRT5hIC>55pFx|MhH+7koMF=CO
zk+;j&4l=?96qj~PF5{9UY3bdT?VwEAK146d16kekv}AP{Ih}S8FuU&n(PIO%d);$Z
z5*y4IKy=z2DkOCb+k=MQWaU$>m|AbeS;bQB2))|zwakS#ZyuSfb>nkBhULk%XFFG;
zqfip;Ol$6tauwOx>c?8v9Ns?jKHWmc-l3C<YpayUH@20BX97v@46cIeKU%pEdyV?J
zb3}Y6`7YPg&tZ+L5q!ePYp%IJk|0uWimzB%R>4m$A-345Z`4*e-Q_#-p1U@W@*)0X
zA1umF{>RpM`D!0q=bahb6TRD?vN41NC5sv?+l=l0?CKw?IJr3^=wY)Qr8u1j_mlSu
zc}9XZ-ofvl4T<L47)c<$Rm0`z&JGi}u|W&JbcCKOZ=mK#Kd-?wz<gUnEyq)$X^a^h
z+fUt}m!T;HtgvQPFvT%cP@DovP*x~g-^L3XN&Mi_mZBCz60e=dgI3On6H)4K`yUy3
zLcB@8wMX_2jp_UmD2VRmiOWLBPt$qNRZ)c$W$toEYozBz6&(8pAwR;izmmWqi%!Wn
zL>pOrh#Sa*5uZCvP*iZ|j$0?ohRPjPs}UcO&=(RN>}}KwKDKfl7<hXWrhMn+A5uiG
zYEVcV56po&G%I;GJE6aW_)WhghlgZ>g42Rm``X%Tq(@#r(Z}EVhiG9bdX@>Q6Dm6=
zm&g3fuiTzs#?9A{2T*#rAp*qWUxMSwi@0-yWgx#0AY97zK1aJgS=WM9k_@K=QQx|0
zb>#2eP=Jmehf|HpE@Ivowu!X%+f^l+Mkc($M$tqer-hV<>(Rq(;7}P;a3SA|tQ;6k
z3mQ4X!bolc_2>t>tw}_)efiBJpUv*Obtgk9V>b49OA@2fb*Io`g$Dda*p}yt{7j+1
za+RRBS3Y1xIxW?9nNDpFDW10&ol@UZ9iBBLc!DwXK6`Sdp!)2OU?n7dM}L*E8pQ||
zz^cthp&Z>&V&=LeUjHyZbr~n7$T)RrkJq^hnx4Cp!4RVo9NR{;_m@)J&duRz>6UV)
zHM}hi$8QIaO?>Uv_kbIlE;;F*iLL+OA#Ac2itnvGZg)wCiO}23s=`9(_SRG7@X8c7
zZZ^j@33f<zlZld5<Zu)r!)gb}%>S*7lbxt7zNFM!ON2tlqe*Mmn$LtkGp7U?_soZM
zi;JOo+i1uPJwFqIKK0Cnule&Z^ktze8%6mLcQ)@7p`4@ml{FSgckOaG`YgN#YhW+e
zU;H`j-~vVc*c`37w)b&<U)Ys*ZJ(m4kWmh1EdCnuNN_Ot)uEVVUaV34UgvJc@*D(T
zn+uJ{8@{&@*d$*w5ruMYuwx)DTe-=AJZuK%vYDC05ai<=DoPPWctx~t5W_&&SHgQr
zLN8}546O6LWCX$26#L^QT5G|LLgPs&y|rQ1<h{zrO$1u6d^?X~1+({R=E|_KGEmP!
zrz&+489>>9gOe%`RjhpQi7LVDHXWTRSGdhc9Vz3a+bBW3e1zONM?8uyUsy;j%Y1D8
zW4`dOUZ>x96x<I_69Og)1mfKpuK)|d)`+-(nGLSIh&W+Q9=R&gn+cOoQ2M>e`4iL<
z%^jH(`9{roo458TtoZ>RNTSXNRe8Cr4~Lr^4lipEvhFgT;fwR_zvEGaIyhu$_iDY5
zv*me?->rAh%~J@?XHJg5V5SY`f!l)D3snd;Y)E=}&eVvOgvz}a5eM_jlU{Te(5IFV
zY?x!^ZK=FZ>^4bo$n5+k8md*`eXh!TNbVNK!Z_g&=cHtHM9)Pz(~L8=nvmTW5GNhC
zS31IqgK=6Hf@5{xZ4`g)466)cL0+;jjlVWcmSi73VG5~Zp-A7szF0=T=#35~OE2j1
z|1obUy+r=#`17{*+*WVKyi^j2Vc+lUJG%<|;B`?5Pi{fe62HO6u|ydR$soEgDcJY`
zj2j8u6@f+l`1W^a5U{t~-IBThWkO6hW+=F;E0FV0U4cB|8V5Q#=Z&0<$1_!m@w?Y`
zn}hxP5HOhSJJG_XMj<#mz);&Dg*+idfooM@F`zmmV&sjHVPJ~9Agr8mz7Q%EAzfHN
z+>-$aqaIWms&Lp};!x`Uw$qA6l!86__<VJ+q@V{#>85bg_e=5mE*`0HA^?G3{Dr{Z
zy@1E2vwZ;&_#cNS(OwAr(sCHMn-CO)HLi$JlwCal25pGSeY7gmpG<WSO?e^kBR6lP
zRTTgPeidaH?z)T8X^2z28};S-K6Mo!ZruGx+-N>u%+z4W@#~T#Hot?<6LF{c_df<8
zSjcjjJlxH&bV1PURmAALxWtP@>~{t=nWgPN5`FMdt-ezgJPDmdw_>T!tV}=xem`lZ
ze-jRULt;?+V||0OB9ScJ=bI!z04<I_dXY0~|3}VPe0Bo;&d=Jd+M)W6QCUOv7^eB9
zzef;|Ktj-<?8B1{dUv$C!`Y}N)+@0pp}@(FuNiJubT+#Ak?vUaDDv3jrIa|g>F)YN
zLzcL%05^laDF&<dhtN0%8wA1+lRPZ=psfpQN9}e_?N^2v&E!56OeG;*_ZB~mfUgg6
z-1eTY9;*MGt21!n&D~E5-W*~b5F#}5fxogb1^Wb42)g5>qF~WuaW%?Q>$7QcKz2A-
zJw-Q1M2QKgO>im{ToViOa5@jg<Mqp?MS)0-%jryI=L1CQ00^LC)DB)NO#Rd^x6(*+
z)Oe6~c8)%d<qE|KD1c`x+O_D!h!;xjX(o;^^m4erIQot7B3#-uTv81NAMpaL#$VmH
zKa>yn->F0r_1h>PD)?|Xy2TCDHN2O+I62qX?uyFZluDN$XRtvq>q5~t+xyXU-pFw`
zfR^lk(E$`SiJ#iVFBCgYF=X>;IV8(N7v3TjKi<y{U`t!r%#ECXB?8D$iIn}^`R2-l
zu^@acsx|Ls*}TG61bTe`#`+|Y8c84GGQ+aC+tZiwW_yPJ_hNWh5=Wu%s5K#j^>_I!
zo6sayM-czSNC!x!#)HYFScfi27CHonfUI9br8OR}?f+Ib{Hx<zZ=z=qCtj>H1W1d+
zD?=Be0%(fW3aN>n>(*PTJDH^z!mR7D`t|ClJ9DYz#TDAI`ZpMi<n1pB=jE~Vg3-Zx
zwhHa+p=Ahd6I<Mrt)6clw#&n+d*QAvlxWHu$S>iln452~529NbJ5k7{t7nu`Yc=<m
zETvS8cDdm#alL}vE@GcFKRj|oUoT)BzTme7|KPVc;O-M&zsHo6X}6;-3tj4!CdTtX
zU+Qb$+5WDpe3WK|BkcM9h58U6O?zDn7TtcOE?|5r!Ks)IjE&$wTMH$~cTDZJWPw`o
zpu_V8K<or`b&Fv*f>;a#Q4%SD6f7YM!b8Ith6^Z0(-$QXQL^eeK+vyORT&A#W|~`K
z++@qMTe&+zLbuj=po~~Y`v<@EH&?`w>u;*wLqlKa2k=`A{eSRV9p2P=Iv@-4^5K_A
z_2uR5rc37SHbo^_+dMAp7t>GK5$oFM2Ybf%O@+!^-vzpM2NF6_zf_#a)tj)qju(C}
zj21sco|9&_J(0MT6ac=($>6M??a#g;tvr^1bG#^J3wMSrQ_S^S=b%uWadh#__ghEI
z0>2BRmyldeOsh+2c$eOgPdxZXQ0pCSgv)c-@z#~Hu?i_@z`yMh8ysCt--$prp@(Z+
zYgBoC8#f^2-%$P0draj*1=sfJgIZzZ676fNhLO1GDvV7eDxrqEkKPpePwByb=-{uq
zB;jbry1LpELK6)*P*qW}4hLZp=9RGYF18js9etUQ`f^YUsGrC~OHrChkFekMtJT~5
zEuZ{Uis<2qd;tE@bq~?xGPwbj4On*PRplrW=b=y6cc*m!G}}=)dTsMDIYV(#649`_
z0k$}F&JPrQ5&TK-Iua=Ge69H>0lu&tX-@=yToF<}bAarvXraDnc=C}=a*sxy6P>4H
zuuFJJzs6^+peYJL)6iOp?v*1ckrvsCX;(>-`0!Wz5pDYLpF-7@wJX1qS2-OwYfAhg
z^C_mc{Y3o4Vv#_@dxv6pp3H1XOufdx^$nz`B5?R`O{fhp;!05@L(6l23#ud2e6RYh
zdfAN@sLQ!SVgi%Z2OJg_^!^!)V*%WUs-T>u5(N0NO!!tM`O2N&CqBiD0u2B^Lf}&p
z0^v|x&N3cabL3}~XqdSWAtsU%)#<hr7mD(+3fe2lw5F=DrHNT9U^1mD&%oVy$bvKv
z7Y~lUOHeCm&~}j;%Ye1k8$(Brms$BZL?)e8D!JkqG#dClZRer}&H3eYo1atXj3Sx3
zq=BD6sD>ZGWSp`qLV20v;H=K0yL1PBcOwDLHk&qdraOSB*8vh_|I8Ta99y60(!EI|
zeDDU<|9dOLO8xTLt-g6U`JuEsAS8&yV1%hX979;DpILyFWJd;zh3t(#?m6Svn!D^Z
z#K^dRNDo>_w&F%uV%x~4Hk!FgB5JqhO42nlnmLD>l2{G+zKqydF1gFDMP*8Xxk}*G
zXf{-|S(tlO<64;}Bbj)lm^Oe2M29`JN|7OUWG0MEjd8l3236yRiK1zME<h>G_*f{I
zv2F5Ip=gbB64l$+!n%AL4&xv@4#+YGsp01d6q8`G$!g3>S}6rTApvyZ`&1`Xs;-N3
zVGSHqMinVJdtTznXqIzWKU_9HtO0<9c`Yz%UgYSq#TXI15V3B2?7^=WMyjTfh1Tv4
zEx=3-I}Gm;-`C97utN=;qU2N`=QH?SSTBYKK&4W$U-hDPU<9GgQZV75eWfIwT*#?n
zI33gzFV10em4IWaphHYl3uLp=N$mofS55+pDV2d<DdA$}t1vLF!ZJ%sQgXO8O=R&V
zzJXLeh$m{=1<>t~fAxBuRrWz{Ar&)zspCTNa{5hDm`&8^+q_dv<-T?q3Ing>5Z6%)
z3QF{=zs0-}A<(@#ad6HOf7iD<m!;Z*{etPh#KGB-ym&X;kG!6|J%c>)(s^vbf}wLa
zuPNL;`;cV`G$ps?ATjed3<1-3P=9I@1~9$mwUP%oc2uoy86&N=wVEZ&A9&)5@=WE$
z&D#?OfEYh%gF!Se|9&F?{anx1{2{k_az_)&55@t4a5t!i53D{|XjN26tgdrV#c(b8
zC&;sR!UI8mTt7YCQS{zXqhz)!em-d1RNbSXD^~n@oa`}D_+F190PAppTjfpQvIRAj
zpZJ%V|HOI8ZG0fkyT7TR`WsMKfPhkr^35v2Eim!o6GNUGR}NFh*F<)9%zl!@3)48<
z<l;1f0>@Ne<$-EiiXVHQ-uV|Z()a?+yAo6(i<kEMnMFUhm`xK>8sD8<9C<vw;3<L+
zGPEkjbDHUrQv8ucYaWgvAx$iuDEVT-Ww+_8SaXsW42c(P9*}Ps=(fflgrZF$%36u!
zPMNbfMe?p`2+6$jyU@SG)Ro)Y2kzX-b@^zzH8u+c{`64jPR#m3b6Gh1r|-6P0|+3;
zU22YdOSh{f2k1XdRz{)V+uA;4FIX5W=cryXE1RuJi;9Tqraw<h*1ct=m~C?_(1sDY
zj(qUBAJ-*+xinQH*L@^fkCKnZxOLx<IojF`-OjjHd>5^(bbSI}8kSskhaZ3lvK$?D
z3@N83(#`%T_-IiT`U^v4F#?BNgR0R}<UUy&0~HXBz4ppfp`D>%8tG8hmV!b>pX=O$
z*kbkdT40HK=<S<yMBs2ssHCa}xFy4(O`J2)Q+J|z`vlxp<E{rMYyZn8-&fVJynEx#
zEPU%qiHfx`7!Yef9~7(>hSUDfWEIeiHJra_#(pA8iRmDqGNu*<$}<7fIBbMU2V*#6
z<QEMJVBPkCPMG1GQ6`Nb0q|?1dVT(4{w2>M%jIKfLH_n!dUDSG)#mA}BmxKsR7$U2
zoWCq8X?#ASydQq`lB!`zMC5{|;CprgX_Z3rD#r#Vlq@^b1p4IPpjOM{u8~N`mPn^N
z?sbZz^P;Z-F9<6@qcSPr%8*LOmesNxBgMwkv;(xa-X&<q0CmLx?R^Z=F53WYQvuhX
z6oM1VFE$akUd6d?U4d_$Y^$tw4POx4`xgZF{vF1mt$8~>dDHX2CP37(J>U%A2<>e~
z5kLcfcu(V`OP&>Hyq(qM$LDe130FLm`z)9`(dGM@WA#^X-JZRPH(E0c)crLK%EocU
zqB%mw=tI2#h1bXNRrq)(BPS*F*HMpQO)3(m@awP?U-8vA<X9LX{I(6Y=U{mx;S6RM
zSU~!6j>DAKW#aYC;dmTcZVFbbhmUP^{fqZ~yXz9+KzcvjCYd=07gXGN;n7a{`$Ur9
z8=`;srM?D;Fg-y`WM_&8ZJ6My9cbHx9=jdm5Zga3b=}fEj8!C$KwFJH$Bes16T*N9
z-mY<mY87q^U2K2vVl%gX`zm^6&W;Ae996vHHwmqx)0Vft|F1jaKuq6Tss0#(Y~s-v
z2NeSUYOOF*co9bCpdF^Q?cU;GodvIhH2+u3w2<=f@ZGg-ZNNK8;^)4B2hds}yo*%`
zJ*M@>Ip1OSrQ*x4?P0eB=kNEO;fE?{Y_`>eD{%3BVWu5)em{$)6Cv4@1FByf-Eg{^
zeRz7P#T$=t|2xH=@%o&tm*Leruv_vuw2!E9V(PLx+=U6nAZ*gvleg-(1C#++%r!jC
z8&xKn(S~E!`|bW04(tPp1s#rta2I$AdAkLt<B2$j8IQQxpg1`LhtjYQk(}8u>$qr5
zlWbqB<7A;^t5$%9b_~3*86hn}=_=yB`45{X^@Yu|Vtdg-4zPLBQ-_Q#4ZM~~&Of<u
zB`IUL<SQ&ki&G8*B%ZjR<go#sFau6d2KH@92bV7-9)b#z8Sxhq&)^G*hoEBDBo-j?
zSa*|B?({uyQX0`edAa24D>b3~qFsB$!rE5sCJz)I8}5efF>&cPlw~A=(DuP#FjL9#
zgv5I`tUjQ-FxVWbpO5urVA<PQ<u@!ARQA?M+Oq_lpx;qBaGR74lbz*Wbcahx6Zz)v
zDCy9C_(gbF4-x1aCY*Z1?n+K4C_yx3Ud3WK-Wn&?3d7A+1PmN^Vi{9^-D<jCiYJ3w
zJH;=D=$4hl>QVI~=v@n>ew-@iNfRAnc&MSZltuoMOGogn-W)}zigti63=SrbmZqn!
z+69(BqJJ*R@_*lmRBwOO@v|r<9VXL0=-WF5W0X_|(m8EO5*@~AOAo!M=Hc<`n!2P|
zE^hR|($fB4F#V;8(Cq<SG8KT|&#=qRqwA-4&|i)jj@H<*UsijV>~y}v`{&(1N9~j^
za0=I#;eZGQ8_PRwwNlO!%^5uKmT4f4ce+r5ewZwTftO-LVXPVMT<z`&)2H(0(lrTY
zfBTnXc<W>4v8~h7@KN-5c6K&#meb$6n_QrkvU}z`-{0BYKfzy|VQTcUef$zpMOg>`
zK_iw<E+4haR(mso{<eTtT+LA{gamZiYyL-SqqD$$S<i`x_~|&^BiW>I%?X;oAc3Ct
z_Jk&(bl<BwtyQW!n=b<0nj>1zXB6uQ%2D(?r^V4VUR_-3D8`=OjuXw%KD{PjD(#qc
zs?8oW<N4NmP+-jhM7;K?%H1j1^=`TyaK@G+%i`GC?e|A^)aUeIeHJBUZs%xEZOqXz
zW^91cP~{_syg%9tFGYRwF(fg$awV}~LA!Don4^K+@_e~Li*!p6wnnZmoUN71Cp7P;
z%iR{&pX$N=Zk0k!eaL0DoQN(FjGeW%A<Twr`-f|cMkJ^snYg!W7^70Ka1Xyr9bxpj
zw@eG(wSf?HCbL|%sgY2}Nb$Re8j!QX+}F}nxXMnB#p25=W;M_PEq0&0k_xboptV^}
ztQDFD+BWo4U<p_c;A?1fTPPold+o;QP9elf#<fU;$%OOkYVUZSsT;k5OK-u}kK0*p
zE*^`Icx<m2scWj=yvi(tD(3cP3oI)mk9h3LmdwJTTYbhIIDUG1ZmN!M3;q?2Ixd3_
zqB)R!9fwbKV_C({x{lPcd|t&)!r=H(EgdC{uY+N4xr#m0P#7T#VJm>=YgM0)b-hAS
zN|(awPC%XL?&6`CZI6B!299IPVUS4h!tx)LJV_-|>$k5hALn$fK7I<6YF|ZK8&`wk
z&;6b@zOEFsqIbrQ6W@7pGpKx9d2h9?S}NALGPZ#5+up4f??YYrx+RLzr{RcHEFoFB
zeNAoWteLCnPi<9%%#nU=?^lba$dbxX#T<e0O}BY9a3jF&uRpN{*T9lCD+vB|*}dLQ
z8J%NcB%>oiL}*M)wo#J(zEm-BgdCZ-%aGo0M@$#+c7|}L?)Y>IEvd7XR_8f`5|5WZ
z{@m66aY%a{z1lxBzNM;n^nyHXXnWP~1v`5mKk+^c4|XgLo<)yK-5Or~9zFXr6Yb4g
z-?qVY{(L*Wy|4`i?xE>&WndyNHwL;r+uR1Xh0+uxE8R6_FpfIT1klGMBJ<sa!fSL{
zzF4dMHZh!-F3_}OQQexKjQBREM}=S$NbgxWVld$v2%<oq&y&+$iQaS(6JkBWyqz#0
z$X_o-AilkAvb|CNYjli|&)3ZcrPZz=_c}_8wOT9V?eh8se+si{uy^I!nu2fU+p3PH
z`>%KV`!~M=GvA&?HmdKxo*y+7JRJNwExCk*e?Pa5&(gehGNIeOTFrJJbbFssrNQlQ
z<+g)IafiRLn{a)XuxjmNn$6FXKFrZW_NWLK$^4U;=2s!}z$%#I7Y@tkd`I?ykEM>v
zZN1SNHik$p(E4`LsK2)G4S$Y;k_5Ovv+^SAC{XLXi(0Wcw>npLkf>5jpW$On+QU6J
z@mEwYew(<58;{ru|BQuH!v*_@8*z$Nq59JV$-701#Na_p)7&13#UW|T1PM&CFgb9H
zDQ1u4!mzqcyv>TqzReL+2>7t+MFouGuA8O!j2zcVvKu0Vt@$x0Us^j;!Y&aAjSVj#
z@4R1g_1t2nT7%|$35I*PMh69~Q<@+Ps6mt<@XmSP6alm@;%(3k@S*n8;asWQ0TI5{
zT0vZ)2AZy(|6vc2y<)=E+<Oi8f6a|K)wa{#F#mtN+H&3=3-I9v>o5625EY8;=NV$M
z=UMMT<QeF*&PhVuP-n?S7A03rIt^HSE<o)aP{fVEpS1kPGdsT_3LMY2@O8Zk2^RCi
zkNe|0ZjoR@J)`5Ac&w}`0eJsTK5Ef`@D}^mXJ>Qo>2VR}n@cEp-x2@gX{-a>0Lkv{
zUOW7YKO1}2vUf}>O0fnL^lY;W9k9{tJZ<mFf>gglnVrRM{eaMW{JqmJp5o7qu1o%I
z3mqPdmbyjl_NG^Qu+0~n8>2P68H=H`h|;L)`~!-cIx3P{doL<bq+d{2vQ7lc<<6Vr
zX9W})yhxVGT(oi9ud>>a>T0bDmz#-#?cu9NCL&WtJO{)Bow0hZ`R-!7RXoJ-jCMKh
zf-00HR4|Y-d<nuZc*AmNd$vb)6E*?aCCHXy^Syh>ZOZ?&Az3YLFZx$30&5vlR^gzJ
zo(`BCzv`8Q{rs;zTfq%r&z4s&*oG`gx8vr0!9<v%YWhMX1!kKgy)Pyk2gyZ^+uCV+
zl>E({nZh5wRs435c^rC0#3WaDX;t~&Q@dcIu$gw$bxZK!|EJqAAo;>C%5-$W#i`y_
zyPKv^Rzl2xTFw^2P2)O2<~^|_3<%aCz8^PYw0uh$KtI>dh|ZR0<-e$=fnKkdy<D<o
zdiq0Wwqr80tjDb9g6K`FIZ^&xKK{(ew>z5-z^U!_2i1HB$TCrOj9Y1$B|i+QmlFms
zMef9_A}Y~Xh}+se#Y$Z7e}zE|H1=huHYz&+-|?;)XM;oKA8Hk{O7q)I$dhs13V}4W
zSch5PBcQaFJ+sz@1q_Y>Ro||QqqqHkRJfobJOUzHZ_MD%8b~@bffaQ<x0P8bK50V7
zFURU;7nP&G#MI+;e7n4U&*SwK*!`^JR_B5=KnhaouBTg&6We-w_#61cL&ozffu`2+
z-PA=6gCm%XE`BPdeqwOTzg1i%F5!??fx(rBP2P0z9oM5NMIu-Ox5!1Iq<w55HHj(_
zjI|*Mi?=Nmc4CSjda}V;n>{sywTUNXq({5)D0<@xi%JE+1{Fn@pYu)GvZ8@ERI_-P
zLzjAdd9hld{vBI}G_UX{YgfShO{qunh_g6gSCJ5y_6Te!CG|M!!e($jM)CW_;NU1*
zxieZ4;0|lI*7TB<diUk_R(t$9pqbVU-w)GX>RALlV<`Lp*-A$Jo{Dm3u|q9e*FlwX
zn(D6P6a%oI4#o0rjBnO1RDqY=n5xekMH4AC%<schT0inCMi&CE1V<92f>jj#gZL5Y
zVq1U-8z79zEI`bv=^N}2?koA%hz-l&LK84z8*kcz@L@U-Z#a)gk^B8$0^Djq{=WjD
zq>g9en{_J*D{V0xPwb6Kx~q@`VMWh{ZCyxT*k{agGB;iRRK->c$CeQ)9bKYdGudMm
zUqay}UX><L!?zg9jnzw$3!{_3fgm6*WG95^P2grq!5yl*m-^59+chV=q8r(F*LUag
z;B2C3OYCun!i3M|B{hGl=I;ygf`z6$8DEnbR5)V7Wh?rekLNiT;8|AC35Xu_^XbjE
zZb+GXBsdpe_EQ{de_b*B!G94<?n~5T)!He;Rv!)T-fT_1^KnfmX02xJyaW5x>XXu*
zL^av$>UhyUQw`(PkI@;JG4dAi_;#wy1zM*5(6_%JV-t>QS&gU3O*ou<UX{^uU)H#o
zY_pQRdp(+GGEb`S_y5T8We0UsdnXLuZ$CkriU*m9y;oJ_ymehMpBcejdY!gaa!ihe
zZbtB7MDR})V7})+vkX1PI)vz1$(VK8Y^IFoH*NmB4Hk$XXAKW{@aZ$HPX3Z(^cvnz
zv-?$*i(7@b?2s<C=}7FV1^PoT@s_sD=Onx2-nE6aEPref=7f0b*yp^!(<C1+Z-g$g
z)0}seljdjZ{(PUk{%8_qPs}*bB5vxK<zn174%8LJ2@xxY(JXH$3B9|U6jq8ts#(i4
z{g?~uAl}X7@UiD67*4Eh)!2yo=k~~#SnzQ^CvDo**AV~HqPIOi#EyAmGPy{TT*<|w
z$u_?bm1iUJV8oe61$3?;-wCIoo@7ML5j?BMnA3hwBN3dD@gqyS=HS73uqNB}jSEK{
zYl{qHf*&rPvNzSOv2>G-s92(i#2TVon487;J`(s8A=ep}l>W`UP54_I1oU(FtxLN8
z)I+?)Ce>Go!o6IbD4*Xs9r=2?sa0YQH-zAJTe=@Kb`rkn5Zj0QJ-@@24N5b1^r9TL
zyQ{I&IQtg;mKAj6iQta7lyu~w{)vpPD+S&6YrFKpUu(*gY%GIG5*=zwBO{^Fl-$6j
zsZEN6_#H>oM(DFF%3@P9r?JOT@RON(*;!G}ZD2Wzix0MVg<iu4y5yxRy?(snrAPw9
ztI1@uvW&k1`-*DQx{9_QRW~*~TinaazZ^ZfzH*|%50|pw;T%j&nUaeQ`PDbq5}zQw
z@~4T&86#Qn_(>eIM7EQ1P9k<ZEh(R8F=F+&x|GLyJWzE@c5B9IEv|-#D~u=ggQDlp
z6^7nS`W*VN8D|C6mkrtNs{9({#)_FZMbpy-we))5ZjzS=qVK-LX^)|Pn4gyZe%WE+
z)8Ke<yckuotba7N-FR^vLqN+4D@F`Yi4Pl%98??Ft^XMb`}5^211-m8{>XUb11w>5
zl;<(#klSNrdA!~r)RdpXxzT1=$F8cE<|1#zxp{u846^?xZwvF?g&MYcPCQ<XX4PZu
z9g(lS<%MORSYz+YK7A5gc&MyS)f@aUCFHyiADIK%k8)ZPT|&_4e#C0O35D%^njiSI
zS|e<Gz4b{lMLP)nj8Uy4)nZYuWANKR8$#`7)Tgj~yy_{z!rH|GFZU)14PU>v1#m}i
z9Jfzhpsfb+W4O(teHxutqi-DpQtpCU7S<u+r0i2XmSM3z>8F(mHqC~tfuHDuL`(-Z
z_c#UiW?YHS8W%omf<Cj<S6=)XOz6#0s*bl?93_GL4vWeawGP=kJW^ns&i9@#4Zr>d
zo}aMCIh>=xIb5q1uZ|)+{w3m;jz|sb=4NR8u%KC>HW+)lVH2ChBKXc+ePPa$*7=ia
zqqnDu8-%mg$DC2H32^LAvvA>Ua0B-;-`uZA#;#`#;KRzX`+4DfNdCkA%Tm=w?@h5{
z(kJf~>gko4=5f$)&m51Gh+;|QJjgCKE89&;V=k>L66^4E`)9k!y+cr`<^4V_wq~hi
z*2ZfZzs~_~g(`ew+68LnjMM3@;?`i)H$ftMA3B)BuG=khSSJR;uW!&aQ*=q~{XcYU
zj1*s<h?2@|>)Ph(TI8f6{Jx1p{LL*IS|iUi6v1r>td&B?V4U?A0SSKIDCI3qO+`xM
zJUNf?EXG*PC(`>Y%jYq)vu}BfFGkE)7&(N2WGpbcPPSa0gWQ(=dJxieKHyVU+V-1l
z%&?vJDLQz@@mc<?`cYH;XGZ!3vS;sI=(geafntX!W!L>~hwct#5Hgk^LD!Ip$2rU7
zvC$x?qfvFy4{cBn?RUc`K`N(}jyq80p3?I2Z0i@<V6#V;CnnA{d)3gV`KH{iAe_PK
z3P*Y)WUijg=acrIY4L*=3^n{;bDPshjDJ%W`C-4)ntF%ZhKu?P%M?b8J!f{_ME?DX
zQ9^;0!GSh3^+|@djHzE)N#WW0@oI3p=DzyAbT!)?BdNO7Yj?-cyi6iM8J_uPr@YKA
z8FqPTr{mUnY*;yIro4<bLGeuu)OFq!Gh<ULnx?DnE6bfGt<w6K7RnNcYE@H%Tq0*v
z8dziU4q{x)%+7fob-~!oLEY{vxNOW+$U*(ES8sQ!p)6J{=}68(-$AgO>x8H&W-sr;
za4`4N@GjQE5~Zx3+${C#hxCK?P9SG2pQp$C93hr2&KK@%+>pVfSpwzV#ju>H*GX7o
z7fd8j5^iWSH*&m;r?~W-NsCDugM2RPrL0|2Fw_#1gewI6EJKGS-}VTOb+Ty@8rDDV
zrZj%|b@^kDent88Gi#J%#TX+(A-iaaB|D)3_XoK|##F2CHjxkRClPK2R6R$LHxCRG
zr}EGno~8Gv#2O`j%lp!!s!&}%`n4F(Awupj6*X7;CVmtqRTxa$`|Uy|B8uvJwD8U@
zC8^@KI6lS1@KWI5{9-M?X7%uaX`fH((0Wdyrnu~|eDKqIObI_OF5i#V{y)avG0KuA
z>Kg3ovTdu&w(Tz4wyU~q+qP|W*|u%l_S}BH_nkHKXV(16mAE%oMnvY>XYU;+puVc)
z*6yPWQ61dcUSej<9AQ=bGNQX;Q0&a_WQGkucCrhoiWmc)<9$5RY(~>YD>-ChZ~ttC
zXhu87pdFZA3TZ5Me5H;|IG%-tO>kcvY{5fqW>azZ(O!<`8)E`lfx^@;AaI$^a9d~4
z8NGdIYVyIm2JM{;kzS^iD!JoaSIpR49q$%x8aC}~h;YHXhV7XRkyarxLRy*EDLqal
z&ZKP>d%uUc_o!$|jm2Ek91oLC#a!QV_ppa?@bOAstS|rI+_&O->LjzrR0M62pn@m=
z&{p0UE#R5q-o18griSwgC=kZ{f~(7$Qp5SOITIM#wN(p54elm8+ut>eo*(SnD$?KJ
zI<rO(^w_Ql+S_`Lx4&i^=)C@n_=WL2)$-iR2-+Tt6#~1n<zj#E!WQW<&6M}&uQY;o
zszprFo-X5+w#r}0h<>_|02WRO3+1eo;!xn1YQ;Dbr8PU#NWdo<{R*a8HRzeva2qiK
z1^h+ZGH%^7BgqZM8~;oS{(7URVA~~gvs>S}+i>2_{o5(9bnYF-#|N8Y=G0H&BT;w`
z>-HK~3N^XQ<j2P&hT$qOSP$U4WCkawIA0;!<5HQXi}&a*7~Inx&5)kcgYeQE2Usw2
zt4uu-B+^gU98quBBwh=2g+Ve=*%!wD8i!_PS+WHN0Zl*1*q1kXZfN#a;7kjnYT{SG
zWv29fqm6TA7rbRpuM4$2P8EJ3t#CS;bHUprzboG-Ud3xaW$X>EC5jkJB(tPil2s$l
z5JZ_W#`v%T3pc@mVV*%Msqy%@f5V}o>3EfoJpwhO>A2Wv^lLi5X=apIueBV|Y%IvU
zaBsy&kNnLNKa)tWwVFO6HK$l_#(pFwC_Ll8J_5C+5HtgtdmWayn=WgH2v${&yPlh8
zT__$i(pgN|TRZgMRkZmT<FU@(dvoKg^#cPBEwlHA*l&0D(3qY(V7Fij&3FB;5xwX4
z8$E`%$>dTHJ*VknaRqC@ZoA4axNHwYk!%!f=`Z`o=p2O@5yx&ga_$aM`<spR`O9q!
z(LP)0?oUJLLw~cYU35Ky4_L+bn|LO;FF>4Qe2)z9!Kawm)yLpoLZXN2;t>43<STz;
zOB{p=4Az@a_0w=CgLuFQ6$AL2SD~jUjPOS5gN+$#NsaMmmt`V`<u?Y<HjhSX&ft$1
zI7Ah-w_|;>2=SY16{sS`p>A91K0Kp!sNin+Dmju9mkh`Z(nxR9%U@<}0o&jy<VY9o
zO+?BL8HaR|VcfDDd@|6FzFq{$iTHFFZ@f<49~)W(`7dn8!@#hB==0Zb`}h}x{ZN;L
z_0F_%6ky!LG0VQZZ#ek&Z|{&Z1a}8ml`^4)bZ5B7I=)~7#=`D3dF(agq*B?W8@`Il
z^@aZPSWm6oiN}!Fj=e25*+ZuxpP)0M&us?C`xc?w&<?<We~o*7u4_DW;v(8D+nWS^
zty$_iL8e{n`QkDB^Ho)t;mZqUlhvGE<VG}!t1#T0=7+1R`EMLhZj~@CQ+@NRqBEA|
zYuEB7%uZj^S%jBpk??}xVGBYg%%R&Us4f;z{EA>xSX6ghDHJi-7@EMiWU2?XPKq;F
z<=dCiXG+Nj&ZUuV-Tu@!?Lt8`5w)~6gU5{Z`IiHT-*R-p=9UkfTRnDhTbJR0>$ofL
z0xKTY3?r3`hCj`>#GvZJw%imWK{j$sidfunGbr|nI-}(csOR>-m^TYRw}=(1=KztI
zlIOe39rn&!HA%v4EkrcwDObsPD<la&;}49odph>Q&KBz&C66ngAj<4Z#x}FEd+h<K
z>S>fx5qOO)j=V_q+`1M&;^k@YJ6br!n-PqPToE{3EFUB@;F|pPV_Ft<0_0gh(**9g
zu_(LG%w7D!v9PWjsa&;4&WUjKTyQTLRya>mI_-@(kX_|<z_iJ4@JG!=&CJ~))Vips
zm<vcDhf~U&44PVC{dB0FyH~!hi?u&5oeNkdN3zo*EQG35(ya7$Ov)CE)+-@2!>M}E
zZ=>X)x2hd}gG#|{k*u)=sq7s8ln<yK(JC5Nc6S8asvWxzbxz8tMbg$#+5N`kZdlhj
zVoKS4(!NC!9!qbCl1B|uuqU&I4{*Co_XK74q^h|+yS0#|6OuCJ$1&}{Gn732TJ9~)
zQH_%DTQPDkI6n6o#gg#J+=rB%apey?kIM4GsI8K=jzA)fCE(YZqss1|(22r%E9=#B
zikTPBGnY)dIOwOnQi@`Ei$meUN9#(K)w{RK=iw0#!RVv#+soNjfrgsl9dhedDP%<`
zD&|)yVla#tw&XiA7l1-z{kFbAAUY;H%s$%?W&y|W$blk9%-<O1-dUNnHoP{`OjB5M
zAAUBn5ZN~$&?90|i4k|>LT)QReIOJ(`s}TG)i`UxJa#nKE@1kPdII^Arn+Ywj>kQy
zCum=YQ`V59jnEnM5+PNCSyqB3GHJt;$AN^dWwszSB0=U8ftMI}9eS4do9Vy<*%J7W
zDmDMmf?Gv1nQ-XELOKntS#c0lLJ-#0FXN{GyUXy{bL6HJMFK05Ma(}+YS>6O)#-WU
zI$>ArZ&1?T?jW7Ab54&6M&ysML8TkZb>w)T*J(^w0i(dz$m3)kE5(OSoLHj`97u|5
z8)Yoq_{PQr*Gfi6rkvxJjF-ryoHLfov6qYk{|7|-ciPlcFgjk*%=5+-vbXc6*x|OY
z%!=7t{^EdNV~`H9yT-yg4ehbJN+H4w_v$06V1UN}qkS(4k6uwKCx<{sE%nwcF@dRh
z_D)*b*<w>r<88%kT^f=F4)(_zt`9L%e+8rz-Pt0J*SZD|%C22?HQDAJ)$nozp!V$T
zg5KGhjn%%`|KUP)t8Q_N3ULT|Akc=T#nVY=H?xvy22nP<vhKBzmOrm6wNmkq2tlWS
z<IEsJUkWU0ODW%miFk%)TtLW>u5|N$fjx;;oVs_3^lfr+!YE=oeqA?=Ogc7I`*;`E
z*OA4QT<nlk<L*#uFSP>d-@`<Mj|2os$>70+OF^v#4wwj2HEw2wk<C#qfrvO?{aZ^K
zKtCyBv?EY+rU0`JV>aN#>fZuh|2K_16yf9lItdpY@T>&(f5KJ65PwPZ5lu<KHal`o
zF1OiNy!4WW7bthcE07!h9c7%Xb=Cbm(zyj#0l;gbI4|WAu-hd-r~d;l!6AX3$qUqY
zo&n)=sA=<uoy2;uI)~fn;AnuIg1}y{|LG*u1rD-s`WM?nMYpE{yU#tU!MOiIWFOV{
zFQLtRN0JVXsnWO`1gf)0z?ozsewqk&q^>FP7vUb)Y4ch|SC|;gbnc5L+7$SAKKvNt
zV}ZA?fs)~n5clr~SF3ZgVydExRa1J_?M00o<;ICN_+NU$k*!Z0l<62h3L&kjDFnDr
zvUqiqTen5bJ!4#I?gsJCHP!<z>y&d}gyQ+(quO!jR{jP|gg0G;)KBxpnDQyPk-C)3
ze^A%gH*dg8Duyy^Wc+MR+S@>>LcJ<TZ@Db~0aw%|Wb%@E-cIR9*WI6@lVB@6X@p?Y
z&YUA2f}g8na+8vb*4%{RmQ8fCG5IwcN{r&Qe$%eJW5@_dXwH(}9~b!|?cF}`;bk9h
z0SS#EO|9=>?%Erqa7>=-rrk*$Vw=PK3s9#Zp0xC>J?%&dga)fdXg);(O)S<mcj_GO
zF@Ur%gerUiOrI+4aJMPlncq*TIlMjP#=VLy0`M1}aRC0Jp5*#QKY@-BF(?lq>_xu!
zH5lZSu;-UVI3i~qNN%fXXbjFAH1uv%t^+TKm~_+o{-5xrnB#AMMPAdS6WdGtgA%HI
z{MK2ukMM(*_V0#<IjXVwqM0@8TB=}*3Oaqn%33vzgr3khSL)K6{1<uDC{h3PK<h11
z3X9?(8Pd8BtAy|~DS-v0g>TL8k6YKuuL^I<XVX6$cPxuBj%L)-EMc*fgn~cN%F8?p
ziCCHfR{}p`lyDmL1z9@npBDO|5+COJ<ZYT&NX%t&k*q|_h`P7Zncf84yEf8mnn{&T
z#ag$BpyYlwx*ZXL;$IdewM`=KOW(7Ax}74Pw-|PiHVIb(xEBOuF!O`|xEGCz)_*yY
zgp)!8>!#mYtG?5573mOXJPBzh<|>8_NtyMeKN88@5eTUx-VloH58Gx0^tqB%RmEHH
zitFpH4W7kC{Kqfu9?5v(B3-GJ*}ZC@(Kyn_?07Uy_yv|8e?g9~M<LS0Vd3BFe77xC
zC3?MelhUpC3*h)vsNgK%Y}so#CVUg87!iqvuU;iPk6{6^hW*whcfzS!A@XrnicN%q
zaQKTl4$BmF#^FLJl3D0PCB<P`gvsR#zvGWf=0zrHO2C#!x`D@2*QylbFxsUb|Ej2E
zSvM#b`k3YUa#j$O;IVYvuxhadpnd%0`ZaS0&(SE>gT<v$ZL4N*G=0bDJ;h}tiIL#(
zfc<Ak9oR=DwO?pbxUHMTIm2HyJi8?D7<(8gvIxks7Hq@n%({@?a3_J#`b%Zg5=w`$
z`{4A^lUN;;MoESu`VzwwR%LerE@kDWNi9GfqJ`P**pT68<hD7KH>8!#ll9M|<-$mR
zmgFyv4M1|G)9`<iE3y$^PDAS?9pt5e*utChm{k^@lIZejln%Z<@$hl2a3V!KFg;L0
z=c!z`wZC=sdzL4Rpw+Qa#9XxZS_hiegu^t&o`2S(lW=uKLMQ+km3Z`c2Z97r%Wz8h
zmSh(6W&iJWg~xTi8N-xp+~!Q&98NA94z4dw!QXMVw!kNm4VNR$K??iw!d()RMN|A<
zaNca->0~d~{b%5MqZ}`rIHnUjF8{@h9T!D-!3dZsJ~(d=na-&th0h~3+(^o^dsgOE
z0oC`jxxHa(v`5;wKjgMCj2Bs7>bBq>A<YHR_)l=q*-RH+I4fKo9o`d%wS_PqC1aDd
z&jMus3V4GYA8)q-mK}S0vCnEgHdyiSH5nI<;I51GC^`R2NA~vGjJCnm!RXy_a@i^>
z{xzyqntAT5RspG@{eD-H<8v<5)o&?m%H5r93G?~4uXw_$_f2}%7XRnt^7h)<-41F#
zLw>(wRPLr^7&U`d+VGn6j148G$9;3#7`JQKho$n6^0k(lWnYUXTE*7g28(xwi_P~2
zKdw?JqqQ;K$IoP{dmGg>aJp7q_XbUa>Iv)u#_9EcS!gjM{MN?Ss6ynAeZ#rl`VK)y
zbpYFwk#gAUL2+E)@egB;Lo?=1scF)T2Rst&*K@0Z(2n0{jX7dnpy2fz2LFQN;x^h&
z18D_I8ruIJHI;1uo6VI8DITOofXy#G2K(|fb1EMbNk0gsmxM+QJNXX(d*O|SbN$w*
z3GBb@Vkw?FEdIy5;)8xAWJ(sJt>VlnaYkFN-r~3sB|pUybA>B@s}zL>dlJ>E%p+XM
z<=HqEH%H<tv-?`~Zhi+=cyhm$cXh8#v~QeWcF9e5UPBd(#wfj{!U{KS)X~&QaL+zy
za(H+0C_#JwXrBif%Lm+8z48o0Yn=jPj^B*}aE`5{H}qHzHwcE4R>%qE&PX%*N)D(+
zdh_-1^whQa{i_j;Ena4uCm6eR>1e-<5<>E*3x`m(jvE~*f3~<KcAf=aH<wESSYpcl
zm&t=7$sUuv(-jG7bqk(LJeY8%h|`^NS+p?T-ncv-C0=bAx2+X0)h*d61pgCR`yuol
znX!N5Cs$1~ObFwB@A>4u+?$2&`zT&|Q|CX;0^PlAB8HwAOb34t@R5Eigv#)_#?W(W
z<h`*8#E}|k>@9n*$ZIqA((6T?e~T142d1;d!R1X|GIgXUVRSLHT#sJdFnn#~-FYjt
zZ+u#zuZocu9OM6U_)D1!x1xDCUfpXaDXgF<L^^Ph5r(T>smf#yUbZOM-Tj69kyG4j
zhh=RrZ!2v?q4>f8kkq-1Ch`JPDGlVUtB@$z&J&u7;>#ZXoj74?6#l|NH?(je6j3qj
zl(<yUIG|`=BQ^n@Blrq8hxFP(?}`7?{iP?E(}h?&G}VpxgPH;P%@vdH7`NkJ=4S%o
zwKI8{^=lA<9yV|KR6BL1ghj44&ML;ACGo2YwT;wNFb6=$4$Zse5CES=HYp3@tHBGd
zF#|}PnPJB>C#1KB48zuKWn+ae2X+kQwE%_HSGC`t5K9K+BbrJDJk=wP+LO_r5Qtg3
zwq6N|2TtPI4$@ofEN-{}a#E3&c5GdX9P#|b>0-SO%Ymkwvc}MF?_|7bx1Ku<L!X-L
zm8VfNYBAMvG{_BC3R#M;+7U(wNxaurAh~>1t7E@nxq$6J<Bzq@Fwx*#0u>@--RdtE
ztzV<37k~9Z;iMLCefb0Y)qsg7?_4?rM$Nz0i(a{wHoA=v(bDce3=dxKf1A<pSOJ;=
z>+ZwPTUK0u{}nwp0gD3vFeT!y7Sx{Q7E20zNe|w0JUvT)1&6#8ZEhLoWr0(7%TV8$
zu+nt##JLwLjUooa7w{Jsg2jPT%-F#*?FlaNXv6~I0z3cE87osuG&yRr=%F=SH6-Bc
z{Wp~Y9n?7z$xvP|78L;WE#&n=h{&s<0!7sHmH&bKfHcW6;T59DVdF9&7n!nGtme9t
zvZWuPAt~ZRy>d?RqDCeKgY+<A&kMF3Xkv>1{12d5z%`Q;L{Z%SN-K3dKN^E#;UPT4
zA!sh<BON&mL*ADmAH^?8*{K=Hq&gCCr}MW2V&OUvWCHI_k(*gcSmK8vX94d{+Os3T
z!6Il9XeqSo3G%@OddN)Pyfk}>U-PeJoAJ7Oj==%|eLIP3M<7<x9-R+U-@ftC&5LH=
zevuC>X#YMY9-r<KLE(Wu^o=W~*qG1!jVo0n&EGTzh=r><hp+R1VKV!Jw<2aDsd?+-
zpRLKm07k#g;nOl0aGd15D4r;8l(pg!1MeE$OdKueQkH$4&+RYYuGRNB1cUKACLVwz
z$=wDf{h*L2y6o9csMTWa->(_Q7{{aM{<1FQcSJ}p-Xh@Uy_G7{ksY~tS!QUVyy-s)
zCOo)0$SNEZ?@{*CtbqF6mmblZ@2ITjhy!SHu+S<>dOxhV*}|Q2{_8UIA2G6fCy058
zD8=Nd4(^7xPyFYsDg~jB011{|L!{KPsT?vemR7YJ6aTtk`%u491@U}vI3<MLU6kB7
zXws=p0@T#ALw2Ern;(}rIgx=5-eW3NHWRRIFU{Z0WH=UY;Zg{drshDJio4mBpIKrA
ztkn#lv-&dj?MQI22<pXM-5{*z?Z50vHXP5S_x7nYiw1Wa;j3mP6e`Xd;o;p|UtS{D
zhxfNw6+F2+@KbzaLP$+LKh$1aUA-{zr(a%L8o+M4j6FYkelqZSn{2X@u~mvwQ?Y5c
zV&ZK#F}va1xMo0P*s#n_2XX6YWHGVh)rs5t?pyz2JO%z%^YaIUP3F<QP@v@UJs^Q#
zPl*-R7g!8zpYh*(9Y>K-KDdO%zkRYHvP|((&`mR0jNX7Z@rH&9tObl#UgG}f!9Mxc
z-P#g^rUMTR&0h)v4*nite)eVH*stuR{V(^l!uWYDGi$KVx0$lt^|+NYCzw*i-7OL&
zz0@_?^XQu>Kl2nHcdK16pazd&B$QRhstFH4^^<s?OIS^x=f4CPlP*FSqpaUyP%5gK
z$zf@^Eh;)vm)8?br<DEXww_%Z2f9J}3p!0a4mB9FB#f;e#($WOvLbnwcqvo)90SPm
zmhqeMr<&1Jc@!cI6B)LdBK#K!;8BFf`#f`CC|P$Zv09Yu^-qWA{8(0ir^-A3F{cE=
zJf@3p%hWI|ylvVe!g&ohzvr+n{O5>d6$gU}Z>~Ukdx@vY1xT>lH5?VHSZ01pG)>qk
zR2e2>Bv=UiTEL7*u%Ho{$y5T6M1^bjV50>P%@suGZ8v4xS^_Ou@)li7G=^=bd8FY1
zOoFIEazp!px<T%aQyTzvZ7)g<d>v3a-d;|uFbwIJDjs4UDtU_n(X>}J9o5WDY$*Hy
z4j>bDbKkLgU0A(a$kD+^OKUhR5dNP$v0%p>0r)!>B%w|kUlNM*n-LtmkD?&A>M$F4
z7Z<>DL%`SN12|L&TZ+DD;N4mXDwsgAUe->ogOY7?Y_xZ61Gqc8t>7fxDpMGv`Sch1
z1ZfY?rS&-J{`J`mFbmFVb2Yn4pHZcGe9wtQzFA}@=@4*~G;{Zv@qlJ)2(S6J(Bj?4
z+hZ$(>{EH>_E<sN#45($4MM4@OMQ&6HIaPVbEU4UB#7pO&1H*PJ^N*g2nh;upHunj
z#k(wb$KY71-HP&N<E}50=C1sIfD9hOn0w*7e-xQg9zT1C^`vusyZ=%%khx~U@ZNav
zP8~;{qdor6Bu2y2D(m!l&V2HO3G%@;q_*sl1F+owk-fZy<5REA79`vqM)q-s^a$C0
zH#6d2DaBrLrrCr*7~tJ=cYLmNL3NP5@s5wWj+ycm-xy%q8~_Fub&UPbm;G(d@q&Eb
z&hF>#bTu=jIP0iLu_IXTKO)v-onWgl7iZ0%;pPVFH32B9Vlzm*-ul-JV8EAc5I*o!
z2=(+!p+NdYDG{ks0Pi#xZv(~Qg?5@qoZfnko!*Ac?|XdXvDXe{;+Z~pFz4Bpipikl
z*@AV`F}z)FOO$FlM0>LhW3s$Wt~^i8`qRd7l~N&!buVLnMx(vy;C_^f8~Ao%_s_U2
ztkZ%64iE?;d^Fjzo_IKsW4?KF0k)yU=p!@FlOjk$nH^{JDp+<|GtXxTVn}xVGta-n
zmDa6)LG~$mRFdqh)m|?WMsMh5Lr^TLFuiO2-7i`wXs%Ynedy#Im~AJL4f-ph_6Sw+
zJhb3ZxrAz2HC6#<&s;qcC8rU>z(uXv+DbVs)ha~4kx@EUVc~Q01W2nA=DoOXJ~Yam
zO(jo$+bVW`&i`Zq87)@koX|*AT~uS+WduS$e2nsCan_ecYay@U8B!B*+X9=xG@Tc5
zQ@+e11Hcn?c^#3xyS9m55w}G7+P`x->K&R6v}2Y4%1mD8zw{!%qZltxE~)#gg?!r4
zf_4nBR=0QL4Fk#{>P8IM^IvGnu?oU;7eKpo<#RLdBBCF9-7qNHlf1Q(+d9S#(39C#
zl6*@>+?}x_ePGj$CCoukF~MuBPo6)iVSX(tA1>M(JsqaW(9!)ZTh?j@3|7OUCsnOv
z)xo&+6mue@@_wi>_3q}PZDol4w_j&>++0e{$5=w`iuwnluZ=DA(~9kcSAXy?b!_!@
z4rL*EtKG2)BmQJ4HEX3ECt#NnAlYiP_ID(?DfcG1A*&vNGIs=%9*uEVPec?k!e4|*
z(}nN;+iUj(`xf2XjCVBF0fexL0I<+XM!Hgp*Yg;vd+rh)Q{(Jo<`oL=;9(ePyeEyM
z@sQ7)nBn?+3@@L(`Tc&OP9Jyfzsik_T#BgOI2PtETvSOMWhcCoZPTOxey7Q1-i@G&
z@YB`&|H1DF{Ns00?gp{Xwbna^Rs8ngC4TY*ZrXaio4P_jzw+1DD{J7$3~i@3&KOfn
zYn6dKvDG)spMeIf(oQ0`iHGFmzEQaP6jDeCCT$Yn@p~Y8Z~go#UaX@baBlK;dhE{D
z!VAf;b{01UQ(ltAdK(-Wx6jjc<wnVHZoh3CWo{bShY;Z1cf`)y<W3iPS~?bqg^#O-
z`&tH+f6q01mb(V2{{B9_9bdkC`I8Or(lMtqM`yH?CxXc#x`T^s=5ExN8W>A;CzSf4
zbAP)0W^!4Erfvhd>^g19^_q_7OoK0UtPtbDe!GQhH=X@zb5zvXcqGt}={INr*SnbI
zC+C89fw{u|P49%7?e4}jnCBFqCS-5NHbzPwEtqXFKAV}o=37+8(ap<)d+ofPv$Q9e
z4Vi3WM<}7U3;G%ZO5wDxPoK%A8G5g#>NmA-`}nz;(q7W`R<M-=t|wOC+Q!^h!7<ez
z=^ZZYj#oVu2ZCAjcUK%~HO53f(~~B=K~OAS5^G^0lT9?Di9P;dO~#p|{m@VhY0FqH
zj+86DWkGklws~Z0`GsV=aP^&e_o9>dK5_LOYi#Q=M;F=T`aH7XIY2j76s3RFV`_`d
z1wN_VxM<Y_-XK|?+k`@?8UjTK`Y!!m%Lp`x%Yy0DgYFlq%=U97d7Mko{4<V|^%WlF
z{iu6>wXh_z%(mk~Q<GO|C6T4fw#Q9~-9nQlZ**H<JIvnOPU*SYF(KZ;LbmVx^MyDb
zB?NR6qS)L(4SQx+jH)AZ$@MmRz}B1}?x@Y{N?f2znk;y*G-o_<$u(sEBWw^(u}3Ix
zKS-VY<#WFTQX{Tl$*gAMqxp1>f%SMTjd>E8UXY^KlEDlow`0I&Qclca3fpN+Oi94y
zX$cp=#^vMl$~K`Y_4Ty-|K;j3|Lh)rzfOVobo-?0ES9VVRI0i$^?H7tF0nzRJwFS*
z>Bvky%vV?UWB~=#@CRGX7D1Vg(76Jby4vF5?pi+K47Q)j(tA{;Vy(EhvWPUxajT(n
z4p`(dtZ#gzZbR*K<mT&-h@|I%Kv?p+fDR94aIxc=fPHMOHo2=j{VwWfY#<)2qiW*d
zDfft%dI`V0<Dqzo5!W}}z!c5tMPPMTo=Q-<iJ>96Hy*=qbnyp!Q3qu0@x+<-{pfe5
zIDM*uEgbiG;A@LcrHx-=hR=@srUJwx+LWnTHYsTWN9l1GrMEECAMTT#`rnD-%WY!k
zHLhApJx<<dTMAo>-<8*471lRX)a|s{0Q4q^d<5NjaEjm18HkjqY~jg#Rv*bJWda2w
zMW9Ti?&zDwSljNTD5)RkcT0J@sla|oa(I2|`ZtEwDur5btQ1WV4!E}?Rsu?jQ%Lz#
zJe9)^uCQ^KhL|y12O6^snHppDu$yXqVy@9uKULYN9~)NE*XhT)kwkP18lA5m<<Ojs
zGnp=%9K_&4{iXy~4hp(UNVyDWED6ZgFNe)M2a&1*Kpih=cQy%UGLHjjdoo4gYIxW7
zpq2#QORQsiGOwhXPZAZN(<%);NXRM~FI0vLb=@GVZdw%zZFN-E*DZ!0P0y6-0_!!W
z1%<Z6FJ$LZ<f<X5tnBtaEDP%#5mE<aUY7`(0pKK$v->Y6KQE=;HA|o7)u=>db)2On
zt;T+rSz~{{B2+lJZH+r{IIJgJ=GUqM3B5c-Kh^7}fCpTztdr}@gveq&JTCv?rRDm*
z`nozL8=VMDb1+gGSErBHn6FR2(b~1(>3h;CH?gF;qb5_L|6ypQ&;)J4+w^*G_1*<j
zM0=9uQGE=hYGDWx^cx97zl<|0d;^2G>Xh<w9_Hk6S?P3pd|#q0=WHL4?AOt8F30;|
zj!DaY>rAusg=IlhM6DINqX)(Qy4eJ1A761nKPAbC0c2&{4eLfmQV(Hj1d_QpEpjA^
zF$Rt$<vbdeJ-~#;;>`TBQ9mpU?3z(r??FG4K@fJ^7{>O04I%L0!<fUv5IVs(EP*K@
zVhq6mv6_QhDV+8B*e#}2oG)1V#@>xqHjV};YPQOw%bvPd4XYN+GB$kT*FXmpJq$K5
z<$312C04*U@8@;uTz18>TC#Gk<9zS`dPX!SRd%fiqedbSmkeM{2zTZ{X7><_@jv$-
zSV`~<wZ|>zs{J5EJGfz^*_zC8_K6npKrN}wJ6rAIJuoK5`H8j4hp<gy`rR<eMqD|s
zk&XDX>O7-Pj8hSW+%ff-4c}M+Xiemj5$y9Ptxifa#(45en?^3gfot^eg5SIhqJD{s
zZu|djI8pyQ`afn9S*GS?{8WMWcVOWSNXhQdkF+8d(}4ftcV5y1`<80nrZ-|im1T3$
z-(brx!2%&@d0P!=4%cdig>{IuQtRYK<Nu&d_oomK+L=ys;YZ75!CZT~@BO|Pv0fD}
ztOzeP!|||KnAbZNz};Xy+(i>;7en;)srjmutxb-@Sf&6_-C+T$`}&+2uwA_4OFKZn
z*}X=<2Ix1t*Tr~pqwu--A>BMB+3X*<^tjfPZ5+k-GL6S+@K3x8%)4juL!I+{=L0P+
zQbc9LGM*kA?_ERgDUlxEJBGy{D;#<fn9njv8TQxNGI&W2-LLCEt~Q4ROzZSFJhCB+
z8m#?K0O*feGGcLe%NoZBjT2SE01}qXmm#@)5rB0{7EGuaBT$LArEwb3G$J;R)~Ux0
z587p|difjCq{c2Xcub$jrY<sYO`mi{Ln#}kN1mJG`f#%2<F3V}5YWNFh_^9c;UZB?
zV1^2NSHSKz2L?lWM_fd^gor`4(g|2$+;?G#w_6`<ZTrjw^+sDCY5)&k<P+%$@SjXf
z`>zO_3EG|JJTKf5Z%6S7jg;<iWI-1str~@9F_~rmr3qX#L>_TLhO7ztKmL=o$q^U2
zOT36>gU%5bT*$g0`Mz?af<rn{@v1&?o@Btgl7|O7t3ge{S6vs~XZ&+2<~ho@$@$Bg
zUhhAbkm$t!xP+<#G>l;&>7_5)$KY|^|8>uWW{7-XPrTy=pnFp5uK#gjgLQ!J;kP2f
zdDk($@E}@g|NjBNnCFue0M+t`j@mWO6T<N%SN~t$=m+BBx=IklyyrJh^)qj>qFd=L
zuQBwPN=L8v+`a!JujxN)ZR26B4F%F{u%S4lUJ>@x%sfNF^^*vj*+RFAWYDO4d?B2}
zHEpYZko$Ohb$GbGE%BT$E?c&6K{$sOizO6x^1@mmx)0&YIX#5e2u1$h1>L1%3dWGe
zy-=Y|w~UGr=?MW#bZhmt@2+@1tkZSb&W=9BE93?eq0AlemwotwPe|Z)^^)PeZH?#c
zgaa1;$Iv!?UkN%34(LO}g6<wDiD0ANp6&F=tysh)7y<=?&0wJ_#k+xYQ)l-&`Z98}
zBk${03IBZf-skn<<<Qd2lT&u7j5CleKdAmB0|$SdETp*9o9FVnjF8mxq*R(OSskYP
z2LnnV-0Mq_v#8upa_TLo96!`Nc+_jeEX*#Oc{V;?9qjs7*=k%j<iY$O=Ct*F1O|nO
zl)l}>DzPWAz{vd5V{gT*;@uN)L+BqQ`KAsXL{$$ku-fhBwKO#o5wgxC<QqZBQOOjy
zv#!S+R$zgNmp9W^k#-;o9w5k!XxXb_*nye0_LX~t{Di|6HX{0t!q%37!)MN)l2FuO
zPgL!egSI=$(I}r!vqb0w4&>L}Q5ZfLN}z(|SIPE(^@A|gM}VM9`EeM8Nihgb9g|92
zW!Ri3eKSgM#EWplE1DnhDkd`PHpp+1PNwjgzk||aDMP~KI0zRLp5#X3?_r^l1CnFw
z2f>n!JRr+{?sW&rPK+WcAWZhNA}NeGw{^kgQ8LC=82y0SQ1VEVj4S$-wUe=c0Y}`7
za)#xg5Y$zllCUOs{^4w0GzhmhEuqehNpW15T=L_qD>X=s`yKc=Ga;OY%-9^HATwbv
zQ_167Zk3CJ?6KbN#fTnop-W{j1uE%m`)OvP6H|L;f`+xsm;qCh=7dC&!$78zdqk#E
zjHoI=<Sp;`9i2<~Fe-8CrzCw3g2_g=SR`E4PN&13X?0VGp6A_8#fLvmXFG?F-@P<k
zk~4Gk`gyobpCkQw*{}OJeV^mW3+ti#O&;?&{P}Dv8>7qn)l!lD)uFKHlk&Vxr~7jE
zcJovuPT)cE($Mw(aje)3k>UjE!ei2Ell{}Y^LUbhqdVojTM}J$t;3LQaCW_KzftG&
zuWM$}3tlT?aV+r6Sutz_v;)7!_Bwcoqci{Bv~#15BNj+BkqH-q58r4Nv+O@uW>VKY
zx72kbvhxt=hUSB5O@jc}$u#IjFc}Hn=gV~-UOrcp4X&n=SIqb^Z20J?f80xNEz(R<
z2tshnkFmmrYv~riet6^Ul6}&y|1)1K{=?E5ipl8?-UJ^ch-xE$?c8b8V5{cw^P$j<
z?=<dNh?mKHs|KT`y@$@<ll-hu*Yf_rPonz^7(oqwjce|)<P$|DgpskmI0a7|&nnYH
zgIq}i#vM%->U2C-VxC5<iyA#m@^dSy&sD;t<w3Q%xujo-_EE2vgi!^IUTJE=;-sLX
ze+Aw30}{SR2S(^RA22bx`tnDh9>fZ8t^JFBdfY}W)R35U{K+DiOPrSfS}BWC1dEHT
zH^fZF|GMd^Zt)zoo=SBY;jiNap}PpC>j-YMJW`>LCzE$sk5&?u@0XR@w$I+%>0D%;
z9>u(R2kM|#)wDFQ(>bR4BE9{E-O;KigC;0e8}DsdXpLknB^e{uU~bZ%sI81F8hFv;
z*TxFU*uFnB@abf$27(4mkJ?BL(c`s8wxq#~-&TSK4&Ma%MTk-B2|`Zs{H>Dbb~{34
zAzkG4DheY;sah1nl4zuft9E1*zoD+i&%ssgO1xMOgitq9oU}zjUECd!uoXaE+Gu`e
z992}TBdt&u`E!j6r>|RmqHc_ZG?}=eZdhP-r5CB#nL--0b4^#~`)j`5Em{@%Ywot#
zsOa|c>`du=J}OYPpbG0V{lTNI@qed>{dU`)1oI?Fhq6gJ>O%_#J3H-;){%%|N3uh2
zUm^}XUnC^fz0vWxmean;Kc<o2PHNcib0Jlj1+2>Uwd@{HW_b#au<Gn%<<_S0*3VMs
z+uoyDQ^Yr*i;QYW(<!M~IP0WqV*U8wB(A>Tes+59Mw#zGWyCwMx_)bQK|$lzCVKFf
zf5Ry+WLZm2H$+9$UZArf_f}O%L|yLM2d4TGWy4BD3D-wNDN*EctGuDDyp*$$(!x0C
zkwsPHk(O{aNU5BFJnj7^ovOg1I#Li`dU@{!5-Oj%+SCOw2RtYig?c@!@D|C=&#UyT
z5V%!i$C_vvmvX%)JmSI<Oa2EnW_v<GO9BOvK1|1^;D!WcS<fq54A*Ie=OtMkl(<xl
zlT@fu-*|s^IL1?Djo@Eh^oqplN+?a>S%x2^+B+RIItTQmUf8{S>be50oB&-d44|uR
zO{r@Ubz_aGbim@pE{MhK7eF`CUE1cY$r4v71=Y0TCMW8Z(E=k#!VLTH4p?YsKi6wT
zZ>Xe3#`l8;=dRU^@AI-=-09WgdSH_ROx5J1y;n7-o?6ado1dHWvhit<Oot<-$qjlW
zO+zl-7ui%=Rbne!5sOw-_4x#Cq*EB{O4e5POb^5=oE;LKFh#{Ioq+(He%1$(R0MoE
z2|lD&u2Mq87Cdd)rl9z4&FUjv^wr6oz3^7X`{b0{1%T;iQMOg9JgP13Ip(`nk_eq_
z9$@;PTdCfP8a{1&a^3A*emWA}FqcCCX>I>NCQ}?*@k*()DXV@;X7%O@TJcOx+2*&`
z+crbkY4Xds-1Y8P4nTv>+Y(g^01A7CsaJYTHVuq|VX~H5y!M^=0XZa=mYIs{ihVT+
z&Tj(omg}vG9GOV^5BIO5r859<f0MI!>!eLs7}`JF|D^Z-!2JQuK!1jB>HSj(Jz;kb
zcjY5@*TuiU?60#Z2O)O!QMQ9WhWkg!@y5L1g;W{{-w4SthQ>*Vv4(qZ1(hajO#`vV
zp2)=wTTAwZLP($KQ&apz>C^Y4n1XLRBLBhjXGq5UE4A$42gcu_44p9a=>lHZG$&}S
z&wkZyeA6J)>za|qQl7L)Swyj)EHP!kB}For0DN1{>qwnYzI7OK&%1HyVyrznUU!lr
z8j(kD8>)SNCSN@PnEJ7<eB^W?M$Q)8{VJ`HzD(G<yVhZEanHGw0`}`1Jt^XTgp^w=
zlkET?FKSW-SG{VgI_Usr$Y|c^$POL40ku^Xja06gR1?UxdTG1?=C~;20H(<Nnb>?Z
z+O@Do%2U!q9anfvhj#T`Tmv6^e$&(q0tk(-$DN|eH%cocij_N+JFcK)4Nj~+mQ=In
zYDC|^Cri()g)NNR<R6cac=#USMyo5UMQaSB%(QZDjEJ?`k@cH4O#C_%0Un*r;$UzR
zNd9Dbjl+H;Wp`X#Ift~Z%Q1ifbpxLPB4WbHeShKf6-&S+w+iLV$;$S6f<n|kR<g5>
zGszd(E(y;VrLpQE<e%fx7~r@ZqM3)T%e&IUu9`oe2}GbjK97NZ{Kp680r)^BWPaoj
zT)cQK?&=#-{)71v-1yu_{zT5?U!jb%eP+KUbF+w|^69GiBt-;RSU2Agj~EraG?MI}
zJM*r^fMKS4opBAHJDGfdWY#yqmzTU`1zI+{h+VTbpA(I;&$~zqowuZr{JmS@Yg+HK
zC0p*dN<Z-q2)~f&ho(Hf#CFDH_|<Kjl*0?_Sf}$i<(;?gRk9YHwi1+n9-_KzCH$#3
zawY`m@eYKln{Kjia@dZ?JcVfU7Pv?3$ORW2!&e9AVEGOxHN#njMO~)ySr}Z`bzHB1
z14=3O|ND8dt}{T+H*~3YEO?!{vzf~xf%o_{{~zMBf#~WpOg07{zU0x9+kjU;oWo>W
zlmxHwWK!0rxGo>$G*=Y>vJbx$`iG8Pr=z<Ma=G>&y$+cF2W2;FZa-nJ^#*RP|1Zj>
zzkv*v5qua8+01Y0?$0*5R7K+(%hAQZ#>?(<l68N)O($EGTa~EjVz~B^oq&3Xj7c$q
zHZZdkPB!XHmHJ{Qj+j;Iv$@Q7Q}<I=MiL3WQkQmeyI9_AE-`E!X5&vn;O!|1hSKE{
zad^0CrhJoz5^Lsf<6()wYY;Z##BWh=T=XV@5ojgcwGo-j7olNf8dw%4ALiF~JxR&D
ziIDa$qBPSn`Eo6fdE9^Peh5JvX~xi4@$DEz=04>Y529=8Nl_v2=)c>V@3o@whw)Pj
zVHR<+O+}LX@mWjsz;NTLb!02ImA!-bN|>Qb`XG%G@w2dX1gZeN?8jHMnqXghjQrMD
zHEYWiRL~*Tb6$*^OuB0NuMMa7MkI~>tmE3l=7>>BQW3qdcW%s;S9!y*tOK>lDsro6
zg8Hx<wasc>bN|mVo4sai*Cb+*Zm-6XK^?rYcU$5id@yA{gz$Fbja^m;Q8b4hg=FGr
zjC`cX*oIa~CGL_8PShT0dAPzkBlpMTEklZBYv+O<)qF0WnU9q0z(h_A<pltrordaB
zkmPNy)(ctYY!1rWXL}H@_zyPU=^M>PSZR-jS8}3)u9d$Xm6d)sdzZ!>er|sE@%ZSK
zvBpLD>uyepMqR*-c|)InI2D6IJ=<i2Gv<pg^jw<jmyzETsPdMTZeMj>#<=KS;c=Gt
zq+Ag6mG2%C^zp6<!x<Pm7gJ6ptQW>pu6H^M=z-TE?)2ugw|(0ZyZk`=C8|Llr!l|&
z)8A{relT@e3}jLnh;XOm0a3p!_hjeHQ}|_Z)AMPB*FfcfNEUYMc5E&o!)!j1XAqG`
z<Yit6^PI*b{Du;@gIi=pT`|EUyge&vjKHJQdQ@>CaPA4HhS7mdPv4-nguN4E);0Y4
zXiV_Jn8_{tS|ROxUT-toV1IG5emjn5keenDtK8OX4Kg8|`#NN`zTo7VoVAPlZ>>u}
zv_Zd~HW^mOFlWo|C?xKnB>X&()u?<U#n;W`Lwu)iP*`vD-h;uwF}aFcWVAt&^^$yL
zJvLXkhDBVlgl%B0H8~P-<XP35v6wxGSl!r)JdX2KxhJ<+-JCnGn0-!t!HU8?;Z^a_
zHrl6*@qtcH-$1S>1_j4byC|D|PB9zV*vr$Uy-&z9;&WLBoV#vY(tGGT$}-5{vIx$C
zYdAw!ol6Tst)%Z!9<7-WGOT_qF6_s<P>`Y^sP@7Z`g}iH?92>PyhqQtUq?r8{!Uyf
zeigTNc&Oa(vOuL*0uToz_To`t(PSTeyWg%MFLRy`I~iohPrlnQ>d>Gyy!zMZk|&kq
zXzkBc^s5L}2~=N{e|i5JoPAi@e2!<gwRd~GVK)D4c|d1V_(AhK9d_V4Q%q*Pn>^US
z8`;{2CY)RMSGP2Pzpd3|ZvOW1>h@`SclT+|Q3CqayW0;PWY~~;<jjOJyK^qR@+d0s
zfO4y4yYa)`gMrPZ(_UzajdM40MB=z#tZ1KOTY)N`gsiQkf_;bl6EfMU$v(qn`^+K%
zN~9A@xapbAqbZO1SZ8k$Y}<*;>|2WBH?8?!CQ8r|k@OL#hR9y*z&RR^@sx}T+7-iP
zKWv(KYHYc@;?b#j%xgAA>FHfxr?||1e7yC}HtkKv%4b<87P$MB$!qXH-bKRU0fW{_
z`HW33GuUC^vd;%k)quF@Aaba~r&FhkKA%b}BDC)E5tmcI)FoEsU-#uE@yQiFl#IX3
z!xUgdm44F=O$d9(wo>NOV_bx7hK|4|o~751(}m+YHQ{`m(K_|7ghCYrN+Shy^&3$l
zx{bw#+n;{)$kJgd%ogtisF)wSy8szVi_8(t|4v%VG_9%JTI~-aD#p4ZXeL#aN0fX9
z_ic-N2m0@IUXjHSh;;iDUQtVH#mwOvSOYn99B$uEy;q0TCtdS4&`-U0QzAqBI!l+x
zS<lAp_`T%X8it#lZfR_DNOt9-oR(O!8bx_2P!=f^uKN8TKc=KsQI}WIp;k{<OV0q2
zxp6@mO)xZ3O=MQ{<ZPpgh<5%atX5C~(fuCPK4_eVCZT^DgyR+uomPyajI*d8*xf1n
z+@j1Cxx=WuJaF?BAdRL5Vw!@<73s|j`5ulO-rKd;Xdrw-wL}_7pR=i2IsR$lHQ2VX
zxuUv2wme<zs>_hnS}U>?(Pyk{52IU0EA@mLve}Mh#(a8BHRegATlb&F)}UFCP^hw4
z#FZ`ev%y;T*3c$!RJq1}FMiN%K+nfsgTdqpUBEF(5PYHVi-=mK4$=qF+a(3a@Phdd
zQ6r6e1CRCh-2=b8osqqgE#lW50`5?8r-)rz`1yF@w_ek@zALe<y~~Jf_x!=2cS>gF
z0`PNE`&&tjWH|Gpn(6FAb6&&-wpuF21+@&-P{$OJS(URR8$oc<nlP}z%cAXuFMCs;
zWKhU)Ng5jPXZWfjpo;ZP$njIZ^){SV(HR!^70;5A_F?Ymd7>W;4O2qI@4UFb$?s!z
zDJ@IaNI5BL%8taj`em$szQMYmLl7r1k|!PAceRhttz$u~Z7Bx{n*)d&1LX!k9%?OB
zaX+9?^<}M@^`I@RX&t_tRlRwWbqDri64d`}{!YZLnV%s49M4-j*DgB$1RbverwZe?
zdO3_6&(Th^R)b($kYZV7cl`WNoe})|b@<rL@|7SYWJh0KI{hG_UdQ(Kz&X8)(Btua
zBj;U~ga7{Y*!A%`{59S7=B?X(di>4H>&@}qjxxHvhVMB-ZIBth+ufVG<2}DVaZV;#
zC^0MVuyA+zn9IKG*z~Zo?eZ8?69XvtUL}6a><TSg@b|~_f*f&Lu?WCv?*oV>F)7`i
zh~0TAW&zRn^6r=#JudbIYWo{Dju($Aqy>NiqFTPiLbGg!=XCEYU0|Eh8Ho6Px`<E`
zQD;xzj?Xpo5|Ny2XP>|HE&!4o_H5)jKk>ZaFNfR!sr&0=kUD6^2UFy%P~i`6-jC6`
zNn<UCNdTqNl{{Q>&uou4(N_~@2@5RcPnN1I?5{qsEj#c2vu-_0%&3dnUENhvufk-C
zPZikPtMu#rA!o=it;j;)9kTLQ%gwxvv@a>vOz^nS34zH7lhS01PBrhPol&1f=skw0
zRHh3i+Jvm;RyNE$2DSg=V+e_{Gn$_f7}&ZBLZ3(rq3MB#_iOvHo}Am_dl}cq!n<+<
zFWt2@Nns9~omlIeW#f4u0!aKDQ>-|s%F}24TrMSuY6TaeZzks3J_E0j_QlbAY@qX&
zz2`_9x$PGr5Ne20^Sa~={L4B@aJgUjC`SO1BxYQZSLuN9kVr1h1d2VPTDnn#eO%|d
zhv`8JM9`Y;P-<xWpl><{{Kyt#RA>Q_M@}}^ctrR`iFtd&LTM=H=2q}?`~A$^+EouW
zapC0@<35o`iiO`k5k{I7?SdRQ@D4*{GW#`>i<VK0v8C(hAR>Amm83RG0%iCyScJT)
zLfk6IZ0?$ym35l}Isyf$it3cuIR4}4=vgTPunI9)5yL!X6zUq*n@WVdW#L?(5!md<
zj2FFN=PexALeLNha4qr^2v~LS%O73u_uvRboNDYoe#=Wb6kcb$&%|NXg7>V;lG-Ig
zGIek@#=xK!?vvesH@;&-is}@*5e@dcS?b_-`Z)`B+YsdWZTAiyT<1H%9}!;?64~Vq
z<VMJ0oSvhr+!r&MBp2O#g@#AT>>}*4;Wx1{Z<ry9bW^|)<4AZ8Dg2!IwiIHY$%TKe
z_1N^kVgoxqOC{Awh@^u*a!7r~+CpCxqstStd=X`Vz-FAg_AgAwK>zH9CfI8-=6mZK
zjCiLa`=r(lrl!~fb<J;fB%Szd@q7e9<Jn-iHsPC``jPf<ApS)dljOFpSZGMbG%h1Y
z;)%Vt4C7Ksn}zOsyv&M@(LLXvpRVrwd>`*N?C6_E|El<M`%0KD$-6$sKdk#wQ;8W4
zxmUv1weB5m4=Mk`r~mbQefRZl?8qPF`X}rHh+=ks_om7l3qiu@FTDbq`7g&Ttcu~d
zx~r5r&zB9~&VYD{xQqc5PUSTeGQvmkc;(M{WdPkR<9+07XByKvf1=M;VCt9oomUsI
zw$+EI{B1SuSo?l@HU9j5J#sN$-F-B&|AW{#!=U17U0QLIO>Y16{y9PE88!<`2VPir
zwfVm4;{DOp^MgT0dfSdSxNG|s)syhutF-j>%}<=wGY%@@4Csnd^@&BP;flP;ZIb6(
z?DN~JMmFSS`}_FgrFp&pn#y8RTC<`#IbWr*n0<Os%^szggD}axLg4+49ItDO?u0s?
zmz5{}9zqkYy=@<&{GcC4EOl;KT#La|Ky&4ZE->ERmv6y~JpPhS+1aL8*ho7}80e=z
zIC-@0gi)%)?EQYu*!#QgGr=~U)&LYK>3YOD<{SZfjp(^5TnYO-=~}UFn5x@zF9h!R
z4`g3SPJOb%#QN`hORvDRZULy(@bOi?7d7zF!wWAdaca})LV5|lW4Gf5%W4z8i+E+F
z1`ji}Fycbr<D2E$*es0p<RT(A7)+qQSjkWYua=an*Cp>~DFF5aAPL|RszgQ~hDmJR
zq&1#%{9K?xA1fBWXt=j}I8zCw9^PxqGBsRg^O<f5tak)fjNZfThP^+(y?+ii#%Q5T
zX$SJ^io`x4fsd{ej_@~J3qHPSCTB(dHCgYZf%3E6|K98ZjP&BiFrz1%&kay?uC`q=
z`LCpYMPJ=%#9Rjz@-#xhg`S4licF-x^dol3_f{92=yst(g?kM6dv+p)OtkoW%g}7_
z)&WWi;$<op3NKi2*G+Oq!Oe;v*YI-7_tAs;VBpjThDKl^xjI4G53szQQ0*^!Waj3Z
zp!;2*U3Uc+Ap&ABbqlBTkV43M^YAFqI3msT42>!u)<mcQFV=H@TOQ|XiQ)q@0fl@Y
z`X-2g<Yl2Jt}PmM70-%0gz<Wr?h2iepl_(5-$Z{Oa|I9U3l6W=-Wp0?uBB6{T-X-m
z>u<~L094wF-^Eb9-F}GG57XbhQ9>V3cu1FGgHhw2IAzYg;<qu)e&P7_4lt!H%s(~C
zM)LMB6FvQf*npfCQ%<lTDYMms!`V^{v09LX2K7hx2PllY*o$8B_Ev>o3X22>o5=4x
z1H57wC6kSn#cv}Kd3ZzdD)ZT621Ab_6>%Wu=6MK#2e;ASVv-;^!V+UdVh-rnC}p?{
zdNh;6kY#V#lVdk?vgf(SH$LVL1hIq2SEKCS--lrpAe`oW?xZ7;z{@JuBifx3T_po1
zYh@*r|BbxPu^-6%Lwy@~q;Q)4d2i~XVFBAIOLpkVk@9;rKMy5GlKOOiT0snau+blq
zJ0DnMXi#`-*in3~&&5TKa_?mSD2mw37AH-_8vAtN!EP0RY)dXd=r9#G)jW-}-M-@0
zRp`E7-hD4k&lXwy^GiYb<#Kq%NjgWrbqIc@!A5($dF&?Mgh_uKD$cAyC6L{4yr(mn
zaZrjAhVm?%n15S=^iOite2`Hzx?Ra=(5A$$v(QwFCt0TkI}5x-2D2oI2=B~g#s2Pz
zG!*{sjShBHQPl44389#O$a^Z9mWegzPKXK<D@-Dpy;B_g9|1Lt8zFstv;-i&g&za{
z5FaB^6Nz5mIr}5*zD=o!VEN&fef%g3V#V#$`ivN%j4;6FwBWpr<MgprJ^U!7VC~cx
zp?%=$m|*plbN#h6vXG(GP+<9H`f{|Zh8W_O@BDR>U1~r3`E}4}^)W_#aWsSc#7oyX
zkLWevV1)NvfA7@P!eWS<1dc@*v)VqzV2@BbV}x!n!5Ezo&p~yrmK2tMEC$@VB?0~N
z)#~Fxh8duTIS7bx%55qQAvMGp$%ruo5FX+MyWH3w!Q4Hex%coZ61JL-#O-%TRrak%
zNA9~v6f*F$Z7VcTzyfVg{})^D7+p#8y?;+^+n(5VCguba+qSKV?TKyMwllG9+j>s!
z`}@;+{%_9e>OQ?rpVeJmwXf^5cd47&z4ZDK+Gir)mm{jHbrlNLoT}4_<l1+gygHq#
zn})vV1CAE<-jO14=^V!nD&^yOM5cCfeky~5#y&}p-{TU!Bta#PCIVMsLIR)FgG!zW
zds4~-!T%j=_N464ZU&@ekI|s5P<1)bxySd4akMWIE|6A{r27#b5t)Ga&p8udA?9P6
z2RTR)il-X)mO6fWX`~?(x2mZQFYzU8!270#=tnpJ_q8dYF%AJ*Qn5~hnBRD`u@n#d
z!+bTdeVr80oV^p%C4{7LO9%{UxVMTz<OS?|x`2QMRa3s!TS_XbXH`Y{+SLhKExbyz
zVn8@N_K<T&$MJ~?dDCudoEilQ3wj*SJJ~lZ$Dxf51zG~fr_d=6xFUdh@LSg<?4M2o
zTY}XMD-g4Ch6%}Zha~kt$?GZEKFW<Sc%%fL{LPVCZ#<w0@Q+?QCj~A~Cj<}=UnhmO
zyVMCo0IxJ}quLsiVUP$&u20{LyFym>d&1%~Cc4EnO?q6u-*&uW-w;U!PW7880N1f%
zk<dSUYQqcoslV=GO^1-*{PzT@8YZI%6)a+lQeoCA*>M_X@1C2$NyV*9DN`PBKg<jB
zQMsDD=T~b^vHrw5pRt;M9K2~@Am=aKUOiH$z$6}cuV?EovU?~uk5{q(ID<a)p`OpT
zUQCv-@t~d;O5FZq_pI#RVcTqP<r?)ZUO`pQs8<~EaC(VW@-I@QO9W_2`;GxADWrSy
z;CF6~`G4w;O=ldP+wk%7@yxvz4H>MCyXb}9+?~|DM(+zEq*g(OUA+Cc)fqN+;kXWA
ztE=eOtg^BUqEejF(XTkDPP9yAO9^2)t_zpBww>vjojKDiE((wYc6S$@8tGi``nmct
zicmT`o-WLx=+RN;*ij`rbEZHsd${|!^^O}?Fko_VL=`x;@C-Z!j$r(@xq)i;eX8YI
zo7I5;lLBanWb&vwgTV!O^<gEl!OQ*arh$jgNw~>CsPo87JsY-u?B@AZVsz>!M(FnW
z1rLhUz1q^l<GH`RvY!q?sRP_WFX6Y;!OMYtb^4*{lty-;LSK@q1?XQ`R3<98n7-aJ
zv9DT6-}mW*XL0^~RU7c0j}z6$DW&Svpb>TIQNHDlrd8A6dO+-#4_CsF4(+PLl|PD1
zQM3W1MxshpVYY0fTMAf{GD)Gf>}2l%;c<&kDWSa`cfL7K(0v<(q8T^arh5pY_UGoi
z;1Th(poRLL0(-dJkT1!_rfv$RgDWDEPJ%TY+y1uhP?^)t6uG_}+3E4K^D^9{GcurH
z4LfX=+b8;PRZtu_^c`!s`<v9OxAvon|B2vzFi@~b(1)w3g+Nxjhl}4O>y<*&FoWK$
zRG#r4y5nXQ_$r(Acx|t~!2<Z2@S5YATWZ3jY?CJ<w4TaGu6{yqocTYvniIKes<7<K
za2AXCDRa0~2!05lQ_?5@%r48w$C}c_ChTH`HhIj=LoS3<cTo~{i+=r53Yin<**rpq
z<hcdv6od9NVS)xRvKA$~YNtcFL6!_=b~f%6PgK`fB5g>a8$_ZZ2&}qww55rzVh*Mo
zyds<C_rLe_BfoY6E-;(8U&GchiLyaPQE2G)%&6Y8OQP9Ju%;W^IUT>2Q5SsRzIAdQ
z#Xn4%%1)w6rtNa=oGd@k$BU++x^?Qb%rcK{;JUqaGIkYKk?Wwib$S@aKh_fl(xr{B
zV(w#p2|W7%yLBqv$!{_196!G#U>_DY^ztL)oZ9DL>6{b-e(W`)yI6SUV#X#Rcui1D
zbit39E`wzNGA!+=p}Gz6%z)^dcjH?CicUC5iU_~m&@UK|0JdU+bY=yNjX{915t~_(
zP4U<R>raY&C5AOVd=Fwp_<Ambj>)1nOaY=MhmHvwLac5q%&#S<o753fB$1qj<sClh
zWx*8CU5biFxjIMu4*|DU?^HqJs;tRAK!1<-ayny`v?*TP9DU;Y<#}6t%K3ILlOgR>
zsxlg#Mom<6WC`fV_Y<EAsd1_Ddfz+F3s}xAWbWDMbR?@Vq86%4dBuE1IL)+-8KCI5
zwgCe};AM{+i*q=#v%e4)a~BG356Cu+yfhcPEDlBDVeW8UqQV|_ESXxXWC0AvAjSd=
z)xNgerIZ*G<?UbbVq!Ei>sUwT$-e0{)XtDT584C?f3>D6f{<i+eaD4!=8S&T@>Qqp
z-h5HL^+9{$wIC;tl5|L>q2J?5t%milz5Q}Q{Nwrh!oxu^f|><@N!OtU$}-}NwSRg;
z9Z`Pscs)IiKZ|JoaW^mKl$W4G$A}>$7e5rYtw%Ey8Zev^VzH~7JLUt{JAEVmHwPzO
zUpEKNt1Ch9WE(KuN{Z|rBcSnlmTErmWS3F=<D|!dJ6e3*O4AlOaFA)#0XG^^3c2JR
zx!E*W1|KyJPrd}8103#%YTA~`E+b&TiRaDeunhd6)-b=1z)-d?9uaUTkm)SJJ>4o^
zVss<uyJ(Q$ZU^Yd<N=EO!r?CkJI%5?N|nSnx=N|U_aW?xeU>lLq!Y0vY={8C$zm^i
z_d*W7u!twB`Ox6}`U8-Y&38-ow!57&@(_)!66Z{@u84N8+lOaN8@INw@*lzEmxmQ~
z9kY_1H$<AEf>GNocefEV0sha2?dKXBoy)PTuB?yG_w^<hy1h>?&o}$+do+Mt;-Pzl
z*^Nuz=kuG>{v|ruI6*M;LN4&E`v?0}W<H7Sx`%1K;_m+uOrGMy9GQAN%qdo;c|z5x
zo`}7LD*loqO&Xlu&TP40!3#VkT%#^=WyaGODBn1?u)rr{kZb68yZ()ARq_LQLz5qv
zBm#r~Tzfxt<jBL`nfD0sv~VJWzY6XaVeyp0Wui3{G|gtPC2uzK`;Aoi7vwP+z1po4
zIJkQD+bZ{3N0#S*UfYN=<EkXzy1sYnxXR_HCNqh=y$j2qY_DJN5Z`j_IO?@!&491X
z`+mK+tGPBbDc?q)oMEelao{Y8So_^z^T;OKgi#j#n-B`@`ksgED(rUE>3t5@zoUMX
zN@V>JvqItel08mC+5-H`jB;M2<i;yga`^H0g;um(-Wv&O3A_>ag9GF&cfG|02E0}~
zh!I@5HSv#7P$VGSttPQh<wMccPw-3oMFvIACRTNw`$crk*rp*-yzf`pdU40SM3GTq
z1M%dTAAvl(CYy7K7p#e?^x?!r-1lNcf|f2XgktCD1J8XrTAD)&knC(V_sD)`Le(|+
z6S#iLjj--OMm(90))&}ya?^-f<sgn%sH+K<?lPe5Oq%y+v$E*l>Q>YUVuj}`g=<>m
z&k@V0*bjpSfc&*}91ln+6v?_6vsqknlpDq#3hvwv64|OvaeG=?T&WH*W?Tza=>>wY
zsh4AV;84eBcwEIb6Z{pKqP0W1EiEBfM{vswPp*>=k@Sb01yRC_bh8$hb=!jMTmxCW
z_(=oadrW`a#;k$Cm}05=OxA4oJ;As#-rjA&NlgiJ5wuQgh#zG<w@fU(el-qC7~}h3
zxBhJ~mIf@w5jSlQji>65W$h;l%y?b&B(hD*#MmA^MbEN`{G?vgFu9KS2{p_7e6*DD
z>yJ}c+&X%W#U>Z7e+!AWu{~bWe?~p`A8+!#DSh&MjvUVZeY}spQT3rI8`>=}xExY3
zxVpZ`DgA_q7<+GP|MXtQgTf3Xk;;!j=EaBKJShT-6$XFwBa$L}EubRc+gyCF75^_0
zB8B!&JdW&3gqUIhd+*K2xckW+yzZSDX!mg#z&Ab_3_CWjV^OcqXXwg#)gdZW`jU)*
zmBcd{#s_x~7DyfrXn8l_-4Z>H=ppN!jY7q4N6K6KB4T+v;OgdR<VK>`>9Y>F(G7Ct
zF--LA5NP|@q1HvEcRtFun<1hFMoUERajbkJVQOdfWJHr^BJQgS8Il7%_ohu)2m#MR
zy6`SZh*9%1ZO7jJK!C&(I12g5yL3(;t`4x~9z7jcM<i!z7na7`-BsFA+5o6oO-$XO
z0^^LlvtVg{O++8h4c_0Yg^|ADm-0E^JpycU=fl_Un!OuM0sY7i($Mjyq{`!N&huzz
zoC$$PSuBIl&IoX0*OBm5|64i$w~POVuhkSMze3*mkt+G{dffU_;9Ux+rJg7j0+VOp
zrmw*6nKkfV@_}*2mvkWewn6Lcb^93MfI5X@q>%6O#x`CxG_{G7q_<U?E+j3dvJ1{N
z^4oxBI`{7k(>doGZP-MB1oPhetQ(tqxS+10Eq>&Bb^zYi9PH#X1i=<$DVRy9z5=JG
z;DLM8x5PTZk@3o3`^d2egH!4Kl@36`9Hk+tOvjN3cEx{R%r*J?t1#d<CAZw+eZq+g
zc-NKC;-&}OH~`VeqOEI{{0mC^NB5VAfH+!dV3*tg6n>4F(m+&friWqlTXwdWF6k*Y
z6}^={lCqtk@@5S=n`tUY4MW{DmCWD(;4fMSsi8itj+21jukLAl$p^z|K5420+1@w}
zfg;QJiafy~8dW-L^yUHqVTY?$b1A##R-QRKZbX6ke+5c%G@h(-cBs%qBu!~rL5p3T
zF%hWXDZ_$=?~CQ^nm3YY6wxA3KV3<RT^k8NsOVs(WkQi?6?ue;>Wc!yOteZ)tpo>{
zJq1&9b~OCLOcLg<YqNKjS+3d#{!t2Oi3gZ<EH`#ycd(jxZ+h-@(Y{7FVcFyzn!3~J
zH-T%|O<~GCQUyMA-nc%~GJ)%e8C<iJuidbehL1&(hR00oT{QW_VSz9DKz1Ms(RrM<
zJHeehE`y<2e<%uAnf0^cN^dTHBe^Gjd?yU#LcN#9ums--IvNc9?XN6H9(sCjoZfuv
zb$yqx9>@6eO(}akEWi4+JOhq_7;$~SJ0TA<u1U{y{^>Y|wk2Y0{%H|LWfEit?k^xZ
z4O0{>fjtgto)Wc|_XjMjiliF(dD>*-l0`qV`D}6R<v1~!Yr%z7qHx+jvn;)r`kDaj
zF=3gwPd0zMHC8LVM10NsT2qF#JI3{(KFLCVEbTfO50he6H)#;*rrn(Zp2KO-nLyQ<
z&`FColD{>pvFHGrjA|iFM9bXJa*Es{0>#~%6OporG>K?;7en%+pI17(cYmQ!$lK6d
zbWbeRP%zcdH{4in7$I;#O*-gJ4ulW}`9{dU;*uu-+gD{g<V~*aoR}YV&atEoS&wNi
zm<scGS`*%r=1(kv#t&}_$-ho&fODfut&yK|6k^RHbuq%L*BC6PehFrm`Fm5SZ^e(@
zg{1EAU>GE7Cm+a-9Amy-1AtIINg@;Z1A`e7&Zx$)cR9Iu(s8qT+_T``M=0o(cV*NR
z(fmc?wRftiKn2A;Nz&I%en-NbNxpZn&HgO}PETViyf-4V{q-{?1*Hu)2GOr~M9gWU
z39!%E1MJ6D4SXL>XI~uS)2<R>ULdP|hT8Qv691n+bjdrcG9u3;W$Fj_xzbJp(~1ar
zh5w0GKaN%`a=?yZAbf`1MrW*u;)r!j*o8}w<)4ziRcR~>p3Y!|f5hA>=IOX29wkVL
zWr!_S809%(sMEa&?Km(lIs_bPP&qa#*C(P$#8sipVcJp$DsVGyN^UdBm}qt;YSU^8
z=JA_PA?YgEyD?FwM%(@;D9scwl+YIA$m9Pj6cz9xfH1pc$Zm@0nlXGuFt$Hv(V6S=
zTcCUy?<Y_0gyrmw;S#!^nGQcy`8;l8oXl(zc8(DNt7sh|FgYF%?ZhOQyCf79)X^~(
zFZrwUCzsVJHGlC>=Da)lVDl=M#LCBeiBxqV@0jS#-;WOBN$6QEd1a_{8iz1!I6TSM
zJ|4dkQWODxMhgO}LC*Nm@K@wHn*M{l6vyKAU&8t%#CizaTcXg+gUL7I?)lZMo1RMS
z%;hnMC+eoI`u%eCWv?8hi%;>8YCJIK8?vVqs%oy)f<-|uDmK;*v3ck%o!#$m$dZQ%
zxAgFc0$sUh@XyDOW7~3PE+Z{;_jiR#fq*p+_@QOwdDt;eB~e>}FS2<RHzVfJr2V?;
zu#qSxIx`i`B8J0JQ)F!@;i$~HXmQ@KB&m4ojZ5ykuRcl+N+CXm`hI!wB)q;*NyZ#Y
zQhG!oW2Rl2SI}D#5tas>-f!6QGQ4>`Y9g#P1<ZvJhfUjNX-Q;)ZkWjNt4n5*M)?y@
zM#JujX@6XBPRVIw4PK0kPT>{t;lAi++K>?CWh%oM1XWkKrp>C71(3!pW%-@KRM%fZ
zJjkIBKLmgKe?+BpdJcf7G>NXHS!J^F->6iSLmTc=-_rc-4LXGE2+Lbsr24c2o-t%o
zw1k#sG;+WeWxd*2CPkzIp_osdNNw)3-Qx*HNlKX@dnHb0Pwo`tB4{^5NG9|mfXR4J
z(Y#XF{HixfY*9isAKVn*artQSQd-1M)upj=jTB7ZEBQOjIBH1sp1iT|>2Diw4tMDO
z7vHJ7pfeXHFk<2tKBPlbI+=#r+~5}hiS5czpc=kC&DZW{O`m}gbhTFoZXkUx@uHHh
z+v+1v%oagePt1}A6v71vPnYcMbsfTRB0w*dgfbwDZDol&CqQKPRe!$A@|?XPSh)9l
zMu6bc=d~J`Rri#vALO1II8uDk@O5vrFS33Ss$MI>2M)IBT!Z@P)V!E$3oumV_#i&v
z32VTaY#W$jmR~$N196^7yOExAQc=!jrMs2>(wKbgc!Rqbq2#z4$uHVORCu8-StJ$q
z?wjy0`dSP1_EsF8EU>{Qws=NU4?0%`St6l}xIcHwemzVxs?!w$PK}bFoYAk~u`D;d
zQqDWDn(T7A#$RCN19JcbkFEQHD>=Z`Q6_5ZYc3kSR;Z(g{hm01+{WCyH&%D<+oo4f
z54b?!17W?!AaGmUnMS{NI#-z{FT=v}_&<~H7@*~{f{jXSu^L9Gj%Gn+FB@{9Up6mB
zr^p-JJo0vT7hj(4P*OkM4!gSExDP;7d|t0q-f!Q?vt)%f7x_mG-fPMMR&LDnkP5@Z
zzebeY?5Ea-PuCe72fav=X>`KTwe6EKKU@f@V&;nUSkq@p6v<wt&hX9lt=BsJ%8)c>
ziGl@8T6*Ab9Hdw<>Q}I`i%#A|gjb;DNjxYnd7-5V4$g->s-1psMMR26FW#o0_u|5m
zK$9~F8n^U@;6xiD&$p#$XaX&xv!U7(xV}anGSpV8GcgeuU;7Mv1Ag_@V1**@55|XG
zqwVjd-X>>a(Py#vqH^!tU$XCmLG&eD|5Eh6mCt8$5B|V{f6AHiQnZ&&ae58GAF|v;
zmpa*zrRc!}qD8BzfcGVYf?@XP_n5Dmj#p#bx{*KQ)RhjMqz*@7n4fk}rkCn=DM)~A
zn85Z2Ar5c{;@aVa%9@t%i6l1%*PT0LhW-=+$*jgRycw*i0E7qK%Y8fzIR658%5$b`
z0z4Q71nYPp!oPXciw#Z;^B!huBZx6MPKK<n3{j~+oVZX~HPFHH4UmE)&fCcK5Ftr7
z!_esVl+BZzsMlST#u^6qH7KtNSo;Km7Gh;agY71-((MT2|9D0OfcyZwqK!=IUe*qV
zzJ$ZI#-HyMVUrmdYf~583q8#Pw-YL$A}$}<&-4{O0`=szXieniD;>a_mm(u%?3rrG
zm}Y|n#tMv@B&a_Oa@YAX2Zh_#jd4)UZKv6ER12gl7`O<oG&Gb5pMD1K_E9NS3KyOW
zAdT*5pqvv27M){eE~vu?72S{2$hfXpcU;wL<zKO2jReux4<q$d6z+vsZ(LtKP2|ox
zNBq1kAr(Cdy+svONmmKQNpCc;O}&MyHfM+9kdbWVjou@b6fq8Nw%43iu|usONK^j#
zTP9vIR9OB|j&xP0Fm#wnNN53&2lJu#o5|f#edMUVCwlmZg&+&L3NTl)aG;hlH#?zP
zAAJr%9K#ViW2OufMkaoEPDk=6NsI~1B+>Wbrs}T^iG;4H-&G(gwaaJfSqoO!`_5Pd
zmtRlGq+!Y%W#|rj(`OmG7fhxYgZ9I@WSpaIPBY4Eh2Fs#3J{Nc6FXjY<@`8P;FMRi
zDOn~<43kFSRH!_Q?PuwIXt$BGxqdDHCOG{~wqi{4t%7pWp$rBLRZhUxA?F*x01n+;
zCw`hYx)I-Z-nd=UGRi{W(r_)6u#zR2y4MN{CK>4&;o8>%>A=x2qYIzUzdz&$Gxeyp
z4lpMM*4=|jvbRT;%koRxU$;)yBq7N=Ih*Wd5XXLZe0={vlwwBjM{Z!7(2RC{yOwJb
zh3C1<*1tHd5(FjEnrs+)eYJml8b5lD4nDN(BVdht&K~X|8yxfFo=^{s_#gS>aOJ{T
znaW}LJ0V0*aB#dA$EVKF%h+z$>8FF|+s!|)$c8xT`{nNLpTjk|o2CagOfF~!vGJ=-
z-KdNYgTfK~BuRPId3lqicH8ABhy2GiQ?sG2%M$_}f@oQG_1H<XtKh`T?YSjoAxDsj
zzT$#F`W<!_7%$B2cDDSY1=l}k-(Br~gGD_0zaPb1(^VB7Q<JGKzYvc8&YS}kUl~-9
zwu#JtKfKT>x_v%5Dh2>CUI&2-ZIX+xFM_Ec*Me18QmaphCylg{4Kbm(y2TbB?-53v
z;62K-`sT?9qBzdj;(JO19l8GzKr)Js=l--<fMHjKlG7rDE>Y^Apk6<s43sv_l^%L&
zm`cJ}|AUE45}k_VOXE~Y@2(zfq00!R59yzsBNZ|#!dt;xMdGZu1E3E?c{en*OL)n9
z?|HARKaXt4jlgZ6QTF$Xri)NSkfisAWzAU4wU>X;7`zu%E36yw_QwAbMBfsPJ@Xm1
zwj)68_YS_t_=X9Uu3C{DLA=>MjFNwkJ8}I@JeoQ?F>@yni-CnPP0_lI^Cf~1>h`eh
z5MvLW?%-h%VJ>qT5RamQm>=*kC`#g5DGD24X(ZvHP0tciBw?e;e+Nv54s%q^lY1Y!
z=)?4T?2vd`fs;(r?2z16E>lMKl*7HTaYFoiIX-tnB3z3l`DjmiJ;Dcy>6c1vUEmf9
zY26@ifPYb5l#9Ze{~nU=)(I|U1C(V7vV=r$Ss8wF?3<eBT9SGr0p<*Iz~v??Xn81l
zz0shTe%BhtV_*2#GQhvej<X(Vu4>F0uq6;xhdVsawcr4?VS&t>;Wvw@;0&eY1rQsQ
zXPZ0&$xz=XQ6>|}$Ip|q>;M<UQ{AqpccITl{F3B8XXAE2lIJ<rqb&YL3$@8a!0O{;
zEuU5t5VpGSB^81~9cPm=>7+<E)lOH2oY$15clvf{9dra8_dq$<6-aWa46vjP`8PuO
z$Cvb*T{o9ovDo0LDRyB9z}QcWmtu_CAj@%se_dCwa6t@6=b!>D2AJS<{^*IVCysv>
zXthLI8@|lq;O_5<T#G5jPsHJ@6ERk>VkV2%JVrIHAcIjG5J_B%vE&C=x@l3irc@k>
zbO~<0+iouPnLOm&i_Dg^9#&#fvUlKwE|k28HIM>)K}JtSG;z(f!3=wfE{W>dahsV<
zEFq}8qMG&Aimy$sbZ;<i*JHL9*{ZG+?dx5_xPTXE244_*{){2!b~=3QNidKGZYckh
zd?y~2XC+U@-WWtbPV5XgkNW3qeePdDvq%c0Xxqmu?$FV4)$ijJgpS{~$zGy6C5q!V
z$)pja6M3$Xei_GKUsGLEUGib(XdK%BD}+cFnzZUNU$OP`cP&h%CsF+D7Mh=TtLWI!
zoVoDSQ7_Y0Wui0lDVvPzCB=rqcgWOo67i5cKl1n(P?^5S(`(jly~6##Mz2LNSgcjt
z8zk&0oXk5_t|gWm@#fc3>6!ynGL0^}ft)sQq>+_A5j};S0eH>p_Bod33nkWp!#Dkx
z>-vjL-=;7{-i1?8kN+18(Mr`<fI8Xi_w!~8Q>vb#zFyh`pgia^>&?KreL7}FZsa0T
zpr?x&uv6$kaIpS%_~?P)@b~CZ%S~2<&x&aQ{LFs29Mf$diCC3=sJH{HJo?qYFhrht
zDP{b|6Cwezb#ug6@Y8+ob{mZ5)V7U$etl6}so;a1Gk(-Y{uL|knnl=5?bba+=8lg~
z@d1BV%79+3au6+aa5vy{=P6bl3!rBJjlrt8SwrcR)ajuIeQ*A*!xUhxr*FzUUfR8B
zjL%rSS-8}jD@+^&03`I$e!p0OV~dv?$TtS#svyRn-iN=6z=aIkfvuZ1`r)cHtK;bG
zH8%$SMO7~baw-x*I~u<3h15WFkE8?QtaRQb8rqg4P|LN~+-qKKSpQW@j7jxzEvjl~
zB-Rs#15}~7r)n2CX(k(vrlQqyYNbDb#z!)tdR?JAfJWxhPE+2T3ZB)ZTHcH<(kW8h
zd;@k!i%(VAj24Gb3{gfgX}~Dx-ivCI5*c$K7AEDXQxFp`{;YZ@4xd*+JU~{UHNzCU
zgS?6VucRRqu{23iW9ePs5KB9caT|>zt}vU&>AQn$e)m^<tpa3#46b;Pk4$Ml1H#~r
z3Pk!_0PkrE-4bj&+%z021Q@L?g93OM_ofTJ=DNDy4jYPE&E%vB5SyW14A)3Z>tg{4
zR{S!dQ>P?G8*i*6Mc_H<Dc=|J(3TV|c;fy3aDH)1cF*lY*%@6r0a8F+&mdWWg5Z-A
zq)@19)V5-o5HNmfgGNIimlR_*wOwU=_<+ME`*!Ai=05mT8`U8?v61dWo#!TT6`Bmt
z*zV2^Uzm*++$tHTV47#;24)igb}qntC(Hxbxe5R~_g0RGiZ+ndxk8xUGvGJCih++M
z+PRB(Y$e=r<_U4V7-SUl3o)3uuw9vkAkL(u5$CDP>+NrYl?z7$6o;BI!ARTL&i`GM
zfohzTt>8<<Q0H^;;k2?qA$X((eg9__{4Y(<{)wlb@oxy`4;z~>hWJoyfY9yd2W-pJ
z8v(xp<v^a@kL8%#TGRL+@-gbj*|PbMu<S1{i2xu%Kp~Eux?bYOwp(eM1{1wi{zsY)
zp0e&Lg!vX=2fc5;q`UgG(fSqRkclS4<1%{<>Uvc1bjUz|t0?We%0~0w_5t8%Jw!q6
zY}o=>r#aRK6^qjKx;|qmOkj}<*~&~!a5k_>d8;n;TgHBfppA3<iA*MB{K1{K6ywRn
z2>6~TF?A%d3a%ngwgE(<!#t=@D}9%i1B|a7@K|IXpKA()XWxtUbTi@7m?6hhC7IGp
z&GZ>nSQv*GQw)h4U^LYfax=nitHa@aOn<5V*L{ufJZOn|Mr4T<V14|QBlYY5fHl<h
zE%4&63TFE8R}V65nU(o&NJs<ZWpBL=#<R-rk3RCwfdq5=m)nX^Q^!ar4ZG8%*E@;S
z9}-<%$0x8)bmeDj(L4E4z070o)vaaMep{S$^fUiB{dkT=Lbx#8@8z!%lJi0^P@@>M
zo(U89r=b@^9<sB!QR*i>o|q`!&&?Dl5+!phz4*Dzhj|YF{k#~L%*oh+SeFF|$YbzL
ztalLgsYf?xHxn=4$8;ZEtLeRr`yY&MCegTQq?hFg_7#9O(54%$VHdNTNzs{|^>gYB
znU&05hLe`Vd6bw!;t01+qin<QOvdsE_bE2Q6*Lur(aj|OG6`=4g=@J;oXY}h<_5jt
zBYkT7?VeB}CGa=A?T5!`oH^2i&Ti<8!xLO=Hxn%#gY~t6bq>H50=xS8AJa5GGVTBB
zgTC63ZYE$uOX~m`q6YuX>u`Hj!=gglS|rohJh8zYNE9@~r~9Y-uiS*zi&3fiL8IJ+
z)4)CxhDrc~_MJ!_qfJEbWwNqER3f7NV?k(BZSm=B<R15<)fidNzD=QYjTA$jQn|5g
zLRnscsjBOV>YR73Jh#9Q5EGZBu&C!N7naR2AAFoFS<JmnJU7w3Otz*5TgavgqPB<-
zr)C5Ls5om%AS)I{GFGFRRc%S?;uV1G+?k+Fzs6&$SRkwZ=M=!e@%3;&s8bLpE^{AK
zUdG0h@D+mn(MW>_&%NexV)ykMR$LNB=-);M2Ppyn1~=O$Pzpo}f&?Cy!Uk`Mi&ZDC
zN2t`Qg((hpuX{`<l?)56AQ9xp^2Z>x)-}klJ8noVsQIxXG@1asc1TQ>9SWpIayVDO
zke#HQ7k2eF!S<-sme4~TF~Q>DUrll3OH)h>VL;q7+AgFF<iDMowQ?stoK}t{^eD#0
zcfh5EfT|s8vPW3`5H)4)$JpUR9eGd*MOV<<c>yH$`&{YDo^<m;pc`&3I%L!k0-{tU
zk2)OyE_T?1`2{Kp(CubI!6*=5!t5B}9hgCODbs}TnE4npO~&ci)K{?mu6n#>`Hip=
z2Jo*Ja~;oEt-*CJ56r;nr$&N23+7ifWuUF<jqd%cT-IPdypF}ujS97|LXq8+%V%@1
zpf+k2n=#(>%Os}zSlE`2I<}@{eh!|3Wo_nS@YMba#;4m6OIt>BJc$9{d=c1}y66F<
z7R-Ef;=Jh%qW7^1BHbM=<)q@czkK`|y5i+>mRqim)`@=H1?X9P^)iohb|aQLwn5U7
z!{xnsc;M<ce?4uOIE40F#Ak?Zrqg_x3(M^`b7tpe7n(0y<7QU@t!<QP&E3vK>_@x=
zor_j!y0Ss9VA%@mx<RdQO*LUh>fY4SYF=51z{=7=FEOb=ds<}qU+IVXG$PQmxaRKh
z7He4;mHmgpePNznmjB!ai!~{V$WYFxq+h$*%CnX}CBkvKA;=_aA52mrxsEmBU{?tE
z39m~QYh!qe%?Mt?JOMC($+9<~%T(cOrWmLx*lHhcQsIrU7W5#zq;gO3!(GJnc@*`?
zTg>LOBS-V&pDYaf9pd#XJHIQ1gyxR5Jp2R1XZ^tWbag$Ld(IO@FG{3?Lb^BX%P^*G
z&HV4^YxZhI8B3M?VSC$<VDfX(Z2r+_Vg3;uX66gcZ;62k-LpBL;&%kqjY<Nb`MB)w
zLsACtR?xBg5<_+~dmK_fy=&RBv(`Ke>rwy5Zl;wyWO;I+deSVd%`vY&;G9$F#<<3j
z4CD*8g~yqfD67>YpD0Q%;_nNa7?`1UZ^cbj<^ZME2tt9&bQl#3rV_djhM{zP`U<)7
zo=@h!LazVHLGXI_uUIxM5lUQdoFf9z`N%q447McAW*Gp_8MAeOWxh7KYLw`V#TObc
z+r!U;`@c(K%$Cqkqe3gDWEL{hGunhby@u}0^|h_L2_M)69QQi=TwoRPS$qvuoSGfw
zo@R+gxQjO-7JC0}IpfWj)+Xes*NHZKX`)<;+F<i-yYd}6O80JVHY9pd>aUj+Dn60U
z8HoM@3O?X5B;BK(I?69XE=mhtLIRVp@7I_F_F1?9*#3BiZ;#Kfe7czcS<X(}sjUL^
z-Iw6N>mf8WAA}<Q3%55GJg7Z%)i%^54IEA_3JLF?aiktw*(Ii|T<GJb6J)4$7!;;^
zGwS#!_!0vIU!;Ll919p|5-zxC$ML(;Rou;+8NvFLI?$`1h<CQ@cCiTy8<D%jQ-Y|<
z!~Mo-^p7P9=3|W<z$A_`%j8d^Do=TTSq5B!2a0Kz+-(nQ8Ysv3dR|nj_{}4m>#!M3
z;WifiyWnLk42eaoX?gYW@>bG!<yy2MR7bdRt7YXp5tpDS+ef~<X%1ia0yKy3ud2ar
zsW4SZ%qjW|YbGkvU`?`uI50y$QpQnj9Sos<aT?o)Is`E9L%MY2Se%&PPIho0(9p|3
z#;u9o&_3oJc))}yJdn*i2`QjF8h7@;-|!g%PwR@@5Z$)GkL+VDK%LOH^Bb@on9MyN
zM@T~@UXHyc(52hG$#Uvb!bQ<Oo%J(nFaZ3wbMyyh7_mw4HU>u0K-y$}>1IqiWe@Mh
zEvi7*@~ynB1<Rg9f9yl6JVojGCL@?hdp&4q4coA)p4J}&$^V34gSX!;d+2rd|NoBl
z{QuLj?sF@Rt{U9hT^CaNM8MQ~cX9iCujNK&NRs?Ny5$-;T&CdpOCZ3pW><v~kk22M
z(TC2UvI-kV$2R8wE~We+rM%9IA_EKQvQnC14Bz(36OQv94Hej{jv&LrRpV4ZgQCIy
zr;nk=>1$kXtW40R2J9>(ve%)hxj&vUK9gGn`{Lk<sdbnh3s5vv!WKl+VB$jmaiA(x
z0i#8m!H|3mk3C#a^v*WczR+ZD?@+#&J+4*4Vygmb?UTrjx{5uv`lBFB0c)<BML?Sl
z6`7$jAt4mfmq_GCdS3`%&g)&tT{x|-Qd`AsCBDtram1lqr7-jIvrgq-(0CmH8h^73
ze)!i#d^%iwNeMs|*>Npq3L*kP?%2n?G+2Fz8>6oI456Ys@98FsutLS8i8!Bc;Rr!n
zd3qdSO0Muea4^fEH5O`A_6CUTP+QYZ)L2O?4ga$4r~kvc^Tq$my0=#WoWEiXx&)aC
zuKDxc;mb$sno|v56IjL(cxleC|K(L5mGbNn>I}j;#z73J=8EJL7y%{-8mMVd@y5fi
zMF315J+M1$n+Ln?2NZXA30C?o0$(?hBi1DHK)!uFde=E8u;L^%8ME-A$ky_a5*?D6
z_1n0_Ka_i(c`+ccdq9-U<~l92dq(Wi=Fm)J;|cB(iJi&3C>@RdL;N4NTFD>-5Yiou
z*>HyU&Ecqq3=PlW<TYjR+*(J>JKv1o@hhxKJQgrog7uC2Y4rX&a8KsSgDN~WF$uwC
z0w@c2g!`~Q$!dTE&}7H#*j+AVQe?)PA2Yxo40RztUKl{mMHXv_(}aRAU5a}%B>rx{
zt~+5kbx{oL05<WW4rVd%Die`HN3Jz3OOqS2#4{n&@?9BTfdNM|@DT9e?I7L74MjzQ
zrAU~KZks-#kUm`@OMXx95ZHiVY+l~TZ|zK#rl8UDhmdnxpFMd)=v{A_{uC&=C)*P3
ziMn*TLcc@sqQ~a$+@u_gdK|8i0DOmhF${0>G6)CXx#|PFdRHCw89ZnA71=y1Wcfxa
zIO<YL-97#XAB%_`emK$&N+HKw1R2SY4mvzSCCq>G?-cf)I)XqP<9hX&drzJHzlQ{!
zeM*JdgbU7ikjD=AXNd||U_sk8w@H>iKJ0!YPjIrcEJyn8zSf3&U3l5C!{cuLaTVnP
zIC3uuuKx}EAv$SIIrbQDS%p|{acEXRFxR%8PITKHzV1A~0!pWBJ^e#sqej#?uwnhn
z{O&)$)>6|?WB(bu1po<IJ<XYYo2db&T4(4YR5^-4u+}YKUUx6u!595ol}PyfPq2u>
z<73wuUAbLH4tP!p_h52nEi=TEVbl_shBsC(`Ye<i{o~@?-YfhbjdaEXIG7bMdFSZ!
zcej`BBalq+Jgivym-Rz+9>5|Gt9ivjI`@fXYIytraNa2nbC&>j<aj6t%dwSB0hpq<
z7c1Q+00@LvX@>)73JQ~Ojl5nXM{v*tTUS5pV6n2=Hw;LJo1^u53KqT#1?EFX*EIuC
z31=D8*8;H{=oQE4f7@W-rOL+?U`3QCYK4N5cgEcli4}o?rc?kA<e>)@R#?!=XTYM!
z_nq(GY|vt($WJa5&-_6IAUM&<)Hk7@pMDUb6WAEZ4c9^=eR(KstyFR$`;+vr&`@%?
zl0dJ|L)kHZ0@Dg<04I6Xin(LTuVmAp02X6@|Jeu)E%7VIAzZvnr1|}Q7aaZM=T|-h
zEc7v?J}ZXHX*Qx1^{eq0tuXnU(fuEIeu@`?!cfO$0D1LvBKwQgo~1IX$VSwHG{Z#Q
zv1W4o0OCHj8nZe32Tj;#2PB`!=D3F}3|Px!qR!MTN}Fc9^!^|+&NO$T7D*~cLyg-L
z%;OGeL#R?;795+$fPrRYMk~=EiSw*DmuM+O-S{_nV3G?-DeCB;LC%>qEMQ%Oh4ypC
z4!wb7{<;T+(cg}(zC3Sw+(`5i01{3?%DW6k{hoRtYNPN38T^PXoV(`~z)S<myC+_a
zc*hVa!{$!j^M3J?xyQfoft~>xYs`*i9P%SgO;D%w(P#J-n@sQj!q)C^>5f<REZi7J
zlw^pXqYdaUZutKPxc;AslUJPaAL}M|dH?XL*WADVp{%{Xqp)ThUx0v+ZMi;S;WeV{
z{5*qSB5eBKPPbT)=Q3X54`2#n#BbM+@d;UI=wAya>zDAstbTNg`_@6fy~t%)F#G`n
zTEfEw-uhLUh?R2#i`5z4u1+m&loSedw21nDS2j3SvLOB5^;-5<ali#2`qC|#dmq-2
zSx61x=MGvFlYLCu3+J%UDuW(|GMGh4mx@)gljFqTn5pD&6uSxx!KYSGJ<WPOpQmbl
zi$Gb5p!V+=2l)f~SV_eAOOOd`vd%&x(b1Bnm?k-nIyA31#DNrqGwx59$0TclN?{Fm
z+qB2j$ji=`k4=&_kd4-(kv@n_)bDHf0h_Pm>*U2>4lyGD6%Yq9aFz<lk+kD8;5q<I
zQMxz~@}*vr+Jx9Y=gu}2qMm83e!eDn9kYBS%*m!iJX79k4tqkrbeMv`IK^T;N&!RA
zJ7zm)t#5h2rDHb@ZyMAACN>xJ1MpRjp_{Gb9WOy}uW<-gQil6IYTo^?kFe1gfch44
zeA1%?-!);ILLe8)D5({lSrf>Eqk*TO6aRI;i`vR^xR1Y|{Bm}3T760Qn4v$cn$;)t
z@zDs|<3T(AoZ47D7qzxn?X8My(`1c)lC5kLy~HK#21X{_gejIR-T1lYOt6}vttR`K
zc-BZ;Ltz)ED1j=XcL|oSg-RJ0&+ibySkw!jv!*0S`s$!a411YuXu2%qL6Kwhx?Usg
zTZgQ^uyMn(%xYz7TDK=OhQDGYn40*vHqT1dadee9^+(~`0${KDqm_57$m?Dr;1GWy
z!X{~j<^A8<;3PmZ%K40?{w$}UB{+$<{)%RsvCd~K$4DZOW!Kl23+m@5WEYUQ0(i-p
zWR4Mnm6G5X7kCY4BC}C<3bOT$Xb-Av;<l8)tTjpfSxJgI)W)mFkg&q*Q*XELaS|H-
zF-~DQVi66El;;W0Oo#|*1it`vhdE-F5Oa_e?1qN_lcw_;mtBv3Io&;4K|m5-ngw6?
z@M*j(;2(mB$<m!dHnFM^jVL865W8ud3XUNwM4a2#J_|5a$+}a;ATr<nHVkqS4romP
z?v}=)OmEFdY<47Zn84^d&TJPP!^h@8bx;$F=rGG~8D)Xb7cQrQk{wSm7IIeTOk7Ez
zz__Gsni-4gI}J!0K$g$BX-`U`^)#$hBC9{!iHJ@yoCT5^Ljtd)?JF=zCZ@UD^LNnV
z>L3=U+DE#vW8-@NT${_93c7ueL3q?z4KDJroOj{>d>`5*5?cFso7FkzUk5D0uH&`p
zT}7~h;N<Xmb;kX2MOFT6>#$h=S+nx8d4Jw?xU4r++^#YAO~cWLi?>lW>N`;>*1=&*
zUucZF0<SDi^sE(NarVu|S=!g`nEn8&0wobN6lT^lhV|-$gX@w`ZmyM}DQ8Y9LjTEu
z0Vl#CE*ZSxX}<dHqGhX7fvB;oopAVmz|-Ld;2ae^U$|mO)&^Ro@P?li1Mlx@E^5z1
zV-R)^+N1edsELNBr(o2@Ju;K@6QpA6Fibf4%I_~IC1VKinqV<HrJ}aF3dw5;&Xu6;
z>!-JgR;Qiw3B_EkubPkPW51Ds$lAUbj38B_5-QvKgCkz>aQNmn2~f4gVeU~Bnx=`s
z-tdHYKM#+!%q;Fr_(S2-kR*N6D8yjLZE6O5BMft|C}v(SgXLs7><6hrSfKn<E%*pR
z4dopB*mvG?(wLCs&=L(bz1#@t230R%aKo8CE^H`2Bos_nb(YcZHr9bs=4qyEj+65H
zG)22ji%)hE2#tmyfcvWnxWBhjW31&Qo+8uGl%ajjEqf}c(JU^a({mUJ&2Vc;UDTE!
z5cyrqtrTSO8sziy4j<-Gef_>AtLc9sf4^NeMoFw45j)#yRF);U*l9XnH&x!MD{L_=
z8sRY#Ge>aH=1zutOL&Tet_)h>SfkfRVu(OKB{EYAc2^zC)LJWfNxT>+-#y?kkHk}h
z%^O9{{dK{kHft~Y3|%P1;XnE`x`Gg|C1!tt)HY@oR}RoR$?U8*=6crK88KyBfIW#V
zFNPh5onXMo0gXeO&+ZQPGx<E!zcLhQu-Zi6T<n{=)+UGI;5qkFsM3pZEbc}&@KfDy
zhImv7I-WE17PIm3DoB8&b`2Y}GNvxII;wvEi}~Z&oo~^jWbUN3c<yCACtT7h7w=WE
zWS&YRQJoghD#eo|{5i)av^O;2R-=-rehv|Y&Q?=YfVr<giZY}YMc=EYXwJ_C4<9->
z;wZRqC;X7tQ95Ui69Tmy)tIMHwhgqNTgd;txRkIa3MKtR)fSL3V?5^zdFV&`v2u6N
zWIIaiMMcFrM0k>`0HaXiC$mA5yxOC%8erbWty+nJF0Zp}p(D``I&0g+Yd3y%+IpTM
zoLG)KbQBpVG8e_+J{Bx8ci*muM1~fIq-jS?abTXwc5+l5f@!BFL2HUp8B0lfrs#c{
zRKmGKtk5{n9D-fGp^9!dV?Y(@Mf?-{!kQ*zRvVH0d{<}<eJ3B|=Ee%mP9IGnzylmf
zvcC_B{ZL5DGYx=M>re&nU|rRt=4pCI0d3yFs&Rn>!^-y5g$$jE5F1L!8gj2tZ{=G`
zFSmaq2b+q+V|@k7O<XdTlPjkp1tW#B@xSF?bINX4(5UibFF{6|<_z(cPZ=%wrvtR$
zQ777z7tll}a)#1H&yz_Le9(1f9^Kg5i?M9RAH|KFcn+tcmp+mlPSc*A03L)wH>@<_
zv~6xSdxVTQab`?vgLrdh&!M36oL>**<SJ}>Yx}_vy)Rmf&FPvci~<|4G%lPi{spNp
zWQBG#G4`0R)xI1$fr07y$vTN?gLf?h&7;&tRXewKvu8vL?Hc{Ydxd(`LsZ%FEPP`0
zqSB>dN=jt?Zp04y8XCZ<q6fNpND<B7!w?Iq<*>`f1SG3a*wn03YsoUOT@vU9Wquh@
zvOSE*#E)&|1*RF>xTOvk!-|N`9u|%mAx=-&&q9hwhv10{#jpvWG99u{$;1cy6N6`m
z=t?n;8bJ_`w)%$jG5TU}FvS+D4##B<JJ+jNr@}^xHQ-sNYJR6f`z6j?GocC@A(0Qd
zeqctk=0s@aS5ny2S-|`d6{zTWxz^z@YZzLCmhbv4tzDjBz`&><S@+kFj3Pz{Y<q`3
zj{!Xj9MOqR(E$Y-f4yKjjyv|WO4_>?(*yQy+fVC!P38wCKUc8GagziY-cX5t;@X;e
z@!EV5_e-v-dBco)aYp4oFJb;r!~ub1u~J?lp{*(5OZDOe1OzsG{CPd6<RZ}3tlJp7
zma1aS6?TE7WKqKsBu4Q~4Rt+oNXgo?HU_tm!3(_j7e;x%6quM*NtrzGwvB_xL=uA}
z^CEgnR@FxC*qIhBL!~^+&v^ANf4x^vTTRGHa+Z?}Zh#^q*U_9;ke)V7vZNg_ZEKX+
zx;1BRYFHQi!GnNk28@t83Xr?vcDRjG1)cc<*Sb>Eb1DhVv}@#l#!d}3d-1kv3c?j?
zIr-<zRK+4D%!Dc7(~?V8aTj3CGE3+w^a&n=iZv6p-3W?|2z*Yts#pi`LUh}sATOB=
zLMUQS`Lru{7FvvdO@N;7cC9VPT}C-hHk41q8$fwErC#e~ONAR3NiNnKAmHkCD>aw@
zavSA3E`0`v6q4+X$0nyfK8w8CP6)`a+st*|a0Iz!DNPZY;neZ>^PY{W6X%-Z-VhZ|
zf47mPEO6@5A}hGh=9ZK^Epa{*?_bVBO)03q@KKjA<6VyO3gvi3G0>r`c-7H9dLVLq
z^$O>By)DYGXB+%x?m9-=MoBzb(n#KlW0X4G`WZTASieylf+7{gQsEq{o6XNWBW=2F
zp{Iqc-UeP1#EpJNyK-0pn7tVHfJT4KUf{y;pet<gk%}5}&gUerHa122%_1(jK$|p0
z(uIk`j4;tSoaA`)k*=Y^flBV6S<<{ctQe*SJYXgcYIm2o<~ktD0M7;B8fscZT_|?W
zd_K7n*h-P66g3JN6-cjEZ`c}CMOPb1)8FZJ$f<w|G39|q2F(ETl@zp%Vz0{MrD9Nx
zMB9f~-Hc(-WTt$qiCa(!GJU03+f?QW^d!P<?h?Kv?qiKbH(E;XoSI;#{^DM!T%M_J
zK_du)6!T8``nDnp{x~^rU!B=B!#a}>-gLT>r|nCo2Jm;;cKd@(gZ;ueUllc5Nxr|A
z+0=!Mld&m2jAF^N671SOeie=Bz;*@`SGYLZgWo%`4ipjulB9u%+d#FyWrp|E8QS9{
z<JmU{6C89*qS)H5Xp~Io;rq&Qk{!TG5Ci0Azpk`$%A!3qePJ$KKb7fU+FE%F1ddlm
zo<Nc6U0MczF7V6%!we9hW^JVU0(Qek{#DDJwLsp&XT1?iO4@w!v4ar9`gdwB>&f5~
zrlu14Q=b+Bo$BgPUfKbQKg1~<llGp!*Ur`R7A`rOIati;dx<REiC?DyZ0UQ;Hp$ys
zjCcj$hKsXYKZ{SYfcfr2{q&KhoN-)<byK520tvCjcP)Tamo8Ya*;Z7@#w(k9(b^NM
zr#_U_iD!p7aIQA&JZqsrNaFO{9txWPEV1t3x1HVTW_=hPV|(=Rs>SW<Fz3CfD7NU0
zQ9aagX7Sk6bie%};{1HNE+yU0udZslQ^=*-hPeU1WX%TI#D28eqoe&<@hIEZNfvnk
z@d7AeGaRJ1QIGdqOzl_5o1=?1L1uUc&imYlx5lS~$L$lo@^#naqfX{;?%b2ZZB$z;
zkeKs<cbwrQ=8l0oW^dal%xw}s?3X55rk$qrHD>Un>qnW__tW>j*+h54dh93B{RYP6
zq6AtM@lEL$oat_0AC@i?rL9OvXZ<v;g5@p|t-yI9&V)sw!eNY$@yr^M2}1i$fpirV
zJE<2%WYyENdF}9XT>=R=tHwT?VE(Ds+kpi=n@HMm3ujM=*P^~R_Z&}%Lq>v+)iPwf
zY6W=aHi~NeX(DTWU#`<}n9-tFdY#kYBBY*^FioIW6T01MhZqMz@2-fdpN!p}>@Z|I
zW#MU`IY{$dI8UyC^#o2GfBbqS?;|N+)~J^~O!_Mh4L_G+xU*V2MS#P~>b0rtTQEGE
zn}p2Or%;ccRqxJ;6K+Wo0R|j`-4W|Q&l0X4nIFP%5zU!z%8Iw?r_6(3{Ii)`fXi!?
z5A7x3`PET_U%R%ZBGOWiQP>%GXNs@!6f)ZZ?)tDvKRJ*&mVcF8z5I<clHrHQ!<m4)
z&)WqUV+FnPpk0Ks{ml_&(cx;EueIzUF%#mdKX0h7@zToMGq7;u!|AK?JG}Ag>uA#C
z`pS4ssuh2x3Fdx!-x0V@BY)EF-=PzO5fePA(Dy-mXlZJLW9}r&1wfhexS4&cr3clO
zIQ{QTNrn{_$Tl{ZR&%Rv!PE8uwRn+(vU(rvT<mIW0YQvb`KPrExIfq%#d{Fh220n)
z4+?ba6C{W~oXn$k{)Rj(H5Bqj;YePf!rHCJphy#H>IJv4AYlgyE5N{QBHW2eVD_Th
z_BvZ^vOx*q!ay11;-NCEMiM8R2=pK}CTtm8RP#_^_DY_0Vhbn1fPt73i86*HVs6H<
z71L;vTHi|i_LKLVoXsmea0)}Mx|PI7Vys$Rwjd0bC56fgL0pV26mQ<uvnzs36xWSQ
zV-dMZcq8sbjp}q!eegz7WotSspcLjFAE&8StAb=HSQ+dfz8W|4xC_(m1-f0QNeI;G
zC!bRL?j4KlQt%|wOB-avd@@>}gZuOCExk*T03nfQ`xnOgPIEa3qpd%hhD5LO88gLT
zaB@4tz{kjiE7EM<E~WGj&0pOu0~E?cF_z|fT491{@YSgmqY7uY5U2&f>N(Lg`-^Qw
z58H|at1$FHfC0bs7Fm1%p#pK8&(+>2VzYx~fUncKD5K3tBo(>dG}(w*zHsR<WukyX
z%S^ryHQ{Oq&qO&v&W)+4DVR<xi-VV>)iGt#7WS3q7}i6j_1M=+sOf-Z2JYn}bn%iz
z2frR`iL#yogxP}m<)F!vSm+h7;Ll(01>vBF#xwS60tP)X3ip+a`+_aoO15psdEp>X
z#vI(|zptC@8pM4BdWxH!$J-wkuUB_dOM4&xM2+L#AIDV>Sr_D4Q&pW-U5g0k!L2Pm
z&8MX=SFM<y%`FxypQ`k@K8sD8nI^%J#)yB3p)IH1kMEZFI8y`80OY=C?6K&)OP0;*
zaiM2-$e5)0kI<M@N?J=8Kzx4XIGdXGhj3}Og2ZGDTk9};mLBmcdWl>B%0>%KglxUO
zF?>00v-8npP=ft@9q1SNvW7yOH8`4hW=VJUOTmQ%+i~IhY|=E175j0az*=nQilrO8
zo`G7iv6&Pl`?-#Gz7!E8)!&~H3Y0rVcFw;Nqy{ksCg3NvLRNySKixBjf7btYOnXSt
zbEy8&m`gfqwZe}CKQ1QYEhs1Ac_>FbOE3$~_`M0Mmw(NwTi^y)+=w}UwZ7?!$tHcd
zg<G=8?2_2k8QvrO!L2YLtzC_w&7eRQJ^EtgMzw`_o{Vb!KoxW$#xc!c^d)7+DwP0^
z$U;*Lx?QOj+~k6=G!VV|Co{+YN7q*d#kF?n;_edM-Gf8$;O<UvcMlH1-GjTkySoH;
zmqvrT2e?hnnLFQ1-TQ}B%icv-=vt4imzdfTC*36t2%@7UK;50CNGG-nB4x`aE(!3&
zmuGmtnE0}>nW8J}`8<-cu{CWG6JjJOG9(5MVT%5gSNYzD?|@V#Bb*;<mCaU<my<i=
z%8#4Iz@{P?kp^L5ew#v%7)5xHlWSmoRytr|KA*&HzRuK!jToidCj9)`%885n4GM{Y
zjm>jxPUNcvHCh@!ViaSbpY6|J%GiTg{2W-rYzO5{aj6VU<fy(r(CB9K>=crDg-F8{
zl3)y6oy)sXG-ia__Mkq@;ELa2)?%I}c{9^~L2Cwiif(>=DJ$}@hR*2;*(i~p%{+H=
zQ5Bx)B}|rfa#0_W8ov|bTKr07*_MIjbkElhFa8xuvE8EP*0R;rgv{<mVSZ}sQs4a@
zpAbn|%#x(t$10JlWUiN0>A`JI%By7wiaCh3(tf(RkdO$eAv|)N1x4vhna-ZZ-E(3%
zWNOPp+-IrP5Fr)2gVRyep{xJ9#}okqlR4j2ge!jqxffqpZTtKZh71Y`!tX7XG0LtY
z!Ha|Y(E|d!PERP}(cRsNLo*P!*Xab3#UVf(9U~oVGlwFH6!8%qy@_%&#~=!p;})u}
zIAyxLNaPY#CrY)DD^yGhkm<E#8VtqGsxHrFx8*7h6pr5%;9HpSJ8<b{cV)in3S=;x
zm3lw!mijCoPaa^!8)-;J4$=%jsQ8#;$ZhNdinYwT+uEQeE89kF#a-{u6OK%~*|lb9
ziLEke{;G+;6b;f}Idd_=;|wqADiX2X<sa`{8g7evcU-FI4oe<~85<ki_i}WwxLySA
zVs1AwIF)3aY~c|WeLtKVokd@ou&KbwGEy%1$;w71WI@sN)W#^ldm4F0Q#mlaAw_ou
zXnUFoGAknvSO2M|6jm1Ai;gx<RjH#?6^#C~96+j$=PVvqF5767?Z}={t%Hcwx@ydG
zPpjVF{`XZn$3~cb8b@{`gdA7(J<BTBQ`M^Ao8*rRof-mE2ts7fWUJIDnAFR|btbq&
zMXNrMtAqa~M#?~96q}<H6&8$gSFP-n7*3=`(iYsrh%|M+Z+U+e1OT05ptEdjPA~bI
z(Tav2lPH_nfnFQxcLi-;xU>(hCR%a7>7rXc`o*~i`!C|vYOHPjGzPUEtupcUYJa;|
z7j3Vtj0v($M3dfDx!>VAypo1Ydh={8TVnd|C?H}Aq#%}JWZ{sXu__d~Tv+KK9^zUL
z;J2KoTum(R`8B9K;0_>Y5U=F4;fihT+L3b&vn}u<a+EORRy~*8>1objlVk^U#RJ7E
z%VHNbOj`>QKlHjr(Yz)ufDvVw*2pYa|6<?D?QDXqJb}*eN!<~SP@PtQjBg{a=-FtT
z-!PSYoHzJ`Z5-J}v{@FZ6jNa2kF&B}WlUyr=3FTYRmH);4aAF$&wR>xc~^nfrIfUm
z^0bos;+}07JNGY6X1`+Y8xYXDs0B_L<m26!v%Xqfj?xLNqOX^?N$-bHhUza#{<8KY
zb?$HBzSsqukbIuW`h%YxRCH)TBi4$c>EV#H+pm0)mG}BM<1kjU#f+pmhrSZyO8aK6
zoozpoj^W$Dz`O0Rew!>|jsVgC6i-s@RSYCrS|JdL*WIW6zcv9CwWL40Dp*e;Rw%Dv
z49QM~)uZW<=)4+Y^q@^6qqY#XPu8L#@s+>-%4s>%E58KT;{CC7{y1i>kbad{PlNu^
zV51%{A~HTOUs(|=FIKc_eHF(!Mr5<*qJkPv`U_@ab{)=p{>zN@?~MFknsUQ-)mM2j
zO$>CmGatg2;(Bh=@JXnC0eU2Mc{td>Y4QM&Y!YN(JpbNFnUT3wytML2uzo{;)|p5F
z^sKXt*X*cI*!xKb2fT%k0!VgYHyux(qu9aa59xrT^E>OfsQK$Ulns1*JY?2ucEk@S
zyoN<C36evPNAArNa?tPAp4szwDbsW+Q9o!zmC(VKI7d{S@brTwzky@LSPMnZG?b1q
zr<tm8Lshd;sdT<x@Y*<sYJkilcy-mPD#1$y&dXSk99X0ZkAuybqST4nh$Wb+MK{rC
zazkw>);Y=mzhbMAlxr3EHp;+9O~PstWdue0=INauKjM?f0)?TQfC5lBMjO`{jXQVb
zUzNh0+xcIW!a^*;TQ|B%Q!KRrlJqOc^fH8*0KeWV^ITS4yvPA?bZ@747)IY~pgD0t
z*ODK=D4Pm?s9oE&EQYWWpP9v_Q_1tB$4QW)xT--3Vz*jC%|ufT2)5!=jOyUMB`dH;
zr2>N(rqUc;8*)+RewyZua~-SF)0<Kj*_s3`akDH~8!UT8(u11}DOMTT;-iYPM)j4W
z?y4>~7uwpPQW@1Um<-LxU4P!xPQ*zjXqK}@8jLNVS2utfPq(H?d-g|b{xOxD)(`M#
za#ob0Y?kvtDn#i;NQqdWPVX314Ryq6$|$gPLQQ{cs&i@>j?difJn>RX?EkXD{aNj>
z-LfeB%n^|&)rx{gJWd_Scb6`V{AQFc2nSq1Ll^cqy^95W!?)WC+Aeyn5_wYM2Pn@C
z{JEE}r#8{K9!Rm?h3-6vZ$r<wC;J9h<_?0I4Oe0|?Ax<#rt0^_mtuo0!(S2%#t*1b
zXwWWSc%iu)(58Lcc&bI1_6fT;7vKN*yuGib4;K$NL!N!`C*1<Pg{gkc?bT>v?aUX>
z*h)K(^pjy$(h8^a7;8)Kl>}GL!@8;;4u8DoeBM3YFP#esaVnv@_&jWa$m)L$>R()V
zg46w(dCM~S@$d!P^@~d|{u4H*8J`Hf9D&CMf4a9?@8hzACGkaqgd(rQuM?hLgUWh!
zPX?N^5e5I9;{kIEU!Fhin}tjqv2h2>%kV3s7UEq5pPndH<WD**dVD><k=PUxB$;B^
zOKNX_)e?X@Mo0%^dyA9=d31i?w|c#tUtqOlA|ztXF0k9<+2|D=N(VDr{Ia)2(ybS$
zDou-&awV3lqR|-lNda>97Z2SBnL538UXZ=FvwhXE4+?z-Pb@(x=b8>k;X-DgG}qGW
z*1~-*LeU2JT!|XlP&h{ynlte)J1!pdc?ULZ>;gk5ZDg?RnrdImsg=UPQx(J3WU*jX
z>SZ|6V5UHt9X_wS%^`$`$T#2Znp|Rd(jgnA+Jtm=8nyP1{I2S!A632BZZ-!}D$pO|
zrfGIX1Lu<RR|?a5(9bWs-<hZ_y=yt5cbn$wi_@<Cx;o*0gS#-2fmb6eSHhSFS59Oz
z#hO?RcU>%9z%+N(FI%kQ{jOTQ-*tzImu;)_hDKB87e0!_N#9mjg<&d1*ms!BbtbbC
z18wV_;U(uyyQ>H;4cjueo#Ch!NJ~OoZmNyG0D#&ao%lV^{g_uDyd_8<;Q;m4$jhJu
zZaOoEAgK0gcJqP1>4n^V0t3MD<e5|WA4!up+V2?>S(9pu-fEZFTkMAVw96E<RFXbp
zeBJ``rbE9&ZDrQTRu#wI8-T;^sq89M7IGtMKK6iIq@5&wwzc)leo;rJMbFcq6L785
z$sNA#;CJ_Z={pm(#+hnbi-jHpUn3+tZkxrSv>)Er8$W-9*#*<^>u^-Aju@K2r?Z!z
zjHIdC6fkob4$JY1BMf;U+~EUmXvbmiFNe9*L(1X4P8Q=#d_%40Q`+p=5U)2@!^1J^
zGPG=rqpWpzDt8d-Krf4Gh@^~Fv?;JKj!v{pq{vdT+1u?kFd}XF!K8j#n_)?Yh!=s3
zE(Lv?4@!AhU1&cc8QI-rtXkj9t7yk?hZ;|wu4c2hwheeQGW8lQ=h%EyG3#VV6fj=2
zqp4jTDSi=cWl{(#t^^AIDuE)a(RPo|^tIu{a{(dUF)J}rwvDAt#cgCy1LgAkzy=U!
z-|md~#JjASx{(C+*(jdm02pZp%sidHSHZ7KQ3I|lU7Lb1WuaXo^5D1YK4;`)3LCo-
z0GjO`P=u3DW-jls^w^Czm~gVeP6De&7IoxZ385HV)jk^8btVkoCC0ni%|imB!`gV`
z2`x4|R<f>+h4U5Lq{cWobLlj8b%7){E4xCn$>9N<+l}VM6{Utqw&h4DJ8y?Q&6THU
zSw`9uax%u$#R^enJ!R7GSIdC|YtoGzv#2L~RFhwpaD}9#bIiu5)7usXPxpwk8s#gO
zHb=h+-Dm0PxH?KtJq=b9sG)V0I0JrvrcAA(-T%tZvf>54;VM7coD^uwZtl=(>xVi{
zuH?^+G~t~K^^J81#uN;7sjY_nCyWCOk(xpnO31bW-%ps{8QM7HrTDN|%V8E&>l=)i
z8;qocu<av#vUcD<CK5NIl!kWhdAB0?QYl-0G7$aWD%%soU<#fXRY{kJnbMM_AYR<R
z!pBWbsYDvm%s!IJ4u?!`@`;jPuR4vz?n#c6WsL+kXve`c)$Wnt%?68*rZBO*(+EY{
zIz1c7#O1AJyfYI*Bz1^D%#orxAmtN5c4W}=MQze2Z_UgmuV(JgI1Xx*ZaChdu{mLM
zvE&!Dk@{XsC%Zn5rEut)Lanx&cU%R$>HS&a<a{OUD7u@Xo1?LN?uIZeOQ~4vl)GEP
zrj1J}z_n(L5rgcb2b0HTs$-4e#WlpgALYk2gv?(K>06)VV~NAZO)(G2O@-u07tOCz
z+^~5$9;!E28IBhPY8NT?J&~O7CUN5VUrw1~#8i{V40`r!_Ga8N1w0bI_gg4)XFNV}
z`<C((mPJcCz0Dr9SQkX~;HX7Xz#7#~5u0b#Ee&HSeD)xN%-39ephjK7kmw=8MjV-F
zu6a?+{e{W6sm3VuKsG|ApDnPhu@npEy)*a6<6)jZ<Jia(K&PKaBI42oR{EHWnYRWl
zuUuR9;c8!5oC58F-;p}~b8ZZ{rYkbWUl!e6LlM*C#GKQ<l{$TmjVJ0(=PuU~Js79u
z{OS0zGmJM*W2RiIxyG&5cs5*>>Ts9gXdCYXGt#h-;W$oJyzXo`FyIsnBn$lDtYO-w
zb7VZ@H0nQWWtl&hiOaQGc2iq=`kR2ji7AF9kgVv1ER;!<B}u>^{V1>%q+QQioiFG+
zD@|3U<&D8;<|9b>2@5<I3!lXxvY8s)R-R+@=W7!7c@JDHY%^7Y3diY8=V;(s0xb(5
z%=J{6ay`qqi3M;E5woje+}Be?l_wRJam&w~To(_#OZ){Hge(IKVCf0HUuZ;Z4At1(
zo>n*x_QFQ^T2aF0<LYgNS6!1ne=<2{;!q!;;|us|-WxZh)A&u6YCV!0eY5@h#TP)+
z-B_7obW)d^-6xq#dz^YWx8h$Z5oMfNQj=ZSCGpbd#W|2*RT;Q;S|lf(aX(@668BOG
z$xI1qOKb35ChL+qI)|7PeAgB!6yCMBo*1Z4jNe0<JLa)4|MJPB4?bBkurZ^(1>(NJ
zDkwt;G-S4-Ml!^oDQT<%hFjY!$k$gfgfpOvq9ry~$wk9e8Z_4Sjc;Hx9-a%tTafEm
z-FQ34r25VfoPtUcTTSEXj?7LICO+j)4NtO+K(9496GWh6TM)V}(|$7ZSyQ8rP7IWf
z0B>@K+%ih0O2152-NWsD=xL+=P8-5^l*bhZ#0IUl_q}fxjdDA)$x*=SnbHvDjOk-E
z;+AkR`7DC&&sxbwoGu_UY`L0{P`FxYf~DbKa~%$!I%o@*XZ&(%xw?rMQA`)kPoo^_
zl#%+oK2`BH>@e;#$4xl@lgx_28l}OC8EeF;GMTn|Vb!y>lB#z!8vFOMXY24|r!oQ_
zRc{WQa{lzZ=M3v%Th;6dAJuGGMek1wW|2o23&qSZ`eSru^6EUU<<HixIUg6zE!^Jx
z1T*U5SvYh6FPow<5mWT;LNHSF4#sBysM%r2Tz&kvS&Q9iVl5oX3&D#hdduDCQdO&&
z2hwGlg$Jj&7+aN10pH*Ckh$ew7k$h+bg87L0{m^9>(0L2x$8*Yg`pPGD@U;(hMIpW
zY8YEzzo&cQts;9NS0NTs$$HU3&5e?6B7Ncg-uI<WzK>RfHqJsM04;Ik%Yt>@R6%vI
zt6}NYjw4^=?fMrQ$)hKv;Zj;d$9(hS2&r{`!p!7`(9u_i%khD|VVuFe@mou%h*6==
zId#jNmy7Rb+Y=6+_oWFIG8ZeLFE{Wg-v6M_?GN;63<gA>olo;ANyqKT{rBrXpbVzl
z1G+ojv@fzFH~9$D+RCPgNF*!e0&C96kkkz4<-Z>;l)O~$3Tq2Ac5f}duW#~poyfj<
z`o8aL-ustjht&5pk_ox;JlGMpZ{5mqhFU{ez%HCO>8P>QM0VS)Ug%vAWmU}+<S+Cz
zi+5K}^XCFXo^MT@H9bUU7dV)1<pDoR5<(<ihFg&1NDP=u{Gf)27b<d@hoY5V1JaUU
z;MpBqPG8+<Zz^suzO!3Yx=>r8OwovGy{rMIZV0_w-IvpioMH~Bsv3RUd0?A6VSAj*
z2uD@aWedw1`ezy8#tX~tcJqhq;O<b}1X!2@<sbCA7Ln!2S~k*H1YW+k^;1W24hEQ>
zm%4-f@xe*W-toh+`y>@;gl7TDQFy-my4K(y^IdkBU0&nd_}x?>SOQSc#jHb~@2;Rk
z7B!T77Z<z<YfUFxc?@2zi{8U%PM7OMFY5UNE;-ULHAUJN>8XyxYfwh)JGlX;k8_kp
zdt8IjZ%~rhfiozhNH(LMnujp$=xVbZfgo#g1kO#ifP284&8vA>iQxvkHg>k<R2%dQ
z5PC9>sy_UMo=%`Y&R7{Z^4xF>M#0{`^lTAzd;U;3iD-1dZ_MmE*``7My;knWuW-o1
z(u3V&D=NrpZS&>@N~g_p@7;Y4Si7IZMV5uF_=`K0vJdbjcp*W){qcZ{k#wfM<3g#s
zS6D38w3)S|=H!gOqhZhY+DezNNOK|2#4c6Tr<1m>9{zoFoNuw>Ws`pV_;z*?zi9iL
z8DcsacK2zne3GNr%cdXw%$0>HWlM=N>~X1-J6xD-)rd!Gb`v(K+91^Ia}pCuRZW0w
zCQKGn+<YI&Htq))y<x`~Tjxrv20ZQ)&UnG4T!^8LJM~;QBGab=FH0Vza_YU#<uJqu
zSPr{lpfOB%eL@eAHAQb@<Ebt@IB}O~axB$dv}+wITqRii5=v2>!?`5M|LS79phEfs
zct}h}lx~F$YLR-oMufL<PF)NHy`jrJxqBW#u<57e^G00U5Ra3kV-rI~yF0BYSm<%L
zdWBC|R{Lc6Q+tM$QricPwb8XW+It7LOp9|xj$BtaPH#%yyeij$@`p?|NMl-3+X!?+
z@qx9=W(tv&<npo2zIA%b7v?^^J859ijAFHLKW_2h=XNp6?EMz3e-hYb3v7aR9+D2f
z|9^+?y-KsG??noc9nn_X^low6bUNWh?T31AFuZn{%DDFk#v0ToBQ*}oD!U6e6w?gN
z!q8Kag=+i^87ecs1Um>3lwt~*k|liUUH$&#;p_Bp%cXlXNDM~8wA*ZqO9ScsK5zm+
zToGoyWW#Df7+;_GEUdkHW~qs-y5gv_23&E3eYeH=-52y{|F0xw8!GBD|59IJMHLzL
zvJ}6Ygj(l4o=(~nDQwX;wCEb5*MsoZo_V5Pg8vZrZ$HF+AtRZ8#eL4~sf+&>_uVER
zZU8PqkN-r%bice+*>&^DBjW*x3na0Z3tr}qYP}sBU>*GF<RAuhXeY=sOXC)t$xhm*
zn$Mi)KJV1UYblTxm`cGj%g^muv{_6{NY`v0Eh>f&!IDqI;z&S-F7p<!ZZj89svoZ%
z;=RsIB-=G_<&aSCX_#LtETv^jGjNjz1ima9g(5_k!~n@=@W}QuuRmOYykRUy%u|Yh
zMQq+V0PyC?VzGC&1@-W0c-&1rXKoBEOvYU{t^f=LpQ8OSX?D1KE&I;5;r&9}bMu$)
zlf3$$D;;Mm1j16d04fkY$hB}qMo};JS=T*E8eZ0bPeMghNh>k-BW+nDSrCXZsar|L
zPJKd6<S=toKfzPAJy`jX_@Q!8d;1a+GD1Q1`(hPh69KSkf{{d^1^Ykdp$vwd2L%?I
zn~7qkTtNBY23lPp+c-N$zZ?-VIdJO+Pe1hhMI2th(WPRA`snkr+C}aP+|?@=g;>;f
zdP#u(cnVH07u3tS5R!$!9~@U9l9igUJ2}@EEG@H?MjFI4GNg}Fe)=<TO=Da~W@A!{
z5m4I-HSu%7x1u%h-K~tsI($3sP4d_Fc31-=UD#)?=urP6QD$Hg%^sIoH^^K2_!E``
z|EDH>*XS>1++^LI2fO`;cAbO0E@q!r4Q8j9qIv0fwrWR32a!u~K4=AXFu4i+l;|MY
zL%br}9Xo|1*2AE4+i+I|I9st85rv7feds}5JWRfFs6LcR9<E6O=NJFPB=_)fLsv(X
zqt)U?tBXCxn5CPDF*)0#R+soM2L7l}K?k)Maz3gwSl4l*pVF6(Z0O$iZ6k%OjxtFN
zg37*9>S5Nj^nf($PXJd3^RVxDFF@%jv-(2{X|%U6Y0pK%gxniIPQZLOCybwtyyVbg
zy#{FIp>B?o;`XLvMA<8dVW`WhqeNW_qedY-8{xotqed-jXHl!ih0Gpu65|5wn@<=;
z$pT3!U1@Lu{BpA$B4q1R3|boASxp}a!+9(V9{$t&bDF%kr7Z1W)~T;acOp#%8<t`%
zQLM--aU2CWfSPf%dxy)EcQ}hC)lrzD(9fN+@S#_v%Ss9|7rxTcVsb8Vkz66DSqA-^
z1>S^=K)~{8{M>oei^aiNKB;)DP^jeL_T=p77cs`qP-cV}2(kGz&74WKu+NjE_L{zt
z=%BeCvX*90xw<n{x!Ap`2-9<R#+Jk?-8S`p3jQ|GfycgHO2CH(kb$`O;-I-jtF=@p
zWdd}L;JMFRYJw%BuI5o9kfW$SbNa~~7cUTi@Am-B{rU$&UmF-~+M)a{p9A(4Cjf+_
zb03WJsrn@BRPyC(?sEc}I!4)h)L4$fH;#QNNxx?nA@JXZ*s3CS3Ah-$;u09a$DA|g
z_9x#j_zg;QiP(MO!hT)NE*($!uVgaeZN&;}W-*!h=K=$Ui0;k0oyM+sq7A_Fsj6<B
z*}Je4FOw};Ppsa_Dx)}krr*c5kx>#=+F9cRuo@8@XPIL%oTLA^gdO6qX|Q@h1=sN1
zjvzVBGAn51_VnL6eY`wQ8HmKq(H}FW`@;9f?R09=u%<yMcOHqdRop{6oVhPj=1XW*
zInx2ILodE<maGEL=I|rPfg*ho6Mu^ade%JBFIq~-MS-{EkyNdtZF#{K0t88!5+yBF
zmD)Hri#G<I$==f*FP`z}w=@%JOZIaO4LRNMq2E28hOW0S!dRxmB0Tp4r@w*uYMlD~
zcbmG;JVmP{u?OpMxy#lbq$pqa3b0;CU2g?4v8Fuz4hbx2#cE~#oWDNxhi`dv0Re7+
zIA!EYl*B(Ym`O|A*Y*(tZ5^#L|2^u`T9x@G8*Sh>N3j4Unn51$l;|*Q!ASUCI@AT)
zRYMQj0;HwSN}LDW8^FJ&5BU3+wba5*Q+7H#-zRY>|A5-`?AXi4yVu_6+pat+`sw9t
zM@0}+7M`sCen1ZnjyA1TjenZmmXvUaCC*4Q`TcS70>b}wiO_HXNHee!vHPXH6?-8v
zf$e~Q$cxCvj1?2&>B+z3MS!gDB;*;nuE{0d_zDgcH${@x#R?r)@>7cHXD6$OiTK8q
z#Ja}fdshvh|K;K@$e^i_l{}AFSx|$MZr$}|<9w99*!qm5wX=e}Z)e0^%Ml^*20JKX
zFm<a5GvX%hvWuU>LIqW-(-UFdM4}ERHxbrmoHP-Pv9r?Iso`s&5`u7{lA~JX{4(ym
z-UhAtT+uDZq>G&*tR$UHWSKM_!i_;E*AcRBmKpna;i8oCpNCD8)(8nLSf25~a0wW3
ze|_=G^EYx`W-e-F3CC;*7Y|0zFabz`V}%*1-?@Dqq`qzM*LPmFL|0OUVup76EVV+R
zRQXt!FQVAwk)V_vicmbF286|@jo2!c4UkYcJoRZ}mseFsp(=R0*G+X0PRJxW3gj*l
zksN-RAK8WEX3RB&eSRC-5Oe{7L#BmcVG8+2XP_Lg4gGE4Kd?wF6Cq%1mi@0BzyVbv
zqN6ORM4Yb?BsjfYCq{<)i5$5VW`qW)1#p=6o~390n0`2F^65x~ZT`;yhHKQG^1$Xp
z*CuoFN34XHaz*LM>k~r0HKTc$ch;akg~c=ooWu@@qz^DvVp+oUX~@CZ2+h(eTG?l+
zSsj!wd%ZOr#QQ;v3Ut-L>edYY&G2aDp>q`!VxjozlB}o9M!;1TaV<7xit!|*wW~~I
z=VU@U#?NjUG_R1r!UmYn3LiN1L%I1K_bR$mju-1n0woqCzEfVwQta(l;sOqzgaMbw
za)dz0#s%Q%uuz9ogr$<8m8*m6SLdW{{OsjIW`@{5ytl2$%C1D7WKg@s!7q)^UpvU<
z<zfUsZrIHp%+sLDc&qF1cpRL><rVOz5!|P+bGf3OMd_Ps`}GO_Xc$nA$0bi<I+V=i
z^-(UECGv)W(HsPn$53cU!PIH(Ty{<pX*VR&B$6SXPd)>0M8*pzi4oK=07y6YEW?YR
zc!yevZ9)&J=4VU*c=tOz!W_k8oBO#j3jt$VB=|O{j781eLA#d=;_Z0lTb-UU{pv&j
zgQ+vw)x#N}P6(_TAOm$m5Q$&Vl~>^ok4Vnr^<1Y{1WpfPV#`cW9i0|I9S>qULlXL6
z#*BC-%2XGF6=eE?U|J_GANO2xy#BL;7BV&KWG}H>7k>#!@t3Je;djl99t0$I@N*9W
zc%Dc3Lw*Kor{_s1!XhZ!B+72C(uNh#0>bI*&$j8%&a!T?A4!5;FZ<1de~JV`&K-J3
zwOnUK13l$gDUF)i(F6G3&hoZD9+6H&LWk4HlmInc6{Xtv?nP@skT^0Md!$vxAyGkL
z)yNbwe>}IIDrqmro0ESAR?|YjlNSbX@+ooLi56P#8aYi+WuKoY=Xu(ywS4h)o|0?)
zqU}8O9EcTjzA|6NUjvtdMh`p%q`0s}p->0*g4<o=IEIXxQ$3P#f?%_LD?=I{mgm`8
zG<EU)zF+mH1um>E_YNNg+J>^Kg!z81^qQLU)LY6Dj`+i=FV&wMLeYtJb7y%P5cEyz
zdcg0j*D!!n*`_1#J)Bs$>M&7OA)xT$2Qg8@>@Jxy!X%$<Xzz&?eQpCZq-kdOnyu;Y
zarVY&Mu^)E>w5E9!_R5h`Y<uFCVo&^X9_e%VQt?}=rXhwd!zGWhF{8qMhJHz-H@mU
z*DQq_Bu+pw)=t%H%nIY~<@v|cV{O(qw<OGE0QkJ~JmaH89!~Y3ZGKcW<7_xRs#3I3
zVPoS>0*)jz+-`?};>rzUUvnBSSYmBzGtMZ)<EfqI*(xaiOH?hYj4N0^8ulC;hL{OK
zz6vXJzB7tRLKRG*(rBC-cJxaT-fq3XPzal$*L}Lm6z*;UOBF?KhKh>ex6xGGQuK(c
z6}xmYTRQq7s=~FftCe>*Z8X}K1?KhgJI8Y9fyYzMasD>Ic_YKn<LLvmjscOdF*P&)
z8H0S{prCd5BXjobC*YmCqmr<*mCt@p1}K4n)IbPJiB5XdRTF2w$`1$ip@Y=;+kE63
zdvGmy7AU!Stwf(r@9<rDf|>LPYlr}`E_`u(7J3H!FA4nzK>^m1r6EtJzDD(tps{e0
zRUp?p5Qu)4^>=7n)P-Rwf`LS!L~{tYD|S1%5YNs?WW4d!osuuSx_y<K)G0epET)*3
za1SSC4)=oDok@hUsO6o*-^X|Ga12z<y_CIw<Na19rf|qoL^fPR{Y(p5d50UP@{C9*
zOb5lp7^gzd*DSZU{daQF{NNX-N=MeYezxYHHtPo8PWfd*0az?zD`T5t#nw8kng%=8
z=72x6vE}EQI7uMH5*V5OW1nU~!3^3rc|d9oduxF)u|Da=oOwP<I&D^sPRqsXqzO!B
zD3WVnx~@uX?qHPBBB?k5zr38Sp(hrQc{(ri9{VR2`{6GSfBqGL00FSWhpM89-s{w9
z&v|IgG3xxSq<YzCM^5#)i>;*INRSnAar~Z4MwIz{T(eXq-=B97o!?)p2s*fpr+i|x
zJo1{{=##;BOO-sJ@-FP`PWoTr|J<HzL}+Zse8LWV5jo35u!FIlB7i}K>g0JGJL$fA
zgPm??sJBfJ*vM4RKkq*8Zu<VO0L1^g^%A0&c7x>f@ML50a`F0_d~SxVDu8SjU}ffi
z>T$j$=-PWkV24tPDV)|9*v_2HjwrKtk$(TO^b%4`cQ<U#e(BBPEPpyhzm&DS^$u0^
znE%Rm0(Rm4nGMq|?bJ6iT^BWvfhb)HOMt#MV#}AHE4cwd#3?jxJ$iuAmL@^u&&fRg
zU@q!e?U|NQA<JGx>sbs$WHd@eE9UQx3?46@umQ#-zaGyu#Bb|FPI%lsu8PZszjxlg
zhoiN*<q=E^Cb)|*o=?GdC5#Nd+L;C=<Mv2z7<^ugdlHT~wop}HiUh1a_e&ihEFH9z
zV|Q;#^)&f>kJ`fUQ)R-bLG0jc=|>9DDO+j58-CnZ32bmI4c0BAp?<!=WL&sEkm%ad
zW+xs_>V&OvNwO!0aYZ>mYgJ_pBF92vF#NP+Y4x=Vp?U!$`uD|^)&#bGAD+o|i@Gw=
zEnk8sJA=oRV>M80z(b3F>-1PvId#~74b`trQepwKS<yIU9ZBA3e2o;mt6P&6!}(#3
zwVr-To#W^IR`E%`Cku5XxSMl52?|hG{T*Mbhrfv;zQ-8rIlj#M@4&9GeBlk4g?yIx
zARYKxqzi6PrpijyxA&_M?0y3;GZCgorQ9eQ1icffN2C{I?z%xXuU#Tqnfb8^mL;x1
zkkW8X!xfALRfBC*|F~#Ms-3h)1mn9#nqm)THSf2;uw_FL)6mZ@l7?`7Y@0|ypsbtJ
ziBdp{1z++2&FoU@3pcQL1~Q;QT4_Q^*dtM{h~qD#HfXapA{s^E7GG%2JiUBlO0;Ld
z^eRd22$d$*wZar>+yIEZ!J#D1mI!wZ;CZ610y$)^*Y{6CCtN7DvF;^Nhe$sKfZ4<9
zyedzF)ynOS=>RCZMf>S9U^m%V=B`6MG(n10$z>s?V7V}bl<7Aycw-;A$~hREe%Cab
z9!eTfTMaJZ{hEl{LnE%)lDL03&{S9Fl(PJ^JYs(DY0X>i?jQTcB#58V+V2!1_^cr4
ztH$-tjkfjhoL&9E`CUF{_oprbX-fF#jQ+U<?AurL>JUz2<cXfS+|FM;;~NO9eT5rU
zNfed(cy9(<h+vX*?_I4g@DiH6j@^lv2oWO~QkuQMUWR@Qwr+gYsLl~uwmkr5k5^;-
zz_98M%-Q4rZP*PJJzNO9A>kUm-N^ekzB_k6dHFopymb1Q3(QZv_B*X+BUi)sg`~F^
zy~Zq5-+cFeIdk_|j+P^lHSD3>$d-#aOURcEU2*#P#2F#SS>E;HwI;_2MaD>13Q6(R
zvZx`Y+`{;;h>{2tQDztk&z23LGyQ+al&75a;T&NrCD0w7)o0%x9gH=v*$Mv68+7%A
z38DX!6TatWNQfhC=w^u2r9X0k1qf?xipT*wavG=@6&=dB4On+ZMt;~rA1B^=Zwg`=
zd69cksT&@HlN@YL<>hx=6mIR^nEQVSC=jD?a#&5A7TFMzH6J#taV5}(MJ{jgoZS|m
zjD&zrCCo_2uO~W+HQ|e6fc;fAZYO?iK=8sst;`+Mdo-kYqeo1t6HS^gLwiGn9vnEE
z^<xOV)(?j1s|gvZ{Dm)SMt{{~@$>!t?o}&eia>5%&~JQKyBw$fbg<NOKplh}@{UMA
z<ws!U2slG(24%BLm^>)lJO}Oc){@!ea)^10gE6(7r=JDk7(B|5`7CA-$TT5~Y$jqc
zH?qw+R1Dh|F*Ij{I1ZwTSac;@q6WtY=g%q%P@1M14~*gMcZ^K!X#SB?0H4I3sYn8>
z<Z2%8?xjc(qRH|~#^<)#3_IXnn&uf8|9GuuSPR_{xJ){V`TQF^j0o7B1U|cW8i6IA
z^)vHgc`t7VdJcgOR!;>(IG!cxFmES!`JVva`A%1;+{5yB2fxIv-}wcRlT2>oHUG*f
zi4S=H$|-_VNs1gU<q<2RLgZH2TGgEiYoW_nOpH9Og@@Z=E=(VHZc8D-PLNUm=}1D9
zYR$jmp+|J0_BQsd{*AJ$yaYrj0v^F0elb+#Pe&;AuxLm1>~^^r=TCe|q3wwcf3X5?
z?nLA<E0MGW;j8U(R0G4u@p&nH2An5*iU|p)GSeC0IXISLX`e8#)>P;Iq{S6wMt^VP
zoRFAf?9X9JLj^`h_h>n6s6F|;Kb}LE^{h`rWk7*$2|+ie5}SOQ)>utfk7TofEhYGR
z46YTfNGmF)SFmr*nsxu|5m)prm?@_AJuPd*wn4pBV(uAYW3x!7zycuDlwTx3QbO8Q
z59~|yWRQ-+tQ5cwxS@39nN{avS!ik9l1>`j?gk|17gjH%L*DRwdq(T5=lxa{B1nLz
zVYsgkam>2_>2&oAx|afgb8;Y_Q==l$7Fv!6o)i5oEvEsb#3<RB(jDY@nJcfo5(apY
zcnT*rNa4aK&=Mo?Pq>Wmz^9ZzN`!n{$f#mC3qcfwAmbl=@Y89vL5|&YC}p-xL8;5)
zpd8-OoZSW{o{h{)x+a7bhRHHQ^zCN(U;j~C4k@_^y{X|h5(?9aM{biyL@t3}ik}P?
z#nkgx*izxkNN_H^jOY#W_5&^J)G$Fbq%wAM9{~k%Ce$Td;`u8siZxo|d1<02*oI$#
zzhcW%CZo5ix@H!mIz;ZCix71bY8+gaM=&*4g%czu@W2q}V+9{u#K8EY9}149D3+AQ
zK;hxbsHOrH2}jtMQ58ihO@(3uUyOMRpf4wyX*^VtKwUED%rmKsZ3G)Ck(?7jX1f~k
z+9#LSBWI8WT2h+=S$~5N>dyldjG8)w0$bRO4djj0R~atJT|s!mO#G<EC%=22IohTM
zp)rGuQz%8+-DrFQNTM8($>$NvpBvDRD5v~^wFKrV{!AuAx?g*4%mX+5{ndyTz7M~5
z`eH-Y@^5TyG!Eam8?`t_Q(h838Y=YZ4aqFo{+C=7aRIhu{s4*FQF1rcY3ZnmYfO>)
zNZ~x=$fObgA0%SPa&Fn}UbDDTey8nbh`F@tn$YNZ0DkFTwfxZ?VZ}@IE63b@jL|#0
zoC{oXgc0C_z{Wf^#fJmBViJ#b)pU*Is|Mz#pnO>4XEC@#VHxbVZC2;!+2`FE7j5$2
z`10@Lk<J%?n^biSpa+8d@kw1{1bnzqI~MD%WDLY?e2!+2L>Fn37xm1yxigoS^7oWy
zH?9(K^Q6Q-X?s4BIWM-$=GoYa8wo=j_NyvLR6ahFdSx*oQdyU!FS8z+0{>}H5J7^`
zVgqX>GxX`@+N4$AGE}621_jIk{O%f@s+;&q+u4m-qwz-fCSN0R@$<6oBV39(jACZB
zAgzyi(C>JcY&Xe8f;#?0osEQVzf<c*tY$usna0<T@K0S!ES$kw2<l}bD_sNgP;SEB
zwV$Jf@e`8qUDB?-J_1oM8AF(nL_9ugCuDz(DeGQ+dV-g(Z|yzAUMcrrZRJg`%j~Sy
zWc>WC6+{QmWmbMN3ZWKien&X*o(qV4(dr(|p?ujL_OjzyW=?Q^$E(PXz+OT>UR{Xk
zBf>bjZK`aHPAd-OyiIetiGhlV(cFJn8Nw=b+Tp{QIVHz#-!N2xXO2J&;xaQ6yzRE7
z8PF=KG7sMw8>Ion2$bd!ILoqBS;v`q-m_=F!j_g80>uNWa$?)WG-090qfeLvQSlbE
zp?D@l8}?hPO~8j*l;0&4QPzMmaD>oGT~Z`>VpAcpEd~SJPN^$Q0XJ4UMwy75N1ghs
zeg3us`A4cM0Qy70!vHKu%w2_X&G1=#c3V_O=5$PT`$TT6DsL>jTJF{omkY|!L`G=4
z#}c;oPm(1eoP;rvD)q}p!;3^BHX2%KZGnYK3QvanbhA@B1Wz+L-=yb1R0BWVh>nM~
zrTg3_MkuvwU8{%obb>CU>&+36e$pK|&dQpH&8h-8hoKwei$QuaeO@rF|A@Fl`yS31
zA{1kHa5+kTMBII*CR7o$6t+W$fb<7mDiToGRif`dnF;UgoN9uur$So&n_qDBgcao9
zM8fZ^e-a7#G(fJeon983h*BI|Xnnkxbn}VO!iFE_gDimyj7<JP0g@$vYjCO<27FQ>
zFxTEI3C;9OVa0P3<kVJdX9nzqm`QtD61@Q}2#&UTcM;s~52cSwNJ`jiA*m0jG$@yV
z1zk3{$m~#JIq)=!G0H!=(pq}~M`ZF^Y2l&1wXG)wpd7B0wtyW<ERPMYxT`GD+snF+
z;9zywx7A70OR?&?+xA%%6gbGN;FH6-z$5P}uf1Xolw$7+NR>#%e)db&u$P9~OAxBX
zhQox+_A1ko(otZT#LwPvr#P`IlMz@vEhdJ;i2Ly8s03Oo(Hce}@X4ub$kCFXk``VD
zoDCI{8shAD#f5)(1(J$^bqAcpn5bg~>gyFMBIqLakb<;m#*|`{&(jzYYfItw0^Q~$
zx9+PS1`@ws#+f~lmgfUT?TFPBgK*L?m+?1wWBJuet-u#!`}Gp7K&C`1RB3WHsGLn$
zT#y4?NvNw3DswPY9|+qqKITqv#!4(e+iy|)ehv6;^QwKfBdd?}*;F#1T#&(9NNa<7
z<Ju!`*W{W_JLE!>X|^Qzc+TDLCx+@md=Y$}`}JJHO1j!DX;2(1-&lu<S(R4x_=thB
z(tI=4MMj(v(Xk7JIdgFGbDq*IX@0^)k+4(hnb;laJ<{cvA6o_a*GyGlu>tnzZ?Rz#
z1=Tv<j8%)n$?8TnX`U~AE@D|=gUMnR2utpt-M>0O%FderWu<AjDQD}t6&CuZ<&~jZ
z(t9}#Dn!NPDroqmL!tOA<WbckrID1i(&mIQ)svrg#a@w8oNf-SnOebZT9QGOljY%z
zFD)xfVNA3RFK(W+9&v+V#H>f6z_Bn<XZy`t(!=EMZi3-dR;Q&a!}S2Y#eJC<fqWth
zo4+Bij!~%bGi(T^MsLy-G9#r6LjkLys#<n)`=kn#%A%y9E^ze4FP@D)(%<OW{eI*L
zKxW10_H_4WABK55;93INsq;uS7h4`*)8Qh%dFPg~7{b9DyjqF-?>YSL&N4Pc^?{FR
z04<8oD0{PXKQJ?kJr8a6yurWW`=lkn8`aX5pgjD!rJo@<?LbBU`P~Pn)DKL?4G3oo
z8YI9k9imhJ%EP}?wdY`JzV5)0I53C7eBW=X2ii;hm=<hZtxa>&Fc2%@*&$SmYF`gE
z!tcTMpYaB-S+R~!TCVor@iyZ8H>O<`+qw0IDE4~<-NM!;+!43YF8G^xZ5DUneA_CC
znEFvPIw8qQl_n-PS>>1cTTUQWe<e|!)*EA+)Pu^NqBC%esNs_5gC*&7nf}2PMu8-i
z0WEMq7DCU_=&MlZW4*t|T{v>+n2ne@sif+w-NEUFFYZFS{x6nviG$r4g4F8BDkCvx
zs}`|i!rpAcUgJ3repTnYwf+jZi?on&{)w@idprggAzAXUw%#`~-%)fV5+*9t)d92`
zZDNLqC8Cz^b2HNp%d_L@9bAa|O)Z4k3qpu`y$Q=hlD*q~QgPV*0zI3V-810QvPt1F
zw=%e&41<~E_uJ?5w4fovRWGiNv|eGfmGlPr5<F`<U|E4ARAQ}mkRi<xstDAjnh2@d
z)FbXSG>HBr%v#bjDp>vd-r0CQV1c00J?yDE))Wlnm7MDxwiLz0BfX;^$S{WM<#@1l
zC){9z5AnqWFnzgop0zrG-TXO|aa#R+Liu^DPPC71K6X}PA+)8_wcfp(L2C+GhuriJ
z9Zg0wvLE365QUSDVVdF`pX_o>jWh<g2YF&R_0PE5<QCWdk)viV#i-KlC_~Rz%-MK7
zp?gq&0$r9$S;c~qan@3vD)M;C3jp6~{RDKOyZ5Y785B+$krZnMIca1x|Akc`D20?5
zV4k5eaOT520rCTDF8r)c^zH3&6AI=}!>FY!vd(f@=+j_A%JoKQAA%H3qX8d{o_s0&
z(p+=bjkf9{ERk%Dpi*#<hMcz|&D!I#PDB*pw>-ep?zX0AfB6E%5Y82g6WTWcTwUez
z=bkdgnyr~LY=oI=8hf@5Nz7%JJ^;6~8DF@_PVMFMuK7*tw={$0m0ie}`r*EMjzbZq
zUD03y@20%-BV@?&7p$`L83}uJv?Y-pKq(w-CH`S~FN2*j;PTlB>8{s?8DICECwX+f
zZNc763FN~}xnVQ6h=bbR#b0ye>UiUPdFq3U0-hH}%g**QviQS5$rH&D@bwxQ-$)1+
z(f?m)3BE{)2@iqEJ{Z$TvQMLeRl<w_Zt87xOsp><)asasx9Te~wzFbBDlPyHZt9>1
zy=f|YU}t-U53=|x>Kl!*1GU2?W&1Qb!<80uWL;|y#l5>)-}V_8#nV+gRz+@?2KF!@
z>Ie@h>)P`J4n5t5S&Hafb-u;Of5ddGd-Xohkh=Dd99=VZ4%ha^Oe57bAK><<Ce#?D
zSgt>1XvDS6Gb)*`+OqN92%~GR0o%Y7CDL@=M}k9wQo_)8tZWe}e%WfgcRcZ7(`u!^
z1Ult~3`1;Rij1ZhYX`ur*GGmtiCl>GHLhrxgtJX5W8l5DbP76}$!_b`{=L!L?b*!Q
z<Na;-B8S=b{~g^>d-rnthQhzT&VJ@w@etj8vSv3m*I$KrYd4Gf-_Z@`(LyB=_)%I$
z*sRjHkR!3hfBKpKT{y}rHMn!`PXl%tZo=kfIP#_+HL<@CfV+dBY7Yw)W9-&%eO5K}
zLV7kzh2fzXD(>75Q^H1S+WumMRLB6-qJ8n0nE8u898&z8eYwvWDtiUZgMlG3&r!j^
z7r!vvW}?_*ntwp7S|G$CNiVplzy#E9Il19{viQd%t%k{dZ8f;*7UC$FC-b`Rs@0_&
z2B8R@v5|Xc>;s#_<BJn*L9vXD1VXG1pu8@dfyQ^v-DB1r^JkfR-~68u`eDrYMLDx7
z>fK6R-oq*QO%ZxlyNK?s@p;-A2cCT0N<S9fVrzm^)!N57BQ_-f{cDw?3Kec`Gv^py
z?w|<`{%>E#Z|YxPCLQ^5<pP8&!x32eYYc-^jJM$W2J8i*l{mBhGPSkgNBKZckRRxY
z_#gCyBP^wEAnkh`tOgbUT;Qh1TkKgEda-f=!NvAhZKfFr9CxzH|43>KGRki38QK;T
z7Xbs`>Rp+Zcz7>6gZr+QN8AE5FE#O@s-ltwwX_ax6Tlrmz>dUlW!poJcL&5HM7Ja5
zk>&Ib82Flh5UH6J$^8EA@tho&j^~$dg+SUUS{Yvda~mP*JOcj^%s|pr5|>Mi@JlK9
z!N9(TyhE4F@p%aX1`Ky3Ii|)O5s8V!PliQBrQ8Li4XXtzB4Z+jq^m%S;czudTJ)A>
z;E5Eo7MR(O&qFequoI-s1Mn|>lM=NrM5!cBG4r1v7_qq6C7F<>&wKro7c_HdMGpiu
zINotXyTaBNS)^D`GftK`ZM>8u@SddYv$l7nzo=GDfxrYVOP=Ew2(_qEsST|d%wZ^s
zUaK@IB?>@Np=lg_j%Rx|9My$79QE+?Giu-16Oa=}`O{=E8L5HV6+LK$$K~@u#INj%
zG8;zM(1ypA^52R~6$(o2@B(g9Tp%K)1+6++sKlcHm;qQ=a?yo{i-4M8Y+Yb%Q!z49
zu1N#wWf7Cil7P}v9BPI)(j%>_QB@+uF_@LJS%db)l>+z@7|)Sm2)tHFk=V@m**MnR
zQPw&+85+`*jvAVg0|snTxrB6X*^YY|30YO~EFCZKBz8JI`N9anxBqeqU?*Yzr&BPt
zOm8O2vJ(?HMUDg7UBo%o=5j}I^;2_Z&2F66Z1VJ5a*NpG7^7hPo46L9-Jk6<rku^A
za?a`3hj!P?gIK=w`C}276BZb><JEfb`$H_^=ePSN{`Kx2`R>im5y&@ls)qxgewnDC
z3x0$(CupTWp$nw9>u0-8UlxyMMZ|^T8*ysM#uBSP2*sMEB>%bz$3;(%m94Gs&Ym}S
z@9poeO>c+y2Up)BuD4!Zn3!;5fLkG~?ayRlzfA$RLNIc5?jp7X-*)se^X;G<i!<O#
zZ?d;KAy)jir{FRQ^b{&*?ST6g81b45?3iB}?DeArR<~F`Up7I5t56{)-p6q3P@s~a
zPOAha(Cp?M3Ozhk`)-y~_jRPTh}}nl{l#=tTrmuT{E2ssP7SZFk2f89dbZ^E2g~tP
zK|06V$z0XK<QaJ=`l_F`zLq>Lx}W&H-<OqX=e73FMuIUu!Rxr349jI2DAy=LST8}M
z18w=gEhjdAKxOHldf#FVO35F^2ymA#CXY?H;HDjl)R<j11(275zkqw_ffPU5J*(zz
z^lhTzQd#&`K9HD!3ngDJBOBL(okIY4swF+*EBd;Ih-zcO(K=@(kvi+5hCh{N_$P2o
zmQ?T9u+Cdb)Z2`^=g08$$a9H4`)xDEm&ZrkXu(KWaU^r;UJOKN_+Vp56Cz66FPoD;
zHu38+C)Y3M5R^iJg(u*7#^IGei%03dTy%Dt;RJd+zfR`f7h&RvEaw?~nuG+7I<~DF
z%ZGyDTzZWfaQHXiL=$Q3(!d)QT0dG5F3QNUs|ITm${dr}Vg`@l|F`j^VEVW5#MiR6
zsmURm^UpxzofA}ZLLzq^42BS92}3e5iipb?QQ%1E8E^@43?Q@M$t_}uALbUHMNGhj
z<Y*b-Xu?Lgi7qm^X|yTZeQAET$#D>uh3UN&*gitl#hf3;Y_J(6d+z)JG04;cmiIq`
zr&fhqoevsCem-{ORq(%!!b6>du%#g8lQEdZt_N>D1G3nQwq7RvkK`ML&3ghle_7+q
zUdTpn2tIe(F~<79OoDNs0eg_2r3+@P(Px;dq=#!JkK3Ge)FbumE=@cAZXAcw@0b)Y
z76`;h_Dm5w+a^6qebi(+i;Udyt8Wcadg<Q*cEuY_ITzV(d>tg7=0nhj;fheEi>4`3
zBJJN8PWk$l?g?LCfcqG+>+@}fZct4wc)#?0{So*j24e@}rRC@-Ek2f!7ZdBU!=aSI
zus+7V-ISEWGa)S%y;hNtne2Gq_q9HA1<zfE1U0?WB6{7UM#LJTI4gAG?TVNtx4fuD
z#QHvXMI`8gFU<*fp>GfO9dp%MeCWjHwa9CeKC|INK|1iwHe-I6>9PZqbmW*@rhPFZ
znndAh*0jj!uXFI`s9;)tAFeHtd95PO&UlV!>`|QPJsCk=1yvoz83}y4x9u{oeJlaZ
z1ikgWT}4vrI~Xd!5f8^iDfK<&GkM}BWdM0!ggsYbV&KH4$iq-$F}d|UzyG0T15n}*
zk!}I1tLVJnhAO~xOR>MPPbLIT4B7FsSA@m{EJA;W5&AwC{`eTR78O?kCTw$9$;ZE}
z5O$=cJWmL{lA=2}WO!hB?5ft+6*Ix!SbfWIFBf})jV~@T!^@hW7=>Nk*Tvux5y4Fq
z;auOmj5jWQpY(xYRTg3AfM>)e*79Ou#`L%Wx8f}&j(p?gP?&mQL<&tYyH!*YgN8Q$
z2swTUf-yC);QA+e=sDSMnr%Vc_fJpiOh<Wl(1fb{wACZ?G&)5;ka^VkpWLD8*addO
z&tzWfZS_fVeMBuCeLw9I-92#8pGnatJ%amGOBj)#f7G}V6f{v{mlE`aU_y{J3SVy1
zVW*a=x-@*<>u)3{ZOjrSCFP_+Ew$0zaft47M2pk<6gHA0kVG<$6&Ct|h|o_I>i$5H
zld`W*v`L3aV0nqa!nKG}j)+HQ-1F<sbg+>&W)n3`KYB$C(x(tdG0nPp{XX4L79p+X
zYetalf}cL=uA!=<J5!^`vte@|$!Z|^8ET8g0`h~}$T$JYuU0HveJ$}^%ni*sp+iQ5
zC_-j{JJN^k(y{Bd(W749^-%h3>|*lTtCjS!z<~Zne;XEkAS?oOb=ZeZ58Yh}%^{dT
ze72HAUW+1x*MghwdZ0yZk52_B8#Zi~^c%U<4R<W{Bxjh2MG`eyp@mQ$)N8FwNu<9B
zFnm+?LdGUB1Qko&8M|dyFM+|`oH1t8#=BG033vBwLlmZDZ<f<3$#aL{_wmUxiv?G7
zg4=H}AXYXVQVGI>=ug8=rP@XF=1F|XrCJm6qhkU>K<&f1RPhis#HQw2^FRj8{r`^q
z9Ix`&)v90-8r4{8;KU!ar9PC_D+jJf`rg$rXuQ1f<S0rmb#+3j7)~k)2`S8zSdq#W
zf*O@VZoh4fE|F+BN}?D(86gr@mdqNm7DV$FMScXP2sZ^Pl3D2#A(&W(2AQ{43ZnRt
zD~i(aqxKv_zw?nGD&86Lqi&5|vnv<G=*7&#MLS{<iV@#yKz0FsxX^feJ>Z9XamMJ0
z8l+Ci&KF$e4Q_Y(_;4(#@UV!Q%jhdVUExJWry+vz!1DH39B^RvB_svsHy{oL7BL(q
z`0%nrAw{^*3K+PAwYU;9q>>cvOOpBX_T6y&g@1e)TU%H0iM#vOTo{k+og^2F<<IAj
z-4Dq5v5Uno?d|`Eu6K@(gInJ~)1Xmf+qT`Hv2EK<W81bG+qP{qXl&cQlYZa%opaY+
z_n%BM$;?{Wdp6$ZeQ@vc-TIr#<P3w=$iT0Fu5t#Qg%44Sok+afkL|8*y#ruy?fK^+
zZO#_zJMR)wFG#KWRcIye$k=+MKwtGC-N?Gd<EC@LY<9kBp-r)!mcI}=5>`Se03tv9
zgvk2>7R@1exgS>&e1uS8g*r1eh+msj0^4gg=YAT$uWz{q5v{++=&j<?{hINd=y;oZ
zOTH0$C@C|U*F*$f1Lcl1ocCNr@&(}J1k*5WWbJCCv1QizUzQLB1u}Rt5j@&0IJ2h~
zV!-A6i~=-a+K>_zVr?jrHzs5)nUn|XEB@DgXYNS?tAkn;jdMVr87+HPG!>u^fExJa
z2rt@m7>Qi|6}D<wWN6NOvPmBpqRkjtV#d_gIkB5de8mbtngg}YZ8b&TK12EcLCR}?
zW@|1(7<5CJJhiC!$IKm6BRhKf<VEk$P>Hqqqr%i#l8%I*-i(t?zMjNuPg=_ef;=C4
z_yE*&?!H*Z;emG8TPdA;(-cz&06|CR6h-ys_E6Nu{WHY$H;r^&4SaNop-!7cY3kv@
z>!wDBa`TmFEv7!!?Vb3sXT8d*)~|!0LMg@r$yo?3DljuUE(K`*OI)S~i~Xl9tOK_y
z0-fI5cb7q@IiDgt$WIZTigi$^<H}zRz|te;{Te>J@Y}=0nhsxBQa6{doSyHZpPb@0
zgd~?{aDzZ@Z+!3biC;+?et9u?S}WKaJugWS-u_wnvtB8(Q3ibv2dcOtQ>deBe5Fqc
z7otHgXunH(tYwQ-m{Avd&`Z4lXn#8`@HW49H*mp9x;$t<KiDi8qpgPcJVW&CAZR}}
zu7X)Iu)Z(zfqR6(n5O{A9tqxlHNMae06P!;2Rpw46m~Tvv?;)xvzwR1__+JFMoP%Z
z%>SV06+cs6Obb~{arUjZCLY<l4|xBUcHZMGagx^YGB`T|KtuQrzkjkE(PM=R->-MH
zCBxRm5fX&7fj0uSHoxGp5G5bi0!63ahkffWXBIEA8fYL??iZ$g#k5==L#G|FUxJ1l
zux!+GE;>N2i%VUyZaY$pKqEx>EWl_<Y^t6fFP}6nHZQo<BeszJ|Bn^hG7`oQ4TU|^
z4Dg8I5B;yE@9-Z@pVmw&ob2`UH=y{Tq4X(dqS1rcPO;HHuZ)U-{%#YiHi1BnAAKGG
zK_A2*^!q|0D!e>iF~OE9^pG#o1CaIc1{i-bWVgZy3PF<J=V2lVX>-^t>vXOgnRM8T
z+@F8myT92s)&tz4qKlsO%DB>X#@hfaB~<6{qT=PX_06=&xk34Hb$?-W2QIMK3QzNn
z`?LAIQ#Y?qaMcYqOXQ^%P#gwA2Lw*uxT)V?#f}JjGCFj9U+{cQZZm$<@=%%m9WxNv
zTis||5fZ=38RA)jP-JL7(o(7%02K*=6xBAiP)|5d;Ht_`C4eIiE>jUgoK|zg@Tdt!
zBtDg35rsRO7&h&OS`xC9uNdH`fI>%&l4AfF=1hr_GX{SUt_X1T6%-3&PGIT!QUVdk
zrR7Y4GPCW`Yp^0|j>vK1$(`?NCS*DShA40d@>hNFT_^u6K@oot-$%*@qn3M+;KYs4
zeb)Ln;rw87u%#H5d^o(SIOGev3px-%aqp^veQd}Vcv6I%IY2rwU>k)Ld_)MLdFj7}
zZLZf2kmQ(oC_>ALm>2lz>1Zmdm909IXCqF!6SG6I`cIXpSLWmS?9&k%gLyC$zNFz+
z%hfo6yHTgx|Gn4iYV%Br$}g7ffkG$)X|rRVJe|`Gw=T*>B+~h}n~^vy#wYV^or7fP
z`}_%LO!Vi6BasjtBh#`*ZkLT1y~Y_xW8e?7h`e}OLBn2qAfQ%T^VjWvKQhG0EtwCQ
zrHqJ7Z3QTIkCqJkUJxUexb#TOn+Qc!7$xaaS_eW$iJ-!k8A8)F`_FDoiGCJ&a1AKL
z#;t2>S{Ehd+=piaka`a#f(XJMwJh-c+URI0R*m`sK+O*!++CF+Mi1;IWs~G|axC$O
zsxG%_BSmdev!(5i1gzWR7$}SOe-DTW*6#CZ#m$1orhs9nwA%0(wfLWrGy))*o32)d
zZUUaGiy%GfCRGbI72zb{y0WiD-5|5jug;G*+;w!(KZbrNsNA)1)RriD>MAu&&hB_2
zVd|lG<5A1s#1wOQxhpwg8n5b^0kCrk>`LjI<cEHSIeKQZmLu1fe+#YcQ)y{@|E*!i
zZ(NZsrC>l^I>PvU^tyvO$m0Gfr~pYHv+L=+xq8n~TVbB5wG^4po9=Ic-RG?<c~R)E
z-#+5lqp4<1J#uE59f9W>^<`+zgF^??#18>mzveGT@4Tg?ih=Ke9<kCoU_LWg6snPU
zy%-iOarlGm(*$YFzab)R2d?R{VpO`n`&t$ktnhPzs62kk`5=Gj-l1ej;-z%dIgcYX
z!ku%PT2?aaRiX5er$Za-XPQv54k}|J=K&|O|N1-tzF_}70CrN^cNF8ZK8e(x*^@%~
z7by0x&5I&`9r~7mdsR8_J*$4^@K5Odf&R3TFjyR~j(mLFy?%&SoKTV_rTj%cHxE|@
z!sz>@8iqjfx1DD|D4>=X4c={vyFk+`g;fzsK}L+@k`@T{kqpD{Ngz75Kt)$jx&SdK
z-CVZ14`C1kOSu$I<;E`@B}0-Tg;&^1_9*0&<c$jYUQ&wq@GgWIX(Nz2As}hK%v_$M
zKrQA#0Y5i}d`$vwgQqX=H6mtE5wvxqh~&yAsYpl-Aq$+<yd3aDa+K@h(21ZhiBU{2
zxm6V#a|U;%GIo_@k^&;$$?}a*X<0)VzVH_qU~JfWK?|ntv;F8%0!rGpnTzH!Adnt>
zQwjl$XEG8HhGj*I5dq0ApqkKqPIx5bfm9S7w<OOF<Ai^zua_aq#ePun>ehRZ|2ge;
zfDr(6aw@jI1O<TNO%A_-!*}~}5UAuYI}5ex7f0j;cuQaL1mylJM4;T%fu~eJ@Oz|v
zJ{2d%{&A@;<=%ltP<|926)vRLrs?tB^#}`@h<5$n&F3R0^OT3ZAEP9gUWQpE<)pEB
zzBFsLrh|OlZoGoVIN4%GcdQ1HrWIY2Ta}0X#K<R~mW8)T-CQwfzh3fZMV!p!r)&AQ
z2@2*q<>#l}G$d{(<?)CO%kLbL<Z*&$^zJea*J5FbN&+qWpi|~X03L`Mx2*vKG-*h+
zFlMyOaoM?;{~!~SBZ9vBnE+&i>Tqw?aAo~sguRr-O+WvA{+VHdg*qEE<3B>P5^mR#
z&~a~hhI~+BWK%y>_$^UW{xDoot3`40#d=nu)oS;L1lh@T5t1Cu;j4eR=+OYklP?T%
z&yt1*vdv@#Kt!K=6c%nKPDnrfA%mMuTs(_H-<lxDiiW!}EO-+N{0NYo??TtsIN6u~
z!-E2?!ArNOp;%x|iWppnJjqv!$A&~JGRQYQz8@^3B@hN^qsO0?P+g|w4ya9b0jA~!
zxn}C}@-yvsnHy=_;PanMCk1+h5X88H(rqGImKTyMq5lz%83Kf31%^&A*tsp`#DmAo
z@`>SR?DFhRW$~HQNx*wY#zVx`KM~wrL2|V}NwyuUl#4AccFSWlJO@RVcmPpaX$%xm
zE^t*vNfqUu@ORc_OUlPz9qsvvAYJxCBqu1dqb$i$Q=7?7X-iaqC(9Vtwjdw!2Y3Al
z$BSAJ-f#@nl`@()tqmq@^C_u6y`JQe4Ottf(~@;?e-7WH7_z!``Hg@5su&E#m})F)
zcdYC24LQ|qV5u>`t)B^v-^jv#T$q$>$g;oOUa~OsFrX_%@gV$Hn%MQyr6~vL4@9KW
z1Z5N@$tBdZn4lVt`jjvm`S4|*o}9pjlnHc*dIcI|kl>$Ts19uE<AdP-%PFWg%`w+T
zW$KcEtCWwa2c-S`4(S_%;$5vL$vy&YPz|62S9C2dK_8GO9u-N8l44-mE2rZeU(E6^
zD97kr^=2a^D03sknzc4c5ivDSKVL5XcGE1WjwKGCx03Om@6f1Z?o2tJM^iO%d*4(K
zbweHwH3ujXfn)6J0YxIfcQ1G>MX9^+DCJ)cT>#WvT4h^<``QF99i^m0z#>BVZfURK
zCqynL9IhtPSg6c_+As=G2>^T#ik0-g(cKAwAqhgPIEN(x^n7K?Pmhl-H%}M{+SwbJ
z`c}bCij=vdDwu`n+XDL(@}YH&{&0df&$|esTbtlB->5=m{TYH1DtnUv*P)6-)<M#A
zx~w^#79n}|?wr&yaeZoO0#d_5jdVVB*`$IIp;c+P|6t;{r^I4Ae=+eEC%-6!QG`5p
z871fCp&?QY%gvhHuG`=qlUbdwG_>^9G^*r;klX!aa7lfwm8D2ICM$!9wySwfg-9Ii
zx3E-)g0Qd!{#DX~c5d&y{OCy$Py;6BBvOjx_V^AELV^uqIm2JbD3LiLdRn+p!sf@O
z_rqmB?>Q7<PUI$DAOf*&Io}Y3$Qc*z70EiHotf!!M9&V8Xe>JkkufIm@WcVkfSkX~
zfCM^$*iUmBg5~1t7#Oo30sz1uXV{S|q*qjQL(>2t`U-%~K^=h>GH-(eC{5bX!sflW
zFaKW?mA={GBio-=X~F2c;U0~a6T;D(4<S_eJdMPRh7w1uFwgy;E{5bliB@af0U8?R
zq|wyT@8Xl5zZ`%700)33skPH7Cqz5An-+2wag4e`%A$WtLae57Yy?$8ccW5Puu4$l
zqFGNeK(0-JtzLj02hfRhk$%`EMV_%W1t>nz!;v76Fq3}JI)(S4e7{&xLf7GON)K<&
zGOsEYjZv@i;Q6h<@OgQuEK17KAai1k)xrl!D|#=t+%<@|YFu3wq5$^V3lm3x`LW`c
zNT`WVss-5tPAv)!bKNSBPzb-kSeHQfC&xvVpE4ImJs1$ZV46`ZFR0=`E>ygfFE5yh
zs1#PrATlGJNNA3+?jiS=wIL!G7`M;%3t4Uq)Q(O(cBZk2^XLarvyBc#?rTPF;G{|d
zVc*kEpBcdD4%zjr#VF-kh=TF=y&@YimI`hyft4slu8Uk4ds-An95CWHN`U&u4iHh4
zNEn7%5aNLT7P9%btMsqj$A_)You**;N;QEH;69<0KnM^lK&DA}e5ak`-iZ|{Cqn!t
z`q^qg5otxQn4+Uq#Fm(<=+}y-|GYKkB7fc*SMMsQgmyW<{S=BVS1fc?k3iUBKiy#j
zbQ+*ueijhglWeydizY`98dvRF8FkwJ9sXEb!_VP&R|uKYL>WpUj4k=fxNm=qf($8t
z(m+?FK=3)}w0{TPmzHN^vs&M^lF|qdFWs_{UV{I{WhT@|ha+AZ^fhgr`efnvKe&Ri
zkWJT<qqp-SZuU7|5Y^ifvU$3MBGIc+qU+tUcYedwAl&*p@Ns6R;lIvluz%`GP@N*P
zw{W-r={TVO+i~#u>^KyIzMB?3>}&T`H^gtj_@1?Zfc5@z2KRP-Yg*@paeuJgJ~()V
zd3Gt@h0JcXiBX<@ENZ*apMP8Y@v`@Ralg~FzyCgWHnI5eV*9c8u=1P@FjR9!81=rm
z=yL2DD1LTjC(>*~GCXkj_*#o3ec|@DL~z|c#K4m~eJs(E(#DbO1oLh0zgmW2K;L0)
z*21KIiVmxEwJG(Tl)ZWgZ{i{q-DSuBOR0j0_)AmsmBJ-tt#@%LX|$)OH9^)R$t~aE
zccA+f0Ny&RIJ?&=*8O=YzJLJVP$(y&;6pdsY`6%Vv;EtDuq3`;SbEJTaOQl(nLPOh
zc|hipp5Q|e(&MJFm<jT}asp)qW|xvG*InT13vKo0QZn=6>yzt3ns9maKDPM0Wd_=*
zA$Ml-F>aJE)35LZ`uN5usZj}Zvqqi(HOFfG9xR^yk4tsHjU$W9y$o$!5xh3#J}|<l
zPwWojLBZhiI4g?`LE(0Az(AV#CEzNo{cD?~4z9Ki6^};Y;qf>%VqLVya&wmS<?t~r
zQW%j*m%O?kzys=GDddwSv+E1Jgm5wYrHS%fjQ4$Q0dRp(Dvz|35qgBL<(|%UPdOIQ
zF%Jc(qEIJ6zc$J+W685<nT2JH_`P#Zf0|qL0L(2C0Y3kk8Qd<T7f<)3zYdV74j6%N
zSFtidO+zYvXVdu@Sxj}>0EVxrqiN8f;fqD%n@f`KZqeOWdxxFjp_=I5Lp7-m*q*|%
zmH;Q}xK+WREBXWa)-N+>(MFzkHT9OQjT4R@8~2?cwoOQ!plt_70uShtR7<edQ~Y}G
zRX!{KZ$%_=8}$34d+=V=ibF~sCvwveGC~Qqda+=&yBLCjA^0>;FlSN|%-W67wxJbD
zD;g&KS|p<y{=@1%0j@*NuJ5V??~ob)IgeC7KnRtKXu{a}KF#d&vR#~k``Z;Kac&WL
zXA!GiN@s(qw%6*JQ__XSNlg2NbD}7K0ATdskY{Ycuyu7cJ+I_x9c5{*gs1wOB{)h$
z;#|di0hRLgh9HFN6yQkx`-R!!r(L%3kbQQRDY!8@{RSPBk!_A~@S0Y!nilOm0h)PW
zJ;bJlv2%{GTRfV%w}k7YL+!7EfXQm)iURm8Z%Kj{Ho{j2+<34GVZ?rP=ltM?1c@1Q
zfQPKUYl>7g*CvOUq&TxnTk<AzBFt__9W>lJ`l=IQ?%t^X!zcNHV{Ws}kSFk~&U692
zV`yw|>l%wf{8pK+M8u?IFty~wh+O%?P@?Fk(M(jS8BAUqoMvcNWf&C&F|jkYAEIv(
zGQVF54n2!m8?<3)?;PA2f?6EZ-=PGOm?u+^#qCDC8-r2wDZs0|zJb!Y>YeA7+py$a
z0ZU4nh{NLSi>prprp^>*+B1fwekzEHY`|PFazS<llK8Ad=&Mw=jgbJqFbV9Stu{n*
zWNq(Pd8W{{i=p2?b{vDMM6TBb@SFw{i4*8oyrC);Z3_;tU^9_a(xP5;UtQd15>Z1&
z>$s~0*Vww?bwka`-F_4aaA<+6xlI}~A(Ys}FCjLpbtQEtmCNyw62=<A(ezjcE=weV
zW;Zh4JZKCghMXZL<5dc7KBV$&i>vBBII@lH`cNTczlh*ABl?Cv0HPYmD(5o`&}l2L
zk*;PQou-WKNLtGOot{l`-a^@k8cQUVxG^aG<tI)_QB-07HVx28|5o@fRLh_>;oai@
z2TQs@{w44x|0VFcBvCIz6equF{UR~&cr)z2PeL)JF#V+P!q7aK2euXQNr0)lb?#Pk
z<P?~(_dH(h#}t5F{~QmYegg&}?gwyp`0WbR<O<H?XZ}|Q6QOsJa3-!c>uk<Rc=+Rg
zsx2l+<-gdX@W$&PpxU}jSn6NCufT`r{);VEdjtiXqH>a0Czf@9@f|8UL@R(+?516o
zkU~(YeDC=J#DeDa%*%H7lybFqmW~UMpux#}L`<A+c)#K>b{-J*{D0%7Y!{X8wwy@*
z<1NDSkGBZSO6*9N&?D&oIETM~yAW=ei!A+{GbQ!pgOHp!?}tdhqM#n)nzkUxR?*_>
z!I@2kQ_*L_g{`&w=^TCn2oS55;y3BS3~~p=grCW<>2$7nfsl3&1dF{g>-Jq=rxge*
zcH3UKev|9rSAl$b6A%QO3i<&>JSE@#oq_O$wmkY%5p%FZ){G<ZeuHxk6P0>F>$PCy
zD@fYTm*(JOi_fMHdw;clU-XK1_VKci^>C^4K8NDXjkbo)3r>f1$$;hs`{|EOp<iSd
zWB~oZ9;lbkKb49R4N=48LOwtqW;z^}HEaxObZ6Lv@g&H5YjjC$59>b!hzER2z!z@f
zcw$%-Wo(g(a}3x3${+Vt{HoXfUssVHZit^I>Rk>X9T@Ac0Fh_{3bpR4%m2BL_b3=W
zBFZl7PyL%Qv)xp6_QOgGvOI#@;{JT>oi>8oz+;R5VNgRE-SvXLO~iv7fL2Dd|C@jY
zMoau3WVHK&T}jcPxqq`G_9XNMr?bx8`d)9?e0%5vZvmk*tzT8^m<ozC1YWs!NOO{9
zV^?jB2}txGqqC3{kycU?4UJ%lDJns7#dV_uskH_6AA<D1ehrhSH&yKQ6v5Rn{&ih$
zPW%T8eVd<%0AQhL7Iiwcjf^^vh3?PFf3eWIf3eWKwm+O=6}C>_1;oFNqniO3sOw8l
zEA^vun}oCl`1|!T1uC5hf0lj&qP3C%(OUj?b!Se3)D)Wd)Q(wAv$cWI<189k`M+rX
zqM$JC5VAPH^MDX6IifU_j<>;ttXAa2WOm`pHVCG5Bd8SGH0#%2AIUv<K!x3FdW&IU
zv+papzcnf`w2zhBgK?KLLuz?^YcZ$^b1h|dYSNg{<QmD)QE@19iGhjapFn>WSR9j!
z6~xTbDxOesj)FCqol!_xsk>ADspoe_w)&&U^|M6ELT1@~?vKJup;VK9ZkV!9f;J>#
z?#}+J_JG-0NywaENWZKE!x+ghQB++<t~Ar%JelG-(|;U(6`a)FN3}B-vQXuVDEjS4
z*f?Hl%Hid(`7|YL-$j~X<&%pViU?&KVDvS1&G?JNtN*$&D+keivGTiSro#NwOiUt_
zWsI{yD3g9FAoC|`P?WwKV@RIa<d5{qAHI+y@te)2rZYVhknog{k`>jQ!N~D?w};dF
z#@{EZSQpFzdJc?E4)N#=LgCwgQcTSicJCV#16SV{oV2M%#h;l8V#==*#u8vW3`-|S
zWvEtvUQ*R<H!5)AHDzWm>^8R5^__>VNK?VVvaB(>x*7l^c}FRqlDr7ekuw^J;MH|)
zYaqR$=d;)q4fF^caqFQJ{DA~;4b51Vk+T2-^%i?JoxoME24a4za3l%D`NrvbA!t%a
zb1ad4LcX|PC%X`UZ=VTOqwvL9Q;3SK(wLplCu$Dq0eLS&7Gbakbes``;Ofgsuz9{j
zq;2zh!%$)keSkMJ_`#0v;B~_pA&fex31k3k`Du?0>0p;c1b7kqSJ}Ru@KYhqe=@ep
zVDoA?mhszWembJVXc^x_3kF<{*T)Z^4()nG<ab8O7=BKK=rL!6F(rrSj2^eMoRV}R
z0q3{>&V`69D2Zv{%^|(|C^3Ro8or&Wpu1(Z6S}b|x4SnQP7p)qxvtlF5(>_sg+ID*
zEux+na_xQ!jum;oV?ineLzK1nj0?^dDk>9_LQ}24E_SMUaBe?)Wqe7Pogngr!ec)~
zoH{Z|5W|cm!z{Maq&=sXdt^4^PH`CGPQ^*PGBU3!!1(+zEO+ujMrkjN9AaOp5n0NU
zKXj$r6CvZg#%2?Cu?`T@#K-{{6*Z9rm((9T--Ty(X`=88jF$T%UBBkaz9_ow@vI8h
zb-LIr_t9~|;#!>6MnSNU=!F=ibv0`CiWH{NxTsCzYR@MCI_>#|-_+D}FV(AG{TT!s
zc8XUQb!@@6u1b&L##sn)UC~*8y|J?k!i-t)!oo86SKa3!z7644^|VDw)g$lrCD!8y
z?_jIPz~ZcDq3-HBz(*q?q0aeXALoJ{IS(<eKIVb}=x9=;+XM+{*`27nKo8aD^3Z-1
z^0OpgSjUKazel9se1D%Vug3@Hg)`MVb5##hqvfB~&e(grTxcsY<@a)2Wwdm`tj#B@
z#W_=gwyy@{2?FL9@b~TGr;8!>6RaFB3=5)m5cJubuhF(RiX|5O=1jJ$MhE9w(DE-e
z9b^BOqGq9k>6|n)dN*B&DNG6{l+OGkMI1c5A)3`}sM2Fi)j*R-ETxZ{EePQBG=Evx
zDvf7T>Qw8ZP_f^g4!TabuDD`<OzOk-`#xulYF&{I=_7Yj3c!{=IxGG`q>~@b_IvE{
zku{tRA(EZAOwtcFs+j`scyon&Rk82Q>mK!Njsb`TIZxHg`b)Zlt+TZ+P}|%kaSH<%
z0<`Kh(sKAc6swsA@M?QEDa_OtET$(85tN=R1@hQs8Ok6-p(a;U=m#uQjXw+d-K0E;
z_bonBQ(C)dp*a~8o>Bne{#uFr3L*9BxgrPB5-6bS(0?F<JVb|L1;}+W;JxR)Iu6}l
z4aaifAH$c+=q15Zi<^M274VaU{uo;tU-{+$Nbyt2_*xJN%Pq=_=6?`2$2!cmJN%88
z(*5lIGOy+%7CmX6BcYQZL?D3z?hEZ)*?w4_s6qys_m7+TN31lG6e{UCMTY@1Mra*>
zo7k!xs~W1oH}LQ)mijfsULKm2eT!lvS^wU}YQRUKn=cUf>(LF%JR@I^@e?MnS?7?V
z-RM^&zQWi2Crqd;n)&ry&*z1lAbsSq$+}99>#(0PNm+OBZ5pJE(2!~~NXrrT;!CnQ
zS89zvmSo5J&2m5)S|>)LS%f8RZmChv*<>5pY38^#dOcu_oHg#aoG(0J2L2Oi0ccWw
zMq2n3CX>VB!AWWTK1doZRKD|7!g1V);y?<<(PkXL0BM(oIJ0CLpineJQ)C0!Y&<R_
zltG~T_$a%r`Mi!cByo4K+4Fpgdw!C^$LRDDM2vCvs>J_IIp_gJFkud;sST|nmt%7{
z@{ef$4id0?b+v!P^xWpf{SL3;-$$106tI$33{N6xWM%=-CNWACA(>cwj~PFS7s^sO
z0w4JXh%&9E<qw!$-VdeXFfRWmq;wpyL;T;2(!Z=!jlZl^qZ+BT&0e|!M8T~4lH1l~
zd9&yeqxL3EalpbCo@!h~sL3Y}WmYCpX#+?*s>tm$*y+r+QB6F`(V7){yBl=(M1<f6
z<`LxDY&7DkN?v13<|?nnk;!nvg7yOOW^)WLVOJ@p>I!oasYp$Q_RWZ-mB0zhI2`d0
zknX-Z;cq7t!U{&T1l^Z_ApB2&C}9F}b|<W0w^q3jcrDGj-fF^wU9fQh2!faNbnh}1
zXH3uS)mFK)%#82rVY5-nr4Tp(^ATjro6aa$neh!Vx(2gU1s6aU)~vQF1f;@YE!lsS
zyzqcN;RB`NgkQveM(7wz1!N<Ba!e@!;h;8OAAmVygjp1`Cux-A6_q5?q`~dEQE^0v
zuVqnih85A=ws#P-r$(4%NX;H8dwYOD>t|2ot((K^o?q7mT3Sw<otlsS2KUK3;u|>7
zB&B!S;XvpF=Twr%DHWcwMlcX!$7%K}vs)O17ZlqlL-eW;7Fq;3#`>mo#5F`d^|GzS
zr+y3Qi%l8h)GwDJkOm<$y1rL7#BWU9N7;ptKT5pFS0IR9U)MO#PsTYwg8;<qJ;n(X
z3##vxQd4O(dsZ&@l7d-n34H|saFUGh{{$l>sGr7#;JwmX8?&5x=c<U)$Zp)CVEh|2
zwrg!Qw&%$~nT27JMR4%4vhr;E;m7jk_K*wwm=}0HdS7mI`Lp}yif^~>bko01rK_GR
zOHOeBDk)m-c^BY@Z<F?1^7bDNsp>x*(y&MXhm_d%OgJWU62KvyWa}8aTT@T_6~><4
z`~Gp?c{gIWI((y3@@C(L1$*-7_2_~3JjjEF#8#J;p5?^eYqy0DS*^}xUZO1DU~*r@
zE1*;WTmlN|14m45N_XnO0!D%~49<9yjPVW0;YEUG<gvBj!-W%jis|adBhz)GT|Ex5
zzpd!{egpAkqK9;8{#l0RpyF?DVnkJ5Gw)dE9QoxVpALmpfYMUWIr?K@Pz*Y*GarNw
z(SE*%w`{*Ul8KNw(cHYmb-<lMo%|!OW=g)$KOcTq`T&^BTTj6rV-FgBUT8EM<vW*4
zUyS!p?bY(+Zy{<2&_85RT{p|sCyrd)H^tV&TPgf)V0E&>cGP0>e*|q3jWEV%01NTO
z_uq^q%((gXyIy!eN?@E7-((+3JLofB>dB}wv}mc4=K2^1QnXIB&Lxl#a*q@fT-VOo
z5$36{`+|(;6H$ywd(ZOdp%)0DCeA<oc@8id2PMbImk-85&o@>pw_ISC>!gE#zw?00
zn}76eg51uz7nnvv7>)E|2MQR2ElMWsX7#9}l8)n%=WZ#b0Jk_itw`mJYv{$CXBK`K
zqndm~B=NXh0oT#XAG?J$bkoUpA4x%FOOwmUJLBQD)0w_$jWb-DdjS6(Vz|`VM+_-|
zUy5flJB)9#5$WX3nNBR{4PpD3oD*EMJUqQB{HG~;yFd8K^R{SpXp33>0s8)|pcyCk
zs3YQp;z3@B@N7jG{*wKS6<8RJu~5IQ!UH@8i0GL3oT=T_eIveLA}gN<;>JJF@J~Ju
zOdhl7yKFoqg_r=<XyuMl)A~uKo`uXGiES9C_<OHr$XUsC<uu9FqAk)ezc1}qnAi8S
z)x2#t_fY6v?&B+DE&X;E9wsPe?j(ZioU`{~K-|fVD#)>u5A?>0gP{@T+{hw-*1;%W
zoSpvg8GW!6+|;*8?KDeGDSXWy45^y4YYxq8FH#(w#A+yEbm^iL+d_fiprEMDjo=QF
zht3)Fbha-@I+<v>=XBu>1K%xw0kgQ6ljWK~Sufg47hm7;{A1E#1U~gLk*sW+6ZK0t
z=A=_rWL~S-iFSUOREAImT!v78FHl`XzEp@r=pjHa0aXS3!!2O6t;|0<%xH$Fhcs;4
z7DYaO7i%MYfq?aS%ZGeO=_{NF<Z-7M-o^M&r_0QV2~8XiJZO}Y%|vG5gSIkS|7dxY
zuNSovY0CxVc8O^rP}a#)G(vqyhmQ6Vayo;>6^mL0`zv!q*kUDib~pQpeuQQI`1%ED
z6!Y{C->=2x*e$dvR*22GH$e%+XpDMDLu<K;=Occ7O+6W-7P8Om(-mLHRug9m-C2K{
z<V2LHg&ABj!3iyp?OaBeobe=0>J{#DuPK`+&JmYkysu%cL8e^^lY9usNkC0jb>k2)
zXpLP?RfS5nl0dD&h#CRBgI?=ZJfFQAntjboG<X2K%ebySB(Ni6Lh~4v896wU!qq~W
zio85}=0zoE6>?N&=)tx4wL~RN6>_1%e&Vw)Wo9tVX(h9_O4c5d1OfXWV-I~XPIshx
zC+JkNx&+2)`6)|QDhCMyW?AFVRm3H*d@{(k`+0eCHYvNim;&PS<l6I_#{EQr<<Ov?
z2Z;h4#JG|p&o|;;+i-Xf=gtc;Do{pW+)wM`+T*xg;0h1F--wSVhk2k;lKBFhU_Hwx
zsKCYqUL0l6h0W|-3l@o(zpj~>Xj7=7?xV3RZt0RZa4pgF>WCcqd6DD$(0hgFCw8u6
zAJx!Ox*?H-AR>Zdgd^swY0eV2@Fo2Mp4aedo0m87{tXmKZ$#UWU%=eDq2*vs;bR*O
z_^Ii%qaex8a&%taTjFZ6@7^eBKYN8i&-f@W11)ZR4pxS>irGv#wBvdoZ@@+-`0U*S
z@#Am;*IxU68e!i*4J7`;XuZqC)m7l!_giA*k(6>}5D`;+Pk6R!C8|``S9o?TR<N{@
zxr?S3o&0@_IQ*8Cc{BP5`#_2q$;^HKWkT%*6iP*7(QMZGXSL!OUa7*->~}K_X6wP^
z6D}M$nOm24DaTrGk2mMkH!Dp)okN?`*dgO1oHr4>{4ToTt!5M6yB9X8%a^mPX`P<3
z!A1QC4-QOOU*E4nImAN2t>0&EfW*@0$DTg?g>y`&(QoHePw|}VvuihA(%J83xgq_D
zC-SIe@JaIc(>7!<m$N1#(>eGuH$n<z4@R<tC+0sO(!YE;-b~N+f<M_q^j`OJUFR8_
z=p*SY*4AK4DMS_QQ*PQEEBZA!PxDQ&>X5rjcFm7)i&2M9r+%}HIPo!LA$aHNGWuu~
zC1^+T_(1EsEAxIkT%yIA*Ow7r8CF+piA{(F<)WQ3X0P4oSF-2qsrs5NJZ~c%UKX8(
za?K%~#*ZEKQ71#Nf*Y2Il6gD7yfm;Lxe6vbHvy6JT`sDqQuN<5hoTX&ma$XE5wYS-
zg1`N6iM^KStA*R4uZwuUvC5eqY(4CF#0!^Xvdlf(f#^UL6Wtgvg3+IzY#_I-1s`8)
z*du_F<18Cj8Z-ZB!3M98p;+XV2CTd1gloc$H$s6b`v52(^_jcZRZ|vQt?en9TUDPl
zAnIw5VAqZ76_i7#dzDV`>=Z_oUk_PMDyC?^pJ?xaI}pSLIY01U^5VjFTgQWUc9;$>
z;apJGW${wST8ZvPHZe<!+>iAIVXU@Gd`<s!<y1)xisJl?+y+m_57A^xU8yS!Yt+kD
z_S<#*^Zgtw#rTT_{YV<-ZQ&c%b1kZSI(~wXyHjVl*21<a5^*eXXYtLN(^%RuIqiLq
zigp!|kueZ;Cz@5Rrox#4TAeLYQ7zgDt&TE{kpVw7FY1u+<mBz+ktQ}xgSoM>=9Bi0
zKw;-D(8y$R&6vh~yGB-p!sabqL6#yx!)WxR2SwlsKG#XB#1YNTu6V=N26~SCw&4!h
z6Q@nVWB~LeCNrzpSb+B`(#_Y^EjjSZV#%^jAEY*3N6*4=K^$P!bym!2ZK`2T3#Thd
zwtQ#Y&5wdRIL2S2TeOz2ijcfq%(Ad-rjv|}3DcDzKOh!+VqZX%+++>LSI`!3Dp2?n
zvznc6{s0~{8P(AgNBqp~5`?e$gf@sP87*ny<+zzeyBReL4hZ^`l%04eDre#9$gg%z
zybI^x#Y8};4tkW7SyDk&QZ+)#%FRt<kUe%V<U(Cq5=u8I%UT_q#j|j(Ik1Dv+L1Jk
zl*))T%6pZR?-)%{E$k9qo3Hd!nR$El-|bAa(Z=+-s%uO42x#er9@IeTXecr-^vZql
z$T;8;3+dP|ViKz&;;|U!v^DxrpEx;jLU~#hOpTPrqVn|csB#jOI>yN{7tq*Y^X5l)
z@B)rVlPNm*UEW3dVSni{zct#ZSsE$zU9n`fI7d~Ko1U$T!!*gOZ*y(*9V#DN0Eu7m
zQ}v|q;FNMZOpDukhx#ku*T|wk?75~h$E0e2dt$iGEJM%`X8Omx&8Us3Qc;dd)h{?1
zl{ZB&1qxyi{5*6D15ts3T~Q?uTiYBB!}QBx24{?B40Y$eG`j8GFG?SeURcJ~%cw8e
zHCq2};iICgNJBUG4&%vT;FMv8SgA0H&HBT3LD7Nzw2s!rNN8`4p{a{Ocs*AN-Ss3u
zh0_%&gC+5Ha%D&_M^-n-Q88SzRHDs=>yAy0IbmzB3m$f!Y(l*q$8cmYdgn`|iOSVa
zA#mejYMpi|qp^{_u%^CdtqvZkD^`qRdN!4Isjs7>fG0t)g0~exkMT&PiD{MFr6^U}
zC+hMX2Ud6-S52;1DU>zZrR-JO*Ca$ztO<GXfUcan0`fIYS97M$8{E?KE60WN#)Y*N
zTXh6gO_-z|5mh?Z)<M)p;x96pM==LD#c@J~S{JXaa%WG5C$FstdASVcuVnnBlE&(x
zez?58;je<$NIqBv0MiqC{9;D$6MSPmN)OpOZla^U&M+w1Q56sOcnF8Uk?=&3{hfqt
zyBJ8dxiAfzm}-V<L9=O{k+C#(YYtRRHY!4naKs#N8a=7er4>4hRN<ucb`MxbNEl83
zUGt+&LMBoqyw~??a!)@=vISe-U_8|%@}w|>;;t4ZoomL_cWru!9qR0?r_#jL_s{CW
zw$H?AXy)D{8Sq05cicPEBj@(UN(&@e{QJIBQLR^ggQ>l|k&3HCPT1X*vRzokhqefB
zDoEafUB30F?p@hdJ8OuW-o+2!BKECM)9S$wXK#}nId$rK6nI?PR|89mjlE}Du^OK@
zbi9jsQbSb=G)WRtT05f-FHLh!62gAL;uZTk8l}!cS|Y}-2ycCDdpK#0fn6%VHkO<5
zGf606Pz~`#ZnvNXjm(xOlreHgL`^V#9<G;qj47I+;o9sl%`gTmp7EtxmSmP6wE)X-
zMn4$vMP$fRKWFp~ww8PiKU|wLP6~Gj(G@-*uxTgib#1bSd<`2q(@#l_|HuQzpyimo
z$IgJ7(;c76c`Tv^!jYL1(ZI2azS#avfqK-aP&J^36zYuo)$80QcU4};Qg9XM4L*Dp
zrUv~_e=kf8KpZaicLF=a0TYOyp}(a<LeZX^!%QNioDjPxt3LN#>2lIG*zee~8p~j2
zOyD=?vE|O*GAGrfuqnb=p(?U<*Z|i_LVai|1*$<lY@4thIr)rQ+YJF~U@8G>XcMHr
zZe~ay^`CyRV`0_RtcErmJ-HMNy)BU$(lMT3zt*j>w1V-->S8D+BI?({z=$}<Ok<jH
zHo4Oyg7#|Y)ewmiMUsCv-_i=31*ha$jlq%M=6ziZ0tJT248w>V3Y%kxN?}Y}muffI
z)%I6m(V;$xn587i5|u~2e7PBW;|5^pqSlCC5sjZn$Aj%(lY02Bzwq^4)5mxKjsAiF
z5d)?Z%fp{Qq7#2>4<GoQU(*W-GBQS?i=UH7AA@a<MM5i~`t566pGMim_#YUMkz|T+
zXL|S)`wXLy7HcVPFLY5_JiQJHbkP(W`;s=)-ambSZIT4Ll@eRD5*5^m#XT%;_6c_|
zuEQ=ak28Jo3%@o-lO%;ldERVIN*))O->xh}djv}@I7Hmo)EK(MbG!@EK*=^jul+M!
zrt~=sL>xtAFZ~zLkszss4iJ9E263AMMM`mx19$YyQ3OoB7C(0{YzRSenB7`q*srt8
zI!rrM3s4|eJl;r!Zh64f2ScAL5A^TKvx^T!{9Jhh6Er*H35C(IoVS<*J$#@hR+eV1
zd-O5mvc9c&*4x|~CV)rRbmB+>GAlNKL0@QV17FOzq@EkRNIE{uExp*%-nddM)MT3Z
zdyuE{SJ07Ng?~1}St(TalYYcDjEYS$1#<`Dn>;2RiD1r5%>}2$S**bV^NN_yBVN9@
zdnLebU()5EY>8!*94Sj6GQM828N^SNjspQ+&<*1}Mv7Mt8h!XzhjIdXMm358n_l>0
zN=f>5K-@Q82dp}B3@wrX-F9X1%ZNqsvNoKm#L<F0C%Z(i44YYQbady*@HV#1vdOTr
zZ?Bd}Pn7hs(6)(YzA!4O`|;b9JJZo~)X}r_Be}Y1N9ty*n94_NXsmP-@${mz+@sg|
zCz$5)Nz%aOx0ayFh10k8kDW}p@K^REO2Ep6H6Y5@r>e%I{vgV|2|Ls$GEN6vo8ZcY
zV?Ju-V9Klym&|pJ#eL08RnSH?xT>k6M4Gx`=XGDT)#W)i`cy%9#qALxAm-50oV!O=
z24RMLY!;Q9gj%A+Mf9W2QB+g;2-q+z4B@I7OOiO=Mo2{wx%39S;4NRtlgZbGUEc40
zfQyCVsHGyqs&UkZw%ky%w2QmOUU(toXmALC89x3>WR94{fBGSX2_}T7F2|}DE(oh$
zl7}M?UU6!Wa~we99q$&Zt+J=2l0hPin)@N50z4tA&!kW!oFRBBzdy<eCPHIB96`)X
zWPL?CEYLxLdN?p4b?5`Du8T$wQoIDV;M5(VF<4Sy^f`-iwWjewGn_AA!@}{tRr)IA
zdEZ>h(|YvqmVDp>vc8}aAaaD}dR*B=z_(Z;J<f;^Su&&~TRhM4n98I4rsU<ULWs^O
zJxO=UMCdZgNJZ7}%w}=^%~z!Y?v}V+30ThloS|lFcEObi+V+Hw1ySa)64hpX{JAdi
z?!K?9rTAFIt{G^sh$L9Nc=ox}{{H<S!$Esn_*X!=U%p@yOAGh$d+{RS5=W8s_#3ir
z^Xrp~QqxMSeuG2ot6RHWQ)|1zzhb<*f`tQCh^oV6Sg42`iUto&#<<X>!R>!&mr4pi
z?4bxC3CV-?%tu7lLcu4NhxTus<x!G5@<Px%T4$e;E73N=3x;qtT4iLp^7@rGAFG=0
z9vC1ftJEIBQwxrWhysoCVTdF=!&el4o*aYiy)mUmr_6=W`n=^&J`@ER$`}lZ@kg+s
z)aF37Gz@TxmN`%>jkTy8siuu_2-yqmwQ>~AZ}juiX7@q9eJSI%7^RS`mBMueX`o3e
z$jF7z7^Q$Blj4wy9|;An7b_gjCLBq4WF<`{gfoewDA$S$H5p=zq|=OpEW|ePAey&w
z_2nHwrbS+;V;$+&m1Nw>fDd9G%yeB#$-3hxl>I&ruHaad1EeO_^0Yom_=Nx&uDwmv
zCu(yfItRxn91$ilsvmpJB8WmU71P2bh#~>+8`tq|-F}RArArXtpW~fk<u6`hfEjsO
zgu@A#hF4L9EUd2j9V0=nrJBDG*yEZQhPd&ze%vlz+|s+|nz(;0k;6+@NCC;Z6{EC|
z(?ib;X?EQ!MUS75WRxrbr}2}bxCo5-%9fN4wlF6)SBe$PFw9T^^-qc=6lKOp;V;J#
z(kz@YWRzAzBuS1*S&?6e-|MNCk*Se4>sXeN_tP~?y+L~~2LVeFYrXFKGV-v<8(=9i
zQR9E!SSx6$;rVKM+MuBiA=Vk^zzlE_qXw|o%xWp7GZ{=}YAI9;lLZiMa@iZ07m*9o
znPJbZdZmC^6!{V@p*Alur&ir%Sf3hhD4pV@W&yR)_McS%^{UCf)-wK<aW#s`O6jz0
zDmahc?ruV_t4L|btp0bQu7sF}#$i>Lva>wLM;QK5CV1rs;Q-e6yE=|n0~rmf=sM?j
z-7XCntOxx?*fuRWTy0@i&nE8?R*&2`Ppda;9Sx;1Qj-bw&<Io;jgRYlw)>(nMr;$I
zo1!J;0na?BC8iCVu34EW8JXanr!9rM)VKp29&MD-``e>X<rOy#t)^eJKZ~G|cZ&M9
zR-gMG>WekJA7!&9hjO>G%<-@bqoieogy^b7zOUOK8#fuQS9*B2dGpQ$mzuush=#A-
zchO2@s2|%mvL$#+EITYe%sM^4&sG?{zc)^9qzAsAZ=^tNz4TF_A%v!%y-Q+{{qaU!
z3+V*OPFh|SIOYMFCLZlN0m@0=CtVIXyDw2Q`FKn+n;RYEw-FnwM8#`Rrv#2Ot3cgD
zsuY&Do727fU1~ncMictTnOCEZU)g`6LnAH<Z)n-T94?VYjK<-kaOGAecg6;$l9$Wl
z$)HIjRBD6Zo6W9lc4yHU_5mK->mRYyoiGe4J_6S+%S-ciG4sc#$s4|7Dtqk1v|XMf
zlHZL|U2#Fot<)KLf#QcL`~{G~UP@l~<|jlUNZ0o+H7ncwW`L|R;&$w|s}kzoDB_k_
zdQmM}B@Z>K)?d~wj;d^EUM3qC#cka!cl5!ztI-H*$fsU~yKpmiE*pdAJYdsycGMVk
zMg?tP<-BqO0P~JoR;}oMDUn29N1jVHP)Qf<ThzPPbbfz^aTkzw4btDExbe3d{W<Z~
zV-*@Yywm&1gd><N7=#`Z8U|bXDR7g6W)!;SsXd-r(G5gh>L)>3U#Iznz^`vAG0Ml-
zWHS_I*#%=bvhq)Gho@yJrNf#h&Z>gJLdkCO!cFCv>}z55j^6oKBLP_=Cr^;v@LpIX
z-ko=sg4{&TQ*{qy&oa9&4nzgPPM5;uJmL#T&j=?new<U{3EW7lO2%8uv$G0Uw1k*P
zdgtJS@jhy9+TfjeJ8Hk#J{Ikd^qdtuX8Sy>Bgnqg-6r6QM}iDB8E-Fx&d#+6hti7D
zMR#24Df;Be(W*STyTMp_5Cd2x>^43Iz4X8et4Lb0Ea!jtGrw}Y{g8SiubL%p1|18_
z60^(=6jf)%#nvFd3BeQG3nXNhBW#mZGxmz94Gi<GE<6?J_XjJ@79oxvyM%Mf%qPA!
zxJInRfsh!b%jb{96XuW2w<L)pF;doP)-vzUdo3jnRAHtn;E(;y4_^ZU-#x;1mnga+
z%ey5`Or)pHMrCBS?aGXwe7nuZtak6HfD^Yl2NNAN$G(P%38Y>e!7L4=h|ZJ(6r)vq
zP2$%yCcHBGEoW-bkxk&kK<+{-(}Y7jtAgau*VeD?Lq>vbg0RqlVG?rF&2lXS<ih?|
z=+aNT<-`4vIT%zRvRlA)B)6xgn`W~4W$ZKzZCG^bcUy(QT%(91i_>i0DANumIJYiO
zV#<O9oL*+-v>06Y5If)%saNiBqRQ+MB6R|8zsR+4(ko{Wzz8yLi?7F<Z+*ZeWt+L6
zr;?Iz#ibSxLkKUV-4tDoxdAzhM_-V*oDwim@$@=JMxq(#B9cRTP0Df4X>Ec*eIX~P
z8EN=)xy$15jS4YTxahS8#Lsy*SL8ODVGw_#u|vumr(Mm%c?|kBh{7v&_r@#-k%%g)
z>=28lnhpMjl~G9{6WY?5z1fa}RThI+O%VLi2TV+vXn&nITsPdj0UfJEMpeVBOQNk#
zkbtX<cbG4dXfn8yq}#>G?|V+o-RG}#csqAg!M#`N{SMfdx;~DEY;a5Uo3K`fPa*>*
zLeE2+_j(U+K6=A)bS&Z>Em2p!GK0vgt80HGTt56UR0^ik$$F@IO;oJpeAD2ZhxxEf
zm#pRCK{+_S0pEHuj()hk2cw|rmvY$kYI&n3Mqwj{nI>8(%&!{Q2%fWfIlj57=4GB`
z$7iIgw+cIc)ja)<jh8Ky7flP-_1-2a#)w8j5f!ce^Zx9BHTg-^lXS-uKlq#32rutx
z*xQc7l?%ZIZ&+1e^@^n{K3c|nRmWM^R|+d$)-T@Bcy!(dFz>aj_d3$UDH$p*sn}-p
zPoh&(L+`092C1*lQ}XHsdH8IWSz0!IExcVk_yy}0z()4kZIUn_<_|rw-(^OXGARZm
z_pdDtGawF@zda=UI9kr%&a>&S6Kkm_db=y=xO`&rbm^nywG4Hll@_Q`2aiMJBz<(E
z>pZb>YHi1m)^CrPw0q_Z8K;*TP&o`8uXaoi2pHqeoD4Rov-tSNCWwv^Dr*Yldi1P;
zhSIS`y3|z{gg=`JAC*cPgXswbn#hkifwlEoSp~8Ye4~lUZi`M=@TD~v8lHty0qR(k
zxz)ONIU-c{Ara2#A_;h`&qy!pD!)NgnZ6Jv$r7cghk2(ZiHn-Ya=z3I5^))VjDJ+J
zPtC3Qy0@gC`CR1?ivv>LNL^p^Y*lAV5hum^n$kW!^A+%UW_Q~?hbj`)#eAk}rQ-bj
z?Au-DQf0K-ixPyQ?_D4kD^_@^hzZKxP7@>aM8%QEhv?!#`-}C*NHi;Do8685@MPDX
z4Y^%BJCejA@L-?MY~Oz0qM5eQ@M0LhEbL&6tY0*WmtG8G)#MQFq=08NE^>))Nx6>T
z*_lD5d(dOjtvaBf#(iJ-{`vu@S5U{acfzt)ZDKW<pi`Y>vwbDn*1&fc&d<w(d{9vS
zP{L`Q-5<1j9TT?zYt(R`K8R{9%L{P4#3v>&t<W!47<dbqeZm(DNS;t1Sam+|h=Fob
z`Y{QPh4FFjkpSoYLU!P3ia-ML&baT{tx&+=hNl!*hM79!kQhzm3Ft#!Ob)%<dKJS>
zy-*y-w$W9P50Pw;6H&9mvTo{v)Ipi6g@#K=K~Ux$?59naue}Z(oE>Qy%Vfh%ab3%H
zt`d-&ox?N=y^JDS0hNx6OW|EAdKT`wl8uI9+Bc0c_Kca+Yz}H|L5^m%+(GX^E-8*W
zbN8(1vB8i(2JsLKjY^)TV1OZ2Q{;~(?&53q&ZUrp)8#YtAgGJZ%L$>1bx$<U`G|Ex
zo8hx<209vx`^7^J<<K-gVFF}^)I?WrUS5L0F8D}ud-H^@KU5>@4j*-$vM}&~4Khp|
z7HWOfQ&P^iDQjUKyb$MIgX*jf)Pr>V7U-F1cnE_bw#4{|cnCKx)?FK$Z~M`~V;BzJ
z);~|Bh{dcbJ)q@nr+Fjz21KgL1a-0JYGUP4KFzCO>YCZP>26W|fhil1<O)LSlWQ{E
z^<SMu3P1eIw+xTmU7pJ3pb<<cRF4u}ma+AvLG(vuCpNC2?wvN-?Pl+tWD{aVIZz)?
z&O(6SAKP(aW>tIX(nnShX6C*`S)EwWh<O@*0QMK=W6L(GQ5^Gp^j9x(Oyb@a7@WMT
zPNcyIrbkAEFt2I)Y>@FmHUHn_&qICX_ae2=Th4Tg<#Vn#qEpGGmaX30-tWoYT6w{s
z7SvY}Ap<<be<<o;SoyCmo4i{o2?F-6$=ArZm6~%Ss&LMcSX2Y4at|o+Uiw@$K7QI|
zE%oD$UOo&+=$*&DA29J`Qkb<VmH+Y*Ulh+N#`VAwx6a2INQ5u~TH@CwjWaWc^`Xiw
zg7$Sy{&Vnl3j8vmw^;7&!f;_zk}XregDEiJ>(mpwuD*X^bMo4uc6jlwT1P`@S7(IN
z7G8Q|G9&f`>!H5QbEE!wjeD54P1X}&lNq>buV|bYSv|)CJE&@q7D0PRc3UW5S1GAc
z2YpKXQwC;>QoC->9AqKKq5{G%^!Y^I?ZfJ6ao$W*$RR4d{Npo8^Y#aS@%B@2{;6E%
zZ9V=>Ucm>CI@V<-d*X)4eNVhhe<qDEV&0{|=y%{p${%<4abZTfaX$G_=;SfU8YHJ*
zx(^u}KTcx6g83M8>l_;l#s`*Bx;)*WIh{6u1171X62ItxSWb4*D}TKYX6{DZ6v+At
z3#x5Oi5)We3hP2(N7eSUg+&;s-v}Y=2>K1Jek48bo|RS}l$`VIVX}@x!c-^-Ir~=j
zCXYBG8`LNZj64{;ybwrhmrp+dcgO0ICIL6WhXG;G6*Wtbjt@<!qZ09P5wG*(O@`O&
z<}xsg7Z3RlEKO2M%*dDV)D+oBS?ctZ7&y)pY02(I^-#%c$xuiH9>&HaWpPy6e!n00
z<ifyx`3P-c(_6COVaKK^T_}^2JeZQgzWF|><#VCOpC`u~rbJmcHYmang$Yds;@(cB
ziP;e$v{h5j6JuWqTtcU0)OhlU)xA+Kb_K?zJq(j99-NNXx)+1$;kP;ruu53ty2*s(
zJ656qA<fklC)fX{t9K02qzl>x+nzS2ZQHi3X&ZOjwr$(CZQGtUrfs`>`+4`>joq*6
zN5zRaCx29AWo2HOd8H+`o#?%^(Ry}sH@oGz@F(OiO|9OBwe>fO8@f8oxpaPKK7yuZ
zyzQH)Qr4M&JyzBcV=E07Gp@h=8=KdVmhTSTD6Ff=<K@*CR+!+5s#{XTC`M@eIqkA3
zKCx>a4!*oLm5ld{*;0^bTb&J`I1Zp#M6jDnd*qgUfFY6NZG|lvxt!g1$PQ)_lx)wM
z-`MD47;<fel^wSXMIP49H;Tfh{bsB(!4q1~WJVa#(M%fTEQ}=~krU^uhn{;6qv`nl
zb<M*@G^6RRe84Kkc#Or^8Q2q)MG#hFcMI-EGq;hlA=`S^@oodlj75%a&$tl!u1~A0
z?tvasoC`MGfwW~A-lc3=VN?$-YE{o%M1j<Zm1|TX6-=$H*J0eGHZnULyx~?hMuB*A
zG-5+TTVsJ=s80JxgxggNmu;ZxJOVW5scMxhvKjzyzr$vfT4VcT3v6CF-hTVl3X<mC
zI6gD_b;G+Ero0KIi>(5=5v~c(shbJt{=-0C-JIGP6(~}egJZV91?CBKhnQ0I#7@OC
zS^B?qFMf?kI6~25Z0kS8JLHI88<*<v3&W9!S}^j0D-K>L{3FB;IjfByNFBOc6igA~
zvN-DZ80?}0CpJo+B5OJpiX&6Xyz2<{sH#JjO;|7*fd#VWmtVFPD7jcp$gnmH)Wd}F
zV+fV`^gAMfr;JgV<MqkTcd0TDb6xM{sGW4+hT3_Jbl{q{AdV;D$oUlBm>{^B!cXc~
zQp@f05cHYz0xP|+wcc^F6d6oyUvm=HeqYul2TFxL{4-2#X-!(?kbY(qFt<Gv?o_{^
z)h6<r-&UgXPg0-TX7Z?NZcTb~n-=II@|33BClD&?H+!=jJX~zfGYNLVzzLG_gt(-!
zah0yo(o^UAxXfM8G;~9(;7!5&B_Y^+0iO<_Bk>9&rF9f^iyHu#?Pq$oMR8Um%z6ex
zY%51`psAQS63gL#9SymKQ5@^fQjDN6G1mNxsIlW(14OT0!><0*SHsj5gCzd#&0gai
zi_zi*LpkQ2*!9x)lTTX(#G6bJJ<9N~B#7RXcZ;<?DYBS{So_B=qnp)XicZ?6P3Oq%
z&8Ke3%P(gbY3{P67{)E!F;@RH7wV?UIS5v|+jeq-nX$WVOyAp>Mu*1eW>D%EZ<-a-
zF!M{$3uV@{&qF-t^m|}iYwtKDto**N1XsW?+gdjJg%)F3t12gjjg&91%^b;XVRGwp
zmzeW)tjf~p=9|oDO~IkUQ1A=96h!~As7;EJ?cFUyqiF{D7|n~*t9S<wL65JS4P<C%
zcK=gWs(#0!AQ#+pb5B>~Cv=30{19UJt?r%gr5*aqhA`ZOMEar8>=czHZGQ!+FOU+i
zPU6y98%uffe>5)`@s(C9Lczm9W=r2H9xo}(%Pnt8hDS@=V*;o6LH`WaIP!tQ*)Av0
zv?g~rSvc@-fNI&qV`Ch#6sw2<O*jLhvp|xFTPcf(zohxRk=9erPY>A$YhTf+Oy0o!
zYydY7g-J}`$1)~wa9J++sIgTaRm`|YppG_wB*2nLladAQlV)l2KczeVPw9HvUv-H*
zsvZFr`1RGe+#Y8?^cjAxHlAU;;@M<MuJcR#-tQg_(vjFYs^$Ut<=}XQk)HZ(Ugbby
zh0>HPMWb2sfCqI;C(2*98NfdWk}x-7F%%f+0;Qo_YS3{?ojW9GPq+0Ox_BFjQ(L<L
z3)YsmK3}(fd-m8SNjE^{XWYgi?S0PJCJ#<~z!<k~1dtvbPR(sju?#EA1uF1cR~CCk
zYwfEcMQsUdo212UQZz2Lj#kwjoC{8x>4cNB^T_t7(xrg0ZmwnCXex4tibq1vA?j<8
z2Jx;7cmhw7H2sl#=jMtmWMj3%eImBUWht1~gY`-@Wg*;2i-5mt*Oh>MMLVp@VZ<>#
z&t@+kJEm9*dinua5{V{Qcn<g2K1t-KfBqLBatZoC?xf{$rG7jqyCmj^Dt%<R6P3oN
zsFg#!c<6kH<lL*;7e~{yU;aNoC7X@7{b0KUu#AsrpaDsqH6UvGKVm4ffBcDGo6s|$
zvNgr(D$D8-Ne0O3^JHZA2M_9q{Sae8vHw1?Vf`!?eXe=5u%<^gL4QL2rRDCQDTz6l
zxsblD>T?Z!YoUIB&B%Exc$i~yoz>^4L;u}R(?Fcn<vECyi|I@qXY2{UjA%38Dn`kh
z%^O+Qq`OhBXj9xe!NA2IW`yJK9oDXVum`Ct>>FeP55$)!Gwjvnp&Z{HcH^XEiUxxx
zJ78zgGiS~8pG^J%r&EV19M#k-p_&^|s`yh{6KOc)r^=}*A(d<~?cYHSM{$ctsHlF5
zOa)iQ+=4*O)`D3><SZ83J;Elu;ae)@EH2Qk5=GG1M%gkRiDS-Xly^0`ue$WHIjrh_
z&22WNp^a@|V3$oO7OABa9zGANsVx@UjNVE@s>-Y&#+C2Uq=O-aynEOrH|G;B074WQ
zS+M~U*r$!49Mro3A{7|bxdEcx5W7GS7-#{9^{?ydw59Ibc6f2`fnS%Kj%V)R){bSz
z)jxl38yw4f2R!NS0_P%JNRu~?g_y8<XkWJg5Y(bt80B;)K4xL?<GR<bFfEMZ<WJ2e
zldkt!Vdle65q0$cK&;p@N4M~^`@{#$xKPK-aKZuh9<0b-+Dn!3gS`6>7D_`;0_2`c
zJdImuq%AZ$>3P!&$yS<3x}BB%7EQsrq?UpV5z7d@p5cC0c&D$UN7vl{uV;FWLP`R~
zWFoRiLuZ~)w`)y97p}ei7+#rj?s%HwsUi?k$V>4_^bV8umXWo47b%tQ?kz25YxGU#
zF^Tn07aUA>j7^@)u*<&qlWv)*w$7wYs4*(1rjAW|aj_;|T|{ZaMr&01a)Bsvp{Jv5
zaEWLVw+%$trAamxU=Nw&W~@`ixzI$`sAB{8O*iln`Nz$@iaGX@4knp{%-~cXH;#vH
zkblWJAz>_bd>DzQeXuzJe&xoKOzGNO9@6rLHr(dg*sPf=%Zb%@;>WzU@+}w924GM1
zNamhr(}do(*1Iyf;duxchk23*)*=tej-aW9@3NgmRKD1~J2k7AA#C^A^%~A=bZFuU
zxjx9yBl((jp~lz@?`l2#nWSB*{>^rQB^$CA%%b@=0Bi0<9fGlNq6$Y37F}>+wQVIE
zBKkIDRVY3`gK48lVH>@^(I)Y;BJ6g}nf^<rVl2)m6^p!t`o9=kRBH<OqOd+-UxsIJ
zn@q)N-o;w!FifdipEh$!q1zx$+QctO6?yzHJpq%*Lu_LBF8r4|W1#@#V9_b+8g@{4
zA0)WwKGYHYf(tp8%+nlG`&_xIGp#bY9L~5W4-KY%6`-O8cJCu&kAhCDw*=nql{E^F
zI)X)i-?7U?pfw?9cviN6$v}*_rB!6q{G;LhwEPX0*f?4YV^i3$EIyOM)TYXrN~(|=
zzgo!1slSL^s_>kUxg%#<Y*p9_wt^K?2ch0o`7B9XHv>+`5=_<1RZv7<Pi1t$B~>N0
zn_U60m8<D#_#62I?!FuIXkEJ!42gFI%S1Epw>5BL38+RN`rlFtEUW&HWq)d#e=qtS
zps8tBeMq6P9Rl~+jCe#a?ElnyWH5^vV}>*^iAU0G&D@Iq2jrFo=n(Wi?zzh!fxJx+
z#(prsM34Z25@{$KJGw;H$IkM^12B>Y)&B<a2IwjKA<b#a;ZK6mtI2n0Up|Wu;ToEC
zhY`LAEb)$ebj1<+lML>1Ed%-}ohBv;M&6<12e@}j?ZL2&K8~t#;)Hy5F(`+5anT1q
z`os%@t_``U1z{v?Nhu@>Tak?`QUcDQ0CP0^0%MMYhxafedEJST`tU)==U43^xXuJl
z^|%)TF%$rL>%RnH0S5ps7?4CPA&OPN0D(|IO~dUSZSq|I-8i(rjo7@tx`392ng<9U
zIdFuF6bSrz)Ee_IUc@?1(J7PcR}cD2)YUXlA#grK2+(LWp)*h9ncjGWL;ZW(u=WgC
zLP1qjojz{8{IU+jv_L3(>n`|OML1BT8%@)Zzgm3v^wC5-IICs>2J!R?e|OgjKoCoR
zjp#g-#U%+^1Pt5T36pWO{smK>B2zbIIq1#^hD+4YPe#0cbf2Ngqwj6xySs?&#LQrX
z^%+y!)d{iDuDFJOY(~CjyY00C)>TOupvLN0%o{r+2%|%CwDkse+l_>%r0xUNV@6Xc
zJEz6y2mjSEIc!%PeB=P`-{iONP&5|7bVnyHvPr67#3?08e?9@KriTZW^92%vOi3@Y
zm~%BS2y0KyhdQ{!fI$<m3C?Ty2q^GxVA5D-QGh0^Oc+w0lUe1Bh<RC_P!-qAvvq>+
zg$Vg6tY$9}52dInQhtQWc~mGA=k(g-wI2ZZSBS^+F=#(htn)5DdQ!2)?2H2{@C<5@
z7PYm6D*>#~R3wQhu+oT&nsNb4?IlT%8c~)+scz^sv?M~-?1<4&&C{$SgMNxZZZ+xj
z-Ko8BGefKo#m@!1>$0bx7#?3<3Vo`x@gV&gUi9=CVoC&ef?x-fh%XEfM@j@l0T)y~
zp|wyPO#c|HQyw7#c8CP$tK|C(s;>k}BCieD3Qzh;^c&$LhR}BOj9MF2-NKOlk0P#{
zdBeHsJ`&|^cAad6Zik$huVmGC+Spr%K~A<Z5gR=VgT1uu6SdQ1dCO2iLkQ_!+1fLQ
zBL^<)f4NnBTlKzST?A8;lxclF2mC@d>77pfiYJJx2!pkz|0MPyc`S(ED)wDkz3PT^
zs5UjJ`I%SHRv$UzpdTFa<bdWMVE#7gU(b1Y7~vL>eF%dBu6*U3Iw=Y{yv(@`$R@tT
z+%(ZrA$&~UAQ+f%%BUFlP3NXsMO9S%ViR3o5qFpPoZ&hBHC_4kWcMM_5=Bs10qcD$
z+GpiV2o2HUJW)$>5?!gR!x2MvwN|>m9E?I1pPqU2);f+<Y^961S!fXHe}^Z_8~C{)
z0`?cUCd3&pCI_3rnhSKgzBooQy3iI|BD0iv8V7Kew#4z)(r>krj((vudc*`q6Bk77
zOmisMwp2g#3%yuNSjnDbI8190s$s2K63Wmrk68z8@V8dKpd?~rhh3mmJwgLoiSCVD
zgERUYJgt*eU1erio{hbliH<!+xYW>*aH$J!ZE?)4sv3&zRM<vm{XB2KH7Hxg9qz-N
zY+Lh~#6e9%BL%lWSwEg9Q9zKg&A5LKU7-!V1G8Ftw$}vLArq$BGK^`lxYW}L2`h;h
z33@72+O%RLJQxZf1@r_rRMlehf}u7uxq;=D2P<y!mo)K)&WioLIr>E9g0y9?$tYO>
z<JttQ3a`hA0y(Z~S3pU);5+KB{{i-yS^f;`3Og$CD%fYe$=-UEw}1ezGWInnk&-V3
z0w@+zK)Xp7Cffg^^mJnTl&8N%&0hHksx-4kdB7#~<*$UE>?-9~9SJL`pp{a);ur&_
z`f~mRv0g$^!`9$TIMxF^_7y(&g??)MgPmqb#-Z6H<&^Br0Po1^ls)JhI*M0$T*1Y`
z8O}cJ>~>(J|J3_I#fTg1QmvARwEiHP&E$<S1=y@xAFdqIL{f=lN>GDjYbtNI3ZyjC
zNOf)T!>k<qN&kC%FjdIT==?<?Y%gZ=nnWs0T6q3puxa1202f%Nlx4yp1fgLFw$&8e
zP<shLau1^olslv}VaC}XUPaa970brVS%E`X!feWP(TiP>zPLOdG;rm%K*Yt%@eI|R
zl1FKVxKzDVHkfr*4OkRINrsw}Fako<wgh7JV^px5yR!2yS;_N;ktzL%YW-T>#hPJ6
zp{`|(!*Sv(gbH86&-w40*RM&($7l)B1kH!?cd3Vgla3qH%;bY91BWuvw8}6?)F>*Q
zB@nyS`0+(~7u$oqhjLy=lf;v-QLSkFDA~y{M1c~Cm&NC^@?_(xjXYmk`$Dpg3!%8&
zy5tDaLZHaLrPe%zZkkTvQZ<-AkW5fOK8RgMO97DICvcBID(ERE`MHdJ_!8kJ2-553
zVhXJyw(p0hb7jL0;`k@GZX8&ZQ<m%)y$PpMAXblM@0ub;iAzEQuX=x!U>yz=so~}Y
z_7xY2gwOZqon%5`Nv1_!pkY`IRW02Y?^{_#52cAuo|o~)=0i&JV?8*ry+22|terw=
z&W54R)=xHG<xhTA>}R6N+2%22g}N-m*pD47S@w$bV2bqP@m~5|S$3`;Ig-vWx9-59
z7&zmQ$Dfwv7~Qya8}AJh!qHb21nS>vrF;{~n~E(K9V9OW#hZ$%S#+l{Oa+A((wBBt
z--<uuIx^OnDbT2X{7O+%tVyKLzxf2tj6vZmdUQ*8PtZM9<-8H7+H{L}2Qbg03ppCF
zcQt;Y{AYBjgNxYCsnUB-!M5x3(>kn1nIYRo3GJ14!%d*J0s2=|Zf)azOXA~z1b>tK
z1`knpugbC_yz@<!d4G>sSH!!$bSs3Nixzo){GeYsal2ClPpiD)1BZ4dyZsW*9_s_a
zUyF}TxE%K|)ZwfbJdSFjy1AL1RN_eu?iw7}M7E4krosYB(&1LC+J6y|1YMSa20b9e
zU9r>HaMioVUn_4o!;u`-E6Ii)K2*}CIWp|~tX9e)?eEo6DIt-DOQ%$fEj*E*wJ-BM
z+(nLd5EG*#M8URL%o}EV_il$yrUK-eAtNGWIHt0RO`7G3#XIXvOhO7PUKms}DJQP9
z5mf(0)l+~3m@ZX#sbdz?mc)z1pA^)Gl(oR&0{4O+sS5`+qbh{X^BIbTx@F@Dv;AHz
zQ&AKhdK4KR9^9!3gx3|T$rusmAolhZ(=72FFA(Eu3uf345%0702OWUgh!Gfc=`t&`
z#KX(1ezM>FZQ%2c^+C7I(Jg0m8LFs2LV55<GN7Q0UKY#3{$WPoA!9Ze>}uemV6{=a
z7B-L=LIlh?x?ZT76WM4JM`LKDU)TzV#Vz~bHv`ZD`s(`LIRZ8NsQxn1Wx2fWHjb%w
z@!Wpka~5Zhuw#}a9J%Haj_F=BXOE~zKKm%8s1=dZ(G~7#4dDm%r=w0TMGFI)B$C?9
zFjwNUF3p|%BqMIJV$IOmmY-q`3SU9@ZDeS#Gm$7=ne|>3pF0Jz+~n3ldq(}{L(8eW
zN$z0`^-xKXwqQDUei-bfVYWdS_(BvgAqN*#f7Xh>70pR-fkPOw4Cyso+xHb>z0E$|
zD8CHaUC4e*;Fm*q*jxeUSJpkTE_TE<0z&Ces&Oz8YMa+q*j{lpYUMB_ys>i&PWf=i
zUDbXjuZN3lm~%2{-^>0RkLu`~5b>nxN`yM&`&l=rl|KvLCG-qK3h!+2)<1#P(rb@o
zQ?e~?CY^*Q`L}9ASr9vzGpUz=)e*95yN$>0(y4k)dX6lu+}`PW@RBE$3kTXxfa!HH
zWDhA4!sU`W?W#2$WKGJ+Q%ay};PI3BqN;p{X88saqINYR>%61);mWoeJkM($PQEQQ
zWRDb3>)9Wz;FUT<MeX2$Edn&PanA_n>6RpvY|@$FSBDp=+SC`@*iibhjS2r+kzt_8
z;f{%Zyf86Pb~nN{y_yjrtm)I;;GxuOLDd#ax(vas0_lOR%J#r$lNIg_&LE>ngUE$#
zF{8q5^P(d4quq2NodFpcPhTO=mClTp8}P}nA#!H#pOT&21(sP<7zb0sb+G+KMiV0D
z;#C3_r)1Yp#s9(}GFoi6<X-Evn9hM?1w%(un9hik`U-Zcs$@l=0R4rgqoH(aV-URp
zA%B+8pWF`J1-}ftSa3Ve{$YdMEbc1$BbHT0qnJ#RCBq7u%7$;75l*JX14_DDVmfGY
z<c}m`st;reg2OsqflVx#?0HJVXT{Rkm`wR^{h7Nv&b(so4vtAr*A#ZfP<)JeBb9IE
zwg^~o4;(fquIQdRzfl8|!oHZnsTK3AM#J++7#g|?Bj%Mp@Z!het@S@WQP73A)!xv2
zbY@<dysD3^;Cchp^Xq{MrR}M&D+dgjig|qoZ09Uv_R*v6AgR62D_LtyPJYbYW7u_L
z7~h6X-Ay9^&!3acjKQq*5g}*{=F2e1r>M3?oJ*(HjbA<lc>uzYjFgC7#p@8YavuBY
z5Da#QwL6fOfz2UWB;K|+uP}wsEZ45v?7)kEPP&}a)6L|l^Ppp=p4Ty<`yX~5NKjIE
z@bvJ*G69tcH?<#9FfTQ6_sDMaCct0G_>$en)^3WII*?G=n7ew9c`+=i)TKe)DEJ{L
z77J{YB)t&^PPIorD3~pm`C<rFT9Pei6sxy#OU-MaH!D6tIma?U;~p6KXMw7ATViIQ
zppsaX@I=yb%ZjgWdTLSMi{42~IkPkn1G<E=BNgR>Q|1MgQrkQyU<>yetp6-(L|8T)
zGadsPBrjj!FVmPU43!=-E#ZkBEm%U$&pO?x;)J7)!=!U7tb=3hp>#asMN&E2*^f3}
zfn0CTgfwpWpw4Ovx-wxl=}V<oI)tfF(kkWE^&zUcTs32i(`YELz>}@?)9`(~MYVWx
zg0x8E774>hd&tMJnIf_aS*)zQPo-Bmv2oYD$yHh+pv9%@9%h-r`a62n^TBDvyXJRe
zFdpMHa&{Tw;s|Z6cN#6nd*J*H^3LWaED|sKuQi?x8v0v{E(pO=I~;PeNH=I*w)3S}
z?m2Y%-Mds>ye2gCTBGJ#=f;pxrTnI8^ni}t0+^_gb|Hwf3Lu44TOH4(2%;YJ^C{2m
zoSxn(koO-q`h^SHDtHAH6+rdWnA(cRxOz_Rg|B^fF^Y3)nM#RQ(qw8Efpm`)9-6Y>
zPgZ|tIRov5Dd<&cn9aa#fF8#g%MjWI!Wxyc{aO?~zeUfS`$w?lwH{*+fLfnug;}u4
zYAZJ{#s*dx5Td`PwxB{-6EZ#u1}X3R#qa9aUpYJ+GpTnI&|t*NM#q1=+2d|4>_-Fk
z+pTM3lq`cqZ~gP(&*xYr`F)OVjw@hUrM{i2B|Vrm@r0nEsLteJBp$X(x<pMQW;K4&
z$>QGjk+h=8BiMC8>acjmF=g-<q{6R$mYn-Z{x2;@AuN?Ah@SVh!t7_TzO9em2H%hR
zG9Lr(zw2&w969p5Uynorz3*H6gKgG1OMF{Ti+gr9pL?E~OV*caIWtw~fxCU*iV?rA
zGpGG~-gT3&BVO(*a!=~(yZGnsk3lgbb?|*|wchO}A)iJgnz?Y8V0N_gPct*nqkAcA
zQ0F;!ylIHEZ{okCDvz0yIp79E1FZLMm6s)kN$cMt=m56wzPYEj>{sJwb+tLM;vKbg
zzP$6_UN$Y>TAKrcdOr3K29~#HzVoxgtJcJSI&JmRI@*&i7MM>Eb$g!<HiVIB=*(8<
zuQ~q^{rZ@6k#7SBYjQ5%$ny2X0%QL!=fL1+pB*=_gt6brU>7BQyw4UdHFOykMc0k2
zeN6ApPMNo>g?VAk!vV*mOAX>*z_3a`aNtkX%TZKjuT6U=^gSBRlC;uFptf0zZb7GB
zz#w9qQoi5?j0%fN-tQBcqLFDIyUd;E!N*VbE{2<`?@Y=9D|ZpvpRB%ymfk?U#1!P7
zUX8bdE}qHp<%G=RD$M0_Zf2Z2*Q1@y_QWukJ(kYYxjno!BI5EFzA+y=^j!32e`Trq
zn#3>We#Y)E=hj!hF>4lnP32GB{R%I9IJW%fK;bmZ%SN`XCc5Reqo@9&p#&<Ay9ZX_
zn=OE!mhrjMr1&^&^RAZw5xR25`@PXyU(RRiDzs6WH!EcSu3fGdWM=uGEKeuq&q0OP
zO>>_(muNI&p*>K4`iQfVCl{FYm0#kMq-Kt+tq}32+fDz&0GzUX7|`eHsQ%s(TLh4D
z7-^a!_CZX>NEC##!k2(XQ-f-|v}CUSFDrwoV{Yy8zD-FvtYU5R4kkm4lyXTN-j*<C
zjo--ezqMs7okyephIdr)arpc%11an$8hzjYZ?s99SVPI=arj>mnHNS{l2V4aYllDL
zR7p(|SBQMGKLMp22rFA0`dK5%(YnA6C&MSU1QYU+^I$WLEKe-NKV-s_NrBmxpMAk?
zRkPN4dFXdaFZC~9{z(eAZ3?a4L~~$_d;S&h2O8f`l*ykxs!w;m$6qvwUArCS+Q=9V
zoN0%X9%#DZmMD{VOfcrf;Y>MqwJzQr%BFwceYD}-JJo1w7ClAx`pCgMUirrL5H|RX
z>Vfte@?Wwl-QJw|Y?5aZ`L>W5U7~pjf)b<e?AGRmSOt5=UT+<1Z=i^CNPMu~MD5%2
zZv(v5&4@)hbmbhOlO7%)i<>niIgLl|-8&nFDkWhwBsmG+-QR-?P#AYb`??e-PTP*m
zh&|#Z<t`g~B!>VO{3^MW?%R^Z0@fnL!JGZB&!t=W1h!+M)VC7XU)Jq~wHJSRp0+gn
zYNaqL=W@Q#xRRzI%L~e9g)8VTK5x5m8H-T<uxl#(f~v%R1rdA%CE*eQ!p2XbLM-xW
zO92r)6XvC^iA)axp7*<7@i{!J7D0`aZyE%l)sB>0D;^!ult~z+t{OHL1J$GT9M>D=
zP<HWnT*_k1+(=7)l}#nkiq?Q`N$a6ASx-xL-(odcwdD>B*~v>zFWy~Y(jsna2J@8N
ziZerMBWN=xyDJUw;k>w{TKlr&!mX%gY4U?zXDxZsW;t?yVh_AN!`TBZyyBMk-IO*%
z&<su7eP}85wfwV73@dU&HxsXrqS^-L@|^lD`cpuL8XGJA=B8ulyEYhcrj3JtiYf4|
zl8fCe80ng^^Hq0lO|iT`eKdK0)#YuW+pJM2|K+=zlc-No4he_fyL~ivg2&|Z!R}+I
z7e^QvJ<9V@cnkDJj@?WB6&xCRTw2;X8Uk0!a@iXDd?K<O?eEf9-*$Y2Ef4;?zSl>(
zKNc#_xGnDFYbUgaDIIFj5FUvSKlfTC02&^;CJPL7M=5SseW}5m4!Xx(!m8dD5BH$p
zl`l@#<8k3as^-Iv!09<<qReIEsP{`GSDkyq8yvSdHSpohGcMK#7gNG;KUL6P5)iVV
z6@djThAhN{X55ejw~4gG*zRq<*A8<j!sOpN2me4DW#BLgHzroty-l08K=Yb(q;>Nw
zKA%VVWG}c&DV(Sn%nj950-pdFm{#qCS6(!2tp{QV&xdj6@jAjLVBpJLjvP?9ai8yk
z2odl!HpggU(lo+oT5vo1oh63nsOjWs2%gKzosa(mRBVxU>~)1ecSG30u0j1<cKcOT
zg&WQanvQFip77@OvQP8(f#<1xru;bYfPqdAc)j6^0}5FWm@G^EiaM;SK|`<q8H)BG
zW0-KVf`;Oj-c7n@>@+^7_ni6PfmhHO7GAqBJ+KL%hHN`a<W99p=YXf0MxHKs(ngJ5
zaK=<sKrn%2lbqJuBW=^Cy)U25skI=&ds}5%Ndh>#-{?QOLL;r$PGw<I-Z6>|`Bn1b
z3^OI)7u6D}abq$Nk~Sd}RPgb_ChzDafr*CM0t{RvDRkCc?=Py;wy4=X|K(`#eA6_$
z4dGd$-hrxC(3X^9R$HrHoSp?+Y}vPQgA|h=-i==blvmir)u$FOP2{b`m{axNvVN?l
z_(OHYqJ*=snJi}CW_Y{o<_vp1hh(zGJct=A`_Mrj2eliEf46pzTg?G2M42HJ=`c*4
zQrWVL0Ct$nBMpni29IdA=rnjK;Xf*pm5u(El=VrJl`nk8E169HRvW2YN~|PZ#Dl4+
zRF9ZJQuE=KJ;4j@FemCX^C$bFn9)-S|0khoW89iJ`Zdi7f6oDr^IkvdTrC4S2$>Cg
zwxDL)FGTHvkD+I?<8h3V-)P9QcW6<izM-qW5h%sd_|*OU@-)P=$xi$dcuvTxPA3Sc
zyODm5gP=SVSL$NhHkPzH{x_vlp;qcdD+hmvRmDZTsgvz}ZCn`Jc*K{v+v3jXgAYl@
z)37;;qygiFcI@n7+3Ul{an9QL7?J&m<>o{sNB%Pj%mFj_@hsCXeBA@wvPqXx>|C@G
zL~h;s^z?X84-z7qBan?$p->x#vl&LEvi}t3<aPz;?NZSX(Kr{HX&JuEgiqMNk3o57
z!4h!)t(R|LLT0Cu??@)k-p#u=#F!Gt$<Yh!rbFj{jl>@|AzhZaZ49&7G@kz!>iTpD
zW>5lDl$69CkIrs=7aiZIqTF-et10`An$_&RDe1aM)~s$_({<h9%2Ivn>B_LT<Zvx#
z%u@G5Zu2KurPD3-F9U|{URt{!C-vY4ZyjS@blE%W*fEi2<c6JZ%T$e$bIc7|az$%Z
zNOL^QZ;L5#L*I^5y?vYOLBCPdh0idX>+7VWhoh%2Nf6Q_uN=y~BaH@ht*CpLS={F~
z@8H^;O*FjLjX{G0+7nh-6dTV<jrc?L<PG5jKUYt=nXPzU7?OtJEyA4RP29yRInnr5
zCe7$h<y-Gooe`m&WvI<;s(Napex#m)DA7rWym58AiY3Uz>zed=!;z|qRl_Mn*&Ps0
zStipdC-vxow7<y>yHI+H69oXai?&W*j%@g4)fKD|s_Ll6k%GZgm6$16quZyZvqY?`
z(^yZ;Q)r8E!W;T)(ip)HtwIpIzp`2E*WyC48=u7Qi}zo5y=KJK!v_cPe7dP?_)m3t
zIgtm&C`zlmZe@JzhQj}Ag;9>!Y}xd3T#ql6?<=OUypO*juQ=0lG!79d{IqNxjhzrE
zeZR2z>*>eh6j>$?Z(>K@SP@=@ng{rPdNFKce+@txoA-KmiIbPvz%^w?4|B5bxKTYF
z_e^Jj6agV`eZSACm7wey|3CKE5eGTT9{FNi^5*(lHE8*)=m>c)GjxdT{YY{ALrCDR
z4encERZ@zGpX>nwNzgU=_!0<-0S{_l7msL)(Ju*^gNzs<jKiiE{kX@t6n6Z<Mj(AB
zB`)U7<-!4uce6%YT`Y20+DO;GyD<3I!G*v;HNGi%9ga&704Q}7p)gNE=}C-4dZNmw
zJX$uGVlMG#I1D+6iGD=A5s3^{EQK3$r?2_u*`Ok(@BvTWMlG}zQx}Ftb4nFzK@BNG
z<-L;Ah0bb%0sKZ(hvr%!Xe>TJ|JMawmY>6{1HPOY#HI6oMFQ&2JTpZsR1I7(MRvQ#
z>H1enj5cH(s5oylmLkp7;7kj7Z#s$Pteek`7#~j#ACirGm+zA&7dKmTV1w_d3)=rU
zQo5uQec**Y_uam|I4<N8pv#c7ps#T2dX=;|zfwS$Lbp}@X4h*<I(kNUb>;eK%d|hA
z`wA25GulAxXm#l?*8?+;NzvP$7!K<%Yr4l=(yD<mPLzFLTUckRwycEfGo<Wf7}?{N
z0T3+E4Ra;cT-xATAwO_0dd)(K%Kb5pvz2DQe|<0Ns2(3)Y=B=!qY(=AY7z(c%J+$J
z)eL8<e*?<bv_C;d*5`ljyl^{F+~09Kok~TMd(L^-Mqjfe-@>We8?8NK*ixJ6J}aD<
zK$w<L?;8&IFDl$np(HHbDSHA;==%;rYH5_&Lg4nzdE1S6UpKOiLH5qeMA#d-D?vZc
z9}dSme{pgn*6veDKBx7+kc|K>$25#}A!Ji@b+)v-C6`GuCc@veS}I%WEx9K(`t3{n
ztB>IWNDQW%WGiil7Fedl7B7Sxw+5?ik~nTp_D|8iBTe3ogwfE-Hr`mu#u8KOtqngw
zh_H%ovaaSk>wOa_-Nj4un)P_8qocZMuB*o?I{YRSziy<zFzR=3tQQ!bJCBJhC6LS*
zgL<FpB!smdK-e2zrtQ*2)>z<zwhQu?bAS2}LXb8wH$T2Ma8E!l%8^)PQ~sc)vJKY7
zWK{C`Rf7Swjc@T`4_zrvGS~EzQf%PVN3ezqWQO8jWucObC!+Pm)ZTBcM%mKRf&y$8
zMuJ*u2ZWw>;$?c#N`yuHcK+5_ur$e=Htp}{(26y0F7_B{@=u;~!rxuyABqw9-UC2A
z?l^<C+Z3H9fJv}?aMx-&+Z*yXk>?;CC{d!DC(pUp*#D?gj5IQaNo5nHJ@9K_lk}p7
zhUf$L8`Mc4^2)oXS=w-JqJpZMXe|+Ljr4R%&kd^G5rXM$#%w>_YV)zCN(3_DxRskD
z$wo1HZUVJZwG_JGeoW(K!<b20v{7JJO`G&PF)ufBOB!Y+&!!0+C7np%qT-%a8bqn$
z8UyT^nZbZHeIc3#>_5SC(L$0S+utwKdlIA>sxn)3hT(Bxv*{JSJGR);n`N_}=d<yi
z!Q#J7CH716^-xofNGY%R>dUs%J321Mr8fk&7Y%9Qmolcgx?G1s`0N-CSDyV*D47OT
zhU%h1tIx}u{u<yPMwTa_2m9J55X!2l(&mdw253dX6qetd|2eNdL+Yvn4^;bcWBA-v
z${ON!;&t^dI=vl5&X02DwrLm!)f_ofRrww|pkjtjWM=rs5?yThQo+2A_nTZ`jrn${
zW`-Z~#7p;Cp1wle7OP?3A$P9;gg(zeWIT17+=zeS8dqu5hrCn4z|`CPFty|{_(UWH
z;uaN9_>LLY3<hbS&<BDx@TgHWU>n)s@CwKNGAv}MolUJ>Fw;2xGm)ug)h4W1>Zoch
zA_Yy?;gBvFJPoGB<bh%uu^rbRAfBX6A2aza=h1&~Q?TNEF=*qOEp%%2_hS)i(aGHC
zXyhQhSBWlr3N&;Ijg919f1+CcDEtp&hR?w!56eI@pGq~R>x{tEl0z1Ld}~I^LFG!_
z?lw5O+b+n2wQGNH1)S0QM3s)4i?!?C!}$j<b>f29=R~jc|MbHk`<Qun^moZ|$`{mi
zV%%pGN(RKlq7!)iyh-?5G|gW$z{OQ0f{IIu7{zx=<wqBPr+`UwK8r@IXKz#$PVF*t
zzprRAcxt1;`(Az$s1I=Hkr2wd>o)TuC7>#-@6Fp?@3j~Bww|(&%Z&fL`&YE6mIn@m
zfj!a+WNIE&X6bt=9xRosR_Qc|K+ygu;=r0?f3?%8l>S5oN0JJ~O)eTSw#}&40r=kT
zG2C1zSv0fRG_Svl5R$bvr^m5`_HL?gC$enW>uOtLXT?|4?)d81dB|btM0L9z3}bxW
zUA<C)UvuuG5%io!!aApjVpu=$%my3?+%fN<D7HPglpiNPu6|}HO2f&x8NT9*8B@cp
zQum@CASQ@83sEhIF7>F_so_U8U)!fxEhGTKzEL@==4I8;ZL`7C#D4r(#%LnhmJ&q8
zNrZD@ysdjtynm{{l9jQ$#$0P=MubIpc<uFY7kG1NsD(t*<W-kk-|fg@-PN)0$6;Vy
z8~$}W>}Uv|CLVJ0OZU&h<oS(kk;sr_qBkx)or8Zz#I!Y*4DX_g_FK1N{8#JbqFDO(
zy*p^k6k~j&^(a~u+Zm*F=3M%WIGjr`XtAS(=Zs{*5GvjsFt#Tq_wezV{}!BJi!d5%
z?74k~pB<5no1^w-DV1YL)e7E@YX_8|<G8-1;HF_?)F+JY53c&FWV3av3i=n6Sm%*=
zosLl}r0Hr(ou#M_XD8dsiLuKxb+*pp0UJ!`k+S6_mPWD8y{wu6blp*w4mFg0+n75X
z*4Vq9Y@39L4zYpFD5+oMkkRbQ(jUTtkN#~mnw9V44x0~?i;tdGiP}7Fe{f~f|2|b0
zRkPx0E(8EBdu~WY7gcxD(>ZKSFPhoM52T;{&Jg(y<j@O~{mk%k@@I<7ztJpXQ+KUE
za6{aax;5@MOWMt*gC`ji&dU^LdArQas$nbXu!c$A>&9rbR`M>R=r-4qD4M5B?H$cY
zE5wgo>tu}|5GoThU!baezxrn(us)?NFrC0UUD(dgYAN^vPPX}U5-E|NKi~=jsR^3A
zXZMkI9r~(@^`$u%TbK;5K)AgH(#&3>opH`95!{T`^I1dRIkQfbl@k$RlXgm6yD`lB
zQnFQ{hjn`JJ@ffP{;H6i75W8Ay0Jf4|F)^HO60jB%xEV2O)(tXBTNLM5n%hpbb?#0
zze$xCS+FO_MX!+N`Vl@Rv=xvNq9A1FEB89g6{k-*Hov<e6Nn2u8#cO!u{q_L6S?To
zoM$o74it_30m;jSR;sq_YdQT4Y4?l_Ymp)NGn!61LzHds$4viY1y_ihiJ~<aS(r$#
z|N60SP60d{yAa9Yvi{(YlMH(;sq~Rm;CH{*P!$t0$uPTJcT_=#4O>6y{}OWxZnp?u
zmC(pN1e0$zzaQ%Kmv+Fp`$|wbfNk%f)MUNBTfeT-ckX=35e>09yIJom#Fu&BJ*w=0
zl)B={1aXu7(EPnQ*;tJi%7_L>lNUVMZa<LPyjTlQ?7d{d;tyPsGKzi(U_o1NC2D$}
z(@8h7Z<6!bVE9BlDXfB5yBrvR#vQmG7z{8^Zn?!XF~bQx{1?^6tEd75$7T64lHndt
z`|Qt}JJ!Rv|I{(uoBL}G##r}x=}cMtU>@AqCGCSrTKv;GMdNX!lBn0Lz^;p*={XP|
zdamWCm!6eEe&HOe8*ZRy;_k_0{l(rnv%~Eqo?$b-{*Zy1YQemcyVB8;+H9A@;$?Fx
zKcfSf!<EOw`wr=SKdya0_kIZS^s@DG+CQ$3dcXM<q#>bVz;q3Thk$|b)M$Yeq=7+D
zflz^<es1_!dB#5Q_O}pVAfR~=ARrW=|MOBdG6NVpTLBzoZH)m|baoE57XPP!|F3Z5
i|KIu1AF=<305@xM1!-`I|F(hr-2OjLsga*;K>ruwd-ePP

literal 102546
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

diff --git a/livesupport/products/scheduler/etc/Makefile.in b/livesupport/products/scheduler/etc/Makefile.in
index 4f706e9f8..549730c6c 100644
--- a/livesupport/products/scheduler/etc/Makefile.in
+++ b/livesupport/products/scheduler/etc/Makefile.in
@@ -21,7 +21,7 @@
 #
 #
 #   Author   : $Author: fgerlits $
-#   Version  : $Revision: 1.13 $
+#   Version  : $Revision: 1.14 $
 #   Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $
 #
 #   @configure_input@
@@ -123,7 +123,9 @@ SCHEDULER_OBJS = ${TMP_DIR}/SignalDispatcher.o \
                  ${TMP_DIR}/DisplayPlaylistsMethod.o \
                  ${TMP_DIR}/OpenPlaylistForEditingMethod.o \
                  ${TMP_DIR}/CreatePlaylistMethod.o \
-                 ${TMP_DIR}/AddAudioClipToPlaylistMethod.o
+                 ${TMP_DIR}/AddAudioClipToPlaylistMethod.o \
+                 ${TMP_DIR}/RemoveAudioClipFromPlaylistMethod.o \
+                 ${TMP_DIR}/ValidatePlaylistMethod.o
 
 SCHEDULER_EXE_OBJS = ${SCHEDULER_OBJS} \
                      ${TMP_DIR}/main.o
@@ -150,6 +152,8 @@ TEST_RUNNER_OBJS = ${SCHEDULER_OBJS} \
                    ${TMP_DIR}/OpenPlaylistForEditingMethodTest.o \
                    ${TMP_DIR}/CreatePlaylistMethodTest.o \
                    ${TMP_DIR}/AddAudioClipToPlaylistMethodTest.o \
+                   ${TMP_DIR}/RemoveAudioClipFromPlaylistMethodTest.o \
+                   ${TMP_DIR}/ValidatePlaylistMethodTest.o \
                    ${TMP_DIR}/TestRunner.o
 TEST_RUNNER_LIBS = ${SCHEDULER_EXE_LIBS} -lcppunit -ldl
 
diff --git a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.cxx b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.cxx
index b7e4f50f4..183a485a5 100644
--- a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.cxx
+++ b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.cxx
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.2 $
+    Version  : $Revision: 1.3 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.cxx,v $
 
 ------------------------------------------------------------------------------*/
@@ -107,18 +107,32 @@ AddAudioClipToPlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
     }
 
     Ptr<UniqueId>::Ref       playlistId;
-    Ptr<UniqueId>::Ref       audioClipId;
-    Ptr<time_duration>::Ref  relativeOffset;
     try{
         playlistId = XmlRpcTools::extractPlaylistId(parameters);
-        audioClipId = XmlRpcTools::extractAudioClipId(parameters);
-        relativeOffset = XmlRpcTools::extractRelativeOffset(parameters);
     }
     catch (std::invalid_argument &e) {
         XmlRpcTools::markError(errorId+2, e.what(), returnValue);
         return;
     }
 
+    Ptr<UniqueId>::Ref       audioClipId;
+    try{
+        audioClipId = XmlRpcTools::extractAudioClipId(parameters);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+3, e.what(), returnValue);
+        return;
+    }
+
+    Ptr<time_duration>::Ref  relativeOffset;
+    try{
+        relativeOffset = XmlRpcTools::extractRelativeOffset(parameters);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+4, e.what(), returnValue);
+        return;
+    }
+
     Ptr<StorageClientFactory>::Ref     scf;
     Ptr<StorageClientInterface>::Ref   storage;
     scf     = StorageClientFactory::getInstance();
@@ -129,13 +143,13 @@ AddAudioClipToPlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
         playlist = storage->getPlaylist(playlistId);
     }
     catch (std::invalid_argument &e) {
-        XmlRpcTools::markError(errorId+3, "playlist does not exist", 
+        XmlRpcTools::markError(errorId+5, "playlist does not exist", 
                                returnValue);
         return;
     }
 
     if (!playlist->getIsLockedForEditing()) {
-        XmlRpcTools::markError(errorId+4, 
+        XmlRpcTools::markError(errorId+6, 
                                "playlist has not been opened for editing", 
                                returnValue);
         return;
@@ -146,7 +160,7 @@ AddAudioClipToPlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
         audioClip = storage->getAudioClip(audioClipId);
     }
     catch (std::invalid_argument &e) {
-        XmlRpcTools::markError(errorId+5, "audio clip does not exist", 
+        XmlRpcTools::markError(errorId+7, "audio clip does not exist", 
                                returnValue);
         return;
     }
@@ -155,7 +169,7 @@ AddAudioClipToPlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
         playlist->addAudioClip(audioClip, relativeOffset);
     }
     catch(std::invalid_argument &e) {
-        XmlRpcTools::markError(errorId+6,
+        XmlRpcTools::markError(errorId+8,
                                "two audio clips at the same relative offset",
                                returnValue);
         return;
diff --git a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.h b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.h
index 88b14ca10..d2680d48f 100644
--- a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.h
+++ b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.h
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.2 $
+    Version  : $Revision: 1.3 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethod.h,v $
 
 ------------------------------------------------------------------------------*/
@@ -88,14 +88,16 @@ using namespace LiveSupport::Core;
  *  The possible error codes are:
  *  <ul>
  *     <li>301 - invalid argument format </li>
- *     <li>302 - missing ... argument </li>
- *     <li>303 - playlist does not exist </li>
- *     <li>304 - playlist has not been opened for editing </li>
- *     <li>305 - audio clip does not exist </li>
- *     <li>306 - two audio clips at the same relative offset</li>
+ *     <li>302 - missing playlist ID argument </li>
+ *     <li>303 - missing audio clip ID argument </li>
+ *     <li>304 - missing relative offset argument </li>
+ *     <li>305 - playlist does not exist </li>
+ *     <li>306 - playlist has not been opened for editing </li>
+ *     <li>307 - audio clip does not exist </li>
+ *     <li>308 - two audio clips at the same relative offset</li>
  *  </ul>
  *  @author  $Author: fgerlits $
- *  @version $Revision: 1.2 $
+ *  @version $Revision: 1.3 $
  */
 class AddAudioClipToPlaylistMethod : public XmlRpc::XmlRpcServerMethod
 {
diff --git a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethodTest.cxx b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethodTest.cxx
index 75d81fd29..3302963b2 100644
--- a/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethodTest.cxx
+++ b/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethodTest.cxx
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.2 $
+    Version  : $Revision: 1.3 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/AddAudioClipToPlaylistMethodTest.cxx,v $
 
 ------------------------------------------------------------------------------*/
@@ -157,7 +157,7 @@ AddAudioClipToPlaylistMethodTest :: firstTest(void)
     openPlaylistMethod->execute(parameter, result);
     addAudioClipMethod->execute(parameter, result);
     CPPUNIT_ASSERT(result.hasMember("errorCode"));
-    CPPUNIT_ASSERT((int)(result["errorCode"]) == 306);
+    CPPUNIT_ASSERT((int)(result["errorCode"]) == 308);
 
     parameter.clear();
     result.clear();
diff --git a/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.cxx b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.cxx
new file mode 100644
index 000000000..cd487cf0e
--- /dev/null
+++ b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.cxx
@@ -0,0 +1,163 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.cxx,v $
+
+------------------------------------------------------------------------------*/
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#else
+#error need time.h
+#endif
+
+
+#include <string>
+
+#include "LiveSupport/Core/StorageClientInterface.h"
+#include "LiveSupport/Storage/StorageClientFactory.h"
+#include "ScheduleInterface.h"
+#include "ScheduleFactory.h"
+#include "XmlRpcTools.h"
+
+#include "RemoveAudioClipFromPlaylistMethod.h"
+
+
+using namespace boost;
+using namespace boost::posix_time;
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+using namespace LiveSupport::Storage;
+
+using namespace LiveSupport::Scheduler;
+
+/* ===================================================  local data structures */
+
+
+/* ================================================  local constants & macros */
+
+/*------------------------------------------------------------------------------
+ *  The name of this XML-RPC method.
+ *----------------------------------------------------------------------------*/
+const std::string RemoveAudioClipFromPlaylistMethod::methodName 
+                                                = "removeAudioClipFromPlaylist";
+
+/*------------------------------------------------------------------------------
+ *  The ID of this method for error reporting purposes.
+ *----------------------------------------------------------------------------*/
+const int RemoveAudioClipFromPlaylistMethod::errorId = 400;
+
+
+/* ===============================================  local function prototypes */
+
+
+/* =============================================================  module code */
+
+/*------------------------------------------------------------------------------
+ *  Construct the method and register it right away.
+ *----------------------------------------------------------------------------*/
+RemoveAudioClipFromPlaylistMethod :: RemoveAudioClipFromPlaylistMethod (
+                        Ptr<XmlRpc::XmlRpcServer>::Ref xmlRpcServer)   throw()
+    : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get())
+{
+}
+
+ 
+/*------------------------------------------------------------------------------
+ *  Execute the stop XML-RPC function call.
+ *----------------------------------------------------------------------------*/
+void
+RemoveAudioClipFromPlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
+                                        XmlRpc::XmlRpcValue  & returnValue)
+                                                                       throw ()
+{
+    if (!parameters.valid()) {
+        XmlRpcTools::markError(errorId+1, "invalid argument format", 
+                               returnValue);
+        return;
+    }
+
+    Ptr<UniqueId>::Ref       playlistId;
+    try{
+        playlistId = XmlRpcTools::extractPlaylistId(parameters);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+2, 
+                               "missing playlist ID argument",
+                                returnValue);
+        return;
+    }
+
+    Ptr<time_duration>::Ref  relativeOffset;
+    try{
+        relativeOffset = XmlRpcTools::extractRelativeOffset(parameters);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+3, 
+                               "missing relative offset argument",
+                               returnValue);
+        return;
+    }
+
+    Ptr<StorageClientFactory>::Ref     scf;
+    Ptr<StorageClientInterface>::Ref   storage;
+    scf     = StorageClientFactory::getInstance();
+    storage = scf->getStorageClient();
+ 
+    Ptr<Playlist>::Ref playlist;
+    try {
+        playlist = storage->getPlaylist(playlistId);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+4, "playlist does not exist", 
+                               returnValue);
+        return;
+    }
+
+    if (!playlist->getIsLockedForEditing()) {
+        XmlRpcTools::markError(errorId+5, 
+                               "playlist has not been opened for editing", 
+                               returnValue);
+        return;
+    }
+
+    try {                                        // and finally, the beef
+        playlist->removeAudioClip(relativeOffset);
+    }
+    catch(std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+6,
+                               "no audio clip at the specified "
+                               "relative offset",
+                               returnValue);
+        return;
+    }
+}
diff --git a/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.h b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.h
new file mode 100644
index 000000000..a1654aaab
--- /dev/null
+++ b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.h
@@ -0,0 +1,154 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethod.h,v $
+
+------------------------------------------------------------------------------*/
+#ifndef RemoveAudioClipFromPlaylistMethod_h
+#define RemoveAudioClipFromPlaylistMethod_h
+
+#ifndef __cplusplus
+#error This is a C++ include file
+#endif
+
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#include <stdexcept>
+#include <string>
+#include <XmlRpcServerMethod.h>
+#include <XmlRpcValue.h>
+
+#include "LiveSupport/Core/Ptr.h"
+#include "LiveSupport/Core/Playlist.h"
+
+
+namespace LiveSupport {
+namespace Scheduler {
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+
+/* ================================================================ constants */
+
+
+/* =================================================================== macros */
+
+
+/* =============================================================== data types */
+
+/**
+ *  An XML-RPC method object to remove an audio clip (specified by its relative 
+ *  offset) from a playlist (specified by its ID).
+ *
+ *  The name of the method when called through XML-RPC is 
+ *  "removeAudioClipFromPlaylist".
+ *  The expected parameter is an XML-RPC structure, with the following
+ *  members:
+ *  <ul>
+ *      <li>playlistId - int - the unique id of the playlist.</li>
+ *      <li>relativeOffset - int - the number of seconds between the
+ *                start of the playlist and the start of the audio clip
+ *                to be removed.</li>
+ *  </ul>
+ *
+ *  In case of an error, an XML-RPC structure is returned, with the following
+ *  fields:
+ *  <ul>
+ *      <li>errorCode - int - the id of the error condition</li>
+ *      <li>errorMessage - string - a description of the error</li>
+ *  </ul>
+ *  The possible error codes are:
+ *  <ul>
+ *     <li>401 - invalid argument format </li>
+ *     <li>402 - missing playlist ID argument </li>
+ *     <li>403 - missing relative offset argument </li>
+ *     <li>404 - playlist does not exist </li>
+ *     <li>405 - playlist has not been opened for editing </li>
+ *     <li>406 - no audio clip at the specified relative offset </li>
+ *  </ul>
+ *  @author  $Author: fgerlits $
+ *  @version $Revision: 1.1 $
+ */
+class RemoveAudioClipFromPlaylistMethod : public XmlRpc::XmlRpcServerMethod
+{
+    private:
+        /**
+         *  The name of this method, as it will be registered into the
+         *  XML-RPC server.
+         */
+        static const std::string        methodName;
+
+        /**
+         *  The ID of this method for error reporting purposes.
+         */
+        static const int                errorId;
+
+
+    public:
+        /**
+         *  A default constructor, for testing purposes.
+         */
+        RemoveAudioClipFromPlaylistMethod(void)                          throw ()
+                            : XmlRpc::XmlRpcServerMethod(methodName)
+        {
+        }
+
+        /**
+         *  Constuctor that registers the method with the server right away.
+         *
+         *  @param xmlRpcServer the XML-RPC server to register with.
+         */
+        RemoveAudioClipFromPlaylistMethod(
+                    Ptr<XmlRpc::XmlRpcServer>::Ref xmlRpcServer)
+                                                                    throw ();
+
+        /**
+         *  Execute the display schedule command on the Scheduler daemon.
+         *
+         *  @param parameters XML-RPC function call parameters
+         *  @param returnValue the return value of the call (out parameter)
+         */
+        void
+        execute( XmlRpc::XmlRpcValue  & parameters,
+                 XmlRpc::XmlRpcValue  & returnValue)                throw ();
+};
+
+
+/* ================================================= external data structures */
+
+
+/* ====================================================== function prototypes */
+
+
+} // namespace Scheduler
+} // namespace LiveSupport
+
+#endif // RemoveAudioClipFromPlaylistMethod_h
+
diff --git a/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.cxx b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.cxx
new file mode 100644
index 000000000..ca96cf39f
--- /dev/null
+++ b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.cxx
@@ -0,0 +1,175 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.cxx,v $
+
+------------------------------------------------------------------------------*/
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#else
+#error "Need unistd.h"
+#endif
+
+
+#include <string>
+#include <iostream>
+#include <XmlRpcValue.h>
+
+#include "LiveSupport/Db/ConnectionManagerFactory.h"
+#include "LiveSupport/Storage/StorageClientFactory.h"
+#include "XmlRpcTools.h"
+
+#include "OpenPlaylistForEditingMethod.h"
+#include "AddAudioClipToPlaylistMethod.h"
+#include "RemoveAudioClipFromPlaylistMethod.h"
+
+#include "RemoveAudioClipFromPlaylistMethodTest.h"
+
+
+using namespace std;
+using namespace LiveSupport::Db;
+using namespace LiveSupport::Storage;
+using namespace LiveSupport::Scheduler;
+
+
+/* ===================================================  local data structures */
+
+
+/* ================================================  local constants & macros */
+
+CPPUNIT_TEST_SUITE_REGISTRATION(RemoveAudioClipFromPlaylistMethodTest);
+
+/**
+ *  The name of the configuration file for the storage client factory.
+ */
+const std::string RemoveAudioClipFromPlaylistMethodTest::storageClientConfig =
+                                                    "etc/storageClient.xml";
+
+/**
+ *  The name of the configuration file for the connection manager factory.
+ */
+const std::string RemoveAudioClipFromPlaylistMethodTest::connectionManagerConfig =
+                                          "etc/connectionManagerFactory.xml";
+
+
+/* ===============================================  local function prototypes */
+
+
+/* =============================================================  module code */
+
+/*------------------------------------------------------------------------------
+ *  Configure a Configurable with an XML file.
+ *----------------------------------------------------------------------------*/
+void
+RemoveAudioClipFromPlaylistMethodTest :: configure(
+            Ptr<Configurable>::Ref      configurable,
+            const std::string           fileName)
+                                                throw (std::invalid_argument,
+                                                       xmlpp::exception)
+{
+    Ptr<xmlpp::DomParser>::Ref  parser(new xmlpp::DomParser(fileName, true));
+    const xmlpp::Document * document = parser->get_document();
+    const xmlpp::Element  * root     = document->get_root_node();
+
+    configurable->configure(*root);
+}
+
+                                                        
+/*------------------------------------------------------------------------------
+ *  Set up the test environment
+ *----------------------------------------------------------------------------*/
+void
+RemoveAudioClipFromPlaylistMethodTest :: setUp(void)                         throw ()
+{
+    try {
+        Ptr<StorageClientFactory>::Ref scf
+                                        = StorageClientFactory::getInstance();
+        configure(scf, storageClientConfig);
+
+        Ptr<ConnectionManagerFactory>::Ref cmf
+                                    = ConnectionManagerFactory::getInstance();
+        configure(cmf, connectionManagerConfig);
+
+    } catch (std::invalid_argument &e) {
+        CPPUNIT_FAIL("semantic error in configuration file");
+    } catch (xmlpp::exception &e) {
+        CPPUNIT_FAIL("error parsing configuration file");
+    } catch (std::exception &e) {
+        CPPUNIT_FAIL(e.what());
+    }
+}
+
+
+/*------------------------------------------------------------------------------
+ *  Clean up the test environment
+ *----------------------------------------------------------------------------*/
+void
+RemoveAudioClipFromPlaylistMethodTest :: tearDown(void)                      throw ()
+{
+}
+
+
+/*------------------------------------------------------------------------------
+ *  Just a very simple smoke test
+ *----------------------------------------------------------------------------*/
+void
+RemoveAudioClipFromPlaylistMethodTest :: firstTest(void)
+                                                throw (CPPUNIT_NS::Exception)
+{
+    Ptr<OpenPlaylistForEditingMethod>::Ref 
+               openPlaylistMethod(new OpenPlaylistForEditingMethod());
+    Ptr<AddAudioClipToPlaylistMethod>::Ref 
+               addAudioClipMethod(new AddAudioClipToPlaylistMethod());
+    Ptr<RemoveAudioClipFromPlaylistMethod>::Ref 
+               removeAudioClipMethod(new RemoveAudioClipFromPlaylistMethod());
+    XmlRpc::XmlRpcValue             parameter;
+    XmlRpc::XmlRpcValue             result;
+
+    parameter["playlistId"] = 1;
+    parameter["audioClipId"] = 20002;
+    parameter["relativeOffset"] = 90*60;
+
+    removeAudioClipMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(result.hasMember("errorCode"));
+    CPPUNIT_ASSERT((int)(result["errorCode"]) == 405);  // not open for editing
+
+    result.clear();
+    openPlaylistMethod->execute(parameter, result);
+    removeAudioClipMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(result.hasMember("errorCode"));
+    CPPUNIT_ASSERT((int)(result["errorCode"]) == 406);  // no such audio clip
+
+    result.clear();
+    addAudioClipMethod->execute(parameter, result);
+    removeAudioClipMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(!result.hasMember("errorCode"));
+}
diff --git a/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.h b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.h
new file mode 100644
index 000000000..d73c6d49b
--- /dev/null
+++ b/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.h
@@ -0,0 +1,135 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RemoveAudioClipFromPlaylistMethodTest.h,v $
+
+------------------------------------------------------------------------------*/
+#ifndef RemoveAudioClipFromPlaylistMethodTest_h
+#define RemoveAudioClipFromPlaylistMethodTest_h
+
+#ifndef __cplusplus
+#error This is a C++ include file
+#endif
+
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#include <cppunit/extensions/HelperMacros.h>
+
+
+namespace LiveSupport {
+namespace Scheduler {
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+
+/* ================================================================ constants */
+
+
+/* =================================================================== macros */
+
+
+/* =============================================================== data types */
+
+/**
+ *  Unit test for the RemoveAudioClipFromPlaylistMethod class.
+ *
+ *  @author  $Author: fgerlits $
+ *  @version $Revision: 1.1 $
+ *  @see RemoveAudioClipFromPlaylistMethod
+ */
+class RemoveAudioClipFromPlaylistMethodTest : public CPPUNIT_NS::TestFixture
+{
+    CPPUNIT_TEST_SUITE(RemoveAudioClipFromPlaylistMethodTest);
+    CPPUNIT_TEST(firstTest);
+    CPPUNIT_TEST_SUITE_END();
+
+        /**
+         *  The name of the configuration file for the storage client factory.
+         */
+        static const std::string storageClientConfig;
+
+        /**
+         *  The name of the configuration file for the connection manager
+         *  factory.
+         */
+        static const std::string connectionManagerConfig;
+
+        /**
+         *  Configure a configurable with an XML file.
+         *
+         *  @param configurable configure this
+         *  @param fileName the name of the XML file to configure with.
+         *  @exception std::invalid_argument on configuration errors.
+         *  @exception xmlpp::exception on XML parsing errors.
+         */
+        void
+        configure(Ptr<Configurable>::Ref    configurable,
+                  std::string               fileName)
+                                                throw (std::invalid_argument,
+                                                       xmlpp::exception);
+
+    protected:
+
+        /**
+         *  A simple test.
+         *
+         *  @exception CPPUNIT_NS::Exception on test failures.
+         */
+        void
+        firstTest(void)                         throw (CPPUNIT_NS::Exception);
+
+
+    public:
+        
+        /**
+         *  Set up the environment for the test case.
+         */
+        void
+        setUp(void)                                     throw ();
+
+        /**
+         *  Clean up the environment after the test case.
+         */
+        void
+        tearDown(void)                                  throw ();
+};
+
+
+/* ================================================= external data structures */
+
+
+/* ====================================================== function prototypes */
+
+
+} // namespace Scheduler
+} // namespace LiveSupport
+
+#endif // RemoveAudioClipFromPlaylistMethodTest_h
+
diff --git a/livesupport/products/scheduler/src/ValidatePlaylistMethod.cxx b/livesupport/products/scheduler/src/ValidatePlaylistMethod.cxx
new file mode 100644
index 000000000..aa9f365b1
--- /dev/null
+++ b/livesupport/products/scheduler/src/ValidatePlaylistMethod.cxx
@@ -0,0 +1,146 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ValidatePlaylistMethod.cxx,v $
+
+------------------------------------------------------------------------------*/
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#else
+#error need time.h
+#endif
+
+
+#include <string>
+
+#include "LiveSupport/Core/StorageClientInterface.h"
+#include "LiveSupport/Storage/StorageClientFactory.h"
+#include "ScheduleInterface.h"
+#include "ScheduleFactory.h"
+#include "XmlRpcTools.h"
+
+#include "ValidatePlaylistMethod.h"
+
+
+using namespace boost;
+using namespace boost::posix_time;
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+using namespace LiveSupport::Storage;
+
+using namespace LiveSupport::Scheduler;
+
+/* ===================================================  local data structures */
+
+
+/* ================================================  local constants & macros */
+
+/*------------------------------------------------------------------------------
+ *  The name of this XML-RPC method.
+ *----------------------------------------------------------------------------*/
+const std::string ValidatePlaylistMethod::methodName 
+                                                = "validatePlaylist";
+
+/*------------------------------------------------------------------------------
+ *  The ID of this method for error reporting purposes.
+ *----------------------------------------------------------------------------*/
+const int ValidatePlaylistMethod::errorId = 500;
+
+
+/* ===============================================  local function prototypes */
+
+
+/* =============================================================  module code */
+
+/*------------------------------------------------------------------------------
+ *  Construct the method and register it right away.
+ *----------------------------------------------------------------------------*/
+ValidatePlaylistMethod :: ValidatePlaylistMethod (
+                        Ptr<XmlRpc::XmlRpcServer>::Ref xmlRpcServer)   throw()
+    : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get())
+{
+}
+
+ 
+/*------------------------------------------------------------------------------
+ *  Execute the stop XML-RPC function call.
+ *----------------------------------------------------------------------------*/
+void
+ValidatePlaylistMethod :: execute(XmlRpc::XmlRpcValue  & parameters,
+                                        XmlRpc::XmlRpcValue  & returnValue)
+                                                                       throw ()
+{
+    if (!parameters.valid()) {
+        XmlRpcTools::markError(errorId+1, "invalid argument format", 
+                               returnValue);
+        return;
+    }
+
+    Ptr<UniqueId>::Ref       playlistId;
+    try{
+        playlistId = XmlRpcTools::extractPlaylistId(parameters);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+2, 
+                               "missing playlist ID argument",
+                                returnValue);
+        return;
+    }
+
+    Ptr<StorageClientFactory>::Ref     scf;
+    Ptr<StorageClientInterface>::Ref   storage;
+    scf     = StorageClientFactory::getInstance();
+    storage = scf->getStorageClient();
+ 
+    Ptr<Playlist>::Ref playlist;
+    try {
+        playlist = storage->getPlaylist(playlistId);
+    }
+    catch (std::invalid_argument &e) {
+        XmlRpcTools::markError(errorId+3, "playlist does not exist", 
+                               returnValue);
+        return;
+    }
+
+    if (!playlist->getIsLockedForEditing()) {
+        XmlRpcTools::markError(errorId+4, 
+                               "playlist has not been opened for editing", 
+                               returnValue);
+        return;
+    }
+                                
+    bool valid = playlist->valid();    // and finally, the beef
+
+    XmlRpcTools::validStatusToXmlRpcValue(valid, returnValue);
+}
+
diff --git a/livesupport/products/scheduler/src/ValidatePlaylistMethod.h b/livesupport/products/scheduler/src/ValidatePlaylistMethod.h
new file mode 100644
index 000000000..f65923411
--- /dev/null
+++ b/livesupport/products/scheduler/src/ValidatePlaylistMethod.h
@@ -0,0 +1,154 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ValidatePlaylistMethod.h,v $
+
+------------------------------------------------------------------------------*/
+#ifndef ValidatePlaylistMethod_h
+#define ValidatePlaylistMethod_h
+
+#ifndef __cplusplus
+#error This is a C++ include file
+#endif
+
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#include <stdexcept>
+#include <string>
+#include <XmlRpcServerMethod.h>
+#include <XmlRpcValue.h>
+
+#include "LiveSupport/Core/Ptr.h"
+#include "LiveSupport/Core/Playlist.h"
+
+
+namespace LiveSupport {
+namespace Scheduler {
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+
+/* ================================================================ constants */
+
+
+/* =================================================================== macros */
+
+
+/* =============================================================== data types */
+
+/**
+ *  An XML-RPC method object to validate a playlist (specified by its ID).
+ *
+ *  The name of the method when called through XML-RPC is 
+ *  "validatePlaylist".
+ *  The expected parameter is an XML-RPC structure, with the following
+ *  member:
+ *  <ul>
+ *      <li>playlistId - int - the unique id of the playlist.</li>
+ *  </ul>
+ *
+ *  The XML-RPC function returns an XML-RPC structure, containing the following
+ *  fields:
+ *  <ul>
+ *      <li>valid - bool - true if the playlist is valid, false otherwise</li>
+ *  </ul>
+ *
+ *  In case of an error, an XML-RPC structure is returned, with the following
+ *  fields:
+ *  <ul>
+ *      <li>errorCode - int - the id of the error condition</li>
+ *      <li>errorMessage - string - a description of the error</li>
+ *  </ul>
+ *  The possible error codes are:
+ *  <ul>
+ *     <li>501 - invalid argument format </li>
+ *     <li>502 - missing playlist ID argument </li>
+ *     <li>503 - playlist does not exist </li>
+ *     <li>504 - playlist has not been opened for editing </li>
+ *  </ul>
+ *  @author  $Author: fgerlits $
+ *  @version $Revision: 1.1 $
+ */
+class ValidatePlaylistMethod : public XmlRpc::XmlRpcServerMethod
+{
+    private:
+        /**
+         *  The name of this method, as it will be registered into the
+         *  XML-RPC server.
+         */
+        static const std::string        methodName;
+
+        /**
+         *  The ID of this method for error reporting purposes.
+         */
+        static const int                errorId;
+
+
+    public:
+        /**
+         *  A default constructor, for testing purposes.
+         */
+        ValidatePlaylistMethod(void)                          throw ()
+                            : XmlRpc::XmlRpcServerMethod(methodName)
+        {
+        }
+
+        /**
+         *  Constuctor that registers the method with the server right away.
+         *
+         *  @param xmlRpcServer the XML-RPC server to register with.
+         */
+        ValidatePlaylistMethod(
+                    Ptr<XmlRpc::XmlRpcServer>::Ref xmlRpcServer)
+                                                                    throw ();
+
+        /**
+         *  Execute the display schedule command on the Scheduler daemon.
+         *
+         *  @param parameters XML-RPC function call parameters
+         *  @param returnValue the return value of the call (out parameter)
+         */
+        void
+        execute( XmlRpc::XmlRpcValue  & parameters,
+                 XmlRpc::XmlRpcValue  & returnValue)                throw ();
+};
+
+
+/* ================================================= external data structures */
+
+
+/* ====================================================== function prototypes */
+
+
+} // namespace Scheduler
+} // namespace LiveSupport
+
+#endif // ValidatePlaylistMethod_h
+
diff --git a/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.cxx b/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.cxx
new file mode 100644
index 000000000..9a61fced4
--- /dev/null
+++ b/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.cxx
@@ -0,0 +1,180 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.cxx,v $
+
+------------------------------------------------------------------------------*/
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#else
+#error "Need unistd.h"
+#endif
+
+
+#include <string>
+#include <iostream>
+#include <XmlRpcValue.h>
+
+#include "LiveSupport/Db/ConnectionManagerFactory.h"
+#include "LiveSupport/Storage/StorageClientFactory.h"
+#include "XmlRpcTools.h"
+
+#include "OpenPlaylistForEditingMethod.h"
+#include "RemoveAudioClipFromPlaylistMethod.h"
+#include "ValidatePlaylistMethod.h"
+
+#include "ValidatePlaylistMethodTest.h"
+
+
+using namespace std;
+using namespace LiveSupport::Db;
+using namespace LiveSupport::Storage;
+using namespace LiveSupport::Scheduler;
+
+
+/* ===================================================  local data structures */
+
+
+/* ================================================  local constants & macros */
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ValidatePlaylistMethodTest);
+
+/**
+ *  The name of the configuration file for the storage client factory.
+ */
+const std::string ValidatePlaylistMethodTest::storageClientConfig =
+                                                    "etc/storageClient.xml";
+
+/**
+ *  The name of the configuration file for the connection manager factory.
+ */
+const std::string ValidatePlaylistMethodTest::connectionManagerConfig =
+                                          "etc/connectionManagerFactory.xml";
+
+
+/* ===============================================  local function prototypes */
+
+
+/* =============================================================  module code */
+
+/*------------------------------------------------------------------------------
+ *  Configure a Configurable with an XML file.
+ *----------------------------------------------------------------------------*/
+void
+ValidatePlaylistMethodTest :: configure(
+            Ptr<Configurable>::Ref      configurable,
+            const std::string           fileName)
+                                                throw (std::invalid_argument,
+                                                       xmlpp::exception)
+{
+    Ptr<xmlpp::DomParser>::Ref  parser(new xmlpp::DomParser(fileName, true));
+    const xmlpp::Document * document = parser->get_document();
+    const xmlpp::Element  * root     = document->get_root_node();
+
+    configurable->configure(*root);
+}
+
+                                                        
+/*------------------------------------------------------------------------------
+ *  Set up the test environment
+ *----------------------------------------------------------------------------*/
+void
+ValidatePlaylistMethodTest :: setUp(void)                         throw ()
+{
+    try {
+        Ptr<StorageClientFactory>::Ref scf
+                                        = StorageClientFactory::getInstance();
+        configure(scf, storageClientConfig);
+
+        Ptr<ConnectionManagerFactory>::Ref cmf
+                                    = ConnectionManagerFactory::getInstance();
+        configure(cmf, connectionManagerConfig);
+
+    } catch (std::invalid_argument &e) {
+        CPPUNIT_FAIL("semantic error in configuration file");
+    } catch (xmlpp::exception &e) {
+        CPPUNIT_FAIL("error parsing configuration file");
+    } catch (std::exception &e) {
+        CPPUNIT_FAIL(e.what());
+    }
+}
+
+
+/*------------------------------------------------------------------------------
+ *  Clean up the test environment
+ *----------------------------------------------------------------------------*/
+void
+ValidatePlaylistMethodTest :: tearDown(void)                      throw ()
+{
+}
+
+
+/*------------------------------------------------------------------------------
+ *  Just a very simple smoke test
+ *----------------------------------------------------------------------------*/
+void
+ValidatePlaylistMethodTest :: firstTest(void)
+                                                throw (CPPUNIT_NS::Exception)
+{
+    Ptr<OpenPlaylistForEditingMethod>::Ref 
+               openPlaylistMethod(new OpenPlaylistForEditingMethod());
+    Ptr<RemoveAudioClipFromPlaylistMethod>::Ref 
+               removeAudioClipMethod(new RemoveAudioClipFromPlaylistMethod());
+    Ptr<ValidatePlaylistMethod>::Ref 
+               validatePlaylistMethod(new ValidatePlaylistMethod());
+    XmlRpc::XmlRpcValue             parameter;
+    XmlRpc::XmlRpcValue             result;
+
+    parameter["playlistId"] = 275;
+    validatePlaylistMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(result.hasMember("errorCode"));
+    CPPUNIT_ASSERT(int(result["errorCode"]) == 503);  // no such playlist
+
+    result.clear();
+    parameter.clear();
+    parameter["playlistId"] = 1;
+    openPlaylistMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(!result.hasMember("errorCode"));
+    result.clear();
+    validatePlaylistMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(result.hasMember("valid"));
+    CPPUNIT_ASSERT(bool(result["valid"]));
+
+    result.clear();
+    parameter["relativeOffset"] = 0;
+    removeAudioClipMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(!result.hasMember("errorCode"));
+    result.clear();
+    validatePlaylistMethod->execute(parameter, result);
+    CPPUNIT_ASSERT(result.hasMember("valid"));
+    CPPUNIT_ASSERT(!bool(result["valid"]));  // has a gap at the beginning
+}
diff --git a/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.h b/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.h
new file mode 100644
index 000000000..19abbb96f
--- /dev/null
+++ b/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.h
@@ -0,0 +1,135 @@
+/*------------------------------------------------------------------------------
+
+    Copyright (c) 2004 Media Development Loan Fund
+ 
+    This file is part of the LiveSupport project.
+    http://livesupport.campware.org/
+    To report bugs, send an e-mail to bugs@campware.org
+ 
+    LiveSupport 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.
+  
+    LiveSupport 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 LiveSupport; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ 
+    Author   : $Author: fgerlits $
+    Version  : $Revision: 1.1 $
+    Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ValidatePlaylistMethodTest.h,v $
+
+------------------------------------------------------------------------------*/
+#ifndef ValidatePlaylistMethodTest_h
+#define ValidatePlaylistMethodTest_h
+
+#ifndef __cplusplus
+#error This is a C++ include file
+#endif
+
+
+/* ============================================================ include files */
+
+#ifdef HAVE_CONFIG_H
+#include "configure.h"
+#endif
+
+#include <cppunit/extensions/HelperMacros.h>
+
+
+namespace LiveSupport {
+namespace Scheduler {
+
+using namespace LiveSupport;
+using namespace LiveSupport::Core;
+
+/* ================================================================ constants */
+
+
+/* =================================================================== macros */
+
+
+/* =============================================================== data types */
+
+/**
+ *  Unit test for the ValidatePlaylistMethod class.
+ *
+ *  @author  $Author: fgerlits $
+ *  @version $Revision: 1.1 $
+ *  @see ValidatePlaylistMethod
+ */
+class ValidatePlaylistMethodTest : public CPPUNIT_NS::TestFixture
+{
+    CPPUNIT_TEST_SUITE(ValidatePlaylistMethodTest);
+    CPPUNIT_TEST(firstTest);
+    CPPUNIT_TEST_SUITE_END();
+
+        /**
+         *  The name of the configuration file for the storage client factory.
+         */
+        static const std::string storageClientConfig;
+
+        /**
+         *  The name of the configuration file for the connection manager
+         *  factory.
+         */
+        static const std::string connectionManagerConfig;
+
+        /**
+         *  Configure a configurable with an XML file.
+         *
+         *  @param configurable configure this
+         *  @param fileName the name of the XML file to configure with.
+         *  @exception std::invalid_argument on configuration errors.
+         *  @exception xmlpp::exception on XML parsing errors.
+         */
+        void
+        configure(Ptr<Configurable>::Ref    configurable,
+                  std::string               fileName)
+                                                throw (std::invalid_argument,
+                                                       xmlpp::exception);
+
+    protected:
+
+        /**
+         *  A simple test.
+         *
+         *  @exception CPPUNIT_NS::Exception on test failures.
+         */
+        void
+        firstTest(void)                         throw (CPPUNIT_NS::Exception);
+
+
+    public:
+        
+        /**
+         *  Set up the environment for the test case.
+         */
+        void
+        setUp(void)                                     throw ();
+
+        /**
+         *  Clean up the environment after the test case.
+         */
+        void
+        tearDown(void)                                  throw ();
+};
+
+
+/* ================================================= external data structures */
+
+
+/* ====================================================== function prototypes */
+
+
+} // namespace Scheduler
+} // namespace LiveSupport
+
+#endif // ValidatePlaylistMethodTest_h
+
diff --git a/livesupport/products/scheduler/src/XmlRpcTools.cxx b/livesupport/products/scheduler/src/XmlRpcTools.cxx
index 9a349d91d..45873ea78 100644
--- a/livesupport/products/scheduler/src/XmlRpcTools.cxx
+++ b/livesupport/products/scheduler/src/XmlRpcTools.cxx
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.3 $
+    Version  : $Revision: 1.4 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/XmlRpcTools.cxx,v $
 
 ------------------------------------------------------------------------------*/
@@ -87,7 +87,7 @@ XmlRpcTools :: extractPlaylistId(XmlRpc::XmlRpcValue & xmlRpcValue)
                                                 throw (std::invalid_argument)
 {
     if (!xmlRpcValue.hasMember(playlistIdName)) {
-        throw std::invalid_argument("missing playlist ID");
+        throw std::invalid_argument("missing playlist ID argument");
     }
 
     Ptr<UniqueId>::Ref id(new UniqueId((int) xmlRpcValue[playlistIdName]));
@@ -103,7 +103,7 @@ XmlRpcTools :: extractAudioClipId(XmlRpc::XmlRpcValue & xmlRpcValue)
                                                 throw (std::invalid_argument)
 {
     if (!xmlRpcValue.hasMember(audioClipIdName)) {
-        throw std::invalid_argument("missing audio clip ID");
+        throw std::invalid_argument("missing audio clip ID argument");
     }
 
     Ptr<UniqueId>::Ref id(new UniqueId((int) xmlRpcValue[audioClipIdName]));
@@ -119,7 +119,7 @@ XmlRpcTools :: extractRelativeOffset(XmlRpc::XmlRpcValue & xmlRpcValue)
                                                 throw (std::invalid_argument)
 {
     if (!xmlRpcValue.hasMember(relativeOffsetName)) {
-        throw std::invalid_argument("missing relative offset");
+        throw std::invalid_argument("missing relative offset argument");
     }
 
     Ptr<time_duration>::Ref relativeOffset(new time_duration(0,0,
@@ -153,3 +153,17 @@ XmlRpcTools :: markError(int errorCode, const std::string errorMessage,
     xmlRpcValue["errorCode"]    = errorCode;
     xmlRpcValue["errorMessage"] = errorMessage;
 }
+
+
+/*------------------------------------------------------------------------------
+ *  Convert the valid status of a playlist to an XmlRpcValue
+ *----------------------------------------------------------------------------*/
+void
+XmlRpcTools :: validStatusToXmlRpcValue(
+                            bool validStatus,
+                            XmlRpc::XmlRpcValue    & xmlRpcValue)
+                                                throw ()
+{
+    xmlRpcValue["valid"] = XmlRpc::XmlRpcValue(validStatus);
+}
+
diff --git a/livesupport/products/scheduler/src/XmlRpcTools.h b/livesupport/products/scheduler/src/XmlRpcTools.h
index ad6adbe52..282965cef 100644
--- a/livesupport/products/scheduler/src/XmlRpcTools.h
+++ b/livesupport/products/scheduler/src/XmlRpcTools.h
@@ -22,7 +22,7 @@
  
  
     Author   : $Author: fgerlits $
-    Version  : $Revision: 1.2 $
+    Version  : $Revision: 1.3 $
     Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/XmlRpcTools.h,v $
 
 ------------------------------------------------------------------------------*/
@@ -68,7 +68,7 @@ using namespace LiveSupport::Core;
  *  in the Scheduler.
  *
  *  @author  $Author: fgerlits $
- *  @version $Revision: 1.2 $
+ *  @version $Revision: 1.3 $
  */
 class XmlRpcTools
 {
@@ -131,7 +131,7 @@ class XmlRpcTools
          *  Convert a Playlist to an XmlRpcValue
          *
          *  @param playlist the Playlist to convert.
-         *  @param xmlRpcValue the output parameter holding the value of
+         *  @param xmlRpcValue the output parameter holding the result of
          *         the conversion.
          */
         static void
@@ -143,7 +143,7 @@ class XmlRpcTools
          *  Convert an error code, message pair to an XmlRpcValue
          *
          *  @param playlist the Playlist to convert.
-         *  @param xmlRpcValue the output parameter holding the value of
+         *  @param xmlRpcValue the output parameter holding the result of
          *         the conversion.
          */
         static void
@@ -151,6 +151,17 @@ class XmlRpcTools
                   XmlRpc::XmlRpcValue            & xmlRpcValue)
                                                                      throw ();
 
+        /**
+         *  Convert the valid status of a playlist to an XmlRpcValue
+         *
+         *  @param validStatus true if the playlist is valid, false otherwise.
+         *  @param xmlRpcValue the output parameter holding the result of
+         *         the conversion.
+         */
+        static void
+        validStatusToXmlRpcValue(bool validStatus,
+                                 XmlRpc::XmlRpcValue    & xmlRpcValue)
+                                                                     throw ();
 };
 
 /* ================================================= external data structures */