/trunk/91x_conf.h |
---|
41,7 → 41,7 |
/************************* FMI *************************/ |
#define _FMI |
/************************* WIU *************************/ |
//#define _WIU |
#define _WIU |
/************************* TIM *************************/ |
#define _TIM |
#define _TIM0 |
/trunk/GPS.c |
---|
1,4 → 1,14 |
/*#######################################################################################*/ |
/*#######################################################################################*/ |
// IMPORTANT NOTE: |
// This is only a dummy implementation for errorfree compiling of the NaviCtrl sources. |
// The GPS navigation routines are NOT included ! |
/*#######################################################################################*/ |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
7,14 → 17,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,21 → 35,21 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
52,108 → 62,551 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdio.h> |
#include <stdlib.h> |
#include <math.h> |
#include "91x_lib.h" |
#include "main.h" |
#include "uart1.h" |
#include "GPS.h" |
#include "timer.h" |
#include "spi_slave.h" |
#include "waypoints.h" |
#include "i2c.h" |
u8 OsdBar; // Direction home for OSD |
s16 OsdDistance; // Distance home |
s16 GPS_Nick; |
s16 GPS_Roll; |
struct str_GPSParameter GPSParameter; |
#define M_PI_180 (M_PI / 180.0f) |
#define GPS_UPDATETIME_MS 200 // 200ms is 5 Hz |
typedef enum |
{ |
GPS_FLIGHT_MODE_UNDEF, |
GPS_FLIGHT_MODE_FREE, |
GPS_FLIGHT_MODE_AID, |
GPS_FLIGHT_MODE_WAYPOINT |
} GPS_FlightMode_t; |
#define GPS_MODE_FREE 0 |
#define GPS_MODE_AID 1 |
#define GPS_MODE_HOLD 2 |
#define GPS_MODE_HOME 3 |
u32 GpsFlightMode = GPS_MODE_FREE; |
typedef struct |
{ |
float Gain; |
float P; |
float I; |
float D; |
float A; |
float ACC; |
u8 MinSat; |
s8 StickThreshold; |
float WindCorrection; |
s32 OperatingRadius; |
u32 NaviAngleLimitation; |
GPS_FlightMode_t FlightMode; |
} __attribute__((packed)) GPS_Parameter_t; |
typedef struct |
{ |
Status_t Status; // invalid, newdata, processed |
s32 North; // in cm |
s32 East; // in cm |
s32 Bearing; // in deg |
s32 Distance; // in cm |
} __attribute__((packed)) GPS_Deviation_t; |
GPS_Deviation_t TargetDeviation; |
GPS_Stick_t GPS_Stick; |
GPS_Parameter_t GPS_Parameter; |
// the gps reference positions |
GPS_Pos_t GPS_HoldPosition = {0,0,0, INVALID}; // the hold position |
GPS_Pos_t GPS_HomePosition = {0,0,0, INVALID}; // the home position |
GPS_Pos_t * GPS_pTargetPosition = NULL; // pointer to the actual target position |
Waypoint_t* GPS_pWaypoint = NULL; // pointer to the actual waypoint |
//------------------------------------------------------------- |
// Update GPSParamter |
void GPS_UpdateParameter(void) |
{ |
static GPS_FlightMode_t FlightMode_Old = GPS_FLIGHT_MODE_UNDEF; |
// in case of bad receiving conditions |
if(FC.RC_Quality < 100) |
{ // set fixed parameter |
GPS_Parameter.FlightMode = GPS_FLIGHT_MODE_FREE; |
GPS_Parameter.Gain = (float) 100; |
GPS_Parameter.P = (float) 90; |
GPS_Parameter.I = (float) 90; |
GPS_Parameter.D = (float) 90; |
GPS_Parameter.A = (float) 90; |
GPS_Parameter.ACC = (float) 0; |
GPS_Parameter.MinSat = 6; |
GPS_Parameter.StickThreshold = 8; |
GPS_Parameter.WindCorrection = 0.0; |
GPS_Parameter.OperatingRadius = 0; // forces the aircraft to fly to home positon |
GPS_Parameter.NaviAngleLimitation = 125; |
} |
else |
{ |
// update parameter from FC |
if(StopNavigation) GPS_Parameter.FlightMode = GPS_FLIGHT_MODE_FREE; |
else |
{ |
if (Parameter.NaviGpsModeControl < 50) GPS_Parameter.FlightMode = GPS_FLIGHT_MODE_AID; |
else if(Parameter.NaviGpsModeControl < 180) GPS_Parameter.FlightMode = GPS_FLIGHT_MODE_FREE; |
else GPS_Parameter.FlightMode = GPS_FLIGHT_MODE_WAYPOINT; |
} |
GPS_Parameter.Gain = (float)Parameter.NaviGpsGain; |
GPS_Parameter.P = (float)Parameter.NaviGpsP; |
GPS_Parameter.I = (float)Parameter.NaviGpsI; |
GPS_Parameter.D = (float)Parameter.NaviGpsD; |
GPS_Parameter.A = (float)Parameter.NaviGpsD; |
GPS_Parameter.ACC = (float)Parameter.NaviGpsACC; |
GPS_Parameter.MinSat = (u8)Parameter.NaviGpsMinSat; |
GPS_Parameter.StickThreshold = (s8)Parameter.NaviStickThreshold; |
GPS_Parameter.WindCorrection = (float)Parameter.NaviWindCorrection; |
GPS_Parameter.OperatingRadius = (s32)Parameter.NaviOperatingRadius * 100; // conversion of m to cm |
GPS_Parameter.NaviAngleLimitation = (u32) Parameter.NaviAngleLimitation * 2; |
} |
// FlightMode changed? |
if(GPS_Parameter.FlightMode != FlightMode_Old) BeepTime = 100; // beep to indicate that mode has switched |
FlightMode_Old = GPS_Parameter.FlightMode; |
} |
//------------------------------------------------------------- |
// This function defines a good GPS signal condition |
u8 GPS_IsSignalOK(void) |
{ |
if( (GPSData.Status != INVALID) && (GPSData.SatFix == SATFIX_3D) && (GPSData.NumOfSats >= GPS_Parameter.MinSat)) return(1); |
else return(0); |
} |
//------------------------------------------------------------ |
// Init variables or send configuration to GPS module |
// Checks for manual control action |
u8 GPS_IsManuallyControlled(void) |
{ |
if( ( (abs(FC.StickNick) > GPS_Parameter.StickThreshold) || (abs(FC.StickRoll) > GPS_Parameter.StickThreshold)) && (GPS_Parameter.StickThreshold > 0)) return 1; |
else return 0; |
} |
//------------------------------------------------------------ |
// copy GPS position from source position to target position |
u8 GPS_CopyPosition(GPS_Pos_t * pGPSPosSrc, GPS_Pos_t* pGPSPosTgt) |
{ |
u8 retval = 0; |
if((pGPSPosSrc == NULL) || (pGPSPosTgt == NULL)) return(retval); // bad pointer |
// copy only valid positions |
if(pGPSPosSrc->Status != INVALID) |
{ |
// if the source GPS position is not invalid |
pGPSPosTgt->Longitude = pGPSPosSrc->Longitude; |
pGPSPosTgt->Latitude = pGPSPosSrc->Latitude; |
pGPSPosTgt->Altitude = pGPSPosSrc->Altitude; |
pGPSPosTgt->Status = NEWDATA; // mark data in target position as new |
retval = 1; |
} |
return(retval); |
} |
//------------------------------------------------------------ |
// clear position data |
u8 GPS_ClearPosition(GPS_Pos_t * pGPSPos) |
{ |
u8 retval = FALSE; |
if(pGPSPos == NULL) return(retval); // bad pointer |
else |
{ |
pGPSPos->Longitude = 0; |
pGPSPos->Latitude = 0; |
pGPSPos->Altitude = 0; |
pGPSPos->Status = INVALID; |
retval = TRUE; |
} |
return (retval); |
} |
//------------------------------------------------------------ |
void GPS_Neutral() |
{ |
GPS_Stick.Nick = 0; |
GPS_Stick.Roll = 0; |
GPS_Stick.Yaw = 0; |
} |
//------------------------------------------------------------ |
void GPS_Init(void) |
{ |
GPS_Nick = 0; |
GPS_Roll = 0; |
OsdDistance = 0; |
OsdBar = 0; |
SerialPutString("\r\n GPS init..."); |
UBX_Init(); |
GPS_Neutral(); |
GPS_ClearPosition(&GPS_HoldPosition); |
GPS_ClearPosition(&GPS_HomePosition); |
GPS_pTargetPosition = NULL; |
WPList_Init(); |
GPS_pWaypoint = WPList_Begin(); |
GPS_UpdateParameter(); |
SerialPutString("ok"); |
} |
GPSParameter.P = 100; |
GPSParameter.I = 100; |
GPSParameter.D = 100; |
GPSParameter.A = 100; |
GPSParameter.ACC = 100; |
GPSParameter.ModeSchalter = 100; |
GPSParameter.Amplification = 100;; |
//------------------------------------------------------------ |
// calculate the bearing to target position from its deviation |
s32 DirectionToTarget_N_E(float northdev, float eastdev) |
{ |
s32 bearing; |
bearing = (s32)(atan2(northdev, eastdev) / M_PI_180); |
bearing = (270L - bearing)%360L; |
return(bearing); |
} |
//------------------------------------------------------------ |
// Rescale xy-vector length if length limit is violated |
void GPS_LimitXY(s32 *x, s32 *y, s32 limit) |
{ |
s32 dist; |
dist = (s32)hypot(*x,*y); // the length of the vector |
if ((dist != 0L) && (dist > limit)) |
// if vector length is larger than the given limit |
{ // scale vector compontents so that the length is cut off to limit |
*x = (*x * limit) / dist; |
*y = (*y * limit) / dist; |
} |
} |
u8 Navigation(void) |
//------------------------------------------------------------ |
// transform the integer deg into float radians |
inline double RadiansFromGPS(s32 deg) |
{ |
static char GpsFix = 0, NewGpsMode = 0; |
static u32 beep_rythm; |
u32 tmp_long; |
if(NewGPSDataAvail) // there are new data from gps module |
{ |
NewGPSDataAvail = 0; |
beep_rythm++; |
return ((double)deg * 1e-7f * M_PI_180); // 1E-7 because deg is the value in ° * 1E7 |
} |
GPSParameter.ModeSchalter = Parameter_UserParam1; |
GPSParameter.Amplification = (float) Parameter_UserParam2 / (100.0); |
GPSParameter.P = (float) Parameter_UserParam3; |
GPSParameter.I = (float) Parameter_UserParam4; |
GPSParameter.D = (float) Parameter_UserParam5; |
GPSParameter.A = (float) Parameter_UserParam6; |
GPSParameter.ACC = (float) Parameter_UserParam7; |
if(SenderOkay < 100) // Empfangsausfall |
{ |
GPSParameter.ModeSchalter = 0; |
GPSParameter.Amplification = 100; |
GPSParameter.P = (float) 90; |
GPSParameter.I = (float) 90; |
GPSParameter.D = (float) 90; |
GPSParameter.A = (float) 90; |
GPSParameter.ACC = (float) 90; |
} |
//------------------------------------------------------------ |
// transform the integer deg into float deg |
inline double DegFromGPS(s32 deg) |
{ |
return ((double)deg * 1e-7f); // 1E-7 because deg is the value in ° * 1E7 |
} |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//+ GPS-Mode |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
tmp_long = GpsFlightMode; |
if(GPSParameter.ModeSchalter < 20) GpsFlightMode = GPS_MODE_AID; |
else |
if(GPSParameter.ModeSchalter < 200) GpsFlightMode = GPS_MODE_FREE; |
else GpsFlightMode = GPS_MODE_HOME; |
if(GpsFlightMode != tmp_long) // Mode changed |
{ |
BeepTime = 100; |
NewGpsMode = 1; |
} |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//------------------------------------------------------------ |
// calculate the deviation from the current position to the target position |
u8 GPS_CalculateDeviation(GPS_Pos_t * pCurrentPos, GPS_Pos_t * pTargetPos) |
{ |
double temp1, temp2; |
// if given pointer is NULL |
if((pCurrentPos == NULL) || (pTargetPos == NULL)) goto baddata; |
// if positions are invalid |
if((pCurrentPos->Status == INVALID) || (pTargetPos->Status == INVALID)) goto baddata; |
// The deviation from the current to the target position along north and east direction is |
// simple the lat/lon difference. To convert that angular deviation into an |
// arc length the spherical projection has to be considered. |
// The mean earth radius is 6371km. Therfore the arc length per latitude degree |
// is always 6371km * 2 * Pi / 360deg = 111.2 km/deg. |
// The arc length per longitude degree depends on the correspondig latitude and |
// is 111.2km * cos(latitude). |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//+ Fix okay |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if((GPS_Data.Flags & GPS_FIX) && ((GPS_Data.Used_Sat >= GPS_SAT_MIN) || GpsFix)) |
{ |
GpsFix = 1; // hysteresis |
// here is a good place to put your GPS code... |
GPS_Nick = 0; // do nothing |
GPS_Roll = 0; // do nothing |
// calculate the shortest longitude deviation from target |
temp1 = DegFromGPS(pCurrentPos->Longitude) - DegFromGPS(pTargetPos->Longitude); |
// outside an angular difference of -180 deg ... +180 deg its shorter to go the other way around |
// In our application we wont fly more than 20.000 km but along the date line this is important. |
if(temp1 > 180.0f) temp1 -= 360.0f; |
else if (temp1 < -180.0f) temp1 += 360.0f; |
temp1 *= cos(RadiansFromGPS(pTargetPos->Latitude)); |
// calculate latitude deviation from target |
// this is allways within -180 deg ... 180 deg |
temp2 = DegFromGPS(pCurrentPos->Latitude) - DegFromGPS(pTargetPos->Latitude); |
// deviation from target position in cm |
// i.e. the distance to walk from the target in northern and eastern direction to reach the current position |
TargetDeviation.Status = INVALID; |
TargetDeviation.North = (s32)(11119492.7f * temp2); |
TargetDeviation.East = (s32)(11119492.7f * temp1); |
// If the position deviation is small enough to neglect the earth curvature |
// (this is for our application always fulfilled) the distance to target |
// can be calculated by the pythagoras of north and east deviation. |
TargetDeviation.Distance = (s32)(11119492.7f * hypot(temp1, temp2)); |
if (TargetDeviation.Distance == 0L) TargetDeviation.Bearing = 0L; |
else TargetDeviation.Bearing = DirectionToTarget_N_E(temp2, temp1); |
TargetDeviation.Status = NEWDATA; |
return TRUE; |
baddata: |
TargetDeviation.North = 0L; |
TargetDeviation.East = 0L; |
TargetDeviation.Distance = 0L; |
TargetDeviation.Bearing = 0L; |
TargetDeviation.Status = INVALID; |
return FALSE; |
} |
//------------------------------------------------------------ |
void GPS_Navigation(void) |
{ |
static u32 beep_rythm; |
static u32 GPSDataTimeout = 0; |
// pointer to current target position |
static GPS_Pos_t * pTargetPositionOld = NULL; |
static Waypoint_t* GPS_pWaypointOld = NULL; |
static GPS_Pos_t RangedTargetPosition = {0,0,0, INVALID}; // the limited target position, this is derived from the target position with repect to the operating radius |
static s32 OperatingRadiusOld = -1; |
static u8 WPArrived = FALSE; |
static u32 WPTime = 0; |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//+ Check for new data from GPS-receiver |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
switch(GPSData.Status) |
{ |
case INVALID: // no gps data available |
// do nothing |
break; |
case PROCESSED: // the current data have been allready processed |
// if no new data are available within the timeout switch to invalid state. |
if(CheckDelay(GPSDataTimeout)) GPSData.Status = INVALID; |
// wait for new gps data |
break; |
case NEWDATA: // handle new gps data |
// update GPS Parameter from FC-Data via SPI interface |
GPS_UpdateParameter(); |
// wait maximum of 3 times the normal data update time before data timemout |
GPSDataTimeout = SetDelay(3 * GPS_UPDATETIME_MS); |
beep_rythm++; |
// debug |
DebugOut.Analog[21] = (u16)GPSData.Speed_North; |
DebugOut.Analog[22] = (u16)GPSData.Speed_East; |
DebugOut.Analog[31] = (u16)GPSData.NumOfSats; |
// If GPS signal condition is sufficient for a reliable position measurement |
if(GPS_IsSignalOK()) |
{ |
// if the MK is starting or the home position is invalid then store the home position |
if((FC.MKFlags & MKFLAG_START) || (GPS_HomePosition.Status == INVALID)) |
{ // try to update the home position from the current position |
if(GPS_CopyPosition(&(GPSData.Position), &GPS_HomePosition)) |
{ |
BeepTime = 700; // beep on success |
GPS_CopyPosition(&GPS_HomePosition, &(NaviData.HomePosition)); |
} |
GPS_pWaypoint = WPList_Begin(); // go to start of waypoint list, return NULL of the list is empty |
} |
/* The selected flight mode influences the target position pointer and therefore the behavior */ |
// check for current flight mode and set the target pointer GPS_pTargetPosition respectively |
switch(GPS_Parameter.FlightMode) |
{ |
// the GPS control is deactived |
case GPS_FLIGHT_MODE_FREE: |
NaviData.NCFlags &= ~(NC_FLAG_PH | NC_FLAG_CH); |
NaviData.NCFlags |= NC_FLAG_FREE; |
// update hold position |
GPS_CopyPosition(&(GPSData.Position), &GPS_HoldPosition); |
// no target position |
GPS_pTargetPosition = NULL; |
break; |
// the GPS supports the position hold, if the pilot takes no action |
case GPS_FLIGHT_MODE_AID: |
NaviData.NCFlags &= ~(NC_FLAG_FREE | NC_FLAG_CH); |
NaviData.NCFlags |= NC_FLAG_PH; |
// reset WPList to begin |
GPS_pWaypoint = WPList_Begin(); |
if(GPS_IsManuallyControlled()) |
{ |
GPS_CopyPosition(&(GPSData.Position), &GPS_HoldPosition); |
GPS_pTargetPosition = NULL; |
} |
else |
{ |
GPS_pTargetPosition = &GPS_HoldPosition; |
} |
break; |
// the GPS control is directed to a target position |
// given by a waypoint or by the home position |
case GPS_FLIGHT_MODE_WAYPOINT: |
NaviData.NCFlags &= ~(NC_FLAG_FREE | NC_FLAG_PH); |
NaviData.NCFlags |= NC_FLAG_CH; |
// waypoint trigger logic |
if(GPS_pWaypoint != NULL) // waypoint exist |
{ |
if(GPS_pWaypoint->Position.Status == INVALID) // should never happen |
{ |
GPS_pWaypoint = WPList_Next(); // goto to next WP |
WPArrived = FALSE; |
BeepTime = 255; |
} |
else // waypoint position is valid |
{ |
// check if the pointer to the waypoint has been changed or the data have been updated |
if((GPS_pWaypoint != GPS_pWaypointOld) || (GPS_pWaypoint->Position.Status == NEWDATA)) |
{ |
GPS_pWaypointOld = GPS_pWaypoint; |
// reset the arrived bit to break a pending HoldTime of the old WP |
WPArrived = FALSE; |
} |
if(TargetDeviation.Status != INVALID) |
{ // if the waypoint was not catched and the target area has been reached |
if(!WPArrived && (TargetDeviation.Distance < (GPS_pWaypoint->ToleranceRadius * 100))) |
{ |
WPArrived = TRUE; |
WPTime = SetDelay(GPS_pWaypoint->HoldTime * 1000); // set hold time stamp |
} |
} |
// if WP has been reached once, wait hold time before trigger to next one |
if(WPArrived) |
{ |
/* ToDo: Adjust GPS_pWaypoint->Heading, GPS_pWaypoint->Event handling */ |
if(CheckDelay(WPTime)) |
{ |
GPS_pWaypoint = WPList_Next(); // goto to next waypoint, return NULL if end of list has been reached |
WPArrived = FALSE; // which is not arrived |
} |
} // EOF if(WPArrived) |
} |
} // EOF waypoint trigger logic |
if(GPS_pWaypoint != NULL) // Waypoint exist |
{ |
// update the hold position |
GPS_CopyPosition(&(GPSData.Position), &GPS_HoldPosition); |
GPS_pTargetPosition = &(GPS_pWaypoint->Position); |
} |
else // no waypoint info available, i.e. the WPList is empty or the end of the list has been reached |
{ |
// fly back to home postion |
if(GPS_HomePosition.Status == INVALID) |
{ |
GPS_pTargetPosition = &GPS_HoldPosition; // fall back to hold mode if home position is not available |
BeepTime = 255; // beep to indicate missin home position |
} |
else // the home position is valid |
{ |
// update the hold position |
GPS_CopyPosition(&(GPSData.Position), &GPS_HoldPosition); |
// set target to home position |
GPS_pTargetPosition = &GPS_HomePosition; |
} |
} |
break; |
case GPS_FLIGHT_MODE_UNDEF: |
default: |
// update hold position |
GPS_CopyPosition(&(GPSData.Position), &GPS_HoldPosition); |
// no target position |
GPS_pTargetPosition = NULL; |
break; |
}// EOF GPS Mode Handling |
/* Calculation of range target based on the real target */ |
// if no target position exist clear the ranged target position |
if(GPS_pTargetPosition == NULL) GPS_ClearPosition(&RangedTargetPosition); |
else |
{ // if the target position has been changed or the value has been updated or the OperatingRadius has changed |
if((GPS_pTargetPosition != pTargetPositionOld) || (GPS_pTargetPosition->Status == NEWDATA) || (GPS_Parameter.OperatingRadius != OperatingRadiusOld) ) |
{ |
// calculate deviation of new target position from home position |
if(GPS_CalculateDeviation(GPS_pTargetPosition, &GPS_HomePosition)) |
{ |
// check distance from home position |
if(TargetDeviation.Distance > GPS_Parameter.OperatingRadius) |
{ |
//calculate ranged target position to be within the operation radius area |
NaviData.NCFlags |= NC_FLAG_RANGE_LIMIT; |
TargetDeviation.Distance = GPS_Parameter.OperatingRadius; |
GPS_LimitXY(&(TargetDeviation.East), &(TargetDeviation.North), TargetDeviation.Distance); |
RangedTargetPosition.Status = INVALID; |
RangedTargetPosition.Latitude = GPS_HomePosition.Latitude; |
RangedTargetPosition.Latitude += (s32)((float)TargetDeviation.North / 1.11194927f); |
RangedTargetPosition.Longitude = GPS_HomePosition.Longitude; |
RangedTargetPosition.Longitude += (s32)((float)TargetDeviation.East / (1.11194927f * cos(RadiansFromGPS(GPS_HomePosition.Latitude))) ); |
RangedTargetPosition.Altitude = GPS_pTargetPosition->Altitude; |
RangedTargetPosition.Status = NEWDATA; |
} |
else |
{ // the target is located within the operation radius area |
// simple copy the loaction to the ranged target position |
GPS_CopyPosition(GPS_pTargetPosition, &RangedTargetPosition); |
NaviData.NCFlags &= ~NC_FLAG_RANGE_LIMIT; |
} |
} |
else |
{ // deviation could not be determined |
GPS_ClearPosition(&RangedTargetPosition); |
} |
GPS_pTargetPosition->Status = PROCESSED; // mark current target as processed! |
} |
} |
OperatingRadiusOld = GPS_Parameter.OperatingRadius; |
// remember last target position pointer |
pTargetPositionOld = GPS_pTargetPosition; |
/* Calculate position deviation from ranged target */ |
// calculate deviation of current position to ranged target position in cm |
if(GPS_CalculateDeviation(&(GPSData.Position), &RangedTargetPosition)) |
{ |
// implement your control code here based |
// in the info available in the TargetDeviation, GPSData and FromFlightCtrl.GyroHeading |
GPS_Stick.Nick = 0; |
GPS_Stick.Roll = 0; |
GPS_Stick.Yaw = 0; |
} |
else // deviation could not be calculated |
{ // do nothing on gps sticks! |
GPS_Neutral(); |
} |
}// eof if GPSSignal is OK |
else // GPSSignal not OK |
{ |
GPS_Neutral(); |
// beep if signal is not sufficient |
if(GPS_Parameter.FlightMode != GPS_FLIGHT_MODE_FREE) |
{ |
if(!(GPSData.Flags & FLAG_GPSFIXOK) && !(beep_rythm % 5)) BeepTime = 100; |
else if (GPSData.NumOfSats < GPS_Parameter.MinSat && !(beep_rythm % 5)) BeepTime = 10; |
} |
} |
GPSData.Status = PROCESSED; // mark as processed |
break; |
} |
else |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//+ No Fix |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
{ |
GPS_Nick = 0; // reset value |
GPS_Roll = 0; // reset value |
if(!(GPS_Data.Flags & 0x01) && !(beep_rythm % 5)) BeepTime = 100; |
else if (GPS_Data.Used_Sat < GPS_SAT_MIN && !(beep_rythm % 5)) BeepTime = 10; |
} |
} |
return (0); |
DebugOut.Analog[27] = (s16)TargetDeviation.North; |
DebugOut.Analog[28] = (s16)TargetDeviation.East; |
DebugOut.Analog[29] = GPS_Stick.Nick; |
DebugOut.Analog[30] = GPS_Stick.Roll; |
// update navi data, send back to ground station |
GPS_CopyPosition(&(GPSData.Position), &(NaviData.CurrentPosition)); |
GPS_CopyPosition(&RangedTargetPosition, &(NaviData.TargetPosition)); |
NaviData.SatsInUse = GPSData.NumOfSats; |
NaviData.TargetPositionDeviation.Distance = TargetDeviation.Distance; |
NaviData.TargetPositionDeviation.Bearing = TargetDeviation.Bearing; |
NaviData.UBat = FC.UBat; |
NaviData.GroundSpeed = (u16)GPSData.Speed_Ground; |
NaviData.Heading = (s16)GPSData.Heading; |
NaviData.CompassHeading = (s16)FromFlightCtrl.GyroHeading; |
NaviData.AngleNick = FromFlightCtrl.IntegralNick / 10; |
NaviData.AngleRoll = FromFlightCtrl.IntegralRoll / 10; |
NaviData.RC_Quality = (u8) FC.RC_Quality; |
NaviData.MKFlags = (u8)FC.MKFlags; |
//+++++++++++++++++++++++++++++++++++++++++++++++++++ |
return; |
} |
/trunk/GPS.h |
---|
1,36 → 1,24 |
#ifndef __GPS_H |
#define __GPS_H |
#include "waypoints.h" |
#define GPS_SAT_MIN 6 |
#define GPS_FIX 0x01 |
struct str_GPSParameter |
typedef struct |
{ |
float Amplification; |
float P; |
float I; |
float D; |
float V; |
float A; |
float ACC; |
s32 ModeSchalter; |
} __attribute__((packed)); |
s16 Nick; |
s16 Roll; |
s16 Yaw; |
} __attribute__((packed)) GPS_Stick_t; |
extern struct str_GPSParameter GPSParameter; |
extern GPS_Pos_t GPS_HomePosition; |
extern GPS_Pos_t * GPS_pTargetPosition; |
extern Waypoint_t* GPS_pWaypoint; |
extern u8 OsdBar; |
extern s16 OsdDistance; |
extern s16 GPS_Nick; |
extern s16 GPS_Roll; |
extern GPS_Stick_t GPS_Stick; |
extern u8 Navigation(void); |
extern void GPS_Init(void); |
extern s32 TargetListeLong[20]; |
extern s32 TargetListeLat[20]; |
extern u32 ActualTargetNumber; |
extern u32 StoreTargetNumber; |
void GPS_Navigation(void); |
void GPS_Init(void); |
extern u8 GPS_CopyPosition(GPS_Pos_t * pGPSPosSrc, GPS_Pos_t* pGPSPosTgt); |
#endif //__GPS_H |
#endif |
/trunk/Hex-Files/Navi-Ctrl_STR9_Release.hex |
---|
0,0 → 1,7504 |
:1000000018F09FE518F09FE518F09FE518F09FE5C0 |
:1000100018F09FE50000A0E118F09FE518F09FE5BB |
:1000200050010000400000004400000048000000B3 |
:100030004C000000000000005000000054000000D0 |
:10004000230000EA1A0000EA280000EA2F0000EA74 |
:10005000000000EA350000EA04E04EE2FF5F2DE90F |
:1000600000104FE102002DE92C029FE5000090E511 |
:1000700028129FE5001091E50000A0E10000A0E13A |
:100080001FF021E300402DE914E29FE500F0A0E11C |
:100090000040BDE8D2F021E3FC019FE5000080E5CF |
:1000A000F8119FE5001081E50200BDE801F06FE165 |
:1000B000FF9FFDE8FF5F2DE900104FE102002DE9F1 |
:1000C0000D10A0E1830200EB0200BDE801F06FE13A |
:1000D000FF9FFDE8FF5F2DE900104FE102002DE9D1 |
:1000E000850200EB0200BDE801F06FE1FF9FFDE833 |
:1000F00004E04EE2FF5F2DE900104FE102002DE920 |
:10010000860200EB0200BDE801F06FE1FF9FFDE811 |
:1001100008E04EE2FF5F2DE900104FE102002DE9FB |
:100120006D0200EB0200BDE801F06FE1FF9FFDE80A |
:1001300004E04EE2FF402DE900104FE102002DE9FE |
:10014000750200EB0200BDE801F06FE1FF80FDE801 |
:1001500050119FE50020A0E3011041E2020051E1AF |
:10016000FCFFFF8A40019FE540119FE5341080E5C8 |
:1001700034019FE538119FE5001080E50000A0E103 |
:100180000000A0E10000A0E10000A0E10000A0E16B |
:100190000000A0E10000A0E10000A0E10000A0E15B |
:1001A0000000A0E10000A0E10000A0E10000A0E14B |
:1001B0000000A0E10000A0E10000A0E10267A0E3D0 |
:1001C0006070A0E3B070C6E1E8609FE50370A0E353 |
:1001D000B070C6E1E0109FE5041080E5081090E5DE |
:1001E000011011E2FCFFFF0AD0109FE5001080E52E |
:1001F000CC109FE51C1080E5C8109FE5201080E51D |
:10020000C4009FE5D1F021E300D0A0E1800040E2EE |
:10021000D2F021E300D0A0E1020B40E2D7F021E3CD |
:1002200000D0A0E1040040E2DBF021E300D0A0E137 |
:10023000040040E2D3F021E300D0A0E1800040E2DE |
:1002400010F021E300D0A0E101AB4DE27C109FE56E |
:100250007C209FE57C309FE5030052E1040091344F |
:1002600004008234FBFFFF3A0000A0E368109FE522 |
:1002700068209FE5020051E104008134FCFFFF3A51 |
:100280000000A0E358109FE558209FE5020051E1CF |
:1002900004008134FCFFFF3A000100EA30F0FFFF68 |
:1002A000300000FC9000000020A107000020005C4E |
:1002B00096010000020002004030080019C00B0047 |
:1002C00080000200731B000001C8FE0000800104D2 |
:1002D000F0D0010000000004B8030004C0030004D3 |
:1002E0000819000408190004081900040DC0A0E151 |
:1002F00000D82DE904B04CE20200A0E3453500EB44 |
:100300000000A0E3703500EB020CA0E3183600EB10 |
:100310008000A0E3B33500EB1C00E0E39D3500EB6B |
:100320006000E0E3A53500EBC000A0E31910A0E3F6 |
:100330000320A0E34B3500EB0100A0E3623500EBA6 |
:100340000000A0E3333500EB00A81BE90DC0A0E1DD |
:1003500010D82DE904B04CE220D04DE22C404BE205 |
:100360006930A0E300308DE50400A0E114109FE5A2 |
:100370000020A0E30C30A0E35D5F00EB0400A0E1EF |
:10038000652500EB10A81BE95CC401000DC0A0E1CD |
:1003900010D82DE904B04CE208D04DE28C109FE556 |
:1003A0000A30D1E5000053E30000A00310A81B09A8 |
:1003B0007C009FE5002090E5003091E5030052E1CC |
:1003C0000A00000AB020D1E1B020C0E10230D1E53E |
:1003D0000230C0E50330D1E50330C0E50130A0E3D1 |
:1003E0000A30C0E54C309FE50020A0E3B020C3E117 |
:1003F00038109FE5B020D1E10230D1E50310D1E5FE |
:1004000000108DE52C409FE5B010D4E104108DE57F |
:1004100024009FE524109FE5355F00EBB030D4E168 |
:10042000013083E2B030C4E10C009FE510A81BE965 |
:10043000E0080004E8030004C6030004C803000445 |
:1004400074C401000DC0A0E100D82DE904B04CE255 |
:1004500000329FE5003093E5000053E30900001AE5 |
:100460001603A0E30B0A80E28010A0E30120A0E3C2 |
:100470001F3800EBE0019FE5E0119FE51C5F00EBFA |
:100480000320A0E3490000EAD4319FE5003093E562 |
:10049000000053E30900001A1603A0E30B0A80E2F0 |
:1004A0008010A0E30120A0E3113800EBA8019FE534 |
:1004B000B0119FE50E5F00EB0420A0E33B0000EAD3 |
:1004C000A4319FE50330D3E5030053E30D00000A98 |
:1004D0001603A0E30B0A80E28010A0E30120A0E352 |
:1004E000033800EB70019FE580119FE5005F00EB92 |
:1004F0000130A0E378219FE5003082E574219FE57B |
:100500000030C2E54B0000EA6C319FE50330D3E5D3 |
:10051000020053E30900000A3C019FE55C119FE5DE |
:10052000F35E00EB1603A0E30B0A80E28010A0E369 |
:100530000120A0E3EE3700EB0220A0E31B0000EA5D |
:100540003C319FE5003093E5000053E30900001AB9 |
:100550001603A0E30B0A80E28010A0E30120A0E3D1 |
:10056000E33700EBF0009FE518119FE5E05E00EB3C |
:100570000520A0E30D0000EA0C319FE50020D3E543 |
:100580000130D3E5A333B0E10E00000A1603A0E367 |
:100590000B0A80E28010A0E30120A0E3D43700EB37 |
:1005A000B4009FE5E4109FE5D15E00EB0620A0E3D8 |
:1005B000BC309FE5002083E50120A0E3B4309FE537 |
:1005C0000020C3E51B0000EAC4309FE50830D3E5F6 |
:1005D000630053E30B00008A1603A0E30B0A80E2DA |
:1005E0008010A0E30120A0E3C13700EB68009FE585 |
:1005F000A0109FE5BE5E00EB0720A0E370309FE5F2 |
:10060000002083E50B0000EA4C009FE588109FE581 |
:10061000B75E00EB0020A0E354309FE5002083E5A7 |
:1006200050309FE50020C3E51603A0E30B0A80E2EB |
:100630008010A0E3AE3700EB0020A0E314309FE56C |
:10064000002083E538309FE5002083E510309FE5EA |
:10065000002083E500A81BE90804000468080004E2 |
:1006600094C401001C040004ACC4010090090004FF |
:10067000C8C40100C0030004C5030004300A00041C |
:10068000DCC40100B4040004F4C40100080A00043E |
:100690000CC50100A808000420C5010030C50100F8 |
:1006A0000DC0A0E170D82DE904B04CE264D04DE259 |
:1006B0000050A0E30CFFFFEB7C004BE2B62600EB02 |
:1006C0002000A0E30110A0E3DC3400EB2000A0E355 |
:1006D0000510A0E1EF3400EB633900EBF50000EB0F |
:1006E000740600EBF01C00EBE82000EB40039FE5F4 |
:1006F000892400EBDC2500EB622000EB4F0E00EBC1 |
:10070000940700EB440B00EB602A00EBDC0F00EBDE |
:100710000500A0E3AA0600EB18339FE5000083E57F |
:10072000FA00A0E3A60600EB0C339FE5000083E58A |
:10073000BB0EA0E3080080E2A10600EBFC329FE5BF |
:10074000000083E5E8029FE5732400EBF0029FE5DB |
:10075000712400EBFCFEFFEBFC0A00EBE4329FE5AA |
:100760000330D3E5030053E30600000AD8029FE5F7 |
:10077000692400EB1603A0E30B0A80E28010A0E3DB |
:100780000120A0E35A3700EBE80D00EBBC329FE5F7 |
:100790000330D3E5020053E30600000AB0029FE5F0 |
:1007A0005D2400EB1603A0E30B0A80E28010A0E3B7 |
:1007B0000120A0E34E3700EB98029FE5562400EBA2 |
:1007C00094329FE50030D3E5000053E32C23001B57 |
:1007D0006D2400EBC50700EBE82100EB7C329FE5C0 |
:1007E000003093E5050053E31F00000A44329FE503 |
:1007F000000093E5780600EBFF0010E31A00000A02 |
:100800005C329FE5000093E5730600EBFF0010E308 |
:100810000400000A4C029FE53F2400EBB50B00EBFF |
:10082000FD0A00EB100000EA3C029FE53C129FE548 |
:10083000C32700EB38329FE50020D3E5FF2002E21A |
:1008400028329FE50030D3E5FF3003E2030052E198 |
:100850000400A0130300A003340D00EB1900A0E373 |
:10086000570600EBCC319FE5000083E5CC319FE5D6 |
:10087000000093E5580600EBFF0010E30B00000AB0 |
:10088000F0319FE5003093E5000053E35D2B000B52 |
:10089000EBFEFFEBFA0FA0E3490600EB9C319FE56E |
:1008A000000083E50120A0E3CC319FE50020C3E5F3 |
:1008B00084419FE5000094E5470600EBFF0010E34C |
:1008C000BEFFFF0A7D0FA0E33D0600EB000084E5BC |
:1008D000A8319FE50A30D3E5020013E34800000A7F |
:1008E000030055E305F19F97B4FFFFEAFC08000001 |
:1008F000FC08000070090000D4090000A2FEFFEB14 |
:100900000040A0E1000050E3ACFFFF0ACE1500EB71 |
:10091000FF0010E3F8FFFF1A000054E3A7FFFF0AEF |
:100920000400A0E17C104BE2232600EBFF0010E363 |
:100930000600000A0250A0E344019FE5F62300EB05 |
:100940000400A0E1F42300EB38019FE59AFFFFEAE1 |
:100950000350A0E330019FE5EF2300EB0400A0E18A |
:10096000ED2300EB1C019FE5EB2300EB1F0000EAE9 |
:1009700018019FE52F30D0E53020D0E5023483E127 |
:100980003120D0E5023883E13220D0E5023C93E10A |
:100990008AFFFF0A1030D0E5010013E387FFFF0A4A |
:1009A0001240D0E5030054E384FFFF1A7C604BE261 |
:1009B0000610A0E1122700EBFF0010E37FFFFF1AF3 |
:1009C000CC009FE5D42300EB0600A0E1152600EB48 |
:1009D000150000EA2A0F00EBFF1010E20350A013ED |
:1009E0004E0DA013080080120100001A0150A0E172 |
:1009F0000A00A0E3F20500EB3C309FE5000083E530 |
:100A00006EFFFFEA020055E36CFFFF1A7C004BE229 |
:100A1000042600EBFF0010E30300000A74009FE5CA |
:100A2000BD2300EB0150A0E364FFFFEA0350A0E305 |
:100A300062FFFFEA48C5010020080004A008000486 |
:100A40006008000478C501009009000490C5010009 |
:100A5000300A0004B0C50100CCC501002305000424 |
:100A6000680000041804000400C6010040090004E6 |
:100A7000E8090004400A0004080400041805000402 |
:100A8000A808000420C601009CCF010038C6010060 |
:100A9000B804000454C6010070C601000231A0E38E |
:100AA000C339A0E1FF20A0E3302083E53F33A0E37A |
:100AB000302083E50EF0A0E10231A0E3C339A0E1CC |
:100AC0000C209FE5342083E53F33A0E3342083E509 |
:100AD0000EF0A0E19C0A00000EF0B0E104C02DE58C |
:100AE0000DC0A0E10FD82DE904B04CE204009FE551 |
:100AF000892300EBFEFFFFEA88C6010004C02DE554 |
:100B00000DC0A0E10FD82DE904B04CE204009FE530 |
:100B1000812300EBFEFFFFEA98C6010004F05EE2CD |
:100B200004C02DE50DC0A0E10FD82DE904B04CE2C2 |
:100B300004009FE5782300EBFEFFFFEAACC601004E |
:100B40000231A0E3C339A0E1FF20A0E3302083E518 |
:100B50000EF0A0E10231A0E3C339A0E1FF20A0E341 |
:100B6000302083E50EF0A0E10231A0E3C339A0E11B |
:100B7000FF20A0E3302083E50EF0A0E10231A0E3E6 |
:100B8000C339A0E1FF20A0E3302083E50EF0A0E10F |
:100B90000231A0E3C339A0E1FF20A0E3302083E5C8 |
:100BA0000EF0A0E10231A0E3C339A0E1FF20A0E3F1 |
:100BB000302083E50EF0A0E10231A0E3C339A0E1CB |
:100BC000FF20A0E3302083E50EF0A0E10DC0A0E1FE |
:100BD00000D82DE904B04CE2454700EB0231A0E318 |
:100BE000C339A0E1FF20A0E3302083E500A81BE982 |
:100BF0000DC0A0E100D82DE904B04CE2B31900EB20 |
:100C00000231A0E3C339A0E1FF20A0E3302083E557 |
:100C100000A81BE90231A0E3C339A0E1FF20A0E353 |
:100C2000302083E50EF0A0E10231A0E3C339A0E15A |
:100C3000FF20A0E3302083E50EF0A0E10231A0E325 |
:100C4000C339A0E1FF20A0E3302083E50EF0A0E14E |
:100C50000231A0E3C339A0E1FF20A0E3302083E507 |
:100C60000EF0A0E10231A0E3C339A0E1FF20A0E330 |
:100C7000302083E50EF0A0E10231A0E3C339A0E10A |
:100C8000FF20A0E3302083E50EF0A0E10EF0A0E10C |
:100C90000EF0A0E10EF0A0E10EF0A0E10EF0A0E158 |
:100CA0000EF0A0E10DC0A0E100D82DE904B04CE2A7 |
:100CB0001B00A0E30010A0E35A3800EB020BA0E3F6 |
:100CC000513E00EB000050E30700000A28309FE58A |
:100CD0006420A0E3B020C3E1690E00EB0200A0E3B2 |
:100CE000453E00EB020BA0E3523E00EB1B00A0E3ED |
:100CF0000110A0E34B3800EB00A81BE940080004FA |
:100D00000EF0A0E10EF0A0E10EF0A0E10EF0A0E1E7 |
:100D10000030A0E318109FE52020A0E30320C1E7E6 |
:100D2000013083E2FF3003E24F0053E30EF0A08175 |
:100D3000F9FFFFEA000000040DC0A0E170D82DE922 |
:100D400004B04CE204D04DE2F03A9FE50030D3E528 |
:100D5000010013E30800000AE42A9FE50030D2E511 |
:100D6000000053E3013043120030C215D43A9F050E |
:100D70000020D305C83A9F050020C305BC3A9FE573 |
:100D80000030D3E5020013E30A00000AB01A9FE521 |
:100D90000030D1E5AC2A9FE50020D2E5020053E106 |
:100DA0000030A0030030C105942A9F150030D215F1 |
:100DB000013083120030C215803A9FE50030D3E540 |
:100DC000033003E2030053E30020A003703A9F05C1 |
:100DD0000020C305CDFFFFEB641A9FE50020D1E59D |
:100DE000603A9FE50030D3E5030052E10030C18551 |
:100DF0004C3A9FE50010D3E5090051E31120A09380 |
:100E0000443A9F950020C3951020A083383A9F85CF |
:100E10000020C385283A9F850010D3852C0A9FE5C2 |
:100E2000170300EB183A9FE50030D3E50C0053E3BD |
:100E300003F19F97760200EA6C0E0000FC0E0000A2 |
:100E40000C1100009812000054130000B8130000A9 |
:100E5000DC140000241500006C15000004160000CE |
:100E600078160000F816000064170000D8599FE5B6 |
:100E70000040A0E30040C5E5D4099FE5000300EB76 |
:100E80001430A0E30030C5E5C8099FE50410A0E1D7 |
:100E90000C20A0E36930A0E3F90200EBB8399FE52C |
:100EA000001093E5040051E10400000A1F30A0E3A4 |
:100EB0000030C5E5A4099FE5F10200EB040000EA5B |
:100EC0001F20A0E380399FE50020C3E590099FE53E |
:100ED000EB0200EB70499FE52830A0E30030C4E549 |
:100EE00080099FE580199FE5E50200EB3C30A0E317 |
:100EF0000030C4E574099FE5470100EA70199FE5D9 |
:100F00002F20D1E53030D1E5032482E13130D1E525 |
:100F1000032882E13230D1E5033C92E10F00001A50 |
:100F200024499FE50030C4E548099FE5D40200EB61 |
:100F30001430A0E30030C4E53C099FE5D00200EB8B |
:100F40002830A0E30030C4E530099FE5CC0200EB77 |
:100F50003C30A0E30030C4E524099FE52E0100EAFF |
:100F60000C399FE51230D3E5020053E30D00000A6F |
:100F7000020000CA000053E30300000A170000EA61 |
:100F8000030053E30E00000A140000EA0020A0E36F |
:100F9000B4389FE50020C3E5D4389FE51110D3E5B0 |
:100FA000E0089FE5130000EA0020A0E398389FE5E1 |
:100FB0000020C3E5B8389FE51110D3E5C8089FE5C8 |
:100FC0000C0000EA0020A0E37C389FE50020C3E588 |
:100FD0009C389FE51110D3E5B0089FE5050000EAB5 |
:100FE0000020A0E360389FE50020C3E580389FE53E |
:100FF0001110D3E598089FE5A10200EB70489FE52A |
:101000000020D4E50130D4E5032482E10230D4E5A8 |
:10101000032882E10330D4E5032C82E174689FE564 |
:101020009602C1E0C23FA0E1411B63E0813261E072 |
:10103000033363E0833181E0033183E083C342E023 |
:1010400000005CE300C06CB2FC579FE51430A0E3E5 |
:101050000030C5E540089FE50C20A0E1880200EBC8 |
:101060000420D4E50530D4E5032482E10630D4E53C |
:10107000032882E10730D4E5032C82E19632C1E0F7 |
:10108000C23FA0E1411B63E0813261E0033363E0D2 |
:10109000833181E0033183E083C342E000005CE3FD |
:1010A00000C06CB22830A0E30030C5E5EC079FE536 |
:1010B0000C20A0E1720200EB0820D4E50930D4E551 |
:1010C000032482E10A30D4E5032882E10B30D4E521 |
:1010D000032C82E1C8379FE59302C1E0C23FA0E143 |
:1010E000411363E0813261E0033181E083C142E07A |
:1010F00000005CE300C06CB23C30A0E30030C5E50A |
:10110000A0079FE50C20A0E1930100EA60179FE58E |
:101110002F20D1E53030D1E5032482E13130D1E513 |
:10112000032882E13230D1E5033C92E10F00001A3E |
:1011300014479FE50030C4E538079FE5500200EBF7 |
:101140001430A0E30030C4E55C079FE54C0200EBDF |
:101150002830A0E30030C4E550079FE5480200EBCB |
:101160003C30A0E30030C4E544079FE5AA0000EA54 |
:10117000FC369FE51230D3E5020053E30D00000A70 |
:10118000020000CA000053E30300000A170000EA4F |
:10119000030053E30E00000A140000EA0020A0E35D |
:1011A000A4369FE50020C3E5C4369FE51110D3E5C2 |
:1011B000D0069FE5130000EA0020A0E388369FE5F3 |
:1011C0000020C3E5A8369FE51110D3E5B8069FE5DA |
:1011D0000C0000EA0020A0E36C369FE50020C3E588 |
:1011E0008C369FE51110D3E5A0069FE5050000EAC7 |
:1011F0000020A0E350369FE50020C3E570369FE550 |
:101200001110D3E588069FE51D0200EB38569FE5D7 |
:101210001430A0E30030C5E554469FE51710D4E52F |
:101220001830D4E5031481E11930D4E5031881E1C5 |
:101230001A30D4E5031C81E178069FE5100200EB2B |
:101240002830A0E30030C5E51B10D4E51C30D4E500 |
:10125000031481E11D30D4E5031881E11E30D4E58B |
:10126000031C81E150069FE5050200EB3C30A0E342 |
:101270000030C5E51F10D4E52030D4E5031481E12A |
:101280002130D4E5031881E12230D4E5031C81E14B |
:1012900028069FE55C0100EAAC459FE50030A0E32D |
:1012A0000030C4E518069FE5F50100EB14369FE514 |
:1012B0000A30D3E5000053E30E00001A0030C4E505 |
:1012C000FC059FE5EE0100EB1430A0E30030C4E51F |
:1012D000F4059FE5EA0100EB2830A0E30030C4E507 |
:1012E000E8059FE5E60100EB3C30A0E30030C4E5F3 |
:1012F000D4059FE5480000EA4C559FE51430A0E373 |
:101300000030C5E5C0059FE5DD0100EB2830A0E316 |
:101310000030C5E5AC459FE50210D4E50320D4E5D7 |
:10132000B030D4E1A8059FE5D50100EB3C30A0E347 |
:101330000030C5E50410D4E50520D4E50630D4E539 |
:10134000B800D4E100008DE588059FE5CC0100EBF5 |
:10135000360100EAF0549FE50030A0E30030C5E517 |
:1013600074459FE50910D4E570059FE5C40100EBC5 |
:101370001430A0E30030C5E50A10D4E50B20D4E515 |
:101380005C059FE5BE0100EB2830A0E30030C5E519 |
:101390000C10D4E50D20D4E548059FE5B80100EB1D |
:1013A0003C30A0E30030C5E50E10D4E50F20D4E5B5 |
:1013B00034059FE5E80000EA8C449FE50030A0E397 |
:1013C0000030C4E524059FE5AD0100EB20159FE545 |
:1013D0000C30D1E50D20D1E5023483E10E20D1E5BA |
:1013E000023883E10F20D1E5023C93E10C00001AA2 |
:1013F0001430A0E30030C4E5F8049FE5A00100EB41 |
:101400002830A0E30030C4E5EC049FE59C0100EB2C |
:101410003C30A0E30030C4E5D8049FE5980100EB20 |
:10142000020100EAC8449FE50020D4E50130D4E57C |
:10143000032482E10230D4E5032882E10330D4E5BD |
:10144000032C82E14C649FE59632C1E0C23FA0E1EB |
:10145000411B63E0813261E0033363E0833181E06B |
:10146000033183E083C342E000005CE300C06CB260 |
:10147000D4539FE51430A0E30030C5E57C049FE51C |
:101480000C20A0E17E0100EB0420D4E50530D4E57A |
:10149000032482E10630D4E5032882E10730D4E555 |
:1014A000032C82E19602C1E0C23FA0E1411B63E050 |
:1014B000813261E0033363E0833181E0033183E013 |
:1014C00083C342E000005CE300C06CB22830A0E3BC |
:1014D0000030C5E528049FE5F4FEFFEA68539FE568 |
:1014E0000030A0E30030C5E518049FE5640100EB7F |
:1014F0001430A0E30030C5E50C449FE5D010D4E1E2 |
:10150000D120D4E104049FE55D0100EB2830A0E385 |
:101510000030C5E5D310D4E1D220D4E1F0039FE53B |
:101520008D0000EA20539FE50030A0E30030C5E5C0 |
:10153000E0039FE5520100EB1430A0E30030C5E565 |
:10154000C4439FE50410D4E50520D4E5C8039FE516 |
:101550004B0100EB2830A0E30030C5E50610D4E5D0 |
:101560000720D4E5B4039FE57B0000EAD8529FE54D |
:101570000030A0E30030C5E5A4439FE50110D4E5A9 |
:101580000230D4E5031481E10118A0E14118A0E183 |
:1015900090039FE53A0100EB1430A0E30030C5E56D |
:1015A0000310D4E50430D4E5031481E10118A0E16F |
:1015B0004118A0E170039FE5310100EB2830A0E362 |
:1015C0000030C5E50510D4E50630D4E5031481E10B |
:1015D0000118A0E14118A0E150039FE5280100EBAC |
:1015E0003C30A0E30030C5E50710D4E50830D4E571 |
:1015F000031481E10118A0E14118A0E130039FE547 |
:10160000810000EA40529FE50030A0E30030C5E5CC |
:101610000C439FE50B10D4E50C30D4E5031481E1B5 |
:101620000118A0E14118A0E108039FE5140100EBB7 |
:101630001430A0E30030C5E50D10D4E50E30D4E53C |
:10164000031481E10118A0E14118A0E1E8029FE53F |
:101650000B0100EB2830A0E30030C5E50F10D4E506 |
:101660001030D4E5031481E10118A0E14118A0E194 |
:10167000C8029FE5640000EACC519FE50030A0E37A |
:101680000030C5E580429FE50810D4E5B0029FE533 |
:10169000FB0000EB1430A0E30030C5E50910D4E5F1 |
:1016A000A0029FE5F60000EB2830A0E30030C5E57E |
:1016B00094329FE50010D3E50130D3E5031481E1B6 |
:1016C0000118A0E14118A0E180029FE5EC0000EBC9 |
:1016D0003C30A0E30030C5E544329FE50910D3E576 |
:1016E0000A30D3E5031481E10118A0E14118A0E11B |
:1016F0005C029FE5440000EA4C519FE50030A0E306 |
:101700000030C5E5D0419FE50110D4E50220D4E5C5 |
:1017100040029FE5DA0000EB1430A0E30030C5E59D |
:101720000310D4E50420D4E52C029FE5D40000EB9F |
:101730002830A0E30030C5E50510D4E50620D4E547 |
:1017400018029FE5CE0000EB3C30A0E30030C5E579 |
:101750000710D4E50820D4E504029FE5C80000EB9B |
:10176000320000EA0200A0E3700900EBD8509FE5C8 |
:101770000030A0E30030C5E5E8319FE50010D3E577 |
:10178000FF1001E20120D3E5FF2002E20230D3E5A1 |
:10179000FF3003E2613083E2CC019FE5B80000EB4B |
:1017A0001430A0E30030C5E5C0419FE50010D4E54A |
:1017B0000130D4E5031481E10118A0E14118A0E152 |
:1017C000AC019FE5AE0000EB2830A0E30030C5E59A |
:1017D0000210D4E50330D4E5031481E10118A0E13F |
:1017E0004118A0E18C019FE5A50000EB3C30A0E38F |
:1017F0000030C5E50410D4E50530D4E5031481E1DB |
:101800000118A0E14118A0E16C019FE59C0000EBEC |
:10181000060000EA28109FE50030D1E5013043E2E0 |
:1018200020209FE50030C2E50030A0E30030C1E594 |
:101830000020A0E304309FE50020C3E570A81BE969 |
:10184000F6030004F503000450000004F403000450 |
:10185000C0C60100C8C60100DCC60100C003000408 |
:10186000E8C6010040C50100F0C601006808000498 |
:10187000F4C60100B804000408C7010014C7010041 |
:101880002CC7010044C701005CC7010070C70100FC |
:1018900084C7010098C701006BCA5F6BACC7010029 |
:1018A000C0C70100D34D6210D4C70100E8C70100D2 |
:1018B00000C8010018C8010030C8010044C8010078 |
:1018C00058C801006CC80100E00800047CC8010091 |
:1018D00094C80100ACC80100C4C801002808000475 |
:1018E000E0C80100F0C8010004C9010018C90100E6 |
:1018F0002CC90100500500043CC9010054C9010075 |
:101900006CC9010080C9010094C90100A808000445 |
:10191000A0C90100B0C90100C0C90100CCC90100C3 |
:10192000E0C9010070090004F4C9010004CA010003 |
:1019300014CA010024CA010034CA010044CA0100CB |
:1019400054CA010064CA010078CA0100080A0004F0 |
:101950008CCA0100A0CA0100B4CA0100C8CA0100B3 |
:10196000DCCA0100F0CA0100300A000404CB010007 |
:10197000280A000414CB010020CB01002CCB01006D |
:101980001C109FE50030D1E5012083E20020C1E575 |
:10199000FF3003E20C209FE50300C2E70100A0E353 |
:1019A0000EF0A0E1F4030004000000040DC0A0E16B |
:1019B00030D82DE904B04CE20050A0E10140A0E194 |
:1019C000000051E330A81B090100D5E4EBFFFFEB59 |
:1019D000014054E230A81B09FAFFFFEA0DC0A0E164 |
:1019E00030D82DE904B04CE20050A0E10140A0E164 |
:1019F000000051E330A81B090100D5E4DFFFFFEB35 |
:101A0000014054E230A81B09FAFFFFEA0DC0A0E133 |
:101A100010D82DE904B04CE2FF4000E2043CA0E104 |
:101A2000000053E310A81BD92000A0E3D3FFFFEB75 |
:101A3000013044E2FF4003E2043CA0E1000053E334 |
:101A400010A81BD9F7FFFFEA0DC0A0E110D82DE9BF |
:101A500004B04CE2FF4000E2043CA0E1000053E38C |
:101A600010A81BD93000A0E3C4FFFFEB013044E213 |
:101A7000FF4003E2043CA0E1000053E310A81BD99F |
:101A8000F7FFFFEA0DC0A0E10F002DE9F0DF2DE91F |
:101A900014B04CE248D04DE20080A0E308708BE225 |
:101AA00004509BE50500A0E10040D5E5000054E3AB |
:101AB0000600000A250054E30400000A0140F5E591 |
:101AC000000054E30100000A250054E3FAFFFF1A66 |
:101AD000001055E0C0FFFF1B000054E35E01000A48 |
:101AE000015085E20060A0E364600BE506A0A0E180 |
:101AF000FF90A0E329604BE50140D5E4750054E375 |
:101B00000200000A203084E3780053E30B00001A3F |
:101B1000010016E30730A0110470871200809315AE |
:101B20000600001A0730A0E1047087E2000093E588 |
:101B3000040016E30038A0112388A0110080A00142 |
:101B4000200054E30300001A29305BE5000053E352 |
:101B5000E8FFFF1A140000EA230054E3086086033C |
:101B6000E4FFFF0A2D0054E32A0054130C00001A6E |
:101B70002A0054E30700001A0730A0E1047087E24E |
:101B800000A0D3E5D030D3E1000053E3D9FFFFAA92 |
:101B900000306AE2FFA003E2103086E3DF6003E278 |
:101BA000D4FFFFEA2B0054E30100001A29404BE563 |
:101BB000D0FFFFEA2E0054E31A00001A0140D5E4DA |
:101BC0002A0054E30700001A0730A0E1047087E2FE |
:101BD000001093E50030E0E3030051E10130A0A1E3 |
:101BE000FF9003E2C3FFFFEA0010A0E3303044E2BD |
:101BF000090053E30600008A013181E0833084E06C |
:101C0000301043E20140D5E4303044E2090053E3B0 |
:101C1000F8FFFF9A0030E0E3030051E10130A0A19A |
:101C2000FF9003E2B4FFFFEA300054E30200001A21 |
:101C3000100016E320608603AEFFFFEA313044E275 |
:101C4000080053E30900008A0010A0E3013181E09D |
:101C5000833084E0301043E20140D5E4303044E288 |
:101C6000090053E3FFA00182A3FFFF8AF6FFFFEA0A |
:101C7000680054E3046086039EFFFF0A6C0054E38F |
:101C8000016086039BFFFF0A630054E30800001A0B |
:101C900054104BE25C100BE50730A0E1047087E2C2 |
:101CA0000030D3E554304BE50120A0E36C200BE578 |
:101CB000AC0000EA640054E3440054130100000A3D |
:101CC000690054E31400001A440054E301608603E1 |
:101CD000010016E30730A0110470871200809315ED |
:101CE0000600001A0730A0E1047087E2000093E5C7 |
:101CF000040016E30038A0114388A0110080A00161 |
:101D0000000058E3008068B22D30A0B329304BB5F5 |
:101D10000A30A0E360300BE5580000EA6F0054E39E |
:101D20004F0054130400001A4F0054E3016086036F |
:101D30000810A0E360100BE54E0000EA700054E3C9 |
:101D40000700001A0730A0E1047087E2008093E5E5 |
:101D50001020A0E360200BE5406086E37840A0E31C |
:101D6000440000EA730054E32E00001A0730A0E19B |
:101D7000047087E2003093E55C300BE50320A0E1BE |
:101D8000000053E30D00001A54304BE25C300BE5C9 |
:101D90002830A0E354304BE56E30A0E353304BE5E0 |
:101DA0007530A0E352304BE56C30A0E351304BE589 |
:101DB00050304BE52930A0E34F304BE54E204BE54A |
:101DC000093CA0E1433CB0E170300BE51000004A53 |
:101DD0005C001BE50010A0E30320A0E1CD5800EB60 |
:101DE000000050E30700000A5C101BE5003061E0D2 |
:101DF000FF3003E26C300BE5033CA0E170201BE5F3 |
:101E0000430C52E1570000AAFF9009E26C900BE5E9 |
:101E1000540000EA5C001BE5D25800EBFF0000E232 |
:101E20006C000BE54F0000EA750054E355005413B5 |
:101E30000400001A550054E3016086030A30A0E351 |
:101E400060300BE50B0000EA780054E358005413AF |
:101E50003D00001A1010A0E360100BE5A631A0E1D0 |
:101E6000013003E2000058E30030A0030130031208 |
:101E7000000053E3406086130030A0E329304BE5B7 |
:101E800064900BE5800019E3DF6006022C204BE232 |
:101E90005C200BE5000059E3000058032300000A12 |
:101EA00060301BE5030058E10090A0330190A023AF |
:101EB0000800A0E10310A0E1984E00EBFF0000E253 |
:101EC000090050E330308092FF0003920300009A33 |
:101ED000573080E2FF0003E2580054E3DF000302C2 |
:101EE0005C101BE5010061E55C100BE50800A0E15A |
:101EF00060101BE5374E00EB0080A0E1000059E3C5 |
:101F0000E6FFFF1A60201BE5080052E30700001AF5 |
:101F1000080016E30500000A5C101BE50030D1E55F |
:101F2000300053E33030A013013061155C100B1505 |
:101F300028204BE25C101BE5023061E0043043E2F4 |
:101F4000FF3003E26C300BE5080000EA000054E3C8 |
:101F50004100000A54204BE25C200BE554404BE565 |
:101F60000130A0E36C300BE50030A0E329304BE5F5 |
:101F70006C101BE5FF9001E264201BE5023061E07C |
:101F8000FF3003E2800013E30030A01368300BE55C |
:101F900029305BE5000053E3013089120200001A8A |
:101FA000400016E30100000A023089E2FF9003E2DC |
:101FB00068101BE5013089E0FF9003E2300016E372 |
:101FC0000A006900000CA001400CA0018EFEFF0B6E |
:101FD00029305BE5000053E329004B120110A013E8 |
:101FE0000600001A400016E30500000A3030A0E3A6 |
:101FF00058304BE557404BE558004BE20210A0E348 |
:1020000069FEFFEB303006E2200053E30A0069006E |
:10201000000CA001400CA0018AFEFF0B68201BE50C |
:10202000020CA0E1400CA0E186FEFFEB6C301BE54A |
:10203000031CA0E1411CA0E15C001BE55AFEFFEB84 |
:10204000100016E396FEFF0A0A0069E0000CA0E10A |
:10205000400CA0E16CFEFFEB91FEFFEAF0AF1BE944 |
:102060000DC0A0E100D82DE904B04CE21603A0E3B6 |
:10207000030A80E20119A0E32B3600EB1623A0E34C |
:10208000032A82E2B830D2E1C83083E2B830C2E13C |
:102090001C209FE5003092E5013083E2003082E5AC |
:1020A0000231A0E3C339A0E1FF20A0E3302083E5A3 |
:1020B00000A81BE9C00800040DC0A0E110D82DE95C |
:1020C00004B04CE220D04DE2E0009FE5121E00EB90 |
:1020D0000100A0E30010A0E14D2E00EB30404BE2E8 |
:1020E0000400A0E10B3500EB4010A0E3B0134BE17E |
:1020F0000230A0E3BE324BE10110E0E3BA124BE143 |
:10210000742F00EB803260E0033180E08331A0E186 |
:102110002333A0E198209FE5921383E02333A0E1CD |
:1021200020304BE51603A0E3030A80E20410A0E18F |
:10213000093500EB1603A0E3030A80E20119A0E3CE |
:102140000120A0E3013600EB1603A0E3030A80E2BE |
:102150000010A0E3C53500EB0500A0E30010A0E3EC |
:102160000020A0E1DA3300EB0500A0E30110A0E3BA |
:102170002C3300EB3C309FE50010A0E3B010C3E12E |
:102180000210C3E50310C3E50410C3E50510C3E561 |
:102190000610C3E5B810C3E10A10C3E518309FE587 |
:1021A000001083E514009FE5DB1D00EB10A81BE980 |
:1021B00038CB0100632D3E05E0080004C008000490 |
:1021C00048CB01000C309FE5003093E5030080E030 |
:1021D000010040E20EF0A0E1C008000414309FE5C9 |
:1021E000003093E5000063E0000050E31000A0B36E |
:1021F0000000A0A30EF0A0E1C00800040DC0A0E103 |
:1022000000D82DE904B04CE2EDFFFFEB14309FE560 |
:10221000000083E5F0FFFFEBFF0000E2000050E369 |
:1022200000A81B19FCFFFFEAF80300040DC0A0E1A1 |
:10223000F0DF2DE904B04CE21703A0E3070A80E2C7 |
:102240000210A0E38E3600EB1773A0E3074A87E283 |
:10225000C8629FE50050A0E3230000EAC0029FE5AA |
:102260000030D0E51B0053E31000008A0030D0E5B9 |
:10227000FF3003E20330D6E7FF3003E2B830C4E1B9 |
:10228000A0329FE5001093E50030D0E5FF3003E277 |
:102290000020D1E50330D6E7032082E00020C1E52D |
:1022A0000030D0E5013083E20030C0E50E0000EAE6 |
:1022B0006C329FE50050C3E56C129FE51950C1E5F3 |
:1022C00068329FE50020D3E50B00D1E50B20C1E586 |
:1022D0000120D3E50C00D1E50C20C1E5B050C3E1ED |
:1022E0004C029FE51A20A0E3965700EB070A87E20D |
:1022F0002110A0E3493600EB010050E317A3A0131F |
:1023000007AA8A122C929F157D00001AD2FFFFEABD |
:10231000B830DAE1FF8003E21773A0E3074A87E2EF |
:10232000F8619FE50050A0E3230000EAF0019FE57B |
:102330000030D0E51B0053E31000008A0030D0E5E8 |
:10234000FF3003E20330D6E7FF3003E2B830C4E1E8 |
:10235000D0319FE5001093E50030D0E5FF3003E277 |
:102360000020D1E50330D6E7032082E00020C1E55C |
:102370000030D0E5013083E20030C0E50E0000EA15 |
:102380009C319FE50050C3E59C119FE51950C1E5C4 |
:1023900098319FE50020D3E50B00D1E50B20C1E586 |
:1023A0000120D3E50C00D1E50C20C1E5B050C3E11C |
:1023B0007C019FE51A20A0E3625700EB070A87E241 |
:1023C0002110A0E3153600EB010050E3D6FFFF0A11 |
:1023D000003099E5010053E30C00000A0200003AC6 |
:1023E000020053E31100000A430000EA0020A0E3CA |
:1023F00044319FE50020C3E540119FE50080C1E521 |
:10240000AA0058E30130A0033C00000A3C0000EAA7 |
:10241000830058E33800001A20219FE50030D2E500 |
:10242000833083E20030C2E50230A0E3330000EAEB |
:102430000CC19FE500119FE50030D1E5012083E24A |
:102440000020C1E5FF3003E20380CCE70030D1E596 |
:102450001D0053E3E4209F950030D295033088900F |
:102460000030C2952600009AD0109FE50030D1E5DB |
:10247000080053E11700001AC8409FE50030D4E57A |
:10248000000053E30500001ABC009FE50C10A0E11A |
:102490001E20A0E32B5700EB0130A0E30030C4E581 |
:1024A000A8209FE5003092E5013083E2003082E50C |
:1024B0009C209FE51C30D2E51D20D2E5023483E14B |
:1024C000013083E288109FE51C30C1E52334A0E190 |
:1024D0001D30C1E5080000EA74209FE51A30D2E5FE |
:1024E0001B20D2E5023483E1013083E260109FE5D6 |
:1024F0001A30C1E52334A0E11B30C1E50030A0E370 |
:10250000003089E51703A0E3070A80E22210A0E368 |
:10251000C23500EB010050E3F0AF1B197BFFFFEA6F |
:1025200050090004FC030004000400042009000416 |
:1025300040080004520900041004000404040004CC |
:102540000E040004000900040504000470090004DE |
:1025500008040004B81300040DC0A0E1F0D82DE970 |
:1025600004B04CE218D04DE268019FE5EA1C00EB94 |
:102570000108A0E30110A0E3252D00EB010CA0E36E |
:102580000110A0E3222D00EB1603A0E3020980E274 |
:10259000CE2E00EB34004BE2C22F00EB0150A0E343 |
:1025A00034404BE20060A0E30160C4E54F30E0E35B |
:1025B00034304BE50260C4E50350C4E50670A0E189 |
:1025C000B460C4E11603A0E3020980E20410A0E1B4 |
:1025D000622F00EB0400A0E1B22F00EB0150C4E534 |
:1025E0004030A0E334304BE50260C4E50350C4E55D |
:1025F0000230A0E3B430C4E11603A0E3020980E294 |
:102600000410A0E1552F00EB1703A0E3070A80E2B6 |
:10261000E73400EB2C404BE20400A0E13F3500EB37 |
:102620003030E0E3BC324BE10430A0E3BA324BE19E |
:102630000830E0E3B2324BE18030E0E3B6324BE108 |
:102640004030E0E3B8324BE120604BE51703A0E3F4 |
:10265000070A80E20410A0E1EC3400EB1703A0E3CA |
:10266000070A80E20E10A0E30520A0E1423500EB4E |
:1026700064009FE564109FE50A20A0E3122000EBB0 |
:102680001703A0E3070A80E20510A0E1333500EB51 |
:102690004C209FE57E30E0E30030C2E55530A0E3FA |
:1026A0000130C2E51B2082E238309FE5002083E53F |
:1026B0001500A0E30610A0E10520A0E1843200EBA4 |
:1026C0001500A0E30510A0E1D63100EB18009FE54E |
:1026D000911C00EBF0A81BE950CB0100400900045D |
:1026E00098090004500900040004000460CB0100B4 |
:1026F0000DC0A0E100D82DE904B04CE2F83B9FE505 |
:102700000030D3E5000053E300A81B091500A0E347 |
:102710000010A0E3C33100EBE01B9FE5E02B9FE539 |
:102720000030D2E50120D2E5023483E10338A0E194 |
:102730002328A0E1FF2002E20700D1E50720C1E540 |
:10274000233CA0E10820D1E50830C1E5B40B9FE5AA |
:102750000030D0E50120D0E5023483E10338A0E168 |
:102760002328A0E1FF2002E201C0D1E50120C1E55C |
:10277000233CA0E10220D1E50230C1E50230D0E5E2 |
:102780000320D0E5023483E10338A0E12328A0E14F |
:10279000FF2002E203C0D1E50320C1E5233CA0E114 |
:1027A0000420D1E50430C1E50430D0E50520D0E5B2 |
:1027B000023483E10338A0E12328A0E1FF2002E2F4 |
:1027C0000500D1E50520C1E5233CA0E10620D1E5C7 |
:1027D0000630C1E5300B9FE50030D0E5012083E2F3 |
:1027E0000020C0E5FF3003E2202B9FE50330D2E755 |
:1027F0000030C1E50030D0E5040053E30030A08391 |
:102800000030C085F43A9FE50030D3E5660053E31D |
:102810002E00000A020000CA650053E30D00000A02 |
:10282000740000EA670053E37200001ACC2A9FE5A7 |
:10283000DC3A9FE50030D3E50D30C2E5D43A9FE5A0 |
:102840000030D3E50E30C2E5CC3A9FE50030D3E549 |
:102850000F30C2E5670000EAA01A9FE5BC0A9FE5B9 |
:102860000020D0E50130D0E5032482E10230D0E53C |
:10287000032882E10330D0E5032C82E1FF3002E23D |
:102880000DC0D1E50D30C1E52234A0E1FF3003E2F7 |
:102890000EC0D1E50E30C1E52238A0E1FF3003E2E1 |
:1028A0000FC0D1E50F30C1E5222CA0E11030D1E5F9 |
:1028B0001020C1E50420D0E50530D0E5032482E1F5 |
:1028C0000630D0E5032882E10730D0E5270000EA92 |
:1028D0004C3A9FE500C093E500005CE33300000A3A |
:1028E0000C30DCE50D20DCE5023483E10E20DCE574 |
:1028F000023883E10F20DCE5023C93E12B00000A63 |
:10290000F8199FE50020DCE50130DCE5032482E1D5 |
:102910000230DCE5032882E10330DCE5032C82E1B0 |
:10292000FF3002E20D00D1E50D30C1E52234A0E117 |
:10293000FF3003E20E00D1E50E30C1E52238A0E100 |
:10294000FF3003E20F00D1E50F30C1E5222CA0E1FA |
:102950001030D1E51020C1E50420DCE50530DCE5D0 |
:10296000032482E10630DCE5032882E10730DCE560 |
:10297000032C82E1FF3002E21100D1E51130C1E504 |
:102980002234A0E1FF3003E21200D1E51230C1E5AC |
:102990002238A0E1FF3003E21300D1E51330C1E596 |
:1029A000222CA0E11430D1E51420C1E5110000EA89 |
:1029B00048399FE50D20D3E50020A0E30D20C3E5B5 |
:1029C0000E10D3E50E20C3E50F10D3E50F20C3E5AD |
:1029D0001010D3E51020C3E51110D3E51120C3E595 |
:1029E0001210D3E51220C3E51310D3E51320C3E57D |
:1029F0001410D3E51420C3E51500A0E30110A0E3F3 |
:102A0000083100EB1C399FE50030D3E50A3043E282 |
:102A1000040053E303F19F97000200EA302A00000C |
:102A200054310000A8310000CC2A0000F831000029 |
:102A3000F4189FE5EC289FE51130D2E50130C1E59F |
:102A40001230D2E50230C1E51330D2E50330C1E5E2 |
:102A50001430D2E50430C1E51530D2E50530C1E5CA |
:102A60001630D2E50630C1E51730D2E50730C1E5B2 |
:102A70001830D2E50830C1E5B0189FE50030D1E547 |
:102A8000000053E30020A013A4389F150A20C315AB |
:102A90000020C11598189FE588089FE50A30D1E508 |
:102AA0001920D0E5023083E10A30C1E51A30D0E5C3 |
:102AB0000930C1E570289FE51B30D0E51430C2E530 |
:102AC0001C30D0E50030C2E5D40100EA54289FE56F |
:102AD0001130D2E5FA0053E348389F951120D39581 |
:102AE0001600009A1130D2E5FB0053E340389F05F1 |
:102AF0000420D3051100000A28389FE51130D3E5E2 |
:102B0000FC0053E328389F050520D3050B00000A7D |
:102B100010389FE51130D3E5FD0053E310389F05D1 |
:102B20000620D3050500000AF8379FE51130D3E5EC |
:102B3000FE0053E3F8379F050720D3050100001A74 |
:102B4000E4379FE50920C3E5DC279FE50930D2E59E |
:102B5000000053E30400000ACC279FE50930D2E5CA |
:102B6000FF0053E30100001A0030E0E30930C2E542 |
:102B7000B0279FE51230D2E5FA0053E3A4379F95C2 |
:102B80001220D3951600009A1230D2E5FB0053E3D1 |
:102B90009C379F050420D3051100000A84379FE568 |
:102BA0001230D3E5FC0053E384379F050520D3059D |
:102BB0000B00000A6C379FE51230D3E5FD0053E3AC |
:102BC0006C379F050620D3050500000A54379FE5A2 |
:102BD0001230D3E5FE0053E354379F050720D30599 |
:102BE0000100001A40379FE50A20C3E538279FE51A |
:102BF0000A30D2E5000053E30400000A28279FE5CD |
:102C00000A30D2E5FF0053E30100001A0030E0E390 |
:102C10000A30C2E50C279FE51330D2E5FA0053E3F2 |
:102C200000379F951320D3951600009A1330D2E5F4 |
:102C3000FB0053E3F8369F050420D3051100000A7A |
:102C4000E0369FE51330D3E5FC0053E3E0369F0503 |
:102C50000520D3050B00000AC8369FE51330D3E5E5 |
:102C6000FD0053E3C8369F050620D3050500000A82 |
:102C7000B0369FE51330D3E5FE0053E3B0369F0531 |
:102C80000720D3050100001A9C369FE50B20C3E501 |
:102C900094269FE50B30D2E5000053E30400000AC0 |
:102CA00084269FE50B30D2E5FF0053E30100001AB4 |
:102CB0000030E0E30B30C2E568269FE51430D2E532 |
:102CC000FA0053E35C369F951420D3951600009AC2 |
:102CD0001430D2E5FB0053E354369F050420D3059E |
:102CE0001100000A3C369FE51430D3E5FC0053E3A5 |
:102CF0003C369F050520D3050B00000A24369FE5CE |
:102D00001430D3E5FD0053E324369F050620D30598 |
:102D10000500000A0C369FE51430D3E5FE0053E3AE |
:102D20000C369F050720D3050100001AF8359FE5F2 |
:102D30000C20C3E5F0259FE50C30D2E5000053E3FD |
:102D40000400000AE0259FE50C30D2E5FF0053E3C4 |
:102D50000100001A0030E0E30C30C2E5C4259FE515 |
:102D60001530D2E5FA0053E3B8359F951520D39579 |
:102D70001600009A1530D2E5FB0053E3B0359F05ED |
:102D80000420D3051100000A98359FE51530D3E5DE |
:102D9000FC0053E398359F050520D3050B00000A7E |
:102DA00080359FE51530D3E5FD0053E380359F0561 |
:102DB0000620D3050500000A68359FE51530D3E5E8 |
:102DC000FE0053E368359F050720D3050100001A74 |
:102DD00054359FE50D20C3E54C259FE50D30D2E528 |
:102DE000000053E30400000A3C259FE50D30D2E5C6 |
:102DF000FF0053E30100001A0030E0E30D30C2E5AC |
:102E000020259FE51630D2E5FA0053E314359F954F |
:102E10001620D3951600009A1630D2E5FB0053E336 |
:102E20000C359F050420D3051100000AF4349FE5FA |
:102E30001630D3E5FC0053E3F4349F050520D30599 |
:102E40000B00000ADC349FE51630D3E5FD0053E3A8 |
:102E5000DC349F050620D3050500000AC4349FE535 |
:102E60001630D3E5FE0053E3C4349F050720D30595 |
:102E70000100001AB0349FE50E20C3E5A8249FE5A9 |
:102E80000E30D2E5000053E30400000A98249FE5C9 |
:102E90000E30D2E5FF0053E30100001A0030E0E3FA |
:102EA0000E30C2E580149FE578249FE51730D2E507 |
:102EB0000F30C1E51830D2E51030C1E51930D2E548 |
:102EC000FA0053E35C349F951920D3951700009ABC |
:102ED0001930D2E5FB0053E354349F050430D30589 |
:102EE0001130C1051300000A38349FE51930D3E5CD |
:102EF000FC0053E338349F050520D3050B00000A7E |
:102F000020349FE51930D3E5FD0053E320349F05BD |
:102F10000620D3050500000A08349FE51930D3E5E3 |
:102F2000FE0053E308349F050720D3050100001A73 |
:102F3000F4339FE51120C3E5EC239FE51130D2E582 |
:102F40000A0053E30A30A0930400009AD8239FE5B7 |
:102F50001130D2E5FF0053E30100001A0030E0E336 |
:102F60001130C2E5BC239FE51A30D2E5FA0053E3E5 |
:102F7000B0339F951A20D3951600009A1A30D2E5E7 |
:102F8000FB0053E3A8339F050420D3051100000A7A |
:102F900090339FE51A30D3E5FC0053E390339F054F |
:102FA0000520D3050B00000A78339FE51A30D3E5DE |
:102FB000FD0053E378339F050620D3050500000A82 |
:102FC00060339FE51A30D3E5FE0053E360339F057D |
:102FD0000720D3050100001A4C339FE51220C3E5FA |
:102FE00044239FE51230D2E5000053E30400000AB9 |
:102FF00034239FE51230D2E5FF0053E30100001AAD |
:103000000030E0E31230C2E518239FE51B30D2E523 |
:10301000FA0053E30C339F951B20D3951600009ABA |
:103020001B30D2E5FB0053E304339F050420D30596 |
:103030001100000AEC329FE51B30D3E5FC0053E39E |
:10304000EC329F050520D3050B00000AD4329FE522 |
:103050001B30D3E5FD0053E3D4329F050620D30592 |
:103060000500000ABC329FE51B30D3E5FE0053E3A8 |
:10307000BC329F050720D3050100001AA8329FE546 |
:103080001320C3E5A0229FE51330D2E5000053E3EF |
:103090000400000A90229FE51330D2E5FF0053E3BD |
:1030A0000100001A0030E0E31330C2E574229FE50E |
:1030B0001C30D2E5FA0053E368329F951C20D3956B |
:1030C0001600009A1C30D2E5FB0053E360329F05E6 |
:1030D0000420D3051100000A48329FE51C30D3E5D7 |
:1030E000FC0053E348329F050520D3050B00000A7E |
:1030F00030329FE51C30D3E5FD0053E330329F05AD |
:103100000620D3050500000A18329FE51C30D3E5E0 |
:10311000FE0053E318329F050720D3050100001A73 |
:1031200004329FE51520C3E5FC219FE51530D2E56B |
:10313000000053E30400000AEC219FE51530D2E5BE |
:10314000FF0053E33500001A0030E0E31530C2E51C |
:10315000320000EAD8119FE5C8219FE51130D2E581 |
:103160000330C1E51230D2E50230C1E51330D2E5BB |
:103170000130C1E51430D2E50030C1E51530D2E5AB |
:103180000430C1E51630D2E50530C1E51730D2E58F |
:103190000630C1E51830D2E50730C1E51930D2E577 |
:1031A0000830C1E51D0000EA88119FE574019FE524 |
:1031B0000020D1E51130D0E5030052E10400000AFF |
:1031C0001130D0E50030C1E50010D1E568019FE580 |
:1031D000481D00EB64119FE548219FE51330D2E5BF |
:1031E0001420D2E5023483E13B30C1E52334A0E171 |
:1031F0003C30C1E5090000EA44119FE524219FE528 |
:103200001130D2E50030C1E51230D2E50130C1E520 |
:103210001330D2E50230C1E51430D2E50330C1E508 |
:10322000F82000EB0120A0E300319FE50020C3E57A |
:103230000020A0E3C0309FE50020C3E504019FE526 |
:10324000E0109FE50130D1E50220D1E5023483E1B1 |
:103250000230C0E52334A0E10330C0E50330D1E5FE |
:103260000420D1E5023483E10430C0E52334A0E139 |
:103270000530C0E50530D1E50620D1E5023483E113 |
:103280000338A0E14338A0E1033263E08330A0E1DA |
:10329000B4C09FE59CE3C2E0C33FA0E1C23263E05B |
:1032A0000630C0E52334A0E10730C0E50730D1E5A2 |
:1032B0000820D1E5023483E10338A0E14338A0E1DE |
:1032C000033263E08330A0E19CE3C2E0C33FA0E1AE |
:1032D000C23263E00830C0E52334A0E10930C0E524 |
:1032E0000930D1E50A20D1E5023483E13430C0E56C |
:1032F0002334A0E13530C0E500A81BE90504000433 |
:1033000020090004080A0004401700040C0400040B |
:1033100060000004540000045C0000045800000435 |
:10332000B8040004600500047009000428080004C3 |
:10333000C4030004A80800040D04000440090004AC |
:103340000012000490090004B8130004F712DA4BCD |
:103350000DC0A0E130D82DE904B04CE218D04DE208 |
:10336000A4209FE50030E0E30030C2E50130C2E573 |
:103370000230C2E50330C2E57D0EA0E390FBFFEB17 |
:103380000008A0E14048A0E17C509FE5D7FCFFEB9E |
:103390000030D5E5FF0053E30400001A0408A0E163 |
:1033A0002008A0E18CFBFFEBFF0010E3F6FFFF0A13 |
:1033B00054509FE500C0D5E5FF005CE34C009F053D |
:1033C0000F00000A28404BE20130D5E50220D5E588 |
:1033D000612082E200208DE50400A0E130109FE52D |
:1033E0000C20A0E1425300EB0400A0E14A1900EBDD |
:1033F0000320D5E50400A0E118109FE53C5300EB45 |
:103400000400A0E1441900EB30A81BE99009000476 |
:1034100064CB010090CB0100A8CB01000DC0A0E15E |
:1034200070D82DE904B04CE210D04DE298029FE52F |
:10343000391900EB0108A0E30110A0E3742900EBA7 |
:103440000108A0E30010A0E3872900EB20004BE275 |
:10345000142C00EB0140A0E320104BE20140C1E539 |
:103460000C30A0E320304BE50240C1E50030A0E382 |
:103470000330C1E5B440C1E11603A0E3020980E2D4 |
:10348000B62B00EB1603A0E3020980E20410A0E3D0 |
:103490000420A0E1162C00EB0400A0E148FBFFEBA8 |
:1034A0000040A0E10400A0E14BFBFFEBFF0010E3B4 |
:1034B000FBFFFF0A1603A0E3020980E20810A0E365 |
:1034C0000020A0E30A2C00EB0050A0E30100A0E3E1 |
:1034D0003BFBFFEB0040A0E10400A0E13EFBFFEB63 |
:1034E000FF0010E3FBFFFF0A1603A0E3020980E2DE |
:1034F0000410A0E30020A0E3FD2B00EB0100A0E3FB |
:103500002FFBFFEB0040A0E10400A0E132FBFFEB4A |
:10351000FF0010E3FBFFFF0A1603A0E3020980E2AD |
:103520000410A0E30120A0E3F12B00EB013085E2C1 |
:10353000FF5003E2090055E3E3FFFF9A0100A0E317 |
:103540001FFBFFEB0040A0E10400A0E122FBFFEB2A |
:10355000FF0010E3FBFFFF0A1603A0E3020980E26D |
:103560000810A0E30120A0E3E12B00EB20004BE2D8 |
:10357000CC2B00EB0160A0E320104BE20160C1E521 |
:103580000C30A0E320304BE50260C1E50360C1E5EB |
:103590000230A0E3B430C1E11603A0E3020980E2E7 |
:1035A0006E2B00EB8000A0E30610A0E1182900EBD1 |
:1035B0008000A0E30610A0E12B2900EB8000A0E32F |
:1035C0000010A0E3282900EB1703A0E30D0A80E216 |
:1035D000AF3100EB28004BE2403200EB28104BE209 |
:1035E0001030E0E30630C1E50430A0E30730C1E568 |
:1035F0004E3CA0E3203083E228300BE50050A0E3EE |
:103600000540A0E1B450C1E11703A0E30D0A80E238 |
:10361000B83100EBB4309FE5005083E5B0309FE552 |
:103620000050C3E5AC309FE50050C3E5A8309FE5EE |
:10363000005083E5A4309FE50050C3E5A0309FE52E |
:103640000050C3E51703A0E30D0A80E20610A0E1D5 |
:103650002C3200EB1703A0E30D0A80E20610A0E174 |
:10366000473200EB1400A0E30510A0E10520A0E123 |
:10367000972E00EB1400A0E30610A0E1E92D00EB6B |
:10368000FA0FA0E3CEFAFFEB58309FE5000083E588 |
:1036900054309FE50020D3E50020E0E30020C3E59F |
:1036A0000110D3E50120C3E51703A0E30D0A80E272 |
:1036B0000610A0E1243200EB30309FE5006083E586 |
:1036C0002C009FE5941800EB70A81BE9B8CB010013 |
:1036D000E009000415040004380A0004C0090004CD |
:1036E00014040004200A000418040004080A00045A |
:1036F0006800000460CB01000DC0A0E130D82DE9C6 |
:1037000004B04CE208D04DE210019FE5821800EBB6 |
:103710001703A0E30D0A80E20010A0E3033200EBE0 |
:103720001703A0E30D0A80E20110A0E3063200EBCC |
:103730001400A0E30010A0E3BA2D00EB1703A0E3F0 |
:103740000D0A80E20010A0E30D3200EB1703A0E3A6 |
:103750000D0A80E20010A0E3EA3100EB1703A0E3BA |
:103760000D0A80E24A3100EB8000A0E30010A0E3E4 |
:10377000A72800EB0108A0E30110A0E3A42800EBB8 |
:103780001C004BE2472B00EB1C104BE20040A0E377 |
:103790000140C1E50C30A0E31C304BE50240C1E51F |
:1037A0000340C1E50450A0E1B440C1E11603A0E329 |
:1037B000020980E2E92A00EB64309FE5004083E5DE |
:1037C00060309FE50040C3E55C309FE50040C3E505 |
:1037D00058309FE5004083E554309FE50040C3E545 |
:1037E00050309FE50040C3E50520A0E348309FE549 |
:1037F000002083E544309FE5004083E540309FE5AD |
:103800000020D3E50020E0E30020C3E50110D3E56C |
:103810000120C3E52C009FE53F1800EB30A81BE911 |
:10382000C8CB0100E009000415040004380A0004B4 |
:10383000C009000414040004200A00046800000405 |
:1038400018040004080A000460CB01000DC0A0E1C8 |
:1038500070D82DE904B04CE21703A0E30D0A80E212 |
:10386000303200EB0008A0E14038A0E12008A0E1E0 |
:10387000120C10E31753A0130D4A85120600001A0C |
:103880000B0000EA0400A0E10110A0E3AE3100EB60 |
:103890000400A0E10010A0E3AB3100EB0D0A85E2CB |
:1038A0000810A0E3C93100EB000050E3F4FFFF1A59 |
:1038B000350000EA0338A0E12308A0E19A0050E3B4 |
:1038C000B400000A020000CA930050E370A81B195C |
:1038D000060000EABA0050E36000000A823DA0E35F |
:1038E000123083E2030050E170A81B192F0000EA98 |
:1038F0001603A0E30B0A80E24010A0E30120A0E33E |
:10390000FB2A00EBEC339FE50030D3E5FF3013E2F8 |
:103910000220A0030A00000A010053E31600001A67 |
:10392000D4339FE5003093E5000053E34300000AE1 |
:10393000C8339FE50030D3E5000053E33F00000AA1 |
:103940000420A0E3B8339FE5002083E51703A0E33C |
:103950000D0A80E20110A0E3823100EB94339FE571 |
:103960000020D3E5FF2002E21703A0E30D0A80E266 |
:103970005010A0E3DE3100EB70A81BE91703A0E3B1 |
:103980000D0A80E20110A0E36F3100EB0120A0E3FB |
:103990006C339FE5002083E51603A0E30B0A80E269 |
:1039A0004010A0E30020A0E3D12A00EB70A81BE99F |
:1039B0001703A0E30D0A80E20110A0E3513100EBF0 |
:1039C0000030A0E33C239FE50030C2E530339FE5A3 |
:1039D000003093E5020053E30500000A040053E3BE |
:1039E0000020A00320339F050020C30570A81B09F9 |
:1039F000120000EA14439FE50010D4E5FF1001E235 |
:103A00001703A0E30D0A80E2C03100EBF4129FE53A |
:103A10000030D1E50020D4E5023083E00030C1E57C |
:103A20000020A0E3E8329FE50020C3E57D0FA0E37E |
:103A3000E3F9FFEBDC329FE5000083E570A81BE9AA |
:103A40001703A0E30D0A80E20110A0E33E3100EB72 |
:103A50000120A0E3A8329FE5002083E570A81BE9C0 |
:103A6000AC429FE50020D4E5FF2002E2A8329FE5AA |
:103A70000030D3E5FF3003E2030052E11800002AD2 |
:103A800098529FE5002095E5000052E30F00000AE0 |
:103A90000030D4E5FF3003E20310D2E7FF1001E26B |
:103AA0001703A0E30D0A80E2983100EB54029FE572 |
:103AB0000020D4E5FF2002E2001095E50030D0E5BB |
:103AC0000220D1E7023083E00030C0E52C0000EA9C |
:103AD0001703A0E30D0A80E20010A0E38B3100EB96 |
:103AE000270000EA1C329FE50010D3E51703A0E38E |
:103AF0000D0A80E2853100EBFC319FE5003093E553 |
:103B0000000053E30A00000AF0319FE50030D3E5DE |
:103B1000000053E30600000A0110A0E3D4319FE542 |
:103B20000010C3E51703A0E30D0A80E2FF3000EBAD |
:103B3000130000EA1703A0E30D0A80E20110A0E3DE |
:103B4000013100EB0120A0E3B4319FE5002083E5C3 |
:103B50001603A0E30B0A80E24010A0E30020A0E3DC |
:103B6000632A00EBB8119FE52030D1E52120D1E593 |
:103B7000023483E1013083E22030C1E52334A0E147 |
:103B80002130C1E588219FE50030D2E5013083E294 |
:103B90000030C2E570A81BE96C619FE50030D6E5F6 |
:103BA00058219FE50020D2E5020053E10E00002AD3 |
:103BB00070519FE50040D6E5FF4004E21703A0E303 |
:103BC0000D0A80E2543100EB0400C5E734119FE593 |
:103BD0000030D6E5FF3003E20020D1E50330D5E721 |
:103BE000032082E00020C1E5340000EA0C419FE59B |
:103BF00014319FE50020D3E50030D4E5030052E105 |
:103C00002E00001A1703A0E30D0A80E20110A0E3C2 |
:103C1000CD3000EB1703A0E30D0A80E23E3100EB4C |
:103C2000E0309FE50030D3E5FF0000E2000053E103 |
:103C30001200001AC0309FE5000093E5000050E339 |
:103C40000020D415DC109F153E51001BD0109FE5BD |
:103C50002030D1E52120D1E5023483E1013083E237 |
:103C60002030C1E52334A0E12130C1E5B8209FE533 |
:103C7000003092E5013083E2003082E5070000EA7F |
:103C80009C309FE51E20D3E51F10D3E5012482E17F |
:103C9000012082E21E20C3E52224A0E11F20C3E50B |
:103CA0000120A0E358309FE5002083E51603A0E340 |
:103CB0000B0A80E24010A0E30020A0E30C2A00EBF6 |
:103CC00044209FE50030D2E5013083E20030C2E5B8 |
:103CD0000020D2E524309FE50030D3E5030052E117 |
:103CE00070A81B191703A0E30D0A80E20010A0E3DF |
:103CF0009C3000EB70A81BE9F8090004C00900041F |
:103D0000200A0004680000042004000414040004D5 |
:103D1000F00900041504000418040004380A000423 |
:103D2000E0090004B8130004100A00041C04000495 |
:103D30000DC0A0E110D82DE904B04CE2FF4000E234 |
:103D4000AC319FE5003093E5010053E310A81B1947 |
:103D50001703A0E30D0A80E20010A0E3883000EB17 |
:103D600090319FE50040C3E5013044E2030053E396 |
:103D700003F19F97450000EA883D0000CC3D00001C |
:103D8000EC3D00009C3D00006C219FE56C319FE5FF |
:103D9000002083E50420A0E30F0000EA60219FE5F6 |
:103DA00058319FE5002083E50310A0E354319FE5DF |
:103DB0000010C3E550219FE550319FE5002083E5C9 |
:103DC0004C319FE50010C3E5390000EA44219FE52E |
:103DD00028319FE5002083E50620A0E324319FE5FC |
:103DE0000020C3E50020A0E32D0000EA28019FE5A4 |
:103DF00028119FE50030D1E50120D1E5023483E1AF |
:103E00003630C0E52334A0E13730C0E5EC309FE523 |
:103E1000001083E50220A0E3E8309FE50020C3E521 |
:103E2000FC109FE5FC009FE50330D0E50420D0E5C1 |
:103E3000023483E10338A0E12328A0E1FF2002E25D |
:103E400002C0D1E50220C1E5233CA0E10320D1E579 |
:103E50000330C1E50130D0E50220D0E5023483E132 |
:103E60000338A0E12328A0E1FF2002E20000D1E511 |
:103E70000020C1E5233CA0E10120D1E50130C1E5EE |
:103E800088309FE5001083E50420A0E3060000EAE7 |
:103E90000020A0E364309FE5002083E564309FE5C7 |
:103EA0000020C3E564309FE5002083E560309FE596 |
:103EB0000020C3E51703A0E30D0A80E20110A0E390 |
:103EC0002F3000EB0020A0E35C309FE50020C3E52D |
:103ED0001703A0E30D0A80E21010A0E3983000EB76 |
:103EE0001703A0E30D0A80E20110A0E30F3000EBFE |
:103EF00010A81BE968000004F0090004300A00045F |
:103F0000C0090004400A0004200A0004E809000473 |
:103F1000E0090004380A0004280A0004B813000469 |
:103F2000080A0004000A000470090004F8090004EB |
:103F30000DC0A0E170D82DE904B04CE218D04DE2DC |
:103F40000A60A0E3E0309FE50020E0E30020C3E545 |
:103F50000120C3E50220C3E50320C3E50030D3E51B |
:103F6000FF0053E31500001AC0409FE5B8509FE5DD |
:103F70000100A0E36DFFFFEB7D0FA0E390F8FFEBE6 |
:103F8000000084E5020000EA0030D5E5FF0053E3BD |
:103F90000300001A000094E58FF8FFEBFF0010E328 |
:103FA000F8FFFF0A013046E2FF6003E20030D5E58A |
:103FB000FF0053E30100001A000056E3EBFFFF1A75 |
:103FC00064509FE50030D5E5FF0053E360009F0596 |
:103FD0001300000A2C404BE20020D5E5FF2002E24E |
:103FE0000130D5E5FF3003E20210D5E5FF1001E214 |
:103FF000611081E200108DE50400A0E134109FE51E |
:104000003B5000EB0400A0E1431600EB0320D5E594 |
:10401000FF2002E20400A0E11C109FE5345000EBF9 |
:104020000400A0E13C1600EB70A81BE9300A000474 |
:1040300018040004DCCB010004CC0100A8CB010073 |
:104040000DC0A0E170D82DE904B04CE208D04DE2DB |
:10405000B0009FE5301600EB030BE0E3F32600EB26 |
:10406000020CA0E30110A0E3742600EB020CA0E315 |
:104070000010A0E3872600EB010BA0E30110A0E3F2 |
:104080006E2600EB0109A0E30110A0E3602600EB1F |
:104090000109A0E30010A0E3732600EB20004BE22F |
:1040A000002900EB0140A0E320104BE20140C1E5F4 |
:1040B0000260A0E320604BE50050A0E30250C1E5A0 |
:1040C0000340C1E5B440C1E11603A0E3060A80E263 |
:1040D000A22800EBF70D00EB170D00EB0900A0E3A1 |
:1040E0000510A0E10620A0E1F92B00EB0900A0E3F8 |
:1040F0000410A0E14B2B00EB3F3A00EB08009FE5DA |
:10410000051600EB70A81BE918CC010060CB01007C |
:104110000DC0A0E100D82DE904B04CE2010050E34D |
:104120001603A003060A80020210A0030020A003C9 |
:104130001603A013060A80120210A0130120A01378 |
:10414000EB2800EB00A81BE90DC0A0E110D82DE979 |
:1041500004B04CE20040A0E30410A0E10430A0E170 |
:10416000012084E2FF4002E20330D0E7000053E385 |
:10417000F9FFFF1A023BA0E303E0A0E1463283E22D |
:10418000003093E5303003E2200053E30D00000AD5 |
:10419000EACCA0E360C08CE20120A0E1013081E222 |
:1041A0000338A0E14318A0E10228A0E122085CE165 |
:1041B00010A81B3946328EE2003093E5303003E21E |
:1041C000200053E3F3FFFF1A013084E2FF4003E2D3 |
:1041D000021CA0E30420A0E11E3A00EB0100A0E3D2 |
:1041E0000410A0E1B53200EB0100A0E3B63100EB12 |
:1041F00010A81BE90DC0A0E100D82DE904B04CE2E5 |
:1042000004D04DE20D004BE50010A0E3023BA0E31B |
:1042100003C0A0E1463283E2003093E5303003E290 |
:10422000200053E30D00000AEA0CA0E3600080E2E6 |
:104230000120A0E1013081E20338A0E14318A0E1B0 |
:104240000228A0E1220850E100A81B3946328CE286 |
:10425000003093E5303003E2200053E3F3FFFF1A10 |
:104260000D004BE2021CA0E30220A0E3F93900EBB1 |
:104270000100A0E30210A0E3903200EB0100A0E3F4 |
:10428000913100EB00A81BE90DC0A0E1F0DF2DE9A2 |
:1042900004B04CE200A0A0E10118A0E1011881E205 |
:1042A0004138A0E1211BA0E10050A0E3010071E32F |
:1042B000F0AF1B09026BA0E3466286E20398A0E11F |
:1042C000293BA0E10378A0E1018083E2003096E57C |
:1042D000303003E2200053E3FBFFFF1A270855E1CB |
:1042E0000600002A05038AE0021CA0E34020A0E3A8 |
:1042F000D83900EB0100A0E34010A0E3070000EA7A |
:1043000005038AE03F4809E22448A0E1021CA0E33B |
:104310000420A0E1CF3900EB0100A0E30410A0E1EC |
:10432000663200EB0100A0E3673100EB013085E26B |
:10433000FF5003E2080055E1F0AF1BA9E2FFFFEADE |
:104340000020A0E3020050E10200000A0A30D0E59C |
:10435000020053E10100001A0200A0E10EF0A0E10A |
:10436000B030D0E17B3E43E20C3043E2832C82E16B |
:104370000230D0E50F3003E2832A82E10330D0E53A |
:104380001F3003E2032882E10430D0E51F3003E24E |
:10439000832582E10530D0E53F3003E2832282E1CC |
:1043A0000630D0E5A330A0E11F3003E2030082E134 |
:1043B0000EF0A0E104E02DE50000A0E30010A0E174 |
:1043C00038E09FE5013281E0033181E083218EE016 |
:1043D00002C0A0E12432FCE5000053E30200A0018A |
:1043E0000130A0030030CC0504F09D04013081E2CF |
:1043F000FF1003E2020051E304F09D84F0FFFFEAA6 |
:10440000800A0004000050E30EF0A0010F0000EA53 |
:104410000030A0E3892FA0E30230C0E70C3081E731 |
:10442000043080E50830C0E5BA30C0E10C30C0E5AA |
:10443000103080E5143080E5203280E5183080E5CA |
:10444000BC31C0E11E30C0E50100A0E30EF0A0E1E8 |
:104450000020A0E32CC09FE5023282E0033182E01D |
:104460008311A0E10C3081E0000053E1E7FFFF0A77 |
:10447000013082E2FF2003E2020052E30000A08349 |
:104480000EF0A081F3FFFFEA800A000410402DE93E |
:104490000040A0E3D030D0E12F0053E30420A0116E |
:1044A0000120A003040054E10700001AD23090E17B |
:1044B0002F0053E30000531302408000013082E2DA |
:1044C000FF2003E2000054E3F7FFFF0A0030A0E3FF |
:1044D0000B30C1E503C0A0E12020A0E30C20C1E720 |
:1044E00001308CE2FFC003E20A005CE3FAFFFF9AAE |
:1044F0000020A0E302C0A0E1D030D0E12F0053E3C0 |
:104500000120A003023080E0040053E11800002ADB |
:104510000A005CE30700008AD23090E12E0053E3EA |
:104520000600001A08005CE301308292FF2003922B |
:1045300008C0A0930B00009A0000A0E31080BDE823 |
:1045400002E0D0E761304EE2190053E320304E9292 |
:104550000230D0870C30C1E7013082E2FF2003E255 |
:1045600001308CE2FFC003E2023080E0040053E13E |
:10457000E6FFFF3A0400A0E11080BDE80008A0E1DA |
:104580004008A0E138309FE50030D3E5000053E358 |
:104590000300A0010EF0A0010038A0E1010853E3E0 |
:1045A0000200A0930038A0E12338A0E1023043E2EA |
:1045B0000C209FE50110D2E5102092E5912320E028 |
:1045C0000EF0A0E1600A00040DC0A0E100D82DE9C2 |
:1045D00004B04CE20020A0E12C309FE50000D3E5C0 |
:1045E000000050E300A81B091C309FE5100093E574 |
:1045F000020060E00110D3E5764400EB020080E2A7 |
:104600000008A0E12008A0E100A81BE9600A00045E |
:104610000DC0A0E170D82DE904B04CE20060A0E329 |
:104620000640A0E150509FE5043284E0033184E06D |
:10463000830185E0893F80E20030D3E5010053E348 |
:104640000300001A2E0500EB000086E00008A0E140 |
:104650004068A0E1013084E2FF4003E2020054E33D |
:10466000F0FFFF9ADE0800EB0030A0E30C209FE58E |
:104670000030C2E5FF0006E270A81BE9800A0004D2 |
:10468000600A00040DC0A0E130D82DE904B04CE26E |
:104690000040A0E360029FE59F1400EB5C329FE5C1 |
:1046A0000040C3E50400A0E154129FE50420A0E10E |
:1046B000003280E0033180E0833181E0893F83E292 |
:1046C0000020C3E5013080E2FF0003E2020050E376 |
:1046D000F6FFFF9A28529FE57A0700EB000050E3AF |
:1046E0000300000A1C029FE58B1400EB0140A0E3CD |
:1046F000790000EA1F1085E20000A0E33E0900EB0C |
:10470000000050E30300000AFC019FE5821400EB67 |
:104710000240A0E3700000EA1FC085E2073DA0E36D |
:10472000023083E20330DCE7060053E30400531356 |
:104730000200000A0E0053E30040A0131500001A07 |
:10474000713FA0E3023083E20310DCE7713FA0E396 |
:10475000033083E20330DCE7031481E1723FA0E31E |
:104760000320DCE7021881E1013083E20330DCE75B |
:10477000034C81E11F1085E20400A0E11E0900EB5B |
:10478000000050E30300000A80019FE5621400EB83 |
:104790000340A0E3500000EA1FC085E20B30DCE5D7 |
:1047A0000C20DCE5023483E1020C53E30300000A31 |
:1047B0005C019FE5581400EB0440A0E3460000EACA |
:1047C00038119FE50D30DCE50130C1E51030DCE546 |
:1047D0000230C1E51130DCE51220DCE5023483E172 |
:1047E000B430C1E11630DCE51720DCE5023483E1AA |
:1047F000B630C1E10E30DCE50F20DCE5023483E1A8 |
:10480000033084E0083081E5B600D1E10220D1E533 |
:10481000923023E00C3081E5B420D1E1223283E0F4 |
:10482000103081E52030DCE52120DCE5023483E135 |
:104830002220DCE5023883E12320DCE5023C93E121 |
:104840000300001ACC009FE5331400EB0540A0E301 |
:10485000210000EAA4109FE52030DCE52120DCE502 |
:10486000023483E12220DCE5023883E12320DCE509 |
:10487000023C83E1102091E5023083E0013043E205 |
:10488000143081E5D633DCE1460053E30F00001A13 |
:10489000D733DCE1410053E30C00001AD833DCE1EC |
:1048A000540053E30900001AD933DCE1310053E32B |
:1048B0000600001ADA33DCE1360053E30120A003DE |
:1048C00038309F050020C3050040A0030200000A05 |
:1048D00044009FE5101400EB0640A0E3000054E301 |
:1048E0000100000A49FFFFEB010000EA2C009FE5F0 |
:1048F000091400EB0400A0E130A81BE928CC01005A |
:10490000600A0004800A00043CCC010060CC010075 |
:1049100078CC010090CC0100B0CC0100CCCC0100DF |
:1049200060CB01000DC0A0E170D82DE904B04CE2CD |
:104930000050A0E10160A0E38C309FE50030D3E59A |
:10494000000050E3000053130000A00370A81B09EF |
:104950000040A0E30410A0E17F2FA0E3032082E247 |
:10496000053084E01C3083E20310C3E5014084E29B |
:10497000020054E1F9FFFF9A0040A0E348309FE5B0 |
:104980000130D3E5030054E10D00002A040095E551 |
:10499000000084E0200285E51F1085E2300800EB6E |
:1049A000000050E30100000A18FFFFEB0060A0E3E5 |
:1049B000014084E210309FE50130D3E5030054E16B |
:1049C000F1FFFF3A0600A0E170A81BE9600A0004AD |
:1049D0000DC0A0E170D82DE904B04CE20040A0E188 |
:1049E0000060A0E3C8309FE50030D3E5060050E149 |
:1049F000060053110600A00170A81B09B0509FE5E6 |
:104A0000103095E5040090E5000053E12500008A90 |
:104A1000143095E5030050E12200008AE9FEFFEB27 |
:104A20000068A0E1A627A0E1083095E5A20483E094 |
:104A30000150C2E3855BA0E1A55BA0E1203294E5D3 |
:104A4000000053E10700000A200284E51F1084E201 |
:104A5000690800EB000050E30200000AEBFEFFEBE8 |
:104A60002608A0E170A81BE9053084E01F20F3E5CB |
:104A70000130D3E5032482E10228A0E14268A0E1ED |
:104A8000090872E30060A0830600008A0608A0E11E |
:104A90002008A0E1B8FEFFEB040084E50030A0E3AD |
:104AA0000830C4E5BA30C4E10638A0E12308A0E12B |
:104AB00070A81BE9600A00040DC0A0E1F0D92DE93F |
:104AC00004B04CE20060A0E10080A0E3EC309FE580 |
:104AD0000030D3E5080050E1080053110800A001A0 |
:104AE000F0A91B09030000EAC8FEFFEB0838A0E1AB |
:104AF0002308A0E1F0A91BE90070A0E3BC309FE50A |
:104B0000080093E5000087E0200286E51F1086E29A |
:104B1000390800EB000050E3F2FFFF1A1F5086E255 |
:104B20000040A0E30438A0E12318A0E18120D5E7EC |
:104B3000810085E00130D0E5033492E10C00001AD9 |
:104B40000030E0E38130C5E70130C0E5200296E5A2 |
:104B50001F1086E2C20700EB000050E3E1FFFF1ADE |
:104B60008734A0E1A33084E00338A0E14388A0E1CA |
:104B7000014CA0E3013084E20338A0E14348A0E106 |
:104B8000FF0853E3E6FFFF9A017087E22C309FE5B0 |
:104B9000B620D3E10838B0E10030A0130130A00303 |
:104BA000020057E10030A02301300332000053E33C |
:104BB0000838A0012308A001F0A91B09CEFFFFEAD5 |
:104BC000600A00040DC0A0E1F0D82DE904B04CE269 |
:104BD0000040A0E10228A0E14228A0E10050A0E3AB |
:104BE00008319FE50030D3E5050050E10500531181 |
:104BF0000500A001F0A81B09010052E30600000A0D |
:104C0000020000CA000052E30050A003010000EAC5 |
:104C1000020052E3105090050000000A145094E581 |
:104C2000015095E02C00004A103094E5030055E156 |
:104C3000290000CA003094E5043084E50030A0E388 |
:104C40000830C4E5BA30C4E1143084E5050053E10E |
:104C50002100002A7F67A0E3036886E2143094E510 |
:104C6000013083E2143084E5BA30D4E1013083E2CC |
:104C7000BA30C4E1BA30D4E1260853E11300009AF7 |
:104C80000030A0E30370A0E1BA30C4E10830D4E5FD |
:104C9000013083E20830C4E50820D4E54C309FE5BC |
:104CA0000130D3E5030052E10800003A0400A0E11E |
:104CB00046FFFFEB0008B0E10870C4150830D405CA |
:104CC000013043020830C405023CA003BA30C401DD |
:104CD000143094E5050053E1DFFFFF3A143094E50A |
:104CE000050053E10100A0130000A003F0A81BE998 |
:104CF000600A00040DC0A0E1F0D92DE904B04CE237 |
:104D000002DC4DE20008A0E14008A0E10070A0E351 |
:104D10000780A0E1DC309FE50030D3E5070053E1D8 |
:104D20000700A001F0A91B090038A0E1A307A0E13A |
:104D3000C0309FE5083093E5A05483E00140C0E314 |
:104D4000844BA0E1A44BA0E1080055E10600000A55 |
:104D50000580A0E10500A0E1221E4BE2A60700EBC2 |
:104D6000000050E30000A013F0A91B19223E4BE203 |
:104D7000041083E00420D3E70130D1E5032482E16D |
:104D80000228A0E1023842E2130873E30070A08316 |
:104D90000170A0930060A0E30060C1E50160C1E57F |
:104DA000A207A0E14C309FE5083093E5A05483E0D2 |
:104DB0000140C0E3844BA0E1A44BA0E1013027E215 |
:104DC000080055E101308313060053E10500000A95 |
:104DD0000800A0E1221E4BE2210700EB060050E193 |
:104DE0000600A011F0A91B19000057E30100A00361 |
:104DF000F0A91B09D3FFFFEA600A00040DC0A0E17F |
:104E000070D82DE904B04CE20040A0E10060A0E3BE |
:104E1000E0309FE50030D3E5060050E10600531175 |
:104E20000600A00170A81B0922FFFFEB0008A0E10B |
:104E30004068A0E1000050E32B00000A0400A0E15C |
:104E40000010A0E30220A0E35DFFFFEB040094E567 |
:104E5000DCFDFFEB0008A0E1A007A0E194309FE596 |
:104E6000083093E5A02483E00150C0E3855BA0E116 |
:104E7000A55BA0E1203294E5020053E10500000AA1 |
:104E8000202284E51F1084E20200A0E15A0700EB13 |
:104E9000000050E30A00001A052084E00638A0E173 |
:104EA0002318A0E11F10E2E5233CA0E10130C2E598 |
:104EB0001F1084E2200294E5E90600EB000050E3B5 |
:104EC0000200000AD1FDFFEB0000A0E370A81BE97F |
:104ED0000608A0E12008A0E1A7FDFFEB040084E59F |
:104EE0000030A0E30830C4E5BA30C4E10638A0E1E0 |
:104EF0002308A0E170A81BE9600A00040DC0A0E12E |
:104F0000F0DF2DE904B04CE210D04DE20090A0E1BA |
:104F10000370A0E1FF1001E22C100BE5FF2002E27C |
:104F200030200BE50010A0E338100BE50140A0E1B4 |
:104F3000C0329FE50030D3E5010057E10100531175 |
:104F40002C00000A010050E12A00000A0030A0E312 |
:104F5000003087E5183097E5000053E30600001A9B |
:104F600090329FE5B420D3E14222A0E134200BE54A |
:104F70000C3093E5003087E5140000EA74129FE5D9 |
:104F80000C3091E5182097E5020053E10500008AF6 |
:104F9000103091E5030052E1B430D1314332A031F9 |
:104FA00034300B350900003A48229FE5103092E575 |
:104FB000181097E5010053E10E00008A143092E5C5 |
:104FC000030051E10B00008A0120D2E534200BE5FB |
:104FD000003097E5000053E31B00001A180097E526 |
:104FE000200287E51F1087E2030700EB000050E373 |
:104FF0000200000A85FDFFEB0400A0E1F0AF1BE911 |
:105000001F5087E2BC31D7E18332D5E7000053E37C |
:10501000F8FFFF0AE50053E3F6FFFF0ABC31D7E1D2 |
:10502000833285E00B30D3E5100013E3F1FFFF0A74 |
:10503000BC31D7E1833285E01A00D3E51B30D3E5DC |
:10504000030480E14CFDFFEB000087E5003097E5AD |
:10505000043087E50030A0E30830C7E5BA30C7E187 |
:1050600000A0A0E3043097E503808AE0208287E572 |
:105070000800A0E11F1087E2DF0600EB000050E30C |
:10508000DBFFFF1A1F5087E20060A0E30638A0E1B3 |
:105090000300A0E12338A0E18322D5E7000052E31A |
:1050A0003300000AE50052E33100000A8322A0E148 |
:1050B000053082E00B30D3E530101BE5033001E012 |
:1050C0002C101BE5010053E12900001A0010A0E399 |
:1050D000D52092E1D13099E1030052E10900001A94 |
:1050E000A005A0E1013081E2FF1003E20A0051E3D4 |
:1050F0000400008A013080E0D52093E1D13099E1AD |
:10510000030052E1F6FFFF0A090051E31800009A7C |
:105110000648A0E1A44585E00B30D4E51E30C7E584 |
:105120001A00D4E51B30D4E5030480E112FDFFEB47 |
:10513000000087E5040087E50030A0E30830C7E5FC |
:10514000BA30C7E1188087E5BC61C7E11C30D4E5FF |
:105150001D20D4E5023483E11E20D4E5023883E12A |
:105160001F20D4E5023C83E1103087E50140A0E335 |
:105170001060A0E3013086E20338A0E14368A0E1BB |
:105180000F0853E3C0FFFF9A01A08AE2013024E236 |
:1051900034201BE502005AE10030A0230130033225 |
:1051A000000053E3AEFFFF1A000054E30900001AA9 |
:1051B00040309FE5102093E5043097E5030052E16D |
:1051C0000400008A0700A0E100FEFFEB0008A0E158 |
:1051D0004008A0E138000BE538301BE50338B0E1AA |
:1051E0000030A0030130A0130430D3E10400A0017B |
:1051F000F0AF1B0999FFFFEA600A00040DC0A0E1AF |
:10520000F0DF2DE904B04CE228D04DE200A0A0E18F |
:105210000260A0E1FF9001E20080A0E33C800BE58A |
:1052200040800BE544800BE524349FE50030D3E556 |
:10523000080052E1080053112D00000A080050E157 |
:105240002B00000A0030A0E3003082E5181092E540 |
:10525000030051E10700001AF4339FE5B420D3E1C5 |
:105260004222A0E130200BE53C100BE50C3093E529 |
:10527000003086E5140000EAD4139FE50C3091E578 |
:10528000182092E5020053E10500008A103091E5F4 |
:10529000030052E1B430D1314332A03130300B350C |
:1052A0000900003AA8239FE5103092E5181096E512 |
:1052B000010053E10E00008A143092E5030051E131 |
:1052C0000B00008A0120D2E530200BE5003096E586 |
:1052D000000053E31F00001A180096E5200286E53F |
:1052E0001F1086E2440600EB000050E30200000AB3 |
:1052F000C6FCFFEB44001BE5F0AF1BE91F5086E244 |
:10530000BC31D6E18332D5E7000053E3F8FFFF0A52 |
:10531000E50053E3F6FFFF0ABC31D6E1833285E0B6 |
:105320000B30D3E5100013E3F1FFFF0ABC31D6E1E7 |
:10533000833285E01A00D3E51B30D3E5030480E116 |
:105340000008A0E14018A0E13C100BE52008A0E116 |
:1053500089FCFFEB000086E50600A0E1D5FDFFEB30 |
:105360000008A0E14028A0E138200BE5000050E350 |
:10537000B500000A003096E5043086E50030A0E371 |
:105380000830C6E50030A0E32C300BE5043096E58C |
:105390002C101BE5033081E034300BE5203286E52C |
:1053A0000300A0E11F1086E2130600EB000050E3AB |
:1053B000CEFFFF1A1F5086E20080A0E338201BE5D5 |
:1053C0000238A0E12318A0E148100BE5FF2001E21C |
:1053D0004C200BE50870A0E1233CA0E150300BE528 |
:1053E0000838A0E1A335D5E7000053E30100000A27 |
:1053F000E50053E37000001A0010A0E30838A0E1B4 |
:10540000A305A0E1013080E00120DAE70520C3E731 |
:10541000013081E2FF1003E20A0051E3F8FFFF9A36 |
:105420000848A0E1A44585E00B90C4E54C301BE59D |
:105430001A30C4E550101BE51B10C4E514029FE5AB |
:10544000BEFBFFEB1600C4E52034A0E11730C4E535 |
:105450002038A0E11830C4E5200CA0E11900C4E513 |
:105460001C70C4E51D70C4E51E70C4E51F70C4E562 |
:10547000200296E51F1086E2790500EB000050E35C |
:105480009AFFFF1A48001BE53BFCFFEB000086E596 |
:10549000040086E50870C6E5BA70C6E11E90C6E550 |
:1054A000107086E534201BE5182086E5BC81C6E136 |
:1054B000100019E33D00000A0600A0E118FDFFEB13 |
:1054C000000096E5200286E51F1086E2CA0500EB83 |
:1054D000000050E385FFFF1A1F5086E22E30A0E344 |
:1054E0001F30C6E50110A0E32020A0E30120C5E79E |
:1054F000013081E2FF1003E20A0051E3FAFFFF9A54 |
:105500001030A0E30B30C5E54C301BE51A30C5E583 |
:1055100050101BE51B10C5E51670C5E51770C5E5F5 |
:105520001870C5E51970C5E51C70C5E51D70C5E5A9 |
:105530001E70C5E51F70C5E52E30A0E32030C5E51F |
:105540002130C5E50210A0E32020A0E3013085E072 |
:105550002020C3E5013081E2FF1003E20A0051E39D |
:10556000F9FFFF9A1030A0E32B30C5E53C201BE586 |
:105570003A20C5E52234A0E13B30C5E53670C5E5EB |
:105580003770C5E53870C5E53970C5E53C70C5E5CF |
:105590003D70C5E53E70C5E53F70C5E5200296E566 |
:1055A0001F1086E22E0500EB000050E34FFFFF1AAC |
:1055B0000130A0E344300BE51080A0E3013088E225 |
:1055C0000338A0E14388A0E10F0853E383FFFF9A6B |
:1055D0002C101BE5011081E22C100BE544201BE58B |
:1055E000013022E230201BE5020051E10030A0230F |
:1055F00001300332000053E363FFFF1A44301BE520 |
:10560000000053E30900001A44309FE5102093E5A1 |
:10561000043096E5030052E10400008A0600A0E190 |
:10562000EAFCFFEB0008A0E14008A0E140000BE528 |
:1056300040101BE50118B0E10030A0030130A013B9 |
:1056400044201BE50220D3E14DFFFF1A44001BE577 |
:10565000F0AF1BE9600A0004E00800040DC0A0E1FF |
:10566000F0D92DE904B04CE20CD04DE20350A0E19A |
:10567000FF8001E2FF7002E20060A0E3060053E158 |
:10568000060050110300000AB4309FE50030D3E556 |
:10569000060053E10100001A0000A0E3F0A91BE995 |
:1056A0000030A0E3183085E5BC31C5E1D020D0E161 |
:1056B000013026E2000052E30030A0030130031263 |
:1056C000000053E31C00000A2C104BE26EFBFFEBC2 |
:1056D0000040A0E1000050E30A00000AD030D0E111 |
:1056E000000053E30810A0010720A0011010A01330 |
:1056F0001820A0132C004BE20530A0E1FEFDFFEBCB |
:10570000FF0010E30100001A0600A0E1F0A91BE968 |
:10571000D030D4E1000053E30160A0030400A0E115 |
:10572000D020D4E1013026E2000052E30030A00393 |
:1057300001300312000053E3E2FFFF1A0600A0E16C |
:10574000F0A91BE9600A00040DC0A0E1F0D92DE921 |
:1057500004B04CE20CD04DE20260A0E1FF8001E217 |
:105760000070A0E3070052E1070050110300000A97 |
:10577000DC309FE50030D3E5070053E10100001A5B |
:105780000000A0E3F0A91BE90030A0E3183082E597 |
:10579000BC31C2E1D020D0E1013027E2000052E369 |
:1057A0000030A00301300312000053E32600000A7A |
:1057B0002C104BE234FBFFEB0040A0E1000050E373 |
:1057C0001700000AD010D0E1000051E30150A00101 |
:1057D0001050A0131820A0E32C004BE20510A0E10C |
:1057E0000630A0E1C4FDFFEBFF0010E30E00001A3D |
:1057F000D030D4E1000053E30850A0012C004BE26C |
:105800000510A0E10620A0E17BFEFFEBFF0010E306 |
:105810000300000AD030D4E1000053E30170A0037C |
:10582000010000EA0700A0E1F0A91BE90400A0E1E3 |
:10583000D020D4E1013027E2000052E30030A00381 |
:1058400001300312000053E3D8FFFF1A0700A0E164 |
:10585000F0A91BE9600A00040DC0A0E170D82DE991 |
:1058600004B04CE20050A0E1FF6001E20040A0E380 |
:1058700080319FE50030D3E5040050E1040053116E |
:105880004600000ACAFAFFEB0040A0E1000050E326 |
:1058900070A81B090010A0E3001080E5041080E54B |
:1058A0000810C0E5BA10C0E10C60C0E5101080E53A |
:1058B000141080E5201280E5181080E5BC11C0E1CD |
:1058C0001E10C4E50500A0E11820A0E30430A0E10B |
:1058D00061FFFFEBFF0010E33200000A063CA0E18D |
:1058E000431CA0E1720051E32400000A020000CA38 |
:1058F000610051E30300000A250000EA770051E34C |
:105900000700000A220000EA1E30D4E5010013E37C |
:105910000400A0010010A0030220A0031A00000A46 |
:105920001B0000EA1E30D4E5010013E31800001A42 |
:10593000000094E523FBFFEB0008A0E12008A0E1B4 |
:10594000EBFCFFEB0400A0E15AFCFFEB0008A0E138 |
:105950002008A0E108FBFFEB000084E5040084E5DB |
:105960000020A0E30820C4E5BA20C4E1102084E5AB |
:10597000142084E50400A0E10210A0E1020000EA86 |
:105980000400A0E10010A0E30120A0E18CFCFFEBEB |
:10599000020000EA0400A0E1590000EB0040A0E38F |
:1059A0000400A0E170A81BE9063CA0E1431CA0E1B3 |
:1059B000720051E30A00000A010000CA610051E3CD |
:1059C000000000EA770051E30500001A0500A0E19D |
:1059D0002010A0E30420A0E15AFFFFEBFF5010E2EB |
:1059E0000200001A0400A0E1450000EB0040A0E323 |
:1059F0000400A0E170A81BE9600A00040DC0A0E14A |
:105A000070D82DE904B04CE20060A0E1000050E342 |
:105A10001400000AE0309FE50030D3E5000053E3B6 |
:105A20001000000A0C30D0E5720053E30D00000AAC |
:105A3000010000CA610053E3000000EA770053E36D |
:105A40000800001ABA30D6E1000053E30700000A4C |
:105A50001F1086E2200296E5010400EB000050E3EF |
:105A60000200000AE9FAFFEB0000E0E370A81BE97E |
:105A7000180096E5200286E51F1086E25E0400EB22 |
:105A8000000050E3F6FFFF1A1F5086E2BC21D6E16A |
:105A90001030D6E5822285E01C30C2E51130D6E513 |
:105AA0001D30C2E51230D6E51E30C2E51330D6E512 |
:105AB0001F30C2E5BC41D6E140009FE51FFAFFEB75 |
:105AC000844285E01600C4E52034A0E11730C4E527 |
:105AD0002038A0E11830C4E5200CA0E11900C4E58D |
:105AE000200296E50510A0E1DD0300EB000050E385 |
:105AF0000000A00370A81B09D9FFFFEA600A000498 |
:105B0000E00800040DC0A0E130D82DE904B04CE25B |
:105B10000040A0E10050E0E3000050E30500A001D8 |
:105B200030A81B09B4FFFFEB0008A0E14058A0E13A |
:105B30000400A0E132FAFFEB0500A0E130A81BE968 |
:105B40000DC0A0E170D82DE904B04CE20040A0E106 |
:105B50000050E0E3E4309FE50030D3E5000050E37F |
:105B6000000053131200000A102090E5000052E3D9 |
:105B70003000000A143090E5013083E2020053E166 |
:105B80002C00002A040090E50830D4E5030080E0F2 |
:105B9000203294E5000053E10700000A200284E56A |
:105BA0001F1084E2140400EB000050E30200000A1E |
:105BB00096FAFFEB0500A0E170A81BE9BA20D4E13A |
:105BC000043082E01F50D3E5143094E5013083E2C5 |
:105BD000143084E5012082E2BA20C4E1BA30D4E175 |
:105BE000020C53E31300003A0030A0E30360A0E18D |
:105BF000BA30C4E10830D4E5013083E20830C4E5AE |
:105C00000820D4E534309FE50130D3E5030052E1AC |
:105C10000800003A0400A0E16CFBFFEB0008B0E1D3 |
:105C20000860C4150830D405013043020830C405AB |
:105C3000023CA003BA30C4010500A0E170A81BE932 |
:105C4000600A00040DC0A0E130D82DE904B04CE298 |
:105C50000140A0E1FF5000E238319FE50030D3E57C |
:105C6000000051E3000053131600000A142091E5D0 |
:105C7000103091E5030052E10600003ABA30D1E15C |
:105C8000020C53E30300003A0100A0E15AFCFFEBD1 |
:105C90000008B0E10B00000A040094E50830D4E5E8 |
:105CA000030080E0203294E5000053E10700000A81 |
:105CB000200284E51F1084E2CF0300EB000050E3D4 |
:105CC0000200000A51FAFFEB0000E0E330A81BE9F4 |
:105CD000BA30D4E1043083E01F50C3E5102084E2E1 |
:105CE0000C0092E8030052E101308202103084057A |
:105CF000143094E5013083E2143084E5BA30D4E105 |
:105D0000013083E2BA30C4E1BA30D4E1020C53E38B |
:105D10001E00003A1F1084E2200294E5500300EBBD |
:105D2000000050E3E6FFFF1A0030A0E3BA30C4E100 |
:105D30000830D4E5013083E20830C4E50820D4E51A |
:105D400050309FE50130D3E5030052E10F00003AE7 |
:105D50000400A0E11DFBFFEB0008B0E10030A01340 |
:105D60000830C4150900001A0400A0E122FCFFEB72 |
:105D70000008B0E10500001A0830D4E5013043E224 |
:105D80000830C4E5023CA0E3BA30C4E1CDFFFFEA2D |
:105D90000000A0E330A81BE9600A00040DC0A0E1E8 |
:105DA000F0DD2DE904B04CE20140A0E102A0A0E149 |
:105DB0000370A0E10080A0E30160A0E3A0309FE5B4 |
:105DC0000030D3E5080057E1080053110100000A34 |
:105DD000080050E10100001A0000A0E3F0AD1BE94B |
:105DE0000050A0E1020058E10030A023013006324B |
:105DF000000053E31800000A000054E30030A00341 |
:105E000001300612000053E30C00000A0700A0E175 |
:105E10004AFFFFEB0008A0E14008A0E1010070E3A9 |
:105E20000100C514014044120060A003000054E3C7 |
:105E30000030A00301300612000053E3F2FFFF1A06 |
:105E4000000056E3018088120A0058E10030A023C8 |
:105E500001300632000053E3E6FFFF1A0800A0E11C |
:105E6000F0AD1BE9600A00040DC0A0E1F0DD2DE9F2 |
:105E700004B04CE20150A0E102A0A0E10370A0E157 |
:105E80000080A0E30160A0E3A0309FE50030D3E5EF |
:105E9000080057E1080053110100000A080050E112 |
:105EA0000100001A0000A0E3F0AD1BE90040A0E1F2 |
:105EB000020058E10030A02301300632000053E315 |
:105EC0001800000A000055E30030A003013006125C |
:105ED000000053E30C00000AD000D4E10710A0E159 |
:105EE00057FFFFEB0008A0E1010870E301408412B6 |
:105EF000015045120060A003000055E30030A003EC |
:105F000001300612000053E3F2FFFF1A000056E3CF |
:105F1000018088120A0058E10030A02301300632C7 |
:105F2000000053E3E6FFFF1A0800A0E1F0AD1BE913 |
:105F3000600A00040DC0A0E170D82DE904B04CE265 |
:105F40000040A0E10160A0E10020A0E30250A0E138 |
:105F500060309FE50030D3E5020051E102005311AB |
:105F60000100000A020050E10100001A0000A0E355 |
:105F700070A81BE9D23090E10300A0E1000053E3D8 |
:105F8000010072130900000A0610A0E12CFFFFEBCC |
:105F90000008A0E14028A0E1013085E2FF5003E2C3 |
:105FA000D50094E1000050E301007213F5FFFF1AE1 |
:105FB0000200A0E170A81BE9600A00040DC0A0E186 |
:105FC000F0D82DE904B04CE20070A0E10260A0E13D |
:105FD0000000A0E36C309FE50030D3E5000052E103 |
:105FE000000053110300000A000057E10040A01117 |
:105FF0000750A0110F00001A0000A0E3F0A81BE951 |
:106000000600A0E1CDFEFFEB0008A0E14008A0E102 |
:10601000010070E30100000A0A0050E30100001AC9 |
:106020000000A0E30140A0E30100C5E4013044E228 |
:106030000338A0E14348A0E1010054E30700A0D1E8 |
:10604000F0A81BD9EDFFFFEA600A00040DC0A0E133 |
:1060500070D82DE904B04CE20040A0E10060A0E35C |
:10606000D3F8FFEB0050A0E10400A0E10610A0E18E |
:106070001820A0E30530A0E177FDFFEBFF6000E210 |
:106080000500A0E1DEF8FFEB0600A0E170A81BE927 |
:106090000030A0E1140090E5010080E2103093E5AB |
:1060A000030050E10000A0330100A0230EF0A0E1A6 |
:1060B00030402DE90050A0E10140A0E10000A0E344 |
:1060C0000010A0E1040050E11100002A01C0D5E752 |
:1060D00000E0A0E38030A0E1FF0003E280200CE2BA |
:1060E000803003E2030052E1090020128C30A0E16D |
:1060F000FFC003E201308EE2FFE003E207005EE34F |
:10610000F3FFFF9A013081E2FF1003E2040051E146 |
:10611000EDFFFF3A8030A0E1013083E3FF0003E2AE |
:106120003080BDE80DC0A0E130D82DE904B04CE2CC |
:106130000040A0E11F0400EB470300EB0400A0E1D6 |
:106140001FF0FFEB0050A0E1020400EBFF4000E273 |
:106150000500A0E120F0FFEBFF0010E30100001AB2 |
:10616000FF0054E3F7FFFF1A0400A0E130A81BE989 |
:106170000DC0A0E170D82DE904B04CE208D04DE28A |
:106180000150A0E1FF4000E20060A0E3090400EB41 |
:10619000310300EB7D0FA0E3E1FFFFEB050400EB13 |
:1061A000EC0300EB404084E320404BE5253CA0E1BC |
:1061B0001F304BE52538A0E11E304BE52534A0E12A |
:1061C0001D304BE51C504BE520004BE20510A0E3D1 |
:1061D000B6FFFFEB1B004BE50640A0E10438A0E151 |
:1061E00018204BE2233882E0080053E5040400EB5A |
:1061F000013084E20338A0E14348A0E1050853E3FD |
:10620000F5FFFF9AEB0300EBD20300EBFF0000E287 |
:106210000620A0E1013086E20338A0E14368A0E156 |
:106220000228A0E17D0752E370A81B89FF0050E31C |
:1062300070A81B19F3FFFFEA0DC0A0E130D82DE9CB |
:1062400004B04CE20150A0E1FF4000E23700A0E3BF |
:106250000010A0E3C5FFFFEBFF0000E2800010E3A9 |
:1062600030A81B190400A0E10510A0E1BFFFFFEB5F |
:10627000FF0000E230A81BE90DC0A0E1F0D82DE935 |
:1062800004B04CE20270A0E10360A0E1FF0000E274 |
:10629000B6FFFFEBFF4010E20450A0131500001AF8 |
:1062A000C40300EBAB0300EBFF4000E2F00010E39F |
:1062B0000A50A0030F00000AFE0054E3F8FFFF1A83 |
:1062C0000050A0E3060055E10700002AA10300EBFF |
:1062D0000538A0E12308C7E7013085E20338A0E1D3 |
:1062E0004358A0E1230856E1F7FFFF8A990300EB2A |
:1062F000980300EB0050A0E3000055E30600000AFD |
:106300001C009FE51C109FE50520A0E10430A0E1E2 |
:10631000774700EB08009FE57F0D00EB0500A0E14B |
:10632000F0A81BE928130004F0CC01000DC0A0E187 |
:10633000F0D82DE904B04CE23CD04DE20070A0E171 |
:1063400050504BE20040A0E10120D4E40500A0E160 |
:1063500008119FE5664700EB0500A0E16E0D00EB1C |
:1063600058604BE20600A0E10410A0E10220A0E387 |
:10637000744700EB0040A0E356404BE50500A0E168 |
:10638000DC109FE50620A0E1594700EB0500A0E1E5 |
:10639000610D00EB031087E20600A0E10520A0E3F9 |
:1063A000684700EB53404BE50500A0E1B4109FE5C2 |
:1063B0000620A0E14E4700EB0500A0E1560D00EBE2 |
:1063C0000830D7E52322A0E10F3003E20500A0E169 |
:1063D00094109FE5464700EB0500A0E14E0D00EB51 |
:1063E00088009FE54C0D00EB0450A0E150404BE2CB |
:1063F0000538A0E1233887E00920D3E50400A0E1B7 |
:106400006C109FE53A4700EB0400A0E1420D00EB61 |
:10641000013085E20338A0E14358A0E1030853E3CB |
:10642000F2FFFF9A4C009FE53B0D00EB0E50D7E5C5 |
:106430000D30D7E50332A0E1253283E150404BE235 |
:106440000F2005E27D3E83E20400A0E128109FE5D5 |
:10645000274700EB0400A0E12F0D00EBF0A81BE99B |
:1064600024CD010040CD010058CD01006CCD0100CC |
:1064700084CD010094CD01009CCF01009CCD010092 |
:106480000DC0A0E100D82DE904B04CE20020A0E14D |
:106490000A00A0E30010A0E31030A0E375FFFFEBBB |
:1064A00000A81BE90DC0A0E100D82DE904B04CE222 |
:1064B0000020A0E10900A0E30010A0E31030A0E359 |
:1064C0006CFFFFEB00A81BE90DC0A0E170D82DE91F |
:1064D00004B04CE23CD04DE20050A0E31603A0E330 |
:1064E0000B0A80E20810A0E3F61F00EBFF0010E3A8 |
:1064F0001A01001A88049FE5070D00EB680200EB03 |
:1065000080049FE5040D00EB7C049FE5020D00EB89 |
:1065100078349FE50050C3E5580200EB250300EBFB |
:10652000FF00A0E3360300EB015085E20E0055E3C7 |
:10653000FAFFFF9A030000EA0530A0E1015085E26E |
:10654000140053E3DD00008A0000A0E30010A0E186 |
:1065500006FFFFEBFF0000E2010050E3F5FFFF1A2A |
:106560000800A0E36A1FA0E3021081E2FFFEFFEB38 |
:1065700054004BE5D4355BE1000053E34C404BB293 |
:1065800054205BB50400A0B104149FB5D30000BA39 |
:1065900054305BE5040013E30B00000AEC339FE585 |
:1065A0000120D3E50010A0E3012081E30120C3E531 |
:1065B0000220D3E50210C3E50320D3E50310C3E5B1 |
:1065C0000420D3E50410C3E51B0000EABC339FE5BB |
:1065D0000120D3E50010A0E3022081E30120C3E500 |
:1065E0000220D3E50210C3E50320D3E50310C3E581 |
:1065F0000420D3E50410C3E50150A0E318304BE2BA |
:10660000054083E0D30200EB3C0044E5015085E205 |
:10661000040055E3F8FFFF9A50305BE5AA0053E30E |
:1066200070039F15AF00001A51305BE50F3003E295 |
:10663000010053E360039F151E00001A3A00A0E317 |
:106640000010A0E3C9FEFFEB54004BE5D4355BE13D |
:10665000000053E34C404BB254205BB50400A0B1A2 |
:1066600038139FB59D0000BA54305BE5040013E376 |
:106670000150A0030300000A24039FE5A60C00EBD1 |
:106680000660A0E3B30000EA18304BE2054083E067 |
:10669000B00200EB3C0044E5015085E2040055E304 |
:1066A000F8FFFF9A52305BE5303003E2300053E3ED |
:1066B0000300000AEC029FE5970C00EB0560A0E3E5 |
:1066C000A40000EA7D0EA0E3BDEEFFEB0050A0E1C8 |
:1066D0002900A0E30010A0E3D6FEFFEB54004BE539 |
:1066E000D4355BE1000053E3780000BA0500A0E177 |
:1066F000B9EEFFEBFF0010E37D00001A54305BE5BC |
:10670000010013E3F1FFFF1A000053E398029F1505 |
:106710007800001A1000A0E3021CA0E393FEFFEB38 |
:10672000FF0010E30300000A80029FE57A0C00EBF3 |
:106730000B60A0E3870000EA74029FE54FFFFFEBC8 |
:106740000060A0E1000050E368029F150500001AF8 |
:1067500064029FE552FFFFEB0060A0E1000050E300 |
:106760000200000A54029FE56B0C00EB790000EA7E |
:106770004C029FE5680C00EB10329FE51930D3E521 |
:106780002333B0E10200000A010053E31A00000ABB |
:10679000310000EAF4119FE51E00D1E50F0000E290 |
:1067A0001FC0D1E503C00CE22030D1E50331A0E1E8 |
:1067B0000CC583E12130D1E523C38CE12220D1E552 |
:1067C000032002E22330D1E5A333A0E1823083E14C |
:1067D00001208CE2023083E21223A0E11220A0E12A |
:1067E000FF3002E20500D1E50530C1E52234A0E129 |
:1067F000FF3003E20600D1E50E0000EA8C119FE5B0 |
:1068000020C0D1E53FC00CE22130D1E50334A0E146 |
:106810000CC883E12230D1E503C08CE18C29A0E1D2 |
:10682000022782E2FF3002E20500D1E50530C1E532 |
:106830000630D1E50030A0E30630C1E52238A0E102 |
:10684000FF3003E20700D1E50730C1E5222CA0E1CB |
:106850000830D1E50820C1E5090000EA2C319FE5A8 |
:106860000520D3E50020A0E30520C3E50610D3E50D |
:106870000620C3E50710D3E50720C3E50810D3E5DC |
:106880000820C3E504119FE50130D1E50220D1E5E0 |
:10689000023483E10320D1E5023883E10420D1E50D |
:1068A000023C83E1010053E30200000A020053E3CB |
:1068B0001300000A140000EA08019FE5110000EA35 |
:1068C00004019FE5140C00EB0260A0E3210000EA44 |
:1068D0004C404BE254205BE50400A0E1EC109FE546 |
:1068E000034600EB0400A0E10B0C00EB0460A0E306 |
:1068F000180000EAD8009FE5070C00EB0360A0E356 |
:10690000140000EACC009FE5030C00EB7C409FE5FF |
:106910000520D4E50630D4E5032482E10730D4E530 |
:10692000032882E10830D4E5032C82E14C504BE28D |
:10693000222AA0E10500A0E19C109FE5EC4500EBB8 |
:106940000500A0E1F40B00EB090084E276FEFFEB0A |
:106950000130A0E30030C4E5480100EB060000EA86 |
:10696000BF0100EB0020A0E320309FE50020C3E53D |
:106970000160A0E364009FE5E70B00EB0600A0E1E7 |
:1069800070A81BE9B8CD010060CB0100C8CD0100A3 |
:10699000F8100004D8CD0100ECCD01000CCE0100B0 |
:1069A0002CCE010040CE010050CE010070CE01007F |
:1069B0007CCE010001110004A0CE010011110004E1 |
:1069C000B8CE0100CCCE0100D4CE0100E4CE01004F |
:1069D000F4CE010008CF010018CF010030CF010034 |
:1069E00048CF01000DC0A0E110D82DE904B04CE261 |
:1069F00060009FE5C80B00EB990100EB58309FE564 |
:106A00000040A0E30040C3E50520D3E50540C3E511 |
:106A10000620D3E50640C3E50720D3E50740C3E5DC |
:106A20000820D3E50840C3E50120D3E50140C3E5D4 |
:106A30000220D3E50240C3E50320D3E50340C3E5CC |
:106A40000420D3E50440C3E510009FE5B20B00EB42 |
:106A50000400A0E110A81BE95CCF0100F8100004BD |
:106A600060CB01000DC0A0E1F0D92DE904B04CE2EB |
:106A70000170A0E10060A0E38034A0E11800A0E371 |
:106A80000310A0E1B9FDFFEBFF4010E20450A0139A |
:106A90004C00001AC70100EB0040A0E3AD0100EB81 |
:106AA000013084E20338A0E14348A0E1130853E336 |
:106AB000F9FFFF9A0700A0E1021CA0E3190400EB14 |
:106AC0000008A0E14088A0E1FE00A0E3CC0100EBBB |
:106AD0000040A0E37F57A0E3035885E20438A0E11B |
:106AE0002308D7E7C60100EB013084E20338A0E1B8 |
:106AF0004348A0E1050053E1F7FFFF9A0808A0E131 |
:106B0000200CA0E1BE0100EBFF0008E2BC0100EB9D |
:106B1000A80100EB8F0100EBFF4000E20620A0E19E |
:106B2000013086E20338A0E14368A0E10228A0E139 |
:106B30007D0752E31C00008A113004E2010053E398 |
:106B4000F3FFFF1A1F3004E20B0053E30850A003C9 |
:106B50001C00000A020000CA050053E30500000AF9 |
:106B6000020000EA1D0053E30950A0031500000ACB |
:106B70000C50A0E3130000EA0050A0E37D0EA0E358 |
:106B800067FDFFEBFF4000E2FF0054E30600001A40 |
:106B90000D00A0E30010A0E374FDFFEBFF4010E246 |
:106BA0000450A0130600001A010000EA0750A0E3F9 |
:106BB000040000EA670100EBFF4010E20100000A58 |
:106BC0000950A0E3630100EB000055E30600000A52 |
:106BD0001C009FE51C109FE50520A0E10430A0E10A |
:106BE000434500EB08009FE54B0B00EB0500A0E1DF |
:106BF000F0A91BE92813000470CF01000DC0A0E12B |
:106C000000D82DE904B04CE20120A0E18034A0E1DD |
:106C10001100A0E30310A0E1023CA0E395FDFFEB0F |
:106C200000A81BE90010A0E328009FE5813081E067 |
:106C3000033181E0033181E0003083E03220D3E58D |
:106C40003120C3E5013081E2FF1003E2020051E38D |
:106C50000EF0A081F4FFFFEA6C0000040DC0A0E17B |
:106C6000F0D92DE904B04CE214D04DE20040A0E18F |
:106C70000180A0E134E04BE2E8C09FE50F00BCE8F2 |
:106C80000F00AEE8B0C0DCE1B0C0CEE10400A0E18E |
:106C9000344500EBFF5000E2100055E31050A023F4 |
:106CA00034004BE20410A0E10520A0E1254500EBF3 |
:106CB0000050A0E334604BE2AC709FE5853085E086 |
:106CC000033185E0033185E0074083E00600A0E161 |
:106CD0000410A0E11020A0E32B4500EB000050E3DE |
:106CE0001B00001A0800A0E1584500EB3100C4E584 |
:106CF0003120D4E53330D4E5030052E10200003AFC |
:106D00003430D4E5030052E10500009A853085E077 |
:106D1000033185E0033185E0073083E03220D3E59D |
:106D20003120C3E5853085E0033185E0033185E01E |
:106D3000073083E03130D3E530009FE530109FE528 |
:106D400034204BE2EA4400EB20009FE5F20A00EB1E |
:106D5000F0A91BE9013085E2FF5003E2020055E390 |
:106D6000F0A91B89D4FFFFEA04AC01006C00000409 |
:106D700028130004A0CF01000DC0A0E1F0D82DE938 |
:106D800004B04CE220D04DE2A5FFFFEBB8009FE538 |
:106D9000E10A00EBB4009FE57210A0E3ADFAFFEB4F |
:106DA0000050A0E1000050E30040A0133C704B12E3 |
:106DB0000200001A98009FE5D70A00EBF0A81BE933 |
:106DC0000700A0E11F10A0E30520A0E17AFCFFEB83 |
:106DD0003C305BE5000053E31800000A0A0053E36F |
:106DE0000D0053131100000A200053E30F00000AA6 |
:106DF0003B0053E30D00000A230053E30B00000A9D |
:106E00000700A0E14C109FE5EC4400EB0060A0E11E |
:106E1000000050E30500000A0000A0E334109FE5E5 |
:106E2000E64400EB0010A0E10600A0E18AFFFFEBC2 |
:106E3000013084E2FF4003E2090054E3DFFFFF9AE0 |
:106E40000500A0E12EFBFFEBF0A81BE9ACCF010091 |
:106E5000C8CF0100D8CF0100F4CF01000DC0A0E1E0 |
:106E600000D82DE904B04CE21603A0E30B0A80E23F |
:106E70001010A0E30020A0E39D1D00EB00A81BE97B |
:106E80000DC0A0E100D82DE904B04CE21603A0E348 |
:106E90000B0A80E21010A0E30120A0E3941D00EB98 |
:106EA00000A81BE90DC0A0E1F0DD2DE904B04CE223 |
:106EB00020D04DE2020CA0E30110A0E3D41A00EBB5 |
:106EC0003C004BE2771D00EB0170A0E33C404BE23D |
:106ED0000170C4E51030A0E33C304BE50050A0E366 |
:106EE0000250C4E50350C4E5B470C4E11603A0E346 |
:106EF0000B0A80E20410A0E1181D00EB0400A0E1E1 |
:106F0000681D00EB0170C4E55030A0E33C304BE558 |
:106F10000250C4E50370C4E50230A0E3B430C4E11C |
:106F20001603A0E3090A80E20410A0E10B1D00EBA8 |
:106F30000400A0E15B1D00EB0150C4E52030A0E39C |
:106F40003C304BE50250C4E50370C4E50560A0E1A8 |
:106F5000B450C4E11603A0E3090A80E20410A0E1E2 |
:106F6000FE1C00EB1703A0E3020980E2902200EB75 |
:106F700034804BE20800A0E1E82200EB3030E0E38F |
:106F8000B4334BE10430E0E3B2334BE18030E0E373 |
:106F9000BE324BE14030E0E3B0334BE10530A0E3DB |
:106FA00028304BE508A0A0E327A04BE51703A0E39A |
:106FB000020980E20810A0E1942200EBAFFFFFEB92 |
:106FC0001703A0E3020980E20710A0E1E32200EB2F |
:106FD0000207A0E30710A0E18D1A00EB0150C4E501 |
:106FE0003CA04BE50250C4E50350C4E5B450C4E1F5 |
:106FF0001603A0E30B0A80E20410A0E1D71C00EB0B |
:10700000020AA0E30710A0E1811A00EB0700A0E14B |
:10701000612500EB020BA0E3862500EB502500EB79 |
:1070200044301BE5FF30C3E344300BE544004BE242 |
:10703000023BA0E3043080E5362500EB0B00A0E323 |
:10704000AF1B00EB1B00A0E30510A0E10720A0E3AD |
:107050001F2000EB1B00A0E30710A0E1711F00EB55 |
:10706000F0AD1BE90DC0A0E170D82DE904B04CE2F1 |
:1070700008D04DE21703A0E3020980E20010A0E36C |
:10708000B62200EB1703A0E3020980E2482200EBDE |
:1070900020404BE20060A0E30160C4E51030A0E3B3 |
:1070A00020304BE50260C4E50360C4E50650A0E172 |
:1070B000B460C4E11603A0E30B0A80E20410A0E16F |
:1070C000A61C00EB0160C4E55030A0E320304BE586 |
:1070D0000260C4E50360C4E5B460C4E11603A0E344 |
:1070E000090A80E20410A0E19C1C00EB0160C4E5E9 |
:1070F0002030A0E320304BE50260C4E50360C4E526 |
:10710000B460C4E11603A0E3090A80E20410A0E120 |
:10711000921C00EB020CA0E30610A0E13C1A00EB6D |
:107120000207A0E30110A0E3391A00EB0160C4E5F7 |
:107130000830A0E320304BE50260C4E50360C4E5FD |
:10714000B460C4E11603A0E30B0A80E20410A0E1DE |
:10715000821C00EB70A81BE90DC0A0E110D82DE93E |
:1071600004B04CE21743A0E3020984E22110A0E33B |
:10717000AA2200EB010050E3FAFFFF1A1703A0E375 |
:10718000020980E2FF10A0E3972200EB1743A0E37F |
:10719000020984E22010A0E3A02200EB010050E3EA |
:1071A000FAFFFF1A1703A0E3020980E2922200EB24 |
:1071B000FF0000E210A81BE90DC0A0E110D82DE9E6 |
:1071C00004B04CE21743A0E3020984E22010A0E3DC |
:1071D000922200EB010050E31743A0030200000AD3 |
:1071E000F8FFFFEA020984E2832200EB020984E24D |
:1071F0002210A0E3892200EB010050E310A81B1924 |
:10720000F7FFFFEA0DC0A0E130D82DE904B04CE251 |
:10721000FF5000E21743A0E3020984E22110A0E33B |
:107220007E2200EB010050E3FAFFFF1A1703A0E3F0 |
:10723000020980E20510A0E16B2200EB30A81BE9F7 |
:107240000DC0A0E130D82DE904B04CE258409FE5D4 |
:107250000300A0E3ED2600EB0008A0E12008A0E178 |
:10726000000084E5B020D4E140009FE5251EA0E3A6 |
:107270000C2E00EB34509FE5002094E50030A0E395 |
:107280000230C5E70300A0E39A2500EB20009FE54C |
:1072900020109FE5002094E50530A0E1944300EB29 |
:1072A0000C009FE59C0900EB30A81BE924040004B6 |
:1072B0002811000428130004F8CF01000020A0E3E7 |
:1072C00004309FE5002083E50EF0A0E128040004CF |
:1072D0000DC0A0E100D82DE904B04CE278219FE573 |
:1072E000211DA0E3461281E2003091E5B030C2E1F9 |
:1072F000B030D2E164219FE5B020D2E1023003E05A |
:10730000010B13E30500000AFB3CA0E3FF3083E21E |
:10731000003081E548319FE50FE0A0E104F093E5FE |
:1073200034319FE5B030D3E130219FE5B020D2E188 |
:10733000023003E0020A13E3212DA0134622821239 |
:10734000DF3CA013FF3083120030821508319FE527 |
:10735000B030D3E104219FE5B020D2E1023003E058 |
:10736000010A13E30600000A212DA0E3462282E26F |
:10737000EF3CA0E3FF3083E2003082E50000A0E3B1 |
:107380007C0100EBD0309FE5B030D3E1CC209FE50D |
:10739000B020D2E1023003E0020B13E30C00000A3C |
:1073A000C0309FE5003093E5000053E30100000A80 |
:1073B000510100EB010000EA0200A0E36D0100EBC7 |
:1073C000212DA0E3462282E2F73CA0E3FF3083E2D6 |
:1073D000003082E580309FE5B030D3E17C209FE52E |
:1073E000B020D2E1023003E0020C13E3212DA01300 |
:1073F00046228212FD3CA013FF308312003082151A |
:1074000054309FE5B030D3E150209FE5B020D2E169 |
:10741000023003E0010C13E30600000A212DA0E373 |
:10742000462282E2FE3CA0E3FF3083E2003082E5A8 |
:107430000700A0E34F0100EB1C309FE5B030D3E123 |
:1074400018209FE5B020D2E1023003E0020913E3E7 |
:1074500000A81B09672C00EB00A81BE9B011000471 |
:1074600090180004900100041C0200040DC0A0E16B |
:1074700070D82DE904B04CE20050A0E3A8409FE58D |
:10748000003094E51250C3E5F60000EB213DA0E387 |
:10749000463283E2005083E5BF2CA0E38C309FE5A9 |
:1074A000B020C3E10632A0E3213D83E2002083E562 |
:1074B000002094E578309FE50730D3E51130C2E530 |
:1074C000003094E51230D3E5050053E11200001AB4 |
:1074D000015085E20460A0E1924AA0E37B4E84E281 |
:1074E0000F4084E2422C00EB003096E51230D3E5E9 |
:1074F000000053E30300001A0530A0E1015085E2CB |
:10750000040053E1F6FFFF9A1C309FE5003093E53D |
:107510001230D3E5000053E370A81B090520A0E357 |
:1075200010309FE50020C3E570A81BE98018000417 |
:10753000901800042AAC0100300400040DC0A0E142 |
:1075400010D82DE904B04CE210219FE5003092E5FF |
:107550000040A0E31240C3E5003092E51340C3E5CC |
:107560000400A0E1612400EB0400A0E1021CA0E300 |
:10757000792400EB0400A0E11010A0E3872400EBC5 |
:107580000400A0E1461FA0E3A32500EB0400A0E156 |
:10759000561FA0E38A2500EB0400A0E1F52400EBD0 |
:1075A000BC309FE52C10D3E50400A0E1D82500EB0A |
:1075B0000400A0E1CF2400EB0100A0E30410A0E14F |
:1075C000652400EB0100A0E3021CA0E37C2500EB96 |
:1075D0000100A0E32010A0E3702400EB0100A0E371 |
:1075E0000410A0E1812400EB0200A0E3061CA0E34C |
:1075F000592400EB0200A0E3091DA0E3702500EB75 |
:107600000200A0E30410A0E1782400EB0200A0E354 |
:107610002010A0E3612400EB0300A0E30410A0E12C |
:107620004D2400EB0300A0E3251EA0E37A2500EB28 |
:107630000300A0E34010A0E3B52500EB0300A0E3A6 |
:10764000031AA0E3692400EB0300A0E30410A0E107 |
:10765000522400EB0400A0E1CB2B00EB10A81BE9A7 |
:10766000801800049001000410209FE5003092E58E |
:10767000200053E30030A003003082050EF0A0E1AB |
:107680002C0400040EF0A0E10DC0A0E110D82DE9FB |
:1076900004B04CE2FF0000E20010A0E3210050E340 |
:1076A0000600001A7C309FE5003093E50030D3E5FA |
:1076B0007F3003E2210053E36C109F050B0000EACA |
:1076C000200050E30900001A58309FE5003093E590 |
:1076D0000030D3E57F3003E250209FE5210053E3E3 |
:1076E0000210A0012020A0E344309FE5002083E5A4 |
:1076F000000051E30200A00310A81B0924209FE50D |
:10770000003092E5201083E5003092E50040A0E3D0 |
:10771000BA41C3E10400A0E10FE0A0E101F0A0E163 |
:107720000400A0E110A81BE98018000418780000EC |
:10773000407800002C040004FF0000E230309FE598 |
:10774000003093E50030D3E57F3003E2210053E3BE |
:107750000500001A020050E30100000A220050E375 |
:107760000100001A0000A0E30EF0A0E10200A0E377 |
:107770000EF0A0E1801800040DC0A0E100D82DE9B2 |
:1077800004B04CE20008A0E12008A0E104109FE54D |
:107790000B2900EB00A81BE9E40100040DC0A0E1E7 |
:1077A00000D82DE904B04CE20008A0E12008A0E1D7 |
:1077B00004109FE5022900EB00A81BE9EC0100047E |
:1077C0000DC0A0E100D82DE904B04CE21C309FE5CB |
:1077D000003093E50530D3E50008A0E12008A0E1E2 |
:1077E0000C109FE5831181E0F52800EB00A81BE950 |
:1077F00080180004F4010004FF0000E2FF0011E320 |
:107800000200A0130EF0A011010050E30200A083BB |
:107810000000A0930EF0A0E10008A0E12008B0E174 |
:1078200010309F05003093050820A003B821C30144 |
:1078300004009F150EF0A0E18018000484010004EC |
:107840000008A0E12008B0E110309F05003093054A |
:107850000820A003B821C30104009F150EF0A0E189 |
:1078600080180004840100040DC0A0E100D82DE9B7 |
:1078700004B04CE20100A0E324F2FFEB0622A0E3F7 |
:10788000212D82E20130A0E3003082E50000A0E378 |
:10789000000082E5213DA0E3463283E2000083E55B |
:1078A000071BA0E308309FE5B010C3E1001082E59C |
:1078B00000A81BE9901800040DC0A0E130D82DE904 |
:1078C00004B04CE20652A0E3215D85E20130A0E362 |
:1078D000003085E5213DA0E3463283E20040A0E38D |
:1078E000004083E50400A0E108F2FFEB0330A0E3D1 |
:1078F000003085E50400A0E130A81BE90120A0E3E9 |
:1079000034309FE5002083E50622A0E3212D82E2AA |
:10791000003092E50338A0E1023783E32338A0E189 |
:10792000003082E5003092E50338A0E1013783E3BF |
:107930002338A0E1003082E50EF0A0E1C011000480 |
:107940000020A0E328309FE5002083E50622A0E385 |
:10795000212D82E2003092E50430C3E30338A0E138 |
:107960002338A0E1003082E5BF3CA0E3003082E58F |
:107970000EF0A0E1C01100040DC0A0E100D82DE977 |
:1079800004B04CE2070050E318319F150000831546 |
:1079900010319FE5003093E5070053E303F19F9713 |
:1079A0003E0000EAC4790000DC790000F0790000B4 |
:1079B000047A0000287A00005C7A0000A07A0000B7 |
:1079C000A07A0000DDFFFFEB362300EB020910E395 |
:1079D0003200000AC8FFFFEB300000EAD7FFFFEBE0 |
:1079E0000420A0E3BC309FE5002083E500A81BE94C |
:1079F000B0309FE50220A0E30420C3E50320A0E30C |
:107A0000F8FFFFEA9C209FE50430D2E5013043E215 |
:107A10000430C2E50430D2E5000053E30430A00393 |
:107A20000030820500A81BE90622A0E3212D82E296 |
:107A3000003092E50338A0E1013683E32338A0E16A |
:107A4000003082E55C209FE50530A0E3003082E550 |
:107A50000A30A0E30430C2E500A81BE944109FE50A |
:107A60000430D1E5013043E20430C1E50430D1E512 |
:107A7000000053E300A81B190632A0E3213D83E276 |
:107A8000002093E51020C2E30228A0E12228A0E113 |
:107A9000002083E50630A0E3003081E500A81BE963 |
:107AA0000620A0E3CEFFFFEAE01100040DC0A0E134 |
:107AB00010D82DE904B04CE208D04DE20207A0E353 |
:107AC0000110A0E3D21700EB18004BE2751A00EB8F |
:107AD0000120A0E318104BE20120C1E53F30E0E3B4 |
:107AE00018304BE50040A0E30240C1E5B420C1E1FD |
:107AF0001603A0E30B0A80E2181A00EB1603A0E3BA |
:107B00000B0A80E24010A0E30420A0E1781A00EB09 |
:107B10001603A0E30B0A80E28010A0E30420A0E19A |
:107B2000731A00EB10A81BE910402DE900E0A0E15A |
:107B30000000A0E300C0A0E1010050E10B00002A1A |
:107B400034409FE50038A0E10120DEE4232C22E050 |
:107B50008220A0E1B42092E1232422E00228A0E1C7 |
:107B60004208A0E101C08CE201005CE1F4FFFF3AB1 |
:107B70000008A0E12008A0E11080BDE8EAAC010007 |
:107B80000008A0E12008A0E148309FE5931082E0C2 |
:107B9000A233A0E1033183E0033183E0033240E00C |
:107BA0000338B0E10700000A030010E30700001AE1 |
:107BB000A232A0E1033183E0033183E0033140E0EE |
:107BC0000338B0E10100000A0100A0E30EF0A0E1DB |
:107BD0000000A0E30EF0A0E11F85EB510DC0A0E175 |
:107BE00070D82DE904B04CE20050A0E1AC129FE542 |
:107BF0003430D1E53520D1E5023483E13620D1E5BA |
:107C0000023883E13720D1E5023C93E1A000000A6D |
:107C10000B30D1E5040013E39D00000A0B30D1E5E1 |
:107C2000080013E39A00000A0030D1E50120D1E5F5 |
:107C3000023483E10220D1E5023883E10320D1E55B |
:107C4000023C83E158229FE5920383E02363A0E195 |
:107C50000830D1E50920D1E5023483E10338A0E101 |
:107C60004338A0E10C0056E301304392936A8692B8 |
:107C7000A76E8692036086920D604682833163E030 |
:107C80000B4883E21E4D84E2034084E214329FE5F8 |
:107C9000961383E0234884E00C329FE5930482E04E |
:107CA000A227A0E10238A0E12338A0E1033183E05C |
:107CB000033183E00332A0E1013083E2B030C5E15B |
:107CC000823182E0033282E0033262E0033363E018 |
:107CD000044063E02421A0E1D0319FE5930281E0DC |
:107CE000A115A0E10138A0E12338A0E1033183E030 |
:107CF000033183E0B020D5E1032182E0B020C5E16B |
:107D0000813161E0833181E0033281E0033183E03E |
:107D1000833081E0034144E094319FE5931482E095 |
:107D2000A223A0E10218A0E1B030D5E1213783E021 |
:107D3000B030C5E1023262E0033182E0833162E0BB |
:107D4000033163E0044063E0113DA0E3063083E2C9 |
:107D5000030054E15C319F95942383900420639049 |
:107D6000A23083900334A0914328A0910320A083E4 |
:107D7000B030D5E1023083E0B030C5E10228A0E1A7 |
:107D80002228A0E1823182E0833182E0033183E066 |
:107D9000044063E0014084E2B000D5E177FFFFEBEF |
:107DA000FF0010E310219FE510319FE50210A001B4 |
:107DB0000310A0110020A0E3023191E7040053E179 |
:107DC0000900002A023181E0043093E5030054E108 |
:107DD0000500008A013082E20230C5E50231D1E7B8 |
:107DE000043063E00330C5E50C20A0E3013082E2FB |
:107DF000FF2003E20B0052E3EEFFFF9AA4309FE561 |
:107E0000960383E02338A0E1833083E0033263E00C |
:107E1000033263E0836346E0A4309FE5961383E07A |
:107E2000A335A0E10430C5E5033263E0033263E02B |
:107E3000036246E08C309FE5962383E0A332A0E105 |
:107E40000530C5E5033263E0036146E00660C5E541 |
:107E500048209FE50010D2E50130D2E5031481E10E |
:107E60000230D2E5031881E10330D2E5031C81E141 |
:107E70002C309FE5930182E02223A0E1823262E070 |
:107E8000033182E0831141E0B810C5E10130A0E385 |
:107E9000000000EA0030A0E30A30C5E570A81BE945 |
:107EA00034040004D34D621007452EC2BD066B3961 |
:107EB0007F206B3973B06D1661F3196720AF010035 |
:107EC000ECAE0100C5B3A2918988888880309FE517 |
:107ED0003420D3E50020A0E33420C3E53510D3E5FA |
:107EE0003520C3E53610D3E53620C3E53710D3E59A |
:107EF0003720C3E55C309FE51C10D3E51C20C3E5AB |
:107F00001D10D3E51D20C3E51E10D3E51E20C3E5DB |
:107F10001F10D3E51F20C3E53C309FE52410D3E5B7 |
:107F20002420C3E52510D3E52520C3E52610D3E59D |
:107F30002620C3E52710D3E52720C3E51C309FE5A5 |
:107F40002F20C3E53020C3E53120C3E53220C3E54F |
:107F50000EF0A0E1340400046C0400048C0400045E |
:107F6000B80400040DC0A0E1F0D92DE904B04CE242 |
:107F700014349FE5000093E597E8FFEBFF0010E362 |
:107F80000020A01304349F150020C315FC239F0577 |
:107F90000030D205013083020030C2056400A0E346 |
:107FA00087E8FFEBE0339FE5000083E5DC339FE5E6 |
:107FB0000030D3E5010053E3F0A91B99D0039FE5FE |
:107FC0003430D0E53520D0E5023483E13620D0E5E9 |
:107FD000023883E13720D0E5023C83E1010053E31E |
:107FE000CB00001AAC439FE51C30D4E51D20D4E53E |
:107FF000023483E11E20D4E5023883E11F20D4E55A |
:10800000023C83E1010053E3C100001A88639FE54D |
:108010002430D6E52520D6E5023483E12620D6E5B6 |
:10802000023883E12720D6E5027C83E1010057E393 |
:10803000B700001A64239FE5003092E5013083E227 |
:10804000003082E558139FE51830D1E51920D1E5BD |
:10805000023483E1013083E20080A0E31830C1E5FF |
:108060002334A0E11930C1E538539FE52F30D5E521 |
:108070003020D5E5023483E13120D5E5023883E1B3 |
:108080003220D5E5023C83E1010053E3A000000A61 |
:108090002F80C5E53080C5E53180C5E53280C5E576 |
:1080A0000B30D0E51030C5E52F30D0E51130C5E5F7 |
:1080B0000A30D0E51230C5E51830D0E51920D0E5FA |
:1080C000023483E11A20D0E5023883E11B20D0E599 |
:1080D000023C83E11330C5E52324A0E11420C5E56B |
:1080E0002328A0E11520C5E5233CA0E11630C5E515 |
:1080F0002830D0E52920D0E5023483E12A20D0E5DC |
:10810000023883E12B20D0E5023C83E12B30C5E52A |
:108110002324A0E12C20C5E52328A0E12D20C5E5DE |
:10812000233CA0E12E30C5E57C029FE5AAFEFFEBD3 |
:108130000430D4E50520D4E5023483E10620D4E5FB |
:10814000023883E10720D4E5023C83E10030C5E535 |
:108150002324A0E10120C5E52328A0E10220C5E5F4 |
:10816000233CA0E10330C5E50830D4E50920D4E57F |
:10817000023483E10A20D4E5023883E10B20D4E500 |
:10818000023C83E10430C5E52324A0E10520C5E5D8 |
:108190002328A0E10620C5E5233CA0E10730C5E582 |
:1081A0001030D4E51120D4E5023483E11220D4E567 |
:1081B000023883E11320D4E5023C83E10830C5E5B1 |
:1081C0002324A0E10920C5E52328A0E10A20C5E574 |
:1081D000233CA0E10B30C5E50C70C5E50D80C5E57D |
:1081E0000E80C5E50F80C5E50830D6E50920D6E547 |
:1081F000023483E10A20D6E5023883E10B20D6E57C |
:10820000023C83E11B30C5E52324A0E11C20C5E529 |
:108210002328A0E11D20C5E5233CA0E11E30C5E5D3 |
:108220000430D6E50520D6E5023483E10620D6E504 |
:10823000023883E10720D6E5023C83E11730C5E52B |
:108240002324A0E11820C5E52328A0E11920C5E5D5 |
:10825000233CA0E11A30C5E50C30D6E50D20D6E56B |
:10826000023483E10E20D6E5023883E10F20D6E503 |
:10827000023C83E1003063E21F30C5E52324A0E126 |
:108280002020C5E52328A0E12120C5E5233CA0E16D |
:108290002230C5E51430D6E51520D6E5023483E159 |
:1082A0001620D6E5023883E11720D6E5023C83E1AB |
:1082B0002330C5E52324A0E12420C5E52328A0E13F |
:1082C0002520C5E5233CA0E12630C5E51830D6E5DC |
:1082D0001920D6E5023483E11A20D6E5023883E17D |
:1082E0001B20D6E5023C83E12730C5E52324A0E12D |
:1082F0002820C5E52328A0E12920C5E5233CA0E1ED |
:108300002A30C5E52F70C5E53080C5E53180C5E56B |
:108310003280C5E578309FE53420D3E50020A0E326 |
:10832000021082E33410C3E53500D3E53520C3E500 |
:108330003600D3E53620C3E53700D3E53720C3E563 |
:1083400050309FE51C00D3E51C10C3E51D00D3E5AC |
:108350001D20C3E51E00D3E51E20C3E51F00D3E5A5 |
:108360001F20C3E530309FE52400D3E52410C3E58A |
:108370002510D3E52520C3E52610D3E52620C3E547 |
:108380002710D3E52720C3E5F0A91BE9F804000472 |
:10839000FC040004340400046C0400048C04000495 |
:1083A000B4040004B8130004B8040004E008000496 |
:1083B0000DC0A0E100D82DE904B04CE2FF0000E2BE |
:1083C00098329FE5003093E5080053E303F19F974F |
:1083D0000B0000EAF88300001484000020840000F1 |
:1083E0002C840000F88400002C850000A08500008B |
:1083F0000486000028860000B50050E30120A00399 |
:108400000000000A0020A0E350329FE5002083E531 |
:1084100000A81BE9620050E30220A003F7FFFFEA77 |
:10842000010050E30320A003F4FFFFEA060050E33D |
:108430000E00000A020000CA020050E30300000A16 |
:108440001B0000EA120050E31100000A180000EAC5 |
:108450000C229FE50C329FE5002083E5201082E28C |
:1084600004329FE5001083E51C2082E2060000EA4A |
:10847000F8219FE5EC319FE5002083E5381082E28A |
:10848000E4319FE5001083E5342082E2E0319FE58E |
:10849000090000EADC219FE5C8319FE5002083E563 |
:1084A000281082E2C0319FE5001083E5242082E29B |
:1084B000F5FFFFEA0020A0E3A0319FE5002083E55F |
:1084C00098219FE5003092E5000053E300A81B09C6 |
:1084D0000430A0E3003082E59C219FE5013080E27A |
:1084E0000030C2E50030D2E5013083E28C219FE507 |
:1084F0000030C2E500A81BE984319FE5B000C3E16C |
:1085000074219FE50030D2E5033080E00030C2E501 |
:1085100068119FE50030D1E50020D2E5023083E00C |
:108520000030C1E50520A0E3B6FFFFEA50219FE53A |
:10853000B030D2E1003483E0B030C2E138219FE5B1 |
:108540000030D2E5033080E00030C2E52C119FE519 |
:108550000030D1E50020D2E5023083E00030C1E5F3 |
:108560000C319FE5003093E50030D3E5010053E383 |
:108570000400001A0020A0E3E0309FE5002083E51E |
:1085800077FEFFEB00A81BE9E4309FE5002093E5B0 |
:108590000030A0E30030C2E50620A0E399FFFFEA27 |
:1085A000C0109FE5002091E5BC309FE5003093E5C9 |
:1085B000030052E192FFFF2A0100C2E4002081E59E |
:1085C000B4209FE50030D2E5033080E00030C2E502 |
:1085D000A8109FE50030D1E50020D2E5023083E00D |
:1085E0000030C1E598209FE5B030D2E1013043E290 |
:1085F000B030C2E10338B0E10720A00300A81B1986 |
:1086000080FFFFEA70309FE50030D3E5000053E1C2 |
:108610000820A00358309F15003093150020A013A8 |
:108620000020C31577FFFFEA50309FE50030D3E507 |
:10863000000053E138309F15002093150030A0133F |
:108640000030C2156EFFFF1A24309FE5002093E52D |
:108650000130A0E30030C2E541FEFFEB68FFFFEA16 |
:10866000000500046C040004080500040C05000467 |
:1086700034040004100500048C0400040605000402 |
:1086800007050004040500040DC0A0E1F0DD2DE99C |
:1086900004B04CE208D04DE2E4A09FE50050A0E316 |
:1086A00000508AE50106A0E30110A0E3D81400EB16 |
:1086B0002C004BE27B1700EB0170A0E32C404BE257 |
:1086C0000150C4E50280A0E32C804BE50250C4E5D4 |
:1086D0000350C4E50560A0E1B450C4E11603A0E373 |
:1086E0000B0A80E20410A0E11C1700EB0400A0E1DB |
:1086F0006C1700EB0150C4E52C704BE50250C4E54B |
:108700000350C4E5B450C4E11603A0E30B0A80E2B1 |
:108710000410A0E1111700EB0400A0E1611700EBC9 |
:108720000150C4E54030A0E32C304BE50250C4E5D5 |
:108730000370C4E5B450C4E11603A0E3030980E26A |
:108740000410A0E1051700EB0400A0E1551700EBB1 |
:108750000170C4E57F30E0E32C304BE50250C4E506 |
:108760000370C4E50330A0E3B430C4E11603A0E312 |
:10877000030980E20410A0E1F81600EB00808AE50E |
:10878000F0AD1BE9140500040DC0A0E1F0D92DE9FE |
:1087900004B04CE208D04DE2E4809FE50050A0E335 |
:1087A000005088E50207A0E30110A0E3981400EB55 |
:1087B00028004BE23B1700EB0170A0E328404BE29E |
:1087C0000150C4E54030A0E328304BE50250C4E539 |
:1087D0000350C4E50560A0E1B450C4E11603A0E372 |
:1087E000030980E20410A0E1DC1600EB0400A0E124 |
:1087F0002C1700EB0150C4E57F30E0E328304BE557 |
:108800000250C4E50350C4E5B450C4E11603A0E32C |
:10881000030980E20410A0E1D01600EB0400A0E1FF |
:10882000201700EB0150C4E50230A0E328304BE5EF |
:108830000250C4E50370C4E5B450C4E11603A0E3DC |
:108840000B0A80E20410A0E1C41600EB0400A0E1D2 |
:10885000141700EB0170C4E528704BE50250C4E525 |
:108860000370C4E50330A0E3B430C4E11603A0E311 |
:108870000B0A80E20410A0E1B81600EB007088E556 |
:10888000F0A91BE9140500040DC0A0E170D82DE982 |
:1088900004B04CE21CD04DE2D4009FE51E0400EB76 |
:1088A0000800A0E30110A0E3591400EBC4409FE5C9 |
:1088B0009634A0E34339A0E1B030C4E134604BE228 |
:1088C0000600A0E1201800EB6030A0E3B4334BE1D8 |
:1088D0000830E0E3B2334BE10050A0E3B0534BE18A |
:1088E000B030D4E12C300BE5B8524BE1033CA0E3AF |
:1088F000B6324BE11040A0E3B4424BE10230A0E3BA |
:1089000020300BE51C300BE51703A0E3010980E2E2 |
:10891000771700EB1703A0E3010980E20610A0E13E |
:10892000931700EB1703A0E3010980E25010A0E3C6 |
:108930000120A0E31C1800EB1703A0E3010980E26B |
:108940000110A0E3111800EB0400A0E10510A0E164 |
:108950000A20A0E3DE1900EB0400A0E10110A0E36F |
:10896000301900EB47FFFFEB0C009FE5EA0300EB3B |
:1089700070A81BE908D001002002000460CB0100B0 |
:108980000DC0A0E130D82DE904B04CE21703A0E3FC |
:10899000010980E21010A0E3411800EB000050E351 |
:1089A0000500001A1703A0E3010980E24010A0E3CC |
:1089B0003B1800EB000050E330A81B091703A0E3AD |
:1089C000010980E21010A0E33B1800EB1703A0E3BD |
:1089D000010980E24010A0E3371800EBA4309FE5C6 |
:1089E000002093E51733A0E3013983E2030052E14D |
:1089F0001753A0030C00000A110000EA1743A0E37C |
:108A0000050A84E24510A0E3111800EB010050E3D1 |
:108A1000FAFFFF0A010985E2761800EB0010A0E1D9 |
:108A2000FF1001E2050A85E26F1800EB010985E2FB |
:108A30004410A0E3061800EB010050E330A81B0926 |
:108A4000EDFFFFEA1743A0E3080000EA010984E212 |
:108A5000681800EBFF0000E22C309FE5003093E542 |
:108A6000010053E30100009A020053E34FFEFF0BA5 |
:108A7000010984E24410A0E3F51700EB010050E384 |
:108A800030A81B09F0FFFFEA2802000414050004C7 |
:108A90000DC0A0E1F0DF2DE904B04CE224D04DE29E |
:108AA0001000A0E30110A0E3D91300EB0208A0E33B |
:108AB0000110A0E3D61300EB4C004BE2791600EB5B |
:108AC0000170A0E34C404BE20050A0E30150C4E52C |
:108AD00004A0A0E34CA04BE50260A0E30250C4E573 |
:108AE0000370C4E50580A0E1B450C4E11603A0E31F |
:108AF000090A80E20410A0E1181600EB0400A0E1CE |
:108B0000681600EB0170C4E50890A0E34C904BE5BB |
:108B10000250C4E5B460C4E11603A0E3090A80E290 |
:108B20000410A0E10D1600EB44404BE20400A0E16C |
:108B3000851700EB6030A0E3B4344BE10830E0E38C |
:108B4000B2344BE1B0544BE1E13CA0E33C300BE5E7 |
:108B5000B8534BE1033CA0E3B6334BE11030A0E344 |
:108B6000B4334BE130600BE52C600BE51703A0E359 |
:108B7000050A80E2DE1600EB1703A0E3050A80E297 |
:108B80000410A0E1FA1600EB1703A0E3050A80E247 |
:108B90005010A0E30720A0E1831700EB1703A0E328 |
:108BA000050A80E20710A0E1781700EB1100A0E3AE |
:108BB0000510A0E10A20A0E1451900EB1100A0E397 |
:108BC0000710A0E1971800EB70309FE5000093E5D7 |
:108BD0007BE5FFEB68309FE5000083E564309FE5AF |
:108BE000000093E57D0F80E275E5FFEB58309FE5CF |
:108BF000000083E554309FE50050C3E550309FE509 |
:108C0000005083E54C309FE50050C3E548309FE5B8 |
:108C10000070C3E544209FE50050C2E50C30A0E39E |
:108C20000130C2E50490C2E50A30A0E30230C2E59B |
:108C30000350C2E528009FE5370300EBF0AF1BE9C6 |
:108C400030020004A014000434020004A013000445 |
:108C500023050004280500042C0500042C02000450 |
:108C6000181300041CD001000DC0A0E1F0D92DE9BB |
:108C700004B04CE21703A0E3050A80E21010A0E361 |
:108C8000871700EB000050E30500001A1703A0E36C |
:108C9000050A80E24010A0E3811700EB000050E3DA |
:108CA000F0A91B091703A0E3050A80E21010A0E356 |
:108CB000811700EB1703A0E3050A80E24010A0E350 |
:108CC0007D1700EB8C329FE5002093E51733A0E37E |
:108CD000053A83E2030052E17C529F150060A01325 |
:108CE0002F00001A350000EA68429FE5000094E575 |
:108CF0004510A0E3561700EB010050E3FAFFFF0A0E |
:108D00001703A0E3050A80E2BA1700EBFF4000E278 |
:108D10000030D5E5040053E303F19F97190000EA02 |
:108D2000348D0000408D0000488D0000508D000003 |
:108D3000688D00001B0054E31200001A050000EAD1 |
:108D40001B0054E3020000EA550054E3000000EA6F |
:108D5000AA0054E30A00001A0030D5E5013083E28E |
:108D60000030C5E5070000EA000054E30400001AE3 |
:108D70001733A0E3053A83E2D8219FE5003082E56E |
:108D800040FEFFEB0060C5E5C8319FE5000093E5BC |
:108D90001733A0E3053A83E2030050E10410A01169 |
:108DA0009117001B1703A0E3050A80E24410A0E31B |
:108DB000271700EB010050E3F0A91B09C9FFFFEAE8 |
:108DC00098619FE598819FE598519FE5570000EADB |
:108DD0001703A0E3050A80E2861700EBFF4000E2DC |
:108DE00084119FE50020D1E5000052E323005403E5 |
:108DF0000500001A013082E20030C1E5FF3002E2D6 |
:108E00000340C8E7B040C5E1480000EA58119FE5BB |
:108E10000020D1E5950052E30020A08348319F85D2 |
:108E20000020C3850020C6854000008A0D0054E361 |
:108E30000700000A013082E20030C1E5FF3002E2A3 |
:108E40000340C8E7B030D5E1043083E0B030C5E17D |
:108E5000360000EA08E19FE50C319FE50070D3E59C |
:108E6000FF4007E20E0084E0022050E5B030D5E17B |
:108E7000033062E0B030C5E1012050E5B030D5E10B |
:108E8000033062E0B030C5E1B030D5E1033AA0E193 |
:108E9000233AA0E1B030C5E1D0109FE5B020D5E184 |
:108EA0002233A0E13D3083E20030C1E5C0C09FE540 |
:108EB0003F2002E23D2082E20020CCE5022050E586 |
:108EC0000030D1E5020053E11300001A012050E503 |
:108ED0000030DCE5020053E10F00001A0130A0E38E |
:108EE0000030C6E5032087E088309FE50020C3E519 |
:108EF0000D30A0E30430CEE70230DEE5520053E34C |
:108F00000700001A6BFAFFEB571700EB68309FE57C |
:108F10000FE0A0E103F0A0E1010000EA0030A0E3CF |
:108F20000030C6E50020A0E33C309FE50020C3E50B |
:108F30001703A0E3050A80E24410A0E3C41600EB87 |
:108F4000010050E3F0A91B090030D6E5000053E30F |
:108F5000F0A91B199DFFFFEA28020004390500044F |
:108F600023050004581200043405000436050004EB |
:108F70003705000438050004240500043C02000401 |
:108F80000DC0A0E100D82DE904B04CE27C309FE593 |
:108F90000030D3E5000053E300A81B191703A0E33A |
:108FA000050A80E24510A0E3A91600EB000050E39B |
:108FB00000A81B1958309FE5B000D3E154309FE55D |
:108FC0000030D3E7FF1003E20D0051E30100000A77 |
:108FD000960050E30500001A34309FE50020A0E31E |
:108FE000B020C3E10120A0E320309FE50020C3E5CD |
:108FF0001703A0E3050A80E2FB1600EB10209FE5B3 |
:10900000B030D2E1013083E2B030C2E100A81BE908 |
:109010002C02000432050004001400040DC0A0E17D |
:1090200000D82DE904B04CE200C0A0E30C10A0E190 |
:109030000008A0E120085CE10D00002AC0209FE5A7 |
:109040002008A0E10C38A0E12338A0E10330D2E7EA |
:10905000FF3003E2013083E00338A0E14318A0E1D0 |
:1090600001308CE20338A0E143C8A0E1230850E1BD |
:10907000F3FFFF8A011AA0E1211AA0E180009FE519 |
:109080000C20A0E101308CE20338A0E143C8A0E14C |
:109090000228A0E12228A0E10138A0E12318A0E1E4 |
:1090A000233BA0E13D3083E20230C0E701208CE2A7 |
:1090B0000C38A0E12338A0E13F1001E23D1081E22D |
:1090C0000310C0E70228A0E12228A0E10D30A0E3B0 |
:1090D0000230C0E70010A0E328309FE50010C3E590 |
:1090E00024309FE50120A0E3B020C3E10110D0E7C8 |
:1090F000FF1001E21703A0E3050A80E2BA1600EBB5 |
:1091000000A81BE9001400042C020004320500042E |
:109110000DC0A0E10C002DE9F0DD2DE90CB04CE212 |
:10912000FF0000E2FF1001E20440DBE500C0A0E325 |
:109130000C50A0E10C80A0E10CE0A0E100229FE532 |
:1091400001C08CE22330A0E30530C2E701308CE29D |
:10915000611081E20C10C2E701C083E20300C2E7A4 |
:1091600008708BE2050054E10500000A008097E5D5 |
:10917000043087E2047083E200E093E5013044E2CA |
:10918000FF4003E200005EE36900000AB0A19FE532 |
:109190000520A0E1013085E2FF5003E20210D8E78C |
:1091A00001E05EE20030A0130130A003000054E3B0 |
:1091B0000030A00301300312000053E30600000A50 |
:1091C000008097E5043087E2047083E200E093E5D5 |
:1091D0000050A0E3013044E2FF4003E200005EE300 |
:1091E0000060A0031200000A0520A0E1013085E222 |
:1091F000FF5003E20260D8E701E05EE20030A01316 |
:109200000130A003000054E30030A003013003123A |
:10921000000053E30600000A008097E5043087E26F |
:10922000047083E200E093E50050A0E3013044E2E3 |
:10923000FF4003E200005EE30000A0031200000A0A |
:109240000520A0E1013085E2FF5003E20200D8E7EB |
:1092500001E05EE20030A0130130A003000054E3FF |
:109260000030A00301300312000053E30600000A9F |
:10927000008097E5043087E2047083E200E093E524 |
:109280000050A0E3013044E2FF4003E20C20A0E1E3 |
:1092900001308CE20338A0E143C8A0E10228A0E13C |
:1092A0002228A0E12131A0E13D3083E20230CAE76B |
:1092B0000C20A0E101308CE20338A0E143C8A0E11A |
:1092C0000228A0E12228A0E1031001E22632A0E159 |
:1092D000013283E13D3083E20230CAE70C20A0E195 |
:1092E00001308CE20338A0E143C8A0E10228A0E1EC |
:1092F0002228A0E10F1006E22033A0E1013183E132 |
:109300003D3083E20230CAE70C20A0E101308CE25C |
:109310000338A0E143C8A0E10228A0E12228A0E18F |
:109320003F3000E23D3083E20230CAE700005EE3F6 |
:1093300096FFFF1A0C08A0E12008A0E136FFFFEB22 |
:10934000F0AD1BE900140004F0412DE90370A0E327 |
:109350000760A0E114319FE50030D3E5063043E219 |
:10936000FF5013E23A00000A04819FE50620A0E1C5 |
:10937000013086E2FF6003E20240D8E73D4044E26C |
:10938000FF4004E20620A0E1013086E2FF6003E234 |
:109390000200D8E73D0040E2FF1000E20620A0E115 |
:1093A000013086E2FF6003E20220D8E73D2042E27E |
:1093B000FFC002E206E0A0E1013086E2FF6003E2C6 |
:1093C0000E30D8E73D3043E2FF3003E22112A0E146 |
:1093D000041181E1FF1001E20F0000E22CC1A0E1C5 |
:1093E00000028CE1032002E202C383E1013045E286 |
:1093F000FF5003E2FF0055E31500000A0730A0E12B |
:10940000012087E2FF7002E20310C8E7013045E265 |
:10941000FF5003E2FF0055E30D00000A0730A0E112 |
:10942000012087E2FF7002E20300C8E7013045E255 |
:10943000FF5003E2FF0055E30500000A0720A0E10A |
:10944000013087E2FF7003E202C0C8E7000055E385 |
:10945000C5FFFF1A1C209FE51C309FE5002083E517 |
:10946000032047E214309FE50020C3E5F081BDE80A |
:1094700024050004581200045B12000428050004AF |
:109480002C0500040DC0A0E110D82DE904B04CE279 |
:10949000D0339FE50030D3E5000053E310A81B094B |
:1094A000C4339FE5002093E51733A0E3053A83E238 |
:1094B000030052E110A81B190030E0E3AC239FE544 |
:1094C0000030C2E59FFFFFEBA4239FE50130D2E50A |
:1094D000630053E38100001A0230D2E5653043E2B5 |
:1094E000120053E303F19F977C0000EA38950000D7 |
:1094F000E0960000E0960000E0960000E096000094 |
:10950000E0960000E0960000E0960000E096000083 |
:10951000E096000044950000E0960000E096000010 |
:10952000E096000078950000E0960000CC950000E1 |
:10953000E0960000609600000120A0E334339FE530 |
:10954000650000EA30339FE5003093E50030D3E555 |
:10955000FF3003E2033183E08330A0E11C239FE569 |
:10956000003082E5000053E30120A01310339F1563 |
:109570005900001A590000EAFC329FE5004093E5CB |
:1095800000339FE54B2FA0E3B020C3E10C30D4E5BE |
:109590000D20D4E5023483E10E20D4E5023883E1C6 |
:1095A0000F20D4E5023C83E1010053E34B00001A95 |
:1095B000880400EB0400A0E1A60400EBC90400EB62 |
:1095C000C4329FE5000083E5440000EAA8329FE52D |
:1095D000003093E50030D3E5010053E30A00000AB0 |
:1095E000020000CA000053E30300000A3B0000EA47 |
:1095F000020053E30A00000A380000EA1A0200EBF6 |
:109600001733A0E3063A83E2110000EA7C329FE5BB |
:109610000A30D3E5014013E23000001A59FCFFEB99 |
:10962000040000EA64329FE50A30D3E5014013E20A |
:109630002A00001A13FCFFEB54329FE52F40C3E5CC |
:109640003040C3E53140C3E53240C3E51733A0E302 |
:10965000013983E210229FE5003082E51F0000EA15 |
:1096600014329FE5004093E50C30D4E50D20D4E59D |
:10967000023483E10E20D4E5023883E10F20D4E5E3 |
:10968000023C93E10400001A520400EB950400EB45 |
:10969000F4319FE5000083E50D0000EA0C30D4E5CD |
:1096A0000D20D4E5023483E10E20D4E5023883E1B5 |
:1096B0000F20D4E5023C83E1010053E30400001ACB |
:1096C0000400A0E1630400EBB8319FE57D2FA0E327 |
:1096D000B020C3E10120A0E3B8319FE50020C3E53D |
:1096E0008C319FE50230D3E5FF3003E2613043E285 |
:1096F000150053E303F19F97520000EA54970000CE |
:109700007C97000048980000A0970000489800004F |
:1097100048980000D4970000E097000048980000A7 |
:1097200048980000489800001C98000048980000E5 |
:1097300048980000489800004898000048980000A9 |
:109740004898000048980000489800004898000099 |
:109750003C98000040219FE51C319FE5003093E5D7 |
:109760000030D3E50030C2E50030D2E51F0053E3FE |
:109770001F30A0830030C285320000EA1C419FE503 |
:10978000F4309FE5001093E50400A0E10B20A0E376 |
:109790006C3A00EB0920D4E504319FE5280000EA8B |
:1097A000D4309FE5003093E50030D3E5FF3003E28D |
:1097B000033183E08330A0E1E8209FE5003082E5BB |
:1097C000000053E30120A013DC309F151C00001A99 |
:1097D0001C0000EA0120A0E3D0309FE5180000EA59 |
:1097E000CC109FE590309FE5002093E50030D1E557 |
:1097F0000020D2E5023083E10030C1E50030D1E540 |
:10980000000053E30020A013A8309F150020C315CB |
:109810000120A0E3A0309FE5090000EA58309FE551 |
:10982000003093E50020D3E590309FE50020C3E5AC |
:109830000120A0E388309FE5010000EA0120A0E3B9 |
:1098400080309FE50020C3E50020A0E328309FE59D |
:10985000002083E570309FE50020C3E504309FE5DC |
:109860000020C3E510A81BE923050004280200041A |
:109870002D020004581200042005000428050004ED |
:10988000340200041F0500044008000464050004BD |
:10989000A8080004B8040004210500042402000400 |
:1098A000A813000431050004300200041D05000463 |
:1098B0001A050004F6030004220500041B05000439 |
:1098C000F50300041C050004190500042C05000420 |
:1098D0000DC0A0E130D82DE904B04CE2FF5000E209 |
:1098E0000A0055E30D00A003F8FFFF0B1743A0E3A8 |
:1098F000050A84E24510A0E3551400EB000050E394 |
:10990000FAFFFF1A1703A0E3050A80E20510A0E1A1 |
:10991000B51400EB0000A0E330A81BE90DC0A0E1E6 |
:1099200070D82DE904B04CE20040A0E1000050E303 |
:1099300070A81B090030D0E50300A0E1000053E34C |
:1099400070A81B091733A0E3053A83E234209FE592 |
:10995000002092E5030052E170A81B1924609FE5E6 |
:109960001753A0E3055A85E2D8FFFFEB0100F4E5A9 |
:10997000000050E370A81B09003096E5050053E194 |
:1099800070A81B19F7FFFFEA280200040DC0A0E130 |
:1099900030D82DE904B04CE218D04DE250349FE5A8 |
:1099A0000030D3E5000053E330A81B0944349FE5A1 |
:1099B000002093E51733A0E3053A83E2030052E168 |
:1099C00030A81B1930449FE50020D4E5FF0052E386 |
:1099D0000D00000A0130A0E300308DE51C349FE546 |
:1099E000023283E004308DE51030A0E308308DE5CD |
:1099F0004100A0E30210A0E30120A0E10430A0E1B7 |
:109A0000C2FDFFEB0030E0E30030C4E5F0439FE52A |
:109A10000030D4E5000053E30B00000AD0339FE58B |
:109A20000030D3E5000053E30700000A0120A0E363 |
:109A300000208DE54200A0E30210A0E30430A0E185 |
:109A4000B2FDFFEB0030A0E30030C4E5B4339FE586 |
:109A5000003093E5000053E30400000AA8339FE5BB |
:109A6000000093E5DCE1FFEBFF0010E30300001AC8 |
:109A700098339FE50030D3E5000053E31200000A5D |
:109A80006C339FE50030D3E5000053E30E00000A7D |
:109A90004230A0E300308DE54400A0E30210A0E3D3 |
:109AA0000120A0E368339FE598FDFFEB54339FE569 |
:109AB000000093E5C2E1FFEB4C339FE5000083E536 |
:109AC0000020A0E344339FE50020C3E544439FE525 |
:109AD0000030D4E5000053E30C00000A10339FE58A |
:109AE0000030D3E5000053E30800000A0B30A0E388 |
:109AF00000308DE54700A0E30210A0E30120A0E3C1 |
:109B000014339FE581FDFFEB0030A0E30030C4E596 |
:109B100008339FE50030D3E5000053E31D00000A41 |
:109B2000CC329FE50030D3E5000053E31900000A72 |
:109B300080DCFFEB0130A0E300308DE5E0429FE5E3 |
:109B40000030D4E5033183E0D8229FE5032182E091 |
:109B500004208DE51430A0E308308DE54800A0E333 |
:109B60000210A0E30120A0E10430A0E167FDFFEBBB |
:109B70000030D4E5013083E20030C4E50030D4E5A4 |
:109B8000030053E30030A0830030C4850020A0E32D |
:109B900088329FE50020C3E58C429FE50030D4E584 |
:109BA000000053E31400000A44329FE50030D3E57F |
:109BB000000053E31000000A5EDCFFEB0120A0E38D |
:109BC00000208DE564329FE504308DE508208DE5A9 |
:109BD00050329FE50C308DE55030A0E310308DE51C |
:109BE0004C00A0E30210A0E30320A0E340329FE575 |
:109BF00046FDFFEB0030A0E30030C4E534429FE5B2 |
:109C00000030D4E5000053E30C00000AE0319FE58A |
:109C10000030D3E5000053E30800000A0A30A0E357 |
:109C200000308DE55600A0E30210A0E30120A0E380 |
:109C300004329FE535FDFFEB0030A0E30030C4E5C2 |
:109C4000F8319FE5003093E5000053E30400000A7B |
:109C5000EC319FE5000093E55FE1FFEBFF0010E3CF |
:109C60000300001ADC319FE50030D3E5000053E328 |
:109C70001500000A78319FE50030D3E5000053E37A |
:109C80001100000AC0319FE5C0219FE50020D2E508 |
:109C90004D20C3E55620A0E300208DE54F00A0E352 |
:109CA0000210A0E30120A0E318FDFFEB8C319FE53B |
:109CB000000093E542E1FFEB84319FE5000083E57E |
:109CC0000020A0E37C319FE50020C3E580419FE5B3 |
:109CD0000030D4E5000053E30C00000A10319FE58A |
:109CE0000030D3E5000053E30800000A1930A0E378 |
:109CF00000308DE54500A0E30210A0E30120A0E3C1 |
:109D000050319FE501FDFFEB0030A0E30030C4E5DA |
:109D100044519FE50030D5E5000053E32100000ADF |
:109D2000CC309FE50030D3E5000053E31D00000A6E |
:109D300028019FE51130D0E5030053E31900009A94 |
:109D40001C119FE5700400EB14319FE50040A0E377 |
:109D5000012084E30C20C3E50D40C3E50E40C3E5BC |
:109D60000F40C3E50010E0E31010C3E51110C3E598 |
:109D70001220C3E53C10A0E31310C3E51440C3E573 |
:109D80001540C3E51640C3E51740C3E51840C3E5D9 |
:109D90002110A0E300108DE57300A0E30210A0E302 |
:109DA000DAFCFFEB0040C5E5B8409FE50030D4E5A4 |
:109DB000000053E330A81B0934309FE50030D3E5A1 |
:109DC000000053E330A81B099E0200EB14304BE265 |
:109DD000010063E50120A0E300208DE55700A0E32A |
:109DE0000210A0E3C9FCFFEB0030A0E30030C4E5A3 |
:109DF00030A81BE92C0200042802000424020004FD |
:109E000054AF01003105000430020004A014000426 |
:109E10001D050004B81300041A050004A81300046B |
:109E20001B05000422050004000000041C050004BA |
:109E300050000004F5030004190500041813000481 |
:109E400034020004A01300041F05000400120004E3 |
:109E5000C00300042005000468080004180500047D |
:109E6000B8040004F0120004210500040DC0A0E1B4 |
:109E7000F0D92DE904B04CE224D04DE23C019FE53D |
:109E8000A5FEFFEB2000A0E30110A0E3E00E00EB35 |
:109E90000207A0E30110A0E3DD0E00EB44004BE25B |
:109EA000801100EB0160A0E344404BE20050A0E3CE |
:109EB0000150C4E50430A0E344304BE50270A0E358 |
:109EC0000250C4E50360C4E50580A0E1B450C4E1DC |
:109ED0001603A0E30B0A80E20410A0E11F1100EBBF |
:109EE0000208A0E30610A0E1C90E00EB0400A0E107 |
:109EF0006C1100EB0160C4E544604BE50250C4E521 |
:109F0000B470C4E11603A0E3090A80E20410A0E1E2 |
:109F1000121100EB3C404BE20400A0E18A1200EB7E |
:109F20006030A0E3BC334BE10830E0E3BA334BE1EF |
:109F3000B8534BE1E13CA0E334300BE5B0534BE1C7 |
:109F4000033CA0E3BE324BE11030A0E3BC324BE156 |
:109F500028700BE524700BE51703A0E3060A80E2E6 |
:109F6000E31100EB1703A0E3060A80E20410A0E16E |
:109F7000FF1100EB1703A0E3060A80E25010A0E3F4 |
:109F80000620A0E1881200EB1703A0E3060A80E296 |
:109F90000610A0E17D1200EB1200A0E30510A0E185 |
:109FA0000920A0E34A1400EB1200A0E30610A0E190 |
:109FB0009C1300EB08009FE557FEFFEBF0A91BE99F |
:109FC00030D0010060CB01000DC0A0E1F0D82DE938 |
:109FD00004B04CE208D04DE2C4009FE54EFEFFEB1A |
:109FE0001200A0E30010A0E38E1300EB1703A0E320 |
:109FF000060A80E20010A0E3641200EB1703A0E35E |
:10A00000060A80E2BA1100EB2000A0E30010A0E3F2 |
:10A010007F0E00EB0207A0E30110A0E37C0E00EB33 |
:10A0200024004BE21F1100EB0170A0E324404BE23F |
:10A030000050A0E30150C4E50430A0E324304BE518 |
:10A040000250C4E50350C4E50560A0E1B450C4E18A |
:10A050001603A0E30B0A80E20410A0E1BF1000EB9E |
:10A060000208A0E30710A0E1690E00EB0400A0E1E4 |
:10A070000C1100EB0150C4E524704BE50250C4E51F |
:10A080000350C4E5B450C4E11603A0E3090A80E21A |
:10A090000410A0E1B11000EB08009FE51EFEFFEBED |
:10A0A000F0A81BE944D0010060CB01000DC0A0E185 |
:10A0B00030D82DE904B04CE21703A0E3060A80E291 |
:10A0C0001010A0E3761200EB000050E30500001A28 |
:10A0D0001703A0E3060A80E24010A0E3701200EB31 |
:10A0E000000050E330A81B091703A0E3060A80E232 |
:10A0F0001010A0E3701200EB1703A0E3060A80E241 |
:10A100004010A0E36C1200EB88309FE5002093E53F |
:10A110001733A0E3063A83E2030052E11753A0038A |
:10A120000C00000A110000EA1743A0E3050A84E2CC |
:10A130004510A0E3461200EB010050E3FAFFFF0ACE |
:10A14000060A85E2AB1200EB0010A0E1FF1001E26D |
:10A15000050A85E2A41200EB060A85E24410A0E39A |
:10A160003B1200EB010050E330A81B09EDFFFFEAB2 |
:10A170001743A0E3010000EA060A84E29D1200EB07 |
:10A18000060A84E24410A0E3311200EB010050E320 |
:10A1900030A81B09F7FFFFEA280200040030A0E303 |
:10A1A0000030C0E5283080E52C3080E53030C0E557 |
:10A1B0003A30C0E50100A0E30EF0A0E10DC0A0E13F |
:10A1C00070D82DE904B04CE20050A0E10140A0E1BC |
:10A1D0000060A0E3060051E10600A00170A81B0981 |
:10A1E0000100A0E1ECFFFFEB0500A0E16110A0E39E |
:10A1F00098EDFFEB0030A0E12C0084E5000050E377 |
:10A200000500000A0160A0E3286084E510009FE5D6 |
:10A21000F610A0E30620A0E112EFFFEB0600A0E19C |
:10A2200070A81BE954B101000DC0A0E170D82DE960 |
:10A2300004B04CE20040A0E10160A0E3000050E364 |
:10A2400070A81B09283090E5000053E32000000AA5 |
:10A250000050A0E3283094E5020053E30900000A0F |
:10A260000200008A010053E30B00000A140000EA18 |
:10A27000030053E31200001A0400A0E14E0000EBBB |
:10A280000230A0E3020000EA0400A0E1250000EB98 |
:10A290000130A0E3283084E50A0000EA2C3094E580 |
:10A2A000000053E30600000A2C009FE51510A0E310 |
:10A2B0000120A0E3EBEEFFEB2C0094E510EEFFEBAA |
:10A2C0000160A0E3285084E5283094E5000053E3C2 |
:10A2D000DFFFFF1A0600A0E170A81BE94CB20100E5 |
:10A2E0000DC0A0E110D82DE904B04CE20040A0E37D |
:10A2F0002CC091E504005CE10700000A0230A0E3F5 |
:10A30000283081E50140A0E314009FE54610A0E35A |
:10A310000420A0E10C30A0E1D2EEFFEB0400A0E1AC |
:10A3200010A81BE964B201000DC0A0E110D82DE90E |
:10A3300004B04CE20040A0E3283090E5020053E373 |
:10A340000800001A2C3090E5040053E10500000AD3 |
:10A350000140A0E3284080E510009FE50E10A0E337 |
:10A360000420A0E1BFEEFFEB0400A0E110A81BE970 |
:10A37000ACB201000DC0A0E100D82DE904B04CE260 |
:10A380000030A0E32CC090E503005CE10700000A68 |
:10A390000330A0E3283080E518009FE56810A0E3B3 |
:10A3A0000120A0E30C30A0E1AEEEFFEB0130A0E312 |
:10A3B0000300A0E100A81BE9BCB201000DC0A0E1B0 |
:10A3C00000D82DE904B04CE20030A0E32CC090E5A9 |
:10A3D00003005CE10700000A0230A0E3283080E5BA |
:10A3E00018009FE52110A0E30120A0E30C30A0E1BC |
:10A3F0009CEEFFEB0130A0E30300A0E100A81BE905 |
:10A4000028B301000DC0A0E1F0D92DE904B04CE261 |
:10A4100034D04DE20060A0E10170A0E10000A0E3B3 |
:10A42000000056E100005111F0A91B090C30D6E5DF |
:10A430000D20D6E5023483E10E20D6E5023883E113 |
:10A440000F20D6E5023C93E1F0A91B0998819FE516 |
:10A450000C30D8E50D20D8E5023483E10E20D8E594 |
:10A46000023883E10F20D8E5023C93E1F0A91B09F3 |
:10A47000283091E5030053E3F0A91B192C3091E536 |
:10A48000000053E3F0A91B090020D6E50130D6E512 |
:10A49000032482E10230D6E5032882E10330D6E5C9 |
:10A4A000032C82E144519FE59502C1E0C23FA0E147 |
:10A4B00041EB63E08E326EE0033363E083318EE084 |
:10A4C000033183E083C342E000005CE300C06CB270 |
:10A4D00054404BE20400A0E114119FE50E20A0E1DE |
:10A4E0000C30A0E1023700EB0400A0E12C1097E54E |
:10A4F0008FEEFFEB0420D6E50530D6E5032482E19C |
:10A500000630D6E5032882E10730D6E5032C82E148 |
:10A510009532C1E0C23FA0E141EB63E08E326EE0D4 |
:10A52000033363E083318EE0033183E083C342E091 |
:10A5300000005CE300C06CB20400A0E1B4109FE531 |
:10A540000E20A0E10C30A0E1E93600EB0400A0E110 |
:10A550002C1097E576EEFFEB0810D6E50930D6E52E |
:10A56000031481E10A30D6E5031881E10B30D6E50A |
:10A57000031C81E10830D8E50920D8E5023483E1E5 |
:10A580000A20D8E5023883E10B20D8E5023C83E1BC |
:10A59000011063E0000051E30010A0B358309FE5C4 |
:10A5A0009301C2E0C13FA0E142E363E08E326EE07E |
:10A5B00003318EE083C141E000005CE300C06CB277 |
:10A5C00054404BE20400A0E130109FE50E20A0E1D2 |
:10A5D0000C30A0E1C63600EB0400A0E12C1097E59A |
:10A5E00053EEFFEB0100A0E3F0A91BE950050004C6 |
:10A5F0006BCA5F6B58D0010068D00100D34D621068 |
:10A6000074D001000DC0A0E130D82DE904B04CE2B7 |
:10A610000050A0E10140A0E1283091E5030053E3A0 |
:10A620002200000A283094E5010053E30B00000AE1 |
:10A630000200003A020053E30F00000A150000EA8E |
:10A640000400A0E1D4FEFFEB74009FE50410A0E13C |
:10A65000D9FEFFEBFF0010E20130A013040000EA76 |
:10A6600060009FE50410A0E11CFFFFEBFF0010E27B |
:10A670000230A0130500001A070000EA0400A0E160 |
:10A680003BFFFFEBFF0010E20300000A0330A0E3F2 |
:10A69000283084E5000000EA0100A0E3010050E357 |
:10A6A00030A81B19283094E5030053E3DCFFFF1AA0 |
:10A6B0000500A0E10410A0E151FFFFEBFF0000E264 |
:10A6C00030A81BE980D001008CD00100FF2002E2FD |
:10A6D000000050E30EF0A001001080E50030A0E380 |
:10A6E0000430C0E5081080E50C1080E50520C0E5C9 |
:10A6F0000100A0E30EF0A0E1FF1001E20420D0E58C |
:10A700000530D0E5030052E10000A0230EF0A021A7 |
:10A710000C3090E50110C3E40520D0E5001090E571 |
:10A72000012082E0020053E10130A0210C3080E5DD |
:10A730000430D0E5013083E20430C0E50100A0E33D |
:10A740000EF0A0E1000051E3000050130000A00350 |
:10A750000EF0A0010430D0E5000053E30300A00197 |
:10A760000EF0A001082090E50130D2E40030C1E5F0 |
:10A770000530D0E5001090E5013083E0030052E1A0 |
:10A780000120A021082080E50430D0E5013043E21B |
:10A790000430C0E50100A0E30EF0A0E10DC0A0E18F |
:10A7A00000D82DE904B04CE20430D0E5000053E3BA |
:10A7B000FEFFFF0AE2FFFFEBFF0000E200A81BE93B |
:10A7C0000DC0A0E100D82DE904B04CE2010000EB7F |
:10A7D000FF0000E200A81BE90020A0E354309FE541 |
:10A7E0000020C3E550309FE50020C3E54C309FE5D5 |
:10A7F0003920C3E53820C3E50210A0E140C09FE541 |
:10A800000200A0E1813281E00C3083E00C2083E281 |
:10A810000C00C3E50100C2E50200C2E50300C2E589 |
:10A82000013081E2FF1003E2130051E30100A08335 |
:10A830000EF0A081F2FFFFEA3C0500043D05000494 |
:10A8400000120004A814000404309FE50000D3E5C2 |
:10A850000EF0A0E13D0500040DC0A0E130D82DE9C7 |
:10A8600004B04CE20010A0E16C509FE50000D5E57B |
:10A87000130050E30000A08330A81B89FF0000E212 |
:10A88000800280E054409FE5040080E02120A0E3A6 |
:10A890002C3600EB0000D5E5FF3000E2833283E088 |
:10A8A000043083E00C1083E20020A0E301C082E3C7 |
:10A8B0000CC0C3E50120C1E50220C1E50320C1E5CC |
:10A8C000010080E20000C5E50020D5E510309FE5DD |
:10A8D0003920C3E50C00A0E130A81BE93D050004C8 |
:10A8E000A8140004001200040020A0E320309FE51B |
:10A8F0000020C3E51C309FE53820C3E518309FE5F4 |
:10A900000030D3E5020053E110009FE50200A001F2 |
:10A910000EF0A0E13C050004001200043D05000417 |
:10A92000A814000434109FE50030D1E5012083E233 |
:10A930002C309FE50030D3E5030052E10020C1B583 |
:10A940000030D1B51C209FB53830C2B5833283B0FA |
:10A9500014209FB5020083B00000A0A30EF0A0E178 |
:10A960003C0500043D05000400120004A814000486 |
:10A970000DC0A0E130D82DE904B04CE290349FE541 |
:10A980000830D3E5630053E34300008A84349FE535 |
:10A990000030D3E5000053E37C349F150020A01362 |
:10A9A0000110821370349F050020A003031082035E |
:10A9B0002610C3E52720C3E52820C3E52920C3E5E9 |
:10A9C00054349FE50020A0E30020C3E50120C3E547 |
:10A9D0000220C3E53D1082E30310C3E50420C3E574 |
:10A9E0000520C3E5020052E169C0A00302C0A01126 |
:10A9F0000CC0E0E106C0C3E542E082E307E0C3E546 |
:10AA00000820C3E50920C3E5020052E14B00A00382 |
:10AA10000200A0110000E0E10A00C3E53E1082E35D |
:10AA20000B10C3E50C20C3E50D20C3E50EC0C3E544 |
:10AA30000FE0C3E51020C3E51120C3E51200C3E514 |
:10AA400013E0C3E51420C3E51520C3E51620C3E5D4 |
:10AA50001720C3E50610A0E31810C3E50810A0E313 |
:10AA60001910C3E51A20C3E51B20C3E51C20C3E56C |
:10AA70001D20C3E51E20C3E51F20C3E52020C3E53C |
:10AA80002120C3E57D1082E32210C3E52320C3E526 |
:10AA90002420C3E52520C3E5BC0000EA74339FE50C |
:10AAA0000030D3E5000053E30D00001A6C339FE53E |
:10AAB0000930D3E5310053E35C339F950020A09328 |
:10AAC000021082930900009A50339FE50930D3E5C4 |
:10AAD000B30053E340339F850020A083031082839B |
:10AAE0000200008A30339FE50020A0E3011082E3DA |
:10AAF0002610C3E52720C3E52820C3E52920C3E5A8 |
:10AB000014539FE514339FE5DA40D3E10400A0E13C |
:10AB1000C72E00EB000054E34314A0B3021581B22A |
:10AB20008F2D00BB1F2F00EBB12F8FE20C0092E89E |
:10AB30004C3100EB2D3300EB0000C5E52034A0E1E3 |
:10AB40000130C5E52038A0E10230C5E5203CA0E198 |
:10AB50000330C5E5C0529FE5C0329FE5DB40D3E13D |
:10AB60000400A0E1B22E00EB000054E34314A0B3B4 |
:10AB7000021581B27A2D00BB0A2F00EB9E2F8FE2C7 |
:10AB80000C0092E8373100EB183300EB0400C5E508 |
:10AB90002034A0E10530C5E52038A0E10630C5E548 |
:10ABA000203CA0E10730C5E56C529FE56C329FE583 |
:10ABB000DC40D3E10400A0E19D2E00EB000054E353 |
:10ABC0004314A0B3021581B2652D00BBF52E00EB36 |
:10ABD0008B2F8FE20C0092E81F3000EB033300EB69 |
:10ABE0000800C5E52034A0E10930C5E52038A0E122 |
:10ABF0000A30C5E5203CA0E10B30C5E518529FE5C1 |
:10AC000018329FE5DD40D3E10400A0E1882E00EB7F |
:10AC1000000054E34314A0B3021581B2502D00BBD1 |
:10AC2000E02E00EB1D2E8FE20C0092E80D3100EBC0 |
:10AC3000EE3200EB0C00C5E52034A0E10D30C5E597 |
:10AC40002038A0E10E30C5E5203CA0E10F30C5E57D |
:10AC5000C4519FE5C4319FE5DD40D3E10400A0E18C |
:10AC6000732E00EB000054E34314A0B3021581B22D |
:10AC70003B2D00BB1000C5E52034A0E11130C5E537 |
:10AC80002038A0E11230C5E5203CA0E11330C5E535 |
:10AC900084519FE584319FE5DE40D3E10400A0E1CB |
:10ACA000632E00EB000054E34314A0B3021581B2FD |
:10ACB0002B2D00BB1400C5E52034A0E11530C5E5FF |
:10ACC0002038A0E11630C5E5203CA0E11730C5E5ED |
:10ACD00044219FE544119FE50F30D1E51830C2E5CE |
:10ACE0001030D1E51930C2E50250A0E1D241D1E1E6 |
:10ACF0000400A0E14E2E00EB000054E34314A0B387 |
:10AD0000021581B2162D00BBA62E00EBF8208FE2B3 |
:10AD10000C0092E8D33000EBB43200EB1A00C5E52A |
:10AD20002034A0E11B30C5E52038A0E11C30C5E58A |
:10AD3000203CA0E11D30C5E5DC109FE5DC009FE56F |
:10AD40001130D0E5033183E0033183E00331A0E12A |
:10AD50001E30C1E52324A0E11F20C1E52328A0E186 |
:10AD60002020C1E5233CA0E12130C1E51530D0E52C |
:10AD70008330A0E12230C1E52324A0E12320C1E5F6 |
:10AD80000020A0E32420C1E5233CA0E12530C1E55B |
:10AD900084109FE52630D1E52720D1E5023483E1F8 |
:10ADA0002820D1E5023883E12920D1E5023C83E166 |
:10ADB0006C209FE5002092E5020053E164309F156E |
:10ADC0006420A013B020C3114C109FE52630D1E5BC |
:10ADD0002720D1E5023483E12820D1E5023883E140 |
:10ADE0002920D1E5023C83E134209FE5003082E553 |
:10ADF00030A81BE90000A940000000003333F33FF6 |
:10AE0000333333330000703F00000000000059402E |
:10AE100000000000A8080004C50300046017000437 |
:10AE200028080004680500044008000474109FE529 |
:10AE30002F30D1E53020D1E5023483E13120D1E556 |
:10AE4000023883E13220D1E5023C93E11300000A8D |
:10AE50001230D1E5030053E31000001A1030D1E5A1 |
:10AE6000010013E30D00000A1130D1E538209FE501 |
:10AE70001820D2E5020053E10300002A2C309FE5A0 |
:10AE80000030D3E5000053E30400000A0120A0E3F2 |
:10AE900018309FE50020C3E50200A0E10EF0A0E11C |
:10AEA0000000A0E30EF0A0E1B80400046017000465 |
:10AEB0006C05000448109FE5D030D1E1000053E359 |
:10AEC000003063B23C209FE5D921D2E1020053E17A |
:10AED000040000CAD130D1E1000053E3003063B276 |
:10AEE000020053E1040000DA18309FE5D931D3E1C4 |
:10AEF000000053E30100A0C30EF0A0C10000A0E3D6 |
:10AF00000EF0A0E1A80800046017000401C0A0E151 |
:10AF10000010A0E301005CE1010050110100A0015C |
:10AF20000EF0A0010C30D0E50D20D0E5023483E115 |
:10AF30000E20D0E5023883E10F20D0E5023C93E1FA |
:10AF40003000000A0030D0E50120D0E5023483E172 |
:10AF50000220D0E5023883E10320D0E5023C83E102 |
:10AF60000010A0E30030CCE52324A0E10120CCE5D3 |
:10AF70002328A0E10220CCE5233CA0E10330CCE56E |
:10AF80000430D0E50520D0E5023483E10620D0E589 |
:10AF9000023883E10720D0E5023C83E10430CCE5B0 |
:10AFA0002324A0E10520CCE52328A0E10620CCE560 |
:10AFB000233CA0E10730CCE50830D0E50920D0E5FE |
:10AFC000023483E10A20D0E5023883E10B20D0E58A |
:10AFD000023C83E10830CCE52324A0E10920CCE544 |
:10AFE0002328A0E10A20CCE5233CA0E10B30CCE5EE |
:10AFF000013081E30C30CCE50D10CCE50E10CCE532 |
:10B000000F10CCE50310A0E10100A0E10EF0A0E1DB |
:10B01000000050E30000A0030EF0A0010030A0E308 |
:10B020000030C0E50130C0E50230C0E50330C0E5C6 |
:10B030000430C0E50530C0E50630C0E50730C0E5A6 |
:10B040000830C0E50930C0E50A30C0E50B30C0E586 |
:10B050000C30C0E50D30C0E50E30C0E50F30C0E566 |
:10B060000100A0E30EF0A0E11C209FE50030A0E36A |
:10B070000030C2E50130C2E50230C2E50330C2E56E |
:10B080000430C2E50530C2E50EF0A0E1401700042F |
:10B090000DC0A0E100D82DE904B04CE244009FE5CA |
:10B0A0001DFAFFEB88F3FFEBEEFFFFEB38009FE5A7 |
:10B0B000D6FFFFEB34009FE5D4FFFFEB0020A0E3B9 |
:10B0C0002C309FE5002083E5BCFDFFEB05FEFFEB88 |
:10B0D00020309FE5000083E524FEFFEB18009FE58C |
:10B0E0000DFAFFEB00A81BE998D001004005000411 |
:10B0F00050050004600500046405000460CB0100F5 |
:10B100000DC0A0E170D82DE904B04CE20160A0E1CF |
:10B11000A42D00EB0150A0E10040A0E10600A0E159 |
:10B12000A02D00EB0130A0E10020A0E10510A0E17E |
:10B130000400A0E1F21E00EB40208FE20C0092E838 |
:10B14000C82F00EB463100EB430F60E2020080E2C3 |
:10B15000B634A0E3B63A83E2B73083E29023C3E08B |
:10B16000003083E0C02FA0E1433462E0833083E00D |
:10B17000033263E0833140E00300A0E170A81BE9E3 |
:10B1800046DF913F399D52A20DC0A0E1F0D92DE9D3 |
:10B1900004B04CE20060A0E10180A0E10270A0E1F7 |
:10B1A000000090E5FE3000EB0150A0E10040A0E17E |
:10B1B000000098E5FA3000EB0130A0E10020A0E1AA |
:10B1C0000510A0E10400A0E1CE1E00EB243100EB4D |
:10B1D0000040A0E1000050E307005011F0A91BD986 |
:10B1E000003096E5930700E00410A0E19F2900EBF2 |
:10B1F000000086E5003098E5930700E00410A0E128 |
:10B200009A2900EB000088E5F0A91BE90DC0A0E138 |
:10B21000F0DB2DE904B04CE20070A0E10160A0E198 |
:10B22000000051E300005013D100000A0C30D0E5BB |
:10B230000D20D0E5023483E10E20D0E5023883E111 |
:10B240000F20D0E5023C93E1C900000A0C30D1E5A3 |
:10B250000D20D1E5023483E10E20D1E5023883E1EF |
:10B260000F20D1E5023C93E1C100000A0000D0E5C7 |
:10B270000130D7E5030480E10230D7E5030880E11F |
:10B280000330D7E5030C80E1C53000EB0D2D8FE2D4 |
:10B290000C0092E8702E00EB0150A0E10040A0E10C |
:10B2A0000000D6E50130D6E5030480E10230D6E5A2 |
:10B2B000030880E10330D6E5030C80E1B83000EBF1 |
:10B2C000C32F8FE20C0092E8632E00EB0130A0E167 |
:10B2D0000020A0E10510A0E10400A0E1312E00EB68 |
:10B2E0000190A0E10080A0E1BB2F8FE20C0092E86A |
:10B2F000363000EB000050E3050000DA0910A0E151 |
:10B300000800A0E1B62F8FE20C0092E8252E00EB9A |
:10B310000B0000EA0910A0E10800A0E1B22F8FE2C3 |
:10B320000C0092E8773000EB000050E3060000AA22 |
:10B330000910A0E10800A0E1A92F8FE20C0092E81B |
:10B34000002E00EB0190A0E10080A0E10400D6E512 |
:10B350000530D6E5030480E10630D6E5030880E138 |
:10B360000730D6E5030C80E18D3000EB262E8FE20E |
:10B370000C0092E8382E00EB9D2F8FE20C0092E833 |
:10B38000352E00EBDF1D00EB0130A0E10020A0E135 |
:10B390000910A0E10800A0E12F2E00EB0190A0E130 |
:10B3A0000080A0E10400D7E50530D7E5030480E183 |
:10B3B0000630D7E5030880E10730D7E5030C80E1CC |
:10B3C000773000EB822F8FE20C0092E8222E00EB08 |
:10B3D0000150A0E10040A0E10400D6E50530D6E52B |
:10B3E000030480E10630D6E5030880E10730D6E5A6 |
:10B3F000030C80E16A3000EB752F8FE20C0092E8BD |
:10B40000152E00EB0130A0E10020A0E10510A0E125 |
:10B410000400A0E1E32D00EB0160A0E10050A0E1F9 |
:10B42000DC419FE50030A0E30030C4E50130C4E515 |
:10B430000230C4E50330C4E56F2F8FE20C0092E8C0 |
:10B44000052E00EB863000EB0400C4E52034A0E1BB |
:10B450000530C4E52038A0E10630C4E5200CA0E1A9 |
:10B460000700C4E50910A0E10800A0E1622F8FE207 |
:10B470000C0092E8F82D00EB793000EB0800C4E5F1 |
:10B480002034A0E10930C4E52038A0E10A30C4E549 |
:10B49000200CA0E10B00C4E50910A0E10800A0E128 |
:10B4A0000630A0E10520A0E1161E00EB522F8FE22E |
:10B4B0000C0092E8E82D00EB693000EB1000C4E5C9 |
:10B4C0002034A0E11130C4E52038A0E11230C4E5F9 |
:10B4D000200CA0E11300C4E51020D4E51130D4E520 |
:10B4E000032482E11230D4E5032882E11330D4E54D |
:10B4F000033C92E10C30C4050D30C4050E30C40588 |
:10B500000F30C4051100000AF4409FE50610A0E1C9 |
:10B510000500A0E1B53000EB0050A0E10910A0E16A |
:10B520000800A0E1B13000EB0010A0E10500A0E1AF |
:10B53000F2FEFFEB0C00C4E52034A0E10D30C4E5C1 |
:10B540002038A0E10E30C4E5200CA0E10F00C4E5D6 |
:10B55000AC309FE50020A0E3011082E30010C3E5BA |
:10B560000120C3E50220C3E50320C3E50100A0E1FB |
:10B57000F0AB1BE988209FE50030A0E30430C2E572 |
:10B580000530C2E50630C2E50730C2E50830C2E545 |
:10B590000930C2E50A30C2E50B30C2E51030C2E521 |
:10B5A0001130C2E51230C2E51330C2E50C30C2E5FD |
:10B5B0000D30C2E50E30C2E50F30C2E50030C2E505 |
:10B5C0000130C2E50230C2E50330C2E50300A0E16C |
:10B5D000F0AB1BE9F2D77A3E000000A00080664085 |
:10B5E000000000000080764000000000008066C07F |
:10B5F0000000000046DF913F399D52A27035654141 |
:10B60000000000A0481700040DC0A0E1F0DF2DE904 |
:10B6100004B04CE224D04DE20030A0E334300BE51E |
:10B6200038300BE53C300BE540300BE544300BE5A2 |
:10B6300048300BE57C179FE52F30D1E53020D1E570 |
:10B64000023483E13120D1E5023883E13220D1E5B3 |
:10B65000023C83E1010053E32500000A0200003AA6 |
:10B66000020053E31600000A1E0500EA0020A0E3D2 |
:10B67000E8369FE5002083E56C379FE5002083E5F1 |
:10B680005C379FE5002083E5D4369FE5002083E505 |
:10B6900060379FE5002083E55C379FE5002083E568 |
:10B6A00028379FE5002083E524379FE5002083E5C8 |
:10B6B00020379FE5002083E51C379FE5002083E5C8 |
:10B6C000080500EA9C369FE5000093E5C2DAFFEB2F |
:10B6D000FF0010E30305000AD8269FE50030A0E331 |
:10B6E0002F30C2E53030C2E53130C2E53230C2E53C |
:10B6F000FC0400EA9DFCFFEB960FA0E3B0DAFFEB41 |
:10B7000060369FE5000083E55C269FE5003092E50A |
:10B71000013083E2003082E550169FE594469FE5B4 |
:10B720001730D4E51820D4E5023483E12C30C1E58C |
:10B730002334A0E12D30C1E51B30D4E51C20D4E535 |
:10B74000023483E12E30C1E52334A0E12F30C1E57E |
:10B750001130D4E54030C1E50030A0E34130C1E50F |
:10B76000B1FDFFEBFF0010E37904000A1730D4E5C8 |
:10B770001820D4E5023483E11920D4E5023883E1AE |
:10B780001A20D4E5023C83E154269FE5003082E58F |
:10B790001B30D4E51C20D4E5023483E11D20D4E520 |
:10B7A000023883E11E20D4E5023C83E138269FE580 |
:10B7B000003082E52330D4E52420D4E5023483E14F |
:10B7C0002520D4E5023883E12620D4E5023C83E13C |
:10B7D0008C259FE5003082E594359FE50A30D3E55E |
:10B7E000080013E30800001AAC159FE50C30D1E502 |
:10B7F0000D20D1E5023483E10E20D1E5023883E14A |
:10B800000F20D1E5023C93E10D00001AA4059FE54D |
:10B8100084159FE5BCFDFFEBFF0010E30500000A67 |
:10B8200050359FE5AF0FA0E3B000C3E168059FE589 |
:10B8300044159FE5B4FDFFEB2AFCFFEB3C359FE58B |
:10B84000000083E55C159FE52630D1E52720D1E592 |
:10B85000023483E12820D1E5023883E12920D1E5B3 |
:10B86000023C83E1030053E303F19F97280100EAC0 |
:10B8700014BD000080B80000A0B80000E0BA0000CD |
:10B880001C259FE54C30D2E50630C3E34C30C2E5C1 |
:10B890004C30D2E5013083E34C30C2E51C0100EAB4 |
:10B8A000FC249FE54C30D2E50530C3E34C30C2E5C3 |
:10B8B0004C30D2E5023083E34C30C2E509FCFFEBAB |
:10B8C000B8349FE5000083E5D8149FE52230D1E528 |
:10B8D0002320D1E5023483E12420D1E5023883E13D |
:10B8E0002520D1E5023C83E170249FE5003082E50C |
:10B8F0007C349FE50830D3E5630053E30020A09338 |
:10B90000E8349F95002083950800009A68FDFFEBBE |
:10B91000FF0010E30500000A1420A0E3CC349FE5EB |
:10B92000002083E58C049FE554149FE576FDFFEB32 |
:10B93000B8249FE5003092E5000053E340249F05C2 |
:10B94000F000000A130053E31430A0830030828516 |
:10B9500098049FE5003090E5020053E30A00009A46 |
:10B9600050149FE52330D1E52420D1E5023483E152 |
:10B970002520D1E5023883E12620D1E5023C83E190 |
:10B98000950053E30230A093003080955C349FE52E |
:10B99000003093E5010053E3D8339F05C810A0039E |
:10B9A000B010C30144449FE5000094E5FC2E00EB79 |
:10B9B000003094E5000053E3392E8FB20C0092B8AA |
:10B9C000602C00BBE32F8FE20C0092E8A62E00EB68 |
:10B9D000000050E3110000BAC8539FE5A4339FE56F |
:10B9E000D341D3E10400A0E1112B00EB000054E3AC |
:10B9F0004314A0B3021581B2D92900BB0020A0E3F3 |
:10BA00000C00C5E52034A0E10D30C5E52038A0E1EB |
:10BA10000E30C5E5203CA0E10F30C5E5200000EA6E |
:10BA200080439FE50C30D4E50D20D4E5023483E15A |
:10BA30000E20D4E5023883E10F20D4E5025C83E1D7 |
:10BA4000A8339FE5002093E53C339FE592C383E054 |
:10BA50002332A0E1013073E20200004A0300A0E1BA |
:10BA6000F32A00EB040000EA010003E2A30080E1F6 |
:10BA7000EF2A00EB0010A0E1B92900EB0510A0E1CE |
:10BA8000F82900EB0020A0E30C00C4E52034A0E17D |
:10BA90000D30C4E52038A0E10E30C4E5203CA0E123 |
:10BAA0000F30C4E5FC329FE50420C3E50520C3E563 |
:10BAB0000620C3E50720C3E51020C3E51120C3E538 |
:10BAC0001220C3E51320C3E50820C3E50920C3E520 |
:10BAD0000A20C3E50B20C3E50020A0E3890000EAAB |
:10BAE000BC229FE54C30D2E50330C3E34C30C2E5C5 |
:10BAF0004C30D2E5043083E34C30C2E5A4129FE51C |
:10BB00002230D1E52320D1E5023483E12420D1E5A0 |
:10BB1000023883E12520D1E5023C83E13C229FE508 |
:10BB2000003082E554529FE5001095E5000051E396 |
:10BB30005700000A0C20D1E50D30D1E5032482E145 |
:10BB40000E30D1E5032882E10F30D1E5034C92E1BC |
:10BB50000700001A72FBFFEB000085E52C329FE521 |
:10BB60000040C3E50C329FE5FFE0A0E3B0E0C3E195 |
:10BB7000470000EA04329FE5001093E510329FE58C |
:10BB8000003093E5030051E10800001A0C30D1E5C4 |
:10BB90000D20D1E5023483E10E20D1E5023883E1A6 |
:10BBA0000F20D1E5023C83E1010053E30600001AB7 |
:10BBB000C8319FE5002093E5D4319FE5002083E55F |
:10BBC0000020A0E3C4319FE50020C3E5F0119FE50C |
:10BBD0000030D1E50120D1E5023483E10220D1E536 |
:10BBE000023883E10320D1E5023C93E11A00000A08 |
:10BBF00098019FE50030D0E5000053E31600001ADD |
:10BC00001020D1E51130D1E5032482E11230D1E5D5 |
:10BC1000032882E11330D1E5032C82E15C319FE5FA |
:10BC2000001093E51230D1E5033183E0033183E066 |
:10BC3000030152E1080000AA0130A0E30030C0E592 |
:10BC40001330D1E5830263E0000183E08001A0E1CD |
:10BC50005BD9FFEB3C319FE5000083E52C419FE57C |
:10BC60000030D4E5000053E30900000A24319FE5C9 |
:10BC7000000093E558D9FFEBFF0010E30400000A31 |
:10BC800027FBFFEBF4309FE5000083E50030A0E3E5 |
:10BC90000030C4E5E4409FE5003094E5000053E344 |
:10BCA0000400000A0C019FE5D4109FE596FCFFEB11 |
:10BCB000002094E5130000EADC109FE50C30D1E58C |
:10BCC0000D20D1E5023483E10E20D1E5023883E175 |
:10BCD0000F20D1E5023C93E10600001AA0309FE559 |
:10BCE000C8209FE5003082E588309FE5FF00A0E393 |
:10BCF000B000C3E10E0000EAB8009FE580109FE5A8 |
:10BD000081FCFFEB90209FE5A0309FE5002083E5BC |
:10BD1000070000EA0040A0E340309FE5004083E5D3 |
:10BD200090009FE558109FE577FCFFEB7C309FE586 |
:10BD3000004083E574309FE5003093E5000053E355 |
:10BD40003400001A74009FE5B0FCFFEB0B0100EA21 |
:10BD50000000F0410000000000002E400000000044 |
:10BD600070050004A80500047805000474050004AB |
:10BD7000B8130004A80800044008000424120004BA |
:10BD8000640500044005000428080004CDCCCCCC98 |
:10BD9000E805000484050004EC05000450050004D7 |
:10BDA0005B548E3F00120004601700043802000448 |
:10BDB0006005000480050004B804000489B5F81487 |
:10BDC000D805000448170004676666667C05000411 |
:10BDD000880500048C050004900500049405000407 |
:10BDE000AC050004A0050004B0050004A40500048F |
:10BDF000D405000454000004B8050004B405000490 |
:10BE0000F2D77A3E000000A046DF913F399D52A252 |
:10BE10008BCAF13F0000006070301FE5001093E511 |
:10BE200074301FE5003093E5030051E11400001A5F |
:10BE30000C30D1E50D20D1E5023483E10E20D1E5AF |
:10BE4000023883E10F20D1E5023C83E1010053E396 |
:10BE50000B00000AB4101FE51E30D1E51F20D1E50C |
:10BE6000023483E12020D1E5023883E12120D1E5AD |
:10BE7000023C83E1D0201FE5002092E5020053E15F |
:10BE8000BE00000ADC101FE5000091E5F8101FE578 |
:10BE9000DDFCFFEBFF0010E3AE00000AE0801FE5D1 |
:10BEA0001000D8E51130D8E5030480E11230D8E560 |
:10BEB000030880E11330D8E5030C80E11C111FE575 |
:10BEC0001E30D1E51F20D1E5023483E12020D1E5E9 |
:10BED000023883E12120D1E5021C83E1010050E119 |
:10BEE000930000DA48211FE54C30D2E5083083E3A7 |
:10BEF0004C30C2E500A0A0E31010C8E52134A0E159 |
:10BF00001130C8E52138A0E11230C8E5213CA0E19C |
:10BF10001330C8E51020D8E51130D8E5032482E1BC |
:10BF20001230D8E5032882E11330D8E5032C82E1F2 |
:10BF3000080088E2041088E292FCFFEB84511FE5C0 |
:10BF40000CA0C5E50DA0C5E50EA0C5E50FA0C5E593 |
:10BF5000BC611FE50470D6E50530D6E5037487E1C2 |
:10BF60000630D6E5037887E10730D6E5037C87E124 |
:10BF70000470C5E52734A0E10530C5E52738A0E108 |
:10BF80000630C5E5273CA0E10730C5E50440D5E50E |
:10BF90000530D5E5034484E10630D5E5034884E166 |
:10BFA0000730D5E5034C84E10400D8E50530D8E539 |
:10BFB000030480E10630D8E5030880E10730D8E5C6 |
:10BFC000030C80E19A2900EB30121FE52D2900EBCC |
:10BFD000BB2900EB004084E00440C5E52434A0E127 |
:10BFE0000530C5E52438A0E10630C5E5244CA0E1C4 |
:10BFF0000740C5E50030D6E50120D6E5023483E1EF |
:10C000000220D6E5023883E10320D6E5023C83E135 |
:10C010000030C5E52324A0E10120C5E52328A0E1E7 |
:10C020000220C5E5233CA0E10330C5E50040D5E58D |
:10C030000130D5E5034484E10230D5E5034884E1CD |
:10C040000330D5E5034C84E10800D8E50930D8E594 |
:10C05000030480E10A30D8E5030880E10B30D8E51D |
:10C06000030C80E1722900EBCE2900EB0190A0E1E6 |
:10C070000080A0E10700A0E1492D00EBA12F4FE2D5 |
:10C080000C0092E8F42A00EBA22F4FE20C0092E899 |
:10C09000F12A00EB9B1A00EB292E4FE20C0092E8EC |
:10C0A000ED2A00EB0130A0E10020A0E10910A0E1A1 |
:10C0B0000800A0E1EB2B00EB692D00EB004084E0D1 |
:10C0C0000040C5E52434A0E10130C5E52438A0E1F5 |
:10C0D0000230C5E5244CA0E10340C5E534231FE54B |
:10C0E000001092E50830D1E50920D1E5023483E162 |
:10C0F0000A20D1E5023883E10B20D1E5023C83E13F |
:10C100000830C5E52324A0E10920C5E52328A0E1E6 |
:10C110000A20C5E5233CA0E10B30C5E501308AE3E8 |
:10C120000C30C5E50DA0C5E50EA0C5E50FA0C5E521 |
:10C130000A0000EA8C331FE5000093E584131FE535 |
:10C1400071FBFFEBA8231FE54C30D2E50830C3E3B9 |
:10C150004C30C2E5010000EAA0031FE5ABFBFFEB9A |
:10C16000B8331FE5001093E50030A0E3022083E31D |
:10C170000C20C1E50D30C1E50E30C1E50F30C1E541 |
:10C18000E0131FE51E30D1E51F20D1E5023483E125 |
:10C190002020D1E5023883E12120D1E5023C83E172 |
:10C1A000FC231FE5003082E500341FE5002093E505 |
:10C1B00004341FE5002083E508041FE504141FE58F |
:10C1C00011FCFFEBFF0010E31401000A04441FE51B |
:10C1D00020241FE517C0D2E51830D2E503C48CE156 |
:10C1E0001930D2E503C88CE11A30D2E503CC8CE1DA |
:10C1F000003094E503C08CE02C541FE51BE0D2E531 |
:10C200001C30D2E503E48EE11D30D2E503E88EE177 |
:10C210001E30D2E503EC8EE1003095E503E08EE0C0 |
:10C2200060741FE5970CC3E0CC2FA0E1C32062E04F |
:10C2300074041FE50430D0E50510D0E5013483E136 |
:10C240000610D0E5013883E10710D0E5013C83E119 |
:10C25000022063E0C23FA0E1A32D82E0C2C24CE015 |
:10C2600000C084E5971EC3E0CE2FA0E1C32062E0AA |
:10C270000830D0E50910D0E5013483E10A10D0E59B |
:10C28000013883E10B10D0E5013C83E1022063E03B |
:10C29000C23FA0E1A32D82E0C2624EE0006085E5CE |
:10C2A0001030D0E51120D0E5023483E11220D0E532 |
:10C2B000023883E11320D0E5023C83E1AF0F53E362 |
:10C2C000100000CA0C00A0E1B52C00EB0150A0E169 |
:10C2D0000040A0E10600A0E1B12C00EB0130A0E19C |
:10C2E0000020A0E10510A0E10400A0E1851A00EB08 |
:10C2F000DB2C00EB9720C3E0C00FA0E1C30060E09F |
:10C30000AF0F50E3140000DA4C151FE50430D1E5FF |
:10C310000520D1E5023483E10620D1E5023883E12E |
:10C320000720D1E5023C83E1033183E064251FE56A |
:10C33000003082E50830D1E50920D1E5023483E1FF |
:10C340000A20D1E5023883E10B20D1E5023C83E1EC |
:10C35000033183E088251FE5003082E5AC451FE509 |
:10C360002330D4E52420D4E5023483E12520D4E52C |
:10C37000023883E12620D4E5023C83E1640053E3E4 |
:10C380003200009AC8E51FE51030DEE51120DEE539 |
:10C39000023483E11220DEE5023883E11320DEE57A |
:10C3A000023C83E14B0F53E3280000DAE8C51FE5A8 |
:10C3B00000009CE5800180E00C10DEE50D30DEE53C |
:10C3C000031481E10E30DEE5031881E10F30DEE574 |
:10C3D000031C81E12730D4E52820D4E5023483E131 |
:10C3E0002920D4E5023883E12A20D4E5023C83E108 |
:10C3F0003C261FE59342C2E0C33FA0E1C23663E0A2 |
:10C40000011063E0871F81E2B634A0E3B63A83E20D |
:10C41000B73083E293E1C2E0012082E0C13FA0E1B6 |
:10C42000423463E0833083E0033263E0831141E010 |
:10C43000010080E0B40040E278361FE59013C3E0CD |
:10C44000C00FA0E1430160E000008CE5020000EABB |
:10C450000020A0E390361FE5002083E5A4C61FE579 |
:10C460000C30DCE50D20DCE5023483E10E20DCE558 |
:10C47000023883E10F20DCE5023C83E1010053E355 |
:10C480002100001A0000A0E3C4361FE5000083E588 |
:10C49000D4161FE50430D1E50520D1E5023483E14F |
:10C4A0000620D1E5023883E10720D1E5023C83E193 |
:10C4B000033183E0EC261FE5003082E50830D1E54A |
:10C4C0000920D1E5023483E10A20D1E5023883E175 |
:10C4D0000B20D1E5023C83E1033183E010271FE507 |
:10C4E000003082E514371FE5000083E518371FE5AB |
:10C4F000000083E5023080E30C30CCE50D00CCE594 |
:10C500000E00CCE50F00CCE54F0000EA44371FE5F4 |
:10C51000003093E5C32FA0E1A23E83E0C331A0E148 |
:10C520002C300BE558371FE5003093E5C32FA0E111 |
:10C53000A23E83E0C331A0E130300BE52C004BE29A |
:10C5400030104BE2272DA0E3042082E20DFBFFEB2D |
:10C5500080C71FE500209CE52C301BE5032082E00E |
:10C5600000208CE588371FE5003093E5000063E28A |
:10C57000B0371FE59340C1E0C03FA0E1410163E057 |
:10C58000C03F20E0C03F43E0000052E3002062B221 |
:10C59000020053E10030A0C300308CC5CC271FD56A |
:10C5A000003092D5033060D0003082D5D8C71FE567 |
:10C5B00000209CE530301BE5032082E000208CE564 |
:10C5C000DC371FE5003093E5000063E20C381FE51F |
:10C5D00093E0C1E0C03FA0E1410163E0C03F20E043 |
:10C5E000C03F43E0000052E3002062B2020053E18A |
:10C5F0000030A0C300308CC524281FD5003092D550 |
:10C60000033060D0003082D538081FE538181FE5A8 |
:10C61000272DA0E3042082E2DAFAFFEB0A0000EA09 |
:10C620000020A0E360381FE5002083E564381FE5A3 |
:10C63000002083E568381FE5002083E56C381FE59E |
:10C64000002083E570381FE5002083E55C081FE5C6 |
:10C6500078C81FE578381FE5001093E500309CE5A9 |
:10C66000013063E0002090E5023083E0A33F83E0E7 |
:10C67000C330A0E1003080E500108CE588081FE59C |
:10C68000A0C81FE5A0381FE5001093E500309CE529 |
:10C69000013063E0002090E5023083E0A33F83E0B7 |
:10C6A000C330A0E1003080E500108CE5C4281FE510 |
:10C6B000003092E5000053E3013043120030821550 |
:10C6C000D4681FE5D4381FE5000093E5B42B00EBD8 |
:10C6D0000150A0E10040A0E1E4381FE5000093E52F |
:10C6E000AF2B00EB0130A0E10020A0E10510A0E19C |
:10C6F0000400A0E1831900EB692F8FE20C0092E89F |
:10C70000552900EB0130A0E10020A0E1660F8FE287 |
:10C71000030090E8232900EBD12B00EB000086E515 |
:10C72000030050E30430A0D3003086D5F4319FE5F8 |
:10C73000000093E59A2B00EB0150A0E10040A0E13E |
:10C74000EC319FE5000093E5952B00EB0130A0E173 |
:10C750000020A0E10510A0E10400A0E1691900EBB0 |
:10C760004F2F8FE20C0092E83B2900EB0130A0E153 |
:10C770000020A0E14E0F8FE2030090E8092900EBB2 |
:10C78000B72B00EB54319FE5000083E5130050E325 |
:10C790001420A0D33C319FD5002083D584319FE560 |
:10C7A000000093E57E2B00EB0150A0E10040A0E1EA |
:10C7B0007C319FE5000093E5792B00EB0130A0E18F |
:10C7C0000020A0E10510A0E10400A0E14D1900EB5C |
:10C7D000CC208FE20C0092E81F2900EB0130A0E191 |
:10C7E0000020A0E1D0008FE2030090E8ED2800EBEC |
:10C7F0000150A0E10040A0E1DC609FE5000096E56B |
:10C80000672B00EB0130A0E10020A0E10510A0E1C2 |
:10C810000400A0E1ED2A00EB000050E3003096C5D3 |
:10C82000013083C2003086C5170000CAF4309FE58E |
:10C83000000093E55A2B00EB0150A0E10040A0E17D |
:10C84000EC309FE5000093E5552B00EB0130A0E1B3 |
:10C850000020A0E10510A0E10400A0E1291900EBEF |
:10C860003C208FE20C0092E8FB2800EB0130A0E1B5 |
:10C870000020A0E140008FE2030090E8C92800EB0F |
:10C88000772B00EB50309FE5000083E548209FE5C3 |
:10C89000003092E5100053E31130A0D3003082D570 |
:10C8A000890000EA0000E03F00000000000049406D |
:10C8B0000000000000005040000000000000544054 |
:10C8C0000000000000120004700500049005000440 |
:10C8D00094050004481700045400000458000004A4 |
:10C8E0005C00000474050004CDCCCCCC40080004EE |
:10C8F000B804000489888888CC05000467666666E9 |
:10C90000D005000479787878A8080004080A0004A3 |
:10C9100070090004BC050004C0050004A80500045B |
:10C920001F85EB51A0050004B8050004C4050004F0 |
:10C93000A4050004B4050004C8050004880500042B |
:10C940008C050004601700047C05000446DF913F5D |
:10C95000399D52A298201FE54C30D2E50730C3E341 |
:10C960004C30C2E50020A0E3A8301FE5002083E59D |
:10C9700048301FE5002083E55C301FE5002083E59B |
:10C980006C301FE5002083E568301FE5002083E55B |
:10C9900064301FE5002083E558301FE5002083E563 |
:10C9A0006C301FE5002083E570301FE5002083E533 |
:10C9B000EC301FE5002083E5F0301FE5002083E523 |
:10C9C000F4301FE50420C3E50520C3E50620C3E5D8 |
:10C9D0000720C3E50820C3E50920C3E50A20C3E515 |
:10C9E0000B20C3E50C20C3E50D20C3E50E20C3E5F5 |
:10C9F0000F20C3E51020C3E51120C3E51220C3E5D5 |
:10CA00001320C3E50020E0E338311FE5002083E573 |
:10CA10005020A0E340311FE5002083E52020A0E363 |
:10CA200048311FE5002083E5EC101FE52630D1E5F5 |
:10CA30002720D1E5023483E12820D1E5023883E1C3 |
:10CA40002920D1E5023C83E1010053E31E00000AE6 |
:10CA500068311FE51030D3E5010013E30A00001A26 |
:10CA600084311FE5002093E588311FE5920383E0C0 |
:10CA70002331A0E1033183E0030052E198311F0527 |
:10CA80006410A003B010C3010F00000AA4311FE519 |
:10CA90001120D3E558311FE51830D3E5030052E1EA |
:10CAA0000900002AC8311FE5002093E5CC311FE5BD |
:10CAB000924383E02331A0E1033183E0030052E19C |
:10CAC000DC311F050AC0A003B0C0C301E4311FE57B |
:10CAD0000020A0E3021082E32F10C3E53020C3E55D |
:10CAE0003120C3E53220C3E5E0C11FE50100DCE5EC |
:10CAF0000230DCE5030480E10008A0E14008A0E189 |
:10CB0000800080E0800180E00001A0E120E21FE5DC |
:10CB10009E10C3E0003083E0C00FA0E1430260E05C |
:10CB20000530DCE50620DCE5023483E10338A0E1D2 |
:10CB3000430840E00310DCE50430DCE5031481E148 |
:10CB40000118A0E14118A0E1811081E0811181E08C |
:10CB50000111A0E19E21C3E0013083E0C11FA0E1EB |
:10CB6000431261E00730DCE50820DCE5023483E1B4 |
:10CB70000338A0E1431841E088C21FE588E21FE5C1 |
:10CB80009E30C2E0C03FA0E1C23163E000209CE5DE |
:10CB9000023083E0C32FA0E1222F83E0423143E043 |
:10CBA00000308CE5000063E0B0C21FE59E41C2E0AA |
:10CBB000C13FA0E1C23163E000209CE5023083E088 |
:10CBC000C32FA0E1222F83E0423143E000308CE507 |
:10CBD000011063E0D8221FE592C0C3E0C00FA0E1BE |
:10CBE000430260E0D8321FE5000083E592E1C3E034 |
:10CBF000C11FA0E1431261E0E8321FE5001083E5A8 |
:10CC000000331FE5D230D3E1000053E3003063B2BC |
:10CC1000140053E310331FC50000D3C50130D3C542 |
:10CC200018331FD50900D3D50A30D3D5030480E1CA |
:10CC30000008A0E14008A0E17D2600EBD92600EB2A |
:10CC4000BF2F4FE20C0092E8032800EBE72A00EB2D |
:10CC5000D42600EB0150A0E10040A0E1E71700EB73 |
:10CC6000E22A00EB0090A0E10510A0E10400A0E1A1 |
:10CC7000A41700EBDD2A00EB4C000BE570331FE539 |
:10CC8000000093E56A2600EB0050A0E14C001BE594 |
:10CC90000510A0E1732500EB0040A0E18C331FE5F7 |
:10CCA000000093E5622600EB0060A0E10900A0E12E |
:10CCB0000610A0E16B2500EB0010A0E10400A0E14C |
:10CCC000272500EB7E2600EB0040A0E10900A0E153 |
:10CCD0000510A0E1632500EB0050A0E14C001BE52E |
:10CCE0000610A0E15F2500EB0010A0E10500A0E127 |
:10CCF000312500EB722600EBD4C31FE500309CE524 |
:10CD0000034084E000408CE5C41FA0E1211E84E0C4 |
:10CD1000FC331FE5003093E5940303E004241FE592 |
:10CD200093E2C2E0C33FA0E1423463E0416283E0AA |
:10CD3000C63F26E0C63F43E0000054E3004064B233 |
:10CD4000040053E10030A0C300308CC528241FD557 |
:10CD5000003092D5033066D0003082D538241FE5EC |
:10CD6000003092E5000053E3013043C2040000CAE2 |
:10CD70004C241FE5003092E5000053E3010000AAB7 |
:10CD8000013083E2003082E558C41FE500209CE5B5 |
:10CD9000022080E000208CE5C20FA0E1200E82E09E |
:10CDA0008C341FE5003093E5920303E094141FE5F3 |
:10CDB0009341C1E0C33FA0E1413463E040A283E07E |
:10CDC000CA3F2AE0CA3F43E0000052E3002062B2BB |
:10CDD000020053E10030A0C300308CC5AC241FD545 |
:10CDE000003092D503306AD0003082D5BC241FE5D4 |
:10CDF000003092E5000053E3013043C2040000CA52 |
:10CE0000D0241FE5003092E5000053E3010000AAA2 |
:10CE1000013083E2003082E5FC341FE5000093E539 |
:10CE2000032600EBE8541FE50C70D5E50D30D5E581 |
:10CE3000037487E10E30D5E5037887E10F30D5E53F |
:10CE4000037C87E10710A0E1062500EB0111A0E3B8 |
:10CE5000031581E28B2500EB192600EB34000BE56E |
:10CE6000F32500EB0040A0E148351FE5000093E505 |
:10CE7000EF2500EB1060D5E51130D5E5036486E1C0 |
:10CE80001230D5E5036886E11330D5E5036C86E101 |
:10CE90000610A0E1F32400EB0010A0E10400A0E1E3 |
:10CEA000AF2400EB062600EB34000BE5E02500EB99 |
:10CEB0000080A0E190351FE5000093E5DC2500EB44 |
:10CEC0001440D5E51530D5E5034484E11630D5E5A9 |
:10CED000034884E11730D5E5034C84E10410A0E158 |
:10CEE000E02400EB0010A0E10800A0E19C2400EB8E |
:10CEF000F32500EB34000BE5D0351FE5000093E58A |
:10CF0000CB2500EB0710A0E1D62400EB0111A0E334 |
:10CF1000031581E25B2500EBE92500EB38000BE50A |
:10CF2000C32500EB0070A0E1FC351FE5000093E590 |
:10CF3000BF2500EB0610A0E1CA2400EB0010A0E121 |
:10CF40000700A0E1862400EBDD2500EB38000BE5AF |
:10CF5000B72500EB0060A0E128361FE5000093E54F |
:10CF6000B32500EB0410A0E1BE2400EB0010A0E10B |
:10CF70000600A0E17A2400EBD12500EB38000BE598 |
:10CF800034004BE238104BE2272CA0E3102082E261 |
:10CF90007CF8FFEB0440D5E50530D5E5034484E19A |
:10CFA0000630D5E5034884E10730D5E5034C84E13C |
:10CFB0007C361FE5000093E59D2500EB0410A0E101 |
:10CFC000A82400EB0F13A0E3A62400EBBC2500EB84 |
:10CFD0000060A0E19C361FE5000093E5942500EB7E |
:10CFE0000410A0E19F2400EB0F13A0E39D2400EBAD |
:10CFF000B32500EB00A0A0E1B8361FE5003093E5B3 |
:10D00000000053E33C600B0540000B053800000AAC |
:10D01000D4261FE51A40D2E51B30D2E5034484E153 |
:10D020001C30D2E5034884E11D30D2E5034C84E195 |
:10D03000F0361FE5000093E57D2500EB0410A0E12C |
:10D04000882400EBD72500EBFD2F8FE20C0092E83F |
:10D05000012700EB0150A0E10040A0E1E71600EB42 |
:10D06000E22900EB0070A0E10510A0E10400A0E1BE |
:10D07000A41600EBDD2900EB0080A0E10600A0E192 |
:10D080006B2500EB0060A0E10800A0E10610A0E124 |
:10D09000742400EB0040A0E10A00A0E1642500EB4D |
:10D0A0000050A0E10700A0E10510A0E16D2400EB15 |
:10D0B0000010A0E10400A0E13F2400EB802500EB7C |
:10D0C0003C000BE50700A0E10610A0E1652400EBA1 |
:10D0D0000040A0E10800A0E10510A0E1612400EB00 |
:10D0E0000010A0E10400A0E11D2400EB742500EB7A |
:10D0F00040000BE53C004BE240104BE24E2DA0E31C |
:10D10000082082E21FF8FFEB3C539FE50840D5E57D |
:10D110000930D5E5034484E10A30D5E5034884E1CC |
:10D120000B30D5E5034C84E120339FE5000093E507 |
:10D130003F2500EB0410A0E14A2400EB602500EB42 |
:10D1400044000BE508339FE5000093E5382500EB2C |
:10D150000410A0E1432400EB592500EB48000BE547 |
:10D1600044004BE248104BE2272DA0E3042082E26A |
:10D1700004F8FFEBDC729FE5000097E52C2500EB3F |
:10D180000060A0E13C001BE544301BE5030080E0AB |
:10D1900034301BE5030080E0252500EB0040D5E599 |
:10D1A0000130D5E5034484E10230D5E5034884E14C |
:10D1B0000330D5E5034C84E10410A0E1292400EB01 |
:10D1C0000010A0E10600A0E1E52300EB3F14A0E37E |
:10D1D000242400EB3A2500EB000087E578629FE508 |
:10D1E000000096E5122500EB0050A0E140001BE591 |
:10D1F00048301BE5030080E038301BE5030080E089 |
:10D200000B2500EB0410A0E1162400EB0010A0E1B8 |
:10D210000500A0E1D22300EB3F14A0E3112400EBB2 |
:10D22000272500EB000086E50700A0E10610A0E13D |
:10D2300028329FE5002093E5D2F7FFEB20529FE5CF |
:10D24000000097E5FA2400EB0080A0E14C001BE50C |
:10D250000810A0E1032400EB0040A0E1000096E5E7 |
:10D26000F32400EB0060A0E10900A0E10610A0E1BA |
:10D27000FC2300EB0010A0E10400A0E1B82300EBC8 |
:10D280000F2500EB0070A0E30000C5E52004A0E13D |
:10D290000100C5E50900A0E10810A0E1F12300EBC1 |
:10D2A0000040A0E14C001BE50610A0E1ED2300EBDF |
:10D2B0000010A0E10400A0E1BF2300EB002500EB7B |
:10D2C0000200C5E52004A0E10300C5E50470C5E542 |
:10D2D0000570C5E58C119FE58C219FE50030D2E5F6 |
:10D2E0002430C1E50130D2E52530C1E57C219FE540 |
:10D2F0000030D2E52630C1E50130D2E52730C1E566 |
:10D300006C419FE50430D4E50520D4E5023483E187 |
:10D310003830C1E52334A0E13930C1E50830D4E527 |
:10D320000920D4E5023483E13A30C1E52334A0E199 |
:10D330003B30C1E50030D5E50120D5E5023483E17D |
:10D340003C30C1E52334A0E13D30C1E50230D5E5F4 |
:10D350000320D5E5023483E13E30C1E52334A0E16A |
:10D360003F30C1E50C019FE50C119FE5E6F6FFEBB0 |
:10D3700008019FE508119FE5E3F6FFEBF8109FE534 |
:10D38000F0009FE51130D0E53A30C1E51030D4E52A |
:10D390001120D4E5023483E12030C1E52334A0E13B |
:10D3A0002130C1E50C30D4E50D20D4E5023483E111 |
:10D3B0002230C1E52334A0E12330C1E5C4E09FE57C |
:10D3C0000930DEE54130C1E52330D0E52420D0E549 |
:10D3D000023483E14230C1E52334A0E14330C1E5AA |
:10D3E0002730D0E52820D0E5023483E14430C1E580 |
:10D3F0002334A0E14530C1E58C009FE50930D0E53C |
:10D400000A20D0E5023483E14630C1E52334A0E1AF |
:10D410004730C1E50130D0E50220D0E5023483E198 |
:10D420000338A0E14328A0E160C09FE59C42C2E030 |
:10D43000C33FA0E1423163E04830C1E50330D0E5AD |
:10D44000130000EA46DF913F399D52A260170004A5 |
:10D450009005000494050004980500049C05000450 |
:10D460007005000440170004B8130004C40500044C |
:10D47000C805000448170004B804000400120004A2 |
:10D48000D805000410120004A80800047009000464 |
:10D49000676666660420D0E5023483E10338A0E1C4 |
:10D4A0004328A0E19C02C2E0C33FA0E1423163E017 |
:10D4B0004930C1E50830DEE54A30C1E50A30DEE535 |
:10D4C0004B30C1E5F0AF1BE90DC0A0E100D82DE95C |
:10D4D00004B04CE2322800EB14208FE20C0092E8FA |
:10D4E000DD2500EB10208FE20C0092E8DA2500EB3E |
:10D4F00000A81BE9F2D77A3E000000A046DF913F6A |
:10D50000399D52A20DC0A0E100D82DE904B04CE233 |
:10D51000232800EB08208FE20C0092E8CE2500EBD8 |
:10D5200000A81BE9F2D77A3E000000A018F09FE5A2 |
:10D5300018F09FE518F09FE518F09FE518F09FE5BB |
:10D540000000A0E118F09FE518F09FE57CD60000F0 |
:10D550006CD5000070D5000074D5000078D50000AF |
:10D56000000000007CD5000080D50000230000EA08 |
:10D570001A0000EA280000EA2F0000EA000000EA92 |
:10D58000350000EA04E04EE2FF5F2DE900104FE1B4 |
:10D5900002002DE92C029FE5000090E528129FE58E |
:10D5A000001091E50000A0E10000A0E11FF021E3E0 |
:10D5B00000402DE914E29FE500F0A0E10040BDE845 |
:10D5C000D2F021E3FC019FE5000080E5F8119FE522 |
:10D5D000001081E50200BDE801F06FE1FF9FFDE86A |
:10D5E000FF5F2DE900104FE102002DE90D10A0E1D1 |
:10D5F00038CDFFEB0200BDE801F06FE1FF9FFDE8D1 |
:10D60000FF5F2DE900104FE102002DE93ACDFFEB5D |
:10D610000200BDE801F06FE1FF9FFDE804E04EE28B |
:10D62000FF5F2DE900104FE102002DE93BCDFFEB3C |
:10D630000200BDE801F06FE1FF9FFDE808E04EE267 |
:10D64000FF5F2DE900104FE102002DE922CDFFEB35 |
:10D650000200BDE801F06FE1FF9FFDE804E04EE24B |
:10D66000FF402DE900104FE102002DE92ACDFFEB2C |
:10D670000200BDE801F06FE1FF80FDE850119FE579 |
:10D680000020A0E3011041E2020051E1FCFFFF8A0B |
:10D6900040019FE540119FE5341080E534019FE58E |
:10D6A00038119FE5001080E50000A0E10000A0E136 |
:10D6B0000000A0E10000A0E10000A0E10000A0E166 |
:10D6C0000000A0E10000A0E10000A0E10000A0E156 |
:10D6D0000000A0E10000A0E10000A0E10000A0E146 |
:10D6E0000000A0E10000A0E10267A0E36070A0E3F9 |
:10D6F000B070C6E1E8609FE50370A0E3B070C6E1DA |
:10D70000E0109FE5041080E5081090E5011011E29B |
:10D71000FCFFFF0AD0109FE5001080E5CC109FE5CC |
:10D720001C1080E5C8109FE5201080E5C4009FE52F |
:10D73000D1F021E300D0A0E1800040E2D2F021E36B |
:10D7400000D0A0E1020B40E2D7F021E300D0A0E13D |
:10D75000040040E2DBF021E300D0A0E1040040E25D |
:10D76000D3F021E300D0A0E1800040E210F021E3FB |
:10D7700000D0A0E101AB4DE27C109FE57C209FE54D |
:10D780007C309FE5030052E10400913404008234B0 |
:10D79000FBFFFF3A0000A0E368109FE568209FE5CB |
:10D7A000020051E104008134FCFFFF3A0000A0E3D5 |
:10D7B00058109FE558209FE5020051E10400813494 |
:10D7C000FCFFFF3AB5CBFFEA30F0FFFF300000FC72 |
:10D7D000BCD5000020A107000020005C96010000DD |
:10D7E000020002004030080019C00B008000020057 |
:10D7F000731B000001C8FE0000800104F0D001008E |
:10D8000000000004B8030004C00300040819000469 |
:10D8100008190004081900041713A0E3021A81E292 |
:10D82000002091E50320C2E3000050E300208211B4 |
:10D830000700001A043091E5020713E30200000A12 |
:10D84000083091E5010013E30100001A0000A0E395 |
:10D850000EF0A0E11733A0E3023A83E2002083E553 |
:10D860000100A0E30EF0A0E10DC0A0E170D82DE909 |
:10D8700004B04CE2FF4000E2FF5001E2FF6002E230 |
:10D880000000A0E3100000EB010050E30000A01333 |
:10D8900070A81B191723A0E3022A82E20030A0E33C |
:10D8A000043082E5043092E5043483E1043082E5FB |
:10D8B000043092E5033085E1043082E5043092E5DE |
:10D8C000063883E1043082E570A81BE904D04DE2FC |
:10D8D000010050E31500001A1723A0E3022A82E298 |
:10D8E000043092E5020713E30200000A083092E5D3 |
:10D8F000010013E32400001A1733A0E3023A83E285 |
:10D90000082093E5012082E3082083E5042093E5C5 |
:10D91000022782E3042083E51723A0E3022A82E2A0 |
:10D92000083092E5000053E3FCFFFF0A140000EA10 |
:10D930001733A0E3023A83E2003093E5030013E3D8 |
:10D940001100000A0A30A0E300308DE500309DE5AB |
:10D95000000053E30500000A00309DE5013043E27A |
:10D9600000308DE500309DE5000053E3F9FFFF1A1C |
:10D970001723A0E3022A82E2043092E50237C3E3D0 |
:10D98000043082E50100A0E3000000EA0000A0E30B |
:10D9900004D08DE20EF0A0E11723A0E3022A82E278 |
:10D9A000003092E51C30C3E3003082E51D0070E3D7 |
:10D9B0000030921503308011003082150EF0A0E186 |
:10D9C0001723A0E3022A82E2003092E56030C3E32D |
:10D9D000003082E5610070E3003092150330801161 |
:10D9E000003082150EF0A0E11723A0E3022A82E2A4 |
:10D9F000003092E5063DC3E3003082E5063DE0E3FA |
:10DA0000030050E100309215033080110030821580 |
:10DA10000EF0A0E1010051E31723A003022A8202C5 |
:10DA200018309205033080011723A013022A8212B6 |
:10DA3000183092150030C311183082E50EF0A0E1C5 |
:10DA4000010051E31723A003022A82021430920539 |
:10DA5000033080011723A013022A8212143092157A |
:10DA60000030C311143082E50EF0A0E1000051E354 |
:10DA70001723A003022A820220309205033080017E |
:10DA80001723A013022A8212203092150030C311EE |
:10DA9000203082E50EF0A0E1000051E31723A0033F |
:10DAA000022A82021C309205033080011723A01342 |
:10DAB000022A82121C3092150030C3111C3082E5FC |
:10DAC0000EF0A0E1010051E31723A003022A820215 |
:10DAD00028309205033080011723A013022A8212F6 |
:10DAE000283092150030C311283082E50EF0A0E1F5 |
:10DAF000010051E31723A003022A82022430920579 |
:10DB0000033080011723A013022A821224309215B9 |
:10DB10000030C311243082E50EF0A0E1010051E392 |
:10DB20001723A003022A82023030920503308001BD |
:10DB30001723A013022A8212303092150030C3112D |
:10DB4000303082E50EF0A0E1010051E31723A0037D |
:10DB5000022A82022C309205033080011723A01381 |
:10DB6000022A82122C3092150030C3112C3082E52B |
:10DB70000EF0A0E11723A0E3022A82E2003092E532 |
:10DB8000023CC3E3003082E5020C50E30030920512 |
:10DB9000023C8303003082050EF0A0E1FF0010E399 |
:10DBA0000900001A1723A0E3022A82E2003092E55E |
:10DBB000023AC3E3003082E5010051E300309205F0 |
:10DBC000023A83030EF0A011080000EA1723A0E335 |
:10DBD000022A82E2003092E50139C3E3003082E597 |
:10DBE000010051E30EF0A011003092E5013983E30A |
:10DBF000003082E50EF0A0E10118A0E14118A0E19B |
:10DC0000FF0010E31723A003022A82020138A001BB |
:10DC10002338A001383082051723A013022A82126C |
:10DC20000138A0112338A0113C3082150EF0A0E17C |
:10DC30001723A0E3022A82E2003092E5033BC3E30C |
:10DC4000003082E5033BE0E3030050E10030921531 |
:10DC500003308011003082150EF0A0E1010050E386 |
:10DC60001723A003022A820200309205013A83039F |
:10DC70001723A013022A821200309215013AC3130F |
:10DC8000003082E50EF0A0E11723A0E3022A82E231 |
:10DC9000003092E50138C3E3003082E50138E0E36B |
:10DCA000030050E1003092150138831300308215D3 |
:10DCB0000EF0A0E11723A0E3022A82E2003092E5F1 |
:10DCC0000638C3E3003082E50638E0E3030050E1A4 |
:10DCD0000030921502388313003082150EF0A0E157 |
:10DCE0001723A0E3022A82E2343092E54030C3E3F6 |
:10DCF000343082E5410070E33430921540308313B4 |
:10DD0000343082150EF0A0E11723A0E3022A82E24C |
:10DD1000343092E5013CC3E3343082E5013CE0E37A |
:10DD2000030050E134309215013C831334308215E6 |
:10DD30001723A0E3022A82E2343092E58030C3E365 |
:10DD4000343082E5810071E33430921580308313E2 |
:10DD5000343082150EF0A0E1010051E31723A00337 |
:10DD6000022A8202103092050030C3011723A0134B |
:10DD7000022A82121030921503308011103082E591 |
:10DD80000EF0A0E11733A0E3023A83E2083093E5F6 |
:10DD9000030010E10000A0030100A0130EF0A0E1B9 |
:10DDA0001733A0E3023A83E2080083E50EF0A0E116 |
:10DDB0000DC0A0E100D82DE904B04CE21733A0E378 |
:10DDC000023A83E2041093E5042093E5FF2C02E27B |
:10DDD000043093E5073803E223C8A0E1FF1011E205 |
:10DDE0000030A0030130A0132204A0E1000052E3A0 |
:10DDF0000030A00301300312000053E30000A00331 |
:10DE000000A81B0914309FE5003093E5930000E063 |
:10DE10008000A0E1111CA0E16E1E00EB00A81BE930 |
:10DE200000AC01000DC0A0E100D82DE904B04CE227 |
:10DE30001733A0E3023A83E2003093E5033003E2B4 |
:10DE4000020053E328309F050000930500A81B093A |
:10DE50001733A0E3023A83E2003093E5033003E294 |
:10DE6000010053E32000A00300A81B09CFFFFFEB34 |
:10DE700000A81BE900AC01000DC0A0E110D82DE9FD |
:10DE800004B04CE21733A0E3023A83E2004093E58A |
:10DE90001C4004E2140054E32441A0110A40A003F2 |
:10DEA000DFFFFFEB3004A0E110A81BE90DC0A0E1EB |
:10DEB00010D82DE904B04CE21733A0E3023A83E214 |
:10DEC000004093E5604004E2A442A0E1E9FFFFEBDB |
:10DED0003004A0E110A81BE90DC0A0E110D82DE985 |
:10DEE00004B04CE21733A0E3023A83E2004093E52A |
:10DEF000064D04E2A443A0E1DEFFFFEB3004A0E105 |
:10DF000010A81BE9FF0000E2070050E30800008AA8 |
:10DF10001733A0E3023A83E2B02093E50720C2E37F |
:10DF2000B02083E5B02093E5022080E1B02083E5B6 |
:10DF30000EF0A0E10F0050E30800008A1723A0E3D1 |
:10DF4000022A82E2B03092E53830C3E3B03082E595 |
:10DF5000081040E2B03092E5813183E1090000EA27 |
:10DF6000170050E30900008A1723A0E3022A82E287 |
:10DF7000B03092E5073DC3E3B03082E5101040E2D7 |
:10DF8000B03092E5013383E1B03082E50EF0A0E1DC |
:10DF90001723A0E3022A82E2B03092E50E3CC3E3ED |
:10DFA000B03082E5181040E2B03092E5813483E170 |
:10DFB000F4FFFFEA010050E31723A003022A8202C4 |
:10DFC0000C309205083083031723A013022A821213 |
:10DFD0000C3092150830C3130C3082E50EF0A0E12E |
:10DFE0001723A0E3022A82E20C3092E5013083E39A |
:10DFF0000C3082E50EF0A0E11723A0E3022A82E2B2 |
:10E000000C3092E5023083E30C3082E50EF0A0E1A3 |
:10E01000FF0000E2FF1001E2010051E31000001ACE |
:10E02000000050E31723A003022A82023430920535 |
:10E03000013B83030800000A010050E31723A013EB |
:10E04000022A821234309215013A83131723A00357 |
:10E05000022A820234309205023B8303343082E587 |
:10E060000EF0A0E1000050E31723A003022A820271 |
:10E0700034309205013BC303F7FFFF0A010050E370 |
:10E080001723A003022A820234309205023BC30305 |
:10E090001723A013022A821234309215013AC313B7 |
:10E0A000EDFFFFEA010050E31723A003022A8202DA |
:10E0B00034309205013083031723A013022A821201 |
:10E0C000343092150130C313343082E50EF0A0E1F4 |
:10E0D0000DC0A0E110D82DE904B04CE20040A0E151 |
:10E0E0001633A0E3063A83E2030050E10B00001A66 |
:10E0F0000109A0E30110A0E35BFEFFEB0109A0E32F |
:10E100000010A0E358FEFFEB1723A0E3022A82E2EF |
:10E110000030A0E3843082E5443082E5643082E55B |
:10E120001633A0E3073A83E2030054E10B00001A20 |
:10E130000209A0E30110A0E34BFEFFEB0209A0E3FC |
:10E140000010A0E348FEFFEB1723A0E3022A82E2BF |
:10E150000030A0E3883082E5483082E5683082E50F |
:10E160001633A0E3023983E2030054E10B00001AE6 |
:10E170000108A0E30110A0E33BFEFFEB0108A0E3D0 |
:10E180000010A0E338FEFFEB1723A0E3022A82E28F |
:10E190000030A0E38C3082E54C3082E56C3082E5C3 |
:10E1A0001633A0E3093A83E2030054E10B00001A9E |
:10E1B0000208A0E30110A0E32BFEFFEB0208A0E39E |
:10E1C0000010A0E328FEFFEB1723A0E3022A82E25F |
:10E1D0000030A0E3903082E5503082E5703082E577 |
:10E1E0001633A0E30A3A83E2030054E10C00001A5C |
:10E1F0000107A0E30110A0E31BFEFFEB0107A0E372 |
:10E200000010A0E318FEFFEB1723A0E3022A82E22E |
:10E210000030A0E3943082E5543082E5743082E52A |
:10E22000BC3082E51633A0E30B3A83E2030054E1ED |
:10E230000B00001A0207A0E30110A0E30AFEFFEBA7 |
:10E240000207A0E30010A0E307FEFFEB1723A0E303 |
:10E25000022A82E20030A0E3983082E5583082E55D |
:10E26000783082E51633A0E3033983E2030054E1FA |
:10E270000B00001A0106A0E30110A0E3FAFDFFEB7A |
:10E280000106A0E30010A0E3F7FDFFEB1723A0E3D6 |
:10E29000022A82E20030A0E39C3082E55C3082E515 |
:10E2A0007C3082E51633A0E30D3A83E2030054E1AB |
:10E2B0000B00001A0206A0E30110A0E3EAFDFFEB49 |
:10E2C0000206A0E30010A0E3E7FDFFEB1723A0E3A5 |
:10E2D000022A82E20030A0E3A03082E5603082E5CD |
:10E2E000803082E51633A0E30E3A83E2030054E166 |
:10E2F0000A00001A0105A0E30110A0E3DAFDFFEB1C |
:10E300000105A0E30010A0E3D7FDFFEB1733A0E366 |
:10E31000023A83E20020A0E3A42083E5AC2083E559 |
:10E320001633A0E30F3A83E2030054E110A81B194F |
:10E330000205A0E30110A0E3CBFDFFEB0205A0E383 |
:10E340000010A0E3C8FDFFEB1733A0E3023A83E21D |
:10E350000020A0E3A82083E5AC2083E510A81BE9FA |
:10E360000DC0A0E1F0DD2DE904B04CE20050A0E1C9 |
:10E370000140A0E18E0000EBFFA000E20130D4E5F7 |
:10E38000010053E30030D4050024950502308301D9 |
:10E390000020D415003495150230C311003485E5F2 |
:10E3A0000010A0E30100A0E31783A0E3028A88E243 |
:10E3B0000AE1A0E117738EE2027A87E217638EE228 |
:10E3C000026A86E20030D4E5103103E05331A0E167 |
:10E3D000010053E32E00001A07005AE32100008ACF |
:10E3E00008C08EE08150A0E144309CE50320A0E30A |
:10E3F0001235C3E144308CE5B420D4E1010052E38E |
:10E4000044309C051235830144308C05B4C0D4E1FE |
:10E4100002005CE38120A001443097051C32830197 |
:10E4200044308705B4C0D4E103005CE38120A0013F |
:10E43000443096051C3283014430860517238EE252 |
:10E44000022A82E210C1A0E1643092E50C30C3E1FF |
:10E45000643082E50330D4E5010053E36430920573 |
:10E4600003308C016430820517238EE2022A82E297 |
:10E4700010C1A0E1843092E50C30C3E1843082E524 |
:10E480000230D4E5010053E38430920503308C015F |
:10E4900084308205013081E2FF1003E2070051E37E |
:10E4A000F0AD1B89C6FFFFEA0030E0E30030C0E5B5 |
:10E4B0000030A0E30130C0E50230C0E50330C0E524 |
:10E4C000B430C0E10EF0A0E1FF1001E20131A0E1A3 |
:10E4D0000330D0E7030011E10000A0030100A01306 |
:10E4E0000EF0A0E1FF3FA0E30300D0E7FF0000E251 |
:10E4F0000EF0A0E1FF1001E2010052E30131A001A2 |
:10E500000310C0070121A0110030A0130230C01772 |
:10E510000EF0A0E1FF1001E2FF3FA0E30310C0E70F |
:10E520000EF0A0E1010050E31733A003023A83028A |
:10E53000AC0083051733A013023A83120020A01306 |
:10E54000AC2083150EF0A0E10DC0A0E130D82DE97C |
:10E5500004B04CE2FF5000E2010051E30E00001A4B |
:10E560001743A0E3024A84E20500A0E13E0000EB6D |
:10E570000008A0E1543094E5203803E0543084E5ED |
:10E58000743094E50530C3E1743084E5BC3094E523 |
:10E59000033085E1BC3084E530A81BE91723A0E3F4 |
:10E5A000022A82E2BC3092E50530C3E1BC3082E54C |
:10E5B00030A81BE91633A0E3073A83E2030050E1D9 |
:10E5C0000100A0030EF0A0011633A0E3023983E29C |
:10E5D000030050E10200A0030EF0A0011633A0E3F7 |
:10E5E000093A83E2030050E10300A0030EF0A0010A |
:10E5F0001633A0E30A3A83E2030050E10400A003CB |
:10E600000EF0A0011633A0E30B3A83E2030050E1C1 |
:10E610000500A0030EF0A0011633A0E3033983E246 |
:10E62000030050E10600A0030EF0A0011633A0E3A2 |
:10E630000D3A83E2030050E10700A0030EF0A001B1 |
:10E640001633A0E30E3A83E2030050E10800A00372 |
:10E650000EF0A0011633A0E30F3A83E2030050E16D |
:10E660000900A0030000A0130EF0A0E1FF0000E2EB |
:10E67000010050E3FF0CA003FC0080020EF0A0019B |
:10E68000020050E3FF0CA003F30080020EF0A00193 |
:10E69000040050E3FF0CA003CF0080020EF0A001A5 |
:10E6A000080050E3FF0CA0033F0080020EF0A00121 |
:10E6B000100050E33F0BA0030200000A200050E3CB |
:10E6C0000200001AF30CA0E3FF0080E20EF0A0E1CC |
:10E6D000400050E3CF0CA003FAFFFF0AFF3DA0E388 |
:10E6E0003F3083E2800050E30000A0130300A0014C |
:10E6F0000EF0A0E10DC0A0E100D82DE904B04CE27D |
:10E700001733A0E3013983E2030050E10400001A4B |
:10E710000800A0E30110A0E3D3FCFFEB0800A0E396 |
:10E72000070000EA1733A0E3053A83E2030050E153 |
:10E730000600001A1000A0E30110A0E3CAFCFFEBE2 |
:10E740001000A0E30010A0E3C7FCFFEB00A81BE94A |
:10E750001733A0E3063A83E2030050E100A81B1937 |
:10E760002000A0E30110A0E3BFFCFFEB2000A0E32A |
:10E77000F3FFFFEA0DC0A0E1F0D92DE904B04CE2AF |
:10E780000070A0E10180A0E1BC32D0E16030C3E3C1 |
:10E79000BC32C0E1BC32D0E1B020D1E1023083E133 |
:10E7A000BC32C0E1B230D1E1080053E3BC32D00149 |
:10E7B00008308303BC32D0110830C313BC32C7E128 |
:10E7C000BC32D7E18630C3E3BC32C7E1BC32D7E10B |
:10E7D000B420D8E1023083E1BC32C7E190FDFFEB09 |
:10E7E000803260E0033180E08331A0E10300A0E1EA |
:10E7F0000010A0E31733A0E3023A83E2003093E570 |
:10E80000022C13E20B00001AC14FA0E1A43FA0E1CB |
:10E810000240A0E10120A0E10010A0E1031091E07E |
:10E820000420A2E0A100A0E1823F80E1C240A0E17B |
:10E830000410A0E10300A0E10121A0E1204F82E14A |
:10E840000031A0E10460A0E10350A0E1005095E098 |
:10E850000160A6E00621A0E1254F82E10531A0E19B |
:10E86000035095E00460A6E00631A0E1251F83E196 |
:10E870000501A0E1082098E50222A0E10030A0E314 |
:10E88000571C00EBBC209FE5921083E0A332A0E16F |
:10E89000B432C7E1B432D7E1033183E0033183E01E |
:10E8A000030140E00003A0E1320080E2921083E027 |
:10E8B000A332A0E1B832C7E1B033D7E10339A0E118 |
:10E8C0002339A0E1B033C7E1B033D7E1BC20D8E1B0 |
:10E8D000023083E1B033C7E1B033D7E1033CC3E397 |
:10E8E000B033C7E1B033D7E1BE20D8E1023083E1D5 |
:10E8F000B033C7E1B031D8E1100053E3BC32D711D7 |
:10E900001030C313BC32C711F0A91B19BC32D7E1B8 |
:10E91000103083E3BC32C7E1B433D7E13F30C3E307 |
:10E92000B433C7E1B821D8E1B433D7E1823183E110 |
:10E93000B433C7E1B433D7E1B421D8E1023083E185 |
:10E94000B433C7E1F0A91BE91F85EB516030A0E3A8 |
:10E95000B030C0E10830E0E3B230C0E10220A0E313 |
:10E96000B420C0E1963DA0E3083080E50030A0E38C |
:10E97000BC30C0E1033CA0E3BE30C0E11030A0E3F6 |
:10E98000B031C0E1142080E5182080E50EF0A0E150 |
:10E99000010051E3B033D00101308303B033D01113 |
:10E9A0000130C313B033C0E10EF0A0E10118A0E1C3 |
:10E9B0004118A0E1010052E3B833D00101308301D6 |
:10E9C000B833D0110130C311B833C0E10EF0A0E16B |
:10E9D0000118A0E1050871E3B834D0010430C30385 |
:10E9E000B834D01104308313B834C0E10EF0A0E184 |
:10E9F000FF1001E2020051E30500001A010052E39A |
:10EA0000B834D00102308303B834D0110230C313BC |
:10EA1000B834C0E1010051E30EF0A011010052E34F |
:10EA2000B834D00101308303B834D0110130C3139E |
:10EA3000B834C0E10EF0A0E1010051E3B033D001E1 |
:10EA400080308303B033D0118030C313B033C0E1C2 |
:10EA50000EF0A0E10030A0E30118A0E1A12AA0E19E |
:10EA60002118A0E11F1001E2010052E3B430D001EF |
:10EA70000400000A020052E3B831D0010100000A8C |
:10EA8000030052E3BC33D0010100A0E3103113E0D6 |
:10EA90000000A0030EF0A0E1AA30A0E3B430C0E172 |
:10EAA0000EF0A0E10118A0E1B034D0E1213813E06C |
:10EAB0000000A0030100A0130EF0A0E10118A0E1E6 |
:10EAC0004118A0E1B414C0E10EF0A0E1FF0000E2A3 |
:10EAD000020050E31723A003052A82020700000A60 |
:10EAE000030000CA010050E31723A003012982029A |
:10EAF000020000EA030050E31723A003062A820263 |
:10EB0000010051E3B033D20104308303B033D2119A |
:10EB10000430C313B033C2E10EF0A0E10DC0A0E198 |
:10EB200030D82DE904B04CE20150A0E1FF0000E232 |
:10EB3000020050E31743A003054A84020700000ABD |
:10EB4000030000CA010050E31743A00301498402F7 |
:10EB5000020000EA030050E31743A003064A8402C0 |
:10EB6000DCFCFFEB803260E0033180E08302A0E157 |
:10EB7000830180E08000A0E10510A0E1151B00EBFF |
:10EB8000050080E20C309FE5902383E0A331A0E1F3 |
:10EB9000B032C4E130A81BE9CDCCCCCCFF0000E200 |
:10EBA000020050E31723A003052A82020700000A8F |
:10EBB000030000CA010050E31723A00301298202C9 |
:10EBC000020000EA030050E31723A003062A820292 |
:10EBD000010051E3B033D20102308303B033D211CC |
:10EBE0000230C313B033C2E10EF0A0E1FF1001E226 |
:10EBF000B010C0E10EF0A0E1B000D0E1FF0000E2F3 |
:10EC00000EF0A0E1BC32D0E1013083E3BC32C0E1C0 |
:10EC10000EF0A0E1000050E31723A00301298202B7 |
:10EC2000B033D201023B83031723A01301298212C0 |
:10EC3000B033D211023BC313B033C2E10EF0A0E1F6 |
:10EC4000000050E31723A00301298202B033D20150 |
:10EC5000013B83031723A01301298212B033D21181 |
:10EC6000013BC313B033C2E10EF0A0E10DC0A0E13F |
:10EC700000D82DE904B04CE22000A0E30110A0E38D |
:10EC800084FBFFEB2000A0E30010A0E381FBFFEB7F |
:10EC900000A81BE90008A0E10110A0E34038A0E1B2 |
:10ECA0002008A0E10F0050E30600008A0231A0E333 |
:10ECB000C339A0E1003093E5110093E10100A011F8 |
:10ECC0000000A0030EF0A0E10338A0E12338A0E18A |
:10ECD000103043E23F23A0E3002092E5112392E1AC |
:10ECE0000000A0030100A0130EF0A0E10008A0E1C5 |
:10ECF0000110A0E34038A0E12008A0E10F0050E39C |
:10ED00000600008A0231A0E3C339A0E1083093E590 |
:10ED1000110093E10100A0110000A0030EF0A0E19A |
:10ED20000338A0E12338A0E1103043E23F23A0E301 |
:10ED3000082092E5112392E10000A0030100A01336 |
:10ED40000EF0A0E10008A0E10110A0E34038A0E12E |
:10ED50002008A0E10F0050E30600008A0231A0E382 |
:10ED6000C339A0E1043093E5110093E10100A01143 |
:10ED70000000A0030EF0A0E10338A0E12338A0E1D9 |
:10ED8000103043E23F23A0E3042092E5112392E1F7 |
:10ED90000000A0030100A0130EF0A0E10008A0E114 |
:10EDA00001C0A0E34028A0E12008A0E10F0050E34B |
:10EDB0000B00008A000051E30211A013C119A01139 |
:10EDC0000228A0112228A0111300001A0221A0E39A |
:10EDD000C229A0E10C3092E51C30C3E10C3082E581 |
:10EDE0000EF0A0E1000051E33F13A0130228A01190 |
:10EDF0002228A011102042120700001A3F13A0E39E |
:10EE00000228A0E12228A0E1102042E20C3091E586 |
:10EE10001C32C3E10C3081E50EF0A0E10C3091E52D |
:10EE20001C3283E1FAFFFFEA0008A0E14008A0E1FC |
:10EE300001C0A0E30C0051E11100001A0038A0E16C |
:10EE40002318A0E10F0051E30500008A0221A0E38E |
:10EE5000C229A0E1103092E51C3183E1103082E537 |
:10EE60000EF0A0E13F13A0E30028A0E12228A0E1DA |
:10EE7000102042E2103091E51C3283E1103081E530 |
:10EE80000EF0A0E10038A0E12318A0E10F0051E34B |
:10EE90000500008A0221A0E3C229A0E1143092E516 |
:10EEA0001C3183E1143082E50EF0A0E13F13A0E3B2 |
:10EEB0000028A0E12228A0E1102042E2143091E5D0 |
:10EEC0001C3283E1143081E50EF0A0E10008A0E1DE |
:10EED0004028A0E101C0A0E30C0051E11100001A9C |
:10EEE0000238A0E12318A0E10F0051E30500008AD9 |
:10EEF0000221A0E3C229A0E1183092E51C3183E190 |
:10EF0000183082E50EF0A0E13F13A0E30228A0E153 |
:10EF10002228A0E1102042E2183091E51C3283E162 |
:10EF2000183081E50EF0A0E10238A0E12308A0E14D |
:10EF30000F0050E30231A093C339A0911C20A0918F |
:10EF40001C2083950238A0812338A0811030438291 |
:10EF50001C33A0813F23A0831C3082850EF0A0E1EA |
:10EF6000010050E30800001A0221A0E3C229A0E139 |
:10EF7000203092E5013083E3203082E53F23A0E397 |
:10EF8000203092E5013083E3070000EA0221A0E38C |
:10EF9000C229A0E1203092E50130C3E3203082E5B0 |
:10EFA0003F23A0E3203092E50130C3E3203082E527 |
:10EFB0000EF0A0E1300090E50EF0A0E10118A0E114 |
:10EFC0004118A0E10008A0E10F0850E30138A0912A |
:10EFD0002337A091002F03950138A0812337A0810A |
:10EFE0003F338382002183850EF0A0E10008A0E179 |
:10EFF0004038A0E12008A0E10F0050E30031A091CB |
:10F00000000F13950338A0812337A0813F338382FB |
:10F01000C00093850EF0A0E10118A0E14118A0E125 |
:10F020000008A0E10F0850E30500008A0128A0E1D4 |
:10F030002227A0E1003E12E5203083E3003E02E5F6 |
:10F040000EF0A0E10128A0E12227A0E13F2382E207 |
:10F05000003292E5203083E3003282E50EF0A0E139 |
:10F060000008A0E10118A0E14118A0E140C8A0E11A |
:10F070002008A0E10F0050E30800008A0138A0E159 |
:10F080002337A0E1002E13E51F20C2E3002E03E585 |
:10F09000002E13E5022080E1002E03E50EF0A0E132 |
:10F0A0000128A0E12227A0E13F2382E2003292E57D |
:10F0B0001F30C3E3003282E50C38A0E12338A0E121 |
:10F0C000103043E2001292E5013083E1003282E524 |
:10F0D0000EF0A0E10DC0A0E170D82DE904B04CE223 |
:10F0E0000160A0E10008A0E1FF5002E24048A0E179 |
:10F0F0002008A0E11F0050E300F19F97BF0000EA45 |
:10F1000080F1000094F10000A8F10000BCF10000C3 |
:10F11000D0F10000E4F10000F8F100000CF2000072 |
:10F1200020F2000034F2000048F200005CF200001F |
:10F1300070F2000084F2000098F20000ACF20000CF |
:10F14000C0F20000D4F20000E8F20000FCF200007F |
:10F1500010F3000024F3000038F300004CF300002B |
:10F1600060F3000074F3000088F300009CF30000DB |
:10F17000B0F30000C4F30000D8F30000ECF300008B |
:10F180000408A0E12008A0E10510A0E19C229FE571 |
:10F19000990000EA0408A0E12008A0E10510A0E120 |
:10F1A0008C229FE5940000EA0408A0E12008A0E179 |
:10F1B0000510A0E17C229FE58F0000EA0408A0E191 |
:10F1C0002008A0E10510A0E16C229FE58A0000EA7A |
:10F1D0000408A0E12008A0E10510A0E15C229FE561 |
:10F1E000850000EA0408A0E12008A0E10510A0E1E4 |
:10F1F0004C229FE5800000EA0408A0E12008A0E17D |
:10F200000510A0E13C229FE57B0000EA0408A0E194 |
:10F210002008A0E10510A0E12C229FE5760000EA7D |
:10F220000408A0E12008A0E10510A0E11C229FE550 |
:10F23000710000EA0408A0E12008A0E10510A0E1A7 |
:10F240000C229FE56C0000EA0408A0E12008A0E180 |
:10F250000510A0E1FC219FE5670000EA0408A0E199 |
:10F260002008A0E10510A0E1EC219FE5620000EA82 |
:10F270000408A0E12008A0E10510A0E1DC219FE541 |
:10F280005D0000EA0408A0E12008A0E10510A0E16B |
:10F29000CC219FE5580000EA0408A0E12008A0E185 |
:10F2A0000510A0E1BC219FE5530000EA0408A0E19D |
:10F2B0002008A0E10510A0E1AC219FE54E0000EA86 |
:10F2C0000408A0E12008A0E10510A0E19C219FE531 |
:10F2D000490000EA0408A0E12008A0E10510A0E12F |
:10F2E0008C219FE5440000EA0408A0E12008A0E189 |
:10F2F0000510A0E17C219FE53F0000EA0408A0E1A1 |
:10F300002008A0E10510A0E16C219FE53A0000EA89 |
:10F310000408A0E12008A0E10510A0E15C219FE520 |
:10F32000350000EA0408A0E12008A0E10510A0E1F2 |
:10F330004C219FE5300000EA0408A0E12008A0E18C |
:10F340000510A0E13C219FE52B0000EA0408A0E1A4 |
:10F350002008A0E10510A0E12C219FE5260000EA8D |
:10F360000408A0E12008A0E10510A0E11C219FE510 |
:10F37000210000EA0408A0E12008A0E10510A0E1B6 |
:10F380000C219FE51C0000EA0408A0E12008A0E190 |
:10F390000510A0E1FC209FE5170000EA0408A0E1A9 |
:10F3A0002008A0E10510A0E1EC209FE5120000EA92 |
:10F3B0000408A0E12008A0E10510A0E1DC209FE501 |
:10F3C0000D0000EA0408A0E12008A0E10510A0E17A |
:10F3D000CC209FE5080000EA0408A0E12008A0E195 |
:10F3E0000510A0E1BC209FE5030000EA0408A0E1AD |
:10F3F0002008A0E10510A0E1AC209FE5EEFEFFEBA8 |
:10F400000448A0E12448A0E10400A0E10610A0E126 |
:10F4100061FEFFEB0400A0E10510A0E1FDFEFFEBA3 |
:10F420000400A0E10510A0E10CFFFFEB70A81BE9B0 |
:10F43000400B0000540B0000680B00007C0B000028 |
:10F44000900B000060200000A40B0000B80B00002F |
:10F45000CC0B0000F00B0000140C0000280C000086 |
:10F460003C0C0000500C0000640C0000780C000004 |
:10F4700080890000688C0000ACA000008C0C0000AB |
:10F480004C3800002C220000900C0000940C00006E |
:10F49000980C00009C0C0000A00C0000A40C0000C4 |
:10F4A000000D0000040D0000080D00000C0D000010 |
:10F4B0000DC0A0E110D82DE904B04CE20040A0E15D |
:10F4C0001623A0E3022A82E21633A0E3033A83E282 |
:10F4D000030050E1020050110100A0030200A0133C |
:10F4E0000010A0E360F9FFEB0239A0E3B830C4E1FB |
:10F4F000BC30C4E10020A0E3B421C4E10130A0E3AA |
:10F50000B831C4E1123CA0E3343083E2B031C4E14D |
:10F51000BC21C4E110A81BE90030A0E3B030C0E179 |
:10F52000B230C0E1B430C0E1B630C0E1B830C0E1C3 |
:10F53000BA30C0E1BC30C0E1BE30C0E11030C0E53F |
:10F54000B231C0E1B431C0E1B631C0E1B831C0E19F |
:10F55000BA31C0E1BC31C0E10EF0A0E1B620D1E18A |
:10F56000FF3CA0E3FE3083E2030052E1B431D0015E |
:10F570000130C3030800000AB431D0E1013083E355 |
:10F58000B431C0E1B830D1E1020053E3B431D0016D |
:10F5900002308303B431D0110230C313B431C0E15F |
:10F5A000B821D0E1FF2C02E21030D1E5023083E136 |
:10F5B000B831C0E1B030D1E1C00053E34600000AE9 |
:10F5C0000A0000CA200053E37C00000A020000CABF |
:10F5D000100053E30EF0A0115F0000EA400053E377 |
:10F5E0001D00000A800053E30EF0A0112A0000EA7B |
:10F5F000050C53E38900000A020000CA010B53E323 |
:10F600000EF0A011920000EA060C53E38900000AF4 |
:10F61000010953E30EF0A011B431D0E1013983E3C5 |
:10F62000B431C0E1BC30D1E1040053E3B431D001C6 |
:10F6300004308303B431D0110430C313B431C0E1BA |
:10F64000BC30D1E1040053E37700000AB431D0E1CB |
:10F65000083083E3B431C0E10EF0A0E1B231D1E172 |
:10F66000020C53E3B431D001013C8303B431D01117 |
:10F67000013CC313B431C0E1B831D1E1B830C0E1CD |
:10F68000B230D1E1020053E3B431D0014030C303C2 |
:10F69000B431D01140308313EDFFFFEAB431D1E132 |
:10F6A000020C53E3B431D001023C8303B431D011D6 |
:10F6B000023CC313B431C0E1BA31D1E1BC30C0E186 |
:10F6C000B430D1E1020053E3B431D0018030C30340 |
:10F6D000B431D01180308313DDFFFFEABA31D1E1BC |
:10F6E000BC30C0E1B831D1E1B830C0E1B430D1E1D3 |
:10F6F000020053E3B431D0018030C303B431D011E0 |
:10F7000080308313B431C0E1B230D1E1020053E361 |
:10F71000B431D0014030C303B431D0114030831331 |
:10F72000B431C0E1B231D1E1020C53E3B431D001C4 |
:10F73000013C8303B431D011013CC313B431C0E1A7 |
:10F74000B431D1E1020C53E3B431D001023C830364 |
:10F75000B431D011023CC313BDFFFFEAB231D1E195 |
:10F76000020C53E3B431D001023C8303B431D01115 |
:10F77000023CC313B431C0E1B631D1E1020C53E312 |
:10F78000B431D001013C8303B431D011013CC31327 |
:10F79000B431C0E1B431D0E1403083E3B431C0E1F1 |
:10F7A000B431D0E1103083E3B431C0E1B831D1E1FC |
:10F7B000B830C0E1BC31D1E1BC30C0E10EF0A0E115 |
:10F7C000B231D1E1020C53E3B431D001023C8303E6 |
:10F7D000B431C001B631D1E1020C53E3B431D001F0 |
:10F7E000013C8303B431C001BA30D1E1040053E3DA |
:10F7F000B431D00104308303B431C001B431D0E15D |
:10F80000403083E3B431C0E1B431D0E1203083E350 |
:10F81000B431C0E1B831D1E1B830C0E10EF0A0E1BF |
:10F82000BE30D1E1080053E387FFFF0AB431D0E1D5 |
:10F830000830C3E386FFFFEABE30D1E1080053E39E |
:10F84000B431D00108308303B431D0110830C31370 |
:10F85000B431C0E1BC30D1E1040053E3B431D00194 |
:10F8600004308303B431D0110430C31378FFFFEAAE |
:10F87000010051E30600000AB431D0318338E03191 |
:10F88000A338E0310500003A020051E30EF0A01168 |
:10F89000040000EAB431D0E18338A0E1A338A0E14C |
:10F8A000B431C0E10EF0A0E1123CA0E3343083E2B9 |
:10F8B000B031C0E10EF0A0E1FF1001E2B831D0E1BB |
:10F8C000FF3C03E2B831C0E1B831D0E1013083E15F |
:10F8D000B831C0E10EF0A0E1B801D0E1FF0000E2D4 |
:10F8E0000EF0A0E1B001D0E10EF0A0E1B000D0E157 |
:10F8F0000EF0A0E1B400D0E10EF0A0E10228A0E1FA |
:10F900004228A0E10118A0E1010851E3B820C0019C |
:10F91000BC20C0110EF0A0E10118A0E1BC01D0E1B3 |
:10F92000210810E00100A0130EF0A0E10118A0E1F1 |
:10F93000BC31D0E14138C3E1BC31C0E10EF0A0E1FF |
:10F94000B400D0E10EF0A0E1B000D0E10EF0A0E1F3 |
:10F950000118A0E14118A0E1010052E3B831D00143 |
:10F96000FF30030201308301B831D0110130C311DF |
:10F97000B831C0E10EF0A0E10118A0E1B431D0E14E |
:10F98000033AC3E3B431C0E1B431D0E1413883E19B |
:10F99000B431C0E10EF0A0E1010051E3B831D00173 |
:10F9A000013B8303B831D011013BC313B831C0E12F |
:10F9B0000EF0A0E10DC0A0E100D82DE904B04CE2AA |
:10F9C0001733A0E3073A83E2030050E10400001A72 |
:10F9D000010CA0E30110A0E323F8FFEB010CA0E36E |
:10F9E000070000EA1733A0E3023983E2030050E185 |
:10F9F00000A81B19020CA0E30110A0E31AF8FFEB0A |
:10FA0000020CA0E30010A0E317F8FFEB00A81BE92D |
:10FA1000B020D1E1FF3CA0E3CF3083E2030052E10C |
:10FA20001000001AB030D0E13030C3E3B030C0E194 |
:10FA3000B430D1E1400053E3B030D0014030830313 |
:10FA4000B030D0114030C313B030C0E1B630D1E196 |
:10FA5000800053E3B030D00180308303B030D01148 |
:10FA60008030C313050000EAB030D0E13030C3E38A |
:10FA7000B030C0E1B030D0E1B020D1E1023083E15C |
:10FA8000B030C0E1B230D1E1040053E30A00001A03 |
:10FA9000B430D0E1043083E3B430C0E1BA30D1E116 |
:10FAA000080053E3B430D00108308303B430D011E0 |
:10FAB0000830C313B430C0E1100000EAB430D0E124 |
:10FAC0000430C3E3B430C0E1B030D0E1FF3003E232 |
:10FAD000B030C0E10C20D1E5B030D0E1023483E198 |
:10FAE000B030C0E1B031D0E1FF3C03E2B031C0E161 |
:10FAF0000D30D1E5B021D0E1023083E1B031C0E179 |
:10FB0000B030D0E10F30C3E3B030C0E1B030D0E16D |
:10FB1000B820D1E1023083E1B030C0E10EF0A0E1C5 |
:10FB20003030E0E3B030C0E10430E0E3B230C0E1B7 |
:10FB30004030E0E3B430C0E18030E0E3B630C0E113 |
:10FB40000730A0E3B830C0E10830E0E3BA30C0E1EC |
:10FB50000030A0E30C30C0E50D30C0E50EF0A0E1B0 |
:10FB6000010051E3B430D00102308303B430D0112E |
:10FB70000230C313B430C0E10EF0A0E10118A0E1DF |
:10FB80004118A0E1010052E3B431D00101308301FA |
:10FB9000B431D0110130C311B431C0E10EF0A0E195 |
:10FBA0000118A0E14118A0E1010052E30700001A8A |
:10FBB0000138A0E1020853E3B432D00102308303DC |
:10FBC000B432D01101308313B432C0E10EF0A0E1A1 |
:10FBD0000138A0E1020853E3B432D0010230C3037C |
:10FBE000B432D0110130C313F6FFFFEA0118A0E1CF |
:10FBF0004118A0E1B810C0E10EF0A0E1B800D0E1DA |
:10FC00000EF0A0E1010051E3B430D00101308303D4 |
:10FC1000B430D0110130C313B430C0E10EF0A0E114 |
:10FC20000030A0E30118A0E1A12AA0E12118A0E181 |
:10FC30001F1001E2010052E3BC30D0010100000AB4 |
:10FC4000020052E3B831D0010100A0E3103113E00B |
:10FC50000000A0030EF0A0E11F1001E20130A0E3BC |
:10FC60001331A0E1B032C0E10EF0A0E10118A0E133 |
:10FC7000BC31D0E1213813E00000A0030100A01343 |
:10FC80000EF0A0E10118A0E14118A0E1B012C0E11E |
:10FC90000EF0A0E10DC0A0E110D82DE904B04CE2B7 |
:10FCA0000040A0E11733A0E3033983E2030050E1F1 |
:10FCB0000500001A4000A0E30110A0E36AF7FFEB83 |
:10FCC0004000A0E30010A0E367F7FFEB1733A0E3C9 |
:10FCD0000D3A83E2030054E110A81B198000A0E351 |
:10FCE0000110A0E360F7FFEB8000A0E30010A0E3A9 |
:10FCF0005DF7FFEB10A81BE90DC0A0E1F0D82DE9DE |
:10FD000004B04CE20040A0E10160A0E10F70A0E36C |
:10FD100070F8FFEB803260E0033180E08351A0E1B6 |
:10FD20000400A0E10010A0E3760000EB1430D4E55D |
:10FD30001F3003E21430C4E5FE34E0E3693843E2E7 |
:10FD4000C53E43E2030055E11430D495403083931F |
:10FD50002500009A7C319FE5030055E11430D495CD |
:10FD6000603083932000009ACB37A0E3073983E209 |
:10FD70004F3083E2030055E11430D495833CE09189 |
:10FD8000A33CE0911800009A3F33E0E3433943E29B |
:10FD9000AE3D43E2030055E11430D4950330E091C9 |
:10FDA0005F3003920330E0910F00009AFB34E0E3F0 |
:10FDB000ED3943E2033B43E2030055E11430D495AF |
:10FDC000033DE091233DE0910700009AFA34E0E31F |
:10FDD000A13A43E20F3C43E2030055E10300008AED |
:10FDE0001430D4E5833DE0E1A33DE0E11430C4E507 |
:10FDF0000400A0E10110A0E3420000EB0630D6E5CC |
:10FE0000100053E30030D405103083030030D415C4 |
:10FE10001030C3130030C4E50730D6E5040053E3C7 |
:10FE20000030D405043083030030D4150430C313EC |
:10FE30000030C4E50430D6E51030C4E51430D4E514 |
:10FE40000630C3E31430C4E5B420D6E1032C02E24B |
:10FE50001430D4E5C23383E11430C4E5001096E5D4 |
:10FE6000613BA0E32A3E83E2030051E10600008AE1 |
:10FE70000500A0E1571600EB070040E28007A0E173 |
:10FE80004078A0E17F3007E20D0000EA001096E51F |
:10FE9000613AA0E32A3D83E2030051E10900008AB0 |
:10FEA0000500A0E14B1600EB090040E228309FE579 |
:10FEB000902383E08337A0E14378A0E1873CE0E131 |
:10FEC000A33CE0E10C30C4E50738A0E1A33BA0E18E |
:10FED0001C30C4E5F0A81BE9FF596202ABAAAAAA2C |
:10FEE0004E3DA0E3083083E2003080E50030A0E31F |
:10FEF000B430C0E11030E0E30630C0E50430E0E3A8 |
:10FF00000730C0E50EF0A0E1010051E30030D0055C |
:10FF1000203083030030C0050030D005203083033B |
:10FF20000030D0152030C3130030C0E50EF0A0E142 |
:10FF3000010051E30030D005083083030030D015B4 |
:10FF40000830C3130030C0E50EF0A0E1010051E31A |
:10FF50000030D005023083030030D0150230C313C7 |
:10FF60000030C0E50EF0A0E1010051E30030D00503 |
:10FF7000043083030030D0150430C3130030C0E5D3 |
:10FF80000EF0A0E1010051E30030D0050130830301 |
:10FF90000030D0150130C3130030C0E50EF0A0E1F1 |
:10FFA000FF1001E21733A0E3033983E2030050E1BD |
:10FFB0000400000A1733A0E30D3A83E2030050E186 |
:10FFC0000000A0130EF0A0110000D1E70EF0A0E198 |
:10FFD0000118A0E108C0D0E50030D0E50420D0E54C |
:10FFE0000229A0E10C2D82E1043003E20336A0E1F6 |
:10FFF000223983E1213813E00000A0030100A0139F |
:020000021000EC |
:100000000EF0A0E10DC0A0E10E002DE910D82DE901 |
:1000100010B04CE204D04DE20040A0E1B430DBE18E |
:10002000B2314BE10A205BE5B2315BE1800053E382 |
:10003000400053130800000A020C53E30600000AB4 |
:10004000020B53E3010B53130300000A010A53E3AD |
:100050000100000A020A53E30800001A0830D4E540 |
:10006000B2315BE1400053E31000000A020A53E39F |
:100070000030D405203083030030C4051B0000EAA3 |
:10008000B2315BE1040053E3010053130300000AA3 |
:10009000080053E30100000A200053E30A00001A9D |
:1000A0000430D4E5B2315BE1010053E30100001AF2 |
:1000B0001820C4E50D0000EAB2315BE1200053E3F3 |
:1000C000080053131830D405080000EAB2315BE190 |
:1000D000010C53E3020053130400001A0010A0E3C4 |
:1000E00088FFFFEB0400A0E10110A0E385FFFFEB18 |
:1000F00010A81BE9FF1001E2FF2002E2010052E319 |
:1001000001108103FE1001121810C0E50EF0A0E1ED |
:10011000FF1001E21810C0E50EF0A0E11800D0E5D4 |
:10012000FF0000E20EF0A0E10030A0E10400D0E505 |
:100130000830D3E5030480E10009A0E12009A0E133 |
:100140000EF0A0E10DC0A0E110D82DE904B04CE202 |
:100150000148A0E14448A0E1F2FFFFEB0008A0E164 |
:10016000040850E10000A0130100A00310A81BE93F |
:10017000FF0000E2FF1001E215C3A0E300008CE5E0 |
:1001800004108CE52221A0E10C208CE52331A0E1B4 |
:1001900010308CE518309CE5183083E318308CE57E |
:1001A0000EF0A0E110402DE90008A0E14008A0E118 |
:1001B0000228A0E142C8A0E10338A0E143E8A0E1A1 |
:1001C000F840DDE1010C51E31523A003183092053E |
:1001D000013C83031523A01318309215013CC3136F |
:1001E000183082E51523A0E3102082E2003092E56A |
:1001F0000331A0E16010A0E3B010C3E1002092E55C |
:100200000038A0E12338A0E1023183E10C28A0E10D |
:10021000223883E10E28A0E1223883E10428A0E1FE |
:10022000223883E10320A0E3B020C3E11080BDE8C1 |
:1002300004D04DE200008DE500309DE52020A0E3D4 |
:10024000B020C3E100309DE5D020A0E3B020C3E1A1 |
:1002500004D08DE20EF0A0E104D04DE200008DE567 |
:1002600000309DE58020A0E3B020C3E100309DE593 |
:10027000D020A0E3B020C3E104D08DE20EF0A0E1D5 |
:100280000118A0E14118A0E10330C0E34020A0E341 |
:10029000B020C3E1B010C0E10EF0A0E1FF0000E229 |
:1002A0000118A0E14118A0E11523A0E3102082E28B |
:1002B000003092E50331A0E1C0C0A0E3B0C0C3E1CB |
:1002C000003092E50331A0E1B01083E10EF0A0E12F |
:1002D000000090E50EF0A0E1FF0000E21523A0E38E |
:1002E000102082E2003092E50331A0E19810A0E3F3 |
:1002F000B010C3E1003092E50331A0E1000093E7C4 |
:10030000003092E50331A0E1FF20A0E3B020C3E17B |
:100310000EF0A0E104D04DE200108DE5FF0000E2F8 |
:1003200000309DE57010A0E3B010C3E100309DE502 |
:10033000B030D3E1800013E3FBFFFF0A00309DE5FE |
:10034000B020D3E100309DE5FF10A0E3B010C3E181 |
:10035000000012E10000A0030100A01304D08DE210 |
:100360000EF0A0E11523A0E3102082E2003092E518 |
:100370000331A0E19010A0E3B010C3E1003092E59A |
:100380000331A0E1B401D3E1003092E50331A0E1F3 |
:10039000FF20A0E3B020C3E1A005A0E1010080E2BE |
:1003A000030000E20EF0A0E11533A0E3180093E58E |
:1003B000010C00E2000050E20100A0130EF0A0E1E9 |
:1003C00004D04DE200008DE500309DE5B020A0E3B3 |
:1003D000B020C3E104D08DE20EF0A0E104D04DE2E4 |
:1003E00000008DE500309DE5D020A0E3B020C3E102 |
:1003F00004D08DE20EF0A0E104D04DE200008DE5C6 |
:1004000000309DE55020A0E3B020C3E104D08DE290 |
:100410000EF0A0E104D04DE200008DE5010051E3B3 |
:100420000500001A00309DE56020A0E3B020C3E184 |
:1004300000309DE5B010C3E1050000EA00309DE505 |
:100440006020A0E3B020C3E100309DE5D020A0E310 |
:10045000B020C3E100309DE5FF20A0E3B020C3E160 |
:1004600004D08DE20EF0A0E11523A0E3102082E27B |
:10047000003092E50331A0E19010A0E3B010C3E199 |
:10048000003092E50331A0E1B011D3E1003092E5F4 |
:100490000331A0E1FF20A0E3B020C3E1010010E19F |
:1004A0000000A0030100A0130EF0A0E104D04DE273 |
:1004B00000008DE50010A0E300309DE57020A0E372 |
:1004C000B020C3E100309DE5B030D3E1800013E3FC |
:1004D0000800001AFF24E0E3012042E2011081E25B |
:1004E00000309DE5B030D3E1800013E30100001A35 |
:1004F000020051E1F8FFFF9A00309DE5FF20A0E3E4 |
:10050000B020C3E1FF04E0E3000051E00100A013CC |
:1005100004D08DE20EF0A0E11613A0E3011A81E2EF |
:10052000043091E5042090E5023083E1043081E558 |
:100530000030D0E5010053E3083091050420900518 |
:1005400002308301083081051633A013013A83126B |
:1005500004109015082093150120C211082083155E |
:100560000EF0A0E10DC0A0E100D82DE904B04CE2EE |
:10057000020AA0E30110A0E33BF5FFEB020AA0E3AF |
:100580000010A0E338F5FFEB00A81BE90030A0E362 |
:10059000043080E50030C0E50EF0A0E1010050E33A |
:1005A0001623A003012A8202003092050230830341 |
:1005B0001623A013012A8212003092150230031272 |
:1005C000003082E50EF0A0E11633A0E3013A83E2A9 |
:1005D000102093E5020080E1100083E50EF0A0E119 |
:1005E0001633A0E3013A83E20C3093E5030010E1F7 |
:1005F0000000A0030100A0130EF0A0E11633A0E359 |
:10060000013A83E20C0083E50EF0A0E11623A0E39B |
:10061000012A82E20C3092E5030010E10300000A97 |
:10062000043092E5030010E10100A0130EF0A011C8 |
:100630000000A0E30EF0A0E11633A0E3013A83E24C |
:100640000C0083E50EF0A0E10632A0E3213D83E239 |
:100650000008A0E12008A0E1000083E50EF0A0E181 |
:100660000632A0E3213D83E2000093E50008A0E10B |
:100670002008A0E10EF0A0E1213DA0E3463283E294 |
:100680000008A0E12008A0E1000083E50EF0A0E151 |
:10069000213DA0E3463283E2000093E50008A0E19B |
:1006A0002008A0E10EF0A0E1213DA0E3863283E224 |
:1006B000000093E50008A0E12008A0E10EF0A0E111 |
:1006C000213DA0E3C63283E20008A0E12008A0E1BA |
:1006D000000083E50EF0A0E1213DA0E3C63283E2F5 |
:1006E000000093E50008A0E12008A0E10EF0A0E1E1 |
:1006F0000632A0E3853E83E20700C0E30008A0E1E4 |
:100700002008A0E1000083E50EF0A0E10632A0E39E |
:10071000853E83E2000093E50008A0E12008A0E107 |
:100720000EF0A0E1FF0000E20632A0E3023B83E20C |
:100730000118A0E12118A0E1001183E70EF0A0E16B |
:10074000FF0000E20632A0E3023B83E2000193E7F0 |
:100750000008A0E12008A0E10EF0A0E1FF0000E207 |
:100760000118A0E10622A0E3022B82E2003192E709 |
:10077000763CC3E37030C3E3031881E12118A0E1A4 |
:10078000001182E70EF0A0E1FF0000E20632A0E3D4 |
:10079000023B83E2000193E7060C00E20EF0A0E1C9 |
:1007A000FF0000E20118A0E10632A0E3023B83E271 |
:1007B000003193E7073AC3E34030C3E30338A0E1D5 |
:1007C0004338A0E14128A0E1010611E310302312D3 |
:1007D000200012E3203023120622A0E3022B82E243 |
:1007E0000338A0E12338A0E1003182E70EF0A0E158 |
:1007F000FF0000E20118A0E10632A0E3023B83E221 |
:10080000003193E70139C3E37030C3E30338A0E15B |
:100810004338A0E14128A0E1010211E3013A23128B |
:10082000020A12E3023A23120622A0E3022B82E21A |
:100830000338A0E12338A0E1003182E70EF0A0E107 |
:100840000DC0A0E130D82DE904B04CE2FF5000E229 |
:10085000FF4001E20500A0E1B8FFFFEB0008A0E1C6 |
:100860004008A0E1010054E30622A003022B82020B |
:10087000013AC0030400000A020054E330A81B1927 |
:100880000622A0E3022B82E21030C0E30338A0E18D |
:100890002338A0E1053182E730A81BE9FF0000E220 |
:1008A0000632A0E3023B83E2000193E7300000E25E |
:1008B0000EF0A0E1FF0000E20632A0E3023B83E27B |
:1008C000000193E7030A00E20EF0A0E1FF0000E25E |
:1008D0000622A0E3022B82E2003192E7073AC3E34B |
:1008E0004030C3E30338A0E12338A0E1303023E2F5 |
:1008F000003182E70EF0A0E1FF0000E20622A0E353 |
:10090000022B82E2003192E70139C3E37030C3E386 |
:100910000338A0E12338A0E1033A23E2003182E763 |
:100920000EF0A0E1FF0000E20622A0E3022B82E22B |
:10093000003192E7013C83E3073AC3E37030C3E33D |
:100940000338A0E12338A0E1003182E70EF0A0E1F6 |
:10095000FF0000E20622A0E3022B82E2003192E7D0 |
:10096000713CC3E37030C3E30338A0E12338A0E156 |
:10097000003182E70EF0A0E1FF0000E20622A0E3D2 |
:10098000022B82E2003192E7713CC3E37030C3E393 |
:100990000338A0E12338A0E1003182E70EF0A0E1A6 |
:1009A000FF0000E20622A0E3022B82E2003192E780 |
:1009B000013C83E3073AC3E37030C3E30338A0E1AB |
:1009C0002338A0E1003182E70EF0A0E1FF0000E251 |
:1009D0000622A0E3022B82E2003192E7013C83E38E |
:1009E000073AC3E37030C3E30338A0E12338A0E142 |
:1009F000003182E70EF0A0E1FF0000E20622A0E352 |
:100A0000022B82E2003192E7713CC3E37030C3E312 |
:100A10000338A0E12338A0E1003182E70EF0A0E125 |
:100A2000FF0000E20632A0E3023B83E2000193E70D |
:100A3000300000E2100050E30000A0130100A0030A |
:100A40000EF0A0E1FF0000E20632A0E3023B83E2E9 |
:100A5000000193E7030A00E2010A50E30000A0133B |
:100A60000100A0030EF0A0E1FF0000E20622A0E3D7 |
:100A7000022B82E2003192E77030C3E3033AA0E137 |
:100A8000233AA0E1003182E70EF0A0E1FF0000E28E |
:100A90000622A0E3022B82E2003192E7073AC3E389 |
:100AA000F030C3E30338A0E12338A0E1003182E74E |
:100AB0000EF0A0E1FF0000E20622A0E3022B82E29A |
:100AC000003192E7073AC3E37030C3E30338A0E193 |
:100AD0002338A0E1013983E3003182E70EF0A0E181 |
:100AE000FF0000E20622A0E3022B82E2003192E73F |
:100AF000073AC3E37030C3E30338A0E12338A0E131 |
:100B0000403083E3003182E70EF0A0E1FF0000E215 |
:100B10000622A0E3022B82E2003192E7010913E3EF |
:100B20000EF0A001003192E7073AC3E37030C3E34F |
:100B30000338A0E12338A0E1013983E3003182E7E3 |
:100B40000EF0A0E1FF0000E20622A0E3022B82E209 |
:100B5000003192E7400013E30EF0A001003192E76C |
:100B6000073AC3E37030C3E30338A0E12338A0E1C0 |
:100B7000403083E3003182E70EF0A0E1FF0000E2A5 |
:100B8000FF1001E20622A0E3022B82E2003192E78D |
:100B9000073AC3E37030C3E30338A0E12338A0E190 |
:100BA000013083E1003182E70EF0A0E1FF0000E2B6 |
:100BB0000632A0E3023B83E2000193E70F0000E26C |
:100BC0000EF0A0E1FF0000E206C2A0E385CE8CE2B9 |
:100BD00000209CE50228A0E18001A0E1222880E01D |
:100BE000062282E2B230D2E10338A0E1003082E591 |
:100BF00000309CE50338A0E1230880E0060280E293 |
:100C00000310C1E30118A0E12118A0E1003090E534 |
:100C1000031081E1001080E50EF0A0E1FF0000E28A |
:100C200006C2A0E385CE8CE200309CE50338A0E14B |
:100C30008001A0E1233880E0063283E2B020D3E1D6 |
:100C4000002083E500309CE50338A0E1230880E024 |
:100C5000060280E20118A0E12119A0E10119A0E13A |
:100C6000003090E5031081E1001080E50EF0A0E176 |
:100C7000FF0000E20632A0E3853E83E2003093E508 |
:100C80000338A0E18001A0E1230880E0060280E2B1 |
:100C9000B000D0E10EF0A0E1FF0000E20632A0E3D8 |
:100CA000853E83E2003093E50338A0E18001A0E1B6 |
:100CB000230880E0060280E2B200D0E10EF0A0E15D |
:100CC000FF0000E206C2A0E385CE8CE200209CE596 |
:100CD0000228A0E18001A0E1222880E0462282E2F1 |
:100CE000003092E5FF3FC3E30330C3E3003082E509 |
:100CF00000309CE50338A0E1230880E0460280E252 |
:100D00000118A0E1003090E5213883E1003080E552 |
:100D10000EF0A0E110402DE9FFC000E20118A0E1B3 |
:100D20004118A0E10040A0E30138A0E13F0853E3EF |
:100D3000A3E8A0910241A0830138A08123EBA08108 |
:100D40000602A0E3850E80E2002090E50228A0E1E3 |
:100D50008C11A0E1222881E0462282E2003092E557 |
:100D60000231C3E3003082E5003090E50338A0E1B2 |
:100D7000233881E0463283E2002093E5022084E1BB |
:100D8000002083E5003090E50338A0E1233881E0BE |
:100D9000463283E2002093E51F23C2E3002083E56F |
:100DA000003090E50338A0E1233881E0463283E249 |
:100DB000002093E50E2D82E1002083E5003090E5D0 |
:100DC0000338A0E1231881E0461281E2003091E56A |
:100DD000FF37C3E30338C3E3003081E51080BDE88B |
:100DE000FF0000E20632A0E3853E83E2003093E597 |
:100DF0000338A0E18001A0E1230880E0460280E200 |
:100E0000B000D0E1000BA0E1200BA0E10EF0A0E1CA |
:100E1000FF0000E20632A0E3853E83E2003093E566 |
:100E20000338A0E18001A0E1230880E0460280E2CF |
:100E3000B200D0E1000BA0E1200BA0E10EF0A0E198 |
:100E400004E02DE5FF0000E206E2A0E385EE8EE27D |
:100E500000C09EE50CC8A0E18001A0E12CC880E0A4 |
:100E600006C28CE2B230DCE10338A0E100308CE550 |
:100E700000309EE50338A0E1233880E0063283E2AB |
:100E80000310C1E30118A0E12118A0E100C093E51F |
:100E90000C1081E1001083E500309EE50338A0E1ED |
:100EA000233880E0063283E2B010D3E1001083E5FE |
:100EB00000309EE50338A0E1230880E0060280E2CE |
:100EC0000228A0E12229A0E10229A0E1003090E55A |
:100ED000032082E1002080E504F09DE4FF0000E2B1 |
:100EE00006C2A0E385CE8CE200209CE50228A0E1AA |
:100EF0008001A0E1222880E0062282E2B230D2E125 |
:100F00000338A0E1003082E500309CE50338A0E121 |
:100F1000230880E0060280E20310C1E30118A0E18B |
:100F20002118A0E1003090E5031081E1001080E578 |
:100F30000EF0A0E1FF0000E206C2A0E385CE8CE245 |
:100F400000309CE50338A0E18001A0E1233880E077 |
:100F5000063283E2B020D3E1002083E500309CE537 |
:100F60000338A0E1230880E0060280E20118A0E136 |
:100F70002119A0E10119A0E1003090E5031081E101 |
:100F8000001080E50EF0A0E1FF0000E20632A0E3D1 |
:100F9000853E83E2003093E50338A0E18001A0E1C3 |
:100FA000230880E0060280E2B000D0E10EF0A0E16C |
:100FB000FF0000E20632A0E3853E83E2003093E5C5 |
:100FC0000338A0E18001A0E1230880E0060280E26E |
:100FD000B200D0E10EF0A0E10DC0A0E170D82DE983 |
:100FE00004B04CE2FF4000E2FF6001E20258A0E1E1 |
:100FF0002558A0E10400A0E10610A0E10520A0E131 |
:10100000040000EB0400A0E10610A0E10520A0E12F |
:101010003F0000EB70A81BE90DC0A0E110D82DE93E |
:1010200004B04CE2FFC000E2FF1001E20228A0E1A0 |
:101030004228A0E100E0A0E3020051E30400001A0E |
:101040000218A0E12118A0E10C00A0E11BFFFFEBBA |
:1010500010A81BE9010051E310A81B190238A0E1F8 |
:101060003F0853E3A348A09102E9A0830238A0817E |
:10107000234BA0810602A0E3850E80E2002090E5CC |
:101080000228A0E18C11A0E1222881E0462282E220 |
:10109000003092E50239C3E3003082E5003090E58C |
:1010A0000338A0E1233881E0463283E2002093E553 |
:1010B00002208EE1002083E5003090E50338A0E1B6 |
:1010C000233881E0463283E2002093E51F2BC2E300 |
:1010D000002083E5003090E50338A0E1233881E06B |
:1010E000463283E2002093E5042582E1002083E577 |
:1010F000003090E50338A0E1231881E0461281E238 |
:10110000003091E5FF3FC3E30330C3E3003081E5E6 |
:1011100010A81BE910402DE9FFE000E2FF1001E2FA |
:101120000228A0E142C8A0E1020051E30F00001A2A |
:101130000602A0E3850E80E2003090E50338A0E1CE |
:101140008E11A0E1233881E0463283E2B020D3E162 |
:10115000002083E5003090E50338A0E1231881E00A |
:10116000461281E2003091E50C3883E12E0000EA5E |
:10117000010051E31080BD180040A0E30C38A0E14D |
:101180003F0853E3A3C8A0910241A0830C38A0817B |
:1011900023CBA0810602A0E3850E80E2002090E52B |
:1011A0000228A0E18E11A0E1222881E0462282E2FD |
:1011B000003092E50231C3E3003082E5003090E573 |
:1011C0000338A0E1233881E0463283E2002093E532 |
:1011D000022084E1002083E5003090E50338A0E19F |
:1011E000233881E0463283E2002093E51F23C2E3E7 |
:1011F000002083E5003090E50338A0E1233881E04A |
:10120000463283E2002093E50C2D82E1002083E545 |
:10121000003090E50338A0E1231881E0461281E216 |
:10122000003091E5FF37C3E30338C3E3003081E5C5 |
:101230001080BDE8FF0000E20632A0E3853E83E2B5 |
:10124000003093E50338A0E18001A0E1230880E0AD |
:10125000460280E2B000D0E1000BA0E1200BA0E14B |
:101260000EF0A0E1FF0000E20632A0E3853E83E23B |
:10127000003093E50338A0E18001A0E1230880E07D |
:10128000460280E2B200D0E1000BA0E1200BA0E119 |
:101290000EF0A0E1FF0000E2FF1001E2010051E3C7 |
:1012A0000800001A0622A0E3022B82E2003192E736 |
:1012B000073AC3E37030C3E30338A0E12338A0E169 |
:1012C000403083E3090000EA020051E30EF0A01170 |
:1012D0000622A0E3022B82E2003192E7073AC3E341 |
:1012E0007030C3E30338A0E12338A0E1013983E380 |
:1012F000003182E70EF0A0E1FF1001E20118A0E149 |
:10130000001C81E12118A0E10100A0E10EF0A0E1A4 |
:101310000008A0E14008A0E1FF3000E20008A0E1E1 |
:101320000334A0E1203C83E10300A0E10EF0A0E142 |
:10133000FF0000E20622A0E3862E82E2003092E562 |
:10134000EF30C3E3003082E50002A0E1000082E557 |
:101350000EF0A0E1FF0000E20622A0E3862E82E26A |
:10136000003092E50730C3E3003082E5000082E5FB |
:101370000EF0A0E1FF0000E2FF1001E285CEA0E345 |
:1013800086C28CE20111A0E100309CE50F20A0E3B1 |
:101390001231C3E100308CE500309CE5103183E16F |
:1013A00000308CE50EF0A0E1FF0000E2852EA0E306 |
:1013B000C62282E2003092E50130C3E3003082E5CC |
:1013C000852EA0E3862282E2003092E5033AC3E351 |
:1013D000003082E5010080E2003092E5003683E1D2 |
:1013E000003082E50EF0A0E1852EA0E3862282E2A5 |
:1013F000003092E5033AC3E3003082E50EF0A0E14D |
:10140000FF0000E2852EA0E3C62282E2003092E5D2 |
:101410008030C3E3003082E5852EA0E3462282E2DD |
:10142000003092E50110A0E3113083E1003082E545 |
:101430000EF0A0E1FF0000E2852EA0E3462282E24A |
:10144000003092E50110A0E31130C3E1003082E5E5 |
:101450000EF0A0E1FF0000E2852EA0E3C62282E2AA |
:10146000003092E51E3CC3E3003082E5003092E597 |
:10147000803483E1003082E50EF0A0E1FF0000E25D |
:10148000852EA0E3C62282E2003092E51E30C3E33F |
:10149000003082E5003092E5803083E1003082E563 |
:1014A0000EF0A0E1853EA0E3C63283E2002093E582 |
:1014B000012C82E3002083E5002093E5022A82E3E9 |
:1014C000002083E50EF0A0E1853EA0E3C63283E272 |
:1014D000002093E5012082E3002083E5002093E5CE |
:1014E000202082E3002083E50EF0A0E1853EA0E30A |
:1014F000C63283E2002093E5012CC2E3002083E59D |
:10150000002093E5022AC2E3002083E50EF0A0E16B |
:10151000853EA0E3C63283E2002093E50120C2E3CA |
:10152000002083E5002093E52020C2E3002083E52E |
:101530000EF0A0E1852EA0E3C62282E2003092E503 |
:10154000403083E3003082E50EF0A0E1852EA0E379 |
:10155000C62282E2003092E54030C3E3003082E5EB |
:101560000EF0A0E1FF0000E2862EA0E3462282E218 |
:10157000003092E5FF30C3E3003082E5003092E5B1 |
:10158000030080E1000082E50EF0A0E1FF0000E230 |
:10159000862EA0E3462282E2003092E5FF3CC3E3C0 |
:1015A000003082E5003092E5003483E1003082E5CE |
:1015B0000EF0A0E1FF0000E20622A0E3862E82E208 |
:1015C000003092E5FF3003E2003082E5003092E522 |
:1015D000003483E1003082E50EF0A0E10632A0E3A2 |
:1015E000863E83E2003093E50000A0E30EF0A0E128 |
:1015F0000DC0A0E100D82DE904B04CE20008A0E144 |
:101600002008B0E12C309F05003093050120A00395 |
:10161000B821C30100A81B091C309FE5003093E5E9 |
:101620000FE0A0E100F093E508309FE5003093E57E |
:10163000120083E200A81BE980180004601800046F |
:101640000DC0A0E110D82DE904B04CE250309FE568 |
:10165000002093E50510D2E548309FE50130D3E541 |
:10166000030051E10C00008A0430D2E5000053E38E |
:101670000900001AB840D2E1000054E30600001A45 |
:101680001210C2E520309FE5003093E50FE0A0E1A5 |
:1016900004F093E50400A0E110A81BE90200A0E318 |
:1016A00010A81BE9801800048C01000460180004D5 |
:1016B0000DC0A0E100D82DE904B04CE20008A0E183 |
:1016C0002008B0E12C309F05003093050120A003D5 |
:1016D000B821C30100A81B091C309FE5003093E529 |
:1016E0000FE0A0E108F093E508309FE5003093E5B6 |
:1016F000140083E200A81BE98018000460180004AD |
:101700000DC0A0E130D82DE904B04CE298309FE53F |
:10171000002093E594409FE5003094E50900D3E56F |
:101720000510D3E50FE0A0E118F092E50050A0E12C |
:10173000004094E51230D4E5000053E31800000A9D |
:10174000000050E30500001A0830D4E5000053E320 |
:101750000200001A0430D4E5000053E30100000A3F |
:101760000200A0E330A81BE9000050E30C00001ABF |
:101770003C309FE5003093E50FE0A0E10CF093E5ED |
:1017800028109FE5002091E50930D2E51330C2E52D |
:10179000002091E50530D2E51430C2E50500A0E156 |
:1017A00030A81BE90200A0E330A81BE900180004E0 |
:1017B00080180004601800040DC0A0E100D82DE9D5 |
:1017C00004B04CE20008A0E12008B0E1FC309F0525 |
:1017D000003093050220A003B821C30100A81B0913 |
:1017E000EC109FE50030A0E3B030C1E1DC309FE5B4 |
:1017F000002093E50030D2E57F0013E30A00001AD1 |
:101800001120D2E5200012E30030D11502308313FD |
:101810000030C115400012E3B4209F050030D2050E |
:101820000130C3032200000A1E0000EA9C309FE53D |
:10183000003093E50030D3E57F3003E2010053E34D |
:101840008C009F0500A81B0980309FE5002093E5D0 |
:101850000030D2E57F3003E2020053E30000A01322 |
:1018600000A81B190920D2E50230A0E10F2002E2F6 |
:10187000800013E30500000A0632A0E3023B83E286 |
:10188000023193E7303003E2100053E3040000EA32 |
:101890000632A0E3023B83E2023193E7033A03E21C |
:1018A000010A53E30300001A24209FE50030D2E52B |
:1018B000013083E30030C2E518309FE5003093E546 |
:1018C0000FE0A0E110F093E504009FE500A81BE9FC |
:1018D00080180004A0170004601800040DC0A0E1E7 |
:1018E00030D82DE904B04CE280319FE5002093E52B |
:1018F0000000D2E57F0010E21130D2052030C30392 |
:101900001130C20530A81B09020050E30200A013E9 |
:1019100030A81B1954319FE5002093E5B430D2E183 |
:10192000000053E31B00001A0830D2E5000053E327 |
:101930001800001A34319FE5003093E50900D3E523 |
:101940008040C0E30410A0E1D930D3E1000053E3AC |
:101950000632A0B3023B83B2043193B7302003B206 |
:101960000632A0A3023B83A2043193A7032A03A259 |
:10197000FC309FE50030D3E5000052E30300511135 |
:101980000400002AE4309FE5003093E51230D3E5EF |
:10199000000053E30100001A0200A0E330A81BE995 |
:1019A000800010E30C00000A0632A0E3023B83E251 |
:1019B000043193E7303003E2100053E32500001AAE |
:1019C000FF4004E20400A0E15DFCFFEB0400A0E1A5 |
:1019D0003010A0E371FBFFEB1E0000EA0652A0E30B |
:1019E000025B85E2043195E7033A03E2010A53E31F |
:1019F0001800001A000054E30B00001A74309FE531 |
:101A00002C10D3E50400A0E1C1FCFFEB043195E705 |
:101A10000139C3E37030C3E30338A0E12338A0E108 |
:101A2000033A23E2043185E70A0000EAFF0004E2FA |
:101A300035FCFFEB0622A0E3022B82E2043192E7A1 |
:101A40000139C3E37030C3E30338A0E12338A0E1D8 |
:101A5000033A23E2043182E71C309FE5003093E52E |
:101A60000FE0A0E114F093E50000A0E330A81BE92B |
:101A7000801800048C010004900100046018000428 |
:101A80000DC0A0E100D82DE904B04CE2E4309FE5A0 |
:101A9000003093E509E0D3E580C0CEE3D930D3E14F |
:101AA000000053E30632A0B3023B83B20C3193B77C |
:101AB000300003B20632A0A3023B83A20C3193A7ED |
:101AC000030A03A2B0309FE50030D3E503005CE1D8 |
:101AD0000C00002A9C309FE5001093E5B420D1E172 |
:101AE000000050E30030A0130130A003000052E3D7 |
:101AF00001308313000053E30200001A1230D1E5D5 |
:101B0000000053E30100001A0200A0E300A81BE953 |
:101B100080001EE30800000A0622A0E3022B82E2F6 |
:101B20000C3192E7073AC3E34030C3E30338A0E146 |
:101B30002338A0E1103023E2070000EA0622A0E3E8 |
:101B4000022B82E20C3192E70139C3E37030C3E328 |
:101B50000338A0E12338A0E1013A23E20C3182E707 |
:101B600018309FE5003093E50FE0A0E118F093E511 |
:101B70000000A0E300A81BE9801800048C01000409 |
:101B8000601800040DC0A0E100D82DE904B04CE2BB |
:101B900024309FE5002093E51130D2E5203083E327 |
:101BA0001130C2E514309FE5003093E50FE0A0E16D |
:101BB0001CF093E50000A0E300A81BE980180004D6 |
:101BC0006018000401C0A0E124309FE5002093E5E7 |
:101BD000BA11D2E10008A0E12008B0E1B430DC0184 |
:101BE00003306100B831C20100309C150300811040 |
:101BF0000EF0A0E1801800040DC0A0E1F0D82DE99E |
:101C000004B04CE228319FE5003093E5187083E280 |
:101C1000B821D3E1083097E5000053E300005213E8 |
:101C20001500000AB440D7E1020054E10240A021AF |
:101C30000450A0E10400A0E10FE0A0E108F097E566 |
:101C40000060A0E1B030D7E1033064E0B030C7E11C |
:101C5000B230D7E1043083E0B230C7E10000A0E346 |
:101C60000CFCFFEB0010A0E10118A0E12118A0E19D |
:101C70000600A0E10420A0E18A0300EBB030D7E128 |
:101C8000000053E30800000AA8309FE5032AA0E300 |
:101C9000B020C3E10000A0E30010A0E107FCFFEBCF |
:101CA00094309FE53020A0E3B020C3E1B020D7E11D |
:101CB000B430D7E1030052E174309F250020932512 |
:101CC0000330A0230500002AB030D7E1000053E321 |
:101CD0000400000A58309FE5002093E50530A0E39A |
:101CE0001030C2E5F0A81BE944309FE5002093E5E1 |
:101CF0000630A0E31030C2E50612A0E3851E81E2A3 |
:101D0000002091E50228A0E12228A0E14602A0E3FC |
:101D1000003092E7FF3FC3E30330C3E3003082E7C4 |
:101D2000003091E510309FE53020A0E3B020C3E102 |
:101D3000F0A81BE980180004B0170004C0170004C5 |
:101D40000DC0A0E1F0D92DE904B04CE2BC309FE514 |
:101D5000003093E5187083E2B821D3E11080D3E519 |
:101D6000000052E3040058030780A003A0309F0541 |
:101D70001020A0032000000AB440D7E1040052E183 |
:101D80000280A0830480A093020054E10240A021BD |
:101D90000450A0E10400A0E10FE0A0E108F097E505 |
:101DA0000060A0E10000A0E3B0FBFFEB0010A0E1A9 |
:101DB0000118A0E12118A0E10600A0E10420A0E1A3 |
:101DC000240300EB0000A0E30410A0E1BBFBFFEB49 |
:101DD000B030D7E1033064E0B030C7E1B230D7E1D2 |
:101DE000043083E0B230C7E124309FE53020A0E327 |
:101DF000B020C3E11C309FE5032AA0E3B020C3E17B |
:101E000008309FE5003093E51080C3E5F0A91BE999 |
:101E100080180004C0170004B01700040DC0A0E132 |
:101E200010D82DE904B04CE20200A0E3C4319FE5D4 |
:101E3000003093E50140D3E50030D3E57F0013E3A4 |
:101E40003200001A090054E30100001AFBFDFFEB09 |
:101E5000470000EA050054E30F00001A94319FE5A3 |
:101E6000002093E5D530D2E1000053E34C0000BAE6 |
:101E70000430D2E5000053E34900001AB830D2E143 |
:101E8000000053E34600001A1230D2E5000053E38D |
:101E90000000A0033600000A410000EA030054E3FA |
:101EA0000C00001A4C319FE5002093E50530D2E587 |
:101EB000010053E32D00001AB830D2E1000053E3D3 |
:101EC0002A00001A1130D2E5200013E32700000A8F |
:101ED0002BFFFFEB260000EA010054E32400001A68 |
:101EE00010319FE5002093E50530D2E5010053E372 |
:101EF0001E00001AB830D2E1000053E31B00001AA4 |
:101F00001130D2E5200013E31200001A170000EA96 |
:101F1000E0309FE5003093E50030D3E57F3003E209 |
:101F2000010053E30300001A0B0054E31000001AF1 |
:101F3000F2FDFFEB0E0000EAB8309FE5003093E5BC |
:101F40000030D3E57F3003E2020053E30700001ABC |
:101F5000010054E30100001A5FFEFFEB040000EAF9 |
:101F6000030054E30200001AC4FEFFEB000000EA85 |
:101F70000200A0E3000050E30B00000A78309FE568 |
:101F8000003093E5FF0004E20FE0A0E114F093E5D8 |
:101F9000030050E309C0A0031200000A000050E350 |
:101FA0000100000A08C0A0E30E0000EA06C0A0E39A |
:101FB0000612A0E3851E81E2002091E50228A0E13F |
:101FC0002228A0E14602A0E3003092E7FF3FC3E3EE |
:101FD0000330C3E3003082E7003091E51C309FE519 |
:101FE0003020A0E3B020C3E108309FE5003093E546 |
:101FF00010C0C3E510A81BE98018000400180004F5 |
:10200000C01700040DC0A0E170D82DE904B04CE267 |
:1020100020339FE5002093E50110D2E50040A0E3C6 |
:102020000450A0E1060051E31200001A0030D2E58E |
:102030007F0013E37A00001A0430D2E5010053E375 |
:10204000F4329F05003093051C4093057400000A8C |
:10205000020053E3E0329F050030930520409305D2 |
:102060006F00000A030053E3CC329F050030930554 |
:10207000244093056A0000EA000051E34400001A7E |
:10208000B0329FE5002093E5B430D2E1000053E385 |
:102090003F00001ABC30D2E1020053E33C00001ABA |
:1020A0000830D2E5000053E33900001A0030D2E5D1 |
:1020B0007F0013E30200001AB830D2E1000053E3BE |
:1020C0003100000A6C629FE5002096E50030D2E501 |
:1020D0007F3003E2010053E30B00001A58329FE502 |
:1020E000003093E50900D2E50010A0E30FE0A0E185 |
:1020F00018F093E5000050E34900001A003096E51F |
:102100001230D3E5000053E31E0000EA24329FE5BD |
:10211000002093E50030D2E57F3003E2020053E374 |
:102120003F00001A0910D2E50F1001E20900D2E5C4 |
:10213000700000E2D930D2E1000053E30632A0B3D0 |
:10214000023B83B2013193B730C003B20632A0A381 |
:10215000023B83A2013193A703CA03A2DC319FE5AE |
:102160000020D3E5000050E30030A0130130A003AD |
:10217000020051E10030A02301300332000053E39C |
:102180002700000A00005CE32500000AB0419FE53B |
:10219000230000EA080051E30500001A94319FE58E |
:1021A000003093E50030D3E57F0013E394419F05B1 |
:1021B0001B0000EA0A0051E31900001A74319FE580 |
:1021C000002093E50030D2E57F3003E2010053E3C5 |
:1021D0001300001A1230D2E5000053E31000000A89 |
:1021E000B430D2E1000053E30D00001A0810D2E52C |
:1021F000000051E30A00001ABC30D2E1010053E3B1 |
:102200000700001A30319FE5003093E50900D2E560 |
:102210000FE0A0E118F093E52C319FE5000050E3BA |
:102220000340A001000054E30900000A04319FE5C7 |
:10223000002093E5BA51C2E1003093E5204083E5E8 |
:102240000000A0E30FE0A0E104F0A0E10000A0E3A3 |
:102250000A0000EAE0309FE5002093E5D4409FE5C6 |
:10226000003094E50100D3E50FE0A0E110F092E525 |
:10227000030050E3002094050930A0031200000A77 |
:10228000B0309FE5001093E5B821D1E1FF3CA0E319 |
:10229000FF3083E2030052E10930A0031030C10592 |
:1022A00070A81B09020050E30400000A84309FE577 |
:1022B000003093E5B831D3E1000053E30400001A85 |
:1022C00070309FE5002093E50830A0E31030C2E5B0 |
:1022D00070A81BE95C309FE5002093E5D030D2E187 |
:1022E000000053E30B0000AABC10D2E1B831D2E1E8 |
:1022F000010053E1B811C28138309FE5002093E519 |
:1023000034309FE5003093E52C30D3E5BC31C2E199 |
:102310008AFEFFEB70A81BE918309FE5002093E5CB |
:102320000330A0E31030C2E520309FE5032AA0E38C |
:10233000B020C3E170A81BE9801800040018000455 |
:102340008C010004B8170100F0150100B01601005F |
:10235000B01700040DC0A0E170D82DE904B04CE224 |
:102360000000A0E34BFAFFEB9F54C0E3FF58C5E326 |
:10237000065285E388609FE5002096E51030D2E59F |
:10238000090053E31000000A0030D5E50030C2E533 |
:10239000002096E5B030D5E12334A0E10130C2E55C |
:1023A000004096E5B200D5E1D8FBFFEBB400C4E1F4 |
:1023B000004096E5B400D5E1D4FBFFEBB800C4E1E2 |
:1023C000003096E5B650D5E1BC50C3E130109FE532 |
:1023D000002091E50130A0E31030C2E5003091E526 |
:1023E000BC30D3E1000053E30100001A8AFEFFEB8A |
:1023F000000000EA02FFFFEB460000EBFF0000E2F6 |
:1024000070A81BE9801800040DC0A0E110D82DE9C8 |
:1024100004B04CE28C409FE5003094E51020D3E5F9 |
:10242000040052E3020052130300001A43FEFFEBC4 |
:10243000003094E51020D3E5140000EA060052E3D2 |
:102440001100001A5C309FE5002093E50130D2E5D1 |
:10245000050053E30800001A0030D2E57F0013E3C3 |
:102460000500001A0500D2E5470000EB38309FE573 |
:10247000003093E50FE0A0E120F093E52C309FE5DC |
:10248000003093E50FE0A0E108F093E50820A0E319 |
:1024900010309FE5003093E51020C3E51D0000EBF0 |
:1024A000FF0000E210A81BE9801800046018000477 |
:1024B000001800040DC0A0E110D82DE904B04CE2D2 |
:1024C00048309FE5003093E51040D3E5050054E324 |
:1024D000030054130100001AC6FDFFEB050000EADB |
:1024E000070054E328309F05003093050FE0A0015A |
:1024F0000CF093050840A0E310309FE5003093E511 |
:102500001040C3E5030000EBFF0000E210A81BE948 |
:1025100080180004001800040DC0A0E100D82DE9C7 |
:1025200004B04CE250309FE52C10D3E50000A0E34E |
:10253000F7F9FFEB44309FE5003093E51030D3E529 |
:10254000080053E30500001A34309FE5012AA0E398 |
:10255000B020C3E12C309FE51020A0E3B020C3E100 |
:1025600018309FE5003093E51000D3E5090050E3F3 |
:102570000000A0130100A00300A81BE990010004C3 |
:1025800080180004B0170004C017000410402DE9A3 |
:10259000FF4000E254309FE50000D3E50010A0E3C7 |
:1025A000000051E10C00002A06C2A0E302CB8CE23D |
:1025B0008FECA0E38FE08EE2FF2001E202319CE786 |
:1025C0000338A0E123380EE0023083E102318CE7CA |
:1025D000011081E2000051E1F6FFFF3A213DA0E346 |
:1025E000C63283E2802084E3002083E51080BDE8CA |
:1025F0008C0100040EF0A0E10DC0A0E170D82DE91F |
:1026000004B04CE2D0229FE5213DA0E30310A0E1FD |
:10261000463283E2003093E5B030C2E1B030D2E11F |
:10262000020913E370A81B09B0529FE50260A0E104 |
:10263000462281E27F3CA0E3FF3083E2003082E566 |
:10264000B030D6E10F3003E20030C5E50030D5E50B |
:10265000000053E37400001A0642A0E3024B84E238 |
:10266000003094E5033A03E274229FE5B030C2E102 |
:10267000003094E5303003E268229FE5B030C2E1DB |
:10268000003094E50139C3E37030C3E30338A0E1BF |
:102690002338A0E1023A23E2003084E5003094E5DB |
:1026A000073AC3E34030C3E30338A0E12338A0E195 |
:1026B000203023E2003084E5B030D6E1100013E38F |
:1026C0000F00001A003094E5073AC3E3F030C3E38B |
:1026D0000338A0E12338A0E1003084E549FFFFEB97 |
:1026E000003094E5220B13E32800000A003094E543 |
:1026F0007030C3E3033AA0E1233AA0E1003084E55F |
:10270000160000EA0622A0E3022B82E2003092E5E6 |
:102710000338A0E12348A0E1800014E30600000A8A |
:10272000003092E5073AC3E3F030C3E30338A0E199 |
:102730002338A0E1003082E532FFFFEB020B14E307 |
:102740000800000A0622A0E3022B82E2003092E594 |
:102750007030C3E3033AA0E1233AA0E1003082E500 |
:10276000FBFEFFEB090000EA020914E30700000A80 |
:102770000622A0E3022B82E2003092E57030C3E330 |
:10278000033AA0E1233AA0E1003082E548FFFFEBE5 |
:102790000632A0E3023B83E2003093E50139C3E354 |
:1027A0007030C3E30338A0E14318A0E130319FE566 |
:1027B000B030D3E1010A13E3011A211220319FE561 |
:1027C000B030D3E1020A13E3021A21120622A0E379 |
:1027D000022B82E20138A0E12338A0E1003082E53B |
:1027E000003092E5073AC3E34030C3E30338A0E189 |
:1027F0004318A0E1EC309FE5B030D3E1100013E3C3 |
:1028000010102112DC309FE5B030D3E1200013E33B |
:10281000201021120622A0E3022B82E20138A0E15F |
:102820002338A0E1003082E5220000EAAC009FE5F9 |
:102830000020D0E50612A0E3021B81E2023191E7FD |
:102840000338A0E12348A0E1020914E30900000ACB |
:10285000023191E77030C3E3033AA0E1233AA0E1EB |
:10286000023181E70020D0E57C309FE5023183E032 |
:102870000FE0A0E104F013E5800014E30D00000A6E |
:102880000010D5E50622A0E3022B82E2013192E797 |
:10289000073AC3E3F030C3E30338A0E12338A0E1F3 |
:1028A000013182E70020D5E540309FE5023183E029 |
:1028B0000FE0A0E104F013E51C209FE5211DA0E33B |
:1028C000463281E2003093E5B030C2E1B030D2E16F |
:1028D000020913E370A81B0954FFFFEAB0110004BA |
:1028E00008180004B0170004C017000448010004D1 |
:1028F0000C0100040DC0A0E1F0D82DE904B04CE2B9 |
:10290000E4209FE50210A0E1213DA0E3463283E2EE |
:10291000003093E5B030C2E1B030D2E1020913E3F8 |
:10292000F0A81B09217DA0E3467287E2BC509FE519 |
:102930000662A0E3026B86E27F3CA0E3FF3083E205 |
:10294000003087E5B030D1E10F3003E20030C5E55B |
:102950000020D5E5023196E70338A0E12348A0E145 |
:10296000020914E30900000A023196E77030C3E35C |
:10297000033AA0E1233AA0E1023186E70020D5E541 |
:102980006C309FE5023183E00FE0A0E104F013E535 |
:10299000800014E30D00000A0010D5E50622A0E334 |
:1029A000022B82E2013192E7073AC3E3F030C3E33E |
:1029B0000338A0E12338A0E1013182E70020D5E50A |
:1029C00030309FE5023183E00FE0A0E104F013E531 |
:1029D00014109FE5003097E5B030C1E1B030D1E18F |
:1029E000020913E3F0A81B09D2FFFFEAB0110004AB |
:1029F00008180004480100040C0100040DC0A0E107 |
:102A000000D82DE904B04CE230209FE530309FE53E |
:102A1000002083E50230A0E31030C2E524109FE5DA |
:102A200024309FE5001083E520209FE520309FE5BE |
:102A3000002083E50FE0A0E100F091E500A81BE98C |
:102A400020180004801800049001000400180004FD |
:102A5000C0010004601800040228A0E12228A0E1BF |
:102A6000032082E29F14C1E3FF18C1E3061281E351 |
:102A700042C1B0E10EF0A0010030D0E50120D0E568 |
:102A8000023483E10220D0E5023883E10320D0E55F |
:102A9000023C83E1040080E2043081E401C05CE296 |
:102AA0000EF0A001F3FFFFEA0118A0E14118A0E138 |
:102AB0000228A0E142C8A0E1000052E30EF0A0010C |
:102AC0009F14C1E3FF18C1E3061281E30130D1E492 |
:102AD0000130C0E401304CE20338A0E143C8A0E17A |
:102AE000000053E30EF0A0010130D1E40130C0E456 |
:102AF00001304CE20338A0E143C8A0E1000053E3F9 |
:102B00000EF0A001F0FFFFEA0DC0A0E170D82DE9A2 |
:102B10000140A0E10030A0E1D8309FE504B04CE2D4 |
:102B200002C1C0E314D04DE203005CE10160A0E10A |
:102B30000050A0E1B4208FD20C0092D8160000DA29 |
:102B4000B4309FE503005CE1030000DA0130A0E14E |
:102B50000020A0E1131000EB70A81BE928504BE205 |
:102B60000520A0E1670200EB03C000E201005CE386 |
:102B70000B00000A020000CA00005CE30300000A28 |
:102B8000130000EA02005CE30B00000A100000EAF8 |
:102B900020C04BE2030095E80C009CE8AA0400EB7F |
:102BA00070A81BE920E04BE2030095E80C009EE8CA |
:102BB00000C08DE5300800EB030000EA20C04BE2C6 |
:102BC000030095E80C009CE89F0400EBE01200EB8A |
:102BD00070A81BE920E04BE2030095E80C009EE89A |
:102BE00001C0A0E300C08DE5230800EB70A81BE93D |
:102BF0000000000000000000FB21E93FFFFFEF7F25 |
:102C00000DC0A0E170D82DE90140A0E10030A0E1A5 |
:102C1000E4309FE504B04CE202C1C0E314D04DE2C1 |
:102C200003005CE10160A0E10050A0E1C0208FD270 |
:102C30000C0092D800C0A0D3170000DABC309FE58A |
:102C400003005CE1030000DA0130A0E10020A0E114 |
:102C5000D40F00EB70A81BE928504BE20520A0E13F |
:102C6000280200EB030000E2010050E30D00000A1F |
:102C7000020000CA000050E30300000A160000EA48 |
:102C8000020050E30C00000A130000EA20C04BE2EF |
:102C9000030095E80C009CE801C0A0E300C08DE5AE |
:102CA000F50700EB70A81BE920C04BE2030095E894 |
:102CB0000C009CE8640400EB70A81BE920C04BE208 |
:102CC0000C009CE8030095E801C0A0E300C08DE57E |
:102CD000E90700EB9E1200EB70A81BE920C04BE255 |
:102CE0000C009CE8030095E8570400EB981200EBF9 |
:102CF00070A81BE90000000000000000FB21E93F74 |
:102D0000FFFFEF7F000000EAC70000EA0DC0A0E16E |
:102D1000F0DB2DE904B04CE230404BE20CD04DE248 |
:102D20000C0084E90340A0E10230A0E1002064E24D |
:102D3000022084E10251C3E3E8629FE5A22F85E10E |
:102D400004E0A0E130300BE5060052E10140A0E1D3 |
:102D50000030A0E10180A0E10070A0E10090A0E1BE |
:102D60000420A0E102C1C0E30400008A003064E254 |
:102D7000033084E1A33F8CE1060053E10500009A93 |
:102D800030204BE2030092E90830A0E10720A0E1E7 |
:102D90006C0F00EBF0AB1BE930401BE5033184E224 |
:102DA000013683E20E3093E10100001AF06B1BE95B |
:102DB000400800EA30101BE5413FA0E1023003E289 |
:102DC00002209CE1A76F83E10900001A030056E38B |
:102DD00006F18F90060000EA020000EA010000EA16 |
:102DE0002A0000EA2C0000EA0810A0E10700A0E198 |
:102DF000F0AB1BE90EE095E12D00000A24329FE5BF |
:102E0000030055E12700001A05005CE11200001ADA |
:102E1000030056E306F18F90220000EA020000EA68 |
:102E2000040000EA060000EA080000EA670F8FE2EB |
:102E3000030090E8F0AB1BE9660F8FE2030090E817 |
:102E4000F0AB1BE9650F8FE2030090E8F0AB1BE9E4 |
:102E5000190E8FE2030090E8F0AB1BE9030056E384 |
:102E600006F18F900F0000EA020000EA040000EA79 |
:102E7000060000EA080000EA170E8FE2030090E85F |
:102E8000F0AB1BE95B0F8FE2030090E8F0AB1BE9AE |
:102E90005A0F8FE2030090E8F0AB1BE9590F8FE265 |
:102EA000030090E8F0AB1BE978319FE503005CE19B |
:102EB0000700001A000059E3020000AA530F8FE236 |
:102EC000030090E8F0AB1BE9520F8FE2030090E89B |
:102ED000F0AB1BE90C3065E0433AA0E13C0053E362 |
:102EE000134E8FC2300094C8100000CA30201BE57A |
:102EF0003C0073E30030A0A30130A0B3A22F13E085 |
:102F0000E8408F12300094180800001A30404BE25D |
:102F10000C0094E90810A0E10700A0E1511000EBBB |
:102F20003F0900EBE30700EB0150A0E10040A0E106 |
:102F3000010056E30900000A020000CA000056E33F |
:102F40000300000A180000EA020056E30B00000A22 |
:102F5000150000EA0510A0E10400A0E1F0AB1BE9B8 |
:102F60000520A0E10410A0E10430A0E10540A0E1AB |
:102F7000023121E20410A0E10300A0E1F0AB1BE963 |
:102F800098208FE20C0092E80510A0E10400A0E177 |
:102F9000040F00EB0130A0E10020A0E15C008FE213 |
:102FA000030090E8FF0E00EBF0AB1BE96C208FE212 |
:102FB0000C0092E80510A0E10400A0E1F90E00EB7E |
:102FC00038208FE20C0092E8F60E00EBF0AB1BE924 |
:102FD000FB21E93F182D4454FB21E9BF182D44542F |
:102FE0007CD90240D221337F7CD902C0D221337FE9 |
:102FF0000000000000000000000000800000000051 |
:10300000FB210940182D4454FB2109C0182D4454BC |
:10301000FB21F9BF182D4454FB21F93F182D4454CE |
:1030200026A6A13C075C14330000F07F0DC0A0E190 |
:10303000F0DB2DE904B04CE20190A0E10080A0E1BA |
:1030400034D04DE230004BE20C0000E830104BE28F |
:1030500030C04BE2000381E906001CE80271C8E3BE |
:103060000251C1E3070055E1080000DA0100A0E1C8 |
:103070000210A0E130204BE2030082E930104BE265 |
:10308000000301E80730A0E10570A0E10350A0E1D2 |
:10309000073065E030204BE20F0553E330C04BE2D0 |
:1030A000180092E930004BE206001CE80730A0E16E |
:1030B0000510A0E1180080E930304BE2060003E87B |
:1030C000040000DA30404BE2030094E90C001CE8F5 |
:1030D0009C0E00EBF0AB1BE918349FE50000A0E369 |
:1030E000030057E150000BE5280000DA08349FE5A3 |
:1030F000030057E1190000DA30204BE230404BE288 |
:10310000030092E90C0014E88E0E00EB50C04BE275 |
:1031100003008CE930004BE2FF34C7E3060090E97E |
:103120000F36C3E3023093E130104B0206009109E1 |
:1031300050304B0206008309C0239FE530C04BE2AC |
:1031400018001CE8022025E0042092E150204B02E8 |
:103150001800820950204BE2030092E9F0AB1BE912 |
:1031600030C04BE230004BE218009CE9060010E84A |
:10317000967547E2965545E20510A0E10730A0E1BB |
:10318000060000E818008CE9961FA0E350100BE53C |
:103190006C339FE5030055E12E0000CA010655E39C |
:1031A0001F0000AA30204BE2180012E8043095E11D |
:1031B0000200001A30304BE2030093E9F0AB1BE948 |
:1031C000320E8FE2030090E840204BE230304BE2B9 |
:1031D000030082E9030013E8C22F8FE20C0092E89B |
:1031E0009D0E00EB30C04BE203000CE850C01BE525 |
:1031F00030204BE240404BE2030092E9FFCF4CE22B |
:103200000C0094E950C00BE5930E00EB50301BE529 |
:1032100030204BE2023043E2030082E950300BE5FC |
:103220000C0000EA30004BE2060010E8965585E2FB |
:1032300030C04BE20510A0E118009CE9967587E2CA |
:10324000060000E850101BE50730A0E1961F41E2A0 |
:1032500018008CE950100BE530204BE230404BE277 |
:10326000030092E90C0014E84E0E00EB30404BE2F4 |
:1032700050C04BE203008CE90C0014E8531000EB43 |
:10328000000050E3340000DA0040A0E30030A0E387 |
:1032900040C04BE20730A0E118008CE930204BE23F |
:1032A00040404BE2030092E90C0094E93D0E00EB34 |
:1032B00040C04BE240204BE203000CE8030092E9DF |
:1032C0000130A0E10020A0E1630E00EB30C04BE232 |
:1032D0000170A0E10060A0E103001CE81C1100EBFC |
:1032E00030404BE20130A0E10020A0E1030014E8EF |
:1032F000590E00EB30C04BE20150A0E10040A0E1CC |
:1033000003009CE940C04BE20C009CE90D0E00EB71 |
:1033100040C04BE20130A0E10020A0E103001CE826 |
:103320004D0E00EB0130A0E10020A0E10510A0E16E |
:103330000400A0E11B0E00EB0130A0E10020A0E1A1 |
:103340000710A0E10600A0E1160E00EB170200EB4B |
:1033500050204BE2030082E94D0000EA30304BE29E |
:10336000030093E90130A0E10020A0E1F50D00EB9E |
:1033700030404BE2030084E90040A0E30030A0E3CA |
:103380000530A0E10460A0E10350A0E130C04BE2B1 |
:103390000630A0E10520A0E103001CE8010E00EBCF |
:1033A0000040A0E30030A0E30190A0E10080A0E194 |
:1033B000013687E240004BE2180080E930204BE202 |
:1033C00040404BE2030092E90C0094E9F50D00EB5C |
:1033D00040C04BE240204BE203000CE8030092E9BE |
:1033E0000630A0E10520A0E11B0E00EB50404BE2AF |
:1033F00050304BE2030003E9030094E9D41000EBE2 |
:1034000050C04BE20130A0E10020A0E103009CE9A4 |
:10341000110E00EB40204BE20170A0E10060A0E142 |
:10342000030092E90930A0E10820A0E10A0E00EBB8 |
:1034300030C04BE240304BE20150A0E10040A0E13F |
:10344000030013E80C001CE8030E00EB0130A0E1C0 |
:103450000020A0E10510A0E10400A0E1B90D00EBFF |
:103460000130A0E10020A0E10710A0E10600A0E1EA |
:10347000CC0D00EB50404BE20130A0E10020A0E178 |
:10348000030014E9C70D00EBC80100EB50C04BE28C |
:1034900003008CE950001BE5000050E30E00000A19 |
:1034A00048108FE2060091E840304BE2060083E9C5 |
:1034B0000240A0E10130A0E1003A81E040004BE28F |
:1034C000180080E90410A0E10300A0E150404BE2A5 |
:1034D0000C0094E9E00D00EBF0AB1BE950C04BE2AF |
:1034E00003009CE9F0AB1BE90000D07F0000000066 |
:1034F0000000F03F000000000000305FFFFFEF7FA2 |
:103500000000F07FFFFFAF200DC0A0E1F0DF2DE94C |
:103510000140A0E10030A0E1B0329FE5B0A29FE5FC |
:103520000291C0E304B04CE250D04DE2030059E1F7 |
:103530000160A0E10050A0E168000BE544200BE52C |
:103540000AA08FE0B37F8FE2800197E80200A0D14C |
:103550006000A0D80020A0D3800180D8910100DABB |
:1035600070329FE5030059E15C0000CA68201BE54A |
:10357000000052E32A0000DA232E8FE20C0092E8CA |
:10358000880D00EB50329FE5030059E144301BE504 |
:103590000180A0E10070A0E1084083E20C00000A75 |
:1035A000212E8FE20C0092E87E0D00EB44C01BE55B |
:1035B0000130A0E10020A0E103008CE80810A0E1A8 |
:1035C0000700A0E1770D00EB7A2F8FE20C0092E864 |
:1035D000100000EA852F8FE20C0092E8710D00EBDD |
:1035E000212E8FE20C0092E80180A0E10070A0E1A2 |
:1035F0006C0D00EB0130A0E10020A0E144001BE5D0 |
:103600000C0080E80810A0E10700A0E1650D00EBC8 |
:103610001E2E8FE20C0092E8620D00EB0120A0E369 |
:103620005D0100EA612F8FE20C0092E8450D00EB8E |
:10363000A4319FE50180A0E10070A0E144101BE5EA |
:10364000030059E1084081E20E00000A592F8FE281 |
:103650000C0092E80810A0E10700A0E1390D00EB92 |
:1036600044C01BE50130A0E10020A0E103008CE88C |
:103670000810A0E10700A0E14A0D00EB4D2F8FE2FA |
:103680000C0092E8120000EA162E8FE20C0092E87D |
:103690000810A0E10700A0E12A0D00EB552F8FE2F2 |
:1036A0000C0092E80180A0E10070A0E1250D00EB84 |
:1036B0000130A0E10020A0E144001BE50C0080E8FF |
:1036C0000810A0E10700A0E1360D00EB492F8FE2C2 |
:1036D0000C0092E81B0D00EB0020E0E32E0100EA55 |
:1036E000F8309FE5030059E1D80000CA4C0700EB11 |
:1036F00050204BE2030082E9C0208FE20C0092E8E8 |
:10370000550D00EBBC208FE20C0092E80D0D00EB94 |
:10371000D30F00EB64000BE5A10F00EB60404BE220 |
:10372000030084E984208FE20C0092E84A0D00EB4C |
:1037300050404BE20130A0E10020A0E1030094E9F9 |
:10374000180D00EB50C04BE260204BE203000CE888 |
:10375000030092E95C208FE20C0092E83E0D00EB42 |
:1037600064301BE51F0053E30180A0E10070A0E17D |
:103770002A0000CA68309FE564401BE503308AE0F8 |
:10378000043183E0043013E5030059E12300000A0B |
:1037900050C04BE20830A0E10720A0E103001CE884 |
:1037A000000D00EB44201BE5030082E88C0000EADA |
:1037B000FB21F93F0000405461B4D03D3163621AEF |
:1037C000305FE43F83C8C96D0000E03F00000000A7 |
:1037D000FB21E93F2CCDFE037BD90240FB21F93FC1 |
:1037E000FB21394110B201FCFFFFEF7F08B101FC62 |
:1037F00061B4D03D0000601A8A19A33B7370032E98 |
:103800008A19A33B0000002E9A837B39C1492025E9 |
:1038100000007041000000000000000000000000F7 |
:1038200050304BE2030013E80830A0E10720A0E18C |
:10383000DC0C00EB203AA0E1833AA0E1499AA0E138 |
:10384000A33AA0E1096063E044401BE5100056E3A1 |
:10385000030084E8620000DA50004BE2030010E845 |
:1038600050404BE2030084E960404BE284204FE289 |
:103870000C0092E8030094E9F70C00EB50C04BE217 |
:103880000180A0E10070A0E10830A0E10720A0E1E4 |
:1038900003009CE9C30C00EB60404BE250204BE27C |
:1038A000030002E8B4204FE20C0092E8030094E920 |
:1038B000E90C00EB50C04BE20C001CE80150A0E109 |
:1038C0000040A0E103009CE9B60C00EB0830A0E149 |
:1038D0000720A0E1B30C00EB0130A0E10020A0E143 |
:1038E0000510A0E10400A0E1AE0C00EB50204BE27B |
:1038F0000180A0E10070A0E1030012E80830A0E11F |
:103900000720A0E1A70C00EB203AA0E1833AA0E158 |
:10391000A33AA0E1096063E044301BE5030083E8BB |
:1039200050004BE2030010E870204BE2310056E3F8 |
:10393000030082E82A0000DA60404BE2512F4FE298 |
:103940000C0092E8030094E9C30C00EB50C04BE27A |
:103950000180A0E10070A0E10830A0E10720A0E113 |
:1039600003001CE88F0C00EB50204BE260304BE270 |
:10397000030002E8030093E95E2F4FE20C0092E897 |
:10398000B50C00EB70C04BE20150A0E10040A0E19B |
:1039900003009CE850C04BE20C001CE8810C00EBDB |
:1039A0000830A0E10720A0E17E0C00EB0130A0E18F |
:1039B0000020A0E10510A0E10400A0E1790C00EBDB |
:1039C00050204BE20180A0E10070A0E1030012E86A |
:1039D0000830A0E10720A0E1720C00EB44301BE5A9 |
:1039E000030083E844401BE550C04BE20C0094E820 |
:1039F00003001CE86B0C00EB0830A0E10720A0E1FD |
:103A0000680C00EB0150A0E10040A0E168001BE55C |
:103A100044101BE5000050E3086081E2300086E8B6 |
:103A20005F0000AA030091E8490F00EB44301BE55A |
:103A3000030083E80510A0E10400A0E1440F00EBBF |
:103A400064401BE5002064E2030086E8550000EABC |
:103A500070321FE5030059E1080000DA0130A0E1EF |
:103A60000020A0E14F0C00EB44C01BE50020A0E3C8 |
:103A700008308CE2030083E803008CE8490000EA88 |
:103A8000493AA0E1413E43E260300BE50120A0E16C |
:103A90000010A0E160001BE5060040E20240A0E14A |
:103AA000003A49E060000BE50480A0E10370A0E16A |
:103AB0000060A0E30810A0E10700A0E1E80E00EB21 |
:103AC000B70E00EB40904BE286C189E00150A0E1C7 |
:103AD0000040A0E10530A0E10420A0E10810A0E131 |
:103AE0000700A0E130008CE82E0C00EBB92F4FE26C |
:103AF0000C0092E8580C00EB016086E2010056E3EE |
:103B00000180A0E10070A0E1E9FFFFDA30104BE294 |
:103B10000350A0E328404BE2800181E8030014E950 |
:103B2000312E4FE20C0092E8010E00EB000050E352 |
:103B30000150450208404402F7FFFF0A02C0A0E31B |
:103B400000C08DE560C31FE560201BE50CC08AE066 |
:103B50000900A0E10530A0E144101BE504C08DE59B |
:103B60006E0100EB68201BE5000052E364000BE5EA |
:103B70000B0000AA44301BE5030093E8F40E00EBB1 |
:103B800044401BE50300A4E8030094E844400BE52F |
:103B9000EF0E00EB64C01BE500206CE2030084E83C |
:103BA000000000EA64201BE50200A0E1F0AF1BE981 |
:103BB0000DC0A0E1F0DB2DE988229FE584329FE56E |
:103BC00004B04CE2022000E00150A0E10040A0E17E |
:103BD00008D04DE2030052E130404BE20030A0E358 |
:103BE0000020A0E30170A0E10060A0E100C0A0E11E |
:103BF00005E0A0E10C0084E90600001A0130A0E114 |
:103C00000020A0E1140C00EB0730A0E10620A0E1A9 |
:103C1000CC0B00EBF0AB1BE9000050E3140000CA32 |
:103C20000231C0E3053093E1F0AB1B09000050E323 |
:103C30000F0000AA0130A0E10020A0E1D90B00EBA9 |
:103C40000730A0E10620A0E10150A0E10040A0E182 |
:103C50000710A0E10600A0E1D20B00EB0130A0E1CB |
:103C60000020A0E10510A0E10400A0E1FD0C00EBA4 |
:103C7000F0AB1BE94C5AB0E11200001A00005CE303 |
:103C80000400001AAEC58CE100005CE3155045E26B |
:103C90008EEAA0E1FAFFFF0A01061CE30010A0E390 |
:103CA0000300001A8CC0A0E101061CE3011081E2B0 |
:103CB000FBFFFF0A052061E0203061E23EC38CE19A |
:103CC000015082E21EE1A0E1FF34CCE3FF5F45E258 |
:103CD0000F36C3E3035045E2010015E301C683E359 |
:103CE000AE3F8C1003C08C108EE0A0110000A0E34A |
:103CF000AE3F8CE00090A0E103C08CE0C550A0E195 |
:103D00008EE0A0E10060A0E10080A0E10246A0E317 |
:103D1000042080E00C0052E10CC062D0AE3F8CE089 |
:103D2000040082D0049089D0A440B0E103C08CE0AC |
:103D30008EE0A0E1F5FFFF1A0241A0E30C0050E184 |
:103D40000020A0E10030A0130130A003041086E0A1 |
:103D5000040000BA0E0051E10030A083013003924C |
:103D6000000053E30900000A000051E30CC062E0C8 |
:103D7000046081E0048088E0010000AA000056E3AE |
:103D8000010082A201005EE101C04C320EE061E060 |
:103D9000AE3F8CE0A440B0E103C08CE08EE0A0E137 |
:103DA000E5FFFF1A0EC09CE11800000A8C608FE24C |
:103DB000C00096E80710A0E10600A0E10730A0E1EE |
:103DC0000620A0E1A80D00EB000050E30F0000BAB0 |
:103DD000010078E30480A001019089020B00000A31 |
:103DE0000730A0E10620A0E10710A0E10600A0E155 |
:103DF000760D00EB000050E3013008D2038088D03C |
:103E0000020000DA020078E301908902028088E271 |
:103E1000C930A0E1FFC583E2A8E0A0E1010019E3F9 |
:103E200002C68CE202E18E13055A8CE02C500BE5A1 |
:103E300028E00BE530204BE2030092E9F0AB1BE9F0 |
:103E40000000F03F000000000000F07F0DC0A0E186 |
:103E5000F0DB2DE904B04CE20261C0E330C04BE27C |
:103E600018D04DE2F90556E30150A0E10040A0E171 |
:103E700003008CE90C000CE80090A0E30080A0E3B4 |
:103E8000050000AAF60D00EB000050E30200001A46 |
:103E90008E0F8FE2030090E8F0AB1BE930104BE28D |
:103EA0000C0091E90310A0E10200A0E16A0B00EB15 |
:103EB000222E8FE20C0092E80150A0E10040A0E128 |
:103EC000650B00EB852F8FE20C0092E81D0B00EBD9 |
:103ED0000130A0E10020A0E10510A0E10400A0E174 |
:103EE0005D0B00EB7F2F8FE20C0092E8150B00EBCF |
:103EF0000130A0E10020A0E10510A0E10400A0E154 |
:103F0000550B00EB792F8FE20C0092E80D0B00EBC4 |
:103F10000130A0E10020A0E10510A0E10400A0E133 |
:103F20004D0B00EB732F8FE20C0092E8050B00EBBA |
:103F30000130A0E10020A0E10510A0E10400A0E113 |
:103F4000450B00EB6D2F8FE20C0092E8FD0A00EBB1 |
:103F50000130A0E10020A0E10510A0E10400A0E1F3 |
:103F60003D0B00EB40304BE2030083E9A4319FE5B9 |
:103F7000030056E1220000CA622F8FE20C0092E893 |
:103F80000510A0E10400A0E1330B00EB40C04BE2C0 |
:103F90000C009CE90170A0E10060A0E10510A0E127 |
:103FA0000400A0E12C0B00EB30C04BE230304BE2C0 |
:103FB0000150A0E10040A0E1030093E90C001CE8DF |
:103FC000250B00EB0130A0E10020A0E10510A0E1ED |
:103FD0000400A0E1F30A00EB0130A0E10020A0E121 |
:103FE0000710A0E10600A0E1EE0A00EB0130A0E11D |
:103FF0000020A0E1D4008FE2030090E8E90A00EB82 |
:10400000F0AB1BE910319FE5030056E1028646D272 |
:104010000090A0D3F4808FC2000398C8E4208FE200 |
:104020000C0092E80510A0E10400A0E10A0B00EBEF |
:104030000930A0E10820A0E1DA0A00EB0930A0E194 |
:104040000820A0E10170A0E10060A0E17C008FE207 |
:10405000030090E8D30A00EB40C04BE20C009CE95F |
:104060000190A0E10080A0E10510A0E10400A0E122 |
:10407000F90A00EB30C04BE230304BE20150A0E1D6 |
:104080000040A0E1030093E90C001CE8F20A00EBF9 |
:104090000130A0E10020A0E10510A0E10400A0E1B2 |
:1040A000C00A00EB0130A0E10020A0E10710A0E170 |
:1040B0000600A0E1BB0A00EB0130A0E10020A0E176 |
:1040C0000910A0E10800A0E1B60A00EBF0AB1BE983 |
:1040D0000000F03F00000000E9FAA8BDD43888BE17 |
:1040E0009EEE213EC4B1B4BD4F7E92BEAD529C80C7 |
:1040F000A001FA3E9015CB196CC156BF7751C1167D |
:104100005555A53F4C5555550000E03F00000000B7 |
:104110000000D23F000000003233D33F0000E93FEF |
:104120000DC0A0E1F0DF2DE904B04CE2B4C39FE57F |
:1041300003E042E29E4CCCE0CEEFA0E14CC16EE049 |
:1041400097DF4DE2A0A39FE56CC20BE59CC39FE502 |
:1041500004E09BE5013043E20AA08FE06C421BE5DE |
:1041600068320BE50CC08AE00EC19CE768E21BE5F3 |
:10417000000054E30040A0B3843084E00C608EE083 |
:104180000090A0E3832142E0060059E16C420BE578 |
:1041900070C20BE55C020BE560120BE5188042E291 |
:1041A00004406EE00E0000CA463F4BE2000054E3BC |
:1041B000895183E0030000BA08109BE5040191E7F0 |
:1041C000F70C00EB010000EAC90F8FE2030090E852 |
:1041D000019089E2060059E1030085E8014084E28C |
:1041E000F0FFFFDA70221BE50090A0E3020059E126 |
:1041F000240000CA68321BE50040A0E32F1E8FE2B6 |
:10420000060091E8030054E10A3D4BE2060083E812 |
:10421000130000CA5C521BE568C21BE509208CE054 |
:10422000022064E0463F4BE2823183E00C0093E8D9 |
:104230000300B5E8880A00EB0AED4BE20130A0E18B |
:104240000020A0E103009EE83E0A00EB68321BE577 |
:10425000014084E20A2D4BE2030054E1030082E8AE |
:10426000ECFFFFDA963F4BE270421BE50A2D4BE272 |
:10427000893183E0060092E8019089E2040059E167 |
:10428000060083E8DAFFFFDA70321BE564320BE5E3 |
:1042900064421BE5969F4BE2843189E0000054E3C1 |
:1042A000C00093E81F0000DA28504BE2962F8FE2FF |
:1042B0000C0092E80710A0E10600A0E1660A00EBFE |
:1042C000E70C00EBB60C00EB0ACD4BE203008CE8E8 |
:1042D000892F8FE20C0092E85F0A00EB0130A0E129 |
:1042E0000020A0E10710A0E10600A0E12D0A00EBEC |
:1042F000DB0C00EB843189E000C0A0E10AED4BE269 |
:10430000030013E950C005E50C009EE80D0A00EB20 |
:10431000014044E2000054E30170A0E10060A0E12C |
:10432000045085E2E0FFFFCA0710A0E10600A0E10B |
:104330000820A0E1AD0400EB192E8FE20C0092E8FA |
:104340000170A0E10060A0E1430A00EB3D0400EB36 |
:10435000062D8FE20C0092E83F0A00EB0130A0E14D |
:104360000020A0E10710A0E10600A0E10D0A00EB8B |
:104370000170A0E10060A0E1B90C00EB74020BE554 |
:10438000870C00EB0130A0E10020A0E10710A0E1C4 |
:104390000600A0E1030A00EB000058E30170A0E171 |
:1043A0000060A0E10010A0E378120BE50E0000DA37 |
:1043B00064321BE528204BE2031182E0542011E512 |
:1043C000183068E25293A0E174421BE5192342E0E1 |
:1043D000173068E25233A0E1094084E078320BE5FF |
:1043E00074420BE5542001E5100000EA0600001AB3 |
:1043F00064E21BE528C04BE20E318CE0543013E53B |
:10440000C33BA0E178320BE5080000EACC208FE244 |
:104410000C0092E80710A0E10600A0E1120C00EBEE |
:10442000000050E3580000BA0210A0E378120BE538 |
:1044300078221BE5000052E3530000DA74421BE5CA |
:1044400064321BE50090A0E3014084E2030059E1DF |
:104450000950A0E174420BE50E0000AA28204BE2AF |
:104460000390A0E1000055E3504012E5FF34E01353 |
:10447000033064100300001A000054E30134641296 |
:104480000150A0130000000A503002E5019059E2EB |
:10449000042082E2F2FFFF1A000058E3230000DA52 |
:1044A000010058E30200000A020058E31800000A65 |
:1044B0001E0000EA64E21BE528C04BE20E218CE0FE |
:1044C000543012E5FF34C3E30235C3E3160000EABB |
:1044D0000000C03F0000000000002040000000007D |
:1044E0000000E03F00000000ABAAAA2A14C1FE03AE |
:1044F00028B301FC00000000000000000000704133 |
:10450000000000000000F03F000000000000703ECE |
:104510000000000064321BE528104BE2032181E01B |
:10452000543012E5FF34C3E30335C3E3543002E5EE |
:1045300078421BE5020054E31300001A0730A0E1A3 |
:104540000620A0E148004FE2030090E8950900EB47 |
:10455000000055E30170A0E10060A0E10A00000A3C |
:104560000820A0E168004FE2030090E81F0400EB80 |
:104570000130A0E10020A0E10710A0E10600A0E1C9 |
:10458000880900EB0170A0E10060A0E1A0204FE2EB |
:104590000C0092E80710A0E10600A0E1640B00EB1C |
:1045A000000050E35300001A64C21BE570E21BE5F3 |
:1045B00001904CE20E0059E10040A0E10A0000BA6F |
:1045C00028104BE2092181E070C21BE5503012E552 |
:1045D000019049E20C0059E1034084E1042042E2E9 |
:1045E000F8FFFFAA000054E34200001A70121BE516 |
:1045F00028E04BE201318EE0543013E5000053E334 |
:104600000170A0E30700001A28204BE2013182E08C |
:10461000042043E2042042E2503012E5000053E35C |
:10462000017087E2FAFFFF0A64321BE5074083E06E |
:10463000019083E2040059E184420BE52A0000CA9C |
:104640006CC21BE508E09BE568121BE509308CE0B5 |
:10465000092081E003019EE7463F4BE2824183E06F |
:10466000CF0B00EB68221BE5030084E8000052E357 |
:10467000611F4FE2060091E80A3D4BE2060083E825 |
:10468000100000BA68C21BE55C521BE50460A0E1A3 |
:1046900001408CE20C0096E80300B5E86E0900EBDF |
:1046A0000AED4BE20130A0E10020A0E103009EE80A |
:1046B000240900EB0A2D4BE2014054E2030082E89A |
:1046C000086046E2F2FFFF1A963F4BE284421BE588 |
:1046D0000A2D4BE2893183E0060092E8019089E2DD |
:1046E000040059E1060083E8D4FFFFDA64321BE5D9 |
:1046F000073083E0E4FEFFEA832F4FE20C0092E8EC |
:104700000710A0E10600A0E1090B00EB000050E358 |
:104710001100001A64421BE528C04BE2014044E24C |
:1047200004218CE0503012E5000053E364420BE5B5 |
:10473000188048E23D00001A042042E264E21BE5D2 |
:10474000503012E501E04EE2000053E364E20BE575 |
:10475000188048E2F7FFFF0A340000EA002068E210 |
:104760000710A0E10600A0E1A00300EB9E2F4FE29E |
:104770000C0092E80170A0E10060A0E13A0B00EBB0 |
:1047800064121BE5000050E30141A0E1210000BAE2 |
:10479000A32F4FE20C0092E80710A0E10600A0E171 |
:1047A0002D0900EBAE0B00EB7D0B00EB0A2D4BE26D |
:1047B000030082E80B2D4FE20C0092E8260900EB83 |
:1047C0000130A0E10020A0E10710A0E10600A0E177 |
:1047D000F40800EBA20B00EB28E04BE264C21BE5FF |
:1047E0000E3084E00020A0E10A4D4BE2030094E883 |
:1047F00001C08CE2502003E564C20BE5980B00EB8E |
:1048000064121BE528E04BE201318EE0188088E25B |
:10481000500003E5050000EA28204BE20710A0E164 |
:104820000600A0E1024084E08D0B00EB500004E59F |
:10483000CD0F4FE2030090E80820A0E16B0300EBEE |
:1048400064921BE50A3D4BE2000059E3030083E854 |
:10485000430000BA28404BE2093184E0500013E5E0 |
:104860004F0B00EB0ACD4BE20130A0E10020A0E1AC |
:1048700003009CE8F80800EB966F4BE2896186E044 |
:104880000150A0E10040A0E10AED4BE2E22F4FE22F |
:104890000C0092E803009EE8300086E8EE0800EB8A |
:1048A0000A2D4BE2019059E2030082E8E8FFFF5A2B |
:1048B00064921BE5000059E3290000BA0040A0E320 |
:1048C00070321BE50070A0E37B1F8FE2060091E8C9 |
:1048D000030057E10A3D4BE2060083E8180000CAD6 |
:1048E000040057E10450A0E1150000CA073089E038 |
:1048F000962F4BE2832182E0B8319FE503308AE0B6 |
:10490000873183E0030093E80C0092E8D20800EBC3 |
:104910000ACD4BE20130A0E10020A0E103009CE8B9 |
:10492000880800EB0AED4BE203008EE870121BE5ED |
:10493000017087E2010057E1010000CA050057E15C |
:10494000E9FFFFDA0A2D4BE26E3F4BE2060092E8E8 |
:10495000843183E0019059E2060083E8014084E25B |
:10496000D6FFFF5A04309BE5030053E303F18F9019 |
:10497000BE0000EA020000EA190000EA180000EA9E |
:104980004F0000EA64921BE54B1F8FE2060091E89E |
:104990000A3D4BE2000059E3060083E8090000BA33 |
:1049A0006E3F4BE2893183E00A4D4BE2030094E80D |
:1049B0000C0093E8630800EB0ACD4BE2019059E24A |
:1049C00003008CE8F5FFFF5A78E21BE50A2D4BE265 |
:1049D00000005EE3030092E85D0B001B60421BE5F4 |
:1049E000320000EA64921BE5CC108FE2060091E8E9 |
:1049F0000A3D4BE2000059E3060083E8090000BAD3 |
:104A00006E3F4BE2893183E00A4D4BE2030094E8AC |
:104A10000C0093E84B0800EB0ACD4BE2019059E201 |
:104A200003008CE8F5FFFF5A78E21BE50A2D4BE204 |
:104A300000005EE3030092E8450B001B60421BE5AB |
:104A4000030084E86E3F4BE20ACD4BE2030093E89B |
:104A50000C009CE8530800EB0AED4BE203008EE8E3 |
:104A600064121BE5000051E3090000DA0190A0E1A7 |
:104A70001B4E4BE20ACD4BE203009CE80C00B4E86D |
:104A8000300800EB0AED4BE2019059E203008EE89A |
:104A9000F7FFFF1A78121BE560221BE5000051E3C7 |
:104AA0000A3D4BE2084082E2030093E8280B001B1A |
:104AB000030084E86D0000EA38B301FC0000000048 |
:104AC0000000000064921BE5000059E31B0000DABF |
:104AD0006E6F4BE2896186E0300016E9800196E84E |
:104AE0000510A0E10400A0E10830A0E10720A0E14A |
:104AF000140800EB0AED4BE203008EE80510A0E17C |
:104B00000400A0E10A4D4BE20C0094E8250800EBFC |
:104B10000130A0E10020A0E10810A0E10700A0E121 |
:104B2000080800EB0A3D4BE2019049E20C0093E8D3 |
:104B3000000059E30C0006E9030086E8E3FFFFCA22 |
:104B400064921BE5010059E31B0000DA6E6F4BE233 |
:104B5000896186E0300016E9800196E80510A0E141 |
:104B60000400A0E10830A0E10720A0E1F50700EB78 |
:104B70000ACD4BE203008CE80AED4BE20C009EE804 |
:104B80000510A0E10400A0E1060800EB0130A0E15F |
:104B90000020A0E10810A0E10700A0E1E90700EB78 |
:104BA0000A3D4BE2019049E20C0093E8010059E311 |
:104BB0000C0006E9030086E8E3FFFFCA64921BE5E8 |
:104BC000431F4FE2060091E80A3D4BE2010059E322 |
:104BD000060083E80A0000DA6E3F4BE2893183E089 |
:104BE0000A4D4BE2030094E80C0093E8D50700EB74 |
:104BF000019049E20ACD4BE2010059E303008CE841 |
:104C0000F4FFFFCA78E21BE560121BE500005EE3DB |
:104C10006E0F4BE2084081E21B6E4BE2105081E2C6 |
:104C20000700001A0C0090E80C0081E8060096E8E6 |
:104C30000A3D4BE2060084E80C0093E80C0085E88E |
:104C40000A0000EA030090E8C10A00EB60C21BE51D |
:104C500003008CE8030096E8BD0A00EB0AED4BE286 |
:104C6000030084E803009EE8B90A00EB030085E82E |
:104C700074121BE5070001E2F0AF1BE90DC0A0E1D3 |
:104C8000F0DB2DE904B04CE20150A0E10040A0E1CE |
:104C90000241C0E330C04BE218D04DE2F90554E3C5 |
:104CA00003008CE90C000CE8050000AA6C0A00EB7C |
:104CB000000050E30200001A30304BE2030093E999 |
:104CC000F0AB1BE930C04BE203009CE90130A0E1EE |
:104CD0000020A0E1E00700EB30C04BE20C009CE9B3 |
:104CE0000170A0E10060A0E1DB0700EB40304BE287 |
:104CF000030083E9612F8FE20C0092E80710A0E126 |
:104D00000600A0E1D40700EB5E2F8FE20C0092E8D2 |
:104D10008C0700EB0130A0E10020A0E10710A0E12A |
:104D20000600A0E1CC0700EB162E8FE20C0092E803 |
:104D3000840700EB0130A0E10020A0E10710A0E112 |
:104D40000600A0E1C40700EB522F8FE20C0092E8AE |
:104D50007C0700EB0130A0E10020A0E10710A0E1FA |
:104D60000600A0E1BC0700EB132E8FE20C0092E8D6 |
:104D7000740700EB04309BE5000053E30190A0E1D1 |
:104D80000080A0E11200001A0130A0E10020A0E1A3 |
:104D90000710A0E10600A0E1AF0700EB412F8FE272 |
:104DA0000C0092E8670700EB40C04BE20130A0E145 |
:104DB0000020A0E103009CE9A70700EB30C04BE214 |
:104DC0000130A0E10020A0E103009CE95D0700EBB9 |
:104DD000F0AB1BE930C04BE203001CE8CC208FE2B3 |
:104DE0000C0092E89C0700EB40304BE20150A0E140 |
:104DF0000040A0E1030093E90930A0E10820A0E110 |
:104E0000950700EB0130A0E10020A0E10510A0E132 |
:104E10000400A0E1630700EB0130A0E10020A0E165 |
:104E20000710A0E10600A0E18B0700EB30C04BE2C9 |
:104E30000C001CE85B0700EB40304BE20150A0E1A6 |
:104E40000040A0E1030093E958208FE20C0092E8B3 |
:104E5000810700EB0130A0E10020A0E10510A0E1F6 |
:104E60000400A0E14F0700EB30C04BE20130A0E1AD |
:104E70000020A0E103009CE94A0700EBF0AB1BE92E |
:104E80003AD9E53D7CD5CF5AE6E55ABEEB9C2B8A54 |
:104E9000E31DC73E7DFEB157A0012ABFD561C119F0 |
:104EA0001111813FA6F810115555C5BF49555555EB |
:104EB0000000E03F000000000DC0A0E1F0DF2DE9A0 |
:104EC000BC349FE5BCA49FE50241C0E304B04CE2C2 |
:104ED00008D04DE2030054E10190A0E10080A0E180 |
:104EE0002C000BE50AA08FE0180000DA98349FE54B |
:104EF000030054E10140A0E10030A0E1060000CA37 |
:104F00000030A0130130A003000054E30030A003E0 |
:104F100001300312000053E30300000A0930A0E14E |
:104F20000820A0E1070700EBF0AF1BE92C101BE500 |
:104F3000000051E3020000DAED0F8FE2030090E879 |
:104F4000F0AF1BE93B0E8FE2030090E8F0AF1BE9E6 |
:104F500038349FE5030054E10F0000CA30349FE568 |
:104F6000030054E10A0000CAE52F8FE20C0092E82A |
:104F7000F40600EB392E8FE20C0092E8130900EBE7 |
:104F8000000050E3020000DA0910A0E10800A0E1EF |
:104F9000F0AF1BE90030E0E3510000EA200100EB34 |
:104FA000F0339FE5030054E10190A0E10080A0E10F |
:104FB000290000CAE0339FE5030054E1150000CA50 |
:104FC0000130A0E10020A0E1DE0600EBCE2F8FE251 |
:104FD0000C0092E8F30600EBCD2F8FE20C0092E874 |
:104FE0000150A0E10040A0E10910A0E10800A0E10B |
:104FF000D40600EB0130A0E10020A0E10510A0E103 |
:105000000400A0E1170800EB0190A0E10080A0E1FE |
:105010000010A0E3280000EABB2F8FE20C0092E80A |
:10502000E00600EB2E2E8FE20C0092E80150A0E18A |
:105030000040A0E10910A0E10800A0E1C10600EBDA |
:105040000130A0E10020A0E10510A0E10400A0E1F2 |
:10505000040800EB0130A0E31F0000EA3C339FE5A9 |
:10506000030054E1160000CAAB2F8FE20C0092E857 |
:10507000CC0600EB2A2E8FE20C0092E80150A0E152 |
:105080000040A0E10910A0E10800A0E1F20600EB59 |
:105090009D2F8FE20C0092E8AA0600EB0130A0E100 |
:1050A0000020A0E10510A0E10400A0E1ED0700EB65 |
:1050B0000190A0E10080A0E10210A0E330100BE518 |
:1050C000080000EA0930A0E10820A0E1250E8FE2E7 |
:1050D000030090E8E30700EB0330A0E30190A0E1B8 |
:1050E0000080A0E130300BE50930A0E10820A0E10C |
:1050F0000910A0E10800A0E1D70600EB0130A0E113 |
:105100000020A0E10170A0E10060A0E1D20600EB68 |
:10511000852F8FE20C0092E80150A0E10040A0E151 |
:10512000CD0600EB0130A0E10020A0E1020C8FE2EF |
:10513000030090E8830600EB0130A0E10020A0E12D |
:105140000510A0E10400A0E1C30600EB0130A0E1DE |
:105150000020A0E11E0E8FE2030090E8790600EB2C |
:105160000130A0E10020A0E10510A0E10400A0E1D1 |
:10517000B90600EB0130A0E10020A0E1070D8FE2AD |
:10518000030090E86F0600EB0130A0E10020A0E1F1 |
:105190000510A0E10400A0E1AF0600EB0130A0E1A2 |
:1051A0000020A0E11A0E8FE2030090E8650600EBF4 |
:1051B0000130A0E10020A0E10510A0E10400A0E181 |
:1051C000A50600EB0130A0E10020A0E1060D8FE272 |
:1051D000030090E85B0600EB0130A0E10020A0E1B5 |
:1051E0000710A0E10600A0E19B0600EB5A2F8FE21A |
:1051F0000C0092E80170A0E10060A0E10510A0E1C0 |
:105200000400A0E1940600EB0130A0E10020A0E141 |
:10521000530F8FE2030090E84A0600EB0130A0E153 |
:105220000020A0E10510A0E10400A0E18A0600EB47 |
:105230000130A0E10020A0E14B0F8FE2030090E8D5 |
:10524000400600EB0130A0E10020A0E10510A0E144 |
:105250000400A0E1800600EB0130A0E10020A0E105 |
:10526000430F8FE2030090E8360600EB0130A0E127 |
:105270000020A0E10510A0E10400A0E1760600EB0B |
:105280000130A0E10020A0E1EC008FE2030090E8F3 |
:105290002C0600EB0130A0E10020A0E10510A0E108 |
:1052A0000400A0E16C0600EB0130A0E10020A0E1C9 |
:1052B00030101BE5000051E33B0000AA0710A0E1FD |
:1052C0000600A0E11F0600EB0130A0E10020A0E1F4 |
:1052D0000910A0E10800A0E15F0600EB0130A0E1A9 |
:1052E0000020A0E10910A0E10800A0E12D0600EBDC |
:1052F000F0AF1BE9FB21F93F182D4454FB21F9BF06 |
:10530000182D44543CE4377E9C7500880000F03F23 |
:105310000000000000000040000000000000F83F16 |
:10532000000000000000F0BF000000003AAD903F18 |
:1053300011DA22E34B7BA93FEB0D7624660DB13FDA |
:10534000513DD0A0CD45B73F6E204CC52449C23F4A |
:10535000FF8300925555D53F0D55555544B4A2BF16 |
:105360002F6C6A2C2DDEADBF9AFDDE52F2B0B3BFBA |
:105370006D9A74AFC671BCBF711623FE9999C9BFEF |
:10538000C4EB9899FFFF0F4488B3FE030000F07F41 |
:10539000FFFFDB3FFFFF1F3EFFFFF23FFFFFE53F49 |
:1053A000FF7F0340D0B301FCF0B301FC30101BE5DC |
:1053B00014C01FE58141A0E10710A0E10600A0E1B3 |
:1053C0000C508AE0DF0500EB0130A0E10020A0E1F5 |
:1053D0000910A0E10800A0E11F0600EB3C301FE52A |
:1053E00003308AE0055084E0034084E00C0094E838 |
:1053F000EC0500EB0930A0E10820A0E1E90500EB95 |
:105400000130A0E10020A0E1030095E8E50500EBF4 |
:105410002C301BE5000053E3F0AF1BA9CC0800EBD8 |
:10542000F0AF1BE910402DE90140A0E10030A0E100 |
:105430000120A0E10010A0E10231C1E30410A0E1CD |
:105440000300A0E11080BDE80DC0A0E1F0DB2DE974 |
:10545000403AA0E1833AA0E1A33AA0E1FF9F43E2F2 |
:1054600004B04CE2039049E208D04DE20150A0E1C3 |
:105470000040A0E10030A0E30020A0E330C04BE2F8 |
:10548000130059E30180A0E10070A0E10060A0E1F9 |
:105490000540A0E10C008CE9250000CA000059E39A |
:1054A000100000AA4B2F8FE20C0092E8A50500EB3C |
:1054B0004A2F8FE20C0092E8C40700EB000050E393 |
:1054C0003F0000DA000057E30040A0A30460A0A161 |
:1054D0003B0000AA0231C7E3053093E104619F1548 |
:1054E0001100001A360000EAFC309FE55359A0E194 |
:1054F000053000E0043093E11A00000AD4208FE266 |
:105500000C0092E88F0500EBD0208FE20C0092E8AF |
:10551000AE0700EB000050E3290000DA000057E37B |
:105520000136A0B3536987B00560C6E10040A0E32F |
:10553000230000EA330059E3050000DA010B59E3C8 |
:105540000800001A0130A0E10020A0E17D0500EB79 |
:10555000F0AB1BE9142049E20030E0E33352A0E154 |
:10556000050014E10200001A0810A0E10700A0E104 |
:10557000F0AB1BE95C208FE20C0092E8710500EBB8 |
:1055800058208FE20C0092E8900700EB000050E3F7 |
:105590000B0000DA000057E3080000AA140059E3EA |
:1055A000016087020500000A0130A0E3342069E2AF |
:1055B000132284E0040052E1036087300240A0E13E |
:1055C0000540C4E12C600BE528400BE530204BE2A0 |
:1055D000030092E9F0AB1BE93CE4377E9C75008840 |
:1055E00000000000000000000000F0BFFFFF0F00FF |
:1055F00088319FE50DC0A0E1033000E0F0D92DE92E |
:1056000004B04CE243CAA0E10150A0E10040A0E197 |
:1056100000005CE30170A0E10060A0E100E0A0E117 |
:105620000280A0E10540A0E11100001A0231C0E3B0 |
:10563000034094E1F0A91B09122E8FE20C0092E8BE |
:10564000850500EB34219FE50140A0E10030A0E199 |
:105650002C319FE5022000E0422AA0E1030058E13E |
:105660000170A0E10060A0E100E0A0E136C042E2EC |
:10567000290000BA0C319FE503005CE10500001A27 |
:105680000710A0E10600A0E10730A0E10620A0E19C |
:105690002C0500EBF0A91BE9EC309FE508C08CE07D |
:1056A00003005CE1080000DA0730A0E10620A0E179 |
:1056B000B0008FE2030090E8350000EBA4208FE2F9 |
:1056C0000C0092E8640500EBF0A91BE900005CE324 |
:1056D000070000DA7F24CEE30F26C2E30740A0E1F3 |
:1056E0000630A0E10C3A82E10410A0E10300A0E141 |
:1056F000F0A91BE936007CE30A0000CA8C309FE564 |
:10570000030058E1E7FFFFCA60008FE2030090E862 |
:105710000730A0E10620A0E11D0000EB4C208FE245 |
:105720000C0092E8E6FFFFEA7F24CEE336C08CE26D |
:105730000F26C2E30740A0E10630A0E10C3A82E167 |
:105740000470A0E10360A0E10710A0E10600A0E161 |
:1057500020208FE20C0092E83F0500EBF0A91BE946 |
:1057600000005043000000003CE4377E9C75008838 |
:105770001F6EA50159F3F8C20000903C0000000024 |
:105780000000F07FB03CFFFFFF070000FE070000B5 |
:1057900050C30000F0412DE90180A0E10070A0E1BC |
:1057A0000360A0E10250A0E10120A0E10010A0E10F |
:1057B0000211C1E3025105E20840A0E10730A0E177 |
:1057C000053081E10480A0E10370A0E10810A0E1B0 |
:1057D0000700A0E1F081BDE8000051E31F00000ACE |
:1057E0000130A0E30020A0E3010050E11900003ADD |
:1057F000010251E3000051310112A0310332A03106 |
:10580000FAFFFF3A020151E3000051318110A0314B |
:105810008330A031FAFFFF3A010050E1010040203F |
:1058200003208221A10050E1A1004020A320822179 |
:10583000210150E12101402023218221A10150E1D9 |
:10584000A1014020A3218221000050E32332B011A6 |
:105850002112A011EFFFFF1A0200A0E10EF0A0E15B |
:1058600004E02DE55D0000EB0000A0E30080BDE852 |
:1058700001C020E00130A0E30020A0E3000051E3DC |
:10588000001061422100000A000050E30000604265 |
:10589000010050E11900003A010251E300005131CA |
:1058A0000112A0310332A031FAFFFF3A020151E3A5 |
:1058B000000051318110A0318330A031FAFFFF3A4E |
:1058C000010050E10100402003208221A10050E1AD |
:1058D000A1004020A3208221210150E1210140208C |
:1058E00023218221A10150E1A1014020A321822195 |
:1058F000000050E32332B0112112A011EFFFFF1A74 |
:105900000200A0E100005CE3000060420EF0A0E1B4 |
:1059100004E02DE5310000EB0000A0E30080BDE8CD |
:10592000000051E32900000A010051E30100501179 |
:105930000000A0030EF0A0310130A0E3010251E30A |
:10594000000051310112A0310332A031FAFFFF3AB9 |
:10595000020151E3000051318110A0318330A031A8 |
:10596000FAFFFF3A0020A0E3010050E101004020CF |
:10597000A10050E1A1004020E3208221210150E15B |
:105980002101402063218221A10150E1A101402099 |
:10599000E321822103C0A0E1000050E32332B011D3 |
:1059A0002112A011EEFFFF1A0E2212E207001C13B3 |
:1059B0000500000AEC0112E1A10180106C0112E166 |
:1059C00021018010EC0012E1A10080100EF0A0E196 |
:1059D00004E02DE5010000EB0000A0E30080BDE83D |
:1059E0000EF0A0E10DC0A0E1F0DF2DE904B04CE223 |
:1059F0000050A0E30040A0E324D04DE230C04BE2D1 |
:105A0000000051E330000CE80040A0E32C400BE51F |
:105A1000480100BA000053E3400100BA004053E2DD |
:105A20000180A0E10260A0E10090A0E1CE00001A98 |
:105A3000010052E14A00009A010852E30210A0E17D |
:105A40004300002AFF0052E30800A0830000A09357 |
:105A5000F4249FE53110A0E10130D2E7003083E06B |
:105A6000202073E2203062123933A0111662A01197 |
:105A7000188283112678A0E10800A0E10710A0E1B8 |
:105A80001992A011A5FFFFEB0710A0E10040A0E1D3 |
:105A90000800A0E14FFFFFEB0688A0E12888A0E105 |
:105AA000980002E02938A0E1044883E1020054E1B3 |
:105AB00000A0A0E10500002A064094E001A040E219 |
:105AC0000200002A020054E101A04A32064084305C |
:105AD000044062E00710A0E10400A0E18FFFFFEBAB |
:105AE0000710A0E10050A0E10400A0E139FFFFEBA6 |
:105AF000980002E00938A0E12338A0E1055883E1CD |
:105B0000020055E10400002A065095E0010040E241 |
:105B10000100002A020055E1010040320AC880E17C |
:105B20000030A0E338300BE538401BE52C301BE596 |
:105B300034C00BE530400BE530504BE2000053E33E |
:105B4000030015E8F0AF1B09000070E20010E1E26D |
:105B5000F0AF1BE9010452E31800A0231000A033AA |
:105B6000BAFFFFEA000052E30300001A0210A0E1AE |
:105B70000100A0E317FFFFEB0060A0E1010856E37E |
:105B80007500002AFF0056E30800A0830000A093E0 |
:105B9000B4239FE53610A0E10130D2E7003083E066 |
:105BA000202073E23000001A0648A0E10150A0E373 |
:105BB0002448A0E1088066E026A8A0E138500BE563 |
:105BC0004C400BE50A10A0E10800A0E153FFFFEBF9 |
:105BD0000A10A0E10040A0E10800A0E1FDFEFFEBFB |
:105BE0004C201BE5900202E02938A0E1044883E143 |
:105BF000020054E10070A0E10500002A064094E094 |
:105C0000017040E20200002A020054E101704732B4 |
:105C100006408430044062E00A10A0E10400A0E1E4 |
:105C20003EFFFFEB0A10A0E10050A0E10400A0E15C |
:105C3000E8FEFFEB4C201BE5900202E00938A0E1F2 |
:105C40002338A0E1055883E1020055E10400002A51 |
:105C5000065095E0010040E20100002A020055E1F3 |
:105C60000100403207C880E1AEFFFFEA201062E287 |
:105C70001662A0E13871A0E126A8A0E13931A0E1C7 |
:105C800006C8A0E10700A0E10A10A0E1188283E1A4 |
:105C90001992A0E14CC00BE520FFFFEB0A10A0E138 |
:105CA0000040A0E10700A0E1CAFEFFEB4C301BE57D |
:105CB0002338A0E10320A0E1900202E04C300BE584 |
:105CC0002838A0E1044883E14C501BE5020054E170 |
:105CD0000070A0E13CA00BE540500BE50500002A58 |
:105CE000064094E0017040E20200002A020054E104 |
:105CF0000170473206408430044062E03C101BE5EE |
:105D00000400A0E105FFFFEB3C101BE50050A0E103 |
:105D10000400A0E1AFFEFFEB40201BE5900202E093 |
:105D20000838A0E12338A0E1055883E1020055E1DD |
:105D30000500002A065095E0010040E20200002A1A |
:105D4000020055E10100403206508530077880E1BD |
:105D500038700BE5058062E099FFFFEA010456E325 |
:105D60001800A0231000A03388FFFFEA010054E1CF |
:105D700000C0A08338C00B856AFFFF8A010854E386 |
:105D80006200002AFF0054E30800A0830000A093F3 |
:105D9000B4219FE53410A0E10130D2E7003083E068 |
:105DA000202073E20400001A040058E10600599113 |
:105DB00001C0A02302C0A03158FFFFEA201062E218 |
:105DC0003631A0E1144283E13871A0E124A8A0E1BA |
:105DD0003931A0E10458A0E10A10A0E10700A0E1D8 |
:105DE000188283E11992A0E11662A0E144500BE50C |
:105DF000CAFEFFEB0A10A0E10050A0E10700A0E1FD |
:105E000074FEFFEB44C01BE50020A0E12CC8A0E11C |
:105E10009C0202E02838A0E1055883E1020055E128 |
:105E200048000BE544C00BE50700002A013040E2C2 |
:105E3000045095E048300BE50300002A020055E1CC |
:105E40000130433248300B3504508530055062E054 |
:105E50000A10A0E10500A0E1B0FEFFEB0A10A0E1EE |
:105E60000070A0E10500A0E15AFEFFEB44201BE515 |
:105E7000900202E00838A0E12338A0E1077883E12E |
:105E8000020057E10500002A047097E0010040E29B |
:105E90000200002A020057E10470873001004032FE |
:105EA00048401BE5077062E004C880E12C08A0E1CF |
:105EB0002638A0E10018CCE10328C6E191020EE0EB |
:105EC000900202E0930101E0900303E0011092E0F0 |
:105ED0000138832201E89EE02138A3E0070053E166 |
:105EE0000600008A0030A0130130A00309005EE123 |
:105EF0000030A09301300382000053E30000000A49 |
:105F000001C04CE20050A0E338500BE505FFFFEA6A |
:105F1000010454E31800A0231000A0339BFFFFEA04 |
:105F20002CC01BE50CC0E0E12CC00BE5002072E2A8 |
:105F30000030E3E2B8FEFFEA0050E0E32C500BE54E |
:105F4000000070E20010E1E2B1FEFFEA38B70100A4 |
:105F50000DC0A0E170D82DE904B04CE20150A0E1E1 |
:105F60000260A0E10040A0E1AF0000EB000050E3C0 |
:105F70000100000A0400A0E170A81BE90500A0E1EF |
:105F8000A90000EB000050E30100000A0500A0E1B9 |
:105F900070A81BE90400A0E1A80000EB000050E39A |
:105FA0000900000A0500A0E1A40000EB000050E396 |
:105FB000EFFFFF0A042095E5043094E5020053E169 |
:105FC000EBFFFF0A70681BE9940000EA0500A0E1FE |
:105FD0009A0000EB000050E3EBFFFF1A0500A0E180 |
:105FE0009B0000EB000050E30B00000A0400A0E15E |
:105FF000970000EB000050E3DDFFFF0A0F0094E87C |
:106000000F0086E8043094E5042095E50600A0E141 |
:10601000023003E0043086E570A81BE90400A0E12B |
:106020008B0000EB000050E3D7FFFF1A08C094E597 |
:10603000081095E50C3061E0000053E3003063B2D6 |
:106040001F0053E30C2094E50CE095E53F0000CAE7 |
:1060500001005CE1050000DA0C1061E001300EE2A5 |
:10606000011051E2AEE083E1FBFFFF1A0C10A0E14A |
:106070000C0051E1050000DA01C06CE0013002E2E1 |
:1060800001C05CE2A22083E101C0A001FAFFFF1A77 |
:10609000040094E5043095E5030050E12500000A72 |
:1060A000000050E30E20621002206E00000052E358 |
:1060B000002062B20C2086E50C0096E50030A0A31B |
:1060C0000130A0B3043086E5013040E20B0173E3F8 |
:1060D00008C086E50030A0E10900008A081096E5B6 |
:1060E0008320A0E1013042E20B0173E3011041E2A1 |
:1060F0000230A0E10200A081081086850C20868570 |
:10610000F6FFFF9A0330A0E3000050E3003086E57D |
:10611000010000BA0600A0E170A81BE9082096E57E |
:10612000013000E2A03083E1012082E20C3086E5FC |
:10613000082086E5F6FFFFEA0E3082E008C086E51B |
:106140000C3086E5040086E50300A0E1ECFFFFEAE1 |
:1061500001005CE100E0A0C101C0A0D10020A0D1FD |
:10616000CAFFFFEA0DC0A0E130D82DE904B04CE22F |
:1061700038D04DE224504BE20030A0E10120A0E1F4 |
:1061800048004BE20510A0E134404BE248300BE5FB |
:106190004C200BE5210600EB4C004BE20410A0E183 |
:1061A0001E0600EB0410A0E144204BE20500A0E134 |
:1061B00066FFFFEBBB0500EB30A81BE90DC0A0E1BB |
:1061C00030D82DE904B04CE238D04DE224504BE2F7 |
:1061D0000030A0E10120A0E148004BE20510A0E161 |
:1061E00034404BE248300BE54C200BE50B0600EB4E |
:1061F0004C004BE20410A0E1080600EB30301BE538 |
:106200000410A0E1013023E244204BE20500A0E1AC |
:1062100030300BE54DFFFFEBA20500EB30A81BE98A |
:1062200000009FE50EF0A0E114B70100000090E52A |
:10623000010050E30000A0830100A0930EF0A0E154 |
:10624000000090E5040050E30000A0130100A0034B |
:106250000EF0A0E1000090E5020050E30000A01362 |
:106260000100A0030EF0A0E10DC0A0E1F0D92DE9DE |
:1062700004B04CE238D04DE230504BE20030A0E1A7 |
:106280000120A0E154004BE20510A0E140404BE2A8 |
:1062900054300BE558200BE5E00500EB58004BE2CD |
:1062A0000410A0E1DD0500EB0500A0E1660000EBB5 |
:1062B000000050E350804BE20070A0E30700000AAA |
:1062C0002C301BE53C201BE50500A0E1023053E02B |
:1062D0000130A0132C300BE5720500EBF0A91BE98F |
:1062E0000400A0E1580000EB000050E30600000AA3 |
:1062F0003C201BE52C301BE50400A0E1023053E0FC |
:106300000130A0133C300BE5F2FFFFEA0500A0E1ED |
:10631000520000EB000050E30500000A0400A0E179 |
:10632000530000EB000050E3E4FFFF0A430000EBE2 |
:10633000E8FFFFEA0400A0E1480000EB000050E3A2 |
:106340000400000A0500A0E1490000EB000050E352 |
:10635000E6FFFF0AF4FFFFEA0500A0E1440000EBBE |
:10636000000050E3D5FFFF1A0400A0E1400000EB5D |
:10637000000050E3DDFFFF1A24201BE534301BE54D |
:10638000925386E028001BE538201BE52C101BE506 |
:10639000020080E03C201BE50630A0E1021051E045 |
:1063A0000110A0130740A0E1020080E2007053E258 |
:1063B00048000BE54C100BE5180000BA070177E325 |
:1063C0000800008A000055E3083098E58770A0E1D6 |
:1063D000017087B3013043E2070177E38550A0E104 |
:1063E000083088E5F6FFFF9A7F3007E2400053E36C |
:1063F0000400000A0330A0E30C7088E5003088E553 |
:106400000800A0E1B3FFFFEA800017E30100001AD3 |
:10641000000055E3F6FFFF0A407087E2F4FFFFEA51 |
:10642000083098E5010017E3013083E2A550A01180 |
:10643000083088E502518513A770A0E1DEFFFFEA6E |
:1064400000009FE50EF0A0E114B70100000090E508 |
:10645000010050E30000A0830100A0930EF0A0E132 |
:10646000000090E5040050E30000A0130100A00329 |
:106470000EF0A0E1000090E5020050E30000A01340 |
:106480000100A0030EF0A0E10DC0A0E170D82DE93D |
:1064900004B04CE228D04DE228504BE20030A0E19D |
:1064A0000120A0E13C004BE20510A0E138404BE2A6 |
:1064B0003C300BE540200BE5580500EB40004BE27B |
:1064C0000410A0E1550500EB0500A0E1490000EB38 |
:1064D000000050E30200000A0500A0E1F10400EB17 |
:1064E00070A81BE90400A0E1420000EB000050E3AB |
:1064F0000400A011F8FFFF1A24301BE534201BE52F |
:106500000500A0E1023023E024300BE53E0000EB63 |
:10651000000050E30500000A28201BE538301BE589 |
:10652000030052E1EBFFFF1A2F0000EBEAFFFFEA46 |
:106530000500A0E1390000EB000050E30060A0E19D |
:10654000F4FFFF1A0400A0E12F0000EB000050E36D |
:106550000500A01120600B151C600B15DEFFFF1A53 |
:106560000400A0E12D0000EB000050E30430A01374 |
:106570000500A01128300B15D7FFFF1A30301BE59E |
:1065800020201BE51C101BE52CC01BE5022063E04E |
:106590000C0051E10130423220200BE58110A03186 |
:1065A00020300B350131A0E30C0051E101106C20CB |
:1065B00003008021A330B0E18110A0E1F9FFFF1AB0 |
:1065C0007F3000E2400053E30100000A0C0085E543 |
:1065D000C0FFFFEA800010E30100001A000051E351 |
:1065E000F9FFFF0A400080E2F7FFFFEA00009FE5A5 |
:1065F0000EF0A0E114B70100000090E5010050E3A7 |
:106600000000A0830100A0930EF0A0E1000090E53F |
:10661000040050E30000A0130100A0030EF0A0E16D |
:10662000000090E5020050E30000A0130100A00369 |
:106630000EF0A0E10DC0A0E100D82DE90330A0E3E9 |
:1066400004B04CE2000050E310D04DE2A02FA0E1D6 |
:106650001C300BE50230A00318200BE51C300B05A5 |
:106660001400000A000052E31E30A0E314300BE5D2 |
:1066700010000B050400000A020150E3CF04A00340 |
:1066800000A81B09003060E210300BE510201BE56C |
:10669000070172E30700008A14101BE58230A0E1B5 |
:1066A000070173E3011041E20320A0E1FAFFFF9A22 |
:1066B00014100BE510300BE51C004BE2790400EBE5 |
:1066C00000A81BE90DC0A0E130D82DE904B04CE2D0 |
:1066D00014D04DE224504BE20030A0E128004BE200 |
:1066E0000510A0E128300BE5CC0400EB0500A0E18B |
:1066F000270000EB000050E30040A0E10000A013E1 |
:1067000030A81B190500A0E1170000EB000050E3C2 |
:106710000400A01130A81B190500A0E1170000EB30 |
:10672000000050E30400001A1C201BE5000052E3A7 |
:1067300030A81BB91E0052E3040000DA20301BE52C |
:10674000000053E30201E0030201A01330A81BE99B |
:1067500020301BE5000053E318301BE51E2062E2E9 |
:106760003302A0E10000601230A81BE9000090E5B0 |
:10677000010050E30000A0830100A0930EF0A0E10F |
:10678000000090E5040050E30000A0130100A00306 |
:106790000EF0A0E1000090E5020050E30000A0131D |
:1067A0000100A0030EF0A0E10DC0A0E130D82DE95A |
:1067B00004B04CE218D04DE20030A0E124104BE2CE |
:1067C00028004BE228300BE5940400EB18401BE551 |
:1067D0000050A0E3053FA0E1245183E1044FA0E174 |
:1067E0000430A0E124004BE2070090E800508DE562 |
:1067F000EE0300EB30A81BE90DC0A0E1F0DF2DE9AE |
:1068000004B04CE210D04DE20170A0E10280A0E1A2 |
:106810000060A0E1010100EB000050E30100000A6C |
:106820000600A0E1F0AF1BE90700A0E1FB0000EBD0 |
:10683000000050E30100000A0700A0E1F0AF1BE9EF |
:106840000600A0E1FA0000EB000050E30900000A96 |
:106850000700A0E1F60000EB000050E3EFFFFF0AA5 |
:10686000042097E5043096E5020053E1EBFFFF0AB0 |
:10687000F06F1BE9E60000EA0700A0E1EC0000EB86 |
:10688000000050E3EBFFFF1A0700A0E1ED0000EB72 |
:10689000000050E30F00000A0600A0E1E90000EB51 |
:1068A000000050E3DDFFFF0A06E0A0E10F00BEE8B4 |
:1068B00008C0A0E10F00ACE800309EE500308CE598 |
:1068C000042096E5043097E50800A0E1032002E0EB |
:1068D000042088E5F0AF1BE90600A0E1D90000EB39 |
:1068E000000050E3D3FFFF1A0C2086E2080096E573 |
:1068F00008C097E5300092E830E04BE200306CE0F1 |
:1069000030008EE8000053E3003063B23F0053E3F1 |
:106910000C3087E2000693E8800000CA0C0050E1CA |
:106920000C0000DA00C06CE00020A0E30110A0E33E |
:10693000A930A0E1014009E002500AE08A1F83E18A |
:10694000AA20A0E101C05CE2019084E102A085E1FF |
:10695000F4FFFF1A00C0A0E100005CE1150000DABE |
:106960000C0060E030201BE530104BE2300091E875 |
:10697000A230A0E10020A0E30110A0E3014004E068 |
:10698000025005E030204BE2300002E92C401BE5CC |
:1069900030504BE2841F83E1A420A0E1180015E9E8 |
:1069A000010050E2013083E1024084E1180085E8F3 |
:1069B0000C00A001EAFFFF1A041096E5043097E5E9 |
:1069C000030051E14C00000A000051E34500000AB9 |
:1069D00030E04BE230009EE8044059E00550CAE048 |
:1069E000000055E3350000BA0C7088E20030A0E3E7 |
:1069F000043088E5080088E5300087E8060097E85D |
:106A00000040E0E30030E0E3031091E00420A2E066 |
:106A10001F0272E31100008A2500000A180097E89F |
:106A20008420A0E1A34F82E10010E0E30000E0E356 |
:106A30008330A0E1082098E5030090E00410A1E075 |
:106A4000012042E21F0271E3082088E5180087E870 |
:106A50000200008AF0FFFF1A020070E3EEFFFF9AC7 |
:106A6000043097E50320A0E31E0273E3002088E5CD |
:106A70000D00009A060097E80040A0E30130A0E373 |
:106A8000A1C0A0E1035001E0046002E0080098E525 |
:106A9000823F8CE1A240A0E1031085E1042086E161 |
:106AA000010080E2060087E8080088E50800A0E110 |
:106AB000F0AF1BE9020071E3D7FFFF9AE7FFFFEA9F |
:106AC0000430A0E10540A0E1003073E20040E4E2C0 |
:106AD0000C7088E20120A0E3180087E8042088E514 |
:106AE000080088E5C4FFFFEA30104BE2300091E86F |
:106AF000094054E00A50C5E0B8FFFFEA30404BE2DD |
:106B00000C0094E8092092E00A30A3E00C7088E2BF |
:106B10000C0087E8041088E5080088E5CFFFFFEA4D |
:106B20000C0050E100A0A0C30090A0C3A1FFFFCAC9 |
:106B30000020A0E30010A0E330304BE2060083E821 |
:106B40000C00A0E19BFFFFEA0DC0A0E1F0D92DE908 |
:106B500004B04CE264C04BE24CD04DE234804BE2D6 |
:106B60000150A0E10040A0E16C604BE20C00A0E10C |
:106B70000810A0E148704BE20C0086E830008CE879 |
:106B8000850400EB0600A0E10710A0E1820400EB01 |
:106B90000710A0E15C204BE20800A0E115FFFFEB2D |
:106BA000D80300EBF0A91BE90DC0A0E1F0D92DE955 |
:106BB00004B04CE264C04BE24CD04DE234804BE276 |
:106BC0000150A0E10040A0E16C604BE20C00A0E1AC |
:106BD0000810A0E148704BE20C0086E830008CE819 |
:106BE0006D0400EB0600A0E10710A0E16A0400EBD1 |
:106BF00044301BE50710A0E1013023E25C204BE2AA |
:106C00000800A0E144300BE5FAFEFFEBBD0300EB0A |
:106C1000F0A91BE900009FE50EF0A0E124B70100F8 |
:106C2000000090E5010050E30000A0830100A09364 |
:106C30000EF0A0E1000090E5040050E30000A01376 |
:106C40000100A0030EF0A0E1000090E5020050E377 |
:106C50000000A0130100A0030EF0A0E10DC0A0E110 |
:106C6000F0DF2DE904B04CE26CC04BE284D04DE281 |
:106C70000150A0E10040A0E13C704BE274604BE2A7 |
:106C80000C00A0E10710A0E130008CE80C0086E8C1 |
:106C900050A04BE2400400EB0600A0E10A10A0E186 |
:106CA0003D0400EB0700A0E1DF0000EB000050E333 |
:106CB0000090A0E30080A0E30700000A38301BE545 |
:106CC0004C201BE50700A0E1023053E00130A01387 |
:106CD00038300BE58B0300EBF0AF1BE90A00A0E1B5 |
:106CE000D10000EB000050E30600000A4C201BE539 |
:106CF00038301BE50A00A0E1023053E00130A01358 |
:106D00004C300BE5F2FFFFEA0700A0E1CB0000EBFF |
:106D1000000050E30500000A0A00A0E1CC0000EBEF |
:106D2000000050E3E4FFFF0ABC0000EBE8FFFFEACD |
:106D30000A00A0E1C10000EB000050E30400000ADB |
:106D40000700A0E1C20000EB000050E3E6FFFF0AED |
:106D5000F4FFFFEA0700A0E1BD0000EB000050E3F4 |
:106D6000D5FFFF1A0A00A0E1B90000EB000050E3D4 |
:106D7000DDFFFF1A44304BE2060093E830C01BE50C |
:106D80000210A0E1912C83E080404BE20C0004E86B |
:106D900030204BE2600092E80630A0E103E0A0E181 |
:106DA00080304BE244001BE5600013E89E50A6E0F3 |
:106DB000912E83E080401BE590E04BE2060054E119 |
:106DC00090404BE20C0084E900030EE8901C82E046 |
:106DD0000300008A0600001A84001BE5050050E14C |
:106DE0000300009A893F8FE2180093E890C04BE2BD |
:106DF00018000CE80530A0E10040A0E300E0A0E3AB |
:106E000080300BE584E00BE580304BE2180013E89E |
:106E1000013093E00240A4E0A0C04BE2040052E144 |
:106E200018008CE90200008A0800001A030051E1F2 |
:106E30000600009A90204BE2030012E80040A0E315 |
:106E40000130A0E3030090E00410A1E0030002E899 |
:106E50000630A0E10040A0E30490A0E10380A0E19F |
:106E600090404BE2180094E990604BE208009AE5EC |
:106E7000082097E5600016E8038098E004109AE582 |
:106E8000043097E50490A9E0002082E0058098E0B6 |
:106E9000A0004BE20690A9E0042082E2013053E01A |
:106EA0000130A013030090E95C200BE51E0279E39A |
:106EB00080204BE260300BE5030082E91D00009A60 |
:106EC0007C104BE2220091E8A820A0E1893F82E1FA |
:106ED000A560A0E1A120A0E15C001BE5852F82E177 |
:106EE000A8600BE50060A0E30150A0E3051008E0F6 |
:106EF000A940A0E1010080E2000051E3AC200BE5D5 |
:106F00000490A0E10380A0E15C000BE50700000A0B |
:106F1000B0204BE2030092E9F8208FE20C0092E8E7 |
:106F2000031081E1020080E180304BE2030083E93D |
:106F30001E0279E3E1FFFF8A1F0279E31200008A53 |
:106F400078501BE57C601BE55CC01BE58500A0E17B |
:106F5000A64F80E18900A0E18630A0E1A82F80E162 |
:106F600001C04CE28810A0E180E04BE2000055E354 |
:106F700018008EE95CC00BE50290A0E10180A0E161 |
:106F80001D0000BA1F0279E3ECFFFF9AFF3008E210 |
:106F90000040A0E3800053E30600000A64204BE2B7 |
:106FA0000C3082E2000383E80320A0E364200BE5B9 |
:106FB00064004BE246FFFFEA000054E3F6FFFF1ACD |
:106FC0000020A0E3011CA0E3013008E0024009E03A |
:106FD000043093E10300001A7C004BE2030090E8C8 |
:106FE000010090E1ECFFFF0A0040A0E38030A0E345 |
:106FF000038098E00490A9E0E7FFFFEA0040A0E3E7 |
:107000000130A0E3038088E1049089E1DCFFFFEA1E |
:1070100000000000010000000000000000000080EF |
:1070200000009FE50EF0A0E124B70100000090E50C |
:10703000010050E30000A0830100A0930EF0A0E146 |
:10704000000090E5040050E30000A0130100A0033D |
:107050000EF0A0E1000090E5020050E30000A01354 |
:107060000100A0030EF0A0E10DC0A0E1F0DF2DE9CA |
:1070700004B04CE258C04BE250D04DE23C804BE2B1 |
:1070800060604BE20150A0E10040A0E10C0086E806 |
:107090000C00A0E10810A0E150704BE230008CE839 |
:1070A0003D0300EB0600A0E10710A0E13A0300EB6E |
:1070B0000800A0E18F0000EB000050E30200000A8E |
:1070C0000800A0E18F0200EBF0AF1BE90700A0E190 |
:1070D000880000EB000050E30700A011F8FFFF1A42 |
:1070E00038301BE54C201BE50800A0E1023023E00E |
:1070F00038300BE5840000EB000050E30500000A87 |
:107100003C201BE550301BE5030052E1EBFFFF1A6A |
:10711000750000EBEAFFFFEA0800A0E17F0000EB4A |
:10712000000050E30040A0E1F4FFFF1A0700A0E1D7 |
:10713000750000EB000050E30600000A0020A0E309 |
:107140000010A0E330304BE20800A0E134400BE532 |
:10715000060083E8DAFFFFEA0700A0E16F0000EB1A |
:10716000000050E30430A0130800A0113C300B15C0 |
:10717000D3FFFF1A44304BE2030093E860204BE258 |
:10718000030002E930304BE2000693E834201BE5AF |
:1071900048301BE564401BE5022063E00A0054E12F |
:1071A00034200BE50300008A0900001A68001BE583 |
:1071B000090050E10600009A013042E28A00A0E195 |
:1071C000A92F80E18910A0E134300BE502A0A0E1F5 |
:1071D0000190A0E10020A0E30010A0E370304BE29A |
:1071E000060083E8F8408FE2300094E864001BE575 |
:1071F000A430A0E1853F83E1A510A0E10A0050E1A1 |
:1072000078300BE574100BE50C00008A0200001AC0 |
:1072100068201BE5090052E10800008A60104BE27B |
:10722000030011E9009059E001A0CAE070004BE2B0 |
:107230000C0090E8042082E1053083E10C0080E836 |
:1072400070104BE2300011E98A30A0E1A97F83E1A0 |
:107250008960A0E1052094E107A0A0E10690A0E1EB |
:10726000E1FFFF1A70305BE50040A0E3800053E3CC |
:107270000400000A70204BE2060092E80C3088E21D |
:10728000060083E88DFFFFEA000054E3F8FFFF1AD1 |
:1072900070004BE2180090E80020A0E3011CA0E37E |
:1072A000013003E0024004E0043093E10600000AEC |
:1072B0000040A0E38030A0E3060090E8031091E0D6 |
:1072C0000420A2E0060080E8E9FFFFEA0A9099E1C5 |
:1072D000E7FFFF0A0040A0E38030A0E370004BE22C |
:1072E000F4FFFFEA000000000000001000009FE52E |
:1072F0000EF0A0E124B70100000090E5010050E38A |
:107300000000A0830100A0930EF0A0E1000090E532 |
:10731000040050E30000A0130100A0030EF0A0E160 |
:10732000000090E5020050E30000A0130100A0035C |
:107330000EF0A0E10DC0A0E1F0D92DE904B04CE2BF |
:1073400050C04BE238D04DE234804BE20150A0E116 |
:107350000040A0E148704BE20C00A0E158604BE215 |
:107360000810A0E10C0086E830008CE88A0200EBEF |
:107370000600A0E10710A0E1870200EB0800A0E1F1 |
:107380000D0000EB0030A0E1000053E30700A0E196 |
:107390000100000A0100A0E3F0A91BE9060000EBD0 |
:1073A0000030A0E1000053E30800A0E10710A0E1D5 |
:1073B000F7FFFF1ACB0200EBF0A91BE9000090E5F4 |
:1073C000010050E30000A0830100A0930EF0A0E1B3 |
:1073D0000DC0A0E1F0D92DE904B04CE250C04BE261 |
:1073E00038D04DE234804BE20150A0E10040A0E1F2 |
:1073F00048704BE20C00A0E158604BE20810A0E19D |
:107400000C0086E830008CE8630200EB0600A0E187 |
:107410000710A0E1600200EB0800A0E10D0000EB06 |
:107420000030A0E1000053E30700A0E10500001ACE |
:10743000080000EB0030A0E1000053E30800A0E1E9 |
:107440000710A0E10100000A0000E0E3F0A91BE939 |
:10745000A40200EBF0A91BE9000090E5010050E355 |
:107460000000A0830100A0930EF0A0E10DC0A0E1F8 |
:10747000F0D92DE904B04CE250C04BE238D04DE2D7 |
:1074800034804BE20150A0E10040A0E148704BE2A3 |
:107490000C00A0E158604BE20810A0E10C0086E867 |
:1074A00030008CE83C0200EB0600A0E10710A0E1F0 |
:1074B000390200EB0800A0E10D0000EB0030A0E174 |
:1074C000000053E30700A0E10500001A080000EBEC |
:1074D0000030A0E1000053E30800A0E10710A0E1A4 |
:1074E0000100000A0000E0E3F0A91BE97D0200EBC7 |
:1074F000F0A91BE9000090E5010050E30000A08323 |
:107500000100A0930EF0A0E10DC0A0E1F0D92DE99B |
:1075100004B04CE250C04BE238D04DE234804BE234 |
:107520000150A0E10040A0E148704BE20C00A0E156 |
:1075300058604BE20810A0E10C0086E830008CE8AF |
:10754000150200EB0600A0E10710A0E1120200EB1B |
:107550000800A0E10D0000EB0030A0E1000053E3C3 |
:107560000700A0E10100000A0100A0E3F0A91BE967 |
:10757000060000EB0030A0E1000053E30800A0E1AA |
:107580000710A0E1F7FFFF1A560200EBF0A91BE974 |
:10759000000090E5010050E30000A0830100A093EB |
:1075A0000EF0A0E10DC0A0E110D82DE90330A0E35A |
:1075B00004B04CE2000050E314D04DE2A02FA0E153 |
:1075C00024300BE50230A00320200BE524300B050E |
:1075D0001B00000A3C30A0E3000052E31C300BE526 |
:1075E0000030A001C34FA0010300000A020150E3D4 |
:1075F00000306012C34FA0111400000A10204BE2AB |
:10760000180002E914301BE51F0273E30C00008A26 |
:1076100010204BE2180012E98420A0E1A34F82E180 |
:107620008330A0E110204BE2180002E914201BE592 |
:107630001C301BE51F0272E3013043E21C300BE5F6 |
:10764000F2FFFF9A24004BE22E0100EB10A81BE989 |
:1076500004008FE2030090E810A81BE90000E0C1DD |
:10766000000000000DC0A0E130D82DE904B04CE2CC |
:107670000140A0E10030A0E130204BE21CD04DE2FF |
:1076800028504BE20200A0E10510A0E1180082E8BA |
:10769000C10100EB0500A0E1280000EB000050E371 |
:1076A0000040A0E10000A01330A81B190500A0E1D4 |
:1076B000180000EB000050E30400A01130A81B19D3 |
:1076C0000500A0E1180000EB000050E30400001AE0 |
:1076D00020301BE5000053E330A81BB91E0053E324 |
:1076E000040000DA24301BE5000053E30201E0034C |
:1076F0000201A01330A81BE93C2063E220304BE2DA |
:10770000030093E9530000EB24301BE5000053E332 |
:107710000000601230A81BE9000090E5010050E372 |
:107720000000A0830100A0930EF0A0E1000090E50E |
:10773000040050E30000A0130100A0030EF0A0E13C |
:10774000000090E5020050E30000A0130100A00338 |
:107750000EF0A0E10DC0A0E110D82DE904B04CE27C |
:107760002CC04BE21CD04DE224404BE20130A0E1A2 |
:107770000020A0E10C00A0E10410A0E10C008CE8C6 |
:10778000850100EB0400A0E1020000EB0400A0E191 |
:10779000DC0000EB10A81BE9043090E5000053E387 |
:1077A0000030A0130130A003043080E50EF0A0E10A |
:1077B0000DC0A0E104D04DE210D82DE908B04CE294 |
:1077C00014D04DE204308BE50030A0E124300BE50D |
:1077D0001C200BE50C009BE910404BE224004BE21F |
:1077E00020100BE50C0004E9C60000EB10A81BE913 |
:1077F0000DC0A0E170D82DE904B04CE234204BE27A |
:107800000140A0E10030A0E11CD04DE20200A0E167 |
:107810002C104BE2180082E85F0100EB20204BE2C5 |
:10782000180092E80020A0E30311E0E3015003E018 |
:10783000026004E023CFA0E104318CE1065095E121 |
:107840002C004BE2070090E801308313244FA0E1A5 |
:10785000A00000EB70A81BE9000052E370402DE986 |
:1078600020C062E20140A0E10030A0E10060A0E39E |
:107870000050A0E30800000A00005CE33032A0E101 |
:1078800000E06CE20060A0D3315EA0D13162A0C103 |
:10789000115C83C10640A0E10530A0E10410A0E125 |
:1078A0000300A0E17080BDE80DC0A0E1F0DD2DE98E |
:1078B00004B04CE20C5090E50040A0E104A090E53B |
:1078C000470000EB000050E30080A0E30060A0E16F |
:1078D000FF80A013015685130900000AA73BA0E111 |
:1078E000853483E1E374A0E17F24C7E3FF1008E25D |
:1078F0000225C2E3817B82E10231C7E38A0F83E183 |
:10790000F0AD1BE90400A0E13A0000EB000050E3F9 |
:107910000200000A0050A0E3FF80A0E3EEFFFFEAB0 |
:107920000400A0E1380000EB000050E30850A01173 |
:10793000E9FFFF1A000055E3E7FFFF0A080094E59E |
:107940007E0070E3180000AAFF0460E2FF0880E2F6 |
:10795000FF0C80E2820080E2190050E30850A0C1D1 |
:10796000060000CA0130A0E31330A0E1013043E279 |
:10797000030015E13520A0E10250A001015082135F |
:107980007F3005E2400053E33F5085120300000AB8 |
:10799000070175E30180A083A553A0E1CEFFFFEAB4 |
:1079A000800015E340508512F8FFFFEA7F0050E3A6 |
:1079B000D7FFFFCA7F3005E2400053E37F8080E2BB |
:1079C0003F5085120300000A000055E3A550A0B106 |
:1079D000018088B2EFFFFFEA800015E34050851276 |
:1079E000F8FFFFEA000090E5010050E30000A083EB |
:1079F0000100A0930EF0A0E1000090E5040050E328 |
:107A00000000A0130100A0030EF0A0E1000090E52B |
:107A1000020050E30000A0130100A0030EF0A0E15B |
:107A200004E02DE5B230D0E10320D0E5000090E580 |
:107A3000A333A0E1A223A0E1FFC4C0E3FFE013E26F |
:107A4000042081E502C5CCE31200001A00005CE3CB |
:107A50000230A0030D00000A8CC3A0E17E204EE29C |
:107A60000330A0E307017CE3003081E5082081E5D5 |
:107A70000400008A8CC0A0E107017CE3012042E2FF |
:107A800008208185FAFFFF9A0CC081E504F09DE48F |
:107A9000003081E504F09DE4FF005EE30600000A8B |
:107AA0008C33A0E1013183E37F204EE20C3081E58D |
:107AB0000330A0E3082081E5F4FFFFEA00005CE367 |
:107AC0000430A003F1FFFF0A013610E20130A013D9 |
:107AD000003081E5EBFFFFEA0DC0A0E100D82DE901 |
:107AE00004B04CE210D04DE200C0A0E11C004BE21B |
:107AF0001CC00BE518100BE514200BE510300BE54E |
:107B000068FFFFEB00A81BE90DC0A0E1F0DD2DE947 |
:107B100004B04CE208D04DE20C3080E20040A0E11D |
:107B2000600093E8048090E58C0000EB000050E3D7 |
:107B30000070A0E31C00000A863F8FE2180093E863 |
:107B40007F7EA0E3035085E1046086E10F7087E249 |
:107B500028301BE5233AA0E1063683E16336A0E135 |
:107B600028300BE5B6325BE1872AA0E17F3CC3E316 |
:107B7000A22AA0E1F030C3E3023283E1B6324BE146 |
:107B800025205BE5013008E28020C2E3832382E107 |
:107B900025204BE528301BE528500BE52C300BE564 |
:107BA00030304BE2030093E9F0AD1BE90400A0E1A3 |
:107BB0006F0000EB000050E30400000A7F7EA0E3AA |
:107BC0000F7087E20060A0E30050A0E3DFFFFFEA50 |
:107BD0000400A0E16B0000EB000050E3F8FFFF1A87 |
:107BE000063095E1D9FFFF0A080094E5FF3FE0E386 |
:107BF000013043E2030050E1350000AABFA360E278 |
:107C0000FFA78AE2FFAB8AE238005AE31C0000DAE1 |
:107C10000060A0E30050A0E3FF3005E20040A0E3D5 |
:107C2000800053E30B00000A0040A0E37F30A0E394 |
:107C3000035095E00460A6E0010256E32524A0E18C |
:107C40000170A023063C82E12644A0E10460A0E18B |
:107C50000350A0E1BDFFFFEA000054E3F1FFFF1A6B |
:107C60000020A0E3011CA0E3013005E0024006E093 |
:107C7000043093E1EFFFFF0A0040A0E38030A0E36F |
:107C8000EAFFFFEA0A20A0E10010A0E30100A0E360 |
:107C9000030100EB0040E0E30030E0E3003093E05C |
:107CA0000140A4E0042006E0031005E0021091E189 |
:107CB0000610A0E10500A0E10A20A0E10040A00319 |
:107CC0000140A013E3FEFFEB045080E1C46F81E1AB |
:107CD000D0FFFFEA010B50E3B7FFFFAAFF3005E238 |
:107CE0000040A0E3FF7F80E2800053E3037087E25F |
:107CF0000D00000A0040A0E37F30A0E3035095E0B0 |
:107D00000460A6E01E0276E30500009AA520A0E12B |
:107D1000863F82E1A640A0E1017087E20460A0E115 |
:107D20000350A0E12524A0E1C5FFFFEA000054E3D1 |
:107D3000EFFFFF1A0020A0E3011CA0E3013005E0E3 |
:107D4000024006E0043093E1EDFFFF0A0040A0E3AB |
:107D50008030A0E3E8FFFFEA000000000000080018 |
:107D6000000090E5010050E30000A0830100A09313 |
:107D70000EF0A0E1000090E5040050E30000A01325 |
:107D80000100A0030EF0A0E1000090E5020050E326 |
:107D90000000A0130100A0030EF0A0E1F0402DE9C7 |
:107DA00000C090E508D04DE204C08DE5B630DDE1BD |
:107DB0002332A0E183EAA0E10730DDE5042090E56D |
:107DC000AEEAA0E10170A0E1A333A0E1FF64CCE33F |
:107DD0007F1EA0E300005EE3043087E50250A0E1CF |
:107DE00000208DE50F66C6E30F1081E21E00001A29 |
:107DF000063092E10230A0031900000A0614A0E147 |
:107E00000534A0E1254C81E10460A0E10350A0E12C |
:107E1000FF2FE0E3012042E20330A0E31F0276E3FC |
:107E2000082087E5003087E50900008A8610A0E178 |
:107E3000082097E5A54F81E18530A0E10460A0E12D |
:107E40000350A0E1012042E21F0276E3082087E50B |
:107E5000F5FFFF9A0C3087E2600083E808D08DE2DE |
:107E6000F080BDE8003087E5FBFFFFEA01005EE13E |
:107E70000D00000A0624A0E1254C82E1FF0F4EE22E |
:107E800050108FE2060091E80534A0E1030040E2C3 |
:107E9000015083E1026084E10C3087E2080087E54D |
:107EA000600083E80330A0E3EDFFFFEA063092E1D3 |
:107EB0000430A003EAFFFF0A20108FE2060091E8D9 |
:107EC000013005E0024006E0043093E10130A013E8 |
:107ED000003087E5DEFFFFEA000000000000001030 |
:107EE00000000000000008000DC0A0E170D82DE9DE |
:107EF00004B04CE20140A0E10050A0E1590000EBC9 |
:107F0000000050E30100000A0100A0E370A81BE993 |
:107F10000400A0E1530000EB000050E3F9FFFF1A5A |
:107F20000500A0E1540000EB000050E30600000A49 |
:107F30000400A0E1500000EB000050E30420941581 |
:107F4000043095150200631070A81B190500A0E10C |
:107F5000490000EB000050E30400000A043095E5FE |
:107F6000000053E30100A0030000E01370A81BE928 |
:107F70000400A0E1400000EB000050E30060A0E13D |
:107F80000400000A043094E5000053E30000E0031D |
:107F90000100A01370A81BE90500A0E13B0000EB65 |
:107FA000000050E30400000A0400A0E1370000EBE9 |
:107FB000000050E30600A01170A81B190500A0E105 |
:107FC000320000EB000050E3EDFFFF1A0400A0E1D7 |
:107FD0002E0000EB000050E3DFFFFF1A041095E5D0 |
:107FE000043094E5030051E10100000A000051E370 |
:107FF000DBFFFFEA082095E5083094E5030052E135 |
:10800000F9FFFFCA010000AA000051E3DEFFFFEA0A |
:108010000CC085E20C0084E204209CE5043090E56D |
:10802000030052E1F0FFFF8A0300001A0C2095E5DF |
:108030000C3094E5030052E1EBFFFF8A042090E549 |
:1080400004309CE5030052E1EEFFFF8A0300001AB2 |
:108050000C2094E50C3095E5030052E1E9FFFF8A1E |
:108060000000A0E370A81BE9000090E5010050E3C8 |
:108070000000A0830100A0930EF0A0E1000090E5B5 |
:10808000040050E30000A0130100A0030EF0A0E1E3 |
:10809000000090E5020050E30000A0130100A003DF |
:1080A0000EF0A0E1000052E370402DE920C062E232 |
:1080B0000140A0E10030A0E10060A0E30050A0E397 |
:1080C0000800000A00005CE31132A0E100E06CE26D |
:1080D0000050A0D3106EA0D11052A0C1306C83C14B |
:1080E0000640A0E10530A0E10410A0E10300A0E1FA |
:1080F0007080BDE80DC0A0E10E002DE900D82DE98B |
:1081000010B04CE20010E0E304209BE508308BE265 |
:10811000C50000EB00A81BE9000052E302C0A0E18B |
:108120000600000A0020D0E5FF3001E2030052E122 |
:108130000EF0A00101C05CE2010080E2F8FFFF1A2E |
:108140000000A0E30EF0A0E1000052E300C0A0E1B7 |
:108150000EF0A0010130D1E4012052E20130CCE464 |
:108160000EF0A001FAFFFFEA0030D0E5000053E373 |
:108170000020A0E10200000A0130F0E5000053E316 |
:10818000FCFFFF1A000062E00EF0A0E10030A0E367 |
:10819000012042E2010072E30600000A00C0D0E5BF |
:1081A0000130D1E403305CE0010080E20100001AFC |
:1081B00000005CE3F5FFFF1A0300A0E10EF0A0E170 |
:1081C00000442DE910A09FE510209FE50AA08FE054 |
:1081D00002208AE00044BDE8010000EAA080FE031E |
:1081E0007C0300000DC0A0E170D82DE9004050E2F2 |
:1081F00004B04CE20260A0E10150A0E10200001ACC |
:10820000004092E5000054E30E00000A0400A0E1E3 |
:108210008A0400EB0030F4E7FF3003E2000053E390 |
:108220000400A0E10510A0E10340A0010300A001AB |
:108230000300000A6F0400EB000050E30030A013BD |
:108240000130C014000086E50400A0E170A81BE91D |
:108250000010A0E30A20A0E3FFFFFFEA0130A0E343 |
:10826000FFFFFFEA0DC0A0E1F0DF2DE990A19FE53F |
:1082700004B04CE208D04DE20040A0E10250A0E181 |
:108280000AA08FE00060A0E12C100BE530300BE578 |
:108290000000D4E55C0000EB000050E301408412D4 |
:1082A000FAFFFF1A0020D4E52B0052E30080A0E182 |
:1082B0000200000A2D0052E30100001A0180A0E331 |
:1082C000014084E21020D5E30D00001A0030D4E50F |
:1082D000300053E30A5085E20700001A016084E28F |
:1082E0000030D6E5203083E3780053E3025045E2C6 |
:1082F0000640A0E18550A00101408602100055E330 |
:108300001050A0A3023045E2220053E30070A0E326 |
:108310002900008A0510A0E10000E0E37FF5FFEBF3 |
:108320000510A0E10030A0E10000E0E3FF9003E2CF |
:1083300028F5FFEB0020D4E5303042E2FF3003E2C5 |
:10834000090053E30320A0910400009A400052E387 |
:108350002030828357304382FF2003822820A0935D |
:10836000050052E1140000AA016084E2000057E118 |
:108370000640A0E10700008A0030A0130130A003EE |
:10838000090052E10030A09301300382000053E362 |
:1083900095272700E6FFFF0A30201BE5023008E0A2 |
:1083A000FF8003E25C309FE503309AE72220A0E3E0 |
:1083B0000070E0E3002083E5DDFFFFEA2C301BE5E1 |
:1083C000000053E30060831530201BE5000058E3F4 |
:1083D0000211E0030211A013000052E30100571143 |
:1083E00020209F8502209A872230A083003082853A |
:1083F0000170A081000058E3000067120700A0018F |
:10840000F0AF1BE9EC7FFE03000000000030A0E1AC |
:10841000090040E2040050E30000A0830100A093A3 |
:10842000200053E3010080030EF0A0E10DC0A0E1A5 |
:1084300030D82DE90140A0E10010E0E104B04CE2A9 |
:10844000010054E10140A02148D04DE20210A0E11A |
:108450000320A0E10130E0E350300BE558309FE508 |
:1084600000C0A0E104E080E00050A0E35C004BE22B |
:1084700034E00BE5BC354BE148C00BE53CC00BE5F7 |
:1084800040C00BE538C00BE544E00BE51C500BE5A4 |
:10849000770100EB050054E130A81B0940201BE5E3 |
:1084A00044301BE5011042E2030052E140100B058D |
:1084B00040301BE50050C3E530A81BE990200000C8 |
:1084C0000DC0A0E130D82DE9000052E304B04CE229 |
:1084D00004D04DE20240A0E115104BE50050A0E1B0 |
:1084E00030A81B0915004BE20110A0E30520A0E114 |
:1084F000840400EB014054E230A81B09F8FFFFEAB6 |
:108500000DC0A0E1F0DF2DE944A59FE504B04CE2E9 |
:10851000C0D04DE20180A0E10030A0E30AA08FE0CE |
:10852000D8000BE50100A0E10390A0E1DC200BE501 |
:10853000CC300BE56B0600EB0800A0E1E70500EB93 |
:108540002620D8E5183098E5090053E1023188E08B |
:10855000240083E22030A0E3E4300BE5543088E2CD |
:10856000823183C01C2098E50B10A0E3083043C281 |
:10857000020059E1E0100BE5050000AA28104BE2CB |
:10858000012052E2203001E5083083E2041081E24C |
:10859000FAFFFF1A204098E5000054E30900001A92 |
:1085A000DC301BE5101098E5002093E548001BE542 |
:1085B0000F1C01E2000090E5C23FA0E1700100EB5A |
:1085C0000400A0E1F0AF1BE9070054E36400008A57 |
:1085D00080349FE503308AE0033084E0015053E5A6 |
:1085E0000A0055E35760A0E30500001A103098E533 |
:1085F000200013E35760A0032C60A013400013E396 |
:1086000080608613050054E3005065820400008AF0 |
:10861000030054E33760A003010054E30610A003F5 |
:10862000E0100B05043098E5000053E31420D8B5A2 |
:10863000000090E5E4200BB50F0C00E20520A0E15E |
:1086400048101BE5590100EB0530A0E10120A0E135 |
:108650000010A0E149004BE200608DE5EE0400EB64 |
:10866000201098E5050051E30050A0E11100009AA8 |
:108670000030D0E52D0053E3103098E50500001AD6 |
:10868000023083E30220A0E3015080E2E0200BE50A |
:10869000103088E5070000EA020013E30030A01361 |
:1086A000E0300B150300001AE0201BE5010013E386 |
:1086B0000420A013E0200BE5049098E5102098E535 |
:1086C000000059E3C8304BE2030065E00190A0B31D |
:1086D000100012E37F6080E20C00000A020051E308 |
:1086E000E0301BE50630A093030051E30930A003FE |
:1086F000060059E104005193E0300BE50300001A35 |
:108700000030D5E5300053E3809080120190A00343 |
:108710000030D5E5300053E30B00001AE0101BE5F4 |
:10872000203098E5050051E30B10A0C3010053E38E |
:10873000E0100BE520339F0503509A070560A00366 |
:108740000400000A000059E30060A003060059E19C |
:10875000092066800000008A0020A0E30290A0E1CA |
:108760006F0000EA0F0054E30A00008A48101BE57E |
:10877000043088E2060091E8D8001BE5250100EBF3 |
:10878000DC101BE5003091E5003083E00000A0E341 |
:10879000003081E5F0AF1BE9110054E31C00008AB2 |
:1087A0000040A0E3D4400BE548101BE50E00001A82 |
:1087B000003091E5040053E1CC300BE52200000AC3 |
:1087C000042098E5CC004BE2040052E10020E0B325 |
:1087D000D4304BE20010A0E1470300EB010070E34E |
:1087E0000060A0E1F0AF1B094D0000EAC8504BE269 |
:1087F000001091E5D4204BE20500A0E1260300EB38 |
:10880000010070E30060A0E10040C517F0AF1B0954 |
:10881000430000EA130054E31600008A48101BE5E9 |
:108820000D00001A005091E5000055E30600000A13 |
:10883000041098E5000051E30010E0B30500A0E14A |
:10884000DE0200EB0060A0E1350000EA0C329FE59B |
:1088500003509AE70660A0E3310000EA0030D1E55A |
:10886000C8504BE2C8304BE50160A0E30030A0E304 |
:10887000C7304BE52A0000EA140054E30700001A51 |
:10888000DC319FE503309AE7C8104BE2000093E526 |
:108890008020A0E3F90200EB0050A0E1E3FFFFEA33 |
:1088A000C0119FE501309AE7005093E50020D5E51F |
:1088B0000C3098E5030052E11200001AA4319FE544 |
:1088C00003309AE700C093E59C319FE505C06CE05A |
:1088D000D8001BE5041088E248204BE203309AE7F9 |
:1088E0000FE0A0E10CF193E7000050E33A0000BA7A |
:1088F000DC201BE5003092E5003083E00000A0E3BF |
:10890000003082E5F0AF1BE901309AE7003093E5D3 |
:10891000015085E20A3083E2030055E1E2FFFF3AAD |
:108920002D0000EAE0301BE50B0053E3092086E050 |
:108930000200000A050053E3012082D2022082C215 |
:10894000083098E5DC101BE5020053E103706280FB |
:108950000070A093003091E5072082E0023083E0B0 |
:10896000003081E5E4201BE5103098E5300052E34B |
:10897000079089000070A003084013E20400001A69 |
:108980000720A0E1D8001BE52010A0E3CBFEFFEB01 |
:108990000470A0E1D4309FE503008AE0E0301BE5DD |
:1089A000D8101BE5000083E00C0300EBD8001BE5AA |
:1089B0000920A0E13010A0E3C0FEFFEBCC301BE5A6 |
:1089C000000053E30600001A0500A0E10610A0E134 |
:1089D000D8201BE54B0300EB170000EA0000E0E3A2 |
:1089E000F0AF1BE90030A0E3000056E3D4300BE504 |
:1089F0000F00000A800056E30650A0318050A023EB |
:108A0000C8404BE20520A0E1D4304BE2CC104BE251 |
:108A10000400A0E1B80200EB0050A0E10510A0E1C5 |
:108A20000400A0E1D8201BE5360300EB056056E00A |
:108A3000EFFFFF1A0030A0E3CC300BE5D8001BE5B8 |
:108A40000720A0E12010A0E39CFEFFEB0000A0E3C4 |
:108A5000F0AF1BE9507DFE03C4B501FC040000002B |
:108A600008000000000000000C00000010000000E2 |
:108A7000CCB501FC0DC0A0E1F0D92DE904B04CE269 |
:108A8000A8D04DE2C4804BE20030A0E30070A0E12A |
:108A90000800A0E10140A0E1C8300BE50260A0E1C0 |
:108AA000340400EB000050E30450A0E1090000AAE8 |
:108AB000C4401BE50400A0E1AAFDFFEB0720A0E1F4 |
:108AC0000010A0E10400A0E10E0300EB0030E0E3A1 |
:108AD000C8300BE5280000EA0610A0E10800A0E17C |
:108AE0006E0400EB0030D4E5000053E3250053137F |
:108AF0000300000A0130F4E5000053E3250053139E |
:108B0000FBFFFF1A050054E10800000A041065E0AD |
:108B10000500A0E10720A0E1FA0200EB000050E30D |
:108B2000E9FFFFBAC8301BE5003083E0C8300BE531 |
:108B30000030D4E5000053E30F00000A0130F4E5F3 |
:108B4000250053E30900000A0700A0E10810A0E196 |
:108B5000C8204BE2C4400BE568FEFFEB000050E389 |
:108B6000C4401BA50450A0A1DDFFFFAAD6FFFFEA69 |
:108B70000450A0E1014084E2D9FFFFEAC8001BE5F0 |
:108B8000F0A91BE9010C51E30020C0050EF0A00183 |
:108B9000020B51E30100001A0C0080E80EF0A0E186 |
:108BA000020C51E3B020C001002080150EF0A0E1BE |
:108BB000000052E30020A0E1023B00E2090000BAFD |
:108BC000000053E30900001A010C50E3000091E596 |
:108BD000FF000002020C52E30038A0012308A001AC |
:108BE0000010A0E30EF0A0E1000053E30100000A32 |
:108BF000030091E80EF0A0E1010C50E3000091E5C4 |
:108C0000FF000002020C52E30038A0014308A0015B |
:108C1000C01FA0E10EF0A0E10DC0A0E1F0DF2DE942 |
:108C200004B04CE201DC4DE20890D3E5610059E369 |
:108C30000C310BE56790A003003093E5410059E348 |
:108C40000CE11BE54790A003000053E30630A0B3FE |
:108C50000CC09EE520310BE501EC4BE20030A0E3B7 |
:108C600004304EE50250A0E10140A0E10C211BE5DB |
:108C700002001CE3042092E528A29FE52B30A013FC |
:108C800001CC4B1208010BE51C210BE50AA08FE07B |
:108C900004304C150300001A01001CE32030A0131F |
:108CA00001EC4B1204304E1500C0A0E301EC4BE286 |
:108CB0000510A0E10400A0E10530A0E10420A0E13E |
:108CC00003C04EE5A60700EB000050E30080A0E1E2 |
:108CD0000A00000A600059E30630A0930530A08323 |
:108CE000FF304BE50C211BE50330A0E3E8300BE53A |
:108CF000FE604BE22030A0E3103082E55D0100EA27 |
:108D0000192E8FE20C0092E80510A0E10400A0E10A |
:108D100087F9FFEB000050E30030E00314310B054E |
:108D20009200000A5B2F8FE20C0092E80510A0E190 |
:108D30000400A0E1F3F9FFEB000050E3070000AAF4 |
:108D40002D30A0E301CC4BE20510A0E10400A0E12E |
:108D500004304CE57EFAFFEB0150A0E10040A0E1B9 |
:108D60004E2F8FE20C0092E80510A0E10400A0E174 |
:108D7000B9F7FFEB0130A0E10020A0E10510A0E170 |
:108D80000400A0E16AF9FFEB000050E30A00001ABA |
:108D9000600059E30430A0930330A083FF304BE51B |
:108DA0000CE11BE50330A0E3E8300BE5FE604BE28D |
:108DB0002030A0E310308EE52E0100EA016C8FE236 |
:108DC000C00096E890C04BE288C18CE00710A0E19B |
:108DD0000600A0E10730A0E10620A0E1C0008CE879 |
:108DE0009DF7FFEB018088E20C0058E30170A0E1E1 |
:108DF0000060A0E1F2FFFFDABC208FE20C0092E8F5 |
:108E00000510A0E10400A0E1BEF9FFEB0820A0E3FB |
:108E1000A00FA0E1013AA0E318010BE514210BE536 |
:108E200010310BE50C80A0E318C11BE510311BE5E8 |
:108E300001E048E2C330A0E100005CE328E10BE57B |
:108E400090204BE28801A0E124310BE52000000ACC |
:108E5000023080E00C0093E80510A0E10400A0E1DE |
:108E60007DF7FFEB60208FE20C0092E80170A0E13B |
:108E70000060A0E1A3F9FFEB000050E345CF4BB247 |
:108E800000509CB80750A0B10640A0B10CC06EB015 |
:108E900014C10BB51F0000EA000000000000000034 |
:108EA0000000D03F00000000E075FE031400000049 |
:108EB000180000001C0000003800000084D7974113 |
:108EC00000000000000024400000000065CDCD41FE |
:108ED00000000000023080E00C0093E80510A0E1E3 |
:108EE0000400A0E15FF8FFEB34204FE20C0092E8B1 |
:108EF0000170A0E10060A0E15BF9FFEB000050E32E |
:108F0000452F4BA20C0092A8032082A014210BA590 |
:108F10000750A0A10640A0A14A8F4BE2001198E89B |
:108F2000010078E310C10BE5BEFFFF1A68204FE295 |
:108F30000C0092E80510A0E10400A0E14AF9FFEB63 |
:108F4000000050E3090000BA0510A0E10400A0E110 |
:108F500094204FE20C0092E842F8FFEB14E11BE58D |
:108F600001E08EE214E10BE50150A0E10040A0E138 |
:108F7000AE704BE20280A0E30510A0E10400A0E186 |
:108F8000B7F9FFEB0060A0E185F9FFEB0130A0E14C |
:108F90000020A0E10510A0E10400A0E101F7FFEB33 |
:108FA000DC204FE20C0092E82BF7FFEB08311FE5C5 |
:108FB0000150A0E10040A0E10920A0E303109AE7DE |
:108FC0000700A0E10630A0E149FCFFEB018058E278 |
:108FD000007087E0E7FFFF5A600059E36530A0E3C7 |
:108FE000F8304BE520211BE54530A093F8304B9538 |
:108FF00020308992FF900392000052E30030A0D30A |
:109000000130A0C3670059E30030A0130130030210 |
:10901000000053E302C0A0E101C04212660059E320 |
:109020000940A0E10A00001A14311BE503C08CE0DE |
:1090300001007CE3060000AA00C0E0E3B0004BE2C0 |
:109040003010A0E31420A0E314C10BE5D40000EB22 |
:1090500014C11BE50020A0E33030A0E313005CE363 |
:10906000AF304BE5B0204BE50280A0E1AF704BE2A2 |
:109070009A004BE2050000CA0C2087E00230D2E5DE |
:10908000020082E2340053E30080A0930180A083B9 |
:10909000013070E5083083E00030C0E50020D0E505 |
:1090A000390052E30030A0930130A083300052E336 |
:1090B00001308303000053E3F4FFFF1A14111BE592 |
:1090C000070050E10700A091011081920170878292 |
:1090D00000E0A0E3670059E301E0E0E50800001AC2 |
:1090E000040071E30030A0B30130A0A30C0051E1F3 |
:1090F0000030A0C3013003D20E0053E16790A003FB |
:109100006690A013660059E314110BE50010A0133C |
:10911000000051E33030A0B30120A0E3013067B577 |
:10912000FFE04BE5E8200BE50130D7E4303043E2C7 |
:10913000E4300BE5008067E0FE604BE2E0504BE27C |
:10914000190000BA080051E10D0000BA011068E0F2 |
:10915000000051E3E0800BE5FE204BE5DC700BE501 |
:109160000E80A0E1FD604BE2D8504BE2FC604BC2A8 |
:10917000D0504BC2D8100BC5FDE04BC5D4E00BC599 |
:10918000080000EA000051E3060000DAFE204BE58B |
:10919000E0100BE5DC700BE5088061E0FD604BE260 |
:1091A000D8504BE2017087E00010E0E30CE11BE5D2 |
:1091B0000C309EE52332A0E1013003E2000058E3C9 |
:1091C00001308313000053E30300001A20211BE544 |
:1091D000670054E300005213040000DA0230A0E3F9 |
:1091E0000130C6E40130A0E3043085E4045085E298 |
:1091F000011091E2003061420020A0430120C644EA |
:109200000430854404208544000058E30130A01355 |
:109210000130C6140480851404708514670054E37B |
:109220000700000A20311BE5088061E0030058E1D7 |
:10923000038068B00030A0B30130C6B4048085B4A8 |
:10924000043085B4660059E30A00000A0130A0E347 |
:109250000130C6E4AC331FE5F8404BE203109AE757 |
:10926000F8205BE514311BE50400A0E1A0FBFFEB57 |
:10927000040085E4004085E5010C4BE2061060E047 |
:10928000010051E3E8504BE2070000DA018041E2BF |
:10929000043095E41CC11BE5018058E20CC063E07A |
:1092A0001CC10BE5045085E2F8FFFF1A01EC4BE20C |
:1092B00004305EE51C211BE5008053E20180A01311 |
:1092C000022068E0000052E30030A0D31C210BE52F |
:1092D0001C310BD5160000DA0CC11BE50C309CE5E7 |
:1092E000082013E20A00000A0730A0E30030C6E5B8 |
:1092F0001CE11BE548341FE504E085E403309AE7F0 |
:109300000020A0E3011081E21C210BE5003085E57F |
:10931000070000EA0CC11BE510309CE5300053E368 |
:10932000E8301B051CE11B050E308300E8300B05FF |
:109330001C210B051C211BE50040A0E3083082E046 |
:1093400001CC4BE20720A0E30020CCE5010054E172 |
:10935000F0300BE5413F4BE2EC300BE50060A0E163 |
:10936000F0504BE20C0000AA0180A0E1BC341FE5E4 |
:109370000120D6E403308AE0021193E708011BE5DF |
:109380000C0095E8F30100EB003095E5018058E210 |
:10939000034084E0085085E2F3FFFF1A0400A0E1D7 |
:1093A000F0AF1BE9000052E30030A0E10EF0A00195 |
:1093B000012052E20110C3E40EF0A001FBFFFFEA1E |
:1093C000000051E30020A0E10800000A0030D0E5D1 |
:1093D000000053E30500000A011051E2010080E2A1 |
:1093E0000200000A0030D0E5000053E3F9FFFF1A45 |
:1093F000000062E00EF0A0E10030D0E5000053E391 |
:109400000C00000A0020D1E5000052E301C0A0E1F9 |
:109410000500000A0030D0E5030052E10EF0A00183 |
:109420000120FCE5000052E3F9FFFF1A0130F0E5EE |
:10943000000053E3F2FFFF1A0000A0E30EF0A0E1EA |
:109440000020D1E5000052E304E02DE501C0A0E1D9 |
:1094500000E0A0E10700000A0030D0E5030052E17F |
:1094600001C08CE201C0A0010020DCE50100800207 |
:10947000000052E3F7FFFF1A00006EE004F09DE4E5 |
:109480000DC0A0E110D82DE904B04CE20140A0E1EC |
:10949000DA0300EB0400A0E110A81BE90DC0A0E175 |
:1094A00010D82DE9000050E304B04CE200C0A0E168 |
:1094B00020C04B0201E0A0E120D04DE200E0A0017D |
:1094C0000C00A0E128C04BE20240A0E12CC00BE55B |
:1094D0001030A0E300C0A0E32C104BE20020E0E33A |
:1094E00028E00BE524C00BE500408DE50D0000EB06 |
:1094F000000050E30100A00310A81BE90DC0A0E18B |
:1095000000D82DE904B04CE204D04DE202C0A0E145 |
:1095100003E0A0E10020E0E30C30A0E100E08DE5F5 |
:10952000000000EB00A81BE930442DE9A4A09FE552 |
:10953000010050E10000501310D04DE20140A0E1C5 |
:1095400003C0A0E10AA08FE00150A0E30300001ACD |
:10955000000050E300C0E0030D00A0E10050A0E3D4 |
:1095600002005CE102C0A02100005CE30C10A0E15D |
:10957000002094E51200000A003092E57F0053E3DA |
:109580000500009A50209FE502209AE75430A0E39E |
:109590000000E0E3003082E50C0000EA0030D2E594 |
:1095A000FFE003E200005EE30030C0E50E20A00112 |
:1095B0000300000A011051E2042082E2050080E06D |
:1095C000ECFFFF1A0D0050E1002084150C0061E053 |
:1095D00010D08DE23084BDE8286DFE03000000004D |
:1095E0000DC0A0E170D82DE904B04CE20160A0E10B |
:1095F0000050A0E1DBFAFFEB0040A0E10410A0E185 |
:109600000500A0E10630A0E10120A0E3030000EB8B |
:10961000000050E30040E0030400A0E170A81BE953 |
:109620000DC0A0E130D82DE904B04CE203C0A0E1A8 |
:10963000B030D3E1020B13E380E083E3083083E32F |
:109640000140A0E10050A0E30210A0E1B030CC1135 |
:109650000A00001A000054E30C20A0E1B0E0CCE1C5 |
:109660000430A0E10400000A940101E0250000EBB1 |
:109670000410A0E157F0FFEB0030A0E10350A0E19F |
:109680000500A0E130A81BE90DC0A0E1000052E3F5 |
:10969000F0D92DE904B04CE20280A0E10060A0E125 |
:1096A0000170A0E10250A0E11400000A343096E5F8 |
:1096B000000055E30540A0A10241E0B3000053E3E0 |
:1096C0000710A0E10420A0E10000E0032C009615A3 |
:1096D0000FE0A01103F0A011000050E3B030D6B1AC |
:1096E000083083B3B030C6B1040000BA040050E1C2 |
:1096F0000400A0C1005055E0007087E0EAFFFF1AA7 |
:10970000080065E0F0A91BE90DC0A0E1F0DF2DE93C |
:1097100004B04CE208D04DE2B030D2E178A29FE52F |
:10972000205013E20240A0E103C0A0E10070A0E1DC |
:109730000180A0E10AA08FE00700000A083083E35F |
:10974000B030C2E154329FE503309AE70920A0E32C |
:109750000000A0E3002083E5F0AF1BE9016A13E2FB |
:109760001400000A1C2092E5203094E5030052E129 |
:109770000100003A03001CE30900000A010B1CE38E |
:109780000120A0030220A0130400A0E10510A0E125 |
:10979000B50300EB000050E3B030D4110500A01178 |
:1097A0001700001A143094E5243084E5203084E555 |
:1097B0001C3084E5150000EA093B03E2010B53E38A |
:1097C0001200001A0030A0E30020A0E328104BE2B2 |
:1097D0000C0021E90400A0E10220A0E3710000EBED |
:1097E000000050E30900000AB0319FE503309AE71A |
:1097F000003093E5200053E30400000AB030D4E1C8 |
:109800000600A0E1083083E3B030C4E1F0AF1BE90B |
:10981000B030D4E1142094E5033AC3E3000057E3E9 |
:10982000282084E5B030C4E10790A0E10100A0E366 |
:109830002200001A0C1094E5142094E51C3094E5E5 |
:10984000020071E3035062E00260A0E10700001A29 |
:10985000B030D4E1000057E3023A83E3B030C4E112 |
:1098600007306910080083100700A001F0AF1BE962 |
:109870000210A0E10400A0E10520A0E181FFFFEBC0 |
:10988000143094E5005055E01C3084E5006086E01B |
:109890000500000A1C3094E50120D6E40120C3E451 |
:1098A000015055E21C3084E5F9FFFF1A000057E330 |
:1098B000142094051C30940503006200F0AF1B09CE |
:1098C0001C2094E5143094E5030052E10C00001ACA |
:1098D000183094E5033062E0080053E10800008A84 |
:1098E0000C3094E5020073E30500000A0710A0E1C4 |
:1098F0000820A0E10400A0E162FFFFEB007087E018 |
:109900001B0000EA183094E5031062E0080051E102 |
:109910000810A021000051E30760A0E1088061E089 |
:109920000500000A1C3094E50120D7E40120C3E4BF |
:10993000011051E21C3084E5F9FFFF1A000050E3EA |
:109940000B00000A000058E3B9FFFF1AB030D4E161 |
:10995000010C13E30600000A070056E10400002A88 |
:109960000130D6E40A0053E3B1FFFF0A070056E1D5 |
:10997000FAFFFF3AB020D4E124309FE5033002E043 |
:10998000000053E318309405070069E0283084058F |
:10999000023A82E3B030C4E1F0AF1BE9386BFE035A |
:1099A00000000000080B00000DC0A0E110D82DE958 |
:1099B00004B04CE22CC090E50C3080E203005CE186 |
:1099C0000140A0E10230A0E10A00000A383090E531 |
:1099D000000053E30500000A0C00A0E10FE0A0E145 |
:1099E00003F0A0E1000050E30000A0A310A81BA911 |
:1099F0000000E0E310A81BE90C0090E5060091E8E8 |
:109A0000C00200EB000051E30030E0B30030A0A33F |
:109A1000030084A80300A0E110A81BE90DC0A0E189 |
:109A2000F0DB2DE9000053E304B04CE20CD04DE232 |
:109A30000260A0E10150A0E10020A0E30370A0E1DA |
:109A40000080A0E128200BE5060000AA060176E3CD |
:109A5000007063E20300009A0130A0E328300BE5B8 |
:109A6000005075E20060E6E20090A0E30090C8E5D7 |
:109A70000710A0E10000E0E356EFFFEB0710A0E1C4 |
:109A80002C000BE50000E0E3A4EFFFEB010080E217 |
:109A9000070050E12C201B05012082020630A0E1C6 |
:109AA0002C200B0530000BE50560A0E130900B0584 |
:109AB0000390A0E10900A0E10710A0E197EFFFEB00 |
:109AC0000710A0E10040A0E10900A0E141EFFFEB99 |
:109AD0000710A0E10090A0E10600A0E18FEFFFEBEE |
:109AE00030501BE50710A0E1940525E00600A0E139 |
:109AF00038EFFFEB2C301BE50710A0E1930424E0C6 |
:109B00000500A0E133EFFFEB0710A0E10030A0E17A |
:109B10000500A0E1036084E080EFFFEB090050E363 |
:109B200004209B85303080E2018048E20230808052 |
:109B3000092096E10050A0E10030C8E5DCFFFF1AE3 |
:109B400028301BE5000053E32D30A01301306815C9 |
:109B50000800A0E1F0AB1BE90DC0A0E10E002DE96B |
:109B600000D82DE910B04CE204109BE508208BE2F0 |
:109B7000BFFBFFEB00A81BE90DC0A0E170DC2DE9E5 |
:109B800010A19FE504B04CE20CD04DE20040A0E1F2 |
:109B90000150A0E10AA08FE00010A0E3A420A0E300 |
:109BA000FFFDFFEB183094E500C0A0E31C104BE272 |
:109BB000013043E2183084E5045021E50020E0E361 |
:109BC000005084E50C00A0E128304BE228C00BE5F2 |
:109BD000640200EB010070E3286084120620A011EB |
:109BE0000A00A0130500001AAC309FE503308AE09C |
:109BF000003084E570AC1BE90000E0E370AC1BE9C9 |
:109C00000830A0E3010050E2043082E4FBFFFF1AB9 |
:109C10000030D5E5000053E30520A0E11000000A64 |
:109C20000030D2E5250053E30900001A0130F2E5C7 |
:109C3000250053E30600000A002084E50400A0E1AB |
:109C4000A80000EB000050E3002094A5010000AA4A |
:109C5000E8FFFFEA012082E20030D2E5000053E392 |
:109C6000EEFFFF1A180094E5010050E2005084E571 |
:109C70000620A0E10500004A003092E5080053E309 |
:109C8000DCFFFF0A010050E2042082E2F9FFFF5AE4 |
:109C90000000A0E370AC1BE9D866FE03D8B501FC58 |
:109CA0000DC0A0E130D82DE9185090E50030A0E3B8 |
:109CB000030055E104B04CE20040A0E1501080E503 |
:109CC00030A81BD9083080E51C5080E5183080E5AD |
:109CD000043080E5010000EB185084E530A81BE952 |
:109CE00018C090E500005CE310402DE9541080E2BC |
:109CF000083090E53900001A020153E30400001A0D |
:109D0000503090E5042093E4503080E5082080E551 |
:109D1000542080E5043090E5020153E30400001A6A |
:109D2000503090E5042093E4503080E5042080E535 |
:109D3000542080E51C3090E503005CE1320000AA6D |
:109D40000C3180E0282093E5070052E301C08CE24B |
:109D50001300000A180000DA020C52E31600000A91 |
:109D6000020000CA080052E31800000A120000EACC |
:109D7000020B52E30400000A0F0000DAB8309FE53E |
:109D8000030052E10600000A0B0000EA502090E5B3 |
:109D9000083082E2503080E5180092E8180081E82F |
:109DA000090000EA502090E5083082E2503080E55A |
:109DB000180092E8180081E8030000EA503090E5AE |
:109DC000042093E4503080E5002081E5081081E212 |
:109DD0001C3090E503005CE1D8FFFFBA0A0000EAFE |
:109DE000020153E32430D00583318100083013058C |
:109DF00008308005043090E5020153E32530D0059A |
:109E0000833181000830130504308005081090E587 |
:109E1000000051E31080BDA8103090E5083083E3C6 |
:109E2000001061E20130C3E32020A0E3142080E5AC |
:109E3000081080E5103080E51080BDE807080000BC |
:109E400000442DE940A09FE540109FE50AA08FE067 |
:109E500001308AE0182083E2F23072E1000053E121 |
:109E60000200000A01308AE0030052E1F9FFFF8A94 |
:109E700018309FE503308AE0023063E010209FE550 |
:109E800002208AE0C300D2E70084BDE82064FE031C |
:109E9000FCB501FC14B601FC0DC0A0E1080051E3C3 |
:109EA00030D82DE904B04CE20150A0E10040A0E31D |
:109EB0000A00000A010050E1080050130140A0E32D |
:109EC0000600000ADDFFFFEB0040A0E10500A0E175 |
:109ED000DAFFFFEB000054E10040A0C30140A0D333 |
:109EE0000400A0E130A81BE90DC0A0E1F0DF2DE9DE |
:109EF00004B04CE25CD04DE2103090E50020A0E3CD |
:109F000080E013E20830A0E3C8A49FE54C300BE5E5 |
:109F10005C200BE558200BE550300BE50010E0E32A |
:109F20000060A0E10280A0E10AA08FE080100BE5B4 |
:109F3000189090E502C0A0E1005090050F00000AC3 |
:109F40007B504BE20240A0E128104BE2003096E546 |
:109F5000043183E0042053E5542041E5043013E547 |
:109F6000030052E11101001A011081E2553051E560 |
:109F7000000053E3014084E2F3FFFF1A5D304BE53C |
:109F80000030D5E52A0053E30500A0E10700001AE0 |
:109F900000005CE328204BE20430A0130030A00353 |
:109FA000023083E00020A0E3282003E5015085E291 |
:109FB0000010D5E5303041E2090053E30040A0E352 |
:109FC0000800008A10349FE5030054E1043184D076 |
:109FD000833081D00110F5E5304043D2303041E28A |
:109FE000090053E3F6FFFF9A013050E5250053E3E3 |
:109FF0002F00001A0020D5E5000054E30030A0D364 |
:10A000000130A0C3240052E30030A013013003024A |
:10A01000000053E30600000A000059E3015085E206 |
:10A02000E200000A090054E10490A0C154400BE58D |
:10A030000E0000EA000059E3050000DA6D0052E36B |
:10A040001B00000AD90000EA04E08EE1015085E21D |
:10A05000060000EA000055E10390A0E10200009A2A |
:10A060000030D0E5300053E31100001A0050A0E1A9 |
:10A0700068339FE50140A0E303008AE00020D5E5B6 |
:10A080000130D0E4030052E1EEFFFF0A0020D0E5EA |
:10A09000000052E38440A0E1F7FFFF1A013055E5CC |
:10A0A000250053E30A300EE20240A0E1A3E0CEE136 |
:10A0B000B2FFFF1A0030D0E52A0053E31100001A66 |
:10A0C000000059E30B00000A0130D5E4240053E3FB |
:10A0D000B600001A000054E3B40000DA00005CE3AC |
:10A0E0000430A0130030A00328104BE2013083E0BD |
:10A0F000344003E5020000EA010080E2050050E17F |
:10A10000AA00001A0241A0E300005CE30600001A66 |
:10A110000030D5E52E0053E30480A0E10150850214 |
:10A1200000C0E00395FFFF0A000000EA80400BE555 |
:10A13000AC129FE501008AE00020D5E50030D0E5B3 |
:10A14000030052E1015085020200000A0130F0E5EF |
:10A15000000053E3F7FFFF1A01308AE0003063E0AC |
:10A16000010053E3040000CA0020D5E50030D0E52B |
:10A17000030052E109008002015085020020D5E56C |
:10A180000930D0E5000052E303C4A0E18700000AD3 |
:10A1900050729FE507008AE00030D0E5030052E1ED |
:10A1A0001A00001A07308AE0002063E0110052E331 |
:10A1B000010000DA010B1CE30220421228129FE585 |
:10A1C00084200BE501308AE0010043E20130F0E534 |
:10A1D000030052E1FCFFFFCA01308AE0004063E067 |
:10A1E00008329FE58410A0E103308AE0F32091E17A |
:10A1F000FC319FE503308AE0F33091E102208CE1ED |
:10A20000032002E007008AE048200BE5020000EA94 |
:10A210000130F0E5000053E3DEFFFF1A0010D5E542 |
:10A2200004001EE30F3C0CE20420CEE3032082E195 |
:10A230000C1086E52030A0033030A01380101BE501 |
:10A24000143086E50130A0E3020186E9102086E59E |
:10A250001C3086E50030D0E5000053E32300001AEF |
:10A260000020D5E56D0052E31420A00384200B05E7 |
:10A270001C3086051D00000A78119FE501309AE721 |
:10A28000000093E51530A0E384300BE50030D0E505 |
:10A29000020053E10E00001A58319FE503309AE79F |
:10A2A00000C093E550319FE500C06CE00810A0E3CA |
:10A2B000040086E248204BE203309AE70FE0A0E179 |
:10A2C0000CF193E7080050E31C0086E5070000DA74 |
:10A2D000360000EA01309AE7003093E5010080E2A1 |
:10A2E0000A3083E2030050E1E7FFFF3A2F0000EA63 |
:10A2F000000059E31D0000DA0040A0E328804BE293 |
:10A30000020054E354301BC5342058D5043083C0B8 |
:10A31000063084D0FF1002D2021043C22420C3D5DD |
:10A32000090051E1020000DA090051E30190A0E1C7 |
:10A330001E0000CA011041E2017186E0280097E585 |
:10A34000281018E5D3FEFFEB000050E32830181565 |
:10A35000283087151C3096E5014084E2023083E204 |
:10A36000030054E1048088E2E4FFFFBA060000EA3B |
:10A370001C2096E50130A0E30221A0E1280086E23E |
:10A380002630C6E548104BE26EF7FFEB103096E53D |
:10A3900084101BE5800013E301508502189086E5C8 |
:10A3A000201086E5005086050700000A010000EA3B |
:10A3B0000000E0E3F0AF1BE9002096E57C304BE2C3 |
:10A3C000053063E0032182E0002086E51C3096E53D |
:10A3D000020083E2F0AF1BE94463FE03FE0F0000BE |
:10A3E00020B601FC66B601FC28B601FC3DB601FCB6 |
:10A3F00046B601FC56B601FC0C000000200000002F |
:10A400000DC0A0E1F0DD2DE9E8A09FE504B04CE22D |
:10A4100038D04DE27C0050E30040A0E10170A0E1A3 |
:10A420000260A0E10AA08FE01680A0E30D00008A80 |
:10A43000C4309FE5000050E303509AE70500000A8E |
:10A440000030D5E5000053E301404402000054E32E |
:10A45000015085E2F9FFFF1A0030D5E5000053E313 |
:10A460000080A0130C00001A0010A0E1C12FA0E191 |
:10A4700000C0A0E327004BE20930E0E300C08DE517 |
:10A4800065FDFFEB74109FE50E5040E201108AE07D |
:10A490000500A0E10E20A0E32AF7FFEB0500A0E1F4 |
:10A4A00030F7FFEB000057E3014080E20060A003BB |
:10A4B000060054E10640A0812280A083000054E3FE |
:10A4C0000600000A0420A0E10510A0E10700A0E1B9 |
:10A4D0001CF7FFEB042087E00030A0E3013042E5E9 |
:10A4E000000058E318309F1503309A170080831539 |
:10A4F0000800A0E1F0AD1BE9485EFE032400000067 |
:10A500007CB601FC0000000070442DE94CA09FE5E2 |
:10A510000260A0E10150A0E108D04DE20340A0E1BB |
:10A520000610A0E10AA08FE00D30A0E10520A0E117 |
:10A530008C0090EF010A70E324209F8502209A8707 |
:10A5400000306082003082850000E083000050E32C |
:10A55000C01FA01103009D0808D08DE27084BDE8E3 |
:10A56000485DFE03000000000DC0A0E100DC2DE905 |
:10A570002CA09FE504B04CE204D04DE2000053E370 |
:10A5800003C0A0E10AA08FE018309F0503C08A0035 |
:10A590000230A0E10020E0E300C08DE5020000EB06 |
:10A5A00000AC1BE9E85CFE039403000010442DE9B5 |
:10A5B00004D04DE210C09DE5A0A09FE500005CE343 |
:10A5C00003E0A0E10AA08FE094309F0503C08A0059 |
:10A5D0000C0050E1000050130140A0E30300001AFA |
:10A5E000000050E300E0E0030D00A0E10040A0E324 |
:10A5F00002005EE102E0A02100005EE30EC0A0E1E7 |
:10A60000002091E51000000A0030D2E5000053E37D |
:10A61000003080E50320A0010B00000A7F0053E317 |
:10A62000050000DA3C209FE502209AE75430A0E3C1 |
:10A630000000E0E3003082E5060000EA01C05CE2D1 |
:10A64000012082E2040180E0EEFFFF1A0D0050E1DC |
:10A65000002081150E006CE004D08DE21084BDE86E |
:10A66000A85CFE039C0300000000000030402DE9C0 |
:10A670000140A0E1C45FA0E10230A0E10520A0E11B |
:10A680000410A0E13040BDE8FFFFFFEA0DC0A0E1EB |
:10A6900070DC2DE9BCA09FE504B04CE208D04DE28F |
:10A6A000020053E30350A0E10AA08FE00040A0E1C4 |
:10A6B0000500009AA0209FE502209AE71630A0E34B |
:10A6C0000000E0E3003082E570AC1BE9B030D0E17F |
:10A6D000020A13E320304BE2060003E80060E0E3E7 |
:10A6E0000200000A460000EB000050E31700001AC9 |
:10A6F000010055E30400001A24104BE20400A0E11D |
:10A70000160000EB000050E3100000BA24104BE2EA |
:10A710000520A0E10400A0E1A2FCFFEB000050E353 |
:10A720000A0000BAB030D4E1142094E5033AC3E340 |
:10A730000010A0E30730C3E3242084E5B030C4E177 |
:10A74000401084E5202084E51C2084E50160A0E120 |
:10A750000600A0E170AC1BE9C45BFE030000000032 |
:10A7600010402DE9B0E0D0E103C00EE200005CE350 |
:10A770000140A0E10B00000A020B1EE30900000AE1 |
:10A780000230D0E501005CE303308CE001C043E21D |
:10A79000020000CA083090E5000053E30100000AFF |
:10A7A0000000E0E31080BDE8020A1EE31C309015B3 |
:10A7B00014209015033062100CC06310010A1EE3D0 |
:10A7C000202080120C00121802304310030094E87D |
:10A7D00003C08C100C2050E0CC3FC1E0010053E1DD |
:10A7E0000C0084E8020000CA0300001A000052E1D5 |
:10A7F0000100009A00006CE21080BDE80C00A0E1AE |
:10A800001080BDE80DC0A0E170DC2DE9A0A09FE59F |
:10A81000A0309FE50AA08FE003309AE70050A0E344 |
:10A82000030050E10040A0E10540A001036CA0E35B |
:10A83000016CA003000054E304B04CE21000001AC5 |
:10A84000004093E5000054E31700000AB020D4E173 |
:10A85000023C22E2060013E10500000A020A12E3AC |
:10A860000300000A0400A0E1E5FFFFEB000050E355 |
:10A870000050E013104094E5000054E3F2FFFF1A8B |
:10A88000090000EAB030D4E1020A13E30600000A2E |
:10A890000500A0E10510A0E10420A0E199FBFFEB79 |
:10A8A000000050E30050A0030050E0130500A0E1B9 |
:10A8B00070AC1BE9585AFE0328000000000090E528 |
:10A8C000610000EA000090E56D0000EA000090E5FC |
:10A8D000790000EA0DC0A0E110DC2DE958A09FE549 |
:10A8E00004B04CE20AA08FE00000A0E3C4FFFFEB3D |
:10A8F00048309FE503309AE7004093E5000054E3B9 |
:10A9000010AC1B092C0094E50C3084E2030050E1EC |
:10A910000500000A3C3094E5000053E30FE0A0116D |
:10A9200003F0A0110030A0E32C3084E5104094E542 |
:10A93000000054E310AC1B09F1FFFFEA8859FE0345 |
:10A94000280000000DC0A0E170DC2DE950A09FE5BB |
:10A9500050309FE50AA08FE003509AE704B04CE224 |
:10A960000000A0E3006095E5100000EB38409FE593 |
:10A97000B4309AE1010060E2003423E0B4308AE1AF |
:10A980000100A0E3090000EB04408AE0B834D4E100 |
:10A99000010060E2003423E0B834C4E1006085E5E2 |
:10A9A00070AC1BE91859FE03000000006C000000A9 |
:10A9B0000DC0A0E100D82DE904B04CE23CD04DE23E |
:10A9C00048104BE2030000EB000050E30000A0132E |
:10A9D0000100A00300A81BE90DC0A0E130D82DE9BB |
:10A9E00004B04CE224D04DE20140A0E138204BE21B |
:10A9F00050109FE54C0000EB34201BE530104BE27B |
:10AA0000021091E828E05BE538301BE50050A0E13A |
:10AA1000003084E5042084E5081084E50CC084E55A |
:10AA200010E0C4E527104BE2110084E21320A0E3FC |
:10AA3000440000EB0010A0E30D20A0E358FAFFEB68 |
:10AA40000500A0E130A81BE90154000000442DE9F5 |
:10AA500024A09FE50AA08FE0030090EF010A70E3B5 |
:10AA60000084BD9814209FE502209AE7003060E240 |
:10AA70000000E0E3003082E50084BDE81858FE03E2 |
:10AA80000000000000442DE924A09FE50AA08FE00B |
:10AA9000040090EF010A70E30084BD9814209FE544 |
:10AAA00002209AE7003060E20000E0E3003082E537 |
:10AAB0000084BDE8E057FE030000000000442DE9DB |
:10AAC00024A09FE50AA08FE0060090EF010A70E342 |
:10AAD0000084BD9814209FE502209AE7003060E2D0 |
:10AAE0000000E0E3003082E50084BDE8A857FE03E3 |
:10AAF0000000000000442DE924A09FE50AA08FE09B |
:10AB0000360090EF010A70E30084BD9814209FE5A1 |
:10AB100002209AE7003060E20000E0E3003082E5C6 |
:10AB20000084BDE87057FE03000000000DC0A0E1E6 |
:10AB30000E002DE900D82DE910B04CE206009BE98B |
:10AB4000EBFFFFEB00A81BE9000052E30EF0A001B1 |
:10AB50000130D1E4012052E20130C0E40EF0A00146 |
:10AB6000FAFFFFEA0DC0A0E1F0D92DE904B04CE2F4 |
:10AB700050C04BE238D04DE234804BE20150A0E1AE |
:10AB80000040A0E148704BE20C00A0E158604BE2AD |
:10AB90000810A0E10C0086E830008CE87EF4FFEBA2 |
:10ABA0000600A0E10710A0E17BF4FFEB0800A0E1A4 |
:10ABB0000D0000EB0030A0E1000053E30700A0E12E |
:10ABC0000100000A0100A0E3F0A91BE9060000EB68 |
:10ABD0000030A0E1000053E30800A0E10710A0E16D |
:10ABE000F7FFFF1ABFF4FFEBF0A91BE9000090E5A7 |
:10ABF000010050E30000A0830100A0930EF0A0E14B |
:10AC0000A8610000202020202020202020202020BB |
:10AC1000202020200000000012010002020000405D |
:10AC200083044057000101020301090243000201AD |
:10AC300000C0000904000001020201000524001008 |
:10AC40000105240100010424020205240600010775 |
:10AC50000582030800FF09040100020A0000000742 |
:10AC600005030240000007058102400000040309BB |
:10AC70000426037700770077002E004D0069006BF3 |
:10AC80000072006F004B006F00700074006500726E |
:10AC9000002E00640065003C034D0069006B0072EB |
:10ACA000006F004B006F00700074006500720020A0 |
:10ACB000005600690072007400750061006C00208D |
:10ACC0000043004F004D00200050006F00720074E0 |
:10ACD00000200016034D004B002000200020003112 |
:10ACE000002E003000300030000000002110422013 |
:10ACF00063308440A550C660E770088129914AA15D |
:10AD00006BB18CC1ADD1CEE1EFF1311210027332D3 |
:10AD10005222B5529442F772D662399318837BB3AC |
:10AD20005AA3BDD39CC3FFF3DEE362244334200463 |
:10AD30000114E664C774A44485546AA54BB52885FC |
:10AD40000995EEE5CFF5ACC58DD5533672261116B3 |
:10AD50003006D776F6669556B4465BB77AA719974C |
:10AD60003887DFF7FEE79DD7BCC7C448E55886683B |
:10AD7000A7784008611802282338CCC9EDD98EE99C |
:10AD8000AFF9488969990AA92BB9F55AD44AB77A13 |
:10AD9000966A711A500A333A122AFDDBDCCBBFFBEC |
:10ADA0009EEB799B588B3BBB1AABA66C877CE44C23 |
:10ADB000C55C222C033C600C411CAEED8FFDECCD3C |
:10ADC000CDDD2AAD0BBD688D499D977EB66ED55EF3 |
:10ADD000F44E133E322E511E700E9FFFBEEFDDDF8C |
:10ADE000FCCF1BBF3AAF599F788F8891A981CAB118 |
:10ADF000EBA10CD12DC14EF16FE18010A100C2304A |
:10AE0000E3200450254046706760B9839893FBA304 |
:10AE1000DAB33DC31CD37FE35EF3B1029012F32299 |
:10AE2000D2323542145277625672EAB5CBA5A89554 |
:10AE300089856EF54FE52CD50DC5E234C324A014E9 |
:10AE400081046674476424540544DBA7FAB79987E4 |
:10AE5000B8975FE77EF71DC73CD7D326F236910639 |
:10AE6000B01657667676154634564CD96DC90EF92C |
:10AE70002FE9C899E9898AB9ABA944586548067889 |
:10AE80002768C018E1088238A3287DCB5CDB3FEB44 |
:10AE90001EFBF98BD89BBBAB9ABB754A545A376AD9 |
:10AEA000167AF10AD01AB32A923A2EFD0FED6CDD14 |
:10AEB0004DCDAABD8BADE89DC98D267C076C645C29 |
:10AEC000454CA23C832CE01CC10C1FEF3EFF5DCF24 |
:10AED0007CDF9BAFBABFD98FF89F176E367E554E79 |
:10AEE000745E932EB23ED10EF01E000000000000F2 |
:10AEF0001F0000003C0000005B0000007900000023 |
:10AF000098000000B6000000D5000000F40000002A |
:10AF100012010000310100004F0100006E0100002D |
:10AF2000000000001F0000003B0000005A0000006D |
:10AF30007800000097000000B5000000D400000079 |
:10AF4000F300000011010000300100004E0100007C |
:10AF50006D010000416E676C654E69636B202020B7 |
:10AF600020202020416E676C65526F6C6C20202081 |
:10AF7000202020204163634E69636B202020202025 |
:10AF800020202020416363526F6C6C202020202001 |
:10AF900020202020202020202020202020202020B1 |
:10AFA00020202020202020202020202020202020A1 |
:10AFB0002020202020202020202020202020202091 |
:10AFC0002020202020202020202020202020202081 |
:10AFD0002020202020202020202020202020202071 |
:10AFE0002020202020202020202020202020202061 |
:10AFF0002020202020202020202020202020202051 |
:10B0000020202020475053204461746120202020BC |
:10B0100020202020535049204572726F722020203A |
:10B0200020202020535049204F6B61792020202080 |
:10B0300020202020493243204572726F7220202048 |
:10B0400020202020493243204F6B6179202020208E |
:10B0500020202020202020202020202020202020F0 |
:10B06000202020204143435F53706565645F4E207C |
:10B07000202020204143435F53706565645F452075 |
:10B0800020202020202020202020202020202020C0 |
:10B0900020202020202020202020202020202020B0 |
:10B0A000202020204E5F53706565642020202020E2 |
:10B0B00020202020455F53706565642020202020DB |
:10B0C00020092000202020202020202020202020B7 |
:10B0D0002020202020202020202020202020202070 |
:10B0E000202020204779726F48656164696E67206F |
:10B0F00020202020436F6D7061737348656164691F |
:10B100006E67202044697374616E6365204E202051 |
:10B110002020202044697374616E636520452020DF |
:10B12000202020204750535F4E69636B2020202051 |
:10B13000202020204750535F526F6C6C202020202D |
:10B1400020202020557365645F5361747320202094 |
:10B15000202020203C3F786D6C2076657273696FEB |
:10B160006E3D22312E302220656E636F64696E67FA |
:10B170003D225554462D38223F3E0D0A3C6B6D6CE6 |
:10B1800020786D6C6E733D22687474703A2F2F6551 |
:10B19000617274682E676F6F676C652E636F6D2FB9 |
:10B1A0006B6D6C2F322E32223E0D0A3C446F63755C |
:10B1B0006D656E743E0D0A3C6E616D653E4D696B4A |
:10B1C000726F6B6F7074657220475053206C6F679D |
:10B1D00067696E673C2F6E616D653E0D0A0D0A3C16 |
:10B1E0005374796C652069643D224D4B5F677073C1 |
:10B1F0002D7374796C65223E0D0A3C4C696E655363 |
:10B2000074796C653E0D0A3C636F6C6F723E6666C6 |
:10B210003030303066663C2F636F6C6F723E0D0AC3 |
:10B220003C77696474683E323C2F77696474683E89 |
:10B230000D0A3C2F4C696E655374796C653E0D0A9E |
:10B240003C2F5374796C653E0D0A00003C2F446F0F |
:10B2500063756D656E743E0D0A3C2F6B6D6C3E0D13 |
:10B260000A0000003C506C6163656D61726B3E0DBD |
:10B270000A3C6E616D653E466C696768743C2F6E72 |
:10B28000616D653E0D0A3C7374796C6555726C3E58 |
:10B29000234D4B5F6770732D7374796C653C2F730E |
:10B2A00074796C6555726C3E0D0A00003C2F506C31 |
:10B2B0006163656D61726B3E0D0A00003C4C696E06 |
:10B2C00065537472696E673E0D0A3C7465737365ED |
:10B2D0006C6C6174653E313C2F74657373656C6C86 |
:10B2E0006174653E0D0A3C616C7469747564654DEA |
:10B2F0006F64653E72656C6174697665546F477200 |
:10B300006F756E643C2F616C7469747564654D6F04 |
:10B3100064653E0D0A3C636F6F7264696E617465AB |
:10B32000733E0D0A000000000D0A3C2F636F6F7220 |
:10B3300064696E617465733E0D0A3C2F4C696E65DD |
:10B34000537472696E673E0D0A0000001F6EA501FE |
:10B3500059F3F8C20000000000000000FB21E93FA3 |
:10B36000182D4454FB21F93F182D4454FB2109406A |
:10B37000182D445426A6A13C075C143383F9A2007F |
:10B38000444E6E00FC291500D1572700DD34F5002E |
:10B3900062DBC0003C999500419043006351FE0080 |
:10B3A000BBDEAB00B761C5003A6E2400D24D42004F |
:10B3B0004906E00009EA2E001C92D100EB1DFE00B8 |
:10B3C00029B11C00E83EA700F535820044BB2E00E1 |
:10B3D0009CE98400B4267000417E5F00D69139005C |
:10B3E000538339009CF439008B5F840028F9BD0039 |
:10B3F000F81F3B00DEFF97000F980500112FEF00AC |
:10B400000A5A8B006D1F6D00CF7E360009CB2700D6 |
:10B41000464FB7009E663F002DEA5F00BA277500D1 |
:10B42000E5EBC7003D7BF100F739070092528A0037 |
:10B43000FB6BEA001FB15F00085D8D003003560012 |
:10B440007BFC4600F0AB6B0020BCCF0036F49A00CA |
:10B45000E3A91D005E619100081BE6008599650067 |
:10B46000A0145F008D40680080D8FF0027734D0056 |
:10B4700006063100CA561500C9A873007BE26000B9 |
:10B480006B8CC000FB21F93FFB2109407CD91240A5 |
:10B49000FB2119407A6A1F407CD92240BBFD254020 |
:10B4A000FB2129403A462C407A6A2F405C473140C4 |
:10B4B0007CD932409C6B3440BBFD3540DB8F37403C |
:10B4C000FB2139401BB43A403A463C405AD83D40F3 |
:10B4D0007A6A3F404C7E40405C4741406C1042409D |
:10B4E0007CD942408CA243409C6B4440AC344540E4 |
:10B4F000BBFD4540CBC64640DB8F4740EB5848403C |
:10B50000FB21494000000000000000000000E03F77 |
:10B51000000000000000704100000000305FE43FC8 |
:10B5200083C8C96DFB21F93F0000405461B4D03D90 |
:10B530003163621A61B4D03D0000601A8A19A33BDE |
:10B540007370032E8A19A33B0000002E9A837B3967 |
:10B55000C14920250000F03F000000001F6EA5013A |
:10B5600059F3F8C20000F03F000000005555A53F18 |
:10B570004C5555556CC156BF7751C116A001FA3EC6 |
:10B580009015CB194F7E92BEAD529C809EEE213E0F |
:10B59000C4B1B4BDE9FAA8BDD43888BE0200000029 |
:10B5A000030000000400000006000000FB21F93F3A |
:10B5B000000000402D44743E000000009846F83C16 |
:10B5C0000000008051CC783B00000060831BF03904 |
:10B5D0000000008020257A38000000402282E336F7 |
:10B5E000000000801DF3693500000000000000002D |
:10B5F000000000000000F03F00000000000070416B |
:10B60000000000000000703E000000000000E03F6D |
:10B61000000000005555C5BF495555551111813FD2 |
:10B62000A6F81011A0012ABFD561C119E31DC73EBC |
:10B630007DFEB157E6E55ABEEB9C2B8A3AD9E53D33 |
:10B640007CD5CF5A67ACDD3F4FBB6105FB21E93F9D |
:10B65000182D44540B73EF3F9BF681D2FB21F93F29 |
:10B66000182D44547F2B7A3CE2652F2226A6813C7C |
:10B67000075C14338807703CBDCBF07A26A6913C5A |
:10B68000075C14335555D53F0D5555559999C9BF8C |
:10B69000C4EB98992449C23FFF830092C671BCBF96 |
:10B6A000711623FECD45B73F6E204CC5F2B0B3BF37 |
:10B6B0006D9A74AF660DB13F513DD0A02DDEADBF88 |
:10B6C0009AFDDE524B7BA93FEB0D762444B4A2BF1A |
:10B6D0002F6C6A2C3AAD903F11DA22E30000F03F64 |
:10B6E000000000003CE4377E9C7500883CE4377E17 |
:10B6F0009C75008800005043000000000000903C52 |
:10B70000000000003CE4377E9C7500881F6EA50198 |
:10B7100059F3F8C200000000000000000000000023 |
:10B720000000000000000000000000000000000019 |
:10B7300000000000000000000001020203030303F8 |
:10B7400004040404040404040505050505050505B1 |
:10B750000505050505050505060606060606060691 |
:10B760000606060606060606060606060606060679 |
:10B770000606060606060606070707070707070761 |
:10B780000707070707070707070707070707070749 |
:10B790000707070707070707070707070707070739 |
:10B7A0000707070707070707070707070707070729 |
:10B7B0000707070707070707080808080808080811 |
:10B7C00008080808080808080808080808080808F9 |
:10B7D00008080808080808080808080808080808E9 |
:10B7E00008080808080808080808080808080808D9 |
:10B7F00008080808080808080808080808080808C9 |
:10B8000008080808080808080808080808080808B8 |
:10B8100008080808080808080808080808080808A8 |
:10B820000808080808080808080808080808080898 |
:10B830000808080808080808101010080A0A0A0072 |
:10B840002B002D002000307800305800496E7661C2 |
:10B850006C6964206D756C74696279746520666FBB |
:10B86000726D617420737472696E672E000000003F |
:10B8700008000500030004000100000200000004AD |
:10B88000000802000700070800010101040201018D |
:10B8900001010101202B302D232749006E707858BB |
:10B8A0006F756469664665456747614143536373D5 |
:10B8B000000001070F101112131500100500000001 |
:10B8C00007000200040001000300001F0500000F34 |
:10B8D00007080200040001000300686C4C6A7A74D7 |
:10B8E000715A000204080800000800000108000066 |
:10B8F000556E6B6E6F776E206572726F72200000EE |
:10B9000053756363657373004F7065726174696F1B |
:10B910006E206E6F74207065726D6974746564005A |
:10B920004E6F20737563682066696C65206F7220A6 |
:10B930006469726563746F7279004E6F207375630A |
:10B94000682070726F6365737300496E74657272FC |
:10B9500075707465642073797374656D2063616CB0 |
:10B960006C00496E7075742F6F75747075742065F6 |
:10B9700072726F72004E6F20737563682064657613 |
:10B98000696365206F72206164647265737300413E |
:10B990007267756D656E74206C69737420746F6F57 |
:10B9A000206C6F6E67004578656320666F726D610D |
:10B9B00074206572726F72004261642066696C6502 |
:10B9C0002064657363726970746F72004E6F2063D8 |
:10B9D00068696C642070726F63657373657300527D |
:10B9E00065736F757263652074656D706F726172D7 |
:10B9F000696C7920756E617661696C61626C650055 |
:10BA000043616E6E6F7420616C6C6F63617465204E |
:10BA10006D656D6F7279005065726D697373696FD2 |
:10BA20006E2064656E6965640042616420616464CF |
:10BA30007265737300426C6F636B20646576696333 |
:10BA40006520726571756972656400446576696325 |
:10BA500065206F72207265736F7572636520627501 |
:10BA600073790046696C6520657869737473004961 |
:10BA70006E76616C69642063726F73732D64657692 |
:10BA8000696365206C696E6B004E6F207375636827 |
:10BA900020646576696365004E6F74206120646977 |
:10BAA000726563746F7279004973206120646972F2 |
:10BAB0006563746F727900496E76616C69642061A8 |
:10BAC0007267756D656E7400546F6F206D616E796D |
:10BAD000206F70656E2066696C657320696E2073D7 |
:10BAE000797374656D00546F6F206D616E79206F8E |
:10BAF00070656E2066696C657300496E6170707266 |
:10BB00006F70726961746520696F63746C20666F11 |
:10BB1000722064657669636500546578742066698F |
:10BB20006C6520627573790046696C6520746F6F6F |
:10BB3000206C61726765004E6F20737061636520D1 |
:10BB40006C656674206F6E20646576696365004974 |
:10BB50006C6C6567616C207365656B005265616430 |
:10BB60002D6F6E6C792066696C65207379737465CE |
:10BB70006D00546F6F206D616E79206C696E6B7310 |
:10BB80000042726F6B656E2070697065004E756D56 |
:10BB900065726963616C20617267756D656E742092 |
:10BBA0006F7574206F6620646F6D61696E004E75ED |
:10BBB0006D65726963616C20726573756C74206F5A |
:10BBC0007574206F662072616E6765005265736FD1 |
:10BBD0007572636520646561646C6F636B20617668 |
:10BBE0006F696465640046696C65206E616D6520EF |
:10BBF000746F6F206C6F6E67004E6F206C6F636B9D |
:10BC00007320617661696C61626C650046756E6374 |
:10BC100074696F6E206E6F7420696D706C656D65F0 |
:10BC20006E746564004469726563746F7279206E26 |
:10BC30006F7420656D70747900546F6F206D616E44 |
:10BC400079206C6576656C73206F662073796D6200 |
:10BC50006F6C6963206C696E6B7300004E6F206DB2 |
:10BC6000657373616765206F6620646573697265CB |
:10BC7000642074797065004964656E7469666965ED |
:10BC8000722072656D6F766564004368616E6E65E3 |
:10BC90006C206E756D626572206F7574206F662002 |
:10BCA00072616E6765004C6576656C2032206E6F40 |
:10BCB000742073796E6368726F6E697A6564004C84 |
:10BCC0006576656C20332068616C746564004C6532 |
:10BCD00076656C2033207265736574004C696E6BF9 |
:10BCE000206E756D626572206F7574206F662072AC |
:10BCF000616E67650050726F746F636F6C20647261 |
:10BD000069766572206E6F74206174746163686512 |
:10BD100064004E6F204353492073747275637475C9 |
:10BD2000726520617661696C61626C65004C657654 |
:10BD3000656C20322068616C74656400496E7661C0 |
:10BD40006C69642065786368616E676500496E762A |
:10BD5000616C6964207265717565737420646573C4 |
:10BD600063726970746F720045786368616E6765AD |
:10BD70002066756C6C004E6F20616E6F64650049C3 |
:10BD80006E76616C69642072657175657374206389 |
:10BD90006F646500496E76616C696420736C6F74C2 |
:10BDA000000042616420666F6E742066696C6520D5 |
:10BDB000666F726D617400446576696365206E6FAD |
:10BDC0007420612073747265616D004E6F20646130 |
:10BDD000746120617661696C61626C650054696DA3 |
:10BDE00065722065787069726564004F7574206FA4 |
:10BDF000662073747265616D73207265736F7572FE |
:10BE0000636573004D616368696E65206973206EB8 |
:10BE10006F74206F6E20746865206E6574776F7222 |
:10BE20006B005061636B616765206E6F7420696E93 |
:10BE30007374616C6C6564004F626A656374206939 |
:10BE4000732072656D6F7465004C696E6B2068615C |
:10BE500073206265656E2073657665726564004166 |
:10BE60006476657274697365206572726F720053CF |
:10BE7000726D6F756E74206572726F7200436F6DB4 |
:10BE80006D756E69636174696F6E206572726F7231 |
:10BE9000206F6E2073656E640050726F746F636FF5 |
:10BEA0006C206572726F72004D756C7469686F708A |
:10BEB00020617474656D707465640052465320731C |
:10BEC00070656369666963206572726F72004261B2 |
:10BED00064206D6573736167650056616C756520DC |
:10BEE000746F6F206C6172676520666F7220646585 |
:10BEF00066696E65642064617461207479706500A0 |
:10BF00004E616D65206E6F7420756E697175652068 |
:10BF10006F6E206E6574776F726B0046696C65207A |
:10BF200064657363726970746F7220696E206261F8 |
:10BF3000642073746174650052656D6F746520616F |
:10BF4000646472657373206368616E67656400433F |
:10BF5000616E206E6F74206163636573732061206E |
:10BF60006E656564656420736861726564206C69E0 |
:10BF7000627261727900416363657373696E6720F1 |
:10BF80006120636F7272757074656420736861728A |
:10BF90006564206C696272617279002E6C6962203E |
:10BFA00073656374696F6E20696E20612E6F75749E |
:10BFB00020636F7272757074656400417474656D8E |
:10BFC0007074696E6720746F206C696E6B20696E87 |
:10BFD00020746F6F206D616E792073686172656483 |
:10BFE000206C69627261726965730043616E6E6F85 |
:10BFF00074206578656320612073686172656420D0 |
:10C000006C696272617279206469726563746C79BB |
:10C0100000496E76616C6964206F7220696E636F8F |
:10C020006D706C657465206D756C7469627974658A |
:10C03000206F722077696465206368617261637440 |
:10C04000657200496E7465727275707465642073F0 |
:10C05000797374656D2063616C6C2073686F756CA7 |
:10C060006420626520726573746172746564005344 |
:10C07000747265616D732070697065206572726F8E |
:10C080007200546F6F206D616E79207573657273E5 |
:10C0900000536F636B6574206F7065726174696FB4 |
:10C0A0006E206F6E206E6F6E2D736F636B65740004 |
:10C0B00044657374696E6174696F6E206164647243 |
:10C0C000657373207265717569726564004D65737F |
:10C0D0007361676520746F6F206C6F6E67005072BC |
:10C0E0006F746F636F6C2077726F6E6720747970F6 |
:10C0F0006520666F7220736F636B65740050726F9A |
:10C10000746F636F6C206E6F7420617661696C610F |
:10C11000626C650050726F746F636F6C206E6F7429 |
:10C1200020737570706F7274656400536F636B6514 |
:10C13000742074797065206E6F7420737570706FE1 |
:10C1400072746564004F7065726174696F6E206E01 |
:10C150006F7420737570706F727465640050726FC5 |
:10C16000746F636F6C2066616D696C79206E6F749B |
:10C1700020737570706F72746564004164647265D9 |
:10C1800073732066616D696C79206E6F74207375AE |
:10C1900070706F727465642062792070726F746F52 |
:10C1A000636F6C004164647265737320616C7265C7 |
:10C1B00061647920696E207573650043616E6E6FEE |
:10C1C000742061737369676E20726571756573742D |
:10C1D00065642061646472657373004E6574776F83 |
:10C1E000726B20697320646F776E004E6574776F91 |
:10C1F000726B20697320756E726561636861626C31 |
:10C2000065004E6574776F726B2064726F70706535 |
:10C210006420636F6E6E656374696F6E206F6E204D |
:10C22000726573657400536F66747761726520631D |
:10C23000617573656420636F6E6E656374696F6E9C |
:10C240002061626F727400436F6E6E656374696F14 |
:10C250006E20726573657420627920706565720066 |
:10C260004E6F20627566666572207370616365202B |
:10C27000617661696C61626C65005472616E7370A5 |
:10C280006F727420656E64706F696E7420697320BC |
:10C29000616C726561647920636F6E6E656374654D |
:10C2A00064005472616E73706F727420656E647096 |
:10C2B0006F696E74206973206E6F7420636F6E6E89 |
:10C2C00065637465640043616E6E6F742073656EA0 |
:10C2D00064206166746572207472616E73706F722F |
:10C2E0007420656E64706F696E7420736875746411 |
:10C2F0006F776E00546F6F206D616E792072656686 |
:10C300006572656E6365733A2063616E6E6F74204B |
:10C3100073706C69636500436F6E6E656374696FFB |
:10C320006E2074696D6564206F757400436F6E6E66 |
:10C33000656374696F6E2072656675736564004825 |
:10C340006F737420697320646F776E004E6F207274 |
:10C350006F75746520746F20686F7374004F70651B |
:10C36000726174696F6E20616C72656164792069B5 |
:10C370006E2070726F6772657373004F70657261C3 |
:10C3800074696F6E206E6F7720696E2070726F67B0 |
:10C3900072657373005374616C65204E465320665A |
:10C3A000696C652068616E646C65005374727563B6 |
:10C3B00074757265206E6565647320636C65616E6B |
:10C3C000696E67004E6F7420612058454E495820B1 |
:10C3D0006E616D656420747970652066696C6500B6 |
:10C3E0004E6F2058454E49582073656D6170686FD7 |
:10C3F00072657320617661696C61626C6500497376 |
:10C400002061206E616D65642074797065206669B5 |
:10C410006C650052656D6F746520492F4F20657201 |
:10C42000726F72004469736B2071756F746120655F |
:10C4300078636565646564004E6F206D6564697539 |
:10C440006D20666F756E640057726F6E67206D6544 |
:0CC450006469756D20747970650000004F |
:10C45C000A0D204E6176694374726C205625642E49 |
:10C46C0025642563000000004C4F472F25303469AC |
:10C47C0025303269253032692F47505325303569C4 |
:10C48C002E4B4D4C000000006E6F20464320636F16 |
:10C49C006D6D756E69636174696F6E2000000000CC |
:10C4AC006E6F204D4B334D616720636F6D6D756EF4 |
:10C4BC0069636174696F6E20000000004643206E52 |
:10C4CC006F7420636F6D70617469626C652000001D |
:10C4DC004D4B334D6167206E6F7420636F6D7061CF |
:10C4EC007469626C652000006E6F204750532063A6 |
:10C4FC006F6D6D756E69636174696F6E20000000FD |
:10C50C0062616420636F6D706173732076616C750A |
:10C51C00652000005243205369676E616C206C6F7C |
:10C52C00737420004E6F204572726F722020202091 |
:10C53C002020202020202020202020000D0A2D2D1E |
:10C54C002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0F |
:10C55C002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DFF |
:10C56C002D2D2D2D2D2D2D2D2D2D2D000A0D205643 |
:10C57C00657273696F6E20696E666F726D61746936 |
:10C58C006F6E3A000A0D20466C696768742D43740F |
:10C59C00726C206E6F7420636F6D70617469626C65 |
:10C5AC00650000000A0D204D4B334D6167206E6F06 |
:10C5BC007420636F6D70617469626C6500000000BB |
:10C5CC000D0A2D2D2D2D2D2D2D2D2D2D2D2D2D2DD2 |
:10C5DC002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D7F |
:10C5EC002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D8F |
:10C5FC000A0D0A000A0D436F6D6D756E69636174E7 |
:10C60C00696F6E2D4572726F723A204D4B334D61CE |
:10C61C00670A0D000D0A4F70656E696E67206B6DB1 |
:10C62C006C2D66696C653A20000000000D0A45729D |
:10C63C00726F72206F70656E696E67206B6D6C2DFA |
:10C64C0066696C653A2000000D0A4572726F7220A3 |
:10C65C004C6F6767696E6720475053206461746143 |
:10C66C000D0A00000D0A436C6F73696E67206B6DC9 |
:10C67C006C2D66696C650D0A000000000D0A4162A4 |
:10C68C006F72742048616E646C6572000D0A556E91 |
:10C69C00646566696E65642048616E646C657200E1 |
:10C6AC000D0A50726566657463682048616E646C2F |
:10C6BC00657200005B25695D000000002B2B2020BB |
:10C6CC004E6176692D4374726C20202B2B00000078 |
:10C6DC00205625642E2564256320000020457272A7 |
:10C6EC003A25640025730000286329204275737372 |
:10C6FC002C204275736B6572000000004E6F204752 |
:10C70C0050532064617461004C6F6E3A20202020DD |
:10C71C00202020202020202020202020000000008D |
:10C72C004C61743A20202020202020202020202022 |
:10C73C002020202000000000416C743A2020202092 |
:10C74C00202020202020202020202020000000005D |
:10C75C00536174733A25303264204669783A4E6FCF |
:10C76C006E650000536174733A253032642046695B |
:10C77C00783A324420200000536174733A253032E9 |
:10C78C0064204669783A3344202000005361747366 |
:10C79C003A25303264204669783A3F3F2020000029 |
:10C7AC004C6F6E3A252B336C642E2530376C64201D |
:10C7BC00646567004C61743A252B336C642E25300C |
:10C7CC00376C642064656700416C743A25346C6482 |
:10C7DC002E2530336C64206D0000000053706565AD |
:10C7EC0064204E3A202020202020202020202020B1 |
:10C7FC0000000000537065656420453A202020201D |
:10C80C00202020202020202000000000537065658F |
:10C81C006420543A2020202020202020202020207A |
:10C82C00000000005370656564204E3A20252B34BF |
:10C83C006C6420636D2F7300537065656420453AFA |
:10C84C0020252B346C6420636D2F73005370656549 |
:10C85C006420543A20252B346C6420636D2F7300B4 |
:10C86C00475053205554432054696D650000000017 |
:10C87C0020202020202020202020202020202020AC |
:10C88C00202020200000000020204E6F2074696DB5 |
:10C89C0065206461746121202020202000000000AC |
:10C8AC00446174653A20253032692F253032692F66 |
:10C8BC00253034690000000054696D653A2025303C |
:10C8CC0032693A253032693A253032692E253033B7 |
:10C8DC00690000004E6176694D6F64653A2025331E |
:10C8EC00690000004720203A253369205020203A67 |
:10C8FC0025336920000000004920203A25336920A7 |
:10C90C004420203A25336920000000004143433A7B |
:10C91C00253369205341543A253369200000000027 |
:10C92C00486F6D6520506F736974696F6E000000FD |
:10C93C0020202020202020202020202020202020EB |
:10C94C002020202020000000202020204973206E71 |
:10C95C006F74207365742E2020202020200000008E |
:10C96C004C6F6E3A2025336C642E2530376C642066 |
:10C97C00646567004C61743A2025336C642E253055 |
:10C98C00376C64206465670052432D537469636B84 |
:10C99C00730000004E693A2534692020526F3A2505 |
:10C9AC003469200047733A253469202059613A25AF |
:10C9BC003469200052432D506F74697300000000DD |
:10C9CC00506F313A2533692020506F323A25336944 |
:10C9DC0020000000506F333A2533692020506F340B |
:10C9EC003A25336920000000496E744E69636B3A36 |
:10C9FC002020253569000000496E74526F6C6C3A2A |
:10CA0C0020202535690000004163634E69636B3A51 |
:10CA1C002020253569000000416363526F6C6C3A2D |
:10CA2C0020202535690000004779726F4E69636BD1 |
:10CA3C003A202025346900004779726F526F6C6C74 |
:10CA4C003A202025346900004779726F5961773A92 |
:10CA5C00202020253469000052432D4C6576656CEE |
:10CA6C003A202020202533690000000055626174B3 |
:10CA7C003A202020202020202025336900000000AF |
:10CA8C00436F6D7048656164696E673A2025336940 |
:10CA9C00000000004779726F48656164696E673AFF |
:10CAAC0020253369000000005550313A25336920A8 |
:10CABC00205550323A253369200000005550333A46 |
:10CACC0025336920205550343A2533692000000065 |
:10CADC005550353A25336920205550363A2533695F |
:10CAEC00200000005550373A253369202055503826 |
:10CAFC003A253369200000004D4B334D41472056F9 |
:10CB0C0025692E25692563004D6167583A20253427 |
:10CB1C00692000004D6167593A20253469200000D6 |
:10CB2C004D61675A3A2025346920000054696D65BF |
:10CB3C007220696E69742E2E2E0000006F6B0A0D28 |
:10CB4C00000000000D0A2053504920696E69742EB4 |
:10CB5C002E2E00006F6B00000A0D204E6F207665A4 |
:10CB6C007273696F6E20696E666F726D6174696F36 |
:10CB7C006E2066726F6D20466C69676874437472C0 |
:10CB8C006C2E00000A0D20466C6967687443747241 |
:10CB9C006C205625642E25642563000020436F6DA0 |
:10CBAC0070617469626C653A202564000D0A204935 |
:10CBBC00324320696E69742E2E2E00000D0A204916 |
:10CBCC003243206465696E69742E2E2E00000000BD |
:10CBDC000A0D4E6F2076657273696F6E20696E66F2 |
:10CBEC006F726D6174696F6E2066726F6D204D4B44 |
:10CBFC00334D61672E0000000A0D204D4B334D6103 |
:10CC0C0067205625642E2564256300000D0A2055E7 |
:10CC1C00534220696E69742E2E2E00000D0A204698 |
:10CC2C004154313620696E69742E2E2E000000009E |
:10CC3C0053442D4361726420636F756C64206E6F76 |
:10CC4C007420626520696E697469616C697A6564C7 |
:10CC5C002E0000004572726F722072656164696EFD |
:10CC6C006720746865204D42522E00004572726F29 |
:10CC7C00722072656164696E672074686520564223 |
:10CC8C00522E00005642523A20536563746F722044 |
:10CC9C0073697A65206E6F7420737570706F72741F |
:10CCAC0065642E005642523A20426164206E756DC6 |
:10CCBC00626572206F6620736563746F72732E00E9 |
:10CCCC005642523A20506172746974696F6E2069D1 |
:10CCDC007374206E6F742046415431362074797011 |
:10CCEC00652E00004572726F72202530325820720A |
:10CCFC00656164696E6720646174612066726F6D32 |
:10CD0C002073642063617264202852313D253032D7 |
:10CD1C0058292E0D0A0000000D0A204D616E756613 |
:10CD2C00616374757265722049443A2025690D0A55 |
:10CD3C0000000000204170706C69636174696F6E53 |
:10CD4C002049443A2025730D0A0000002050726FD0 |
:10CD5C0064756374204E616D653A2025730D0A006D |
:10CD6C002050726F64756374205265762E3A2025BC |
:10CD7C00692E25690D0A00002053657269616C20CB |
:10CD8C004E6F2E3A20000000253032580000000073 |
:10CD9C00204D616E756661632E20446174653A2086 |
:10CDAC0025692F25690D0A0D0A0000000D0A205374 |
:10CDBC00534320696E69742E2E2E00000D0A2053E9 |
:10CDCC00444320696E69742E2E2E0000426164204B |
:10CDDC00636D64382052313D253032582E000000EE |
:10CDEC0042616420636D6438205237206368656348 |
:10CDFC006B207061747465726E2E0D0A0000000059 |
:10CE0C004361726420697320696E636F6D70617425 |
:10CE1C0069626C6520746F20332E33562E0D0A0018 |
:10CE2C0042616420636D64353820523120253032E4 |
:10CE3C00782E00004E6F7420616E2053442D4341B8 |
:10CE4C0052442E004361726420697320696E636FD3 |
:10CE5C006D70617469626C6520746F20332E33566B |
:10CE6C002E000000496E6974206572726F722E007C |
:10CE7C004572726F722073657474696E6720626C90 |
:10CE8C006F636B206C656E67746820746F2035312E |
:10CE9C00322E00004572726F722072656164696E89 |
:10CEAC0067204349442E0D0A000000004572726F42 |
:10CEBC00722072656164696E67204353442E0000D2 |
:10CECC006F6B0D0A00000000202053442D4341528B |
:10CEDC00442056312E780000726573657420746995 |
:10CEEC006D656F75740000004261642041636D6470 |
:10CEFC0034312052313D253032582E00496E697440 |
:10CF0C002074696D656F75742E00000020205344E9 |
:10CF1C002D434152442056322E30206F72206C61CA |
:10CF2C00746572000D0A2020436170616369747925 |
:10CF3C00203D202569204D42000000004E6F20430B |
:10CF4C0061726420696E20536C6F742E00000000B7 |
:10CF5C000D0A20534443206465696E69742E2E2E8D |
:10CF6C00000000004572726F722025303258207715 |
:10CF7C00726974696E67206461746120746F2073C8 |
:10CF8C006420636172642028523D25303258292E6A |
:10CF9C000D0A00002573203D2025640A0D000000B9 |
:10CFAC000A0D52656164696E672073657474696EED |
:10CFBC00672066696C652E2E2E0A0D0073657474DD |
:10CFCC00696E67312E747874000000004552524F20 |
:10CFDC00523A2046696C65206E6F7420666F756ED0 |
:10CFEC006420210A0D0000003D0000005553422032 |
:10CFFC0028256C64293A2025730A0D000D0A20554A |
:10D00C004152543020696E69742E2E2E000000009F |
:10D01C000D0A554152543120696E69742E2E2E6FB3 |
:10D02C006B0000000D0A20554152543220696E6984 |
:10D03C00742E2E2E000000000D0A20554152543241 |
:10D04C00206465696E69742E2E2E00000D0A256C05 |
:10D05C00642E2530376C642C0000000020256C6495 |
:10D06C002E2530376C642C0020256C642E25303333 |
:10D07C006C64000064656661756C742E6B6D6C007D |
:10D08C004D494B524F4B4F50544552000D0A2047BF |
:10D09C00505320696E69742E2E2E0000286E696C18 |
:10D0AC0029000000286E756C6C290000000000003F |
:10D0BC0025302A6400000000252E2A730000000091 |
:10D0CC00696E6600494E46006E616E004E414E0020 |
:10D0DC00252A7300252E2A64000000002563252BC9 |
:04D0EC002E3264007C |
:10D0F00048656C6C6F20576F726C64000000000014 |
:10D10000000000000000000000000000000000001F |
:10D11000000000000000000000000000000000000F |
:10D1200000000000000000000000000000000000FF |
:10D1300000000000000000000000000000000000EF |
:10D140000C00000020000000500000004000000023 |
:10D150006764656766000000050000005061726149 |
:10D160006D657465723120202020202031323334E7 |
:10D17000353637383930313233343536373839305F |
:10D180003132333435363738393031320100DEC888 |
:10D19000E6506172616D6574657232202020202036 |
:10D1A0002031323334353637383930313233343553 |
:10D1B0003637383930313233343536373839303123 |
:10D1C0003201000000DC506172616D65746572327D |
:10D1D0003220202020203132333435363738393070 |
:10D1E00031323334353637383930313233343536FD |
:10D1F00037383930313201000000DC00BC720000E9 |
:10D20000F4250100F4250100F4250100F4250100B6 |
:10D21000F4250100F4250100F4250100F4250100A6 |
:10D22000F4250100F4250100F4250100F425010096 |
:10D23000F4250100F4250100F4250100F425010086 |
:10D2400040720000F4250100F4250100F4250100DE |
:10D25000F4250100F4250100F4250100F425010066 |
:10D26000F4250100F4250100F4250100F425010056 |
:10D27000F425010000E100000000080004010000A6 |
:10D280006C7400003C750000687600008476000035 |
:10D290008876000038770000F87700007877000083 |
:10D2A0009C770000C07700000000000040000000F4 |
:10D2B000F4250100F4250100F4250100F425010006 |
:10D2C000F4250100F4250100F4250100F4250100F6 |
:10D2D000F425010018AC0100120000002AAC010086 |
:10D2E000430000006DAC01000400000071AC0100BF |
:10D2F0002600000097AC01003C000000D3AC010008 |
:10D300001600000000000000000000000100000006 |
:10D3100000E100E1FF0000000050005C016400003B |
:10D32000E8030000E8030000FFFFFFFF0DC0A0E1DD |
:10D3300000D82DE904B04CE21523A0E30010A0E3CF |
:10D34000041082E50630A0E3003082E50C1082E58F |
:10D350000830A0E3183082E50FE0A0E101F0A0E181 |
:04D3600000A81BE91D |
:10D36400F4050004A8D00100B0D00100CC020004F0 |
:10D37400E0180004E0D00100E8D00100B8D00100BA |
:0CD38400A018000400B90100DC02000445 |
:0CD3900000000000000000000000000091 |
:10D39C00BCD00100C4D0010000CC0100CCD00100F5 |
:10D3AC00D0D00100D4D00100D8D00100DCD00100D5 |
:10D3BC00FC050004E00200042803000470030004D0 |
:04D3CC00E002000477 |
:10D3D000200100000000000000000000000000002C |
:10D3E00028030004180600041807000418060004A7 |
:10D3F000180600041806000418060004EC020004D5 |
:10D40000BCA80100C4A8010000000000CCA80100D5 |
:10D4100000000000000000001001000000000000FB |
:10D420000000000001000000700300041807000461 |
:10D43000180800041807000418070004180700045F |
:10D440001807000434030004BCA80100C4A80100AC |
:10D4500000000000CCA80100000000000000000057 |
:10D4600010020000000000000000000002000000A8 |
:10D4700000000000000000000000000000000000AC |
:10D480000000000000000000000000007C03000419 |
:10D49000BCA80100C4A8010000000000CCA8010045 |
:08D4A000000000000000000084 |
:00000001FF |
/trunk/Hex-Files |
---|
Property changes: |
Added: tsvn:logminsize |
+10 |
\ No newline at end of property |
/trunk/Navi-Ctrl.Uv2 |
---|
11,7 → 11,6 |
Group (USB-Lib) |
File 1,1,<.\main.c><main.c> |
File 1,1,<.\uart.c><uart.c> |
File 1,1,<.\interrupt.c><interrupt.c> |
File 1,1,<.\ramfunc.c><ramfunc.c> |
File 1,1,<.\menu.c><menu.c> |
19,12 → 18,10 |
File 1,1,<.\timer.c><timer.c> |
File 1,1,<.\spi_slave.c><spi_slave.c> |
File 1,1,<.\i2c.c><i2c.c> |
File 1,1,<.\GPS.c><GPS.c> |
File 1,1,<.\GPSUart.c><GPSUart.c> |
File 1,1,<.\usb.c><usb.c> |
File 1,1,<.\fat16.c><fat16.c> |
File 1,1,<.\sdc.c><sdc.c> |
File 1,1,<.\settings.c><settings.c> |
File 1,1,<.\sdc.c><sdc.c> |
File 1,1,<.\ssc.c><ssc.c> |
File 1,1,<.\usb_desc.c><usb_desc.c> |
File 1,1,<.\usb_endp.c><usb_endp.c> |
31,16 → 28,21 |
File 1,1,<.\usb_istr.c><usb_istr.c> |
File 1,1,<.\usb_prop.c><usb_prop.c> |
File 1,1,<.\usb_pwr.c><usb_pwr.c> |
File 1,1,<.\led.c><led.c> |
File 1,1,<.\crc16.c><crc16.c> |
File 1,1,<.\ubx.c><ubx.c> |
File 1,1,<.\uart0.c><uart0.c> |
File 1,1,<.\uart1.c><uart1.c> |
File 1,1,<.\uart2.c><uart2.c> |
File 1,1,<.\kml.c><kml.c> |
File 2,5,<.\kml.h><kml.h> |
File 2,5,<.\crc16.h><crc16.h> |
File 1,1,<.\fifo.c><fifo.c> |
File 1,1,<.\waypoints.c><waypoints.c> |
File 1,1,<.\GPS.c><GPS.c> |
File 2,5,<.\ramfunc.h><ramfunc.h> |
File 2,5,<.\main.h><main.h> |
File 2,5,<.\uart.h><uart.h> |
File 2,5,<.\menu.h><menu.h> |
File 2,5,<.\printf_P.h><printf_P.h> |
File 2,5,<.\91x_conf.h><91x_conf.h> |
File 2,5,<.\settings.h><settings.h> |
File 2,5,<.\timer.h><timer.h> |
File 2,5,<.\usb.h><usb.h> |
File 2,5,<.\spi_slave.h><spi_slave.h> |
49,9 → 51,17 |
File 2,5,<.\ssc.h><ssc.h> |
File 2,5,<.\fat16.h><fat16.h> |
File 2,5,<.\GPS.h><GPS.h> |
File 2,5,<.\GPSUart.h><GPSUart.h> |
File 2,5,<.\settings.h><settings.h> |
File 2,5,<.\libstr91x\include\91x_lib.h><91x_lib.h> |
File 2,5,<.\led.h><led.h> |
File 2,5,<.\crc16.h><crc16.h> |
File 2,5,<.\ubx.h><ubx.h> |
File 2,5,<.\uart0.h><uart0.h> |
File 2,5,<.\uart1.h><uart1.h> |
File 2,5,<.\uart2.h><uart2.h> |
File 2,5,<.\kml_header.h><kml_header.h> |
File 2,5,<.\kml.h><kml.h> |
File 2,5,<.\fifo.h><fifo.h> |
File 2,5,<.\waypoints.h><waypoints.h> |
File 3,2,<.\startup912.s><startup912.s> |
File 4,1,<.\libstr91x\src\91x_scu.c><91x_scu.c> |
File 4,1,<.\libstr91x\src\91x_gpio.c><91x_gpio.c> |
64,8 → 74,8 |
File 4,1,<.\libstr91x\src\91x_wiu.c><91x_wiu.c> |
File 6,1,<.\usblibrary\src\usb_regs.c><usb_regs.c> |
File 6,1,<.\usblibrary\src\usb_core.c><usb_core.c> |
File 6,1,<.\usblibrary\src\usb_int.c><usb_int.c> |
File 6,1,<.\usblibrary\src\usb_init.c><usb_init.c> |
File 6,1,<.\usblibrary\src\usb_int.c><usb_int.c> |
File 6,1,<.\usblibrary\src\usb_mem.c><usb_mem.c> |
File 6,5,<.\usbinc\usb_pwr.h><usb_pwr.h> |
File 6,5,<.\usbinc\hw_config.h><hw_config.h> |
75,13 → 85,13 |
Options 1,0,0 // Target 'Navi-Ctrl' |
Device (STR910FM32) |
Device (STR911FM44) |
Vendor (STMicroelectronics) |
Cpu (IRAM(0x04000000-0x0400FFFF) IROM(0x0-0x3FFFF) IROM2(0x400000-0x407FFF) CLOCK(25000000) CPUTYPE(ARM9E)) |
Cpu (IRAM(0x04000000-0x04017FFF) IROM(0x0-0x7FFFF) IROM2(0x400000-0x407FFF) CLOCK(25000000) CPUTYPE(ARM9E)) |
FlashUt () |
StupF ("STARTUP\ST\STR91x.s" ("STR91x Startup Code")) |
FlashDR (UL2ARM(-UU0639C7E -O15 -S0 -C1 -N00("ST uPSD Flash") -D00(04570041) -L00(8) -N01("ARM966E-S Core") -D01(25966041) -L01(4) -N02("ST Boundary Scan") -D02(0457F041) -L02(5) -FO15 -FD4000000 -FC800 -FN2 -FF0STR91xFxx2 -FS00 -FL040000 -FF1STR91xB1 -FS1400000 -FL18000)) |
DevID (4118) |
FlashDR (UL2ARM(-UU0639C7E -O15 -S0 -C1 -N00("ST uPSD Flash") -D00(04570041) -L00(8) -N01("ARM966E-S Core") -D01(25966041) -L01(4) -N02("ST Boundary Scan") -D02(0457F041) -L02(5) -FO15 -FD4000000 -FC800 -FN2 -FF0STR91xFxx4 -FS00 -FL080000 -FF1STR91xB1 -FS1400000 -FL18000)) |
DevID (4069) |
Rgf (91x_lib.H) |
Mem () |
C () |
121,8 → 131,8 |
GCPUTYP (ARM9E) |
TFlagsA { 0,12,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
OCMARM { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
OCMARAM { 0,0,0,0,4,0,0,1,0 } |
OCMAROM { 1,0,0,0,0,0,0,4,0 } |
OCMARAM { 0,0,0,0,4,0,128,1,0 } |
OCMAROM { 1,0,0,0,0,0,0,8,0 } |
OCMXRAM { 0,0,0,0,0,0,0,0,0 } |
OCMIRAM2 { 0,0,0,48,0,0,16,0,0 } |
OCMIROM2 { 1,0,0,64,0,0,128,0,0 } |
153,33 → 163,11 |
ALDICDR () |
ALDMISC () |
ALDSCAT (.\scripts\flash_str9.ld) |
OPTDL (SARM.DLL)(-cSTR91x)(DARMST9.DLL)(-pSTR910)(SARM.DLL)(-cSTR91x)(TARMST9.DLL)(-pSTR910) |
OPTDL (SARM.DLL)(-cSTR91x)(DARMST9.DLL)(-pSTR911)(SARM.DLL)(-cSTR91x)(TARMST9.DLL)(-pSTR911) |
OPTDBG 48126,0,()()()()()()()()()() (BIN\UL2ARM.DLL)()()() |
FLASH1 { 9,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
FLASH1 { 9,0,0,0,1,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0 } |
FLASH2 (BIN\UL2ARM.DLL) |
FLASH3 () |
FLASH3 ("" ()) |
FLASH4 () |
EndOpt |
Options 1,1,0 // Group 'Source Code' |
PropFld { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
IncBld=2 |
AlwaysBuild=2 |
GenAsm=2 |
AsmAsm=2 |
PublicsOnly=2 |
StopCode=11 |
CustArgs () |
LibMods () |
ACCFLG { 170,2,16,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
ACMISC () |
ACDEFN () |
ACUDEF () |
ACINCD () |
AASFLG { 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } |
AAMISC () |
AADEFN () |
AAUDEF () |
AAINCD () |
EndOpt |
/trunk/Obj/Navi-Ctrl_STR9.hex |
---|
0,0 → 1,7120 |
:1000000018F09FE518F09FE518F09FE518F09FE5C0 |
:1000100018F09FE50000A0E118F09FE518F09FE5BB |
:1000200050010000400000004400000048000000B3 |
:100030004C000000000000005000000054000000D0 |
:10004000230000EA1A0000EA280000EA2F0000EA74 |
:10005000000000EA350000EA04E04EE2FF5F2DE90F |
:1000600000104FE102002DE92C029FE5000090E511 |
:1000700028129FE5001091E50000A0E10000A0E13A |
:100080001FF021E300402DE914E29FE500F0A0E11C |
:100090000040BDE8D2F021E3FC019FE5000080E5CF |
:1000A000F8119FE5001081E50200BDE801F06FE165 |
:1000B000FF9FFDE8FF5F2DE900104FE102002DE9F1 |
:1000C0000D10A0E1830200EB0200BDE801F06FE13A |
:1000D000FF9FFDE8FF5F2DE900104FE102002DE9D1 |
:1000E000850200EB0200BDE801F06FE1FF9FFDE833 |
:1000F00004E04EE2FF5F2DE900104FE102002DE920 |
:10010000860200EB0200BDE801F06FE1FF9FFDE811 |
:1001100008E04EE2FF5F2DE900104FE102002DE9FB |
:100120006D0200EB0200BDE801F06FE1FF9FFDE80A |
:1001300004E04EE2FF402DE900104FE102002DE9FE |
:10014000750200EB0200BDE801F06FE1FF80FDE801 |
:1001500050119FE50020A0E3011041E2020051E1AF |
:10016000FCFFFF8A40019FE540119FE5341080E5C8 |
:1001700034019FE538119FE5001080E50000A0E103 |
:100180000000A0E10000A0E10000A0E10000A0E16B |
:100190000000A0E10000A0E10000A0E10000A0E15B |
:1001A0000000A0E10000A0E10000A0E10000A0E14B |
:1001B0000000A0E10000A0E10000A0E10267A0E3D0 |
:1001C0006070A0E3B070C6E1E8609FE50370A0E353 |
:1001D000B070C6E1E0109FE5041080E5081090E5DE |
:1001E000011011E2FCFFFF0AD0109FE5001080E52E |
:1001F000CC109FE51C1080E5C8109FE5201080E51D |
:10020000C4009FE5D1F021E300D0A0E1800040E2EE |
:10021000D2F021E300D0A0E1020B40E2D7F021E3CD |
:1002200000D0A0E1040040E2DBF021E300D0A0E137 |
:10023000040040E2D3F021E300D0A0E1800040E2DE |
:1002400010F021E300D0A0E101AB4DE27C109FE56E |
:100250007C209FE57C309FE5030052E1040091344F |
:1002600004008234FBFFFF3A0000A0E368109FE522 |
:1002700068209FE5020051E104008134FCFFFF3A51 |
:100280000000A0E358109FE558209FE5020051E1CF |
:1002900004008134FCFFFF3A000100EA30F0FFFF68 |
:1002A000300000FC9000000020A107000020005C4E |
:1002B00096010000020002004030080019C00B0047 |
:1002C00080000200731B000001C8FE0000800104D2 |
:1002D000F0B8010000000004B8030004C0030004EB |
:1002E000A8180004A8180004A81800040DC0A0E174 |
:1002F00000D82DE904B04CE20200A0E30E3000EB80 |
:100300000000A0E3393000EB020CA0E3E13000EB89 |
:100310008000A0E37C3000EB1C00E0E3663000EBE3 |
:100320006000E0E36E3000EBC000A0E31910A0E332 |
:100330000320A0E3143000EB0100A0E32B3000EB1E |
:100340000000A0E3FC2F00EB00A81BE90DC0A0E11A |
:1003500010D82DE904B04CE220D04DE22C404BE205 |
:100360006930A0E300308DE50400A0E114109FE5A2 |
:100370000020A0E30C30A0E35D5900EB0400A0E1F5 |
:10038000652500EB10A81BE95CAC01000DC0A0E1E5 |
:1003900010D82DE904B04CE208D04DE28C109FE556 |
:1003A0000A30D1E5000053E30000A00310A81B09A8 |
:1003B0007C009FE5002090E5003091E5030052E1CC |
:1003C0000A00000AB020D1E1B020C0E10230D1E53E |
:1003D0000230C0E50330D1E50330C0E50130A0E3D1 |
:1003E0000A30C0E54C309FE50020A0E3B020C3E117 |
:1003F00038109FE5B020D1E10230D1E50310D1E5FE |
:1004000000108DE52C409FE5B010D4E104108DE57F |
:1004100024009FE524109FE5355900EBB030D4E16E |
:10042000013083E2B030C4E10C009FE510A81BE965 |
:1004300080080004E8030004C6030004C8030004A5 |
:1004400074AC01000DC0A0E100D82DE904B04CE26D |
:1004500000329FE5003093E5000053E30900001AE5 |
:100460001603A0E30B0A80E28010A0E30120A0E3C2 |
:10047000E83200EBE0019FE5E0119FE51C5900EB3D |
:100480000320A0E3490000EAD4319FE5003093E562 |
:10049000000053E30900001A1603A0E30B0A80E2F0 |
:1004A0008010A0E30120A0E3DA3200EBA8019FE571 |
:1004B000B0119FE50E5900EB0420A0E33B0000EAD9 |
:1004C000A4319FE50330D3E5030053E30D00000A98 |
:1004D0001603A0E30B0A80E28010A0E30120A0E352 |
:1004E000CC3200EB70019FE580119FE5005900EBD5 |
:1004F0000130A0E378219FE5003082E574219FE57B |
:100500000030C2E54B0000EA6C319FE50330D3E5D3 |
:10051000020053E30900000A3C019FE55C119FE5DE |
:10052000F35800EB1603A0E30B0A80E28010A0E36F |
:100530000120A0E3B73200EB0220A0E31B0000EA99 |
:100540003C319FE5003093E5000053E30900001AB9 |
:100550001603A0E30B0A80E28010A0E30120A0E3D1 |
:10056000AC3200EBF0009FE518119FE5E05800EB7E |
:100570000520A0E30D0000EA0C319FE50020D3E543 |
:100580000130D3E5A333B0E10E00000A1603A0E367 |
:100590000B0A80E28010A0E30120A0E39D3200EB73 |
:1005A000B4009FE5E4109FE5D15800EB0620A0E3DE |
:1005B000BC309FE5002083E50120A0E3B4309FE537 |
:1005C0000020C3E51B0000EAC4309FE50830D3E5F6 |
:1005D000630053E30B00008A1603A0E30B0A80E2DA |
:1005E0008010A0E30120A0E38A3200EB68009FE5C1 |
:1005F000A0109FE5BE5800EB0720A0E370309FE5F8 |
:10060000002083E50B0000EA4C009FE588109FE581 |
:10061000B75800EB0020A0E354309FE5002083E5AD |
:1006200050309FE50020C3E51603A0E30B0A80E2EB |
:100630008010A0E3773200EB0020A0E314309FE5A8 |
:10064000002083E538309FE5002083E510309FE5EA |
:10065000002083E500A81BE9080400040808000442 |
:1006600094AC01001C040004ACAC0100300900048F |
:10067000C8AC0100C0030004C5030004D009000495 |
:10068000DCAC0100B4040004F4AC0100A8090004CF |
:100690000CAD01004808000420AD010030AD0100A0 |
:1006A0000DC0A0E170D82DE904B04CE264D04DE259 |
:1006B0000050A0E30CFFFFEB7C004BE2B62600EB02 |
:1006C0002000A0E30110A0E3A52F00EB2000A0E391 |
:1006D0000510A0E1B82F00EB2C3400EBF50000EB87 |
:1006E000740600EBF01C00EBE82000EB40039FE5F4 |
:1006F000892400EBDC2500EB622000EB4F0E00EBC1 |
:10070000940700EB440B00EB292A00EBDC0F00EB15 |
:100710000500A0E3AA0600EB18339FE5000083E57F |
:10072000FA00A0E3A60600EB0C339FE5000083E58A |
:10073000BB0EA0E3080080E2A10600EBFC329FE5BF |
:10074000000083E5E8029FE5732400EBF0029FE5DB |
:10075000712400EBFCFEFFEBFC0A00EBE4329FE5AA |
:100760000330D3E5030053E30600000AD8029FE5F7 |
:10077000692400EB1603A0E30B0A80E28010A0E3DB |
:100780000120A0E3233200EBE80D00EBBC329FE533 |
:100790000330D3E5020053E30600000AB0029FE5F0 |
:1007A0005D2400EB1603A0E30B0A80E28010A0E3B7 |
:1007B0000120A0E3173200EB98029FE5562400EBDE |
:1007C00094329FE50030D3E5000053E32C23001B57 |
:1007D0006D2400EBC50700EBE82100EB7C329FE5C0 |
:1007E000003093E5050053E31F00000A44329FE503 |
:1007F000000093E5780600EBFF0010E31A00000A02 |
:100800005C329FE5000093E5730600EBFF0010E308 |
:100810000400000A4C029FE53F2400EBB50B00EBFF |
:10082000FD0A00EB100000EA3C029FE53C129FE548 |
:10083000C32700EB38329FE50020D3E5FF2002E21A |
:1008400028329FE50030D3E5FF3003E2030052E198 |
:100850000400A0130300A003340D00EB1900A0E373 |
:10086000570600EBCC319FE5000083E5CC319FE5D6 |
:10087000000093E5580600EBFF0010E30B00000AB0 |
:10088000F0319FE5003093E5000053E3262B000B89 |
:10089000EBFEFFEBFA0FA0E3490600EB9C319FE56E |
:1008A000000083E50120A0E3CC319FE50020C3E5F3 |
:1008B00084419FE5000094E5470600EBFF0010E34C |
:1008C000BEFFFF0A7D0FA0E33D0600EB000084E5BC |
:1008D000A8319FE50A30D3E5020013E34800000A7F |
:1008E000030055E305F19F97B4FFFFEAFC08000001 |
:1008F000FC08000070090000D4090000A2FEFFEB14 |
:100900000040A0E1000050E3ACFFFF0ACE1500EB71 |
:10091000FF0010E3F8FFFF1A000054E3A7FFFF0AEF |
:100920000400A0E17C104BE2232600EBFF0010E363 |
:100930000600000A0250A0E344019FE5F62300EB05 |
:100940000400A0E1F42300EB38019FE59AFFFFEAE1 |
:100950000350A0E330019FE5EF2300EB0400A0E18A |
:10096000ED2300EB1C019FE5EB2300EB1F0000EAE9 |
:1009700018019FE52F30D0E53020D0E5023483E127 |
:100980003120D0E5023883E13220D0E5023C93E10A |
:100990008AFFFF0A1030D0E5010013E387FFFF0A4A |
:1009A0001240D0E5030054E384FFFF1A7C604BE261 |
:1009B0000610A0E1122700EBFF0010E37FFFFF1AF3 |
:1009C000CC009FE5D42300EB0600A0E1152600EB48 |
:1009D000150000EA2A0F00EBFF1010E20350A013ED |
:1009E0004E0DA013080080120100001A0150A0E172 |
:1009F0000A00A0E3F20500EB3C309FE5000083E530 |
:100A00006EFFFFEA020055E36CFFFF1A7C004BE229 |
:100A1000042600EBFF0010E30300000A74009FE5CA |
:100A2000BD2300EB0150A0E364FFFFEA0350A0E305 |
:100A300062FFFFEA48AD0100C0070004400800045F |
:100A40000008000478AD01003009000490AD0100F9 |
:100A5000D0090004B0AD0100CCAD010023050004B5 |
:100A6000680000041804000400AE0100E00800045F |
:100A700088090004E00900040804000418050004C3 |
:100A80004808000420AE01009CB7010038AE010008 |
:100A9000B804000454AE010070AE01000231A0E3BE |
:100AA000C339A0E1FF20A0E3302083E53F33A0E37A |
:100AB000302083E50EF0A0E10231A0E3C339A0E1CC |
:100AC0000C209FE5342083E53F33A0E3342083E509 |
:100AD0000EF0A0E19C0A00000EF0B0E104C02DE58C |
:100AE0000DC0A0E10FD82DE904B04CE204009FE551 |
:100AF000892300EBFEFFFFEA88AE010004C02DE56C |
:100B00000DC0A0E10FD82DE904B04CE204009FE530 |
:100B1000812300EBFEFFFFEA98AE010004F05EE2E5 |
:100B200004C02DE50DC0A0E10FD82DE904B04CE2C2 |
:100B300004009FE5782300EBFEFFFFEAACAE010066 |
:100B40000231A0E3C339A0E1FF20A0E3302083E518 |
:100B50000EF0A0E10231A0E3C339A0E1FF20A0E341 |
:100B6000302083E50EF0A0E10231A0E3C339A0E11B |
:100B7000FF20A0E3302083E50EF0A0E10231A0E3E6 |
:100B8000C339A0E1FF20A0E3302083E50EF0A0E10F |
:100B90000231A0E3C339A0E1FF20A0E3302083E5C8 |
:100BA0000EF0A0E10231A0E3C339A0E1FF20A0E3F1 |
:100BB000302083E50EF0A0E10231A0E3C339A0E1CB |
:100BC000FF20A0E3302083E50EF0A0E10DC0A0E1FE |
:100BD00000D82DE904B04CE20E4200EB0231A0E354 |
:100BE000C339A0E1FF20A0E3302083E500A81BE982 |
:100BF0000DC0A0E100D82DE904B04CE2B31900EB20 |
:100C00000231A0E3C339A0E1FF20A0E3302083E557 |
:100C100000A81BE90231A0E3C339A0E1FF20A0E353 |
:100C2000302083E50EF0A0E10231A0E3C339A0E15A |
:100C3000FF20A0E3302083E50EF0A0E10231A0E325 |
:100C4000C339A0E1FF20A0E3302083E50EF0A0E14E |
:100C50000231A0E3C339A0E1FF20A0E3302083E507 |
:100C60000EF0A0E10231A0E3C339A0E1FF20A0E330 |
:100C7000302083E50EF0A0E10231A0E3C339A0E10A |
:100C8000FF20A0E3302083E50EF0A0E10EF0A0E10C |
:100C90000EF0A0E10EF0A0E10EF0A0E10EF0A0E158 |
:100CA0000EF0A0E10DC0A0E100D82DE904B04CE2A7 |
:100CB0001B00A0E30010A0E3233300EB020BA0E332 |
:100CC0001A3900EB000050E30700000A28309FE5C6 |
:100CD0006420A0E3B020C3E1690E00EB0200A0E3B2 |
:100CE0000E3900EB020BA0E31B3900EB1B00A0E365 |
:100CF0000110A0E3143300EB00A81BE9E007000497 |
:100D00000EF0A0E10EF0A0E10EF0A0E10EF0A0E1E7 |
:100D10000030A0E318109FE52020A0E30320C1E7E6 |
:100D2000013083E2FF3003E24F0053E30EF0A08175 |
:100D3000F9FFFFEA000000040DC0A0E170D82DE922 |
:100D400004B04CE204D04DE2F03A9FE50030D3E528 |
:100D5000010013E30800000AE42A9FE50030D2E511 |
:100D6000000053E3013043120030C215D43A9F050E |
:100D70000020D305C83A9F050020C305BC3A9FE573 |
:100D80000030D3E5020013E30A00000AB01A9FE521 |
:100D90000030D1E5AC2A9FE50020D2E5020053E106 |
:100DA0000030A0030030C105942A9F150030D215F1 |
:100DB000013083120030C215803A9FE50030D3E540 |
:100DC000033003E2030053E30020A003703A9F05C1 |
:100DD0000020C305CDFFFFEB641A9FE50020D1E59D |
:100DE000603A9FE50030D3E5030052E10030C18551 |
:100DF0004C3A9FE50010D3E5090051E31120A09380 |
:100E0000443A9F950020C3951020A083383A9F85CF |
:100E10000020C385283A9F850010D3852C0A9FE5C2 |
:100E2000170300EB183A9FE50030D3E50C0053E3BD |
:100E300003F19F97760200EA6C0E0000FC0E0000A2 |
:100E40000C1100009812000054130000B8130000A9 |
:100E5000DC140000241500006C15000004160000CE |
:100E600078160000F816000064170000D8599FE5B6 |
:100E70000040A0E30040C5E5D4099FE5000300EB76 |
:100E80001430A0E30030C5E5C8099FE50410A0E1D7 |
:100E90000C20A0E36930A0E3F90200EBB8399FE52C |
:100EA000001093E5040051E10400000A1F30A0E3A4 |
:100EB0000030C5E5A4099FE5F10200EB040000EA5B |
:100EC0001F20A0E380399FE50020C3E590099FE53E |
:100ED000EB0200EB70499FE52830A0E30030C4E549 |
:100EE00080099FE580199FE5E50200EB3C30A0E317 |
:100EF0000030C4E574099FE5470100EA70199FE5D9 |
:100F00002F20D1E53030D1E5032482E13130D1E525 |
:100F1000032882E13230D1E5033C92E10F00001A50 |
:100F200024499FE50030C4E548099FE5D40200EB61 |
:100F30001430A0E30030C4E53C099FE5D00200EB8B |
:100F40002830A0E30030C4E530099FE5CC0200EB77 |
:100F50003C30A0E30030C4E524099FE52E0100EAFF |
:100F60000C399FE51230D3E5020053E30D00000A6F |
:100F7000020000CA000053E30300000A170000EA61 |
:100F8000030053E30E00000A140000EA0020A0E36F |
:100F9000B4389FE50020C3E5D4389FE51110D3E5B0 |
:100FA000E0089FE5130000EA0020A0E398389FE5E1 |
:100FB0000020C3E5B8389FE51110D3E5C8089FE5C8 |
:100FC0000C0000EA0020A0E37C389FE50020C3E588 |
:100FD0009C389FE51110D3E5B0089FE5050000EAB5 |
:100FE0000020A0E360389FE50020C3E580389FE53E |
:100FF0001110D3E598089FE5A10200EB70489FE52A |
:101000000020D4E50130D4E5032482E10230D4E5A8 |
:10101000032882E10330D4E5032C82E174689FE564 |
:101020009602C1E0C23FA0E1411B63E0813261E072 |
:10103000033363E0833181E0033183E083C342E023 |
:1010400000005CE300C06CB2FC579FE51430A0E3E5 |
:101050000030C5E540089FE50C20A0E1880200EBC8 |
:101060000420D4E50530D4E5032482E10630D4E53C |
:10107000032882E10730D4E5032C82E19632C1E0F7 |
:10108000C23FA0E1411B63E0813261E0033363E0D2 |
:10109000833181E0033183E083C342E000005CE3FD |
:1010A00000C06CB22830A0E30030C5E5EC079FE536 |
:1010B0000C20A0E1720200EB0820D4E50930D4E551 |
:1010C000032482E10A30D4E5032882E10B30D4E521 |
:1010D000032C82E1C8379FE59302C1E0C23FA0E143 |
:1010E000411363E0813261E0033181E083C142E07A |
:1010F00000005CE300C06CB23C30A0E30030C5E50A |
:10110000A0079FE50C20A0E1930100EA60179FE58E |
:101110002F20D1E53030D1E5032482E13130D1E513 |
:10112000032882E13230D1E5033C92E10F00001A3E |
:1011300014479FE50030C4E538079FE5500200EBF7 |
:101140001430A0E30030C4E55C079FE54C0200EBDF |
:101150002830A0E30030C4E550079FE5480200EBCB |
:101160003C30A0E30030C4E544079FE5AA0000EA54 |
:10117000FC369FE51230D3E5020053E30D00000A70 |
:10118000020000CA000053E30300000A170000EA4F |
:10119000030053E30E00000A140000EA0020A0E35D |
:1011A000A4369FE50020C3E5C4369FE51110D3E5C2 |
:1011B000D0069FE5130000EA0020A0E388369FE5F3 |
:1011C0000020C3E5A8369FE51110D3E5B8069FE5DA |
:1011D0000C0000EA0020A0E36C369FE50020C3E588 |
:1011E0008C369FE51110D3E5A0069FE5050000EAC7 |
:1011F0000020A0E350369FE50020C3E570369FE550 |
:101200001110D3E588069FE51D0200EB38569FE5D7 |
:101210001430A0E30030C5E554469FE51710D4E52F |
:101220001830D4E5031481E11930D4E5031881E1C5 |
:101230001A30D4E5031C81E178069FE5100200EB2B |
:101240002830A0E30030C5E51B10D4E51C30D4E500 |
:10125000031481E11D30D4E5031881E11E30D4E58B |
:10126000031C81E150069FE5050200EB3C30A0E342 |
:101270000030C5E51F10D4E52030D4E5031481E12A |
:101280002130D4E5031881E12230D4E5031C81E14B |
:1012900028069FE55C0100EAAC459FE50030A0E32D |
:1012A0000030C4E518069FE5F50100EB14369FE514 |
:1012B0000A30D3E5000053E30E00001A0030C4E505 |
:1012C000FC059FE5EE0100EB1430A0E30030C4E51F |
:1012D000F4059FE5EA0100EB2830A0E30030C4E507 |
:1012E000E8059FE5E60100EB3C30A0E30030C4E5F3 |
:1012F000D4059FE5480000EA4C559FE51430A0E373 |
:101300000030C5E5C0059FE5DD0100EB2830A0E316 |
:101310000030C5E5AC459FE50210D4E50320D4E5D7 |
:10132000B030D4E1A8059FE5D50100EB3C30A0E347 |
:101330000030C5E50410D4E50520D4E50630D4E539 |
:10134000B800D4E100008DE588059FE5CC0100EBF5 |
:10135000360100EAF0549FE50030A0E30030C5E517 |
:1013600074459FE50910D4E570059FE5C40100EBC5 |
:101370001430A0E30030C5E50A10D4E50B20D4E515 |
:101380005C059FE5BE0100EB2830A0E30030C5E519 |
:101390000C10D4E50D20D4E548059FE5B80100EB1D |
:1013A0003C30A0E30030C5E50E10D4E50F20D4E5B5 |
:1013B00034059FE5E80000EA8C449FE50030A0E397 |
:1013C0000030C4E524059FE5AD0100EB20159FE545 |
:1013D0000C30D1E50D20D1E5023483E10E20D1E5BA |
:1013E000023883E10F20D1E5023C93E10C00001AA2 |
:1013F0001430A0E30030C4E5F8049FE5A00100EB41 |
:101400002830A0E30030C4E5EC049FE59C0100EB2C |
:101410003C30A0E30030C4E5D8049FE5980100EB20 |
:10142000020100EAC8449FE50020D4E50130D4E57C |
:10143000032482E10230D4E5032882E10330D4E5BD |
:10144000032C82E14C649FE59632C1E0C23FA0E1EB |
:10145000411B63E0813261E0033363E0833181E06B |
:10146000033183E083C342E000005CE300C06CB260 |
:10147000D4539FE51430A0E30030C5E57C049FE51C |
:101480000C20A0E17E0100EB0420D4E50530D4E57A |
:10149000032482E10630D4E5032882E10730D4E555 |
:1014A000032C82E19602C1E0C23FA0E1411B63E050 |
:1014B000813261E0033363E0833181E0033183E013 |
:1014C00083C342E000005CE300C06CB22830A0E3BC |
:1014D0000030C5E528049FE5F4FEFFEA68539FE568 |
:1014E0000030A0E30030C5E518049FE5640100EB7F |
:1014F0001430A0E30030C5E50C449FE5D010D4E1E2 |
:10150000D120D4E104049FE55D0100EB2830A0E385 |
:101510000030C5E5D310D4E1D220D4E1F0039FE53B |
:101520008D0000EA20539FE50030A0E30030C5E5C0 |
:10153000E0039FE5520100EB1430A0E30030C5E565 |
:10154000C4439FE50410D4E50520D4E5C8039FE516 |
:101550004B0100EB2830A0E30030C5E50610D4E5D0 |
:101560000720D4E5B4039FE57B0000EAD8529FE54D |
:101570000030A0E30030C5E5A4439FE50110D4E5A9 |
:101580000230D4E5031481E10118A0E14118A0E183 |
:1015900090039FE53A0100EB1430A0E30030C5E56D |
:1015A0000310D4E50430D4E5031481E10118A0E16F |
:1015B0004118A0E170039FE5310100EB2830A0E362 |
:1015C0000030C5E50510D4E50630D4E5031481E10B |
:1015D0000118A0E14118A0E150039FE5280100EBAC |
:1015E0003C30A0E30030C5E50710D4E50830D4E571 |
:1015F000031481E10118A0E14118A0E130039FE547 |
:10160000810000EA40529FE50030A0E30030C5E5CC |
:101610000C439FE50B10D4E50C30D4E5031481E1B5 |
:101620000118A0E14118A0E108039FE5140100EBB7 |
:101630001430A0E30030C5E50D10D4E50E30D4E53C |
:10164000031481E10118A0E14118A0E1E8029FE53F |
:101650000B0100EB2830A0E30030C5E50F10D4E506 |
:101660001030D4E5031481E10118A0E14118A0E194 |
:10167000C8029FE5640000EACC519FE50030A0E37A |
:101680000030C5E580429FE50810D4E5B0029FE533 |
:10169000FB0000EB1430A0E30030C5E50910D4E5F1 |
:1016A000A0029FE5F60000EB2830A0E30030C5E57E |
:1016B00094329FE50010D3E50130D3E5031481E1B6 |
:1016C0000118A0E14118A0E180029FE5EC0000EBC9 |
:1016D0003C30A0E30030C5E544329FE50910D3E576 |
:1016E0000A30D3E5031481E10118A0E14118A0E11B |
:1016F0005C029FE5440000EA4C519FE50030A0E306 |
:101700000030C5E5D0419FE50110D4E50220D4E5C5 |
:1017100040029FE5DA0000EB1430A0E30030C5E59D |
:101720000310D4E50420D4E52C029FE5D40000EB9F |
:101730002830A0E30030C5E50510D4E50620D4E547 |
:1017400018029FE5CE0000EB3C30A0E30030C5E579 |
:101750000710D4E50820D4E504029FE5C80000EB9B |
:10176000320000EA0200A0E3700900EBD8509FE5C8 |
:101770000030A0E30030C5E5E8319FE50010D3E577 |
:10178000FF1001E20120D3E5FF2002E20230D3E5A1 |
:10179000FF3003E2613083E2CC019FE5B80000EB4B |
:1017A0001430A0E30030C5E5C0419FE50010D4E54A |
:1017B0000130D4E5031481E10118A0E14118A0E152 |
:1017C000AC019FE5AE0000EB2830A0E30030C5E59A |
:1017D0000210D4E50330D4E5031481E10118A0E13F |
:1017E0004118A0E18C019FE5A50000EB3C30A0E38F |
:1017F0000030C5E50410D4E50530D4E5031481E1DB |
:101800000118A0E14118A0E16C019FE59C0000EBEC |
:10181000060000EA28109FE50030D1E5013043E2E0 |
:1018200020209FE50030C2E50030A0E30030C1E594 |
:101830000020A0E304309FE50020C3E570A81BE969 |
:10184000F6030004F503000450000004F403000450 |
:10185000C0AE0100C8AE0100DCAE0100C003000450 |
:10186000E8AE010040AD0100F0AE01000808000440 |
:10187000F4AE0100B804000408AF010014AF010089 |
:101880002CAF010044AF01005CAF010070AF01005C |
:1018900084AF010098AF01006BCA5F6BACAF010071 |
:1018A000C0AF0100D34D6210D4AF0100E8AF01001A |
:1018B00000B0010018B0010030B0010044B00100D8 |
:1018C00058B001006CB00100800800047CB0010039 |
:1018D00094B00100ACB00100C4B00100C80700041E |
:1018E000E0B00100F0B0010004B1010018B1010046 |
:1018F0002CB10100500500043CB1010054B10100BD |
:101900006CB1010080B1010094B1010048080004ED |
:10191000A0B10100B0B10100C0B10100CCB1010023 |
:10192000E0B1010010090004F4B1010004B20100AB |
:1019300014B2010024B2010034B2010044B201002B |
:1019400054B2010064B2010078B20100A809000499 |
:101950008CB20100A0B20100B4B20100C8B2010013 |
:10196000DCB20100F0B20100D009000404B30100B0 |
:10197000C809000414B3010020B301002CB3010016 |
:101980001C109FE50030D1E5012083E20020C1E575 |
:10199000FF3003E20C209FE50300C2E70100A0E353 |
:1019A0000EF0A0E1F4030004000000040DC0A0E16B |
:1019B00030D82DE904B04CE20050A0E10140A0E194 |
:1019C000000051E330A81B090100D5E4EBFFFFEB59 |
:1019D000014054E230A81B09FAFFFFEA0DC0A0E164 |
:1019E00030D82DE904B04CE20050A0E10140A0E164 |
:1019F000000051E330A81B090100D5E4DFFFFFEB35 |
:101A0000014054E230A81B09FAFFFFEA0DC0A0E133 |
:101A100010D82DE904B04CE2FF4000E2043CA0E104 |
:101A2000000053E310A81BD92000A0E3D3FFFFEB75 |
:101A3000013044E2FF4003E2043CA0E1000053E334 |
:101A400010A81BD9F7FFFFEA0DC0A0E110D82DE9BF |
:101A500004B04CE2FF4000E2043CA0E1000053E38C |
:101A600010A81BD93000A0E3C4FFFFEB013044E213 |
:101A7000FF4003E2043CA0E1000053E310A81BD99F |
:101A8000F7FFFFEA0DC0A0E10F002DE9F0DF2DE91F |
:101A900014B04CE248D04DE20080A0E308708BE225 |
:101AA00004509BE50500A0E10040D5E5000054E3AB |
:101AB0000600000A250054E30400000A0140F5E591 |
:101AC000000054E30100000A250054E3FAFFFF1A66 |
:101AD000001055E0C0FFFF1B000054E35E01000A48 |
:101AE000015085E20060A0E364600BE506A0A0E180 |
:101AF000FF90A0E329604BE50140D5E4750054E375 |
:101B00000200000A203084E3780053E30B00001A3F |
:101B1000010016E30730A0110470871200809315AE |
:101B20000600001A0730A0E1047087E2000093E588 |
:101B3000040016E30038A0112388A0110080A00142 |
:101B4000200054E30300001A29305BE5000053E352 |
:101B5000E8FFFF1A140000EA230054E3086086033C |
:101B6000E4FFFF0A2D0054E32A0054130C00001A6E |
:101B70002A0054E30700001A0730A0E1047087E24E |
:101B800000A0D3E5D030D3E1000053E3D9FFFFAA92 |
:101B900000306AE2FFA003E2103086E3DF6003E278 |
:101BA000D4FFFFEA2B0054E30100001A29404BE563 |
:101BB000D0FFFFEA2E0054E31A00001A0140D5E4DA |
:101BC0002A0054E30700001A0730A0E1047087E2FE |
:101BD000001093E50030E0E3030051E10130A0A1E3 |
:101BE000FF9003E2C3FFFFEA0010A0E3303044E2BD |
:101BF000090053E30600008A013181E0833084E06C |
:101C0000301043E20140D5E4303044E2090053E3B0 |
:101C1000F8FFFF9A0030E0E3030051E10130A0A19A |
:101C2000FF9003E2B4FFFFEA300054E30200001A21 |
:101C3000100016E320608603AEFFFFEA313044E275 |
:101C4000080053E30900008A0010A0E3013181E09D |
:101C5000833084E0301043E20140D5E4303044E288 |
:101C6000090053E3FFA00182A3FFFF8AF6FFFFEA0A |
:101C7000680054E3046086039EFFFF0A6C0054E38F |
:101C8000016086039BFFFF0A630054E30800001A0B |
:101C900054104BE25C100BE50730A0E1047087E2C2 |
:101CA0000030D3E554304BE50120A0E36C200BE578 |
:101CB000AC0000EA640054E3440054130100000A3D |
:101CC000690054E31400001A440054E301608603E1 |
:101CD000010016E30730A0110470871200809315ED |
:101CE0000600001A0730A0E1047087E2000093E5C7 |
:101CF000040016E30038A0114388A0110080A00161 |
:101D0000000058E3008068B22D30A0B329304BB5F5 |
:101D10000A30A0E360300BE5580000EA6F0054E39E |
:101D20004F0054130400001A4F0054E3016086036F |
:101D30000810A0E360100BE54E0000EA700054E3C9 |
:101D40000700001A0730A0E1047087E2008093E5E5 |
:101D50001020A0E360200BE5406086E37840A0E31C |
:101D6000440000EA730054E32E00001A0730A0E19B |
:101D7000047087E2003093E55C300BE50320A0E1BE |
:101D8000000053E30D00001A54304BE25C300BE5C9 |
:101D90002830A0E354304BE56E30A0E353304BE5E0 |
:101DA0007530A0E352304BE56C30A0E351304BE589 |
:101DB00050304BE52930A0E34F304BE54E204BE54A |
:101DC000093CA0E1433CB0E170300BE51000004A53 |
:101DD0005C001BE50010A0E30320A0E1CD5200EB66 |
:101DE000000050E30700000A5C101BE5003061E0D2 |
:101DF000FF3003E26C300BE5033CA0E170201BE5F3 |
:101E0000430C52E1570000AAFF9009E26C900BE5E9 |
:101E1000540000EA5C001BE5D25200EBFF0000E238 |
:101E20006C000BE54F0000EA750054E355005413B5 |
:101E30000400001A550054E3016086030A30A0E351 |
:101E400060300BE50B0000EA780054E358005413AF |
:101E50003D00001A1010A0E360100BE5A631A0E1D0 |
:101E6000013003E2000058E30030A0030130031208 |
:101E7000000053E3406086130030A0E329304BE5B7 |
:101E800064900BE5800019E3DF6006022C204BE232 |
:101E90005C200BE5000059E3000058032300000A12 |
:101EA00060301BE5030058E10090A0330190A023AF |
:101EB0000800A0E10310A0E1204900EBFF0000E2D0 |
:101EC000090050E330308092FF0003920300009A33 |
:101ED000573080E2FF0003E2580054E3DF000302C2 |
:101EE0005C101BE5010061E55C100BE50800A0E15A |
:101EF00060101BE5BF4800EB0080A0E1000059E343 |
:101F0000E6FFFF1A60201BE5080052E30700001AF5 |
:101F1000080016E30500000A5C101BE50030D1E55F |
:101F2000300053E33030A013013061155C100B1505 |
:101F300028204BE25C101BE5023061E0043043E2F4 |
:101F4000FF3003E26C300BE5080000EA000054E3C8 |
:101F50004100000A54204BE25C200BE554404BE565 |
:101F60000130A0E36C300BE50030A0E329304BE5F5 |
:101F70006C101BE5FF9001E264201BE5023061E07C |
:101F8000FF3003E2800013E30030A01368300BE55C |
:101F900029305BE5000053E3013089120200001A8A |
:101FA000400016E30100000A023089E2FF9003E2DC |
:101FB00068101BE5013089E0FF9003E2300016E372 |
:101FC0000A006900000CA001400CA0018EFEFF0B6E |
:101FD00029305BE5000053E329004B120110A013E8 |
:101FE0000600001A400016E30500000A3030A0E3A6 |
:101FF00058304BE557404BE558004BE20210A0E348 |
:1020000069FEFFEB303006E2200053E30A0069006E |
:10201000000CA001400CA0018AFEFF0B68201BE50C |
:10202000020CA0E1400CA0E186FEFFEB6C301BE54A |
:10203000031CA0E1411CA0E15C001BE55AFEFFEB84 |
:10204000100016E396FEFF0A0A0069E0000CA0E10A |
:10205000400CA0E16CFEFFEB91FEFFEAF0AF1BE944 |
:102060000DC0A0E100D82DE904B04CE21603A0E3B6 |
:10207000030A80E20119A0E3F43000EB1623A0E389 |
:10208000032A82E2B830D2E1C83083E2B830C2E13C |
:102090001C209FE5003092E5013083E2003082E5AC |
:1020A0000231A0E3C339A0E1FF20A0E3302083E5A3 |
:1020B00000A81BE9600800040DC0A0E110D82DE9BC |
:1020C00004B04CE220D04DE2E0009FE5121E00EB90 |
:1020D0000100A0E30010A0E1162900EB30404BE224 |
:1020E0000400A0E1D42F00EB4010A0E3B0134BE1BB |
:1020F0000230A0E3BE324BE10110E0E3BA124BE143 |
:102100003D2A00EB803260E0033180E08331A0E1C2 |
:102110002333A0E198209FE5921383E02333A0E1CD |
:1021200020304BE51603A0E3030A80E20410A0E18F |
:10213000D22F00EB1603A0E3030A80E20119A0E30B |
:102140000120A0E3CA3000EB1603A0E3030A80E2FB |
:102150000010A0E38E3000EB0500A0E30010A0E328 |
:102160000020A0E1A32E00EB0500A0E30110A0E3F6 |
:10217000F52D00EB3C309FE50010A0E3B010C3E16B |
:102180000210C3E50310C3E50410C3E50510C3E561 |
:102190000610C3E5B810C3E10A10C3E518309FE587 |
:1021A000001083E514009FE5DB1D00EB10A81BE980 |
:1021B00038B30100632D3E05800800046008000468 |
:1021C00048B301000C309FE5003093E5030080E048 |
:1021D000010040E20EF0A0E16008000414309FE529 |
:1021E000003093E5000063E0000050E31000A0B36E |
:1021F0000000A0A30EF0A0E1600800040DC0A0E163 |
:1022000000D82DE904B04CE2EDFFFFEB14309FE560 |
:10221000000083E5F0FFFFEBFF0000E2000050E369 |
:1022200000A81B19FCFFFFEAF80300040DC0A0E1A1 |
:10223000F0DF2DE904B04CE21703A0E3070A80E2C7 |
:102240000210A0E3573100EB1773A0E3074A87E2BF |
:10225000C8629FE50050A0E3230000EAC0029FE5AA |
:102260000030D0E51B0053E31000008A0030D0E5B9 |
:10227000FF3003E20330D6E7FF3003E2B830C4E1B9 |
:10228000A0329FE5001093E50030D0E5FF3003E277 |
:102290000020D1E50330D6E7032082E00020C1E52D |
:1022A0000030D0E5013083E20030C0E50E0000EAE6 |
:1022B0006C329FE50050C3E56C129FE51950C1E5F3 |
:1022C00068329FE50020D3E50B00D1E50B20C1E586 |
:1022D0000120D3E50C00D1E50C20C1E5B050C3E1ED |
:1022E0004C029FE51A20A0E3965100EB070A87E213 |
:1022F0002110A0E3123100EB010050E317A3A0135B |
:1023000007AA8A122C929F157D00001AD2FFFFEABD |
:10231000B830DAE1FF8003E21773A0E3074A87E2EF |
:10232000F8619FE50050A0E3230000EAF0019FE57B |
:102330000030D0E51B0053E31000008A0030D0E5E8 |
:10234000FF3003E20330D6E7FF3003E2B830C4E1E8 |
:10235000D0319FE5001093E50030D0E5FF3003E277 |
:102360000020D1E50330D6E7032082E00020C1E55C |
:102370000030D0E5013083E20030C0E50E0000EA15 |
:102380009C319FE50050C3E59C119FE51950C1E5C4 |
:1023900098319FE50020D3E50B00D1E50B20C1E586 |
:1023A0000120D3E50C00D1E50C20C1E5B050C3E11C |
:1023B0007C019FE51A20A0E3625100EB070A87E247 |
:1023C0002110A0E3DE3000EB010050E3D6FFFF0A4E |
:1023D000003099E5010053E30C00000A0200003AC6 |
:1023E000020053E31100000A430000EA0020A0E3CA |
:1023F00044319FE50020C3E540119FE50080C1E521 |
:10240000AA0058E30130A0033C00000A3C0000EAA7 |
:10241000830058E33800001A20219FE50030D2E500 |
:10242000833083E20030C2E50230A0E3330000EAEB |
:102430000CC19FE500119FE50030D1E5012083E24A |
:102440000020C1E5FF3003E20380CCE70030D1E596 |
:102450001D0053E3E4209F950030D295033088900F |
:102460000030C2952600009AD0109FE50030D1E5DB |
:10247000080053E11700001AC8409FE50030D4E57A |
:10248000000053E30500001ABC009FE50C10A0E11A |
:102490001E20A0E32B5100EB0130A0E30030C4E587 |
:1024A000A8209FE5003092E5013083E2003082E50C |
:1024B0009C209FE51C30D2E51D20D2E5023483E14B |
:1024C000013083E288109FE51C30C1E52334A0E190 |
:1024D0001D30C1E5080000EA74209FE51A30D2E5FE |
:1024E0001B20D2E5023483E1013083E260109FE5D6 |
:1024F0001A30C1E52334A0E11B30C1E50030A0E370 |
:10250000003089E51703A0E3070A80E22210A0E368 |
:102510008B3000EB010050E3F0AF1B197BFFFFEAAB |
:10252000F0080004FC03000400040004C0080004D8 |
:10253000E0070004F208000410040004040400048E |
:102540000E040004A008000405040004100900049F |
:1025500008040004581300040DC0A0E1F0D82DE9D0 |
:1025600004B04CE218D04DE268019FE5EA1C00EB94 |
:102570000108A0E30110A0E3EE2700EB010CA0E3AB |
:102580000110A0E3EB2700EB1603A0E3020980E2B1 |
:10259000972900EB34004BE28B2A00EB0150A0E3BB |
:1025A00034404BE20060A0E30160C4E54F30E0E35B |
:1025B00034304BE50260C4E50350C4E50670A0E189 |
:1025C000B460C4E11603A0E3020980E20410A0E1B4 |
:1025D0002B2A00EB0400A0E17B2A00EB0150C4E5AC |
:1025E0004030A0E334304BE50260C4E50350C4E55D |
:1025F0000230A0E3B430C4E11603A0E3020980E294 |
:102600000410A0E11E2A00EB1703A0E3070A80E2F2 |
:10261000B02F00EB2C404BE20400A0E1083000EBAF |
:102620003030E0E3BC324BE10430A0E3BA324BE19E |
:102630000830E0E3B2324BE18030E0E3B6324BE108 |
:102640004030E0E3B8324BE120604BE51703A0E3F4 |
:10265000070A80E20410A0E1B52F00EB1703A0E306 |
:10266000070A80E20E10A0E30520A0E10B3000EB8A |
:1026700064009FE564109FE50A20A0E3122000EBB0 |
:102680001703A0E3070A80E20510A0E1FC2F00EB8E |
:102690004C209FE57E30E0E30030C2E55530A0E3FA |
:1026A0000130C2E51B2082E238309FE5002083E53F |
:1026B0001500A0E30610A0E10520A0E14D2D00EBE0 |
:1026C0001500A0E30510A0E19F2C00EB18009FE58A |
:1026D000911C00EBF0A81BE950B30100E0080004D6 |
:1026E00038090004F00800040004000460B301008D |
:1026F0000DC0A0E100D82DE904B04CE2F83B9FE505 |
:102700000030D3E5000053E300A81B091500A0E347 |
:102710000010A0E38C2C00EBE01B9FE5E02B9FE575 |
:102720000030D2E50120D2E5023483E10338A0E194 |
:102730002328A0E1FF2002E20700D1E50720C1E540 |
:10274000233CA0E10820D1E50830C1E5B40B9FE5AA |
:102750000030D0E50120D0E5023483E10338A0E168 |
:102760002328A0E1FF2002E201C0D1E50120C1E55C |
:10277000233CA0E10220D1E50230C1E50230D0E5E2 |
:102780000320D0E5023483E10338A0E12328A0E14F |
:10279000FF2002E203C0D1E50320C1E5233CA0E114 |
:1027A0000420D1E50430C1E50430D0E50520D0E5B2 |
:1027B000023483E10338A0E12328A0E1FF2002E2F4 |
:1027C0000500D1E50520C1E5233CA0E10620D1E5C7 |
:1027D0000630C1E5300B9FE50030D0E5012083E2F3 |
:1027E0000020C0E5FF3003E2202B9FE50330D2E755 |
:1027F0000030C1E50030D0E5040053E30030A08391 |
:102800000030C085F43A9FE50030D3E5660053E31D |
:102810002E00000A020000CA650053E30D00000A02 |
:10282000740000EA670053E37200001ACC2A9FE5A7 |
:10283000DC3A9FE50030D3E50D30C2E5D43A9FE5A0 |
:102840000030D3E50E30C2E5CC3A9FE50030D3E549 |
:102850000F30C2E5670000EAA01A9FE5BC0A9FE5B9 |
:102860000020D0E50130D0E5032482E10230D0E53C |
:10287000032882E10330D0E5032C82E1FF3002E23D |
:102880000DC0D1E50D30C1E52234A0E1FF3003E2F7 |
:102890000EC0D1E50E30C1E52238A0E1FF3003E2E1 |
:1028A0000FC0D1E50F30C1E5222CA0E11030D1E5F9 |
:1028B0001020C1E50420D0E50530D0E5032482E1F5 |
:1028C0000630D0E5032882E10730D0E5270000EA92 |
:1028D0004C3A9FE500C093E500005CE33300000A3A |
:1028E0000C30DCE50D20DCE5023483E10E20DCE574 |
:1028F000023883E10F20DCE5023C93E12B00000A63 |
:10290000F8199FE50020DCE50130DCE5032482E1D5 |
:102910000230DCE5032882E10330DCE5032C82E1B0 |
:10292000FF3002E20D00D1E50D30C1E52234A0E117 |
:10293000FF3003E20E00D1E50E30C1E52238A0E100 |
:10294000FF3003E20F00D1E50F30C1E5222CA0E1FA |
:102950001030D1E51020C1E50420DCE50530DCE5D0 |
:10296000032482E10630DCE5032882E10730DCE560 |
:10297000032C82E1FF3002E21100D1E51130C1E504 |
:102980002234A0E1FF3003E21200D1E51230C1E5AC |
:102990002238A0E1FF3003E21300D1E51330C1E596 |
:1029A000222CA0E11430D1E51420C1E5110000EA89 |
:1029B00048399FE50D20D3E50020A0E30D20C3E5B5 |
:1029C0000E10D3E50E20C3E50F10D3E50F20C3E5AD |
:1029D0001010D3E51020C3E51110D3E51120C3E595 |
:1029E0001210D3E51220C3E51310D3E51320C3E57D |
:1029F0001410D3E51420C3E51500A0E30110A0E3F3 |
:102A0000D12B00EB1C399FE50030D3E50A3043E2BF |
:102A1000040053E303F19F97000200EA302A00000C |
:102A200054310000A8310000CC2A0000F831000029 |
:102A3000F4189FE5EC289FE51130D2E50130C1E59F |
:102A40001230D2E50230C1E51330D2E50330C1E5E2 |
:102A50001430D2E50430C1E51530D2E50530C1E5CA |
:102A60001630D2E50630C1E51730D2E50730C1E5B2 |
:102A70001830D2E50830C1E5B0189FE50030D1E547 |
:102A8000000053E30020A013A4389F150A20C315AB |
:102A90000020C11598189FE588089FE50A30D1E508 |
:102AA0001920D0E5023083E10A30C1E51A30D0E5C3 |
:102AB0000930C1E570289FE51B30D0E51430C2E530 |
:102AC0001C30D0E50030C2E5D40100EA54289FE56F |
:102AD0001130D2E5FA0053E348389F951120D39581 |
:102AE0001600009A1130D2E5FB0053E340389F05F1 |
:102AF0000420D3051100000A28389FE51130D3E5E2 |
:102B0000FC0053E328389F050520D3050B00000A7D |
:102B100010389FE51130D3E5FD0053E310389F05D1 |
:102B20000620D3050500000AF8379FE51130D3E5EC |
:102B3000FE0053E3F8379F050720D3050100001A74 |
:102B4000E4379FE50920C3E5DC279FE50930D2E59E |
:102B5000000053E30400000ACC279FE50930D2E5CA |
:102B6000FF0053E30100001A0030E0E30930C2E542 |
:102B7000B0279FE51230D2E5FA0053E3A4379F95C2 |
:102B80001220D3951600009A1230D2E5FB0053E3D1 |
:102B90009C379F050420D3051100000A84379FE568 |
:102BA0001230D3E5FC0053E384379F050520D3059D |
:102BB0000B00000A6C379FE51230D3E5FD0053E3AC |
:102BC0006C379F050620D3050500000A54379FE5A2 |
:102BD0001230D3E5FE0053E354379F050720D30599 |
:102BE0000100001A40379FE50A20C3E538279FE51A |
:102BF0000A30D2E5000053E30400000A28279FE5CD |
:102C00000A30D2E5FF0053E30100001A0030E0E390 |
:102C10000A30C2E50C279FE51330D2E5FA0053E3F2 |
:102C200000379F951320D3951600009A1330D2E5F4 |
:102C3000FB0053E3F8369F050420D3051100000A7A |
:102C4000E0369FE51330D3E5FC0053E3E0369F0503 |
:102C50000520D3050B00000AC8369FE51330D3E5E5 |
:102C6000FD0053E3C8369F050620D3050500000A82 |
:102C7000B0369FE51330D3E5FE0053E3B0369F0531 |
:102C80000720D3050100001A9C369FE50B20C3E501 |
:102C900094269FE50B30D2E5000053E30400000AC0 |
:102CA00084269FE50B30D2E5FF0053E30100001AB4 |
:102CB0000030E0E30B30C2E568269FE51430D2E532 |
:102CC000FA0053E35C369F951420D3951600009AC2 |
:102CD0001430D2E5FB0053E354369F050420D3059E |
:102CE0001100000A3C369FE51430D3E5FC0053E3A5 |
:102CF0003C369F050520D3050B00000A24369FE5CE |
:102D00001430D3E5FD0053E324369F050620D30598 |
:102D10000500000A0C369FE51430D3E5FE0053E3AE |
:102D20000C369F050720D3050100001AF8359FE5F2 |
:102D30000C20C3E5F0259FE50C30D2E5000053E3FD |
:102D40000400000AE0259FE50C30D2E5FF0053E3C4 |
:102D50000100001A0030E0E30C30C2E5C4259FE515 |
:102D60001530D2E5FA0053E3B8359F951520D39579 |
:102D70001600009A1530D2E5FB0053E3B0359F05ED |
:102D80000420D3051100000A98359FE51530D3E5DE |
:102D9000FC0053E398359F050520D3050B00000A7E |
:102DA00080359FE51530D3E5FD0053E380359F0561 |
:102DB0000620D3050500000A68359FE51530D3E5E8 |
:102DC000FE0053E368359F050720D3050100001A74 |
:102DD00054359FE50D20C3E54C259FE50D30D2E528 |
:102DE000000053E30400000A3C259FE50D30D2E5C6 |
:102DF000FF0053E30100001A0030E0E30D30C2E5AC |
:102E000020259FE51630D2E5FA0053E314359F954F |
:102E10001620D3951600009A1630D2E5FB0053E336 |
:102E20000C359F050420D3051100000AF4349FE5FA |
:102E30001630D3E5FC0053E3F4349F050520D30599 |
:102E40000B00000ADC349FE51630D3E5FD0053E3A8 |
:102E5000DC349F050620D3050500000AC4349FE535 |
:102E60001630D3E5FE0053E3C4349F050720D30595 |
:102E70000100001AB0349FE50E20C3E5A8249FE5A9 |
:102E80000E30D2E5000053E30400000A98249FE5C9 |
:102E90000E30D2E5FF0053E30100001A0030E0E3FA |
:102EA0000E30C2E580149FE578249FE51730D2E507 |
:102EB0000F30C1E51830D2E51030C1E51930D2E548 |
:102EC000FA0053E35C349F951920D3951700009ABC |
:102ED0001930D2E5FB0053E354349F050430D30589 |
:102EE0001130C1051300000A38349FE51930D3E5CD |
:102EF000FC0053E338349F050520D3050B00000A7E |
:102F000020349FE51930D3E5FD0053E320349F05BD |
:102F10000620D3050500000A08349FE51930D3E5E3 |
:102F2000FE0053E308349F050720D3050100001A73 |
:102F3000F4339FE51120C3E5EC239FE51130D2E582 |
:102F40000A0053E30A30A0930400009AD8239FE5B7 |
:102F50001130D2E5FF0053E30100001A0030E0E336 |
:102F60001130C2E5BC239FE51A30D2E5FA0053E3E5 |
:102F7000B0339F951A20D3951600009A1A30D2E5E7 |
:102F8000FB0053E3A8339F050420D3051100000A7A |
:102F900090339FE51A30D3E5FC0053E390339F054F |
:102FA0000520D3050B00000A78339FE51A30D3E5DE |
:102FB000FD0053E378339F050620D3050500000A82 |
:102FC00060339FE51A30D3E5FE0053E360339F057D |
:102FD0000720D3050100001A4C339FE51220C3E5FA |
:102FE00044239FE51230D2E5000053E30400000AB9 |
:102FF00034239FE51230D2E5FF0053E30100001AAD |
:103000000030E0E31230C2E518239FE51B30D2E523 |
:10301000FA0053E30C339F951B20D3951600009ABA |
:103020001B30D2E5FB0053E304339F050420D30596 |
:103030001100000AEC329FE51B30D3E5FC0053E39E |
:10304000EC329F050520D3050B00000AD4329FE522 |
:103050001B30D3E5FD0053E3D4329F050620D30592 |
:103060000500000ABC329FE51B30D3E5FE0053E3A8 |
:10307000BC329F050720D3050100001AA8329FE546 |
:103080001320C3E5A0229FE51330D2E5000053E3EF |
:103090000400000A90229FE51330D2E5FF0053E3BD |
:1030A0000100001A0030E0E31330C2E574229FE50E |
:1030B0001C30D2E5FA0053E368329F951C20D3956B |
:1030C0001600009A1C30D2E5FB0053E360329F05E6 |
:1030D0000420D3051100000A48329FE51C30D3E5D7 |
:1030E000FC0053E348329F050520D3050B00000A7E |
:1030F00030329FE51C30D3E5FD0053E330329F05AD |
:103100000620D3050500000A18329FE51C30D3E5E0 |
:10311000FE0053E318329F050720D3050100001A73 |
:1031200004329FE51520C3E5FC219FE51530D2E56B |
:10313000000053E30400000AEC219FE51530D2E5BE |
:10314000FF0053E33500001A0030E0E31530C2E51C |
:10315000320000EAD8119FE5C8219FE51130D2E581 |
:103160000330C1E51230D2E50230C1E51330D2E5BB |
:103170000130C1E51430D2E50030C1E51530D2E5AB |
:103180000430C1E51630D2E50530C1E51730D2E58F |
:103190000630C1E51830D2E50730C1E51930D2E577 |
:1031A0000830C1E51D0000EA88119FE574019FE524 |
:1031B0000020D1E51130D0E5030052E10400000AFF |
:1031C0001130D0E50030C1E50010D1E568019FE580 |
:1031D000481D00EB64119FE548219FE51330D2E5BF |
:1031E0001420D2E5023483E13B30C1E52334A0E171 |
:1031F0003C30C1E5090000EA44119FE524219FE528 |
:103200001130D2E50030C1E51230D2E50130C1E520 |
:103210001330D2E50230C1E51430D2E50330C1E508 |
:10322000C12000EB0120A0E300319FE50020C3E5B1 |
:103230000020A0E3C0309FE50020C3E504019FE526 |
:10324000E0109FE50130D1E50220D1E5023483E1B1 |
:103250000230C0E52334A0E10330C0E50330D1E5FE |
:103260000420D1E5023483E10430C0E52334A0E139 |
:103270000530C0E50530D1E50620D1E5023483E113 |
:103280000338A0E14338A0E1033263E08330A0E1DA |
:10329000B4C09FE59CE3C2E0C33FA0E1C23263E05B |
:1032A0000630C0E52334A0E10730C0E50730D1E5A2 |
:1032B0000820D1E5023483E10338A0E14338A0E1DE |
:1032C000033263E08330A0E19CE3C2E0C33FA0E1AE |
:1032D000C23263E00830C0E52334A0E10930C0E524 |
:1032E0000930D1E50A20D1E5023483E13430C0E56C |
:1032F0002334A0E13530C0E500A81BE90504000433 |
:10330000C0080004A8090004E01600040C0400042E |
:1033100060000004540000045C0000045800000435 |
:10332000B80400046005000410090004C807000484 |
:10333000C4030004480800040D040004E00800046D |
:10334000A01100043009000458130004F712DA4BEE |
:103350000DC0A0E130D82DE904B04CE218D04DE208 |
:10336000A4209FE50030E0E30030C2E50130C2E573 |
:103370000230C2E50330C2E57D0EA0E390FBFFEB17 |
:103380000008A0E14048A0E17C509FE5D7FCFFEB9E |
:103390000030D5E5FF0053E30400001A0408A0E163 |
:1033A0002008A0E18CFBFFEBFF0010E3F6FFFF0A13 |
:1033B00054509FE500C0D5E5FF005CE34C009F053D |
:1033C0000F00000A28404BE20130D5E50220D5E588 |
:1033D000612082E200208DE50400A0E130109FE52D |
:1033E0000C20A0E1424D00EB0400A0E14A1900EBE3 |
:1033F0000320D5E50400A0E118109FE53C4D00EB4B |
:103400000400A0E1441900EB30A81BE930090004D6 |
:1034100064B3010090B30100A8B301000DC0A0E1A6 |
:1034200070D82DE904B04CE210D04DE298029FE52F |
:10343000391900EB0108A0E30110A0E33D2400EBE3 |
:103440000108A0E30010A0E3502400EB20004BE2B1 |
:10345000DD2600EB0140A0E320104BE20140C1E576 |
:103460000C30A0E320304BE50240C1E50030A0E382 |
:103470000330C1E5B440C1E11603A0E3020980E2D4 |
:103480007F2600EB1603A0E3020980E20410A0E30C |
:103490000420A0E1DF2600EB0400A0E148FBFFEBE5 |
:1034A0000040A0E10400A0E14BFBFFEBFF0010E3B4 |
:1034B000FBFFFF0A1603A0E3020980E20810A0E365 |
:1034C0000020A0E3D32600EB0050A0E30100A0E31E |
:1034D0003BFBFFEB0040A0E10400A0E13EFBFFEB63 |
:1034E000FF0010E3FBFFFF0A1603A0E3020980E2DE |
:1034F0000410A0E30020A0E3C62600EB0100A0E337 |
:103500002FFBFFEB0040A0E10400A0E132FBFFEB4A |
:10351000FF0010E3FBFFFF0A1603A0E3020980E2AD |
:103520000410A0E30120A0E3BA2600EB013085E2FD |
:10353000FF5003E2090055E3E3FFFF9A0100A0E317 |
:103540001FFBFFEB0040A0E10400A0E122FBFFEB2A |
:10355000FF0010E3FBFFFF0A1603A0E3020980E26D |
:103560000810A0E30120A0E3AA2600EB20004BE214 |
:10357000952600EB0160A0E320104BE20160C1E55D |
:103580000C30A0E320304BE50260C1E50360C1E5EB |
:103590000230A0E3B430C1E11603A0E3020980E2E7 |
:1035A000372600EB8000A0E30610A0E1E12300EB4A |
:1035B0008000A0E30610A0E1F42300EB8000A0E36C |
:1035C0000010A0E3F12300EB1703A0E30D0A80E253 |
:1035D000782C00EB28004BE2092D00EB28104BE281 |
:1035E0001030E0E30630C1E50430A0E30730C1E568 |
:1035F0004E3CA0E3203083E228300BE50050A0E3EE |
:103600000540A0E1B450C1E11703A0E30D0A80E238 |
:10361000812C00EBB4309FE5005083E5B0309FE58E |
:103620000050C3E5AC309FE50050C3E5A8309FE5EE |
:10363000005083E5A4309FE50050C3E5A0309FE52E |
:103640000050C3E51703A0E30D0A80E20610A0E1D5 |
:10365000F52C00EB1703A0E30D0A80E20610A0E1B1 |
:10366000102D00EB1400A0E30510A0E10520A0E15F |
:10367000602900EB1400A0E30610A0E1B22800EBE3 |
:10368000FA0FA0E3CEFAFFEB58309FE5000083E588 |
:1036900054309FE50020D3E50020E0E30020C3E59F |
:1036A0000110D3E50120C3E51703A0E30D0A80E272 |
:1036B0000610A0E1ED2C00EB30309FE5006083E5C3 |
:1036C0002C009FE5941800EB70A81BE9B8B301002B |
:1036D0008009000415040004D809000460090004EE |
:1036E00014040004C009000418040004A80900041C |
:1036F0006800000460B301000DC0A0E130D82DE9DE |
:1037000004B04CE208D04DE210019FE5821800EBB6 |
:103710001703A0E30D0A80E20010A0E3CC2C00EB1D |
:103720001703A0E30D0A80E20110A0E3CF2C00EB09 |
:103730001400A0E30010A0E3832800EB1703A0E32C |
:103740000D0A80E20010A0E3D62C00EB1703A0E3E3 |
:103750000D0A80E20010A0E3B32C00EB1703A0E3F6 |
:103760000D0A80E2132C00EB8000A0E30010A0E320 |
:10377000702300EB0108A0E30110A0E36D2300EB30 |
:103780001C004BE2102600EB1C104BE20040A0E3B3 |
:103790000140C1E50C30A0E31C304BE50240C1E51F |
:1037A0000340C1E50450A0E1B440C1E11603A0E329 |
:1037B000020980E2B22500EB64309FE5004083E51A |
:1037C00060309FE50040C3E55C309FE50040C3E505 |
:1037D00058309FE5004083E554309FE50040C3E545 |
:1037E00050309FE50040C3E50520A0E348309FE549 |
:1037F000002083E544309FE5004083E540309FE5AD |
:103800000020D3E50020E0E30020C3E50110D3E56C |
:103810000120C3E52C009FE53F1800EB30A81BE911 |
:10382000C8B301008009000415040004D80900048D |
:103830006009000414040004C009000468000004C6 |
:1038400018040004A809000460B301000DC0A0E141 |
:1038500070D82DE904B04CE21703A0E30D0A80E212 |
:10386000F92C00EB0008A0E14038A0E12008A0E11D |
:10387000120C10E31753A0130D4A85120600001A0C |
:103880000B0000EA0400A0E10110A0E3772C00EB9C |
:103890000400A0E10010A0E3742C00EB0D0A85E207 |
:1038A0000810A0E3922C00EB000050E3F4FFFF1A95 |
:1038B000350000EA0338A0E12308A0E19A0050E3B4 |
:1038C000B400000A020000CA930050E370A81B195C |
:1038D000060000EABA0050E36000000A823DA0E35F |
:1038E000123083E2030050E170A81B192F0000EA98 |
:1038F0001603A0E30B0A80E24010A0E30120A0E33E |
:10390000C42500EBEC339FE50030D3E5FF3013E234 |
:103910000220A0030A00000A010053E31600001A67 |
:10392000D4339FE5003093E5000053E34300000AE1 |
:10393000C8339FE50030D3E5000053E33F00000AA1 |
:103940000420A0E3B8339FE5002083E51703A0E33C |
:103950000D0A80E20110A0E34B2C00EB94339FE5AD |
:103960000020D3E5FF2002E21703A0E30D0A80E266 |
:103970005010A0E3A72C00EB70A81BE91703A0E3ED |
:103980000D0A80E20110A0E3382C00EB0120A0E337 |
:103990006C339FE5002083E51603A0E30B0A80E269 |
:1039A0004010A0E30020A0E39A2500EB70A81BE9DB |
:1039B0001703A0E30D0A80E20110A0E31A2C00EB2C |
:1039C0000030A0E33C239FE50030C2E530339FE5A3 |
:1039D000003093E5020053E30500000A040053E3BE |
:1039E0000020A00320339F050020C30570A81B09F9 |
:1039F000120000EA14439FE50010D4E5FF1001E235 |
:103A00001703A0E30D0A80E2892C00EBF4129FE576 |
:103A10000030D1E50020D4E5023083E00030C1E57C |
:103A20000020A0E3E8329FE50020C3E57D0FA0E37E |
:103A3000E3F9FFEBDC329FE5000083E570A81BE9AA |
:103A40001703A0E30D0A80E20110A0E3072C00EBAE |
:103A50000120A0E3A8329FE5002083E570A81BE9C0 |
:103A6000AC429FE50020D4E5FF2002E2A8329FE5AA |
:103A70000030D3E5FF3003E2030052E11800002AD2 |
:103A800098529FE5002095E5000052E30F00000AE0 |
:103A90000030D4E5FF3003E20310D2E7FF1001E26B |
:103AA0001703A0E30D0A80E2612C00EB54029FE5AE |
:103AB0000020D4E5FF2002E2001095E50030D0E5BB |
:103AC0000220D1E7023083E00030C0E52C0000EA9C |
:103AD0001703A0E30D0A80E20010A0E3542C00EBD2 |
:103AE000270000EA1C329FE50010D3E51703A0E38E |
:103AF0000D0A80E24E2C00EBFC319FE5003093E58F |
:103B0000000053E30A00000AF0319FE50030D3E5DE |
:103B1000000053E30600000A0110A0E3D4319FE542 |
:103B20000010C3E51703A0E30D0A80E2C82B00EBE9 |
:103B3000130000EA1703A0E30D0A80E20110A0E3DE |
:103B4000CA2B00EB0120A0E3B4319FE5002083E500 |
:103B50001603A0E30B0A80E24010A0E30020A0E3DC |
:103B60002C2500EBB8119FE52030D1E52120D1E5CF |
:103B7000023483E1013083E22030C1E52334A0E147 |
:103B80002130C1E588219FE50030D2E5013083E294 |
:103B90000030C2E570A81BE96C619FE50030D6E5F6 |
:103BA00058219FE50020D2E5020053E10E00002AD3 |
:103BB00070519FE50040D6E5FF4004E21703A0E303 |
:103BC0000D0A80E21D2C00EB0400C5E734119FE5CF |
:103BD0000030D6E5FF3003E20020D1E50330D5E721 |
:103BE000032082E00020C1E5340000EA0C419FE59B |
:103BF00014319FE50020D3E50030D4E5030052E105 |
:103C00002E00001A1703A0E30D0A80E20110A0E3C2 |
:103C1000962B00EB1703A0E30D0A80E2072C00EBC4 |
:103C2000E0309FE50030D3E5FF0000E2000053E103 |
:103C30001200001AC0309FE5000093E5000050E339 |
:103C40000020D415DC109F153E4B001BD0109FE5C3 |
:103C50002030D1E52120D1E5023483E1013083E237 |
:103C60002030C1E52334A0E12130C1E5B8209FE533 |
:103C7000003092E5013083E2003082E5070000EA7F |
:103C80009C309FE51E20D3E51F10D3E5012482E17F |
:103C9000012082E21E20C3E52224A0E11F20C3E50B |
:103CA0000120A0E358309FE5002083E51603A0E340 |
:103CB0000B0A80E24010A0E30020A0E3D52400EB33 |
:103CC00044209FE50030D2E5013083E20030C2E5B8 |
:103CD0000020D2E524309FE50030D3E5030052E117 |
:103CE00070A81B191703A0E30D0A80E20010A0E3DF |
:103CF000652B00EB70A81BE998090004600900041B |
:103D0000C009000468000004200400041404000436 |
:103D1000900900041504000418040004D8090004E4 |
:103D20008009000458130004B00900041C040004B6 |
:103D30000DC0A0E110D82DE904B04CE2FF4000E234 |
:103D4000AC319FE5003093E5010053E310A81B1947 |
:103D50001703A0E30D0A80E20010A0E3512B00EB53 |
:103D600090319FE50040C3E5013044E2030053E396 |
:103D700003F19F97450000EA883D0000CC3D00001C |
:103D8000EC3D00009C3D00006C219FE56C319FE5FF |
:103D9000002083E50420A0E30F0000EA60219FE5F6 |
:103DA00058319FE5002083E50310A0E354319FE5DF |
:103DB0000010C3E550219FE550319FE5002083E5C9 |
:103DC0004C319FE50010C3E5390000EA44219FE52E |
:103DD00028319FE5002083E50620A0E324319FE5FC |
:103DE0000020C3E50020A0E32D0000EA28019FE5A4 |
:103DF00028119FE50030D1E50120D1E5023483E1AF |
:103E00003630C0E52334A0E13730C0E5EC309FE523 |
:103E1000001083E50220A0E3E8309FE50020C3E521 |
:103E2000FC109FE5FC009FE50330D0E50420D0E5C1 |
:103E3000023483E10338A0E12328A0E1FF2002E25D |
:103E400002C0D1E50220C1E5233CA0E10320D1E579 |
:103E50000330C1E50130D0E50220D0E5023483E132 |
:103E60000338A0E12328A0E1FF2002E20000D1E511 |
:103E70000020C1E5233CA0E10120D1E50130C1E5EE |
:103E800088309FE5001083E50420A0E3060000EAE7 |
:103E90000020A0E364309FE5002083E564309FE5C7 |
:103EA0000020C3E564309FE5002083E560309FE596 |
:103EB0000020C3E51703A0E30D0A80E20110A0E390 |
:103EC000F82A00EB0020A0E35C309FE50020C3E56A |
:103ED0001703A0E30D0A80E21010A0E3612B00EBB2 |
:103EE0001703A0E30D0A80E20110A0E3D82A00EB3B |
:103EF00010A81BE96800000490090004D009000420 |
:103F000060090004E0090004C009000488090004F5 |
:103F100080090004D8090004C809000458130004EB |
:103F2000A8090004A009000410090004980900046D |
:103F30000DC0A0E170D82DE904B04CE218D04DE2DC |
:103F40000A60A0E3E0309FE50020E0E30020C3E545 |
:103F50000120C3E50220C3E50320C3E50030D3E51B |
:103F6000FF0053E31500001AC0409FE5B8509FE5DD |
:103F70000100A0E36DFFFFEB7D0FA0E390F8FFEBE6 |
:103F8000000084E5020000EA0030D5E5FF0053E3BD |
:103F90000300001A000094E58FF8FFEBFF0010E328 |
:103FA000F8FFFF0A013046E2FF6003E20030D5E58A |
:103FB000FF0053E30100001A000056E3EBFFFF1A75 |
:103FC00064509FE50030D5E5FF0053E360009F0596 |
:103FD0001300000A2C404BE20020D5E5FF2002E24E |
:103FE0000130D5E5FF3003E20210D5E5FF1001E214 |
:103FF000611081E200108DE50400A0E134109FE51E |
:104000003B4A00EB0400A0E1431600EB0320D5E59A |
:10401000FF2002E20400A0E11C109FE5344A00EBFF |
:104020000400A0E13C1600EB70A81BE9D0090004D5 |
:1040300018040004DCB3010004B40100A8B30100BB |
:104040000DC0A0E170D82DE904B04CE208D04DE2DB |
:10405000B0009FE5301600EB030BE0E3BC2100EB62 |
:10406000020CA0E30110A0E33D2100EB020CA0E351 |
:104070000010A0E3502100EB010BA0E30110A0E32E |
:10408000372100EB0109A0E30110A0E3292100EB97 |
:104090000109A0E30010A0E33C2100EB20004BE26B |
:1040A000C92300EB0140A0E320104BE20140C1E531 |
:1040B0000260A0E320604BE50050A0E30250C1E5A0 |
:1040C0000340C1E5B440C1E11603A0E3060A80E263 |
:1040D0006B2300EBF70D00EB170D00EB0900A0E3DD |
:1040E0000510A0E10620A0E1C22600EB0900A0E334 |
:1040F0000410A0E1142600EB083500EB08009FE552 |
:10410000051600EB70A81BE918B4010060B30100AC |
:104110000DC0A0E100D82DE904B04CE2010050E34D |
:104120001603A003060A80020210A0030020A003C9 |
:104130001603A013060A80120210A0130120A01378 |
:10414000B42300EB00A81BE90DC0A0E110D82DE9B5 |
:1041500004B04CE20040A0E30410A0E10430A0E170 |
:10416000012084E2FF4002E20330D0E7000053E385 |
:10417000F9FFFF1A023BA0E303E0A0E1463283E22D |
:10418000003093E5303003E2200053E30D00000AD5 |
:10419000EACCA0E360C08CE20120A0E1013081E222 |
:1041A0000338A0E14318A0E10228A0E122085CE165 |
:1041B00010A81B3946328EE2003093E5303003E21E |
:1041C000200053E3F3FFFF1A013084E2FF4003E2D3 |
:1041D000021CA0E30420A0E1E73400EB0100A0E30F |
:1041E0000410A0E17E2D00EB0100A0E37F2C00EB8A |
:1041F00010A81BE90DC0A0E100D82DE904B04CE2E5 |
:1042000004D04DE20D004BE50010A0E3023BA0E31B |
:1042100003C0A0E1463283E2003093E5303003E290 |
:10422000200053E30D00000AEA0CA0E3600080E2E6 |
:104230000120A0E1013081E20338A0E14318A0E1B0 |
:104240000228A0E1220850E100A81B3946328CE286 |
:10425000003093E5303003E2200053E3F3FFFF1A10 |
:104260000D004BE2021CA0E30220A0E3C23400EBED |
:104270000100A0E30210A0E3592D00EB0100A0E330 |
:104280005A2C00EB00A81BE90DC0A0E1F0DF2DE9DE |
:1042900004B04CE200A0A0E10118A0E1011881E205 |
:1042A0004138A0E1211BA0E10050A0E3010071E32F |
:1042B000F0AF1B09026BA0E3466286E20398A0E11F |
:1042C000293BA0E10378A0E1018083E2003096E57C |
:1042D000303003E2200053E3FBFFFF1A270855E1CB |
:1042E0000600002A05038AE0021CA0E34020A0E3A8 |
:1042F000A13400EB0100A0E34010A0E3070000EAB6 |
:1043000005038AE03F4809E22448A0E1021CA0E33B |
:104310000420A0E1983400EB0100A0E30410A0E128 |
:104320002F2D00EB0100A0E3302C00EB013085E2E3 |
:10433000FF5003E2080055E1F0AF1BA9E2FFFFEADE |
:104340000020A0E3020050E10200000A0A30D0E59C |
:10435000020053E10100001A0200A0E10EF0A0E10A |
:10436000B030D0E17B3E43E20C3043E2832C82E16B |
:104370000230D0E50F3003E2832A82E10330D0E53A |
:104380001F3003E2032882E10430D0E51F3003E24E |
:10439000832582E10530D0E53F3003E2832282E1CC |
:1043A0000630D0E5A330A0E11F3003E2030082E134 |
:1043B0000EF0A0E104E02DE50000A0E30010A0E174 |
:1043C00038E09FE5013281E0033181E083218EE016 |
:1043D00002C0A0E12432FCE5000053E30200A0018A |
:1043E0000130A0030030CC0504F09D04013081E2CF |
:1043F000FF1003E2020051E304F09D84F0FFFFEAA6 |
:10440000200A0004000050E30EF0A0010F0000EAB3 |
:104410000030A0E3892FA0E30230C0E70C3081E731 |
:10442000043080E50830C0E5BA30C0E10C30C0E5AA |
:10443000103080E5143080E5203280E5183080E5CA |
:10444000BC31C0E11E30C0E50100A0E30EF0A0E1E8 |
:104450000020A0E32CC09FE5023282E0033182E01D |
:104460008311A0E10C3081E0000053E1E7FFFF0A77 |
:10447000013082E2FF2003E2020052E30000A08349 |
:104480000EF0A081F3FFFFEA200A000410402DE99E |
:104490000040A0E3D030D0E12F0053E30420A0116E |
:1044A0000120A003040054E10700001AD23090E17B |
:1044B0002F0053E30000531302408000013082E2DA |
:1044C000FF2003E2000054E3F7FFFF0A0030A0E3FF |
:1044D0000B30C1E503C0A0E12020A0E30C20C1E720 |
:1044E00001308CE2FFC003E20A005CE3FAFFFF9AAE |
:1044F0000020A0E302C0A0E1D030D0E12F0053E3C0 |
:104500000120A003023080E0040053E11800002ADB |
:104510000A005CE30700008AD23090E12E0053E3EA |
:104520000600001A08005CE301308292FF2003922B |
:1045300008C0A0930B00009A0000A0E31080BDE823 |
:1045400002E0D0E761304EE2190053E320304E9292 |
:104550000230D0870C30C1E7013082E2FF2003E255 |
:1045600001308CE2FFC003E2023080E0040053E13E |
:10457000E6FFFF3A0400A0E11080BDE80008A0E1DA |
:104580004008A0E138309FE50030D3E5000053E358 |
:104590000300A0010EF0A0010038A0E1010853E3E0 |
:1045A0000200A0930038A0E12338A0E1023043E2EA |
:1045B0000C209FE50110D2E5102092E5912320E028 |
:1045C0000EF0A0E1000A00040DC0A0E100D82DE922 |
:1045D00004B04CE20020A0E12C309FE50000D3E5C0 |
:1045E000000050E300A81B091C309FE5100093E574 |
:1045F000020060E00110D3E5FE3E00EB020080E225 |
:104600000008A0E12008A0E100A81BE9000A0004BE |
:104610000DC0A0E170D82DE904B04CE20060A0E329 |
:104620000640A0E150509FE5043284E0033184E06D |
:10463000830185E0893F80E20030D3E5010053E348 |
:104640000300001A2E0500EB000086E00008A0E140 |
:104650004068A0E1013084E2FF4003E2020054E33D |
:10466000F0FFFF9ADE0800EB0030A0E30C209FE58E |
:104670000030C2E5FF0006E270A81BE9200A000432 |
:10468000000A00040DC0A0E130D82DE904B04CE2CE |
:104690000040A0E360029FE59F1400EB5C329FE5C1 |
:1046A0000040C3E50400A0E154129FE50420A0E10E |
:1046B000003280E0033180E0833181E0893F83E292 |
:1046C0000020C3E5013080E2FF0003E2020050E376 |
:1046D000F6FFFF9A28529FE57A0700EB000050E3AF |
:1046E0000300000A1C029FE58B1400EB0140A0E3CD |
:1046F000790000EA1F1085E20000A0E33E0900EB0C |
:10470000000050E30300000AFC019FE5821400EB67 |
:104710000240A0E3700000EA1FC085E2073DA0E36D |
:10472000023083E20330DCE7060053E30400531356 |
:104730000200000A0E0053E30040A0131500001A07 |
:10474000713FA0E3023083E20310DCE7713FA0E396 |
:10475000033083E20330DCE7031481E1723FA0E31E |
:104760000320DCE7021881E1013083E20330DCE75B |
:10477000034C81E11F1085E20400A0E11E0900EB5B |
:10478000000050E30300000A80019FE5621400EB83 |
:104790000340A0E3500000EA1FC085E20B30DCE5D7 |
:1047A0000C20DCE5023483E1020C53E30300000A31 |
:1047B0005C019FE5581400EB0440A0E3460000EACA |
:1047C00038119FE50D30DCE50130C1E51030DCE546 |
:1047D0000230C1E51130DCE51220DCE5023483E172 |
:1047E000B430C1E11630DCE51720DCE5023483E1AA |
:1047F000B630C1E10E30DCE50F20DCE5023483E1A8 |
:10480000033084E0083081E5B600D1E10220D1E533 |
:10481000923023E00C3081E5B420D1E1223283E0F4 |
:10482000103081E52030DCE52120DCE5023483E135 |
:104830002220DCE5023883E12320DCE5023C93E121 |
:104840000300001ACC009FE5331400EB0540A0E301 |
:10485000210000EAA4109FE52030DCE52120DCE502 |
:10486000023483E12220DCE5023883E12320DCE509 |
:10487000023C83E1102091E5023083E0013043E205 |
:10488000143081E5D633DCE1460053E30F00001A13 |
:10489000D733DCE1410053E30C00001AD833DCE1EC |
:1048A000540053E30900001AD933DCE1310053E32B |
:1048B0000600001ADA33DCE1360053E30120A003DE |
:1048C00038309F050020C3050040A0030200000A05 |
:1048D00044009FE5101400EB0640A0E3000054E301 |
:1048E0000100000A49FFFFEB010000EA2C009FE5F0 |
:1048F000091400EB0400A0E130A81BE928B4010072 |
:10490000000A0004200A00043CB4010060B4010065 |
:1049100078B4010090B40100B0B40100CCB401003F |
:1049200060B301000DC0A0E170D82DE904B04CE2E5 |
:104930000050A0E10160A0E38C309FE50030D3E59A |
:10494000000050E3000053130000A00370A81B09EF |
:104950000040A0E30410A0E17F2FA0E3032082E247 |
:10496000053084E01C3083E20310C3E5014084E29B |
:10497000020054E1F9FFFF9A0040A0E348309FE5B0 |
:104980000130D3E5030054E10D00002A040095E551 |
:10499000000084E0200285E51F1085E2300800EB6E |
:1049A000000050E30100000A18FFFFEB0060A0E3E5 |
:1049B000014084E210309FE50130D3E5030054E16B |
:1049C000F1FFFF3A0600A0E170A81BE9000A00040D |
:1049D0000DC0A0E170D82DE904B04CE20040A0E188 |
:1049E0000060A0E3C8309FE50030D3E5060050E149 |
:1049F000060053110600A00170A81B09B0509FE5E6 |
:104A0000103095E5040090E5000053E12500008A90 |
:104A1000143095E5030050E12200008AE9FEFFEB27 |
:104A20000068A0E1A627A0E1083095E5A20483E094 |
:104A30000150C2E3855BA0E1A55BA0E1203294E5D3 |
:104A4000000053E10700000A200284E51F1084E201 |
:104A5000690800EB000050E30200000AEBFEFFEBE8 |
:104A60002608A0E170A81BE9053084E01F20F3E5CB |
:104A70000130D3E5032482E10228A0E14268A0E1ED |
:104A8000090872E30060A0830600008A0608A0E11E |
:104A90002008A0E1B8FEFFEB040084E50030A0E3AD |
:104AA0000830C4E5BA30C4E10638A0E12308A0E12B |
:104AB00070A81BE9000A00040DC0A0E1F0D92DE99F |
:104AC00004B04CE20060A0E10080A0E3EC309FE580 |
:104AD0000030D3E5080050E1080053110800A001A0 |
:104AE000F0A91B09030000EAC8FEFFEB0838A0E1AB |
:104AF0002308A0E1F0A91BE90070A0E3BC309FE50A |
:104B0000080093E5000087E0200286E51F1086E29A |
:104B1000390800EB000050E3F2FFFF1A1F5086E255 |
:104B20000040A0E30438A0E12318A0E18120D5E7EC |
:104B3000810085E00130D0E5033492E10C00001AD9 |
:104B40000030E0E38130C5E70130C0E5200296E5A2 |
:104B50001F1086E2C20700EB000050E3E1FFFF1ADE |
:104B60008734A0E1A33084E00338A0E14388A0E1CA |
:104B7000014CA0E3013084E20338A0E14348A0E106 |
:104B8000FF0853E3E6FFFF9A017087E22C309FE5B0 |
:104B9000B620D3E10838B0E10030A0130130A00303 |
:104BA000020057E10030A02301300332000053E33C |
:104BB0000838A0012308A001F0A91B09CEFFFFEAD5 |
:104BC000000A00040DC0A0E1F0D82DE904B04CE2C9 |
:104BD0000040A0E10228A0E14228A0E10050A0E3AB |
:104BE00008319FE50030D3E5050050E10500531181 |
:104BF0000500A001F0A81B09010052E30600000A0D |
:104C0000020000CA000052E30050A003010000EAC5 |
:104C1000020052E3105090050000000A145094E581 |
:104C2000015095E02C00004A103094E5030055E156 |
:104C3000290000CA003094E5043084E50030A0E388 |
:104C40000830C4E5BA30C4E1143084E5050053E10E |
:104C50002100002A7F67A0E3036886E2143094E510 |
:104C6000013083E2143084E5BA30D4E1013083E2CC |
:104C7000BA30C4E1BA30D4E1260853E11300009AF7 |
:104C80000030A0E30370A0E1BA30C4E10830D4E5FD |
:104C9000013083E20830C4E50820D4E54C309FE5BC |
:104CA0000130D3E5030052E10800003A0400A0E11E |
:104CB00046FFFFEB0008B0E10870C4150830D405CA |
:104CC000013043020830C405023CA003BA30C401DD |
:104CD000143094E5050053E1DFFFFF3A143094E50A |
:104CE000050053E10100A0130000A003F0A81BE998 |
:104CF000000A00040DC0A0E1F0D92DE904B04CE297 |
:104D000002DC4DE20008A0E14008A0E10070A0E351 |
:104D10000780A0E1DC309FE50030D3E5070053E1D8 |
:104D20000700A001F0A91B090038A0E1A307A0E13A |
:104D3000C0309FE5083093E5A05483E00140C0E314 |
:104D4000844BA0E1A44BA0E1080055E10600000A55 |
:104D50000580A0E10500A0E1221E4BE2A60700EBC2 |
:104D6000000050E30000A013F0A91B19223E4BE203 |
:104D7000041083E00420D3E70130D1E5032482E16D |
:104D80000228A0E1023842E2130873E30070A08316 |
:104D90000170A0930060A0E30060C1E50160C1E57F |
:104DA000A207A0E14C309FE5083093E5A05483E0D2 |
:104DB0000140C0E3844BA0E1A44BA0E1013027E215 |
:104DC000080055E101308313060053E10500000A95 |
:104DD0000800A0E1221E4BE2210700EB060050E193 |
:104DE0000600A011F0A91B19000057E30100A00361 |
:104DF000F0A91B09D3FFFFEA000A00040DC0A0E1DF |
:104E000070D82DE904B04CE20040A0E10060A0E3BE |
:104E1000E0309FE50030D3E5060050E10600531175 |
:104E20000600A00170A81B0922FFFFEB0008A0E10B |
:104E30004068A0E1000050E32B00000A0400A0E15C |
:104E40000010A0E30220A0E35DFFFFEB040094E567 |
:104E5000DCFDFFEB0008A0E1A007A0E194309FE596 |
:104E6000083093E5A02483E00150C0E3855BA0E116 |
:104E7000A55BA0E1203294E5020053E10500000AA1 |
:104E8000202284E51F1084E20200A0E15A0700EB13 |
:104E9000000050E30A00001A052084E00638A0E173 |
:104EA0002318A0E11F10E2E5233CA0E10130C2E598 |
:104EB0001F1084E2200294E5E90600EB000050E3B5 |
:104EC0000200000AD1FDFFEB0000A0E370A81BE97F |
:104ED0000608A0E12008A0E1A7FDFFEB040084E59F |
:104EE0000030A0E30830C4E5BA30C4E10638A0E1E0 |
:104EF0002308A0E170A81BE9000A00040DC0A0E18E |
:104F0000F0DF2DE904B04CE210D04DE20090A0E1BA |
:104F10000370A0E1FF1001E22C100BE5FF2002E27C |
:104F200030200BE50010A0E338100BE50140A0E1B4 |
:104F3000C0329FE50030D3E5010057E10100531175 |
:104F40002C00000A010050E12A00000A0030A0E312 |
:104F5000003087E5183097E5000053E30600001A9B |
:104F600090329FE5B420D3E14222A0E134200BE54A |
:104F70000C3093E5003087E5140000EA74129FE5D9 |
:104F80000C3091E5182097E5020053E10500008AF6 |
:104F9000103091E5030052E1B430D1314332A031F9 |
:104FA00034300B350900003A48229FE5103092E575 |
:104FB000181097E5010053E10E00008A143092E5C5 |
:104FC000030051E10B00008A0120D2E534200BE5FB |
:104FD000003097E5000053E31B00001A180097E526 |
:104FE000200287E51F1087E2030700EB000050E373 |
:104FF0000200000A85FDFFEB0400A0E1F0AF1BE911 |
:105000001F5087E2BC31D7E18332D5E7000053E37C |
:10501000F8FFFF0AE50053E3F6FFFF0ABC31D7E1D2 |
:10502000833285E00B30D3E5100013E3F1FFFF0A74 |
:10503000BC31D7E1833285E01A00D3E51B30D3E5DC |
:10504000030480E14CFDFFEB000087E5003097E5AD |
:10505000043087E50030A0E30830C7E5BA30C7E187 |
:1050600000A0A0E3043097E503808AE0208287E572 |
:105070000800A0E11F1087E2DF0600EB000050E30C |
:10508000DBFFFF1A1F5087E20060A0E30638A0E1B3 |
:105090000300A0E12338A0E18322D5E7000052E31A |
:1050A0003300000AE50052E33100000A8322A0E148 |
:1050B000053082E00B30D3E530101BE5033001E012 |
:1050C0002C101BE5010053E12900001A0010A0E399 |
:1050D000D52092E1D13099E1030052E10900001A94 |
:1050E000A005A0E1013081E2FF1003E20A0051E3D4 |
:1050F0000400008A013080E0D52093E1D13099E1AD |
:10510000030052E1F6FFFF0A090051E31800009A7C |
:105110000648A0E1A44585E00B30D4E51E30C7E584 |
:105120001A00D4E51B30D4E5030480E112FDFFEB47 |
:10513000000087E5040087E50030A0E30830C7E5FC |
:10514000BA30C7E1188087E5BC61C7E11C30D4E5FF |
:105150001D20D4E5023483E11E20D4E5023883E12A |
:105160001F20D4E5023C83E1103087E50140A0E335 |
:105170001060A0E3013086E20338A0E14368A0E1BB |
:105180000F0853E3C0FFFF9A01A08AE2013024E236 |
:1051900034201BE502005AE10030A0230130033225 |
:1051A000000053E3AEFFFF1A000054E30900001AA9 |
:1051B00040309FE5102093E5043097E5030052E16D |
:1051C0000400008A0700A0E100FEFFEB0008A0E158 |
:1051D0004008A0E138000BE538301BE50338B0E1AA |
:1051E0000030A0030130A0130430D3E10400A0017B |
:1051F000F0AF1B0999FFFFEA000A00040DC0A0E10F |
:10520000F0DF2DE904B04CE228D04DE200A0A0E18F |
:105210000260A0E1FF9001E20080A0E33C800BE58A |
:1052200040800BE544800BE524349FE50030D3E556 |
:10523000080052E1080053112D00000A080050E157 |
:105240002B00000A0030A0E3003082E5181092E540 |
:10525000030051E10700001AF4339FE5B420D3E1C5 |
:105260004222A0E130200BE53C100BE50C3093E529 |
:10527000003086E5140000EAD4139FE50C3091E578 |
:10528000182092E5020053E10500008A103091E5F4 |
:10529000030052E1B430D1314332A03130300B350C |
:1052A0000900003AA8239FE5103092E5181096E512 |
:1052B000010053E10E00008A143092E5030051E131 |
:1052C0000B00008A0120D2E530200BE5003096E586 |
:1052D000000053E31F00001A180096E5200286E53F |
:1052E0001F1086E2440600EB000050E30200000AB3 |
:1052F000C6FCFFEB44001BE5F0AF1BE91F5086E244 |
:10530000BC31D6E18332D5E7000053E3F8FFFF0A52 |
:10531000E50053E3F6FFFF0ABC31D6E1833285E0B6 |
:105320000B30D3E5100013E3F1FFFF0ABC31D6E1E7 |
:10533000833285E01A00D3E51B30D3E5030480E116 |
:105340000008A0E14018A0E13C100BE52008A0E116 |
:1053500089FCFFEB000086E50600A0E1D5FDFFEB30 |
:105360000008A0E14028A0E138200BE5000050E350 |
:10537000B500000A003096E5043086E50030A0E371 |
:105380000830C6E50030A0E32C300BE5043096E58C |
:105390002C101BE5033081E034300BE5203286E52C |
:1053A0000300A0E11F1086E2130600EB000050E3AB |
:1053B000CEFFFF1A1F5086E20080A0E338201BE5D5 |
:1053C0000238A0E12318A0E148100BE5FF2001E21C |
:1053D0004C200BE50870A0E1233CA0E150300BE528 |
:1053E0000838A0E1A335D5E7000053E30100000A27 |
:1053F000E50053E37000001A0010A0E30838A0E1B4 |
:10540000A305A0E1013080E00120DAE70520C3E731 |
:10541000013081E2FF1003E20A0051E3F8FFFF9A36 |
:105420000848A0E1A44585E00B90C4E54C301BE59D |
:105430001A30C4E550101BE51B10C4E514029FE5AB |
:10544000BEFBFFEB1600C4E52034A0E11730C4E535 |
:105450002038A0E11830C4E5200CA0E11900C4E513 |
:105460001C70C4E51D70C4E51E70C4E51F70C4E562 |
:10547000200296E51F1086E2790500EB000050E35C |
:105480009AFFFF1A48001BE53BFCFFEB000086E596 |
:10549000040086E50870C6E5BA70C6E11E90C6E550 |
:1054A000107086E534201BE5182086E5BC81C6E136 |
:1054B000100019E33D00000A0600A0E118FDFFEB13 |
:1054C000000096E5200286E51F1086E2CA0500EB83 |
:1054D000000050E385FFFF1A1F5086E22E30A0E344 |
:1054E0001F30C6E50110A0E32020A0E30120C5E79E |
:1054F000013081E2FF1003E20A0051E3FAFFFF9A54 |
:105500001030A0E30B30C5E54C301BE51A30C5E583 |
:1055100050101BE51B10C5E51670C5E51770C5E5F5 |
:105520001870C5E51970C5E51C70C5E51D70C5E5A9 |
:105530001E70C5E51F70C5E52E30A0E32030C5E51F |
:105540002130C5E50210A0E32020A0E3013085E072 |
:105550002020C3E5013081E2FF1003E20A0051E39D |
:10556000F9FFFF9A1030A0E32B30C5E53C201BE586 |
:105570003A20C5E52234A0E13B30C5E53670C5E5EB |
:105580003770C5E53870C5E53970C5E53C70C5E5CF |
:105590003D70C5E53E70C5E53F70C5E5200296E566 |
:1055A0001F1086E22E0500EB000050E34FFFFF1AAC |
:1055B0000130A0E344300BE51080A0E3013088E225 |
:1055C0000338A0E14388A0E10F0853E383FFFF9A6B |
:1055D0002C101BE5011081E22C100BE544201BE58B |
:1055E000013022E230201BE5020051E10030A0230F |
:1055F00001300332000053E363FFFF1A44301BE520 |
:10560000000053E30900001A44309FE5102093E5A1 |
:10561000043096E5030052E10400008A0600A0E190 |
:10562000EAFCFFEB0008A0E14008A0E140000BE528 |
:1056300040101BE50118B0E10030A0030130A013B9 |
:1056400044201BE50220D3E14DFFFF1A44001BE577 |
:10565000F0AF1BE9000A0004800800040DC0A0E1BF |
:10566000F0D92DE904B04CE20CD04DE20350A0E19A |
:10567000FF8001E2FF7002E20060A0E3060053E158 |
:10568000060050110300000AB4309FE50030D3E556 |
:10569000060053E10100001A0000A0E3F0A91BE995 |
:1056A0000030A0E3183085E5BC31C5E1D020D0E161 |
:1056B000013026E2000052E30030A0030130031263 |
:1056C000000053E31C00000A2C104BE26EFBFFEBC2 |
:1056D0000040A0E1000050E30A00000AD030D0E111 |
:1056E000000053E30810A0010720A0011010A01330 |
:1056F0001820A0132C004BE20530A0E1FEFDFFEBCB |
:10570000FF0010E30100001A0600A0E1F0A91BE968 |
:10571000D030D4E1000053E30160A0030400A0E115 |
:10572000D020D4E1013026E2000052E30030A00393 |
:1057300001300312000053E3E2FFFF1A0600A0E16C |
:10574000F0A91BE9000A00040DC0A0E1F0D92DE981 |
:1057500004B04CE20CD04DE20260A0E1FF8001E217 |
:105760000070A0E3070052E1070050110300000A97 |
:10577000DC309FE50030D3E5070053E10100001A5B |
:105780000000A0E3F0A91BE90030A0E3183082E597 |
:10579000BC31C2E1D020D0E1013027E2000052E369 |
:1057A0000030A00301300312000053E32600000A7A |
:1057B0002C104BE234FBFFEB0040A0E1000050E373 |
:1057C0001700000AD010D0E1000051E30150A00101 |
:1057D0001050A0131820A0E32C004BE20510A0E10C |
:1057E0000630A0E1C4FDFFEBFF0010E30E00001A3D |
:1057F000D030D4E1000053E30850A0012C004BE26C |
:105800000510A0E10620A0E17BFEFFEBFF0010E306 |
:105810000300000AD030D4E1000053E30170A0037C |
:10582000010000EA0700A0E1F0A91BE90400A0E1E3 |
:10583000D020D4E1013027E2000052E30030A00381 |
:1058400001300312000053E3D8FFFF1A0700A0E164 |
:10585000F0A91BE9000A00040DC0A0E170D82DE9F1 |
:1058600004B04CE20050A0E1FF6001E20040A0E380 |
:1058700080319FE50030D3E5040050E1040053116E |
:105880004600000ACAFAFFEB0040A0E1000050E326 |
:1058900070A81B090010A0E3001080E5041080E54B |
:1058A0000810C0E5BA10C0E10C60C0E5101080E53A |
:1058B000141080E5201280E5181080E5BC11C0E1CD |
:1058C0001E10C4E50500A0E11820A0E30430A0E10B |
:1058D00061FFFFEBFF0010E33200000A063CA0E18D |
:1058E000431CA0E1720051E32400000A020000CA38 |
:1058F000610051E30300000A250000EA770051E34C |
:105900000700000A220000EA1E30D4E5010013E37C |
:105910000400A0010010A0030220A0031A00000A46 |
:105920001B0000EA1E30D4E5010013E31800001A42 |
:10593000000094E523FBFFEB0008A0E12008A0E1B4 |
:10594000EBFCFFEB0400A0E15AFCFFEB0008A0E138 |
:105950002008A0E108FBFFEB000084E5040084E5DB |
:105960000020A0E30820C4E5BA20C4E1102084E5AB |
:10597000142084E50400A0E10210A0E1020000EA86 |
:105980000400A0E10010A0E30120A0E18CFCFFEBEB |
:10599000020000EA0400A0E1590000EB0040A0E38F |
:1059A0000400A0E170A81BE9063CA0E1431CA0E1B3 |
:1059B000720051E30A00000A010000CA610051E3CD |
:1059C000000000EA770051E30500001A0500A0E19D |
:1059D0002010A0E30420A0E15AFFFFEBFF5010E2EB |
:1059E0000200001A0400A0E1450000EB0040A0E323 |
:1059F0000400A0E170A81BE9000A00040DC0A0E1AA |
:105A000070D82DE904B04CE20060A0E1000050E342 |
:105A10001400000AE0309FE50030D3E5000053E3B6 |
:105A20001000000A0C30D0E5720053E30D00000AAC |
:105A3000010000CA610053E3000000EA770053E36D |
:105A40000800001ABA30D6E1000053E30700000A4C |
:105A50001F1086E2200296E5010400EB000050E3EF |
:105A60000200000AE9FAFFEB0000E0E370A81BE97E |
:105A7000180096E5200286E51F1086E25E0400EB22 |
:105A8000000050E3F6FFFF1A1F5086E2BC21D6E16A |
:105A90001030D6E5822285E01C30C2E51130D6E513 |
:105AA0001D30C2E51230D6E51E30C2E51330D6E512 |
:105AB0001F30C2E5BC41D6E140009FE51FFAFFEB75 |
:105AC000844285E01600C4E52034A0E11730C4E527 |
:105AD0002038A0E11830C4E5200CA0E11900C4E58D |
:105AE000200296E50510A0E1DD0300EB000050E385 |
:105AF0000000A00370A81B09D9FFFFEA000A0004F8 |
:105B0000800800040DC0A0E130D82DE904B04CE2BB |
:105B10000040A0E10050E0E3000050E30500A001D8 |
:105B200030A81B09B4FFFFEB0008A0E14058A0E13A |
:105B30000400A0E132FAFFEB0500A0E130A81BE968 |
:105B40000DC0A0E170D82DE904B04CE20040A0E106 |
:105B50000050E0E3E4309FE50030D3E5000050E37F |
:105B6000000053131200000A102090E5000052E3D9 |
:105B70003000000A143090E5013083E2020053E166 |
:105B80002C00002A040090E50830D4E5030080E0F2 |
:105B9000203294E5000053E10700000A200284E56A |
:105BA0001F1084E2140400EB000050E30200000A1E |
:105BB00096FAFFEB0500A0E170A81BE9BA20D4E13A |
:105BC000043082E01F50D3E5143094E5013083E2C5 |
:105BD000143084E5012082E2BA20C4E1BA30D4E175 |
:105BE000020C53E31300003A0030A0E30360A0E18D |
:105BF000BA30C4E10830D4E5013083E20830C4E5AE |
:105C00000820D4E534309FE50130D3E5030052E1AC |
:105C10000800003A0400A0E16CFBFFEB0008B0E1D3 |
:105C20000860C4150830D405013043020830C405AB |
:105C3000023CA003BA30C4010500A0E170A81BE932 |
:105C4000000A00040DC0A0E130D82DE904B04CE2F8 |
:105C50000140A0E1FF5000E238319FE50030D3E57C |
:105C6000000051E3000053131600000A142091E5D0 |
:105C7000103091E5030052E10600003ABA30D1E15C |
:105C8000020C53E30300003A0100A0E15AFCFFEBD1 |
:105C90000008B0E10B00000A040094E50830D4E5E8 |
:105CA000030080E0203294E5000053E10700000A81 |
:105CB000200284E51F1084E2CF0300EB000050E3D4 |
:105CC0000200000A51FAFFEB0000E0E330A81BE9F4 |
:105CD000BA30D4E1043083E01F50C3E5102084E2E1 |
:105CE0000C0092E8030052E101308202103084057A |
:105CF000143094E5013083E2143084E5BA30D4E105 |
:105D0000013083E2BA30C4E1BA30D4E1020C53E38B |
:105D10001E00003A1F1084E2200294E5500300EBBD |
:105D2000000050E3E6FFFF1A0030A0E3BA30C4E100 |
:105D30000830D4E5013083E20830C4E50820D4E51A |
:105D400050309FE50130D3E5030052E10F00003AE7 |
:105D50000400A0E11DFBFFEB0008B0E10030A01340 |
:105D60000830C4150900001A0400A0E122FCFFEB72 |
:105D70000008B0E10500001A0830D4E5013043E224 |
:105D80000830C4E5023CA0E3BA30C4E1CDFFFFEA2D |
:105D90000000A0E330A81BE9000A00040DC0A0E148 |
:105DA000F0DD2DE904B04CE20140A0E102A0A0E149 |
:105DB0000370A0E10080A0E30160A0E3A0309FE5B4 |
:105DC0000030D3E5080057E1080053110100000A34 |
:105DD000080050E10100001A0000A0E3F0AD1BE94B |
:105DE0000050A0E1020058E10030A023013006324B |
:105DF000000053E31800000A000054E30030A00341 |
:105E000001300612000053E30C00000A0700A0E175 |
:105E10004AFFFFEB0008A0E14008A0E1010070E3A9 |
:105E20000100C514014044120060A003000054E3C7 |
:105E30000030A00301300612000053E3F2FFFF1A06 |
:105E4000000056E3018088120A0058E10030A023C8 |
:105E500001300632000053E3E6FFFF1A0800A0E11C |
:105E6000F0AD1BE9000A00040DC0A0E1F0DD2DE952 |
:105E700004B04CE20150A0E102A0A0E10370A0E157 |
:105E80000080A0E30160A0E3A0309FE50030D3E5EF |
:105E9000080057E1080053110100000A080050E112 |
:105EA0000100001A0000A0E3F0AD1BE90040A0E1F2 |
:105EB000020058E10030A02301300632000053E315 |
:105EC0001800000A000055E30030A003013006125C |
:105ED000000053E30C00000AD000D4E10710A0E159 |
:105EE00057FFFFEB0008A0E1010870E301408412B6 |
:105EF000015045120060A003000055E30030A003EC |
:105F000001300612000053E3F2FFFF1A000056E3CF |
:105F1000018088120A0058E10030A02301300632C7 |
:105F2000000053E3E6FFFF1A0800A0E1F0AD1BE913 |
:105F3000000A00040DC0A0E170D82DE904B04CE2C5 |
:105F40000040A0E10160A0E10020A0E30250A0E138 |
:105F500060309FE50030D3E5020051E102005311AB |
:105F60000100000A020050E10100001A0000A0E355 |
:105F700070A81BE9D23090E10300A0E1000053E3D8 |
:105F8000010072130900000A0610A0E12CFFFFEBCC |
:105F90000008A0E14028A0E1013085E2FF5003E2C3 |
:105FA000D50094E1000050E301007213F5FFFF1AE1 |
:105FB0000200A0E170A81BE9000A00040DC0A0E1E6 |
:105FC000F0D82DE904B04CE20070A0E10260A0E13D |
:105FD0000000A0E36C309FE50030D3E5000052E103 |
:105FE000000053110300000A000057E10040A01117 |
:105FF0000750A0110F00001A0000A0E3F0A81BE951 |
:106000000600A0E1CDFEFFEB0008A0E14008A0E102 |
:10601000010070E30100000A0A0050E30100001AC9 |
:106020000000A0E30140A0E30100C5E4013044E228 |
:106030000338A0E14348A0E1010054E30700A0D1E8 |
:10604000F0A81BD9EDFFFFEA000A00040DC0A0E193 |
:1060500070D82DE904B04CE20040A0E10060A0E35C |
:10606000D3F8FFEB0050A0E10400A0E10610A0E18E |
:106070001820A0E30530A0E177FDFFEBFF6000E210 |
:106080000500A0E1DEF8FFEB0600A0E170A81BE927 |
:106090000030A0E1140090E5010080E2103093E5AB |
:1060A000030050E10000A0330100A0230EF0A0E1A6 |
:1060B00030402DE90050A0E10140A0E10000A0E344 |
:1060C0000010A0E1040050E11100002A01C0D5E752 |
:1060D00000E0A0E38030A0E1FF0003E280200CE2BA |
:1060E000803003E2030052E1090020128C30A0E16D |
:1060F000FFC003E201308EE2FFE003E207005EE34F |
:10610000F3FFFF9A013081E2FF1003E2040051E146 |
:10611000EDFFFF3A8030A0E1013083E3FF0003E2AE |
:106120003080BDE80DC0A0E130D82DE904B04CE2CC |
:106130000040A0E11F0400EB470300EB0400A0E1D6 |
:106140001FF0FFEB0050A0E1020400EBFF4000E273 |
:106150000500A0E120F0FFEBFF0010E30100001AB2 |
:10616000FF0054E3F7FFFF1A0400A0E130A81BE989 |
:106170000DC0A0E170D82DE904B04CE208D04DE28A |
:106180000150A0E1FF4000E20060A0E3090400EB41 |
:10619000310300EB7D0FA0E3E1FFFFEB050400EB13 |
:1061A000EC0300EB404084E320404BE5253CA0E1BC |
:1061B0001F304BE52538A0E11E304BE52534A0E12A |
:1061C0001D304BE51C504BE520004BE20510A0E3D1 |
:1061D000B6FFFFEB1B004BE50640A0E10438A0E151 |
:1061E00018204BE2233882E0080053E5040400EB5A |
:1061F000013084E20338A0E14348A0E1050853E3FD |
:10620000F5FFFF9AEB0300EBD20300EBFF0000E287 |
:106210000620A0E1013086E20338A0E14368A0E156 |
:106220000228A0E17D0752E370A81B89FF0050E31C |
:1062300070A81B19F3FFFFEA0DC0A0E130D82DE9CB |
:1062400004B04CE20150A0E1FF4000E23700A0E3BF |
:106250000010A0E3C5FFFFEBFF0000E2800010E3A9 |
:1062600030A81B190400A0E10510A0E1BFFFFFEB5F |
:10627000FF0000E230A81BE90DC0A0E1F0D82DE935 |
:1062800004B04CE20270A0E10360A0E1FF0000E274 |
:10629000B6FFFFEBFF4010E20450A0131500001AF8 |
:1062A000C40300EBAB0300EBFF4000E2F00010E39F |
:1062B0000A50A0030F00000AFE0054E3F8FFFF1A83 |
:1062C0000050A0E3060055E10700002AA10300EBFF |
:1062D0000538A0E12308C7E7013085E20338A0E1D3 |
:1062E0004358A0E1230856E1F7FFFF8A990300EB2A |
:1062F000980300EB0050A0E3000055E30600000AFD |
:106300001C009FE51C109FE50520A0E10430A0E1E2 |
:10631000774100EB08009FE57F0D00EB0500A0E151 |
:10632000F0A81BE9C8120004F0B401000DC0A0E100 |
:10633000F0D82DE904B04CE23CD04DE20070A0E171 |
:1063400050504BE20040A0E10120D4E40500A0E160 |
:1063500008119FE5664100EB0500A0E16E0D00EB22 |
:1063600058604BE20600A0E10410A0E10220A0E387 |
:10637000744100EB0040A0E356404BE50500A0E16E |
:10638000DC109FE50620A0E1594100EB0500A0E1EB |
:10639000610D00EB031087E20600A0E10520A0E3F9 |
:1063A000684100EB53404BE50500A0E1B4109FE5C8 |
:1063B0000620A0E14E4100EB0500A0E1560D00EBE8 |
:1063C0000830D7E52322A0E10F3003E20500A0E169 |
:1063D00094109FE5464100EB0500A0E14E0D00EB57 |
:1063E00088009FE54C0D00EB0450A0E150404BE2CB |
:1063F0000538A0E1233887E00920D3E50400A0E1B7 |
:106400006C109FE53A4100EB0400A0E1420D00EB67 |
:10641000013085E20338A0E14358A0E1030853E3CB |
:10642000F2FFFF9A4C009FE53B0D00EB0E50D7E5C5 |
:106430000D30D7E50332A0E1253283E150404BE235 |
:106440000F2005E27D3E83E20400A0E128109FE5D5 |
:10645000274100EB0400A0E12F0D00EBF0A81BE9A1 |
:1064600024B5010040B5010058B501006CB501002C |
:1064700084B5010094B501009CB701009CB50100F2 |
:106480000DC0A0E100D82DE904B04CE20020A0E14D |
:106490000A00A0E30010A0E31030A0E375FFFFEBBB |
:1064A00000A81BE90DC0A0E100D82DE904B04CE222 |
:1064B0000020A0E10900A0E30010A0E31030A0E359 |
:1064C0006CFFFFEB00A81BE90DC0A0E170D82DE91F |
:1064D00004B04CE23CD04DE20050A0E31603A0E330 |
:1064E0000B0A80E20810A0E3BF1A00EBFF0010E3E4 |
:1064F0001A01001A88049FE5070D00EB680200EB03 |
:1065000080049FE5040D00EB7C049FE5020D00EB89 |
:1065100078349FE50050C3E5580200EB250300EBFB |
:10652000FF00A0E3360300EB015085E20E0055E3C7 |
:10653000FAFFFF9A030000EA0530A0E1015085E26E |
:10654000140053E3DD00008A0000A0E30010A0E186 |
:1065500006FFFFEBFF0000E2010050E3F5FFFF1A2A |
:106560000800A0E36A1FA0E3021081E2FFFEFFEB38 |
:1065700054004BE5D4355BE1000053E34C404BB293 |
:1065800054205BB50400A0B104149FB5D30000BA39 |
:1065900054305BE5040013E30B00000AEC339FE585 |
:1065A0000120D3E50010A0E3012081E30120C3E531 |
:1065B0000220D3E50210C3E50320D3E50310C3E5B1 |
:1065C0000420D3E50410C3E51B0000EABC339FE5BB |
:1065D0000120D3E50010A0E3022081E30120C3E500 |
:1065E0000220D3E50210C3E50320D3E50310C3E581 |
:1065F0000420D3E50410C3E50150A0E318304BE2BA |
:10660000054083E0D30200EB3C0044E5015085E205 |
:10661000040055E3F8FFFF9A50305BE5AA0053E30E |
:1066200070039F15AF00001A51305BE50F3003E295 |
:10663000010053E360039F151E00001A3A00A0E317 |
:106640000010A0E3C9FEFFEB54004BE5D4355BE13D |
:10665000000053E34C404BB254205BB50400A0B1A2 |
:1066600038139FB59D0000BA54305BE5040013E376 |
:106670000150A0030300000A24039FE5A60C00EBD1 |
:106680000660A0E3B30000EA18304BE2054083E067 |
:10669000B00200EB3C0044E5015085E2040055E304 |
:1066A000F8FFFF9A52305BE5303003E2300053E3ED |
:1066B0000300000AEC029FE5970C00EB0560A0E3E5 |
:1066C000A40000EA7D0EA0E3BDEEFFEB0050A0E1C8 |
:1066D0002900A0E30010A0E3D6FEFFEB54004BE539 |
:1066E000D4355BE1000053E3780000BA0500A0E177 |
:1066F000B9EEFFEBFF0010E37D00001A54305BE5BC |
:10670000010013E3F1FFFF1A000053E398029F1505 |
:106710007800001A1000A0E3021CA0E393FEFFEB38 |
:10672000FF0010E30300000A80029FE57A0C00EBF3 |
:106730000B60A0E3870000EA74029FE54FFFFFEBC8 |
:106740000060A0E1000050E368029F150500001AF8 |
:1067500064029FE552FFFFEB0060A0E1000050E300 |
:106760000200000A54029FE56B0C00EB790000EA7E |
:106770004C029FE5680C00EB10329FE51930D3E521 |
:106780002333B0E10200000A010053E31A00000ABB |
:10679000310000EAF4119FE51E00D1E50F0000E290 |
:1067A0001FC0D1E503C00CE22030D1E50331A0E1E8 |
:1067B0000CC583E12130D1E523C38CE12220D1E552 |
:1067C000032002E22330D1E5A333A0E1823083E14C |
:1067D00001208CE2023083E21223A0E11220A0E12A |
:1067E000FF3002E20500D1E50530C1E52234A0E129 |
:1067F000FF3003E20600D1E50E0000EA8C119FE5B0 |
:1068000020C0D1E53FC00CE22130D1E50334A0E146 |
:106810000CC883E12230D1E503C08CE18C29A0E1D2 |
:10682000022782E2FF3002E20500D1E50530C1E532 |
:106830000630D1E50030A0E30630C1E52238A0E102 |
:10684000FF3003E20700D1E50730C1E5222CA0E1CB |
:106850000830D1E50820C1E5090000EA2C319FE5A8 |
:106860000520D3E50020A0E30520C3E50610D3E50D |
:106870000620C3E50710D3E50720C3E50810D3E5DC |
:106880000820C3E504119FE50130D1E50220D1E5E0 |
:10689000023483E10320D1E5023883E10420D1E50D |
:1068A000023C83E1010053E30200000A020053E3CB |
:1068B0001300000A140000EA08019FE5110000EA35 |
:1068C00004019FE5140C00EB0260A0E3210000EA44 |
:1068D0004C404BE254205BE50400A0E1EC109FE546 |
:1068E000034000EB0400A0E10B0C00EB0460A0E30C |
:1068F000180000EAD8009FE5070C00EB0360A0E356 |
:10690000140000EACC009FE5030C00EB7C409FE5FF |
:106910000520D4E50630D4E5032482E10730D4E530 |
:10692000032882E10830D4E5032C82E14C504BE28D |
:10693000222AA0E10500A0E19C109FE5EC3F00EBBE |
:106940000500A0E1F40B00EB090084E276FEFFEB0A |
:106950000130A0E30030C4E5480100EB060000EA86 |
:10696000BF0100EB0020A0E320309FE50020C3E53D |
:106970000160A0E364009FE5E70B00EB0600A0E1E7 |
:1069800070A81BE9B8B5010060B30100C8B50100EB |
:1069900098100004D8B50100ECB501000CB6010058 |
:1069A0002CB6010040B6010050B6010070B60100DF |
:1069B0007CB60100A1100004A0B60100B1100004D3 |
:1069C000B8B60100CCB60100D4B60100E4B60100AF |
:1069D000F4B6010008B7010018B7010030B7010094 |
:1069E00048B701000DC0A0E110D82DE904B04CE279 |
:1069F00060009FE5C80B00EB990100EB58309FE564 |
:106A00000040A0E30040C3E50520D3E50540C3E511 |
:106A10000620D3E50640C3E50720D3E50740C3E5DC |
:106A20000820D3E50840C3E50120D3E50140C3E5D4 |
:106A30000220D3E50240C3E50320D3E50340C3E5CC |
:106A40000420D3E50440C3E510009FE5B20B00EB42 |
:106A50000400A0E110A81BE95CB701009810000435 |
:106A600060B301000DC0A0E1F0D92DE904B04CE203 |
:106A70000170A0E10060A0E38034A0E11800A0E371 |
:106A80000310A0E1B9FDFFEBFF4010E20450A0139A |
:106A90004C00001AC70100EB0040A0E3AD0100EB81 |
:106AA000013084E20338A0E14348A0E1130853E336 |
:106AB000F9FFFF9A0700A0E1021CA0E3190400EB14 |
:106AC0000008A0E14088A0E1FE00A0E3CC0100EBBB |
:106AD0000040A0E37F57A0E3035885E20438A0E11B |
:106AE0002308D7E7C60100EB013084E20338A0E1B8 |
:106AF0004348A0E1050053E1F7FFFF9A0808A0E131 |
:106B0000200CA0E1BE0100EBFF0008E2BC0100EB9D |
:106B1000A80100EB8F0100EBFF4000E20620A0E19E |
:106B2000013086E20338A0E14368A0E10228A0E139 |
:106B30007D0752E31C00008A113004E2010053E398 |
:106B4000F3FFFF1A1F3004E20B0053E30850A003C9 |
:106B50001C00000A020000CA050053E30500000AF9 |
:106B6000020000EA1D0053E30950A0031500000ACB |
:106B70000C50A0E3130000EA0050A0E37D0EA0E358 |
:106B800067FDFFEBFF4000E2FF0054E30600001A40 |
:106B90000D00A0E30010A0E374FDFFEBFF4010E246 |
:106BA0000450A0130600001A010000EA0750A0E3F9 |
:106BB000040000EA670100EBFF4010E20100000A58 |
:106BC0000950A0E3630100EB000055E30600000A52 |
:106BD0001C009FE51C109FE50520A0E10430A0E10A |
:106BE000433F00EB08009FE54B0B00EB0500A0E1E5 |
:106BF000F0A91BE9C812000470B701000DC0A0E1A4 |
:106C000000D82DE904B04CE20120A0E18034A0E1DD |
:106C10001100A0E30310A0E1023CA0E395FDFFEB0F |
:106C200000A81BE90010A0E328009FE5813081E067 |
:106C3000033181E0033181E0003083E03220D3E58D |
:106C40003120C3E5013081E2FF1003E2020051E38D |
:106C50000EF0A081F4FFFFEA6C0000040DC0A0E17B |
:106C6000F0D92DE904B04CE214D04DE20040A0E18F |
:106C70000180A0E134E04BE2E8C09FE50F00BCE8F2 |
:106C80000F00AEE8B0C0DCE1B0C0CEE10400A0E18E |
:106C9000343F00EBFF5000E2100055E31050A023FA |
:106CA00034004BE20410A0E10520A0E1253F00EBF9 |
:106CB0000050A0E334604BE2AC709FE5853085E086 |
:106CC000033185E0033185E0074083E00600A0E161 |
:106CD0000410A0E11020A0E32B3F00EB000050E3E4 |
:106CE0001B00001A0800A0E1583F00EB3100C4E58A |
:106CF0003120D4E53330D4E5030052E10200003AFC |
:106D00003430D4E5030052E10500009A853085E077 |
:106D1000033185E0033185E0073083E03220D3E59D |
:106D20003120C3E5853085E0033185E0033185E01E |
:106D3000073083E03130D3E530009FE530109FE528 |
:106D400034204BE2EA3E00EB20009FE5F20A00EB24 |
:106D5000F0A91BE9013085E2FF5003E2020055E390 |
:106D6000F0A91B89D4FFFFEA049401006C00000421 |
:106D7000C8120004A0B701000DC0A0E1F0D82DE9B1 |
:106D800004B04CE220D04DE2A5FFFFEBB8009FE538 |
:106D9000E10A00EBB4009FE57210A0E3ADFAFFEB4F |
:106DA0000050A0E1000050E30040A0133C704B12E3 |
:106DB0000200001A98009FE5D70A00EBF0A81BE933 |
:106DC0000700A0E11F10A0E30520A0E17AFCFFEB83 |
:106DD0003C305BE5000053E31800000A0A0053E36F |
:106DE0000D0053131100000A200053E30F00000AA6 |
:106DF0003B0053E30D00000A230053E30B00000A9D |
:106E00000700A0E14C109FE5EC3E00EB0060A0E124 |
:106E1000000050E30500000A0000A0E334109FE5E5 |
:106E2000E63E00EB0010A0E10600A0E18AFFFFEBC8 |
:106E3000013084E2FF4003E2090054E3DFFFFF9AE0 |
:106E40000500A0E12EFBFFEBF0A81BE9ACB70100A9 |
:106E5000C8B70100D8B70100F4B701000DC0A0E128 |
:106E600000D82DE904B04CE21603A0E30B0A80E23F |
:106E70001010A0E30020A0E3661800EB00A81BE9B7 |
:106E80000DC0A0E100D82DE904B04CE21603A0E348 |
:106E90000B0A80E21010A0E30120A0E35D1800EBD4 |
:106EA00000A81BE90DC0A0E1F0DD2DE904B04CE223 |
:106EB00020D04DE2020CA0E30110A0E39D1500EBF1 |
:106EC0003C004BE2401800EB0170A0E33C404BE279 |
:106ED0000170C4E51030A0E33C304BE50050A0E366 |
:106EE0000250C4E50350C4E5B470C4E11603A0E346 |
:106EF0000B0A80E20410A0E1E11700EB0400A0E11E |
:106F0000311800EB0170C4E55030A0E33C304BE594 |
:106F10000250C4E50370C4E50230A0E3B430C4E11C |
:106F20001603A0E3090A80E20410A0E1D41700EBE5 |
:106F30000400A0E1241800EB0150C4E52030A0E3D8 |
:106F40003C304BE50250C4E50370C4E50560A0E1A8 |
:106F5000B450C4E11603A0E3090A80E20410A0E1E2 |
:106F6000C71700EB1703A0E3020980E2591D00EBED |
:106F700034804BE20800A0E1B11D00EB3030E0E3CB |
:106F8000B4334BE10430E0E3B2334BE18030E0E373 |
:106F9000BE324BE14030E0E3B0334BE10530A0E3DB |
:106FA00028304BE508A0A0E327A04BE51703A0E39A |
:106FB000020980E20810A0E15D1D00EBAFFFFFEBCE |
:106FC0001703A0E3020980E20710A0E1AC1D00EB6B |
:106FD0000207A0E30710A0E1561500EB0150C4E53D |
:106FE0003CA04BE50250C4E50350C4E5B450C4E1F5 |
:106FF0001603A0E30B0A80E20410A0E1A01700EB47 |
:10700000020AA0E30710A0E14A1500EB0700A0E187 |
:107010002A2000EB020BA0E34F2000EB192000EB2D |
:1070200044301BE5FF30C3E344300BE544004BE242 |
:10703000023BA0E3043080E5FF1F00EB0B00A0E360 |
:10704000781600EB1B00A0E30510A0E10720A0E3E9 |
:10705000E81A00EB1B00A0E30710A0E13A1A00EBCE |
:10706000F0AD1BE90DC0A0E170D82DE904B04CE2F1 |
:1070700008D04DE21703A0E3020980E20010A0E36C |
:107080007F1D00EB1703A0E3020980E2111D00EB56 |
:1070900020404BE20060A0E30160C4E51030A0E3B3 |
:1070A00020304BE50260C4E50360C4E50650A0E172 |
:1070B000B460C4E11603A0E30B0A80E20410A0E16F |
:1070C0006F1700EB0160C4E55030A0E320304BE5C2 |
:1070D0000260C4E50360C4E5B460C4E11603A0E344 |
:1070E000090A80E20410A0E1651700EB0160C4E525 |
:1070F0002030A0E320304BE50260C4E50360C4E526 |
:10710000B460C4E11603A0E3090A80E20410A0E120 |
:107110005B1700EB020CA0E30610A0E1051500EBE5 |
:107120000207A0E30110A0E3021500EB0160C4E533 |
:107130000830A0E320304BE50260C4E50360C4E5FD |
:10714000B460C4E11603A0E30B0A80E20410A0E1DE |
:107150004B1700EB70A81BE90DC0A0E110D82DE97A |
:1071600004B04CE21743A0E3020984E22110A0E33B |
:10717000731D00EB010050E3FAFFFF1A1703A0E3B1 |
:10718000020980E2FF10A0E3601D00EB1743A0E3BB |
:10719000020984E22010A0E3691D00EB010050E326 |
:1071A000FAFFFF1A1703A0E3020980E25B1D00EB60 |
:1071B000FF0000E210A81BE90DC0A0E110D82DE9E6 |
:1071C00004B04CE21743A0E3020984E22010A0E3DC |
:1071D0005B1D00EB010050E31743A0030200000A0F |
:1071E000F8FFFFEA020984E24C1D00EB020984E289 |
:1071F0002210A0E3521D00EB010050E310A81B1960 |
:10720000F7FFFFEA0DC0A0E130D82DE904B04CE251 |
:10721000FF5000E21743A0E3020984E22110A0E33B |
:10722000471D00EB010050E3FAFFFF1A1703A0E32C |
:10723000020980E20510A0E1341D00EB30A81BE933 |
:107240000DC0A0E130D82DE904B04CE258409FE5D4 |
:107250000300A0E3B62100EB0008A0E12008A0E1B4 |
:10726000000084E5B020D4E140009FE5251EA0E3A6 |
:10727000D52800EB34509FE5002094E50030A0E3D2 |
:107280000230C5E70300A0E3632000EB20009FE588 |
:1072900020109FE5002094E50530A0E1943D00EB2F |
:1072A0000C009FE59C0900EB30A81BE924040004B6 |
:1072B000C8100004C8120004F8B701000020A0E3C1 |
:1072C00004309FE5002083E50EF0A0E128040004CF |
:1072D0000DC0A0E100D82DE904B04CE278219FE573 |
:1072E000211DA0E3461281E2003091E5B030C2E1F9 |
:1072F000B030D2E164219FE5B020D2E1023003E05A |
:10730000010B13E30500000AFB3CA0E3FF3083E21E |
:10731000003081E548319FE50FE0A0E104F093E5FE |
:1073200034319FE5B030D3E130219FE5B020D2E188 |
:10733000023003E0020A13E3212DA0134622821239 |
:10734000DF3CA013FF3083120030821508319FE527 |
:10735000B030D3E104219FE5B020D2E1023003E058 |
:10736000010A13E30600000A212DA0E3462282E26F |
:10737000EF3CA0E3FF3083E2003082E50000A0E3B1 |
:107380007C0100EBD0309FE5B030D3E1CC209FE50D |
:10739000B020D2E1023003E0020B13E30C00000A3C |
:1073A000C0309FE5003093E5000053E30100000A80 |
:1073B000510100EB010000EA0200A0E36D0100EBC7 |
:1073C000212DA0E3462282E2F73CA0E3FF3083E2D6 |
:1073D000003082E580309FE5B030D3E17C209FE52E |
:1073E000B020D2E1023003E0020C13E3212DA01300 |
:1073F00046228212FD3CA013FF308312003082151A |
:1074000054309FE5B030D3E150209FE5B020D2E169 |
:10741000023003E0010C13E30600000A212DA0E373 |
:10742000462282E2FE3CA0E3FF3083E2003082E5A8 |
:107430000700A0E34F0100EB1C309FE5B030D3E123 |
:1074400018209FE5B020D2E1023003E0020913E3E7 |
:1074500000A81B09302700EB00A81BE9501100040D |
:1074600030180004900100041C0200040DC0A0E1CB |
:1074700070D82DE904B04CE20050A0E3A8409FE58D |
:10748000003094E51250C3E5F60000EB213DA0E387 |
:10749000463283E2005083E5BF2CA0E38C309FE5A9 |
:1074A000B020C3E10632A0E3213D83E2002083E562 |
:1074B000002094E578309FE50730D3E51130C2E530 |
:1074C000003094E51230D3E5050053E11200001AB4 |
:1074D000015085E20460A0E1924AA0E37B4E84E281 |
:1074E0000F4084E20B2700EB003096E51230D3E525 |
:1074F000000053E30300001A0530A0E1015085E2CB |
:10750000040053E1F6FFFF9A1C309FE5003093E53D |
:107510001230D3E5000053E370A81B090520A0E357 |
:1075200010309FE50020C3E570A81BE92018000477 |
:10753000301800042A940100300400040DC0A0E1BA |
:1075400010D82DE904B04CE210219FE5003092E5FF |
:107550000040A0E31240C3E5003092E51340C3E5CC |
:107560000400A0E12A1F00EB0400A0E1021CA0E33C |
:10757000421F00EB0400A0E11010A0E3501F00EB3D |
:107580000400A0E1461FA0E36C2000EB0400A0E192 |
:10759000561FA0E3532000EB0400A0E1BE1F00EB48 |
:1075A000BC309FE52C10D3E50400A0E1A12000EB46 |
:1075B0000400A0E1981F00EB0100A0E30410A0E18B |
:1075C0002E1F00EB0100A0E3021CA0E3452000EB0E |
:1075D0000100A0E32010A0E3391F00EB0100A0E3AD |
:1075E0000410A0E14A1F00EB0200A0E3061CA0E388 |
:1075F000221F00EB0200A0E3091DA0E3392000EBED |
:107600000200A0E30410A0E1411F00EB0200A0E390 |
:107610002010A0E32A1F00EB0300A0E30410A0E168 |
:10762000161F00EB0300A0E3251EA0E3432000EBA0 |
:107630000300A0E34010A0E37E2000EB0300A0E3E2 |
:10764000031AA0E3321F00EB0300A0E30410A0E143 |
:107650001B1F00EB0400A0E1942600EB10A81BE91F |
:10766000201800049001000410209FE5003092E5EE |
:10767000200053E30030A003003082050EF0A0E1AB |
:107680002C0400040EF0A0E10DC0A0E110D82DE9FB |
:1076900004B04CE2FF0000E20010A0E3210050E340 |
:1076A0000600001A7C309FE5003093E50030D3E5FA |
:1076B0007F3003E2210053E36C109F050B0000EACA |
:1076C000200050E30900001A58309FE5003093E590 |
:1076D0000030D3E57F3003E250209FE5210053E3E3 |
:1076E0000210A0012020A0E344309FE5002083E5A4 |
:1076F000000051E30200A00310A81B0924209FE50D |
:10770000003092E5201083E5003092E50040A0E3D0 |
:10771000BA41C3E10400A0E10FE0A0E101F0A0E163 |
:107720000400A0E110A81BE920180004187800004C |
:10773000407800002C040004FF0000E230309FE598 |
:10774000003093E50030D3E57F3003E2210053E3BE |
:107750000500001A020050E30100000A220050E375 |
:107760000100001A0000A0E30EF0A0E10200A0E377 |
:107770000EF0A0E1201800040DC0A0E100D82DE912 |
:1077800004B04CE20008A0E12008A0E104109FE54D |
:10779000D42300EB00A81BE9E40100040DC0A0E124 |
:1077A00000D82DE904B04CE20008A0E12008A0E1D7 |
:1077B00004109FE5CB2300EB00A81BE9EC010004BB |
:1077C0000DC0A0E100D82DE904B04CE21C309FE5CB |
:1077D000003093E50530D3E50008A0E12008A0E1E2 |
:1077E0000C109FE5831181E0BE2300EB00A81BE98C |
:1077F00020180004F4010004FF0000E2FF0011E380 |
:107800000200A0130EF0A011010050E30200A083BB |
:107810000000A0930EF0A0E10008A0E12008B0E174 |
:1078200010309F05003093050820A003B821C30144 |
:1078300004009F150EF0A0E120180004840100044C |
:107840000008A0E12008B0E110309F05003093054A |
:107850000820A003B821C30104009F150EF0A0E189 |
:1078600020180004840100040DC0A0E100D82DE917 |
:1078700004B04CE20100A0E324F2FFEB0622A0E3F7 |
:10788000212D82E20130A0E3003082E50000A0E378 |
:10789000000082E5213DA0E3463283E2000083E55B |
:1078A000071BA0E308309FE5B010C3E1001082E59C |
:1078B00000A81BE9301800040DC0A0E130D82DE964 |
:1078C00004B04CE20652A0E3215D85E20130A0E362 |
:1078D000003085E5213DA0E3463283E20040A0E38D |
:1078E000004083E50400A0E108F2FFEB0330A0E3D1 |
:1078F000003085E50400A0E130A81BE90120A0E3E9 |
:1079000034309FE5002083E50622A0E3212D82E2AA |
:10791000003092E50338A0E1023783E32338A0E189 |
:10792000003082E5003092E50338A0E1013783E3BF |
:107930002338A0E1003082E50EF0A0E160110004E0 |
:107940000020A0E328309FE5002083E50622A0E385 |
:10795000212D82E2003092E50430C3E30338A0E138 |
:107960002338A0E1003082E5BF3CA0E3003082E58F |
:107970000EF0A0E1601100040DC0A0E100D82DE9D7 |
:1079800004B04CE2070050E318319F150000831546 |
:1079900010319FE5003093E5070053E303F19F9713 |
:1079A0003E0000EAC4790000DC790000F0790000B4 |
:1079B000047A0000287A00005C7A0000A07A0000B7 |
:1079C000A07A0000DDFFFFEBFF1D00EB020910E3D2 |
:1079D0003200000AC8FFFFEB300000EAD7FFFFEBE0 |
:1079E0000420A0E3BC309FE5002083E500A81BE94C |
:1079F000B0309FE50220A0E30420C3E50320A0E30C |
:107A0000F8FFFFEA9C209FE50430D2E5013043E215 |
:107A10000430C2E50430D2E5000053E30430A00393 |
:107A20000030820500A81BE90622A0E3212D82E296 |
:107A3000003092E50338A0E1013683E32338A0E16A |
:107A4000003082E55C209FE50530A0E3003082E550 |
:107A50000A30A0E30430C2E500A81BE944109FE50A |
:107A60000430D1E5013043E20430C1E50430D1E512 |
:107A7000000053E300A81B190632A0E3213D83E276 |
:107A8000002093E51020C2E30228A0E12228A0E113 |
:107A9000002083E50630A0E3003081E500A81BE963 |
:107AA0000620A0E3CEFFFFEA801100040DC0A0E194 |
:107AB00010D82DE904B04CE208D04DE20207A0E353 |
:107AC0000110A0E39B1200EB18004BE23E1500EB07 |
:107AD0000120A0E318104BE20120C1E53F30E0E3B4 |
:107AE00018304BE50040A0E30240C1E5B420C1E1FD |
:107AF0001603A0E30B0A80E2E11400EB1603A0E3F7 |
:107B00000B0A80E24010A0E30420A0E1411500EB45 |
:107B10001603A0E30B0A80E28010A0E30420A0E19A |
:107B20003C1500EB10A81BE910402DE900E0A0E196 |
:107B30000000A0E300C0A0E1010050E10B00002A1A |
:107B400034409FE50038A0E10120DEE4232C22E050 |
:107B50008220A0E1B42092E1232422E00228A0E1C7 |
:107B60004208A0E101C08CE201005CE1F4FFFF3AB1 |
:107B70000008A0E12008A0E11080BDE8EA9401001F |
:107B80000008A0E12008A0E148309FE5931082E0C2 |
:107B9000A233A0E1033183E0033183E0033240E00C |
:107BA0000338B0E10700000A030010E30700001AE1 |
:107BB000A232A0E1033183E0033183E0033140E0EE |
:107BC0000338B0E10100000A0100A0E30EF0A0E1DB |
:107BD0000000A0E30EF0A0E11F85EB510DC0A0E175 |
:107BE00070D82DE904B04CE20050A0E1AC129FE542 |
:107BF0003430D1E53520D1E5023483E13620D1E5BA |
:107C0000023883E13720D1E5023C93E1A000000A6D |
:107C10000B30D1E5040013E39D00000A0B30D1E5E1 |
:107C2000080013E39A00000A0030D1E50120D1E5F5 |
:107C3000023483E10220D1E5023883E10320D1E55B |
:107C4000023C83E158229FE5920383E02363A0E195 |
:107C50000830D1E50920D1E5023483E10338A0E101 |
:107C60004338A0E10C0056E301304392936A8692B8 |
:107C7000A76E8692036086920D604682833163E030 |
:107C80000B4883E21E4D84E2034084E214329FE5F8 |
:107C9000961383E0234884E00C329FE5930482E04E |
:107CA000A227A0E10238A0E12338A0E1033183E05C |
:107CB000033183E00332A0E1013083E2B030C5E15B |
:107CC000823182E0033282E0033262E0033363E018 |
:107CD000044063E02421A0E1D0319FE5930281E0DC |
:107CE000A115A0E10138A0E12338A0E1033183E030 |
:107CF000033183E0B020D5E1032182E0B020C5E16B |
:107D0000813161E0833181E0033281E0033183E03E |
:107D1000833081E0034144E094319FE5931482E095 |
:107D2000A223A0E10218A0E1B030D5E1213783E021 |
:107D3000B030C5E1023262E0033182E0833162E0BB |
:107D4000033163E0044063E0113DA0E3063083E2C9 |
:107D5000030054E15C319F95942383900420639049 |
:107D6000A23083900334A0914328A0910320A083E4 |
:107D7000B030D5E1023083E0B030C5E10228A0E1A7 |
:107D80002228A0E1823182E0833182E0033183E066 |
:107D9000044063E0014084E2B000D5E177FFFFEBEF |
:107DA000FF0010E310219FE510319FE50210A001B4 |
:107DB0000310A0110020A0E3023191E7040053E179 |
:107DC0000900002A023181E0043093E5030054E108 |
:107DD0000500008A013082E20230C5E50231D1E7B8 |
:107DE000043063E00330C5E50C20A0E3013082E2FB |
:107DF000FF2003E20B0052E3EEFFFF9AA4309FE561 |
:107E0000960383E02338A0E1833083E0033263E00C |
:107E1000033263E0836346E0A4309FE5961383E07A |
:107E2000A335A0E10430C5E5033263E0033263E02B |
:107E3000036246E08C309FE5962383E0A332A0E105 |
:107E40000530C5E5033263E0036146E00660C5E541 |
:107E500048209FE50010D2E50130D2E5031481E10E |
:107E60000230D2E5031881E10330D2E5031C81E141 |
:107E70002C309FE5930182E02223A0E1823262E070 |
:107E8000033182E0831141E0B810C5E10130A0E385 |
:107E9000000000EA0030A0E30A30C5E570A81BE945 |
:107EA00034040004D34D621007452EC2BD066B3961 |
:107EB0007F206B3973B06D1661F31967209701004D |
:107EC000EC960100C5B3A2918988888880309FE52F |
:107ED0003420D3E50020A0E33420C3E53510D3E5FA |
:107EE0003520C3E53610D3E53620C3E53710D3E59A |
:107EF0003720C3E55C309FE51C10D3E51C20C3E5AB |
:107F00001D10D3E51D20C3E51E10D3E51E20C3E5DB |
:107F10001F10D3E51F20C3E53C309FE52410D3E5B7 |
:107F20002420C3E52510D3E52520C3E52610D3E59D |
:107F30002620C3E52710D3E52720C3E51C309FE5A5 |
:107F40002F20C3E53020C3E53120C3E53220C3E54F |
:107F50000EF0A0E1340400046C0400048C0400045E |
:107F6000B80400040DC0A0E1F0D92DE904B04CE242 |
:107F700014349FE5000093E597E8FFEBFF0010E362 |
:107F80000020A01304349F150020C315FC239F0577 |
:107F90000030D205013083020030C2056400A0E346 |
:107FA00087E8FFEBE0339FE5000083E5DC339FE5E6 |
:107FB0000030D3E5010053E3F0A91B99D0039FE5FE |
:107FC0003430D0E53520D0E5023483E13620D0E5E9 |
:107FD000023883E13720D0E5023C83E1010053E31E |
:107FE000CB00001AAC439FE51C30D4E51D20D4E53E |
:107FF000023483E11E20D4E5023883E11F20D4E55A |
:10800000023C83E1010053E3C100001A88639FE54D |
:108010002430D6E52520D6E5023483E12620D6E5B6 |
:10802000023883E12720D6E5027C83E1010057E393 |
:10803000B700001A64239FE5003092E5013083E227 |
:10804000003082E558139FE51830D1E51920D1E5BD |
:10805000023483E1013083E20080A0E31830C1E5FF |
:108060002334A0E11930C1E538539FE52F30D5E521 |
:108070003020D5E5023483E13120D5E5023883E1B3 |
:108080003220D5E5023C83E1010053E3A000000A61 |
:108090002F80C5E53080C5E53180C5E53280C5E576 |
:1080A0000B30D0E51030C5E52F30D0E51130C5E5F7 |
:1080B0000A30D0E51230C5E51830D0E51920D0E5FA |
:1080C000023483E11A20D0E5023883E11B20D0E599 |
:1080D000023C83E11330C5E52324A0E11420C5E56B |
:1080E0002328A0E11520C5E5233CA0E11630C5E515 |
:1080F0002830D0E52920D0E5023483E12A20D0E5DC |
:10810000023883E12B20D0E5023C83E12B30C5E52A |
:108110002324A0E12C20C5E52328A0E12D20C5E5DE |
:10812000233CA0E12E30C5E57C029FE5AAFEFFEBD3 |
:108130000430D4E50520D4E5023483E10620D4E5FB |
:10814000023883E10720D4E5023C83E10030C5E535 |
:108150002324A0E10120C5E52328A0E10220C5E5F4 |
:10816000233CA0E10330C5E50830D4E50920D4E57F |
:10817000023483E10A20D4E5023883E10B20D4E500 |
:10818000023C83E10430C5E52324A0E10520C5E5D8 |
:108190002328A0E10620C5E5233CA0E10730C5E582 |
:1081A0001030D4E51120D4E5023483E11220D4E567 |
:1081B000023883E11320D4E5023C83E10830C5E5B1 |
:1081C0002324A0E10920C5E52328A0E10A20C5E574 |
:1081D000233CA0E10B30C5E50C70C5E50D80C5E57D |
:1081E0000E80C5E50F80C5E50830D6E50920D6E547 |
:1081F000023483E10A20D6E5023883E10B20D6E57C |
:10820000023C83E11B30C5E52324A0E11C20C5E529 |
:108210002328A0E11D20C5E5233CA0E11E30C5E5D3 |
:108220000430D6E50520D6E5023483E10620D6E504 |
:10823000023883E10720D6E5023C83E11730C5E52B |
:108240002324A0E11820C5E52328A0E11920C5E5D5 |
:10825000233CA0E11A30C5E50C30D6E50D20D6E56B |
:10826000023483E10E20D6E5023883E10F20D6E503 |
:10827000023C83E1003063E21F30C5E52324A0E126 |
:108280002020C5E52328A0E12120C5E5233CA0E16D |
:108290002230C5E51430D6E51520D6E5023483E159 |
:1082A0001620D6E5023883E11720D6E5023C83E1AB |
:1082B0002330C5E52324A0E12420C5E52328A0E13F |
:1082C0002520C5E5233CA0E12630C5E51830D6E5DC |
:1082D0001920D6E5023483E11A20D6E5023883E17D |
:1082E0001B20D6E5023C83E12730C5E52324A0E12D |
:1082F0002820C5E52328A0E12920C5E5233CA0E1ED |
:108300002A30C5E52F70C5E53080C5E53180C5E56B |
:108310003280C5E578309FE53420D3E50020A0E326 |
:10832000021082E33410C3E53500D3E53520C3E500 |
:108330003600D3E53620C3E53700D3E53720C3E563 |
:1083400050309FE51C00D3E51C10C3E51D00D3E5AC |
:108350001D20C3E51E00D3E51E20C3E51F00D3E5A5 |
:108360001F20C3E530309FE52400D3E52410C3E58A |
:108370002510D3E52520C3E52610D3E52620C3E547 |
:108380002710D3E52720C3E5F0A91BE9F804000472 |
:10839000FC040004340400046C0400048C04000495 |
:1083A000B404000458130004B80400048008000456 |
:1083B0000DC0A0E100D82DE904B04CE2FF0000E2BE |
:1083C00098329FE5003093E5080053E303F19F974F |
:1083D0000B0000EAF88300001484000020840000F1 |
:1083E0002C840000F88400002C850000A08500008B |
:1083F0000486000028860000B50050E30120A00399 |
:108400000000000A0020A0E350329FE5002083E531 |
:1084100000A81BE9620050E30220A003F7FFFFEA77 |
:10842000010050E30320A003F4FFFFEA060050E33D |
:108430000E00000A020000CA020050E30300000A16 |
:108440001B0000EA120050E31100000A180000EAC5 |
:108450000C229FE50C329FE5002083E5201082E28C |
:1084600004329FE5001083E51C2082E2060000EA4A |
:10847000F8219FE5EC319FE5002083E5381082E28A |
:10848000E4319FE5001083E5342082E2E0319FE58E |
:10849000090000EADC219FE5C8319FE5002083E563 |
:1084A000281082E2C0319FE5001083E5242082E29B |
:1084B000F5FFFFEA0020A0E3A0319FE5002083E55F |
:1084C00098219FE5003092E5000053E300A81B09C6 |
:1084D0000430A0E3003082E59C219FE5013080E27A |
:1084E0000030C2E50030D2E5013083E28C219FE507 |
:1084F0000030C2E500A81BE984319FE5B000C3E16C |
:1085000074219FE50030D2E5033080E00030C2E501 |
:1085100068119FE50030D1E50020D2E5023083E00C |
:108520000030C1E50520A0E3B6FFFFEA50219FE53A |
:10853000B030D2E1003483E0B030C2E138219FE5B1 |
:108540000030D2E5033080E00030C2E52C119FE519 |
:108550000030D1E50020D2E5023083E00030C1E5F3 |
:108560000C319FE5003093E50030D3E5010053E383 |
:108570000400001A0020A0E3E0309FE5002083E51E |
:1085800077FEFFEB00A81BE9E4309FE5002093E5B0 |
:108590000030A0E30030C2E50620A0E399FFFFEA27 |
:1085A000C0109FE5002091E5BC309FE5003093E5C9 |
:1085B000030052E192FFFF2A0100C2E4002081E59E |
:1085C000B4209FE50030D2E5033080E00030C2E502 |
:1085D000A8109FE50030D1E50020D2E5023083E00D |
:1085E0000030C1E598209FE5B030D2E1013043E290 |
:1085F000B030C2E10338B0E10720A00300A81B1986 |
:1086000080FFFFEA70309FE50030D3E5000053E1C2 |
:108610000820A00358309F15003093150020A013A8 |
:108620000020C31577FFFFEA50309FE50030D3E507 |
:10863000000053E138309F15002093150030A0133F |
:108640000030C2156EFFFF1A24309FE5002093E52D |
:108650000130A0E30030C2E541FEFFEB68FFFFEA16 |
:10866000000500046C040004080500040C05000467 |
:1086700034040004100500048C0400040605000402 |
:1086800007050004040500040DC0A0E1F0DD2DE99C |
:1086900004B04CE208D04DE2E4A09FE50050A0E316 |
:1086A00000508AE50106A0E30110A0E3A10F00EB52 |
:1086B0002C004BE2441200EB0170A0E32C404BE293 |
:1086C0000150C4E50280A0E32C804BE50250C4E5D4 |
:1086D0000350C4E50560A0E1B450C4E11603A0E373 |
:1086E0000B0A80E20410A0E1E51100EB0400A0E118 |
:1086F000351200EB0150C4E52C704BE50250C4E587 |
:108700000350C4E5B450C4E11603A0E30B0A80E2B1 |
:108710000410A0E1DA1100EB0400A0E12A1200EB42 |
:108720000150C4E54030A0E32C304BE50250C4E5D5 |
:108730000370C4E5B450C4E11603A0E3030980E26A |
:108740000410A0E1CE1100EB0400A0E11E1200EB2A |
:108750000170C4E57F30E0E32C304BE50250C4E506 |
:108760000370C4E50330A0E3B430C4E11603A0E312 |
:10877000030980E20410A0E1C11100EB00808AE54A |
:10878000F0AD1BE9140500040DC0A0E1F0D92DE9FE |
:1087900004B04CE208D04DE2E4809FE50050A0E335 |
:1087A000005088E50207A0E30110A0E3610F00EB91 |
:1087B00028004BE2041200EB0170A0E328404BE2DA |
:1087C0000150C4E54030A0E328304BE50250C4E539 |
:1087D0000350C4E50560A0E1B450C4E11603A0E372 |
:1087E000030980E20410A0E1A51100EB0400A0E160 |
:1087F000F51100EB0150C4E57F30E0E328304BE594 |
:108800000250C4E50350C4E5B450C4E11603A0E32C |
:10881000030980E20410A0E1991100EB0400A0E13B |
:10882000E91100EB0150C4E50230A0E328304BE52C |
:108830000250C4E50370C4E5B450C4E11603A0E3DC |
:108840000B0A80E20410A0E18D1100EB0400A0E10E |
:10885000DD1100EB0170C4E528704BE50250C4E562 |
:108860000370C4E50330A0E3B430C4E11603A0E311 |
:108870000B0A80E20410A0E1811100EB007088E592 |
:10888000F0A91BE9140500040DC0A0E170D82DE982 |
:1088900004B04CE21CD04DE2D4009FE51E0400EB76 |
:1088A0000800A0E30110A0E3220F00EBC4409FE505 |
:1088B0009634A0E34339A0E1B030C4E134604BE228 |
:1088C0000600A0E1E91200EB6030A0E3B4334BE115 |
:1088D0000830E0E3B2334BE10050A0E3B0534BE18A |
:1088E000B030D4E12C300BE5B8524BE1033CA0E3AF |
:1088F000B6324BE11040A0E3B4424BE10230A0E3BA |
:1089000020300BE51C300BE51703A0E3010980E2E2 |
:10891000401200EB1703A0E3010980E20610A0E17A |
:108920005C1200EB1703A0E3010980E25010A0E302 |
:108930000120A0E3E51200EB1703A0E3010980E2A8 |
:108940000110A0E3DA1200EB0400A0E10510A0E1A1 |
:108950000A20A0E3A71400EB0400A0E10110A0E3AB |
:10896000F91300EB47FFFFEB0C009FE5EA0300EB78 |
:1089700070A81BE908B801002002000460B30100E0 |
:108980000DC0A0E130D82DE904B04CE21703A0E3FC |
:10899000010980E21010A0E30A1300EB000050E38D |
:1089A0000500001A1703A0E3010980E24010A0E3CC |
:1089B000041300EB000050E330A81B091703A0E3E9 |
:1089C000010980E21010A0E3041300EB1703A0E3F9 |
:1089D000010980E24010A0E3001300EBA4309FE502 |
:1089E000002093E51733A0E3013983E2030052E14D |
:1089F0001753A0030C00000A110000EA1743A0E37C |
:108A0000050A84E24510A0E3DA1200EB010050E30E |
:108A1000FAFFFF0A010985E23F1300EB0010A0E115 |
:108A2000FF1001E2050A85E2381300EB010985E237 |
:108A30004410A0E3CF1200EB010050E330A81B0963 |
:108A4000EDFFFFEA1743A0E3080000EA010984E212 |
:108A5000311300EBFF0000E22C309FE5003093E57E |
:108A6000010053E30100009A020053E34FFEFF0BA5 |
:108A7000010984E24410A0E3BE1200EB010050E3C0 |
:108A800030A81B09F0FFFFEA2802000414050004C7 |
:108A90000DC0A0E1F0DF2DE904B04CE224D04DE29E |
:108AA0001000A0E30110A0E3A20E00EB0208A0E377 |
:108AB0000110A0E39F0E00EB4C004BE2421100EBD3 |
:108AC0000170A0E34C404BE20050A0E30150C4E52C |
:108AD00004A0A0E34CA04BE50260A0E30250C4E573 |
:108AE0000370C4E50580A0E1B450C4E11603A0E31F |
:108AF000090A80E20410A0E1E11000EB0400A0E10B |
:108B0000311100EB0170C4E50890A0E34C904BE5F7 |
:108B10000250C4E5B460C4E11603A0E3090A80E290 |
:108B20000410A0E1D61000EB44404BE20400A0E1A9 |
:108B30004E1200EB6030A0E3B4344BE10830E0E3C8 |
:108B4000B2344BE1B0544BE1E13CA0E33C300BE5E7 |
:108B5000B8534BE1033CA0E3B6334BE11030A0E344 |
:108B6000B4334BE130600BE52C600BE51703A0E359 |
:108B7000050A80E2A71100EB1703A0E3050A80E2D3 |
:108B80000410A0E1C31100EB1703A0E3050A80E283 |
:108B90005010A0E30720A0E14C1200EB1703A0E364 |
:108BA000050A80E20710A0E1411200EB1100A0E3EA |
:108BB0000510A0E10A20A0E10E1400EB1100A0E3D3 |
:108BC0000710A0E1601300EB70309FE5000093E513 |
:108BD0007BE5FFEB68309FE5000083E564309FE5AF |
:108BE000000093E57D0F80E275E5FFEB58309FE5CF |
:108BF000000083E554309FE50050C3E550309FE509 |
:108C0000005083E54C309FE50050C3E548309FE5B8 |
:108C10000070C3E544209FE50050C2E50C30A0E39E |
:108C20000130C2E50490C2E50A30A0E30230C2E59B |
:108C30000350C2E528009FE5370300EBF0AF1BE9C6 |
:108C40003002000440140004340200044013000405 |
:108C500023050004280500042C0500042C02000450 |
:108C6000B81200041CB801000DC0A0E1F0D92DE934 |
:108C700004B04CE21703A0E3050A80E21010A0E361 |
:108C8000501200EB000050E30500001A1703A0E3A8 |
:108C9000050A80E24010A0E34A1200EB000050E316 |
:108CA000F0A91B091703A0E3050A80E21010A0E356 |
:108CB0004A1200EB1703A0E3050A80E24010A0E38C |
:108CC000461200EB8C329FE5002093E51733A0E3BA |
:108CD000053A83E2030052E17C529F150060A01325 |
:108CE0002F00001A350000EA68429FE5000094E575 |
:108CF0004510A0E31F1200EB010050E3FAFFFF0A4A |
:108D00001703A0E3050A80E2831200EBFF4000E2B4 |
:108D10000030D5E5040053E303F19F97190000EA02 |
:108D2000348D0000408D0000488D0000508D000003 |
:108D3000688D00001B0054E31200001A050000EAD1 |
:108D40001B0054E3020000EA550054E3000000EA6F |
:108D5000AA0054E30A00001A0030D5E5013083E28E |
:108D60000030C5E5070000EA000054E30400001AE3 |
:108D70001733A0E3053A83E2D8219FE5003082E56E |
:108D800040FEFFEB0060C5E5C8319FE5000093E5BC |
:108D90001733A0E3053A83E2030050E10410A01169 |
:108DA0005A12001B1703A0E3050A80E24410A0E357 |
:108DB000F01100EB010050E3F0A91B09C9FFFFEA25 |
:108DC00098619FE598819FE598519FE5570000EADB |
:108DD0001703A0E3050A80E24F1200EBFF4000E218 |
:108DE00084119FE50020D1E5000052E323005403E5 |
:108DF0000500001A013082E20030C1E5FF3002E2D6 |
:108E00000340C8E7B040C5E1480000EA58119FE5BB |
:108E10000020D1E5950052E30020A08348319F85D2 |
:108E20000020C3850020C6854000008A0D0054E361 |
:108E30000700000A013082E20030C1E5FF3002E2A3 |
:108E40000340C8E7B030D5E1043083E0B030C5E17D |
:108E5000360000EA08E19FE50C319FE50070D3E59C |
:108E6000FF4007E20E0084E0022050E5B030D5E17B |
:108E7000033062E0B030C5E1012050E5B030D5E10B |
:108E8000033062E0B030C5E1B030D5E1033AA0E193 |
:108E9000233AA0E1B030C5E1D0109FE5B020D5E184 |
:108EA0002233A0E13D3083E20030C1E5C0C09FE540 |
:108EB0003F2002E23D2082E20020CCE5022050E586 |
:108EC0000030D1E5020053E11300001A012050E503 |
:108ED0000030DCE5020053E10F00001A0130A0E38E |
:108EE0000030C6E5032087E088309FE50020C3E519 |
:108EF0000D30A0E30430CEE70230DEE5520053E34C |
:108F00000700001A6BFAFFEB201200EB68309FE5B8 |
:108F10000FE0A0E103F0A0E1010000EA0030A0E3CF |
:108F20000030C6E50020A0E33C309FE50020C3E50B |
:108F30001703A0E3050A80E24410A0E38D1100EBC3 |
:108F4000010050E3F0A91B090030D6E5000053E30F |
:108F5000F0A91B199DFFFFEA28020004390500044F |
:108F600023050004F811000434050004360500044C |
:108F70003705000438050004240500043C02000401 |
:108F80000DC0A0E100D82DE904B04CE27C309FE593 |
:108F90000030D3E5000053E300A81B191703A0E33A |
:108FA000050A80E24510A0E3721100EB000050E3D7 |
:108FB00000A81B1958309FE5B000D3E154309FE55D |
:108FC0000030D3E7FF1003E20D0051E30100000A77 |
:108FD000960050E30500001A34309FE50020A0E31E |
:108FE000B020C3E10120A0E320309FE50020C3E5CD |
:108FF0001703A0E3050A80E2C41100EB10209FE5EF |
:10900000B030D2E1013083E2B030C2E100A81BE908 |
:109010002C02000432050004A01300040DC0A0E1DE |
:1090200000D82DE904B04CE200C0A0E30C10A0E190 |
:109030000008A0E120085CE10D00002AC0209FE5A7 |
:109040002008A0E10C38A0E12338A0E10330D2E7EA |
:10905000FF3003E2013083E00338A0E14318A0E1D0 |
:1090600001308CE20338A0E143C8A0E1230850E1BD |
:10907000F3FFFF8A011AA0E1211AA0E180009FE519 |
:109080000C20A0E101308CE20338A0E143C8A0E14C |
:109090000228A0E12228A0E10138A0E12318A0E1E4 |
:1090A000233BA0E13D3083E20230C0E701208CE2A7 |
:1090B0000C38A0E12338A0E13F1001E23D1081E22D |
:1090C0000310C0E70228A0E12228A0E10D30A0E3B0 |
:1090D0000230C0E70010A0E328309FE50010C3E590 |
:1090E00024309FE50120A0E3B020C3E10110D0E7C8 |
:1090F000FF1001E21703A0E3050A80E2831100EBF1 |
:1091000000A81BE9A01300042C020004320500048F |
:109110000DC0A0E10C002DE9F0DD2DE90CB04CE212 |
:10912000FF0000E2FF1001E20440DBE500C0A0E325 |
:109130000C50A0E10C80A0E10CE0A0E100229FE532 |
:1091400001C08CE22330A0E30530C2E701308CE29D |
:10915000611081E20C10C2E701C083E20300C2E7A4 |
:1091600008708BE2050054E10500000A008097E5D5 |
:10917000043087E2047083E200E093E5013044E2CA |
:10918000FF4003E200005EE36900000AB0A19FE532 |
:109190000520A0E1013085E2FF5003E20210D8E78C |
:1091A00001E05EE20030A0130130A003000054E3B0 |
:1091B0000030A00301300312000053E30600000A50 |
:1091C000008097E5043087E2047083E200E093E5D5 |
:1091D0000050A0E3013044E2FF4003E200005EE300 |
:1091E0000060A0031200000A0520A0E1013085E222 |
:1091F000FF5003E20260D8E701E05EE20030A01316 |
:109200000130A003000054E30030A003013003123A |
:10921000000053E30600000A008097E5043087E26F |
:10922000047083E200E093E50050A0E3013044E2E3 |
:10923000FF4003E200005EE30000A0031200000A0A |
:109240000520A0E1013085E2FF5003E20200D8E7EB |
:1092500001E05EE20030A0130130A003000054E3FF |
:109260000030A00301300312000053E30600000A9F |
:10927000008097E5043087E2047083E200E093E524 |
:109280000050A0E3013044E2FF4003E20C20A0E1E3 |
:1092900001308CE20338A0E143C8A0E10228A0E13C |
:1092A0002228A0E12131A0E13D3083E20230CAE76B |
:1092B0000C20A0E101308CE20338A0E143C8A0E11A |
:1092C0000228A0E12228A0E1031001E22632A0E159 |
:1092D000013283E13D3083E20230CAE70C20A0E195 |
:1092E00001308CE20338A0E143C8A0E10228A0E1EC |
:1092F0002228A0E10F1006E22033A0E1013183E132 |
:109300003D3083E20230CAE70C20A0E101308CE25C |
:109310000338A0E143C8A0E10228A0E12228A0E18F |
:109320003F3000E23D3083E20230CAE700005EE3F6 |
:1093300096FFFF1A0C08A0E12008A0E136FFFFEB22 |
:10934000F0AD1BE9A0130004F0412DE90370A0E388 |
:109350000760A0E114319FE50030D3E5063043E219 |
:10936000FF5013E23A00000A04819FE50620A0E1C5 |
:10937000013086E2FF6003E20240D8E73D4044E26C |
:10938000FF4004E20620A0E1013086E2FF6003E234 |
:109390000200D8E73D0040E2FF1000E20620A0E115 |
:1093A000013086E2FF6003E20220D8E73D2042E27E |
:1093B000FFC002E206E0A0E1013086E2FF6003E2C6 |
:1093C0000E30D8E73D3043E2FF3003E22112A0E146 |
:1093D000041181E1FF1001E20F0000E22CC1A0E1C5 |
:1093E00000028CE1032002E202C383E1013045E286 |
:1093F000FF5003E2FF0055E31500000A0730A0E12B |
:10940000012087E2FF7002E20310C8E7013045E265 |
:10941000FF5003E2FF0055E30D00000A0730A0E112 |
:10942000012087E2FF7002E20300C8E7013045E255 |
:10943000FF5003E2FF0055E30500000A0720A0E10A |
:10944000013087E2FF7003E202C0C8E7000055E385 |
:10945000C5FFFF1A1C209FE51C309FE5002083E517 |
:10946000032047E214309FE50020C3E5F081BDE80A |
:1094700024050004F8110004FB1100042805000471 |
:109480002C0500040DC0A0E110D82DE904B04CE279 |
:10949000D0339FE50030D3E5000053E310A81B094B |
:1094A000C4339FE5002093E51733A0E3053A83E238 |
:1094B000030052E110A81B190030E0E3AC239FE544 |
:1094C0000030C2E59FFFFFEBA4239FE50130D2E50A |
:1094D000630053E38100001A0230D2E5653043E2B5 |
:1094E000120053E303F19F977C0000EA38950000D7 |
:1094F000E0960000E0960000E0960000E096000094 |
:10950000E0960000E0960000E0960000E096000083 |
:10951000E096000044950000E0960000E096000010 |
:10952000E096000078950000E0960000CC950000E1 |
:10953000E0960000609600000120A0E334339FE530 |
:10954000650000EA30339FE5003093E50030D3E555 |
:10955000FF3003E2033183E08330A0E11C239FE569 |
:10956000003082E5000053E30120A01310339F1563 |
:109570005900001A590000EAFC329FE5004093E5CB |
:1095800000339FE54B2FA0E3B020C3E10C30D4E5BE |
:109590000D20D4E5023483E10E20D4E5023883E1C6 |
:1095A0000F20D4E5023C83E1010053E34B00001A95 |
:1095B000880400EB0400A0E1A60400EBC90400EB62 |
:1095C000C4329FE5000083E5440000EAA8329FE52D |
:1095D000003093E50030D3E5010053E30A00000AB0 |
:1095E000020000CA000053E30300000A3B0000EA47 |
:1095F000020053E30A00000A380000EA1A0200EBF6 |
:109600001733A0E3063A83E2110000EA7C329FE5BB |
:109610000A30D3E5014013E23000001A59FCFFEB99 |
:10962000040000EA64329FE50A30D3E5014013E20A |
:109630002A00001A13FCFFEB54329FE52F40C3E5CC |
:109640003040C3E53140C3E53240C3E51733A0E302 |
:10965000013983E210229FE5003082E51F0000EA15 |
:1096600014329FE5004093E50C30D4E50D20D4E59D |
:10967000023483E10E20D4E5023883E10F20D4E5E3 |
:10968000023C93E10400001A520400EB950400EB45 |
:10969000F4319FE5000083E50D0000EA0C30D4E5CD |
:1096A0000D20D4E5023483E10E20D4E5023883E1B5 |
:1096B0000F20D4E5023C83E1010053E30400001ACB |
:1096C0000400A0E1630400EBB8319FE57D2FA0E327 |
:1096D000B020C3E10120A0E3B8319FE50020C3E53D |
:1096E0008C319FE50230D3E5FF3003E2613043E285 |
:1096F000150053E303F19F97520000EA54970000CE |
:109700007C97000048980000A0970000489800004F |
:1097100048980000D4970000E097000048980000A7 |
:1097200048980000489800001C98000048980000E5 |
:1097300048980000489800004898000048980000A9 |
:109740004898000048980000489800004898000099 |
:109750003C98000040219FE51C319FE5003093E5D7 |
:109760000030D3E50030C2E50030D2E51F0053E3FE |
:109770001F30A0830030C285320000EA1C419FE503 |
:10978000F4309FE5001093E50400A0E10B20A0E376 |
:109790006C3400EB0920D4E504319FE5280000EA91 |
:1097A000D4309FE5003093E50030D3E5FF3003E28D |
:1097B000033183E08330A0E1E8209FE5003082E5BB |
:1097C000000053E30120A013DC309F151C00001A99 |
:1097D0001C0000EA0120A0E3D0309FE5180000EA59 |
:1097E000CC109FE590309FE5002093E50030D1E557 |
:1097F0000020D2E5023083E10030C1E50030D1E540 |
:10980000000053E30020A013A8309F150020C315CB |
:109810000120A0E3A0309FE5090000EA58309FE551 |
:10982000003093E50020D3E590309FE50020C3E5AC |
:109830000120A0E388309FE5010000EA0120A0E3B9 |
:1098400080309FE50020C3E50020A0E328309FE59D |
:10985000002083E570309FE50020C3E504309FE5DC |
:109860000020C3E510A81BE923050004280200041A |
:109870002D020004F811000420050004280500044E |
:10988000340200041F050004E0070004640500041E |
:1098900048080004B8040004210500042402000460 |
:1098A0004813000431050004300200041D050004C3 |
:1098B0001A050004F6030004220500041B05000439 |
:1098C000F50300041C050004190500042C05000420 |
:1098D0000DC0A0E130D82DE904B04CE2FF5000E209 |
:1098E0000A0055E30D00A003F8FFFF0B1743A0E3A8 |
:1098F000050A84E24510A0E31E0F00EB000050E3D0 |
:10990000FAFFFF1A1703A0E3050A80E20510A0E1A1 |
:109910007E0F00EB0000A0E330A81BE90DC0A0E122 |
:1099200070D82DE904B04CE20040A0E1000050E303 |
:1099300070A81B090030D0E50300A0E1000053E34C |
:1099400070A81B091733A0E3053A83E234209FE592 |
:10995000002092E5030052E170A81B1924609FE5E6 |
:109960001753A0E3055A85E2D8FFFFEB0100F4E5A9 |
:10997000000050E370A81B09003096E5050053E194 |
:1099800070A81B19F7FFFFEA280200040DC0A0E130 |
:1099900030D82DE904B04CE218D04DE250349FE5A8 |
:1099A0000030D3E5000053E330A81B0944349FE5A1 |
:1099B000002093E51733A0E3053A83E2030052E168 |
:1099C00030A81B1930449FE50020D4E5FF0052E386 |
:1099D0000D00000A0130A0E300308DE51C349FE546 |
:1099E000023283E004308DE51030A0E308308DE5CD |
:1099F0004100A0E30210A0E30120A0E10430A0E1B7 |
:109A0000C2FDFFEB0030E0E30030C4E5F0439FE52A |
:109A10000030D4E5000053E30B00000AD0339FE58B |
:109A20000030D3E5000053E30700000A0120A0E363 |
:109A300000208DE54200A0E30210A0E30430A0E185 |
:109A4000B2FDFFEB0030A0E30030C4E5B4339FE586 |
:109A5000003093E5000053E30400000AA8339FE5BB |
:109A6000000093E5DCE1FFEBFF0010E30300001AC8 |
:109A700098339FE50030D3E5000053E31200000A5D |
:109A80006C339FE50030D3E5000053E30E00000A7D |
:109A90004230A0E300308DE54400A0E30210A0E3D3 |
:109AA0000120A0E368339FE598FDFFEB54339FE569 |
:109AB000000093E5C2E1FFEB4C339FE5000083E536 |
:109AC0000020A0E344339FE50020C3E544439FE525 |
:109AD0000030D4E5000053E30C00000A10339FE58A |
:109AE0000030D3E5000053E30800000A0B30A0E388 |
:109AF00000308DE54700A0E30210A0E30120A0E3C1 |
:109B000014339FE581FDFFEB0030A0E30030C4E596 |
:109B100008339FE50030D3E5000053E31D00000A41 |
:109B2000CC329FE50030D3E5000053E31900000A72 |
:109B300080DCFFEB0130A0E300308DE5E0429FE5E3 |
:109B40000030D4E5033183E0D8229FE5032182E091 |
:109B500004208DE51430A0E308308DE54800A0E333 |
:109B60000210A0E30120A0E10430A0E167FDFFEBBB |
:109B70000030D4E5013083E20030C4E50030D4E5A4 |
:109B8000030053E30030A0830030C4850020A0E32D |
:109B900088329FE50020C3E58C429FE50030D4E584 |
:109BA000000053E31400000A44329FE50030D3E57F |
:109BB000000053E31000000A5EDCFFEB0120A0E38D |
:109BC00000208DE564329FE504308DE508208DE5A9 |
:109BD00050329FE50C308DE55030A0E310308DE51C |
:109BE0004C00A0E30210A0E30320A0E340329FE575 |
:109BF00046FDFFEB0030A0E30030C4E534429FE5B2 |
:109C00000030D4E5000053E30C00000AE0319FE58A |
:109C10000030D3E5000053E30800000A0A30A0E357 |
:109C200000308DE55600A0E30210A0E30120A0E380 |
:109C300004329FE535FDFFEB0030A0E30030C4E5C2 |
:109C4000F8319FE5003093E5000053E30400000A7B |
:109C5000EC319FE5000093E55FE1FFEBFF0010E3CF |
:109C60000300001ADC319FE50030D3E5000053E328 |
:109C70001500000A78319FE50030D3E5000053E37A |
:109C80001100000AC0319FE5C0219FE50020D2E508 |
:109C90004D20C3E55620A0E300208DE54F00A0E352 |
:109CA0000210A0E30120A0E318FDFFEB8C319FE53B |
:109CB000000093E542E1FFEB84319FE5000083E57E |
:109CC0000020A0E37C319FE50020C3E580419FE5B3 |
:109CD0000030D4E5000053E30C00000A10319FE58A |
:109CE0000030D3E5000053E30800000A1930A0E378 |
:109CF00000308DE54500A0E30210A0E30120A0E3C1 |
:109D000050319FE501FDFFEB0030A0E30030C4E5DA |
:109D100044519FE50030D5E5000053E32100000ADF |
:109D2000CC309FE50030D3E5000053E31D00000A6E |
:109D300028019FE51130D0E5030053E31900009A94 |
:109D40001C119FE5390400EB14319FE50040A0E3AE |
:109D5000012084E30C20C3E50D40C3E50E40C3E5BC |
:109D60000F40C3E50010E0E31010C3E51110C3E598 |
:109D70001220C3E53C10A0E31310C3E51440C3E573 |
:109D80001540C3E51640C3E51740C3E51840C3E5D9 |
:109D90002110A0E300108DE57300A0E30210A0E302 |
:109DA000DAFCFFEB0040C5E5B8409FE50030D4E5A4 |
:109DB000000053E330A81B0934309FE50030D3E5A1 |
:109DC000000053E330A81B099E0200EB14304BE265 |
:109DD000010063E50120A0E300208DE55700A0E32A |
:109DE0000210A0E3C9FCFFEB0030A0E30030C4E5A3 |
:109DF00030A81BE92C0200042802000424020004FD |
:109E0000549701003105000430020004401400049E |
:109E10001D050004581300041A050004481300042B |
:109E20001B05000422050004000000041C050004BA |
:109E300050000004F503000419050004B8120004E2 |
:109E400034020004401300041F050004A0110004A4 |
:109E5000C0030004200500040808000418050004DD |
:109E6000B804000490120004210500040DC0A0E114 |
:109E7000F0D92DE904B04CE224D04DE23C019FE53D |
:109E8000A5FEFFEB2000A0E30110A0E3A90900EB71 |
:109E90000207A0E30110A0E3A60900EB44004BE297 |
:109EA000490C00EB0160A0E344404BE20050A0E30A |
:109EB0000150C4E50430A0E344304BE50270A0E358 |
:109EC0000250C4E50360C4E50580A0E1B450C4E1DC |
:109ED0001603A0E30B0A80E20410A0E1E80B00EBFC |
:109EE0000208A0E30610A0E1920900EB0400A0E143 |
:109EF000350C00EB0160C4E544604BE50250C4E55D |
:109F0000B470C4E11603A0E3090A80E20410A0E1E2 |
:109F1000DB0B00EB3C404BE20400A0E1530D00EBF7 |
:109F20006030A0E3BC334BE10830E0E3BA334BE1EF |
:109F3000B8534BE1E13CA0E334300BE5B0534BE1C7 |
:109F4000033CA0E3BE324BE11030A0E3BC324BE156 |
:109F500028700BE524700BE51703A0E3060A80E2E6 |
:109F6000AC0C00EB1703A0E3060A80E20410A0E1AA |
:109F7000C80C00EB1703A0E3060A80E25010A0E330 |
:109F80000620A0E1510D00EB1703A0E3060A80E2D2 |
:109F90000610A0E1460D00EB1200A0E30510A0E1C1 |
:109FA0000920A0E3130F00EB1200A0E30610A0E1CC |
:109FB000650E00EB08009FE557FEFFEBF0A91BE9DB |
:109FC00030B8010060B301000DC0A0E1F0D82DE968 |
:109FD00004B04CE208D04DE2C4009FE54EFEFFEB1A |
:109FE0001200A0E30010A0E3570E00EB1703A0E35C |
:109FF000060A80E20010A0E32D0D00EB1703A0E39A |
:10A00000060A80E2830C00EB2000A0E30010A0E32E |
:10A01000480900EB0207A0E30110A0E3450900EBAB |
:10A0200024004BE2E80B00EB0170A0E324404BE27C |
:10A030000050A0E30150C4E50430A0E324304BE518 |
:10A040000250C4E50350C4E50560A0E1B450C4E18A |
:10A050001603A0E30B0A80E20410A0E1880B00EBDA |
:10A060000208A0E30710A0E1320900EB0400A0E120 |
:10A07000D50B00EB0150C4E524704BE50250C4E55C |
:10A080000350C4E5B450C4E11603A0E3090A80E21A |
:10A090000410A0E17A0B00EB08009FE51EFEFFEB29 |
:10A0A000F0A81BE944B8010060B301000DC0A0E1B5 |
:10A0B00030D82DE904B04CE21703A0E3060A80E291 |
:10A0C0001010A0E33F0D00EB000050E30500001A64 |
:10A0D0001703A0E3060A80E24010A0E3390D00EB6D |
:10A0E000000050E330A81B091703A0E3060A80E232 |
:10A0F0001010A0E3390D00EB1703A0E3060A80E27D |
:10A100004010A0E3350D00EB88309FE5002093E57B |
:10A110001733A0E3063A83E2030052E11753A0038A |
:10A120000C00000A110000EA1743A0E3050A84E2CC |
:10A130004510A0E30F0D00EB010050E3FAFFFF0A0A |
:10A14000060A85E2740D00EB0010A0E1FF1001E2A9 |
:10A15000050A85E26D0D00EB060A85E24410A0E3D6 |
:10A16000040D00EB010050E330A81B09EDFFFFEAEE |
:10A170001743A0E3010000EA060A84E2660D00EB43 |
:10A18000060A84E24410A0E3FA0C00EB010050E35D |
:10A1900030A81B09F7FFFFEA280200040030A0E303 |
:10A1A0000030C0E5283080E52C3080E53030C0E557 |
:10A1B0003A30C0E50100A0E30EF0A0E10DC0A0E13F |
:10A1C00070D82DE904B04CE20050A0E10140A0E1BC |
:10A1D0000060A0E3060051E10600A00170A81B0981 |
:10A1E0000100A0E1ECFFFFEB0500A0E16110A0E39E |
:10A1F00098EDFFEB0030A0E12C0084E5000050E377 |
:10A200000500000A0160A0E3286084E510009FE5D6 |
:10A21000F610A0E30620A0E112EFFFEB0600A0E19C |
:10A2200070A81BE9549901000DC0A0E170D82DE978 |
:10A2300004B04CE20040A0E10160A0E3000050E364 |
:10A2400070A81B09283090E5000053E32000000AA5 |
:10A250000050A0E3283094E5020053E30900000A0F |
:10A260000200008A010053E30B00000A140000EA18 |
:10A27000030053E31200001A0400A0E14E0000EBBB |
:10A280000230A0E3020000EA0400A0E1250000EB98 |
:10A290000130A0E3283084E50A0000EA2C3094E580 |
:10A2A000000053E30600000A2C009FE51510A0E310 |
:10A2B0000120A0E3EBEEFFEB2C0094E510EEFFEBAA |
:10A2C0000160A0E3285084E5283094E5000053E3C2 |
:10A2D000DFFFFF1A0600A0E170A81BE94C9A0100FD |
:10A2E0000DC0A0E110D82DE904B04CE20040A0E37D |
:10A2F0002CC091E504005CE10700000A0230A0E3F5 |
:10A30000283081E50140A0E314009FE54610A0E35A |
:10A310000420A0E10C30A0E1D2EEFFEB0400A0E1AC |
:10A3200010A81BE9649A01000DC0A0E110D82DE926 |
:10A3300004B04CE20040A0E3283090E5020053E373 |
:10A340000800001A2C3090E5040053E10500000AD3 |
:10A350000140A0E3284080E510009FE50E10A0E337 |
:10A360000420A0E1BFEEFFEB0400A0E110A81BE970 |
:10A37000AC9A01000DC0A0E100D82DE904B04CE278 |
:10A380000030A0E32CC090E503005CE10700000A68 |
:10A390000330A0E3283080E518009FE56810A0E3B3 |
:10A3A0000120A0E30C30A0E1AEEEFFEB0130A0E312 |
:10A3B0000300A0E100A81BE9BC9A01000DC0A0E1C8 |
:10A3C00000D82DE904B04CE20030A0E32CC090E5A9 |
:10A3D00003005CE10700000A0230A0E3283080E5BA |
:10A3E00018009FE52110A0E30120A0E30C30A0E1BC |
:10A3F0009CEEFFEB0130A0E30300A0E100A81BE905 |
:10A40000289B01000DC0A0E1F0D92DE904B04CE279 |
:10A4100034D04DE20060A0E10170A0E10000A0E3B3 |
:10A42000000056E100005111F0A91B090C30D6E5DF |
:10A430000D20D6E5023483E10E20D6E5023883E113 |
:10A440000F20D6E5023C93E1F0A91B0998819FE516 |
:10A450000C30D8E50D20D8E5023483E10E20D8E594 |
:10A46000023883E10F20D8E5023C93E1F0A91B09F3 |
:10A47000283091E5030053E3F0A91B192C3091E536 |
:10A48000000053E3F0A91B090020D6E50130D6E512 |
:10A49000032482E10230D6E5032882E10330D6E5C9 |
:10A4A000032C82E144519FE59502C1E0C23FA0E147 |
:10A4B00041EB63E08E326EE0033363E083318EE084 |
:10A4C000033183E083C342E000005CE300C06CB270 |
:10A4D00054404BE20400A0E114119FE50E20A0E1DE |
:10A4E0000C30A0E1023100EB0400A0E12C1097E554 |
:10A4F0008FEEFFEB0420D6E50530D6E5032482E19C |
:10A500000630D6E5032882E10730D6E5032C82E148 |
:10A510009532C1E0C23FA0E141EB63E08E326EE0D4 |
:10A52000033363E083318EE0033183E083C342E091 |
:10A5300000005CE300C06CB20400A0E1B4109FE531 |
:10A540000E20A0E10C30A0E1E93000EB0400A0E116 |
:10A550002C1097E576EEFFEB0810D6E50930D6E52E |
:10A56000031481E10A30D6E5031881E10B30D6E50A |
:10A57000031C81E10830D8E50920D8E5023483E1E5 |
:10A580000A20D8E5023883E10B20D8E5023C83E1BC |
:10A59000011063E0000051E30010A0B358309FE5C4 |
:10A5A0009301C2E0C13FA0E142E363E08E326EE07E |
:10A5B00003318EE083C141E000005CE300C06CB277 |
:10A5C00054404BE20400A0E130109FE50E20A0E1D2 |
:10A5D0000C30A0E1C63000EB0400A0E12C1097E5A0 |
:10A5E00053EEFFEB0100A0E3F0A91BE950050004C6 |
:10A5F0006BCA5F6B58B8010068B80100D34D621098 |
:10A6000074B801000DC0A0E130D82DE904B04CE2CF |
:10A610000050A0E10140A0E1283091E5030053E3A0 |
:10A620002200000A283094E5010053E30B00000AE1 |
:10A630000200003A020053E30F00000A150000EA8E |
:10A640000400A0E1D4FEFFEB74009FE50410A0E13C |
:10A65000D9FEFFEBFF0010E20130A013040000EA76 |
:10A6600060009FE50410A0E11CFFFFEBFF0010E27B |
:10A670000230A0130500001A070000EA0400A0E160 |
:10A680003BFFFFEBFF0010E20300000A0330A0E3F2 |
:10A69000283084E5000000EA0100A0E3010050E357 |
:10A6A00030A81B19283094E5030053E3DCFFFF1AA0 |
:10A6B0000500A0E10410A0E151FFFFEBFF0000E264 |
:10A6C00030A81BE980B801008CB80100FF2002E22D |
:10A6D000000050E30EF0A001001080E50030A0E380 |
:10A6E0000430C0E5081080E50C1080E50520C0E5C9 |
:10A6F0000100A0E30EF0A0E1FF1001E20420D0E58C |
:10A700000530D0E5030052E10000A0230EF0A021A7 |
:10A710000C3090E50110C3E40520D0E5001090E571 |
:10A72000012082E0020053E10130A0210C3080E5DD |
:10A730000430D0E5013083E20430C0E50100A0E33D |
:10A740000EF0A0E1000051E3000050130000A00350 |
:10A750000EF0A0010430D0E5000053E30300A00197 |
:10A760000EF0A001082090E50130D2E40030C1E5F0 |
:10A770000530D0E5001090E5013083E0030052E1A0 |
:10A780000120A021082080E50430D0E5013043E21B |
:10A790000430C0E50100A0E30EF0A0E10DC0A0E18F |
:10A7A00000D82DE904B04CE20430D0E5000053E3BA |
:10A7B000FEFFFF0AE2FFFFEBFF0000E200A81BE93B |
:10A7C0000DC0A0E100D82DE904B04CE2010000EB7F |
:10A7D000FF0000E200A81BE90020A0E354309FE541 |
:10A7E0000020C3E550309FE50020C3E54C309FE5D5 |
:10A7F0003920C3E53820C3E50210A0E140C09FE541 |
:10A800000200A0E1813281E00C3083E00C2083E281 |
:10A810000C00C3E50100C2E50200C2E50300C2E589 |
:10A82000013081E2FF1003E2130051E30100A08335 |
:10A830000EF0A081F2FFFFEA3C0500043D05000494 |
:10A84000A01100044814000404309FE50000D3E583 |
:10A850000EF0A0E13D0500040DC0A0E130D82DE9C7 |
:10A8600004B04CE20010A0E16C509FE50000D5E57B |
:10A87000130050E30000A08330A81B89FF0000E212 |
:10A88000800280E054409FE5040080E02120A0E3A6 |
:10A890002C3000EB0000D5E5FF3000E2833283E08E |
:10A8A000043083E00C1083E20020A0E301C082E3C7 |
:10A8B0000CC0C3E50120C1E50220C1E50320C1E5CC |
:10A8C000010080E20000C5E50020D5E510309FE5DD |
:10A8D0003920C3E50C00A0E130A81BE93D050004C8 |
:10A8E00048140004A01100040020A0E320309FE5DC |
:10A8F0000020C3E51C309FE53820C3E518309FE5F4 |
:10A900000030D3E5020053E110009FE50200A001F2 |
:10A910000EF0A0E13C050004A01100043D05000478 |
:10A920004814000434109FE50030D1E5012083E293 |
:10A930002C309FE50030D3E5030052E10020C1B583 |
:10A940000030D1B51C209FB53830C2B5833283B0FA |
:10A9500014209FB5020083B00000A0A30EF0A0E178 |
:10A960003C0500043D050004A01100044814000447 |
:10A970000DC0A0E130D82DE904B04CE2E4339FE5EE |
:10A980000830D3E5630053E33900008AD8239FE5FC |
:10A990000010A0E3013081E32630C2E52710C2E5B4 |
:10A9A0002810C2E52910C2E50010C2E50110C2E579 |
:10A9B000010051E13730A0030130A0110330E0E184 |
:10A9C0000230C2E5420081E30300C2E50410C2E5A3 |
:10A9D0000510C2E5010051E14B30A0030130A01188 |
:10A9E0000330E0E10630C2E50700C2E50810C2E529 |
:10A9F0000910C2E50A30C2E50B00C2E50C10C2E541 |
:10AA00000D10C2E50E30C2E50F00C2E51010C2E520 |
:10AA10001110C2E51230C2E51300C2E51410C2E500 |
:10AA20001510C2E51610C2E51710C2E50630A0E306 |
:10AA30001830C2E50830A0E31930C2E51A10C2E5AB |
:10AA40001B10C2E51C10C2E51D10C2E51E10C2E5B8 |
:10AA50001F10C2E52010C2E52110C2E57D3081E360 |
:10AA60002230C2E52310C2E52410C2E52510C2E55C |
:10AA7000A30000EAF4329FE50030D3E5000053E381 |
:10AA80000D00001AE8329FE50930D3E5310053E3A9 |
:10AA9000D4329F950020A093021082930900009A5F |
:10AAA000CC329FE50930D3E5B30053E3B8329F853C |
:10AAB0000020A083031082830200008AA8329FE551 |
:10AAC0000020A0E3011082E32610C3E52720C3E5A0 |
:10AAD0002820C3E52920C3E58C529FE590329FE5ED |
:10AAE000DA40D3E10400A0E1D12800EB000054E3F8 |
:10AAF0004314A0B3021581B2212800BB0000C5E5B4 |
:10AB00002034A0E10130C5E52038A0E10230C5E5E0 |
:10AB1000203CA0E10330C5E54C529FE550329FE553 |
:10AB2000DB40D3E10400A0E1C12800EB000054E3C6 |
:10AB30004314A0B3021581B2112800BB0400C5E57F |
:10AB40002034A0E10530C5E52038A0E10630C5E598 |
:10AB5000203CA0E10730C5E50C529FE510329FE58F |
:10AB6000DC40D3E10400A0E1B12800EB000054E395 |
:10AB70004314A0B3021581B2012800BB0800C5E54B |
:10AB80002034A0E10930C5E52038A0E10A30C5E550 |
:10AB9000203CA0E10B30C5E5CC519FE5D0319FE5CD |
:10ABA000DD40D3E10400A0E1A12800EB000054E364 |
:10ABB0004314A0B3021581B2F12700BB0C00C5E518 |
:10ABC0002034A0E10D30C5E52038A0E10E30C5E508 |
:10ABD000203CA0E10F30C5E58C519FE590319FE509 |
:10ABE000DD40D3E10400A0E1912800EB000054E334 |
:10ABF0004314A0B3021581B2E12700BB1000C5E5E4 |
:10AC00002034A0E11130C5E52038A0E11230C5E5BF |
:10AC1000203CA0E11330C5E54C519FE550319FE544 |
:10AC2000DE40D3E10400A0E1812800EB000054E302 |
:10AC30004314A0B3021581B2D12700BB1400C5E5AF |
:10AC40002034A0E11530C5E52038A0E11630C5E577 |
:10AC5000203CA0E11730C5E50C219FE510119FE5D0 |
:10AC60000F30D1E51830C2E51030D1E51930C2E51A |
:10AC70000250A0E1D241D1E10400A0E16C2800EB38 |
:10AC8000000054E34314A0B3021581B2BC2700BBFB |
:10AC90001A00C5E52034A0E11B30C5E52038A0E14D |
:10ACA0001C30C5E5203CA0E11D30C5E5B8109FE58E |
:10ACB000BC009FE51130D0E5033183E0033183E030 |
:10ACC0000331A0E11E30C1E52324A0E11F20C1E52E |
:10ACD0002328A0E12020C1E5233CA0E12130C1E5EB |
:10ACE0001530D0E58330A0E12230C1E52324A0E176 |
:10ACF0002320C1E50020A0E32420C1E5233CA0E1FE |
:10AD00002530C1E560109FE52630D1E52720D1E54B |
:10AD1000023483E12820D1E5023883E12920D1E5FE |
:10AD2000023C83E14C209FE5002092E5020053E1C4 |
:10AD300044309F156420A013B020C31128109FE554 |
:10AD40002630D1E52720D1E5023483E12820D1E562 |
:10AD5000023883E12920D1E5023C83E114209FE5FC |
:10AD6000003082E530A81BE9480800040017000401 |
:10AD7000C5030004C807000468050004E0070004D8 |
:10AD800048109FE52F30D1E53020D1E5023483E132 |
:10AD90003120D1E5023883E13220D1E5023C93E154 |
:10ADA0000800000A1230D1E5030053E30500001A41 |
:10ADB0001130D1E518209FE51820D2E5020053E1BB |
:10ADC0000100A0230EF0A0210000A0E30EF0A0E1FE |
:10ADD000B80400040017000448109FE5D030D1E10A |
:10ADE000000053E3003063B23C209FE5D921D2E15B |
:10ADF000020053E1040000CAD130D1E1000053E366 |
:10AE0000003063B2020053E1040000DA18309FE51D |
:10AE1000D931D3E1000053E30100A0C30EF0A0C17B |
:10AE20000000A0E30EF0A0E14808000400170004B1 |
:10AE300001C0A0E10010A0E301005CE1010050119D |
:10AE40000100A0010EF0A0010C30D0E50D20D0E5EE |
:10AE5000023483E10E20D0E5023883E10F20D0E5F3 |
:10AE6000023C93E13000000A0030D0E50120D0E53B |
:10AE7000023483E10220D0E5023883E10320D0E5EB |
:10AE8000023C83E10010A0E30030CCE52324A0E1E4 |
:10AE90000120CCE52328A0E10220CCE5233CA0E161 |
:10AEA0000330CCE50430D0E50520D0E5023483E161 |
:10AEB0000620D0E5023883E10720D0E5023C83E19B |
:10AEC0000430CCE52324A0E10520CCE52328A0E133 |
:10AED0000620CCE5233CA0E10730CCE50830D0E5E6 |
:10AEE0000920D0E5023483E10A20D0E5023883E16D |
:10AEF0000B20D0E5023C83E10830CCE52324A0E11F |
:10AF00000920CCE52328A0E10A20CCE5233CA0E1E0 |
:10AF10000B30CCE5013081E30C30CCE50D10CCE5F5 |
:10AF20000E10CCE50F10CCE50310A0E10100A0E16C |
:10AF30000EF0A0E1000050E30000A0030EF0A0011D |
:10AF40000030A0E30030C0E50130C0E50230C0E5CC |
:10AF50000330C0E50430C0E50530C0E50630C0E58B |
:10AF60000730C0E50830C0E50930C0E50A30C0E56B |
:10AF70000B30C0E50C30C0E50D30C0E50E30C0E54B |
:10AF80000F30C0E50100A0E30EF0A0E11C209FE51A |
:10AF90000030A0E30030C2E50130C2E50230C2E576 |
:10AFA0000330C2E50430C2E50530C2E50EF0A0E191 |
:10AFB000E01600040DC0A0E100D82DE904B04CE279 |
:10AFC00044009FE554FAFFEBBFF3FFEBEEFFFFEB0E |
:10AFD00038009FE5D6FFFFEB34009FE5D4FFFFEB81 |
:10AFE0000020A0E32C309FE5002083E5F3FDFFEB7C |
:10AFF0003CFEFFEB20309FE5000083E55BFEFFEBAE |
:10B0000018009FE544FAFFEB00A81BE998B801007F |
:10B0100040050004500500046005000464050004B8 |
:10B0200060B301000DC0A0E170D82DE904B04CE27E |
:10B030000160A0E1DB2700EB0150A0E10040A0E1AE |
:10B040000600A0E1D72700EB0130A0E10020A0E13D |
:10B050000510A0E10400A0E1B11900EB40208FE24F |
:10B060000C0092E8FF2900EB7D2B00EB430F60E220 |
:10B07000020080E2B634A0E3B63A83E2B73083E25E |
:10B080009023C3E0003083E0C02FA0E1433462E0AE |
:10B09000833083E0033263E0833140E00300A0E1CA |
:10B0A00070A81BE946DF913F399D52A20DC0A0E177 |
:10B0B000F0D92DE904B04CE20060A0E10180A0E1EC |
:10B0C0000270A0E1000090E5352B00EB0150A0E1FB |
:10B0D0000040A0E1000098E5312B00EB0130A0E139 |
:10B0E0000020A0E10510A0E10400A0E18D1900EB13 |
:10B0F0005B2B00EB0040A0E1000050E30700501183 |
:10B10000F0A91BD9003096E5930700E00410A0E1F8 |
:10B110005E2400EB000086E5003098E5930700E030 |
:10B120000410A0E1592400EB000088E5F0A91BE918 |
:10B130000DC0A0E1F0DB2DE904B04CE20070A0E10D |
:10B140000160A0E1000051E300005013D100000AAB |
:10B150000C30D0E50D20D0E5023483E10E20D0E59F |
:10B16000023883E10F20D0E5023C93E1C900000AD8 |
:10B170000C30D1E50D20D1E5023483E10E20D1E57C |
:10B18000023883E10F20D1E5023C93E1C100000ABF |
:10B190000000D0E50130D7E5030480E10230D7E5B7 |
:10B1A000030880E10330D7E5030C80E1FC2A00EBC3 |
:10B1B0000D2D8FE20C0092E8A72800EB0150A0E1D2 |
:10B1C0000040A0E10000D6E50130D6E5030480E1AF |
:10B1D0000230D6E5030880E10330D6E5030C80E1B8 |
:10B1E000EF2A00EBC32F8FE20C0092E89A2800EBC5 |
:10B1F0000130A0E10020A0E10510A0E10400A0E1E1 |
:10B20000682800EB0190A0E10080A0E1BB2F8FE255 |
:10B210000C0092E86D2A00EB000050E3050000DA14 |
:10B220000910A0E10800A0E1B62F8FE20C0092E81F |
:10B230005C2800EB0B0000EA0910A0E10800A0E187 |
:10B24000B22F8FE20C0092E8AE2A00EB000050E330 |
:10B25000060000AA0910A0E10800A0E1A92F8FE2D2 |
:10B260000C0092E8372800EB0190A0E10080A0E1FB |
:10B270000400D6E50530D6E5030480E10630D6E5C6 |
:10B28000030880E10730D6E5030C80E1C42A00EB17 |
:10B29000262E8FE20C0092E86F2800EB9D2F8FE2A4 |
:10B2A0000C0092E86C2800EBDF1800EB0130A0E105 |
:10B2B0000020A0E10910A0E10800A0E1662800EB51 |
:10B2C0000190A0E10080A0E10400D7E50530D7E5BA |
:10B2D000030480E10630D7E5030880E10730D7E5B5 |
:10B2E000030C80E1AE2A00EB822F8FE20C0092E883 |
:10B2F000592800EB0150A0E10040A0E10400D6E590 |
:10B300000530D6E5030480E10630D6E5030880E188 |
:10B310000730D6E5030C80E1A12A00EB752F8FE200 |
:10B320000C0092E84C2800EB0130A0E10020A0E1E5 |
:10B330000510A0E10400A0E11A2800EB0160A0E1E3 |
:10B340000050A0E1DC419FE50030A0E30030C4E5FF |
:10B350000130C4E50230C4E50330C4E56F2F8FE24D |
:10B360000C0092E83C2800EBBD2A00EB0400C4E589 |
:10B370002034A0E10530C4E52038A0E10630C4E562 |
:10B38000200CA0E10700C4E50910A0E10800A0E13D |
:10B39000622F8FE20C0092E82F2800EBB02A00EB1E |
:10B3A0000800C4E52034A0E10930C4E52038A0E15C |
:10B3B0000A30C4E5200CA0E10B00C4E50910A0E1AF |
:10B3C0000800A0E10630A0E10520A0E1D51800EBBF |
:10B3D000522F8FE20C0092E81F2800EBA02A00EB0E |
:10B3E0001000C4E52034A0E11130C4E52038A0E10C |
:10B3F0001230C4E5200CA0E11300C4E51020D4E510 |
:10B400001130D4E5032482E11230D4E5032882E12F |
:10B410001330D4E5033C92E10C30C4050D30C40573 |
:10B420000E30C4050F30C4051100000AF4409FE53A |
:10B430000610A0E10500A0E1EC2A00EB0050A0E11D |
:10B440000910A0E10800A0E1E82A00EB0010A0E14B |
:10B450000500A0E1F2FEFFEB0C00C4E52034A0E102 |
:10B460000D30C4E52038A0E10E30C4E5200CA0E189 |
:10B470000F00C4E5AC309FE50020A0E3011082E39B |
:10B480000010C3E50120C3E50220C3E50320C3E5A6 |
:10B490000100A0E1F0AB1BE988209FE50030A0E3AC |
:10B4A0000430C2E50530C2E50630C2E50730C2E52A |
:10B4B0000830C2E50930C2E50A30C2E50B30C2E50A |
:10B4C0001030C2E51130C2E51230C2E51330C2E5DA |
:10B4D0000C30C2E50D30C2E50E30C2E50F30C2E5DA |
:10B4E0000030C2E50130C2E50230C2E50330C2E5FA |
:10B4F0000300A0E1F0AB1BE9F2D77A3E000000A008 |
:10B5000000806640000000000080764000000000DF |
:10B51000008066C00000000046DF913F399D52A2C6 |
:10B5200070356541000000A0E81600040DC0A0E1E0 |
:10B53000F0DF2DE904B04CE2444A9FE52F30D4E51A |
:10B540003020D4E5023483E13120D4E5023883E1B0 |
:10B550003220D4E5023C83E1010053E30D00000AF0 |
:10B560002202003A020053E32002001A143A9FE537 |
:10B57000000093E518DBFFEBFF0010E31B02000A5D |
:10B580000030A0E32F30C4E53030C4E53130C4E5ED |
:10B590003230C4E5150200EAF4FCFFEB960FA0E39D |
:10B5A00007DBFFEBDC399FE5000083E5D8299FE549 |
:10B5B000003092E5013083E2003082E5CC099FE55E |
:10B5C000BC199FE51730D1E51820D1E5023483E19D |
:10B5D0002C30C0E52334A0E12D30C0E51B30D1E58F |
:10B5E0001C20D1E5023483E12E30C0E52334A0E1F4 |
:10B5F0002F30C0E51130D1E54030C0E50030A0E388 |
:10B600004130C0E5DDFDFFEBFF0010E3C601000A9D |
:10B610007C399FE50A30D3E5080013E30800001ADF |
:10B6200070199FE50C30D1E50D20D1E5023483E19E |
:10B630000E20D1E5023883E10F20D1E5023C93E1F1 |
:10B640000D00001A38099FE548199FE5F7FDFFEB4B |
:10B65000FF0010E30500000A3C399FE5AF0FA0E3AF |
:10B66000B000C3E12C099FE530199FE5EFFDFFEB2A |
:10B670009CFCFFEB28399FE5000083E524199FE53A |
:10B680002630D1E52720D1E5023483E12820D1E519 |
:10B69000023883E12920D1E5023C83E1030053E332 |
:10B6A00003F19F979B0000EA18B90000B8B60000AC |
:10B6B000D8B6000014B70000EC289FE54C30D2E566 |
:10B6C0000630C3E34C30C2E54C30D2E5013083E3B1 |
:10B6D0004C30C2E58F0000EACC289FE54C30D2E523 |
:10B6E0000530C3E34C30C2E54C30D2E5023083E391 |
:10B6F0004C30C2E57BFCFFEBA4389FE5000083E5FE |
:10B70000B4FDFFEBFF0010E3A0289F058500000AB1 |
:10B71000800000EA90389FE54C20D3E50320C2E387 |
:10B720004C20C3E54C20D3E5042082E34C20C3E544 |
:10B730006C589FE5001095E5000051E35700000AA2 |
:10B740000C20D1E50D30D1E5032482E10E30D1E5A6 |
:10B75000032882E10F30D1E5034C92E10700001A83 |
:10B760006FFCFFEB000085E544389FE50040C3E532 |
:10B7700024389FE5FF10A0E3B010C3E1470000EAC2 |
:10B780001C389FE5001093E528389FE5003093E5CD |
:10B79000030051E10800001A0C30D1E50D20D1E57D |
:10B7A000023483E10E20D1E5023883E10F20D1E598 |
:10B7B000023C83E1010053E30600001AE0379FE5F5 |
:10B7C000002093E5EC379FE5002083E50020A0E30F |
:10B7D000DC379FE50020C3E5DC179FE50030D1E5AD |
:10B7E0000120D1E5023483E10220D1E5023883E172 |
:10B7F0000320D1E5023C93E11A00000AB0079FE55F |
:10B800000030D0E5000053E31600001A1020D1E507 |
:10B810001130D1E5032482E11230D1E5032882E121 |
:10B820001330D1E5032C82E174379FE5001093E5D6 |
:10B830001230D1E5033183E0033183E0030152E1AB |
:10B84000080000AA0130A0E30030C0E51330D1E5C4 |
:10B85000830263E0000183E08001A0E158DAFFEB9E |
:10B8600058379FE5000083E544479FE50030D4E565 |
:10B87000000053E30900000A40379FE5000093E50C |
:10B8800055DAFFEBFF0010E30400000A24FCFFEB95 |
:10B890000C379FE5000083E50030A0E30030C4E5ED |
:10B8A000FC469FE5003094E5000053E30400000AE5 |
:10B8B000CC069FE5F4169FE55CFDFFEB002094E5C8 |
:10B8C000180000EACC169FE50C30D1E50D20D1E53B |
:10B8D000023483E10E20D1E5023883E10F20D1E567 |
:10B8E000023C93E10600001AC0369FE5D0269FE592 |
:10B8F000003082E5A0369FE5FF20A0E3B020C3E141 |
:10B900000A0000EA78069FE5A0169FE547FDFFEBD9 |
:10B9100080269FE5030000EA64069FE58C169FE5FC |
:10B9200042FDFFEB0020A0E394369FE5002083E575 |
:10B930008C369FE5003093E5000053E30200001AC7 |
:10B9400080069FE57AFDFFEBD90000EA70369FE59F |
:10B95000001093E570369FE5003093E5030051E158 |
:10B960001400001A0C30D1E50D20D1E5023483E13A |
:10B970000E20D1E5023883E10F20D1E5023C83E1BE |
:10B98000010053E30B00000A18169FE51E30D1E5B5 |
:10B990001F20D1E5023483E12020D1E5023883E184 |
:10B9A0002120D1E5023C83E120269FE5002092E59D |
:10B9B000020053E1BE00000A04369FE5000093E553 |
:10B9C000D0159FE5D9FDFFEBFF0010E3AE00000AA4 |
:10B9D000E4859FE51000D8E51130D8E5030480E147 |
:10B9E0001230D8E5030880E11330D8E5030C80E17C |
:10B9F000B0159FE51E30D1E51F20D1E5023483E16B |
:10BA00002020D1E5023883E12120D1E5021C83E129 |
:10BA1000010050E1930000DA8C259FE54C30D2E51F |
:10BA2000083083E34C30C2E500A0A0E31010C8E565 |
:10BA30002134A0E11130C8E52138A0E11230C8E579 |
:10BA4000213CA0E11330C8E51020D8E51130D8E53D |
:10BA5000032482E11230D8E5032882E11330D8E5CF |
:10BA6000032C82E1080088E2041088E28EFDFFEBDF |
:10BA700050559FE50CA0C5E50DA0C5E50EA0C5E598 |
:10BA80000FA0C5E50C659FE50470D6E50530D6E549 |
:10BA9000037487E10630D6E5037887E10730D6E501 |
:10BAA000037C87E10470C5E52734A0E10530C5E5D6 |
:10BAB0002738A0E10630C5E5273CA0E10730C5E501 |
:10BAC0000440D5E50530D5E5034484E10630D5E5ED |
:10BAD000034884E10730D5E5034C84E10400D8E550 |
:10BAE0000530D8E5030480E10630D8E5030880E19D |
:10BAF0000730D8E5030C80E1CD2400EBD0149FE59E |
:10BB0000602400EBEE2400EB004084E00440C5E537 |
:10BB10002434A0E10530C5E52438A0E10630C5E5B0 |
:10BB2000244CA0E10740C5E50030D6E50120D6E56C |
:10BB3000023483E10220D6E5023883E10320D6E512 |
:10BB4000023C83E10030C5E52324A0E10120C5E5E6 |
:10BB50002328A0E10220C5E5233CA0E10330C5E590 |
:10BB60000040D5E50130D5E5034484E10230D5E558 |
:10BB7000034884E10330D5E5034C84E10800D8E5AF |
:10BB80000930D8E5030480E10A30D8E5030880E1F4 |
:10BB90000B30D8E5030C80E1A52400EB012500EB78 |
:10BBA0000190A0E10080A0E10700A0E17C2800EB6B |
:10BBB000ED2F8FE20C0092E8272600EB3B2E8FE260 |
:10BBC0000C0092E8242600EB971600EBEA2F8FE298 |
:10BBD0000C0092E8202600EB0130A0E10020A0E15B |
:10BBE0000910A0E10800A0E11E2700EB9C2800EB53 |
:10BBF000004084E00040C5E52434A0E10130C5E503 |
:10BC00002438A0E10230C5E5244CA0E10340C5E59D |
:10BC1000AC439FE5001094E50830D1E50920D1E55B |
:10BC2000023483E10A20D1E5023883E10B20D1E51B |
:10BC3000023C83E10830C5E52324A0E10920C5E5E5 |
:10BC40002328A0E10A20C5E5233CA0E10B30C5E58F |
:10BC500001308AE30C30C5E50DA0C5E50EA0C5E5B1 |
:10BC60000FA0C5E50A0000EA54339FE5000093E504 |
:10BC700050139FE56DFCFFEB2C239FE54C30D2E584 |
:10BC80000830C3E34C30C2E5010000EA34039FE50D |
:10BC9000A7FCFFEB28339FE5001093E50030A0E3FD |
:10BCA000022083E30C20C1E50D30C1E50E30C1E573 |
:10BCB0000F30C1E5EC129FE51E30D1E51F20D1E524 |
:10BCC000023483E12020D1E5023883E12120D1E54F |
:10BCD000023C83E1F4229FE5003082E5E0329FE5FB |
:10BCE000002093E5E0329FE5002083E590029FE588 |
:10BCF000D0129FE50DFDFFEBFF0010E30800000AE6 |
:10BD0000D0229FE50030A0E30030C2E50130C2E55B |
:10BD10000230C2E50330C2E50430C2E50530C2E5B9 |
:10BD20002B0000EA98FCFFEB290000EA96FCFFEBF1 |
:10BD300070129FE52630D1E52720D1E5023483E15A |
:10BD40002820D1E5023883E12920D1E5023C83E1B6 |
:10BD5000010053E31E00000A24329FE51030D3E5B2 |
:10BD6000010013E30A00001A1C329FE5002093E54E |
:10BD700064329FE5920383E02331A0E1033183E045 |
:10BD8000030052E110329F056410A003B010C301FC |
:10BD90000F00000AE8319FE51120D3E504329FE54A |
:10BDA0001830D3E5030052E10900002AD8319FE59D |
:10BDB000002093E520329FE5924383E02331A0E108 |
:10BDC000033183E0030052E1CC319F050A00A00358 |
:10BDD000B000C301A8319FE50020A0E3021082E378 |
:10BDE0002F10C3E53020C3E53120C3E53220C3E581 |
:10BDF00098019FE5C0419FE50430D4E50520D4E5D6 |
:10BE0000023483E13830C0E52334A0E13930C0E5A5 |
:10BE10000830D4E50920D4E5023483E13A30C0E5A6 |
:10BE20002334A0E13B30C0E5A8119FE50030D1E507 |
:10BE30000120D1E5023483E13C30C0E52334A0E1A8 |
:10BE40003D30C0E50230D1E50320D1E5023483E185 |
:10BE50003E30C0E52334A0E13F30C0E520019FE53E |
:10BE600044119FE5F1FBFFEB58019FE56C119FE545 |
:10BE7000EEFBFFEB30119FE504019FE51130D0E5AB |
:10BE80003A30C1E51030D4E51120D4E5023483E125 |
:10BE90002030C1E52334A0E12130C1E50C30D4E5E8 |
:10BEA0000D20D4E5023483E12230C1E52334A0E142 |
:10BEB0002330C1E5D8E09FE50930DEE54130C1E53A |
:10BEC0002330D0E52420D0E5023483E14230C1E5BF |
:10BED0002334A0E14330C1E52730D0E52820D0E568 |
:10BEE000023483E14430C1E52334A0E14530C1E5AB |
:10BEF000EC009FE50930D0E50A20D0E5023483E16B |
:10BF00004630C1E52334A0E14730C1E50130D0E53A |
:10BF10000220D0E5023483E10338A0E14328A0E108 |
:10BF2000C0C09FE59C42C2E0C33FA0E1423163E054 |
:10BF30004830C1E50330D0E50420D0E5023483E188 |
:10BF40000338A0E14328A0E19C02C2E0C33FA0E186 |
:10BF5000423163E04930C1E50830DEE54A30C1E5F1 |
:10BF60000A30DEE54B30C1E5F0AF1BE9F2D77A3E8F |
:10BF7000000000A046DF913F399D52A28BCAF13FDD |
:10BF800000000060B8040004700500046C050004A3 |
:10BF9000581300044808000450050004E00700049A |
:10BFA000C41100046405000400170004A01100047B |
:10BFB000400500048C05000478050004E816000420 |
:10BFC00090050004600500047C050004740500046D |
:10BFD000380200045B548E3FE0160004CDCCCCCC7C |
:10BFE000B011000410090004676666660DC0A0E188 |
:10BFF00000D82DE904B04CE2692700EB14208FE251 |
:10C000000C0092E8142500EB10208FE20C0092E85F |
:10C01000112500EB00A81BE9F2D77A3E000000A032 |
:10C0200046DF913F399D52A20DC0A0E100D82DE915 |
:10C0300004B04CE25A2700EB08208FE20C0092E893 |
:10C04000052500EB00A81BE9F2D77A3E000000A00E |
:10C0500018F09FE518F09FE518F09FE518F09FE5B0 |
:10C0600018F09FE50000A0E118F09FE518F09FE5AB |
:10C07000A0C1000090C0000094C0000098C0000063 |
:10C080009CC0000000000000A0C00000A4C0000090 |
:10C09000230000EA1A0000EA280000EA2F0000EA64 |
:10C0A000000000EA350000EA04E04EE2FF5F2DE9FF |
:10C0B00000104FE102002DE92C029FE5000090E501 |
:10C0C00028129FE5001091E50000A0E10000A0E12A |
:10C0D0001FF021E300402DE914E29FE500F0A0E10C |
:10C0E0000040BDE8D2F021E3FC019FE5000080E5BF |
:10C0F000F8119FE5001081E50200BDE801F06FE155 |
:10C10000FF9FFDE8FF5F2DE900104FE102002DE9E0 |
:10C110000D10A0E16FD2FFEB0200BDE801F06FE16E |
:10C12000FF9FFDE8FF5F2DE900104FE102002DE9C0 |
:10C1300071D2FFEB0200BDE801F06FE1FF9FFDE867 |
:10C1400004E04EE2FF5F2DE900104FE102002DE90F |
:10C1500072D2FFEB0200BDE801F06FE1FF9FFDE846 |
:10C1600008E04EE2FF5F2DE900104FE102002DE9EB |
:10C1700059D2FFEB0200BDE801F06FE1FF9FFDE83F |
:10C1800004E04EE2FF402DE900104FE102002DE9EE |
:10C1900061D2FFEB0200BDE801F06FE1FF80FDE836 |
:10C1A00050119FE50020A0E3011041E2020051E19F |
:10C1B000FCFFFF8A40019FE540119FE5341080E5B8 |
:10C1C00034019FE538119FE5001080E50000A0E1F3 |
:10C1D0000000A0E10000A0E10000A0E10000A0E15B |
:10C1E0000000A0E10000A0E10000A0E10000A0E14B |
:10C1F0000000A0E10000A0E10000A0E10000A0E13B |
:10C200000000A0E10000A0E10000A0E10267A0E3BF |
:10C210006070A0E3B070C6E1E8609FE50370A0E342 |
:10C22000B070C6E1E0109FE5041080E5081090E5CD |
:10C23000011011E2FCFFFF0AD0109FE5001080E51D |
:10C24000CC109FE51C1080E5C8109FE5201080E50C |
:10C25000C4009FE5D1F021E300D0A0E1800040E2DE |
:10C26000D2F021E300D0A0E1020B40E2D7F021E3BD |
:10C2700000D0A0E1040040E2DBF021E300D0A0E127 |
:10C28000040040E2D3F021E300D0A0E1800040E2CE |
:10C2900010F021E300D0A0E101AB4DE27C109FE55E |
:10C2A0007C209FE57C309FE5030052E1040091343F |
:10C2B00004008234FBFFFF3A0000A0E368109FE512 |
:10C2C00068209FE5020051E104008134FCFFFF3A41 |
:10C2D0000000A0E358109FE558209FE5020051E1BF |
:10C2E00004008134FCFFFF3AECD0FFEA30F0FFFF9E |
:10C2F000300000FCE0C0000020A107000020005C2E |
:10C3000096010000020002004030080019C00B0036 |
:10C3100080000200731B000001C8FE0000800104C1 |
:10C32000F0B8010000000004B8030004C0030004DA |
:10C33000A8180004A8180004A81800041713A0E304 |
:10C34000021A81E2002091E50320C2E3000050E3DD |
:10C35000002082110700001A043091E5020713E360 |
:10C360000200000A083091E5010013E30100001A01 |
:10C370000000A0E30EF0A0E11733A0E3023A83E24D |
:10C38000002083E50100A0E30EF0A0E10DC0A0E1D4 |
:10C3900070D82DE904B04CE2FF4000E2FF5001E20A |
:10C3A000FF6002E20000A0E3100000EB010050E398 |
:10C3B0000000A01370A81B191723A0E3022A82E231 |
:10C3C0000030A0E3043082E5043092E5043483E1D8 |
:10C3D000043082E5043092E5033085E1043082E5E3 |
:10C3E000043092E5063883E1043082E570A81BE949 |
:10C3F00004D04DE2010050E31500001A1723A0E31A |
:10C40000022A82E2043092E5020713E30200000AE6 |
:10C41000083092E5010013E32400001A1733A0E36B |
:10C42000023A83E2082093E5012082E3082083E5B5 |
:10C43000042093E5022782E3042083E51723A0E389 |
:10C44000022A82E2083092E5000053E3FCFFFF0A73 |
:10C45000140000EA1733A0E3023A83E2003093E5C8 |
:10C46000030013E31100000A0A30A0E300308DE559 |
:10C4700000309DE5000053E30500000A00309DE513 |
:10C48000013043E200308DE500309DE5000053E3CC |
:10C49000F9FFFF1A1723A0E3022A82E2043092E593 |
:10C4A0000237C3E3043082E50100A0E3000000EAA4 |
:10C4B0000000A0E304D08DE20EF0A0E11723A0E37A |
:10C4C000022A82E2003092E51C30C3E3003082E5AC |
:10C4D0001D0070E30030921503308011003082158A |
:10C4E0000EF0A0E11723A0E3022A82E2003092E5D9 |
:10C4F0006030C3E3003082E5610070E300309215E4 |
:10C5000003308011003082150EF0A0E11723A0E364 |
:10C51000022A82E2003092E5063DC3E3003082E564 |
:10C52000063DE0E3030050E1003092150330801136 |
:10C53000003082150EF0A0E1010051E31723A003A3 |
:10C54000022A820218309205033080011723A013BB |
:10C55000022A8212183092150030C311183082E579 |
:10C560000EF0A0E1010051E31723A003022A82028A |
:10C5700014309205033080011723A013022A82127F |
:10C58000143092150030C311143082E50EF0A0E192 |
:10C59000000051E31723A003022A820220309205F3 |
:10C5A000033080011723A013022A82122030921533 |
:10C5B0000030C311203082E50EF0A0E1000051E30D |
:10C5C0001723A003022A82021C3092050330800147 |
:10C5D0001723A013022A82121C3092150030C311B7 |
:10C5E0001C3082E50EF0A0E1010051E31723A00307 |
:10C5F000022A820228309205033080011723A013FB |
:10C60000022A8212283092150030C311283082E5A8 |
:10C610000EF0A0E1010051E31723A003022A8202D9 |
:10C6200024309205033080011723A013022A8212BE |
:10C63000243092150030C311243082E50EF0A0E1C1 |
:10C64000010051E31723A003022A82023030920531 |
:10C65000033080011723A013022A82123030921572 |
:10C660000030C311303082E50EF0A0E1010051E34B |
:10C670001723A003022A82022C3092050330800186 |
:10C680001723A013022A82122C3092150030C311F6 |
:10C690002C3082E50EF0A0E11723A0E3022A82E20B |
:10C6A000003092E5023CC3E3003082E5020C50E327 |
:10C6B00000309205023C8303003082050EF0A0E1B9 |
:10C6C000FF0010E30900001A1723A0E3022A82E208 |
:10C6D000003092E5023AC3E3003082E5010051E305 |
:10C6E00000309205023A83030EF0A011080000EA20 |
:10C6F0001723A0E3022A82E2003092E50139C3E366 |
:10C70000003082E5010051E30EF0A011003092E507 |
:10C71000013983E3003082E50EF0A0E10118A0E1C9 |
:10C720004118A0E1FF0010E31723A003022A8202B0 |
:10C730000138A0012338A001383082051723A01347 |
:10C74000022A82120138A0112338A0113C30821530 |
:10C750000EF0A0E11723A0E3022A82E2003092E566 |
:10C76000033BC3E3003082E5033BE0E3030050E119 |
:10C770000030921503308011003082150EF0A0E1D8 |
:10C78000010050E31723A003022A82020030920521 |
:10C79000013A83031723A013022A82120030921554 |
:10C7A000013AC313003082E50EF0A0E11723A0E3A5 |
:10C7B000022A82E2003092E50138C3E3003082E5CC |
:10C7C0000138E0E3030050E1003092150138831393 |
:10C7D000003082150EF0A0E11723A0E3022A82E2C6 |
:10C7E000003092E50638C3E3003082E50638E0E326 |
:10C7F000030050E100309215023883130030821597 |
:10C800000EF0A0E11723A0E3022A82E2343092E581 |
:10C810004030C3E3343082E5410070E33430921598 |
:10C8200040308313343082150EF0A0E11723A0E3CB |
:10C83000022A82E2343092E5013CC3E3343082E5DF |
:10C84000013CE0E3030050E134309215013C8313D6 |
:10C85000343082151723A0E3022A82E2343092E5B5 |
:10C860008030C3E3343082E5810071E334309215C7 |
:10C8700080308313343082150EF0A0E1010051E3C3 |
:10C880001723A003022A8202103092050030C30150 |
:10C890001723A013022A8212103092150330801140 |
:10C8A000103082E50EF0A0E11733A0E3023A83E2F4 |
:10C8B000083093E5030010E10000A0030100A0137D |
:10C8C0000EF0A0E11733A0E3023A83E2080083E50B |
:10C8D0000EF0A0E10DC0A0E100D82DE904B04CE2BB |
:10C8E0001733A0E3023A83E2041093E5042093E5B2 |
:10C8F000FF2C02E2043093E5073803E223C8A0E1ED |
:10C90000FF1011E20030A0030130A0132204A0E1C7 |
:10C91000000052E30030A00301300312000053E393 |
:10C920000000A00300A81B0914309FE5003093E528 |
:10C93000930000E08000A0E1111CA0E12D1E00EB9F |
:10C9400000A81BE9009401000DC0A0E100D82DE96A |
:10C9500004B04CE21733A0E3023A83E2003093E5DF |
:10C96000033003E2020053E328309F0500009305E3 |
:10C9700000A81B091733A0E3023A83E2003093E5D5 |
:10C98000033003E2010053E32000A00300A81B09C9 |
:10C99000CFFFFFEB00A81BE9009401000DC0A0E150 |
:10C9A00010D82DE904B04CE21733A0E3023A83E239 |
:10C9B000004093E51C4004E2140054E32441A0111C |
:10C9C0000A40A003DFFFFFEB3004A0E110A81BE941 |
:10C9D0000DC0A0E110D82DE904B04CE21733A0E35C |
:10C9E000023A83E2004093E5604004E2A442A0E101 |
:10C9F000E9FFFFEB3004A0E110A81BE90DC0A0E1A6 |
:10CA000010D82DE904B04CE21733A0E3023A83E2D8 |
:10CA1000004093E5064D04E2A443A0E1DEFFFFEBF6 |
:10CA20003004A0E110A81BE9FF0000E2070050E37A |
:10CA30000800008A1733A0E3023A83E2B02093E5AE |
:10CA40000720C2E3B02083E5B02093E5022080E117 |
:10CA5000B02083E50EF0A0E10F0050E30800008A4B |
:10CA60001723A0E3022A82E2B03092E53830C3E314 |
:10CA7000B03082E5081040E2B03092E5813183E1C8 |
:10CA8000090000EA170050E30900008A1723A0E319 |
:10CA9000022A82E2B03092E5073DC3E3B03082E57E |
:10CAA000101040E2B03092E5013383E1B03082E50E |
:10CAB0000EF0A0E11723A0E3022A82E2B03092E553 |
:10CAC0000E3CC3E3B03082E5181040E2B03092E58E |
:10CAD000813483E1F4FFFFEA010050E31723A00350 |
:10CAE000022A82020C309205083083031723A01318 |
:10CAF000022A82120C3092150830C3130C3082E5E2 |
:10CB00000EF0A0E11723A0E3022A82E20C3092E5A6 |
:10CB1000013083E30C3082E50EF0A0E11723A0E39F |
:10CB2000022A82E20C3092E5023083E30C3082E587 |
:10CB30000EF0A0E1FF0000E2FF1001E2010051E36E |
:10CB40001000001A000050E31723A003022A8202FB |
:10CB500034309205013B83030800000A010050E3D2 |
:10CB60001723A013022A821234309215013A83133C |
:10CB70001723A003022A820234309205023B83036A |
:10CB8000343082E50EF0A0E1000050E31723A0034B |
:10CB9000022A820234309205013BC303F7FFFF0AE9 |
:10CBA000010050E31723A003022A820234309205C9 |
:10CBB000023BC3031723A013022A821234309215BA |
:10CBC000013AC313EDFFFFEA010050E31723A0036E |
:10CBD000022A820234309205013083031723A01306 |
:10CBE000022A8212343092150130C313343082E5A8 |
:10CBF0000EF0A0E10DC0A0E110D82DE904B04CE288 |
:10CC00000040A0E11633A0E3063A83E2030050E1BE |
:10CC10000B00001A0109A0E30110A0E35BFEFFEB8B |
:10CC20000109A0E30010A0E358FEFFEB1723A0E3E7 |
:10CC3000022A82E20030A0E3843082E5443082E5BB |
:10CC4000643082E51633A0E3073A83E2030054E13F |
:10CC50000B00001A0209A0E30110A0E34BFEFFEB5A |
:10CC60000209A0E30010A0E348FEFFEB1723A0E3B6 |
:10CC7000022A82E20030A0E3883082E5483082E573 |
:10CC8000683082E51633A0E3023983E2030054E101 |
:10CC90000B00001A0108A0E30110A0E33BFEFFEB2C |
:10CCA0000108A0E30010A0E338FEFFEB1723A0E388 |
:10CCB000022A82E20030A0E38C3082E54C3082E52B |
:10CCC0006C3082E51633A0E3093A83E2030054E1B5 |
:10CCD0000B00001A0208A0E30110A0E32BFEFFEBFB |
:10CCE0000208A0E30010A0E328FEFFEB1723A0E357 |
:10CCF000022A82E20030A0E3903082E5503082E5E3 |
:10CD0000703082E51633A0E30A3A83E2030054E16F |
:10CD10000C00001A0107A0E30110A0E31BFEFFEBCB |
:10CD20000107A0E30010A0E318FEFFEB1723A0E328 |
:10CD3000022A82E20030A0E3943082E5543082E59A |
:10CD4000743082E5BC3082E51633A0E30B3A83E20F |
:10CD5000030054E10B00001A0207A0E30110A0E356 |
:10CD60000AFEFFEB0207A0E30010A0E307FEFFEBC3 |
:10CD70001723A0E3022A82E20030A0E3983082E584 |
:10CD8000583082E5783082E51633A0E3033983E238 |
:10CD9000030054E10B00001A0106A0E30110A0E318 |
:10CDA000FAFDFFEB0106A0E30010A0E3F7FDFFEBA7 |
:10CDB0001723A0E3022A82E20030A0E39C3082E540 |
:10CDC0005C3082E57C3082E51633A0E30D3A83E2E5 |
:10CDD000030054E10B00001A0206A0E30110A0E3D7 |
:10CDE000EAFDFFEB0206A0E30010A0E3E7FDFFEB86 |
:10CDF0001723A0E3022A82E20030A0E3A03082E5FC |
:10CE0000603082E5803082E51633A0E30E3A83E29B |
:10CE1000030054E10A00001A0105A0E30110A0E399 |
:10CE2000DAFDFFEB0105A0E30010A0E3D7FDFFEB67 |
:10CE30001733A0E3023A83E20020A0E3A42083E5B5 |
:10CE4000AC2083E51633A0E30F3A83E2030054E1FC |
:10CE500010A81B190205A0E30110A0E3CBFDFFEB16 |
:10CE60000205A0E30010A0E3C8FDFFEB1733A0E329 |
:10CE7000023A83E20020A0E3A82083E5AC2083E50A |
:10CE800010A81BE90DC0A0E1F0DD2DE904B04CE2D3 |
:10CE90000050A0E10140A0E18E0000EBFFA000E205 |
:10CEA0000130D4E5010053E30030D405002495059A |
:10CEB000023083010020D415003495150230C311CF |
:10CEC000003485E50010A0E30100A0E31783A0E390 |
:10CED000028A88E20AE1A0E117738EE2027A87E211 |
:10CEE00017638EE2026A86E20030D4E5103103E077 |
:10CEF0005331A0E1010053E32E00001A07005AE36A |
:10CF00002100008A08C08EE08150A0E144309CE5F9 |
:10CF10000320A0E31235C3E144308CE5B420D4E112 |
:10CF2000010052E344309C051235830144308C05E6 |
:10CF3000B4C0D4E102005CE38120A0014430970535 |
:10CF40001C32830144308705B4C0D4E103005CE3A4 |
:10CF50008120A001443096051C32830144308605AF |
:10CF600017238EE2022A82E210C1A0E1643092E52A |
:10CF70000C30C3E1643082E50330D4E5010053E3B3 |
:10CF80006430920503308C016430820517238EE2F1 |
:10CF9000022A82E210C1A0E1843092E50C30C3E1A4 |
:10CFA000843082E50230D4E5010053E384309205F9 |
:10CFB00003308C0184308205013081E2FF1003E2EE |
:10CFC000070051E3F0AD1B89C6FFFFEA0030E0E344 |
:10CFD0000030C0E50030A0E30130C0E50230C0E51C |
:10CFE0000330C0E5B430C0E10EF0A0E1FF1001E273 |
:10CFF0000131A0E10330D0E7030011E10000A003FC |
:10D000000100A0130EF0A0E1FF3FA0E30300D0E772 |
:10D01000FF0000E20EF0A0E1FF1001E2010052E388 |
:10D020000131A0010310C0070121A0110030A0139D |
:10D030000230C0170EF0A0E1FF1001E2FF3FA0E3B5 |
:10D040000310C0E70EF0A0E1010050E31733A00386 |
:10D05000023A8302AC0083051733A013023A83120D |
:10D060000020A013AC2083150EF0A0E10DC0A0E1BC |
:10D0700030D82DE904B04CE2FF5000E2010051E34A |
:10D080000E00001A1743A0E3024A84E20500A0E163 |
:10D090003E0000EB0008A0E1543094E5203803E0A6 |
:10D0A000543084E5743094E50530C3E1743084E590 |
:10D0B000BC3094E5033085E1BC3084E530A81BE941 |
:10D0C0001723A0E3022A82E2BC3092E50530C3E1D7 |
:10D0D000BC3082E530A81BE91633A0E3073A83E2AF |
:10D0E000030050E10100A0030EF0A0011633A0E3FD |
:10D0F000023983E2030050E10200A0030EF0A00118 |
:10D100001633A0E3093A83E2030050E10300A003D1 |
:10D110000EF0A0011633A0E30A3A83E2030050E1C7 |
:10D120000400A0030EF0A0011633A0E30B3A83E243 |
:10D13000030050E10500A0030EF0A0011633A0E3A8 |
:10D14000033983E2030050E10600A0030EF0A001C2 |
:10D150001633A0E30D3A83E2030050E10700A00379 |
:10D160000EF0A0011633A0E30E3A83E2030050E173 |
:10D170000800A0030EF0A0011633A0E30F3A83E2EB |
:10D18000030050E10900A0030000A0130EF0A0E18D |
:10D19000FF0000E2010050E3FF0CA003FC0080024E |
:10D1A0000EF0A001020050E3FF0CA003F300800288 |
:10D1B0000EF0A001040050E3FF0CA003CF0080029A |
:10D1C0000EF0A001080050E3FF0CA0033F00800216 |
:10D1D0000EF0A001100050E33F0BA0030200000A74 |
:10D1E000200050E30200001AF30CA0E3FF0080E2ED |
:10D1F0000EF0A0E1400050E3CF0CA003FAFFFF0ABD |
:10D20000FF3DA0E33F3083E2800050E30000A01325 |
:10D210000300A0010EF0A0E10DC0A0E100D82DE9AF |
:10D2200004B04CE21733A0E3013983E2030050E17C |
:10D230000400001A0800A0E30110A0E3D3FCFFEBF8 |
:10D240000800A0E3070000EA1733A0E3053A83E2F1 |
:10D25000030050E10600001A1000A0E30110A0E353 |
:10D26000CAFCFFEB1000A0E30010A0E3C7FCFFEB3B |
:10D2700000A81BE91733A0E3063A83E2030050E15C |
:10D2800000A81B192000A0E30110A0E3BFFCFFEBE6 |
:10D290002000A0E3F3FFFFEA0DC0A0E1F0D92DE9E3 |
:10D2A00004B04CE20070A0E10180A0E1BC32D0E10A |
:10D2B0006030C3E3BC32C0E1BC32D0E1B020D1E188 |
:10D2C000023083E1BC32C0E1B230D1E1080053E367 |
:10D2D000BC32D00108308303BC32D0110830C313F4 |
:10D2E000BC32C7E1BC32D7E18630C3E3BC32C7E110 |
:10D2F000BC32D7E1B420D8E1023083E1BC32C7E1CF |
:10D3000090FDFFEB803260E0033180E08331A0E1EB |
:10D310000300A0E10010A0E31733A0E3023A83E288 |
:10D32000003093E5022C13E20B00001AC14FA0E17C |
:10D33000A43FA0E10240A0E10120A0E10010A0E193 |
:10D34000031091E00420A2E0A100A0E1823F80E16F |
:10D35000C240A0E10410A0E10300A0E10121A0E18E |
:10D36000204F82E10031A0E10460A0E10350A0E180 |
:10D37000005095E00160A6E00621A0E1254F82E182 |
:10D380000531A0E1035095E00460A6E00631A0E17C |
:10D39000251F83E10501A0E1082098E50222A0E114 |
:10D3A0000030A0E3161C00EBBC209FE5921083E048 |
:10D3B000A332A0E1B432C7E1B432D7E1033183E054 |
:10D3C000033183E0030140E00003A0E1320080E28A |
:10D3D000921083E0A332A0E1B832C7E1B033D7E1C5 |
:10D3E0000339A0E12339A0E1B033C7E1B033D7E17D |
:10D3F000BC20D8E1023083E1B033C7E1B033D7E1DC |
:10D40000033CC3E3B033C7E1B033D7E1BE20D8E17A |
:10D41000023083E1B033C7E1B031D8E1100053E30B |
:10D42000BC32D7111030C313BC32C711F0A91B197D |
:10D43000BC32D7E1103083E3BC32C7E1B433D7E16B |
:10D440003F30C3E3B433C7E1B821D8E1B433D7E107 |
:10D45000823183E1B433C7E1B433D7E1B421D8E1F9 |
:10D46000023083E1B433C7E1F0A91BE91F85EB511A |
:10D470006030A0E3B030C0E10830E0E3B230C0E19A |
:10D480000220A0E3B420C0E1963DA0E3083080E58F |
:10D490000030A0E3BC30C0E1033CA0E3BE30C0E1FB |
:10D4A0001030A0E3B031C0E1142080E5182080E501 |
:10D4B0000EF0A0E1010051E3B033D001013083034D |
:10D4C000B033D0110130C313B033C0E10EF0A0E18E |
:10D4D0000118A0E14118A0E1010052E3B833D001E6 |
:10D4E00001308301B833D0110130C311B833C0E12A |
:10D4F0000EF0A0E10118A0E1050871E3B834D001F5 |
:10D500000430C303B834D01104308313B834C0E1FD |
:10D510000EF0A0E1FF1001E2020051E30500001A45 |
:10D52000010052E3B834D00102308303B834D01183 |
:10D530000230C313B834C0E1010051E30EF0A01172 |
:10D54000010052E3B834D00101308303B834D01164 |
:10D550000130C313B834C0E10EF0A0E1010051E383 |
:10D56000B033D00180308303B033D0118030C31387 |
:10D57000B033C0E10EF0A0E10030A0E30118A0E15B |
:10D58000A12AA0E12118A0E11F1001E2010052E34D |
:10D59000B430D0010400000A020052E3B831D001D7 |
:10D5A0000100000A030052E3BC33D0010100A0E3F4 |
:10D5B000103113E00000A0030EF0A0E1AA30A0E3B8 |
:10D5C000B430C0E10EF0A0E10118A0E1B034D0E128 |
:10D5D000213813E00000A0030100A0130EF0A0E129 |
:10D5E0000118A0E14118A0E1B414C0E10EF0A0E1DF |
:10D5F000FF0000E2020050E31723A003052A820285 |
:10D600000700000A030000CA010050E31723A0032B |
:10D6100001298202020000EA030050E31723A0035D |
:10D62000062A8202010051E3B033D20104308303A1 |
:10D63000B033D2110430C313B033C2E10EF0A0E115 |
:10D640000DC0A0E130D82DE904B04CE20150A0E1BA |
:10D65000FF0000E2020050E31743A003054A8402E2 |
:10D660000700000A030000CA010050E31743A003AB |
:10D6700001498402020000EA030050E31743A003BB |
:10D68000064A8402DCFCFFEB803260E0033180E07C |
:10D690008302A0E1830180E08000A0E10510A0E109 |
:10D6A000D41A00EB050080E20C309FE5902383E064 |
:10D6B000A331A0E1B032C4E130A81BE9CDCCCCCC81 |
:10D6C000FF0000E2020050E31723A003052A8202B4 |
:10D6D0000700000A030000CA010050E31723A0035B |
:10D6E00001298202020000EA030050E31723A0038D |
:10D6F000062A8202010051E3B033D20102308303D3 |
:10D70000B033D2110230C313B033C2E10EF0A0E146 |
:10D71000FF1001E2B010C0E10EF0A0E1B000D0E1D6 |
:10D72000FF0000E20EF0A0E1BC32D0E1013083E363 |
:10D73000BC32C0E10EF0A0E1000050E31723A003CB |
:10D7400001298202B033D201023B83031723A013C5 |
:10D7500001298212B033D211023BC313B033C2E1AC |
:10D760000EF0A0E1000050E31723A003012982027C |
:10D77000B033D201013B83031723A0130129821286 |
:10D78000B033D211013BC313B033C2E10EF0A0E1BC |
:10D790000DC0A0E100D82DE904B04CE22000A0E3C8 |
:10D7A0000110A0E384FBFFEB2000A0E30010A0E346 |
:10D7B00081FBFFEB00A81BE90008A0E10110A0E33A |
:10D7C0004038A0E12008A0E10F0050E30600008AE5 |
:10D7D0000231A0E3C339A0E1003093E5110093E1E9 |
:10D7E0000100A0110000A0030EF0A0E10338A0E1A9 |
:10D7F0002338A0E1103043E23F23A0E3002092E56C |
:10D80000112392E10000A0030100A0130EF0A0E19B |
:10D810000008A0E10110A0E34038A0E12008A0E149 |
:10D820000F0050E30600008A0231A0E3C339A0E1F3 |
:10D83000083093E5110093E10100A0110000A0035E |
:10D840000EF0A0E10338A0E12338A0E1103043E25C |
:10D850003F23A0E3082092E5112392E10000A003FA |
:10D860000100A0130EF0A0E10008A0E10110A0E368 |
:10D870004038A0E12008A0E10F0050E30600008A34 |
:10D880000231A0E3C339A0E1043093E5110093E134 |
:10D890000100A0110000A0030EF0A0E10338A0E1F8 |
:10D8A0002338A0E1103043E23F23A0E3042092E5B7 |
:10D8B000112392E10000A0030100A0130EF0A0E1EB |
:10D8C0000008A0E101C0A0E34028A0E12008A0E1F9 |
:10D8D0000F0050E30B00008A000051E30211A01377 |
:10D8E000C119A0110228A0112228A0111300001AAA |
:10D8F0000221A0E3C229A0E10C3092E51C30C3E173 |
:10D900000C3082E50EF0A0E1000051E33F13A013BC |
:10D910000228A0112228A011102042120700001A8C |
:10D920003F13A0E30228A0E12228A0E1102042E258 |
:10D930000C3091E51C32C3E10C3081E50EF0A0E122 |
:10D940000C3091E51C3283E1FAFFFFEA0008A0E108 |
:10D950004008A0E101C0A0E30C0051E11100001A51 |
:10D960000038A0E12318A0E10F0051E30500008A70 |
:10D970000221A0E3C229A0E1103092E51C3183E12D |
:10D98000103082E50EF0A0E13F13A0E30028A0E1F3 |
:10D990002228A0E1102042E2103091E51C3283E100 |
:10D9A000103081E50EF0A0E10038A0E12318A0E1DD |
:10D9B0000F0051E30500008A0221A0E3C229A0E183 |
:10D9C000143092E51C3183E1143082E50EF0A0E1C1 |
:10D9D0003F13A0E30028A0E12228A0E1102042E2AA |
:10D9E000143091E51C3283E1143081E50EF0A0E1A2 |
:10D9F0000008A0E14028A0E101C0A0E30C0051E133 |
:10DA00001100001A0238A0E12318A0E10F0051E331 |
:10DA10000500008A0221A0E3C229A0E1183092E5A6 |
:10DA20001C3183E1183082E50EF0A0E13F13A0E342 |
:10DA30000228A0E12228A0E1102042E2183091E55E |
:10DA40001C3283E1183081E50EF0A0E10238A0E13C |
:10DA50002308A0E10F0050E30231A093C339A09145 |
:10DA60001C20A0911C2083950238A0812338A0811E |
:10DA7000103043821C33A0813F23A0831C30828559 |
:10DA80000EF0A0E1010050E30800001A0221A0E31B |
:10DA9000C229A0E1203092E5013083E3203082E505 |
:10DAA0003F23A0E3203092E5013083E3070000EA42 |
:10DAB0000221A0E3C229A0E1203092E50130C3E3B6 |
:10DAC000203082E53F23A0E3203092E50130C3E31C |
:10DAD000203082E50EF0A0E1300090E50EF0A0E1EC |
:10DAE0000118A0E14118A0E10008A0E10F0850E3EF |
:10DAF0000138A0912337A091002F03950138A08110 |
:10DB00002337A0813F338382002183850EF0A0E17B |
:10DB10000008A0E14038A0E12008A0E10F0050E398 |
:10DB20000031A091000F13950338A0812337A08105 |
:10DB30003F338382C00093850EF0A0E10118A0E17D |
:10DB40004118A0E10008A0E10F0850E30500008A99 |
:10DB50000128A0E12227A0E1003E12E5203083E366 |
:10DB6000003E02E50EF0A0E10128A0E12227A0E19D |
:10DB70003F2382E2003292E5203083E3003282E5E7 |
:10DB80000EF0A0E10008A0E10118A0E14118A0E119 |
:10DB900040C8A0E12008A0E10F0050E30800008A7F |
:10DBA0000138A0E12337A0E1002E13E51F20C2E3D6 |
:10DBB000002E03E5002E13E5022080E1002E03E590 |
:10DBC0000EF0A0E10128A0E12227A0E13F2382E29C |
:10DBD000003292E51F30C3E3003282E50C38A0E149 |
:10DBE0002338A0E1103043E2001292E5013083E1D6 |
:10DBF000003282E50EF0A0E10DC0A0E170D82DE961 |
:10DC000004B04CE20160A0E10008A0E1FF5002E294 |
:10DC10004048A0E12008A0E11F0050E300F19F97D9 |
:10DC2000BF0000EAA4DC0000B8DC0000CCDC00008F |
:10DC3000E0DC0000F4DC000008DD00001CDD00007A |
:10DC400030DD000044DD000058DD00006CDD000028 |
:10DC500080DD000094DD0000A8DD0000BCDD0000D8 |
:10DC6000D0DD0000E4DD0000F8DD00000CDE000087 |
:10DC700020DE000034DE000048DE00005CDE000034 |
:10DC800070DE000084DE000098DE0000ACDE0000E4 |
:10DC9000C0DE0000D4DE0000E8DE0000FCDE000094 |
:10DCA00010DF00000408A0E12008A0E10510A0E1B9 |
:10DCB0009C229FE5990000EA0408A0E12008A0E169 |
:10DCC0000510A0E18C229FE5940000EA0408A0E181 |
:10DCD0002008A0E10510A0E17C229FE58F0000EA6A |
:10DCE0000408A0E12008A0E10510A0E16C229FE556 |
:10DCF0008A0000EA0408A0E12008A0E10510A0E1E4 |
:10DD00005C229FE5850000EA0408A0E12008A0E16C |
:10DD10000510A0E14C229FE5800000EA0408A0E184 |
:10DD20002008A0E10510A0E13C229FE57B0000EA6D |
:10DD30000408A0E12008A0E10510A0E12C229FE545 |
:10DD4000760000EA0408A0E12008A0E10510A0E1A7 |
:10DD50001C229FE5710000EA0408A0E12008A0E170 |
:10DD60000510A0E10C229FE56C0000EA0408A0E188 |
:10DD70002008A0E10510A0E1FC219FE5670000EA72 |
:10DD80000408A0E12008A0E10510A0E1EC219FE536 |
:10DD9000620000EA0408A0E12008A0E10510A0E16B |
:10DDA000DC219FE55D0000EA0408A0E12008A0E175 |
:10DDB0000510A0E1CC219FE5580000EA0408A0E18D |
:10DDC0002008A0E10510A0E1BC219FE5530000EA76 |
:10DDD0000408A0E12008A0E10510A0E1AC219FE526 |
:10DDE0004E0000EA0408A0E12008A0E10510A0E12F |
:10DDF0009C219FE5490000EA0408A0E12008A0E179 |
:10DE00000510A0E18C219FE5440000EA0408A0E190 |
:10DE10002008A0E10510A0E17C219FE53F0000EA79 |
:10DE20000408A0E12008A0E10510A0E16C219FE515 |
:10DE30003A0000EA0408A0E12008A0E10510A0E1F2 |
:10DE40005C219FE5350000EA0408A0E12008A0E17C |
:10DE50000510A0E14C219FE5300000EA0408A0E194 |
:10DE60002008A0E10510A0E13C219FE52B0000EA7D |
:10DE70000408A0E12008A0E10510A0E12C219FE505 |
:10DE8000260000EA0408A0E12008A0E10510A0E1B6 |
:10DE90001C219FE5210000EA0408A0E12008A0E180 |
:10DEA0000510A0E10C219FE51C0000EA0408A0E198 |
:10DEB0002008A0E10510A0E1FC209FE5170000EA82 |
:10DEC0000408A0E12008A0E10510A0E1EC209FE5F6 |
:10DED000120000EA0408A0E12008A0E10510A0E17A |
:10DEE000DC209FE50D0000EA0408A0E12008A0E185 |
:10DEF0000510A0E1CC209FE5080000EA0408A0E19D |
:10DF00002008A0E10510A0E1BC209FE5030000EA85 |
:10DF10000408A0E12008A0E10510A0E1AC209FE5E5 |
:10DF2000EEFEFFEB0448A0E12448A0E10400A0E1DC |
:10DF30000610A0E161FEFFEB0400A0E10510A0E1E6 |
:10DF4000FDFEFFEB0400A0E10510A0E10CFFFFEBDC |
:10DF500070A81BE9400B0000540B0000680B000088 |
:10DF60007C0B0000900B000060200000A40B000060 |
:10DF7000B80B0000CC0B0000F00B0000140C0000EC |
:10DF8000280C00003C0C0000500C0000640C000049 |
:10DF9000780C000080890000688C0000ACA00000B4 |
:10DFA0008C0C00004C3800002C220000900C00006B |
:10DFB000940C0000980C00009C0C0000A00C0000C9 |
:10DFC000A40C0000000D0000040D0000080D00006E |
:10DFD0000C0D00000DC0A0E110D82DE904B04CE2FA |
:10DFE0000040A0E11623A0E3022A82E21633A0E358 |
:10DFF000033A83E2030050E1020050110100A00344 |
:10E000000200A0130010A0E360F9FFEB0239A0E3C7 |
:10E01000B830C4E1BC30C4E10020A0E3B421C4E1C5 |
:10E020000130A0E3B831C4E1123CA0E3343083E214 |
:10E03000B031C4E1BC21C4E110A81BE90030A0E369 |
:10E04000B030C0E1B230C0E1B430C0E1B630C0E1C0 |
:10E05000B830C0E1BA30C0E1BC30C0E1BE30C0E190 |
:10E060001030C0E5B231C0E1B431C0E1B631C0E139 |
:10E07000B831C0E1BA31C0E1BC31C0E10EF0A0E17D |
:10E08000B620D1E1FF3CA0E3FE3083E2030052E181 |
:10E09000B431D0010130C3030800000AB431D0E12B |
:10E0A000013083E3B431C0E1B830D1E1020053E381 |
:10E0B000B431D00102308303B431D0110230C31324 |
:10E0C000B431C0E1B821D0E1FF2C02E21030D1E53B |
:10E0D000023083E1B831C0E1B030D1E1C00053E398 |
:10E0E0004600000A0A0000CA200053E37C00000A30 |
:10E0F000020000CA100053E30EF0A0115F0000EA16 |
:10E10000400053E31D00000A800053E30EF0A0110D |
:10E110002A0000EA050C53E38900000A020000CA45 |
:10E12000010B53E30EF0A011920000EA060C53E33A |
:10E130008900000A010953E30EF0A011B431D0E1C7 |
:10E14000013983E3B431C0E1BC30D1E1040053E3D1 |
:10E15000B431D00104308303B431D0110430C3137F |
:10E16000B431C0E1BC30D1E1040053E37700000AD0 |
:10E17000B431D0E1083083E3B431C0E10EF0A0E166 |
:10E18000B231D1E1020C53E3B431D001013C83033D |
:10E19000B431D011013CC313B431C0E1B831D1E185 |
:10E1A000B830C0E1B230D1E1020053E3B431D00164 |
:10E1B0004030C303B431D01140308313EDFFFFEA88 |
:10E1C000B431D1E1020C53E3B431D001023C8303FA |
:10E1D000B431D011023CC313B431C0E1BA31D1E142 |
:10E1E000BC30C0E1B430D1E1020053E3B431D0011E |
:10E1F0008030C303B431D01180308313DDFFFFEAD8 |
:10E20000BA31D1E1BC30C0E1B831D1E1B830C0E1C0 |
:10E21000B430D1E1020053E3B431D0018030C30304 |
:10E22000B431D01180308313B431C0E1B230D1E1C8 |
:10E23000020053E3B431D0014030C303B431D011F4 |
:10E2400040308313B431C0E1B231D1E1020C53E369 |
:10E25000B431D001013C8303B431D011013CC3136C |
:10E26000B431C0E1B431D1E1020C53E3B431D00197 |
:10E27000023C8303B431D011023CC313BDFFFFEA5B |
:10E28000B231D1E1020C53E3B431D001023C83033B |
:10E29000B431D011023CC313B431C0E1B631D1E185 |
:10E2A000020C53E3B431D001013C8303B431D011EB |
:10E2B000013CC313B431C0E1B431D0E1403083E359 |
:10E2C000B431C0E1B431D0E1103083E3B431C0E106 |
:10E2D000B831D1E1B830C0E1BC31D1E1BC30C0E1EE |
:10E2E0000EF0A0E1B231D1E1020C53E3B431D00120 |
:10E2F000023C8303B431C001B631D1E1020C53E3D7 |
:10E30000B431D001013C8303B431C001BA30D1E152 |
:10E31000040053E3B431D00104308303B431C001AD |
:10E32000B431D0E1403083E3B431C0E1B431D0E165 |
:10E33000203083E3B431C0E1B831D1E1B830C0E17D |
:10E340000EF0A0E1BE30D1E1080053E387FFFF0AE1 |
:10E35000B431D0E10830C3E386FFFFEABE30D1E13B |
:10E36000080053E3B431D00108308303B431D01135 |
:10E370000830C313B431C0E1BC30D1E1040053E331 |
:10E38000B431D00104308303B431D0110430C3134D |
:10E3900078FFFFEA010051E30600000AB431D031F2 |
:10E3A0008338E031A338E0310500003A020051E340 |
:10E3B0000EF0A011040000EAB431D0E18338A0E1EE |
:10E3C000A338A0E1B431C0E10EF0A0E1123CA0E31B |
:10E3D000343083E2B031C0E10EF0A0E1FF1001E281 |
:10E3E000B831D0E1FF3C03E2B831C0E1B831D0E14F |
:10E3F000013083E1B831C0E10EF0A0E1B801D0E115 |
:10E40000FF0000E20EF0A0E1B001D0E10EF0A0E1CB |
:10E41000B000D0E10EF0A0E1B400D0E10EF0A0E138 |
:10E420000228A0E14228A0E10118A0E1010851E37F |
:10E43000B820C001BC20C0110EF0A0E10118A0E17D |
:10E44000BC01D0E1210810E00100A0130EF0A0E112 |
:10E450000118A0E1BC31D0E14138C3E1BC31C0E1D9 |
:10E460000EF0A0E1B400D0E10EF0A0E1B000D0E1E8 |
:10E470000EF0A0E10118A0E14118A0E1010052E373 |
:10E48000B831D001FF30030201308301B831D0111F |
:10E490000130C311B831C0E10EF0A0E10118A0E1D4 |
:10E4A000B431D0E1033AC3E3B431C0E1B431D0E1D7 |
:10E4B000413883E1B431C0E10EF0A0E1010051E345 |
:10E4C000B831D001013B8303B831D011013BC313F4 |
:10E4D000B831C0E10EF0A0E10DC0A0E100D82DE9F7 |
:10E4E00004B04CE21733A0E3073A83E2030050E1A3 |
:10E4F0000400001A010CA0E30110A0E323F8FFEBD5 |
:10E50000010CA0E3070000EA1733A0E3023983E21D |
:10E51000030050E100A81B19020CA0E30110A0E3C6 |
:10E520001AF8FFEB020CA0E30010A0E317F8FFEBD2 |
:10E5300000A81BE9B020D1E1FF3CA0E3CF3083E28B |
:10E54000030052E11000001AB030D0E13030C3E3D4 |
:10E55000B030C0E1B430D1E1400053E3B030D0017D |
:10E5600040308303B030D0114030C313B030C0E12D |
:10E57000B630D1E1800053E3B030D0018030830366 |
:10E58000B030D0118030C313050000EAB030D0E1C4 |
:10E590003030C3E3B030C0E1B030D0E1B020D1E1E1 |
:10E5A000023083E1B030C0E1B230D1E1040053E386 |
:10E5B0000A00001AB430D0E1043083E3B430C0E183 |
:10E5C000BA30D1E1080053E3B430D00108308303FE |
:10E5D000B430D0110830C313B430C0E1100000EAE9 |
:10E5E000B430D0E10430C3E3B430C0E1B030D0E1A6 |
:10E5F000FF3003E2B030C0E10C20D1E5B030D0E113 |
:10E60000023483E1B030C0E1B031D0E1FF3C03E23D |
:10E61000B031C0E10D30D1E5B021D0E1023083E16D |
:10E62000B031C0E1B030D0E10F30C3E3B030C0E171 |
:10E63000B030D0E1B820D1E1023083E1B030C0E1A8 |
:10E640000EF0A0E13030E0E3B030C0E10430E0E3B0 |
:10E65000B230C0E14030E0E3B430C0E18030E0E30C |
:10E66000B630C0E10730A0E3B830C0E10830E0E3E5 |
:10E67000BA30C0E10030A0E30C30C0E50D30C0E599 |
:10E680000EF0A0E1010051E3B430D0010230830369 |
:10E69000B430D0110230C313B430C0E10EF0A0E1A9 |
:10E6A0000118A0E14118A0E1010052E3B431D0010A |
:10E6B00001308301B431D0110130C311B431C0E154 |
:10E6C0000EF0A0E10118A0E14118A0E1010052E321 |
:10E6D0000700001A0138A0E1020853E3B432D00168 |
:10E6E00002308303B432D01101308313B432C0E15D |
:10E6F0000EF0A0E10138A0E1020853E3B432D001EA |
:10E700000230C303B432D0110130C313F6FFFFEA65 |
:10E710000118A0E14118A0E1B810C0E10EF0A0E19D |
:10E72000B800D0E10EF0A0E1010051E3B430D00117 |
:10E7300001308303B430D0110130C313B430C0E1D1 |
:10E740000EF0A0E10030A0E30118A0E1A12AA0E1B1 |
:10E750002118A0E11F1001E2010052E3BC30D001FA |
:10E760000100000A020052E3B831D0010100A0E329 |
:10E77000103113E00000A0030EF0A0E11F1001E231 |
:10E780000130A0E31331A0E1B032C0E10EF0A0E10E |
:10E790000118A0E1BC31D0E1213813E00000A00352 |
:10E7A0000100A0130EF0A0E10118A0E14118A0E1C2 |
:10E7B000B012C0E10EF0A0E10DC0A0E110D82DE92B |
:10E7C00004B04CE20040A0E11733A0E3033983E238 |
:10E7D000030050E10500001A4000A0E30110A0E38F |
:10E7E0006AF7FFEB4000A0E30010A0E367F7FFEB40 |
:10E7F0001733A0E30D3A83E2030054E110A81B197C |
:10E800008000A0E30110A0E360F7FFEB8000A0E32D |
:10E810000010A0E35DF7FFEB10A81BE90DC0A0E11D |
:10E82000F0D82DE904B04CE20040A0E10160A0E185 |
:10E830000F70A0E370F8FFEB803260E0033180E0FE |
:10E840008351A0E10400A0E10010A0E3760000EBFA |
:10E850001430D4E51F3003E21430C4E5FE34E0E3A5 |
:10E86000693843E2C53E43E2030055E11430D495D4 |
:10E87000403083932500009A7C319FE5030055E1E9 |
:10E880001430D495603083932000009ACB37A0E3F6 |
:10E89000073983E24F3083E2030055E11430D49509 |
:10E8A000833CE091A33CE0911800009A3F33E0E301 |
:10E8B000433943E2AE3D43E2030055E11430D495C1 |
:10E8C0000330E0915F3003920330E0910F00009A33 |
:10E8D000FB34E0E3ED3943E2033B43E2030055E15F |
:10E8E0001430D495033DE091233DE0910700009A58 |
:10E8F000FA34E0E3A13A43E20F3C43E2030055E17E |
:10E900000300008A1430D4E5833DE0E1A33DE0E15B |
:10E910001430C4E50400A0E10110A0E3420000EBC4 |
:10E920000630D6E5100053E30030D40510308303E1 |
:10E930000030D4151030C3130030C4E50730D6E5DD |
:10E94000040053E30030D405043083030030D415B1 |
:10E950000430C3130030C4E50430D6E51030C4E5FC |
:10E960001430D4E50630C3E31430C4E5B420D6E156 |
:10E97000032C02E21430D4E5C23383E11430C4E541 |
:10E98000001096E5613BA0E32A3E83E2030051E1DB |
:10E990000600008A0500A0E1161600EB070040E221 |
:10E9A0008007A0E14078A0E17F3007E20D0000EA97 |
:10E9B000001096E5613AA0E32A3D83E2030051E1AD |
:10E9C0000900008A0500A0E10A1600EB090040E2F8 |
:10E9D00028309FE5902383E08337A0E14378A0E1CE |
:10E9E000873CE0E1A33CE0E10C30C4E50738A0E15E |
:10E9F000A33BA0E11C30C4E5F0A81BE9FF5962026B |
:10EA0000ABAAAAAA4E3DA0E3083083E2003080E51D |
:10EA10000030A0E3B430C0E11030E0E30630C0E5E0 |
:10EA20000430E0E30730C0E50EF0A0E1010051E35F |
:10EA30000030D005203083030030C0050030D00501 |
:10EA4000203083030030D0152030C3130030C0E5E0 |
:10EA50000EF0A0E1010051E30030D005083083033F |
:10EA60000030D0150830C3130030C0E50EF0A0E12F |
:10EA7000010051E30030D005023083030030D0158F |
:10EA80000230C3130030C0E50EF0A0E1010051E3F5 |
:10EA90000030D005043083030030D0150430C31398 |
:10EAA0000030C0E50EF0A0E1010051E30030D005D8 |
:10EAB000013083030030D0150130C3130030C0E5AE |
:10EAC0000EF0A0E1FF1001E21733A0E3033983E267 |
:10EAD000030050E10400000A1733A0E30D3A83E27B |
:10EAE000030050E10000A0130EF0A0110000D1E7D8 |
:10EAF0000EF0A0E10118A0E108C0D0E50030D0E59B |
:10EB00000420D0E50229A0E10C2D82E1043003E2CB |
:10EB10000336A0E1223983E1213813E00000A0038D |
:10EB20000100A0130EF0A0E10DC0A0E10E002DE940 |
:10EB300010D82DE910B04CE204D04DE20040A0E125 |
:10EB4000B430DBE1B2314BE10A205BE5B2315BE18D |
:10EB5000800053E3400053130800000A020C53E303 |
:10EB60000600000A020B53E3010B53130300000AD3 |
:10EB7000010A53E30100000A020A53E30800001AE5 |
:10EB80000830D4E5B2315BE1400053E31000000AE5 |
:10EB9000020A53E30030D405203083030030C4055B |
:10EBA0001B0000EAB2315BE1040053E301005313A0 |
:10EBB0000300000A080053E30100000A200053E3A9 |
:10EBC0000A00001A0430D4E5B2315BE1010053E3DE |
:10EBD0000100001A1820C4E50D0000EAB2315BE123 |
:10EBE000200053E3080053131830D405080000EA4E |
:10EBF000B2315BE1010C53E3020053130400001A2D |
:10EC00000010A0E388FFFFEB0400A0E10110A0E3E7 |
:10EC100085FFFFEB10A81BE9FF1001E2FF2002E2D5 |
:10EC2000010052E301108103FE1001121810C0E52B |
:10EC30000EF0A0E1FF1001E21810C0E50EF0A0E117 |
:10EC40001800D0E5FF0000E20EF0A0E10030A0E1E6 |
:10EC50000400D0E50830D3E5030480E10009A0E119 |
:10EC60002009A0E10EF0A0E10DC0A0E110D82DE92F |
:10EC700004B04CE20148A0E14448A0E1F2FFFFEB00 |
:10EC80000008A0E1040850E10000A0130100A00367 |
:10EC900010A81BE9FF0000E2FF1001E215C3A0E38A |
:10ECA00000008CE504108CE52221A0E10C208CE50D |
:10ECB0002331A0E110308CE518309CE5183083E357 |
:10ECC00018308CE50EF0A0E110402DE90008A0E11D |
:10ECD0004008A0E10228A0E142C8A0E10338A0E179 |
:10ECE00043E8A0E1F840DDE1010C51E31523A00366 |
:10ECF00018309205013C83031523A0131830921598 |
:10ED0000013CC313183082E51523A0E3102082E2F2 |
:10ED1000003092E50331A0E16010A0E3B010C3E140 |
:10ED2000002092E50038A0E12338A0E1023183E120 |
:10ED30000C28A0E1223883E10E28A0E1223883E1EB |
:10ED40000428A0E1223883E10320A0E3B020C3E13E |
:10ED50001080BDE804D04DE200008DE500309DE557 |
:10ED60002020A0E3B020C3E100309DE5D020A0E347 |
:10ED7000B020C3E104D08DE20EF0A0E104D04DE25A |
:10ED800000008DE500309DE58020A0E3B020C3E1C8 |
:10ED900000309DE5D020A0E3B020C3E104D08DE297 |
:10EDA0000EF0A0E10118A0E14118A0E10330C0E39A |
:10EDB0004020A0E3B020C3E1B010C0E10EF0A0E11C |
:10EDC000FF0000E20118A0E14118A0E11523A0E333 |
:10EDD000102082E2003092E50331A0E1C0C0A0E340 |
:10EDE000B0C0C3E1003092E50331A0E1B01083E18F |
:10EDF0000EF0A0E1000090E50EF0A0E1FF0000E2BF |
:10EE00001523A0E3102082E2003092E50331A0E157 |
:10EE10009810A0E3B010C3E1003092E50331A0E107 |
:10EE2000000093E7003092E50331A0E1FF20A0E36A |
:10EE3000B020C3E10EF0A0E104D04DE200108DE55A |
:10EE4000FF0000E200309DE57010A0E3B010C3E1C8 |
:10EE500000309DE5B030D3E1800013E3FBFFFF0AF3 |
:10EE600000309DE5B020D3E100309DE5FF10A0E328 |
:10EE7000B010C3E1000012E10000A0030100A013E4 |
:10EE800004D08DE20EF0A0E11523A0E3102082E271 |
:10EE9000003092E50331A0E19010A0E3B010C3E18F |
:10EEA000003092E50331A0E1B401D3E1003092E5F6 |
:10EEB0000331A0E1FF20A0E3B020C3E1A005A0E161 |
:10EEC000010080E2030000E20EF0A0E11533A0E3B0 |
:10EED000180093E5010C00E2000050E20100A013CD |
:10EEE0000EF0A0E104D04DE200008DE500309DE57C |
:10EEF000B020A0E3B020C3E104D08DE20EF0A0E189 |
:10EF000004D04DE200008DE500309DE5D020A0E367 |
:10EF1000B020C3E104D08DE20EF0A0E104D04DE2B8 |
:10EF200000008DE500309DE55020A0E3B020C3E156 |
:10EF300004D08DE20EF0A0E104D04DE200008DE59A |
:10EF4000010051E30500001A00309DE56020A0E3B8 |
:10EF5000B020C3E100309DE5B010C3E1050000EA38 |
:10EF600000309DE56020A0E3B020C3E100309DE5C6 |
:10EF7000D020A0E3B020C3E100309DE5FF20A0E356 |
:10EF8000B020C3E104D08DE20EF0A0E11523A0E390 |
:10EF9000102082E2003092E50331A0E19010A0E35E |
:10EFA000B010C3E1003092E50331A0E1B011D3E12C |
:10EFB000003092E50331A0E1FF20A0E3B020C3E1DF |
:10EFC000010010E10000A0030100A0130EF0A0E179 |
:10EFD00004D04DE200008DE50010A0E300309DE577 |
:10EFE0007020A0E3B020C3E100309DE5B030D3E154 |
:10EFF000800013E30800001AFF24E0E3012042E24E |
:10F00000011081E200309DE5B030D3E1800013E3D0 |
:10F010000100001A020051E1F8FFFF9A00309DE55F |
:10F02000FF20A0E3B020C3E1FF04E0E3000051E0D3 |
:10F030000100A01304D08DE20EF0A0E11613A0E3AE |
:10F04000011A81E2043091E5042090E5023083E169 |
:10F05000043081E50030D0E5010053E3083091052C |
:10F060000420900502308301083081051633A01377 |
:10F07000013A831204109015082093150120C21143 |
:10F08000082083150EF0A0E10DC0A0E100D82DE905 |
:10F0900004B04CE2020AA0E30110A0E33BF5FFEB51 |
:10F0A000020AA0E30010A0E338F5FFEB00A81BE97B |
:10F0B0000030A0E3043080E50030C0E50EF0A0E1B0 |
:10F0C000010050E31623A003012A820200309205BA |
:10F0D000023083031623A013012A821200309215F6 |
:10F0E00002300312003082E50EF0A0E11633A0E3F7 |
:10F0F000013A83E2102093E5020080E1100083E5ED |
:10F100000EF0A0E11633A0E3013A83E20C3093E560 |
:10F11000030010E10000A0030100A0130EF0A0E125 |
:10F120001633A0E3013A83E20C0083E50EF0A0E180 |
:10F130001623A0E3012A82E20C3092E5030010E1DD |
:10F140000300000A043092E5030010E10100A0135F |
:10F150000EF0A0110000A0E30EF0A0E11633A0E332 |
:10F16000013A83E20C0083E50EF0A0E10632A0E351 |
:10F17000213D83E20008A0E12008A0E1000083E532 |
:10F180000EF0A0E10632A0E3213D83E2000093E50A |
:10F190000008A0E12008A0E10EF0A0E1213DA0E3DD |
:10F1A000463283E20008A0E12008A0E1000083E5E8 |
:10F1B0000EF0A0E1213DA0E3463283E2000093E59A |
:10F1C0000008A0E12008A0E10EF0A0E1213DA0E3AD |
:10F1D000863283E2000093E50008A0E12008A0E168 |
:10F1E0000EF0A0E1213DA0E3C63283E20008A0E1D9 |
:10F1F0002008A0E1000083E50EF0A0E1213DA0E39E |
:10F20000C63283E2000093E50008A0E12008A0E1F7 |
:10F210000EF0A0E10632A0E3853E83E20700C0E3E2 |
:10F220000008A0E12008A0E1000083E50EF0A0E1C5 |
:10F230000632A0E3853E83E2000093E50008A0E1EA |
:10F240002008A0E10EF0A0E1FF0000E20632A0E3FA |
:10F25000023B83E20118A0E12118A0E1001183E73D |
:10F260000EF0A0E1FF0000E20632A0E3023B83E2E1 |
:10F27000000193E70008A0E12008A0E10EF0A0E162 |
:10F28000FF0000E20118A0E10622A0E3022B82E2C7 |
:10F29000003192E7763CC3E37030C3E3031881E1A9 |
:10F2A0002118A0E1001182E70EF0A0E1FF0000E2CA |
:10F2B0000632A0E3023B83E2000193E7060C00E282 |
:10F2C0000EF0A0E1FF0000E20118A0E10632A0E389 |
:10F2D000023B83E2003193E7073AC3E34030C3E3E4 |
:10F2E0000338A0E14338A0E14128A0E1010611E381 |
:10F2F00010302312200012E3203023120622A0E354 |
:10F30000022B82E20338A0E12338A0E1003182E73A |
:10F310000EF0A0E1FF0000E20118A0E10632A0E338 |
:10F32000023B83E2003193E70139C3E37030C3E36A |
:10F330000338A0E14338A0E14128A0E1010211E334 |
:10F34000013A2312020A12E3023A23120622A0E330 |
:10F35000022B82E20338A0E12338A0E1003182E7EA |
:10F360000EF0A0E10DC0A0E130D82DE904B04CE2D0 |
:10F37000FF5000E2FF4001E20500A0E1B8FFFFEB13 |
:10F380000008A0E14008A0E1010054E30622A00328 |
:10F39000022B8202013AC0030400000A020054E377 |
:10F3A00030A81B190622A0E3022B82E21030C0E332 |
:10F3B0000338A0E12338A0E1053182E730A81BE93A |
:10F3C000FF0000E20632A0E3023B83E2000193E784 |
:10F3D000300000E20EF0A0E1FF0000E20632A0E300 |
:10F3E000023B83E2000193E7030A00E20EF0A0E192 |
:10F3F000FF0000E20622A0E3022B82E2003192E746 |
:10F40000073AC3E34030C3E30338A0E12338A0E167 |
:10F41000303023E2003182E70EF0A0E1FF0000E28D |
:10F420000622A0E3022B82E2003192E70139C3E316 |
:10F430007030C3E30338A0E12338A0E1033A23E2AC |
:10F44000003182E70EF0A0E1FF0000E20622A0E317 |
:10F45000022B82E2003192E7013C83E3073AC3E3E7 |
:10F460007030C3E30338A0E12338A0E1003182E724 |
:10F470000EF0A0E1FF0000E20622A0E3022B82E2F0 |
:10F48000003192E7713CC3E37030C3E30338A0E17D |
:10F490002338A0E1003182E70EF0A0E1FF0000E296 |
:10F4A0000622A0E3022B82E2003192E7713CC3E323 |
:10F4B0007030C3E30338A0E12338A0E1003182E7D4 |
:10F4C0000EF0A0E1FF0000E20622A0E3022B82E2A0 |
:10F4D000003192E7013C83E3073AC3E37030C3E3B2 |
:10F4E0000338A0E12338A0E1003182E70EF0A0E16B |
:10F4F000FF0000E20622A0E3022B82E2003192E745 |
:10F50000013C83E3073AC3E37030C3E30338A0E16F |
:10F510002338A0E1003182E70EF0A0E1FF0000E215 |
:10F520000622A0E3022B82E2003192E7713CC3E3A2 |
:10F530007030C3E30338A0E12338A0E1003182E753 |
:10F540000EF0A0E1FF0000E20632A0E3023B83E2FE |
:10F55000000193E7300000E2100050E30000A01328 |
:10F560000100A0030EF0A0E1FF0000E20632A0E3DC |
:10F57000023B83E2000193E7030A00E2010A50E341 |
:10F580000000A0130100A0030EF0A0E1FF0000E2C4 |
:10F590000622A0E3022B82E2003192E77030C3E33F |
:10F5A000033AA0E1233AA0E1003182E70EF0A0E1A6 |
:10F5B000FF0000E20622A0E3022B82E2003192E784 |
:10F5C000073AC3E3F030C3E30338A0E12338A0E1F6 |
:10F5D000003182E70EF0A0E1FF0000E20622A0E386 |
:10F5E000022B82E2003192E7073AC3E37030C3E3B3 |
:10F5F0000338A0E12338A0E1013983E3003182E739 |
:10F600000EF0A0E1FF0000E20622A0E3022B82E25E |
:10F61000003192E7073AC3E37030C3E30338A0E157 |
:10F620002338A0E1403083E3003182E70EF0A0E10F |
:10F63000FF0000E20622A0E3022B82E2003192E703 |
:10F64000010913E30EF0A001003192E7073AC3E38A |
:10F650007030C3E30338A0E12338A0E1013983E32C |
:10F66000003182E70EF0A0E1FF0000E20622A0E3F5 |
:10F67000022B82E2003192E7400013E30EF0A0017A |
:10F68000003192E7073AC3E37030C3E30338A0E1E7 |
:10F690002338A0E1403083E3003182E70EF0A0E19F |
:10F6A000FF0000E2FF1001E20622A0E3022B82E24B |
:10F6B000003192E7073AC3E37030C3E30338A0E1B7 |
:10F6C0002338A0E1013083E1003182E70EF0A0E1B0 |
:10F6D000FF0000E20632A0E3023B83E2000193E771 |
:10F6E0000F0000E20EF0A0E1FF0000E206C2A0E37E |
:10F6F00085CE8CE200209CE50228A0E18001A0E1FB |
:10F70000222880E0062282E2B230D2E10338A0E172 |
:10F71000003082E500309CE50338A0E1230880E05A |
:10F72000060280E20310C1E30118A0E12118A0E164 |
:10F73000003090E5031081E1001080E50EF0A0E1BB |
:10F74000FF0000E206C2A0E385CE8CE200309CE51B |
:10F750000338A0E18001A0E1233880E0063283E293 |
:10F76000B020D3E1002083E500309CE50338A0E120 |
:10F77000230880E0060280E20118A0E12119A0E13F |
:10F780000119A0E1003090E5031081E1001080E54F |
:10F790000EF0A0E1FF0000E20632A0E3853E83E226 |
:10F7A000003093E50338A0E18001A0E1230880E068 |
:10F7B000060280E2B000D0E10EF0A0E1FF0000E21E |
:10F7C0000632A0E3853E83E2003093E50338A0E1F2 |
:10F7D0008001A0E1230880E0060280E2B200D0E1CF |
:10F7E0000EF0A0E1FF0000E206C2A0E385CE8CE2AD |
:10F7F00000209CE50228A0E18001A0E1222880E011 |
:10F80000462282E2003092E5FF3FC3E30330C3E3C8 |
:10F81000003082E500309CE50338A0E1230880E059 |
:10F82000460280E20118A0E1003090E5213883E132 |
:10F83000003080E50EF0A0E110402DE9FFC000E2AD |
:10F840000118A0E14118A0E10040A0E30138A0E1C7 |
:10F850003F0853E3A3E8A0910241A0830138A081AF |
:10F8600023EBA0810602A0E3850E80E2002090E554 |
:10F870000228A0E18C11A0E1222881E0462282E248 |
:10F88000003092E50231C3E3003082E5003090E5BC |
:10F890000338A0E1233881E0463283E2002093E57B |
:10F8A000022084E1002083E5003090E50338A0E1E8 |
:10F8B000233881E0463283E2002093E51F23C2E330 |
:10F8C000002083E5003090E50338A0E1233881E093 |
:10F8D000463283E2002093E50E2D82E1002083E58D |
:10F8E000003090E50338A0E1231881E0461281E260 |
:10F8F000003091E5FF37C3E30338C3E3003081E50F |
:10F900001080BDE8FF0000E20632A0E3853E83E2FE |
:10F91000003093E50338A0E18001A0E1230880E0F6 |
:10F92000460280E2B000D0E1000BA0E1200BA0E194 |
:10F930000EF0A0E1FF0000E20632A0E3853E83E284 |
:10F94000003093E50338A0E18001A0E1230880E0C6 |
:10F95000460280E2B200D0E1000BA0E1200BA0E162 |
:10F960000EF0A0E104E02DE5FF0000E206E2A0E3D6 |
:10F9700085EE8EE200C09EE50CC8A0E18001A0E10A |
:10F980002CC880E006C28CE2B230DCE10338A0E192 |
:10F9900000308CE500309EE50338A0E1233880E09C |
:10F9A000063283E20310C1E30118A0E12118A0E1AF |
:10F9B00000C093E50C1081E1001083E500309EE566 |
:10F9C0000338A0E1233880E0063283E2B010D3E1AF |
:10F9D000001083E500309EE50338A0E1230880E0B5 |
:10F9E000060280E20228A0E12229A0E10229A0E18A |
:10F9F000003090E5032082E1002080E504F09DE4E2 |
:10FA0000FF0000E206C2A0E385CE8CE200209CE568 |
:10FA10000228A0E18001A0E1222880E0062282E203 |
:10FA2000B230D2E10338A0E1003082E500309CE53D |
:10FA30000338A0E1230880E0060280E20310C1E35E |
:10FA40000118A0E12118A0E1003090E5031081E148 |
:10FA5000001080E50EF0A0E1FF0000E206C2A0E386 |
:10FA600085CE8CE200309CE50338A0E18001A0E166 |
:10FA7000233880E0063283E2B020D3E1002083E522 |
:10FA800000309CE50338A0E1230880E0060280E214 |
:10FA90000118A0E12119A0E10119A0E1003090E5D1 |
:10FAA000031081E1001080E50EF0A0E1FF0000E20C |
:10FAB0000632A0E3853E83E2003093E50338A0E1FF |
:10FAC0008001A0E1230880E0060280E2B000D0E1DE |
:10FAD0000EF0A0E1FF0000E20632A0E3853E83E2E3 |
:10FAE000003093E50338A0E18001A0E1230880E025 |
:10FAF000060280E2B200D0E10EF0A0E10DC0A0E16C |
:10FB000070D82DE904B04CE2FF4000E2FF6001E252 |
:10FB10000258A0E12558A0E10400A0E10610A0E1F0 |
:10FB20000520A0E1040000EB0400A0E10610A0E124 |
:10FB30000520A0E13F0000EB70A81BE90DC0A0E18B |
:10FB400010D82DE904B04CE2FFC000E2FF1001E242 |
:10FB50000228A0E14228A0E100E0A0E3020051E376 |
:10FB60000400001A0218A0E12118A0E10C00A0E195 |
:10FB70001BFFFFEB10A81BE9010051E310A81B19A4 |
:10FB80000238A0E13F0853E3A348A09102E9A08313 |
:10FB90000238A081234BA0810602A0E3850E80E2FB |
:10FBA000002090E50228A0E18C11A0E1222881E04C |
:10FBB000462282E2003092E50239C3E3003082E55A |
:10FBC000003090E50338A0E1233881E0463283E23B |
:10FBD000002093E502208EE1002083E5003090E5CF |
:10FBE0000338A0E1233881E0463283E2002093E528 |
:10FBF0001F2BC2E3002083E5003090E50338A0E12D |
:10FC0000233881E0463283E2002093E5042582E137 |
:10FC1000002083E5003090E50338A0E1231881E05F |
:10FC2000461281E2003091E5FF3FC3E30330C3E3B6 |
:10FC3000003081E510A81BE910402DE9FFE000E24B |
:10FC4000FF1001E20228A0E142C8A0E1020051E356 |
:10FC50000F00001A0602A0E3850E80E2003090E556 |
:10FC60000338A0E18E11A0E1233881E0463283E21F |
:10FC7000B020D3E1002083E5003090E50338A0E117 |
:10FC8000231881E0461281E2003091E50C3883E1CF |
:10FC90002E0000EA010051E31080BD180040A0E3EF |
:10FCA0000C38A0E13F0853E3A3C8A0910241A08310 |
:10FCB0000C38A08123CBA0810602A0E3850E80E250 |
:10FCC000002090E50228A0E18E11A0E1222881E029 |
:10FCD000462282E2003092E50231C3E3003082E541 |
:10FCE000003090E50338A0E1233881E0463283E21A |
:10FCF000002093E5022084E1002083E5003090E5B8 |
:10FD00000338A0E1233881E0463283E2002093E506 |
:10FD10001F23C2E3002083E5003090E50338A0E113 |
:10FD2000233881E0463283E2002093E50C2D82E106 |
:10FD3000002083E5003090E50338A0E1231881E03E |
:10FD4000461281E2003091E5FF37C3E30338C3E395 |
:10FD5000003081E51080BDE8FF0000E20632A0E33C |
:10FD6000853E83E2003093E50338A0E18001A0E105 |
:10FD7000230880E0460280E2B000D0E1000BA0E161 |
:10FD8000200BA0E10EF0A0E1FF0000E20632A0E3AC |
:10FD9000853E83E2003093E50338A0E18001A0E1D5 |
:10FDA000230880E0460280E2B200D0E1000BA0E12F |
:10FDB000200BA0E10EF0A0E1FF0000E2FF1001E245 |
:10FDC000010051E30800001A0622A0E3022B82E2A0 |
:10FDD000003192E7073AC3E37030C3E30338A0E190 |
:10FDE0002338A0E1403083E3090000EA020051E338 |
:10FDF0000EF0A0110622A0E3022B82E2003192E76E |
:10FE0000073AC3E37030C3E30338A0E12338A0E12D |
:10FE1000013983E3003182E70EF0A0E1FF1001E237 |
:10FE20000118A0E1001C81E12118A0E10100A0E17E |
:10FE30000EF0A0E10008A0E14008A0E1FF3000E2E0 |
:10FE40000008A0E10334A0E1203C83E10300A0E12D |
:10FE50000EF0A0E1FF0000E20622A0E3862E82E27F |
:10FE6000003092E5EF30C3E3003082E50002A0E10C |
:10FE7000000082E50EF0A0E1FF0000E20622A0E310 |
:10FE8000862E82E2003092E50730C3E3003082E53F |
:10FE9000000082E50EF0A0E1FF0000E2FF1001E2A9 |
:10FEA00085CEA0E386C28CE20111A0E100309CE582 |
:10FEB0000F20A0E31231C3E100308CE500309CE557 |
:10FEC000103183E100308CE50EF0A0E1FF0000E28C |
:10FED000852EA0E3C62282E2003092E50130C3E322 |
:10FEE000003082E5852EA0E3862282E2003092E592 |
:10FEF000033AC3E3003082E5010080E2003092E57E |
:10FF0000003683E1003082E50EF0A0E1852EA0E30B |
:10FF1000862282E2003092E5033AC3E3003082E5B4 |
:10FF20000EF0A0E1FF0000E2852EA0E3C62282E2EF |
:10FF3000003092E58030C3E3003082E5852EA0E3F7 |
:10FF4000462282E2003092E50110A0E3113083E105 |
:10FF5000003082E50EF0A0E1FF0000E2852EA0E374 |
:10FF6000462282E2003092E50110A0E31130C3E1A5 |
:10FF7000003082E50EF0A0E1FF0000E2852EA0E354 |
:10FF8000C62282E2003092E51E3CC3E3003082E5E7 |
:10FF9000003092E5803483E1003082E50EF0A0E18C |
:10FFA000FF0000E2852EA0E3C62282E2003092E547 |
:10FFB0001E30C3E3003082E5003092E5803083E1FB |
:10FFC000003082E50EF0A0E1853EA0E3C63283E278 |
:10FFD000002093E5012C82E3002083E5002093E5D7 |
:10FFE000022A82E3002083E50EF0A0E1853EA0E333 |
:10FFF000C63283E2002093E5012082E3002083E5FE |
:020000021000EC |
:10000000002093E5202082E3002083E50EF0A0E1AC |
:10001000853EA0E3C63283E2002093E5012CC2E3D3 |
:10002000002083E5002093E5022AC2E3002083E557 |
:100030000EF0A0E1853EA0E3C63283E2002093E506 |
:100040000120C2E3002083E5002093E52020C2E3E5 |
:10005000002083E50EF0A0E1852EA0E3C62282E217 |
:10006000003092E5403083E3003082E50EF0A0E1FD |
:10007000852EA0E3C62282E2003092E54030C3E341 |
:10008000003082E50EF0A0E1FF0000E2862EA0E342 |
:10009000462282E2003092E5FF30C3E3003082E581 |
:1000A000003092E5030080E1000082E50EF0A0E15F |
:1000B000FF0000E2862EA0E3462282E2003092E5B5 |
:1000C000FF3CC3E3003082E5003092E5003483E179 |
:1000D000003082E50EF0A0E1FF0000E20622A0E37E |
:1000E000862E82E2003092E5FF3003E2003082E5A6 |
:1000F000003092E5003483E1003082E50EF0A0E1AB |
:100100000632A0E3863E83E2003093E50000A0E3E0 |
:100110000EF0A0E10DC0A0E100D82DE904B04CE242 |
:100120000008A0E12008B0E12C309F0500309305C5 |
:100130000120A003B821C30100A81B091C309FE5C2 |
:10014000003093E50FE0A0E100F093E508309FE573 |
:10015000003093E5120083E200A81BE92018000498 |
:10016000001800040DC0A0E110D82DE904B04CE245 |
:1001700050309FE5002093E50510D2E548309FE51B |
:100180000130D3E5030051E10C00008A0430D2E5D0 |
:10019000000053E30900001AB840D2E1000054E324 |
:1001A0000600001A1210C2E520309FE5003093E5EA |
:1001B0000FE0A0E104F093E50400A0E110A81BE922 |
:1001C0000200A0E310A81BE9201800048C01000421 |
:1001D000001800040DC0A0E100D82DE904B04CE2E5 |
:1001E0000008A0E12008B0E12C309F050030930505 |
:1001F0000120A003B821C30100A81B091C309FE502 |
:10020000003093E50FE0A0E108F093E508309FE5AA |
:10021000003093E5140083E200A81BE920180004D5 |
:10022000001800040DC0A0E130D82DE904B04CE264 |
:1002300098309FE5002093E594409FE5003094E5D9 |
:100240000900D3E50510D3E50FE0A0E118F092E531 |
:100250000050A0E1004094E51230D4E5000053E3E3 |
:100260001800000A000050E30500001A0830D4E529 |
:10027000000053E30200001A0430D4E5000053E309 |
:100280000100000A0200A0E330A81BE9000050E3CF |
:100290000C00001A3C309FE5003093E50FE0A0E130 |
:1002A0000CF093E528109FE5002091E50930D2E598 |
:1002B0001330C2E5002091E50530D2E51430C2E5E7 |
:1002C0000500A0E130A81BE90200A0E330A81BE96B |
:1002D000A017000420180004001800040DC0A0E1BD |
:1002E00000D82DE904B04CE20008A0E12008B0E1FC |
:1002F000FC309F05003093050220A003B821C30104 |
:1003000000A81B09EC109FE50030A0E3B030C1E16C |
:10031000DC309FE5002093E50030D2E57F0013E359 |
:100320000A00001A1120D2E5200012E30030D11596 |
:10033000023083130030C115400012E3B4209F0542 |
:100340000030D2050130C3032200000A1E0000EA7B |
:100350009C309FE5003093E50030D3E57F3003E229 |
:10036000010053E38C009F0500A81B0980309FE526 |
:10037000002093E50030D2E57F3003E2020053E332 |
:100380000000A01300A81B190920D2E50230A0E14B |
:100390000F2002E2800013E30500000A0632A0E30A |
:1003A000023B83E2023193E7303003E2100053E373 |
:1003B000040000EA0632A0E3023B83E2023193E745 |
:1003C000033A03E2010A53E30300001A24209FE5E5 |
:1003D0000030D2E5013083E30030C2E518309FE5FC |
:1003E000003093E50FE0A0E110F093E504009FE5F5 |
:1003F00000A81BE92018000440170004001800049E |
:100400000DC0A0E130D82DE904B04CE280319FE569 |
:10041000002093E50000D2E57F0010E21130D20504 |
:100420002030C3031130C20530A81B09020050E37D |
:100430000200A01330A81B1954319FE5002093E55A |
:10044000B430D2E1000053E31B00001A0830D2E5BB |
:10045000000053E31800001A34319FE5003093E5A3 |
:100460000900D3E58040C0E30410A0E1D930D3E116 |
:10047000000053E30632A0B3023B83B2043193B7CA |
:10048000302003B20632A0A3023B83A2043193A71B |
:10049000032A03A2FC309FE50030D3E5000052E3BD |
:1004A000030051110400002AE4309FE5003093E579 |
:1004B0001230D3E5000053E30100001A0200A0E36C |
:1004C00030A81BE9800010E30C00000A0632A0E30C |
:1004D000023B83E2043193E7303003E2100053E340 |
:1004E0002500001AFF4004E20400A0E15DFCFFEBE0 |
:1004F0000400A0E13010A0E371FBFFEB1E0000EA56 |
:100500000652A0E3025B85E2043195E7033A03E279 |
:10051000010A53E31800001A000054E30B00001A0C |
:1005200074309FE52C10D3E50400A0E1C1FCFFEB83 |
:10053000043195E70139C3E37030C3E30338A0E128 |
:100540002338A0E1033A23E2043185E70A0000EAF8 |
:10055000FF0004E235FCFFEB0622A0E3022B82E25F |
:10056000043192E70139C3E37030C3E30338A0E1FB |
:100570002338A0E1033A23E2043182E71C309FE5EF |
:10058000003093E50FE0A0E114F093E50000A0E354 |
:1005900030A81BE9201800048C010004900100041D |
:1005A000001800040DC0A0E100D82DE904B04CE211 |
:1005B000E4309FE5003093E509E0D3E580C0CEE369 |
:1005C000D930D3E1000053E30632A0B3023B83B23B |
:1005D0000C3193B7300003B20632A0A3023B83A2D2 |
:1005E0000C3193A7030A03A2B0309FE50030D3E596 |
:1005F00003005CE10C00002A9C309FE5001093E5AD |
:10060000B420D1E1000050E30030A0130130A0037A |
:10061000000052E301308313000053E30200001A8C |
:100620001230D1E5000053E30100001A0200A0E3FC |
:1006300000A81BE980001EE30800000A0622A0E3D0 |
:10064000022B82E20C3192E7073AC3E34030C3E366 |
:100650000338A0E12338A0E1103023E2070000EACC |
:100660000622A0E3022B82E20C3192E70139C3E3B8 |
:100670007030C3E30338A0E12338A0E1013A23E25C |
:100680000C3182E718309FE5003093E50FE0A0E1E0 |
:1006900018F093E50000A0E300A81BE9201800046F |
:1006A0008C010004001800040DC0A0E100D82DE961 |
:1006B00004B04CE224309FE5002093E51130D2E5F0 |
:1006C000203083E31130C2E514309FE5003093E51C |
:1006D0000FE0A0E11CF093E50000A0E300A81BE9F7 |
:1006E000201800040018000401C0A0E124309FE598 |
:1006F000002093E5BA11D2E10008A0E12008B0E1A2 |
:10070000B430DC0103306100B831C20100309C1507 |
:10071000030081100EF0A0E1201800040DC0A0E13C |
:10072000F0D82DE904B04CE228319FE5003093E584 |
:10073000187083E2B821D3E1083097E5000053E355 |
:10074000000052131500000AB440D7E1020054E142 |
:100750000240A0210450A0E10400A0E10FE0A0E1CC |
:1007600008F097E50060A0E1B030D7E1033064E025 |
:10077000B030C7E1B230D7E1043083E0B230C7E136 |
:100780000000A0E30CFCFFEB0010A0E10118A0E1C9 |
:100790002118A0E10600A0E10420A0E18A0300EBFB |
:1007A000B030D7E1000053E30800000AA8309FE50D |
:1007B000032AA0E3B020C3E10000A0E30010A0E101 |
:1007C00007FCFFEB94309FE53020A0E3B020C3E1AD |
:1007D000B020D7E1B430D7E1030052E174309F2557 |
:1007E000002093250330A0230500002AB030D7E174 |
:1007F000000053E30400000A58309FE5002093E511 |
:100800000530A0E31030C2E5F0A81BE944309FE5B5 |
:10081000002093E50630A0E31030C2E50612A0E305 |
:10082000851E81E2002091E50228A0E12228A0E1B6 |
:100830004602A0E3003092E7FF3FC3E30330C3E387 |
:10084000003082E7003091E510309FE53020A0E3D2 |
:10085000B020C3E1F0A81BE92018000450170004E1 |
:10086000601700040DC0A0E1F0D92DE904B04CE2FE |
:10087000BC309FE5003093E5187083E2B821D3E1E6 |
:100880001080D3E5000052E3040058030780A00362 |
:10089000A0309F051020A0032000000AB440D7E13B |
:1008A000040052E10280A0830480A093020054E17E |
:1008B0000240A0210450A0E10400A0E10FE0A0E16B |
:1008C00008F097E50060A0E10000A0E3B0FBFFEBBB |
:1008D0000010A0E10118A0E12118A0E10600A0E1AC |
:1008E0000420A0E1240300EB0000A0E30410A0E139 |
:1008F000BBFBFFEBB030D7E1033064E0B030C7E1C1 |
:10090000B230D7E1043083E0B230C7E124309FE554 |
:100910003020A0E3B020C3E11C309FE5032AA0E310 |
:10092000B020C3E108309FE5003093E51080C3E5B7 |
:10093000F0A91BE9201800046017000450170004F8 |
:100940000DC0A0E110D82DE904B04CE20200A0E3F4 |
:10095000C4319FE5003093E50140D3E50030D3E595 |
:100960007F0013E33200001A090054E30100001A6B |
:10097000FBFDFFEB470000EA050054E30F00001AFF |
:1009800094319FE5002093E5D530D2E1000053E398 |
:100990004C0000BA0430D2E5000053E34900001ACD |
:1009A000B830D2E1000053E34600001A1230D2E51D |
:1009B000000053E30000A0033600000A410000EAF3 |
:1009C000030054E30C00001A4C319FE5002093E52E |
:1009D0000530D2E5010053E32D00001AB830D2E112 |
:1009E000000053E32A00001A1130D2E5200013E37F |
:1009F0002700000A2BFFFFEB260000EA010054E36A |
:100A00002400001A10319FE5002093E50530D2E55F |
:100A1000010053E31E00001AB830D2E1000053E396 |
:100A20001B00001A1130D2E5200013E31200001A57 |
:100A3000170000EAE0309FE5003093E50030D3E591 |
:100A40007F3003E2010053E30300001A0B0054E37C |
:100A50001000001AF2FDFFEB0E0000EAB8309FE52F |
:100A6000003093E50030D3E57F3003E2020053E32A |
:100A70000700001A010054E30100001A5FFEFFEBBB |
:100A8000040000EA030054E30200001AC4FEFFEB76 |
:100A9000000000EA0200A0E3000050E30B00000A9F |
:100AA00078309FE5003093E5FF0004E20FE0A0E11D |
:100AB00014F093E5030050E309C0A0031200000AFC |
:100AC000000050E30100000A08C0A0E30E0000EAA5 |
:100AD00006C0A0E30612A0E3851E81E2002091E596 |
:100AE0000228A0E12228A0E14602A0E3003092E71C |
:100AF000FF3FC3E30330C3E3003082E7003091E5FA |
:100B00001C309FE53020A0E3B020C3E108309FE512 |
:100B1000003093E510C0C3E510A81BE920180004BD |
:100B2000A0170004601700040DC0A0E170D82DE9E3 |
:100B300004B04CE220339FE5002093E50110D2E59C |
:100B40000040A0E30450A0E1060051E31200001AA7 |
:100B50000030D2E57F0013E37A00001A0430D2E5BA |
:100B6000010053E3F4329F05003093051C409305C8 |
:100B70007400000A020053E3E0329F050030930541 |
:100B8000204093056F00000A030053E3CC329F0519 |
:100B900000309305244093056A0000EA000051E309 |
:100BA0004400001AB0329FE5002093E5B430D2E152 |
:100BB000000053E33F00001ABC30D2E1020053E3CF |
:100BC0003C00001A0830D2E5000053E33900001A57 |
:100BD0000030D2E57F0013E30200001AB830D2E102 |
:100BE000000053E33100000A6C629FE5002096E5A7 |
:100BF0000030D2E57F3003E2010053E30B00001A1E |
:100C000058329FE5003093E50900D2E50010A0E3DB |
:100C10000FE0A0E118F093E5000050E34900001A4E |
:100C2000003096E51230D3E5000053E31E0000EAE1 |
:100C300024329FE5002093E50030D2E57F3003E2C7 |
:100C4000020053E33F00001A0910D2E50F1001E241 |
:100C50000900D2E5700000E2D930D2E1000053E390 |
:100C60000632A0B3023B83B2013193B730C003B266 |
:100C70000632A0A3023B83A2013193A703CA03A2B9 |
:100C8000DC319FE50020D3E5000050E30030A013E5 |
:100C90000130A003020051E10030A02301300332F3 |
:100CA000000053E32700000A00005CE32500000A6F |
:100CB000B0419FE5230000EA080051E30500001A57 |
:100CC00094319FE5003093E50030D3E57F0013E3D6 |
:100CD00094419F051B0000EA0A0051E31900001A25 |
:100CE00074319FE5002093E50030D2E57F3003E2C8 |
:100CF000010053E31300001A1230D2E5000053E361 |
:100D00001000000AB430D2E1000053E30D00001AD5 |
:100D10000810D2E5000051E30A00001ABC30D2E10D |
:100D2000010053E30700001A30319FE5003093E5DE |
:100D30000900D2E50FE0A0E118F093E52C319FE522 |
:100D4000000050E30340A001000054E30900000A42 |
:100D500004319FE5002093E5BA51C2E1003093E5EC |
:100D6000204083E50000A0E30FE0A0E104F0A0E153 |
:100D70000000A0E30A0000EAE0309FE5002093E5D0 |
:100D8000D4409FE5003094E50100D3E50FE0A0E1F9 |
:100D900010F092E5030050E3002094050930A00311 |
:100DA0001200000AB0309FE5001093E5B821D1E1B0 |
:100DB000FF3CA0E3FF3083E2030052E10930A003CF |
:100DC0001030C10570A81B09020050E30400000A9E |
:100DD00084309FE5003093E5B831D3E1000053E360 |
:100DE0000400001A70309FE5002093E50830A0E36E |
:100DF0001030C2E570A81BE95C309FE5002093E548 |
:100E0000D030D2E1000053E30B0000AABC10D2E1C5 |
:100E1000B831D2E1010053E1B811C28138309FE509 |
:100E2000002093E534309FE5003093E52C30D3E586 |
:100E3000BC31C2E18AFEFFEB70A81BE918309FE5C8 |
:100E4000002093E50330A0E31030C2E520309FE599 |
:100E5000032AA0E3B020C3E170A81BE92018000416 |
:100E6000A01700048C010004DC0201001401010041 |
:100E7000D4010100501700040DC0A0E170D82DE985 |
:100E800004B04CE20000A0E34BFAFFEB9F54C0E338 |
:100E9000FF58C5E3065285E388609FE5002096E58C |
:100EA0001030D2E5090053E31000000A0030D5E508 |
:100EB0000030C2E5002096E5B030D5E12334A0E152 |
:100EC0000130C2E5004096E5B200D5E1D8FBFFEB6A |
:100ED000B400C4E1004096E5B400D5E1D4FBFFEBDB |
:100EE000B800C4E1003096E5B650D5E1BC50C3E18E |
:100EF00030109FE5002091E50130A0E31030C2E5FD |
:100F0000003091E5BC30D3E1000053E30100001A4A |
:100F10008AFEFFEB000000EA02FFFFEB460000EB59 |
:100F2000FF0000E270A81BE9201800040DC0A0E13A |
:100F300010D82DE904B04CE28C409FE5003094E5D8 |
:100F40001020D3E5040052E3020052130300001AFC |
:100F500043FEFFEB003094E51020D3E5140000EAD7 |
:100F6000060052E31100001A5C309FE5002093E573 |
:100F70000130D2E5050053E30800001A0030D2E545 |
:100F80007F0013E30500001A0500D2E5470000EBDF |
:100F900038309FE5003093E50FE0A0E120F093E5C5 |
:100FA0002C309FE5003093E50FE0A0E108F093E5D9 |
:100FB0000820A0E310309FE5003093E51020C3E542 |
:100FC0001D0000EBFF0000E210A81BE92018000440 |
:100FD00000180004A01700040DC0A0E110D82DE9EE |
:100FE00004B04CE248309FE5003093E51040D3E573 |
:100FF000050054E3030054130100001AC6FDFFEB83 |
:10100000050000EA070054E328309F0500309305EF |
:101010000FE0A0010CF093050840A0E310309FE51D |
:10102000003093E51040C3E5030000EBFF0000E251 |
:1010300010A81BE920180004A01700040DC0A0E1AF |
:1010400000D82DE904B04CE250309FE52C10D3E5D8 |
:101050000000A0E3F7F9FFEB44309FE5003093E593 |
:101060001030D3E5080053E30500001A34309FE543 |
:10107000012AA0E3B020C3E12C309FE51020A0E3BB |
:10108000B020C3E118309FE5003093E51000D3E5B0 |
:10109000090050E30000A0130100A00300A81BE911 |
:1010A0009001000420180004501700046017000489 |
:1010B00010402DE9FF4000E254309FE50000D3E5E9 |
:1010C0000010A0E3000051E10C00002A06C2A0E3DA |
:1010D00002CB8CE28FECA0E38FE08EE2FF2001E2F6 |
:1010E00002319CE70338A0E123380EE0023083E1AF |
:1010F00002318CE7011081E2000051E1F6FFFF3A76 |
:10110000213DA0E3C63283E2802084E3002083E512 |
:101110001080BDE88C0100040EF0A0E10DC0A0E13C |
:1011200070D82DE904B04CE2D0229FE5213DA0E328 |
:101130000310A0E1463283E2003093E5B030C2E113 |
:10114000B030D2E1020913E370A81B09B0529FE549 |
:101150000260A0E1462281E27F3CA0E3FF3083E20F |
:10116000003082E5B030D6E10F3003E20030C5E553 |
:101170000030D5E5000053E37400001A0642A0E3F6 |
:10118000024B84E2003094E5033A03E274229FE5C7 |
:10119000B030C2E1003094E5303003E268229FE5D0 |
:1011A000B030C2E1003094E50139C3E37030C3E3ED |
:1011B0000338A0E12338A0E1023A23E2003084E5BD |
:1011C000003094E5073AC3E34030C3E30338A0E1BD |
:1011D0002338A0E1203023E2003084E5B030D6E1AE |
:1011E000100013E30F00001A003094E5073AC3E340 |
:1011F000F030C3E30338A0E12338A0E1003084E5F8 |
:1012000049FFFFEB003094E5220B13E32800000AAE |
:10121000003094E57030C3E3033AA0E1233AA0E143 |
:10122000003084E5160000EA0622A0E3022B82E2E9 |
:10123000003092E50338A0E12348A0E1800014E3E8 |
:101240000600000A003092E5073AC3E3F030C3E33A |
:101250000338A0E12338A0E1003082E532FFFFEB44 |
:10126000020B14E30800000A0622A0E3022B82E22C |
:10127000003092E57030C3E3033AA0E1233AA0E1E5 |
:10128000003082E5FBFEFFEB090000EA020914E3EF |
:101290000700000A0622A0E3022B82E2003092E55A |
:1012A0007030C3E3033AA0E1233AA0E1003082E5C5 |
:1012B00048FFFFEB0632A0E3023B83E2003093E5F8 |
:1012C0000139C3E37030C3E30338A0E14318A0E160 |
:1012D00030319FE5B030D3E1010A13E3011A211246 |
:1012E00020319FE5B030D3E1020A13E3021A211244 |
:1012F0000622A0E3022B82E20138A0E12338A0E11C |
:10130000003082E5003092E5073AC3E34030C3E3A2 |
:101310000338A0E14318A0E1EC309FE5B030D3E101 |
:10132000100013E310102112DC309FE5B030D3E140 |
:10133000200013E3201021120622A0E3022B82E2F8 |
:101340000138A0E12338A0E1003082E5220000EA64 |
:10135000AC009FE50020D0E50612A0E3021B81E26D |
:10136000023191E70338A0E12348A0E1020914E328 |
:101370000900000A023191E77030C3E3033AA0E1AB |
:10138000233AA0E1023181E70020D0E57C309FE5DF |
:10139000023183E00FE0A0E104F013E5800014E3E4 |
:1013A0000D00000A0010D5E50622A0E3022B82E220 |
:1013B000013192E7073AC3E3F030C3E30338A0E119 |
:1013C0002338A0E1013182E70020D5E540309FE5D8 |
:1013D000023183E00FE0A0E104F013E51C209FE55B |
:1013E000211DA0E3463281E2003093E5B030C2E136 |
:1013F000B030D2E1020913E370A81B0954FFFFEAE1 |
:1014000050110004A81700045017000460170004CE |
:10141000480100040C0100040DC0A0E1F0D82DE942 |
:1014200004B04CE2E4209FE50210A0E1213DA0E3DE |
:10143000463283E2003093E5B030C2E1B030D2E111 |
:10144000020913E3F0A81B09217DA0E3467287E29D |
:10145000BC509FE50662A0E3026B86E27F3CA0E3FE |
:10146000FF3083E2003087E5B030D1E10F3003E296 |
:101470000030C5E50020D5E5023196E70338A0E14C |
:101480002348A0E1020914E30900000A023196E7AB |
:101490007030C3E3033AA0E1233AA0E1023186E7CA |
:1014A0000020D5E56C309FE5023183E00FE0A0E13C |
:1014B00004F013E5800014E30D00000A0010D5E5E8 |
:1014C0000622A0E3022B82E2013192E7073AC3E34E |
:1014D000F030C3E30338A0E12338A0E1013182E713 |
:1014E0000020D5E530309FE5023183E00FE0A0E138 |
:1014F00004F013E514109FE5003097E5B030C1E12A |
:10150000B030D1E1020913E3F0A81B09D2FFFFEAD2 |
:1015100050110004A8170004480100040C01000445 |
:101520000DC0A0E100D82DE904B04CE230209FE5C9 |
:1015300030309FE5002083E50230A0E31030C2E5A3 |
:1015400024109FE524309FE5001083E520209FE5CF |
:1015500020309FE5002083E50FE0A0E100F091E559 |
:1015600000A81BE9C0170004201800049001000423 |
:10157000A0170004C0010004001800040228A0E124 |
:101580002228A0E1032082E29F14C1E3FF18C1E3F7 |
:10159000061281E342C1B0E10EF0A0010030D0E5B7 |
:1015A0000120D0E5023483E10220D0E5023883E156 |
:1015B0000320D0E5023C83E1040080E2043081E4B2 |
:1015C00001C05CE20EF0A001F3FFFFEA0118A0E108 |
:1015D0004118A0E10228A0E142C8A0E1000052E3C6 |
:1015E0000EF0A0019F14C1E3FF18C1E3061281E3CE |
:1015F0000130D1E40130C0E401304CE20338A0E115 |
:1016000043C8A0E1000053E30EF0A0010130D1E493 |
:101610000130C0E401304CE20338A0E143C8A0E14E |
:10162000000053E30EF0A001F0FFFFEA0DC0A0E1BF |
:1016300070D82DE90140A0E10030A0E1D8309FE54D |
:1016400004B04CE202C1C0E314D04DE203005CE1FF |
:101650000160A0E10050A0E1B4208FD20C0092D82C |
:10166000160000DAB4309FE503005CE1030000DA05 |
:101670000130A0E10020A0E14A0F00EB70A81BE9B7 |
:1016800028504BE20520A0E1260200EB03C000E257 |
:1016900001005CE30B00000A020000CA00005CE3EA |
:1016A0000300000A130000EA02005CE30B00000ADA |
:1016B000100000EA20C04BE2030095E80C009CE813 |
:1016C000690400EB70A81BE920E04BE2030095E8F9 |
:1016D0000C009EE800C08DE5EF0700EB030000EA78 |
:1016E00020C04BE2030095E80C009CE85E0400EB90 |
:1016F000171200EB70A81BE920E04BE2030095E80D |
:101700000C009EE801C0A0E300C08DE5E20700EBFD |
:1017100070A81BE90000000000000000FB21E93F69 |
:10172000FFFFEF7F000000EAC70000EA0DC0A0E164 |
:10173000F0DB2DE904B04CE230404BE20CD04DE23E |
:101740000C0084E90340A0E10230A0E1002064E243 |
:10175000022084E10251C3E3E8629FE5A22F85E104 |
:1017600004E0A0E130300BE5060052E10140A0E1C9 |
:101770000030A0E10180A0E10070A0E10090A0E1B4 |
:101780000420A0E102C1C0E30400008A003064E24A |
:10179000033084E1A33F8CE1060053E10500009A89 |
:1017A00030204BE2030092E90830A0E10720A0E1DD |
:1017B000E40E00EBF0AB1BE930401BE5033184E2A3 |
:1017C000013683E20E3093E10100001AF06B1BE951 |
:1017D000400800EA30101BE5413FA0E1023003E27F |
:1017E00002209CE1A76F83E10900001A030056E381 |
:1017F00006F18F90060000EA020000EA010000EA0C |
:101800002A0000EA2C0000EA0810A0E10700A0E18D |
:10181000F0AB1BE90EE095E12D00000A24329FE5B4 |
:10182000030055E12700001A05005CE11200001AD0 |
:10183000030056E306F18F90220000EA020000EA5E |
:10184000040000EA060000EA080000EA670F8FE2E1 |
:10185000030090E8F0AB1BE9660F8FE2030090E80D |
:10186000F0AB1BE9650F8FE2030090E8F0AB1BE9DA |
:10187000190E8FE2030090E8F0AB1BE9030056E37A |
:1018800006F18F900F0000EA020000EA040000EA6F |
:10189000060000EA080000EA170E8FE2030090E855 |
:1018A000F0AB1BE95B0F8FE2030090E8F0AB1BE9A4 |
:1018B0005A0F8FE2030090E8F0AB1BE9590F8FE25B |
:1018C000030090E8F0AB1BE978319FE503005CE191 |
:1018D0000700001A000059E3020000AA530F8FE22C |
:1018E000030090E8F0AB1BE9520F8FE2030090E891 |
:1018F000F0AB1BE90C3065E0433AA0E13C0053E358 |
:10190000134E8FC2300094C8100000CA30201BE56F |
:101910003C0073E30030A0A30130A0B3A22F13E07A |
:10192000E8408F12300094180800001A30404BE253 |
:101930000C0094E90810A0E10700A0E1C90F00EB3A |
:101940003F0900EBE30700EB0150A0E10040A0E1FC |
:10195000010056E30900000A020000CA000056E335 |
:101960000300000A180000EA020056E30B00000A18 |
:10197000150000EA0510A0E10400A0E1F0AB1BE9AE |
:101980000520A0E10410A0E10430A0E10540A0E1A1 |
:10199000023121E20410A0E10300A0E1F0AB1BE959 |
:1019A00098208FE20C0092E80510A0E10400A0E16D |
:1019B0007C0E00EB0130A0E10020A0E15C008FE292 |
:1019C000030090E8770E00EBF0AB1BE96C208FE290 |
:1019D0000C0092E80510A0E10400A0E1710E00EBFC |
:1019E00038208FE20C0092E86E0E00EBF0AB1BE9A2 |
:1019F000FB21E93F182D4454FB21E9BF182D445425 |
:101A00007CD90240D221337F7CD902C0D221337FDE |
:101A10000000000000000000000000800000000046 |
:101A2000FB210940182D4454FB2109C0182D4454B2 |
:101A3000FB21F9BF182D4454FB21F93F182D4454C4 |
:101A400026A6A13C075C14330000F07F0DC0A0E186 |
:101A5000F0DB2DE904B04CE20190A0E10080A0E1B0 |
:101A600034D04DE230004BE20C0000E830104BE285 |
:101A700030C04BE2000381E906001CE80271C8E3B4 |
:101A80000251C1E3070055E1080000DA0100A0E1BE |
:101A90000210A0E130204BE2030082E930104BE25B |
:101AA000000301E80730A0E10570A0E10350A0E1C8 |
:101AB000073065E030204BE20F0553E330C04BE2C6 |
:101AC000180092E930004BE206001CE80730A0E164 |
:101AD0000510A0E1180080E930304BE2060003E871 |
:101AE000040000DA30404BE2030094E90C001CE8EB |
:101AF000140E00EBF0AB1BE918349FE50000A0E3E7 |
:101B0000030057E150000BE5280000DA08349FE598 |
:101B1000030057E1190000DA30204BE230404BE27D |
:101B2000030092E90C0014E8060E00EB50C04BE2F3 |
:101B300003008CE930004BE2FF34C7E3060090E974 |
:101B40000F36C3E3023093E130104B0206009109D7 |
:101B500050304B0206008309C0239FE530C04BE2A2 |
:101B600018001CE8022025E0042092E150204B02DE |
:101B70001800820950204BE2030092E9F0AB1BE908 |
:101B800030C04BE230004BE218009CE9060010E840 |
:101B9000967547E2965545E20510A0E10730A0E1B1 |
:101BA000060000E818008CE9961FA0E350100BE532 |
:101BB0006C339FE5030055E12E0000CA010655E392 |
:101BC0001F0000AA30204BE2180012E8043095E113 |
:101BD0000200001A30304BE2030093E9F0AB1BE93E |
:101BE000320E8FE2030090E840204BE230304BE2AF |
:101BF000030082E9030013E8C22F8FE20C0092E891 |
:101C0000150E00EB30C04BE203000CE850C01BE5A2 |
:101C100030204BE240404BE2030092E9FFCF4CE220 |
:101C20000C0094E950C00BE50B0E00EB50301BE5A7 |
:101C300030204BE2023043E2030082E950300BE5F2 |
:101C40000C0000EA30004BE2060010E8965585E2F1 |
:101C500030C04BE20510A0E118009CE9967587E2C0 |
:101C6000060000E850101BE50730A0E1961F41E296 |
:101C700018008CE950100BE530204BE230404BE26D |
:101C8000030092E90C0014E8C60D00EB30404BE273 |
:101C900050C04BE203008CE90C0014E8CB0F00EBC2 |
:101CA000000050E3340000DA0040A0E30030A0E37D |
:101CB00040C04BE20730A0E118008CE930204BE235 |
:101CC00040404BE2030092E90C0094E9B50D00EBB3 |
:101CD00040C04BE240204BE203000CE8030092E9D5 |
:101CE0000130A0E10020A0E1DB0D00EB30C04BE2B1 |
:101CF0000170A0E10060A0E103001CE8941000EB7B |
:101D000030404BE20130A0E10020A0E1030014E8E4 |
:101D1000D10D00EB30C04BE20150A0E10040A0E14A |
:101D200003009CE940C04BE20C009CE9850D00EBF0 |
:101D300040C04BE20130A0E10020A0E103001CE81C |
:101D4000C50D00EB0130A0E10020A0E10510A0E1ED |
:101D50000400A0E1930D00EB0130A0E10020A0E120 |
:101D60000710A0E10600A0E18E0D00EB170200EBCA |
:101D700050204BE2030082E94D0000EA30304BE294 |
:101D8000030093E90130A0E10020A0E16D0D00EB1C |
:101D900030404BE2030084E90040A0E30030A0E3C0 |
:101DA0000530A0E10460A0E10350A0E130C04BE2A7 |
:101DB0000630A0E10520A0E103001CE8790D00EB4E |
:101DC0000040A0E30030A0E30190A0E10080A0E18A |
:101DD000013687E240004BE2180080E930204BE2F8 |
:101DE00040404BE2030092E90C0094E96D0D00EBDA |
:101DF00040C04BE240204BE203000CE8030092E9B4 |
:101E00000630A0E10520A0E1930D00EB50404BE22D |
:101E100050304BE2030003E9030094E94C1000EB5F |
:101E200050C04BE20130A0E10020A0E103009CE99A |
:101E3000890D00EB40204BE20170A0E10060A0E1C1 |
:101E4000030092E90930A0E10820A0E1820D00EB37 |
:101E500030C04BE240304BE20150A0E10040A0E135 |
:101E6000030013E80C001CE87B0D00EB0130A0E13F |
:101E70000020A0E10510A0E10400A0E1310D00EB7D |
:101E80000130A0E10020A0E10710A0E10600A0E1E0 |
:101E9000440D00EB50404BE20130A0E10020A0E1F6 |
:101EA000030014E93F0D00EBC80100EB50C04BE20A |
:101EB00003008CE950001BE5000050E30E00000A0F |
:101EC00048108FE2060091E840304BE2060083E9BB |
:101ED0000240A0E10130A0E1003A81E040004BE285 |
:101EE000180080E90410A0E10300A0E150404BE29B |
:101EF0000C0094E9580D00EBF0AB1BE950C04BE22D |
:101F000003009CE9F0AB1BE90000D07F000000005B |
:101F10000000F03F000000000000305FFFFFEF7F97 |
:101F20000000F07FFFFFAF200DC0A0E1F0DF2DE942 |
:101F30000140A0E10030A0E1B0329FE5B0A29FE5F2 |
:101F40000291C0E304B04CE250D04DE2030059E1ED |
:101F50000160A0E10050A0E168000BE544200BE522 |
:101F60000AA08FE0B37F8FE2800197E80200A0D142 |
:101F70006000A0D80020A0D3800180D8910100DAB1 |
:101F800070329FE5030059E15C0000CA68201BE540 |
:101F9000000052E32A0000DA232E8FE20C0092E8C0 |
:101FA000000D00EB50329FE5030059E144301BE582 |
:101FB0000180A0E10070A0E1084083E20C00000A6B |
:101FC000212E8FE20C0092E8F60C00EB44C01BE5DA |
:101FD0000130A0E10020A0E103008CE80810A0E19E |
:101FE0000700A0E1EF0C00EB7A2F8FE20C0092E8E3 |
:101FF000100000EA852F8FE20C0092E8E90C00EB5C |
:10200000212E8FE20C0092E80180A0E10070A0E197 |
:10201000E40C00EB0130A0E10020A0E144001BE54E |
:102020000C0080E80810A0E10700A0E1DD0C00EB47 |
:102030001E2E8FE20C0092E8DA0C00EB0120A0E3E8 |
:102040005D0100EA612F8FE20C0092E8BD0C00EB0D |
:10205000A4319FE50180A0E10070A0E144101BE5E0 |
:10206000030059E1084081E20E00000A592F8FE277 |
:102070000C0092E80810A0E10700A0E1B10C00EB11 |
:1020800044C01BE50130A0E10020A0E103008CE882 |
:102090000810A0E10700A0E1C20C00EB4D2F8FE279 |
:1020A0000C0092E8120000EA162E8FE20C0092E873 |
:1020B0000810A0E10700A0E1A20C00EB552F8FE271 |
:1020C0000C0092E80180A0E10070A0E19D0C00EB03 |
:1020D0000130A0E10020A0E144001BE50C0080E8F5 |
:1020E0000810A0E10700A0E1AE0C00EB492F8FE241 |
:1020F0000C0092E8930C00EB0020E0E32E0100EAD4 |
:10210000F8309FE5030059E1D80000CA4C0700EB06 |
:1021100050204BE2030082E9C0208FE20C0092E8DD |
:10212000CD0C00EBBC208FE20C0092E8850C00EB9C |
:102130004B0F00EB64000BE5190F00EB60404BE226 |
:10214000030084E984208FE20C0092E8C20C00EBCB |
:1021500050404BE20130A0E10020A0E1030094E9EF |
:10216000900C00EB50C04BE260204BE203000CE807 |
:10217000030092E95C208FE20C0092E8B60C00EBC1 |
:1021800064301BE51F0053E30180A0E10070A0E173 |
:102190002A0000CA68309FE564401BE503308AE0EE |
:1021A000043183E0043013E5030059E12300000A01 |
:1021B00050C04BE20830A0E10720A0E103001CE87A |
:1021C000780C00EB44201BE5030082E88C0000EA59 |
:1021D000FB21F93F0000405461B4D03D3163621AE5 |
:1021E000305FE43F83C8C96D0000E03F000000009D |
:1021F000FB21E93F0CE3FE037BD90240FB21F93FC1 |
:10220000FB213941109A01FCFFFFEF7F089901FC87 |
:1022100061B4D03D0000601A8A19A33B7370032E8D |
:102220008A19A33B0000002E9A837B39C1492025DF |
:1022300000007041000000000000000000000000ED |
:1022400050304BE2030013E80830A0E10720A0E182 |
:10225000540C00EB203AA0E1833AA0E1499AA0E1B6 |
:10226000A33AA0E1096063E044401BE5100056E397 |
:10227000030084E8620000DA50004BE2030010E83B |
:1022800050404BE2030084E960404BE284204FE27F |
:102290000C0092E8030094E96F0C00EB50C04BE295 |
:1022A0000180A0E10070A0E10830A0E10720A0E1DA |
:1022B00003009CE93B0C00EB60404BE250204BE2FA |
:1022C000030002E8B4204FE20C0092E8030094E916 |
:1022D000610C00EB50C04BE20C001CE80150A0E187 |
:1022E0000040A0E103009CE92E0C00EB0830A0E1C7 |
:1022F0000720A0E12B0C00EB0130A0E10020A0E1C1 |
:102300000510A0E10400A0E1260C00EB50204BE2F8 |
:102310000180A0E10070A0E1030012E80830A0E114 |
:102320000720A0E11F0C00EB203AA0E1833AA0E1D6 |
:10233000A33AA0E1096063E044301BE5030083E8B1 |
:1023400050004BE2030010E870204BE2310056E3EE |
:10235000030082E82A0000DA60404BE2512F4FE28E |
:102360000C0092E8030094E93B0C00EB50C04BE2F8 |
:102370000180A0E10070A0E10830A0E10720A0E109 |
:1023800003001CE8070C00EB50204BE260304BE2EE |
:10239000030002E8030093E95E2F4FE20C0092E88D |
:1023A0002D0C00EB70C04BE20150A0E10040A0E119 |
:1023B00003009CE850C04BE20C001CE8F90B00EB5A |
:1023C0000830A0E10720A0E1F60B00EB0130A0E10E |
:1023D0000020A0E10510A0E10400A0E1F10B00EB5A |
:1023E00050204BE20180A0E10070A0E1030012E860 |
:1023F0000830A0E10720A0E1EA0B00EB44301BE528 |
:10240000030083E844401BE550C04BE20C0094E815 |
:1024100003001CE8E30B00EB0830A0E10720A0E17B |
:10242000E00B00EB0150A0E10040A0E168001BE5DB |
:1024300044101BE5000050E3086081E2300086E8AC |
:102440005F0000AA030091E8C10E00EB44301BE5D9 |
:10245000030083E80510A0E10400A0E1BC0E00EB3E |
:1024600064401BE5002064E2030086E8550000EAB2 |
:1024700070321FE5030059E1080000DA0130A0E1E5 |
:102480000020A0E1C70B00EB44C01BE50020A0E347 |
:1024900008308CE2030083E803008CE8490000EA7E |
:1024A000493AA0E1413E43E260300BE50120A0E162 |
:1024B0000010A0E160001BE5060040E20240A0E140 |
:1024C000003A49E060000BE50480A0E10370A0E160 |
:1024D0000060A0E30810A0E10700A0E1600E00EB9F |
:1024E0002F0E00EB40904BE286C189E00150A0E145 |
:1024F0000040A0E10530A0E10420A0E10810A0E127 |
:102500000700A0E130008CE8A60B00EBB92F4FE2EA |
:102510000C0092E8D00B00EB016086E2010056E36C |
:102520000180A0E10070A0E1E9FFFFDA30104BE28A |
:102530000350A0E328404BE2800181E8030014E946 |
:10254000312E4FE20C0092E8790D00EB000050E3D1 |
:102550000150450208404402F7FFFF0A02C0A0E311 |
:1025600000C08DE560C31FE560201BE50CC08AE05C |
:102570000900A0E10530A0E144101BE504C08DE591 |
:102580006E0100EB68201BE5000052E364000BE5E0 |
:102590000B0000AA44301BE5030093E86C0E00EB2F |
:1025A00044401BE50300A4E8030094E844400BE525 |
:1025B000670E00EB64C01BE500206CE2030084E8BA |
:1025C000000000EA64201BE50200A0E1F0AF1BE977 |
:1025D0000DC0A0E1F0DB2DE988229FE584329FE564 |
:1025E00004B04CE2022000E00150A0E10040A0E174 |
:1025F00008D04DE2030052E130404BE20030A0E34E |
:102600000020A0E30170A0E10060A0E100C0A0E113 |
:1026100005E0A0E10C0084E90600001A0130A0E109 |
:102620000020A0E18C0B00EB0730A0E10620A0E128 |
:10263000440B00EBF0AB1BE9000050E3140000CAB0 |
:102640000231C0E3053093E1F0AB1B09000050E319 |
:102650000F0000AA0130A0E10020A0E1510B00EB27 |
:102660000730A0E10620A0E10150A0E10040A0E178 |
:102670000710A0E10600A0E14A0B00EB0130A0E149 |
:102680000020A0E10510A0E10400A0E1750C00EB22 |
:10269000F0AB1BE94C5AB0E11200001A00005CE3F9 |
:1026A0000400001AAEC58CE100005CE3155045E261 |
:1026B0008EEAA0E1FAFFFF0A01061CE30010A0E386 |
:1026C0000300001A8CC0A0E101061CE3011081E2A6 |
:1026D000FBFFFF0A052061E0203061E23EC38CE190 |
:1026E000015082E21EE1A0E1FF34CCE3FF5F45E24E |
:1026F0000F36C3E3035045E2010015E301C683E34F |
:10270000AE3F8C1003C08C108EE0A0110000A0E33F |
:10271000AE3F8CE00090A0E103C08CE0C550A0E18A |
:102720008EE0A0E10060A0E10080A0E10246A0E30D |
:10273000042080E00C0052E10CC062D0AE3F8CE07F |
:10274000040082D0049089D0A440B0E103C08CE0A2 |
:102750008EE0A0E1F5FFFF1A0241A0E30C0050E17A |
:102760000020A0E10030A0130130A003041086E097 |
:10277000040000BA0E0051E10030A0830130039242 |
:10278000000053E30900000A000051E30CC062E0BE |
:10279000046081E0048088E0010000AA000056E3A4 |
:1027A000010082A201005EE101C04C320EE061E056 |
:1027B000AE3F8CE0A440B0E103C08CE08EE0A0E12D |
:1027C000E5FFFF1A0EC09CE11800000A8C608FE242 |
:1027D000C00096E80710A0E10600A0E10730A0E1E4 |
:1027E0000620A0E1200D00EB000050E30F0000BA2E |
:1027F000010078E30480A001019089020B00000A27 |
:102800000730A0E10620A0E10710A0E10600A0E14A |
:10281000EE0C00EB000050E3013008D2038088D0BA |
:10282000020000DA020078E301908902028088E267 |
:10283000C930A0E1FFC583E2A8E0A0E1010019E3EF |
:1028400002C68CE202E18E13055A8CE02C500BE597 |
:1028500028E00BE530204BE2030092E9F0AB1BE9E6 |
:102860000000F03F000000000000F07F0DC0A0E17C |
:10287000F0DB2DE904B04CE20261C0E330C04BE272 |
:1028800018D04DE2F90556E30150A0E10040A0E167 |
:1028900003008CE90C000CE80090A0E30080A0E3AA |
:1028A000050000AA6E0D00EB000050E30200001AC4 |
:1028B0008E0F8FE2030090E8F0AB1BE930104BE283 |
:1028C0000C0091E90310A0E10200A0E1E20A00EB94 |
:1028D000222E8FE20C0092E80150A0E10040A0E11E |
:1028E000DD0A00EB852F8FE20C0092E8950A00EBE1 |
:1028F0000130A0E10020A0E10510A0E10400A0E16A |
:10290000D50A00EB7F2F8FE20C0092E88D0A00EBD6 |
:102910000130A0E10020A0E10510A0E10400A0E149 |
:10292000CD0A00EB792F8FE20C0092E8850A00EBCC |
:102930000130A0E10020A0E10510A0E10400A0E129 |
:10294000C50A00EB732F8FE20C0092E87D0A00EBC2 |
:102950000130A0E10020A0E10510A0E10400A0E109 |
:10296000BD0A00EB6D2F8FE20C0092E8750A00EBB8 |
:102970000130A0E10020A0E10510A0E10400A0E1E9 |
:10298000B50A00EB40304BE2030083E9A4319FE538 |
:10299000030056E1220000CA622F8FE20C0092E889 |
:1029A0000510A0E10400A0E1AB0A00EB40C04BE23F |
:1029B0000C009CE90170A0E10060A0E10510A0E11D |
:1029C0000400A0E1A40A00EB30C04BE230304BE23F |
:1029D0000150A0E10040A0E1030093E90C001CE8D5 |
:1029E0009D0A00EB0130A0E10020A0E10510A0E16C |
:1029F0000400A0E16B0A00EB0130A0E10020A0E19F |
:102A00000710A0E10600A0E1660A00EB0130A0E19A |
:102A10000020A0E1D4008FE2030090E8610A00EBFF |
:102A2000F0AB1BE910319FE5030056E1028646D268 |
:102A30000090A0D3F4808FC2000398C8E4208FE2F6 |
:102A40000C0092E80510A0E10400A0E1820A00EB6E |
:102A50000930A0E10820A0E1520A00EB0930A0E112 |
:102A60000820A0E10170A0E10060A0E17C008FE2FD |
:102A7000030090E84B0A00EB40C04BE20C009CE9DD |
:102A80000190A0E10080A0E10510A0E10400A0E118 |
:102A9000710A00EB30C04BE230304BE20150A0E154 |
:102AA0000040A0E1030093E90C001CE86A0A00EB77 |
:102AB0000130A0E10020A0E10510A0E10400A0E1A8 |
:102AC000380A00EB0130A0E10020A0E10710A0E1EE |
:102AD0000600A0E1330A00EB0130A0E10020A0E1F4 |
:102AE0000910A0E10800A0E12E0A00EBF0AB1BE901 |
:102AF0000000F03F00000000E9FAA8BDD43888BE0D |
:102B00009EEE213EC4B1B4BD4F7E92BEAD529C80BC |
:102B1000A001FA3E9015CB196CC156BF7751C11672 |
:102B20005555A53F4C5555550000E03F00000000AD |
:102B30000000D23F000000003233D33F0000E93FE5 |
:102B40000DC0A0E1F0DF2DE904B04CE2B4C39FE575 |
:102B500003E042E29E4CCCE0CEEFA0E14CC16EE03F |
:102B600097DF4DE2A0A39FE56CC20BE59CC39FE5F8 |
:102B700004E09BE5013043E20AA08FE06C421BE5D4 |
:102B800068320BE50CC08AE00EC19CE768E21BE5E9 |
:102B9000000054E30040A0B3843084E00C608EE079 |
:102BA0000090A0E3832142E0060059E16C420BE56E |
:102BB00070C20BE55C020BE560120BE5188042E287 |
:102BC00004406EE00E0000CA463F4BE2000054E3B2 |
:102BD000895183E0030000BA08109BE5040191E7E6 |
:102BE0006F0C00EB010000EAC90F8FE2030090E8D0 |
:102BF000019089E2060059E1030085E8014084E282 |
:102C0000F0FFFFDA70221BE50090A0E3020059E11B |
:102C1000240000CA68321BE50040A0E32F1E8FE2AB |
:102C2000060091E8030054E10A3D4BE2060083E808 |
:102C3000130000CA5C521BE568C21BE509208CE04A |
:102C4000022064E0463F4BE2823183E00C0093E8CF |
:102C50000300B5E8000A00EB0AED4BE20130A0E109 |
:102C60000020A0E103009EE8B60900EB68321BE5F6 |
:102C7000014084E20A2D4BE2030054E1030082E8A4 |
:102C8000ECFFFFDA963F4BE270421BE50A2D4BE268 |
:102C9000893183E0060092E8019089E2040059E15D |
:102CA000060083E8DAFFFFDA70321BE564320BE5D9 |
:102CB00064421BE5969F4BE2843189E0000054E3B7 |
:102CC000C00093E81F0000DA28504BE2962F8FE2F5 |
:102CD0000C0092E80710A0E10600A0E1DE0900EB7D |
:102CE0005F0C00EB2E0C00EB0ACD4BE203008CE8EE |
:102CF000892F8FE20C0092E8D70900EB0130A0E1A8 |
:102D00000020A0E10710A0E10600A0E1A50900EB6A |
:102D1000530C00EB843189E000C0A0E10AED4BE2E6 |
:102D2000030013E950C005E50C009EE8850900EB9F |
:102D3000014044E2000054E30170A0E10060A0E122 |
:102D4000045085E2E0FFFFCA0710A0E10600A0E101 |
:102D50000820A0E1AD0400EB192E8FE20C0092E8F0 |
:102D60000170A0E10060A0E1BB0900EB3D0400EBB5 |
:102D7000062D8FE20C0092E8B70900EB0130A0E1CC |
:102D80000020A0E10710A0E10600A0E1850900EB0A |
:102D90000170A0E10060A0E1310C00EB74020BE5D2 |
:102DA000FF0B00EB0130A0E10020A0E10710A0E143 |
:102DB0000600A0E17B0900EB000058E30170A0E1F0 |
:102DC0000060A0E10010A0E378120BE50E0000DA2D |
:102DD00064321BE528204BE2031182E0542011E508 |
:102DE000183068E25293A0E174421BE5192342E0D7 |
:102DF000173068E25233A0E1094084E078320BE5F5 |
:102E000074420BE5542001E5100000EA0600001AA8 |
:102E100064E21BE528C04BE20E318CE0543013E530 |
:102E2000C33BA0E178320BE5080000EACC208FE23A |
:102E30000C0092E80710A0E10600A0E18A0B00EB6D |
:102E4000000050E3580000BA0210A0E378120BE52E |
:102E500078221BE5000052E3530000DA74421BE5C0 |
:102E600064321BE50090A0E3014084E2030059E1D5 |
:102E70000950A0E174420BE50E0000AA28204BE2A5 |
:102E80000390A0E1000055E3504012E5FF34E01349 |
:102E9000033064100300001A000054E3013464128C |
:102EA0000150A0130000000A503002E5019059E2E1 |
:102EB000042082E2F2FFFF1A000058E3230000DA48 |
:102EC000010058E30200000A020058E31800000A5B |
:102ED0001E0000EA64E21BE528C04BE20E218CE0F4 |
:102EE000543012E5FF34C3E30235C3E3160000EAB1 |
:102EF0000000C03F00000000000020400000000073 |
:102F00000000E03F00000000ABAAAA2AF4D6FE03AE |
:102F1000289B01FC00000000000000000000704140 |
:102F2000000000000000F03F000000000000703EC4 |
:102F30000000000064321BE528104BE2032181E011 |
:102F4000543012E5FF34C3E30335C3E3543002E5E4 |
:102F500078421BE5020054E31300001A0730A0E199 |
:102F60000620A0E148004FE2030090E80D0900EBC5 |
:102F7000000055E30170A0E10060A0E10A00000A32 |
:102F80000820A0E168004FE2030090E81F0400EB76 |
:102F90000130A0E10020A0E10710A0E10600A0E1BF |
:102FA000000900EB0170A0E10060A0E1A0204FE269 |
:102FB0000C0092E80710A0E10600A0E1DC0A00EB9B |
:102FC000000050E35300001A64C21BE570E21BE5E9 |
:102FD00001904CE20E0059E10040A0E10A0000BA65 |
:102FE00028104BE2092181E070C21BE5503012E548 |
:102FF000019049E20C0059E1034084E1042042E2DF |
:10300000F8FFFFAA000054E34200001A70121BE50B |
:1030100028E04BE201318EE0543013E5000053E329 |
:103020000170A0E30700001A28204BE2013182E082 |
:10303000042043E2042042E2503012E5000053E352 |
:10304000017087E2FAFFFF0A64321BE5074083E064 |
:10305000019083E2040059E184420BE52A0000CA92 |
:103060006CC21BE508E09BE568121BE509308CE0AB |
:10307000092081E003019EE7463F4BE2824183E065 |
:10308000470B00EB68221BE5030084E8000052E3D5 |
:10309000611F4FE2060091E80A3D4BE2060083E81B |
:1030A000100000BA68C21BE55C521BE50460A0E199 |
:1030B00001408CE20C0096E80300B5E8E60800EB5E |
:1030C0000AED4BE20130A0E10020A0E103009EE800 |
:1030D0009C0800EB0A2D4BE2014054E2030082E819 |
:1030E000086046E2F2FFFF1A963F4BE284421BE57E |
:1030F0000A2D4BE2893183E0060092E8019089E2D3 |
:10310000040059E1060083E8D4FFFFDA64321BE5CE |
:10311000073083E0E4FEFFEA832F4FE20C0092E8E1 |
:103120000710A0E10600A0E1810A00EB000050E3D7 |
:103130001100001A64421BE528C04BE2014044E242 |
:1031400004218CE0503012E5000053E364420BE5AB |
:10315000188048E23D00001A042042E264E21BE5C8 |
:10316000503012E501E04EE2000053E364E20BE56B |
:10317000188048E2F7FFFF0A340000EA002068E206 |
:103180000710A0E10600A0E1A00300EB9E2F4FE294 |
:103190000C0092E80170A0E10060A0E1B20A00EB2F |
:1031A00064121BE5000050E30141A0E1210000BAD8 |
:1031B000A32F4FE20C0092E80710A0E10600A0E167 |
:1031C000A50800EB260B00EBF50A00EB0A2D4BE2FD |
:1031D000030082E80B2D4FE20C0092E89E0800EB02 |
:1031E0000130A0E10020A0E10710A0E10600A0E16D |
:1031F0006C0800EB1A0B00EB28E04BE264C21BE505 |
:103200000E3084E00020A0E10A4D4BE2030094E878 |
:1032100001C08CE2502003E564C20BE5100B00EB0B |
:1032200064121BE528E04BE201318EE0188088E251 |
:10323000500003E5050000EA28204BE20710A0E15A |
:103240000600A0E1024084E0050B00EB500004E51D |
:10325000CD0F4FE2030090E80820A0E16B0300EBE4 |
:1032600064921BE50A3D4BE2000059E3030083E84A |
:10327000430000BA28404BE2093184E0500013E5D6 |
:10328000C70A00EB0ACD4BE20130A0E10020A0E12B |
:1032900003009CE8700800EB966F4BE2896186E0C2 |
:1032A0000150A0E10040A0E10AED4BE2E22F4FE225 |
:1032B0000C0092E803009EE8300086E8660800EB08 |
:1032C0000A2D4BE2019059E2030082E8E8FFFF5A21 |
:1032D00064921BE5000059E3290000BA0040A0E316 |
:1032E00070321BE50070A0E37B1F8FE2060091E8BF |
:1032F000030057E10A3D4BE2060083E8180000CACC |
:10330000040057E10450A0E1150000CA073089E02D |
:10331000962F4BE2832182E0B8319FE503308AE0AB |
:10332000873183E0030093E80C0092E84A0800EB41 |
:103330000ACD4BE20130A0E10020A0E103009CE8AF |
:10334000000800EB0AED4BE203008EE870121BE56B |
:10335000017087E2010057E1010000CA050057E152 |
:10336000E9FFFFDA0A2D4BE26E3F4BE2060092E8DE |
:10337000843183E0019059E2060083E8014084E251 |
:10338000D6FFFF5A04309BE5030053E303F18F900F |
:10339000BE0000EA020000EA190000EA180000EA94 |
:1033A0004F0000EA64921BE54B1F8FE2060091E894 |
:1033B0000A3D4BE2000059E3060083E8090000BA29 |
:1033C0006E3F4BE2893183E00A4D4BE2030094E803 |
:1033D0000C0093E8DB0700EB0ACD4BE2019059E2C9 |
:1033E00003008CE8F5FFFF5A78E21BE50A2D4BE25B |
:1033F00000005EE3030092E8D50A001B60421BE573 |
:10340000320000EA64921BE5CC108FE2060091E8DE |
:103410000A3D4BE2000059E3060083E8090000BAC8 |
:103420006E3F4BE2893183E00A4D4BE2030094E8A2 |
:103430000C0093E8C30700EB0ACD4BE2019059E280 |
:1034400003008CE8F5FFFF5A78E21BE50A2D4BE2FA |
:1034500000005EE3030092E8BD0A001B60421BE52A |
:10346000030084E86E3F4BE20ACD4BE2030093E891 |
:103470000C009CE8CB0700EB0AED4BE203008EE862 |
:1034800064121BE5000051E3090000DA0190A0E19D |
:103490001B4E4BE20ACD4BE203009CE80C00B4E863 |
:1034A000A80700EB0AED4BE2019059E203008EE819 |
:1034B000F7FFFF1A78121BE560221BE5000051E3BD |
:1034C0000A3D4BE2084082E2030093E8A00A001B99 |
:1034D000030084E86D0000EA389B01FC0000000056 |
:1034E0000000000064921BE5000059E31B0000DAB5 |
:1034F0006E6F4BE2896186E0300016E9800196E844 |
:103500000510A0E10400A0E10830A0E10720A0E13F |
:103510008C0700EB0AED4BE203008EE80510A0E1FA |
:103520000400A0E10A4D4BE20C0094E89D0700EB7B |
:103530000130A0E10020A0E10810A0E10700A0E117 |
:10354000800700EB0A3D4BE2019049E20C0093E852 |
:10355000000059E30C0006E9030086E8E3FFFFCA18 |
:1035600064921BE5010059E31B0000DA6E6F4BE229 |
:10357000896186E0300016E9800196E80510A0E137 |
:103580000400A0E10830A0E10720A0E16D0700EBF6 |
:103590000ACD4BE203008CE80AED4BE20C009EE8FA |
:1035A0000510A0E10400A0E17E0700EB0130A0E1DE |
:1035B0000020A0E10810A0E10700A0E1610700EBF6 |
:1035C0000A3D4BE2019049E20C0093E8010059E307 |
:1035D0000C0006E9030086E8E3FFFFCA64921BE5DE |
:1035E000431F4FE2060091E80A3D4BE2010059E318 |
:1035F000060083E80A0000DA6E3F4BE2893183E07F |
:103600000A4D4BE2030094E80C0093E84D0700EBF1 |
:10361000019049E20ACD4BE2010059E303008CE836 |
:10362000F4FFFFCA78E21BE560121BE500005EE3D1 |
:103630006E0F4BE2084081E21B6E4BE2105081E2BC |
:103640000700001A0C0090E80C0081E8060096E8DC |
:103650000A3D4BE2060084E80C0093E80C0085E884 |
:103660000A0000EA030090E8390A00EB60C21BE59B |
:1036700003008CE8030096E8350A00EB0AED4BE204 |
:10368000030084E803009EE8310A00EB030085E8AC |
:1036900074121BE5070001E2F0AF1BE90DC0A0E1C9 |
:1036A000F0DB2DE904B04CE20150A0E10040A0E1C4 |
:1036B0000241C0E330C04BE218D04DE2F90554E3BB |
:1036C00003008CE90C000CE8050000AAE40900EBFB |
:1036D000000050E30200001A30304BE2030093E98F |
:1036E000F0AB1BE930C04BE203009CE90130A0E1E4 |
:1036F0000020A0E1580700EB30C04BE20C009CE931 |
:103700000170A0E10060A0E1530700EB40304BE204 |
:10371000030083E9612F8FE20C0092E80710A0E11B |
:103720000600A0E14C0700EB5E2F8FE20C0092E850 |
:10373000040700EB0130A0E10020A0E10710A0E1A8 |
:103740000600A0E1440700EB162E8FE20C0092E881 |
:10375000FC0600EB0130A0E10020A0E10710A0E191 |
:103760000600A0E13C0700EB522F8FE20C0092E82C |
:10377000F40600EB0130A0E10020A0E10710A0E179 |
:103780000600A0E1340700EB132E8FE20C0092E854 |
:10379000EC0600EB04309BE5000053E30190A0E150 |
:1037A0000080A0E11200001A0130A0E10020A0E199 |
:1037B0000710A0E10600A0E1270700EB412F8FE2F0 |
:1037C0000C0092E8DF0600EB40C04BE20130A0E1C4 |
:1037D0000020A0E103009CE91F0700EB30C04BE292 |
:1037E0000130A0E10020A0E103009CE9D50600EB38 |
:1037F000F0AB1BE930C04BE203001CE8CC208FE2A9 |
:103800000C0092E8140700EB40304BE20150A0E1BD |
:103810000040A0E1030093E90930A0E10820A0E105 |
:103820000D0700EB0130A0E10020A0E10510A0E1B0 |
:103830000400A0E1DB0600EB0130A0E10020A0E1E4 |
:103840000710A0E10600A0E1030700EB30C04BE247 |
:103850000C001CE8D30600EB40304BE20150A0E125 |
:103860000040A0E1030093E958208FE20C0092E8A9 |
:10387000F90600EB0130A0E10020A0E10510A0E175 |
:103880000400A0E1C70600EB30C04BE20130A0E12C |
:103890000020A0E103009CE9C20600EBF0AB1BE9AD |
:1038A0003AD9E53D7CD5CF5AE6E55ABEEB9C2B8A4A |
:1038B000E31DC73E7DFEB157A0012ABFD561C119E6 |
:1038C0001111813FA6F810115555C5BF49555555E1 |
:1038D0000000E03F000000000DC0A0E1F0DF2DE996 |
:1038E000BC349FE5BCA49FE50241C0E304B04CE2B8 |
:1038F00008D04DE2030054E10190A0E10080A0E176 |
:103900002C000BE50AA08FE0180000DA98349FE540 |
:10391000030054E10140A0E10030A0E1060000CA2C |
:103920000030A0130130A003000054E30030A003D6 |
:1039300001300312000053E30300000A0930A0E144 |
:103940000820A0E17F0600EBF0AF1BE92C101BE57F |
:10395000000051E3020000DAED0F8FE2030090E86F |
:10396000F0AF1BE93B0E8FE2030090E8F0AF1BE9DC |
:1039700038349FE5030054E10F0000CA30349FE55E |
:10398000030054E10A0000CAE52F8FE20C0092E820 |
:103990006C0600EB392E8FE20C0092E88B0800EBEE |
:1039A000000050E3020000DA0910A0E10800A0E1E5 |
:1039B000F0AF1BE90030E0E3510000EA200100EB2A |
:1039C000F0339FE5030054E10190A0E10080A0E105 |
:1039D000290000CAE0339FE5030054E1150000CA46 |
:1039E0000130A0E10020A0E1560600EBCE2F8FE2CF |
:1039F0000C0092E86B0600EBCD2F8FE20C0092E8F2 |
:103A00000150A0E10040A0E10910A0E10800A0E100 |
:103A10004C0600EB0130A0E10020A0E10510A0E180 |
:103A20000400A0E18F0700EB0190A0E10080A0E17D |
:103A30000010A0E3280000EABB2F8FE20C0092E800 |
:103A4000580600EB2E2E8FE20C0092E80150A0E108 |
:103A50000040A0E10910A0E10800A0E1390600EB58 |
:103A60000130A0E10020A0E10510A0E10400A0E1E8 |
:103A70007C0700EB0130A0E31F0000EA3C339FE528 |
:103A8000030054E1160000CAAB2F8FE20C0092E84D |
:103A9000440600EB2A2E8FE20C0092E80150A0E1D0 |
:103AA0000040A0E10910A0E10800A0E16A0600EBD7 |
:103AB0009D2F8FE20C0092E8220600EB0130A0E17E |
:103AC0000020A0E10510A0E10400A0E1650700EBE3 |
:103AD0000190A0E10080A0E10210A0E330100BE50E |
:103AE000080000EA0930A0E10820A0E1250E8FE2DD |
:103AF000030090E85B0700EB0330A0E30190A0E136 |
:103B00000080A0E130300BE50930A0E10820A0E101 |
:103B10000910A0E10800A0E14F0600EB0130A0E190 |
:103B20000020A0E10170A0E10060A0E14A0600EBE6 |
:103B3000852F8FE20C0092E80150A0E10040A0E147 |
:103B4000450600EB0130A0E10020A0E1020C8FE26D |
:103B5000030090E8FB0500EB0130A0E10020A0E1AC |
:103B60000510A0E10400A0E13B0600EB0130A0E15C |
:103B70000020A0E11E0E8FE2030090E8F10500EBAB |
:103B80000130A0E10020A0E10510A0E10400A0E1C7 |
:103B9000310600EB0130A0E10020A0E1070D8FE22B |
:103BA000030090E8E70500EB0130A0E10020A0E170 |
:103BB0000510A0E10400A0E1270600EB0130A0E120 |
:103BC0000020A0E11A0E8FE2030090E8DD0500EB73 |
:103BD0000130A0E10020A0E10510A0E10400A0E177 |
:103BE0001D0600EB0130A0E10020A0E1060D8FE2F0 |
:103BF000030090E8D30500EB0130A0E10020A0E134 |
:103C00000710A0E10600A0E1130600EB5A2F8FE297 |
:103C10000C0092E80170A0E10060A0E10510A0E1B5 |
:103C20000400A0E10C0600EB0130A0E10020A0E1BF |
:103C3000530F8FE2030090E8C20500EB0130A0E1D2 |
:103C40000020A0E10510A0E10400A0E1020600EBC5 |
:103C50000130A0E10020A0E14B0F8FE2030090E8CB |
:103C6000B80500EB0130A0E10020A0E10510A0E1C3 |
:103C70000400A0E1F80500EB0130A0E10020A0E184 |
:103C8000430F8FE2030090E8AE0500EB0130A0E1A6 |
:103C90000020A0E10510A0E10400A0E1EE0500EB8A |
:103CA0000130A0E10020A0E1EC008FE2030090E8E9 |
:103CB000A40500EB0130A0E10020A0E10510A0E187 |
:103CC0000400A0E1E40500EB0130A0E10020A0E148 |
:103CD00030101BE5000051E33B0000AA0710A0E1F3 |
:103CE0000600A0E1970500EB0130A0E10020A0E173 |
:103CF0000910A0E10800A0E1D70500EB0130A0E128 |
:103D00000020A0E10910A0E10800A0E1A50500EB5A |
:103D1000F0AF1BE9FB21F93F182D4454FB21F9BFFB |
:103D2000182D44543CE4377E9C7500880000F03F19 |
:103D30000000000000000040000000000000F83F0C |
:103D4000000000000000F0BF000000003AAD903F0E |
:103D500011DA22E34B7BA93FEB0D7624660DB13FD0 |
:103D6000513DD0A0CD45B73F6E204CC52449C23F40 |
:103D7000FF8300925555D53F0D55555544B4A2BF0C |
:103D80002F6C6A2C2DDEADBF9AFDDE52F2B0B3BFB0 |
:103D90006D9A74AFC671BCBF711623FE9999C9BFE5 |
:103DA000C4EB9899FFFF0F4468C9FE030000F07F41 |
:103DB000FFFFDB3FFFFF1F3EFFFFF23FFFFFE53F3F |
:103DC000FF7F0340D09B01FCF09B01FC30101BE502 |
:103DD00014C01FE58141A0E10710A0E10600A0E1A9 |
:103DE0000C508AE0570500EB0130A0E10020A0E173 |
:103DF0000910A0E10800A0E1970500EB3C301FE5A9 |
:103E000003308AE0055084E0034084E00C0094E82D |
:103E1000640500EB0930A0E10820A0E1610500EB9A |
:103E20000130A0E10020A0E1030095E85D0500EB72 |
:103E30002C301BE5000053E3F0AF1BA9440800EB56 |
:103E4000F0AF1BE910402DE90140A0E10030A0E1F6 |
:103E50000120A0E10010A0E10231C1E30410A0E1C3 |
:103E60000300A0E11080BDE80DC0A0E1F0DB2DE96A |
:103E7000403AA0E1833AA0E1A33AA0E1FF9F43E2E8 |
:103E800004B04CE2039049E208D04DE20150A0E1B9 |
:103E90000040A0E10030A0E30020A0E330C04BE2EE |
:103EA000130059E30180A0E10070A0E10060A0E1EF |
:103EB0000540A0E10C008CE9250000CA000059E390 |
:103EC000100000AA4B2F8FE20C0092E81D0500EBBA |
:103ED0004A2F8FE20C0092E83C0700EB000050E311 |
:103EE0003F0000DA000057E30040A0A30460A0A157 |
:103EF0003B0000AA0231C7E3053093E104619F153E |
:103F00001100001A360000EAFC309FE55359A0E189 |
:103F1000053000E0043093E11A00000AD4208FE25B |
:103F20000C0092E8070500EBD0208FE20C0092E82D |
:103F3000260700EB000050E3290000DA000057E3F9 |
:103F40000136A0B3536987B00560C6E10040A0E325 |
:103F5000230000EA330059E3050000DA010B59E3BE |
:103F60000800001A0130A0E10020A0E1F50400EBF8 |
:103F7000F0AB1BE9142049E20030E0E33352A0E14A |
:103F8000050014E10200001A0810A0E10700A0E1FA |
:103F9000F0AB1BE95C208FE20C0092E8E90400EB37 |
:103FA00058208FE20C0092E8080700EB000050E375 |
:103FB0000B0000DA000057E3080000AA140059E3E0 |
:103FC000016087020500000A0130A0E3342069E2A5 |
:103FD000132284E0040052E1036087300240A0E134 |
:103FE0000540C4E12C600BE528400BE530204BE296 |
:103FF000030092E9F0AB1BE93CE4377E9C75008836 |
:1040000000000000000000000000F0BFFFFF0F00F4 |
:1040100088319FE50DC0A0E1033000E0F0D92DE923 |
:1040200004B04CE243CAA0E10150A0E10040A0E18D |
:1040300000005CE30170A0E10060A0E100E0A0E10D |
:104040000280A0E10540A0E11100001A0231C0E3A6 |
:10405000034094E1F0A91B09122E8FE20C0092E8B4 |
:10406000FD0400EB34219FE50140A0E10030A0E118 |
:104070002C319FE5022000E0422AA0E1030058E134 |
:104080000170A0E10060A0E100E0A0E136C042E2E2 |
:10409000290000BA0C319FE503005CE10500001A1D |
:1040A0000710A0E10600A0E10730A0E10620A0E192 |
:1040B000A40400EBF0A91BE9EC309FE508C08CE0FC |
:1040C00003005CE1080000DA0730A0E10620A0E16F |
:1040D000B0008FE2030090E8350000EBA4208FE2EF |
:1040E0000C0092E8DC0400EBF0A91BE900005CE3A3 |
:1040F000070000DA7F24CEE30F26C2E30740A0E1E9 |
:104100000630A0E10C3A82E10410A0E10300A0E136 |
:10411000F0A91BE936007CE30A0000CA8C309FE559 |
:10412000030058E1E7FFFFCA60008FE2030090E858 |
:104130000730A0E10620A0E11D0000EB4C208FE23B |
:104140000C0092E8E6FFFFEA7F24CEE336C08CE263 |
:104150000F26C2E30740A0E10630A0E10C3A82E15D |
:104160000470A0E10360A0E10710A0E10600A0E157 |
:1041700020208FE20C0092E8B70400EBF0A91BE9C5 |
:1041800000005043000000003CE4377E9C7500882E |
:104190001F6EA50159F3F8C20000903C000000001A |
:1041A0000000F07FB03CFFFFFF070000FE070000AB |
:1041B00050C30000F0412DE90180A0E10070A0E1B2 |
:1041C0000360A0E10250A0E10120A0E10010A0E105 |
:1041D0000211C1E3025105E20840A0E10730A0E16D |
:1041E000053081E10480A0E10370A0E10810A0E1A6 |
:1041F0000700A0E1F081BDE8000051E31F00000AC4 |
:104200000130A0E30020A0E3010050E11900003AD2 |
:10421000010251E3000051310112A0310332A031FB |
:10422000FAFFFF3A020151E3000051318110A03141 |
:104230008330A031FAFFFF3A010050E10100402035 |
:1042400003208221A10050E1A1004020A32082216F |
:10425000210150E12101402023218221A10150E1CF |
:10426000A1014020A3218221000050E32332B0119C |
:104270002112A011EFFFFF1A0200A0E10EF0A0E151 |
:1042800004E02DE55D0000EB0000A0E30080BDE848 |
:1042900001C020E00130A0E30020A0E3000051E3D2 |
:1042A000001061422100000A000050E3000060425B |
:1042B000010050E11900003A010251E300005131C0 |
:1042C0000112A0310332A031FAFFFF3A020151E39B |
:1042D000000051318110A0318330A031FAFFFF3A44 |
:1042E000010050E10100402003208221A10050E1A3 |
:1042F000A1004020A3208221210150E12101402082 |
:1043000023218221A10150E1A1014020A32182218A |
:10431000000050E32332B0112112A011EFFFFF1A69 |
:104320000200A0E100005CE3000060420EF0A0E1AA |
:1043300004E02DE5310000EB0000A0E30080BDE8C3 |
:10434000000051E32900000A010051E3010050116F |
:104350000000A0030EF0A0310130A0E3010251E300 |
:10436000000051310112A0310332A031FAFFFF3AAF |
:10437000020151E3000051318110A0318330A0319E |
:10438000FAFFFF3A0020A0E3010050E101004020C5 |
:10439000A10050E1A1004020E3208221210150E151 |
:1043A0002101402063218221A10150E1A10140208F |
:1043B000E321822103C0A0E1000050E32332B011C9 |
:1043C0002112A011EEFFFF1A0E2212E207001C13A9 |
:1043D0000500000AEC0112E1A10180106C0112E15C |
:1043E00021018010EC0012E1A10080100EF0A0E18C |
:1043F00004E02DE5010000EB0000A0E30080BDE833 |
:104400000EF0A0E10DC0A0E1F0DF2DE904B04CE218 |
:104410000050A0E30040A0E324D04DE230C04BE2C6 |
:10442000000051E330000CE80040A0E32C400BE515 |
:10443000480100BA000053E3400100BA004053E2D3 |
:104440000180A0E10260A0E10090A0E1CE00001A8E |
:10445000010052E14A00009A010852E30210A0E173 |
:104460004300002AFF0052E30800A0830000A0934D |
:10447000F4249FE53110A0E10130D2E7003083E061 |
:10448000202073E2203062123933A0111662A0118D |
:10449000188283112678A0E10800A0E10710A0E1AE |
:1044A0001992A011A5FFFFEB0710A0E10040A0E1C9 |
:1044B0000800A0E14FFFFFEB0688A0E12888A0E1FB |
:1044C000980002E02938A0E1044883E1020054E1A9 |
:1044D00000A0A0E10500002A064094E001A040E20F |
:1044E0000200002A020054E101A04A320640843052 |
:1044F000044062E00710A0E10400A0E18FFFFFEBA1 |
:104500000710A0E10050A0E10400A0E139FFFFEB9B |
:10451000980002E00938A0E12338A0E1055883E1C2 |
:10452000020055E10400002A065095E0010040E237 |
:104530000100002A020055E1010040320AC880E172 |
:104540000030A0E338300BE538401BE52C301BE58C |
:1045500034C00BE530400BE530504BE2000053E334 |
:10456000030015E8F0AF1B09000070E20010E1E263 |
:10457000F0AF1BE9010452E31800A0231000A033A0 |
:10458000BAFFFFEA000052E30300001A0210A0E1A4 |
:104590000100A0E317FFFFEB0060A0E1010856E374 |
:1045A0007500002AFF0056E30800A0830000A093D6 |
:1045B000B4239FE53610A0E10130D2E7003083E05C |
:1045C000202073E23000001A0648A0E10150A0E369 |
:1045D0002448A0E1088066E026A8A0E138500BE559 |
:1045E0004C400BE50A10A0E10800A0E153FFFFEBEF |
:1045F0000A10A0E10040A0E10800A0E1FDFEFFEBF1 |
:104600004C201BE5900202E02938A0E1044883E138 |
:10461000020054E10070A0E10500002A064094E089 |
:10462000017040E20200002A020054E101704732AA |
:1046300006408430044062E00A10A0E10400A0E1DA |
:104640003EFFFFEB0A10A0E10050A0E10400A0E152 |
:10465000E8FEFFEB4C201BE5900202E00938A0E1E8 |
:104660002338A0E1055883E1020055E10400002A47 |
:10467000065095E0010040E20100002A020055E1E9 |
:104680000100403207C880E1AEFFFFEA201062E27D |
:104690001662A0E13871A0E126A8A0E13931A0E1BD |
:1046A00006C8A0E10700A0E10A10A0E1188283E19A |
:1046B0001992A0E14CC00BE520FFFFEB0A10A0E12E |
:1046C0000040A0E10700A0E1CAFEFFEB4C301BE573 |
:1046D0002338A0E10320A0E1900202E04C300BE57A |
:1046E0002838A0E1044883E14C501BE5020054E166 |
:1046F0000070A0E13CA00BE540500BE50500002A4E |
:10470000064094E0017040E20200002A020054E1F9 |
:104710000170473206408430044062E03C101BE5E3 |
:104720000400A0E105FFFFEB3C101BE50050A0E1F9 |
:104730000400A0E1AFFEFFEB40201BE5900202E089 |
:104740000838A0E12338A0E1055883E1020055E1D3 |
:104750000500002A065095E0010040E20200002A10 |
:10476000020055E10100403206508530077880E1B3 |
:1047700038700BE5058062E099FFFFEA010456E31B |
:104780001800A0231000A03388FFFFEA010054E1C5 |
:1047900000C0A08338C00B856AFFFF8A010854E37C |
:1047A0006200002AFF0054E30800A0830000A093E9 |
:1047B000B4219FE53410A0E10130D2E7003083E05E |
:1047C000202073E20400001A040058E10600599109 |
:1047D00001C0A02302C0A03158FFFFEA201062E20E |
:1047E0003631A0E1144283E13871A0E124A8A0E1B0 |
:1047F0003931A0E10458A0E10A10A0E10700A0E1CE |
:10480000188283E11992A0E11662A0E144500BE501 |
:10481000CAFEFFEB0A10A0E10050A0E10700A0E1F2 |
:1048200074FEFFEB44C01BE50020A0E12CC8A0E112 |
:104830009C0202E02838A0E1055883E1020055E11E |
:1048400048000BE544C00BE50700002A013040E2B8 |
:10485000045095E048300BE50300002A020055E1C2 |
:104860000130433248300B3504508530055062E04A |
:104870000A10A0E10500A0E1B0FEFFEB0A10A0E1E4 |
:104880000070A0E10500A0E15AFEFFEB44201BE50B |
:10489000900202E00838A0E12338A0E1077883E124 |
:1048A000020057E10500002A047097E0010040E291 |
:1048B0000200002A020057E10470873001004032F4 |
:1048C00048401BE5077062E004C880E12C08A0E1C5 |
:1048D0002638A0E10018CCE10328C6E191020EE0E1 |
:1048E000900202E0930101E0900303E0011092E0E6 |
:1048F0000138832201E89EE02138A3E0070053E15C |
:104900000600008A0030A0130130A00309005EE118 |
:104910000030A09301300382000053E30000000A3E |
:1049200001C04CE20050A0E338500BE505FFFFEA60 |
:10493000010454E31800A0231000A0339BFFFFEAFA |
:104940002CC01BE50CC0E0E12CC00BE5002072E29E |
:104950000030E3E2B8FEFFEA0050E0E32C500BE544 |
:10496000000070E20010E1E2B1FEFFEA389F0100B2 |
:104970000DC0A0E170D82DE904B04CE20150A0E1D7 |
:104980000260A0E10040A0E1AF0000EB000050E3B6 |
:104990000100000A0400A0E170A81BE90500A0E1E5 |
:1049A000A90000EB000050E30100000A0500A0E1AF |
:1049B00070A81BE90400A0E1A80000EB000050E390 |
:1049C0000900000A0500A0E1A40000EB000050E38C |
:1049D000EFFFFF0A042095E5043094E5020053E15F |
:1049E000EBFFFF0A70681BE9940000EA0500A0E1F4 |
:1049F0009A0000EB000050E3EBFFFF1A0500A0E176 |
:104A00009B0000EB000050E30B00000A0400A0E153 |
:104A1000970000EB000050E3DDFFFF0A0F0094E871 |
:104A20000F0086E8043094E5042095E50600A0E137 |
:104A3000023003E0043086E570A81BE90400A0E121 |
:104A40008B0000EB000050E3D7FFFF1A08C094E58D |
:104A5000081095E50C3061E0000053E3003063B2CC |
:104A60001F0053E30C2094E50CE095E53F0000CADD |
:104A700001005CE1050000DA0C1061E001300EE29B |
:104A8000011051E2AEE083E1FBFFFF1A0C10A0E140 |
:104A90000C0051E1050000DA01C06CE0013002E2D7 |
:104AA00001C05CE2A22083E101C0A001FAFFFF1A6D |
:104AB000040094E5043095E5030050E12500000A68 |
:104AC000000050E30E20621002206E00000052E34E |
:104AD000002062B20C2086E50C0096E50030A0A311 |
:104AE0000130A0B3043086E5013040E20B0173E3EE |
:104AF00008C086E50030A0E10900008A081096E5AC |
:104B00008320A0E1013042E20B0173E3011041E296 |
:104B10000230A0E10200A081081086850C20868565 |
:104B2000F6FFFF9A0330A0E3000050E3003086E573 |
:104B3000010000BA0600A0E170A81BE9082096E574 |
:104B4000013000E2A03083E1012082E20C3086E5F2 |
:104B5000082086E5F6FFFFEA0E3082E008C086E511 |
:104B60000C3086E5040086E50300A0E1ECFFFFEAD7 |
:104B700001005CE100E0A0C101C0A0D10020A0D1F3 |
:104B8000CAFFFFEA0DC0A0E130D82DE904B04CE225 |
:104B900038D04DE224504BE20030A0E10120A0E1EA |
:104BA00048004BE20510A0E134404BE248300BE5F1 |
:104BB0004C200BE5990500EB4C004BE20410A0E102 |
:104BC000960500EB0410A0E144204BE20500A0E1B3 |
:104BD00066FFFFEB330500EB30A81BE90DC0A0E139 |
:104BE00030D82DE904B04CE238D04DE224504BE2ED |
:104BF0000030A0E10120A0E148004BE20510A0E157 |
:104C000034404BE248300BE54C200BE5830500EBCC |
:104C10004C004BE20410A0E1800500EB30301BE5B6 |
:104C20000410A0E1013023E244204BE20500A0E1A2 |
:104C300030300BE54DFFFFEB1A0500EB30A81BE908 |
:104C400000009FE50EF0A0E1149F0100000090E538 |
:104C5000010050E30000A0830100A0930EF0A0E14A |
:104C6000000090E5040050E30000A0130100A00341 |
:104C70000EF0A0E1000090E5020050E30000A01358 |
:104C80000100A0030EF0A0E10DC0A0E170D82DE955 |
:104C900004B04CE228D04DE228504BE20030A0E1B5 |
:104CA0000120A0E13C004BE20510A0E138404BE2BE |
:104CB0003C300BE540200BE5580500EB40004BE293 |
:104CC0000410A0E1550500EB0500A0E1490000EB50 |
:104CD000000050E30200000A0500A0E1F10400EB2F |
:104CE00070A81BE90400A0E1420000EB000050E3C3 |
:104CF0000400A011F8FFFF1A24301BE534201BE547 |
:104D00000500A0E1023023E024300BE53E0000EB7B |
:104D1000000050E30500000A28201BE538301BE5A1 |
:104D2000030052E1EBFFFF1A2F0000EBEAFFFFEA5E |
:104D30000500A0E1390000EB000050E30060A0E1B5 |
:104D4000F4FFFF1A0400A0E12F0000EB000050E385 |
:104D50000500A01120600B151C600B15DEFFFF1A6B |
:104D60000400A0E12D0000EB000050E30430A0138C |
:104D70000500A01128300B15D7FFFF1A30301BE5B6 |
:104D800020201BE51C101BE52CC01BE5022063E066 |
:104D90000C0051E10130423220200BE58110A0319E |
:104DA00020300B350131A0E30C0051E101106C20E3 |
:104DB00003008021A330B0E18110A0E1F9FFFF1AC8 |
:104DC0007F3000E2400053E30100000A0C0085E55B |
:104DD000C0FFFFEA800010E30100001A000051E369 |
:104DE000F9FFFF0A400080E2F7FFFFEA00009FE5BD |
:104DF0000EF0A0E1149F0100000090E5010050E3D7 |
:104E00000000A0830100A0930EF0A0E1000090E557 |
:104E1000040050E30000A0130100A0030EF0A0E185 |
:104E2000000090E5020050E30000A0130100A00381 |
:104E30000EF0A0E10DC0A0E100D82DE90330A0E301 |
:104E400004B04CE2000050E310D04DE2A02FA0E1EE |
:104E50001C300BE50230A00318200BE51C300B05BD |
:104E60001400000A000052E31E30A0E314300BE5EA |
:104E700010000B050400000A020150E3CF04A00358 |
:104E800000A81B09003060E210300BE510201BE584 |
:104E9000070172E30700008A14101BE58230A0E1CD |
:104EA000070173E3011041E20320A0E1FAFFFF9A3A |
:104EB00014100BE510300BE51C004BE2790400EBFD |
:104EC00000A81BE90DC0A0E130D82DE904B04CE2E8 |
:104ED00014D04DE224504BE20030A0E128004BE218 |
:104EE0000510A0E128300BE5CC0400EB0500A0E1A3 |
:104EF000270000EB000050E30040A0E10000A013F9 |
:104F000030A81B190500A0E1170000EB000050E3DA |
:104F10000400A01130A81B190500A0E1170000EB48 |
:104F2000000050E30400001A1C201BE5000052E3BF |
:104F300030A81BB91E0052E3040000DA20301BE544 |
:104F4000000053E30201E0030201A01330A81BE9B3 |
:104F500020301BE5000053E318301BE51E2062E201 |
:104F60003302A0E10000601230A81BE9000090E5C8 |
:104F7000010050E30000A0830100A0930EF0A0E127 |
:104F8000000090E5040050E30000A0130100A0031E |
:104F90000EF0A0E1000090E5020050E30000A01335 |
:104FA0000100A0030EF0A0E10DC0A0E130D82DE972 |
:104FB00004B04CE218D04DE20030A0E124104BE2E6 |
:104FC00028004BE228300BE5940400EB18401BE569 |
:104FD0000050A0E3053FA0E1245183E1044FA0E18C |
:104FE0000430A0E124004BE2070090E800508DE57A |
:104FF000EE0300EB30A81BE90DC0A0E1F0DF2DE9C6 |
:1050000004B04CE210D04DE20170A0E10280A0E1BA |
:105010000060A0E1010100EB000050E30100000A84 |
:105020000600A0E1F0AF1BE90700A0E1FB0000EBE8 |
:10503000000050E30100000A0700A0E1F0AF1BE907 |
:105040000600A0E1FA0000EB000050E30900000AAE |
:105050000700A0E1F60000EB000050E3EFFFFF0ABD |
:10506000042097E5043096E5020053E1EBFFFF0AC8 |
:10507000F06F1BE9E60000EA0700A0E1EC0000EB9E |
:10508000000050E3EBFFFF1A0700A0E1ED0000EB8A |
:10509000000050E30F00000A0600A0E1E90000EB69 |
:1050A000000050E3DDFFFF0A06E0A0E10F00BEE8CC |
:1050B00008C0A0E10F00ACE800309EE500308CE5B0 |
:1050C000042096E5043097E50800A0E1032002E003 |
:1050D000042088E5F0AF1BE90600A0E1D90000EB51 |
:1050E000000050E3D3FFFF1A0C2086E2080096E58B |
:1050F00008C097E5300092E830E04BE200306CE009 |
:1051000030008EE8000053E3003063B23F0053E309 |
:105110000C3087E2000693E8800000CA0C0050E1E2 |
:105120000C0000DA00C06CE00020A0E30110A0E356 |
:10513000A930A0E1014009E002500AE08A1F83E1A2 |
:10514000AA20A0E101C05CE2019084E102A085E117 |
:10515000F4FFFF1A00C0A0E100005CE1150000DAD6 |
:105160000C0060E030201BE530104BE2300091E88D |
:10517000A230A0E10020A0E30110A0E3014004E080 |
:10518000025005E030204BE2300002E92C401BE5E4 |
:1051900030504BE2841F83E1A420A0E1180015E900 |
:1051A000010050E2013083E1024084E1180085E80B |
:1051B0000C00A001EAFFFF1A041096E5043097E501 |
:1051C000030051E14C00000A000051E34500000AD1 |
:1051D00030E04BE230009EE8044059E00550CAE060 |
:1051E000000055E3350000BA0C7088E20030A0E3FF |
:1051F000043088E5080088E5300087E8060097E875 |
:105200000040E0E30030E0E3031091E00420A2E07E |
:105210001F0272E31100008A2500000A180097E8B7 |
:105220008420A0E1A34F82E10010E0E30000E0E36E |
:105230008330A0E1082098E5030090E00410A1E08D |
:10524000012042E21F0271E3082088E5180087E888 |
:105250000200008AF0FFFF1A020070E3EEFFFF9ADF |
:10526000043097E50320A0E31E0273E3002088E5E5 |
:105270000D00009A060097E80040A0E30130A0E38B |
:10528000A1C0A0E1035001E0046002E0080098E53D |
:10529000823F8CE1A240A0E1031085E1042086E179 |
:1052A000010080E2060087E8080088E50800A0E128 |
:1052B000F0AF1BE9020071E3D7FFFF9AE7FFFFEAB7 |
:1052C0000430A0E10540A0E1003073E20040E4E2D8 |
:1052D0000C7088E20120A0E3180087E8042088E52C |
:1052E000080088E5C4FFFFEA30104BE2300091E887 |
:1052F000094054E00A50C5E0B8FFFFEA30404BE2F5 |
:105300000C0094E8092092E00A30A3E00C7088E2D7 |
:105310000C0087E8041088E5080088E5CFFFFFEA65 |
:105320000C0050E100A0A0C30090A0C3A1FFFFCAE1 |
:105330000020A0E30010A0E330304BE2060083E839 |
:105340000C00A0E19BFFFFEA0DC0A0E1F0D92DE920 |
:1053500004B04CE264C04BE24CD04DE234804BE2EE |
:105360000150A0E10040A0E16C604BE20C00A0E124 |
:105370000810A0E148704BE20C0086E830008CE891 |
:10538000850400EB0600A0E10710A0E1820400EB19 |
:105390000710A0E15C204BE20800A0E115FFFFEB45 |
:1053A000D80300EBF0A91BE90DC0A0E1F0D92DE96D |
:1053B00004B04CE264C04BE24CD04DE234804BE28E |
:1053C0000150A0E10040A0E16C604BE20C00A0E1C4 |
:1053D0000810A0E148704BE20C0086E830008CE831 |
:1053E0006D0400EB0600A0E10710A0E16A0400EBE9 |
:1053F00044301BE50710A0E1013023E25C204BE2C2 |
:105400000800A0E144300BE5FAFEFFEBBD0300EB22 |
:10541000F0A91BE900009FE50EF0A0E1249F010028 |
:10542000000090E5010050E30000A0830100A0937C |
:105430000EF0A0E1000090E5040050E30000A0138E |
:105440000100A0030EF0A0E1000090E5020050E38F |
:105450000000A0130100A0030EF0A0E10DC0A0E128 |
:10546000F0DF2DE904B04CE26CC04BE284D04DE299 |
:105470000150A0E10040A0E13C704BE274604BE2BF |
:105480000C00A0E10710A0E130008CE80C0086E8D9 |
:1054900050A04BE2400400EB0600A0E10A10A0E19E |
:1054A0003D0400EB0700A0E1DF0000EB000050E34B |
:1054B0000090A0E30080A0E30700000A38301BE55D |
:1054C0004C201BE50700A0E1023053E00130A0139F |
:1054D00038300BE58B0300EBF0AF1BE90A00A0E1CD |
:1054E000D10000EB000050E30600000A4C201BE551 |
:1054F00038301BE50A00A0E1023053E00130A01370 |
:105500004C300BE5F2FFFFEA0700A0E1CB0000EB17 |
:10551000000050E30500000A0A00A0E1CC0000EB07 |
:10552000000050E3E4FFFF0ABC0000EBE8FFFFEAE5 |
:105530000A00A0E1C10000EB000050E30400000AF3 |
:105540000700A0E1C20000EB000050E3E6FFFF0A05 |
:10555000F4FFFFEA0700A0E1BD0000EB000050E30C |
:10556000D5FFFF1A0A00A0E1B90000EB000050E3EC |
:10557000DDFFFF1A44304BE2060093E830C01BE524 |
:105580000210A0E1912C83E080404BE20C0004E883 |
:1055900030204BE2600092E80630A0E103E0A0E199 |
:1055A00080304BE244001BE5600013E89E50A6E00B |
:1055B000912E83E080401BE590E04BE2060054E131 |
:1055C00090404BE20C0084E900030EE8901C82E05E |
:1055D0000300008A0600001A84001BE5050050E164 |
:1055E0000300009A893F8FE2180093E890C04BE2D5 |
:1055F00018000CE80530A0E10040A0E300E0A0E3C3 |
:1056000080300BE584E00BE580304BE2180013E8B6 |
:10561000013093E00240A4E0A0C04BE2040052E15C |
:1056200018008CE90200008A0800001A030051E10A |
:105630000600009A90204BE2030012E80040A0E32D |
:105640000130A0E3030090E00410A1E0030002E8B1 |
:105650000630A0E10040A0E30490A0E10380A0E1B7 |
:1056600090404BE2180094E990604BE208009AE504 |
:10567000082097E5600016E8038098E004109AE59A |
:10568000043097E50490A9E0002082E0058098E0CE |
:10569000A0004BE20690A9E0042082E2013053E032 |
:1056A0000130A013030090E95C200BE51E0279E3B2 |
:1056B00080204BE260300BE5030082E91D00009A78 |
:1056C0007C104BE2220091E8A820A0E1893F82E112 |
:1056D000A560A0E1A120A0E15C001BE5852F82E18F |
:1056E000A8600BE50060A0E30150A0E3051008E00E |
:1056F000A940A0E1010080E2000051E3AC200BE5ED |
:105700000490A0E10380A0E15C000BE50700000A23 |
:10571000B0204BE2030092E9F8208FE20C0092E8FF |
:10572000031081E1020080E180304BE2030083E955 |
:105730001E0279E3E1FFFF8A1F0279E31200008A6B |
:1057400078501BE57C601BE55CC01BE58500A0E193 |
:10575000A64F80E18900A0E18630A0E1A82F80E17A |
:1057600001C04CE28810A0E180E04BE2000055E36C |
:1057700018008EE95CC00BE50290A0E10180A0E179 |
:105780001D0000BA1F0279E3ECFFFF9AFF3008E228 |
:105790000040A0E3800053E30600000A64204BE2CF |
:1057A0000C3082E2000383E80320A0E364200BE5D1 |
:1057B00064004BE246FFFFEA000054E3F6FFFF1AE5 |
:1057C0000020A0E3011CA0E3013008E0024009E052 |
:1057D000043093E10300001A7C004BE2030090E8E0 |
:1057E000010090E1ECFFFF0A0040A0E38030A0E35D |
:1057F000038098E00490A9E0E7FFFFEA0040A0E3FF |
:105800000130A0E3038088E1049089E1DCFFFFEA36 |
:105810000000000001000000000000000000008007 |
:1058200000009FE50EF0A0E1249F0100000090E53C |
:10583000010050E30000A0830100A0930EF0A0E15E |
:10584000000090E5040050E30000A0130100A00355 |
:105850000EF0A0E1000090E5020050E30000A0136C |
:105860000100A0030EF0A0E10DC0A0E1F0DF2DE9E2 |
:1058700004B04CE258C04BE250D04DE23C804BE2C9 |
:1058800060604BE20150A0E10040A0E10C0086E81E |
:105890000C00A0E10810A0E150704BE230008CE851 |
:1058A0003D0300EB0600A0E10710A0E13A0300EB86 |
:1058B0000800A0E18F0000EB000050E30200000AA6 |
:1058C0000800A0E18F0200EBF0AF1BE90700A0E1A8 |
:1058D000880000EB000050E30700A011F8FFFF1A5A |
:1058E00038301BE54C201BE50800A0E1023023E026 |
:1058F00038300BE5840000EB000050E30500000A9F |
:105900003C201BE550301BE5030052E1EBFFFF1A82 |
:10591000750000EBEAFFFFEA0800A0E17F0000EB62 |
:10592000000050E30040A0E1F4FFFF1A0700A0E1EF |
:10593000750000EB000050E30600000A0020A0E321 |
:105940000010A0E330304BE20800A0E134400BE54A |
:10595000060083E8DAFFFFEA0700A0E16F0000EB32 |
:10596000000050E30430A0130800A0113C300B15D8 |
:10597000D3FFFF1A44304BE2030093E860204BE270 |
:10598000030002E930304BE2000693E834201BE5C7 |
:1059900048301BE564401BE5022063E00A0054E147 |
:1059A00034200BE50300008A0900001A68001BE59B |
:1059B000090050E10600009A013042E28A00A0E1AD |
:1059C000A92F80E18910A0E134300BE502A0A0E10D |
:1059D0000190A0E10020A0E30010A0E370304BE2B2 |
:1059E000060083E8F8408FE2300094E864001BE58D |
:1059F000A430A0E1853F83E1A510A0E10A0050E1B9 |
:105A000078300BE574100BE50C00008A0200001AD8 |
:105A100068201BE5090052E10800008A60104BE293 |
:105A2000030011E9009059E001A0CAE070004BE2C8 |
:105A30000C0090E8042082E1053083E10C0080E84E |
:105A400070104BE2300011E98A30A0E1A97F83E1B8 |
:105A50008960A0E1052094E107A0A0E10690A0E103 |
:105A6000E1FFFF1A70305BE50040A0E3800053E3E4 |
:105A70000400000A70204BE2060092E80C3088E235 |
:105A8000060083E88DFFFFEA000054E3F8FFFF1AE9 |
:105A900070004BE2180090E80020A0E3011CA0E396 |
:105AA000013003E0024004E0043093E10600000A04 |
:105AB0000040A0E38030A0E3060090E8031091E0EE |
:105AC0000420A2E0060080E8E9FFFFEA0A9099E1DD |
:105AD000E7FFFF0A0040A0E38030A0E370004BE244 |
:105AE000F4FFFFEA000000000000001000009FE546 |
:105AF0000EF0A0E1249F0100000090E5010050E3BA |
:105B00000000A0830100A0930EF0A0E1000090E54A |
:105B1000040050E30000A0130100A0030EF0A0E178 |
:105B2000000090E5020050E30000A0130100A00374 |
:105B30000EF0A0E10DC0A0E1F0D92DE904B04CE2D7 |
:105B400050C04BE238D04DE234804BE20150A0E12E |
:105B50000040A0E148704BE20C00A0E158604BE22D |
:105B60000810A0E10C0086E830008CE88A0200EB07 |
:105B70000600A0E10710A0E1870200EB0800A0E109 |
:105B80000D0000EB0030A0E1000053E30700A0E1AE |
:105B90000100000A0100A0E3F0A91BE9060000EBE8 |
:105BA0000030A0E1000053E30800A0E10710A0E1ED |
:105BB000F7FFFF1ACB0200EBF0A91BE9000090E50C |
:105BC000010050E30000A0830100A0930EF0A0E1CB |
:105BD0000DC0A0E1F0D92DE904B04CE250C04BE279 |
:105BE00038D04DE234804BE20150A0E10040A0E10A |
:105BF00048704BE20C00A0E158604BE20810A0E1B5 |
:105C00000C0086E830008CE8630200EB0600A0E19F |
:105C10000710A0E1600200EB0800A0E10D0000EB1E |
:105C20000030A0E1000053E30700A0E10500001AE6 |
:105C3000080000EB0030A0E1000053E30800A0E101 |
:105C40000710A0E10100000A0000E0E3F0A91BE951 |
:105C5000A40200EBF0A91BE9000090E5010050E36D |
:105C60000000A0830100A0930EF0A0E10DC0A0E110 |
:105C7000F0D92DE904B04CE250C04BE238D04DE2EF |
:105C800034804BE20150A0E10040A0E148704BE2BB |
:105C90000C00A0E158604BE20810A0E10C0086E87F |
:105CA00030008CE83C0200EB0600A0E10710A0E108 |
:105CB000390200EB0800A0E10D0000EB0030A0E18C |
:105CC000000053E30700A0E10500001A080000EB04 |
:105CD0000030A0E1000053E30800A0E10710A0E1BC |
:105CE0000100000A0000E0E3F0A91BE97D0200EBDF |
:105CF000F0A91BE9000090E5010050E30000A0833B |
:105D00000100A0930EF0A0E10DC0A0E1F0D92DE9B3 |
:105D100004B04CE250C04BE238D04DE234804BE24C |
:105D20000150A0E10040A0E148704BE20C00A0E16E |
:105D300058604BE20810A0E10C0086E830008CE8C7 |
:105D4000150200EB0600A0E10710A0E1120200EB33 |
:105D50000800A0E10D0000EB0030A0E1000053E3DB |
:105D60000700A0E10100000A0100A0E3F0A91BE97F |
:105D7000060000EB0030A0E1000053E30800A0E1C2 |
:105D80000710A0E1F7FFFF1A560200EBF0A91BE98C |
:105D9000000090E5010050E30000A0830100A09303 |
:105DA0000EF0A0E10DC0A0E110D82DE90330A0E372 |
:105DB00004B04CE2000050E314D04DE2A02FA0E16B |
:105DC00024300BE50230A00320200BE524300B0526 |
:105DD0001B00000A3C30A0E3000052E31C300BE53E |
:105DE0000030A001C34FA0010300000A020150E3EC |
:105DF00000306012C34FA0111400000A10204BE2C3 |
:105E0000180002E914301BE51F0273E30C00008A3E |
:105E100010204BE2180012E98420A0E1A34F82E198 |
:105E20008330A0E110204BE2180002E914201BE5AA |
:105E30001C301BE51F0272E3013043E21C300BE50E |
:105E4000F2FFFF9A24004BE22E0100EB10A81BE9A1 |
:105E500004008FE2030090E810A81BE90000E0C1F5 |
:105E6000000000000DC0A0E130D82DE904B04CE2E4 |
:105E70000140A0E10030A0E130204BE21CD04DE217 |
:105E800028504BE20200A0E10510A0E1180082E8D2 |
:105E9000C10100EB0500A0E1280000EB000050E389 |
:105EA0000040A0E10000A01330A81B190500A0E1EC |
:105EB000180000EB000050E30400A01130A81B19EB |
:105EC0000500A0E1180000EB000050E30400001AF8 |
:105ED00020301BE5000053E330A81BB91E0053E33C |
:105EE000040000DA24301BE5000053E30201E00364 |
:105EF0000201A01330A81BE93C2063E220304BE2F2 |
:105F0000030093E9530000EB24301BE5000053E34A |
:105F10000000601230A81BE9000090E5010050E38A |
:105F20000000A0830100A0930EF0A0E1000090E526 |
:105F3000040050E30000A0130100A0030EF0A0E154 |
:105F4000000090E5020050E30000A0130100A00350 |
:105F50000EF0A0E10DC0A0E110D82DE904B04CE294 |
:105F60002CC04BE21CD04DE224404BE20130A0E1BA |
:105F70000020A0E10C00A0E10410A0E10C008CE8DE |
:105F8000850100EB0400A0E1020000EB0400A0E1A9 |
:105F9000DC0000EB10A81BE9043090E5000053E39F |
:105FA0000030A0130130A003043080E50EF0A0E122 |
:105FB0000DC0A0E104D04DE210D82DE908B04CE2AC |
:105FC00014D04DE204308BE50030A0E124300BE525 |
:105FD0001C200BE50C009BE910404BE224004BE237 |
:105FE00020100BE50C0004E9C60000EB10A81BE92B |
:105FF0000DC0A0E170D82DE904B04CE234204BE292 |
:106000000140A0E10030A0E11CD04DE20200A0E17F |
:106010002C104BE2180082E85F0100EB20204BE2DD |
:10602000180092E80020A0E30311E0E3015003E030 |
:10603000026004E023CFA0E104318CE1065095E139 |
:106040002C004BE2070090E801308313244FA0E1BD |
:10605000A00000EB70A81BE9000052E370402DE99E |
:1060600020C062E20140A0E10030A0E10060A0E3B6 |
:106070000050A0E30800000A00005CE33032A0E119 |
:1060800000E06CE20060A0D3315EA0D13162A0C11B |
:10609000115C83C10640A0E10530A0E10410A0E13D |
:1060A0000300A0E17080BDE80DC0A0E1F0DD2DE9A6 |
:1060B00004B04CE20C5090E50040A0E104A090E553 |
:1060C000470000EB000050E30080A0E30060A0E187 |
:1060D000FF80A013015685130900000AA73BA0E129 |
:1060E000853483E1E374A0E17F24C7E3FF1008E275 |
:1060F0000225C2E3817B82E10231C7E38A0F83E19B |
:10610000F0AD1BE90400A0E13A0000EB000050E311 |
:106110000200000A0050A0E3FF80A0E3EEFFFFEAC8 |
:106120000400A0E1380000EB000050E30850A0118B |
:10613000E9FFFF1A000055E3E7FFFF0A080094E5B6 |
:106140007E0070E3180000AAFF0460E2FF0880E20E |
:10615000FF0C80E2820080E2190050E30850A0C1E9 |
:10616000060000CA0130A0E31330A0E1013043E291 |
:10617000030015E13520A0E10250A0010150821377 |
:106180007F3005E2400053E33F5085120300000AD0 |
:10619000070175E30180A083A553A0E1CEFFFFEACC |
:1061A000800015E340508512F8FFFFEA7F0050E3BE |
:1061B000D7FFFFCA7F3005E2400053E37F8080E2D3 |
:1061C0003F5085120300000A000055E3A550A0B11E |
:1061D000018088B2EFFFFFEA800015E3405085128E |
:1061E000F8FFFFEA000090E5010050E30000A08303 |
:1061F0000100A0930EF0A0E1000090E5040050E340 |
:106200000000A0130100A0030EF0A0E1000090E543 |
:10621000020050E30000A0130100A0030EF0A0E173 |
:1062200004E02DE5B230D0E10320D0E5000090E598 |
:10623000A333A0E1A223A0E1FFC4C0E3FFE013E287 |
:10624000042081E502C5CCE31200001A00005CE3E3 |
:106250000230A0030D00000A8CC3A0E17E204EE2B4 |
:106260000330A0E307017CE3003081E5082081E5ED |
:106270000400008A8CC0A0E107017CE3012042E217 |
:1062800008208185FAFFFF9A0CC081E504F09DE4A7 |
:10629000003081E504F09DE4FF005EE30600000AA3 |
:1062A0008C33A0E1013183E37F204EE20C3081E5A5 |
:1062B0000330A0E3082081E5F4FFFFEA00005CE37F |
:1062C0000430A003F1FFFF0A013610E20130A013F1 |
:1062D000003081E5EBFFFFEA0DC0A0E100D82DE919 |
:1062E00004B04CE210D04DE200C0A0E11C004BE233 |
:1062F0001CC00BE518100BE514200BE510300BE566 |
:1063000068FFFFEB00A81BE90DC0A0E1F0DD2DE95F |
:1063100004B04CE208D04DE20C3080E20040A0E135 |
:10632000600093E8048090E58C0000EB000050E3EF |
:106330000070A0E31C00000A863F8FE2180093E87B |
:106340007F7EA0E3035085E1046086E10F7087E261 |
:1063500028301BE5233AA0E1063683E16336A0E14D |
:1063600028300BE5B6325BE1872AA0E17F3CC3E32E |
:10637000A22AA0E1F030C3E3023283E1B6324BE15E |
:1063800025205BE5013008E28020C2E3832382E11F |
:1063900025204BE528301BE528500BE52C300BE57C |
:1063A00030304BE2030093E9F0AD1BE90400A0E1BB |
:1063B0006F0000EB000050E30400000A7F7EA0E3C2 |
:1063C0000F7087E20060A0E30050A0E3DFFFFFEA68 |
:1063D0000400A0E16B0000EB000050E3F8FFFF1A9F |
:1063E000063095E1D9FFFF0A080094E5FF3FE0E39E |
:1063F000013043E2030050E1350000AABFA360E290 |
:10640000FFA78AE2FFAB8AE238005AE31C0000DAF9 |
:106410000060A0E30050A0E3FF3005E20040A0E3ED |
:10642000800053E30B00000A0040A0E37F30A0E3AC |
:10643000035095E00460A6E0010256E32524A0E1A4 |
:106440000170A023063C82E12644A0E10460A0E1A3 |
:106450000350A0E1BDFFFFEA000054E3F1FFFF1A83 |
:106460000020A0E3011CA0E3013005E0024006E0AB |
:10647000043093E1EFFFFF0A0040A0E38030A0E387 |
:10648000EAFFFFEA0A20A0E10010A0E30100A0E378 |
:10649000030100EB0040E0E30030E0E3003093E074 |
:1064A0000140A4E0042006E0031005E0021091E1A1 |
:1064B0000610A0E10500A0E10A20A0E10040A00331 |
:1064C0000140A013E3FEFFEB045080E1C46F81E1C3 |
:1064D000D0FFFFEA010B50E3B7FFFFAAFF3005E250 |
:1064E0000040A0E3FF7F80E2800053E3037087E277 |
:1064F0000D00000A0040A0E37F30A0E3035095E0C8 |
:106500000460A6E01E0276E30500009AA520A0E143 |
:10651000863F82E1A640A0E1017087E20460A0E12D |
:106520000350A0E12524A0E1C5FFFFEA000054E3E9 |
:10653000EFFFFF1A0020A0E3011CA0E3013005E0FB |
:10654000024006E0043093E1EDFFFF0A0040A0E3C3 |
:106550008030A0E3E8FFFFEA000000000000080030 |
:10656000000090E5010050E30000A0830100A0932B |
:106570000EF0A0E1000090E5040050E30000A0133D |
:106580000100A0030EF0A0E1000090E5020050E33E |
:106590000000A0130100A0030EF0A0E1F0402DE9DF |
:1065A00000C090E508D04DE204C08DE5B630DDE1D5 |
:1065B0002332A0E183EAA0E10730DDE5042090E585 |
:1065C000AEEAA0E10170A0E1A333A0E1FF64CCE357 |
:1065D0007F1EA0E300005EE3043087E50250A0E1E7 |
:1065E00000208DE50F66C6E30F1081E21E00001A41 |
:1065F000063092E10230A0031900000A0614A0E15F |
:106600000534A0E1254C81E10460A0E10350A0E144 |
:10661000FF2FE0E3012042E20330A0E31F0276E314 |
:10662000082087E5003087E50900008A8610A0E190 |
:10663000082097E5A54F81E18530A0E10460A0E145 |
:106640000350A0E1012042E21F0276E3082087E523 |
:10665000F5FFFF9A0C3087E2600083E808D08DE2F6 |
:10666000F080BDE8003087E5FBFFFFEA01005EE156 |
:106670000D00000A0624A0E1254C82E1FF0F4EE246 |
:1066800050108FE2060091E80534A0E1030040E2DB |
:10669000015083E1026084E10C3087E2080087E565 |
:1066A000600083E80330A0E3EDFFFFEA063092E1EB |
:1066B0000430A003EAFFFF0A20108FE2060091E8F1 |
:1066C000013005E0024006E0043093E10130A01300 |
:1066D000003087E5DEFFFFEA000000000000001048 |
:1066E00000000000000008000DC0A0E170D82DE9F6 |
:1066F00004B04CE20140A0E10050A0E1590000EBE1 |
:10670000000050E30100000A0100A0E370A81BE9AB |
:106710000400A0E1530000EB000050E3F9FFFF1A72 |
:106720000500A0E1540000EB000050E30600000A61 |
:106730000400A0E1500000EB000050E30420941599 |
:10674000043095150200631070A81B190500A0E124 |
:10675000490000EB000050E30400000A043095E516 |
:10676000000053E30100A0030000E01370A81BE940 |
:106770000400A0E1400000EB000050E30060A0E155 |
:106780000400000A043094E5000053E30000E00335 |
:106790000100A01370A81BE90500A0E13B0000EB7D |
:1067A000000050E30400000A0400A0E1370000EB01 |
:1067B000000050E30600A01170A81B190500A0E11D |
:1067C000320000EB000050E3EDFFFF1A0400A0E1EF |
:1067D0002E0000EB000050E3DFFFFF1A041095E5E8 |
:1067E000043094E5030051E10100000A000051E388 |
:1067F000DBFFFFEA082095E5083094E5030052E14D |
:10680000F9FFFFCA010000AA000051E3DEFFFFEA22 |
:106810000CC085E20C0084E204209CE5043090E585 |
:10682000030052E1F0FFFF8A0300001A0C2095E5F7 |
:106830000C3094E5030052E1EBFFFF8A042090E561 |
:1068400004309CE5030052E1EEFFFF8A0300001ACA |
:106850000C2094E50C3095E5030052E1E9FFFF8A36 |
:106860000000A0E370A81BE9000090E5010050E3E0 |
:106870000000A0830100A0930EF0A0E1000090E5CD |
:10688000040050E30000A0130100A0030EF0A0E1FB |
:10689000000090E5020050E30000A0130100A003F7 |
:1068A0000EF0A0E1000052E370402DE920C062E24A |
:1068B0000140A0E10030A0E10060A0E30050A0E3AF |
:1068C0000800000A00005CE31132A0E100E06CE285 |
:1068D0000050A0D3106EA0D11052A0C1306C83C163 |
:1068E0000640A0E10530A0E10410A0E10300A0E112 |
:1068F0007080BDE80DC0A0E10E002DE900D82DE9A3 |
:1069000010B04CE20010E0E304209BE508308BE27D |
:10691000C50000EB00A81BE9000052E302C0A0E1A3 |
:106920000600000A0020D0E5FF3001E2030052E13A |
:106930000EF0A00101C05CE2010080E2F8FFFF1A46 |
:106940000000A0E30EF0A0E1000052E300C0A0E1CF |
:106950000EF0A0010130D1E4012052E20130CCE47C |
:106960000EF0A001FAFFFFEA0030D0E5000053E38B |
:106970000020A0E10200000A0130F0E5000053E32E |
:10698000FCFFFF1A000062E00EF0A0E10030A0E37F |
:10699000012042E2010072E30600000A00C0D0E5D7 |
:1069A0000130D1E403305CE0010080E20100001A14 |
:1069B00000005CE3F5FFFF1A0300A0E10EF0A0E188 |
:1069C00000442DE910A09FE510209FE50AA08FE06C |
:1069D00002208AE00044BDE8010000EAA098FE031E |
:1069E000200300000DC0A0E170D82DE9004050E266 |
:1069F00004B04CE20260A0E10150A0E10200001AE4 |
:106A0000004092E5000054E30E00000A0400A0E1FB |
:106A10008A0400EB0030F4E7FF3003E2000053E3A8 |
:106A20000400A0E10510A0E10340A0010300A001C3 |
:106A30000300000A6F0400EB000050E30030A013D5 |
:106A40000130C014000086E50400A0E170A81BE935 |
:106A50000010A0E30A20A0E3FFFFFFEA0130A0E35B |
:106A6000FFFFFFEA0DC0A0E1F0DF2DE990A19FE557 |
:106A700004B04CE208D04DE20040A0E10250A0E199 |
:106A80000AA08FE00060A0E12C100BE530300BE590 |
:106A90000000D4E55C0000EB000050E301408412EC |
:106AA000FAFFFF1A0020D4E52B0052E30080A0E19A |
:106AB0000200000A2D0052E30100001A0180A0E349 |
:106AC000014084E21020D5E30D00001A0030D4E527 |
:106AD000300053E30A5085E20700001A016084E2A7 |
:106AE0000030D6E5203083E3780053E3025045E2DE |
:106AF0000640A0E18550A00101408602100055E348 |
:106B00001050A0A3023045E2220053E30070A0E33E |
:106B10002900008A0510A0E10000E0E307F6FFEB82 |
:106B20000510A0E10030A0E10000E0E3FF9003E2E7 |
:106B3000B0F5FFEB0020D4E5303042E2FF3003E255 |
:106B4000090053E30320A0910400009A400052E39F |
:106B50002030828357304382FF2003822820A09375 |
:106B6000050052E1140000AA016084E2000057E130 |
:106B70000640A0E10700008A0030A0130130A00306 |
:106B8000090052E10030A09301300382000053E37A |
:106B900095272700E6FFFF0A30201BE5023008E0BA |
:106BA000FF8003E25C309FE503309AE72220A0E3F8 |
:106BB0000070E0E3002083E5DDFFFFEA2C301BE5F9 |
:106BC000000053E30060831530201BE5000058E30C |
:106BD0000211E0030211A013000052E3010057115B |
:106BE00020209F8502209A872230A0830030828552 |
:106BF0000170A081000058E3000067120700A001A7 |
:106C0000F0AF1BE9EC97FE03000000000030A0E1AC |
:106C1000090040E2040050E30000A0830100A093BB |
:106C2000200053E3010080030EF0A0E10DC0A0E1BD |
:106C300030D82DE90140A0E10010E0E104B04CE2C1 |
:106C4000010054E10140A02148D04DE20210A0E132 |
:106C50000320A0E10130E0E350300BE558309FE520 |
:106C600000C0A0E104E080E00050A0E35C004BE243 |
:106C700034E00BE5BC354BE148C00BE53CC00BE50F |
:106C800040C00BE538C00BE544E00BE51C500BE5BC |
:106C9000770100EB050054E130A81B0940201BE5FB |
:106CA00044301BE5011042E2030052E140100B05A5 |
:106CB00040301BE50050C3E530A81BE990200000E0 |
:106CC0000DC0A0E130D82DE9000052E304B04CE241 |
:106CD00004D04DE20240A0E115104BE50050A0E1C8 |
:106CE00030A81B0915004BE20110A0E30520A0E12C |
:106CF000840400EB014054E230A81B09F8FFFFEACE |
:106D00000DC0A0E1F0DF2DE944A59FE504B04CE201 |
:106D1000C0D04DE20180A0E10030A0E30AA08FE0E6 |
:106D2000D8000BE50100A0E10390A0E1DC200BE519 |
:106D3000CC300BE56B0600EB0800A0E1E70500EBAB |
:106D40002620D8E5183098E5090053E1023188E0A3 |
:106D5000240083E22030A0E3E4300BE5543088E2E5 |
:106D6000823183C01C2098E50B10A0E3083043C299 |
:106D7000020059E1E0100BE5050000AA28104BE2E3 |
:106D8000012052E2203001E5083083E2041081E264 |
:106D9000FAFFFF1A204098E5000054E30900001AAA |
:106DA000DC301BE5101098E5002093E548001BE55A |
:106DB0000F1C01E2000090E5C23FA0E1700100EB72 |
:106DC0000400A0E1F0AF1BE9070054E36400008A6F |
:106DD00080349FE503308AE0033084E0015053E5BE |
:106DE0000A0055E35760A0E30500001A103098E54B |
:106DF000200013E35760A0032C60A013400013E3AE |
:106E000080608613050054E3005065820400008A08 |
:106E1000030054E33760A003010054E30610A0030D |
:106E2000E0100B05043098E5000053E31420D8B5BA |
:106E3000000090E5E4200BB50F0C00E20520A0E176 |
:106E400048101BE5590100EB0530A0E10120A0E14D |
:106E50000010A0E149004BE200608DE5EE0400EB7C |
:106E6000201098E5050051E30050A0E11100009AC0 |
:106E70000030D0E52D0053E3103098E50500001AEE |
:106E8000023083E30220A0E3015080E2E0200BE522 |
:106E9000103088E5070000EA020013E30030A01379 |
:106EA000E0300B150300001AE0201BE5010013E39E |
:106EB0000420A013E0200BE5049098E5102098E54D |
:106EC000000059E3C8304BE2030065E00190A0B335 |
:106ED000100012E37F6080E20C00000A020051E320 |
:106EE000E0301BE50630A093030051E30930A00316 |
:106EF000060059E104005193E0300BE50300001A4D |
:106F00000030D5E5300053E3809080120190A0035B |
:106F10000030D5E5300053E30B00001AE0101BE50C |
:106F2000203098E5050051E30B10A0C3010053E3A6 |
:106F3000E0100BE520339F0503509A070560A0037E |
:106F40000400000A000059E30060A003060059E1B4 |
:106F5000092066800000008A0020A0E30290A0E1E2 |
:106F60006F0000EA0F0054E30A00008A48101BE596 |
:106F7000043088E2060091E8D8001BE5250100EB0B |
:106F8000DC101BE5003091E5003083E00000A0E359 |
:106F9000003081E5F0AF1BE9110054E31C00008ACA |
:106FA0000040A0E3D4400BE548101BE50E00001A9A |
:106FB000003091E5040053E1CC300BE52200000ADB |
:106FC000042098E5CC004BE2040052E10020E0B33D |
:106FD000D4304BE20010A0E1470300EB010070E366 |
:106FE0000060A0E1F0AF1B094D0000EAC8504BE281 |
:106FF000001091E5D4204BE20500A0E1260300EB50 |
:10700000010070E30060A0E10040C517F0AF1B096C |
:10701000430000EA130054E31600008A48101BE501 |
:107020000D00001A005091E5000055E30600000A2B |
:10703000041098E5000051E30010E0B30500A0E162 |
:10704000DE0200EB0060A0E1350000EA0C329FE5B3 |
:1070500003509AE70660A0E3310000EA0030D1E572 |
:10706000C8504BE2C8304BE50160A0E30030A0E31C |
:10707000C7304BE52A0000EA140054E30700001A69 |
:10708000DC319FE503309AE7C8104BE2000093E53E |
:107090008020A0E3F90200EB0050A0E1E3FFFFEA4B |
:1070A000C0119FE501309AE7005093E50020D5E537 |
:1070B0000C3098E5030052E11200001AA4319FE55C |
:1070C00003309AE700C093E59C319FE505C06CE072 |
:1070D000D8001BE5041088E248204BE203309AE711 |
:1070E0000FE0A0E10CF193E7000050E33A0000BA92 |
:1070F000DC201BE5003092E5003083E00000A0E3D7 |
:10710000003082E5F0AF1BE901309AE7003093E5EB |
:10711000015085E20A3083E2030055E1E2FFFF3AC5 |
:107120002D0000EAE0301BE50B0053E3092086E068 |
:107130000200000A050053E3012082D2022082C22D |
:10714000083098E5DC101BE5020053E10370628013 |
:107150000070A093003091E5072082E0023083E0C8 |
:10716000003081E5E4201BE5103098E5300052E363 |
:10717000079089000070A003084013E20400001A81 |
:107180000720A0E1D8001BE52010A0E3CBFEFFEB19 |
:107190000470A0E1D4309FE503008AE0E0301BE5F5 |
:1071A000D8101BE5000083E00C0300EBD8001BE5C2 |
:1071B0000920A0E13010A0E3C0FEFFEBCC301BE5BE |
:1071C000000053E30600001A0500A0E10610A0E14C |
:1071D000D8201BE54B0300EB170000EA0000E0E3BA |
:1071E000F0AF1BE90030A0E3000056E3D4300BE51C |
:1071F0000F00000A800056E30650A0318050A02303 |
:10720000C8404BE20520A0E1D4304BE2CC104BE269 |
:107210000400A0E1B80200EB0050A0E10510A0E1DD |
:107220000400A0E1D8201BE5360300EB056056E022 |
:10723000EFFFFF1A0030A0E3CC300BE5D8001BE5D0 |
:107240000720A0E12010A0E39CFEFFEB0000A0E3DC |
:10725000F0AF1BE95095FE03C49D01FC0400000043 |
:1072600008000000000000000C00000010000000FA |
:10727000CC9D01FC0DC0A0E1F0D92DE904B04CE299 |
:10728000A8D04DE2C4804BE20030A0E30070A0E142 |
:107290000800A0E10140A0E1C8300BE50260A0E1D8 |
:1072A000340400EB000050E30450A0E1090000AA00 |
:1072B000C4401BE50400A0E1AAFDFFEB0720A0E10C |
:1072C0000010A0E10400A0E10E0300EB0030E0E3B9 |
:1072D000C8300BE5280000EA0610A0E10800A0E194 |
:1072E0006E0400EB0030D4E5000053E32500531397 |
:1072F0000300000A0130F4E5000053E325005313B6 |
:10730000FBFFFF1A050054E10800000A041065E0C5 |
:107310000500A0E10720A0E1FA0200EB000050E325 |
:10732000E9FFFFBAC8301BE5003083E0C8300BE549 |
:107330000030D4E5000053E30F00000A0130F4E50B |
:10734000250053E30900000A0700A0E10810A0E1AE |
:10735000C8204BE2C4400BE568FEFFEB000050E3A1 |
:10736000C4401BA50450A0A1DDFFFFAAD6FFFFEA81 |
:107370000450A0E1014084E2D9FFFFEAC8001BE508 |
:10738000F0A91BE9010C51E30020C0050EF0A0019B |
:10739000020B51E30100001A0C0080E80EF0A0E19E |
:1073A000020C51E3B020C001002080150EF0A0E1D6 |
:1073B000000052E30020A0E1023B00E2090000BA15 |
:1073C000000053E30900001A010C50E3000091E5AE |
:1073D000FF000002020C52E30038A0012308A001C4 |
:1073E0000010A0E30EF0A0E1000053E30100000A4A |
:1073F000030091E80EF0A0E1010C50E3000091E5DC |
:10740000FF000002020C52E30038A0014308A00173 |
:10741000C01FA0E10EF0A0E10DC0A0E1F0DF2DE95A |
:1074200004B04CE201DC4DE20890D3E5610059E381 |
:107430000C310BE56790A003003093E5410059E360 |
:107440000CE11BE54790A003000053E30630A0B316 |
:107450000CC09EE520310BE501EC4BE20030A0E3CF |
:1074600004304EE50250A0E10140A0E10C211BE5F3 |
:1074700002001CE3042092E528A29FE52B30A01314 |
:1074800001CC4B1208010BE51C210BE50AA08FE093 |
:1074900004304C150300001A01001CE32030A01337 |
:1074A00001EC4B1204304E1500C0A0E301EC4BE29E |
:1074B0000510A0E10400A0E10530A0E10420A0E156 |
:1074C00003C04EE5A60700EB000050E30080A0E1FA |
:1074D0000A00000A600059E30630A0930530A0833B |
:1074E000FF304BE50C211BE50330A0E3E8300BE552 |
:1074F000FE604BE22030A0E3103082E55D0100EA3F |
:10750000192E8FE20C0092E80510A0E10400A0E122 |
:1075100087F9FFEB000050E30030E00314310B0566 |
:107520009200000A5B2F8FE20C0092E80510A0E1A8 |
:107530000400A0E1F3F9FFEB000050E3070000AA0C |
:107540002D30A0E301CC4BE20510A0E10400A0E146 |
:1075500004304CE57EFAFFEB0150A0E10040A0E1D1 |
:107560004E2F8FE20C0092E80510A0E10400A0E18C |
:10757000B9F7FFEB0130A0E10020A0E10510A0E188 |
:107580000400A0E16AF9FFEB000050E30A00001AD2 |
:10759000600059E30430A0930330A083FF304BE533 |
:1075A0000CE11BE50330A0E3E8300BE5FE604BE2A5 |
:1075B0002030A0E310308EE52E0100EA016C8FE24E |
:1075C000C00096E890C04BE288C18CE00710A0E1B3 |
:1075D0000600A0E10730A0E10620A0E1C0008CE891 |
:1075E0009DF7FFEB018088E20C0058E30170A0E1F9 |
:1075F0000060A0E1F2FFFFDABC208FE20C0092E80D |
:107600000510A0E10400A0E1BEF9FFEB0820A0E313 |
:10761000A00FA0E1013AA0E318010BE514210BE54E |
:1076200010310BE50C80A0E318C11BE510311BE500 |
:1076300001E048E2C330A0E100005CE328E10BE593 |
:1076400090204BE28801A0E124310BE52000000AE4 |
:10765000023080E00C0093E80510A0E10400A0E1F6 |
:107660007DF7FFEB60208FE20C0092E80170A0E153 |
:107670000060A0E1A3F9FFEB000050E345CF4BB25F |
:1076800000509CB80750A0B10640A0B10CC06EB02D |
:1076900014C10BB51F0000EA00000000000000004C |
:1076A0000000D03F00000000E08DFE031400000049 |
:1076B000180000001C0000003800000084D797412B |
:1076C00000000000000024400000000065CDCD4116 |
:1076D00000000000023080E00C0093E80510A0E1FB |
:1076E0000400A0E15FF8FFEB34204FE20C0092E8C9 |
:1076F0000170A0E10060A0E15BF9FFEB000050E346 |
:10770000452F4BA20C0092A8032082A014210BA5A8 |
:107710000750A0A10640A0A14A8F4BE2001198E8B3 |
:10772000010078E310C10BE5BEFFFF1A68204FE2AD |
:107730000C0092E80510A0E10400A0E14AF9FFEB7B |
:10774000000050E3090000BA0510A0E10400A0E128 |
:1077500094204FE20C0092E842F8FFEB14E11BE5A5 |
:1077600001E08EE214E10BE50150A0E10040A0E150 |
:10777000AE704BE20280A0E30510A0E10400A0E19E |
:10778000B7F9FFEB0060A0E185F9FFEB0130A0E164 |
:107790000020A0E10510A0E10400A0E101F7FFEB4B |
:1077A000DC204FE20C0092E82BF7FFEB08311FE5DD |
:1077B0000150A0E10040A0E10920A0E303109AE7F6 |
:1077C0000700A0E10630A0E149FCFFEB018058E290 |
:1077D000007087E0E7FFFF5A600059E36530A0E3DF |
:1077E000F8304BE520211BE54530A093F8304B9550 |
:1077F00020308992FF900392000052E30030A0D322 |
:107800000130A0C3670059E30030A0130130030228 |
:10781000000053E302C0A0E101C04212660059E338 |
:107820000940A0E10A00001A14311BE503C08CE0F6 |
:1078300001007CE3060000AA00C0E0E3B0004BE2D8 |
:107840003010A0E31420A0E314C10BE5D40000EB3A |
:1078500014C11BE50020A0E33030A0E313005CE37B |
:10786000AF304BE5B0204BE50280A0E1AF704BE2BA |
:107870009A004BE2050000CA0C2087E00230D2E5F6 |
:10788000020082E2340053E30080A0930180A083D1 |
:10789000013070E5083083E00030C0E50020D0E51D |
:1078A000390052E30030A0930130A083300052E34E |
:1078B00001308303000053E3F4FFFF1A14111BE5AA |
:1078C000070050E10700A0910110819201708782AA |
:1078D00000E0A0E3670059E301E0E0E50800001ADA |
:1078E000040071E30030A0B30130A0A30C0051E10B |
:1078F0000030A0C3013003D20E0053E16790A00313 |
:107900006690A013660059E314110BE50010A01354 |
:10791000000051E33030A0B30120A0E3013067B58F |
:10792000FFE04BE5E8200BE50130D7E4303043E2DF |
:10793000E4300BE5008067E0FE604BE2E0504BE294 |
:10794000190000BA080051E10D0000BA011068E00A |
:10795000000051E3E0800BE5FE204BE5DC700BE519 |
:107960000E80A0E1FD604BE2D8504BE2FC604BC2C0 |
:10797000D0504BC2D8100BC5FDE04BC5D4E00BC5B1 |
:10798000080000EA000051E3060000DAFE204BE5A3 |
:10799000E0100BE5DC700BE5088061E0FD604BE278 |
:1079A000D8504BE2017087E00010E0E30CE11BE5EA |
:1079B0000C309EE52332A0E1013003E2000058E3E1 |
:1079C00001308313000053E30300001A20211BE55C |
:1079D000670054E300005213040000DA0230A0E311 |
:1079E0000130C6E40130A0E3043085E4045085E2B0 |
:1079F000011091E2003061420020A0430120C64402 |
:107A00000430854404208544000058E30130A0136D |
:107A10000130C6140480851404708514670054E393 |
:107A20000700000A20311BE5088061E0030058E1EF |
:107A3000038068B00030A0B30130C6B4048085B4C0 |
:107A4000043085B4660059E30A00000A0130A0E35F |
:107A50000130C6E4AC331FE5F8404BE203109AE76F |
:107A6000F8205BE514311BE50400A0E1A0FBFFEB6F |
:107A7000040085E4004085E5010C4BE2061060E05F |
:107A8000010051E3E8504BE2070000DA018041E2D7 |
:107A9000043095E41CC11BE5018058E20CC063E092 |
:107AA0001CC10BE5045085E2F8FFFF1A01EC4BE224 |
:107AB00004305EE51C211BE5008053E20180A01329 |
:107AC000022068E0000052E30030A0D31C210BE547 |
:107AD0001C310BD5160000DA0CC11BE50C309CE5FF |
:107AE000082013E20A00000A0730A0E30030C6E5D0 |
:107AF0001CE11BE548341FE504E085E403309AE708 |
:107B00000020A0E3011081E21C210BE5003085E597 |
:107B1000070000EA0CC11BE510309CE5300053E380 |
:107B2000E8301B051CE11B050E308300E8300B0517 |
:107B30001C210B051C211BE50040A0E3083082E05E |
:107B400001CC4BE20720A0E30020CCE5010054E18A |
:107B5000F0300BE5413F4BE2EC300BE50060A0E17B |
:107B6000F0504BE20C0000AA0180A0E1BC341FE5FC |
:107B70000120D6E403308AE0021193E708011BE5F7 |
:107B80000C0095E8F30100EB003095E5018058E228 |
:107B9000034084E0085085E2F3FFFF1A0400A0E1EF |
:107BA000F0AF1BE9000052E30030A0E10EF0A001AD |
:107BB000012052E20110C3E40EF0A001FBFFFFEA36 |
:107BC000000051E30020A0E10800000A0030D0E5E9 |
:107BD000000053E30500000A011051E2010080E2B9 |
:107BE0000200000A0030D0E5000053E3F9FFFF1A5D |
:107BF000000062E00EF0A0E10030D0E5000053E3A9 |
:107C00000C00000A0020D1E5000052E301C0A0E111 |
:107C10000500000A0030D0E5030052E10EF0A0019B |
:107C20000120FCE5000052E3F9FFFF1A0130F0E506 |
:107C3000000053E3F2FFFF1A0000A0E30EF0A0E102 |
:107C40000020D1E5000052E304E02DE501C0A0E1F1 |
:107C500000E0A0E10700000A0030D0E5030052E197 |
:107C600001C08CE201C0A0010020DCE5010080021F |
:107C7000000052E3F7FFFF1A00006EE004F09DE4FD |
:107C80000DC0A0E110D82DE904B04CE20140A0E104 |
:107C9000DA0300EB0400A0E110A81BE90DC0A0E18D |
:107CA00010D82DE9000050E304B04CE200C0A0E180 |
:107CB00020C04B0201E0A0E120D04DE200E0A00195 |
:107CC0000C00A0E128C04BE20240A0E12CC00BE573 |
:107CD0001030A0E300C0A0E32C104BE20020E0E352 |
:107CE00028E00BE524C00BE500408DE50D0000EB1E |
:107CF000000050E30100A00310A81BE90DC0A0E1A3 |
:107D000000D82DE904B04CE204D04DE202C0A0E15D |
:107D100003E0A0E10020E0E30C30A0E100E08DE50D |
:107D2000000000EB00A81BE930442DE9A4A09FE56A |
:107D3000010050E10000501310D04DE20140A0E1DD |
:107D400003C0A0E10AA08FE00150A0E30300001AE5 |
:107D5000000050E300C0E0030D00A0E10050A0E3EC |
:107D600002005CE102C0A02100005CE30C10A0E175 |
:107D7000002094E51200000A003092E57F0053E3F2 |
:107D80000500009A50209FE502209AE75430A0E3B6 |
:107D90000000E0E3003082E50C0000EA0030D2E5AC |
:107DA000FFE003E200005EE30030C0E50E20A0012A |
:107DB0000300000A011051E2042082E2050080E085 |
:107DC000ECFFFF1A0D0050E1002084150C0061E06B |
:107DD00010D08DE23084BDE82885FE03000000004D |
:107DE0000DC0A0E170D82DE904B04CE20160A0E123 |
:107DF0000050A0E1DBFAFFEB0040A0E10410A0E19D |
:107E00000500A0E10630A0E10120A0E3030000EBA3 |
:107E1000000050E30040E0030400A0E170A81BE96B |
:107E20000DC0A0E130D82DE904B04CE203C0A0E1C0 |
:107E3000B030D3E1020B13E380E083E3083083E347 |
:107E40000140A0E10050A0E30210A0E1B030CC114D |
:107E50000A00001A000054E30C20A0E1B0E0CCE1DD |
:107E60000430A0E10400000A940101E0250000EBC9 |
:107E70000410A0E1DFF0FFEB0030A0E10350A0E12F |
:107E80000500A0E130A81BE90DC0A0E1000052E30D |
:107E9000F0D92DE904B04CE20280A0E10060A0E13D |
:107EA0000170A0E10250A0E11400000A343096E510 |
:107EB000000055E30540A0A10241E0B3000053E3F8 |
:107EC0000710A0E10420A0E10000E0032C009615BB |
:107ED0000FE0A01103F0A011000050E3B030D6B1C4 |
:107EE000083083B3B030C6B1040000BA040050E1DA |
:107EF0000400A0C1005055E0007087E0EAFFFF1ABF |
:107F0000080065E0F0A91BE90DC0A0E1F0DF2DE954 |
:107F100004B04CE208D04DE2B030D2E178A29FE547 |
:107F2000205013E20240A0E103C0A0E10070A0E1F4 |
:107F30000180A0E10AA08FE00700000A083083E377 |
:107F4000B030C2E154329FE503309AE70920A0E344 |
:107F50000000A0E3002083E5F0AF1BE9016A13E213 |
:107F60001400000A1C2092E5203094E5030052E141 |
:107F70000100003A03001CE30900000A010B1CE3A6 |
:107F80000120A0030220A0130400A0E10510A0E13D |
:107F9000B50300EB000050E3B030D4110500A01190 |
:107FA0001700001A143094E5243084E5203084E56D |
:107FB0001C3084E5150000EA093B03E2010B53E3A2 |
:107FC0001200001A0030A0E30020A0E328104BE2CA |
:107FD0000C0021E90400A0E10220A0E3710000EB05 |
:107FE000000050E30900000AB0319FE503309AE732 |
:107FF000003093E5200053E30400000AB030D4E1E0 |
:108000000600A0E1083083E3B030C4E1F0AF1BE923 |
:10801000B030D4E1142094E5033AC3E3000057E301 |
:10802000282084E5B030C4E10790A0E10100A0E37E |
:108030002200001A0C1094E5142094E51C3094E5FD |
:10804000020071E3035062E00260A0E10700001A41 |
:10805000B030D4E1000057E3023A83E3B030C4E12A |
:1080600007306910080083100700A001F0AF1BE97A |
:108070000210A0E10400A0E10520A0E181FFFFEBD8 |
:10808000143094E5005055E01C3084E5006086E033 |
:108090000500000A1C3094E50120D6E40120C3E469 |
:1080A000015055E21C3084E5F9FFFF1A000057E348 |
:1080B000142094051C30940503006200F0AF1B09E6 |
:1080C0001C2094E5143094E5030052E10C00001AE2 |
:1080D000183094E5033062E0080053E10800008A9C |
:1080E0000C3094E5020073E30500000A0710A0E1DC |
:1080F0000820A0E10400A0E162FFFFEB007087E030 |
:108100001B0000EA183094E5031062E0080051E11A |
:108110000810A021000051E30760A0E1088061E0A1 |
:108120000500000A1C3094E50120D7E40120C3E4D7 |
:10813000011051E21C3084E5F9FFFF1A000050E302 |
:108140000B00000A000058E3B9FFFF1AB030D4E179 |
:10815000010C13E30600000A070056E10400002AA0 |
:108160000130D6E40A0053E3B1FFFF0A070056E1ED |
:10817000FAFFFF3AB020D4E124309FE5033002E05B |
:10818000000053E318309405070069E028308405A7 |
:10819000023A82E3B030C4E1F0AF1BE93883FE035A |
:1081A00000000000080B00000DC0A0E110D82DE970 |
:1081B00004B04CE22CC090E50C3080E203005CE19E |
:1081C0000140A0E10230A0E10A00000A383090E549 |
:1081D000000053E30500000A0C00A0E10FE0A0E15D |
:1081E00003F0A0E1000050E30000A0A310A81BA929 |
:1081F0000000E0E310A81BE90C0090E5060091E800 |
:10820000C00200EB000051E30030E0B30030A0A357 |
:10821000030084A80300A0E110A81BE90DC0A0E1A1 |
:10822000F0DB2DE9000053E304B04CE20CD04DE24A |
:108230000260A0E10150A0E10020A0E30370A0E1F2 |
:108240000080A0E128200BE5060000AA060176E3E5 |
:10825000007063E20300009A0130A0E328300BE5D0 |
:10826000005075E20060E6E20090A0E30090C8E5EF |
:108270000710A0E10000E0E3DEEFFFEB0710A0E154 |
:108280002C000BE50000E0E32CF0FFEB010080E2A6 |
:10829000070050E12C201B05012082020630A0E1DE |
:1082A0002C200B0530000BE50560A0E130900B059C |
:1082B0000390A0E10900A0E10710A0E11FF0FFEB8F |
:1082C0000710A0E10040A0E10900A0E1C9EFFFEB29 |
:1082D0000710A0E10090A0E10600A0E117F0FFEB7D |
:1082E00030501BE50710A0E1940525E00600A0E151 |
:1082F000C0EFFFEB2C301BE50710A0E1930424E056 |
:108300000500A0E1BBEFFFEB0710A0E10030A0E10A |
:108310000500A0E1036084E008F0FFEB090050E3F2 |
:1083200004209B85303080E2018048E2023080806A |
:10833000092096E10050A0E10030C8E5DCFFFF1AFB |
:1083400028301BE5000053E32D30A01301306815E1 |
:108350000800A0E1F0AB1BE90DC0A0E10E002DE983 |
:1083600000D82DE910B04CE204109BE508208BE208 |
:10837000BFFBFFEB00A81BE90DC0A0E170DC2DE9FD |
:1083800010A19FE504B04CE20CD04DE20040A0E10A |
:108390000150A0E10AA08FE00010A0E3A420A0E318 |
:1083A000FFFDFFEB183094E500C0A0E31C104BE28A |
:1083B000013043E2183084E5045021E50020E0E379 |
:1083C000005084E50C00A0E128304BE228C00BE50A |
:1083D000640200EB010070E3286084120620A01103 |
:1083E0000A00A0130500001AAC309FE503308AE0B4 |
:1083F000003084E570AC1BE90000E0E370AC1BE9E1 |
:108400000830A0E3010050E2043082E4FBFFFF1AD1 |
:108410000030D5E5000053E30520A0E11000000A7C |
:108420000030D2E5250053E30900001A0130F2E5DF |
:10843000250053E30600000A002084E50400A0E1C3 |
:10844000A80000EB000050E3002094A5010000AA62 |
:10845000E8FFFFEA012082E20030D2E5000053E3AA |
:10846000EEFFFF1A180094E5010050E2005084E589 |
:108470000620A0E10500004A003092E5080053E321 |
:10848000DCFFFF0A010050E2042082E2F9FFFF5AFC |
:108490000000A0E370AC1BE9D87EFE03D89D01FC70 |
:1084A0000DC0A0E130D82DE9185090E50030A0E3D0 |
:1084B000030055E104B04CE20040A0E1501080E51B |
:1084C00030A81BD9083080E51C5080E5183080E5C5 |
:1084D000043080E5010000EB185084E530A81BE96A |
:1084E00018C090E500005CE310402DE9541080E2D4 |
:1084F000083090E53900001A020153E30400001A25 |
:10850000503090E5042093E4503080E5082080E569 |
:10851000542080E5043090E5020153E30400001A82 |
:10852000503090E5042093E4503080E5042080E54D |
:10853000542080E51C3090E503005CE1320000AA85 |
:108540000C3180E0282093E5070052E301C08CE263 |
:108550001300000A180000DA020C52E31600000AA9 |
:10856000020000CA080052E31800000A120000EAE4 |
:10857000020B52E30400000A0F0000DAB8309FE556 |
:10858000030052E10600000A0B0000EA502090E5CB |
:10859000083082E2503080E5180092E8180081E847 |
:1085A000090000EA502090E5083082E2503080E572 |
:1085B000180092E8180081E8030000EA503090E5C6 |
:1085C000042093E4503080E5002081E5081081E22A |
:1085D0001C3090E503005CE1D8FFFFBA0A0000EA16 |
:1085E000020153E32430D0058331810008301305A4 |
:1085F00008308005043090E5020153E32530D005B2 |
:10860000833181000830130504308005081090E59F |
:10861000000051E31080BDA8103090E5083083E3DE |
:10862000001061E20130C3E32020A0E3142080E5C4 |
:10863000081080E5103080E51080BDE807080000D4 |
:1086400000442DE940A09FE540109FE50AA08FE07F |
:1086500001308AE0182083E2F23072E1000053E139 |
:108660000200000A01308AE0030052E1F9FFFF8AAC |
:1086700018309FE503308AE0023063E010209FE568 |
:1086800002208AE0C300D2E70084BDE8207CFE031C |
:10869000FC9D01FC149E01FC0DC0A0E1080051E30B |
:1086A00030D82DE904B04CE20150A0E10040A0E335 |
:1086B0000A00000A010050E1080050130140A0E345 |
:1086C0000600000ADDFFFFEB0040A0E10500A0E18D |
:1086D000DAFFFFEB000054E10040A0C30140A0D34B |
:1086E0000400A0E130A81BE90DC0A0E1F0DF2DE9F6 |
:1086F00004B04CE25CD04DE2103090E50020A0E3E5 |
:1087000080E013E20830A0E3C8A49FE54C300BE5FD |
:108710005C200BE558200BE550300BE50010E0E342 |
:108720000060A0E10280A0E10AA08FE080100BE5CC |
:10873000189090E502C0A0E1005090050F00000ADB |
:108740007B504BE20240A0E128104BE2003096E55E |
:10875000043183E0042053E5542041E5043013E55F |
:10876000030052E11101001A011081E2553051E578 |
:10877000000053E3014084E2F3FFFF1A5D304BE554 |
:108780000030D5E52A0053E30500A0E10700001AF8 |
:1087900000005CE328204BE20430A0130030A0036B |
:1087A000023083E00020A0E3282003E5015085E2A9 |
:1087B0000010D5E5303041E2090053E30040A0E36A |
:1087C0000800008A10349FE5030054E1043184D08E |
:1087D000833081D00110F5E5304043D2303041E2A2 |
:1087E000090053E3F6FFFF9A013050E5250053E3FB |
:1087F0002F00001A0020D5E5000054E30030A0D37C |
:108800000130A0C3240052E30030A0130130030262 |
:10881000000053E30600000A000059E3015085E21E |
:10882000E200000A090054E10490A0C154400BE5A5 |
:108830000E0000EA000059E3050000DA6D0052E383 |
:108840001B00000AD90000EA04E08EE1015085E235 |
:10885000060000EA000055E10390A0E10200009A42 |
:108860000030D0E5300053E31100001A0050A0E1C1 |
:1088700068339FE50140A0E303008AE00020D5E5CE |
:108880000130D0E4030052E1EEFFFF0A0020D0E502 |
:10889000000052E38440A0E1F7FFFF1A013055E5E4 |
:1088A000250053E30A300EE20240A0E1A3E0CEE14E |
:1088B000B2FFFF1A0030D0E52A0053E31100001A7E |
:1088C000000059E30B00000A0130D5E4240053E313 |
:1088D000B600001A000054E3B40000DA00005CE3C4 |
:1088E0000430A0130030A00328104BE2013083E0D5 |
:1088F000344003E5020000EA010080E2050050E197 |
:10890000AA00001A0241A0E300005CE30600001A7E |
:108910000030D5E52E0053E30480A0E1015085022C |
:1089200000C0E00395FFFF0A000000EA80400BE56D |
:10893000AC129FE501008AE00020D5E50030D0E5CB |
:10894000030052E1015085020200000A0130F0E507 |
:10895000000053E3F7FFFF1A01308AE0003063E0C4 |
:10896000010053E3040000CA0020D5E50030D0E543 |
:10897000030052E109008002015085020020D5E584 |
:108980000930D0E5000052E303C4A0E18700000AEB |
:1089900050729FE507008AE00030D0E5030052E105 |
:1089A0001A00001A07308AE0002063E0110052E349 |
:1089B000010000DA010B1CE30220421228129FE59D |
:1089C00084200BE501308AE0010043E20130F0E54C |
:1089D000030052E1FCFFFFCA01308AE0004063E07F |
:1089E00008329FE58410A0E103308AE0F32091E192 |
:1089F000FC319FE503308AE0F33091E102208CE105 |
:108A0000032002E007008AE048200BE5020000EAAC |
:108A10000130F0E5000053E3DEFFFF1A0010D5E55A |
:108A200004001EE30F3C0CE20420CEE3032082E1AD |
:108A30000C1086E52030A0033030A01380101BE519 |
:108A4000143086E50130A0E3020186E9102086E5B6 |
:108A50001C3086E50030D0E5000053E32300001A07 |
:108A60000020D5E56D0052E31420A00384200B05FF |
:108A70001C3086051D00000A78119FE501309AE739 |
:108A8000000093E51530A0E384300BE50030D0E51D |
:108A9000020053E10E00001A58319FE503309AE7B7 |
:108AA00000C093E550319FE500C06CE00810A0E3E2 |
:108AB000040086E248204BE203309AE70FE0A0E191 |
:108AC0000CF193E7080050E31C0086E5070000DA8C |
:108AD000360000EA01309AE7003093E5010080E2B9 |
:108AE0000A3083E2030050E1E7FFFF3A2F0000EA7B |
:108AF000000059E31D0000DA0040A0E328804BE2AB |
:108B0000020054E354301BC5342058D5043083C0D0 |
:108B1000063084D0FF1002D2021043C22420C3D5F5 |
:108B2000090051E1020000DA090051E30190A0E1DF |
:108B30001E0000CA011041E2017186E0280097E59D |
:108B4000281018E5D3FEFFEB000050E3283018157D |
:108B5000283087151C3096E5014084E2023083E21C |
:108B6000030054E1048088E2E4FFFFBA060000EA53 |
:108B70001C2096E50130A0E30221A0E1280086E256 |
:108B80002630C6E548104BE26EF7FFEB103096E555 |
:108B900084101BE5800013E301508502189086E5E0 |
:108BA000201086E5005086050700000A010000EA53 |
:108BB0000000E0E3F0AF1BE9002096E57C304BE2DB |
:108BC000053063E0032182E0002086E51C3096E555 |
:108BD000020083E2F0AF1BE9447BFE03FE0F0000BE |
:108BE000209E01FC669E01FC289E01FC3D9E01FC2E |
:108BF000469E01FC569E01FC0C0000002000000077 |
:108C00000DC0A0E1F0DD2DE9E8A09FE504B04CE245 |
:108C100038D04DE27C0050E30040A0E10170A0E1BB |
:108C20000260A0E10AA08FE01680A0E30D00008A98 |
:108C3000C4309FE5000050E303509AE70500000AA6 |
:108C40000030D5E5000053E301404402000054E346 |
:108C5000015085E2F9FFFF1A0030D5E5000053E32B |
:108C60000080A0130C00001A0010A0E1C12FA0E1A9 |
:108C700000C0A0E327004BE20930E0E300C08DE52F |
:108C800065FDFFEB74109FE50E5040E201108AE095 |
:108C90000500A0E10E20A0E32AF7FFEB0500A0E10C |
:108CA00030F7FFEB000057E3014080E20060A003D3 |
:108CB000060054E10640A0812280A083000054E316 |
:108CC0000600000A0420A0E10510A0E10700A0E1D1 |
:108CD0001CF7FFEB042087E00030A0E3013042E501 |
:108CE000000058E318309F1503309A170080831551 |
:108CF0000800A0E1F0AD1BE94876FE032400000067 |
:108D00007C9E01FC0000000070442DE94CA09FE512 |
:108D10000260A0E10150A0E108D04DE20340A0E1D3 |
:108D20000610A0E10AA08FE00D30A0E10520A0E12F |
:108D30008C0090EF010A70E324209F8502209A871F |
:108D400000306082003082850000E083000050E344 |
:108D5000C01FA01103009D0808D08DE27084BDE8FB |
:108D60004875FE03000000000DC0A0E100DC2DE905 |
:108D70002CA09FE504B04CE204D04DE2000053E388 |
:108D800003C0A0E10AA08FE018309F0503C08A004D |
:108D90000230A0E10020E0E300C08DE5020000EB1E |
:108DA00000AC1BE9E874FE033803000010442DE911 |
:108DB00004D04DE210C09DE5A0A09FE500005CE35B |
:108DC00003E0A0E10AA08FE094309F0503C08A0071 |
:108DD0000C0050E1000050130140A0E30300001A12 |
:108DE000000050E300E0E0030D00A0E10040A0E33C |
:108DF00002005EE102E0A02100005EE30EC0A0E1FF |
:108E0000002091E51000000A0030D2E5000053E395 |
:108E1000003080E50320A0010B00000A7F0053E32F |
:108E2000050000DA3C209FE502209AE75430A0E3D9 |
:108E30000000E0E3003082E5060000EA01C05CE2E9 |
:108E4000012082E2040180E0EEFFFF1A0D0050E1F4 |
:108E5000002081150E006CE004D08DE21084BDE886 |
:108E6000A874FE03400300000000000030402DE91C |
:108E70000140A0E1C45FA0E10230A0E10520A0E133 |
:108E80000410A0E13040BDE8FFFFFFEA0DC0A0E103 |
:108E900070DC2DE9BCA09FE504B04CE208D04DE2A7 |
:108EA000020053E30350A0E10AA08FE00040A0E1DC |
:108EB0000500009AA0209FE502209AE71630A0E363 |
:108EC0000000E0E3003082E570AC1BE9B030D0E197 |
:108ED000020A13E320304BE2060003E80060E0E3FF |
:108EE0000200000A460000EB000050E31700001AE1 |
:108EF000010055E30400001A24104BE20400A0E135 |
:108F0000160000EB000050E3100000BA24104BE202 |
:108F10000520A0E10400A0E1A2FCFFEB000050E36B |
:108F20000A0000BAB030D4E1142094E5033AC3E358 |
:108F30000010A0E30730C3E3242084E5B030C4E18F |
:108F4000401084E5202084E51C2084E50160A0E138 |
:108F50000600A0E170AC1BE9C473FE030000000032 |
:108F600010402DE9B0E0D0E103C00EE200005CE368 |
:108F70000140A0E10B00000A020B1EE30900000AF9 |
:108F80000230D0E501005CE303308CE001C043E235 |
:108F9000020000CA083090E5000053E30100000A17 |
:108FA0000000E0E31080BDE8020A1EE31C309015CB |
:108FB00014209015033062100CC06310010A1EE3E8 |
:108FC000202080120C00121802304310030094E895 |
:108FD00003C08C100C2050E0CC3FC1E0010053E1F5 |
:108FE0000C0084E8020000CA0300001A000052E1ED |
:108FF0000100009A00006CE21080BDE80C00A0E1C6 |
:109000001080BDE80DC0A0E170DC2DE9A0A09FE5B7 |
:10901000A0309FE50AA08FE003309AE70050A0E35C |
:10902000030050E10040A0E10540A001036CA0E373 |
:10903000016CA003000054E304B04CE21000001ADD |
:10904000004093E5000054E31700000AB020D4E18B |
:10905000023C22E2060013E10500000A020A12E3C4 |
:109060000300000A0400A0E1E5FFFFEB000050E36D |
:109070000050E013104094E5000054E3F2FFFF1AA3 |
:10908000090000EAB030D4E1020A13E30600000A46 |
:109090000500A0E10510A0E10420A0E199FBFFEB91 |
:1090A000000050E30050A0030050E0130500A0E1D1 |
:1090B00070AC1BE95872FE0328000000000090E528 |
:1090C000610000EA000090E56D0000EA000090E514 |
:1090D000790000EA0DC0A0E110DC2DE958A09FE561 |
:1090E00004B04CE20AA08FE00000A0E3C4FFFFEB55 |
:1090F00048309FE503309AE7004093E5000054E3D1 |
:1091000010AC1B092C0094E50C3084E2030050E104 |
:109110000500000A3C3094E5000053E30FE0A01185 |
:1091200003F0A0110030A0E32C3084E5104094E55A |
:10913000000054E310AC1B09F1FFFFEA8871FE0345 |
:10914000280000000DC0A0E170DC2DE950A09FE5D3 |
:1091500050309FE50AA08FE003509AE704B04CE23C |
:109160000000A0E3006095E5100000EB38409FE5AB |
:10917000B4309AE1010060E2003423E0B4308AE1C7 |
:109180000100A0E3090000EB04408AE0B834D4E118 |
:10919000010060E2003423E0B834C4E1006085E5FA |
:1091A00070AC1BE91871FE03000000006C000000A9 |
:1091B0000DC0A0E100D82DE904B04CE23CD04DE256 |
:1091C00048104BE2030000EB000050E30000A01346 |
:1091D0000100A00300A81BE90DC0A0E130D82DE9D3 |
:1091E00004B04CE224D04DE20140A0E138204BE233 |
:1091F00050109FE54C0000EB34201BE530104BE293 |
:10920000021091E828E05BE538301BE50050A0E152 |
:10921000003084E5042084E5081084E50CC084E572 |
:1092200010E0C4E527104BE2110084E21320A0E314 |
:10923000440000EB0010A0E30D20A0E358FAFFEB80 |
:109240000500A0E130A81BE90154000000442DE90D |
:1092500024A09FE50AA08FE0030090EF010A70E3CD |
:109260000084BD9814209FE502209AE7003060E258 |
:109270000000E0E3003082E50084BDE81870FE03E2 |
:109280000000000000442DE924A09FE50AA08FE023 |
:10929000040090EF010A70E30084BD9814209FE55C |
:1092A00002209AE7003060E20000E0E3003082E54F |
:1092B0000084BDE8E06FFE030000000000442DE9DB |
:1092C00024A09FE50AA08FE0060090EF010A70E35A |
:1092D0000084BD9814209FE502209AE7003060E2E8 |
:1092E0000000E0E3003082E50084BDE8A86FFE03E3 |
:1092F0000000000000442DE924A09FE50AA08FE0B3 |
:10930000360090EF010A70E30084BD9814209FE5B9 |
:1093100002209AE7003060E20000E0E3003082E5DE |
:109320000084BDE8706FFE03000000000DC0A0E1E6 |
:109330000E002DE900D82DE910B04CE206009BE9A3 |
:10934000EBFFFFEB00A81BE9000052E30EF0A001C9 |
:109350000130D1E4012052E20130C0E40EF0A0015E |
:10936000FAFFFFEA0DC0A0E1F0D92DE904B04CE20C |
:1093700050C04BE238D04DE234804BE20150A0E1C6 |
:109380000040A0E148704BE20C00A0E158604BE2C5 |
:109390000810A0E10C0086E830008CE87EF4FFEBBA |
:1093A0000600A0E10710A0E17BF4FFEB0800A0E1BC |
:1093B0000D0000EB0030A0E1000053E30700A0E146 |
:1093C0000100000A0100A0E3F0A91BE9060000EB80 |
:1093D0000030A0E1000053E30800A0E10710A0E185 |
:1093E000F7FFFF1ABFF4FFEBF0A91BE9000090E5BF |
:1093F000010050E30000A0830100A0930EF0A0E163 |
:10940000A8610000202020202020202020202020D3 |
:109410002020202000000000120100020200004075 |
:1094200083044057000101020301090243000201C5 |
:1094300000C0000904000001020201000524001020 |
:10944000010524010001042402020524060001078D |
:109450000582030800FF09040100020A000000075A |
:1094600005030240000007058102400000040309D3 |
:109470000426037700770077002E004D0069006B0B |
:109480000072006F004B006F007000740065007286 |
:10949000002E00640065003C034D0069006B007203 |
:1094A000006F004B006F00700074006500720020B8 |
:1094B000005600690072007400750061006C0020A5 |
:1094C0000043004F004D00200050006F00720074F8 |
:1094D00000200016034D004B00200020002000312A |
:1094E000002E00300030003000000000211042202B |
:1094F00063308440A550C660E770088129914AA175 |
:109500006BB18CC1ADD1CEE1EFF1311210027332EB |
:109510005222B5529442F772D662399318837BB3C4 |
:109520005AA3BDD39CC3FFF3DEE36224433420047B |
:109530000114E664C774A44485546AA54BB5288514 |
:109540000995EEE5CFF5ACC58DD5533672261116CB |
:109550003006D776F6669556B4465BB77AA7199764 |
:109560003887DFF7FEE79DD7BCC7C448E558866853 |
:10957000A7784008611802282338CCC9EDD98EE9B4 |
:10958000AFF9488969990AA92BB9F55AD44AB77A2B |
:10959000966A711A500A333A122AFDDBDCCBBFFB04 |
:1095A0009EEB799B588B3BBB1AABA66C877CE44C3B |
:1095B000C55C222C033C600C411CAEED8FFDECCD54 |
:1095C000CDDD2AAD0BBD688D499D977EB66ED55E0B |
:1095D000F44E133E322E511E700E9FFFBEEFDDDFA4 |
:1095E000FCCF1BBF3AAF599F788F8891A981CAB130 |
:1095F000EBA10CD12DC14EF16FE18010A100C23062 |
:10960000E3200450254046706760B9839893FBA31C |
:10961000DAB33DC31CD37FE35EF3B1029012F322B1 |
:10962000D2323542145277625672EAB5CBA5A8956C |
:1096300089856EF54FE52CD50DC5E234C324A01401 |
:1096400081046674476424540544DBA7FAB79987FC |
:10965000B8975FE77EF71DC73CD7D326F236910651 |
:10966000B01657667676154634564CD96DC90EF944 |
:109670002FE9C899E9898AB9ABA9445865480678A1 |
:109680002768C018E1088238A3287DCB5CDB3FEB5C |
:109690001EFBF98BD89BBBAB9ABB754A545A376AF1 |
:1096A000167AF10AD01AB32A923A2EFD0FED6CDD2C |
:1096B0004DCDAABD8BADE89DC98D267C076C645C41 |
:1096C000454CA23C832CE01CC10C1FEF3EFF5DCF3C |
:1096D0007CDF9BAFBABFD98FF89F176E367E554E91 |
:1096E000745E932EB23ED10EF01E0000000000000A |
:1096F0001F0000003C0000005B000000790000003B |
:1097000098000000B6000000D5000000F400000042 |
:1097100012010000310100004F0100006E01000045 |
:10972000000000001F0000003B0000005A00000085 |
:109730007800000097000000B5000000D400000091 |
:10974000F300000011010000300100004E01000094 |
:109750006D010000416E676C654E69636B202020CF |
:1097600020202020416E676C65526F6C6C20202099 |
:10977000202020204163634E69636B20202020203D |
:1097800020202020416363526F6C6C202020202019 |
:1097900020202020202020202020202020202020C9 |
:1097A00020202020202020202020202020202020B9 |
:1097B00020202020202020202020202020202020A9 |
:1097C0002020202020202020202020202020202099 |
:1097D0002020202020202020202020202020202089 |
:1097E0002020202020202020202020202020202079 |
:1097F0002020202020202020202020202020202069 |
:1098000020202020475053204461746120202020D4 |
:1098100020202020535049204572726F7220202052 |
:1098200020202020535049204F6B61792020202098 |
:1098300020202020493243204572726F7220202060 |
:1098400020202020493243204F6B617920202020A6 |
:109850002020202020202020202020202020202008 |
:10986000202020204143435F53706565645F4E2094 |
:10987000202020204143435F53706565645F45208D |
:1098800020202020202020202020202020202020D8 |
:1098900020202020202020202020202020202020C8 |
:1098A000202020204E5F53706565642020202020FA |
:1098B00020202020455F53706565642020202020F3 |
:1098C00020092000202020202020202020202020CF |
:1098D0002020202020202020202020202020202088 |
:1098E000202020204779726F48656164696E672087 |
:1098F00020202020436F6D70617373486561646937 |
:109900006E67202044697374616E6365204E202069 |
:109910002020202044697374616E636520452020F7 |
:10992000202020204750535F4E69636B2020202069 |
:10993000202020204750535F526F6C6C2020202045 |
:1099400020202020557365645F53617473202020AC |
:10995000202020203C3F786D6C2076657273696F03 |
:109960006E3D22312E302220656E636F64696E6712 |
:109970003D225554462D38223F3E0D0A3C6B6D6CFE |
:1099800020786D6C6E733D22687474703A2F2F6569 |
:10999000617274682E676F6F676C652E636F6D2FD1 |
:1099A0006B6D6C2F322E32223E0D0A3C446F637574 |
:1099B0006D656E743E0D0A3C6E616D653E4D696B62 |
:1099C000726F6B6F7074657220475053206C6F67B5 |
:1099D00067696E673C2F6E616D653E0D0A0D0A3C2E |
:1099E0005374796C652069643D224D4B5F677073D9 |
:1099F0002D7374796C65223E0D0A3C4C696E65537B |
:109A000074796C653E0D0A3C636F6C6F723E6666DE |
:109A10003030303066663C2F636F6C6F723E0D0ADB |
:109A20003C77696474683E323C2F77696474683EA1 |
:109A30000D0A3C2F4C696E655374796C653E0D0AB6 |
:109A40003C2F5374796C653E0D0A00003C2F446F27 |
:109A500063756D656E743E0D0A3C2F6B6D6C3E0D2B |
:109A60000A0000003C506C6163656D61726B3E0DD5 |
:109A70000A3C6E616D653E466C696768743C2F6E8A |
:109A8000616D653E0D0A3C7374796C6555726C3E70 |
:109A9000234D4B5F6770732D7374796C653C2F7326 |
:109AA00074796C6555726C3E0D0A00003C2F506C49 |
:109AB0006163656D61726B3E0D0A00003C4C696E1E |
:109AC00065537472696E673E0D0A3C746573736505 |
:109AD0006C6C6174653E313C2F74657373656C6C9E |
:109AE0006174653E0D0A3C616C7469747564654D02 |
:109AF0006F64653E72656C6174697665546F477218 |
:109B00006F756E643C2F616C7469747564654D6F1C |
:109B100064653E0D0A3C636F6F7264696E617465C3 |
:109B2000733E0D0A000000000D0A3C2F636F6F7238 |
:109B300064696E617465733E0D0A3C2F4C696E65F5 |
:109B4000537472696E673E0D0A0000001F6EA50116 |
:109B500059F3F8C20000000000000000FB21E93FBB |
:109B6000182D4454FB21F93F182D4454FB21094082 |
:109B7000182D445426A6A13C075C143383F9A20097 |
:109B8000444E6E00FC291500D1572700DD34F50046 |
:109B900062DBC0003C999500419043006351FE0098 |
:109BA000BBDEAB00B761C5003A6E2400D24D420067 |
:109BB0004906E00009EA2E001C92D100EB1DFE00D0 |
:109BC00029B11C00E83EA700F535820044BB2E00F9 |
:109BD0009CE98400B4267000417E5F00D691390074 |
:109BE000538339009CF439008B5F840028F9BD0051 |
:109BF000F81F3B00DEFF97000F980500112FEF00C4 |
:109C00000A5A8B006D1F6D00CF7E360009CB2700EE |
:109C1000464FB7009E663F002DEA5F00BA277500E9 |
:109C2000E5EBC7003D7BF100F739070092528A004F |
:109C3000FB6BEA001FB15F00085D8D00300356002A |
:109C40007BFC4600F0AB6B0020BCCF0036F49A00E2 |
:109C5000E3A91D005E619100081BE600859965007F |
:109C6000A0145F008D40680080D8FF0027734D006E |
:109C700006063100CA561500C9A873007BE26000D1 |
:109C80006B8CC000FB21F93FFB2109407CD91240BD |
:109C9000FB2119407A6A1F407CD92240BBFD254038 |
:109CA000FB2129403A462C407A6A2F405C473140DC |
:109CB0007CD932409C6B3440BBFD3540DB8F374054 |
:109CC000FB2139401BB43A403A463C405AD83D400B |
:109CD0007A6A3F404C7E40405C4741406C104240B5 |
:109CE0007CD942408CA243409C6B4440AC344540FC |
:109CF000BBFD4540CBC64640DB8F4740EB58484054 |
:109D0000FB21494000000000000000000000E03F8F |
:109D1000000000000000704100000000305FE43FE0 |
:109D200083C8C96DFB21F93F0000405461B4D03DA8 |
:109D30003163621A61B4D03D0000601A8A19A33BF6 |
:109D40007370032E8A19A33B0000002E9A837B397F |
:109D5000C14920250000F03F000000001F6EA50152 |
:109D600059F3F8C20000F03F000000005555A53F30 |
:109D70004C5555556CC156BF7751C116A001FA3EDE |
:109D80009015CB194F7E92BEAD529C809EEE213E27 |
:109D9000C4B1B4BDE9FAA8BDD43888BE0200000041 |
:109DA000030000000400000006000000FB21F93F52 |
:109DB000000000402D44743E000000009846F83C2E |
:109DC0000000008051CC783B00000060831BF0391C |
:109DD0000000008020257A38000000402282E3360F |
:109DE000000000801DF36935000000000000000045 |
:109DF000000000000000F03F000000000000704183 |
:109E0000000000000000703E000000000000E03F85 |
:109E1000000000005555C5BF495555551111813FEA |
:109E2000A6F81011A0012ABFD561C119E31DC73ED4 |
:109E30007DFEB157E6E55ABEEB9C2B8A3AD9E53D4B |
:109E40007CD5CF5A67ACDD3F4FBB6105FB21E93FB5 |
:109E5000182D44540B73EF3F9BF681D2FB21F93F41 |
:109E6000182D44547F2B7A3CE2652F2226A6813C94 |
:109E7000075C14338807703CBDCBF07A26A6913C72 |
:109E8000075C14335555D53F0D5555559999C9BFA4 |
:109E9000C4EB98992449C23FFF830092C671BCBFAE |
:109EA000711623FECD45B73F6E204CC5F2B0B3BF4F |
:109EB0006D9A74AF660DB13F513DD0A02DDEADBFA0 |
:109EC0009AFDDE524B7BA93FEB0D762444B4A2BF32 |
:109ED0002F6C6A2C3AAD903F11DA22E30000F03F7C |
:109EE000000000003CE4377E9C7500883CE4377E2F |
:109EF0009C75008800005043000000000000903C6A |
:109F0000000000003CE4377E9C7500881F6EA501B0 |
:109F100059F3F8C20000000000000000000000003B |
:109F20000000000000000000000000000000000031 |
:109F30000000000000000000000102020303030310 |
:109F400004040404040404040505050505050505C9 |
:109F500005050505050505050606060606060606A9 |
:109F60000606060606060606060606060606060691 |
:109F70000606060606060606070707070707070779 |
:109F80000707070707070707070707070707070761 |
:109F90000707070707070707070707070707070751 |
:109FA0000707070707070707070707070707070741 |
:109FB0000707070707070707080808080808080829 |
:109FC0000808080808080808080808080808080811 |
:109FD0000808080808080808080808080808080801 |
:109FE00008080808080808080808080808080808F1 |
:109FF00008080808080808080808080808080808E1 |
:10A0000008080808080808080808080808080808D0 |
:10A0100008080808080808080808080808080808C0 |
:10A0200008080808080808080808080808080808B0 |
:10A030000808080808080808101010080A0A0A008A |
:10A040002B002D002000307800305800496E7661DA |
:10A050006C6964206D756C74696279746520666FD3 |
:10A06000726D617420737472696E672E0000000057 |
:10A0700008000500030004000100000200000004C5 |
:10A0800000080200070007080001010104020101A5 |
:10A0900001010101202B302D232749006E707858D3 |
:10A0A0006F756469664665456747614143536373ED |
:10A0B000000001070F101112131500100500000019 |
:10A0C00007000200040001000300001F0500000F4C |
:10A0D00007080200040001000300686C4C6A7A74EF |
:10A0E000715A00020408080000080000010800007E |
:10A0F000556E6B6E6F776E206572726F7220000006 |
:10A1000053756363657373004F7065726174696F33 |
:10A110006E206E6F74207065726D69747465640072 |
:10A120004E6F20737563682066696C65206F7220BE |
:10A130006469726563746F7279004E6F2073756322 |
:10A14000682070726F6365737300496E7465727214 |
:10A1500075707465642073797374656D2063616CC8 |
:10A160006C00496E7075742F6F757470757420650E |
:10A1700072726F72004E6F2073756368206465762B |
:10A18000696365206F722061646472657373004156 |
:10A190007267756D656E74206C69737420746F6F6F |
:10A1A000206C6F6E67004578656320666F726D6125 |
:10A1B00074206572726F72004261642066696C651A |
:10A1C0002064657363726970746F72004E6F2063F0 |
:10A1D00068696C642070726F636573736573005295 |
:10A1E00065736F757263652074656D706F726172EF |
:10A1F000696C7920756E617661696C61626C65006D |
:10A2000043616E6E6F7420616C6C6F636174652066 |
:10A210006D656D6F7279005065726D697373696FEA |
:10A220006E2064656E6965640042616420616464E7 |
:10A230007265737300426C6F636B2064657669634B |
:10A24000652072657175697265640044657669633D |
:10A2500065206F72207265736F7572636520627519 |
:10A2600073790046696C6520657869737473004979 |
:10A270006E76616C69642063726F73732D646576AA |
:10A28000696365206C696E6B004E6F20737563683F |
:10A2900020646576696365004E6F7420612064698F |
:10A2A000726563746F72790049732061206469720A |
:10A2B0006563746F727900496E76616C69642061C0 |
:10A2C0007267756D656E7400546F6F206D616E7985 |
:10A2D000206F70656E2066696C657320696E2073EF |
:10A2E000797374656D00546F6F206D616E79206FA6 |
:10A2F00070656E2066696C657300496E617070727E |
:10A300006F70726961746520696F63746C20666F29 |
:10A3100072206465766963650054657874206669A7 |
:10A320006C6520627573790046696C6520746F6F87 |
:10A33000206C61726765004E6F20737061636520E9 |
:10A340006C656674206F6E2064657669636500498C |
:10A350006C6C6567616C207365656B005265616448 |
:10A360002D6F6E6C792066696C65207379737465E6 |
:10A370006D00546F6F206D616E79206C696E6B7328 |
:10A380000042726F6B656E2070697065004E756D6E |
:10A3900065726963616C20617267756D656E7420AA |
:10A3A0006F7574206F6620646F6D61696E004E7505 |
:10A3B0006D65726963616C20726573756C74206F72 |
:10A3C0007574206F662072616E6765005265736FE9 |
:10A3D0007572636520646561646C6F636B20617680 |
:10A3E0006F696465640046696C65206E616D652007 |
:10A3F000746F6F206C6F6E67004E6F206C6F636BB5 |
:10A400007320617661696C61626C650046756E638C |
:10A4100074696F6E206E6F7420696D706C656D6508 |
:10A420006E746564004469726563746F7279206E3E |
:10A430006F7420656D70747900546F6F206D616E5C |
:10A4400079206C6576656C73206F662073796D6218 |
:10A450006F6C6963206C696E6B7300004E6F206DCA |
:10A46000657373616765206F6620646573697265E3 |
:10A47000642074797065004964656E746966696505 |
:10A48000722072656D6F766564004368616E6E65FB |
:10A490006C206E756D626572206F7574206F66201A |
:10A4A00072616E6765004C6576656C2032206E6F58 |
:10A4B000742073796E6368726F6E697A6564004C9C |
:10A4C0006576656C20332068616C746564004C654A |
:10A4D00076656C2033207265736574004C696E6B11 |
:10A4E000206E756D626572206F7574206F662072C4 |
:10A4F000616E67650050726F746F636F6C20647279 |
:10A5000069766572206E6F7420617474616368652A |
:10A5100064004E6F204353492073747275637475E1 |
:10A52000726520617661696C61626C65004C65766C |
:10A53000656C20322068616C74656400496E7661D8 |
:10A540006C69642065786368616E676500496E7642 |
:10A55000616C6964207265717565737420646573DC |
:10A5600063726970746F720045786368616E6765C5 |
:10A570002066756C6C004E6F20616E6F64650049DB |
:10A580006E76616C696420726571756573742063A1 |
:10A590006F646500496E76616C696420736C6F74DA |
:10A5A000000042616420666F6E742066696C6520ED |
:10A5B000666F726D617400446576696365206E6FC5 |
:10A5C0007420612073747265616D004E6F20646148 |
:10A5D000746120617661696C61626C650054696DBB |
:10A5E00065722065787069726564004F7574206FBC |
:10A5F000662073747265616D73207265736F757216 |
:10A60000636573004D616368696E65206973206ED0 |
:10A610006F74206F6E20746865206E6574776F723A |
:10A620006B005061636B616765206E6F7420696EAB |
:10A630007374616C6C6564004F626A656374206951 |
:10A64000732072656D6F7465004C696E6B20686174 |
:10A6500073206265656E207365766572656400417E |
:10A660006476657274697365206572726F720053E7 |
:10A67000726D6F756E74206572726F7200436F6DCC |
:10A680006D756E69636174696F6E206572726F7249 |
:10A69000206F6E2073656E640050726F746F636F0D |
:10A6A0006C206572726F72004D756C7469686F70A2 |
:10A6B00020617474656D7074656400524653207334 |
:10A6C00070656369666963206572726F72004261CA |
:10A6D00064206D6573736167650056616C756520F4 |
:10A6E000746F6F206C6172676520666F722064659D |
:10A6F00066696E65642064617461207479706500B8 |
:10A700004E616D65206E6F7420756E697175652080 |
:10A710006F6E206E6574776F726B0046696C652092 |
:10A7200064657363726970746F7220696E20626110 |
:10A73000642073746174650052656D6F7465206187 |
:10A74000646472657373206368616E676564004357 |
:10A75000616E206E6F742061636365737320612086 |
:10A760006E656564656420736861726564206C69F8 |
:10A77000627261727900416363657373696E672009 |
:10A780006120636F727275707465642073686172A2 |
:10A790006564206C696272617279002E6C69622056 |
:10A7A00073656374696F6E20696E20612E6F7574B6 |
:10A7B00020636F7272757074656400417474656DA6 |
:10A7C0007074696E6720746F206C696E6B20696E9F |
:10A7D00020746F6F206D616E79207368617265649B |
:10A7E000206C69627261726965730043616E6E6F9D |
:10A7F00074206578656320612073686172656420E8 |
:10A800006C696272617279206469726563746C79D3 |
:10A8100000496E76616C6964206F7220696E636FA7 |
:10A820006D706C657465206D756C746962797465A2 |
:10A83000206F722077696465206368617261637458 |
:10A84000657200496E746572727570746564207308 |
:10A85000797374656D2063616C6C2073686F756CBF |
:10A86000642062652072657374617274656400535C |
:10A87000747265616D732070697065206572726FA6 |
:10A880007200546F6F206D616E79207573657273FD |
:10A8900000536F636B6574206F7065726174696FCC |
:10A8A0006E206F6E206E6F6E2D736F636B6574001C |
:10A8B00044657374696E6174696F6E20616464725B |
:10A8C000657373207265717569726564004D657397 |
:10A8D0007361676520746F6F206C6F6E67005072D4 |
:10A8E0006F746F636F6C2077726F6E67207479700E |
:10A8F0006520666F7220736F636B65740050726FB2 |
:10A90000746F636F6C206E6F7420617661696C6127 |
:10A91000626C650050726F746F636F6C206E6F7441 |
:10A9200020737570706F7274656400536F636B652C |
:10A93000742074797065206E6F7420737570706FF9 |
:10A9400072746564004F7065726174696F6E206E19 |
:10A950006F7420737570706F727465640050726FDD |
:10A96000746F636F6C2066616D696C79206E6F74B3 |
:10A9700020737570706F72746564004164647265F1 |
:10A9800073732066616D696C79206E6F74207375C6 |
:10A9900070706F727465642062792070726F746F6A |
:10A9A000636F6C004164647265737320616C7265DF |
:10A9B00061647920696E207573650043616E6E6F06 |
:10A9C000742061737369676E207265717565737445 |
:10A9D00065642061646472657373004E6574776F9B |
:10A9E000726B20697320646F776E004E6574776FA9 |
:10A9F000726B20697320756E726561636861626C49 |
:10AA000065004E6574776F726B2064726F7070654D |
:10AA10006420636F6E6E656374696F6E206F6E2065 |
:10AA2000726573657400536F667477617265206335 |
:10AA3000617573656420636F6E6E656374696F6EB4 |
:10AA40002061626F727400436F6E6E656374696F2C |
:10AA50006E2072657365742062792070656572007E |
:10AA60004E6F206275666665722073706163652043 |
:10AA7000617661696C61626C65005472616E7370BD |
:10AA80006F727420656E64706F696E7420697320D4 |
:10AA9000616C726561647920636F6E6E6563746565 |
:10AAA00064005472616E73706F727420656E6470AE |
:10AAB0006F696E74206973206E6F7420636F6E6EA1 |
:10AAC00065637465640043616E6E6F742073656EB8 |
:10AAD00064206166746572207472616E73706F7247 |
:10AAE0007420656E64706F696E7420736875746429 |
:10AAF0006F776E00546F6F206D616E79207265669E |
:10AB00006572656E6365733A2063616E6E6F742063 |
:10AB100073706C69636500436F6E6E656374696F13 |
:10AB20006E2074696D6564206F757400436F6E6E7E |
:10AB3000656374696F6E207265667573656400483D |
:10AB40006F737420697320646F776E004E6F20728C |
:10AB50006F75746520746F20686F7374004F706533 |
:10AB6000726174696F6E20616C72656164792069CD |
:10AB70006E2070726F6772657373004F70657261DB |
:10AB800074696F6E206E6F7720696E2070726F67C8 |
:10AB900072657373005374616C65204E4653206672 |
:10ABA000696C652068616E646C65005374727563CE |
:10ABB00074757265206E6565647320636C65616E83 |
:10ABC000696E67004E6F7420612058454E495820C9 |
:10ABD0006E616D656420747970652066696C6500CE |
:10ABE0004E6F2058454E49582073656D6170686FEF |
:10ABF00072657320617661696C61626C650049738E |
:10AC00002061206E616D65642074797065206669CD |
:10AC10006C650052656D6F746520492F4F20657219 |
:10AC2000726F72004469736B2071756F7461206577 |
:10AC300078636565646564004E6F206D6564697551 |
:10AC40006D20666F756E640057726F6E67206D655C |
:0CAC50006469756D207479706500000067 |
:10AC5C000A0D204E6176694374726C205625642E61 |
:10AC6C0025642563000000004C4F472F25303469C4 |
:10AC7C0025303269253032692F47505325303569DC |
:10AC8C002E4B4D4C000000006E6F20464320636F2E |
:10AC9C006D6D756E69636174696F6E2000000000E4 |
:10ACAC006E6F204D4B334D616720636F6D6D756E0C |
:10ACBC0069636174696F6E20000000004643206E6A |
:10ACCC006F7420636F6D70617469626C6520000035 |
:10ACDC004D4B334D6167206E6F7420636F6D7061E7 |
:10ACEC007469626C652000006E6F204750532063BE |
:10ACFC006F6D6D756E69636174696F6E2000000015 |
:10AD0C0062616420636F6D706173732076616C7522 |
:10AD1C00652000005243205369676E616C206C6F94 |
:10AD2C00737420004E6F204572726F7220202020A9 |
:10AD3C002020202020202020202020000D0A2D2D36 |
:10AD4C002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D27 |
:10AD5C002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D17 |
:10AD6C002D2D2D2D2D2D2D2D2D2D2D000A0D20565B |
:10AD7C00657273696F6E20696E666F726D6174694E |
:10AD8C006F6E3A000A0D20466C696768742D437427 |
:10AD9C00726C206E6F7420636F6D70617469626C7D |
:10ADAC00650000000A0D204D4B334D6167206E6F1E |
:10ADBC007420636F6D70617469626C6500000000D3 |
:10ADCC000D0A2D2D2D2D2D2D2D2D2D2D2D2D2D2DEA |
:10ADDC002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D97 |
:10ADEC002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0DA7 |
:10ADFC000A0D0A000A0D436F6D6D756E69636174FF |
:10AE0C00696F6E2D4572726F723A204D4B334D61E6 |
:10AE1C00670A0D000D0A4F70656E696E67206B6DC9 |
:10AE2C006C2D66696C653A20000000000D0A4572B5 |
:10AE3C00726F72206F70656E696E67206B6D6C2D12 |
:10AE4C0066696C653A2000000D0A4572726F7220BB |
:10AE5C004C6F6767696E672047505320646174615B |
:10AE6C000D0A00000D0A436C6F73696E67206B6DE1 |
:10AE7C006C2D66696C650D0A000000000D0A4162BC |
:10AE8C006F72742048616E646C6572000D0A556EA9 |
:10AE9C00646566696E65642048616E646C657200F9 |
:10AEAC000D0A50726566657463682048616E646C47 |
:10AEBC00657200005B25695D000000002B2B2020D3 |
:10AECC004E6176692D4374726C20202B2B00000090 |
:10AEDC00205625642E2564256320000020457272BF |
:10AEEC003A2564002573000028632920427573738A |
:10AEFC002C204275736B6572000000004E6F20476A |
:10AF0C0050532064617461004C6F6E3A20202020F5 |
:10AF1C0020202020202020202020202000000000A5 |
:10AF2C004C61743A2020202020202020202020203A |
:10AF3C002020202000000000416C743A20202020AA |
:10AF4C002020202020202020202020200000000075 |
:10AF5C00536174733A25303264204669783A4E6FE7 |
:10AF6C006E650000536174733A2530326420466973 |
:10AF7C00783A324420200000536174733A25303201 |
:10AF8C0064204669783A334420200000536174737E |
:10AF9C003A25303264204669783A3F3F2020000041 |
:10AFAC004C6F6E3A252B336C642E2530376C642035 |
:10AFBC00646567004C61743A252B336C642E253024 |
:10AFCC00376C642064656700416C743A25346C649A |
:10AFDC002E2530336C64206D0000000053706565C5 |
:10AFEC0064204E3A202020202020202020202020C9 |
:10AFFC0000000000537065656420453A2020202035 |
:10B00C0020202020202020200000000053706565A7 |
:10B01C006420543A20202020202020202020202092 |
:10B02C00000000005370656564204E3A20252B34D7 |
:10B03C006C6420636D2F7300537065656420453A12 |
:10B04C0020252B346C6420636D2F73005370656561 |
:10B05C006420543A20252B346C6420636D2F7300CC |
:10B06C00475053205554432054696D65000000002F |
:10B07C0020202020202020202020202020202020C4 |
:10B08C00202020200000000020204E6F2074696DCD |
:10B09C0065206461746121202020202000000000C4 |
:10B0AC00446174653A20253032692F253032692F7E |
:10B0BC00253034690000000054696D653A20253054 |
:10B0CC0032693A253032693A253032692E253033CF |
:10B0DC00690000004E6176694D6F64653A20253336 |
:10B0EC00690000004720203A253369205020203A7F |
:10B0FC0025336920000000004920203A25336920BF |
:10B10C004420203A25336920000000004143433A93 |
:10B11C00253369205341543A25336920000000003F |
:10B12C00486F6D6520506F736974696F6E00000015 |
:10B13C002020202020202020202020202020202003 |
:10B14C002020202020000000202020204973206E89 |
:10B15C006F74207365742E202020202020000000A6 |
:10B16C004C6F6E3A2025336C642E2530376C64207E |
:10B17C00646567004C61743A2025336C642E25306D |
:10B18C00376C64206465670052432D537469636B9C |
:10B19C00730000004E693A2534692020526F3A251D |
:10B1AC003469200047733A253469202059613A25C7 |
:10B1BC003469200052432D506F74697300000000F5 |
:10B1CC00506F313A2533692020506F323A2533695C |
:10B1DC0020000000506F333A2533692020506F3423 |
:10B1EC003A25336920000000496E744E69636B3A4E |
:10B1FC002020253569000000496E74526F6C6C3A42 |
:10B20C0020202535690000004163634E69636B3A69 |
:10B21C002020253569000000416363526F6C6C3A45 |
:10B22C0020202535690000004779726F4E69636BE9 |
:10B23C003A202025346900004779726F526F6C6C8C |
:10B24C003A202025346900004779726F5961773AAA |
:10B25C00202020253469000052432D4C6576656C06 |
:10B26C003A202020202533690000000055626174CB |
:10B27C003A202020202020202025336900000000C7 |
:10B28C00436F6D7048656164696E673A2025336958 |
:10B29C00000000004779726F48656164696E673A17 |
:10B2AC0020253369000000005550313A25336920C0 |
:10B2BC00205550323A253369200000005550333A5E |
:10B2CC0025336920205550343A253369200000007D |
:10B2DC005550353A25336920205550363A25336977 |
:10B2EC00200000005550373A25336920205550383E |
:10B2FC003A253369200000004D4B334D4147205611 |
:10B30C0025692E25692563004D6167583A2025343F |
:10B31C00692000004D6167593A20253469200000EE |
:10B32C004D61675A3A2025346920000054696D65D7 |
:10B33C007220696E69742E2E2E0000006F6B0A0D40 |
:10B34C00000000000D0A2053504920696E69742ECC |
:10B35C002E2E00006F6B00000A0D204E6F207665BC |
:10B36C007273696F6E20696E666F726D6174696F4E |
:10B37C006E2066726F6D20466C69676874437472D8 |
:10B38C006C2E00000A0D20466C6967687443747259 |
:10B39C006C205625642E25642563000020436F6DB8 |
:10B3AC0070617469626C653A202564000D0A20494D |
:10B3BC00324320696E69742E2E2E00000D0A20492E |
:10B3CC003243206465696E69742E2E2E00000000D5 |
:10B3DC000A0D4E6F2076657273696F6E20696E660A |
:10B3EC006F726D6174696F6E2066726F6D204D4B5C |
:10B3FC00334D61672E0000000A0D204D4B334D611B |
:10B40C0067205625642E2564256300000D0A2055FF |
:10B41C00534220696E69742E2E2E00000D0A2046B0 |
:10B42C004154313620696E69742E2E2E00000000B6 |
:10B43C0053442D4361726420636F756C64206E6F8E |
:10B44C007420626520696E697469616C697A6564DF |
:10B45C002E0000004572726F722072656164696E15 |
:10B46C006720746865204D42522E00004572726F41 |
:10B47C00722072656164696E67207468652056423B |
:10B48C00522E00005642523A20536563746F72205C |
:10B49C0073697A65206E6F7420737570706F727437 |
:10B4AC0065642E005642523A20426164206E756DDE |
:10B4BC00626572206F6620736563746F72732E0001 |
:10B4CC005642523A20506172746974696F6E2069E9 |
:10B4DC007374206E6F742046415431362074797029 |
:10B4EC00652E00004572726F722025303258207222 |
:10B4FC00656164696E6720646174612066726F6D4A |
:10B50C002073642063617264202852313D253032EF |
:10B51C0058292E0D0A0000000D0A204D616E75662B |
:10B52C00616374757265722049443A2025690D0A6D |
:10B53C0000000000204170706C69636174696F6E6B |
:10B54C002049443A2025730D0A0000002050726FE8 |
:10B55C0064756374204E616D653A2025730D0A0085 |
:10B56C002050726F64756374205265762E3A2025D4 |
:10B57C00692E25690D0A00002053657269616C20E3 |
:10B58C004E6F2E3A2000000025303258000000008B |
:10B59C00204D616E756661632E20446174653A209E |
:10B5AC0025692F25690D0A0D0A0000000D0A20538C |
:10B5BC00534320696E69742E2E2E00000D0A205301 |
:10B5CC00444320696E69742E2E2E00004261642063 |
:10B5DC00636D64382052313D253032582E00000006 |
:10B5EC0042616420636D6438205237206368656360 |
:10B5FC006B207061747465726E2E0D0A0000000071 |
:10B60C004361726420697320696E636F6D7061743D |
:10B61C0069626C6520746F20332E33562E0D0A0030 |
:10B62C0042616420636D64353820523120253032FC |
:10B63C00782E00004E6F7420616E2053442D4341D0 |
:10B64C0052442E004361726420697320696E636FEB |
:10B65C006D70617469626C6520746F20332E335683 |
:10B66C002E000000496E6974206572726F722E0094 |
:10B67C004572726F722073657474696E6720626CA8 |
:10B68C006F636B206C656E67746820746F20353146 |
:10B69C00322E00004572726F722072656164696EA1 |
:10B6AC0067204349442E0D0A000000004572726F5A |
:10B6BC00722072656164696E67204353442E0000EA |
:10B6CC006F6B0D0A00000000202053442D434152A3 |
:10B6DC00442056312E7800007265736574207469AD |
:10B6EC006D656F75740000004261642041636D6488 |
:10B6FC0034312052313D253032582E00496E697458 |
:10B70C002074696D656F75742E0000002020534401 |
:10B71C002D434152442056322E30206F72206C61E2 |
:10B72C00746572000D0A202043617061636974793D |
:10B73C00203D202569204D42000000004E6F204323 |
:10B74C0061726420696E20536C6F742E00000000CF |
:10B75C000D0A20534443206465696E69742E2E2EA5 |
:10B76C00000000004572726F72202530325820772D |
:10B77C00726974696E67206461746120746F2073E0 |
:10B78C006420636172642028523D25303258292E82 |
:10B79C000D0A00002573203D2025640A0D000000D1 |
:10B7AC000A0D52656164696E672073657474696E05 |
:10B7BC00672066696C652E2E2E0A0D0073657474F5 |
:10B7CC00696E67312E747874000000004552524F38 |
:10B7DC00523A2046696C65206E6F7420666F756EE8 |
:10B7EC006420210A0D0000003D000000555342204A |
:10B7FC0028256C64293A2025730A0D000D0A205562 |
:10B80C004152543020696E69742E2E2E00000000B7 |
:10B81C000D0A554152543120696E69742E2E2E6FCB |
:10B82C006B0000000D0A20554152543220696E699C |
:10B83C00742E2E2E000000000D0A20554152543259 |
:10B84C00206465696E69742E2E2E00000D0A256C1D |
:10B85C00642E2530376C642C0000000020256C64AD |
:10B86C002E2530376C642C0020256C642E2530334B |
:10B87C006C64000064656661756C742E6B6D6C0095 |
:10B88C004D494B524F4B4F50544552000D0A2047D7 |
:10B89C00505320696E69742E2E2E0000286E696C30 |
:10B8AC0029000000286E756C6C2900000000000057 |
:10B8BC0025302A6400000000252E2A7300000000A9 |
:10B8CC00696E6600494E46006E616E004E414E0038 |
:10B8DC00252A7300252E2A64000000002563252BE1 |
:04B8EC002E32640094 |
:10B8F00048656C6C6F20576F726C6400000000002C |
:10B900000000000000000000000000000000000037 |
:10B910000000000000000000000000000000000027 |
:10B920000000000000000000000000000000000017 |
:10B930000000000000000000000000000000000007 |
:10B940000C0000002000000050000000400000003B |
:10B950006764656766000000050000005061726161 |
:10B960006D657465723120202020202031323334FF |
:10B970003536373839303132333435363738393077 |
:10B980003132333435363738393031320100DEC8A0 |
:10B99000E6506172616D657465723220202020204E |
:10B9A000203132333435363738393031323334356B |
:10B9B000363738393031323334353637383930313B |
:10B9C0003201000000DC506172616D657465723295 |
:10B9D0003220202020203132333435363738393088 |
:10B9E0003132333435363738393031323334353615 |
:10B9F00037383930313201000000DC00BC72000001 |
:10BA0000181101001811010018110100181101008E |
:10BA1000181101001811010018110100181101007E |
:10BA2000181101001811010018110100181101006E |
:10BA3000181101001811010018110100181101005E |
:10BA400040720000181101001811010018110100C6 |
:10BA5000181101001811010018110100181101003E |
:10BA6000181101001811010018110100181101002E |
:10BA70001811010000E100000000080004010000AE |
:10BA80006C7400003C75000068760000847600004D |
:10BA90008876000038770000F8770000787700009B |
:10BAA0009C770000C077000000000000400000000C |
:10BAB00018110100181101001811010018110100DE |
:10BAC00018110100181101001811010018110100CE |
:10BAD0001811010018940100120000002A940100BE |
:10BAE000430000006D940100040000007194010007 |
:10BAF00026000000979401003C000000D394010050 |
:10BB0000160000000000000000000000010000001E |
:10BB100000E100E1FF0000000050005C0164000053 |
:10BB2000E8030000E8030000FFFFFFFF0DC0A0E1F5 |
:10BB300000D82DE904B04CE21523A0E30010A0E3E7 |
:10BB4000041082E50630A0E3003082E50C1082E5A7 |
:10BB50000830A0E3183082E50FE0A0E101F0A0E199 |
:04BB600000A81BE935 |
:10BB640098050004A8B80100B0B80100CC02000494 |
:10BB740080180004E0B80100E8B80100B8B801007A |
:0CBB84004018000400A10100DC020004D5 |
:0CBB9000000000000000000000000000A9 |
:10BB9C00BCB80100C4B8010000B40100CCB801006D |
:10BBAC00D0B80100D4B80100D8B80100DCB801004D |
:10BBBC00A0050004E0020004280300047003000444 |
:04BBCC00E00200048F |
:10BBD0002001000000000000000000000000000044 |
:10BBE00028030004BC050004BC060004BC050004D6 |
:10BBF000BC050004BC050004BC050004EC02000404 |
:10BC0000BC900100C490010000000000CC90010035 |
:10BC10000000000000000000100100000000000013 |
:10BC2000000000000100000070030004BC060004D6 |
:10BC3000BC070004BC060004BC060004BC060004EB |
:10BC4000BC06000434030004BC900100C490010051 |
:10BC500000000000CC900100000000000000000087 |
:10BC600010020000000000000000000002000000C0 |
:10BC700000000000000000000000000000000000C4 |
:10BC80000000000000000000000000007C03000431 |
:10BC9000BC900100C490010000000000CC900100A5 |
:08BCA00000000000000000009C |
:00000001FF |
/trunk/fat16.c |
---|
54,39 → 54,40 |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdio.h> |
#include "91x_lib.h" |
#include "timer.h" |
#include "fat16.h" |
#include "sdc.h" |
#include "uart1.h" |
#include "main.h" |
//________________________________________________________________________________________________________________________________________ |
// Module name: fat16.c |
// Compiler used: avr-gcc 3.4.5 |
// Last Modifikation: 21.04.2008 |
// Version: 1.28 |
// Authors: Stephan Busker |
// Description: Source files for FAT16 implementation with read and write-access using AVR-Mikrocontrollers |
// Copyright (C) 2007 Stephan Busker |
// Last Modifikation: 16.06.2008 |
// Version: 2.00 |
// Authors: Stephan Busker & Gregor Stobrawa |
// Description: Source files for FAT16 implementation with read and write-access |
// Copyright (C) 2008 Stephan Busker & Gregor Stobrawa |
//........................................................................................................................................ |
// Functions: extern u8 InitFat16(void); |
// u8 fopen_(s8 *fname,s8 mode, File *file); |
// void fclose_(File *file); |
// u32 fread_(void *buffer, u32 size, u32 count, File *file); |
// u32 fwrite_(void *buffer, u32 size, u32 count, File *file); |
// s16 fseek_(File *file, s32 offset, s16 origin); |
// s8 fgets_(s8 *string, s16 count, File *file); |
// u8 fputchar_(File *file,s8 c); |
// u8 fputs_(File *file,s8 *string); |
// s8 * fgets(s8 *, s16, File); |
// u8 fexist_(u8*); |
// u8 mkdir__(s8 *name); |
// u8 chdir__(s8 *name); |
// u8 findfirst_(s8 *fname, Find *item, u8 attribute); |
// u8 findnext_(Find *item); |
// u8 fdelete_(s8 *fname) |
// u8 rmdir_(s8 *dname) |
// u16 feof_(File); |
// Functions: extern s16 Fat16_Init(void); |
// extern s16 Fat16_Deinit(void); |
// extern File_t * fopen_(const u8 *filename, const s8 mode); |
// extern s16 fclose_(File_t *File); |
// extern s16 fflush_(File_t *File); |
// extern s16 fseek_(File_t *File, s32 offset, s16 origin); |
// extern s16 fgetc_(File_t *File); |
// extern s16 fputc_(u8 c, File_t *File); |
// extern u32 fread_(void *buffer, u32 size, u32 count, File_t *File); |
// extern u32 fwrite_(void *buffer, u32 size, u32 count, File_t *File); |
// extern s16 fputs_(const u8 *string, File_t *File); |
// extern u8 * fgets_(u8 *string, s16 length, File_t *File); |
//........................................................................................................................................ |
// ext. functions: extern u8 SDC_GetSector (u32,u8 *); |
// extern u8 SDC_PutSector (u32,u8 *); |
// ext. functions: extern SD_Result_t SDC_Init(void;) |
// extern SD_Result_t SDC_Deinit(void); |
// extern SD_Result_t SDC_GetSector (u32,u8 *); |
// extern SD_Result_t SDC_PutSector (u32,u8 *); |
//........................................................................................................................................ |
// |
// URL: www.Mikro-Control.de |
93,1444 → 94,1717 |
// mailto: stephan.busker@mikro-control.de |
//________________________________________________________________________________________________________________________________________ |
/* |
FAT16 Drive Layout: |
Description Offset |
Volume Boot Sector Start of Partition |
Fat Tables Start + # of Reserved Sectors |
Root Directory Entry Start + # of Reserved + (# of Sectors Per FAT * 2) |
Data Area (Starts with Cluster #2) Start + # of Reserved + (# of Sectors Per FAT * 2) + ((Maximum Root Directory Entries * 32) / Bytes per Sector) |
*/ |
//________________________________________________________________________________________________________________________________________ |
// |
// Global variables needed for read- or write-acces to the FAT16- filesystem. |
// |
//________________________________________________________________________________________________________________________________________ |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of an partition entry |
________________________________________________________________________________________________________________________________________ |
u8 SectorsPerCluster = 0; // how many sectors does a cluster contain? |
u8 FatCopies = 0; // Numbers of copies of the FAT |
u16 PossibleRootEntries = 0; // Possible number of entries in the root directory. |
u16 SectorsPerFat = 0; // how many sectors does a fat16 contain? |
u32 ReservedSectors = 0; // Sectors reserved by the filesystem. |
u32 FirstPartitionSector = 0; // Distance in sectors between the first partition and the master bootrecord. |
u32 FileAllocationTable = 0; // pointer to the first FAT |
u32 RootDirectory = 0; // Pointer to the rootdirectory of the first partition. |
u32 FirstDataCluster = 0; // Pointer to the first cluster containing data (cluster0). |
u32 CWD = 0; // Pointer startcluster to the current working directory |
Partition Entry is 16 bytes long |
*/ |
typedef struct |
{ |
u8 PartitionState; // Current State of Partition (00h=Inactive, 80h=Active) |
u8 BeginningHead; // Beginning of Partition - Head |
u16 BeginningCylSec; // Beginning of Partition - Cylinder/Sector (See Below) |
u8 Type; // Type of Partition (See List Below) |
u8 EndHead; // End of Partition - Head |
u16 EndCylSec; // End of Partition - Cylinder/Sector |
u32 NoSectorsBeforePartition; // Number of Sectors between the MBR and the First Sector in the Partition |
u32 NoSectorsPartition ; // Number of Sectors in the Partition |
} __attribute__((packed)) PartitionEntry_t; |
/* |
Coding of Cylinder/Sector words |
struct DirEntry *DirectoryEntry; // Pointer to an entry of the directory. |
struct FatEntry *Fat; // Pointer to an entry of the fat (next clusterposition). |
Cylinder is 10 bits: [7:0] at [15:8] and [9:8] at [7:6] |
Sector is 5 bits: [5:0] at [5:0] |
*/ |
File FilePointer[__MAX_FILES_USED]; // Allocate Memmoryspace for each filepointer used. |
// Partition Types: |
#define PART_TYPE_UNKNOWN 0x00 |
#define PART_TYPE_FAT12 0x01 |
#define PART_TYPE_XENIX 0x02 |
#define PART_TYPE_FAT16_ST_32_MB 0x04 |
#define PART_TYPE_EXTDOS 0x05 |
#define PART_TYPE_FAT16_LT_32_MB 0x06 |
#define PART_TYPE_NTFS 0x07 |
#define PART_TYPE_FAT32 0x0B |
#define PART_TYPE_FAT32LBA 0x0C |
#define PART_TYPE_FAT16LBA 0x0E |
#define PART_TYPE_EXTDOSLBA 0x0F |
#define PART_TYPE_EISA 0x12 |
#define PART_TYPE_ONTRACK 0x33 |
#define PART_TYPE_NOVELL 0x40 |
#define PART_TYPE_DYNAMIC 0x42 |
#define PART_TYPE_PCIX 0x4B |
#define PART_TYPE_LINUX_SWAP 0x82 |
#define PART_TYPE_LINUX_NATIVE 0x83 |
#define PART_TYPE_LINUX_LVM 0x8E |
#define PART_TYPE_PHOENIXSAVE 0xA0 |
#define PART_TYPE_FREEBSD 0xA5 |
#define PART_TYPE_OPENBSD 0xA6 |
#define PART_TYPE_NETNBSD 0xA9 |
#define PART_TYPE_CPM 0xDB |
#define PART_TYPE_DBFS 0xE0 |
#define PART_TYPE_BBT 0xFF |
//________________________________________________________________________________________________________________________________________ |
// Funtion: InitFat16(void); |
// |
// Description: This function reads the Masterbootrecord and finds the position of the Volumebootrecord, the FAT and the Rootdirectory |
// and stores the information in global variables. |
// |
// Returnvalue: The function returns "0" if the filesystem could not be initialized because no partition was found on the volume. |
//________________________________________________________________________________________________________________________________________ |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of the MasterBootRecord |
________________________________________________________________________________________________________________________________________ |
u8 InitFat16(void) |
{ |
u8 retvalue = 0; |
u8 cnt = 0; |
struct VBR_Entry *VBR; // Pointer to the VolumeBootRecord. |
struct MBR_Entry *MBR; // Pointer to the masterbootrecord. |
File *file; |
Master Boot Record is 512 bytes long |
The Master Boot Record is the same for pretty much all Operating Systems. |
It is located on the first Sector of the Hard Drive, at Cylinder 0, Head 0, Sector 1 |
*/ |
typedef struct |
{ |
u8 ExecutableCode[446]; // 446 bytes for machine start code |
PartitionEntry_t PartitionEntry1; // 16 bytes for partition entry 1 |
PartitionEntry_t PartitionEntry2; // 16 bytes for partition entry 2 |
PartitionEntry_t PartitionEntry3; // 16 bytes for partition entry 3 |
PartitionEntry_t PartitionEntry4; // 16 bytes for partition entry 4 |
u16 ExecutableMarker; // BIOS-Signature (0x55 0xAA) |
} __attribute__((packed)) MBR_Entry_t; |
for(cnt=0;cnt<__MAX_FILES_USED;cnt++) |
{ |
FilePointer[cnt].state = _UNUSED; // declare the filepointers as unused. |
} |
file = &FilePointer[0]; |
SerialPutString("\n\rFAT16 init..."); |
while((SDC_Init() != SD_SUCCESS) && (cnt++<100)); |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of the VolumeBootRecord |
________________________________________________________________________________________________________________________________________ |
if(cnt <100) // sdcard initialised succesfully |
{ |
SDC_GetSector((u32)_MBR_SECTOR,file->buffer); // Read the MasterBootRecord from mmc. |
MBR = (struct MBR_Entry *) file->buffer; |
FirstPartitionSector = MBR->PartitionEntry1.NoSectorsBeforePartition; |
if((MBR->PartitionEntry1.Type == _FAT16_32_MB_BIOS_Extension) || |
(MBR->PartitionEntry1.Type == _FAT16_ST_32_MB) || |
(MBR->PartitionEntry1.Type == _FAT16_LT_32_MB)) |
{ |
SDC_GetSector(FirstPartitionSector,file->buffer); // Read the volume bootrecord from mmc. |
VBR = (struct VBR_Entry *) file->buffer; // Enter the VBR using the structure VBR_Entry. |
SectorsPerCluster = VBR->SectorsPerCluster; // Number of sectors per cluster. Depends on the memorysize of the sd-card. |
FatCopies = VBR->NoFATCopies; // Number of fatcopies. |
PossibleRootEntries = VBR->MaxRootEntries; // How many Entries are possible in the rootdirectory (FAT16 allows max. 512 entries). |
SectorsPerFat = VBR->SectorsPerFAT; // The number of sectors per FAT. |
ReservedSectors = VBR->ReservedSectors; // calculate the sectorpositon of the FAT, the Rootdirectory and the first Datacluster. |
The Volume Boot Record is 512 bytes long |
This information is located in the first sector of every partition. |
*/ |
typedef struct |
{ |
u8 JumpCode[3]; // Jump Code + NOP |
s8 OEMName[8]; // OEM Name |
u16 BytesPerSector; // Bytes Per Sector |
u8 SectorsPerCluster; // Sectors Per Cluster |
u16 ReservedSectors; // Reserved Sectors |
u8 NoFATCopies; // Number of Copies of FAT |
u16 MaxRootEntries; // Maximum Root Directory Entries |
u16 NoSectorsInPartSml32MB; // Number of Sectors in Partition Smaller than 32 MB |
u8 MediaDescriptor; // Media Descriptor (0xF8 for Hard Disks) |
u16 SectorsPerFAT; // Sectors Per FAT |
u16 SectorsPerTrack; // Sectors Per Track |
u16 NoHeads; // Number of Heads |
u32 NoHiddenSectors; // Number of Hidden Sectors in Partition |
u32 NoSectors; // Number of Sectors in Partition |
u16 DriveNo; // Logical Drive Number of Partition |
u8 ExtendedSig; // Extended Signature (0x29) |
u32 SerialNo; // Serial Number of the Partition |
s8 VolumeName[11]; // Volume Name of the Partititon |
s8 FATName[8]; // FAT Name (FAT16) |
u8 ExecutableCode[446]; // 446 bytes for machine start code |
u16 ExecutableMarker; // Executable Marker (0x55 0xAA) |
} __attribute__((packed)) VBR_Entry_t; |
FileAllocationTable = (u32)(FirstPartitionSector + (u32)ReservedSectors); // Calculate the position of the FileAllocationTable. |
RootDirectory = (u32)((u32)FileAllocationTable + (u32)((u32)SectorsPerFat*(u32)FatCopies)); // Calculate the position of the Rootdirectory. |
FirstDataCluster = (u32)((u32)RootDirectory + ((u32)(PossibleRootEntries>>4))); // Calculate the position of the first datacluster. |
CWD = RootDirectory; // The actual directory is the rootdirectory. |
retvalue = 1; |
SerialPutString("\n\rfilesystem ok"); |
str_Volume.state = INITIALIZED; |
} |
else |
{ |
str_Volume.state = NOT_INITIALIZED; |
SerialPutString("\n\rfilesystem nok"); |
} |
} |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: File * fopen_(u8*, u8 *); |
// |
// Description: This function looks for the file to be opened in the directory specified by the variable "CWD" of the drive. |
// If the file was found this function returns a filepoiner to the opened file otherwise NULL// |
// |
// Return: Pointer to the opened file or NULL |
// |
//________________________________________________________________________________________________________________________________________ |
File * fopen_(s8 *fname, s8 mode) |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of an directory entry |
________________________________________________________________________________________________________________________________________ |
Directory entry is 32 bytes. |
*/ |
typedef struct |
{ |
File *file; |
file = ReserveFilePointer(); // reserve a filepointer. |
if(file != NULL) // A free filepointer was found. |
{ |
file->mode = mode; // mode of fileoperation (read,write) |
s8 Name[8]; // 8 bytes name, padded with spaces. |
u8 Extension[3]; // 3 bytes extension, padded with spaces. |
u8 Attribute; // attribute of the directory entry (unused,archive,read-only,system,directory,volume) |
u8 Reserved[10]; // reserved bytes within the directory entry. |
u32 DateTime; // date and time of last write access to the file or directory. |
u16 StartCluster; // first cluster of the file or directory. |
u32 Size; // size of the file or directory in bytes. |
} __attribute__((packed)) DirEntry_t; |
if(SeekFileInDirectory(fname, file)) // if file was found |
{ |
SerialPutString("ok"); |
if(mode == 'a') // open existing file for writing (append data at the end of the file) |
{ |
fseek_(file, 0, SEEK_END); // fseek points to the end of the file |
} |
} |
else |
{ |
if((mode == 'a') || (mode == 'w')) // specified file doesn't exist so create new file for writing data. |
{ |
if(CreateFileInDirectory(fname,file)) // Could an entry for the new file in the rootdirectory be created? |
{ |
return(file); |
} |
else |
{ |
FreeFilePointer(file); // free the filepointer. |
file = NULL; |
} |
} |
else // file with mode 'r' not found |
{ |
FreeFilePointer(file); // free the filepointer. |
file = NULL; // file not found |
} |
} |
} |
return(file); |
} |
#define SLOT_EMPTY 0x00 // slot has never been used |
#define SLOT_E5 0x05 // the real value is 0xe5 |
#define SLOT_DELETED 0xE5 // file in this slot deleted |
#define ATTR_NONE 0x00 // normal file |
#define ATTR_READONLY 0x01 // file is readonly |
#define ATTR_HIDDEN 0x02 // file is hidden |
#define ATTR_SYSTEM 0x04 // file is a system file |
#define ATTR_VOLUMELABEL 0x08 // entry is a volume label |
#define ATTR_LONG_FILENAME 0x0F // this is a long filename entry |
#define ATTR_SUBDIRECTORY 0x10 // entry is a directory name |
#define ATTR_ARCHIVE 0x20 // file is new or modified |
//________________________________________________________________________________________________________________________________________ |
// Funtion: fflush_(File *file); |
// |
// Description: This function writes the data already in the buffer but not yet written to the file. |
// |
//________________________________________________________________________________________________________________________________________ |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of an entry within the fileallocationtable. |
________________________________________________________________________________________________________________________________________ |
*/ |
typedef struct |
{ |
u16 NextCluster; // the next cluster of the file. |
} __attribute__((packed)) Fat16Entry_t; |
s16 fflush_(File *file) |
// secial fat entries |
#define FAT16_CLUSTER_FREE 0x0000 |
#define FAT16_CLUSTER_RESERVED 0x0001 |
#define FAT16_CLUSTER_USED_MIN 0x0002 |
#define FAT16_CLUSTER_USED_MAX 0xFFEF |
#define FAT16_CLUSTER_ROOTDIR_MIN 0xFFF0 |
#define FAT16_CLUSTER_ROOTDIR_MAX 0xFFF6 |
#define FAT16_CLUSTER_BAD 0xFFF7 |
#define FAT16_CLUSTER_LAST_MIN 0xFFF8 |
#define FAT16_CLUSTER_LAST_MAX 0xFFFF |
/*****************************************************************************************************************************************/ |
/* */ |
/* Global variables needed for read- or write-acces to the FAT16- filesystem. */ |
/* */ |
/*****************************************************************************************************************************************/ |
#define MBR_SECTOR 0x00 // the masterboot record is located in sector 0. |
#define DIRENTRY_SIZE 32 //bytes |
#define DIRENTRIES_PER_SECTOR BYTES_PER_SECTOR/DIRENTRY_SIZE |
#define FAT16_BYTES 2 |
#define FAT16_ENTRIES_PER_SECTOR BYTES_PER_SECTOR/FAT16_BYTES |
#define FSTATE_UNUSED 0 |
#define FSTATE_USED 1 |
typedef struct |
{ |
u16 time=0; |
u16 date=0; |
u8 IsValid; // 0 means invalid, else valid |
u8 SectorsPerCluster; // how many sectors does a cluster contain? |
u8 FatCopies; // Numbers of copies of the FAT |
u16 MaxRootEntries; // Possible number of entries in the root directory. |
u16 SectorsPerFat; // how many sectors does a fat16 contain? |
u32 FirstFatSector; // sector of the start of the fat |
u32 FirstRootDirSector; // sector of the rootdirectory |
u32 FirstDataSector; // sector of the first cluster containing data (cluster2). |
u32 LastDataSector; // the last data sector of the partition |
} Partition_t; |
if(file && ((file->mode =='a') || (file->mode =='w'))) |
{ |
if(file->byte_index > 0) // has data been added to the file? |
{ |
SDC_PutSector((u32)(file->cluster_pointer + file->sector_index),file->buffer);// save the data still in the buffer |
} |
SDC_GetSector((u32)file->directory_sector,file->buffer); // read the directoryentry for this file. |
DirectoryEntry = (struct DirEntry *)file->buffer; |
DirectoryEntry[file->directory_index].size = (u32) file->filesize; |
DirectoryEntry[file->directory_index].time = (u16) time; |
DirectoryEntry[file->directory_index].date = (u16) date; |
SDC_PutSector((u32)file->directory_sector,file->buffer); |
} |
return(0); |
} |
Partition_t Partition; // Structure holds partition information |
//________________________________________________________________________________________________________________________________________ |
// Funtion: fclose_(File *file); |
// |
// Description: This function closes the open file by writing the remaining data from the buffer to the device and entering the filesize |
// in the directory entry. |
//________________________________________________________________________________________________________________________________________ |
File_t FilePointer[FILE_MAX_OPEN]; // Allocate Memmoryspace for each filepointer used. |
void fclose_(File *file) |
/****************************************************************************************************************************************/ |
/* Function: FileDateTime(DateTime_t *); */ |
/* */ |
/* Description: This function calculates the DOS date time from a pointer to a time structure. */ |
/* */ |
/* Returnvalue: Returns the DOS date time. */ |
/****************************************************************************************************************************************/ |
u32 FileDateTime(DateTime_t * pTimeStruct) |
{ |
u32 datetime = 0; |
if((pTimeStruct == 0) || !(pTimeStruct->Valid)) return datetime; |
if(file != NULL) |
{ |
fflush_(file); // save buffered data to the disk |
} |
FreeFilePointer(file); // and free the filepointer. |
datetime |= (0x0000007FL & (u32)(pTimeStruct->Year - 1980))<<25; // set year |
datetime |= (0x0000000FL & (u32)(pTimeStruct->Month))<<21; // set month |
datetime |= (0x0000001FL & (u32)(pTimeStruct->Day))<<16; |
datetime |= (0x0000001FL & (u32)(pTimeStruct->Hour))<<11; |
datetime |= (0x0000003FL & (u32)(pTimeStruct->Min))<<5; |
datetime |= (0x0000001FL & (u32)(pTimeStruct->Sec/2)); |
return datetime; |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u32 fread_(void *buffer, s32 size, s32 count, File *file); |
// |
// Description: This function reads count objects of the specified size from the actual position of the file to the specified buffer. |
// |
// Returnvalue: The function returns the number of objects (not bytes) read from the file. |
// |
//________________________________________________________________________________________________________________________________________ |
u32 fread_(void *buffer, u32 size, u32 count, File *file) |
/****************************************************************************************************************************************/ |
/* Function: LockFilePointer(); */ |
/* */ |
/* Description: This function trys to lock a free file pointer. */ |
/* */ |
/* Returnvalue: Returns the Filepointer on success or 0. */ |
/****************************************************************************************************************************************/ |
File_t * LockFilePointer(void) |
{ |
u32 object_cnt = 0; // count the number of objects read from the file. |
u32 object_size = 0; // count the number of bytes read from the actual object. |
u8 *buff_pnt = 0; // a pointer to the actual bufferposition. |
u8 success = 1; // no error occured during read operation to the file. |
buff_pnt = (u8 *) buffer; // cast the void pointer to an u8 * |
while((object_cnt < count) && success) |
u8 i; |
File_t * File = 0; |
for(i = 0; i < FILE_MAX_OPEN; i++) |
{ |
object_size = size; |
while((size > 0) && success) |
if(FilePointer[i].State == FSTATE_UNUSED) // found an unused one |
{ |
*buff_pnt = (u8) fgetchar_(file); // read a byte from the buffer to the opened file. |
buff_pnt++; |
size--; |
File = &FilePointer[i]; // set pointer to that entry |
FilePointer[i].State = FSTATE_USED; // mark it as used |
break; |
} |
if(success) object_cnt++; |
} |
return(object_cnt); // return the number of objects succesfully read from the file |
} |
return(File); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u32 fwrite_(void *buffer, s32 size, s32 count, File *file); |
// |
// Description: This function writes count objects of the specified size from the buffer to the actual positon within the file. |
// |
// Returnvalue: The function returns the number of objects (not bytes) written to the file. |
// |
//________________________________________________________________________________________________________________________________________ |
u32 fwrite_(void *buffer, u32 size, u32 count, File *file) |
/****************************************************************************************************************************************/ |
/* Function: UnlockFilePointer(file_t *); */ |
/* */ |
/* Description: This function trys to unlock a file pointer. */ |
/* */ |
/* Returnvalue: Returns 1 if file pointer was freed else 0. */ |
/****************************************************************************************************************************************/ |
u8 UnlockFilePointer(File_t * file) |
{ |
u32 object_cnt = 0; // count the number of objects written to the file. |
u32 object_size = 0; // count the number of bytes written from the actual object. |
u8 *buff_pnt = 0; // a pointer to the actual bufferposition. |
u8 success = 1; // no error occured during write operation to the file. |
buff_pnt = (u8 *) buffer; // cast the void pointer to an u8 * |
while((object_cnt < count) && success) |
u8 cnt; |
if(file == NULL) return(0); |
for(cnt = 0; cnt < FILE_MAX_OPEN; cnt++) |
{ |
object_size = size; |
while((size > 0) && success) |
if(&FilePointer[cnt] == file) // filepointer to be freed found? |
{ |
success = fputchar_(file, *buff_pnt); // write a byte from the buffer to the opened file. |
buff_pnt++; |
size--; |
file->State = FSTATE_UNUSED; |
file->FirstSectorOfFirstCluster = 0; // Sectorpointer to the first sector of the first datacluster of the file. |
file->FirstSectorOfCurrCluster = 0; |
file->SectorOfCurrCluster = 0; // Pointer to the cluster which is edited at the moment. |
file->SectorOfCurrCluster = 0; // The sector which is edited at the moment (cluster_pointer + sector_index). |
file->ByteOfCurrSector = 0; // The bytelocation within the current sector (cluster_pointer + sector_index + byte_index). |
file->Mode = 0; // mode of fileoperation (read,write) |
file->Size = 0; // the size of the opend file in bytes. |
file->Position = 0; // pointer to a character within the file 0 < fileposition < filesize |
file->SectorInCache = 0; // the last sector read, wich is still in the sectorbuffer. |
file->DirectorySector = 0; // the sectorposition where the directoryentry has been made. |
file->DirectoryIndex = 0; // the index to the directoryentry within the specified sector. |
file->Attribute = 0; // the attribute of the file opened. |
file = NULL; |
return(1); |
} |
if(success) object_cnt++; |
} |
return(object_cnt); // return the number of objects succesfully written to the file |
} // (!!!!! objects and not bytes !!!!) |
} |
return(0); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: s16 fseek_(File *, s32, s16) |
// |
// Description: This function sets the pointer of the stream relative to the position |
// specified by origin (SEEK_SET, SEEK_CUR, SEEK_END). |
// |
//________________________________________________________________________________________________________________________________________ |
/****************************************************************************************************************************************/ |
/* Function: SeperateDirName(s8*, s8*); */ |
/* */ |
/* Description: This function seperates the first dirname from filepath and brings them */ |
/* into the needed format ('test.txt' -> 'TEST TXT') */ |
/* The subpath is the pointer to the remaining substring if the filepath */ |
/* */ |
/* Returnvalue: Return NULL on error or pointer to subpath */ |
/****************************************************************************************************************************************/ |
s8* SeperateDirName(const s8 *filepath, s8 *dirname) |
{ |
s8* subpath = NULL; |
u8 readpointer = 0; |
u8 writepointer = 0; |
s16 fseek_(File *file, s32 offset, s16 origin) |
{ |
s32 fposition = 0; |
s16 retvalue = 1; |
u32 temp = 0; |
//...................................................... |
if(origin == SEEK_SET) // Fileposition relative to the beginning of the file. |
// search subpath from beginning of filepath |
subpath = NULL; |
readpointer = 0; |
if(filepath[0] == '/') readpointer = 1; // ignore first '/' |
while(subpath == NULL) // search the filepath until a subpath was found. |
{ |
fposition = 0; |
} |
//...................................................... |
else if(origin == SEEK_END) // Fileposition relative to the end of the file. |
{ |
fposition = (s32) file->filesize; |
} |
//...................................................... |
else if(origin == SEEK_CUR) // Fileposition relative to the current position of the file. |
{ |
fposition = file->fileposition; |
} |
if(((filepath[readpointer] == 0) || (filepath[readpointer] == '/'))) // if '/' found or end of filepath reached |
{ |
subpath = (s8*)&filepath[readpointer]; // store the position of the first "/" found after the beginning of the filenpath |
} |
readpointer++; |
} |
fposition += offset; |
if((fposition >= 0) && (fposition <= (s32)file->filesize)) // is the pointer still within the file? |
// clear dirname with spaces |
dirname[11] = 0; // terminate dirname |
for(writepointer = 0; writepointer < 11; writepointer++) dirname[writepointer] = ' '; |
writepointer = 0; |
// start seperating the dirname from the filepath. |
readpointer = 0; |
if(filepath[0] == '/') readpointer = 1; // ignore first '/' |
while( &filepath[readpointer] < subpath) |
{ |
retvalue = 0; |
file->sector_index = 0; |
file->byte_index = 0; |
file->fileposition = 0; |
file->cluster_pointer = file->start_cluster; |
while(file->fileposition < fposition) |
if(writepointer >= 11) return(NULL); // dirname to long |
if(filepath[readpointer] == '.') // seperating dirname and extension. |
{ |
file->fileposition++; |
if(file->byte_index < 511) |
if(writepointer <= 8) |
{ |
file->byte_index++; |
readpointer++; // next character in filename |
writepointer = 8; // jump to start of extension |
} |
else return(NULL); // dirbasename to long |
} |
else |
{ |
if((0x60 < filepath[readpointer]) && (filepath[readpointer] < 0x7B)) |
{ |
dirname[writepointer] = (filepath[readpointer] - 0x20); // all characters must be upper case. |
} |
else |
{ |
file->byte_index=0; // reading at the beginning of new sector. |
file->sector_index++; // continue reading in next sector |
if(file->sector_index >= SectorsPerCluster) // When end of cluster is reached, the next datacluster has to be searched in the FAT. |
{ |
if(file->fileposition < fposition) |
{ |
file->sector_index = 0; // start reading new cluster at first sector of the cluster. |
GetNextCluster(file); // Sets the clusterpointer of the file to the next datacluster. |
} |
} |
dirname[writepointer] = filepath[readpointer]; |
} |
readpointer++; |
writepointer++; |
} |
if(file->byte_index) |
{ |
temp = (u32)((u32)file->cluster_pointer + (u32)file->sector_index); |
SDC_GetSector((u32)temp,file->buffer); // FileBuffer will be written at once at the end of the cluster and has to be updated. |
} |
} |
return(retvalue); |
} |
return(subpath); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: fgetchar_(File *file); |
// |
// Description: This function reads and returns one character from the specified file. |
// |
// Returnvalue: The function returns the character read from the specified memorylocation as u8 casted to s16 or EOF. |
//________________________________________________________________________________________________________________________________________ |
s16 fgetchar_(File *file) |
{ |
s16 c = EOF; |
u32 temp1; |
if(((file->fileposition)+1) < file->filesize) // wen the end of the file is not reached, get the next character. |
/**************************************************************************************************************************************+*/ |
/* Function: Fat16ClusterToSector( u16 cluster); */ |
/* */ |
/* Description: This function converts a cluster number given by the fat to the corresponding */ |
/* sector that points to the start of the data area that is represented by the cluster number. */ |
/* */ |
/* Returnvalue: The sector number with the data area of the given cluster */ |
/****************************************************************************************************************************************/ |
u32 Fat16ClusterToSector(u16 cluster) |
{ |
if(!Partition.IsValid) return 0; |
if (cluster < 2) cluster = 2; // the 0. and 1. cluster in the fat are used for the media descriptor |
return ( (cluster - 2) * Partition.SectorsPerCluster) + Partition.FirstDataSector; // the first data sector is represented by the 2nd cluster |
} |
/****************************************************************************************************************************************/ |
/* Function: SectorToFat16Cluster( u32 sector); */ |
/* */ |
/* Description: This function converts a given sector number given to the corresponding */ |
/* cluster number in the fat that represents this data area. */ |
/* */ |
/* Returnvalue: The cluster number representing the data area of the sector. */ |
/****************************************************************************************************************************************/ |
u16 SectorToFat16Cluster(u32 sector) |
{ |
if(!Partition.IsValid) return 0; |
return ((u16)((sector - Partition.FirstDataSector) / Partition.SectorsPerCluster) + 2); |
} |
/****************************************************************************************************************************************/ |
/* Function: Fat16_Deinit(void); */ |
/* */ |
/* Description: This function uninitializes the fat 16 api */ |
/* */ |
/* Returnvalue: The function returns "0" on success */ |
/****************************************************************************************************************************************/ |
u8 Fat16_Deinit(void) |
{ |
s16 returnvalue = 0; |
u8 cnt; |
// declare the filepointers as unused. |
for(cnt = 0; cnt < FILE_MAX_OPEN; cnt++) |
{ |
temp1 = (u32)file->cluster_pointer; // calculate the adress of the next character to be read. |
temp1 += (u32)file->sector_index; |
if(file->sector_in_buffer != temp1) // Has the content of the buffer been modified and has to be updated? |
if(FilePointer[cnt].State == FSTATE_USED) |
{ |
SDC_GetSector((u32)temp1,file->buffer); // Read the calculated cluster. |
file->sector_in_buffer = (u32)temp1; |
} |
c = (s16) file->buffer[file->byte_index]; |
file->fileposition++; |
if(file->byte_index < 511) // continue reading from this sector until the end of the sector is reached. |
{ |
file->byte_index++; |
returnvalue += fclose_(&FilePointer[cnt]); // try to close open file pointers |
} |
else // has the end of an sector been reached-> |
{ |
file->byte_index=0; // continue reading at the beginning - |
file->sector_index++; // of new sector. |
if(file->sector_index >= SectorsPerCluster) // When the end of an cluster is reached, the next datacluster has to be searched in the FAT. |
{ |
file->sector_index = 0; // start reading new cluster at first sector of the cluster. |
GetNextCluster(file); // Sets the clusterpointer of the file to the next datacluster. |
} |
} |
} |
return(c); |
SDC_Deinit(); // uninitialize interface to sd-card |
Partition.IsValid = 0; // mark data in partition structure as invalid |
return(returnvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: fputchar_(File *file, s8 *); |
// |
// Description: This function writes a byte to the specified file and takes care of writing the necessary FAT- Entries. |
// |
// Returnvalue: The function returns a value of 0 if the data could not be written. |
//________________________________________________________________________________________________________________________________________ |
/****************************************************************************************************************************************/ |
/* Function: Fat16_Init(void); */ |
/* */ |
/* Description: This function reads the Masterbootrecord and finds the position of the Volumebootrecord, the FAT and the Rootdir */ |
/* and stores the information in global variables. */ |
/* */ |
/* Returnvalue: The function returns "0" if the filesystem is initialized. */ |
/****************************************************************************************************************************************/ |
u8 Fat16_Init(void) |
{ |
u8 cnt = 0; |
u32 partitionfirstsector; |
VBR_Entry_t *VBR; |
MBR_Entry_t *MBR; |
File_t *file; |
u8 result = 0; |
u8 fputchar_(File *file,s8 c) |
{ |
u32 ul_temp = 0; |
u8 retvalue = 1; |
if(file->sector_index >= SectorsPerCluster) // if end of the cluster is reached, find next free cluster |
SerialPutString("\r\n FAT16 init..."); |
Partition.IsValid = 0; |
// declare the filepointers as unused. |
for(cnt = 0; cnt < FILE_MAX_OPEN; cnt++) |
{ |
file->sector_index = 0; |
if(!AppendCluster(file)) retvalue = 0; // append a new and free cluster at the end of the file. |
FilePointer[cnt].State = FSTATE_UNUSED; |
} |
// set current file pinter to first position in list |
file = &FilePointer[0]; |
// try to initialise the sd-card. |
if(SD_SUCCESS != SDC_Init()) |
{ |
SerialPutString("SD-Card could not be initialized."); |
result = 1; |
goto end; |
} |
file->buffer[file->byte_index] = c; // write databyte into the buffer. The byte will be written to the device at once |
if(file->filesize == file->fileposition) file->filesize++; // a character has been written to the file so the size is inkremented but only when the character has been added at the end of the file. |
file->fileposition++; // the actual positon within the file. |
// if the buffer contains the complete sectordata. |
if(file->byte_index < 511) // if the end of this sector is not reached yet |
// SD-Card is initialized successfully |
if(SD_SUCCESS != SDC_GetSector((u32)MBR_SECTOR,file->Cache)) // Read the MasterBootRecord |
{ |
file->byte_index++; // the next byte will be written to the next byteposition in this sector. |
SerialPutString("Error reading the MBR."); |
result = 2; |
goto end; |
} |
else // otherwise the data in the sectorbuffer will be written to the device and the next sector will be selected. |
MBR = (MBR_Entry_t *)file->Cache; // Enter the MBR using the structure MBR_Entry_t. |
if((MBR->PartitionEntry1.Type == PART_TYPE_FAT16_ST_32_MB) || |
(MBR->PartitionEntry1.Type == PART_TYPE_FAT16_LT_32_MB) || |
(MBR->PartitionEntry1.Type == PART_TYPE_FAT16LBA)) |
{ |
ul_temp = (u32)file->cluster_pointer; |
ul_temp += (u32)file->sector_index; |
SDC_PutSector((u32)ul_temp,file->buffer); |
file->byte_index=0; // and the next byte will be written at the beginning of this new sector. |
file->sector_index++; |
if(file->sector_index >= SectorsPerCluster) // if end of the cluster is reached, find next free cluster |
// get sector offset 1st partition |
partitionfirstsector = MBR->PartitionEntry1.NoSectorsBeforePartition; |
// Start of Partition is the Volume Boot Sector |
if(SD_SUCCESS != SDC_GetSector(partitionfirstsector,file->Cache)) // Read the volume boot record |
{ |
file->sector_index = 0; |
if(!AppendCluster(file)) retvalue = 0; // append a new and free cluster at the end of the file. |
} |
SerialPutString("Error reading the VBR."); |
result = 3; |
goto end; |
} |
} |
return(retvalue); |
else // maybe the medium has no partition assuming sector 0 is the vbr |
{ |
partitionfirstsector = 0; |
} |
VBR = (VBR_Entry_t *) file->Cache; // Enter the VBR using the structure VBR_Entry_t. |
if(VBR->BytesPerSector != BYTES_PER_SECTOR) |
{ |
SerialPutString("VBR: Sector size not supported."); |
result = 4; |
goto end; |
} |
Partition.SectorsPerCluster = VBR->SectorsPerCluster; // Number of sectors per cluster. Depends on the memorysize of the sd-card. |
Partition.FatCopies = VBR->NoFATCopies; // Number of fatcopies. |
Partition.MaxRootEntries = VBR->MaxRootEntries; // How many Entries are possible in the rootdirectory (FAT16 allows max. 512 entries). |
Partition.SectorsPerFat = VBR->SectorsPerFAT; // The number of sectors per FAT. |
/* Calculate the sectorpositon of the FAT, the Rootdirectory and the first Datacluster. */ |
// Calculate the position of the FileAllocationTable: |
// Start + # of Reserved Sectors |
Partition.FirstFatSector = (u32)(partitionfirstsector + (u32)(VBR->ReservedSectors)); |
// Calculate the position of the Rootdirectory: |
// Start + # of Reserved Sectors + (# of Sectors Per FAT * # of FAT Copies) |
Partition.FirstRootDirSector = Partition.FirstFatSector + (u32)((u32)Partition.SectorsPerFat*(u32)Partition.FatCopies); |
// Calculate the position of the first datacluster: |
// Start + # of Reserved + (# of Sectors Per FAT * # of FAT Copies) + ((Maximum Root Directory Entries * 32) / Bytes per Sector) |
Partition.FirstDataSector = Partition.FirstRootDirSector + (u32)(Partition.MaxRootEntries>>4); // assuming 512 Byte Per Sector |
// Calculate the last data sector |
if(VBR->NoSectors == 0) |
{ |
SerialPutString("VBR: Bad number of sectors."); |
result = 5; |
goto end; |
} |
Partition.LastDataSector = Partition.FirstDataSector + VBR->NoSectors - 1; |
// check for FAT16 in VBR of first partition |
if(!((VBR->FATName[0]=='F') && (VBR->FATName[1]=='A') && (VBR->FATName[2]=='T') && (VBR->FATName[3]=='1')&&(VBR->FATName[4]=='6'))) |
{ |
SerialPutString("VBR: Partition ist not FAT16 type."); |
result = 6; |
goto end; |
} |
Partition.IsValid = 1; // mark data in partition structure as valid |
result = 0; |
end: |
if(result != 0) Fat16_Deinit(); |
else SerialPutString("ok"); |
return(result); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: fputs_(File *file, s8 *string); |
// |
// Description: This function writes a zero terminated string to the specified file. |
// |
//________________________________________________________________________________________________________________________________________ |
u8 fputs_(File *file,s8 * string) |
/****************************************************************************************************************************************/ |
/* Function: ClearCurrCluster(File_t*); */ |
/* */ |
/* Description: This function fills the current cluster with 0. */ |
/* */ |
/* Returnvalue: The function returns 1 on success else 0. */ |
/****************************************************************************************************************************************/ |
u8 ClearCurrCluster(File_t * file) |
{ |
u8 i=0; |
u8 retvalue = 1; |
u32 i; |
while(string[i] != 0) |
if((!Partition.IsValid) || (file == NULL)) return(0); |
for(i = 0; i < BYTES_PER_SECTOR; i++) file->Cache[i] = 0; // clear file cache |
for(i = 0; i < Partition.SectorsPerCluster; i++) |
{ |
fputchar_(file,string[i]); |
i++; |
file->SectorInCache = file->FirstSectorOfCurrCluster + i; |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) |
{ |
Fat16_Deinit(); |
retvalue = 0; |
} |
} |
return(0); |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: s8 * fgets_(s8 *string, s16 count, File *file) |
// |
// Description: This function reads a string from the file to the specifies string until EOF or end of line was detected.. |
// |
// Returnvalue: A pointer to the string or NULL if EOF was read from the file with no other characters before. |
//________________________________________________________________________________________________________________________________________ |
s8 * fgets_(s8 *string, s16 count, File *file) |
/*****************************************************************************************************************************************/ |
/* Function: GetNextCluster(File_t* ); */ |
/* */ |
/* Description: This function finds the next datacluster of the file specified with File *File. */ |
/* */ |
/* Returnvalue: The function returns the next cluster or 0 if the last cluster has already reached. */ |
/*****************************************************************************************************************************************/ |
u16 GetNextCluster(File_t * file) |
{ |
s16 buff_pnt = 0; |
s16 buff_tmp = 0; |
s8 *retvalue = 0; |
u16 cluster = 0; |
u32 fat_byte_offset, sector, byte; |
Fat16Entry_t * fat; |
retvalue = string; |
while(count > 1) // read the count-1 characters from the file to the string. |
if((!Partition.IsValid) || (file == NULL)) return(cluster); |
// if sector is within the data area |
if((Partition.FirstDataSector <= file->FirstSectorOfCurrCluster)&& (file->FirstSectorOfCurrCluster <= Partition.LastDataSector)) |
{ |
buff_tmp = fgetchar_(file); // read a character from the opened file. |
if(buff_tmp == EOF) // is the end of the file reached, terminate the string with zero. |
// determine current file cluster |
cluster = SectorToFat16Cluster(file->FirstSectorOfCurrCluster); |
// calculate byte offset in the fat for corresponding entry |
fat_byte_offset = ((u32)cluster)<<1; // two FAT bytes (16 bits) for every cluster |
// calculate the sector that contains the current cluster within the fat |
sector = Partition.FirstFatSector + ( fat_byte_offset / BYTES_PER_SECTOR); |
// calculate byte offset of the current cluster within that fat sector |
byte = fat_byte_offset % BYTES_PER_SECTOR; |
// read this sector to the file cache |
if(file->SectorInCache != sector) |
{ |
if(buff_pnt != 0) // are there characters within the string? |
file->SectorInCache = sector; // update sector stored in buffer |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache)) // read sector from sd-card |
{ |
break; |
} |
else |
{ |
retvalue = NULL; // first character read was EOF -> return(NULL); |
break; |
} |
} |
else if(buff_tmp == 0x0A) // lf detected. |
{ |
string[buff_pnt] = (s8) buff_tmp; // add lf to the string. |
buff_pnt++; |
break; |
Fat16_Deinit(); |
return (cluster); |
} |
} |
// read the next cluster from cache |
fat = (Fat16Entry_t *)(&(file->Cache[byte])); |
cluster = fat->NextCluster; |
// if last cluster fat entry |
if(FAT16_CLUSTER_LAST_MIN <= cluster) |
{ |
cluster = 0; |
} |
else |
{ |
string[buff_pnt] = (s8) buff_tmp; |
count--; |
buff_pnt++; |
file->FirstSectorOfCurrCluster = Fat16ClusterToSector(cluster); |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
} |
} |
string[buff_pnt] = 0; // terminate string with zero |
return(string); |
} |
return(cluster); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 fexist_(u8*); |
// |
// Description: This function searches the specified file and returns 0 if the file was not found. |
// |
// |
// Return: 0 = file does not exist |
// 1 = file exists |
//________________________________________________________________________________________________________________________________________ |
u8 fexist_(s8 *fname) |
/****************************************************************************************************************************************/ |
/* Function: FindNextFreeCluster(File_t *); */ |
/* */ |
/* Description: This function looks in the fat to find the next free cluster */ |
/* */ |
/* Returnvalue: The function returns the cluster number of the next free cluster found within the fat. */ |
/****************************************************************************************************************************************/ |
u16 FindNextFreeCluster(File_t *file) |
{ |
File *file; |
u32 fat_sector; // current sector within the fat relative to the first sector of the fat. |
u32 curr_sector; // current sector |
u16 fat_entry; // index to an fatentry within the actual sector (256 fatentries are possible within one sector). |
u16 free_cluster = 0; // next free cluster number. |
Fat16Entry_t * fat; |
if((!Partition.IsValid) || (file == NULL)) return(0); |
file = fopen_(fname,'r'); // try to open the specified file. |
if(file != NULL) |
// start searching for an empty cluster at the beginning of the fat. |
fat_sector = 0; |
do |
{ |
FreeFilePointer(file); // Free the filepoint // free the filepointer |
return(1); // file was found so return(1); |
} |
else |
{ |
return(0); // file not found return(0); |
} |
curr_sector = Partition.FirstFatSector + fat_sector; // calculate sector to read |
file->SectorInCache = curr_sector; // upate the sector number of file cache. |
if( SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache)) // read sector of fat from sd-card. |
{ |
Fat16_Deinit(); |
return(free_cluster); |
} |
fat = (Fat16Entry_t *)file->Cache; // set fat pointer to file cache |
for(fat_entry = 0; fat_entry < FAT16_ENTRIES_PER_SECTOR; fat_entry++) // look for an free cluster at all entries in this sector of the fat. |
{ |
if(fat[fat_entry].NextCluster == FAT16_CLUSTER_FREE) // empty cluster found!! |
{ |
fat[fat_entry].NextCluster = FAT16_CLUSTER_LAST_MAX; // mark this fat-entry as used |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) // and save the sector at the sd-card. |
{ |
Fat16_Deinit(); |
return(free_cluster); |
} |
free_cluster = (u16)(fat_sector * FAT16_ENTRIES_PER_SECTOR + (u32)fat_entry); |
fat_entry = FAT16_ENTRIES_PER_SECTOR; // terminate the search for a free cluster in this sector. |
} |
} |
fat_sector++; // continue the search in next fat sector |
// repeat until the end of the fat is reached and no free cluster has been found so far |
}while((fat_sector < Partition.SectorsPerFat) && (!free_cluster)); |
return(free_cluster); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: GetNextCluster(File *file); |
// |
// Description: This function finds the next datacluster of the file specified with File *file. |
// |
// Returnvalue: The function returns "0" if the last cluster has already been reached. |
//________________________________________________________________________________________________________________________________________ |
u16 GetNextCluster(File *file) |
/****************************************************************************************************************************************************/ |
/* Function: s16 fseek_(File_t *, s32 *, u8) */ |
/* */ |
/* Description: This function sets the pointer of the stream relative to the position */ |
/* specified by origin (SEEK_SET, SEEK_CUR, SEEK_END) */ |
/* Returnvalue: Is 1 if seek was successful */ |
/****************************************************************************************************************************************************/ |
s16 fseek_(File_t *file, s32 offset, s16 origin) |
{ |
u32 fat_pointer = 0; |
u32 fat_sector_offset = 0; |
u32 ul_tmp = 0; |
u8 retvalue = 0; // no new cluster found yet. |
s32 fposition = 0; |
s16 retvalue = 1; |
if((file->cluster_pointer >= RootDirectory) && (file->cluster_pointer < (RootDirectory + 31))) |
{ // Is the next cluster searched within the rootdirectory and available? |
file->cluster_pointer++; // the rootdirectory is a linear adress space of 32 clusters. |
retvalue = 1; // and the next cluster has been found. |
if((!Partition.IsValid) || (file == NULL)) return(0); |
switch(origin) |
{ |
case SEEK_SET: // Fileposition relative to the beginning of the file. |
fposition = 0; |
break; |
case SEEK_END: // Fileposition relative to the end of the file. |
fposition = (s32)file->Size; |
break; |
case SEEK_CUR: // Fileposition relative to the current position of the file. |
default: |
fposition = file->Position; |
break; |
} |
else if(file->cluster_pointer > (RootDirectory + 31)) // The specified cluster is within the FAT. |
fposition += offset; |
if((fposition >= 0) && (fposition <= (s32)file->Size)) // is the pointer still within the file? |
{ |
fat_sector_offset = ((file->cluster_pointer) - (FirstDataCluster)); // Calculate index of actual cluster within the FAT. |
fat_sector_offset /= SectorsPerCluster; // calculate the index of the actual sector within the FAT. |
fat_sector_offset += 2; // In Fat16 clusterpositions have an offset of two. |
fat_pointer = (fat_sector_offset%0x100); // Calculate the sector within the cluster. |
fat_sector_offset = (fat_sector_offset>>8); // and the position within the sector. |
// reset file position to start of the file |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
file->Position = 0; |
SDC_GetSector((u32)(FileAllocationTable + fat_sector_offset),file->buffer); |
file->sector_in_buffer = (FileAllocationTable + fat_sector_offset); // Mark that new sector has been read. |
ul_tmp = (u32)file->buffer[((fat_pointer << 1)+1)]; // Read next sector information from calculated clusterposition. |
ul_tmp = (ul_tmp << 8); |
ul_tmp |= (u32)file->buffer[(fat_pointer << 1)]; |
ul_tmp -=2; // next datacluster is clusterposition in fat - 2. |
ul_tmp *= SectorsPerCluster; // calculate sectorposition of new cluster |
ul_tmp += FirstDataCluster; // in relation to first datacluster of the disk. |
if(ul_tmp < 0xfff7) // has a new cluster been read or was the end of the fat reached? |
while(file->Position < fposition) // repeat until the current position is less than target |
{ |
file->cluster_pointer = (u32) ul_tmp; // continue reading the file at the beginning of new datacluster. |
retvalue = 1; // a new cluster was found. |
file->Position++; // increment file position |
file->ByteOfCurrSector++; // next byte in current sector |
if(file->ByteOfCurrSector >= BYTES_PER_SECTOR) |
{ |
file->ByteOfCurrSector = 0; // reading at the beginning of new sector. |
file->SectorOfCurrCluster++; // continue reading in next sector |
if(file->SectorOfCurrCluster >= Partition.SectorsPerCluster) // if end of cluster is reached, the next datacluster has to be searched in the FAT. |
{ |
if(GetNextCluster(file)) // Sets the clusterpointer of the file to the next datacluster. |
{ |
file->SectorOfCurrCluster = 0; |
} |
else // the last cluster was allready reached |
{ |
file->SectorOfCurrCluster--; // jump back to the ast sector in the last cluster |
file->ByteOfCurrSector = BYTES_PER_SECTOR; // set ByteOfCurrSector one byte over sector end |
} |
} |
} |
} |
} |
if(file->Position == fposition) retvalue = 0; |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 FindNextFreeCluster(void) |
// |
// Description: This function looks in the FAT to find the next free datacluster |
// |
// Returnvalue: The function returns the adress of the next free cluster found within the fAT. |
//________________________________________________________________________________________________________________________________________ |
u16 FindNextFreeCluster(File *file) |
/****************************************************************************************************************************************/ |
/* Function: u16 DeleteClusterChain(File *file); */ |
/* */ |
/* Description: This function trances along a cluster chain in the fat and frees all clusters visited. */ |
/* */ |
/****************************************************************************************************************************************/ |
u8 DeleteClusterChain(u16 StartCluster) |
{ |
u32 fat_pointer = 0; // Pointer to the first sector of the FAT. |
u32 ul_tmp = 0; // temporary variable used to calculate a sectornumber. |
u16 fat_sector_offset = 0; // index to a sector within the FAT. |
u16 fat_entry = 0; // index to an fatentry within the actual sector (256 fatentries are possible within one sector). |
u16 free_cluster = 0; // a pointer to the first sector of the next free cluster. |
fat_pointer = (u32) FileAllocationTable; // start searching for empty cluster at the beginning of the fat. |
// if the end of the fat is not reached yet and no free cluster has been found |
while((fat_sector_offset < SectorsPerFat) && (!free_cluster)) |
u16 cluster; |
u32 fat_byte_offset, sector, byte; |
Fat16Entry_t * fat; |
u8 buffer[BYTES_PER_SECTOR]; |
u32 sector_in_buffer = 0; |
u8 repeat = 0; |
if(!Partition.IsValid) return 0; |
cluster = StartCluster; // init chain trace |
// calculate byte offset in the fat for corresponding entry |
fat_byte_offset = ((u32)cluster)<<1; // two FAT bytes (16 bits) for every cluster |
// calculate the sector that contains the current cluster within the fat |
sector = Partition.FirstFatSector + ( fat_byte_offset / BYTES_PER_SECTOR); |
// calculate byte offset of the current cluster within that fat sector |
byte = fat_byte_offset % BYTES_PER_SECTOR; |
do |
{ |
ul_tmp = (u32) ((u32)fat_pointer + (u32)fat_sector_offset); |
SDC_GetSector((u32)ul_tmp,file->buffer); // read next sector of FAT. |
file->sector_in_buffer = ul_tmp; // remember the number of the sector in FileBuffer. |
Fat = (struct FatEntry *)file->buffer; |
for(fat_entry=0;fat_entry<256;fat_entry++) // look for an free cluster at all entries in this sector of the fat. |
if(sector != sector_in_buffer) |
{ |
if(Fat[fat_entry].next_cluster == 0x0000) // empty cluster found!! |
{ |
Fat[fat_entry].next_cluster = 0xffff; // mark this fat-entry as used and save it to the device. |
SDC_PutSector((u32)file->sector_in_buffer,file->buffer); |
free_cluster = fat_entry; // the relative position of the free cluster found in this sector of the FAT. |
free_cluster += (fat_sector_offset << 8); // calculate the absolute position of the free cluster in the FAT; |
fat_entry = 256; // terminate the search for a free cluster in this sector. |
} |
// read this sector to buffer |
sector_in_buffer = sector; |
if(SD_SUCCESS != SDC_GetSector(sector_in_buffer, buffer)) return 0; // read sector from sd-card |
} |
// read the next cluster from cache |
fat = (Fat16Entry_t *)(&(buffer[byte])); |
cluster = fat->NextCluster; |
if((FAT16_CLUSTER_USED_MIN <= cluster) && (cluster <= FAT16_CLUSTER_USED_MAX) ) repeat = 1; |
else repeat = 0; |
fat->NextCluster = FAT16_CLUSTER_FREE; // mark current cluster as free |
// calculate byte offset in the fat for corresponding entry |
fat_byte_offset = ((u32)cluster)<<1; // two FAT bytes (16 bits) for every cluster |
// calculate the sector that contains the current cluster within the fat |
sector = Partition.FirstFatSector + ( fat_byte_offset / BYTES_PER_SECTOR); |
// calculate byte offset of the current cluster within that fat sector |
byte = fat_byte_offset % BYTES_PER_SECTOR; |
// if new sector is not the sector in buffer or the last cluster in the chain was traced |
if((sector != sector_in_buffer) || !repeat) |
{ // write sector in buffer |
if(SD_SUCCESS != SDC_PutSector(sector_in_buffer,buffer)) return 0; |
} |
fat_sector_offset++; |
} |
return(free_cluster); |
} |
while(repeat); |
return 1; |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 AppendCluster(File *file); |
// |
// Description: This function finds the next free datacluster on the disk and appends it to the specified file. |
// |
// Returnvalue: This funktion returns 1 if a cluster was appended to the specified file. |
//________________________________________________________________________________________________________________________________________ |
u8 AppendCluster(File *file) |
/****************************************************************************************************************************************/ |
/* Function: u16 AppendCluster(File *file); */ |
/* */ |
/* Description: This function looks in the fat to find the next free cluster and appends it to the file. */ |
/* */ |
/* Returnvalue: The function returns the appened cluster number or 0 of no cluster was appended. */ |
/****************************************************************************************************************************************/ |
u16 AppendCluster(File_t *file) |
{ |
u16 free_cluster = 0; |
u32 fat_pointer = 0; |
u8 retvalue = 0; |
u16 last_cluster, new_cluster = 0; |
u32 fat_byte_offset, sector, byte; |
Fat16Entry_t * fat; |
free_cluster = FindNextFreeCluster(file); // the next free cluster found on the disk. |
if(free_cluster) retvalue = 1; // A free cluster was found and can be added to the end of the file. |
fat_pointer = FileAllocationTable; // Set Pointer to the beginnig of the FAT. |
fat_pointer += (u32)((u32)GetFatClusterOffset(file) >> 8); // find the sector in the FAT with 256 entries per sector. |
SDC_GetSector(fat_pointer,file->buffer); |
Fat = (struct FatEntry *)file->buffer; |
Fat[GetFatSectorIndex(file)].next_cluster = free_cluster; // append the free cluster to the end of the file in the FAT. |
SDC_PutSector((u32)fat_pointer,file->buffer); // save the modified sector to the FAT. |
if((!Partition.IsValid) || (file == NULL)) return(new_cluster); |
fat_pointer = (u32)free_cluster; |
fat_pointer -= 2; |
fat_pointer *= SectorsPerCluster; |
fat_pointer += FirstDataCluster; |
new_cluster = FindNextFreeCluster(file); // the next free cluster found on the disk. |
if(new_cluster) |
{ // A free cluster was found and can be added to the end of the file. |
fseek_(file, 0, SEEK_END); // jump to the end of the file |
last_cluster = SectorToFat16Cluster(file->FirstSectorOfCurrCluster); // determine current file cluster |
fat_byte_offset = ((u32)last_cluster)<<1; |
sector = Partition.FirstFatSector + ( fat_byte_offset / BYTES_PER_SECTOR); |
byte = fat_byte_offset % BYTES_PER_SECTOR; |
file->cluster_pointer = fat_pointer; // continue wrtiting to the file in the new and free datacluster. |
return(retvalue); // return 1 when a new cluster was appended to the file |
if(file->SectorInCache != sector) |
{ |
file->SectorInCache = sector; // update sector stored in buffer |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache)) // read sector from sd-card |
{ |
Fat16_Deinit(); |
return(0); |
} |
} |
fat = (Fat16Entry_t *)(&(file->Cache[byte])); |
fat->NextCluster = new_cluster; // append the free cluster to the end of the file in the FAT. |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) // save the modified sector to the FAT. |
{ |
Fat16_Deinit(); |
return(0); |
} |
file->FirstSectorOfCurrCluster = Fat16ClusterToSector(new_cluster); |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
} |
return(new_cluster); |
} |
/****************************************************************************************************************************************************/ |
/* Function: DirectoryEntryExist(s8 *, u8, u8, File_t *) */ |
/* */ |
/* Description: This function searches all possible dir entries until the file or directory is found or the end of the directory is reached */ |
/* */ |
/* Returnvalue: This function returns 1 if the directory entry specified was found. */ |
/****************************************************************************************************************************************************/ |
u8 DirectoryEntryExist(s8 *dirname, u8 attribfilter, u8 attribmask, File_t *file) |
{ |
u32 dir_sector, max_dir_sector, curr_sector; |
u16 dir_entry = 0; |
//________________________________________________________________________________________________________________________________________ |
// Funtion: void DeleteClusterChain(u16 startcluster); |
// |
// Description: This function frees all the clusters used for file from the fat. |
// |
// Returnvalue: none |
//________________________________________________________________________________________________________________________________________ |
u16 end_of_directory_not_reached = 0; |
u8 i = 0; |
u8 direntry_exist = 0; |
DirEntry_t * dir; |
void DeleteClusterChain(u16 startcluster) |
{ |
u16 fat_index = 0; |
u16 fat_sector_offset = 0; |
u32 sector_in_buffer = 0; |
u32 ul_temp = 0; |
u8 buffer[512]; |
// if incomming pointers are useless return immediatly |
if((!Partition.IsValid) || (file == NULL) || (dirname == NULL)) return(direntry_exist); |
// dir entries can be searched only in filesclusters that have |
// a corresponding dir entry with adir-flag set in its attribute |
// or direct within the root directory area |
fat_index = (startcluster % 0x100); // Calculate the sector within the cluster. |
fat_sector_offset = (startcluster >> 8); // and the position within the sector. |
ul_temp = (u32)(FileAllocationTable + fat_sector_offset); |
do |
file->FirstSectorOfFirstCluster = 0; |
// no current directory exist therefore assume searching in the root |
if(file->DirectorySector == 0) |
{ |
if(sector_in_buffer != ul_temp) |
max_dir_sector = (Partition.MaxRootEntries * DIRENTRY_SIZE)/BYTES_PER_SECTOR; |
file->FirstSectorOfFirstCluster = Partition.FirstRootDirSector; |
} |
// within the root directory area we can read sectors sequentially until the end of this area |
else if((Partition.FirstRootDirSector <= file->DirectorySector) && (file->DirectorySector < Partition.FirstDataSector)) |
{ |
max_dir_sector = (Partition.MaxRootEntries * DIRENTRY_SIZE)/BYTES_PER_SECTOR; |
} |
// within the data clusters we can read sectors sequentially only within the cluster |
else if((Partition.FirstDataSector <= file->DirectorySector) && (file->DirectorySector <= Partition.LastDataSector)) |
{ |
max_dir_sector = Partition.SectorsPerCluster; // limit max secters before next cluster |
} |
else return (direntry_exist); // bad sector range for directory sector of the file |
// if search area is not defined yet |
if(file->FirstSectorOfFirstCluster == 0) |
{ |
// check if the directory entry of current file is existent and has the dir-flag set |
file->SectorInCache = file->DirectorySector; // update the sector number of file cache. |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache))// read in the sector. |
{ |
sector_in_buffer = ul_temp; |
SDC_GetSector(ul_temp,buffer); |
Fat16_Deinit(); |
return(direntry_exist); |
} |
Fat = (struct FatEntry *)buffer; |
startcluster = Fat[fat_index].next_cluster; |
Fat[fat_index].next_cluster = 0x0000; // free the cluster within the fat. |
fat_index = (startcluster % 0x100); // Calculate the sector within the cluster. |
fat_sector_offset = (startcluster >> 8); // and the position within the sector. |
ul_temp = (u32)(FileAllocationTable + fat_sector_offset); |
if((sector_in_buffer != ul_temp) || (startcluster == 0xffff)) |
dir = (DirEntry_t *)file->Cache; // set pointer to directory |
switch((u8)dir[file->DirectoryIndex].Name[0]) // check if current directory exist |
{ |
SDC_PutSector(sector_in_buffer,buffer); |
case SLOT_EMPTY: |
case SLOT_DELETED: |
// the directrory pointer of this file points to a deleted or not existen directory |
// therefore no file or subdirectory can be created |
return (direntry_exist); |
break; |
default: // and is a real directory |
if((dir[file->DirectoryIndex].Attribute & ATTR_SUBDIRECTORY) != ATTR_SUBDIRECTORY) |
{ // current file is not a directory therefore no file or subdirectory can be created here |
return (direntry_exist); |
} |
break; |
} |
file->FirstSectorOfFirstCluster = Fat16ClusterToSector(dir[file->DirectoryIndex].StartCluster); |
} |
while(startcluster != 0xffff); // last cluster has been deleted. |
} |
// update current file data area position to start of first cluster |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 GetFatClusterIndex(File *file); |
// |
// Description: This function returns the clusterindex of the cluster specified by file->cluster_pointer of the specified file. |
// |
//________________________________________________________________________________________________________________________________________ |
do // loop over all data clusters of the current directory entry |
{ |
dir_sector = 0; // reset sector counter within a new cluster |
do // loop over all sectors of a cluster or all sectors of the root directory |
{ |
curr_sector = file->FirstSectorOfCurrCluster + dir_sector; // calculate sector number |
file->SectorInCache = curr_sector; // upate the sector number of file cache. |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache))// read the sector |
{ |
Fat16_Deinit(); |
return(direntry_exist); |
} |
dir = (DirEntry_t *)file->Cache; // set pointer to directory |
// search all directory entries within that sector |
for(dir_entry = 0; dir_entry < DIRENTRIES_PER_SECTOR; dir_entry++) |
{ // check for existing dir entry |
switch((u8)dir[dir_entry].Name[0]) |
{ |
case SLOT_EMPTY: |
case SLOT_DELETED: |
// ignore empty or deleted dir entries |
break; |
default: |
// if existing check attributes before names are compared will safe performance |
if ((dir[dir_entry].Attribute & attribmask) != attribfilter) break; // attribute must match |
// then compare the name to the giveb dirname (first 11 characters include 8 chars of basename and 3 chars extension.) |
i = 0; |
while((i < 11) && (dir[dir_entry].Name[i] == dirname[i])) i++; |
if (i < 10) break; // names does not match |
// if dirname and attribute have matched |
file->Attribute = dir[dir_entry].Attribute; // store attribute of found dir entry |
file->FirstSectorOfFirstCluster = Fat16ClusterToSector(dir[dir_entry].StartCluster); // set sector of first data cluster |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
file->DirectorySector = curr_sector; // current sector |
file->DirectoryIndex = dir_entry; // current direntry in current sector |
file->Size = dir[dir_entry].Size; |
direntry_exist = 1; // mark as found |
dir_entry = DIRENTRIES_PER_SECTOR; // stop for-loop |
} // end of first byte of name check |
} |
dir_sector++; // search next sector |
// stop if we reached the end of the cluster or the end of the root dir |
}while((dir_sector < max_dir_sector) && (!direntry_exist)); |
u16 GetFatClusterOffset(File *file) |
{ |
u32 fat_sector_offset = 0; |
fat_sector_offset = ((file->cluster_pointer) - (FirstDataCluster)); // Calculate index of actual cluster in FAT. |
fat_sector_offset /= SectorsPerCluster; |
fat_sector_offset += 2; // In Fat16 clusterpositions have an offset of two. |
return((u16)fat_sector_offset); |
// if we are seaching in the data area and the file not found in this cluster so take next cluster. |
if(!direntry_exist && ( Partition.FirstDataSector <= file->FirstSectorOfCurrCluster)) |
{ |
end_of_directory_not_reached = GetNextCluster(file); // updates File->FirstSectorOfCurrCluster |
} |
}while((end_of_directory_not_reached) && (!direntry_exist)); // repeat until a next cluster exist an no |
return(direntry_exist); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 GetFatSectorIndex(File *file); |
// |
// Description: This function returns the sectorindex of the cluster specified by file->cluster_pointer of the specified file. |
// |
//________________________________________________________________________________________________________________________________________ |
u16 GetFatSectorIndex(File *file) |
/****************************************************************************************************************************************/ |
/* Function: CreateDirectoryEntry(s8 *, u16, File_t *) */ |
/* */ |
/* Description: This function looks for the next free position in the directory and creates an entry. */ |
/* The type of an directory entry is specified by the file attribute. */ |
/* */ |
/* Returnvalue: Return 0 on error */ |
/****************************************************************************************************************************************/ |
u8 CreateDirectoryEntry(s8 *dirname, u8 attrib, File_t *file) |
{ |
u16 fat_pointer = 0; |
u32 dir_sector, max_dir_sector, curr_sector; |
u16 dir_entry = 0; |
u16 subdircluster, dircluster = 0; |
u16 end_of_directory_not_reached = 0; |
u8 i = 0; |
u8 retvalue = 0; |
DirEntry_t *dir; |
if((!Partition.IsValid) || (file == NULL) || (dirname == NULL)) return (retvalue); |
// It is not checked here that the dir entry that should be created is already existent! |
fat_pointer = GetFatClusterOffset(file); |
fat_pointer = fat_pointer % 0x100; // Calculate the clusterposition in the fat |
// Dir entries can be created only in file-clusters that have |
// the dir-flag set in its attribute or within the root directory |
return(fat_pointer); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 CreateFileInDirectory(u8 *, File *) |
// |
// Description: This function looks for the next free position in the directory and creates an entry. The type of an directoryentry is |
// specified by the attribute. |
// bit0: unused |
// bit1: archive |
// bit2: read_only |
// bit3: system |
// bit4: directory |
// bit5: volume |
//________________________________________________________________________________________________________________________________________ |
u8 CreateFileInDirectory(s8 *fname, File *file) |
{ |
u16 rootentry = 0; // index to an entry in the rootdirectory. |
u16 cnt_enries_searched = 0; // count the number of rootentries which have been searched already. |
u8 i = 0; |
u16 sector_offset = 0; // index to the sector of the Rootentry which is searched momentarily |
u8 retvalue = 0; |
u32 cluster_temp = 0; |
u16 cluster = 0; |
s8 name[11] = " "; |
SeperateFileName(fname,name); |
cluster_temp = (u32)FindNextFreeCluster(file); // the next free cluster on the disk. |
if(cluster_temp) // if a free cluster is available: |
file->FirstSectorOfFirstCluster = 0; |
// no current directory exist therefore assume creating in the root |
if(file->DirectorySector == 0) |
{ |
cluster = (u16)cluster_temp; // remember the index of the free datacluster found for the directory entry. |
cluster_temp -=2; // Clusterposition is ((position in FAT)-2). first two entries in FAT are reserved. |
cluster_temp *= SectorsPerCluster; // Calculate relative sectorindex of first datacluster. |
file->start_cluster = (FirstDataCluster + cluster_temp); // Calculate absolute sectorposition of first datacluster. |
file->cluster_pointer = file->start_cluster; // start reading the file with the first sector of the first datacluster. |
// directory starts at sector specified by dir_sector. This can be the rootdirectory or any other directory. |
do |
{ // search the next 16 rootentries in this sector of the roordirectory. |
rootentry=0; |
SDC_GetSector((u32)(CWD + sector_offset),file->buffer); // Read the Rootdirectory. |
DirectoryEntry = (struct DirEntry *)file->buffer; |
while((rootentry<16) && (!retvalue)) |
max_dir_sector = (Partition.MaxRootEntries * DIRENTRY_SIZE)/BYTES_PER_SECTOR; |
dircluster = 0; |
file->FirstSectorOfFirstCluster = Partition.FirstRootDirSector; |
} |
// within the root directory area we can read sectors sequentially until the end of this area |
else if((Partition.FirstRootDirSector <= file->DirectorySector) && (file->DirectorySector < Partition.FirstDataSector)) |
{ |
max_dir_sector = (Partition.MaxRootEntries * DIRENTRY_SIZE)/BYTES_PER_SECTOR; |
} |
// within the data clusters we can read sectors sequentially only within the cluster |
else if((Partition.FirstDataSector <= file->DirectorySector) && (file->DirectorySector <= Partition.LastDataSector)) |
{ |
max_dir_sector = Partition.SectorsPerCluster; |
} |
else return (retvalue); // bad sector range for directory sector of the file |
// if search area is not defined yet |
if(file->FirstSectorOfFirstCluster == 0) |
{ |
// check if the directory entry of current file is existent and has the dir-flag set |
file->SectorInCache = file->DirectorySector; // update the sector number of file cache. |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache))// read in the sector. |
{ |
Fat16_Deinit(); |
return(retvalue); |
} |
dir = (DirEntry_t *)file->Cache; // set pointer to directory |
switch((u8)dir[file->DirectoryIndex].Name[0]) // check if current directory exist |
{ |
case SLOT_EMPTY: |
case SLOT_DELETED: |
return (retvalue); |
break; |
default: // and is a real directory |
if((dir[file->DirectoryIndex].Attribute & ATTR_SUBDIRECTORY) != ATTR_SUBDIRECTORY) |
{ // current file is not a directory therefore no file or subdirectory can be created here |
return (retvalue); |
} |
break; |
} |
dircluster = dir[file->DirectoryIndex].StartCluster; |
file->FirstSectorOfFirstCluster = Fat16ClusterToSector(dircluster); |
} |
subdircluster = FindNextFreeCluster(file); // get the next free cluster on the disk and mark it as used. |
if(subdircluster) |
{ |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; |
file->SectorOfCurrCluster = 0; |
do // loop over all clusters of current directory |
{ |
dir_sector = 0; // reset sector counter within a new cluster |
do // loop over all sectors of a cluster or all sectors of the root directory |
{ |
if((DirectoryEntry[rootentry].attribute == 0) || (DirectoryEntry[rootentry].attribute == 0xE5)) // empty directory entry found |
curr_sector = file->FirstSectorOfCurrCluster + dir_sector; // calculate sector number |
file->SectorInCache = curr_sector; // upate the sector number of file cache. |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache))// read in the sector. |
{ |
for(i=0;i<11;i++) DirectoryEntry[rootentry].name[i] = name[i];// Kopie the filename and the file extension to the directoryentry. |
DirectoryEntry[rootentry].attribute = _FILE; // Set the fileattribute to archive to reserve the directoryentry. |
DirectoryEntry[rootentry].startcluster = cluster; // copy the location of the first datacluster to the directoryentry. |
DirectoryEntry[rootentry].size = 0; // the new createted file has no content yet. |
file->directory_sector = (u32) (CWD + sector_offset); |
file->directory_index = (u8) rootentry; |
retvalue = 1; |
SDC_PutSector((u32)(CWD + sector_offset),file->buffer); |
Fat16_Deinit(); |
return(retvalue); |
} |
dir = (DirEntry_t *)file->Cache; // set pointer to directory |
// search all directory entries of a sector |
for(dir_entry = 0; dir_entry < DIRENTRIES_PER_SECTOR; dir_entry++) |
{ // check if current direntry is available |
if(((u8)dir[dir_entry].Name[0] == SLOT_EMPTY) || ((u8)dir[dir_entry].Name[0] == SLOT_DELETED)) |
{ // a free direntry was found |
for(i = 0; i < 11; i++) dir[dir_entry].Name[i] = dirname[i]; // Set dir name |
dir[dir_entry].Attribute = attrib; // Set the attribute of the new directoryentry. |
dir[dir_entry].StartCluster = subdircluster; // copy the location of the first datacluster to the directoryentry. |
dir[dir_entry].DateTime = FileDateTime(&SystemTime); // set date/time |
dir[dir_entry].Size = 0; // the new createted file has no content yet. |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) // write back to card |
{ |
Fat16_Deinit(); |
return(retvalue); |
} |
file->FirstSectorOfFirstCluster = Fat16ClusterToSector(subdircluster); // Calculate absolute sectorposition of first datacluster. |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; // Start reading the file with the first sector of the first datacluster. |
file->SectorOfCurrCluster = 0; // reset sector of cureen cluster |
file->ByteOfCurrSector = 0; // reset the byte location within the current sector |
file->Attribute = attrib; // set file attribute to dir attribute |
file->Size = 0; // new file has no size |
file->DirectorySector = curr_sector; |
file->DirectoryIndex = dir_entry; |
if((attrib & ATTR_SUBDIRECTORY) == ATTR_SUBDIRECTORY) // if a new directory was created then initilize the data area |
{ |
ClearCurrCluster(file); // fill cluster with zeros |
file->SectorInCache = file->FirstSectorOfFirstCluster; |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache))// read in the sector. |
{ |
Fat16_Deinit(); |
return(retvalue); |
} |
dir = (DirEntry_t *)file->Cache; |
// create direntry "." to current dir |
dir[0].Name[0] = 0x2E; |
for(i = 1; i < 11; i++) dir[0].Name[i] = ' '; |
dir[0].Attribute = ATTR_SUBDIRECTORY; |
dir[0].StartCluster = subdircluster; |
dir[0].DateTime = 0; |
dir[0].Size = 0; |
// create direntry ".." to the upper dir |
dir[1].Name[0] = 0x2E; |
dir[1].Name[1] = 0x2E; |
for(i = 2; i < 11; i++) dir[1].Name[i] = ' '; |
dir[1].Attribute = ATTR_SUBDIRECTORY; |
dir[1].StartCluster = dircluster; |
dir[1].DateTime = 0; |
dir[1].Size = 0; |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache))// read in the sector. |
{ |
Fat16_Deinit(); |
return(retvalue); |
} |
} |
retvalue = 1; |
dir_entry = DIRENTRIES_PER_SECTOR; // stop for-loop |
} |
} |
rootentry++; |
cnt_enries_searched++; |
} |
if(!retvalue) // file not found in this sector so take next sector. |
dir_sector++; // search next sector |
// stop if we reached the end of the cluster or the end of the root dir |
}while((dir_sector < max_dir_sector) && (!retvalue)); |
// if we are seaching in the data area and the file not found in this cluster so take next cluster. |
if(!retvalue && ( Partition.FirstDataSector <= file->FirstSectorOfCurrCluster)) |
{ |
rootentry = 0; |
sector_offset++; |
end_of_directory_not_reached = GetNextCluster(file); // updates File->FirstSectorOfCurrCluster |
} |
} |
while((cnt_enries_searched< PossibleRootEntries) && (!retvalue)); |
}while((end_of_directory_not_reached) && (!retvalue)); |
// Perhaps we are at the end of the last cluster of a directory file an have no free direntry found. |
// Then we would need to add a cluster to that file and create the new direntry there. |
// This code is not implemented yet, because its occurs only if more that 32*32=1024 direntries are |
// within a subdirectory of root. |
} |
return(retvalue); // return 1 if file has been created otherwise return 0. |
return(retvalue); // return 1 if file has been created otherwise return 0. |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 SeekFileInDirectory(s8 *fname, File *) |
// |
// Description: this function searches all possible entries withint the actual directory for the specified object. |
// |
// Returnvalue: This function returns 1 if the directoryentry specified was found. |
//________________________________________________________________________________________________________________________________________ |
u8 SeekFileInDirectory(s8 *fname, File *file) |
/********************************************************************************************************************************************/ |
/* Function: FileExist(const s8* filename, u8 attribfilter, u8 attribmask, File_t *file); */ |
/* */ |
/* Description: This function looks for the specified file including its subdirectories beginning */ |
/* in the rootdirectory of the drive. If the file is found the Filepointer properties are */ |
/* updated. */ |
/* */ |
/* Returnvalue: 1 if file is found else 0. */ |
/********************************************************************************************************************************************/ |
u8 FileExist(const s8* filename, const u8 attribfilter, const u8 attribmask, File_t *file) |
{ |
u16 rootentry=0; |
u16 end_of_directory_not_reached = 0; // the directory has been read completely without a result. |
u8 i=0; |
u8 retvalue = 0; |
u32 cluster_temp = 0; |
s8 name[11] = " "; |
SeperateFileName(fname,name); |
file->cluster_pointer = CWD; // start looking for the file in the actual directory. |
s8* path = 0; |
s8* subpath = 0; |
u8 af, am, file_exist = 0; |
s8 dirname[12]; // 8+3 + temination character |
// directory starts at sector specified by dir_sector. This can be the rootdirectory or any other directory. |
do |
{ // search the next 16 rootentries in this sector of the roordirectory. |
rootentry=0; |
SDC_GetSector((u32) file->cluster_pointer,file->buffer); // Read the Rootdirectory. |
DirectoryEntry = (struct DirEntry *)file->buffer; |
// if incomming pointers are useless return immediatly |
if ((filename == NULL) || (file == NULL) || (!Partition.IsValid)) return 0; |
while((!retvalue)&&(rootentry<16)) |
{ |
i=0; |
if(DirectoryEntry[rootentry].name[0] != 0xe5) // ignore deleted items. |
// trace along the filepath |
path = (s8*)filename; // start a the beginning of the filename string |
file->DirectorySector = 0; // start at RootDirectory with file search |
file->DirectoryIndex = 0; |
// as long as the file was not found and the remaining path is not empty |
while((*path != 0) && !file_exist) |
{ // separate dirname and subpath from filepath string |
subpath = SeperateDirName(path, dirname); |
if(subpath != NULL) |
{ |
if(*subpath == 0) |
{ // empty subpath indicates last element of dir chain |
af = attribfilter; |
am = attribmask; |
} |
else // it must be a subdirectory and no volume label |
{ |
while((i<=10)&&(DirectoryEntry[rootentry].name[i] == name[i])) |
af = ATTR_SUBDIRECTORY; |
am = ATTR_SUBDIRECTORY|ATTR_VOLUMELABEL; |
} |
if(!DirectoryEntryExist(dirname, af, am, file)) |
{ |
return (file_exist); // subdirectory does not exist |
} |
else |
{ |
if (*subpath == 0) |
{ |
i++; |
file_exist = 1; // last element of path chain was found with the given attribute filter |
} |
} |
if((i==11) && (DirectoryEntry[rootentry].attribute & _FILE)) // entry found!! -> reading startcluster of entry from offset 26. |
{ |
cluster_temp = (u32)DirectoryEntry[rootentry].startcluster; |
cluster_temp -=2; // Clusterposition is ((position in FAT)-2). first two entries in FAT are reserved. |
cluster_temp *= (u32)SectorsPerCluster; // Calculate positon of first cluster. |
file->start_cluster = (FirstDataCluster + cluster_temp); |
file->directory_sector = (u32) file->cluster_pointer; |
file->cluster_pointer = file->start_cluster; // start reading the file with the first cluster. |
file->filesize = (u32) DirectoryEntry[rootentry].size; |
file->directory_index = (u8) rootentry; |
retvalue = 1; |
} |
rootentry++; |
} |
if(!retvalue) // file not found in this sector so take next sector. |
else // error seperating the subpath |
{ |
end_of_directory_not_reached = GetNextCluster(file); |
return file_exist; // bad subdir format |
} |
path = subpath; |
subpath = 0; |
} |
while((end_of_directory_not_reached) && (!retvalue)); |
return(retvalue); |
return (file_exist); |
} |
/********************************************************************************************************************************************/ |
/* Function: FileCreate(const s8* filename, u8 attrib, File_t *file); */ |
/* */ |
/* Description: This function looks for the specified file including its subdirectories beginning */ |
/* in the rootdirectory of the partition. If the file is found the Filepointer properties are */ |
/* updated. If file or its subdirectories are not found they will be created */ |
/* */ |
/* Returnvalue: 1 if file was created else 0. */ |
/********************************************************************************************************************************************/ |
u8 FileCreate(const s8* filename, const u8 attrib, File_t *file) |
{ |
s8 *path = 0; |
s8 *subpath = 0; |
u8 af, am, file_created = 0; |
s8 dirname[12]; |
//________________________________________________________________________________________________________________________________________ |
// Funtion: void SeperateFileName(u8*); |
// |
// Description: This function seperates the filename and the fileattribute and brings them into the needed format ('test.txt' -> 'TEST TXT'); |
// |
//________________________________________________________________________________________________________________________________________ |
// if incomming pointers are useless return immediatly |
if ((filename == NULL) || (file == NULL) || (!Partition.IsValid)) return 0; |
void SeperateFileName(s8 *fname, s8 *name) |
{ |
u8 readpointer = 0; |
u8 writepointer = 0; |
u8 attribute = 1; |
u8 i = 0; |
while((writepointer<=10) && (fname[readpointer]!=0)) // the rootdirectoryentry is 8bytes for filename and 3bytes for fileattribute. |
{ // the filename in the rootdirectory is in the format "TEST TXT" without the dot. |
if(fname[readpointer]=='.') // seperating filename and attribute. |
// trace along the filepath |
path = (s8*)filename; // start a the beginning of the filename string |
file->DirectorySector = 0; // start at RootDirectory with file search |
file->DirectoryIndex = 0; |
// as long as the file was not created and the remaining file path is not empty |
while((*path != 0) && !file_created) |
{ // separate dirname and subpath from filepath string |
subpath = SeperateDirName(path, dirname); |
if(subpath != NULL) |
{ |
if(attribute) // is the filename "." or ".." ? |
{ |
name[writepointer] = fname[readpointer]; |
readpointer++; |
writepointer++; |
if(*subpath == 0) |
{ // empty subpath indicates last element of dir chain |
af = ATTR_NONE; |
am = ATTR_SUBDIRECTORY|ATTR_VOLUMELABEL; // any file that is no subdir or volume label |
} |
else |
else // it must be a subdirectory and no volume label |
{ |
if(fname[(readpointer-1)] != '*') |
{ |
for(i=writepointer;i<8;i++) |
{ |
name[i] = ' '; |
} |
} |
readpointer++; |
writepointer = 8; |
af = ATTR_SUBDIRECTORY; |
am = ATTR_SUBDIRECTORY|ATTR_VOLUMELABEL; |
} |
} |
else if(fname[readpointer] == '*') // wildcard found within the filename + extension. |
{ |
if(writepointer < 8) // in extension. |
{ |
readpointer++; |
writepointer = 8; |
if(!DirectoryEntryExist(dirname, af, am, file)) // if subdir or file is not existent |
{ // try to create subdir or file |
if(*subpath == 0) af = attrib; // if last element in dir chain take the given attribute |
if(!CreateDirectoryEntry(dirname, af, file)) |
{ // could not be created |
return(file_created); |
} |
else if (*subpath == 0) file_created = 1; // last element of path chain was created |
} |
else // in filename. |
{ |
writepointer = 11; // jump to the end of the string to terminate this function. |
} |
attribute = 0; |
} |
else |
else // error seperating the subpath |
{ |
if((fname[readpointer]>96) && (fname[readpointer]<123)) |
{ |
name[writepointer]=(fname[readpointer] - 32); // all characters must be upper case. |
} |
else |
{ |
name[writepointer]=fname[readpointer]; |
} |
readpointer++; |
writepointer++; |
attribute = 0; |
return file_created; // bad subdir format |
} |
} |
path = subpath; |
subpath = 0; |
} |
return (file_created); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: File * ReserveFilePointer_(void); |
// |
// Description: This function looks for a free filepointer and reserves it. |
// |
// |
// Return: NULL = faild to reserve a filepointer |
// otherwise filepointer |
//________________________________________________________________________________________________________________________________________ |
File * ReserveFilePointer(void) |
{ |
File *file; |
file = NULL; |
u8 temp; |
/********************************************************************************************************************************************/ |
/* Function: File_t * fopen_(s8* filename, s8 mode); */ |
/* */ |
/* Description: This function looks for the specified file in the rootdirectory of the drive. If the file is found the number of the */ |
/* corrosponding filepointer is returned. Only modes 'r' (reading) and 'a' append are implemented yet. */ |
/* */ |
/* Returnvalue: The filepointer to the file or 0 if faild. */ |
/********************************************************************************************************************************************/ |
File_t * fopen_(const s8 *filename, const s8 mode) |
{ |
File_t *file = 0; |
for(temp = 0;temp<__MAX_FILES_USED;temp++) |
{ |
if(FilePointer[temp].state == _UNUSED) // free filepointer found? |
if((!Partition.IsValid) || (filename == 0)) return(file); |
// Look for an unused filepointer in the file pointer list? |
file = LockFilePointer(); |
// if no unused file pointer was found return 0 |
if(file == NULL) return(file); |
// now we have found a free filepointer and claimed it |
// so let initiate its property values |
file->FirstSectorOfFirstCluster = 0; // Sectorpointer to the first sector of the first datacluster of the file. |
file->FirstSectorOfCurrCluster = 0; // Pointer to the cluster which is edited at the moment. |
file->SectorOfCurrCluster = 0; // The sector which is edited at the moment (cluster_pointer + sector_index). |
file->ByteOfCurrSector = 0; // The bytelocation within the current sector (cluster_pointer + sector_index + byte_index). |
file->Mode = mode; // mode of fileoperation (read,write) |
file->Size = 0; // the size of the opened file in bytes. |
file->Position = 0; // pointer to a byte within the file 0 < fileposition < filesize |
file->SectorInCache = 0; // the last sector read, wich is still in the sectorbuffer. |
file->DirectorySector = 0; // the sectorposition where the directoryentry has been made. |
file->DirectoryIndex = 0; // the index to the directoryentry within the specified sector. |
file->Attribute = 0; // the attribute of the file opened. |
// check if a real file (no directory) to the given filename exist |
if(FileExist(filename, ATTR_NONE, ATTR_SUBDIRECTORY|ATTR_VOLUMELABEL, file)) |
{ // file exist |
switch(mode) // check mode |
{ |
file = &FilePointer[temp]; |
FilePointer[temp].state = _USED; // mark as used. |
FilePointer[temp].mode = 0; // type of access (read/write) not defined yet. |
FilePointer[temp].start_cluster = 0; // Sectorpointer to the first sector of the first datacluster of the file. |
FilePointer[temp].cluster_pointer = 0; // Pointer to the cluster which is edited at the moment. |
FilePointer[temp].sector_index = 0; // The sector which is edited at the moment (cluster_pointer + sector_index). |
FilePointer[temp].byte_index = 0; // The bytelocation within the current sector (cluster_pointer + sector_index + byte_index). |
FilePointer[temp].filesize = 0; // the size of the opend file in bytes. |
FilePointer[temp].fileposition = 0; // pointer to a character within the file 0 < fileposition < filesize |
FilePointer[temp].sector_in_buffer = 0; // the last sector read, wich is still in the sectorbuffer. |
FilePointer[temp].directory_sector = 0; // the sectorposition where the directoryentry has been made. |
FilePointer[temp].directory_index = 0; // the index to the directoryentry within the specified sector. |
FilePointer[temp].attribute = 0; // the attribute of the file opened. |
case 'a': // if mode is: append to file |
if((file->Attribute & ATTR_READONLY) == ATTR_READONLY) |
{ // file is marked as readonly --> do not open this file |
fclose_(file); |
file = NULL; |
} |
else |
{ // file is not marked as read only --> goto end of file |
fseek_(file, 0, SEEK_END); // point to the end of the file |
} |
break; |
case 'w': // if mode is: write to file |
if((file->Attribute & ATTR_READONLY) == ATTR_READONLY) |
{ // file is marked as readonly --> do not open this file |
fclose_(file); |
file = NULL; |
} |
else |
{ // file is not marked as read only --> goto start of file |
// free all clusters of that file |
DeleteClusterChain(SectorToFat16Cluster(file->FirstSectorOfFirstCluster)); |
// mar an empy cluster as the last one and store the corresponding sector |
file->FirstSectorOfFirstCluster = Fat16ClusterToSector(FindNextFreeCluster(file)); |
file->FirstSectorOfCurrCluster = file->FirstSectorOfFirstCluster; |
file->SectorOfCurrCluster = 0; |
file->ByteOfCurrSector = 0; |
file->Size = 0; |
file->Position = 0; |
fseek_(file, 0, SEEK_SET); |
} |
break; |
case 'r': // if mode is: read from file |
// goto end of file |
fseek_(file, 0, SEEK_SET); |
break; |
default: // other modes are not supported |
fclose_(file); |
file = NULL; |
break; |
} |
return(file); |
} |
else // file does not exist |
{ |
switch(mode) // check mode |
{ |
case 'a': |
case 'w': // if mode is write or append |
// try to create the file |
if(!FileCreate(filename, ATTR_ARCHIVE, file)) |
{ // if it could not be created |
fclose_(file); |
file = NULL; |
} |
break; |
case 'r': // else opened for 'r' |
default: // of unsupported mode |
fclose_(file); |
file = NULL; |
break; |
} |
return(file); |
} |
// we should never come to this point |
fclose_(file); |
file = NULL; |
return(file); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: void FreeFilePointer_(File *); |
// |
// Description: This function free's the filepointer by marking it as unused. |
// |
// |
// Return: none |
// |
//________________________________________________________________________________________________________________________________________ |
void FreeFilePointer(File *file) |
/****************************************************************************************************************************************************/ |
/* Function: fflush_(File *); */ |
/* */ |
/* Description: This function writes the data already in the buffer but not yet written to the file. */ |
/* */ |
/* Returnvalue: 0 on success EOF on error */ |
/****************************************************************************************************************************************************/ |
s16 fflush_(File_t *file) |
{ |
u8 cnt = 0; |
DirEntry_t *dir; |
for(cnt=0;cnt<__MAX_FILES_USED;cnt++) // Is the filepointeradress vaild? |
if((file == NULL) || (!Partition.IsValid)) return (EOF); |
switch(file->Mode) |
{ |
if(&FilePointer[cnt] == file) // filepointer found therefore it must be valid |
{ |
FilePointer[cnt].state = _UNUSED; // and can be marked as unused. |
} |
case 'a': |
case 'w': |
if(file->ByteOfCurrSector > 0) // has data been added to the file? |
{ |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache))// save the data still in the buffer |
{ |
Fat16_Deinit(); |
return(EOF); |
} |
} |
file->SectorInCache = file->DirectorySector; |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache)) // read the directory entry for this file. |
{ |
Fat16_Deinit(); |
return(EOF); |
} |
dir = (DirEntry_t *)file->Cache; |
dir[file->DirectoryIndex].Size = file->Size; // update file size |
dir[file->DirectoryIndex].DateTime = FileDateTime(&SystemTime); // update date time |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) // write back to sd-card |
{ |
Fat16_Deinit(); |
return(EOF); |
} |
break; |
case 'r': |
default: |
return(EOF); |
break; |
} |
return(0); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: void DelteDirectoryEntry(Find *) |
// |
// Description: This function deletes the directoryentry of the specified item. |
// |
// |
// returnvalue: 1 if the directory could be created. |
//________________________________________________________________________________________________________________________________________ |
void DeleteDirectoryEntry(Find *item) |
/****************************************************************************************************************************************/ |
/* Function: fclose_(File *file); */ |
/* */ |
/* Description: This function closes the open file by writing the remaining data */ |
/* from the buffer to the device and entering the filesize in the directory entry. */ |
/* */ |
/* Returnvalue: 0 on success EOF on error */ |
/****************************************************************************************************************************************/ |
s16 fclose_(File_t *file) |
{ |
u8 buffer[512]; |
SDC_GetSector((u32) item->cluster_pointer,buffer); // Read the Rootdirectory. |
DirectoryEntry = (struct DirEntry *)buffer; |
s16 returnvalue = EOF; |
DirectoryEntry[(item->directory_index)-1].attribute = 0; // free the directoryentry. |
DirectoryEntry[(item->directory_index)-1].name[0] = 0xE5; // free the directoryentry. |
SDC_PutSector((u32) item->cluster_pointer,buffer); // Read the Rootdirectory. |
if(file == NULL) return(returnvalue); |
returnvalue = fflush_(file); |
UnlockFilePointer(file); |
return(returnvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 CreateSubDirectory(u8 *) |
// |
// Description: This function creates an directory within the directory specified by CWD |
// |
// |
// returnvalue: 1 if the directory could be created. |
//________________________________________________________________________________________________________________________________________ |
u8 CreateSubDirectory(s8 *fname) |
{ |
u16 index = 0; // index to an entry in the rootdirectory. |
u16 cnt_entries_searched = 0; // count the number of rootentries which have been searched already. |
u16 i = 0; |
u16 sector_offset = 0; // index to the sector of the entry which is searched momentarily |
u8 retvalue = 0; |
u32 cluster_temp = 0; |
u16 cluster = 0; |
File file; |
s8 name[11] = {" "}; |
SeperateFileName(fname,name); |
cluster_temp = (u32)FindNextFreeCluster(&file); // the next free cluster on the disk. |
/********************************************************************************************************************************************/ |
/* Function: fgetc_(File *file); */ |
/* */ |
/* Description: This function reads and returns one character from the specified file. Is the end of the actual sector reached the */ |
/* next sector of the cluster is read. If the last sector of the cluster read the next cluster will be searched in FAT. */ |
/* */ |
/* Returnvalue: The function returns the character read from the specified memorylocation as u8 casted to s16 or EOF. */ |
/********************************************************************************************************************************************/ |
s16 fgetc_(File_t *file) |
{ |
s16 c = EOF; |
u32 curr_sector; |
if(cluster_temp) // if a free cluster is available: |
if( (!Partition.IsValid) || (file == NULL)) return(c); |
// if the end of the file is not reached, get the next character. |
if((0 < file->Size) && ((file->Position+1) < file->Size) ) |
{ |
cluster = (u16)cluster_temp; // remember the index of the free datacluster found for the directory entry. |
cluster_temp -=2; // Clusterposition is ((position in FAT)-2). first two entries in FAT are reserved. |
cluster_temp *= SectorsPerCluster; // Calculate relative sectorindex of first datacluster. |
file.start_cluster = (FirstDataCluster + cluster_temp); // Calculate absolute sectorposition of first datacluster. |
file.cluster_pointer = file.start_cluster; // start reading the file with the first sector of the first datacluster. |
curr_sector = file->FirstSectorOfCurrCluster; // calculate the sector of the next character to be read. |
curr_sector += file->SectorOfCurrCluster; |
// -Initialise new cluster to zero-------------------------------------------------------- |
for(i=0;i<512;i++) |
if(file->SectorInCache != curr_sector) |
{ |
file.buffer[i] = 0; // initialise buffer to zero |
} |
for(sector_offset=0;sector_offset<SectorsPerCluster;sector_offset++) // initialise all sectors of new cluster with buffer. |
file->SectorInCache = curr_sector; |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache,file->Cache)) |
{ |
Fat16_Deinit(); |
return(c); |
} |
} |
c = (s16) file->Cache[file->ByteOfCurrSector]; |
file->Position++; // increment file position |
file->ByteOfCurrSector++; // goto next byte in sector |
if(file->ByteOfCurrSector >= BYTES_PER_SECTOR) // if end of sector |
{ |
SDC_PutSector((u32)(file.start_cluster + sector_offset),file.buffer); // save the initialised sector to the card. |
} |
// -Create directoryentry "." ------------------------------------------------------------- |
DirectoryEntry = (struct DirEntry *)file.buffer; |
DirectoryEntry[0].name[0] = '.'; |
DirectoryEntry[0].attribute = _DIRECTORY; |
DirectoryEntry[0].startcluster = cluster; |
// -Create directoryentry "." ------------------------------------------------------------- |
DirectoryEntry[1].name[0] = '.'; |
DirectoryEntry[1].name[1] = '.'; |
DirectoryEntry[1].attribute = _DIRECTORY; |
if(CWD == RootDirectory) |
{ |
DirectoryEntry[1].startcluster = 0; |
} |
else |
{ |
cluster_temp = (CWD - FirstDataCluster); |
cluster_temp /= SectorsPerCluster; |
cluster_temp -= 2; |
DirectoryEntry[1].startcluster = (u16) cluster_temp; |
} |
SDC_PutSector((u32) file.start_cluster,file.buffer); // save the initialised sector to the card. |
// -create directoryentry within the cwd -------------------------------------------------- |
sector_offset = 0; |
cnt_entries_searched = 0; |
do |
{ // search the next 16 rootentries in this sector of the roordirectory. |
index=0; |
SDC_GetSector((u32)(CWD + sector_offset),file.buffer); // Read the actual directory. |
DirectoryEntry = (struct DirEntry *)file.buffer; |
while((index<16) && (!retvalue)) |
file->ByteOfCurrSector = 0; // reset byte location |
file->SectorOfCurrCluster++; // next sector |
if(file->SectorOfCurrCluster >= Partition.SectorsPerCluster) // if end of cluster is reached, the next datacluster has to be searched in the FAT. |
{ |
if((DirectoryEntry[index].attribute == 0) || (DirectoryEntry[index].attribute == 0xE5)) // empty directory entry found |
if(GetNextCluster(file)) // Sets the clusterpointer of the file to the next datacluster. |
{ |
for(i=0;i<11;i++) DirectoryEntry[index].name[i] = name[i]; // Kopie the filename and the file extension to the directoryentry. |
DirectoryEntry[index].attribute = _DIRECTORY; // Set the fileattribute to archive to reserve the directoryentry. |
DirectoryEntry[index].startcluster = cluster; // copy the location of the first datacluster to the directoryentry. |
DirectoryEntry[index].size = 0; // the new createted file has no content yet. |
file.directory_sector = (u32) (CWD + sector_offset); |
file.directory_index = (u8) index; |
retvalue = 1; |
SDC_PutSector((u32)(CWD + sector_offset),file.buffer); |
} |
index++; |
cnt_entries_searched++; |
file->SectorOfCurrCluster = 0; // start reading new cluster at first sector of the cluster. |
} |
else // the last cluster was allready reached |
{ |
file->SectorOfCurrCluster--; // jump back to the last sector in the last cluster |
file->ByteOfCurrSector = BYTES_PER_SECTOR; // set ByteOfCurrSector one byte over sector end |
} |
} |
if(!retvalue) // file not found in this sector so take next sector. |
{ |
index = 0; |
sector_offset++; |
} |
} |
while((cnt_entries_searched< PossibleRootEntries) && (!retvalue)); |
} |
return(retvalue); // return 1 if file has been created otherwise return 0. |
return(c); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 SeekSubDirectory(s8 *fname) |
// |
// Description: looks for the specified directory within the CWD. |
// |
// Returnvalue: If the specified directory was found the startcluster is returned. otherwise 0. |
//________________________________________________________________________________________________________________________________________ |
u16 SeekSubDirectory(s8 *fname) |
{ |
u16 index = 0; |
u16 end_of_directory_not_reached = 0; // the directory has been read completely without a result. |
u8 i = 0; |
u16 cluster_temp = 0; |
s8 name[11] = " "; |
File file; |
SeperateFileName(fname,name); |
/********************************************************************************************************************************************/ |
/* Function: fputc_( const s8 c, File *file); */ |
/* */ |
/* Description: This function writes a byte to the specified file and takes care of writing the necessary FAT- Entries. */ |
/* next sector of the cluster is read. If the last sector of the cluster read the next cluster will be searched in FAT. */ |
/* */ |
/* Returnvalue: The function returns the character written to the stream or EOF on error. */ |
/********************************************************************************************************************************************/ |
s16 fputc_(const s8 c, File_t *file) |
{ |
u32 curr_sector = 0; |
file.cluster_pointer = CWD; // start looking for the file in the actual directory. |
file.start_cluster = CWD; // start looking for the file in the actual directory. |
if((!Partition.IsValid) || (file == NULL)) return(EOF); |
// directory starts at sector specified by dir_sector. This can be the rootdirectory or any other directory. |
do |
{ // search the next 16 rootentries in this sector of the roordirectory. |
index=0; |
SDC_GetSector((u32) file.cluster_pointer,file.buffer); // Read the Rootdirectory. |
DirectoryEntry = (struct DirEntry *)file.buffer; |
// If file position equals to file size, then the end of file has reached. |
// In this chase it has to be checked that the ByteOfCurrSector is BYTES_PER_SECTOR |
// and a new cluster should be appended. |
if((file->Position >= file->Size) && (file->ByteOfCurrSector >= BYTES_PER_SECTOR)) |
{ |
if(!AppendCluster(file)) return(EOF); |
} |
while((!cluster_temp)&&(index<16)) |
curr_sector = file->FirstSectorOfCurrCluster; |
curr_sector += file->SectorOfCurrCluster; |
if(file->SectorInCache != curr_sector) |
{ |
file->SectorInCache = curr_sector; |
if(SD_SUCCESS != SDC_GetSector(file->SectorInCache, file->Cache)) |
{ |
i=0; |
if(DirectoryEntry[index].name[0] != 0xe5) // ignore deleted items. |
{ |
while((i<=10)&&(DirectoryEntry[index].name[i] == name[i])) |
Fat16_Deinit(); |
return(EOF); |
} |
} |
file->Cache[file->ByteOfCurrSector] = (u8)c; // write databyte into the buffer. The byte will be written to the device at once |
if(file->Size == file->Position) file->Size++; // a character has been written to the file so the size is incremented only when the character has been added at the end of the file. |
file->Position++; // the actual positon within the file. |
file->ByteOfCurrSector++; // goto next byte in sector |
if(file->ByteOfCurrSector >= BYTES_PER_SECTOR) // if the end of this sector is reached yet |
{ // save the sector to the sd-card |
if(SD_SUCCESS != SDC_PutSector(file->SectorInCache, file->Cache)) |
{ |
Fat16_Deinit(); |
return(EOF); |
} |
file->ByteOfCurrSector = 0; // reset byte location |
file->SectorOfCurrCluster++; // next sector |
if(file->SectorOfCurrCluster >= Partition.SectorsPerCluster)// if end of cluster is reached, the next datacluster has to be searched in the FAT. |
{ |
if(!GetNextCluster(file)) // Sets the clusterpointer of the file to the next datacluster. |
{ // if current cluster was the last cluster of the file |
if(!AppendCluster(file)) // append a new and free cluster at the end of the file. |
{ |
i++; |
file->SectorOfCurrCluster--; // jump back to last sector of last cluster |
file->ByteOfCurrSector = BYTES_PER_SECTOR; // set byte location to 1 byte over sector len |
return(EOF); |
} |
} |
if((i==11) && (DirectoryEntry[index].attribute & _DIRECTORY)) // entry found!! -> reading startcluster of entry from offset 26. |
else // next cluster |
{ |
cluster_temp = (u16)DirectoryEntry[index].startcluster; |
} |
index++; |
file->SectorOfCurrCluster = 0; // start reading new cluster at first sector of the cluster. |
} |
} |
if(!cluster_temp) // file not found in this sector so take next sector. |
{ |
end_of_directory_not_reached = GetNextCluster(&file); |
} |
} |
while((end_of_directory_not_reached) && (!cluster_temp)); |
return(cluster_temp); |
return(0); |
} |
/****************************************************************************************************************************************/ |
/* Function: fread_(void *buffer, s32 size, s32 count, File *File); */ |
/* */ |
/* Description: This function reads count objects of the specified size */ |
/* from the actual position of the file to the specified buffer. */ |
/* */ |
/* Returnvalue: The function returns the number of objects (not bytes) read from the file. */ |
/****************************************************************************************************************************************/ |
u32 fread_(void *buffer, u32 size, u32 count, File_t *file) |
{ |
u32 object_cnt = 0; // count the number of objects read from the file. |
u32 object_size = 0; // count the number of bytes read from the actual object. |
u8 *pbuff = 0; // a pointer to the actual bufferposition. |
u8 success = 1; // no error occured during read operation to the file. |
s16 c; |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 mkdir_(u8 *) |
// |
// Description: This function checks if the directory to be created already exists. If not the directory will be created. |
// |
// |
// returnvalue: 1 if the directory could be created. |
//________________________________________________________________________________________________________________________________________ |
if((!Partition.IsValid) || (file == NULL) || (buffer == NULL)) return(0); |
u8 mkdir_(s8 *fname) |
{ |
u8 retvalue = 0; |
pbuff = (u8 *) buffer; // cast the void pointer to an u8 * |
retvalue = SeekSubDirectory(fname); // check wether the specified directory already exists. |
if(!retvalue) |
while((object_cnt < count) && success) |
{ |
CreateSubDirectory(fname); // if directory doesn't exist, create it. |
retvalue = 1; |
} |
else |
{ |
retvalue = 0; |
} |
return(retvalue); |
object_size = size; |
while((size > 0) && success) |
{ |
c = fgetc_(file); |
if(c != EOF) |
{ |
*pbuff = (u8)c; // read a byte from the buffer to the opened file. |
pbuff++; |
size--; |
} |
else // error or end of file reached |
{ |
success = 0; |
} |
} |
if(success) object_cnt++; |
} |
return(object_cnt); // return the number of objects succesfully read from the file |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 chdir_(u8 *) |
// |
// Description: This function changes the CWD to the directory specified. |
// |
// |
// returnvalue: 1 if the directory could be changed. |
//________________________________________________________________________________________________________________________________________ |
u8 chdir_(s8 *fname) |
/****************************************************************************************************************************************/ |
/* Function: fwrite_(void *buffer, s32 size, s32 count, File *file); */ |
/* */ |
/* Description: This function writes count objects of the specified size */ |
/* from the buffer pointer to the actual position in the file. */ |
/* */ |
/* Returnvalue: The function returns the number of objects (not bytes) read from the file. */ |
/****************************************************************************************************************************************/ |
u32 fwrite_(void *buffer, u32 size, u32 count, File_t *file) |
{ |
u8 retvalue = 0; |
s8 name[11] = {" "}; |
u32 ultemp = 0; |
u32 object_cnt = 0; // count the number of objects written to the file. |
u32 object_size = 0; // count the number of bytes written from the actual object. |
u8 *pbuff = 0; // a pointer to the actual bufferposition. |
u8 success = 1; // no error occured during write operation to the file. |
s16 c; |
SeperateFileName(fname,name); |
if((!Partition.IsValid) || (file == NULL) || (buffer == NULL)) return(0); |
pbuff = (u8 *) buffer; // cast the void pointer to an u8 * |
ultemp = (u32)SeekSubDirectory(name); |
if(ultemp >= 2) |
while((object_cnt < count) && success) |
{ |
ultemp -=2; // Clusterposition is ((position in FAT)-2). first two entries in FAT are reserved. |
ultemp *= SectorsPerCluster; // Calculate relative sectorindex of first datacluster. |
ultemp += FirstDataCluster; |
CWD = ultemp; |
retvalue = 1; |
} |
else |
{ |
CWD = RootDirectory; |
retvalue = 1; |
} |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 FindItem(s8 *fname, Find *) |
// |
// Description: finds an item (file or directory) within common working directory (cwd). Wildcards '*' or '?' will be considered. |
// |
// Returnvalue: If an item was found this function returns '1' else '0'. |
//________________________________________________________________________________________________________________________________________ |
u8 FindItem(Find *item) |
{ |
u16 index = 0; |
u16 end_of_directory_not_reached = 0; // the directory has been read completely without a result. |
u8 i = 0; |
u8 readpointer = 0; |
u8 writepointer = 0; |
u8 retvalue = 0; |
File file; |
file.cluster_pointer = item->cluster_pointer; |
file.start_cluster = item->cluster_pointer; |
index = item->directory_index; |
// directory starts at sector specified by dir_sector. This can be the rootdirectory or any other directory. |
do |
{ // search the next 16 rootentries in this sector of the roordirectory. |
SDC_GetSector((u32) file.cluster_pointer,file.buffer); // Read the Rootdirectory. |
DirectoryEntry = (struct DirEntry *)file.buffer; |
while((!retvalue)&&(index<16)) |
object_size = size; |
while((size > 0) && success) |
{ |
i=0; |
if(DirectoryEntry[index].name[0] != 0xe5) // ignore deleted items. |
c = fputc_(*pbuff, file); // write a byte from the buffer to the opened file. |
if(c != EOF) |
{ |
while((i<=10)&&((DirectoryEntry[index].name[i] == item->searchstring[i]) || (item->searchstring[i]=='*') || item->searchstring[i]=='?')) |
{ |
i++; |
} |
pbuff++; |
size--; |
} |
if((i==11) && (DirectoryEntry[index].attribute & item->attribute)) |
else |
{ |
for(readpointer=0;readpointer<=10;readpointer++) |
{ |
if(DirectoryEntry[index].name[readpointer] != ' ') |
{ |
item->name[writepointer] = DirectoryEntry[index].name[readpointer]; // copy the name of the item found to the find_structure. |
writepointer++; |
} |
else if((readpointer==7) && (DirectoryEntry[index].attribute == _FILE)) // if the item found is a file |
{ |
if(DirectoryEntry[index].name[readpointer] != ' ') |
{ |
item->name[writepointer] = DirectoryEntry[index].name[readpointer]; // copy the name of the item found to the find_structure. |
writepointer++; |
} |
item->name[writepointer] = '.'; // then seperate the name and the extension by a '.' at index 8. |
writepointer++; |
} |
} |
item->startcluster = (u16)DirectoryEntry[index].startcluster; |
item->directory_index = ++index; |
item->cluster_pointer = file.cluster_pointer; |
retvalue = 1; |
success = 0; |
} |
index++; |
} |
if(!retvalue) // file not found in this sector so take next sector. |
{ |
end_of_directory_not_reached = GetNextCluster(&file); |
} |
index = 0; |
} |
while((end_of_directory_not_reached) && (!retvalue)); |
if(success) object_cnt++; |
} |
return(retvalue); |
} |
return(object_cnt); // return the number of objects succesfully written to the file |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 findfirst(s8 *fname, Find *) |
// |
// Description: finds the first item (file or directory) within common working directory (cwd). Wildcards '*' or '?' will be considered. |
// |
// Returnvalue: If an item was found this function returns '1' else '0'. |
//________________________________________________________________________________________________________________________________________ |
u8 findfirst_(s8 *fname, Find *item, u8 attribute) |
/****************************************************************************************************************************************/ |
/* Function: fputs_(const s8 *string, File_t *File); */ |
/* */ |
/* Description: This function writes a string to the specified file. */ |
/* */ |
/* Returnvalue: The function returns a no negative value or EOF on error. */ |
/****************************************************************************************************************************************/ |
s16 fputs_(const s8 *string, File_t *file) |
{ |
u8 retvalue = 0; |
u8 i = 0; |
for(i=0;i<=11;i++) |
{ |
item->searchstring[i] = '*'; // initialise the searchstring with wildcards. |
item->name[i] = 0; |
} |
SeperateFileName(fname,item->searchstring); |
u8 i=0; |
s16 c = 0; |
item->cluster_pointer = CWD; // findfirst_ starts at the beginning of the cwd. |
item->directory_index = 0; |
item->attribute = attribute; |
retvalue = FindItem(item); |
if((!Partition.IsValid) || (file == NULL) || (string == NULL)) return(0); |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 findnext(Find *) |
// |
// Description: finds the first item (file or directory) within common working directory (cwd). Wildcards '*' or '?' will be considered. |
// |
// Returnvalue: If an item was found this function returns '1' else '0'. |
//________________________________________________________________________________________________________________________________________ |
u8 findnext_(Find *item) |
{ |
u8 retvalue = 0; |
u8 i = 0; |
for(i=0;i<=11;i++) // copy the name of the searched item to the findstructure. |
while((string[i] != 0)&& (c != EOF)) |
{ |
item->name[i] = 0; |
c = fputc_(string[i], file); |
i++; |
} |
retvalue = FindItem(item); // search the item. |
return(retvalue); |
return(c); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 fdelete(s8 *fname) |
// |
// Description: Deletes the file specified by fname. |
// |
// Returnvalue: |
//________________________________________________________________________________________________________________________________________ |
u8 fdelete_(s8 *fname) |
/****************************************************************************************************************************************/ |
/* Function: fgets_(s8 *, s16 , File_t *); */ |
/* */ |
/* Description: This function reads a string from the file to the specifies string. */ |
/* */ |
/* Returnvalue: A pointer to the string read from the file or 0 on error. */ |
/****************************************************************************************************************************************/ |
u8 * fgets_(s8 *string, s16 length, File_t *file) |
{ |
u8 retvalue = 0; |
Find item; |
u8 *pbuff; |
s16 c = 0; |
retvalue = findfirst_(fname,&item, _FILE); // look for the item to be deleted. |
if(retvalue); // item found? |
if((!Partition.IsValid) || (file == NULL) || (string == NULL) || (length = 0)) return (0); |
pbuff = string; |
while(length > 1) // read the count-1 characters from the file to the string. |
{ |
DeleteClusterChain(item.startcluster); // delete all fatentries of the item. |
DeleteDirectoryEntry(&item); // free the directoryentry. |
do |
c = fgetc_(file); // read a character from the opened file. |
switch(c) |
{ |
retvalue = findnext_(&item); |
if(retvalue) |
{ |
DeleteClusterChain(item.startcluster); // delete all fatentries of the item. |
DeleteDirectoryEntry(&item); // free the directoryentry. |
} |
case 0x0A: |
c = 0; // set string terminator |
length = 1; // stop loop |
break; |
case EOF: |
c = 0; // set string terminator |
length = 1; // stop loop |
break; |
} |
while(retvalue); |
*pbuff = (u8)c; // copy byte to string |
length--; |
pbuff++; |
} |
return(retvalue); |
return(string); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 rmdir(s8 *fname) |
// |
// Description: Deletes the directory specified by dname. |
// |
// Returnvalue: |
//________________________________________________________________________________________________________________________________________ |
u8 rmdir_(s8 *dname) |
/****************************************************************************************************************************************/ |
/* Function: fexist_(const u8*); */ |
/* */ |
/* Description: This function checks if a file already exist. */ |
/* */ |
/* Returnvalue: 1 if the file exist else 0. */ |
/****************************************************************************************************************************************/ |
u8 fexist_(const s8* filename) |
{ |
u8 retvalue = 0; |
Find item; |
retvalue = findfirst_(dname,&item, _DIRECTORY); // look for the item to be deleted. |
if(retvalue); // item found? |
{ |
DeleteClusterChain(item.startcluster); // delete all fatentries of the item. |
DeleteDirectoryEntry(&item); // free the directoryentry. |
do |
{ |
retvalue = findnext_(&item); |
if(retvalue) |
{ |
DeleteClusterChain(item.startcluster); // delete all fatentries of the item. |
DeleteDirectoryEntry(&item); // free the directoryentry. |
} |
} |
while(retvalue); |
} |
return(retvalue); |
u8 exist = 0; |
File_t *file = 0; |
file = LockFilePointer(); |
exist = FileExist(filename, ATTR_NONE, ATTR_SUBDIRECTORY|ATTR_VOLUMELABEL, file); |
UnlockFilePointer(file); |
return(exist); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u16 feof_(File *file) |
// |
// Description: This function checks wether the end of the file has been reached. |
// |
// Returnvalue: 0 if the end of the file was not reached otherwise 1. |
//________________________________________________________________________________________________________________________________________ |
u16 feof_(File *file) |
/****************************************************************************************************************************************/ |
/* Function: feof_(File_t *File); */ |
/* */ |
/* Description: This function checks wether the end of the file has been reached. */ |
/* */ |
/* Returnvalue: 0 if the end of the file was not reached otherwise 1. */ |
/****************************************************************************************************************************************/ |
u8 feof_(File_t *file) |
{ |
if(((file->fileposition)+1) < (file->filesize)) |
if(((file->Position)+1) < (file->Size)) |
{ |
return(0); |
} |
1539,3 → 1813,5 |
return(1); |
} |
} |
/trunk/fat16.h |
---|
1,263 → 1,69 |
#ifndef __fat16_h |
#define __fat16_h |
#ifndef _FAT16_H |
#define _FAT16_H |
//________________________________________________________________________________________________________________________________________ |
// |
// Userspecific definitions |
// Definitions |
// |
//________________________________________________________________________________________________________________________________________ |
#define __MAX_FILES_USED 1 // The number of files that can be opened simultaneously. |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of a filepointer |
// |
//________________________________________________________________________________________________________________________________________ |
#define _UNUSED 1 // Bits used in the attribute of an directory entry. |
#define _USED 2 |
#define _ARCHIVE 2 |
#define _READ_ONLY 4 |
#define _SYSTEM 8 |
#define _DIRECTORY 16 |
#define _FILE 32 |
typedef struct afile |
//#define __USE_TIME_DATE_ATTRIBUTE |
#define FILE_MAX_OPEN 3 // The number of files that can accessed simultaneously. |
#define SEEK_SET 0 |
#define SEEK_CUR 1 |
#define SEEK_END 2 |
#define EOF (-1) |
#define BYTES_PER_SECTOR 512 |
/* |
________________________________________________________________________________________________________________________________________ |
Structure of a filepointer |
________________________________________________________________________________________________________________________________________ |
*/ |
typedef struct |
{ |
u32 start_cluster; // Sectorpointer to the first sector of the first datacluster of the file. |
u32 cluster_pointer; // Pointer to the cluster which is edited at the moment. |
u8 sector_index; // The sector which is edited at the moment (cluster_pointer + sector_index). |
u16 byte_index; // The bytelocation within the current sector (cluster_pointer + sector_index + byte_index). |
u8 mode; // mode of fileoperation (read,write) |
u32 filesize; // the size of the opend file in bytes. |
u32 fileposition; // pointer to a character within the file 0 < fileposition < filesize |
u32 sector_in_buffer; // the last sector read, wich is still in the sectorbuffer. |
u32 directory_root_sector; // pointer to the root of the |
u32 directory_sector; // the sectorposition where the directoryentry has been made. |
u8 directory_index; // the index to the directoryentry within the specified sector. |
u8 attribute; // the attribute of the file opened. |
u8 buffer[512]; // Buffer for read and write operation from or to the mmc. |
u8 state; // state of the filepointer (used/unused/...) |
} File; |
u32 FirstSectorOfFirstCluster; // First sector of the first cluster of the file. |
u32 FirstSectorOfCurrCluster; // First sector of the cluster which is edited at the moment. |
u8 SectorOfCurrCluster; // The sector within the current cluster. |
u16 ByteOfCurrSector; // The byte location within the current sector. |
u8 Mode; // Mode of fileoperation (read,write) |
u32 Size; // The size of the opend file in bytes. |
u32 Position; // Pointer to a character within the file 0 < fileposition < filesize |
u32 DirectorySector; // the sectorposition where the directoryentry has been made. |
u16 DirectoryIndex; // The index to the directoryentry within the specified sector. |
u8 Attribute; // The attribute of the file opened. |
u8 Cache[BYTES_PER_SECTOR]; // Cache for read and write operation from or to the sd-card. |
u32 SectorInCache; // The last sector read, which is still in the sector cache. |
u8 State; // State of the filepointer (used/unused/...) |
} File_t; |
typedef enum |
{ |
NOT_INITIALIZED, |
INITIALIZED |
}Fat16_VolumeState_t; |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of an item to find within the cwd |
// |
//________________________________________________________________________________________________________________________________________ |
struct volume |
{ |
Fat16_VolumeState_t state; // state of the volume |
} str_Volume; |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of an item to find within the cwd |
// |
//________________________________________________________________________________________________________________________________________ |
typedef struct find |
{ |
s8 name[12]; // filename + extension or directoryname of the item found within the cwd. |
s8 searchstring[13]; |
u32 cluster_pointer; // Sectorpointer to the sector of the item searched within the cwd. |
u16 startcluster; // pointer to the first datacluster of the item found in the cwd. |
u32 filesize; // the size of the opend file in bytes. |
u32 directory_sector; // the sector within the actual cluster where the directoryentry was found. |
u8 directory_index; // the index to the directoryentry within the specified sector. |
u8 attribute; // the attribute of the file opened. |
} Find; |
//________________________________________________________________________________________________________________________________________ |
// |
// Directoryentries |
// |
//________________________________________________________________________________________________________________________________________ |
struct DirEntry |
{ |
u8 name[8]; // 8 bytes name. |
u8 extension[3]; // 3 bytes extension. |
u8 attribute; // attribute of the directory entry (unused,archive,read-only,system,directory,volume) |
u8 reserved[10]; // reserved bytes within the directory entry. |
u16 time; // time and |
u16 date; // date of last write acces to the file or directory. |
u16 startcluster; // first cluster of the file or directory. |
u32 size; // size of the file or directory in bytes. |
} __attribute__((packed)); |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of an entry within the fileallocationtable. |
// |
//________________________________________________________________________________________________________________________________________ |
struct FatEntry |
{ |
u16 next_cluster; // the next cluster of the file. |
} __attribute__((packed)); |
//________________________________________________________________________________________________________________________________________ |
// |
// Partitions |
// |
//________________________________________________________________________________________________________________________________________ |
#define _EMPTY 0x00 |
#define _FAT12 0x01 |
#define _FAT16_ST_32_MB 0x04 |
#define _EXTENDED 0x05 |
#define _FAT16_LT_32_MB 0x06 |
#define _HPFS 0x07 |
#define _FAT32 0x0B |
#define _FAT32_BIOS_Extension 0x0C |
#define _FAT16_32_MB_BIOS_Extension 0x0E |
#define _EXTENDED_BIOS_Extension 0x0F |
#define _EISA 0x12 |
#define _DYNAMIC 0x42 |
#define _Linux_Swap 0x82 |
#define _Linux_Native 0x83 |
#define _Linux_LVM 0x8E |
#define _FreeBSD 0xA5 |
#define _OpenBSD 0xA6 |
#define _NetBSD 0xA9 |
struct PartitionEntry |
{ |
u8 PartitionState; |
u8 BeginningHead; |
u16 BeginningCylinder; |
u8 Type; |
u8 EndHead; |
u16 EndCylinder; |
u32 NoSectorsBeforePartition; |
u32 NoSectorsPartition ; |
} __attribute__((packed)); |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of the VolumeBootRecord |
// |
//________________________________________________________________________________________________________________________________________ |
struct VBR_Entry |
{ |
u8 dummy[11]; |
u16 bps; |
u8 SectorsPerCluster; |
u16 ReservedSectors; |
u8 NoFATCopies; |
u16 MaxRootEntries; |
u16 dummy2; |
u8 dummy3; |
u16 SectorsPerFAT; |
} __attribute__((packed)); |
//________________________________________________________________________________________________________________________________________ |
// |
// Structure of the MasterBootRecord |
// |
//________________________________________________________________________________________________________________________________________ |
#define _MBR_SECTOR 0 // The MasterBootRecord is located in sector 0 |
struct MBR_Entry |
{ |
u8 ExecutableCode[446]; |
struct PartitionEntry PartitionEntry1; |
struct PartitionEntry PartitionEntry2; |
struct PartitionEntry PartitionEntry3; |
struct PartitionEntry PartitionEntry4; |
u16 ExecutableMarker; |
} __attribute__((packed)); |
//________________________________________________________________________________________________________________________________________ |
// |
// API to the FAT16 filesystem |
// |
//________________________________________________________________________________________________________________________________________ |
extern u8 InitFat16(void); |
extern File * fopen_(s8 *fname,s8 mode); |
extern s16 fflush_(File *file); |
extern void fclose_(File *file); |
extern u32 fread_(void *buffer, u32 size, u32 count, File *file); |
extern u32 fwrite_(void *buffer, u32 size, u32 count, File *file); |
extern s16 fseek_(File *file, s32 offset, s16 origin); |
extern s16 fgetchar_(File *file); |
extern u8 fputchar_(File *file,s8 c); |
extern u8 fputs_(File *file,s8 *string); |
extern s8 * fgets_(s8 *s, s16 count, File *file); |
extern s16 frename_(s8 *oldname, s8 *newname); |
extern u8 fexist_(s8 *fname); |
extern u8 mkdir_(s8 *fname); |
extern u8 chdir_(s8 *fname); |
extern u8 findfirst_(s8 *fname, Find *item, u8 attribute); |
extern u8 findnext_(Find *item); |
extern u16 feof_(File *); |
u8 Fat16_Init(void); |
u8 Fat16_Deinit(void); |
File_t *fopen_(const s8 *filename, const s8 mode); |
s16 fclose_(File_t *file); |
u8 fexist_(const s8 *filename); |
s16 fflush_(File_t *file); |
s16 fseek_(File_t *file, s32 offset, s16 origin); |
s16 fgetc_(File_t *file); |
s16 fputc_(s8 c, File_t *file); |
u32 fread_(void *buffer, u32 size, u32 count, File_t *file); |
u32 fwrite_(void *buffer, u32 size, u32 count, File_t *file); |
s16 fputs_(const s8 *string, File_t *file); |
u8 * fgets_(s8 *string, s16 length, File_t *file); |
u8 feof_(File_t *file); |
//________________________________________________________________________________________________________________________________________ |
// |
// Functions needed internaly for the fat16 implementation |
// |
//________________________________________________________________________________________________________________________________________ |
#endif //_FAT16_H |
extern u8 SeekFileInDirectory(s8*fname, File *file); |
extern u8 CreateFileInDirectory(s8*fname, File *file); |
extern u16 FindNextFreeCluster(File *file); |
extern void SeperateFileName(s8*fname, s8*name); |
extern u8 ScanSubDirectories(s8*fname, File *file); |
extern u16 GetNextCluster(File *file); |
extern u8 AppendCluster(File *file); |
extern u16 GetFatClusterOffset(File *file); |
extern u16 GetFatSectorIndex(File *file); |
extern File * ReserveFilePointer(void); |
extern u16 SeekSubDirectory(s8 *fname); |
extern u8 CreateSubDirectory_(s8 *fname); |
extern u8 FindItem(Find *); |
extern void FreeFilePointer(File *file); |
//________________________________________________________________________________________________________________________________________ |
// |
// Vaiables needed internaly for the fat16 implementation |
// |
//________________________________________________________________________________________________________________________________________ |
extern u8 SectorsPerCluster; |
extern u32 CWD; |
#endif |
/trunk/fifo.c |
---|
0,0 → 1,45 |
#include "fifo.h" |
u8 fifo_init (fifo_t *f, u8 *buffer, const u8 size) |
{ |
if(f == NULL) return(0); |
f->buffer = buffer; |
f->count = 0; |
f->pread = buffer; |
f->pwrite = buffer; |
f->size = size; |
return(1); |
} |
u8 fifo_put (fifo_t *f, const u8 data) |
{ |
if (f->count >= f->size) return(0); // return 0 in case of FIFO overflow. |
u8 * pwrite = f->pwrite; |
*(pwrite++) = data; // copy data byte to buffer |
if(pwrite >= f->buffer + f->size) pwrite = f->buffer; // start at the begining after reaching the end |
f->pwrite = pwrite; |
f->count++; |
return 1; |
} |
u8 fifo_get (fifo_t *f, u8 *pdata) |
{ |
if((f == NULL) || (pdata == NULL)) return(0); |
if(!f->count) return(0); |
u8 *pread = f->pread; |
*pdata = *(pread++); |
if(pread >= f->buffer + f->size) pread = f->buffer; // start at the begining after reaching the end |
f->pread = pread; |
f->count--; |
return(1); |
} |
u8 fifo_get_wait (fifo_t *f, u8 *pdata) |
{ |
while (!f->count); |
return fifo_get(f, pdata); |
} |
/trunk/fifo.h |
---|
0,0 → 1,45 |
#ifndef _FIFO_H_ |
#define _FIFO_H_ |
#include <stdio.h> |
#include "91x_lib.h" |
// the fifo object |
typedef struct |
{ |
u8 *buffer; // pointrer to start of the ringbuffer |
u8 count; // number of characters in FIFO |
u8 size; // buffer size |
u8 *pread; // read pointer |
u8 *pwrite; // write pointer |
} fifo_t; |
/* |
The initialization of the FIFO sets the read/write pointers etc.. |
The FIFO uses the buffer 'buf' which byte length must 'size'. |
Returns 1 on success ans 0 in case of an error. |
*/ |
u8 fifo_init (fifo_t* f, u8* buf, const u8 size); |
/* |
Puts a byte into the FIFO. Returns 1 on success and 0 in case of FIFO overflow. |
*/ |
u8 fifo_put (fifo_t* f, const u8 data); |
/* |
Get the next byte from the FIFO as int. Returns 0 if the FIFO is empty. |
*/ |
u8 fifo_get (fifo_t* f, u8* pdata); |
/* |
Get the next byte out of the FIFO. If the FIFO is empty the function blocks |
until the next byte is put into the FIFO. |
*/ |
u8 fifo_get_wait (fifo_t* f, u8* pdata); |
#endif /* _FIFO_H_ */ |
/trunk/i2c.c |
---|
54,176 → 54,440 |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdlib.h> |
#include <string.h> |
#include "91x_lib.h" |
#include "i2c.h" |
#include "uart1.h" |
#include "timer.h" |
#include "main.h" |
#include "led.h" |
#include "spi_slave.h" |
u8 I2C_RxBufferSize, I2C_TxBufferSize; |
u8 *I2C_TxBuffer, *I2C_RxBuffer; |
u8 Tx_Idx=0, Rx_Idx=0, I2C_Direction; |
u8 I2C_Command; |
struct str_I2C_Heading I2C_Heading; |
struct str_I2C_WriteNickRoll I2C_WriteNickRoll; |
struct str_I2C_Mag I2C_Mag; |
struct str_I2C_EEPROM I2C_ReadEEPROM, I2C_WriteEEPROM; |
struct str_I2C_Version I2C_Version; |
struct str_I2C_WriteCal I2C_WriteCal; |
u8 CompassUpdateActiv = 0; |
u8 CompassCalState = 0; |
volatile I2C_State_t I2C_State = I2C_OFF; |
// rxbuffer |
volatile u8 I2C_RxBufferSize; |
volatile u8 *I2C_RxBuffer; |
volatile u8 Rx_Idx = 0; |
// txbuffer |
volatile u8 I2C_TxBufferSize; |
volatile u8 *I2C_TxBuffer; |
volatile u8 Tx_Idx = 0; |
volatile u8 I2C_Direction; |
volatile u8 I2C_Command; |
volatile I2C_Heading_t I2C_Heading; |
volatile I2C_WriteAttitude_t I2C_WriteAttitude; |
volatile I2C_Mag_t I2C_Mag; |
volatile I2C_Version_t MK3MAG_Version; |
volatile I2C_Cal_t I2C_WriteCal; |
volatile I2C_Cal_t I2C_ReadCal; |
volatile u8 I2C_ReadRequest = 0; |
volatile u32 I2C1_Timeout = 0; |
volatile u32 CheckI2COkay = 0; |
volatile u8 I2C_PrimRxBuffer[10]; // must be larger than any of the secondary rx buffers |
//-------------------------------------------------------------- |
void I2C1_Init(void) |
{ |
I2C_InitTypeDef I2C_Struct; |
GPIO_InitTypeDef GPIO_Struct; |
I2C_InitTypeDef I2C_Struct; |
GPIO_InitTypeDef GPIO_InitStructure; |
SerialPutString("I2C init..."); |
SCU_APBPeriphClockConfig(__I2C1,ENABLE); |
I2C_DeInit(I2C1); |
SerialPutString("\r\n I2C init..."); |
// enable Port 2 peripherie |
SCU_APBPeriphClockConfig(__GPIO2, ENABLE); |
// disable a reset state |
SCU_APBPeriphReset(__GPIO2, DISABLE); |
GPIO_Struct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; |
GPIO_Struct.GPIO_Type = GPIO_Type_OpenCollector; |
GPIO_Struct.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_Struct.GPIO_Alternate=GPIO_OutputAlt2; |
GPIO_Init(GPIO2, &GPIO_Struct); |
// free a busy bus |
I2C_Struct.I2C_GeneralCall = I2C_GeneralCall_Disable; |
I2C_Struct.I2C_Ack = I2C_Ack_Enable; |
I2C_Struct.I2C_CLKSpeed = 20000; |
I2C_Struct.I2C_OwnAddress = I2C_SLAVE_ADDRESS; |
I2C_Init(I2C1, &I2C_Struct); |
// At switch on I2C devices can get in a state where they |
// are still waiting for a command due to all the bus lines bouncing |
// around at startup have started clocking data into the device(s). |
// Enable the ports as open collector port outputs |
// and clock out at least 9 SCL pulses, then generate a stop |
// condition and then leave the clock line high. |
I2C_Cmd(I2C1, ENABLE); |
I2C_ITConfig(I2C1, ENABLE); |
// configure P2.2->I2C1_CLKOUT and P2.3->I2C1_DOUT to normal port operation |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt1; |
GPIO_Init(GPIO2, &GPIO_InitStructure); |
VIC_Config(I2C1_ITLine,VIC_IRQ , 8); |
VIC_ITCmd(I2C1_ITLine, ENABLE); |
u8 i; |
u32 delay; |
// set SCL high and then SDA to low (start condition) |
GPIO_WriteBit(GPIO2, GPIO_Pin_2, Bit_SET); |
delay = SetDelay(1); |
while (!CheckDelay(delay)); |
GPIO_WriteBit(GPIO2, GPIO_Pin_3, Bit_RESET); |
// toggle SCL at least 10 times from high to low to high |
for(i = 0; i < 10; i++) |
{ |
delay = SetDelay(1); |
while (!CheckDelay(delay)); |
I2C_Heading.Heading = 0; |
SerialPutString("ok\n\r"); |
GPIO_WriteBit(GPIO2, GPIO_Pin_2, Bit_RESET); |
delay = SetDelay(1); |
while (!CheckDelay(delay)); |
GPIO_WriteBit(GPIO2, GPIO_Pin_2, Bit_SET); |
} |
delay = SetDelay(1); |
while (!CheckDelay(delay)); |
// create stop condition setting SDA HIGH when SCL is HIGH |
GPIO_WriteBit(GPIO2, GPIO_Pin_3, Bit_SET); |
// reconfigure P2.2->I2C1_CLKOUT and P2.3->I2C1_DOUT |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2; //I2C1_CLKOUT, I2C1_DOUT |
GPIO_Init(GPIO2, &GPIO_InitStructure); |
// enable I2C peripherie |
SCU_APBPeriphClockConfig(__I2C1,ENABLE); |
// reset I2C peripherie |
SCU_APBPeriphReset(__I2C1,ENABLE); |
SCU_APBPeriphReset(__I2C1,DISABLE); |
I2C_DeInit(I2C1); |
I2C_StructInit(&I2C_Struct); |
I2C_Struct.I2C_GeneralCall = I2C_GeneralCall_Disable; |
I2C_Struct.I2C_Ack = I2C_Ack_Enable; |
I2C_Struct.I2C_CLKSpeed = 20000; |
I2C_Struct.I2C_OwnAddress = 0x00; |
I2C_Init(I2C1, &I2C_Struct); |
I2C_TxBuffer = NULL; |
Tx_Idx = 0; |
I2C_TxBufferSize = 0; |
I2C_RxBuffer = NULL; |
Rx_Idx = 0; |
I2C_RxBufferSize = 0; |
I2C_Cmd(I2C1, ENABLE); |
I2C_ITConfig(I2C1, ENABLE); |
VIC_Config(I2C1_ITLine, VIC_IRQ , 0); |
VIC_ITCmd(I2C1_ITLine, ENABLE); |
I2C1_Timeout = SetDelay(1000); |
I2C_Heading.Heading = -1; |
I2C_GenerateSTOP(I2C1, ENABLE); |
I2C_State = I2C_IDLE; |
SerialPutString("ok"); |
} |
//-------------------------------------------------------------- |
void I2C1_IRQHandler(void) |
void I2C1_Deinit(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
switch (I2C_GetLastEvent(I2C1)) |
{ |
case I2C_EVENT_MASTER_MODE_SELECT: // EV5 |
Tx_Idx = 0; |
Rx_Idx = 0; |
I2C_Send7bitAddress(I2C1, I2C_SLAVE_ADDRESS, I2C_Direction); |
// DebugOut.Analog[16]++; |
break; |
SerialPutString("\r\n I2C deinit..."); |
I2C_GenerateStart(I2C1, DISABLE); |
I2C_GenerateSTOP(I2C1, ENABLE); |
VIC_ITCmd(I2C1_ITLine, DISABLE); |
I2C_ITConfig(I2C1, DISABLE); |
I2C_Cmd(I2C1, DISABLE); |
I2C_DeInit(I2C1); |
SCU_APBPeriphClockConfig(__I2C1, DISABLE); |
// set ports to input |
SCU_APBPeriphClockConfig(__GPIO2, ENABLE); |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO2, &GPIO_InitStructure); |
case I2C_EVENT_MASTER_MODE_SELECTED: // EV6 |
// Clear EV6 by set again the PE bit |
I2C1->CR |= 0x20; |
if (I2C_Direction == I2C_MODE_TRANSMITTER) |
{ |
I2C_SendData(I2C1, I2C_Command);//EV8 just after EV6 |
} |
break; |
I2C_TxBuffer = NULL; |
Tx_Idx = 0; |
I2C_TxBufferSize = 0; |
case I2C_EVENT_MASTER_BYTE_TRANSMITTED: // EV8 |
// DebugOut.Analog[17]++; |
if ( Tx_Idx >= I2C_TxBufferSize ) |
{ |
I2C_GenerateSTOP (I2C1, ENABLE); |
Tx_Idx = 0; |
if (I2C_RxBufferSize > 0) // wird Antwort erwartet ? |
{ |
I2C_ReadRequest = 1; |
TimerI2CReadDelay = SetDelay(10); |
} |
} |
else |
{ |
I2C_SendData(I2C1, I2C_TxBuffer[Tx_Idx]); |
Tx_Idx++; |
} |
break; |
I2C_RxBuffer = NULL; |
Rx_Idx = 0; |
I2C_RxBufferSize = 0; |
case I2C_EVENT_MASTER_BYTE_RECEIVED: // EV7 |
DebugOut.Analog[16]++; |
//if (Rx_Idx == 1) DebugOut.Analog[19] = I2C_RxBuffer[0]; |
if (Rx_Idx < I2C_RxBufferSize) |
{ I2C_RxBuffer[Rx_Idx] = I2C_ReceiveData(I2C1); |
I2C_State = I2C_OFF; |
} else I2C_ReceiveData(I2C1); |
I2C1_Timeout = 0; |
I2C_Heading.Heading = -1; |
Rx_Idx++; |
if ( Rx_Idx == I2C_RxBufferSize+1 ) |
{ |
I2C_AcknowledgeConfig (I2C1, DISABLE); |
} |
if ( Rx_Idx == I2C_RxBufferSize+2 ) |
{ |
I2C_GenerateSTOP(I2C1, ENABLE); |
if (I2C_Command == I2C_CMD_READ_HEADING) CompassUpdateActiv = 0; |
} |
break; |
SerialPutString("ok"); |
} |
default: |
break; |
} |
//-------------------------------------------------------------- |
void I2C1_IRQHandler(void) |
{ |
u16 status; |
static u8 crc; |
// detemine I2C State |
status = I2C_GetLastEvent(I2C1); |
if(status & (I2C_FLAG_AF|I2C_FLAG_BERR)) // if an acknowledge failure or bus error occured |
{ // Set and subsequently clear the STOP bit while BTF is set. |
while(I2C_GetFlagStatus (I2C1, I2C_FLAG_BTF) != RESET) |
{ |
I2C_GenerateSTOP (I2C1, ENABLE); // free the bus |
I2C_GenerateSTOP (I2C1, DISABLE); // free the bus |
} |
I2C_State = I2C_IDLE; |
LED_GRN_OFF; |
} |
else |
{ // depending on current i2c state |
switch (status) |
{ |
// the start condition was initiated on the bus |
case I2C_EVENT_MASTER_MODE_SELECT: |
LED_GRN_ON; |
// update current bus state variable |
switch(I2C_Direction) |
{ |
case I2C_MODE_TRANSMITTER: |
I2C_State = I2C_TX_PROGRESS; |
break; |
case I2C_MODE_RECEIVER: |
if ((I2C_RxBuffer == NULL) || (I2C_RxBufferSize == 0)) |
{ |
I2C_GenerateSTOP (I2C1, ENABLE); |
I2C_State = I2C_IDLE; |
return; |
} |
else |
{ |
I2C_State = I2C_RX_PROGRESS; |
} |
break; |
default: // invalid direction |
I2C_GenerateSTOP (I2C1, ENABLE); |
I2C_State = I2C_IDLE; |
LED_GRN_OFF; |
return; |
} |
// enable acknowledge |
I2C_AcknowledgeConfig (I2C1, ENABLE); |
// send address/direction byte on the bus |
I2C_Send7bitAddress(I2C1, I2C_SLAVE_ADDRESS, I2C_Direction); |
break; |
// the address byte was send |
case I2C_EVENT_MASTER_MODE_SELECTED: |
// Clear EV6 by set again the PE bit |
I2C_Cmd(I2C1, ENABLE); |
// reset checksum |
crc = 0; |
switch(I2C_State) |
{ |
case I2C_TX_PROGRESS: |
// send command 1st data byte (allways the command id) |
I2C_SendData(I2C1, I2C_Command); |
crc += I2C_Command; |
Tx_Idx = 0; |
// reset timeout |
I2C1_Timeout = SetDelay(500); // after 500 ms of inactivity the I2C1 bus will be reset |
break; |
case I2C_RX_PROGRESS: |
Rx_Idx = 0; |
break; |
default: // unknown I2C state |
// should never happen |
I2C_GenerateSTOP (I2C1, ENABLE); |
I2C_State = I2C_IDLE; |
break; |
} |
break; |
// the master has transmitted a byte and slave has been acknowledged |
case I2C_EVENT_MASTER_BYTE_TRANSMITTED: |
// some bytes have to be transmitted |
if(Tx_Idx < I2C_TxBufferSize) |
{ |
if(I2C_TxBuffer != NULL) |
{ |
I2C_SendData(I2C1, I2C_TxBuffer[Tx_Idx]); |
crc += I2C_TxBuffer[Tx_Idx]; |
} |
else |
{ |
I2C_SendData(I2C1, 0x00); |
} |
} |
else // the last tx buffer byte was send |
{ |
// send crc byte at the end |
I2C_SendData(I2C1, crc); |
// generate stop or repeated start condition |
if ((I2C_RxBuffer != NULL) && (I2C_RxBufferSize > 0)) // is any answer byte expected? |
{ |
I2C_Direction = I2C_MODE_RECEIVER; // switch to master receiver after repeated start condition |
I2C_GenerateStart(I2C1, ENABLE); // initiate repeated start condition on the bus |
} |
else |
{ // stop communication |
I2C_GenerateSTOP(I2C1, ENABLE); // generate stop condition to free the bus |
I2C_State = I2C_IDLE; // ready for new actions |
LED_GRN_OFF; |
DebugOut.Analog[15]++; |
} |
} |
Tx_Idx++; |
break; |
// the master has received a byte from the slave |
case I2C_EVENT_MASTER_BYTE_RECEIVED: |
// some bytes have to be received |
if (Rx_Idx < I2C_RxBufferSize) |
{ // copy received byte from the data register to the rx-buffer |
I2C_PrimRxBuffer[Rx_Idx] = I2C_ReceiveData(I2C1); |
// update checksum |
crc += I2C_PrimRxBuffer[Rx_Idx]; |
} |
// if the last byte (crc) was received |
else if ( Rx_Idx == I2C_RxBufferSize) |
{ |
// generate a STOP condition on the bus before reading data register |
I2C_GenerateSTOP(I2C1, ENABLE); |
// compare last byte with checksum |
if(crc == I2C_ReceiveData(I2C1)) |
{ // copy primary rx buffer content to rx buffer if exist |
if(I2C_RxBuffer != NULL) |
{ |
memcpy((u8 *)I2C_RxBuffer, (u8 *)I2C_PrimRxBuffer, I2C_RxBufferSize); |
} |
DebugOut.Analog[15]++; |
CheckI2COkay++; |
} |
else // checksum error detected |
{ |
DebugOut.Analog[14]++; |
} |
I2C_State = I2C_IDLE; |
LED_GRN_OFF; |
} |
Rx_Idx++; |
// if the 2nd last byte was received disable acknowledge for the last one |
if ( Rx_Idx == I2C_RxBufferSize ) |
{ |
I2C_AcknowledgeConfig (I2C1, DISABLE); |
} |
break; |
default: |
break; |
} |
} |
} |
//---------------------------------------------------------------- |
void SendI2C_Command(u8 command) |
void I2C1_SendCommand(u8 command) |
{ |
I2C_Command = command; |
//I2C_GenerateSTOP(I2C1, ENABLE); |
// If I2C transmission is in progress |
while (I2C_State != I2C_IDLE) return; // return imediatly if a transfer is still in progress |
// disable I2C IRQ to avoid read/write access to the tx/rx buffer pointers during |
// update of that buffer pointers and length |
I2C_ITConfig(I2C1, DISABLE); |
// update current command id |
I2C_Command = command; |
// set pointers to data area with respect to the command id |
switch (command) |
{ |
case I2C_CMD_VERSION: |
I2C_RxBuffer = (u8 *)&MK3MAG_Version; |
I2C_RxBufferSize = sizeof(MK3MAG_Version); |
I2C_TxBuffer = NULL; |
I2C_TxBufferSize = 0; |
break; |
case I2C_CMD_WRITE_CAL: |
I2C_RxBuffer = (u8 *)&I2C_ReadCal; |
I2C_RxBufferSize = sizeof(I2C_ReadCal); |
I2C_TxBuffer = (u8 *)&I2C_WriteCal; |
I2C_TxBufferSize = sizeof(I2C_WriteCal); |
break; |
case I2C_CMD_READ_MAG: |
I2C_RxBuffer = (u8 *)&I2C_Mag; |
I2C_RxBufferSize = sizeof(I2C_Mag); |
I2C_TxBuffer = NULL; |
I2C_TxBufferSize = 0; |
break; |
case I2C_CMD_READ_HEADING: |
DebugOut.Analog[26] = I2C_Heading.Heading; |
I2C_RxBuffer = (u8 *)&I2C_Heading; |
I2C_RxBufferSize = sizeof(I2C_Heading); |
// updat atitude from spi rx buffer |
I2C_WriteAttitude.Roll = FromFlightCtrl.IntegralRoll; |
I2C_WriteAttitude.Nick = FromFlightCtrl.IntegralNick; |
I2C_TxBuffer = (u8 *)&I2C_WriteAttitude; |
I2C_TxBufferSize = sizeof(I2C_WriteAttitude); |
break; |
default: // unknown command id |
I2C_RxBuffer = NULL; |
I2C_RxBufferSize = 0; |
I2C_TxBuffer = NULL; |
I2C_TxBufferSize = 0; |
break; |
} |
// enable I2C IRQ again |
I2C_ITConfig(I2C1, ENABLE); |
// set direction to master transmitter |
I2C_Direction = I2C_MODE_TRANSMITTER; |
// test on busy flag and clear it |
I2C_CheckEvent( I2C1, I2C_FLAG_BUSY ); |
// initiale start condition on the bus |
I2C_GenerateStart(I2C1, ENABLE); |
// to be continued in the I2C1_IRQHandler() above |
switch (command) |
{ |
case I2C_CMD_VERSION: |
I2C_RxBuffer = (u8 *)&I2C_Version; |
I2C_RxBufferSize = sizeof(I2C_Version); |
I2C_TxBufferSize = 0; |
break; |
case I2C_CMD_WRITE_EEPROM: |
I2C_RxBufferSize = 0; |
I2C_TxBuffer = (u8 *)&I2C_WriteEEPROM; |
I2C_TxBufferSize = sizeof(I2C_WriteEEPROM); |
break; |
case I2C_CMD_WRITE_CAL: |
I2C_RxBufferSize = 0; |
I2C_WriteCal.CalByte = CompassCalState; |
I2C_TxBuffer = (u8 *)&I2C_WriteCal; |
I2C_TxBufferSize = sizeof(I2C_WriteCal); |
break; |
case I2C_CMD_READ_EEPROM: |
I2C_RxBuffer = (u8 *)&I2C_ReadEEPROM.Inhalt; |
I2C_RxBufferSize = 2; |
I2C_TxBuffer = (u8 *)&I2C_ReadEEPROM; |
I2C_TxBufferSize = 1; |
break; |
case I2C_CMD_READ_MAG: |
I2C_RxBuffer = (u8 *)&I2C_Mag; |
I2C_RxBufferSize = sizeof(I2C_Mag); |
I2C_TxBufferSize = 0; |
break; |
case I2C_CMD_READ_HEADING: |
CompassUpdateActiv = 1; |
I2C_RxBuffer = (u8 *)&I2C_Heading; |
I2C_RxBufferSize = sizeof(I2C_Heading); |
I2C_TxBuffer = (u8 *)&I2C_WriteNickRoll; |
I2C_TxBufferSize = sizeof(I2C_WriteNickRoll); |
break; |
} |
} |
/* |
if (I2C_RxBufferSize > 0) |
{ |
I2C_RxBufferSize++; |
if (I2C_RxBufferSize < 3) I2C_RxBufferSize = 3; |
}*/ |
//---------------------------------------------------------------- |
void I2C1_GetMK3MagVersion(void) |
{ |
u8 msg[20]; |
u8 repeat = 10; |
I2C_AcknowledgeConfig (I2C1, ENABLE); |
I2C_Direction = I2C_MODE_TRANSMITTER; |
MK3MAG_Version.Major = 0xFF; |
MK3MAG_Version.Minor = 0xFF; |
MK3MAG_Version.Patch = 0xFF; |
MK3MAG_Version.Compatible = 0xFF; |
I2C_GenerateStart(I2C1, ENABLE); |
while ((MK3MAG_Version.Major == 0xFF) && (repeat != 0)) |
{ |
I2C1_SendCommand(I2C_CMD_VERSION); |
I2C1_Timeout = SetDelay(500); |
while (!CheckDelay(I2C1_Timeout)) if (MK3MAG_Version.Major != 0xFF) break; |
repeat--; |
} |
if (MK3MAG_Version.Major != 0xFF) |
{ |
sprintf(msg, "\n\r MK3Mag V%d.%d%c", MK3MAG_Version.Major, MK3MAG_Version.Minor, 'a' + MK3MAG_Version.Patch); |
SerialPutString(msg); |
sprintf(msg, " Compatible: %d", MK3MAG_Version.Compatible); |
SerialPutString(msg); |
} |
else SerialPutString("\n\rNo version information from MK3Mag."); |
} |
/trunk/i2c.h |
---|
1,68 → 1,76 |
#ifndef __I2C |
#define __I2C |
#ifndef __I2C_H |
#define __I2C_H |
#define I2C_SLAVE_ADDRESS 0x50 |
#define I2C_SLAVE_ADDRESS 0x50 |
#define I2C_CMD_VERSION 0x01 |
struct str_I2C_Version |
{ |
u8 Hauptversion; |
u8 Nebenversion; |
u8 Comp; |
} __attribute__((packed)); |
#define I2C_CMD_VERSION 0x01 |
#define I2C_CMD_READ_MAG 0x02 |
#define I2C_CMD_READ_HEADING 0x03 |
#define I2C_CMD_WRITE_CAL 0x04 |
#define I2C_CMD_WRITE_EEPROM 0x0A |
#define I2C_CMD_READ_EEPROM 0x0B |
struct str_I2C_EEPROM |
typedef struct |
{ |
u8 Adresse; |
u16 Inhalt; |
} __attribute__((packed)); |
u8 Major; |
u8 Minor; |
u8 Patch; |
u8 Compatible; |
} __attribute__((packed)) I2C_Version_t; |
#define I2C_CMD_READ_MAG 0x02 |
struct str_I2C_Mag |
typedef struct |
{ |
u16 MagX; |
u16 MagY; |
u16 MagZ; |
} __attribute__((packed)); |
s16 MagX; |
s16 MagY; |
s16 MagZ; |
} __attribute__((packed)) I2C_Mag_t; |
#define I2C_CMD_READ_HEADING 0x03 |
struct str_I2C_WriteNickRoll |
typedef struct |
{ |
s16 Nick; |
s16 Roll; |
} __attribute__((packed)); |
} __attribute__((packed)) I2C_WriteAttitude_t; |
#define I2C_CMD_WRITE_CAL 0x04 |
struct str_I2C_WriteCal |
typedef struct |
{ |
u8 CalByte; |
u8 Dummy1; |
u8 Dummy2; |
} __attribute__((packed)); |
} __attribute__((packed)) I2C_Cal_t; |
struct str_I2C_Heading |
typedef struct |
{ |
u16 Heading; |
} __attribute__((packed)); |
s16 Heading; |
} __attribute__((packed)) I2C_Heading_t; |
typedef enum |
{ |
I2C_UNDEF, |
I2C_IDLE, |
I2C_TX_PROGRESS, |
I2C_RX_PENDING, |
I2C_RX_PROGRESS, |
I2C_OFF |
} I2C_State_t; |
extern u8 Tx_Idx, Rx_Idx, I2C_Direction; |
extern volatile I2C_State_t I2C_State; |
extern volatile u8 I2C_Direction; |
extern volatile u32 I2C1_Timeout; |
extern struct str_I2C_Heading I2C_Heading; |
extern struct str_I2C_WriteNickRoll I2C_WriteNickRoll; |
extern struct str_I2C_Mag I2C_Mag; |
extern struct str_I2C_EEPROM I2C_ReadEEPROM, I2C_WriteEEPROM; |
extern struct str_I2C_Version I2C_Version; |
extern struct str_I2C_WriteCal I2C_WriteCal; |
extern void I2C1_Init(void); |
extern void SendI2C_Command(u8 command); |
extern u8 CompassUpdateActiv; |
extern volatile u8 I2C_ReadRequest; |
extern u8 CompassCalState; |
extern volatile I2C_Heading_t I2C_Heading; |
extern volatile I2C_WriteAttitude_t I2C_WriteAttitude; |
extern volatile I2C_Mag_t I2C_Mag; |
extern volatile I2C_Version_t MK3MAG_Version; |
extern volatile I2C_Cal_t I2C_WriteCal; |
extern volatile I2C_Cal_t I2C_ReadCal; |
extern volatile u32 CheckI2COkay; |
void I2C1_Init(void); |
void I2C1_Deinit(void); |
void I2C1_SendCommand(u8 command); |
void I2C1_GetMK3MagVersion(void); |
#endif |
#endif // I2C_H |
/trunk/interrupt.c |
---|
54,8 → 54,11 |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "91x_lib.h" |
#include "usb_lib.h" |
#include "fat16.h" |
#include "main.h" |
#include "uart1.h" |
#define global extern /* to declare external variables and functions */ |
extern void USB_Istr(void); |
68,32 → 71,68 |
void Dummy_Handler(void) |
{ |
VIC0->VAR = 0xFF; |
VIC1->VAR = 0XFF; |
VIC0->VAR = 0xFF; |
VIC1->VAR = 0xFF; |
} |
void InitInterrupt(void) |
/* avoid the surprising reset-like behaviour by spurious interrupts */ |
void Interrupt_Init(void) |
{ |
VIC0->DVAR = (u32)Dummy_Handler; |
VIC1->DVAR = (u32)Dummy_Handler; |
} |
/******************************************************************************* |
* Function Name : SWI_Handler |
* Description : This function handles SW exception. |
* Input : None |
* Output : None |
* Return : None |
*******************************************************************************/ |
void SWI_Handler (void) |
{ |
} |
/******************************************************************************* |
* Function Name : Abort_Handler |
* Description : This function handles data abort exception. |
* Input : None |
* Output : None |
* Return : None |
*******************************************************************************/ |
void Abort_Handler (void) |
{ |
SerialPutString("\r\nAbort Handler"); |
while(1) |
{ |
// infinite loop |
} |
} |
/******************************************************************************* |
* Function Name : Undefined_Handler |
* Description : This function handles undefined instruction exception. |
* Input : None |
* Output : None |
* Return : None |
*******************************************************************************/ |
void Undefined_Handler (void) |
{ |
SerialPutString("\r\nUndefined Handler"); |
while(1) |
{ |
// infinite loop |
} |
} |
/******************************************************************************* |
* Function Name : FIQ_Handler |
* Description : This function handles FIQ exception. |
* Input : None |
* Output : None |
* Return : None |
*******************************************************************************/ |
void FIQ_Handler (void) |
{ |
} |
} |
/******************************************************************************* |
* Function Name : Prefetch_Handler |
* Description : This function handles preftetch abort exception. |
100,6 → 139,11 |
*******************************************************************************/ |
void Prefetch_Handler(void) |
{ |
SerialPutString("\r\nPrefetch Handler"); |
while(1) |
{ |
// infinite loop |
} |
} |
/******************************************************************************* |
* Function Name : WDG_IRQHandler |
107,6 → 151,12 |
*******************************************************************************/ |
void WDG_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : SW_IRQHandler |
114,6 → 164,12 |
*******************************************************************************/ |
void SW_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : ARMRX_IRQHandler |
121,6 → 177,12 |
*******************************************************************************/ |
void ARMRX_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : ARMTX_IRQHandler |
128,6 → 190,12 |
*******************************************************************************/ |
void ARMTX_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : TIM0_IRQHandler |
135,14 → 203,24 |
*******************************************************************************/ |
void TIM0_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : TIM1_IRQHandler |
* Description : This function handles the TIM1 interrupt request |
*******************************************************************************/ |
//void TIM1_IRQHandler(void) |
//{ |
//} |
/* |
void TIM1_IRQHandler(void) |
{ |
// write any value to VIC0 VAR // |
VIC0->VAR = 0xFF; |
} |
*/ |
/******************************************************************************* |
* Function Name : TIM2_IRQHandler |
* Description : This function handles the TIM2 interrupt request |
149,6 → 227,12 |
*******************************************************************************/ |
void TIM2_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : TIM3_IRQHandler |
156,6 → 240,12 |
*******************************************************************************/ |
void TIM3_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : USBHP_IRQHandler |
163,7 → 253,9 |
*******************************************************************************/ |
void USBHP_IRQHandler(void) |
{ |
CTR_HP(); |
CTR_HP(); |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : USBLP_IRQHandler |
171,7 → 263,8 |
*******************************************************************************/ |
void USBLP_IRQHandler(void) |
{ |
USB_Istr(); |
USB_Istr(); /*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : SCU_IRQHandler |
179,6 → 272,12 |
*******************************************************************************/ |
void SCU_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : ENET_IRQHandler |
186,6 → 285,12 |
*******************************************************************************/ |
void ENET_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : DMA_IRQHandler |
193,6 → 298,12 |
*******************************************************************************/ |
void DMA_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : CAN_IRQHandler |
200,6 → 311,12 |
*******************************************************************************/ |
void CAN_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : MC_IRQHandler |
207,6 → 324,12 |
*******************************************************************************/ |
void MC_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : ADC_IRQHandler |
214,6 → 337,12 |
*******************************************************************************/ |
void ADC_IRQHandler(void) |
{ |
/*write your handler here*/ |
/* ... */ |
/*write any value to VIC0 VAR*/ |
VIC0->VAR = 0xFF; |
} |
/******************************************************************************* |
* Function Name : UART0_IRQHandler |
226,22 → 355,16 |
* Function Name : UART1_IRQHandler |
* Description : This function handles the UART1 interrupt request |
*******************************************************************************/ |
//void UART1_IRQHandler(void) __attribute__ ((interrupt ("IRQ"))); |
/*void UART1_IRQHandler(void) |
{ |
UART1->DR = UART1->DR; |
UART_ClearITPendingBit(UART1, UART_IT_Receive); |
} |
*/ |
{ |
} */ |
/******************************************************************************* |
* Function Name : UART2_IRQHandler |
* Description : This function handles the UART2 interrupt request |
*******************************************************************************/ |
void UART2_IRQHandler(void) |
/*void UART2_IRQHandler(void) |
{ |
} |
} */ |
/******************************************************************************* |
* Function Name : I2C0_IRQHandler |
* Description : This function handles the I2C0 interrupt request |
302,13 → 425,13 |
* Function Name : EXTIT1_IRQHandler |
* Description : This function handles the EXTIT1 interrupt request |
*******************************************************************************/ |
void EXTIT1_IRQHandler(void) |
void EXTIT1_IRQHandler(void) |
{ |
VIC_ITCmd(EXTIT1_ITLine, DISABLE); |
if(WIU_GetITStatus(WIU_Line11) != RESET) |
{ |
BeepTime = 100; |
InitFat16(); // initialize sd-card file system. |
Fat16_Init(); // initialize sd-card file system. |
WIU_ClearFlag(WIU_Line1); |
WIU_ClearITPendingBit(WIU_Line11); |
/trunk/kml.c |
---|
7,14 → 7,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,21 → 25,21 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
52,22 → 52,21 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdlib.h> |
#include <stdio.h> |
#include "main.h" |
#include "91x_lib.h" |
#include "kml.h" |
#include "kml_header.h" |
#include "fat16.h" |
//________________________________________________________________________________________________________________________________________ |
// Module name: kml.c |
// Module name: kml.c |
// Compiler used: avr-gcc 3.4.5 |
// Last Modifikation: 17.03.2008 |
// Last Modifikation: 20.07.2008 |
// Version: 1.02 |
// Authors: Stephan Busker |
// Authors: Stephan Busker |
// Description: Source files to write gps-coordinates to a file in the kml (keyhole markup language) fileformat |
// Copyright (C) 2007 Stephan Busker |
//........................................................................................................................................ |
76,13 → 75,13 |
// extern u8 KML_DocumentOpen(s8 *, KML_Document_t *); // opens a new kml document. A filename can be specified. |
// extern u8 KML_DocumentClose(KML_Document_t *doc); // closes an open document |
// extern u8 KML_PlaceMarkOpen(s8 *name, KML_Document_t *); // opens a new placemark within the specified document |
// extern u8 KML_PlaceMarkClose( KML_Document_t *); // Closes the placemark |
// extern u8 KML_PlaceMarkClose( KML_Document_t *); // Closes the placemark |
// extern u8 KML_LineStringBegin(KML_Document_t *); // begins a new line within the actual placemark |
// extern u8 KML_LineStringEnd(KML_Document_t *doc); // ends the actual linestring |
// extern u8 KML_LineStringAddPoint(struct str_gps_nav_data, KML_Document_t *); // adds a new point (gps-coordinates) to the actual linestring |
//........................................................................................................................................ |
// ext. functions: |
// |
// ext. functions: |
// |
//........................................................................................................................................ |
// |
// URL: www.Mikro-Control.de |
92,11 → 91,11 |
//________________________________________________________________________________________________________________________________________ |
// Funtion: KML_DocumentInit(KML_Document_t *) |
// |
// Function: KML_DocumentInit(KML_Document_t *) |
// |
// Description: This function initializes the kml-document for further use. |
// |
// |
// |
// Returnvalue: '1' if document was initialized |
//________________________________________________________________________________________________________________________________________ |
104,7 → 103,7 |
{ |
doc->name[0] = 0; // name of the document |
doc->state = DOC_CLOSED; // state of the kml-document |
doc->file = NULL; |
doc->file = NULL; |
doc->place.name[0]=0; |
doc->place.description[0]=0; |
return(1); |
111,12 → 110,12 |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: KML_Document_Open(void); |
// |
// Function: KML_Document_Open(void); |
// |
// Description: This function opens a new KML- document with the specified name and creates the document header within the file. |
// |
// |
// Returnvalue: '1' if the KML- file could be created. |
// |
// Returnvalue: '1' if the KML- file could be created. |
//________________________________________________________________________________________________________________________________________ |
u8 KML_DocumentOpen(s8 *name, KML_Document_t *doc) |
123,15 → 122,17 |
{ |
u8 retvalue = 0; |
KML_DocumentInit(doc); // intialize the document with resetvalues |
doc->file = fopen_(name,'a'); // open a new file with the specified filename on the memorycard. |
if(doc == NULL) return(0); |
KML_DocumentInit(doc); // intialize the document with resetvalues |
doc->file = fopen_(name,'a'); // open a new file with the specified filename on the memorycard. |
if(doc->file != NULL) // could the file be opened? |
{ |
retvalue = 1; // the document could be created on the drive. |
doc->state = DOC_OPENED; // change document state to opened. At next a placemark has to be opened. |
fwrite_(KML_DOCUMENT_HEADER, sizeof(KML_DOCUMENT_HEADER)-1,1,doc->file); // write the KML- footer to the document. |
fwrite_((void*)KML_DOCUMENT_HEADER, sizeof(KML_DOCUMENT_HEADER)-1,1,doc->file);// write the KML- footer to the document. |
} |
return(retvalue); |
138,56 → 139,61 |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: DocumentClose(KML_Document_t *doc); |
// |
// Description: This function closes the document specified by doc. |
// |
// Function: DocumentClose(KML_Document_t *doc); |
// |
// Returnvalue: none |
// Description: This function closes the document specified by doc. |
// |
// |
// Returnvalue: '1' if the KML- file could be closed. |
//________________________________________________________________________________________________________________________________________ |
u8 KML_DocumentClose(KML_Document_t *doc) |
{ |
u8 retvalue = 0; |
u8 retvalue = 1; |
if(doc == NULL) return(0); |
while(doc->state != DOC_CLOSED) // close linestring, placemark and document before closing the file on the memorycard |
{ |
{ |
switch(doc->state) |
{ |
case DOC_LINESTRING_OPENED: |
KML_LineStringEnd(doc); // write terminating tag to end linestring. |
doc->state = DOC_PLACEMARK_OPENED; |
break; |
break; |
case DOC_PLACEMARK_OPENED: // write terminating tag to close placemark. |
KML_PlaceMarkClose(doc); |
doc->state = DOC_OPENED; |
break; |
case DOC_OPENED: // close the file on the memorycard |
break; |
case DOC_OPENED: // close the file on the memorycard |
if(doc->file != NULL) |
{ |
fwrite_(KML_DOCUMENT_FOOTER, sizeof(KML_DOCUMENT_FOOTER)-1,1,doc->file); // write the KML- footer to the document. |
fclose_(doc->file); |
fwrite_((void*)KML_DOCUMENT_FOOTER, sizeof(KML_DOCUMENT_FOOTER)-1,1,doc->file); // write the KML- footer to the document. |
fclose_(doc->file); |
retvalue = 1; |
} |
doc->state = DOC_CLOSED; |
break; |
doc->state = DOC_CLOSED; |
break; |
default: |
doc->state = DOC_CLOSED; |
break; |
} |
}; |
} |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 PlaceMarkOpen(s8 *name, File *file); |
// |
// Function: u8 PlaceMarkOpen(s8 *name, File *file); |
// |
// Description: This function adds a placemark to the document. |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: '1' if the PlaceMark could be opened |
//________________________________________________________________________________________________________________________________________ |
u8 KML_PlaceMarkOpen(s8 *name, KML_Document_t *doc) |
199,19 → 205,19 |
{ |
doc->state = DOC_PLACEMARK_OPENED; |
retvalue = 1; |
fwrite_(KML_PLACEMARK_HEADER, sizeof(KML_PLACEMARK_HEADER)-1,1,doc->file); |
fwrite_((void*)KML_PLACEMARK_HEADER, sizeof(KML_PLACEMARK_HEADER)-1,1,doc->file); |
} |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 PlaceMarkClose(KML_PlaceMark_t *place, File *file); |
// |
// Function: u8 PlaceMarkClose(KML_PlaceMark_t *place, File *file); |
// |
// Description: This function ends the placemark opened before. |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: 1' if the PlaceMark could be closed |
//________________________________________________________________________________________________________________________________________ |
u8 KML_PlaceMarkClose(KML_Document_t *doc) |
223,22 → 229,22 |
{ |
if(doc->file != NULL) |
{ |
doc->state =DOC_OPENED; |
fwrite_(KML_PLACEMARK_FOOTER, sizeof(KML_PLACEMARK_FOOTER)-1,1,doc->file); |
doc->state = DOC_OPENED; |
fwrite_((void*)KML_PLACEMARK_FOOTER, sizeof(KML_PLACEMARK_FOOTER)-1,1,doc->file); |
retvalue = 1; |
} |
} |
return(retvalue); |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 LineStringBegin(KML_Document_t *doc); |
// |
// Function: u8 LineStringBegin(KML_Document_t *doc); |
// |
// Description: This function ends the placemark opened before. |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: '1' if the LineString could be started |
//________________________________________________________________________________________________________________________________________ |
u8 KML_LineStringBegin(KML_Document_t *doc) |
245,11 → 251,11 |
{ |
u8 retvalue = 0; |
if(doc->file != NULL) |
{ |
doc->state = DOC_LINESTRING_OPENED; |
fwrite_(KML_LINESTRING_HEADER, sizeof(KML_LINESTRING_HEADER)-1,1,doc->file); |
fwrite_((void*)KML_LINESTRING_HEADER, sizeof(KML_LINESTRING_HEADER)-1,1,doc->file); |
retvalue = 1; |
} |
257,12 → 263,12 |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 LineStringEnd(KML_Document_t *doc) |
// |
// Function: u8 LineStringEnd(KML_Document_t *doc) |
// |
// Description: This function ends the placemark opened before. |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: '1' if the LineString could be terminated |
//________________________________________________________________________________________________________________________________________ |
u8 KML_LineStringEnd(KML_Document_t *doc) |
269,12 → 275,12 |
{ |
u8 retvalue = 0; |
if(doc->state == DOC_LINESTRING_OPENED); |
if(doc->file != NULL) |
{ |
doc->state = DOC_PLACEMARK_OPENED; |
fwrite_(KML_LINESTRING_FOOTER, sizeof(KML_LINESTRING_FOOTER)-1,1,doc->file); |
fwrite_((void*)KML_LINESTRING_FOOTER, sizeof(KML_LINESTRING_FOOTER)-1,1,doc->file); |
retvalue = 1; |
} |
282,27 → 288,47 |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 LineStringAddPoint(struct str_GPSPosition, KML_Document_t *doc) |
// |
// Function: u8 LineStringAddPoint(gps_data_t, KML_Document_t *doc) |
// |
// Description: This function adds a point to the specified document. |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: '1' if a ppoint was added could be started |
//________________________________________________________________________________________________________________________________________ |
u8 KML_LineStringAddPoint(struct str_gps_nav_data gps_data ,KML_Document_t *doc) |
u8 KML_LineStringAddPoint(GPS_Pos_t * pGPS_Position ,KML_Document_t *doc) |
{ |
u8 retvalue = 0; |
s8 string[50]; |
if(doc->state == DOC_LINESTRING_OPENED) |
s32 rel_altitude = 0; |
if(doc == NULL || pGPS_Position == NULL) return(0); |
if((pGPS_Position->Status != INVALID) && (GPS_HomePosition.Status != INVALID)) |
{ |
if(doc->file != NULL) |
if(doc->state == DOC_LINESTRING_OPENED) |
{ |
sprintf(string,"\r\n%d.%d,%d.%d,%d.0",(gps_data.Longitude/10000000),(gps_data.Longitude%10000000),(gps_data.Latitude/10000000),(gps_data.Latitude%10000000),0); |
fputs_(doc->file,string); |
retvalue = 1; |
if(doc->file != NULL) |
{ |
s32 i1, i2; |
i1 = pGPS_Position->Longitude/10000000L; |
i2 = abs(pGPS_Position->Longitude%10000000L); |
sprintf(string,"\r\n%ld.%07ld,",i1, i2); |
fputs_(string, doc->file); |
i1 = pGPS_Position->Latitude/10000000L; |
i2 = abs(pGPS_Position->Latitude%10000000L); |
sprintf(string," %ld.%07ld,",i1, i2); |
fputs_(string, doc->file); |
// calculate relative altitude with respect to the altitude of the home position |
rel_altitude = pGPS_Position->Altitude - GPS_HomePosition.Altitude; |
if(rel_altitude < 0) rel_altitude = 0; // avoid negative altitudes in log |
i1 = rel_altitude/1000L; |
i2 = abs(rel_altitude%1000L); |
sprintf(string," %ld.%03ld",i1, i2); |
fputs_(string, doc->file); |
retvalue = 1; |
} |
} |
} |
310,48 → 336,58 |
} |
//________________________________________________________________________________________________________________________________________ |
// Funtion: u8 KML_LoggGPSCoordinates(struct str_gps_nav_data, KML_Document_t *) |
// |
// Function: u8 KML_LoggGPSCoordinates(gps_data_t *, KML_Document_t *) |
// |
// Description: This function opens adds gpscoordinates to an KML-Document. The document will be opened, if not already done |
// |
// |
// Returnvalue: none |
// |
// Returnvalue: '1' if an gps coordinate was logged |
//________________________________________________________________________________________________________________________________________ |
u8 KML_LoggGPSCoordinates(struct str_gps_nav_data gps_data, KML_Document_t *doc) |
u8 KML_LoggGPSCoordinates(GPS_Pos_t* pGPS_Position, KML_Document_t *doc) |
{ |
u8 retval = 0; |
while(doc->state != DOC_LINESTRING_OPENED) // automatic create document with default filename on the card. |
{ |
{ |
switch(doc->state) |
{ |
case DOC_CLOSED: // document hasn't been opened yet therefore it will be initialized automatically |
KML_DocumentInit(doc); // initialize the document to default values |
if(KML_DocumentOpen("default.kml",doc)) // open the kml-document with a standardname. |
retval = KML_DocumentOpen("default.kml",doc); // open the kml-document with a standardname. |
if(retval) |
{ |
doc->state = DOC_OPENED; |
} |
} |
break; |
case DOC_OPENED: // if a document has been opened before but no placemark exists: |
if(KML_PlaceMarkOpen("MIKROKOPTER",doc)) |
{ |
doc->state = DOC_PLACEMARK_OPENED; // add a placemark to the document. |
retval = KML_PlaceMarkOpen("MIKROKOPTER",doc); |
if(retval) |
{ |
doc->state = DOC_PLACEMARK_OPENED; // add a placemark to the document. |
} |
break; |
case DOC_PLACEMARK_OPENED: // add linestring to the placemark |
if(KML_LineStringBegin(doc)) |
retval = KML_LineStringBegin(doc); |
if(retval) |
{ |
doc->state = DOC_LINESTRING_OPENED; |
} |
break; |
default: |
retval = 1; |
break; |
} |
}; |
if(retval != 1) return(retval); // stop on error |
} |
if(doc->state == DOC_LINESTRING_OPENED) // if the document was opened add coordinates to the document. |
{ |
KML_LineStringAddPoint(gps_data , doc); |
retval = KML_LineStringAddPoint(pGPS_Position, doc); |
} |
return(retval); |
} |
/trunk/kml.h |
---|
2,17 → 2,17 |
#define _KML_H |
#include "fat16.h" |
#include "gps.h" |
// possible state of an kml-document |
typedef enum |
typedef enum |
{ |
DOC_CLOSED, |
DOC_OPENED, |
DOC_PLACEMARK_OPENED, |
DOC_LINESTRING_OPENED, |
DOC_END |
DOC_END |
}KML_DocState_t; |
30,20 → 30,21 |
{ |
u8 name[40]; // name of the document |
KML_DocState_t state; // state of the kml-document |
File *file; // filepointer to the file where the data should be saved. |
File_t *file; // filepointer to the file where the data should be saved. |
KML_PlaceMark_t place; |
} KML_Document_t; |
#endif |
extern u8 KML_LoggGPSCoordinates(struct str_gps_nav_data , KML_Document_t *); |
extern u8 KML_DocumentInit(KML_Document_t *); // Init the new kml-document |
extern u8 KML_DocumentOpen(s8 *, KML_Document_t *); // opens a new kml-document. a new file is created on the sd-memorycard |
extern u8 KML_DocumentClose(KML_Document_t *doc); // closes the specified document saving remaining data to the file. |
extern u8 KML_PlaceMarkOpen(s8 *name, KML_Document_t *doc); // opens a new placemark within the open kml-document |
extern u8 KML_PlaceMarkClose(KML_Document_t *doc); // closes the actual placemark |
extern u8 KML_LineStringBegin(KML_Document_t *doc); // begins a new linestring within the actual placemark |
extern u8 KML_LineStringEnd(KML_Document_t *doc); // close the actual linestring within the actual placemark |
extern u8 KML_LineStringAddPoint(struct str_gps_nav_data, KML_Document_t *); // adds a point from the gps (longitude, altitude, height) to the linestring |
u8 KML_LoggGPSCoordinates(GPS_Pos_t* pGPS_Position , KML_Document_t *); // intializes the kml-document with standard filename and adds points to the file |
u8 KML_DocumentInit(KML_Document_t *); // Init the new kml-document |
u8 KML_DocumentOpen(s8 *, KML_Document_t *); // opens a new kml-document. a new file is created on the sd-memorycard |
u8 KML_DocumentClose(KML_Document_t *doc); // closes the specified document saving remaining data to the file. |
u8 KML_PlaceMarkOpen(s8 *name, KML_Document_t *doc); // opens a new placemark within the open kml-document |
u8 KML_PlaceMarkClose(KML_Document_t *doc); // closes the actual placemark |
u8 KML_LineStringBegin(KML_Document_t *doc); // begins a new linestring within the actual placemark |
u8 KML_LineStringEnd(KML_Document_t *doc); // close the actual linestring within the actual placemark |
u8 KML_LineStringAddPoint(GPS_Pos_t* pGPS_Position, KML_Document_t *); // adds a point from the gps (longitude, altitude, height) to the linestring |
#endif //_KML_H |
/trunk/kml_header.h |
---|
10,35 → 10,14 |
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" |
"<kml xmlns=\"http://earth.google.com/kml/2.2\">\r\n" |
"<Document>\r\n" |
" <name>Mikrokopter GPS logging</name>\r\n" |
" <StyleMap id=\"msn_ylw-pushpin\">\r\n" |
" <Pair>\r\n" |
" <key>normal</key>\r\n" |
" <styleUrl>#sn_ylw-pushpin</styleUrl>\r\n" |
" </Pair>\r\n" |
" <Pair>\r\n" |
" <key>highlight</key>\r\n" |
" <styleUrl>#sh_ylw-pushpin</styleUrl>\r\n" |
" </Pair>\r\n" |
" </StyleMap>\r\n" |
" <Style id=\"sn_ylw-pushpin\">\r\n" |
" <IconStyle>\r\n" |
" <scale>1.1</scale>\r\n" |
" <Icon>\r\n" |
" <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\r\n" |
" </Icon>\r\n" |
" <hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\r\n" |
" </IconStyle>\r\n" |
" </Style>\r\n" |
" <Style id=\"sh_ylw-pushpin\">\r\n" |
" <IconStyle>\r\n" |
" <scale>1.3</scale>\r\n" |
" <Icon>\r\n" |
" <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\r\n" |
" </Icon>\r\n" |
" <hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\r\n" |
" </IconStyle>\r\n" |
" </Style>\r\n" |
"<name>Mikrokopter GPS logging</name>\r\n" |
"\r\n" |
"<Style id=\"MK_gps-style\">\r\n" |
"<LineStyle>\r\n" |
"<color>ff0000ff</color>\r\n" |
"<width>2</width>\r\n" |
"</LineStyle>\r\n" |
"</Style>\r\n" |
}; |
53,7 → 32,7 |
const s8 KML_DOCUMENT_FOOTER[] = |
{ |
" </Document>\r\n" |
"</Document>\r\n" |
"</kml>\r\n" |
}; |
66,9 → 45,11 |
//________________________________________________________________________________________________________________________________________ |
const s8 KML_PLACEMARK_HEADER[] = |
{" <Placemark>\r\n" |
" <name>flight</name>\r\n" |
" <styleUrl>#msn_ylw-pushpin</styleUrl>\r\n"}; |
{ |
"<Placemark>\r\n" |
"<name>Flight</name>\r\n" |
"<styleUrl>#MK_gps-style</styleUrl>\r\n" |
}; |
//________________________________________________________________________________________________________________________________________ |
// |
76,8 → 57,10 |
// |
//________________________________________________________________________________________________________________________________________ |
const s8 KML_PLACEMARK_FOOTER[] = { |
" </Placemark>\r\n"}; |
const s8 KML_PLACEMARK_FOOTER[] = |
{ |
"</Placemark>\r\n" |
}; |
//________________________________________________________________________________________________________________________________________ |
86,12 → 69,12 |
// |
//________________________________________________________________________________________________________________________________________ |
const s8 KML_LINESTRING_HEADER[] = { |
" <LineString>\r\n" |
" <extrude>1</extrude>\r\n" |
" <tessellate>1</tessellate>\r\n" |
" <altitudeMode>relativeToGround</altitudeMode>\r\n" |
" <coordinates>\r\n" |
const s8 KML_LINESTRING_HEADER[] = |
{ |
"<LineString>\r\n" |
"<tessellate>1</tessellate>\r\n" |
"<altitudeMode>relativeToGround</altitudeMode>\r\n" // also possible "absolute" |
"<coordinates>\r\n" |
}; |
//________________________________________________________________________________________________________________________________________ |
100,8 → 83,9 |
// |
//________________________________________________________________________________________________________________________________________ |
const s8 KML_LINESTRING_FOOTER[] = { |
"\r\n </coordinates>" |
"\r\n </LineString>\r\n" |
const s8 KML_LINESTRING_FOOTER[] = |
{ |
"\r\n</coordinates>" |
"\r\n</LineString>\r\n" |
}; |
/trunk/led.c |
---|
0,0 → 1,23 |
#include "91x_lib.h" |
#include "led.h" |
void Led_Init(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
SCU_APBPeriphClockConfig(__GPIO5, ENABLE); // Enable the GPIO5 Clock |
/*Configure LED_GRN at pin GPIO5.6 and LED_ROT at pin GPIO5.7*/ |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt1 ; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
LED_GRN_OFF; |
LED_RED_OFF; |
} |
/trunk/led.h |
---|
0,0 → 1,16 |
#ifndef _LED_H |
#define _LED_H |
#define LED_GRN_ON GPIO_WriteBit(GPIO5, GPIO_Pin_6, Bit_SET) |
#define LED_GRN_OFF GPIO_WriteBit(GPIO5, GPIO_Pin_6, Bit_RESET) |
#define LED_GRN_TOGGLE if (GPIO_ReadBit(GPIO5, GPIO_Pin_6)) LED_GRN_OFF; else LED_GRN_ON; |
#define LED_RED_ON GPIO_WriteBit(GPIO5, GPIO_Pin_7, Bit_SET) |
#define LED_RED_OFF GPIO_WriteBit(GPIO5, GPIO_Pin_7, Bit_RESET) |
#define LED_RED_TOGGLE if (GPIO_ReadBit(GPIO5, GPIO_Pin_7)) LED_RED_OFF; else LED_RED_ON; |
void Led_Init(void); |
#endif //_LED_H |
/trunk/main.c |
---|
7,14 → 7,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,22 → 25,22 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Teile, die nicht eindeutig mit unserer Lizenzvereinbarung gekennzeichnet sind, unterliegen u.U. eigenen Vereinbarungen: |
// + z.B. Die Funktion printf_P() unterliegt ihrer eigenen Lizenz |
// + z.B. Die Funktion printf_P() unterliegt ihrer eigenen Lizenz |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
53,278 → 53,379 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//#define MCLK96MHZ |
const unsigned long _Main_Crystal = 25000; |
#include <stdio.h> |
#include "91x_lib.h" |
#include "led.h" |
#include "uart0.h" |
#include "uart1.h" |
#include "uart2.h" |
#include "GPS.h" |
#include "i2c.h" |
#include "timer.h" |
#include "spi_slave.h" |
#include "fat16.h" |
#include "usb.h" |
#include "sdc.h" |
#include "kml.h" |
#include "main.h" |
#include "kml.h" |
typedef enum |
{ |
LOGFILE_IDLE, |
LOGFILE_CLOSED, |
LOGFILE_OPENED, |
LOGFILE_ERROR, |
} logfilestate_t; |
u32 TimerCompassUpdate; |
u32 TimerI2CReadDelay; |
u32 TimerDebugDataDelay; |
u32 KmlAddPointDelay; |
u32 TimerKmlAddPointDelay; |
u32 TimerCheckError; |
u32 ErrorCode = 0; |
u16 BeepTime; |
u8 BeepTime; |
void Init_Undef(void); |
u8 Parameter_UserParam1; |
u8 Parameter_UserParam2; |
u8 Parameter_UserParam3; |
u8 Parameter_UserParam4; |
u8 Parameter_UserParam5; |
u8 Parameter_UserParam6; |
u8 Parameter_UserParam7; |
u8 Parameter_UserParam8; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
s32 FC_StickNick; |
s32 FC_StickRoll; |
s32 FC_StickGier; |
s32 FC_StickGas; |
s32 FC_Poti1; |
s32 FC_Poti2; |
s32 FC_Poti3; |
s32 FC_Poti4; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
s32 SenderOkay = 0; |
s32 UBat = 0; |
s32 UndervoltageLevel = 0; |
s32 ActiveSetting = 1; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
s32 Parameter_NaviGpsModeControl = 128; |
s32 Parameter_NaviGpsGain = 0; |
s32 Parameter_NaviGpsP = 90; |
s32 Parameter_NaviGpsI = 0; |
s32 Parameter_NaviGpsD = 90; |
s32 Parameter_NaviGpsACC = 0; |
s32 Parameter_NaviGpsMinSat = 3; |
s32 Parameter_NaviStickThreshold = 8; |
s32 Parameter_RadiusAlert = 15; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define FLAG_MOTOR_RUN 1 |
#define FLAG_FLY 2 |
#define FLAG_CALIBRATE 4 |
#define FLAG_START 8 |
u32 MikroKopterFlags; |
u32 ClearFlags = 1; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
u8 text[20]; |
u8 ClearMKFlags = 0; |
u8 StopNavigation = 0; |
Param_t Parameter; |
FC_t FC; |
s8 ErrorMSG[25]; |
//---------------------------------------------------------------------------------------------------- |
void Leds_Init(void) |
void SCU_Config(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
/* configure PLL and set it as master clock source */ |
SCU_MCLKSourceConfig(SCU_MCLK_OSC); // set master clock source to external oscillator clock (25MHz) before diabling the PLL |
SCU_PLLCmd(DISABLE); // now disable the PLL |
#ifdef MCLK96MHZ |
SCU_BRCLKDivisorConfig(SCU_BRCLK_Div2); // set BRCLK to MCLK/2 = 48MHz |
SCU_PCLKDivisorConfig(SCU_PCLK_Div4); // set PCLK (APB bus clock) divisor to 4 (half Reference Clock) |
SCU_RCLKDivisorConfig(SCU_RCLK_Div2); // set RCLK (Reference Clock) divisor to 1 (full PPL clock) |
SCU_HCLKDivisorConfig(SCU_HCLK_Div2); // set HCLK (AHB bus clock) divisor to 1 (full Reference Clock) |
SCU_PLLFactorsConfig(192,25,2); // PLL = 96 MHz, Feedback Divider N=192, Pre-Divider M=25, Post-Divider P=2 |
#else |
SCU_BRCLKDivisorConfig(SCU_BRCLK_Div1); // set BRCLK to MCLK = 48MHz |
SCU_PCLKDivisorConfig(SCU_PCLK_Div2); // set PCLK (APB bus clock) divisor to 2 (half Reference Clock) |
SCU_RCLKDivisorConfig(SCU_RCLK_Div1); // set RCLK (Reference Clock) divisor to 1 (full PPL clock) |
SCU_HCLKDivisorConfig(SCU_HCLK_Div1); // set HCLK (AHB bus clock) divisor to 1 (full Reference Clock) |
SCU_PLLFactorsConfig(192,25,3); // PLL = 48 MHz, Feedback Divider N=192, Pre-Divider M=25, Post-Divider P=3 |
#endif |
SCU_PLLCmd(ENABLE); // Enable PLL (is disabled by SCU_PLLFactorsConfig) |
SCU_MCLKSourceConfig(SCU_MCLK_PLL); // set master clock source to PLL |
} |
SCU_APBPeriphClockConfig(__GPIO6, ENABLE); |
SCU_APBPeriphClockConfig(__GPIO5, ENABLE); |
//GPIO_DeInit(GPIO5); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt1 ; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
//SD_SWITCH |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
} |
// |
void OutputStartupData(void) |
//---------------------------------------------------------------------------------------------------- |
void GetNaviCtrlVersion(void) |
{ |
char tex[20]; |
SerialPutString("\n\r--------------\n\r"); |
sprintf(text,"NaviCtrl V%d.%d\n\r", VersionInfo.Hauptversion, VersionInfo.Nebenversion); SerialPutString(text); |
u8 msg[25]; |
sprintf(msg,"\n\r NaviCtrl V%d.%d%c", VERSION_MAJOR, VERSION_MINOR, 'a'+ VERSION_PATCH); |
SerialPutString(msg); |
} |
//---------------------------------------------------------------------------------------------------- |
int main(void) |
s8* GenerateGPSLogFileName(void) |
{ |
static u8 oldCompassCalState = 0; |
static u16 filenum = 0; // file name counter |
static s8 filename[30]; |
static DateTime_t LastTime = {0,0,0,0,0,0,0,0}; |
if(SystemTime.Valid) |
{ |
// if the day has been changed |
if((LastTime.Year != SystemTime.Year) || (LastTime.Month != SystemTime.Month) || (LastTime.Day != SystemTime.Day)) |
{ |
LastTime.Year = SystemTime.Year; |
LastTime.Month = SystemTime.Month; |
LastTime.Day = SystemTime.Day; |
LastTime.Valid = 1; |
filenum = 0; // reset file counter |
} |
sprintf(filename, "LOG/%04i%02i%02i/GPS%05i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
filenum++; |
return filename; |
} |
else return NULL; |
} |
static u8 kml_state = 0; |
u8 kml_cnt = 0; |
KML_Document_t mydocument; |
File *file1; |
u8 str[80]; |
KML_DocumentInit(&mydocument); // Initialise the new kml-document for further use. |
//---------------------------------------------------------------------------------------------------- |
void CheckErrors(void) |
{ |
if(!CheckSPIOkay) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"no FC communication "); |
ErrorCode = 3; |
StopNavigation = 1; |
} |
else if(!CheckI2COkay) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"no MK3Mag communication "); |
ErrorCode = 4; |
StopNavigation = 1; |
} |
else if(FC_Version.Compatible != FC_SPI_COMPATIBLE) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"FC not compatible "); |
ErrorCode = 1; |
StopNavigation = 1; |
} |
else if(MK3MAG_Version.Compatible != MK3MAG_I2C_COMPATIBLE) |
{ |
sprintf(ErrorMSG,"MK3Mag not compatible "); |
LED_RED_ON; |
ErrorCode = 2; |
StopNavigation = 1; |
} |
else if(!CheckGPSOkay) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"no GPS communication "); |
ErrorCode = 5; |
StopNavigation = 1; |
} |
else if(I2C_Heading.Heading < 0) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"bad compass value "); |
ErrorCode = 6; |
StopNavigation = 1; |
} |
else if(FC.RC_Quality < 100) |
{ |
LED_RED_ON; |
sprintf(ErrorMSG,"RC Signal lost "); |
ErrorCode = 7; |
} |
else // no error occured |
{ |
sprintf(ErrorMSG,"No Error "); |
ErrorCode = 0; |
StopNavigation = 0; |
LED_RED_OFF; |
} |
CheckSPIOkay = 0; |
CheckGPSOkay = 0; |
CheckI2COkay = 0; |
} |
// SCU_MCLKSourceConfig(SCU_MCLK_OSC); |
// SCU_PCLKDivisorConfig(SCU_PCLK_Div2); |
// SCU_MCLKSourceConfig(SCU_MCLK_PLL); |
SCU_MCLKSourceConfig(SCU_MCLK_OSC); |
SCU_PLLCmd(DISABLE); // PLL aus |
SCU_RCLKDivisorConfig(SCU_RCLK_Div1); |
SCU_HCLKDivisorConfig(SCU_HCLK_Div1); |
SCU_PCLKDivisorConfig(SCU_PCLK_Div2); |
// SCU_FMICLKDivisorConfig(SCU_FMICLK_Div1); |
// FMI_Config(FMI_READ_WAIT_STATE_3,FMI_WRITE_WAIT_STATE_0, FMI_PWD_ENABLE, FMI_LVD_ENABLE,FMI_FREQ_HIGH); |
SCU_PLLFactorsConfig(192,25,3); // PLL = 48 MHz |
//---------------------------------------------------------------------------------------------------- |
int main(void) |
{ |
logfilestate_t logfilestate = LOGFILE_IDLE; |
KML_Document_t gpslogfile; |
s8* gpslogfilename = NULL; |
SCU_PLLCmd(ENABLE); // PLL Enabled |
/* Configure the system clocks */ |
SCU_Config(); |
SCU_MCLKSourceConfig(SCU_MCLK_PLL); // MCLK = PLL |
KML_DocumentInit(&gpslogfile); // Initialize the new kml-document for further use. |
VersionInfo.Hauptversion = VERSION_HAUPTVERSION; |
VersionInfo.Nebenversion = VERSION_NEBENVERSION; |
VersionInfo.PCKompatibel = VERSION_KOMPATIBEL; |
SCU_AHBPeriphClockConfig(__VIC,ENABLE); |
SCU_AHBPeriphReset(__VIC,DISABLE); |
VIC_DeInit(); |
InitInterrupt(); |
Leds_Init(); |
Debug_UART1_Init(); |
OutputStartupData(); |
/* init VIC (Vectored Interrupt Controller) */ |
SCU_AHBPeriphClockConfig(__VIC,ENABLE); // enable AHB bus clock for VIC |
SCU_AHBPeriphReset(__VIC, DISABLE); // disable reset state for VIC |
VIC_DeInit(); // deinitializes the VIC module registers to their default reset values. |
// initialize the interrupt handler |
Interrupt_Init(); |
// initialize timer 1 |
TIMER1_Init(); |
// initialize the LEDs (needs Timer 1) |
Led_Init(); |
// initialize the debug UART1 |
UART1_Init(); |
SerialPutString("\r\n---------------------------------------------"); |
GPS_UART0_Init(); |
USB_ConfigInit(); |
SPI0_Init(); |
// initialize UART2 to FLIGHTCTRL |
UART2_Init(); |
// initialize UART0 (to MKGPS or MK3MAG) |
UART0_Init(); |
// initialize usb |
USB_ConfigInit(); |
// initialize SPI0 to FC |
SPI0_Init(); |
// initialize i2c bus to MK3MAG (needs Timer 1) |
I2C1_Init(); |
// initialize the gps position controller (needs Timer 1) |
GPS_Init(); |
// initialize fat16 partition on sd card (needs Timer 1) |
Fat16_Init(); |
TIMER1_Init(); |
I2C1_Init(); |
I2C_Version.Hauptversion = 0xff; |
SendI2C_Command(I2C_CMD_VERSION); |
TimerCompassUpdate = SetDelay(5); |
TimerKmlAddPointDelay = SetDelay(250); |
TimerCheckError = SetDelay(3000); |
TimerCompassUpdate = SetDelay(50); |
while (!CheckDelay(TimerCompassUpdate)); |
TimerCompassUpdate = SetDelay(5); |
TimerI2CReadDelay = SetDelay(5); |
SerialPutString("\r\n---------------------------------------------"); |
SerialPutString("\n\r Version information:"); |
GetNaviCtrlVersion(); |
SPI0_GetFlightCtrlVersion(); |
if(FC_Version.Compatible != FC_SPI_COMPATIBLE) |
{ |
//sprintf(ErrorMSG,"\r\n %d <-> %d", FlightCtrlVersion.NaviCompatible, FC_SPI_COMPATIBLE); |
//SerialPutString(ErrorMSG); |
SerialPutString("\n\r Flight-Ctrl not compatible"); |
LED_RED_ON; |
} |
I2C1_GetMK3MagVersion(); |
if(MK3MAG_Version.Compatible != MK3MAG_I2C_COMPATIBLE) |
{ |
SerialPutString("\n\r MK3Mag not compatible"); |
LED_RED_ON; |
} |
KmlAddPointDelay = SetDelay(250); |
/* |
ReadSetting(1); |
*/ |
SerialPutString("\r\n---------------------------------------------\r\n\r\n"); |
for (;;) |
{ |
if(rxd_buffer_locked) // new incomming command |
{ |
UART1_ProcessRxData(); // process request |
} |
UART1_TransmitTxData(); // send answer |
SerialPutString("\r\n---------------------------------------------"); |
SPI0_UpdateBuffer(); |
UART1_Transmit(); // empty txd buffer |
// ------------------------- I2C Timing -------------------------------- |
if(I2C_State != I2C_OFF) |
{ |
if (CheckDelay(TimerCompassUpdate)) |
{ |
// check for hanging I2C bus |
if(CheckDelay(I2C1_Timeout)) |
{ // reset I2C |
SerialPutString("\n\rCommunication-Error: MK3Mag\n\r"); |
I2C1_Deinit(); |
I2C1_Init(); |
} |
else |
{ // check for incomming compass calibration request |
// update CalByte from spi input queue |
fifo_get(&CompassCalcStateFiFo, (u8 *)&(I2C_WriteCal.CalByte)); |
// send new calstate |
if(I2C_ReadCal.CalByte != I2C_WriteCal.CalByte) |
{ |
I2C1_SendCommand(I2C_CMD_WRITE_CAL); |
} |
else // request current heading |
{ |
I2C1_SendCommand(I2C_CMD_READ_HEADING); |
} |
TimerCompassUpdate = SetDelay(25); // every 25 ms |
} |
// ReadSetting(1); |
SerialPutString("\r\n---------------------------------------------\r\n\r\n"); |
InitFat16(); |
} |
} |
for (;;) |
{ |
if(NeuerDatensatzEmpfangen) |
{ |
BearbeiteRxDaten(); |
DatenUebertragung(); |
// if (GPIO_ReadBit(GPIO5, GPIO_Pin_3)) SerialPutString("keine SD\n\r"); else SerialPutString("SD eingesteckt!\n\r"); |
} |
UpdateSPI_Buffer(); |
SPI_CheckSlaveSelect(); |
UART1_Transmit(); |
// ----------- I2C Timing ------------------------- |
if (CheckDelay(TimerCompassUpdate)) |
{ |
if(oldCompassCalState != CompassCalState) |
{ |
oldCompassCalState = CompassCalState; |
TimerCompassUpdate = SetDelay(25); |
SendI2C_Command(I2C_CMD_WRITE_CAL); |
} |
else |
{ |
GPIO_ToggleBit(GPIO5, GPIO_Pin_6); |
GPIO_ToggleBit(GPIO5, GPIO_Pin_7); |
TimerCompassUpdate = SetDelay(25); |
SendI2C_Command(I2C_CMD_READ_HEADING); |
} |
} |
if (CheckDelay(TimerI2CReadDelay)) |
{ |
if (I2C_ReadRequest) |
// ---------------- Error Check Timing ---------------------------- |
if(CheckDelay(TimerCheckError)) |
{ |
I2C_ReadRequest= 0; |
I2C_Direction = I2C_MODE_RECEIVER; |
I2C_GenerateStart(I2C1, ENABLE); |
if(!CheckSPIOkay) GPS_Navigation(); // process the GPS data even if the FC is not connected |
CheckErrors(); |
TimerCheckError = SetDelay(1000); |
Request_SendFollowMe = TRUE; |
} |
TimerI2CReadDelay = SetDelay(1000); |
} |
// ---------------- KML Timing ------------------------------------ |
if(CheckDelay(TimerKmlAddPointDelay)) |
{ |
TimerKmlAddPointDelay = SetDelay(500); // every 500 ms |
if (CheckDelay(TimerDebugDataDelay)) |
{ SendGPSPosAnforderung = 1; |
DatenUebertragung(); |
if(FC.MKFlags & MKFLAG_FLY) // model is flying |
{ |
switch(logfilestate) |
{ |
case LOGFILE_IDLE: |
case LOGFILE_CLOSED: |
// find unused logfile name |
do |
{ // try to generate a new logfile name |
gpslogfilename = GenerateGPSLogFileName(); |
}while((gpslogfilename != NULL) && fexist_(gpslogfilename)); |
// if logfilename exist |
if(gpslogfilename != NULL) |
{ |
// try to create the log file |
if(KML_DocumentOpen(gpslogfilename, &gpslogfile)) |
{ |
logfilestate = LOGFILE_OPENED; // goto next step |
SerialPutString("\r\nOpening kml-file: "); |
SerialPutString(gpslogfilename); |
SerialPutString("\r\n"); |
} |
else |
{ |
logfilestate = LOGFILE_ERROR; |
SerialPutString("\r\nError opening kml-file: "); |
SerialPutString(gpslogfilename); |
SerialPutString("\r\n"); |
TimerKmlAddPointDelay = SetDelay(10); // try again in open logfile in 10 mili sec |
} |
} |
// else retry in next loop |
break; |
TimerDebugDataDelay = SetDelay(500); |
} |
case LOGFILE_OPENED: |
// append new gps log data |
if((GPSData.Status != INVALID) && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)) |
{ |
if(!KML_LoggGPSCoordinates(&(GPSData.Position), &gpslogfile)) |
{ // error logging data |
SerialPutString("\r\nError Logging GPS data\r\n"); |
KML_DocumentClose(&gpslogfile); |
logfilestate = LOGFILE_ERROR; |
} |
} |
break; |
// ----------- KML Timing ------------------------- |
if(CheckDelay(KmlAddPointDelay) && 0) |
{ |
KmlAddPointDelay = SetDelay(500); |
switch(kml_state) |
{ |
case 0: |
if((GPS_Data.Flags & GPS_FIX) && (GPS_Data.Used_Sat >= GPS_SAT_MIN)) |
{ |
if(str_Volume.state == INITIALIZED) // has the volume and filesystem been initialized? |
{ |
if(KML_DocumentOpen("flight01.kml",&mydocument)) // create a new kml-document on the memorycard. |
case LOGFILE_ERROR: |
// try to reinitialize the fat16 filesystem |
if(0 == Fat16_Init()) |
{ |
SerialPutString("\r\nopening kml-file\r\nadding data"); |
kml_state = 1; |
logfilestate = LOGFILE_IDLE; |
TimerKmlAddPointDelay = SetDelay(10); // try again in open logfile in 10 mili sec |
} |
else |
{ |
logfilestate = LOGFILE_ERROR; |
TimerKmlAddPointDelay = SetDelay(5000); // try again in 5 sec |
} |
break; |
default: |
break; |
} |
} // EOF model is flying |
else // model is not flying |
{ // close log file if opened |
if(logfilestate == LOGFILE_OPENED) |
{ |
if(KML_DocumentClose(&gpslogfile)) |
{ |
SerialPutString("\r\nClosing kml-file\r\n"); |
logfilestate = LOGFILE_CLOSED; |
} |
else |
{ |
InitFat16(); |
if(str_Volume.state != INITIALIZED) KmlAddPointDelay = SetDelay(5000); // try again in 5 sek |
logfilestate = LOGFILE_ERROR; |
} |
} |
break; // document.state will be changed to DOC_OPENED automatic. |
case 1: // linestring opened, so datapoint (gps_coordinates) can be added to the document. |
if(kml_cnt++ < 20) // add 10 datapoints to the document. |
{ |
KML_LoggGPSCoordinates(GPS_Data,&mydocument); |
} |
else // after the datapoints have been written to the document close the document. |
{ |
KML_DocumentClose(&mydocument); |
SerialPutString("\r\nfile closed"); |
kml_state = 2; |
} |
break; |
default: // all data has been written to card. open new document to add new data. |
} |
} |
} //EOF model is not flying |
} |
} |
} |
/trunk/main.h |
---|
1,77 → 1,76 |
#ifndef _MAIN_H |
#define _MAIN_H |
#include "91x_conf.h" |
#include "91x_lib.h" |
#include "91x_wiu.h" |
#include "uart.h" |
#include "ramfunc.h" |
#include "menu.h" |
#include <stdio.h> |
#include <stdlib.h> |
#include <math.h> |
#include "printf_P.h" |
#include "timer.h" |
#include "spi_slave.h" |
#include "i2c.h" |
#include "GPS.h" |
#include "GPSUart.h" |
#include "sdc.h" |
#include "ssc.h" |
#include "fat16.h" |
#include "usb.h" |
#include "string.h" |
#include "settings.h" |
//#include "hw_config.h" |
#define VERSION_MAJOR 0 |
#define VERSION_MINOR 12 |
#define VERSION_PATCH 8 |
#define VERSION_HAUPTVERSION 0 |
#define VERSION_NEBENVERSION 4 |
#define VERSION_KOMPATIBEL 7 |
#define VERSION_SERIAL_MAJOR 10 |
#define VERSION_SERIAL_MINOR 0 |
#define FC_SPI_COMPATIBLE 3 |
#define MK3MAG_I2C_COMPATIBLE 2 |
#define GPIO_ToggleBit(GPIO, Pin) if (GPIO_ReadBit(GPIO, Pin)) GPIO_WriteBit(GPIO, Pin, Bit_RESET); else GPIO_WriteBit(GPIO, Pin, Bit_SET); |
extern u32 TimerCompassUpdate; |
extern u16 BeepTime; |
extern u8 ClearMKFlags; |
void Interrupt_Init(void); |
typedef struct |
{ |
u8 ActiveSetting; |
u8 User1; |
u8 User2; |
u8 User3; |
u8 User4; |
u8 User5; |
u8 User6; |
u8 User7; |
u8 User8; |
u8 NaviGpsModeControl; |
u8 NaviGpsGain; |
u8 NaviGpsP; |
u8 NaviGpsI; |
u8 NaviGpsD; |
u8 NaviGpsACC; |
u8 NaviGpsMinSat; |
u8 NaviStickThreshold; |
u8 NaviOperatingRadius; |
u8 NaviWindCorrection; |
u8 NaviSpeedCompensation; |
u8 LowVoltageWarning; |
u8 NaviAngleLimitation; |
} __attribute__((packed)) Param_t; |
extern u32 TimerCompassUpdate; |
extern u32 TimerI2CReadDelay; |
extern u8 BeepTime; |
void InitInterrupt(void); |
typedef struct |
{ |
s8 StickNick; |
s8 StickRoll; |
s8 StickYaw; |
s8 StickGas; |
u8 Poti1; |
u8 Poti2; |
u8 Poti3; |
u8 Poti4; |
u8 RC_Quality; |
u8 UBat; |
// MK_Flags |
#define MKFLAG_MOTOR_RUN 0x01 |
#define MKFLAG_FLY 0x02 |
#define MKFLAG_CALIBRATE 0x04 |
#define MKFLAG_START 0x08 |
#define MKFLAG_EMERGENCY_LANDING 0x10 |
#define MKFLAG_RESERVE1 0x20 |
#define MKFLAG_RESERVE2 0x40 |
#define MKFLAG_RESERVE3 0x80 |
u8 MKFlags; |
} __attribute__((packed)) FC_t; |
extern u8 text[20]; |
extern u8 Parameter_UserParam1; |
extern u8 Parameter_UserParam2; |
extern u8 Parameter_UserParam3; |
extern u8 Parameter_UserParam4; |
extern u8 Parameter_UserParam5; |
extern u8 Parameter_UserParam6; |
extern u8 Parameter_UserParam7; |
extern u8 Parameter_UserParam8; |
extern s32 FC_StickNick; |
extern s32 FC_StickRoll; |
extern s32 FC_StickGier; |
extern s32 FC_StickGas; |
extern s32 FC_Poti1; |
extern s32 FC_Poti2; |
extern s32 FC_Poti3; |
extern s32 FC_Poti4; |
extern s32 SenderOkay; |
extern s32 UBat; |
extern s32 UndervoltageLevel; |
extern s32 ActiveSetting; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
extern s32 Parameter_NaviGpsModeControl; |
extern s32 Parameter_NaviGpsGain; |
extern s32 Parameter_NaviGpsP; |
extern s32 Parameter_NaviGpsI; |
extern s32 Parameter_NaviGpsD; |
extern s32 Parameter_NaviGpsACC; |
extern s32 Parameter_NaviGpsMinSat; |
extern s32 Parameter_NaviStickThreshold; |
extern s32 Parameter_RadiusAlert; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define FLAG_MOTOR_RUN 1 |
#define FLAG_FLY 2 |
#define FLAG_CALIBRATE 4 |
#define FLAG_START 8 |
extern u32 MikroKopterFlags; |
extern u32 ClearFlags; |
//++++++++++++++++++++++++++++++++++++++++++++++++++ |
extern Param_t Parameter; |
extern FC_t FC; |
extern s8 ErrorMSG[25]; |
extern u32 ErrorCode; |
extern u8 StopNavigation; |
#endif // _MAIN_H |
/trunk/menu.c |
---|
7,14 → 7,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,21 → 25,21 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
52,17 → 52,27 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdlib.h> |
#include "91x_lib.h" |
#include "printf_P.h" |
#include "main.h" |
#include "ubx.h" |
#include "GPS.h" |
#include "timer.h" |
#include "i2c.h" |
#include "spi_slave.h" |
#include "menu.h" |
#include "uart1.h" |
u16 TestInt = 0; |
#define ARRAYGROESSE 10 |
u8 Array[ARRAYGROESSE] = {1,2,3,4,5,6,7,8,9,10}; |
s8 DisplayBuff[80] = "Hallo Welt"; |
s8 DisplayBuff[DISPLAYBUFFSIZE] = "Hello World"; |
u8 DispPtr = 0; |
u8 RemoteTasten = 0; |
u8 MenuItem = 0; |
u8 MaxMenuItem = 12; |
u8 RemoteKeys = 0; |
#define KEY1 0x01 |
#define KEY2 0x02 |
#define KEY3 0x04 |
69,45 → 79,203 |
#define KEY4 0x08 |
#define KEY5 0x10 |
void LcdClear(void) |
/************************************/ |
/* Clear LCD Buffer */ |
/************************************/ |
void LCD_Clear(void) |
{ |
u8 i; |
for(i=0;i<80;i++) DisplayBuff[i] = ' '; |
u8 i; |
for( i = 0; i < DISPLAYBUFFSIZE; i++) DisplayBuff[i] = ' '; |
} |
void Menu(void) |
{ |
static u8 MaxMenue = 1,MenuePunkt=0; |
u8 text[20]; |
if(RemoteTasten & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue; LcdClear(); } |
if(RemoteTasten & KEY2) { MenuePunkt++; LcdClear(); } |
if((RemoteTasten & KEY1) && (RemoteTasten & KEY2)) MenuePunkt = 0; |
LCD_printfxy(17,0,"[%i]",MenuePunkt); |
switch(MenuePunkt) |
{ |
case 0: |
LCD_printfxy(0,0,"++ Navi-Ctrl ++"); |
LCD_printfxy(0,1,"SW:%d.%d",VERSION_HAUPTVERSION, VERSION_NEBENVERSION); |
// LCD_printfxy(0,2,"Setting: %d ",GetActiveParamSetNumber()); |
LCD_printfxy(0,3,"(c) I.B. H.B. "); |
// if(RemoteTasten & KEY3) TestInt--; |
// if(RemoteTasten & KEY4) TestInt++; |
break; |
case 1: |
LCD_printfxy(0,0,"++ GPS-Logging ++"); |
sprintf(text, "latitude: %u",GPS_Data.Latitude); |
LCD_printfxy(0,1,text); |
sprintf(text, "longitude:%u",GPS_Data.Longitude); |
LCD_printfxy(0,2,text); |
sprintf(text, "used sat: %d",GPS_Data.Used_Sat); |
LCD_printfxy(0,3,text); |
break; |
default: MaxMenue = MenuePunkt - 1; |
MenuePunkt = 0; |
break; |
/************************************/ |
/* Update Menu on LCD */ |
/************************************/ |
// Display with 20 characters in 4 lines |
void LCD_PrintMenu(void) |
{ |
s32 i1,i2; |
if(RemoteKeys & KEY1) { if(MenuItem) MenuItem--; else MenuItem = MaxMenuItem;} |
if(RemoteKeys & KEY2) { if(MenuItem == MaxMenuItem) MenuItem = 0; else MenuItem++;} |
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuItem = 0; |
LCD_Clear(); |
if(MenuItem > MaxMenuItem) MenuItem = MaxMenuItem; |
// print menu item number in the upper right corner |
if(MenuItem < 10) |
{ |
LCD_printfxy(17,0,"[%i]",MenuItem); |
} |
else |
{ |
LCD_printfxy(16,0,"[%i]",MenuItem); |
} |
switch(MenuItem) |
{ |
// Version Info |
case 0: |
LCD_printfxy(0,0,"++ Navi-Ctrl ++"); |
LCD_printfxy(0,1," V%d.%d%c ", VERSION_MAJOR, VERSION_MINOR, 'a'+ VERSION_PATCH); |
if(ErrorCode) LCD_printfxy(11,1," Err:%d",ErrorCode) else LCD_printfxy(11,1," "); |
LCD_printfxy(0,2,"%s",ErrorMSG); |
LCD_printfxy(0,3,"(c) Buss, Busker"); |
break; |
case 1: |
if (GPSData.Status == INVALID) |
{ |
LCD_printfxy(0,0,"No GPS data"); |
LCD_printfxy(0,1,"Lon: "); |
LCD_printfxy(0,2,"Lat: "); |
LCD_printfxy(0,3,"Alt: "); |
} |
else // newdata or processed |
{ |
switch (GPSData.SatFix) |
{ |
case SATFIX_NONE: |
LCD_printfxy(0,0,"Sats:%02d Fix:None", GPSData.NumOfSats); |
break; |
case SATFIX_2D: |
LCD_printfxy(0,0,"Sats:%02d Fix:2D ", GPSData.NumOfSats); |
break; |
case SATFIX_3D: |
LCD_printfxy(0,0,"Sats:%02d Fix:3D ", GPSData.NumOfSats); |
break; |
default: |
LCD_printfxy(0,0,"Sats:%02d Fix:?? ", GPSData.NumOfSats); |
break; |
} |
i1 = GPSData.Position.Longitude/10000000L; |
i2 = abs(GPSData.Position.Longitude%10000000L); |
LCD_printfxy(0,1,"Lon:%+3ld.%07ld deg",i1, i2); |
i1 = GPSData.Position.Latitude/10000000L; |
i2 = abs(GPSData.Position.Latitude%10000000L); |
LCD_printfxy(0,2,"Lat:%+3ld.%07ld deg",i1, i2); |
i1 = GPSData.Position.Altitude/1000L; |
i2 = abs(GPSData.Position.Altitude%1000L); |
LCD_printfxy(0,3,"Alt:%4ld.%03ld m",i1, i2); |
} |
break; |
case 2: |
if (GPSData.Status == INVALID) |
{ |
LCD_printfxy(0,0,"No GPS data"); |
LCD_printfxy(0,1,"Speed N: "); |
LCD_printfxy(0,2,"Speed E: "); |
LCD_printfxy(0,3,"Speed T: "); |
} |
else // newdata or processed |
{ |
switch (GPSData.SatFix) |
{ |
case SATFIX_NONE: |
LCD_printfxy(0,0,"Sats:%02d Fix:None", GPSData.NumOfSats); |
break; |
case SATFIX_2D: |
LCD_printfxy(0,0,"Sats:%02d Fix:2D ", GPSData.NumOfSats); |
break; |
case SATFIX_3D: |
LCD_printfxy(0,0,"Sats:%02d Fix:3D ", GPSData.NumOfSats); |
break; |
default: |
LCD_printfxy(0,0,"Sats:%02d Fix:?? ", GPSData.NumOfSats); |
break; |
} |
LCD_printfxy(0,1,"Speed N: %+4ld cm/s",GPSData.Speed_North); |
LCD_printfxy(0,2,"Speed E: %+4ld cm/s",GPSData.Speed_East); |
LCD_printfxy(0,3,"Speed T: %+4ld cm/s",GPSData.Speed_Top); |
} |
break; |
case 3: |
LCD_printfxy(0,0,"GPS UTC Time"); |
if (!SystemTime.Valid) |
{ |
LCD_printfxy(0,0,"GPS UTC Time"); |
LCD_printfxy(0,1," "); |
LCD_printfxy(0,2," No time data! "); |
LCD_printfxy(0,3," "); |
} |
else // newdata or processed |
{ |
LCD_printfxy(0,1," "); |
LCD_printfxy(0,2,"Date: %02i/%02i/%04i",SystemTime.Month, SystemTime.Day, SystemTime.Year); |
LCD_printfxy(0,3,"Time: %02i:%02i:%02i.%03i", SystemTime.Hour, SystemTime.Min, SystemTime.Sec, SystemTime.mSec); |
} |
break; |
case 4: // Navi Params from FC |
LCD_printfxy(0,0,"NaviMode: %3i" , Parameter.NaviGpsModeControl); |
LCD_printfxy(0,1,"G :%3i P :%3i ",Parameter.NaviGpsGain, Parameter.NaviGpsP); |
LCD_printfxy(0,2,"I :%3i D :%3i ",Parameter.NaviGpsI, Parameter.NaviGpsD); |
LCD_printfxy(0,3,"ACC:%3i SAT:%3i ",Parameter.NaviGpsACC, Parameter.NaviGpsMinSat); |
break; |
case 5: |
LCD_printfxy(0,0,"Home Position"); |
if(GPS_HomePosition.Status == INVALID) |
{ |
LCD_printfxy(0,1," "); |
LCD_printfxy(0,2," Is not set. "); |
LCD_printfxy(0,3," "); |
} |
else |
{ |
i1 = GPS_HomePosition.Longitude/10000000L; |
i2 = abs(GPS_HomePosition.Longitude%10000000L); |
LCD_printfxy(0,1,"Lon: %3ld.%07ld deg",i1, i2); |
i1 = GPS_HomePosition.Latitude/10000000L; |
i2 = abs(GPS_HomePosition.Latitude%10000000L); |
LCD_printfxy(0,2,"Lat: %3ld.%07ld deg",i1, i2); |
i1 = GPS_HomePosition.Altitude/1000L; |
i2 = abs(GPS_HomePosition.Altitude%1000L); |
LCD_printfxy(0,3,"Alt:%4ld.%03ld m",i1, i2); |
} |
break; |
case 6: // RC stick controls from FC |
LCD_printfxy(0,0,"RC-Sticks" ); |
LCD_printfxy(0,1,"Ni:%4i Ro:%4i ",FC.StickNick, FC.StickRoll); |
LCD_printfxy(0,2,"Gs:%4i Ya:%4i ",FC.StickGas, FC.StickYaw); |
break; |
case 7: // RC poti controls from FC |
LCD_printfxy(0,0,"RC-Potis" ); |
LCD_printfxy(0,1,"Po1:%3i Po2:%3i ",FC.Poti1, FC.Poti2); |
LCD_printfxy(0,2,"Po3:%3i Po4:%3i ",FC.Poti3, FC.Poti4); |
break; |
case 8: // attitude from FC |
LCD_printfxy(0,0,"IntNick: %5i", FromFlightCtrl.IntegralNick); |
LCD_printfxy(0,1,"IntRoll: %5i", FromFlightCtrl.IntegralRoll); |
LCD_printfxy(0,2,"AccNick: %5i", FromFlightCtrl.AccNick); |
LCD_printfxy(0,3,"AccRoll: %5i", FromFlightCtrl.AccRoll); |
break; |
case 9: // gyros from FC |
LCD_printfxy(0,0,"GyroNick: %4i", FromFlightCtrl.GyroNick); |
LCD_printfxy(0,1,"GyroRoll: %4i", FromFlightCtrl.GyroRoll); |
LCD_printfxy(0,2,"GyroYaw: %4i", FromFlightCtrl.GyroYaw); |
break; |
case 10: // Remote Control Level from FC |
LCD_printfxy(0,0,"RC-Level: %3i", FC.RC_Quality); |
LCD_printfxy(0,1,"Ubat: %3i", FC.UBat); |
LCD_printfxy(0,2,"CompHeading: %3i", I2C_Heading.Heading); |
LCD_printfxy(0,3,"GyroHeading: %3i", FromFlightCtrl.GyroHeading); |
break; |
case 11: // User Parameter |
LCD_printfxy(0,0,"UP1:%3i UP2:%3i ",Parameter.User1,Parameter.User2); |
LCD_printfxy(0,1,"UP3:%3i UP4:%3i ",Parameter.User3,Parameter.User4); |
LCD_printfxy(0,2,"UP5:%3i UP6:%3i ",Parameter.User5,Parameter.User6); |
LCD_printfxy(0,3,"UP7:%3i UP8:%3i ",Parameter.User7,Parameter.User8); |
break; |
case 12: // MK3MAG |
I2C1_SendCommand(I2C_CMD_READ_MAG); |
LCD_printfxy(0,0,"MK3MAG V%i.%i%c",MK3MAG_Version.Major, MK3MAG_Version.Minor, 'a'+ MK3MAG_Version.Patch); |
LCD_printfxy(0,1,"MagX: %4i ",I2C_Mag.MagX); |
LCD_printfxy(0,2,"MagY: %4i ",I2C_Mag.MagY); |
LCD_printfxy(0,3,"MagZ: %4i ",I2C_Mag.MagZ); |
break; |
default: |
MaxMenuItem = MenuItem - 1; |
MenuItem = 0; |
break; |
} |
RemoteTasten = 0; |
RemoteKeys = 0; |
} |
/trunk/menu.h |
---|
1,6 → 1,17 |
extern void Menu(void); |
extern s8 DisplayBuff[80]; |
extern void LcdClear(void); |
#ifndef _MENU_H |
#define _MENU_H |
#define DISPLAYBUFFSIZE 80 |
void Menu(void); |
void LCD_PrintMenu(void); |
void LCD_Clear(void); |
extern s8 DisplayBuff[DISPLAYBUFFSIZE]; |
extern u8 DispPtr; |
extern u8 RemoteTasten; |
extern u8 MenuItem; |
extern u8 MaxMenuItem; |
extern u8 RemoteKeys; |
#endif // _MENU_H |
/trunk/printf_P.c |
---|
88,10 → 88,10 |
#else |
#include <varargs.h> |
#endif |
#include "91x_lib.h" |
#include "menu.h" |
#include "main.h" |
//#define LIGHTPRINTF |
char Putchar(char zeichen) |
{ |
/trunk/printf_P.h |
---|
3,7 → 3,7 |
extern void _printf_P (char const *fmt0, ...); |
void _printf_P (char const *fmt0, ...); |
#define printf_P(format, args...) _printf_P(format , ## args) |
/trunk/ramfunc.c |
---|
55,9 → 55,9 |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//---------------------------------------------------------------------------------------------------- |
#include "91x_lib.h" |
#include "ramfunc.h" |
#include "main.h" |
__ramfunc void Execute_Bootloader(void) |
{ |
pFunction Jump_To_Bootloader; |
/trunk/ramfunc.h |
---|
1,5 → 1,5 |
#ifndef _RAMFUNC_H |
#define _RAMFUNC_H |
#define _RAMFUNC_H |
typedef void (*pFunction)(void); |
#define __ramfunc __attribute__ ((long_call, section (".ramfunc"))) |
/trunk/sdc.c |
---|
57,7 → 57,7 |
#include <stdio.h> |
#include <string.h> |
#include "91x_lib.h" |
#include "uart.h" |
#include "uart1.h" |
#include "sdc.h" |
#include "ssc.h" |
#include "timer.h" |
181,17 → 181,18 |
return(crc); |
} |
u8 SDC_WaitForBusy() |
u8 SDC_WaitForBusy(u32 timeout) |
{ |
u8 rsp = 0; |
u16 timeout=0; |
u32 timestamp = 0; |
SSC_ClearRxFifo(); |
SSC_Enable(); // enable chipselect. |
timestamp = SetDelay(timeout); |
do |
{ |
rsp = SSC_GetChar(); |
if(timeout++>500) break; |
if(CheckDelay(timestamp)) break; |
}while(rsp != 0xFF); // wait while card is busy (data out low) |
return(rsp); |
} |
209,17 → 210,16 |
u8 SDC_SendCMDR1(u8 CmdNo, u32 arg) |
{ |
u8 r1; |
u16 Timeout = 0; |
u16 timeout = 0; |
u16 a; |
u8 cmd[6]; |
SSC_ClearRxFifo(); // clear the rx fifo |
SSC_Enable(); // enable chipselect. |
SDC_WaitForBusy(); |
SDC_WaitForBusy(500); // wait 500ms until card is busy |
SSC_ClearRxFifo(); // clear the rx fifo |
SSC_GetChar(); // dummy to sync |
/* Send cmd10 (SEND_CID) */; |
cmd[0] = 0x40|CmdNo; // set command index |
cmd[1] = (arg & 0xFF000000)>>24; |
cmd[2] = (arg & 0x00FF0000)>>16; |
231,10 → 231,11 |
SSC_PutChar(cmd[a]); |
} |
SSC_ClearRxFifo(); // clear the rx fifo to discard the bytes received during the transmission of the 6 command bytes |
do |
{ |
r1 = SSC_GetChar(); // get byte from sd-card |
if (Timeout++ > 500) return(r1); |
if (timeout++ >500) break; |
}while(r1 == 0xFF); // wait for the response byte from sd-card. |
return(r1); |
} |
242,7 → 243,7 |
//________________________________________________________________________________________________________________________________________ |
// Function: SDC_SendACMDR1(u8 CmdNo, u32 arg); |
// |
// |
// Description: This function send a application command frame to the SD-Card in spi-mode. |
// |
// |
270,8 → 271,7 |
SD_Result_t SDC_GetData(u8 CmdNo, u32 addr, u8 *Buffer, u32 len) |
{ |
u8 rsp; |
u16 timeout; |
u16 a, Crc16; |
u16 a, crc16; |
SD_Result_t result = SD_ERROR_UNKNOWN; |
// send the command |
290,7 → 290,6 |
result = SD_ERROR_READ_DATA; |
goto end; |
} |
// if(timeout++>500) break; |
}while(rsp != DATA_START_TOKEN); |
// data start token received |
for (a = 0; a < len; a++) // read the block from the SSC |
298,13 → 297,12 |
Buffer[a] = SSC_GetChar(); |
} |
// Read two bytes CRC16-Data checksum |
Crc16 = SSC_GetChar(); // highbyte fisrt |
Crc16 = (Crc16<<8)|SSC_GetChar(); // lowbyte last |
// if(Crc16 != CRC16(Buffer, len)) result = SD_ERROR_CRC_DATA; |
/* else */result = SD_SUCCESS; |
crc16 = SSC_GetChar(); // highbyte fisrt |
crc16 = (crc16<<8)|SSC_GetChar(); // lowbyte last |
/* if(crc16 != CRC16(Buffer, len)) result = SD_ERROR_CRC_DATA; |
else */result = SD_SUCCESS; |
end: |
//SSC_Disable(); // disable sdcard. |
if(result != SD_SUCCESS) |
{ |
sprintf(text,"Error %02X reading data from sd card (R1=%02X).\r\n", result, rsp); |
329,19 → 327,19 |
u8 pn[6]; |
u16 temp1, temp2; |
sprintf(text, "\r\nManufacturer ID: %i\r\n", pCID[0]); |
sprintf(text, "\r\n Manufacturer ID: %i\r\n", pCID[0]); |
SerialPutString(text); |
memcpy(pn, &pCID[1], 2); |
pn[2] = '\0'; // terminate string |
sprintf(text, "Application ID: %s\r\n",pn); |
sprintf(text, " Application ID: %s\r\n",pn); |
SerialPutString(text); |
memcpy(pn, &pCID[3], 5); |
pn[5] = '\0'; // terminate string |
sprintf(text, "Product Name: %s\r\n",pn); |
sprintf(text, " Product Name: %s\r\n",pn); |
SerialPutString(text); |
sprintf(text, "Product Rev.: %i.%i\r\n",pCID[8]>>4, pCID[8]&0xF); |
sprintf(text, " Product Rev.: %i.%i\r\n",pCID[8]>>4, pCID[8]&0xF); |
SerialPutString(text); |
SerialPutString("Serial No.: "); |
SerialPutString(" Serial No.: "); |
for(temp1 = 0; temp1<4; temp1++) |
{ |
sprintf(text,"%02X", pCID[9+temp1]); |
350,7 → 348,7 |
SerialPutString("\r\n"); |
temp1 = pCID[14] & 0x0F; // month |
temp2 = ((pCID[14]>>4)|(pCID[13]<<4)) + 2000; // year |
sprintf(text, "Manufac. Date: %i/%i\r\n\r\n",temp1, temp2); |
sprintf(text, " Manufac. Date: %i/%i\r\n\r\n",temp1, temp2); |
SerialPutString(text); |
} |
394,7 → 392,7 |
SD_Result_t SDC_Init(void) |
{ |
u32 Timeout = 0; |
u32 timeout = 0; |
u8 text[50]; |
u8 rsp[6]; // SD-SPI response buffer |
SD_Result_t result = SD_ERROR_UNKNOWN; |
401,11 → 399,11 |
if(SD_SWITCH) // init only if the SD-Switch is indicating a card in the slot |
{ |
SerialPutString("\r\n SSC init..."); |
SerialPutString("\r\n SSC init..."); |
SSC_Init(); |
SerialPutString("ok"); |
SerialPutString("\r\n SDC init..."); |
SerialPutString("\r\n SDC init..."); |
SDCardInfo.Valid = 0; |
/* The host shall supply power to the card so that the voltage is reached to Vdd_min within 250ms and |
start to supply at least 74 SD clocks to the SD card with keeping cmd line to high. In case of SPI |
413,7 → 411,7 |
SSC_Disable(); // set SD_CS high |
SSC_ClearRxFifo(); // clear the rx fifo |
for (Timeout = 0; Timeout < 15; Timeout++) // 15*8 = 120 cycles |
for (timeout = 0; timeout < 15; timeout++) // 15*8 = 120 cycles |
{ |
SSC_PutChar(0xFF); |
} |
421,7 → 419,7 |
// switch to idle state |
while(SDC_SendCMDR1(CMD_GO_IDLE_STATE, 0UL) != R1_IDLE_STATE) |
{ |
if (Timeout++ > 20) |
if (timeout++ > 20) |
{ |
SerialPutString("reset timeout"); |
result = SD_ERROR_RESET; |
431,7 → 429,7 |
// enable crc feature |
/* if(SDC_SendCMDR1(CMD_CRC_ON_OFF, 1UL) != R1_IDLE_STATE) |
{ |
sprintf(text,"Bad cmd59 R1=%02X.\r\n", rsp[0]); |
sprintf(text,"Bad cmd59 R1=%02X.", rsp[0]); |
SerialPutString(text); |
result = SD_ERROR_BAD_RESPONSE; |
goto end; |
442,7 → 440,7 |
// answer to cmd58 is an R7 response (R1+ 4Byte IFCond) |
if(rsp[0] & R1_BAD_RESPONSE) |
{ |
sprintf(text,"Bad cmd8 R1=%02X.\r\n", rsp[0]); |
sprintf(text,"Bad cmd8 R1=%02X.", rsp[0]); |
SerialPutString(text); |
result = SD_ERROR_BAD_RESPONSE; |
goto end; |
457,9 → 455,9 |
// Ver2.00 or later SD Memory Card |
// reading the remaining bytes of the R7 response |
SDCardInfo.Version = VER_20; |
for(Timeout = 1; Timeout < 5; Timeout++) |
for(timeout = 1; timeout < 5; timeout++) |
{ |
rsp[Timeout] = SSC_GetChar(); |
rsp[timeout] = SSC_GetChar(); |
} |
//check pattern |
if(rsp[4]!= 0xAA) |
481,7 → 479,7 |
// answer to cmd58 is an R3 response (R1 + 4Byte OCR) |
if(rsp[0] & R1_BAD_RESPONSE) |
{ |
sprintf(text,"Bad cmd58 R1 %02x.\r\n", rsp[0]); |
sprintf(text,"Bad cmd58 R1 %02x.", rsp[0]); |
SerialPutString(text); |
result = SD_ERROR_BAD_RESPONSE; |
goto end; |
488,39 → 486,39 |
} |
if(rsp[0] & R1_ILLEGAL_CMD) |
{ |
SerialPutString("Not an SD-CARD.\r\n"); |
SerialPutString("Not an SD-CARD."); |
result = SD_ERROR_NO_SDCARD; |
goto end; |
} |
// read 4 bytes of OCR register |
for(Timeout = 1; Timeout < 5; Timeout++) |
for(timeout = 1; timeout < 5; timeout++) |
{ |
rsp[Timeout] = SSC_GetChar(); |
rsp[timeout] = SSC_GetChar(); |
} |
// NavicCtrl uses 3.3 V, therefore check for bit 20 & 21 |
if((rsp[2] & 0x30) != 0x30) |
{ |
// supply voltage is not supported by sd-card |
SerialPutString("Card is incompatible to 3.3V.\r\n"); |
SerialPutString("Card is incompatible to 3.3V."); |
result = SD_ERROR_BAD_VOLTAGE_RANGE; |
goto end; |
} |
// Initialize the sd-card sending continously ACMD_SEND_OP_COND (only supported by SD cards) |
Timeout = SetDelay(2000); // set timeout to 2000 ms (large cards tend to longer) |
timeout = SetDelay(2000); // set timeout to 2000 ms (large cards tend to longer) |
do |
{ |
rsp[0] = SDC_SendACMDR1(ACMD_SEND_OP_COND, 0UL); |
if(rsp[0] & R1_BAD_RESPONSE) |
{ |
sprintf(text,"Bad Acmd41 R1=%02X.\r\n", rsp[0]); |
sprintf(text,"Bad Acmd41 R1=%02X.", rsp[0]); |
SerialPutString(text); |
result = SD_ERROR_BAD_RESPONSE; |
goto end; |
} |
if(CheckDelay(Timeout)) |
if(CheckDelay(timeout)) |
{ |
SerialPutString("Init timeout.\r\n"); |
SerialPutString("Init timeout."); |
result = SD_ERROR_INITIALIZE; |
goto end; |
} |
528,7 → 526,7 |
if(rsp[0] != R1_NO_ERR) |
{ |
SerialPutString("Init error.\r\n"); |
SerialPutString("Init error."); |
result = SD_ERROR_INITIALIZE; |
goto end; |
} |
535,13 → 533,12 |
/* set block size to 512 bytes */ |
if(SDC_SendCMDR1(CMD_SET_BLOCKLEN, 512UL) != R1_NO_ERR) |
{ |
SerialPutString("Error setting block length to 512.\r\n"); |
SerialPutString("Error setting block length to 512."); |
result = SD_ERROR_SET_BLOCKLEN; |
goto end; |
} |
//SSC_Disable(); // set SD_CS high |
//SSC_Disable(); // set SD_CS high |
// here is the right place to inrease the SPI boud rate to maximum |
//SSC_Enable(); // set SD_CS high |
557,7 → 554,7 |
result = SDC_GetCSD((u8 *)&SDCardInfo.CSD); |
if(result != SD_SUCCESS) |
{ |
SerialPutString("Error reading CSD.\r\n"); |
SerialPutString("Error reading CSD."); |
goto end; |
} |
601,8 → 598,9 |
c_size |= ((u32)SDCardInfo.CSD[8])<<8; //CSD[08] -> [63:56] |
c_size |= (u32)SDCardInfo.CSD[9]; //CSD[09] -> [55:48]; |
SDCardInfo.Capacity = (c_size + 1)* 512L * 1024L; |
break; |
default: //unknown CSD Version |
break; |
default: //unknown CSD Version |
SDCardInfo.Capacity = 0; |
break; |
} |
621,9 → 619,8 |
sprintf(text, "\r\n Capacity = %i MB", mb_size); |
SerialPutString(text); |
// SDC_PrintCID((u8 *)&SDCardInfo.CID); |
SDC_PrintCID((u8 *)&SDCardInfo.CID); |
SDCardInfo.Valid = 1; |
// jump point for error condition before |
end: |
SSC_Disable(); |
630,13 → 627,11 |
} |
else |
{ |
//SerialPutString("\r\nNo Card in Slot."); |
SSC_Deinit(); |
SDCardInfo.Valid = 0; |
result = SD_ERROR_NOCARD; |
SerialPutString("No Card in Slot."); |
} |
// if(result != SD_SUCCESS) SerialPutString("nok "); |
return(result); |
} |
652,7 → 647,7 |
SD_Result_t SDC_Deinit(void) |
{ |
SerialPutString("SDC deinit..."); |
SerialPutString("\r\n SDC deinit..."); |
SSC_Deinit(); |
SDCardInfo.Valid = 0; |
659,7 → 654,7 |
SDCardInfo.Capacity = 0; |
SDCardInfo.Version = VER_UNKNOWN; |
SerialPutString("ok\r\n"); |
SerialPutString("ok"); |
return(SD_SUCCESS); |
} |
676,9 → 671,8 |
SD_Result_t SDC_PutSector(u32 addr, const u8 *Buffer) |
{ |
u8 rsp; |
u16 a, crc16; |
u16 timeout = 0; |
u16 a, Crc16; |
//u32 Timeout = 0; |
SD_Result_t result = SD_ERROR_UNKNOWN; |
addr = addr << 9; // convert sectoradress to byteadress |
693,7 → 687,7 |
{ |
SSC_GetChar(); |
} |
Crc16 = CRC16(Buffer, 512); // calc checksum for data block |
crc16 = CRC16(Buffer, 512); // calc checksum for data block |
SSC_PutChar(DATA_START_TOKEN); // send data start of header to the SSC |
for (a=0;a<512;a++) // transmit one sector (normaly 512bytes) of data to the sdcard. |
701,13 → 695,17 |
SSC_PutChar(Buffer[a]); |
} |
// write two bytes of crc16 to the sdcard |
SSC_PutChar((u8)(Crc16>>8)); // write high byte first |
SSC_PutChar((u8)(0x00FF&Crc16)); // lowbyte last |
SSC_PutChar((u8)(crc16>>8)); // write high byte first |
SSC_PutChar((u8)(0x00FF&crc16)); // lowbyte last |
SSC_ClearRxFifo(); |
do // wait for data response token |
{ |
rsp = SSC_GetChar(); |
if(timeout++>500) break; |
if(timeout++ > 500) |
{ |
result = SD_ERROR_TIMEOUT; |
goto end; |
} |
}while((rsp & 0x11) != 0x01 ); |
// analyse data response token |
switch(rsp & DATA_RESPONSE_MASK) |
729,19 → 727,21 |
break; |
} |
// wait until the sdcard is busy. |
rsp = SDC_WaitForBusy(); |
// wait 2 seconds until the sdcard is busy. |
rsp = SDC_WaitForBusy(2000); |
if(rsp != 0xFF) |
{ |
result = SD_ERROR_TIMEOUT; |
goto end; |
result = SD_ERROR_TIMEOUT; |
goto end; |
} |
// check card status |
rsp = SDC_SendCMDR1(CMD_SEND_STATUS, 0); |
// first byte of R2 response is like R1 response |
if(rsp != R1_NO_ERR) |
{ |
result = SD_ERROR_BAD_RESPONSE; |
SSC_GetChar(); |
SSC_GetChar(); // read out 2nd byte |
goto end; |
} |
// 2nd byte of r2 response |
753,7 → 753,6 |
goto end; |
} |
end: |
//SSC_Disable(); // disable sdcard. |
if(result != SD_SUCCESS) |
{ |
sprintf(text,"Error %02X writing data to sd card (R=%02X).\r\n", result, rsp); |
760,7 → 759,7 |
SerialPutString(text); |
} |
return(result); |
} |
} |
//________________________________________________________________________________________________________________________________________ |
/trunk/sdc.h |
---|
1,7 → 1,6 |
#ifndef _SDC_H |
#define _SDC_H |
#include "91x_lib.h" |
//________________________________________________________________________________________________________________________________________ |
// |
26,10 → 25,10 |
SD_ERROR_UNKNOWN |
} SD_Result_t; |
extern SD_Result_t SDC_Init(void); |
extern SD_Result_t SDC_GetSector (u32 ,u8 *); |
extern SD_Result_t SDC_PutSector (u32, const u8 *); |
extern SD_Result_t SDC_Deinit(void); |
SD_Result_t SDC_Init(void); |
SD_Result_t SDC_GetSector (u32 ,u8 *); |
SD_Result_t SDC_PutSector (u32, const u8 *); |
SD_Result_t SDC_Deinit(void); |
#endif // _SDC_H |
/trunk/settings.c |
---|
54,7 → 54,13 |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include "91x_lib.h" |
#include "fat16.h" |
#include "settings.h" |
#include "uart1.h" |
struct str_setting_parameter CFG_Parameter[] = |
{ |
105,12 → 111,12 |
} |
//---------------------------------------------------------------------------------- |
void ReadSetting(unsigned char number) |
void ReadSetting(u8 number) |
{ |
File *fp; |
char text[32]; |
File_t *fp; |
u8 text[32]; |
u8 tmp; |
char *token; |
u8 *token; |
InitDefaultParameters(); |
/trunk/spi_slave.c |
---|
7,14 → 7,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,21 → 25,21 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
52,313 → 52,399 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <string.h> |
#include "91x_lib.h" |
#include "led.h" |
#include "GPS.h" |
#include "uart1.h" |
#include "spi_slave.h" |
#include "i2c.h" |
#include "timer.h" |
#include "main.h" |
#include "fifo.h" |
struct str_FromFlightCtrl FromFlightCtrl; |
struct str_ToFlightCtrl ToFlightCtrl; |
struct str_ToFlightCtrl SPI_TxBuffer; |
#define SPI_RXSYNCBYTE1 0xAA |
#define SPI_RXSYNCBYTE2 0x83 |
#define SPI_TXSYNCBYTE1 0x81 |
#define SPI_TXSYNCBYTE2 0x55 |
volatile unsigned char SPI_Buffer[sizeof(FromFlightCtrl)]; |
volatile unsigned char SPI_BufferIndex = 0; |
volatile unsigned char SPI_TXBufferIndex = 0; |
typedef enum |
{ |
SPI_SYNC1, |
SPI_SYNC2, |
SPI_DATA |
} SPI_State_t; |
s16 CompassValue; |
//communication packets |
volatile FromFlightCtrl_t FromFlightCtrl; |
volatile ToFlightCtrl_t ToFlightCtrl; |
volatile struct str_MicroMag MicroMag; |
// tx packet buffer |
#define SPI_TXBUFFER_LEN (2 + sizeof(ToFlightCtrl)) // 2 bytes at start are for synchronization |
volatile u8 SPI_TxBuffer[SPI_TXBUFFER_LEN]; |
volatile u8 SPI_TxBufferIndex = 0; |
u8 *Ptr_TxChksum = NULL ; // pointer to checksum in TxBuffer |
// rx packet buffer |
#define SPI_RXBUFFER_LEN sizeof(FromFlightCtrl) |
volatile u8 SPI_RxBuffer[SPI_RXBUFFER_LEN]; |
volatile u8 SPI_RxBufferIndex = 0; |
volatile u8 SPI_RxBuffer_Request = 0; |
#define SPI_COMMAND_INDEX 0 |
unsigned char *Ptr_buffer_Tx = (unsigned char *) &SPI_TxBuffer; |
//unsigned char *Ptr_buffer_Tx = (unsigned char *) &ToFlightCtrl; |
unsigned char *Ptr_buffer_Rx = (unsigned char *) &FromFlightCtrl; |
volatile unsigned char SPI_state = 0, SPI_TXUpdatebufferRequest = 0, SPI_RXUpdatebufferRequest = 0; |
unsigned char SPI_CommandSequence[] = { SPI_CMD_OSD_DATA, SPI_CMD_GPS_POS, SPI_CMD_GPS_TARGET}; |
unsigned char SPI_CommandCounter = 0; |
s32 FC_Kalman_K = 32; |
s32 Kalman_MaxDrift = 5 * 16; |
s32 Kalman_MaxFusion = 64; |
u32 CheckSPIOkay = 0; |
//-------------------------------------------------------------- |
void SSP0_IRQHandler(void) |
{ |
static u8 chksum = 0; |
u8 data; |
GPIO_ToggleBit(GPIO5, GPIO_Pin_7); |
SSP_ClearITPendingBit(SSP0, SSP_IT_RxTimeOut); |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_TxFifoNotFull) == SET) |
{ |
if (SPI_TXBufferIndex < sizeof(ToFlightCtrl)) // still data to send ? |
{ SSP0->DR = Ptr_buffer_Tx[SPI_TXBufferIndex]; |
SPI_TxBuffer.Chksum += Ptr_buffer_Tx[SPI_TXBufferIndex]; |
SPI_TXBufferIndex++; |
} |
else |
{ |
SPI_TXBufferIndex = 0; |
SPI_TXUpdatebufferRequest = 1; |
ToFlightCtrl.Chksum = 0; |
ToFlightCtrl.BeepTime = BeepTime; |
BeepTime = 0; |
memcpy((unsigned char *) &SPI_TxBuffer, (unsigned char *) &ToFlightCtrl, sizeof(ToFlightCtrl)); |
} |
} |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_RxFifoNotEmpty)==SET) |
{ |
u8 SPI_CommandSequence[] = { SPI_KALMAN, SPI_CMD_OSD_DATA, SPI_CMD_GPS_POS, SPI_KALMAN, SPI_CMD_GPS_TARGET}; |
u8 SPI_CommandCounter = 0; |
data = SSP0->DR; |
SPI_Version_t FC_Version; |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_TxFifoNotFull) == SET) |
{ |
if (SPI_TXBufferIndex < sizeof(ToFlightCtrl)) // still data to send ? |
{ SSP0->DR = Ptr_buffer_Tx[SPI_TXBufferIndex]; |
SPI_TxBuffer.Chksum += Ptr_buffer_Tx[SPI_TXBufferIndex]; |
SPI_TXBufferIndex++; |
} |
else |
{ |
SPI_TXBufferIndex = 0; |
ToFlightCtrl.Chksum = 0; |
SPI_TXUpdatebufferRequest = 1; |
ToFlightCtrl.BeepTime = BeepTime; |
BeepTime = 0; |
memcpy((unsigned char *) &SPI_TxBuffer, (unsigned char *) &ToFlightCtrl, sizeof(ToFlightCtrl)); |
} |
u8 CompassCalStateQueue[10]; |
fifo_t CompassCalcStateFiFo; |
} |
switch (SPI_state ) |
{ |
case 0: |
SPI_BufferIndex = 0; |
chksum = data; |
if (data == 0xAA && !SPI_RXUpdatebufferRequest) { SPI_state = 1; } // 1. Syncbyte ok |
break; |
u8 CompassCalState = 0; |
case 1: |
if (data == 0x83) { chksum += data; SPI_state = 2; } // 2. Syncbyte ok |
else SPI_state = 0; |
break; |
case 2: |
SPI_Buffer[SPI_BufferIndex++]= data; // get data |
if (SPI_BufferIndex >= sizeof(SPI_Buffer)) // end of packet |
{ |
if (data == chksum) |
{ |
u8 i; |
SPI_RXUpdatebufferRequest = 1; |
for (i=0;i<sizeof(SPI_Buffer);i++) { Ptr_buffer_Rx[i] = SPI_Buffer[i]; } |
//-------------------------------------------------------------- |
void SSP0_IRQHandler(void) |
{ |
static u8 rxchksum = 0; |
u8 rxdata; |
static SPI_State_t SPI_State = SPI_SYNC1; |
DebugOut.Analog[13]++; |
} |
else { DebugOut.Analog[12]++; } |
SPI_state = 0; |
} |
else chksum += data; |
break; |
default: SPI_state = 0; break; |
} |
} |
// clear pending bit |
SSP_ClearITPendingBit(SSP0, SSP_IT_RxTimeOut); |
// Fill TxFIFO while its not full or end of packet is reached |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_TxFifoNotFull) == SET) |
{ |
if (SPI_TxBufferIndex < SPI_TXBUFFER_LEN) // still data to send ? |
{ |
SSP0->DR = SPI_TxBuffer[SPI_TxBufferIndex]; // send a byte |
*Ptr_TxChksum += SPI_TxBuffer[SPI_TxBufferIndex]; // update checksum |
SPI_TxBufferIndex++; // pointer to next byte |
} |
else // TxBuffer end is reached then reset and copy data to tx buffer |
{ |
SPI_TxBufferIndex = 0; // reset buffer index |
ToFlightCtrl.Chksum = 0; // initialize checksum |
ToFlightCtrl.BeepTime = BeepTime; // set beeptime |
BeepTime = 0; // reset local beeptime |
// copy contents of ToFlightCtrl->SPI_TxBuffer |
memcpy( (u8 *) &(SPI_TxBuffer[2]), (u8 *) &ToFlightCtrl, sizeof(ToFlightCtrl)); |
} |
} |
// while RxFIFO not empty |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_RxFifoNotEmpty)==SET) |
{ |
rxdata = SSP0->DR; // catch the received byte |
// Fill TxFIFO while its not full or end of packet is reached |
while (SSP_GetFlagStatus(SSP0, SSP_FLAG_TxFifoNotFull) == SET) |
{ |
if (SPI_TxBufferIndex < SPI_TXBUFFER_LEN) // still data to send ? |
{ |
SSP0->DR = SPI_TxBuffer[SPI_TxBufferIndex]; // send a byte |
*Ptr_TxChksum += SPI_TxBuffer[SPI_TxBufferIndex]; // update checksum |
SPI_TxBufferIndex++; // pointer to next byte |
} |
else // end of packet is reached reset and copy data to tx buffer |
{ |
SPI_TxBufferIndex = 0; // reset buffer index |
ToFlightCtrl.Chksum = 0; // initialize checksum |
ToFlightCtrl.BeepTime = BeepTime; // set beeptime |
BeepTime = 0; // reset local beeptime |
// copy contents of ToFlightCtrl->SPI_TxBuffer |
memcpy((u8 *) &(SPI_TxBuffer[2]), (u8 *) &ToFlightCtrl, sizeof(ToFlightCtrl)); |
} |
} |
switch (SPI_State) |
{ |
case SPI_SYNC1: |
SPI_RxBufferIndex = 0; // reset buffer index |
rxchksum = rxdata; // init checksum |
if (rxdata == SPI_RXSYNCBYTE1) |
{ // 1st syncbyte ok |
SPI_State = SPI_SYNC2; // step to sync2 |
} |
break; |
case SPI_SYNC2: |
if (rxdata == SPI_RXSYNCBYTE2) |
{ // 2nd Syncbyte ok |
rxchksum += rxdata; |
SPI_State = SPI_DATA; |
} // 2nd Syncbyte does not match |
else |
{ |
SPI_State = SPI_SYNC1; //jump back to sync1 |
} |
break; |
case SPI_DATA: |
SPI_RxBuffer[SPI_RxBufferIndex++]= rxdata; // copy databyte to rx buffer |
if (SPI_RxBufferIndex >= SPI_RXBUFFER_LEN) // end of packet is reached |
{ |
if (rxdata == rxchksum) // verify checksum byte |
{ |
// copy SPI_RxBuffer -> FromFlightCtrl |
if(!SPI_RxBuffer_Request) // block writing to FromFlightCtrl on reading access |
{ |
memcpy((u8 *) &FromFlightCtrl, (u8 *) SPI_RxBuffer, sizeof(FromFlightCtrl)); |
SPI_RxBuffer_Request = 1; |
} |
CheckSPIOkay++; |
DebugOut.Analog[13]++; |
} |
else // bad checksum byte |
{ |
DebugOut.Analog[12]++; // increase SPI chksum error counter |
} |
SPI_State = SPI_SYNC1; // reset state |
} |
else // end of packet not reached |
{ |
rxchksum += rxdata; // update checksum |
} |
break; |
default: |
SPI_State = SPI_SYNC1; |
break; |
} |
} |
} |
//-------------------------------------------------------------- |
void SPI0_Init(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
SSP_InitTypeDef SSP_InitStructure; |
GPIO_InitTypeDef GPIO_InitStructure; |
SSP_InitTypeDef SSP_InitStructure; |
SerialPutString("SPI init..."); |
SCU_APBPeriphClockConfig(__GPIO2 ,ENABLE); |
SCU_APBPeriphClockConfig(__SSP0 ,ENABLE); |
GPIO_DeInit(GPIO2); |
//SSP0_CLK, SSP0_MOSI, SSP0_SS pins |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1 ; |
GPIO_Init (GPIO2, &GPIO_InitStructure); |
SerialPutString("\r\n SPI init..."); |
// SSP0_MISO pin GPIO2.6 |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2 ; |
GPIO_Init (GPIO2, &GPIO_InitStructure); |
SSP_DeInit(SSP0); |
SSP_StructInit(&SSP_InitStructure); |
SSP_InitStructure.SSP_FrameFormat = SSP_FrameFormat_Motorola; |
SSP_InitStructure.SSP_Mode = SSP_Mode_Slave; |
SSP_InitStructure.SSP_SlaveOutput = SSP_SlaveOutput_Enable; |
SSP_InitStructure.SSP_CPHA = SSP_CPHA_1Edge; |
SSP_InitStructure.SSP_CPOL = SSP_CPOL_Low; |
SSP_InitStructure.SSP_ClockRate = 0; |
SSP_Init(SSP0, &SSP_InitStructure); |
SSP_ITConfig(SSP0, SSP_IT_RxFifo | SSP_IT_TxFifo | SSP_IT_RxTimeOut, ENABLE); |
SSP_Cmd(SSP0, ENABLE); |
SCU_APBPeriphClockConfig(__GPIO2 ,ENABLE); |
SCU_APBPeriphClockConfig(__SSP0 ,ENABLE); |
ToFlightCtrl.Sync1 = 0x81; |
ToFlightCtrl.Sync2 = 0x55; |
VIC_Config(SSP0_ITLine, VIC_IRQ, 1); |
VIC_ITCmd(SSP0_ITLine, ENABLE); |
GPIO_DeInit(GPIO2); |
//SSP0_CLK, SSP0_MOSI, SSP0_NSS pins |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; //SSP0_SCLK, SSP0_MOSI, SSP0_NSS |
GPIO_Init (GPIO2, &GPIO_InitStructure); |
SerialPutString("ok\n\r"); |
} |
// SSP0_MISO pin GPIO2.6 |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2; //SSP0_MISO |
GPIO_Init (GPIO2, &GPIO_InitStructure); |
//------------------------------------------------------ |
void SPI_CheckSlaveSelect(void) |
{ |
SSP_DeInit(SSP0); |
SSP_StructInit(&SSP_InitStructure); |
SSP_InitStructure.SSP_FrameFormat = SSP_FrameFormat_Motorola; |
SSP_InitStructure.SSP_Mode = SSP_Mode_Slave; |
SSP_InitStructure.SSP_SlaveOutput = SSP_SlaveOutput_Enable; |
SSP_InitStructure.SSP_CPHA = SSP_CPHA_1Edge; |
SSP_InitStructure.SSP_CPOL = SSP_CPOL_Low; |
SSP_InitStructure.SSP_ClockRate = 0; |
//if (SS_PIN) { SPI_BufferIndex = 0; } |
DebugOut.Analog[0] = FromFlightCtrl.IntegralNick; |
DebugOut.Analog[1] = FromFlightCtrl.IntegralRoll; |
DebugOut.Analog[2] = (30*FromFlightCtrl.AccNick)/108; |
DebugOut.Analog[3] = (30*FromFlightCtrl.AccRoll)/108; |
SSP_Init(SSP0, &SSP_InitStructure); |
/* DebugOut.Analog[2] = FromFlightCtrl.StickNick; |
DebugOut.Analog[3] = FromFlightCtrl.Command; |
DebugOut.Analog[4] = FromFlightCtrl.StickRoll; |
DebugOut.Analog[5] = FromFlightCtrl.StickGier; |
*/ |
DebugOut.Analog[25] = FromFlightCtrl.GyroCompass; |
SSP_ITConfig(SSP0, SSP_IT_RxFifo | SSP_IT_TxFifo | SSP_IT_RxTimeOut, ENABLE); |
fifo_init(&CompassCalcStateFiFo, CompassCalStateQueue, sizeof(CompassCalStateQueue)); |
SSP_Cmd(SSP0, ENABLE); |
// initialize the syncbytes in the tx buffer |
SPI_TxBuffer[0] = SPI_TXSYNCBYTE1; |
SPI_TxBuffer[1] = SPI_TXSYNCBYTE2; |
// set the pointer to the checksum byte in the tx buffer |
Ptr_TxChksum = (u8 *) &(((ToFlightCtrl_t *) &(SPI_TxBuffer[2]))->Chksum); |
VIC_Config(SSP0_ITLine, VIC_IRQ, 1); |
VIC_ITCmd(SSP0_ITLine, ENABLE); |
SerialPutString("ok"); |
} |
//------------------------------------------------------ |
void UpdateSPI_Buffer(void) |
void SPI0_UpdateBuffer(void) |
{ |
if(CompassUpdateActiv) return; // testweise deaktiviert |
if(SPI_RXUpdatebufferRequest) |
{ |
VIC_ITCmd(SSP0_ITLine, DISABLE); |
if (SPI_RxBuffer_Request) |
{ |
// avoid sending data via SPI during the update of the ToFlightCtrl structure |
VIC_ITCmd(SSP0_ITLine, DISABLE); // disable SPI interrupt |
ToFlightCtrl.CompassValue = I2C_Heading.Heading; |
ToFlightCtrl.GPS_Nick = GPS_Nick; |
ToFlightCtrl.GPS_Roll = GPS_Roll; |
DebugOut.Analog[26] = I2C_Heading.Heading; |
ToFlightCtrl.CompassHeading = I2C_Heading.Heading; |
ToFlightCtrl.GPS_Nick = GPS_Stick.Nick; |
ToFlightCtrl.GPS_Roll = GPS_Stick.Roll; |
ToFlightCtrl.GPS_Yaw = GPS_Stick.Yaw; |
// cycle spi commands |
ToFlightCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++]; |
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0; |
ToFlightCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++]; |
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0; |
switch (ToFlightCtrl.Command) |
{ |
case SPI_CMD_OSD_DATA: |
ToFlightCtrl.Param.Byte[0] = OsdBar; |
ToFlightCtrl.Param.Int[1] = OsdDistance; |
break; |
switch (ToFlightCtrl.Command) |
{ |
case SPI_KALMAN: |
ToFlightCtrl.Param.Byte[0] = (char) FC_Kalman_K; |
ToFlightCtrl.Param.Byte[1] = (char) Kalman_MaxFusion; |
ToFlightCtrl.Param.Byte[2] = (char) Kalman_MaxDrift; |
break; |
case SPI_CMD_GPS_POS: |
ToFlightCtrl.Param.Long[0] = GPS_Data.Longitude; |
ToFlightCtrl.Param.Long[1] = GPS_Data.Latitude; |
break; |
case SPI_CMD_GPS_POS: |
ToFlightCtrl.Param.Long[0] = GPSData.Position.Longitude; |
ToFlightCtrl.Param.Long[1] = GPSData.Position.Latitude; |
break; |
case SPI_CMD_GPS_TARGET: |
ToFlightCtrl.Param.Long[0] = GPS_Data.TargetLongitude; |
ToFlightCtrl.Param.Long[1] = GPS_Data.TargetLatitude; |
break; |
case SPI_CMD_GPS_TARGET: |
if(GPS_pTargetPosition != NULL) |
{ |
if(GPS_pTargetPosition->Status != INVALID) |
{ |
ToFlightCtrl.Param.Long[0] = GPS_pTargetPosition->Longitude; |
ToFlightCtrl.Param.Long[1] = GPS_pTargetPosition->Latitude; |
} |
else |
{ |
ToFlightCtrl.Param.Long[0] = 0; |
ToFlightCtrl.Param.Long[1] = 0; |
} |
} |
else |
{ |
ToFlightCtrl.Param.Long[0] = 0; |
ToFlightCtrl.Param.Long[1] = 0; |
} |
break; |
default: |
break; |
} |
VIC_ITCmd(SSP0_ITLine, ENABLE); |
default: |
break; |
} |
VIC_ITCmd(SSP0_ITLine, ENABLE); // enable SPI interrupt |
if (I2C_Heading.Heading <= 359) |
{ |
} |
else |
{ |
if (I2C_Version.Hauptversion != 0xff) TimerCompassUpdate = SetDelay(1); |
return; |
} |
SPI_TXUpdatebufferRequest = 0; |
switch(FromFlightCtrl.Command) |
{ |
case SPI_CMD_USER: |
Parameter.User1 = FromFlightCtrl.Param.Byte[0]; |
Parameter.User2 = FromFlightCtrl.Param.Byte[1]; |
Parameter.User3 = FromFlightCtrl.Param.Byte[2]; |
Parameter.User4 = FromFlightCtrl.Param.Byte[3]; |
Parameter.User5 = FromFlightCtrl.Param.Byte[4]; |
Parameter.User6 = FromFlightCtrl.Param.Byte[5]; |
Parameter.User7 = FromFlightCtrl.Param.Byte[6]; |
Parameter.User8 = FromFlightCtrl.Param.Byte[7]; |
if(ClearMKFlags) |
{ |
FC.MKFlags = 0; |
ClearMKFlags = 0; |
} |
FC.MKFlags |= FromFlightCtrl.Param.Byte[8]; |
FC.UBat = FromFlightCtrl.Param.Byte[9]; |
Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[10]; |
Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[11]; |
break; |
//---------------- |
#define CHK_POTI_MM(b,a,min,max) { if(a > 250) { if(a == 251) b = FC.Poti1; else if(a == 252) b = FC.Poti2; else if(a == 253) b = FC.Poti3; else if(a == 254) b = FC.Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;} |
case SPI_CMD_PARAMETER1: |
CHK_POTI_MM(Parameter.NaviGpsModeControl,FromFlightCtrl.Param.Byte[0],0,255); |
CHK_POTI_MM(Parameter.NaviGpsGain,FromFlightCtrl.Param.Byte[1],0,255); |
CHK_POTI_MM(Parameter.NaviGpsP,FromFlightCtrl.Param.Byte[2],0,255); |
CHK_POTI_MM(Parameter.NaviGpsI,FromFlightCtrl.Param.Byte[3],0,255); |
CHK_POTI_MM(Parameter.NaviGpsD,FromFlightCtrl.Param.Byte[4],0,255); |
CHK_POTI_MM(Parameter.NaviGpsACC,FromFlightCtrl.Param.Byte[5],0,255); |
Parameter.NaviGpsMinSat = FromFlightCtrl.Param.Byte[6]; |
Parameter.NaviStickThreshold = FromFlightCtrl.Param.Byte[7]; |
CHK_POTI_MM(Parameter.NaviOperatingRadius,FromFlightCtrl.Param.Byte[8],10,255); |
CHK_POTI_MM(Parameter.NaviWindCorrection,FromFlightCtrl.Param.Byte[9],0,255); |
CHK_POTI_MM(Parameter.NaviSpeedCompensation,FromFlightCtrl.Param.Byte[10],0,255); |
CHK_POTI_MM(Parameter.NaviAngleLimitation,FromFlightCtrl.Param.Byte[11],0,255); |
// DebugOut.Analog[4] = Parameter.NaviRadiusAlert; |
// DebugOut.Analog[5] = Parameter.NaviWindCorrection; |
// DebugOut.Analog[6] = Parameter.NaviSpeedCompensation; |
break; |
// DebugOut.Analog[11] = FromFlightCtrl.Command; |
switch(FromFlightCtrl.Command) |
{ |
case SPI_CMD_USER: |
DebugOut.Analog[7]++; |
Parameter_UserParam1 = FromFlightCtrl.Param.Byte[0]; |
Parameter_UserParam2 = FromFlightCtrl.Param.Byte[1]; |
Parameter_UserParam3 = FromFlightCtrl.Param.Byte[2]; |
Parameter_UserParam4 = FromFlightCtrl.Param.Byte[3]; |
Parameter_UserParam5 = FromFlightCtrl.Param.Byte[4]; |
Parameter_UserParam6 = FromFlightCtrl.Param.Byte[5]; |
Parameter_UserParam7 = FromFlightCtrl.Param.Byte[6]; |
Parameter_UserParam8 = FromFlightCtrl.Param.Byte[7]; |
if(ClearFlags) {MikroKopterFlags = 0; ClearFlags = 0;}; |
MikroKopterFlags |= (s32) FromFlightCtrl.Param.Byte[8]; |
UBat = FromFlightCtrl.Param.Byte[9]; |
UndervoltageLevel = FromFlightCtrl.Param.Byte[10]; |
ActiveSetting = FromFlightCtrl.Param.Byte[11]; |
//DebugOut.Analog[7] = MikroKopterFlags; |
if(MikroKopterFlags & 0x004) DebugOut.Analog[8]++; |
break; |
case SPI_CMD_STICK: |
FC.StickGas = FromFlightCtrl.Param.sByte[0]; |
FC.StickYaw = FromFlightCtrl.Param.sByte[1]; |
FC.StickRoll = FromFlightCtrl.Param.sByte[2]; |
FC.StickNick = FromFlightCtrl.Param.sByte[3]; |
FC.Poti1 = FromFlightCtrl.Param.Byte[4]; |
FC.Poti2 = FromFlightCtrl.Param.Byte[5]; |
FC.Poti3 = FromFlightCtrl.Param.Byte[6]; |
FC.Poti4 = FromFlightCtrl.Param.Byte[7]; |
FC.RC_Quality = FromFlightCtrl.Param.Byte[8]; |
break; |
case SPI_CMD_PARAMETER1: |
Parameter_NaviGpsModeControl = FromFlightCtrl.Param.Byte[0]; |
Parameter_NaviGpsGain = FromFlightCtrl.Param.Byte[1]; |
Parameter_NaviGpsP = FromFlightCtrl.Param.Byte[2]; |
Parameter_NaviGpsI = FromFlightCtrl.Param.Byte[3]; |
Parameter_NaviGpsD = FromFlightCtrl.Param.Byte[4]; |
Parameter_NaviGpsACC = FromFlightCtrl.Param.Byte[5]; |
Parameter_NaviGpsMinSat = FromFlightCtrl.Param.Byte[6]; |
Parameter_NaviStickThreshold = FromFlightCtrl.Param.Byte[7]; |
Parameter_RadiusAlert = FromFlightCtrl.Param.Byte[8]; |
break; |
case SPI_CMD_STICK: |
FC_StickGas = (s32) FromFlightCtrl.Param.sByte[0]; |
FC_StickGier = (s32) FromFlightCtrl.Param.sByte[1]; |
FC_StickNick = (s32) FromFlightCtrl.Param.sByte[2]; |
FC_StickRoll = (s32) FromFlightCtrl.Param.sByte[3]; |
FC_Poti1 = (s32) FromFlightCtrl.Param.Byte[4]; |
FC_Poti2 = (s32) FromFlightCtrl.Param.Byte[5]; |
FC_Poti3 = (s32) FromFlightCtrl.Param.Byte[6]; |
FC_Poti4 = (s32) FromFlightCtrl.Param.Byte[7]; |
SenderOkay = (s32) FromFlightCtrl.Param.Byte[8]; |
break; |
case SPI_CMD_MISC: |
if(CompassCalState != FromFlightCtrl.Param.Byte[0]) |
{ // put only new CompassCalState into queue to send via I2C |
CompassCalState = FromFlightCtrl.Param.Byte[0]; |
fifo_put(&CompassCalcStateFiFo, CompassCalState); |
} |
NaviData.Altimeter = (s16) FromFlightCtrl.Param.Int[1]; |
break; |
case SPI_CMD_CAL_COMPASS: |
DebugOut.Analog[9]++; |
CompassCalState = FromFlightCtrl.Param.Byte[0]; |
break; |
case SPI_CMD_VERSION: |
FC_Version.Major = FromFlightCtrl.Param.Byte[0]; |
FC_Version.Minor = FromFlightCtrl.Param.Byte[1]; |
FC_Version.Patch = FromFlightCtrl.Param.Byte[2]; |
FC_Version.Compatible = FromFlightCtrl.Param.Byte[3]; |
break; |
default: |
break; |
} |
default: |
break; |
} |
// every time we got new data from the FC via SPI call the navigation routine |
GPS_Navigation(); |
ClearMKFlags = 1; |
//------------ |
I2C_WriteNickRoll.Roll = FromFlightCtrl.IntegralRoll; |
I2C_WriteNickRoll.Nick = FromFlightCtrl.IntegralNick; |
SPI_RxBuffer_Request = 0; |
Navigation(); |
DebugOut.Analog[0] = FromFlightCtrl.IntegralNick; |
DebugOut.Analog[1] = FromFlightCtrl.IntegralRoll; |
DebugOut.Analog[2] = (30*FromFlightCtrl.AccNick)/108; |
DebugOut.Analog[3] = (30*FromFlightCtrl.AccRoll)/108; |
DebugOut.Analog[25] = FromFlightCtrl.GyroHeading; |
SPI_RXUpdatebufferRequest = 0; |
} |
} // EOF if(SPI_RxBuffer_Request) |
} |
//------------------------------------------------------ |
void SPI0_GetFlightCtrlVersion(void) |
{ |
u16 timeout; |
u8 msg[20]; |
FC_Version.Major = 0xFF; |
FC_Version.Minor = 0xFF; |
FC_Version.Patch = 0xFF; |
FC_Version.Compatible = 0xFF; |
// polling FC version info for 2 second |
timeout = SetDelay(2000); |
do |
{ |
SPI0_UpdateBuffer(); |
if (FC_Version.Major != 0xFF) break; |
}while (!CheckDelay(timeout)); |
// if we got it |
if (FC_Version.Major != 0xFF) |
{ |
sprintf(msg, "\n\r FlightCtrl V%d.%d%c", FC_Version.Major, FC_Version.Minor, 'a'+FC_Version.Patch); |
SerialPutString(msg); |
sprintf(msg, " Compatible: %d", FC_Version.Compatible); |
SerialPutString(msg); |
} |
else SerialPutString("\n\r No version information from FlightCtrl."); |
} |
/trunk/spi_slave.h |
---|
1,17 → 1,23 |
#ifndef _SPI_H |
#define _SPI_H |
#ifndef _SPI_SLAVE_H |
#define _SPI_SLAVE_H |
#define SPI_PROTOCOL_COMP 1 |
#include "fifo.h" |
#define SS_PIN GPIO_ReadBit(GPIO2, GPIO_Pin_7) |
// IMPORTANT: no syncbytes in structure ! |
#define SPI_CMD_USER 10 |
#define SPI_CMD_STICK 11 |
#define SPI_CMD_CAL_COMPASS 12 |
#define SPI_CMD_PARAMETER1 13 |
#define SPI_PROTOCOL_COMP 2 |
struct str_FromFlightCtrl |
#define SPI_CMD_USER 10 |
#define SPI_CMD_STICK 11 |
#define SPI_CMD_MISC 12 |
#define SPI_CMD_PARAMETER1 13 |
#define SPI_CMD_VERSION 14 |
extern s32 FC_Kalman_K; |
extern s32 Kalman_MaxDrift; |
extern s32 Kalman_MaxFusion; |
typedef struct |
{ |
u8 Command; |
s16 IntegralNick; |
18,66 → 24,65 |
s16 IntegralRoll; |
s16 AccNick; |
s16 AccRoll; |
s16 GyroCompass; |
s16 GyroHeading; |
s16 GyroNick; |
s16 GyroRoll; |
s16 GyroGier; |
union |
{ u8 Byte[12]; |
s8 sByte[12]; |
s16 Int[6]; |
s16 GyroYaw; |
union |
{ |
s8 sByte[12]; |
u8 Byte[12]; |
s16 Int[6]; |
s32 Long[3]; |
float Float[3]; |
int Long[3]; |
} Param; |
u8 Chksum; |
} __attribute__((packed)); |
} __attribute__((packed)) FromFlightCtrl_t; |
#define SPI_CMD_OSD_DATA 100 |
#define SPI_CMD_GPS_POS 101 |
#define SPI_CMD_GPS_TARGET 102 |
#define SPI_KALMAN 103 |
struct str_ToFlightCtrl |
{ |
unsigned char Sync1, Sync2; |
unsigned char Command; |
s16 GPS_Nick; |
s16 GPS_Roll; |
s16 GPS_Gier; |
s16 CompassValue; |
s16 Status; |
unsigned char BeepTime; |
union |
{ u8 Byte[12]; |
s16 Int[6]; |
float Float[3]; |
int Long[3]; |
} Param; |
unsigned char Chksum; |
} __attribute__((packed)); |
typedef struct |
{ |
u8 Command; |
s16 GPS_Nick; |
s16 GPS_Roll; |
s16 GPS_Yaw; |
s16 CompassHeading; |
s16 Status; |
u16 BeepTime; |
union |
{ |
s8 sByte[12]; |
u8 Byte[12]; |
s16 Int[6]; |
s32 Long[3]; |
float Float[3]; |
}Param; |
u8 Chksum; |
} __attribute__((packed)) ToFlightCtrl_t; |
#define X_AXIS 1 |
#define Y_AXIS 2 |
#define Z_AXIS 3 |
struct str_MicroMag |
typedef struct |
{ |
unsigned char ReadAxis, WaitingforMeasurement; |
s16 Axis[3]; |
s16 Heading; |
} __attribute__((packed)); |
u8 Major; |
u8 Minor; |
u8 Patch; |
u8 Compatible; |
} __attribute__((packed)) SPI_Version_t; |
extern volatile FromFlightCtrl_t FromFlightCtrl; |
extern volatile ToFlightCtrl_t ToFlightCtrl; |
extern SPI_Version_t FC_Version; |
extern fifo_t CompassCalcStateFiFo; |
extern u32 CheckSPIOkay; |
extern struct str_FromFlightCtrl FromFlightCtrl; |
extern struct str_ToFlightCtrl ToFlightCtrl; |
void SPI0_Init(void); |
void SPI0_GetFlightCtrlVersion(void); |
void SPI0_UpdateBuffer(void); |
extern volatile struct str_MicroMag MicroMag; |
extern s16 GPS_Nick, GPS_Roll, CompassValue; |
extern void SPI0_Init(void); |
extern void SPI_CheckSlaveSelect(void); |
extern void UpdateSPI_Buffer(void); |
#endif |
#endif //_SPI_SLAVE_H |
/trunk/ssc.c |
---|
126,6 → 126,7 |
// enable APB clock for SPI1 |
SCU_APBPeriphClockConfig(__SSP1 ,ENABLE); |
// configure P5.4 -> SD-CS as an output pin |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
133,6 → 134,7 |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt1; |
GPIO_Init (GPIO5, &GPIO_InitStructure); |
// configure P3.4 -> SCK1 and P3.6 -> MOSI1 as an output pin |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_6; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
140,6 → 142,7 |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2; |
GPIO_Init (GPIO3, &GPIO_InitStructure); |
// configure P3.5 <- MISO1 as an input pin |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
156,7 → 159,7 |
// Set Baud Rate (Prescaler) |
// bit rate is BRCLK/SSP_ClockPrescaler/(1+SSP_ClockRate)) |
// With MSCLK = 48MHz/2 = BRCLK we get for the SPICLK = 24Mhz / 8 / (1+5) = 500 kHz |
SSP_InitStructure.SSP_ClockRate = 14; //5 |
SSP_InitStructure.SSP_ClockRate = 5; //5 |
SSP_InitStructure.SSP_ClockPrescaler = 8; |
SSP_Init(SSP1, &SSP_InitStructure); |
SSC_Disable(); |
/trunk/ssc.h |
---|
2,7 → 2,6 |
#define _SSC_H |
#include "91x_lib.h" |
//________________________________________________________________________________________________________________________________________ |
// |
// Functions needed for accessing the sdcard low level via SPI. |
11,13 → 10,13 |
#define SD_SWITCH !(GPIO_ReadBit(GPIO5, GPIO_Pin_3)) |
extern void SSC_Init(void); |
extern void SSC_Deinit(void); |
extern u8 SSC_GetChar (void); |
extern void SSC_PutChar (u8); |
extern void SSC_Enable(void); |
extern void SSC_Disable(void); |
extern void SSC_ClearRxFifo(void); |
void SSC_Init(void); |
void SSC_Deinit(void); |
u8 SSC_GetChar (void); |
void SSC_PutChar (u8); |
void SSC_Enable(void); |
void SSC_Disable(void); |
void SSC_ClearRxFifo(void); |
#endif //_SSC_H |
/trunk/timer.c |
---|
7,14 → 7,14 |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
25,21 → 25,21 |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
52,21 → 52,26 |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
#include "91x_lib.h" |
#include "timer.h" |
#include "uart1.h" |
u32 CountMilliseconds; |
DateTime_t SystemTime; |
//---------------------------------------------------------------------------------------------------- |
void TIM1_IRQHandler(void) |
{ |
TIM1->OC1R += 200; // Timerfreq is 200kHz, generate an interrupt every 1ms |
CountMilliseconds++; |
//if (GPIO_ReadBit(GPIO6, GPIO_Pin_3)) GPIO_WriteBit(GPIO6, GPIO_Pin_3, Bit_RESET); else GPIO_WriteBit(GPIO6, GPIO_Pin_3, Bit_SET); |
TIM_ClearFlag(TIM1, TIM_FLAG_OC1); |
{ |
TIM_ClearFlag(TIM1, TIM_FLAG_OC1); // clear irq pending bit |
TIM1->OC1R += 200; // Timerfreq is 200kHz, generate an interrupt every 1ms |
CountMilliseconds++; |
//if (GPIO_ReadBit(GPIO6, GPIO_Pin_3)) GPIO_WriteBit(GPIO6, GPIO_Pin_3, Bit_RESET); else GPIO_WriteBit(GPIO6, GPIO_Pin_3, Bit_SET); |
// write any value to VIC0 Vector address register |
VIC0->VAR = 0xFF; |
} |
//---------------------------------------------------------------------------------------------------- |
74,51 → 79,59 |
//---------------------------------------------------------------------------------------------------- |
void TIMER1_Init(void) |
{ |
TIM_InitTypeDef TIM_InitStructure; |
SerialPutString("Timer init..."); |
#define TIM1_FREQ 200000 |
// TimerOCR set in IntHandler |
TIM_InitTypeDef TIM_InitStructure; |
SCU_APBPeriphClockConfig(__TIM01, ENABLE); |
TIM_StructInit(&TIM_InitStructure); |
TIM_InitStructure.TIM_Mode = TIM_OCM_CHANNEL_1; |
TIM_InitStructure.TIM_OC1_Modes = TIM_TIMING; |
TIM_InitStructure.TIM_Clock_Source = TIM_CLK_APB; |
TIM_InitStructure.TIM_Prescaler = (SCU_GetPCLKFreqValue() * 1000) / TIM1_FREQ; // klappt nur bis 48 MHz ! |
TIM_Init (TIM1, &TIM_InitStructure); |
SerialPutString("Timer init..."); |
TIM_ITConfig(TIM1, TIM_IT_OC1, ENABLE); |
TIM_CounterCmd(TIM1, TIM_START); |
#define TIM1_FREQ 200000 // 200kHz |
// TimerOCR set in IntHandler |
VIC_Config(TIM1_ITLine, VIC_IRQ, 5); |
VIC_ITCmd(TIM1_ITLine, ENABLE); |
SCU_APBPeriphClockConfig(__TIM01, ENABLE); |
// DebugOut.Analog[27] = SCU_GetPCLKFreqValue()/1000; |
TIM_StructInit(&TIM_InitStructure); |
TIM_InitStructure.TIM_Mode = TIM_OCM_CHANNEL_1; |
TIM_InitStructure.TIM_OC1_Modes = TIM_TIMING; |
TIM_InitStructure.TIM_Clock_Source = TIM_CLK_APB; |
TIM_InitStructure.TIM_Prescaler = (SCU_GetPCLKFreqValue() * 1000) / TIM1_FREQ; // is only valid up to 48 MHz ! |
TIM_Init (TIM1, &TIM_InitStructure); |
CountMilliseconds = 0; |
SerialPutString("ok\n\r"); |
TIM_ITConfig(TIM1, TIM_IT_OC1, ENABLE); |
TIM_CounterCmd(TIM1, TIM_START); |
VIC_Config(TIM1_ITLine, VIC_IRQ, 5); |
VIC_ITCmd(TIM1_ITLine, ENABLE); |
SystemTime.Year = 0; |
SystemTime.Month = 0; |
SystemTime.Day = 0; |
SystemTime.Hour = 0; |
SystemTime.Min = 0; |
SystemTime.Sec = 0; |
SystemTime.mSec = 0; |
SystemTime.Valid = 0; |
CountMilliseconds = 0; |
SerialPutString("ok\n\r"); |
} |
// ----------------------------------------------------------------------- |
u32 SetDelay (u32 t) |
{ |
return(CountMilliseconds + t -1); |
return(CountMilliseconds + t -1); |
} |
// ----------------------------------------------------------------------- |
u8 CheckDelay(u32 t) |
{ |
return(((t - CountMilliseconds)& 0x80000000) >> 27); |
return(((t - CountMilliseconds)& 0x80000000) >> 27); |
} |
// ----------------------------------------------------------------------- |
void Delay_ms(u32 w) |
{ |
u32 akt; |
akt = SetDelay(w); |
while (!CheckDelay(akt)); |
static u32 akt; |
akt = SetDelay(w); |
while (!CheckDelay(akt)); |
} |
/trunk/timer.h |
---|
1,6 → 1,20 |
#ifndef _TIMER_H |
#define _TIMER_H |
#define _TIMER_H |
typedef struct{ |
u16 Year; |
u8 Month; |
u8 Day; |
u8 Hour; |
u8 Min; |
u8 Sec; |
u16 mSec; |
u8 Valid; |
} DateTime_t; |
extern DateTime_t SystemTime; |
extern u32 CountMilliseconds; |
void TIMER1_Init(void); |
7,4 → 21,7 |
u32 SetDelay (u32 t); |
u8 CheckDelay(u32 t); |
void Delay_ms(u32 w); |
#endif |
/trunk/uart0.c |
---|
0,0 → 1,304 |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 2008 Ingo Busker, Holger Buss |
// + Nur für den privaten Gebrauch |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "91x_lib.h" |
#include "uart1.h" |
#include "ubx.h" |
#include <stdio.h> |
//------------------------------------------------------------------------------------ |
// global variables |
// UART0 MUXER |
typedef enum |
{ |
UART0_UNDEF, |
UART0_MK3MAG, |
UART0_MKGPS |
} UART0_MuxerState_t; |
UART0_MuxerState_t UART0_Muxer = UART0_UNDEF; |
u16 Uart0Baudrate = BAUD_RATE; |
u16 Uart0MK3MagBaudrate = BAUD_RATE; |
//------------------------------------------------------------------------------------ |
// functions |
/********************************************************/ |
/* Connect RXD & TXD to GPS */ |
/********************************************************/ |
void UART0_Connect_to_MKGPS(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
UART0_Muxer = UART0_UNDEF; |
SCU_APBPeriphClockConfig(__GPIO6, ENABLE); // Enable the GPIO6 Clock |
// unmap UART0 from Compass |
// set port pin 5.1 (serial data from compass) to input and disconnect from IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
// set port pin 5.0 (serial data to compass) to input |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
// map UART0 to GPS |
// set port pin 6.6 (serial data from gps) to input and connect to IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; //UART0_RxD |
GPIO_Init(GPIO6, &GPIO_InitStructure); |
// set port pin 6.7 (serial data to gps) to output |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt3; //UART0_TX |
GPIO_Init(GPIO6, &GPIO_InitStructure); |
UART0_Muxer = UART0_MKGPS; |
} |
/********************************************************/ |
/* Connect RXD & TXD to MK3MAG */ |
/********************************************************/ |
void UART0_Connect_to_MK3MAG(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
UART0_Muxer = UART0_UNDEF; |
SCU_APBPeriphClockConfig(__GPIO5, ENABLE); |
// unmap UART0 from GPS |
// set port pin 6.6 (serial data from gps) to input and disconnect from IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO6, &GPIO_InitStructure); |
// set port pin 6.7 (serial data to gps) to input |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO6, &GPIO_InitStructure); |
// map UART0 to Compass |
// set port pin 5.1 (serial data from compass) to input and connect to IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; //UART0_RxD |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
// set port pin 5.0 (serial data to compass) to output |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt3; //UART0_TX |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
UART0_Muxer = UART0_MK3MAG; |
} |
/********************************************************/ |
/* Initialize UART0 */ |
/********************************************************/ |
void UART0_Init(void) |
{ |
UART_InitTypeDef UART_InitStructure; |
SerialPutString("\r\n UART0 init..."); |
SCU_APBPeriphClockConfig(__UART0, ENABLE); // Enable the UART0 Clock |
Uart0Baudrate = BAUD_RATE + ((BAUD_RATE * 2)/100); // MK3Mag baudrate is a litlle bit higher... |
/* UART0 configured as follow: |
- Word Length = 8 Bits |
- One Stop Bit |
- No parity |
- BaudRate = 57600 baud |
- Hardware flow control Disabled |
- Receive and transmit enabled |
- Receive and transmit FIFOs are Disabled |
*/ |
UART_StructInit(&UART_InitStructure); |
UART_InitStructure.UART_WordLength = UART_WordLength_8D; |
UART_InitStructure.UART_StopBits = UART_StopBits_1; |
UART_InitStructure.UART_Parity = UART_Parity_No ; |
UART_InitStructure.UART_BaudRate = Uart0Baudrate; |
UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None; |
UART_InitStructure.UART_Mode = UART_Mode_Tx_Rx; |
UART_InitStructure.UART_FIFO = UART_FIFO_Enable; |
UART_InitStructure.UART_TxFIFOLevel = UART_FIFOLevel_1_2; |
UART_InitStructure.UART_RxFIFOLevel = UART_FIFOLevel_1_2; |
UART_DeInit(UART0); // reset uart 0 to default |
UART_Init(UART0, &UART_InitStructure); // initialize uart 0 |
// enable uart 0 interrupts selective |
UART_ITConfig(UART0, UART_IT_Receive | UART_IT_ReceiveTimeOut /*| UART_IT_FrameError*/, ENABLE); |
UART_Cmd(UART0, ENABLE); // enable uart 0 |
// configure the uart 0 interupt line as an IRQ with priority 10 (0 is highest) |
VIC_Config(UART0_ITLine, VIC_IRQ, 10); |
// enable the uart 0 IRQ |
VIC_ITCmd(UART0_ITLine, ENABLE); |
UART0_Connect_to_MKGPS(); |
SerialPutString("ok"); |
} |
/********************************************************/ |
/* UART0 Interrupt Handler */ |
/********************************************************/ |
void UART0_IRQHandler(void) |
{ |
u8 c; |
/* |
static u8 frame_error_cnt = 0; |
// use frame error to adjust baudrate for MK3MAG |
if((UART_GetITStatus(UART0, UART_IT_FrameError) == SET)) |
{ |
u8 msg[20]; |
frame_error_cnt++; |
if (frame_error_cnt == 200) |
{ |
frame_error_cnt = 0; |
VIC_ITCmd(UART0_ITLine, DISABLE); |
Uart0MK3MagBaudrate +=100; |
if (Uart0MK3MagBaudrate > (BAUD_RATE+1000)) Uart0MK3MagBaudrate = BAUD_RATE; |
Uart0Baudrate = Uart0MK3MagBaudrate; |
SerialPutString(" adjusting UART0 baudrate to"); |
sprintf(msg, " %d baud...", Uart0MK3MagBaudrate); SerialPutString(msg); |
while(UART_GetFlagStatus(UART0, UART_FLAG_RxFIFOEmpty) != SET) |
{ |
c = UART_ReceiveData(UART0); |
} |
UART_ClearITPendingBit(UART0, UART_IT_FrameError); // clear frame error interrupt flag |
UART0_Init(); |
return; |
} |
}*/ |
// if receive irq or receive timeout irq has occured |
if((UART_GetITStatus(UART0, UART_IT_Receive) != RESET) || (UART_GetITStatus(UART0, UART_IT_ReceiveTimeOut) != RESET) ) |
{ |
UART_ClearITPendingBit(UART0, UART_IT_Receive); // clear receive interrupt flag |
UART_ClearITPendingBit(UART0, UART_IT_ReceiveTimeOut); // clear receive timeout interrupt flag |
// if debug UART is UART0 |
if (DebugUART == UART0) |
{ // forward received data to the UART1 tx buffer |
while(UART_GetFlagStatus(UART0, UART_FLAG_RxFIFOEmpty) != SET) |
{ |
// wait for space in the tx buffer of the UART1 |
while(UART_GetFlagStatus(UART1, UART_FLAG_TxFIFOFull) == SET) {}; |
// move the byte from the rx buffer of UART0 to the tx buffer of UART1 |
UART_SendData(UART1, UART_ReceiveData(UART0)); |
} |
} |
else // UART0 is not the DebugUART (normal operation) |
{ |
// repeat until no byte is in the RxFIFO |
while (UART_GetFlagStatus(UART0, UART_FLAG_RxFIFOEmpty) != SET) |
{ |
c = UART_ReceiveData(UART0); // get byte from rx fifo |
switch(UART0_Muxer) |
{ |
case UART0_MKGPS: |
UBX_Parser(c); // if connected to GPS forward byte to ubx parser |
break; |
case UART0_MK3MAG: |
// ignore any byte send from MK3MAG |
break; |
case UART0_UNDEF: |
default: |
// ignore the byte from unknown source |
break; |
} // eof switch(UART0_Muxer) |
} // eof while |
} // eof UART0 is not the DebugUART |
} // eof receive irq or receive timeout irq |
} |
/trunk/uart0.h |
---|
0,0 → 1,9 |
#ifndef __UART0_H |
#define __UART0_H |
void UART0_Init (void); |
void UART0_Connect_to_MKGPS(void); |
void UART0_Connect_to_MK3MAG(void); |
#endif //__UART0_H |
/trunk/uart1.c |
---|
0,0 → 1,755 |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 2008 Ingo Busker, Holger Buss |
// + Nur für den privaten Gebrauch |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdio.h> |
#include <stdarg.h> |
#include <string.h> |
#include "91x_lib.h" |
#include "ramfunc.h" |
#include "menu.h" |
#include "printf_P.h" |
#include "GPS.h" |
#include "i2c.h" |
#include "uart0.h" |
#include "uart1.h" |
#include "uart2.h" |
#include "timer.h" |
#include "usb.h" |
#include "main.h" |
#include "waypoints.h" |
#include "GPS.h" |
// slave addresses |
#define FC_ADDRESS 1 |
#define NC_ADDRESS 2 |
#define MK3MAG_ADDRESS 3 |
#define FALSE 0 |
#define TRUE 1 |
u8 Request_SendFollowMe = FALSE; |
u8 Request_VerInfo = FALSE; |
u8 Request_ExternalControl = FALSE; |
u8 Request_Display = FALSE; |
u8 Request_Display1 = FALSE; |
u8 Request_DebugData = FALSE; |
u8 Request_DebugLabel = 255; |
u8 Request_ChannelOnly = FALSE; |
u8 Request_NaviData = FALSE; |
u8 Request_ErrorMessage = FALSE; |
u8 Request_NewWaypoint = FALSE; |
u8 DisplayLine = 0; |
UART_TypeDef *DebugUART = UART1; |
volatile u8 txd_buffer[TXD_BUFFER_LEN]; |
volatile u8 rxd_buffer_locked = FALSE; |
volatile u8 rxd_buffer[RXD_BUFFER_LEN]; |
volatile u8 txd_complete = TRUE; |
volatile u8 ReceivedBytes = 0; |
volatile u8 CntCrcError = 0; |
volatile u8 *pRxData = NULL; |
volatile u8 RxDataLen = 0; |
u8 text[100]; |
u8 PcAccess = 100; |
u8 MotorTest[4] = {0,0,0,0}; |
u8 ConfirmFrame = 0; |
DebugOut_t DebugOut; |
ExternControl_t ExternControl; |
UART_VersionInfo_t UART_VersionInfo; |
NaviData_t NaviData; |
Waypoint_t FollowMe; |
u32 DebugData_Timer; |
u32 DebugData_Interval = 1000; // in 1ms |
u32 NaviData_Timer; |
u32 NaviData_Interval = 1000; // in 1ms |
static u16 ptr_txd_buffer = 0; |
const u8 ANALOG_LABEL[32][16] = |
{ |
//1234567890123456 |
"AngleNick ", //0 |
"AngleRoll ", |
"AccNick ", |
"AccRoll ", |
" ", |
" ", //5 |
" ", |
" ", |
" ", |
" ", |
" ", //10 |
"GPS Data ", |
"SPI Error ", |
"SPI Okay ", |
"I2C Error ", |
"I2C Okay ", //15 |
" ",// "FC_Kalman_K ", |
"ACC_Speed_N ", |
"ACC_Speed_E ", |
" ",// "GPS ACC ", |
" ",// "MAXDrift ", //20 |
"N_Speed ", |
"E_Speed ", |
" ",// "KalmDist_N ", |
" ",// "KalmDist_E ", |
"GyroHeading ",//25 |
"CompassHeading ", |
"Distance N ", |
"Distance E ", |
"GPS_Nick ", |
"GPS_Roll ", //30 |
"Used_Sats " |
}; |
/********************************************************/ |
/* Initialization the UART1 */ |
/********************************************************/ |
void UART1_Init (void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
UART_InitTypeDef UART_InitStructure; |
SCU_APBPeriphClockConfig(__UART1, ENABLE); // Enable the UART1 Clock |
SCU_APBPeriphClockConfig(__GPIO3, ENABLE); // Enable the GPIO3 Clock |
/*Configure UART1_Rx pin GPIO3.2*/ |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; // UART1_RxD |
GPIO_Init(GPIO3, &GPIO_InitStructure); |
/*Configure UART1_Tx pin GPIO3.3*/ |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2; // UART1_TX |
GPIO_Init(GPIO3, &GPIO_InitStructure); |
/* UART1 configured as follow: |
- Word Length = 8 Bits |
- One Stop Bit |
- No parity |
- BaudRate = 57600 baud |
- Hardware flow control Disabled |
- Receive and transmit enabled |
- Receive and transmit FIFOs are Disabled |
*/ |
UART_StructInit(&UART_InitStructure); |
UART_InitStructure.UART_WordLength = UART_WordLength_8D; |
UART_InitStructure.UART_StopBits = UART_StopBits_1; |
UART_InitStructure.UART_Parity = UART_Parity_No ; |
UART_InitStructure.UART_BaudRate = BAUD_RATE; |
UART_InitStructure. UART_HardwareFlowControl = UART_HardwareFlowControl_None; |
UART_InitStructure.UART_Mode = UART_Mode_Tx_Rx; |
UART_InitStructure.UART_FIFO = UART_FIFO_Enable; |
UART_InitStructure.UART_TxFIFOLevel = UART_FIFOLevel_1_2; |
UART_InitStructure.UART_RxFIFOLevel = UART_FIFOLevel_1_2; |
UART_DeInit(UART1); // reset uart 1 to default |
UART_Init(UART1, &UART_InitStructure); // initialize uart 1 |
// enable uart 1 interrupts selective |
UART_ITConfig(UART1, UART_IT_Receive | UART_IT_ReceiveTimeOut, ENABLE); |
UART_Cmd(UART1, ENABLE); // enable uart 1 |
// configure the uart 1 interupt line as an IRQ with priority 4 (0 is highest) |
VIC_Config(UART1_ITLine, VIC_IRQ, 4); |
// enable the uart 1 IRQ |
VIC_ITCmd(UART1_ITLine, ENABLE); |
// initialize the debug timer |
DebugData_Timer = SetDelay(DebugData_Interval); |
NaviData_Timer = SetDelay(NaviData_Interval+500); |
// unlock rxd_buffer |
rxd_buffer_locked = FALSE; |
pRxData = NULL; |
RxDataLen = 0; |
// no bytes to send |
txd_complete = TRUE; |
// Fill Version Info Structure |
UART_VersionInfo.SWMajor = VERSION_MAJOR; |
UART_VersionInfo.SWMinor = VERSION_MINOR; |
UART_VersionInfo.SWPatch = VERSION_PATCH; |
UART_VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR; |
UART_VersionInfo.ProtoMinor = VERSION_SERIAL_MINOR; |
SerialPutString("\r\nUART1 init...ok"); |
} |
/****************************************************************/ |
/* USART1 receiver ISR */ |
/****************************************************************/ |
void UART1_IRQHandler(void) |
{ |
static u16 crc; |
static u8 ptr_rxd_buffer = 0; |
static u8 crc1, crc2; |
static u8 abortState = 0; |
u8 c; |
if((UART_GetITStatus(UART1, UART_IT_Receive) != RESET) || (UART_GetITStatus(UART1, UART_IT_ReceiveTimeOut) != RESET) ) |
{ |
// clear the pending bits |
UART_ClearITPendingBit(UART1, UART_IT_Receive); |
UART_ClearITPendingBit(UART1, UART_IT_ReceiveTimeOut); |
// if debug UART is not UART1 |
if (DebugUART != UART1) |
{ // forward received data to the debug UART tx buffer |
while(UART_GetFlagStatus(UART1, UART_FLAG_RxFIFOEmpty) != SET) |
{ |
// wait for space in the tx buffer of the DebugUART |
while(UART_GetFlagStatus(DebugUART, UART_FLAG_TxFIFOFull) == SET) {}; |
// move the byte from the rx buffer of UART1 to the tx buffer of DebugUART |
c = UART_ReceiveData(UART1); |
// check for abort condition (ESC ESC 0x55 0xAA 0x00) |
switch (abortState) |
{ |
case 0: if (c == 27) abortState++; |
break; |
case 1: if (c == 27) abortState++; else abortState = 0; |
break; |
case 2: if (c == 0x55) abortState++; else abortState = 0; |
break; |
case 3: if (c == 0xAA) abortState++; else abortState = 0; |
break; |
case 4: if (c == 0x00) |
{ |
DebugUART = UART1; |
UART0_Connect_to_MKGPS(); |
} |
abortState = 0; |
break; |
} |
if (DebugUART != UART1) UART_SendData(DebugUART, c); |
} |
} |
else // DebugUART == UART1 (normal operation) |
{ |
while ((UART_GetFlagStatus(UART1, UART_FLAG_RxFIFOEmpty) != SET) && (!rxd_buffer_locked)) |
{ // some byes in the fifo and rxd buffer not locked |
// get byte from fifo |
c = UART_ReceiveData(UART1); |
if((ptr_rxd_buffer == 0) && (c == '#')) // if rxd buffer is empty and syncronisation character is received |
{ |
rxd_buffer[ptr_rxd_buffer++] = c; // copy 1st byte to buffer |
crc = c; // init crc |
} |
#if 0 |
else if (ptr_rxd_buffer == 1) // handle address |
{ |
rxd_buffer[ptr_rxd_buffer++] = c; // copy byte to rxd buffer |
crc += c; // update crc |
} |
#endif |
else if (ptr_rxd_buffer < RXD_BUFFER_LEN) // rxd buffer not full |
{ |
if (c != '\r') // no termination character received |
{ |
rxd_buffer[ptr_rxd_buffer++] = c; // copy byte to rxd buffer |
crc += c; // update crc |
} |
else // termination character received |
{ |
// the last 2 bytes are no subject for checksum calculation |
// they are the checksum itself |
crc -= rxd_buffer[ptr_rxd_buffer-2]; |
crc -= rxd_buffer[ptr_rxd_buffer-1]; |
// calculate checksum from transmitted data |
crc %= 4096; |
crc1 = '=' + crc / 64; |
crc2 = '=' + crc % 64; |
// compare checksum to transmitted checksum bytes |
if((crc1 == rxd_buffer[ptr_rxd_buffer-2]) && (crc2 == rxd_buffer[ptr_rxd_buffer-1])) |
{ // checksum valid |
rxd_buffer_locked = TRUE; // lock the rxd buffer |
ReceivedBytes = ptr_rxd_buffer + 1; // store number of received bytes |
rxd_buffer[ptr_rxd_buffer] = '\r'; // set termination character |
// if 2nd byte is an 'R' start bootloader |
if(rxd_buffer[2] == 'R') |
{ |
PowerOff(); |
VIC_DeInit(); |
Execute_Bootloader(); // Reset-Commando - Bootloader starten |
} |
} // eof checksum valid |
else |
{ // checksum invalid |
rxd_buffer_locked = FALSE; // unlock rxd buffer |
} // eof checksum invalid |
ptr_rxd_buffer = 0; // reset rxd buffer pointer |
} // eof termination character received |
} // rxd buffer not full |
else // rxd buffer overrun |
{ |
ptr_rxd_buffer = 0; // reset rxd buffer pointer |
rxd_buffer_locked = FALSE; // unlock rxd buffer |
} // eof rxd buffer overrrun |
} // some byes in the fifo and rxd buffer not locked |
} // eof DebugUart = UART1 |
} |
} |
/**************************************************************/ |
/* Transmit tx buffer via debug uart */ |
/**************************************************************/ |
void UART1_Transmit(void) |
{ |
u8 tmp_tx; |
// if something has to be send and the txd fifo is not full |
if((!txd_complete) && (UART_GetFlagStatus(UART1, UART_FLAG_TxFIFOFull) == RESET)) |
{ |
tmp_tx = txd_buffer[ptr_txd_buffer]; // read byte from txd buffer |
// if terminating character or end of txd buffer reached |
if((tmp_tx == '\r') || (ptr_txd_buffer == TXD_BUFFER_LEN)) |
{ |
ptr_txd_buffer = 0; // reset txd buffer pointer |
txd_complete = TRUE;// set complete flag |
} |
UART_SendData(UART1, tmp_tx); // put character to txd fifo |
// set pointer to next byte |
ptr_txd_buffer++; |
} |
} |
/**************************************************************/ |
/* Add CRC and initiate transmission via debug uart */ |
/**************************************************************/ |
void AddCRC(u16 datalen) |
{ |
u16 tmpCRC = 0, i; |
for(i = 0; i < datalen; i++) |
{ |
tmpCRC += txd_buffer[i]; |
} |
tmpCRC %= 4096; |
txd_buffer[i++] = '=' + tmpCRC / 64; |
txd_buffer[i++] = '=' + tmpCRC % 64; |
txd_buffer[i++] = '\r'; |
ptr_txd_buffer = 0; |
txd_complete = FALSE; |
UART_SendData(UART1,txd_buffer[ptr_txd_buffer++]); // send first byte, to be continued in the txd irq |
} |
/**************************************************************/ |
/* Code output data */ |
/**************************************************************/ |
void SendOutData(u8 cmd, u8 Address, u8 numofbuffers , ...) //u8 *data, u8 len, .... |
{ |
va_list ap; |
u16 pt = 0; |
u8 a,b,c; |
u8 ptr = 0; |
u8* pdata = NULL; |
int len = 0; |
txd_buffer[pt++] = '#'; // Start character |
txd_buffer[pt++] = 'a' + Address; // Address (a=0; b=1,...) |
txd_buffer[pt++] = cmd; // Command |
va_start(ap, numofbuffers); |
if(numofbuffers) |
{ |
pdata = va_arg(ap, u8*); |
len = va_arg(ap, int); |
ptr = 0; |
numofbuffers--; |
} |
while(len) |
{ |
if(len) |
{ |
a = pdata[ptr++]; |
len--; |
if((!len) && numofbuffers) // try to jump to next buffer |
{ |
pdata = va_arg(ap, u8*); |
len = va_arg(ap, int); |
ptr = 0; |
numofbuffers--; |
} |
} |
else a = 0; |
if(len) |
{ |
b = pdata[ptr++]; |
len--; |
if((!len) && numofbuffers) // try to jump to next buffer |
{ |
pdata = va_arg(ap, u8*); |
len = va_arg(ap, int); |
ptr = 0; |
numofbuffers--; |
} |
} |
else b = 0; |
if(len) |
{ |
c = pdata[ptr++]; |
len--; |
if((!len) && numofbuffers) // try to jump to next buffer |
{ |
pdata = va_arg(ap, u8*); |
len = va_arg(ap, int); |
ptr = 0; |
numofbuffers--; |
} |
} |
else c = 0; |
txd_buffer[pt++] = '=' + (a >> 2); |
txd_buffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4)); |
txd_buffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6)); |
txd_buffer[pt++] = '=' + ( c & 0x3f); |
} |
va_end(ap); |
AddCRC(pt); // add checksum after data block and initates the transmission |
} |
/**************************************************************/ |
/* Decode data */ |
/**************************************************************/ |
void Decode64(void) |
{ |
u8 a,b,c,d; |
u8 x,y,z; |
u8 ptrIn = 3; // start with first data byte in rx buffer |
u8 ptrOut = 3; |
u8 len = ReceivedBytes - 6; // must be a multiple of 4 (3 bytes at begin and 3 bytes at end are no payload ) |
while(len) |
{ |
a = rxd_buffer[ptrIn++] - '='; |
b = rxd_buffer[ptrIn++] - '='; |
c = rxd_buffer[ptrIn++] - '='; |
d = rxd_buffer[ptrIn++] - '='; |
//if(ptrIn > ReceivedBytes - 3) break; |
x = (a << 2) | (b >> 4); |
y = ((b & 0x0f) << 4) | (c >> 2); |
z = ((c & 0x03) << 6) | d; |
if(len--) rxd_buffer[ptrOut++] = x; else break; |
if(len--) rxd_buffer[ptrOut++] = y; else break; |
if(len--) rxd_buffer[ptrOut++] = z; else break; |
} |
pRxData = &rxd_buffer[3]; |
RxDataLen = ptrOut - 3; |
} |
/**************************************************************/ |
/* Process incomming data from debug uart */ |
/**************************************************************/ |
void UART1_ProcessRxData(void) |
{ |
// if data in the rxd buffer are not locked immediately return |
if((!rxd_buffer_locked) || (DebugUART != UART1) ) return; |
Waypoint_t * pWaypoint = NULL; |
PcAccess = 255; |
Decode64(); // decode data block in rxd buffer |
switch(rxd_buffer[1] - 'a') // check for Slave Address |
{ |
case NC_ADDRESS: // own Slave Address |
switch(rxd_buffer[2]) |
{ |
case 'e': // request for the text of the error status |
Request_ErrorMessage = TRUE; |
break; |
case 'o': // request for navigation information |
NaviData_Interval = (u32) pRxData[0] * 10; |
if(NaviData_Interval > 0) Request_NaviData = TRUE; |
break; |
case 's':// new target position |
pWaypoint = (Waypoint_t*)&pRxData[0]; |
BeepTime = 300; |
if(pWaypoint->Position.Status == NEWDATA) |
{ |
WPList_Clear(); // empty WPList |
WPList_Append(pWaypoint); |
GPS_pWaypoint = WPList_Begin(); |
} |
break; |
case 'u': // redirect debug uart |
switch(pRxData[0]) |
{ |
case UART_FLIGHTCTRL: |
UART2_Init(); // initialize UART2 to FC pins |
DebugUART = UART2; |
break; |
case UART_MK3MAG: |
if(FC.MKFlags & MKFLAG_MOTOR_RUN) break; // not if the motors are running |
UART0_Connect_to_MK3MAG(); // mux UART0 to MK3MAG pins |
GPSData.Status = INVALID; |
DebugUART = UART0; |
break; |
case UART_MKGPS: |
if(FC.MKFlags & MKFLAG_MOTOR_RUN) break; // not if the motors are running |
UART0_Connect_to_MKGPS(); // connect UART0 to MKGPS pins |
GPSData.Status = INVALID; |
DebugUART = UART0; |
break; |
} |
break; |
case 'w':// new PCPosition for GPSTargetList |
pWaypoint = (Waypoint_t*)&pRxData[0]; |
if(pWaypoint->Position.Status == INVALID) |
{ // clear WP List |
WPList_Clear(); |
GPS_pWaypoint = WPList_Begin(); |
//SerialPutString("\r\nClear WP List\r\n"); |
} |
else if (pWaypoint->Position.Status == NEWDATA) |
{ // app current WP to the list |
WPList_Append(pWaypoint); |
BeepTime = 500; |
//SerialPutString("\r\nAdd WP to List\r\n"); |
} |
Request_NewWaypoint = TRUE; |
break; |
default: |
// unsupported command recieved |
break; |
} // case NC_ADDRESS |
default: // and any other Slave Address |
switch(rxd_buffer[2]) // check CmdID |
{ |
case 'a':// request for the labels of the analog debug outputs |
Request_DebugLabel = pRxData[0]; |
if(Request_DebugLabel > 31) Request_DebugLabel = 31; |
break; |
case 'b': // submit extern control |
memcpy(&ExternControl, (u8*)&pRxData[0], sizeof(ExternControl)); |
ConfirmFrame = ExternControl.Frame; |
break; |
case 'd': // request for debug data; |
DebugData_Interval = (u32) pRxData[0] * 10; |
if(DebugData_Interval > 0) Request_DebugData = TRUE; |
break; |
case 'g':// request for external control data |
Request_ExternalControl = TRUE; |
break; |
case 'h':// reqest for display line |
RemoteKeys |= pRxData[0]; |
if(RemoteKeys != 0) DisplayLine = 0; |
Request_Display = TRUE; |
break; |
case 'l':// reqest for display columns |
MenuItem = pRxData[0]; |
Request_Display1 = TRUE; |
break; |
case 'v': // request for version info |
Request_VerInfo = TRUE; |
break; |
default: |
// unsupported command recieved |
break; |
} |
break; // default: |
} |
// unlock the rxd buffer after processing |
pRxData = NULL; |
RxDataLen = 0; |
rxd_buffer_locked = FALSE; |
} |
/*****************************************************/ |
/* Send a character */ |
/*****************************************************/ |
s16 uart_putchar (char c) |
{ |
if (c == '\n') uart_putchar('\r'); |
// wait until txd fifo is not full |
while (UART_GetFlagStatus(UART1, UART_FLAG_TxFIFOFull) != RESET); |
// transmit byte |
UART_SendData(UART1, c); |
return (0); |
} |
/*****************************************************/ |
/* Send a string to the debug uart */ |
/*****************************************************/ |
void SerialPutString(u8 *s) |
{ |
if(s == NULL) return; |
while (*s != '\0' && DebugUART == UART1) |
{ |
uart_putchar(*s); |
s ++; |
} |
} |
/**************************************************************/ |
/* Send the answers to incomming commands at the debug uart */ |
/**************************************************************/ |
void UART1_TransmitTxData(void) |
{ |
if(!txd_complete || (DebugUART != UART1) ) return; |
if(Request_DebugLabel != 0xFF) |
{ |
SendOutData('A', NC_ADDRESS, 2, &Request_DebugLabel, sizeof(Request_DebugLabel), (u8 *) ANALOG_LABEL[Request_DebugLabel], 16); |
Request_DebugLabel = 0xFF; |
} |
if(ConfirmFrame && txd_complete) |
{ |
SendOutData('B', NC_ADDRESS, 1, &ConfirmFrame, sizeof(ConfirmFrame)); |
ConfirmFrame = 0; |
} |
if( ((DebugData_Interval>0 && CheckDelay(DebugData_Timer)) || Request_DebugData) && txd_complete) |
{ |
SendOutData('D', NC_ADDRESS, 1,(u8 *)&DebugOut, sizeof(DebugOut)); |
DebugData_Timer = SetDelay(DebugData_Interval); |
Request_DebugData = FALSE; |
} |
if(Request_ExternalControl && txd_complete) |
{ |
SendOutData('G', NC_ADDRESS, 1, (u8 *)&ExternControl, sizeof(ExternControl)); |
Request_ExternalControl = FALSE; |
} |
if(Request_Display && txd_complete) |
{ |
LCD_PrintMenu(); |
SendOutData('H', NC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), (u8*)&DisplayBuff[DisplayLine * 20], 20); |
DisplayLine++; |
if(DisplayLine >= 4) DisplayLine = 0; |
Request_Display = FALSE; |
} |
if(Request_Display1 && txd_complete) |
{ |
LCD_PrintMenu(); |
SendOutData('L', NC_ADDRESS, 3, (u8*)&MenuItem, sizeof(MenuItem), (u8*)&MaxMenuItem, sizeof(MaxMenuItem),(u8*)DisplayBuff, sizeof(DisplayBuff)); |
Request_Display1 = FALSE; |
} |
if(Request_VerInfo && txd_complete) |
{ |
SendOutData('V', NC_ADDRESS,1, (u8 *)&UART_VersionInfo, sizeof(UART_VersionInfo)); |
Request_VerInfo = FALSE; |
} |
if(( (NaviData_Interval && CheckDelay(NaviData_Timer) ) || Request_NaviData) && txd_complete) |
{ |
NaviData.Errorcode = ErrorCode; |
SendOutData('O', NC_ADDRESS,1, (u8 *)&NaviData, sizeof(NaviData)); |
NaviData_Timer = SetDelay(NaviData_Interval); |
Request_NaviData = FALSE; |
} |
if(Request_ErrorMessage && txd_complete) |
{ |
SendOutData('E', NC_ADDRESS, 1, (u8 *)&ErrorMSG, sizeof(ErrorMSG)); |
Request_ErrorMessage = FALSE; |
} |
if(Request_SendFollowMe && txd_complete && (GPSData.NumOfSats >= 4)) // sending for "Follow me" |
{ |
GPS_CopyPosition(&(GPSData.Position),&(FollowMe.Position)); |
FollowMe.Position.Status = NEWDATA; |
FollowMe.Heading = -1; |
FollowMe.ToleranceRadius = 1; |
FollowMe.HoldTime = 60; |
FollowMe.Event_Flag = 0; |
FollowMe.reserve[0] = 0; // reserve |
FollowMe.reserve[1] = 0; // reserve |
FollowMe.reserve[2] = 0; // reserve |
FollowMe.reserve[3] = 0; // reserve |
SendOutData('s', NC_ADDRESS, 1, (u8 *)&FollowMe, sizeof(FollowMe)); |
Request_SendFollowMe = FALSE; |
} |
if(Request_NewWaypoint && txd_complete) |
{ |
u8 WPNumber = WPList_GetCount(); |
SendOutData('W', NC_ADDRESS, 1, &WPNumber, sizeof(WPNumber)); |
Request_NewWaypoint = FALSE; |
} |
} |
/trunk/uart1.h |
---|
0,0 → 1,111 |
#ifndef _UART1_H |
#define _UART1_H |
#define UART_FLIGHTCTRL 0 |
#define UART_MK3MAG 1 |
#define UART_MKGPS 2 |
#define TXD_BUFFER_LEN 150 |
#define RXD_BUFFER_LEN 150 |
#define BAUD_RATE 57600 //Baud Rate for the serial interfaces |
#include "ubx.h" |
typedef struct |
{ |
u8 Digital[2]; |
u16 Analog[32]; // Debugwerte |
} __attribute__((packed)) DebugOut_t; |
extern DebugOut_t DebugOut; |
typedef struct |
{ |
u8 Digital[2]; |
u8 RemoteButtons; |
s8 Nick; |
s8 Roll; |
s8 Yaw; |
u8 Gas; |
s8 Height; |
u8 free; |
u8 Frame; |
u8 Config; |
} __attribute__((packed)) ExternControl_t; |
extern ExternControl_t ExternControl; |
typedef struct |
{ |
s16 Nick; |
s16 Roll; |
s16 Compass; // angle between north and head of the MK |
} __attribute__((packed)) Attitude_t; |
typedef struct |
{ |
s16 Distance; // distance to target in cm |
s16 Bearing; // course to target in deg |
} __attribute__((packed)) GPS_PosDev_t; |
typedef struct |
{ |
GPS_Pos_t CurrentPosition; // see ubx.h for details |
GPS_Pos_t TargetPosition; |
GPS_PosDev_t TargetPositionDeviation; |
GPS_Pos_t HomePosition; |
GPS_PosDev_t HomePositionDeviation; |
u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1 |
u8 WaypointNumber; // number of stored waypoints |
u8 SatsInUse; // no of satellites used for position solution |
s16 Altimeter; // hight according to air pressure |
s16 Variometer; // climb(+) and sink(-) rate |
u16 FlyingTime; // in seconds |
u8 UBat; // Battery Voltage in 0.1 Volts |
u16 GroundSpeed; // speed over ground in cm/s (2D) |
s16 Heading; // current flight direction in deg as angle to north |
s16 CompassHeading; // current compass value |
s8 AngleNick; // current Nick angle in 1° |
s8 AngleRoll; // current Rick angle in 1° |
u8 RC_Quality; // RC_Quality |
u8 MKFlags; // Flags from FC |
u8 NCFlags; // Flags from NC |
u8 Errorcode; // 0 --> okay |
u8 Reserve[8]; // for future use |
} __attribute__((packed)) NaviData_t; |
extern NaviData_t NaviData; |
extern u8 Request_NaviData; |
#define NC_FLAG_FREE 1 |
#define NC_FLAG_PH 2 |
#define NC_FLAG_CH 4 |
#define NC_FLAG_RANGE_LIMIT 8 |
typedef struct |
{ |
u8 SWMajor; |
u8 SWMinor; |
u8 ProtoMajor; |
u8 ProtoMinor; |
u8 SWPatch; |
u8 Reserved[5]; |
} __attribute__((packed)) UART_VersionInfo_t; |
extern volatile u8 rxd_buffer[RXD_BUFFER_LEN]; |
extern volatile u8 ReceivedBytes; |
extern volatile u8 rxd_buffer_locked; |
extern UART_TypeDef *DebugUART; |
void UART1_Init(void); |
void UART1_Transmit(void); |
void UART1_TransmitTxData(void); |
void UART1_ProcessRxData(void); |
s16 uart_putchar (char c); |
void SerialPutString(u8 *s); |
extern u8 text[100]; |
extern u32 Request_NaviData_Intervall; // in 1ms |
extern u8 Request_SendFollowMe; |
#endif //_UART1_H |
/trunk/uart2.c |
---|
0,0 → 1,192 |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 2008 Ingo Busker, Holger Buss |
// + Nur für den privaten Gebrauch |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//#include <stdio.h> |
#include "91x_lib.h" |
#include "uart1.h" |
/********************************************************/ |
/* Initialize UART2 */ |
/********************************************************/ |
void UART2_Init(void) |
{ |
UART_InitTypeDef UART_InitStructure; |
GPIO_InitTypeDef GPIO_InitStructure; |
SerialPutString("\r\n UART2 init..."); |
SCU_APBPeriphClockConfig(__UART2, ENABLE); // Enable the UART2 Clock |
SCU_APBPeriphClockConfig(__GPIO5, ENABLE); // Enable the GPIO5 Clock |
/*Configure UART2_Rx pin GPIO5.2*/ |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; // UART2_RxD |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
SCU_APBPeriphClockConfig(__GPIO3, ENABLE); // Enable the GPIO3 Clock |
/*Configure UART2_Tx pin GPIO3.0*/ |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2; // UART2_TX |
GPIO_Init(GPIO3, &GPIO_InitStructure); |
/* UART2 configured as follow: |
- Word Length = 8 Bits |
- One Stop Bit |
- No parity |
- BaudRate = 57600 baud |
- Hardware flow control Disabled |
- Receive and transmit enabled |
- Receive and transmit FIFOs are Disabled |
*/ |
UART_StructInit(&UART_InitStructure); |
UART_InitStructure.UART_WordLength = UART_WordLength_8D; |
UART_InitStructure.UART_StopBits = UART_StopBits_1; |
UART_InitStructure.UART_Parity = UART_Parity_No ; |
UART_InitStructure.UART_BaudRate = BAUD_RATE; |
UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None; |
UART_InitStructure.UART_Mode = UART_Mode_Tx_Rx; |
UART_InitStructure.UART_FIFO = UART_FIFO_Enable; |
UART_InitStructure.UART_TxFIFOLevel = UART_FIFOLevel_1_2; |
UART_InitStructure.UART_RxFIFOLevel = UART_FIFOLevel_1_2; |
UART_DeInit(UART2); // reset uart 2 to default |
UART_Init(UART2, &UART_InitStructure); // initialize uart 2 |
// enable uart 2 interrupts selective |
UART_ITConfig(UART2, UART_IT_Receive | UART_IT_ReceiveTimeOut, ENABLE); |
UART_Cmd(UART2, ENABLE); // enable uart 2 |
// configure the uart 2 interupt line as an IRQ with priority 9 (0 is highest) |
VIC_Config(UART2_ITLine, VIC_IRQ, 9); |
// enable the uart 2 IRQ |
VIC_ITCmd(UART2_ITLine, ENABLE); |
SerialPutString("ok"); |
} |
void UART2_Deinit(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
SerialPutString("\r\n UART2 deinit..."); |
VIC_ITCmd(UART2_ITLine, DISABLE); // disable the uart 2 IRQ |
UART_Cmd(UART2, DISABLE); // disable uart 2 |
UART_DeInit(UART2); // reset uart 0 to default |
SCU_APBPeriphClockConfig(__UART2, DISABLE); // disable the UART2 Clock |
SCU_APBPeriphClockConfig(__GPIO5, ENABLE); |
// unmap UART2 from FC |
// set port pin 5.2 (serial data from FC) to input and disconnect from IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO5, &GPIO_InitStructure); |
SCU_APBPeriphClockConfig(__GPIO3, ENABLE); |
// set port pin 3.0 (serial data to FC) to input and disconnect from IP |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull; |
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable; |
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1; |
GPIO_Init(GPIO3, &GPIO_InitStructure); |
SerialPutString("ok"); |
} |
/********************************************************/ |
/* UART2 Interrupt Handler */ |
/********************************************************/ |
void UART2_IRQHandler(void) |
{ |
// if receive irq or receive timeout irq has occured |
if((UART_GetITStatus(UART2, UART_IT_Receive) != RESET) || (UART_GetITStatus(UART2, UART_IT_ReceiveTimeOut) != RESET) ) |
{ |
UART_ClearITPendingBit(UART2, UART_IT_Receive); // clear receive interrupt flag |
UART_ClearITPendingBit(UART2, UART_IT_ReceiveTimeOut); // clear receive timeout interrupt flag |
// if debug UART is UART2 |
if (DebugUART == UART2) |
{ // forward received data to the UART1 tx buffer |
while(UART_GetFlagStatus(UART2, UART_FLAG_RxFIFOEmpty) != SET) |
{ |
// wait for space in the tx buffer of the UART1 |
while(UART_GetFlagStatus(UART1, UART_FLAG_TxFIFOFull) == SET) {}; |
// move the byte from the rx buffer of UART2 to the tx buffer of UART1 |
UART_SendData(UART1, UART_ReceiveData(UART2)); |
} |
} |
else |
{ |
// ignore serial data from the FC |
while(UART_GetFlagStatus(UART2, UART_FLAG_RxFIFOEmpty) != SET) |
UART_ReceiveData(UART2); |
} |
} // eof receive irq or receive timeout irq |
} |
/trunk/uart2.h |
---|
0,0 → 1,7 |
#ifndef __UART2_H |
#define __UART2_H |
void UART2_Init (void); |
void UART2_Deinit (void); |
#endif //__UART2_H |
/trunk/ubx.c |
---|
0,0 → 1,464 |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 2008 Ingo Busker, Holger Buss |
// + Nur für den privaten Gebrauch |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "91x_lib.h" |
#include "uart1.h" |
#include "ubx.h" |
#include "led.h" |
#include "timer.h" |
// ------------------------------------------------------------------------------------------------ |
// defines |
#define DAYS_FROM_JAN01YEAR0001_TO_JAN6_1980 722819 // the year 0 does not exist! |
#define DAYS_PER_YEAR 365 |
#define DAYS_PER_LEAPYEAR 366 |
#define DAYS_PER_4YEARS 1461 //((3 * DAYS_PER_YEAR) + DAYS_PER_LEAPYEAR) // years dividable by 4 are leap years |
#define DAYS_PER_100YEARS 36524 //((25 * DAYS_PER_4YEARS) - 1) // years dividable by 100 are no leap years |
#define DAYS_PER_400YEARS 146097 //((4 * DAYS_PER_100YEARS) + 1L) // but years dividable by 400 are leap years |
#define SECONDS_PER_MINUTE 60 |
#define MINUTES_PER_HOUR 60 |
#define HOURS_PER_DAY 24 |
#define DAYS_PER_WEEK 7 |
#define SECONDS_PER_HOUR 3600 //(SECONDS_PER_MINUTE * MINUTES_PER_HOUR) |
#define SECONDS_PER_DAY 86400 //(SECONDS_PER_HOUR * HOURS_PER_DAY) |
#define SECONDS_PER_WEEK 604800 //(SECONDS_PER_DAY * DAYS_PER_WEEK) |
// days per month in normal and leap years |
const u32 Leap[ 13 ] = { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }; |
const u32 Normal[ 13 ] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; |
#define LEAP_SECONDS_FROM_1980 13 |
// message sync bytes |
#define UBX_SYNC1_CHAR 0xB5 |
#define UBX_SYNC2_CHAR 0x62 |
// protocoll identifier |
#define UBX_CLASS_NAV 0x01 |
// message id |
#define UBX_ID_POSLLH 0x02 |
#define UBX_ID_SOL 0x06 |
#define UBX_ID_VELNED 0x12 |
// ------------------------------------------------------------------------------------------------ |
// typedefs |
// ubx parser state |
typedef enum |
{ |
UBXSTATE_IDLE, |
UBXSTATE_SYNC1, |
UBXSTATE_SYNC2, |
UBXSTATE_CLASS, |
UBXSTATE_LEN1, |
UBXSTATE_LEN2, |
UBXSTATE_DATA, |
UBXSTATE_CKA, |
UBXSTATE_CKB |
} ubxState_t; |
typedef struct |
{ |
u32 itow; // ms GPS Millisecond Time of Week |
s32 frac; // ns remainder of rounded ms above |
s16 week; // GPS week |
u8 GPSfix; // GPSfix Type, range 0..6 |
u8 Flags; // Navigation Status Flags |
s32 ECEF_X; // cm ECEF X coordinate |
s32 ECEF_Y; // cm ECEF Y coordinate |
s32 ECEF_Z; // cm ECEF Z coordinate |
u32 PAcc; // cm 3D Position Accuracy Estimate |
s32 ECEFVX; // cm/s ECEF X velocity |
s32 ECEFVY; // cm/s ECEF Y velocity |
s32 ECEFVZ; // cm/s ECEF Z velocity |
u32 SAcc; // cm/s Speed Accuracy Estimate |
u16 PDOP; // 0.01 Position DOP |
u8 res1; // reserved |
u8 numSV; // Number of SVs used in navigation solution |
u32 res2; // reserved |
Status_t Status; // invalid/newdata/processed |
} __attribute__((packed)) ubx_nav_sol_t; |
typedef struct |
{ |
u32 itow; // ms GPS Millisecond Time of Week |
s32 VEL_N; // cm/s NED north velocity |
s32 VEL_E; // cm/s NED east velocity |
s32 VEL_D; // cm/s NED down velocity |
u32 Speed; // cm/s Speed (3-D) |
u32 GSpeed; // cm/s Ground Speed (2-D) |
s32 Heading; // 1e-05 deg Heading 2-D |
u32 SAcc; // cm/s Speed Accuracy Estimate |
u32 CAcc; // deg Course / Heading Accuracy Estimate |
Status_t Status; // invalid/newdata/processed |
} __attribute__((packed)) ubx_nav_velned_t; |
typedef struct |
{ |
u32 itow; // ms GPS Millisecond Time of Week |
s32 LON; // 1e-07 deg Longitude |
s32 LAT; // 1e-07 deg Latitude |
s32 HEIGHT; // mm Height above Ellipsoid |
s32 HMSL; // mm Height above mean sea level |
u32 Hacc; // mm Horizontal Accuracy Estimate |
u32 Vacc; // mm Vertical Accuracy Estimate |
Status_t Status; // invalid/newdata/processed |
} __attribute__((packed)) ubx_nav_posllh_t; |
//------------------------------------------------------------------------------------ |
// global variables |
// local buffers for the incomming ubx messages |
volatile ubx_nav_sol_t UbxSol = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, INVALID}; |
volatile ubx_nav_posllh_t UbxPosLlh = {0,0,0,0,0,0,0, INVALID}; |
volatile ubx_nav_velned_t UbxVelNed = {0,0,0,0,0,0,0,0,0, INVALID}; |
u32 CheckGPSOkay = 0; |
// shared buffer |
gps_data_t GPSData = {{0,0,0,INVALID},0,0,0,0,0,0,0, INVALID}; |
DateTime_t GPSDateTime = {0,0,0,0,0,0,0, INVALID}; |
//------------------------------------------------------------------------------------ |
// functions |
u8 IsLeapYear(u16 year) |
{ |
if((year%400 == 0) || ( (year%4 == 0) && (year%100 != 0) ) ) return 1; |
else return 0; |
} |
/********************************************************/ |
/* Calculates the UTC Time from the GPS week and tow */ |
/********************************************************/ |
void SetGPSTime(DateTime_t * pTimeStruct) |
{ |
u32 Days, Seconds, Week; |
u16 YearPart; |
u32 * MonthDayTab = 0; |
u8 i; |
// if GPS data show valid time data |
if((UbxSol.Status != INVALID) && (UbxSol.Flags & FLAG_WKNSET) && (UbxSol.Flags & FLAG_TOWSET) ) |
{ |
Seconds = UbxSol.itow / 1000L; |
Week = (u32)UbxSol.week; |
// correct leap seconds since 1980 |
if(Seconds < LEAP_SECONDS_FROM_1980) |
{ |
Week--; |
Seconds = SECONDS_PER_WEEK - LEAP_SECONDS_FROM_1980 + Seconds; |
} |
else Seconds -= LEAP_SECONDS_FROM_1980; |
Days = DAYS_FROM_JAN01YEAR0001_TO_JAN6_1980; |
Days += (Week * DAYS_PER_WEEK); |
Days += Seconds / SECONDS_PER_DAY; // seperate days from GPS seconds of week |
pTimeStruct->Year = 1; |
YearPart = (u16)(Days / DAYS_PER_400YEARS); |
pTimeStruct->Year += YearPart * 400; |
Days = Days % DAYS_PER_400YEARS; |
YearPart = (u16)(Days / DAYS_PER_100YEARS); |
pTimeStruct->Year += YearPart * 100; |
Days = Days % DAYS_PER_100YEARS; |
YearPart = (u16)(Days / DAYS_PER_4YEARS); |
pTimeStruct->Year += YearPart * 4; |
Days = Days % DAYS_PER_4YEARS; |
if(Days < (3* DAYS_PER_YEAR)) YearPart = (u16)(Days / DAYS_PER_YEAR); |
else YearPart = 3; |
pTimeStruct->Year += YearPart; |
// calculate remaining days of year |
Days -= (u32)(YearPart * DAYS_PER_YEAR); |
Days += 1; |
// check if current year is a leap year |
if(IsLeapYear(pTimeStruct->Year)) MonthDayTab = (u32*)Leap; |
else MonthDayTab = (u32*)Normal; |
// seperate month and day from days of year |
for ( i = 0; i < 12; i++ ) |
{ |
if ( (MonthDayTab[i]< Days) && (Days <= MonthDayTab[i+1]) ) |
{ |
pTimeStruct->Month = i+1; |
pTimeStruct->Day = Days - MonthDayTab[i]; |
i = 12; |
} |
} |
Seconds = Seconds % SECONDS_PER_DAY; // remaining seconds of current day |
pTimeStruct->Hour = (u8)(Seconds / SECONDS_PER_HOUR); |
Seconds = Seconds % SECONDS_PER_HOUR; // remaining seconds of current hour |
pTimeStruct->Min = (u8)(Seconds / SECONDS_PER_MINUTE); |
Seconds = Seconds % SECONDS_PER_MINUTE; // remaining seconds of current minute |
pTimeStruct->Sec = (u8)(Seconds); |
pTimeStruct->mSec = (u16)(UbxSol.itow % 1000L); |
pTimeStruct->Valid = 1; |
} |
else |
{ |
pTimeStruct->Valid = 0; |
} |
} |
/********************************************************/ |
/* Initialize UBX Parser */ |
/********************************************************/ |
void UBX_Init(void) |
{ |
// mark msg buffers invalid |
UbxSol.Status = INVALID; |
UbxPosLlh.Status = INVALID; |
UbxVelNed.Status = INVALID; |
GPSData.Status = INVALID; |
} |
/********************************************************/ |
/* Upate GPS data stcructure */ |
/********************************************************/ |
void Update_GPSData (void) |
{ |
static u32 Ubx_Timeout = 0; |
static u8 Msg_Count = 0; |
// the timeout is used to detect the delay between two message sets |
// and is used for synchronisation so that always a set is collected |
// that belongs together |
// _______NAVSOL|POSLLH|VELNED|___________________NAVSOL|POSLLH|VELNED|_____________ |
// | 8ms | 8ms | 184 ms | | | |
// msg_count: 0 1 2 0 1 2 |
if(CheckDelay(Ubx_Timeout)) Msg_Count = 0; |
else Msg_Count++; |
Ubx_Timeout = SetDelay(100); // reset ubx msg timeout |
// if a new set of ubx messages was collected |
if((Msg_Count >= 2)) |
{ // if set is complete |
if((UbxSol.Status == NEWDATA) && (UbxPosLlh.Status == NEWDATA) && (UbxVelNed.Status == NEWDATA)) |
{ |
CheckGPSOkay++; |
DebugOut.Analog[11]++; |
// update GPS data only if the status is INVALID or PROCESSED and the last ubx message was received within less than 100 ms |
if(GPSData.Status != NEWDATA) // if last data were processed |
{ // wait for new data at all neccesary ubx messages |
GPSData.Status = INVALID; |
// NAV SOL |
GPSData.Flags = UbxSol.Flags; |
GPSData.NumOfSats = UbxSol.numSV; |
GPSData.SatFix = UbxSol.GPSfix; |
GPSData.Position_Accuracy = UbxSol.PAcc; |
GPSData.Speed_Accuracy = UbxSol.SAcc; |
SetGPSTime(&SystemTime); // update system time |
// NAV POSLLH |
GPSData.Position.Status = INVALID; |
GPSData.Position.Longitude = UbxPosLlh.LON; |
GPSData.Position.Latitude = UbxPosLlh.LAT; |
GPSData.Position.Altitude = UbxPosLlh.HMSL; |
GPSData.Position.Status = NEWDATA; |
// NAV VELNED |
GPSData.Speed_East = UbxVelNed.VEL_E; |
GPSData.Speed_North = UbxVelNed.VEL_N; |
GPSData.Speed_Top = -UbxVelNed.VEL_D; |
GPSData.Speed_Ground = UbxVelNed.GSpeed; |
GPSData.Heading = UbxVelNed.Heading; |
GPSData.Status = NEWDATA; // new data available |
} // EOF if(GPSData.Status != NEWDATA) |
} // EOF all ubx messages received |
// set state to collect new data |
UbxSol.Status = PROCESSED; // ready for new data |
UbxPosLlh.Status = PROCESSED; // ready for new data |
UbxVelNed.Status = PROCESSED; // ready for new data |
} |
} |
/********************************************************/ |
/* UBX Parser */ |
/********************************************************/ |
void UBX_Parser(u8 c) |
{ |
static ubxState_t ubxState = UBXSTATE_IDLE; |
static u16 msglen; |
static u8 cka, ckb; |
static u8 *ubxP, *ubxEp, *ubxSp; // pointers to data currently transfered |
//state machine |
switch (ubxState) // ubx message parser |
{ |
case UBXSTATE_IDLE: // check 1st sync byte |
if (c == UBX_SYNC1_CHAR) ubxState = UBXSTATE_SYNC1; |
else ubxState = UBXSTATE_IDLE; // out of synchronization |
break; |
case UBXSTATE_SYNC1: // check 2nd sync byte |
if (c == UBX_SYNC2_CHAR) ubxState = UBXSTATE_SYNC2; |
else ubxState = UBXSTATE_IDLE; // out of synchronization |
break; |
case UBXSTATE_SYNC2: // check msg class to be NAV |
if (c == UBX_CLASS_NAV) ubxState = UBXSTATE_CLASS; |
else ubxState = UBXSTATE_IDLE; // unsupported message class |
break; |
case UBXSTATE_CLASS: // check message identifier |
switch(c) |
{ |
case UBX_ID_POSLLH: // geodetic position |
ubxP = (u8 *)&UbxPosLlh; // data start pointer |
ubxEp = (u8 *)(&UbxPosLlh + 1); // data end pointer |
ubxSp = (u8 *)&UbxPosLlh.Status; // status pointer |
break; |
case UBX_ID_SOL: // navigation solution |
ubxP = (u8 *)&UbxSol; // data start pointer |
ubxEp = (u8 *)(&UbxSol + 1); // data end pointer |
ubxSp = (u8 *)&UbxSol.Status; // status pointer |
break; |
case UBX_ID_VELNED: // velocity vector in tangent plane |
ubxP = (u8 *)&UbxVelNed; // data start pointer |
ubxEp = (u8 *)(&UbxVelNed + 1); // data end pointer |
ubxSp = (u8 *)&UbxVelNed.Status; // status pointer |
break; |
default: // unsupported identifier |
ubxState = UBXSTATE_IDLE; |
break; |
} |
if (ubxState != UBXSTATE_IDLE) |
{ |
ubxState = UBXSTATE_LEN1; |
cka = UBX_CLASS_NAV + c; |
ckb = UBX_CLASS_NAV + cka; |
} |
break; |
case UBXSTATE_LEN1: // 1st message length byte |
msglen = (u16)c; // lowbyte first |
cka += c; |
ckb += cka; |
ubxState = UBXSTATE_LEN2; |
break; |
case UBXSTATE_LEN2: // 2nd message length byte |
msglen += ((u16)c)<<8; // high byte last |
cka += c; |
ckb += cka; |
// if the old data are not processed so far then break parsing now |
// to avoid writing new data in ISR during reading by another function |
if ( *ubxSp == NEWDATA ) |
{ |
ubxState = UBXSTATE_IDLE; |
Update_GPSData(); //update GPS info respectively |
} |
else // data invalid or allready processd |
{ |
*ubxSp = INVALID; // mark invalid during buffer filling |
ubxState = UBXSTATE_DATA; |
} |
break; |
case UBXSTATE_DATA: // collecting data |
if (ubxP < ubxEp) |
{ |
*ubxP++ = c; // copy curent data byte if any space is left |
cka += c; |
ckb += cka; |
if (--msglen == 0) ubxState = UBXSTATE_CKA; // switch to next state if all data was read |
} |
else // rx buffer overrun |
{ |
ubxState = UBXSTATE_IDLE; |
} |
break; |
case UBXSTATE_CKA: |
if (c == cka) ubxState = UBXSTATE_CKB; |
else |
{ |
*ubxSp = INVALID; |
ubxState = UBXSTATE_IDLE; |
} |
break; |
case UBXSTATE_CKB: |
if (c == ckb) |
{ |
*ubxSp = NEWDATA; // new data are valid |
Update_GPSData(); //update GPS info respectively |
} |
else |
{ // if checksum not match then set data invalid |
*ubxSp = INVALID; |
} |
ubxState = UBXSTATE_IDLE; // ready to parse new data |
break; |
default: // unknown ubx state |
ubxState = UBXSTATE_IDLE; |
break; |
} |
} |
/trunk/ubx.h |
---|
0,0 → 1,58 |
#ifndef __UBX_H |
#define __UBX_H |
// Satfix types for GPSData.SatFix |
#define SATFIX_NONE 0x00 |
#define SATFIX_DEADRECKOING 0x01 |
#define SATFIX_2D 0x02 |
#define SATFIX_3D 0x03 |
#define SATFIX_GPS_DEADRECKOING 0x04 |
#define SATFIX_TIMEONLY 0x05 |
// Flags for interpretation of the GPSData.Flags |
#define FLAG_GPSFIXOK 0x01 // (i.e. within DOP & ACC Masks) |
#define FLAG_DIFFSOLN 0x02 // (is DGPS used) |
#define FLAG_WKNSET 0x04 // (is Week Number valid) |
#define FLAG_TOWSET 0x08 // (is Time of Week valid) |
typedef enum |
{ |
INVALID = 0, |
NEWDATA = 1, |
PROCESSED = 2 |
} Status_t; |
typedef struct |
{ |
s32 Longitude; // in 1E-7 deg |
s32 Latitude; // in 1E-7 deg |
s32 Altitude; // in mm |
Status_t Status;// validity of data |
} __attribute__((packed)) GPS_Pos_t; |
typedef struct |
{ |
GPS_Pos_t Position; // Lat/Lon/Alt |
u8 Flags; // Status Flags |
u8 NumOfSats; // number of satelites |
u8 SatFix; // type of satfix |
u32 Position_Accuracy; // in cm 3d position accuracy |
s32 Speed_North; // in cm/s |
s32 Speed_East; // in cm/s |
s32 Speed_Top; // in cm/s |
u32 Speed_Ground; // 2D ground speed in cm/s |
s32 Heading; // 1e-05 deg Heading 2-D (curent flight direction) |
u32 Speed_Accuracy; // in cm/s 3d velocity accuracy |
Status_t Status; // status of data |
} __attribute__((packed)) gps_data_t; |
// The data are valid if the GPSData.Status is NEWDATA or PROCESSED. |
// To achieve new data after reading the GPSData.Status should be set to PROCESSED. |
extern gps_data_t GPSData; |
extern u32 CheckGPSOkay; |
void UBX_Init(void); |
void UBX_Parser(u8 c); |
#endif // __UBX_H |
/trunk/usb.c |
---|
54,99 → 54,104 |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
#include "91x_lib.h" |
#include "uart1.h" |
#include "usb.h" |
//----------------------------------------------------------------- |
void USB_ConfigInit(void) |
{ |
GPIO_InitTypeDef GPIO_InitStructure; |
GPIO_InitTypeDef GPIO_InitStructure; |
SerialPutString("USB init..."); |
//USB clock = MCLK= 48MHz |
SCU_USBCLKConfig(SCU_USBCLK_MCLK); |
//Enable USB clock |
SCU_AHBPeriphClockConfig(__USB,ENABLE); |
SCU_AHBPeriphReset(__USB,DISABLE); |
SCU_AHBPeriphClockConfig(__USB48M,ENABLE); |
SerialPutString("\r\n USB init..."); |
#ifdef MCLK96MHZ |
//USB clock = MCLK/2 = 48MHz |
SCU_USBCLKConfig(SCU_USBCLK_MCLK2); |
#else |
//USB clock = MCLK = 48MHz |
SCU_USBCLKConfig(SCU_USBCLK_MCLK); |
#endif |
//Enable USB clock |
SCU_AHBPeriphClockConfig(__USB,ENABLE); |
SCU_AHBPeriphReset(__USB,DISABLE); |
SCU_AHBPeriphClockConfig(__USB48M,ENABLE); |
//Configure GPIO0 (D+ Pull-Up on P0.1) |
SCU_APBPeriphClockConfig(__GPIO0 ,ENABLE); |
SCU_APBPeriphReset(__GPIO0,DISABLE); |
//Configure GPIO0 (D+ Pull-Up on P0.1) |
SCU_APBPeriphClockConfig(__GPIO0 ,ENABLE); |
SCU_APBPeriphReset(__GPIO0,DISABLE); |
// GPIO_DeInit(GPIO0); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected=GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate=GPIO_OutputAlt1; |
GPIO_Init (GPIO0, &GPIO_InitStructure); |
// GPIO_DeInit(P0.1); |
GPIO_StructInit(&GPIO_InitStructure); |
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; |
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; |
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; |
GPIO_InitStructure.GPIO_IPConnected=GPIO_IPConnected_Enable; |
GPIO_InitStructure.GPIO_Alternate=GPIO_OutputAlt1; |
GPIO_Init (GPIO0, &GPIO_InitStructure); |
PowerOff(); |
Virtual_Com_Port_Reset(); |
PowerOff(); |
Virtual_Com_Port_Reset(); |
VIC_Config(USBLP_ITLine, VIC_IRQ, 2); |
VIC_ITCmd(USBLP_ITLine, ENABLE); |
VIC_Config(USBLP_ITLine, VIC_IRQ, 2); |
VIC_ITCmd(USBLP_ITLine, ENABLE); |
USB_Init(); |
USB_Init(); |
SerialPutString("ok\n\r"); |
SerialPutString("ok"); |
} |
//----------------------------------------------------------------- |
void USB_Cable_Config (FunctionalState NewState) |
{ |
if (NewState == ENABLE) |
GPIO_WriteBit(GPIO0, GPIO_Pin_1, Bit_RESET); |
else |
GPIO_WriteBit(GPIO0, GPIO_Pin_1, Bit_SET); |
if (NewState == ENABLE) |
GPIO_WriteBit(GPIO0, GPIO_Pin_1, Bit_RESET); |
else |
GPIO_WriteBit(GPIO0, GPIO_Pin_1, Bit_SET); |
} |
//----------------------------------------------------------------- |
void USB_Send_String(u8 *StrPtr) |
{ |
u8 i = 0; |
u16 timeout = 0; |
while (StrPtr[i++] !=0){} |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK){ if (timeout++ > 60000) return;} |
UserToPMABufferCopy(StrPtr, ENDP1_TXADDR, ++i); |
SetEPTxCount(ENDP1,i); |
SetEPTxValid(ENDP1); |
u8 i = 0; |
u16 timeout = 0; |
while (StrPtr[i++] !=0){} // get string len |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK){ if (timeout++ > 60000) return;} |
UserToPMABufferCopy(StrPtr, ENDP1_TXADDR, ++i); // copy string to usb buffer |
SetEPTxCount(ENDP1,i); |
SetEPTxValid(ENDP1); |
} |
//----------------------------------------------------------------- |
void USB_Send_Char(u8 ch) |
{ |
u16 timeout = 0; |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK){ if (timeout++ > 60000) return;} |
UserToPMABufferCopy(&ch, ENDP1_TXADDR, 2); |
SetEPTxCount(ENDP1,2); |
SetEPTxValid(ENDP1); |
} |
u16 timeout = 0; |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK){ if (timeout++ > 60000) return;} |
UserToPMABufferCopy(&ch, ENDP1_TXADDR, 2); |
SetEPTxCount(ENDP1,2); |
SetEPTxValid(ENDP1); |
} |
//----------------------------------------------------------------- |
void USB_Send_Data(u8 *data, u16 count) |
{ |
u16 timeout = 0; |
u8 i; |
count++; |
for (i=0;i< (count/64)+1;i++) |
{ |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK); |
if (i < (count/64)) |
{ UserToPMABufferCopy(&data[i*64], ENDP1_TXADDR, 64); |
SetEPTxCount(ENDP1,64); |
u8 i; |
count++; |
for (i=0;i< (count/64)+1;i++) |
{ |
while (_GetEPTxStatus(ENDP1) != EP_TX_NAK); |
if (i < (count/64)) |
{ |
UserToPMABufferCopy(&data[i*64], ENDP1_TXADDR, 64); |
SetEPTxCount(ENDP1,64); |
} |
else |
{ |
UserToPMABufferCopy(&data[i*64], ENDP1_TXADDR, count % 64); |
SetEPTxCount(ENDP1, count % 64); |
} |
SetEPTxValid(ENDP1); |
} |
else |
{ UserToPMABufferCopy(&data[i*64], ENDP1_TXADDR, count % 64); |
SetEPTxCount(ENDP1, count % 64); |
} |
SetEPTxValid(ENDP1); |
} |
} |
/trunk/usb.h |
---|
1,5 → 1,5 |
#ifndef _USB_H |
#define _USB_H |
#define _USB_H |
#include "usb_lib.h" |
#include "usb_conf.h" |
10,10 → 10,10 |
extern u32 USB_BufferRxCount; |
extern u8 USB_BufferRx[]; |
extern void USB_ConfigInit(void); |
extern void USB_Cable_Config (FunctionalState NewState); |
extern void USB_Send_String(u8 *StrPtr); |
extern void USB_Send_Char(u8 ch); |
extern void USB_Send_Data(u8 *data, u16 count); |
void USB_ConfigInit(void); |
void USB_Cable_Config (FunctionalState NewState); |
void USB_Send_String(u8 *StrPtr); |
void USB_Send_Char(u8 ch); |
void USB_Send_Data(u8 *data, u16 count); |
#endif |
/trunk/usb_desc.c |
---|
15,12 → 15,13 |
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
*******************************************************************************/ |
/* Includes ------------------------------------------------------------------*/ |
#include "main.h" |
#include "usb_lib.h" |
#include "usb_desc.h" |
/* Private typedef -----------------------------------------------------------*/ |
/* Private define ------------------------------------------------------------*/ |
/* Private macro -------------------------------------------------------------*/ |
/* Private variables ---------------------------------------------------------*/ |
/* Extern variables ----------------------------------------------------------*/ |
/* Extern variables ---------------------------------------------------------*/ |
/* Private function prototypes -----------------------------------------------*/ |
/* Private functions ---------------------------------------------------------*/ |
/* USB Standard Device Descriptor */ |
/trunk/usb_endp.c |
---|
15,7 → 15,12 |
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
*******************************************************************************/ |
/* Includes ------------------------------------------------------------------*/ |
#include "main.h" |
#include <stdio.h> |
#include "91x_lib.h" |
#include "uart1.h" |
#include "usb_lib.h" |
#include "usb_desc.h" |
/* Private typedef -----------------------------------------------------------*/ |
/* Private define ------------------------------------------------------------*/ |
/* Private macro -------------------------------------------------------------*/ |
35,14 → 40,15 |
*******************************************************************************/ |
void EP3_OUT_Callback(void) |
{ |
//USB_BufferRxCount= GetEPRxCount(ENDP3); |
AnzahlEmpfangsBytes = GetEPRxCount(ENDP3); |
//PMAToUserBufferCopy(USB_BufferRx, ENDP3_RXADDR, AnzahlEmpfangsBytes ); |
PMAToUserBufferCopy((u8*) RxdBuffer, ENDP3_RXADDR, AnzahlEmpfangsBytes); |
NeuerDatensatzEmpfangen = 1; |
//USB_BufferRx[AnzahlEmpfangsBytes] = 0; |
USB_BufferRxCount= GetEPRxCount(ENDP3); |
//ReceivedBytes = GetEPRxCount(ENDP3); |
PMAToUserBufferCopy(USB_BufferRx, ENDP3_RXADDR, USB_BufferRxCount ); |
//PMAToUserBufferCopy((u8*) rxd_buffer, ENDP3_RXADDR, ReceivedBytes); |
//rxd_buffer_locked = 1; |
USB_BufferRx[USB_BufferRxCount] = 0; // terminate buffer contents |
SetEPRxValid(ENDP3); |
sprintf(text,"USB (%d): %s\n\r", AnzahlEmpfangsBytes,RxdBuffer ); SerialPutString(text); |
sprintf(text,"USB (%ld): %s\n\r", USB_BufferRxCount, USB_BufferRx); |
SerialPutString(text); |
// USB_Send_Data(RxdBuffer, AnzahlEmpfangsBytes); |
// USB_Send_String("Rx.\0"); |
/trunk/usb_istr.c |
---|
15,7 → 15,8 |
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
*******************************************************************************/ |
/* Includes ------------------------------------------------------------------*/ |
#include "main.h" |
#include "usb_lib.h" |
#include "usb_pwr.h" |
/* Private typedef -----------------------------------------------------------*/ |
/* Private define ------------------------------------------------------------*/ |
/* Private macro -------------------------------------------------------------*/ |
/trunk/usb_prop.c |
---|
16,7 → 16,10 |
*******************************************************************************/ |
/* Includes ------------------------------------------------------------------*/ |
#include "main.h" |
#include "usb_lib.h" |
#include "usb_desc.h" |
#include "usb_pwr.h" |
#include "usb_prop.h" |
/* Private typedef -----------------------------------------------------------*/ |
/* Private define ------------------------------------------------------------*/ |
/* Private macro -------------------------------------------------------------*/ |
/trunk/usb_pwr.c |
---|
15,7 → 15,9 |
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
*******************************************************************************/ |
/* Includes ------------------------------------------------------------------*/ |
#include "main.h" |
#include "usb_lib.h" |
#include "hw_config.h" |
#include "usb_pwr.h" |
/* Private typedef -----------------------------------------------------------*/ |
/* Private define ------------------------------------------------------------*/ |
/* Private macro -------------------------------------------------------------*/ |
/trunk/waypoints.c |
---|
0,0 → 1,130 |
/*#######################################################################################*/ |
/* !!! THIS IS NOT FREE SOFTWARE !!! */ |
/*#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 2008 Ingo Busker, Holger Buss |
// + Nur für den privaten Gebrauch |
// + FOR NON COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die PORTIERUNG der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permitted |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * PORTING this software (or part of it) to systems (other than hardware from www.mikrokopter.de) is NOT allowed |
// |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <string.h> |
#include "91x_lib.h" |
#include "waypoints.h" |
#include "uart1.h" |
// the waypoints list |
#define WPLISTLEN 20 |
Waypoint_t WPList[WPLISTLEN]; |
u8 WPIndex = 0; |
u8 WPNumber = 0; |
u8 WPList_Init(void) |
{ |
return WPList_Clear(); |
} |
u8 WPList_Clear(void) |
{ |
u8 i; |
WPIndex = 0; |
WPNumber = 0; |
NaviData.WaypointNumber = WPNumber; |
NaviData.WaypointIndex = WPIndex; |
for(i = 0; i < WPLISTLEN; i++) |
{ |
WPList[i].Position.Status = INVALID; |
} |
return TRUE; |
} |
u8 WPList_GetCount(void) |
{ |
return WPNumber; |
} |
u8 WPList_Append(Waypoint_t* pwp) |
{ |
if(WPNumber < WPLISTLEN) // id there is still some space in the list |
{ |
memcpy(&WPList[WPNumber], pwp, sizeof(Waypoint_t)); // copy wp data to list entry |
WPList[WPNumber].Position.Status = NEWDATA; // mark as new data |
WPNumber++; // increment list length |
NaviData.WaypointNumber = WPNumber; |
return TRUE; |
} |
else return FALSE; |
} |
// rewind to the begin of the list, and returns the first waypoint |
Waypoint_t* WPList_Begin(void) |
{ |
WPIndex = 0; // reset list index |
NaviData.WaypointIndex = WPIndex; |
if(WPNumber > 0) return(&(WPList[WPIndex])); // if list is not empty return pointer to first waypoint in the list |
else return NULL; // else return NULL |
} |
// returns a pointer to the next waypoint or NULL if the end of the list has been reached |
Waypoint_t* WPList_Next(void) |
{ |
if((WPIndex + 1) < WPNumber) // if the next WPIndex exist |
{ |
WPIndex++; // goto next |
NaviData.WaypointIndex = WPIndex; |
return(&(WPList[WPIndex])); // return pointer to this waypoint |
} |
else return NULL; |
} |
/trunk/waypoints.h |
---|
0,0 → 1,23 |
#ifndef _WAYPOINTS_H |
#define _WAYPOINTS_H |
#include "ubx.h" |
typedef struct |
{ |
GPS_Pos_t Position; // the gps position of the waypoint, see ubx.h for details |
s16 Heading; // orientation, future implementation |
u8 ToleranceRadius; // in meters, if the MK is within that range around the target, then the next target is triggered |
u8 HoldTime; // in seconds, if the was once in the tolerance area around a WP, this time defies the delay before the next WP is triggered |
u8 Event_Flag; // future emplementation |
u8 reserve[12]; // reserve |
} __attribute__((packed)) Waypoint_t; |
u8 WPList_Init(void); |
u8 WPList_Clear(void); |
u8 WPList_GetCount(void); |
u8 WPList_Append(Waypoint_t* pwp); |
Waypoint_t* WPList_Begin(void); |
Waypoint_t* WPList_Next(void); |
#endif // _WAYPOINTS_H |