From d7634a1e2dea97e941d277933e12f50861cdb2cc Mon Sep 17 00:00:00 2001 From: Jules-Ian Barnavon Date: Fri, 24 Mar 2023 17:46:09 +0100 Subject: [PATCH] fin tp2 --- PjtKEIL_StepDeb_2/BacASable.uvprojx | 9 +- PjtKEIL_StepDeb_2/Src/Cligno.s | 62 +- PjtKEIL_StepDeb_2/Src/principal.c | 9 +- PjtKEIL_StepSon.zip | Bin 0 -> 43576 bytes PjtKEIL_StepSon/Driver/DriverJeuLaser.h | 345 + PjtKEIL_StepSon/Driver/DriverJeuLaser.inc | 56 + .../PjtKEIL_StepSon/Driver/DriverJeuLaser.h | 345 + .../PjtKEIL_StepSon/Driver/DriverJeuLaser.inc | 56 + .../PjtKEIL_StepSon/Src/GestionSon.s | 30 + .../PjtKEIL_StepSon/Src/bruitverre.asm | 5527 +++++++++++++++++ .../PjtKEIL_StepSon/Src/principal.c | 28 + .../PjtKEIL_StepSon/Src/startup-rvds.s | 335 + .../PjtKEIL_StepSon/StepSon.uvprojx | 1337 ++++ PjtKEIL_StepSon/Src/GestionSon.s | 30 + PjtKEIL_StepSon/Src/bruitverre.asm | 5527 +++++++++++++++++ PjtKEIL_StepSon/Src/principal.c | 28 + PjtKEIL_StepSon/Src/startup-rvds.s | 335 + PjtKEIL_StepSon/StepSon.uvprojx | 1337 ++++ 18 files changed, 15382 insertions(+), 14 deletions(-) create mode 100644 PjtKEIL_StepSon.zip create mode 100644 PjtKEIL_StepSon/Driver/DriverJeuLaser.h create mode 100644 PjtKEIL_StepSon/Driver/DriverJeuLaser.inc create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.h create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Src/GestionSon.s create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Src/bruitverre.asm create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Src/principal.c create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/Src/startup-rvds.s create mode 100644 PjtKEIL_StepSon/PjtKEIL_StepSon/StepSon.uvprojx create mode 100644 PjtKEIL_StepSon/Src/GestionSon.s create mode 100644 PjtKEIL_StepSon/Src/bruitverre.asm create mode 100644 PjtKEIL_StepSon/Src/principal.c create mode 100644 PjtKEIL_StepSon/Src/startup-rvds.s create mode 100644 PjtKEIL_StepSon/StepSon.uvprojx diff --git a/PjtKEIL_StepDeb_2/BacASable.uvprojx b/PjtKEIL_StepDeb_2/BacASable.uvprojx index d99d0f0..2c5376a 100644 --- a/PjtKEIL_StepDeb_2/BacASable.uvprojx +++ b/PjtKEIL_StepDeb_2/BacASable.uvprojx @@ -10,7 +10,7 @@ Simu 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -357,7 +357,7 @@ - + .\Driver @@ -1338,11 +1338,6 @@ <Project Info> - - - - - 0 1 diff --git a/PjtKEIL_StepDeb_2/Src/Cligno.s b/PjtKEIL_StepDeb_2/Src/Cligno.s index 8a75b7a..6537a5d 100644 --- a/PjtKEIL_StepDeb_2/Src/Cligno.s +++ b/PjtKEIL_StepDeb_2/Src/Cligno.s @@ -1,7 +1,7 @@ PRESERVE8 THUMB - - + INCLUDE DriverJeuLaser.inc + EXPORT timer_callback ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly @@ -10,18 +10,72 @@ ;Section RAM (read write): area maram,data,readwrite - +FlagCligno dcd 0 ; =============================================================================================== +;void timer_callback(void) +;{ +; if (FlagCligno==1) +; { +; FlagCligno=0; +; GPIOB_Set(1); +; } +; else +; { +; FlagCligno=1; +; GPIOB_Clear(1); +; } +; +;} - + + + ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici + + ;void timer_callback(void) +;.global timer_callback +timer_callback proc + push {lr} + + ldr r2,=FlagCligno + ldr r1,[r2] + ;{ + ; if (FlagCligno==1) + ; { + + cmp r1,#1 + bne pasegal + ; FlagCligno=0; + mov r1,#0 + ; GPIOB_Set(1); + mov r0,#1 + bl GPIOB_Set + ; } + b egal + ; else +pasegal + ; { + ; FlagCligno=1; + mov r1,#1 + ; GPIOB_Clear(1); + mov r0,#1 + push {r1} + bl GPIOB_Clear + pop {r1} + ; } +egal + ; +;} + str r1,[r2] + pop{pc} ;ou pop {lx} bx lr + ENDFUNC diff --git a/PjtKEIL_StepDeb_2/Src/principal.c b/PjtKEIL_StepDeb_2/Src/principal.c index 4d726a1..5da046a 100644 --- a/PjtKEIL_StepDeb_2/Src/principal.c +++ b/PjtKEIL_StepDeb_2/Src/principal.c @@ -1,6 +1,7 @@ #include "DriverJeuLaser.h" +#define PERIODE 7200000 void timer_callback(void); @@ -18,7 +19,8 @@ CLOCK_Configure(); //** Placez votre code là ** // - +Timer_1234_Init_ff(TIM4,PERIODE); +Active_IT_Debordement_Timer(TIM4, 2, timer_callback); // Activation des interruptions issues du Timer 4 // Association de la fonction à exécuter lors de l'interruption : timer_callback @@ -42,8 +44,9 @@ while (1) } } -char FlagCligno; +//char FlagCligno; +/* void timer_callback(void) { if (FlagCligno==1) @@ -58,4 +61,4 @@ void timer_callback(void) } } - +*/ diff --git a/PjtKEIL_StepSon.zip b/PjtKEIL_StepSon.zip new file mode 100644 index 0000000000000000000000000000000000000000..d81597c23414934897487f2d99b5427d53c85620 GIT binary patch literal 43576 zcmb5V1#Bik&n6gVm~bXIVP@}Fx;$583NnEye3{Oc90Tx7(gWc8I@OdXW%?HCmPmo$B_ z=Km&*_5UC(>SXC=>h!;qU_d;B{wWO^Fbl(jfGARffKdFuEB&{ww5hACp|hzIy~UxH zt^K~}kFU+7D}iXi4pP;OqvEcz!yo0DJaCq1WK`ku%Oh*7@Ui$^Zl^>;_IvQ(rG&7( zLFsF*HWZdxL#HQ!-dH^E%sebS_kaI#1K!_fa{KwSD(Y(oJjnfJNwdVx#KrZ;i)fmn z^Ju~3$A85;&^77#%tJ7tM0rrjti8&YfZ9lALw#BNVFLi%C`*>W+84O+P5(jQ#IK#;(y zKC+taFRXE=!>y5M?e={!!lU96GaN9es7aCx(oYObxo7gsUu1+Q5$GBLNP$HJcfxa0 z!5G8FKLwhB#49|d!JT09#ovf)U^7lfplfo~;ykJiSM~fzNCVdi3v4PP`B~UsOlKp* zk)MJ6*+IiTxv0VA`DOEY4T~e)$^!AwGi?A<%afWd)CvDtDb&kxq2LUDbpj<3$CTzy zw?Qu=1qT0`{zKxIUD4=ClZH5)`N6&oOV3GoM;2$XcxQUjGKmrr=tn?>PXuVWkdn)X@4+E7p+4hGRZZ7nkF`e%OQj?VXGY371Rf}sPrf{w zhIK$fB~x{|tziKe6v2Kcx|)&3{aKRh1elymd2KXG<9*ru$*PyqcsvoMKN&N_U#UJ; zq8J?5Dr6H65m)daBOU(5F4t1+8t#dN9&}n1;;105*sxn`D*y7O5s&|3IAoD(TNp7E z)>(k@EmC<=I2F%jq(+X)E@2bCYO2s~jkgTky|?Mp*;LEFMQJ|7QB{CgzE9whs~Q?@ z(=~aO)i%j+s5-ECF{+R6iPnJ3q~$e;vL$sV(bc(=tzk8PvhP$>Ivb=e14E;{K3=WH z4l$ScTv7Z&`6Z7cT&w{MqWL}?t#>{Z|!^XTt$l1`OY}z?#om877yEVM5 zCeZ6gAnBbdZQ6UZ_NZGmG%QRjLD+hihrsaN7UNZ za~0fnGBs!V_s>~X?Qv)7 zm-1nfLYhQMt4X-q*fQ&_{U6p-rK2|LO3pH0(FgCcnugCHu@Q^e>Mou4uP8ch_T%5B z$iMwSTi({h^U(4D3gn-^e(vSh#|)*<#}ylDTK=GUc!s#U{MPLPu19o*#;#CAa8V2{ zlERA+Pl{m9G4qMETEZ4HT5R%jaSfx%4ZZ$Im3L17L0J+gU(FQJkVRC~C$0m}-oa;BXMYNrVF&!gj=&=VU7uVOB4ynW-#xTfTI7$$9 z=@OUHZPa}k0tLI)q?X&^^xd8nJT&nx!>0Eg*BE&WD37|bIJYN-I%@_8xZzC(K&h)6 z+e5&rj&i{qF;CBf&2uW55mAAc{NZ>(9G!m$w6-m&Ftvq=2Df{_94SV@$W6=Ujqy)y zmWV)oV_YUbwVc<@GLc5IFRQ@k=)77Cx+<(a#Qv6Uh1g2mBsd}jGb8cvVGvYTXXha=*L9E zcLg*?vG*;TQuajjY3=h$$|CT;XXLE&ec|bL34S!waMoTrVJvSV7v` z8^d=Dil{^pAc7)8Vv!tbtMcUeVDZ9+4Sz_{3#pkgVgF>f28FN?ZS7|m)jY7eGBD|_ zdzo%C(4(n(sCXqaA*dE6EnA=z1Sl&d4WJ5OF4B|yf!8+=+eTJ8RyB82!hR*EC58{L z5cky{(w)%3A4;C{I&31psmboeGo}s<4)-G$V{#O(Yu*%Z-ijm`Nu$Lj6PbVEEY#zw zSD+-$lChdp$8v0AjGmXk>BrTOvgF+`N}D zrk|`JpiJ^l)yHTh)%@3G?rxrS24A65Y*N;!rZ%v`l1mS)4I^v{7RQo`9sS+ z2v*I%is(J)?R2oZ`|q`7!+Cdz_8mFd1w%lz*w6L}+Xn<_f3HSCkAM}mS-wOZkQvMvR8i1X-?yV#S2=+V&uU@aE`D46tug(eUo>0m=l>A2mA15~~Z z&-5G?vM5nZxe!XZFg@A^iO`5Q=+G&RpL^%dWxh3{370Hn|D$5LWU(?jQfETGcF1*h zo08{sK@-EQJQmA3?~>=Rw1VlP@9O=+k|o1aRlmK}d*-&)xZRq1rAnCRDS*a(&^Xrs zY*YFX2#Z2?WKdYSB7oa8!vJ5|+IfoZ%yzH4hTfr-QXWfZ6?ck@8|=Nkzrt>64WFxa znYaX|o{Yvah(%!jX3Tr``DZp>zd7ru=)5%S_2VbBMnUGgDWdOGqO4iIbl^$`p1^(0 zebUmN@9-rgCcR1CQ|Ne_)J>!{zeBPBrLIN|LCXtWxDDfLPVQ^=ftS4d6ZeLfJDlcs zYsi5<>Ndj>_~-PK-`o3-;F^q#<6e;e8N0)PECy;SHR0fs-h+aGkU)ZfQ2l=n!!7NM zyOp=>P=(NY!b03%uC!p_La~$B$y3-eG73Z$8O9mCQ?lFs*4&GnYqh+a_t=#wD zPKLakn)FD>AYtzrs*;jTw7L4g!Hy0_Ip;52xqa+iZrtq9P5Zo?$vxbR$>8pws6w~t zd!h<(7kSA1i5cV+=}*Y6AfwAF<~hfpHOqDxOn=sMtzo8CiA>l5am4v|5lh-{>@W>z zz0%?pO{F)k1*6kX=21YjZHp#|Ndcj0Y8B0NpwbzD=o$ z5EL2Stpv@Y?HkrfYI^qHoDK;;^&rNrG+zgts)SA+5)|`H#_9=QRIDONy{pLu)QhFT z^W)c}5${;xNzJ7AyG)R)wJf9!?+xPSuc#89}`P@^a2E`b-4AGGg({h2KsNHcdC^9mCr-%HHV9c?<|GREQR~&2kGe@z$)d> z@8iWD)yFt*CDAP>gO%5I-N``HOA&0aT%>sG$m;?* z2HIvf@B!J4^-QfK5#Qi)6bRw^uY*|yD@GeRJ6s&>LGgiA>9m2>o7t4bv6H?Vg)U>t z9y^oWqnD0Ax$=aUkrF^QSqpRrA+8iD2LeF=JHGqWO7Tj)!Dw; zDUHs2cN+s4IHOe?EK;PBy}u$h_^vTz5+h~(sT4wu#xUmLRI#2VX34ZM&qzqm+i)0( z7jpEMQgoM0G|vOfy4A-COw{bl+bG(hG?x2)Q<)M<2(^+if!6g;s(7t%WoQZ-A+$MG~659zwTpXlppiS_^29xV4(v|$1s^91Cns}>ibokLWVn)j7gU*q-en}YDyODe|3@cj*CXb1PnVc!pYU&f za;mlCzdP2M&kK_GQR9e>cUogZ|^k&_s3q`4}(o)T+v65}m zk*~!PcdZ74gc%TJsYN&EZcLqaopyxyxW8KGdy4ZFifVgiy72!Bw^g#48@5q_G$OHx zGa-ymFOKy&#?(>Z19L!Wq|_-%cKZu@!^So zpD^HC8%GxW+E<82BJ?vkO6t>-2%>i3tB{}`a(NLI$klU1;Kwf&q3j0Be*kv5`TK95 zMK645sQR0Q_U;Ij6Z;RqmUC9`B&P7gK?OJ)?=#>(OXsf1YT-1dUzXo`wy>)LLwzgm16R2p>O2eG#7@FQJ}w+-PHG& z=56)dG@u<%%+R^y+_YxBPYO)u`%0ANU37fYJxV0sndc}?Qsg!ye}9$7j>{%#`Mpt9 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 literal 0 HcmV?d00001 diff --git a/PjtKEIL_StepSon/Driver/DriverJeuLaser.h b/PjtKEIL_StepSon/Driver/DriverJeuLaser.h new file mode 100644 index 0000000..bc9b3bd --- /dev/null +++ b/PjtKEIL_StepSon/Driver/DriverJeuLaser.h @@ -0,0 +1,345 @@ +/** + * Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * Modifs : + * enlèvement de tout ce qui est inutile dans le .h + * ajout de fonctions GPIO dans le .c pour utilisation en ASM ou en C : + * - GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) + * - GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + * + * ajout d'une fonction qui impose une valeur de PWM (TIM3_CCR3) + * PWM_Set_Value_On_TIM3_C3( int Val) + * permet en ASM ou en C de fixer la valeur de PWM + + * Ajout de commentaires + + */ +#ifndef DRIVERJEULASER_H__ +#define DRIVERJEULASER_H__ + +#include "stm32f10x.h" + +//********************************************************************************************************** +//--------------------- CONFIGURATION CLOCK DU STM32 -------------------------------------- +//********************************************************************************************************** + +/** + * @brief Configure l'ensemble des horloges du uC + * @note horloge systeme (config statique a 72 MHz pour le STM32F103) + * @param None + * @retval None + */ +void CLOCK_Configure(void); + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LES TIMERS GENERAL PURPOSE TIM1 à TIM 4 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure un Timer TIM1 à TIM4 avec une périodicité donnée + * @note L' horloge des 4 timers a une fréquence de 72MHz + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Durée_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +/** + * Macros de base pour utiliser les timers + */ + // bloque le timer +#define Bloque_Timer(Timer) Timer->CR1=(Timer->CR1)&~(1<<0) +// Lance timer +#define Run_Timer(Timer) Timer->CR1=(Timer->CR1)|(1<<0) + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement d'un timer + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + + + + + + + + + + + +//********************************************************************************************************* +//--------------------- PWM TIM1 to TIM 4 ------------------------------ +//********************************************************************************************************* + +/** + * @brief Configure un timer en PWM + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param voie : un des 4 canaux possibles 1 à 4. + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval Retourne la période en tick (normalement la même que le param d'entrée sauf si PSC utilisé + */ +unsigned short int PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + + + +/** + * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif + * est donc : rcy = Thaut_ticks / Periode_ticks + * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 + * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks + * @retval None + */ +void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure le timer Systick avec une périodicité donnée + * @note Ce timer ne peut servir qu'à créer des temporisations ou générer des interruption + * ce n'est pas à proprement parler un périphérique, il fait partie du Cortex M3 + * Ce timer est un 24 bits + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour établir la périodicité + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Systick_Period_ff( unsigned int Periode_ticks ); + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement du Systick + * @note + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + + +/** + * Macros de base pour utiliser le Systick + */ +#define SysTick_On ((SysTick->CTRL)=(SysTick->CTRL)|1<<0) +#define SysTick_Off ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<0)) +#define SysTick_Enable_IT ((SysTick->CTRL)=(SysTick->CTRL)|1<<1) +#define SysTick_Disable_IT ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<1)) + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Active l'ADC du STM32, configure la durée de prélèvement de l'échantillon (temps + * de fermeture du switch d'acquisition + * @note + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Duree_Ech_ticks : dirée de fermeture du switch d'échantillonnage en Tick d'horloge CPU + * exemple pour 1µs on choisira 72. + * @retval Nombre de Tick réellement pris en compte + */ +unsigned int Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + + +/** + * @brief Sélectionne la voie à convertir + * @note Attention, la voie va de 0 à 15 et n'est pas directement lié au n°de GPIO + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Voie_ADC : 1 à 15 + * @retval None + */ +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + + + + + +/** + * @brief Permet lier le déclenchement au débordement d'un timer, spécifie également + * la période de débordement du timer + * @note pas besoin de régler le timer avec une autre fonction dédiée timer + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Source : indique le timer qui déclenche l'ADC choix dans les define ci-dessous + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ + +// param pour Source : +#define TIM1_CC1 0 +#define TIM1_CC2 1 +#define TIM1_CC3 2 +#define TIM2_CC2 3 +#define TIM4_CC4 5 +void Init_Conversion_On_Trig_Timer_ff( ADC_TypeDef * ADC, char Source, u32 Periode_ticks ); + + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- ANALOG INPUT ADC & DMA ------------------------------ +//********************************************************************************************************** + +/** + * @brief Permer de lier l'ADC à un tableau en RAM pour une DMA + * @note + * @param Circ : circular. Si '0', en fin de DMA le ptr d'@ reste inchangé + * si '1' le ptr d'@ se recale à celle du début. + * @param Ptr_Table_DMA : contient l'@ de début de zone RAM à écrire + * @retval None + */ +void Init_ADC1_DMA1(char Circ, short int *Ptr_Table_DMA); + + + + + +/** + * @brief Lance une DMA sur le nombre de points spécifie. Les resultats seront stockes + * dans la zone de RAM écrite est indiquée lors de l'appel de la fonction Init_ADC1_DMA1 + * @note + * @param NbEchDMA est le nombre d'échantillons à stocker. + * @retval None + */ +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + + +/** + * @brief Attend la fin d'un cycle de DMA. la duree depend de la periode d'acquisition + * et du nombre d'echantillons + * @note fonction d'attente (bloquante) + * @param None + * @retval None + */ +void Wait_On_End_Of_DMA1(void); + + + + + + + + +//********************************************************************************************************** +//--------------------- GPIO ------------------------------ +//********************************************************************************************************** + +/** + * @brief Initialisation d'un GPIO (A à C), pin x. + * peut être configuré : + * -> Input ou output + * -> architecture technologique (push-pull, open drain...) + + * @note + * @param Port : GPIOA, GPIOB, GPIOC + * @param Broche : 0 à 15 + * @param Sens : INPUT ou OUTPUT + * @param Techno : voir define ci dessous + * @retval 1 erreur, 0 si OK + */ + +// Sens +#define INPUT 'i' +#define OUTPUT 'o' + +// Techno pour pin en entrée (INPUT) +#define ANALOG 0 +#define INPUT_FLOATING 1 +#define INPUT_PULL_DOWN_UP 2 + +// Techno pour pin en sortie (OUTPUT) +#define OUTPUT_PPULL 0 +#define OUTPUT_OPDRAIN 1 +#define ALT_PPULL 2 +#define ALT_OPDRAIN 3 + +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + + +/** + * @brief Mise à 1 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Set(char Broche); +void GPIOB_Set(char Broche); +void GPIOC_Set(char Broche); + + + +/** + * @brief Mise à 0 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Clear(char Broche); +void GPIOB_Clear(char Broche); +void GPIOC_Clear(char Broche); + + +#endif + + diff --git a/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc b/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc new file mode 100644 index 0000000..48d5e50 --- /dev/null +++ b/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc @@ -0,0 +1,56 @@ + +; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) +; Accès en aux fonctions suivantes : +; GPIO : +; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) +; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + +; PWM : +;/** +; * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif +; * est donc : rcy = Thaut_ticks / Periode_ticks +; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 +; * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks +; * @retval None +; */ + +;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + import PWM_Set_Value_TIM3_Ch3 + + + +;/** +; * @brief Mise à 1 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Set(char Broche); + import GPIOA_Set + +;void GPIOB_Set(char Broche); + import GPIOB_Set + +;void GPIOC_Set(char Broche); + import GPIOC_Set + + + +;/** +; * @brief Mise à 0 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Clear(char Broche); + import GPIOA_Clear + +;void GPIOB_Clear(char Broche); + import GPIOB_Clear + +;void GPIOC_Clear(char Broche); + import GPIOC_Clear + + end diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.h b/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.h new file mode 100644 index 0000000..bc9b3bd --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.h @@ -0,0 +1,345 @@ +/** + * Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) + * + * GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz + * Modifs : + * enlèvement de tout ce qui est inutile dans le .h + * ajout de fonctions GPIO dans le .c pour utilisation en ASM ou en C : + * - GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) + * - GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + * + * ajout d'une fonction qui impose une valeur de PWM (TIM3_CCR3) + * PWM_Set_Value_On_TIM3_C3( int Val) + * permet en ASM ou en C de fixer la valeur de PWM + + * Ajout de commentaires + + */ +#ifndef DRIVERJEULASER_H__ +#define DRIVERJEULASER_H__ + +#include "stm32f10x.h" + +//********************************************************************************************************** +//--------------------- CONFIGURATION CLOCK DU STM32 -------------------------------------- +//********************************************************************************************************** + +/** + * @brief Configure l'ensemble des horloges du uC + * @note horloge systeme (config statique a 72 MHz pour le STM32F103) + * @param None + * @retval None + */ +void CLOCK_Configure(void); + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LES TIMERS GENERAL PURPOSE TIM1 à TIM 4 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure un Timer TIM1 à TIM4 avec une périodicité donnée + * @note L' horloge des 4 timers a une fréquence de 72MHz + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Durée_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks ); + +/** + * Macros de base pour utiliser les timers + */ + // bloque le timer +#define Bloque_Timer(Timer) Timer->CR1=(Timer->CR1)&~(1<<0) +// Lance timer +#define Run_Timer(Timer) Timer->CR1=(Timer->CR1)|(1<<0) + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement d'un timer + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) ); + + + + + + + + + + + +//********************************************************************************************************* +//--------------------- PWM TIM1 to TIM 4 ------------------------------ +//********************************************************************************************************* + +/** + * @brief Configure un timer en PWM + * @note + * @param *Timer = TIM1 ou TIM2 ou TIM3 ou TIM4 + * @param voie : un des 4 canaux possibles 1 à 4. + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval Retourne la période en tick (normalement la même que le param d'entrée sauf si PSC utilisé + */ +unsigned short int PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks ); + + + +/** + * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif + * est donc : rcy = Thaut_ticks / Periode_ticks + * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 + * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks + * @retval None + */ +void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Configure le timer Systick avec une périodicité donnée + * @note Ce timer ne peut servir qu'à créer des temporisations ou générer des interruption + * ce n'est pas à proprement parler un périphérique, il fait partie du Cortex M3 + * Ce timer est un 24 bits + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour établir la périodicité + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ +void Systick_Period_ff( unsigned int Periode_ticks ); + + + +/** + * @brief Associe une fonction d'interruption (callback) lors du débordement du Systick + * @note + * @param Prio : niveau de priorité de l'interruption (0 -> priorité max, 15 -> priorité min) + * @param IT_function : le nom de la fonction Callback à appeler lors de l'interruption + * @retval None + */ +void Systick_Prio_IT( char Prio, void (*Systick_function)(void) ); + + +/** + * Macros de base pour utiliser le Systick + */ +#define SysTick_On ((SysTick->CTRL)=(SysTick->CTRL)|1<<0) +#define SysTick_Off ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<0)) +#define SysTick_Enable_IT ((SysTick->CTRL)=(SysTick->CTRL)|1<<1) +#define SysTick_Disable_IT ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<1)) + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- LE SYSTICK TIMER, Part of Cortex M3 ------------------------------ +//********************************************************************************************************** + +/** + * @brief Active l'ADC du STM32, configure la durée de prélèvement de l'échantillon (temps + * de fermeture du switch d'acquisition + * @note + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Duree_Ech_ticks : dirée de fermeture du switch d'échantillonnage en Tick d'horloge CPU + * exemple pour 1µs on choisira 72. + * @retval Nombre de Tick réellement pris en compte + */ +unsigned int Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks ); + + +/** + * @brief Sélectionne la voie à convertir + * @note Attention, la voie va de 0 à 15 et n'est pas directement lié au n°de GPIO + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Voie_ADC : 1 à 15 + * @retval None + */ +void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC ); + + + + + +/** + * @brief Permet lier le déclenchement au débordement d'un timer, spécifie également + * la période de débordement du timer + * @note pas besoin de régler le timer avec une autre fonction dédiée timer + * @param ADC : précise de quel ADC il s'agit, ADC1 ou ADC2 + * @param Source : indique le timer qui déclenche l'ADC choix dans les define ci-dessous + * @param Periode_ticks : nombre de pas (tick) comptés à 72 MHz pour faire déborder le timer + * La période de débordement du Timer est donc T = Durée_ticks * Tck, avec Tck = 1/72 000 000 + * @retval None + */ + +// param pour Source : +#define TIM1_CC1 0 +#define TIM1_CC2 1 +#define TIM1_CC3 2 +#define TIM2_CC2 3 +#define TIM4_CC4 5 +void Init_Conversion_On_Trig_Timer_ff( ADC_TypeDef * ADC, char Source, u32 Periode_ticks ); + + + + + + + + + + + + + + + +//********************************************************************************************************** +//--------------------- ANALOG INPUT ADC & DMA ------------------------------ +//********************************************************************************************************** + +/** + * @brief Permer de lier l'ADC à un tableau en RAM pour une DMA + * @note + * @param Circ : circular. Si '0', en fin de DMA le ptr d'@ reste inchangé + * si '1' le ptr d'@ se recale à celle du début. + * @param Ptr_Table_DMA : contient l'@ de début de zone RAM à écrire + * @retval None + */ +void Init_ADC1_DMA1(char Circ, short int *Ptr_Table_DMA); + + + + + +/** + * @brief Lance une DMA sur le nombre de points spécifie. Les resultats seront stockes + * dans la zone de RAM écrite est indiquée lors de l'appel de la fonction Init_ADC1_DMA1 + * @note + * @param NbEchDMA est le nombre d'échantillons à stocker. + * @retval None + */ +void Start_DMA1( u16 NbEchDMA ); + +// arret DMA +#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1; + + +/** + * @brief Attend la fin d'un cycle de DMA. la duree depend de la periode d'acquisition + * et du nombre d'echantillons + * @note fonction d'attente (bloquante) + * @param None + * @retval None + */ +void Wait_On_End_Of_DMA1(void); + + + + + + + + +//********************************************************************************************************** +//--------------------- GPIO ------------------------------ +//********************************************************************************************************** + +/** + * @brief Initialisation d'un GPIO (A à C), pin x. + * peut être configuré : + * -> Input ou output + * -> architecture technologique (push-pull, open drain...) + + * @note + * @param Port : GPIOA, GPIOB, GPIOC + * @param Broche : 0 à 15 + * @param Sens : INPUT ou OUTPUT + * @param Techno : voir define ci dessous + * @retval 1 erreur, 0 si OK + */ + +// Sens +#define INPUT 'i' +#define OUTPUT 'o' + +// Techno pour pin en entrée (INPUT) +#define ANALOG 0 +#define INPUT_FLOATING 1 +#define INPUT_PULL_DOWN_UP 2 + +// Techno pour pin en sortie (OUTPUT) +#define OUTPUT_PPULL 0 +#define OUTPUT_OPDRAIN 1 +#define ALT_PPULL 2 +#define ALT_OPDRAIN 3 + +// Exemple : +// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL); +// Place le bit 8 du port B en sortie Push-pull +char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno); + + +/** + * @brief Mise à 1 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Set(char Broche); +void GPIOB_Set(char Broche); +void GPIOC_Set(char Broche); + + + +/** + * @brief Mise à 0 d'une broche GPIO + * @note Une fonction par GPIO + * @param Broche : 0 à 15 + * @retval None + */ + +void GPIOA_Clear(char Broche); +void GPIOB_Clear(char Broche); +void GPIOC_Clear(char Broche); + + +#endif + + diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc b/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc new file mode 100644 index 0000000..48d5e50 --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Driver/DriverJeuLaser.inc @@ -0,0 +1,56 @@ + +; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) +; Accès en aux fonctions suivantes : +; GPIO : +; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_Set(char Broche) +; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GPIOC_Clear(char Broche) + +; PWM : +;/** +; * @brief Fixe une valeur de PWM, Val, en tick horloge. La rapport cyclique effectif +; * est donc : rcy = Thaut_ticks / Periode_ticks +; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 +; * @param Thaut_ticks : durée de l'état haut d'une impulsion en Ticks +; * @retval None +; */ + +;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks); + import PWM_Set_Value_TIM3_Ch3 + + + +;/** +; * @brief Mise à 1 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Set(char Broche); + import GPIOA_Set + +;void GPIOB_Set(char Broche); + import GPIOB_Set + +;void GPIOC_Set(char Broche); + import GPIOC_Set + + + +;/** +; * @brief Mise à 0 d'une broche GPIO +; * @note Une fonction par GPIO +; * @param Broche : 0 à 15 +; * @retval None +; */ + +;void GPIOA_Clear(char Broche); + import GPIOA_Clear + +;void GPIOB_Clear(char Broche); + import GPIOB_Clear + +;void GPIOC_Clear(char Broche); + import GPIOC_Clear + + end diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/GestionSon.s b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/GestionSon.s new file mode 100644 index 0000000..8a75b7a --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/GestionSon.s @@ -0,0 +1,30 @@ + PRESERVE8 + THUMB + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + + + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici + + + + + + + + END \ No newline at end of file diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/bruitverre.asm b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/bruitverre.asm new file mode 100644 index 0000000..bf5ba29 --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/bruitverre.asm @@ -0,0 +1,5527 @@ +;********************************************* + + AREA SecSon, DATA, READONLY + ;********************************************* + + + export LongueurSon + export PeriodeSonMicroSec + export Son + +LongueurSon DCD 5512 +PeriodeSonMicroSec DCD 91 +Son + DCW -6911 + DCW 20666 + DCW -1338 + DCW 10995 + DCW -23488 + DCW -18984 + DCW 29795 + DCW -21890 + DCW 12388 + DCW 16304 + DCW -32768 + DCW 13298 + DCW 22737 + DCW -20334 + DCW 4588 + DCW 5271 + DCW -27547 + DCW 19370 + DCW -4248 + DCW -7368 + DCW 24620 + DCW -21404 + DCW 14442 + DCW 4961 + DCW -7125 + DCW 21290 + DCW -22096 + DCW -6605 + DCW 6777 + DCW -14300 + DCW 8261 + DCW -2223 + DCW -6714 + DCW 15935 + DCW -13063 + DCW -3648 + DCW 19575 + DCW -15365 + DCW 7934 + DCW 23001 + DCW -10157 + DCW -5535 + DCW -7091 + DCW 3950 + DCW 7741 + DCW -8492 + DCW 1686 + DCW -6785 + DCW -6663 + DCW 5548 + DCW -15768 + DCW -2114 + DCW 18837 + DCW -13201 + DCW 3493 + DCW 21693 + DCW -2961 + DCW 8207 + DCW -12924 + DCW -10400 + DCW 16283 + DCW -22049 + DCW 2080 + DCW 21521 + DCW -12295 + DCW -3355 + DCW 3766 + DCW -1736 + DCW 243 + DCW -3078 + DCW 5452 + DCW 14019 + DCW -8475 + DCW 386 + DCW -12182 + DCW -13620 + DCW 20749 + DCW -1921 + DCW 4332 + DCW 11159 + DCW -17239 + DCW -9343 + DCW 9758 + DCW -11566 + DCW -294 + DCW 8244 + DCW -13503 + DCW 18862 + DCW 4927 + DCW -22662 + DCW -1355 + DCW -6030 + DCW -1854 + DCW 14325 + DCW -2709 + DCW -1665 + DCW 7607 + DCW -5997 + DCW 14191 + DCW -369 + DCW -14400 + DCW 19106 + DCW -8857 + DCW -2881 + DCW 5414 + DCW -12354 + DCW 16309 + DCW -1308 + DCW -9557 + DCW 9532 + DCW 3107 + DCW -1447 + DCW -7263 + DCW -15617 + DCW 8681 + DCW -4843 + DCW -13457 + DCW 31439 + DCW -13612 + DCW -4588 + DCW 3405 + DCW -23987 + DCW 32767 + DCW -289 + DCW -10215 + DCW 30843 + DCW -16631 + DCW -8412 + DCW -3242 + DCW -3221 + DCW 13516 + DCW -16531 + DCW -10689 + DCW 13306 + DCW -15306 + DCW -10861 + DCW 11322 + DCW -12702 + DCW 16518 + DCW 7024 + DCW -12572 + DCW 26193 + DCW -25496 + DCW 101 + DCW 18116 + DCW -20557 + DCW 20468 + DCW -14099 + DCW -12211 + DCW 18611 + DCW 1619 + DCW 8068 + DCW -10891 + DCW -7313 + DCW 10123 + DCW -570 + DCW 4290 + DCW 7582 + DCW -12287 + DCW -923 + DCW 5078 + DCW -6840 + DCW 17533 + DCW -7871 + DCW -13977 + DCW 2084 + DCW -9092 + DCW 11742 + DCW -4667 + DCW -365 + DCW 5552 + DCW -8580 + DCW 1166 + DCW 6215 + DCW 4592 + DCW -5636 + DCW -3627 + DCW -17856 + DCW 8047 + DCW 12723 + DCW -24196 + DCW 6399 + DCW 16589 + DCW -11700 + DCW -6102 + DCW 23366 + DCW -11679 + DCW -12132 + DCW 22477 + DCW -18841 + DCW 2550 + DCW 10048 + DCW -6823 + DCW 7502 + DCW -1166 + DCW 9234 + DCW -13864 + DCW -9263 + DCW 8848 + DCW -5632 + DCW 956 + DCW 2835 + DCW 3535 + DCW -1241 + DCW 4932 + DCW -3715 + DCW -2235 + DCW 6211 + DCW -9477 + DCW -4445 + DCW -12195 + DCW 9863 + DCW 15617 + DCW -14069 + DCW 5405 + DCW 9632 + DCW 323 + DCW -13247 + DCW -654 + DCW 14946 + DCW -12803 + DCW 1497 + DCW 2566 + DCW 1598 + DCW 9611 + DCW -14388 + DCW -1367 + DCW 14761 + DCW -1287 + DCW -26503 + DCW 18472 + DCW 18917 + DCW -25589 + DCW 16162 + DCW -19114 + DCW -4919 + DCW 20200 + DCW -18250 + DCW 11327 + DCW -1912 + DCW 3439 + DCW -21051 + DCW 6680 + DCW 32767 + DCW -20917 + DCW 13998 + DCW -12555 + DCW 566 + DCW 1241 + DCW -9293 + DCW 21731 + DCW -17290 + DCW 9033 + DCW -8106 + DCW -1065 + DCW 8458 + DCW -20229 + DCW 13398 + DCW -3208 + DCW -3518 + DCW 5456 + DCW -1208 + DCW -11159 + DCW 11289 + DCW 6303 + DCW -20586 + DCW 31736 + DCW -17302 + DCW -9909 + DCW 27702 + DCW -15419 + DCW 2311 + DCW -4344 + DCW -1103 + DCW -12170 + DCW 11348 + DCW 3317 + DCW -17634 + DCW 19781 + DCW -3745 + DCW -4064 + DCW -1774 + DCW 130 + DCW -6504 + DCW 3313 + DCW 2717 + DCW -7599 + DCW 14459 + DCW -3984 + DCW -1807 + DCW 1635 + DCW -2533 + DCW 2495 + DCW -6928 + DCW 2093 + DCW 1887 + DCW -2873 + DCW 12186 + DCW -13369 + DCW 2944 + DCW 13570 + DCW -16267 + DCW -872 + DCW -1522 + DCW -3451 + DCW -4495 + DCW 16216 + DCW 2449 + DCW 994 + DCW 10337 + DCW -17017 + DCW 356 + DCW -315 + DCW -2185 + DCW -4927 + DCW 2776 + DCW -1577 + DCW -4990 + DCW 12102 + DCW -9045 + DCW 4047 + DCW 4152 + DCW -23710 + DCW 4516 + DCW 9410 + DCW -12329 + DCW 3502 + DCW 11037 + DCW -8840 + DCW -2252 + DCW 15260 + DCW -19709 + DCW 3321 + DCW 16199 + DCW -20921 + DCW 3741 + DCW 9159 + DCW -2504 + DCW -3753 + DCW 10626 + DCW -2969 + DCW -5661 + DCW 4890 + DCW -11423 + DCW 11180 + DCW 4487 + DCW -11947 + DCW 4894 + DCW 3476 + DCW -6517 + DCW 10257 + DCW 5724 + DCW -14216 + DCW 10270 + DCW -2264 + DCW -14933 + DCW 18489 + DCW 990 + DCW -13281 + DCW 4906 + DCW 5200 + DCW -2814 + DCW -1669 + DCW 5632 + DCW -2306 + DCW -3753 + DCW -8655 + DCW 2088 + DCW 2659 + DCW -2537 + DCW 12392 + DCW -5414 + DCW 981 + DCW -2462 + DCW -3539 + DCW 2114 + DCW -2315 + DCW 8618 + DCW -17256 + DCW -1598 + DCW 7381 + DCW 92 + DCW 1631 + DCW -6722 + DCW 11696 + DCW -12874 + DCW -5758 + DCW 12132 + DCW -3892 + DCW 2273 + DCW 6596 + DCW -705 + DCW -8052 + DCW 15294 + DCW -11197 + DCW -8031 + DCW 18594 + DCW -14581 + DCW 2487 + DCW -1254 + DCW 4948 + DCW 11306 + DCW -7297 + DCW 1661 + DCW -1912 + DCW 5267 + DCW -9251 + DCW 3640 + DCW 7909 + DCW -14832 + DCW 4613 + DCW 2374 + DCW -8286 + DCW 4508 + DCW 7796 + DCW -14887 + DCW 4726 + DCW 5619 + DCW -16283 + DCW 14912 + DCW -2881 + DCW -117 + DCW 4579 + DCW -14514 + DCW 15029 + DCW -6127 + DCW 3774 + DCW 12446 + DCW -12933 + DCW 4051 + DCW -7079 + DCW 1254 + DCW 3980 + DCW -3233 + DCW 11561 + DCW 948 + DCW -13914 + DCW 5590 + DCW 7511 + DCW -13797 + DCW 15415 + DCW -5401 + DCW -14736 + DCW 12346 + DCW -5301 + DCW 7854 + DCW -2751 + DCW -1971 + DCW -440 + DCW -7838 + DCW 8240 + DCW -6026 + DCW 5548 + DCW 2554 + DCW 2738 + DCW 4110 + DCW -15986 + DCW 5246 + DCW 7330 + DCW -14941 + DCW 210 + DCW 10215 + DCW -15663 + DCW 12220 + DCW 8110 + DCW -10714 + DCW 13734 + DCW -14954 + DCW 3183 + DCW 4240 + DCW -8144 + DCW 16866 + DCW -9809 + DCW -4323 + DCW 13302 + DCW -4793 + DCW -4982 + DCW 9876 + DCW -4399 + DCW -4911 + DCW 3338 + DCW -403 + DCW 5162 + DCW -9532 + DCW 2613 + DCW 3749 + DCW -6458 + DCW 2684 + DCW -1916 + DCW 1736 + DCW 256 + DCW 7569 + DCW -1103 + DCW -17982 + DCW 9272 + DCW 6164 + DCW -15084 + DCW 14929 + DCW 3233 + DCW -19080 + DCW 10501 + DCW -3451 + DCW -2663 + DCW 8026 + DCW -11431 + DCW 7364 + DCW -4034 + DCW -5347 + DCW 16317 + DCW -7984 + DCW -243 + DCW 2914 + DCW -11406 + DCW -1124 + DCW 2344 + DCW 8215 + DCW 2449 + DCW -3611 + DCW 11650 + DCW -6504 + DCW -11532 + DCW 20330 + DCW -5766 + DCW -8307 + DCW 8211 + DCW -8198 + DCW 6458 + DCW 2361 + DCW 6185 + DCW 3640 + DCW -15990 + DCW 3577 + DCW -2495 + DCW -5443 + DCW 10647 + DCW -3434 + DCW -4189 + DCW 4118 + DCW -3237 + DCW 3535 + DCW -5087 + DCW -193 + DCW 11004 + DCW -21886 + DCW 449 + DCW 3791 + DCW -16258 + DCW 18149 + DCW 2021 + DCW -8291 + DCW -231 + DCW -8244 + DCW 7225 + DCW 4382 + DCW -809 + DCW 6546 + DCW -7376 + DCW -4512 + DCW 5766 + DCW -4122 + DCW -281 + DCW 1547 + DCW 910 + DCW -2680 + DCW -7108 + DCW 10131 + DCW 3174 + DCW -10408 + DCW 10823 + DCW -5611 + DCW -10467 + DCW 16074 + DCW -956 + DCW 1866 + DCW 1589 + DCW -4789 + DCW -348 + DCW -2743 + DCW 15575 + DCW 2847 + DCW -7116 + DCW 9553 + DCW -5015 + DCW -4223 + DCW 10706 + DCW -6752 + DCW 1459 + DCW -377 + DCW -15130 + DCW 12920 + DCW 2483 + DCW 46 + DCW 15126 + DCW -12639 + DCW -10446 + DCW 3233 + DCW -2386 + DCW 1942 + DCW 9687 + DCW 4235 + DCW -12564 + DCW -2185 + DCW 12442 + DCW -4592 + DCW -730 + DCW 4051 + DCW -14120 + DCW 2382 + DCW 6424 + DCW -3946 + DCW 7460 + DCW -2814 + DCW -2768 + DCW -1757 + DCW -4726 + DCW 5343 + DCW -5137 + DCW -1837 + DCW -407 + DCW -3606 + DCW 8303 + DCW -5217 + DCW 3548 + DCW 9880 + DCW -20695 + DCW 1925 + DCW 9632 + DCW -12597 + DCW 12677 + DCW 4848 + DCW -13797 + DCW 6588 + DCW 2059 + DCW -6869 + DCW 6324 + DCW 2088 + DCW -1614 + DCW 742 + DCW -2382 + DCW 4210 + DCW 71 + DCW -210 + DCW 3443 + DCW -1078 + DCW -3934 + DCW -3594 + DCW 8005 + DCW -319 + DCW -5493 + DCW 7682 + DCW -9066 + DCW -6169 + DCW 10241 + DCW -3921 + DCW -164 + DCW 5171 + DCW 897 + DCW -373 + DCW -4659 + DCW 151 + DCW 650 + DCW -3757 + DCW 9863 + DCW 7678 + DCW -5879 + DCW 5158 + DCW -4433 + DCW -5275 + DCW -264 + DCW -4680 + DCW 2696 + DCW -1724 + DCW 7309 + DCW 5946 + DCW -5821 + DCW -1975 + DCW 910 + DCW -482 + DCW -1677 + DCW 3070 + DCW 717 + DCW -4793 + DCW 1744 + DCW 3791 + DCW -1866 + DCW 2826 + DCW 1220 + DCW -3783 + DCW -776 + DCW -4495 + DCW -751 + DCW 2873 + DCW -2734 + DCW 8936 + DCW -2160 + DCW -9507 + DCW 9297 + DCW -4843 + DCW -4537 + DCW 6248 + DCW -176 + DCW -3757 + DCW 2864 + DCW 5175 + DCW -4017 + DCW 1044 + DCW -1090 + DCW -3166 + DCW -143 + DCW 1568 + DCW 1170 + DCW 8 + DCW 4177 + DCW -2944 + DCW -3133 + DCW -3028 + DCW 5187 + DCW 5200 + DCW -8697 + DCW 5883 + DCW -1166 + DCW -7053 + DCW 692 + DCW 2709 + DCW 7351 + DCW -7984 + DCW 88 + DCW 3636 + DCW -923 + DCW 5393 + DCW 2365 + DCW -7733 + DCW -4244 + DCW 6043 + DCW -8827 + DCW 3699 + DCW 5552 + DCW -1598 + DCW -5045 + DCW -3183 + DCW 8253 + DCW -5833 + DCW 470 + DCW 6328 + DCW 3434 + DCW -9142 + DCW 730 + DCW 583 + DCW -1447 + DCW 12027 + DCW -5833 + DCW 1786 + DCW -11029 + DCW -2147 + DCW 7909 + DCW -8253 + DCW 8995 + DCW -805 + DCW -3174 + DCW 3074 + DCW -55 + DCW -1355 + DCW -1967 + DCW 3636 + DCW -2491 + DCW 5401 + DCW -1556 + DCW -3904 + DCW 6542 + DCW -3279 + DCW 3229 + DCW -6047 + DCW -2420 + DCW 4114 + DCW 927 + DCW 1468 + DCW -2181 + DCW 3573 + DCW -9649 + DCW 2134 + DCW 4621 + DCW -956 + DCW 1623 + DCW -7351 + DCW 3900 + DCW 310 + DCW 1979 + DCW 2776 + DCW -3707 + DCW 1136 + DCW -566 + DCW 2080 + DCW -2558 + DCW 4563 + DCW 814 + DCW -7506 + DCW 4286 + DCW -2688 + DCW 1401 + DCW 1082 + DCW 3212 + DCW 2244 + DCW -1925 + DCW -814 + DCW -2340 + DCW 4986 + DCW -7825 + DCW 7183 + DCW 1996 + DCW -6055 + DCW 7938 + DCW -6798 + DCW 709 + DCW 1451 + DCW -1879 + DCW -1308 + DCW -159 + DCW 1002 + DCW -2550 + DCW 4843 + DCW 2294 + DCW 2231 + DCW -7997 + DCW -5066 + DCW 4827 + DCW -2466 + DCW 6462 + DCW -4315 + DCW -671 + DCW -277 + DCW 1162 + DCW 10194 + DCW -9226 + DCW 3154 + DCW -7414 + DCW -4043 + DCW 8223 + DCW 2575 + DCW 6349 + DCW -7636 + DCW 268 + DCW -113 + DCW -2671 + DCW -2239 + DCW 6362 + DCW 117 + DCW -5137 + DCW 8270 + DCW -8718 + DCW 4894 + DCW 1162 + DCW -4835 + DCW 7158 + DCW -9477 + DCW 558 + DCW -134 + DCW 1581 + DCW 7611 + DCW -876 + DCW -5053 + DCW -5254 + DCW 6127 + DCW -2562 + DCW 4286 + DCW 1342 + DCW -1036 + DCW 646 + DCW -6055 + DCW 6013 + DCW -3992 + DCW 6718 + DCW -2608 + DCW -4697 + DCW 5078 + DCW -5808 + DCW 9834 + DCW -2290 + DCW -260 + DCW 210 + DCW -13713 + DCW 4483 + DCW 8337 + DCW 2151 + DCW -457 + DCW -268 + DCW -4621 + DCW 1212 + DCW 839 + DCW -3099 + DCW 6533 + DCW -10823 + DCW 5691 + DCW 2621 + DCW -2889 + DCW 11616 + DCW -12325 + DCW 956 + DCW -1493 + DCW -138 + DCW 667 + DCW -348 + DCW 8228 + DCW -164 + DCW 369 + DCW -5473 + DCW 2126 + DCW -4667 + DCW 1942 + DCW 2432 + DCW -2634 + DCW 3263 + DCW -7322 + DCW 8924 + DCW 2285 + DCW -2206 + DCW 3149 + DCW -15306 + DCW 7829 + DCW -1640 + DCW -8 + DCW 8836 + DCW -7896 + DCW 9574 + DCW -13818 + DCW 5603 + DCW -331 + DCW 6315 + DCW 3409 + DCW -18900 + DCW 16606 + DCW -12648 + DCW 16820 + DCW -2038 + DCW -3154 + DCW 11826 + DCW -24704 + DCW 5749 + DCW -445 + DCW 8400 + DCW 4500 + DCW -461 + DCW -5883 + DCW -8207 + DCW 4990 + DCW 176 + DCW 15151 + DCW -1543 + DCW -7926 + DCW -5045 + DCW -4084 + DCW 3518 + DCW 6747 + DCW 8718 + DCW -4064 + DCW -344 + DCW -14421 + DCW -1476 + DCW 7540 + DCW 2592 + DCW 15700 + DCW -10761 + DCW -5561 + DCW -2923 + DCW 2478 + DCW 9721 + DCW 5242 + DCW -277 + DCW -11209 + DCW -1120 + DCW -9469 + DCW 6030 + DCW 5821 + DCW 2969 + DCW 3497 + DCW -10140 + DCW -159 + DCW -5615 + DCW 4701 + DCW 8060 + DCW 2139 + DCW 289 + DCW -12010 + DCW -2856 + DCW -1631 + DCW 7192 + DCW 7796 + DCW -2885 + DCW 3275 + DCW -12434 + DCW 575 + DCW 4374 + DCW 1652 + DCW 7615 + DCW -1526 + DCW -1833 + DCW -9733 + DCW 4357 + DCW -6471 + DCW 6500 + DCW 14300 + DCW -10987 + DCW 1535 + DCW -7863 + DCW -2696 + DCW 5556 + DCW 6840 + DCW 5359 + DCW -6034 + DCW -667 + DCW -8156 + DCW 3028 + DCW 4957 + DCW 2634 + DCW 5984 + DCW -7217 + DCW 1053 + DCW -7972 + DCW 1526 + DCW 7435 + DCW 2826 + DCW 5883 + DCW -9289 + DCW -3619 + DCW -5305 + DCW 5057 + DCW 6907 + DCW 4588 + DCW -327 + DCW -11725 + DCW 319 + DCW -4252 + DCW 5514 + DCW 9997 + DCW -465 + DCW -1778 + DCW -6957 + DCW -5053 + DCW -1015 + DCW 7670 + DCW 5347 + DCW 1111 + DCW -2940 + DCW -12430 + DCW 579 + DCW 4227 + DCW 8110 + DCW 5460 + DCW -5808 + DCW -7938 + DCW -7511 + DCW 5133 + DCW 3980 + DCW 10853 + DCW 612 + DCW -7846 + DCW -4885 + DCW -7242 + DCW 7167 + DCW 3338 + DCW 7804 + DCW -1283 + DCW -8584 + DCW -3795 + DCW -2944 + DCW 9146 + DCW 3380 + DCW 5946 + DCW -7662 + DCW -10773 + DCW 1422 + DCW 38 + DCW 12996 + DCW 3481 + DCW -721 + DCW -8249 + DCW -6907 + DCW 4806 + DCW 1132 + DCW 10165 + DCW -549 + DCW -2210 + DCW -5850 + DCW -4755 + DCW 5548 + DCW 1153 + DCW 9410 + DCW -1988 + DCW -5615 + DCW -4839 + DCW -3887 + DCW 6978 + DCW 3577 + DCW 6907 + DCW -4118 + DCW -4827 + DCW -4412 + DCW -1824 + DCW 10773 + DCW -428 + DCW 3292 + DCW -3091 + DCW -5124 + DCW -1883 + DCW 1174 + DCW 4751 + DCW 168 + DCW 7343 + DCW -7817 + DCW -3057 + DCW 1258 + DCW -3422 + DCW 7049 + DCW 3808 + DCW -549 + DCW -5363 + DCW -2814 + DCW -1069 + DCW 4269 + DCW 5351 + DCW -1833 + DCW 772 + DCW -5452 + DCW -1535 + DCW 1984 + DCW 96 + DCW 6546 + DCW -3187 + DCW -143 + DCW -3275 + DCW -2772 + DCW 2659 + DCW 604 + DCW 5309 + DCW -3443 + DCW -2629 + DCW -2625 + DCW 3485 + DCW -935 + DCW 369 + DCW 4403 + DCW -1040 + DCW 1816 + DCW -5359 + DCW 1069 + DCW -1245 + DCW 3552 + DCW 2227 + DCW -7037 + DCW 3770 + DCW -2420 + DCW -3112 + DCW 7162 + DCW 663 + DCW -3451 + DCW -159 + DCW -1338 + DCW -1258 + DCW 4277 + DCW 377 + DCW -549 + DCW 2394 + DCW -4751 + DCW 1266 + DCW -88 + DCW 3795 + DCW 2541 + DCW -34 + DCW -264 + DCW -5389 + DCW 2432 + DCW -407 + DCW 5934 + DCW 117 + DCW -2004 + DCW -2348 + DCW -4877 + DCW 3573 + DCW 1128 + DCW 4227 + DCW 1099 + DCW -5481 + DCW -5162 + DCW 507 + DCW 3200 + DCW 4575 + DCW 3711 + DCW -5556 + DCW -4424 + DCW 1178 + DCW -1501 + DCW 6131 + DCW 1401 + DCW -2768 + DCW -600 + DCW -3388 + DCW 226 + DCW 923 + DCW 5959 + DCW -2004 + DCW 1673 + DCW -3024 + DCW -5800 + DCW 4298 + DCW -348 + DCW 4483 + DCW 1107 + DCW -3053 + DCW -3141 + DCW -1476 + DCW 2516 + DCW 3711 + DCW 335 + DCW -2634 + DCW -3179 + DCW -1820 + DCW 2009 + DCW 5103 + DCW 214 + DCW -642 + DCW 17 + DCW -2994 + DCW 939 + DCW -960 + DCW 3351 + DCW 1950 + DCW 1208 + DCW -2818 + DCW -3011 + DCW 2151 + DCW -470 + DCW 2592 + DCW 382 + DCW -1392 + DCW -2608 + DCW -541 + DCW -763 + DCW 3439 + DCW 2151 + DCW -843 + DCW -952 + DCW -1975 + DCW 432 + DCW -252 + DCW 1329 + DCW 1132 + DCW 830 + DCW -1786 + DCW -784 + DCW -1757 + DCW 1652 + DCW 2973 + DCW 533 + DCW -486 + DCW -1115 + DCW -2717 + DCW -4 + DCW 3124 + DCW -1069 + DCW 2239 + DCW -1396 + DCW -927 + DCW -985 + DCW 1162 + DCW 159 + DCW 562 + DCW 2613 + DCW -3401 + DCW 8 + DCW -2080 + DCW 218 + DCW 3552 + DCW 1329 + DCW 252 + DCW -923 + DCW -3770 + DCW -386 + DCW 2420 + DCW 2013 + DCW 1879 + DCW -839 + DCW -1963 + DCW -579 + DCW -1254 + DCW 147 + DCW 4152 + DCW -700 + DCW 445 + DCW -1573 + DCW -2046 + DCW 1346 + DCW 3128 + DCW 1799 + DCW -197 + DCW -2956 + DCW -4781 + DCW 1837 + DCW 1996 + DCW 3938 + DCW 1153 + DCW -3489 + DCW -2692 + DCW 1371 + DCW -495 + DCW 2227 + DCW 3611 + DCW -3170 + DCW 151 + DCW -1401 + DCW -2139 + DCW 2424 + DCW 3133 + DCW 122 + DCW 201 + DCW -3191 + DCW -3682 + DCW 1195 + DCW 3346 + DCW 2675 + DCW 734 + DCW -2990 + DCW -1535 + DCW 960 + DCW -298 + DCW 2856 + DCW -1015 + DCW -411 + DCW -1115 + DCW -151 + DCW 1346 + DCW 361 + DCW 1166 + DCW 369 + DCW 721 + DCW -3812 + DCW -1732 + DCW 688 + DCW 2634 + DCW 4126 + DCW -348 + DCW -3325 + DCW -1120 + DCW -1434 + DCW 1225 + DCW 3325 + DCW -746 + DCW -1786 + DCW -1053 + DCW -633 + DCW 797 + DCW 2109 + DCW 189 + DCW 1610 + DCW -478 + DCW -1304 + DCW -1241 + DCW -315 + DCW 654 + DCW 2558 + DCW 1367 + DCW -2378 + DCW -1589 + DCW -2441 + DCW 3590 + DCW 2856 + DCW -92 + DCW -2084 + DCW -1061 + DCW 415 + DCW 1011 + DCW 432 + DCW -2290 + DCW -143 + DCW -4592 + DCW -4789 + DCW -130 + DCW 1552 + DCW 4164 + DCW 14208 + DCW 12434 + DCW 7733 + DCW 1728 + DCW -10396 + DCW -6307 + DCW -7259 + DCW -8437 + DCW -4420 + DCW -2680 + DCW 1854 + DCW 2688 + DCW 6911 + DCW 7611 + DCW -3304 + DCW -3128 + DCW 0 + DCW -2474 + DCW -25 + DCW 5204 + DCW -3837 + DCW -6596 + DCW 4495 + DCW -1703 + DCW 2000 + DCW 3384 + DCW -1774 + DCW 2269 + DCW 4131 + DCW -2625 + DCW -6022 + DCW 1178 + DCW -3309 + DCW 2281 + DCW 4013 + DCW -2789 + DCW 1006 + DCW 298 + DCW 1954 + DCW 881 + DCW -839 + DCW -2114 + DCW -4852 + DCW -2709 + DCW 1061 + DCW 2034 + DCW 3585 + DCW 5774 + DCW -1971 + DCW 4 + DCW -1078 + DCW -512 + DCW -2600 + DCW -1006 + DCW -2613 + DCW -4252 + DCW 8458 + DCW -7074 + DCW 15009 + DCW -327 + DCW -11809 + DCW 7846 + DCW -9213 + DCW 134 + DCW -1325 + DCW 1770 + DCW -839 + DCW 7498 + DCW 6466 + DCW -2231 + DCW -646 + DCW -8291 + DCW 1874 + DCW 9666 + DCW -11956 + DCW -5049 + DCW 3103 + DCW -6253 + DCW 18829 + DCW -415 + DCW -1623 + DCW 1803 + DCW -4315 + DCW -6974 + DCW -3590 + DCW -587 + DCW -1900 + DCW 12396 + DCW -4365 + DCW 8312 + DCW 2332 + DCW -3929 + DCW -2206 + DCW -3724 + DCW -2168 + DCW -1455 + DCW -717 + DCW -4470 + DCW 13654 + DCW 4072 + DCW -80 + DCW 587 + DCW -7733 + DCW -3158 + DCW 4651 + DCW -3346 + DCW 696 + DCW 2332 + DCW -2197 + DCW 4164 + DCW 570 + DCW -2042 + DCW 1619 + DCW 0 + DCW -3975 + DCW 2554 + DCW -6068 + DCW 2864 + DCW 5347 + DCW 2239 + DCW 3137 + DCW -2348 + DCW -6819 + DCW -2445 + DCW 5967 + DCW -2545 + DCW 5816 + DCW -474 + DCW -1812 + DCW 3917 + DCW 528 + DCW -2868 + DCW 1082 + DCW -918 + DCW -1501 + DCW 1719 + DCW -4458 + DCW 1413 + DCW 1338 + DCW 1954 + DCW -1040 + DCW 2499 + DCW -3581 + DCW 226 + DCW 1895 + DCW -969 + DCW 2420 + DCW -2202 + DCW 231 + DCW -1057 + DCW 1128 + DCW -2344 + DCW 1006 + DCW -1698 + DCW 4583 + DCW 147 + DCW -1979 + DCW 1916 + DCW -4365 + DCW 3166 + DCW 1027 + DCW -2315 + DCW -3460 + DCW 2592 + DCW 4097 + DCW 3325 + DCW -2365 + DCW -3007 + DCW -3154 + DCW -394 + DCW 315 + DCW -2428 + DCW 4122 + DCW 2617 + DCW 2483 + DCW 2147 + DCW -4793 + DCW -4596 + DCW 3246 + DCW -2055 + DCW 3996 + DCW -180 + DCW -4198 + DCW 2093 + DCW 1841 + DCW 2923 + DCW 608 + DCW -1329 + DCW -4630 + DCW -3317 + DCW -1095 + DCW 3497 + DCW 1908 + DCW 3216 + DCW 1308 + DCW 671 + DCW -3694 + DCW -1975 + DCW -2751 + DCW -1199 + DCW 7280 + DCW -1778 + DCW 923 + DCW -906 + DCW 424 + DCW 2839 + DCW 1594 + DCW -3103 + DCW -5322 + DCW -382 + DCW 1145 + DCW 2009 + DCW 5099 + DCW 2017 + DCW -2004 + DCW 168 + DCW -4462 + DCW -2227 + DCW -2780 + DCW 256 + DCW 545 + DCW 3887 + DCW 1673 + DCW -684 + DCW 2407 + DCW -168 + DCW 1199 + DCW -5062 + DCW -2508 + DCW -1229 + DCW 361 + DCW 5213 + DCW 2076 + DCW -1690 + DCW 3774 + DCW -3510 + DCW -784 + DCW 1078 + DCW -6957 + DCW 1841 + DCW 2432 + DCW 2218 + DCW -1199 + DCW 143 + DCW -960 + DCW 3552 + DCW -545 + DCW -3720 + DCW 1132 + DCW -893 + DCW 1334 + DCW 3795 + DCW 1635 + DCW -5355 + DCW 2566 + DCW -3233 + DCW -814 + DCW 2973 + DCW -3426 + DCW -621 + DCW 2160 + DCW -445 + DCW 449 + DCW 1212 + DCW -3510 + DCW 4764 + DCW -2449 + DCW 1216 + DCW 4168 + DCW -4927 + DCW -566 + DCW 4143 + DCW -1581 + DCW -1874 + DCW 4705 + DCW -7129 + DCW -302 + DCW 6844 + DCW -2025 + DCW -1338 + DCW 1724 + DCW 2059 + DCW -1099 + DCW -6219 + DCW 243 + DCW 4089 + DCW -3036 + DCW 2562 + DCW 5200 + DCW -5015 + DCW -3254 + DCW 7112 + DCW -2743 + DCW -1552 + DCW 1623 + DCW -4613 + DCW 562 + DCW 3384 + DCW 5175 + DCW -512 + DCW -4223 + DCW -3711 + DCW 5145 + DCW -4621 + DCW -4177 + DCW 9721 + DCW -5363 + DCW 1296 + DCW 7766 + DCW -2889 + DCW -4428 + DCW 252 + DCW -491 + DCW 2583 + DCW -3124 + DCW -1027 + DCW 5091 + DCW -5200 + DCW 4235 + DCW 6663 + DCW -3598 + DCW -8093 + DCW 2017 + DCW 1187 + DCW -3967 + DCW 2273 + DCW -92 + DCW 7091 + DCW -386 + DCW -4122 + DCW 4630 + DCW -7750 + DCW 1958 + DCW 3707 + DCW -3757 + DCW -667 + DCW -1191 + DCW 6513 + DCW -1807 + DCW 2927 + DCW -4206 + DCW -2956 + DCW -709 + DCW 445 + DCW 7993 + DCW -9758 + DCW 4286 + DCW 1942 + DCW 705 + DCW 2264 + DCW -3200 + DCW -1132 + DCW -2067 + DCW 3174 + DCW -3254 + DCW 1552 + DCW -2025 + DCW 923 + DCW 6500 + DCW -4386 + DCW -2197 + DCW -2189 + DCW 4827 + DCW 2021 + DCW -1245 + DCW 3430 + DCW -9318 + DCW 1233 + DCW 1363 + DCW 3099 + DCW -881 + DCW -7561 + DCW 6395 + DCW 1040 + DCW 4005 + DCW -2692 + DCW -1552 + DCW -3284 + DCW 1874 + DCW 5301 + DCW -6055 + DCW -1237 + DCW -4147 + DCW 6911 + DCW 2722 + DCW -499 + DCW 2235 + DCW -8387 + DCW 1518 + DCW 4915 + DCW -1761 + DCW -3426 + DCW 38 + DCW 2164 + DCW 2877 + DCW 4185 + DCW -8324 + DCW 1862 + DCW -1816 + DCW -512 + DCW 8710 + DCW -7737 + DCW 5506 + DCW -3770 + DCW 5238 + DCW -2160 + DCW -6198 + DCW 5020 + DCW -5233 + DCW 6118 + DCW -11721 + DCW 14245 + DCW -1522 + DCW -4936 + DCW 12715 + DCW -13189 + DCW 7691 + DCW -11637 + DCW 306 + DCW 6731 + DCW -524 + DCW 92 + DCW -3099 + DCW 15080 + DCW -5640 + DCW 2051 + DCW -16275 + DCW 2445 + DCW 9414 + DCW -12400 + DCW 20192 + DCW -13646 + DCW 6332 + DCW -1329 + DCW -4722 + DCW 6441 + DCW -16321 + DCW 16028 + DCW -13323 + DCW 14929 + DCW -80 + DCW -9431 + DCW 9037 + DCW -12270 + DCW 15013 + DCW -11742 + DCW 7263 + DCW -8538 + DCW 4416 + DCW 3015 + DCW -9171 + DCW 15814 + DCW -19336 + DCW 20716 + DCW -5414 + DCW -4441 + DCW -965 + DCW -8249 + DCW 13495 + DCW -12975 + DCW 7628 + DCW -13046 + DCW 6185 + DCW 8056 + DCW 9381 + DCW 19479 + DCW -28570 + DCW -1694 + DCW -12920 + DCW 1682 + DCW 15713 + DCW 2835 + DCW 12371 + DCW -17810 + DCW 3481 + DCW -13851 + DCW 4906 + DCW 9280 + DCW -7272 + DCW 13369 + DCW -18036 + DCW 10345 + DCW -1233 + DCW 474 + DCW 1577 + DCW -4382 + DCW -3070 + DCW -8194 + DCW 19378 + DCW -17214 + DCW 9628 + DCW -3007 + DCW -1996 + DCW 20313 + DCW -22305 + DCW 10291 + DCW -9934 + DCW -5196 + DCW 13855 + DCW 2940 + DCW 4638 + DCW -16153 + DCW 2948 + DCW -3195 + DCW 15466 + DCW 1711 + DCW -8014 + DCW 5213 + DCW -22305 + DCW 11700 + DCW -1044 + DCW 6584 + DCW -1610 + DCW -5074 + DCW 11205 + DCW -4433 + DCW 9075 + DCW -16166 + DCW 6202 + DCW -5477 + DCW 851 + DCW 9398 + DCW -18309 + DCW 9352 + DCW 2118 + DCW 13570 + DCW 2566 + DCW -10899 + DCW -8731 + DCW -13654 + DCW 11985 + DCW 3044 + DCW 4231 + DCW 1053 + DCW -3376 + DCW 12509 + DCW -5913 + DCW 1724 + DCW -5565 + DCW -8630 + DCW 927 + DCW 1707 + DCW 2537 + DCW -1879 + DCW 14677 + DCW 755 + DCW 4269 + DCW -13734 + DCW -8257 + DCW 4290 + DCW -6873 + DCW 11855 + DCW -4563 + DCW 239 + DCW -2319 + DCW 8555 + DCW 7112 + DCW -9733 + DCW -17 + DCW -8685 + DCW 4231 + DCW -3359 + DCW 386 + DCW 9628 + DCW -2776 + DCW 10786 + DCW -2143 + DCW -4361 + DCW -8379 + DCW -6479 + DCW 9347 + DCW -2738 + DCW 7200 + DCW -4391 + DCW 2122 + DCW 6026 + DCW -2919 + DCW -4131 + DCW -6563 + DCW 3824 + DCW -5192 + DCW 6789 + DCW -5384 + DCW 7313 + DCW 1749 + DCW -5892 + DCW 19135 + DCW -16959 + DCW -5510 + DCW 2302 + DCW -5737 + DCW 11385 + DCW -1573 + DCW -2164 + DCW 6429 + DCW -2675 + DCW -985 + DCW 4265 + DCW -7959 + DCW -6018 + DCW 9066 + DCW -8060 + DCW 10597 + DCW 3355 + DCW -19718 + DCW 17835 + DCW -2671 + DCW 700 + DCW 3871 + DCW -9695 + DCW -4407 + DCW -17 + DCW 872 + DCW 5464 + DCW 9574 + DCW -16841 + DCW 9192 + DCW 75 + DCW -9293 + DCW 8702 + DCW -2285 + DCW -5301 + DCW 7460 + DCW -1518 + DCW -9922 + DCW 15097 + DCW -5896 + DCW -2294 + DCW 10790 + DCW -12266 + DCW -474 + DCW 8110 + DCW -8748 + DCW 12337 + DCW -3690 + DCW -14430 + DCW 12643 + DCW -5309 + DCW -952 + DCW 14585 + DCW -8685 + DCW -5921 + DCW 9779 + DCW -15629 + DCW 6991 + DCW 5871 + DCW -7972 + DCW 8026 + DCW 92 + DCW -5221 + DCW 3590 + DCW 734 + DCW -7267 + DCW 10287 + DCW -11838 + DCW -2654 + DCW 13671 + DCW -7804 + DCW 3787 + DCW 14581 + DCW -15621 + DCW -5036 + DCW 8802 + DCW -14556 + DCW 10022 + DCW 4579 + DCW -6739 + DCW 7842 + DCW -4890 + DCW -4282 + DCW 13738 + DCW -9037 + DCW -1648 + DCW 7246 + DCW -15206 + DCW 4118 + DCW 11834 + DCW -7339 + DCW 5590 + DCW 6580 + DCW -19445 + DCW 8328 + DCW -4399 + DCW -1124 + DCW 9020 + DCW -12375 + DCW 6349 + DCW 3636 + DCW -2143 + DCW 2462 + DCW 10123 + DCW -14652 + DCW 1048 + DCW 7267 + DCW -18418 + DCW 11847 + DCW 2994 + DCW -3564 + DCW 13461 + DCW -6991 + DCW -6223 + DCW 2852 + DCW -6726 + DCW 6890 + DCW 4227 + DCW -12090 + DCW 2185 + DCW 8584 + DCW -10190 + DCW 11272 + DCW 2722 + DCW -16896 + DCW 9867 + DCW -923 + DCW 1044 + DCW 3908 + DCW -6596 + DCW -696 + DCW 5242 + DCW -5259 + DCW 2059 + DCW 5456 + DCW -11436 + DCW 10786 + DCW 340 + DCW -12367 + DCW 11209 + DCW -906 + DCW -7100 + DCW 10660 + DCW -4906 + DCW -8177 + DCW 8236 + DCW -2722 + DCW 5540 + DCW 2583 + DCW -15776 + DCW 8106 + DCW 2483 + DCW -3632 + DCW 13419 + DCW -7603 + DCW -8295 + DCW 4772 + DCW -595 + DCW -2852 + DCW 6970 + DCW -3355 + DCW -4697 + DCW 8651 + DCW -9758 + DCW 2227 + DCW 6701 + DCW -7691 + DCW 9670 + DCW -5682 + DCW -11318 + DCW 12954 + DCW -4588 + DCW 2214 + DCW 10794 + DCW -13558 + DCW -6429 + DCW 5623 + DCW 1614 + DCW 1187 + DCW 7435 + DCW -8517 + DCW -1635 + DCW 4399 + DCW -8664 + DCW 10421 + DCW -2856 + DCW -3711 + DCW 11285 + DCW -9851 + DCW -6655 + DCW 9305 + DCW -1296 + DCW 1799 + DCW 7116 + DCW -13629 + DCW -1535 + DCW 7381 + DCW -1786 + DCW 7137 + DCW -5137 + DCW -8005 + DCW 8391 + DCW -2550 + DCW 1602 + DCW 8349 + DCW -11566 + DCW -3338 + DCW 7586 + DCW -3476 + DCW 449 + DCW 4940 + DCW -10282 + DCW 6039 + DCW 6588 + DCW -13260 + DCW 4755 + DCW -3598 + DCW -1698 + DCW 7590 + DCW -4311 + DCW -2646 + DCW 6726 + DCW 11377 + DCW 2868 + DCW -3170 + DCW -10601 + DCW 667 + DCW -3657 + DCW -5347 + DCW 13453 + DCW -6550 + DCW -4235 + DCW 2512 + DCW -876 + DCW 6475 + DCW 1313 + DCW -3539 + DCW -55 + DCW 2759 + DCW -12539 + DCW 7221 + DCW 3858 + DCW -8685 + DCW 18896 + DCW -8517 + DCW -10102 + DCW 11423 + DCW -7125 + DCW -1854 + DCW 9913 + DCW -9800 + DCW -3460 + DCW 9897 + DCW -5309 + DCW 7997 + DCW 1002 + DCW -13977 + DCW 9846 + DCW 1086 + DCW -14451 + DCW 8140 + DCW 1195 + DCW -4877 + DCW 11612 + DCW -6257 + DCW -205 + DCW 12903 + DCW -13080 + DCW -3149 + DCW 5863 + DCW -10387 + DCW 5070 + DCW 4064 + DCW -3019 + DCW 11398 + DCW -2994 + DCW -18292 + DCW 12899 + DCW 4303 + DCW -12534 + DCW 11712 + DCW -8081 + DCW -59 + DCW 12572 + DCW -9536 + DCW 3996 + DCW 4500 + DCW -10203 + DCW 2164 + DCW 428 + DCW -9100 + DCW 9310 + DCW 5179 + DCW -6894 + DCW 8190 + DCW -5267 + DCW -8806 + DCW 11461 + DCW -5598 + DCW -608 + DCW 6567 + DCW -9242 + DCW 3552 + DCW 6923 + DCW -3237 + DCW 3388 + DCW -5238 + DCW -7611 + DCW 6970 + DCW -3065 + DCW 2118 + DCW 6970 + DCW -3711 + DCW -1128 + DCW 1950 + DCW -4470 + DCW -1443 + DCW 4533 + DCW -2160 + DCW 579 + DCW -96 + DCW -4412 + DCW 1933 + DCW 7821 + DCW 1505 + DCW -2692 + DCW -6894 + DCW -1929 + DCW 2176 + DCW -3049 + DCW 7066 + DCW 88 + DCW -6806 + DCW 6332 + DCW -2256 + DCW -2642 + DCW 8127 + DCW -6206 + DCW -1749 + DCW 3422 + DCW -3267 + DCW -977 + DCW 2575 + DCW -650 + DCW 1002 + DCW 3154 + DCW -8781 + DCW 5619 + DCW 2642 + DCW -7095 + DCW 6437 + DCW -3804 + DCW -5284 + DCW 6320 + DCW -394 + DCW 583 + DCW 1304 + DCW -2382 + DCW 734 + DCW -658 + DCW -1518 + DCW 319 + DCW 1614 + DCW -4617 + DCW 6060 + DCW -273 + DCW -5439 + DCW 6995 + DCW -4466 + DCW 746 + DCW 4273 + DCW -9024 + DCW -130 + DCW 9737 + DCW -5204 + DCW 126 + DCW 3816 + DCW -6999 + DCW 5015 + DCW 4843 + DCW -7825 + DCW 4340 + DCW -2701 + DCW -8890 + DCW 10945 + DCW -331 + DCW 952 + DCW 3242 + DCW -6173 + DCW 612 + DCW 1652 + DCW -4651 + DCW 1317 + DCW 3359 + DCW -3862 + DCW 2692 + DCW -503 + DCW 503 + DCW 5024 + DCW -1749 + DCW -3254 + DCW -524 + DCW -7125 + DCW 1287 + DCW 9301 + DCW -1032 + DCW 205 + DCW -201 + DCW -6714 + DCW 927 + DCW 4932 + DCW -4953 + DCW 4214 + DCW -1036 + DCW -5070 + DCW 5963 + DCW -1032 + DCW -864 + DCW 3137 + DCW -3325 + DCW -977 + DCW -914 + DCW -3866 + DCW 5816 + DCW 1816 + DCW -1489 + DCW -319 + DCW 273 + DCW -2889 + DCW 977 + DCW 1749 + DCW -96 + DCW 1321 + DCW -7142 + DCW 3036 + DCW 1371 + DCW -1560 + DCW 4785 + DCW 159 + DCW -1744 + DCW 1166 + DCW -5883 + DCW -4483 + DCW 9624 + DCW 1602 + DCW -3711 + DCW 2801 + DCW -2369 + DCW -2051 + DCW 4529 + DCW -1879 + DCW -4 + DCW -1522 + DCW -3632 + DCW 2621 + DCW 3497 + DCW -688 + DCW -285 + DCW -608 + DCW -3439 + DCW 2839 + DCW -2919 + DCW 1640 + DCW 3443 + DCW -3820 + DCW 1233 + DCW -1820 + DCW -2499 + DCW 6131 + DCW -419 + DCW -3443 + DCW 5108 + DCW -4315 + DCW -3804 + DCW 7871 + DCW -839 + DCW -5049 + DCW 4927 + DCW -7225 + DCW -512 + DCW 8769 + DCW -4835 + DCW 2143 + DCW 738 + DCW -3854 + DCW 2000 + DCW 1220 + DCW -4391 + DCW 1799 + DCW 2013 + DCW -1967 + DCW 1384 + DCW -985 + DCW -168 + DCW 3749 + DCW -650 + DCW -2826 + DCW 1199 + DCW -3606 + DCW 2348 + DCW 1359 + DCW -1858 + DCW 2705 + DCW -1740 + DCW 671 + DCW 3120 + DCW -4684 + DCW -3204 + DCW 4286 + DCW -2860 + DCW 1589 + DCW 5192 + DCW -3728 + DCW 1090 + DCW 1531 + DCW -6810 + DCW 2407 + DCW 3028 + DCW -3925 + DCW 3003 + DCW 1313 + DCW -2948 + DCW -210 + DCW 147 + DCW 3133 + DCW 3736 + DCW -4437 + DCW -2847 + DCW -2671 + DCW -625 + DCW 1279 + DCW 3187 + DCW 1283 + DCW -1132 + DCW 277 + DCW -1287 + DCW 4730 + DCW -2613 + DCW 600 + DCW 1199 + DCW -3082 + DCW -3766 + DCW -4399 + DCW 4458 + DCW 6756 + DCW 4529 + DCW -1082 + DCW 59 + DCW -6626 + DCW -8194 + DCW 3929 + DCW 4508 + DCW -3200 + DCW 554 + DCW 1367 + DCW 1170 + DCW 3892 + DCW 990 + DCW -1774 + DCW -5942 + DCW -4038 + DCW -1799 + DCW 5468 + DCW 4600 + DCW 3229 + DCW 1355 + DCW -985 + DCW -948 + DCW -7041 + DCW -2088 + DCW 860 + DCW -3770 + DCW 2223 + DCW 5548 + DCW -818 + DCW 6651 + DCW -495 + DCW -6647 + DCW 524 + DCW -5368 + DCW -2399 + DCW 5745 + DCW 122 + DCW -218 + DCW 6303 + DCW 679 + DCW -29 + DCW -1183 + DCW -6156 + DCW -3619 + DCW 1027 + DCW -600 + DCW 2801 + DCW 2877 + DCW 969 + DCW 6403 + DCW -985 + DCW -4223 + DCW -3896 + DCW -5246 + DCW 491 + DCW 3904 + DCW 453 + DCW 1099 + DCW 2852 + DCW 746 + DCW 1526 + DCW -201 + DCW -5770 + DCW -2143 + DCW -1426 + DCW -1245 + DCW 7599 + DCW -2600 + DCW -1690 + DCW 6517 + DCW -2696 + DCW 2088 + DCW 2554 + DCW -8953 + DCW 2692 + DCW 465 + DCW -9578 + DCW 6680 + DCW 5804 + DCW -1212 + DCW 2118 + DCW 2533 + DCW -7024 + DCW -1782 + DCW 3342 + DCW -3728 + DCW -168 + DCW -2466 + DCW 889 + DCW 1204 + DCW 2843 + DCW 7284 + DCW -1443 + DCW -5313 + DCW -608 + DCW -3875 + DCW -2927 + DCW 5896 + DCW 1174 + DCW -797 + DCW 2587 + DCW -1577 + DCW -1858 + DCW 1744 + DCW 1715 + DCW 1250 + DCW -3355 + DCW -5510 + DCW -818 + DCW 2365 + DCW 1413 + DCW 7393 + DCW 1279 + DCW -9981 + DCW 1002 + DCW 595 + DCW -4630 + DCW 2705 + DCW 3258 + DCW -1132 + DCW 4785 + DCW 4667 + DCW -2034 + DCW -2478 + DCW -2390 + DCW -1287 + DCW -5678 + DCW -6383 + DCW 4881 + DCW 5036 + DCW 717 + DCW 8207 + DCW -285 + DCW -6110 + DCW -1778 + DCW -2290 + DCW -738 + DCW -369 + DCW 977 + DCW 939 + DCW -520 + DCW 1468 + DCW 7355 + DCW -990 + DCW -4013 + DCW -197 + DCW -6957 + DCW -2638 + DCW 4168 + DCW 2638 + DCW 164 + DCW 3174 + DCW 2650 + DCW -2730 + DCW -155 + DCW -356 + DCW -981 + DCW -3300 + DCW -3128 + DCW 2940 + DCW -2650 + DCW 3137 + DCW 8282 + DCW 1216 + DCW -2994 + DCW -4462 + DCW -3296 + DCW -1103 + DCW 554 + DCW 55 + DCW 3107 + DCW -2717 + DCW 507 + DCW 2822 + DCW 2235 + DCW 3451 + DCW -3195 + DCW -2772 + DCW -2914 + DCW 411 + DCW -113 + DCW 1879 + DCW -927 + DCW -2504 + DCW 5301 + DCW 1958 + DCW -3145 + DCW -1929 + DCW -3422 + DCW -1526 + DCW 3984 + DCW -361 + DCW 742 + DCW 1325 + DCW -42 + DCW -8 + DCW 1480 + DCW -1757 + DCW -3263 + DCW 2218 + DCW -621 + DCW 994 + DCW 1933 + DCW -3418 + DCW -235 + DCW 3267 + DCW -3468 + DCW 147 + DCW -138 + DCW 256 + DCW -889 + DCW -3409 + DCW 6869 + DCW -4101 + DCW -3254 + DCW 7984 + DCW -2852 + DCW 185 + DCW 3242 + DCW -3208 + DCW -1703 + DCW -1933 + DCW 3489 + DCW -71 + DCW -1099 + DCW 3548 + DCW 1065 + DCW -4722 + DCW -1535 + DCW 4843 + DCW -1929 + DCW -1396 + DCW -1157 + DCW -994 + DCW -2126 + DCW 6257 + DCW 3271 + DCW -3162 + DCW 499 + DCW -1434 + DCW -1715 + DCW -38 + DCW 2315 + DCW -3258 + DCW 1002 + DCW -784 + DCW 2696 + DCW -453 + DCW -2545 + DCW 3745 + DCW -721 + DCW -1325 + DCW -2839 + DCW -2617 + DCW -2046 + DCW 5842 + DCW 5183 + DCW -717 + DCW -3036 + DCW 554 + DCW -1292 + DCW 1732 + DCW 1371 + DCW -2973 + DCW -2017 + DCW -2025 + DCW 7041 + DCW -415 + DCW -126 + DCW -59 + DCW 411 + DCW -1430 + DCW -3254 + DCW 1128 + DCW -2181 + DCW 1602 + DCW 3212 + DCW 1581 + DCW -3162 + DCW 2332 + DCW -512 + DCW 356 + DCW -1346 + DCW -5774 + DCW 386 + DCW 2407 + DCW 6131 + DCW 1812 + DCW 633 + DCW -3070 + DCW -2776 + DCW -3778 + DCW -1334 + DCW -717 + DCW 411 + DCW 4428 + DCW -361 + DCW 3887 + DCW -751 + DCW -2302 + DCW -1568 + DCW -1904 + DCW -1958 + DCW -860 + DCW 7414 + DCW 5292 + DCW -486 + DCW -675 + DCW -3657 + DCW -5657 + DCW -1770 + DCW -130 + DCW 3091 + DCW -1338 + DCW 2193 + DCW 6651 + DCW -1128 + DCW -2348 + DCW -3762 + DCW -461 + DCW -1044 + DCW -2365 + DCW 2361 + DCW 2881 + DCW 872 + DCW 2357 + DCW 876 + DCW -1652 + DCW -604 + DCW -7410 + DCW -2302 + DCW 4806 + DCW 2906 + DCW 486 + DCW 365 + DCW 4105 + DCW -352 + DCW -2034 + DCW -4013 + DCW -2281 + DCW -1577 + DCW -432 + DCW 4453 + DCW 1816 + DCW 2776 + DCW -1497 + DCW -1019 + DCW 193 + DCW -4399 + DCW 264 + DCW 579 + DCW -264 + DCW 2797 + DCW -742 + DCW 1560 + DCW 2910 + DCW -1426 + DCW -377 + DCW -3602 + DCW -2277 + DCW 138 + DCW -25 + DCW 1874 + DCW 1984 + DCW -881 + DCW 520 + DCW 1522 + DCW -1539 + DCW -797 + DCW -4269 + DCW 2663 + DCW 1598 + DCW -4139 + DCW -113 + DCW 2868 + DCW 3372 + DCW -1631 + DCW 1346 + DCW -3644 + DCW -3493 + DCW 2013 + DCW 3003 + DCW -2931 + DCW -5804 + DCW 10756 + DCW 7867 + DCW -9918 + DCW -11847 + DCW 11561 + DCW 11998 + DCW -9326 + DCW -6689 + DCW -2130 + DCW 4533 + DCW 5103 + DCW -3485 + DCW -1967 + DCW 1619 + DCW 1598 + DCW -3661 + DCW -3837 + DCW 7628 + DCW 2747 + DCW -3304 + DCW -1170 + DCW -4005 + DCW 1682 + DCW 5418 + DCW 633 + DCW -5531 + DCW -675 + DCW 419 + DCW 541 + DCW 2583 + DCW -3091 + DCW 3497 + DCW 2130 + DCW -1468 + DCW -4588 + DCW -5171 + DCW 8068 + DCW 2537 + DCW -2004 + DCW 1258 + DCW -3560 + DCW -4156 + DCW 2529 + DCW 6248 + DCW -201 + DCW 575 + DCW -4609 + DCW -306 + DCW -11905 + DCW -18430 + DCW 32767 + DCW 20728 + DCW -32768 + DCW -20229 + DCW 32767 + DCW 32767 + DCW -32768 + DCW -32768 + DCW 24939 + DCW 32767 + DCW 2868 + DCW -32768 + DCW 2332 + DCW 27904 + DCW -3300 + DCW 1992 + DCW -28763 + DCW -814 + DCW 32767 + DCW -7783 + DCW -13818 + DCW -9687 + DCW 5577 + DCW 21085 + DCW 16497 + DCW -28214 + DCW -32768 + DCW 32767 + DCW 13461 + DCW -28419 + DCW 4680 + DCW -11377 + DCW 15801 + DCW 9599 + DCW -7498 + DCW -19806 + DCW 8630 + DCW 24482 + DCW -32768 + DCW 10480 + DCW 12832 + DCW -17944 + DCW 13901 + DCW -2432 + DCW -1770 + DCW -8442 + DCW 13033 + DCW -2365 + DCW -20338 + DCW 32767 + DCW -13822 + DCW -16325 + DCW 11914 + DCW -10350 + DCW 12300 + DCW -340 + DCW 0 + DCW -13163 + DCW 7502 + DCW 10727 + DCW -19743 + DCW 24033 + DCW -11251 + DCW -16602 + DCW 18133 + DCW -2696 + DCW -1229 + DCW -7305 + DCW 8169 + DCW 2826 + DCW -780 + DCW 1308 + DCW -18565 + DCW 10362 + DCW 7502 + DCW -3112 + DCW 2495 + DCW -8001 + DCW -923 + DCW 2332 + DCW 12736 + DCW -4064 + DCW -11415 + DCW 9477 + DCW -8307 + DCW 67 + DCW 7418 + DCW -2575 + DCW 1111 + DCW -654 + DCW 2285 + DCW -11792 + DCW 9645 + DCW 6890 + DCW -16833 + DCW 16204 + DCW -7028 + DCW -10844 + DCW 11427 + DCW -2298 + DCW 3694 + DCW -851 + DCW 3917 + DCW -11528 + DCW -143 + DCW 16699 + DCW -17671 + DCW 9817 + DCW 1677 + DCW -12291 + DCW 9867 + DCW -3258 + DCW 3409 + DCW -2961 + DCW 3753 + DCW -3606 + DCW -5686 + DCW 7519 + DCW -9435 + DCW 12069 + DCW 3103 + DCW -10249 + DCW 1241 + DCW 2818 + DCW 507 + DCW -5254 + DCW 7301 + DCW -9549 + DCW 226 + DCW 10303 + DCW -7255 + DCW 5464 + DCW -520 + DCW -2415 + DCW -210 + DCW 994 + DCW -5716 + DCW -2747 + DCW 16208 + DCW -8362 + DCW -4093 + DCW 12476 + DCW -9712 + DCW -5053 + DCW 5066 + DCW -2508 + DCW 3183 + DCW 1799 + DCW -3946 + DCW -3187 + DCW 8156 + DCW 4890 + DCW -12107 + DCW 7573 + DCW -8454 + DCW -2873 + DCW 16183 + DCW -7712 + DCW 3279 + DCW -7267 + DCW 3200 + DCW 3493 + DCW -4751 + DCW 10433 + DCW -17671 + DCW 3409 + DCW 9003 + DCW -4625 + DCW 5665 + DCW -5368 + DCW 2269 + DCW -3393 + DCW 2558 + DCW 75 + DCW -6974 + DCW 8567 + DCW -5137 + DCW 579 + DCW 5795 + DCW -4047 + DCW -491 + DCW 2998 + DCW -3221 + DCW -3590 + DCW 6693 + DCW -5007 + DCW -3963 + DCW 8140 + DCW 2080 + DCW -5561 + DCW 2214 + DCW 730 + DCW -6898 + DCW 8722 + DCW 164 + DCW -5598 + DCW 5963 + DCW -3082 + DCW -4856 + DCW 3409 + DCW 2881 + DCW -1925 + DCW -323 + DCW -1497 + DCW -1858 + DCW 235 + DCW 4525 + DCW 264 + DCW -2831 + DCW 1929 + DCW -6831 + DCW 5867 + DCW 3304 + DCW -2822 + DCW 3535 + DCW -7204 + DCW 3162 + DCW -1552 + DCW 524 + DCW 1124 + DCW -4206 + DCW 8454 + DCW -4336 + DCW -1355 + DCW -159 + DCW -2831 + DCW 3980 + DCW 415 + DCW 1673 + DCW -5330 + DCW 2218 + DCW 1891 + DCW -3309 + DCW 6198 + DCW -4114 + DCW -2273 + DCW 3145 + DCW -6529 + DCW 4424 + DCW 12178 + DCW -13168 + DCW -5108 + DCW 13901 + DCW -6974 + DCW -612 + DCW -193 + DCW -7318 + DCW 9721 + DCW 1610 + DCW -8068 + DCW 445 + DCW 8387 + DCW -2910 + DCW -7272 + DCW 6622 + DCW -1598 + DCW -424 + DCW 3057 + DCW -7494 + DCW 1208 + DCW 8026 + DCW -1568 + DCW -3414 + DCW 2885 + DCW -4235 + DCW -3443 + DCW 6261 + DCW 981 + DCW -4336 + DCW 3732 + DCW 4453 + DCW -7104 + DCW 164 + DCW 3430 + DCW -3770 + DCW 4114 + DCW 3992 + DCW -8462 + DCW -1493 + DCW 3824 + DCW -5691 + DCW 6311 + DCW 1237 + DCW -10249 + DCW 3145 + DCW 4827 + DCW 3099 + DCW -2223 + DCW 3296 + DCW 1199 + DCW -6445 + DCW 4168 + DCW -5875 + DCW 663 + DCW 7351 + DCW -6156 + DCW 205 + DCW 3837 + DCW -4307 + DCW -7414 + DCW 7171 + DCW 3363 + DCW -6848 + DCW 5200 + DCW -2114 + DCW -2504 + DCW 6055 + DCW -2130 + DCW -2046 + DCW 2940 + DCW 587 + DCW -3606 + DCW 1484 + DCW 528 + DCW -516 + DCW 2478 + DCW -973 + DCW -1241 + DCW -2789 + DCW -918 + DCW -247 + DCW 5095 + DCW 1690 + DCW -7624 + DCW 956 + DCW 4013 + DCW -2273 + DCW 176 + DCW 3632 + DCW -2537 + DCW 1942 + DCW -1233 + DCW -3858 + DCW 4546 + DCW -361 + DCW -1455 + DCW -256 + DCW 1174 + DCW -2759 + DCW -2168 + DCW 6089 + DCW 994 + DCW -1795 + DCW -839 + DCW -3544 + DCW -1078 + DCW 6169 + DCW 1036 + DCW -4286 + DCW 2537 + DCW -256 + DCW 470 + DCW 3179 + DCW -2894 + DCW -3866 + DCW 688 + DCW 876 + DCW -923 + DCW 3221 + DCW -335 + DCW -1141 + DCW 1845 + DCW -243 + DCW -2407 + DCW -3263 + DCW 763 + DCW 470 + DCW 3439 + DCW 2453 + DCW -4617 + DCW 2705 + DCW 2206 + DCW -2797 + DCW 403 + DCW -3904 + DCW 168 + DCW 1086 + DCW 2160 + DCW 2118 + DCW -6093 + DCW 3107 + DCW -1002 + DCW -155 + DCW 5171 + DCW -5997 + DCW -2914 + DCW 2499 + DCW 4575 + DCW 13 + DCW 2285 + DCW -5041 + DCW -5196 + DCW 10111 + DCW -3061 + DCW -1648 + DCW -1300 + DCW 3967 + DCW 3690 + DCW -9406 + DCW 1300 + DCW 281 + DCW 7439 + DCW -4105 + DCW -4399 + DCW 1887 + DCW -3359 + DCW 6483 + DCW -6194 + DCW 8068 + DCW -2088 + DCW -4311 + DCW 4068 + DCW -10182 + DCW 9482 + DCW -830 + DCW -1770 + DCW 2487 + DCW 512 + DCW -3216 + DCW 474 + DCW 7590 + DCW -7913 + DCW 5137 + DCW -4139 + DCW -4860 + DCW 5183 + DCW 2013 + DCW -981 + DCW -1522 + DCW 5171 + DCW -7573 + DCW 4898 + DCW -13 + DCW -2466 + DCW -969 + DCW -1271 + DCW 6911 + DCW -5883 + DCW 5477 + DCW -4395 + DCW 1963 + DCW -356 + DCW -1791 + DCW -134 + DCW -7687 + DCW 14149 + DCW -8819 + DCW 8026 + DCW -348 + DCW -8546 + DCW 7561 + DCW -6986 + DCW 4474 + DCW -7045 + DCW 10513 + DCW -4831 + DCW -2923 + DCW 10643 + DCW -12929 + DCW 10001 + DCW -5703 + DCW -751 + DCW 4298 + DCW -5259 + DCW 2017 + DCW -6110 + DCW 11582 + DCW -3661 + DCW 84 + DCW 3284 + DCW -7884 + DCW 3862 + DCW -6936 + DCW 9171 + DCW -2520 + DCW 855 + DCW 3749 + DCW -7511 + DCW 5372 + DCW -5628 + DCW 4399 + DCW -2579 + DCW 3263 + DCW -1891 + DCW -3996 + DCW 4982 + DCW -7020 + DCW 8072 + DCW -2273 + DCW -2193 + DCW 1011 + DCW 461 + DCW 788 + DCW -2986 + DCW 5686 + DCW -2562 + DCW 164 + DCW -3812 + DCW 692 + DCW 6152 + DCW -4558 + DCW 4043 + DCW -2789 + DCW -2604 + DCW -1887 + DCW 2013 + DCW 3317 + DCW -4235 + DCW 8400 + DCW -6315 + DCW -3225 + DCW 205 + DCW 4277 + DCW 5514 + DCW -6336 + DCW 5774 + DCW -10211 + DCW 700 + DCW 4969 + DCW -3141 + DCW 4567 + DCW 4 + DCW 2998 + DCW -8148 + DCW 1355 + DCW 197 + DCW -948 + DCW 5900 + DCW -4353 + DCW 2894 + DCW -4445 + DCW -474 + DCW 315 + DCW 6039 + DCW -1858 + DCW -10618 + DCW 15231 + DCW -10131 + DCW -2294 + DCW 9913 + DCW -3502 + DCW 428 + DCW -3564 + DCW 4999 + DCW -4349 + DCW -277 + DCW 3388 + DCW -914 + DCW 155 + DCW 323 + DCW 315 + DCW -5984 + DCW 5984 + DCW 113 + DCW -1598 + DCW 4064 + DCW -7729 + DCW 705 + DCW 3745 + DCW -2629 + DCW 2340 + DCW 3237 + DCW -5896 + DCW -1631 + DCW 6680 + DCW -7251 + DCW 3036 + DCW 9507 + DCW -797 + DCW -10790 + DCW -6181 + DCW 14258 + DCW -11985 + DCW 3984 + DCW 15206 + DCW -15042 + DCW 629 + DCW -394 + DCW -3007 + DCW 10706 + DCW -1032 + DCW -5770 + DCW 7771 + DCW -12237 + DCW 243 + DCW 9762 + DCW -7322 + DCW 12723 + DCW -10756 + DCW -4248 + DCW 8026 + DCW -7297 + DCW 9310 + DCW -3757 + DCW -2030 + DCW 4776 + DCW -6643 + DCW -3024 + DCW 11901 + DCW -939 + DCW -9557 + DCW 7905 + DCW -7901 + DCW 6110 + DCW 1732 + DCW -7561 + DCW 8567 + DCW -9435 + DCW 3594 + DCW 5108 + DCW -3355 + DCW 2185 + DCW -3367 + DCW -3128 + DCW 5519 + DCW 105 + DCW -3544 + DCW 6827 + DCW -9813 + DCW 2948 + DCW 7674 + DCW -10136 + DCW 7871 + DCW 340 + DCW -9062 + DCW 2680 + DCW 3892 + DCW -960 + DCW 2873 + DCW 143 + DCW -5171 + DCW 2353 + DCW -4860 + DCW 3866 + DCW 3460 + DCW -2906 + DCW 1812 + DCW -8345 + DCW 6492 + DCW 2680 + DCW -1631 + DCW 3753 + DCW -7330 + DCW -1078 + DCW 5590 + DCW -2181 + DCW -4441 + DCW 7523 + DCW -4919 + DCW 96 + DCW 6177 + DCW -3787 + DCW 2223 + DCW -5951 + DCW 2877 + DCW 2038 + DCW -3787 + DCW 3984 + DCW -2504 + DCW 352 + DCW 2025 + DCW -4944 + DCW 2969 + DCW 3824 + DCW -7942 + DCW 3007 + DCW 147 + DCW -4357 + DCW 9754 + DCW -46 + DCW -5456 + DCW 2231 + DCW -4089 + DCW -440 + DCW 8844 + DCW -4378 + DCW -1640 + DCW -1262 + DCW -3850 + DCW 10320 + DCW -5435 + DCW -1388 + DCW 5393 + DCW -11218 + DCW 6777 + DCW 7532 + DCW -9385 + DCW 2881 + DCW 2743 + DCW -6529 + DCW 3309 + DCW 1904 + DCW -688 + DCW 533 + DCW -4047 + DCW 2290 + DCW -2399 + DCW 3418 + DCW 985 + DCW -4479 + DCW 8806 + DCW -11662 + DCW -1329 + DCW 10907 + DCW -5733 + DCW 155 + DCW 1724 + DCW -1069 + DCW -4298 + DCW 8177 + DCW -767 + DCW -7112 + DCW 8026 + DCW -4349 + DCW -562 + DCW 2843 + DCW -1124 + DCW -654 + DCW -2231 + DCW 4365 + DCW -746 + DCW -1296 + DCW 1833 + DCW -5305 + DCW 4416 + DCW 4126 + DCW -7611 + DCW 4583 + DCW 415 + DCW -5649 + DCW 4001 + DCW -138 + DCW -1791 + DCW 3028 + DCW -1614 + DCW -1728 + DCW 3200 + DCW -218 + DCW 881 + DCW -671 + DCW -1027 + DCW -973 + DCW -2449 + DCW 4994 + DCW -356 + DCW -4256 + DCW 4932 + DCW -2759 + DCW -1623 + DCW 4437 + DCW -5103 + DCW 2625 + DCW 3116 + DCW -4739 + DCW 1535 + DCW 3946 + DCW -4932 + DCW -2164 + DCW 5292 + DCW -1157 + DCW 2239 + DCW -2239 + DCW -2462 + DCW 2193 + DCW -3032 + DCW 3485 + DCW -3036 + DCW 2671 + DCW 2088 + DCW -9645 + DCW 9477 + DCW -92 + DCW -4760 + DCW 6039 + DCW -4856 + DCW -2365 + DCW 4424 + DCW 595 + DCW -3917 + DCW 6320 + DCW -2000 + DCW -7758 + DCW 7649 + DCW -1120 + DCW -2713 + DCW 3028 + DCW 256 + DCW -1749 + DCW -2059 + DCW 2885 + DCW -1074 + DCW -1103 + DCW 3778 + DCW -2248 + DCW 742 + DCW 449 + DCW -3351 + DCW 2839 + DCW 1107 + DCW -2768 + DCW -818 + DCW 3061 + DCW -3351 + DCW -1023 + DCW 4563 + DCW -2302 + DCW 457 + DCW -218 + DCW -1313 + DCW 939 + DCW 1178 + DCW 700 + DCW -2831 + DCW 2743 + DCW -432 + DCW -4655 + DCW 6722 + DCW -902 + DCW -3632 + DCW 4139 + DCW -2344 + DCW -1543 + DCW 1409 + DCW 331 + DCW -835 + DCW 2290 + DCW -2441 + DCW -2789 + DCW 5510 + DCW -1187 + DCW -927 + DCW 562 + DCW 952 + DCW 495 + DCW -3313 + DCW 4915 + DCW -2378 + DCW -2504 + DCW 3728 + DCW -4835 + DCW 5967 + DCW -436 + DCW -5653 + DCW 3682 + DCW -1455 + DCW 256 + DCW -377 + DCW 2680 + DCW -730 + DCW -3590 + DCW 2759 + DCW 554 + DCW 17 + DCW 294 + DCW -545 + DCW -1744 + DCW 1279 + DCW 340 + DCW -1300 + DCW 4441 + DCW -3095 + DCW -4902 + DCW 4604 + DCW -398 + DCW -671 + DCW 1627 + DCW -2046 + DCW -29 + DCW 608 + DCW -587 + DCW 2843 + DCW 1329 + DCW -2353 + DCW 457 + DCW 449 + DCW 1975 + DCW -4072 + DCW -5510 + DCW 3602 + DCW -637 + DCW 2663 + DCW 3661 + DCW -4101 + DCW 3866 + DCW 80 + DCW -5636 + DCW 3007 + DCW -1610 + DCW -3380 + DCW 914 + DCW 1602 + DCW 3158 + DCW 1036 + DCW 130 + DCW -2747 + DCW -1782 + DCW 2931 + DCW -2302 + DCW -3225 + DCW 5179 + DCW 1262 + DCW -5095 + DCW 5888 + DCW -637 + DCW -3183 + DCW 4621 + DCW -8387 + DCW 5795 + DCW 2084 + DCW -9964 + DCW 7125 + DCW 759 + DCW -1019 + DCW 839 + DCW 419 + DCW -352 + DCW -2646 + DCW -851 + DCW -75 + DCW 9880 + DCW -3363 + DCW -12191 + DCW 6395 + DCW 8391 + DCW -2688 + DCW -5238 + DCW 2759 + DCW -1484 + DCW -1023 + DCW 231 + DCW -5363 + DCW 11046 + DCW 1778 + DCW -10635 + DCW 6047 + DCW 847 + DCW -3615 + DCW 2042 + DCW -2684 + DCW 969 + DCW 3883 + DCW -7364 + DCW 1090 + DCW 10924 + DCW -8244 + DCW -1015 + DCW 6550 + DCW -7812 + DCW 3749 + DCW -4 + DCW -5594 + DCW 8777 + DCW -1111 + DCW -6475 + DCW 5674 + DCW 1011 + DCW -6223 + DCW 3082 + DCW 1904 + DCW -3653 + DCW 2214 + DCW -1812 + DCW -2323 + DCW 6437 + DCW -503 + DCW -4663 + DCW 6940 + DCW -1614 + DCW -8697 + DCW 7523 + DCW 1241 + DCW -3946 + DCW 4416 + DCW -4256 + DCW 143 + DCW 4449 + DCW -4906 + DCW 3556 + DCW 1967 + DCW -7666 + DCW 1187 + DCW 1359 + DCW 516 + DCW 3544 + DCW -3900 + DCW 143 + DCW 4034 + DCW -4709 + DCW -1405 + DCW 6370 + DCW -1048 + DCW -5233 + DCW 2302 + DCW 600 + DCW -759 + DCW -470 + DCW -2818 + DCW 4047 + DCW 2185 + DCW -5225 + DCW 1656 + DCW 4177 + DCW -5556 + DCW 952 + DCW 5825 + DCW -2814 + DCW 2722 + DCW -1535 + DCW -5493 + DCW 5200 + DCW -2407 + DCW -4571 + DCW 6181 + DCW -868 + DCW -4521 + DCW 3736 + DCW 1283 + DCW 449 + DCW 1837 + DCW -5011 + DCW -1770 + DCW 3879 + DCW -2952 + DCW 587 + DCW 6697 + DCW -3330 + DCW -2541 + DCW 3137 + DCW -1958 + DCW -629 + DCW 872 + DCW -1795 + DCW 1967 + DCW 2462 + DCW -3154 + DCW 1002 + DCW 1887 + DCW -4579 + DCW -558 + DCW 1300 + DCW 126 + DCW 893 + DCW -1124 + DCW 1573 + DCW 3837 + DCW -1434 + DCW -1929 + DCW 2097 + DCW -4525 + DCW -3154 + DCW 3632 + DCW -365 + DCW 3674 + DCW 176 + DCW -4936 + DCW 4173 + DCW 621 + DCW -5108 + DCW 738 + DCW 1292 + DCW -2432 + DCW 3007 + DCW 3212 + DCW -1095 + DCW 1078 + DCW -3351 + DCW -3095 + DCW 2810 + DCW -247 + DCW -3019 + DCW 2470 + DCW 2319 + DCW -1086 + DCW 2671 + DCW -545 + DCW -2860 + DCW -533 + DCW -2931 + DCW 2478 + DCW 4344 + DCW -3703 + DCW 700 + DCW 2445 + DCW -2738 + DCW 1975 + DCW 256 + DCW -2394 + DCW 1334 + DCW -3422 + DCW -763 + DCW 7389 + DCW -973 + DCW -4424 + DCW 2302 + DCW -470 + DCW -725 + DCW 1048 + DCW -1744 + DCW 1522 + DCW 1325 + DCW -3317 + DCW 784 + DCW 3636 + DCW -3296 + DCW -797 + DCW 3988 + DCW -2269 + DCW -1229 + DCW 533 + DCW -247 + DCW 1988 + DCW 239 + DCW -1229 + DCW 1132 + DCW -566 + DCW -3040 + DCW 1652 + DCW 1153 + DCW -562 + DCW 801 + DCW -1430 + DCW -17 + DCW 1069 + DCW -1581 + DCW 1518 + DCW 2097 + DCW -4877 + DCW 365 + DCW 3674 + DCW -3871 + DCW 2424 + DCW 2701 + DCW -4198 + DCW 1342 + DCW -365 + DCW -839 + DCW 4047 + DCW -315 + DCW -2914 + DCW 839 + DCW 302 + DCW -1505 + DCW 1296 + DCW -956 + DCW 1095 + DCW 956 + DCW -3573 + DCW 3715 + DCW 1963 + DCW -4915 + DCW 55 + DCW 2550 + DCW -361 + DCW 1023 + DCW 277 + DCW -2764 + DCW 1048 + DCW 67 + DCW -2277 + DCW 2575 + DCW 432 + DCW -2214 + DCW 935 + DCW 1078 + DCW 591 + DCW 931 + DCW -2051 + DCW -2545 + DCW 1740 + DCW -134 + DCW -63 + DCW 1849 + DCW -889 + DCW -50 + DCW 1220 + DCW 394 + DCW -935 + DCW -2407 + DCW -352 + DCW 2864 + DCW -868 + DCW -1409 + DCW 2264 + DCW -663 + DCW -1405 + DCW 1082 + DCW 843 + DCW 13 + DCW -1002 + DCW -2260 + DCW 876 + DCW 3443 + DCW -1988 + DCW 784 + DCW 3405 + DCW -6202 + DCW 17 + DCW 4508 + DCW -897 + DCW -1539 + DCW -5326 + DCW 4332 + DCW 8202 + DCW -6546 + DCW -6546 + DCW 8232 + DCW 2722 + DCW -9133 + DCW 218 + DCW 6705 + DCW 3430 + DCW -7125 + DCW -4760 + DCW 8974 + DCW 1728 + DCW -8756 + DCW 298 + DCW 8421 + DCW -2696 + DCW -6311 + DCW 1262 + DCW 8198 + DCW 1514 + DCW -14044 + DCW 1686 + DCW 11629 + DCW -5586 + DCW -5133 + DCW 5934 + DCW 2281 + DCW -4558 + DCW -721 + DCW 814 + DCW 4240 + DCW -2596 + DCW -8869 + DCW 9314 + DCW 3233 + DCW -5301 + DCW 3720 + DCW -2998 + DCW -2524 + DCW 5288 + DCW -1996 + DCW -6399 + DCW 7754 + DCW 3896 + DCW -11062 + DCW -147 + DCW 9129 + DCW 411 + DCW -8366 + DCW -1732 + DCW 9519 + DCW 1329 + DCW -10706 + DCW 2206 + DCW 10576 + DCW -5967 + DCW -7901 + DCW 5527 + DCW 8257 + DCW -5875 + DCW -11293 + DCW 7301 + DCW 13830 + DCW -5691 + DCW -13721 + DCW 9804 + DCW 6299 + DCW -13285 + DCW 889 + DCW 9712 + DCW 3057 + DCW -10052 + DCW -8538 + DCW 14304 + DCW 6072 + DCW -15168 + DCW 1648 + DCW 10446 + DCW -5259 + DCW -7716 + DCW 1275 + DCW 12547 + DCW -713 + DCW -14879 + DCW 3892 + DCW 10626 + DCW -3187 + DCW -7028 + DCW 2948 + DCW 6932 + DCW -6886 + DCW -8052 + DCW 9364 + DCW 7871 + DCW -8240 + DCW -6445 + DCW 6684 + DCW 5301 + DCW -5967 + DCW -4290 + DCW 7330 + DCW 755 + DCW -8832 + DCW 1459 + DCW 7984 + DCW 2134 + DCW -7871 + DCW -2931 + DCW 9473 + DCW -2038 + DCW -7137 + DCW 5204 + DCW 2466 + DCW -3489 + DCW -2789 + DCW 864 + DCW 8655 + DCW -1447 + DCW -11595 + DCW 6273 + DCW 5997 + DCW -8588 + DCW 382 + DCW 5573 + DCW -755 + DCW -5590 + DCW -1069 + DCW 7787 + DCW 1438 + DCW -6789 + DCW -990 + DCW 5447 + DCW 1199 + DCW -6085 + DCW -361 + DCW 6584 + DCW -2139 + DCW -4705 + DCW 3883 + DCW 2550 + DCW -3107 + DCW -3405 + DCW 1489 + DCW 6626 + DCW -4001 + DCW -5535 + DCW 6718 + DCW 1556 + DCW -3221 + DCW -1942 + DCW 2273 + DCW 4760 + DCW -6034 + DCW -4760 + DCW 8379 + DCW 1380 + DCW -6731 + DCW 2583 + DCW 2160 + DCW -1468 + DCW -1300 + DCW -952 + DCW 4932 + DCW -751 + DCW -7347 + DCW 2210 + DCW 7498 + DCW -1048 + DCW -6487 + DCW 176 + DCW 5858 + DCW -1820 + DCW -4076 + DCW 3460 + DCW 2185 + DCW -4051 + DCW -4269 + DCW 6148 + DCW 5959 + DCW -5774 + DCW -4340 + DCW 4282 + DCW 914 + DCW -3304 + DCW 612 + DCW 1254 + DCW 2420 + DCW -5561 + DCW -1103 + DCW 7884 + DCW -1833 + DCW -3065 + DCW -835 + DCW 1111 + DCW 1061 + DCW -1585 + DCW -193 + DCW 4495 + DCW -2545 + DCW -4948 + DCW 5489 + DCW 1929 + DCW -2424 + DCW -1988 + DCW 239 + DCW 3082 + DCW -814 + DCW -2608 + DCW 4240 + DCW -1082 + DCW -4403 + DCW 2596 + DCW 1895 + DCW 948 + DCW -3523 + DCW -1719 + DCW 4198 + DCW 17 + DCW -1313 + DCW 1493 + DCW 361 + DCW -1417 + DCW -4017 + DCW 2273 + DCW 5271 + DCW -3233 + DCW -3921 + DCW 1912 + DCW 2487 + DCW -931 + DCW -2164 + DCW 1614 + DCW 2885 + DCW -5477 + DCW -734 + DCW 5917 + DCW -973 + DCW -3837 + DCW 554 + DCW 1631 + DCW 2000 + DCW -2235 + DCW -1908 + DCW 4772 + DCW -2231 + DCW -2847 + DCW 931 + DCW 3166 + DCW 541 + DCW -3984 + DCW 935 + DCW 3187 + DCW -2768 + DCW -1556 + DCW 2625 + DCW 1199 + DCW -1929 + DCW -3036 + DCW 3472 + DCW 818 + DCW -3913 + DCW -189 + DCW 12081 + DCW 969 + DCW -13855 + DCW -3988 + DCW 7976 + DCW 9410 + DCW -8924 + DCW -4705 + DCW 4051 + DCW 3476 + DCW 1069 + DCW -9494 + DCW 2701 + DCW 9557 + DCW -8588 + DCW -2235 + DCW 7947 + DCW -5359 + DCW 608 + DCW 2034 + DCW -2290 + DCW 3405 + DCW -4940 + DCW 751 + DCW 6932 + DCW -4688 + DCW -3980 + DCW 486 + DCW 4458 + DCW 1011 + DCW -3527 + DCW 843 + DCW 130 + DCW -2919 + DCW 1782 + DCW 4009 + DCW -956 + DCW 130 + DCW -4701 + DCW 1539 + DCW 4856 + DCW -3107 + DCW 2139 + DCW -2046 + DCW -2864 + DCW 1497 + DCW -893 + DCW 6118 + DCW -1598 + DCW -6932 + DCW 5808 + DCW 260 + DCW -1237 + DCW 2600 + DCW -2923 + DCW -285 + DCW 1568 + DCW -4294 + DCW 5208 + DCW 2139 + DCW -6554 + DCW 1736 + DCW -80 + DCW 1023 + DCW 579 + DCW -231 + DCW 231 + DCW -998 + DCW -902 + DCW 2692 + DCW 340 + DCW -2319 + DCW -549 + DCW -1707 + DCW 3980 + DCW 377 + DCW -2260 + DCW 1698 + DCW -25 + DCW -3011 + DCW 1107 + DCW 3632 + DCW 524 + DCW -3372 + DCW -3082 + DCW 3741 + DCW 327 + DCW -159 + DCW 1518 + DCW -2646 + DCW 1510 + DCW -2109 + DCW 168 + DCW 6504 + DCW -4571 + DCW -4143 + DCW 2239 + DCW 2080 + DCW -147 + DCW 155 + DCW -453 + DCW -222 + DCW -566 + DCW -3485 + DCW 4869 + DCW 2873 + DCW -4583 + DCW -1245 + DCW 595 + DCW 2411 + DCW 273 + DCW -1770 + DCW 1946 + DCW -1765 + DCW -2105 + DCW 1325 + DCW 1547 + DCW 1531 + DCW -2772 + DCW -2210 + DCW 3485 + DCW 675 + DCW -3162 + DCW 2248 + DCW 1635 + DCW -2629 + DCW -684 + DCW 2176 + DCW 1870 + DCW -1744 + DCW -2575 + DCW 2512 + DCW -575 + DCW -1602 + DCW 1166 + DCW -663 + DCW 2940 + DCW -2873 + DCW -2097 + DCW 5623 + DCW -2374 + DCW -3564 + DCW 3154 + DCW 981 + DCW 226 + DCW -830 + DCW -1011 + DCW 2919 + DCW -1115 + DCW -2449 + DCW 2910 + DCW 872 + DCW -1967 + DCW -1464 + DCW 1040 + DCW 3892 + DCW -3644 + DCW -1698 + DCW 2504 + DCW -1061 + DCW 281 + DCW -122 + DCW 1422 + DCW 201 + DCW -3074 + DCW 407 + DCW 4244 + DCW -1241 + DCW -2944 + DCW 1715 + DCW 155 + DCW -84 + DCW -1141 + DCW 432 + DCW 3330 + DCW -3971 + DCW -1715 + DCW 3401 + DCW 1539 + DCW -386 + DCW -3824 + DCW 1753 + DCW 1422 + DCW -2969 + DCW 1640 + DCW 2420 + DCW -2747 + DCW -1883 + DCW 1921 + DCW 1895 + DCW 889 + DCW -2764 + DCW -1199 + DCW 3485 + DCW -1489 + DCW -1686 + DCW 3506 + DCW -910 + DCW -1740 + DCW -1518 + DCW 2390 + DCW 2495 + DCW -3560 + DCW -1128 + DCW 1086 + DCW 2202 + DCW -583 + DCW -826 + DCW 1325 + DCW -172 + DCW -3363 + DCW 1153 + DCW 4915 + DCW -1606 + DCW -3544 + DCW 180 + DCW 2508 + DCW -377 + DCW -637 + DCW 1296 + DCW 369 + DCW -3120 + DCW -637 + DCW 3963 + DCW 985 + DCW -1912 + DCW -4131 + DCW 2323 + DCW 3292 + DCW -1988 + DCW 1409 + DCW -814 + DCW -851 + DCW -725 + DCW 688 + DCW 2453 + DCW -981 + DCW -1069 + DCW -1728 + DCW 2516 + DCW 776 + DCW -2667 + DCW 734 + DCW 2172 + DCW -1086 + DCW -4315 + DCW 3355 + DCW 2810 + DCW -2738 + DCW 289 + DCW -1547 + DCW 1245 + DCW 2109 + DCW -2256 + DCW 1417 + DCW -218 + DCW -2252 + DCW 835 + DCW 2445 + DCW -1006 + DCW -2592 + DCW 1334 + DCW 1191 + DCW -164 + DCW -1560 + DCW 155 + DCW 1434 + DCW -1132 + DCW -13 + DCW -38 + DCW 2030 + DCW 436 + DCW -5087 + DCW 3711 + DCW 2101 + DCW -2717 + DCW 889 + DCW -709 + DCW 1472 + DCW -1053 + DCW -1438 + DCW 1690 + DCW 1916 + DCW -1937 + DCW -2415 + DCW 3086 + DCW -533 + DCW -1195 + DCW 1245 + DCW 382 + DCW -377 + DCW -1388 + DCW 1204 + DCW 247 + DCW -595 + DCW 470 + DCW -403 + DCW 1313 + DCW -1300 + DCW -1283 + DCW 2290 + DCW -893 + DCW -1556 + DCW 2063 + DCW 2520 + DCW -2189 + DCW -3309 + DCW 1845 + DCW 977 + DCW -486 + DCW 1396 + DCW 88 + DCW -1254 + DCW -872 + DCW -306 + DCW 1728 + DCW 1942 + DCW -2076 + DCW -1556 + DCW 566 + DCW 1166 + DCW 684 + DCW -1095 + DCW -50 + DCW -348 + DCW -1455 + DCW 1698 + DCW 1635 + DCW -1149 + DCW -491 + DCW -730 + DCW 2067 + DCW 973 + DCW -2654 + DCW 835 + DCW 1740 + DCW -2982 + DCW -1992 + DCW 3556 + DCW 2822 + DCW -1942 + DCW -4441 + DCW 931 + DCW 2621 + DCW 742 + DCW 516 + DCW -3028 + DCW -549 + DCW 1174 + DCW 470 + DCW 2558 + DCW -1371 + DCW -3699 + DCW 923 + DCW 2353 + DCW 281 + DCW -415 + DCW -1984 + DCW 2000 + DCW 3380 + DCW -7305 + DCW -126 + DCW 8513 + DCW -3380 + DCW -5762 + DCW 2491 + DCW 2952 + DCW -667 + DCW -130 + DCW -1837 + DCW -315 + DCW 1862 + DCW -1367 + DCW 1417 + DCW 2453 + DCW -3711 + DCW -1812 + DCW 1992 + DCW 956 + DCW 2344 + DCW -1858 + DCW -3942 + DCW 2533 + DCW 1564 + DCW -990 + DCW 2399 + DCW -2327 + DCW -3221 + DCW 2751 + DCW 528 + DCW 1526 + DCW -281 + DCW -4344 + DCW 2260 + DCW 2449 + DCW -2327 + DCW 1199 + DCW 1749 + DCW -3200 + DCW -759 + DCW 1522 + DCW 415 + DCW 3598 + DCW -2789 + DCW -4428 + DCW 3778 + DCW 923 + DCW -2675 + DCW 1992 + DCW 1145 + DCW -4554 + DCW 1677 + DCW 2084 + DCW -1136 + DCW 1225 + DCW -2738 + DCW 721 + DCW 3502 + DCW -2042 + DCW -264 + DCW 1665 + DCW -2273 + DCW -361 + DCW 1396 + DCW 482 + DCW 1355 + DCW -3137 + DCW -1401 + DCW 3678 + DCW -512 + DCW -650 + DCW 1032 + DCW -2571 + DCW -214 + DCW 1921 + DCW -474 + DCW 2512 + DCW -1040 + DCW -5057 + DCW 2256 + DCW 4957 + DCW -2466 + DCW -1837 + DCW 2524 + DCW -1690 + DCW 1107 + DCW -977 + DCW 549 + DCW 4164 + DCW -5057 + DCW -2474 + DCW 2185 + DCW 1765 + DCW -185 + DCW -906 + DCW -222 + DCW -1178 + DCW 1539 + DCW 1464 + DCW 1568 + DCW -1359 + DCW -6114 + DCW 2457 + DCW 9343 + DCW -876 + DCW -6601 + DCW -1157 + DCW 1355 + DCW 1568 + DCW -344 + DCW 327 + DCW 721 + DCW -4282 + DCW -864 + DCW 4529 + DCW 1187 + DCW -3137 + DCW -1124 + DCW 2529 + DCW -977 + DCW -281 + DCW 373 + DCW 449 + DCW 2634 + DCW -5644 + DCW 155 + DCW 6479 + DCW -3787 + DCW -923 + DCW 2235 + DCW -1141 + DCW -985 + DCW 4 + DCW 1480 + DCW 902 + DCW -2709 + DCW -1870 + DCW 3883 + DCW -92 + DCW -1220 + DCW 424 + DCW -675 + DCW 1883 + DCW -1493 + DCW -138 + DCW 1375 + DCW -1736 + DCW 1334 + DCW 1279 + DCW -2399 + DCW -306 + DCW 398 + DCW 654 + DCW 1900 + DCW -3116 + DCW -1422 + DCW 2877 + DCW 658 + DCW -793 + DCW -2202 + DCW 725 + DCW 3095 + DCW -1602 + DCW -461 + DCW 369 + DCW -516 + DCW 1518 + DCW -944 + DCW -67 + DCW 1170 + DCW -1208 + DCW -512 + DCW 1321 + DCW -822 + DCW -189 + DCW 449 + DCW -1166 + DCW 2105 + DCW -1296 + DCW -1547 + DCW 3409 + DCW -1661 + DCW -1346 + DCW 1430 + DCW -205 + DCW 1677 + DCW -994 + DCW -1510 + DCW 1929 + DCW 277 + DCW -969 + DCW -8 + DCW 1178 + DCW -465 + DCW -1417 + DCW 17 + DCW 935 + DCW 784 + DCW -1640 + DCW -822 + DCW 2847 + DCW 2151 + DCW -4965 + DCW -2327 + DCW 6185 + DCW 847 + DCW -3468 + DCW -1208 + DCW 1535 + DCW 1375 + DCW -1036 + DCW 25 + DCW 1237 + DCW -654 + DCW -1384 + DCW -80 + DCW 767 + DCW 327 + DCW -1170 + DCW 1912 + DCW -92 + DCW -3078 + DCW -218 + DCW 5284 + DCW 491 + DCW -8366 + DCW 4294 + DCW 6269 + DCW -6986 + DCW -3044 + DCW 9297 + DCW -767 + DCW -8760 + DCW 4181 + DCW 4189 + DCW -470 + DCW -5334 + DCW -1820 + DCW 9947 + DCW -3875 + DCW -9762 + DCW 9788 + DCW 4567 + DCW -9586 + DCW -516 + DCW 5573 + DCW 1476 + DCW -277 + DCW -5976 + DCW 3313 + DCW 3942 + DCW -8278 + DCW 6294 + DCW 1044 + DCW -5032 + DCW 2202 + DCW -621 + DCW 0 + DCW 1296 + DCW 583 + DCW -3674 + DCW 2688 + DCW -1099 + DCW -1552 + DCW 5959 + DCW -2097 + DCW -2793 + DCW 285 + DCW -122 + DCW 1996 + DCW 2294 + DCW -3409 + DCW -1803 + DCW 3363 + DCW -1115 + DCW 801 + DCW 755 + DCW -4512 + DCW 5028 + DCW 876 + DCW -7603 + DCW 4986 + DCW 2768 + DCW -3992 + DCW 2009 + DCW -814 + DCW -2269 + DCW 4915 + DCW -2764 + DCW -2696 + DCW 5724 + DCW -3795 + DCW -214 + DCW 1438 + DCW -1816 + DCW 2193 + DCW -1359 + DCW -101 + DCW 1392 + DCW -185 + DCW -2990 + DCW 3443 + DCW 1392 + DCW -4114 + DCW 2143 + DCW -1078 + DCW 1552 + DCW -612 + DCW -1065 + DCW 2642 + DCW -1292 + DCW -415 + DCW -461 + DCW 1589 + DCW -2348 + DCW 742 + DCW 3703 + DCW -4709 + DCW 591 + DCW 2462 + DCW -1317 + DCW -885 + DCW -315 + DCW 1719 + DCW 587 + DCW -1954 + DCW -1019 + DCW 4235 + DCW -1484 + DCW -5192 + DCW 5561 + DCW 784 + DCW -4013 + DCW 864 + DCW -801 + DCW 2814 + DCW 205 + DCW -2818 + DCW 1308 + DCW 1761 + DCW -575 + DCW -3036 + DCW 6114 + DCW -159 + DCW -8882 + DCW 2516 + DCW 5116 + DCW 1325 + DCW -2986 + DCW -2692 + DCW -243 + DCW 2730 + DCW -516 + DCW 331 + DCW 3661 + DCW -5959 + DCW -1099 + DCW 3112 + DCW 1635 + DCW 1497 + DCW -4885 + DCW -1061 + DCW 4282 + DCW -1669 + DCW 461 + DCW 4802 + DCW -4420 + DCW -4420 + DCW 1854 + DCW 3250 + DCW 3242 + DCW -2587 + DCW -4034 + DCW 1531 + DCW -247 + DCW 1854 + DCW 965 + DCW 1635 + DCW -1728 + DCW -9322 + DCW 9498 + DCW 2797 + DCW -3913 + DCW 1770 + DCW -3913 + DCW 2353 + DCW -1866 + DCW 2709 + DCW 1296 + DCW -1019 + DCW -956 + DCW -5766 + DCW 7636 + DCW 231 + DCW -2696 + DCW 277 + DCW -1329 + DCW 2982 + DCW -3573 + DCW 5447 + DCW -1895 + DCW -5368 + DCW 5229 + DCW -3854 + DCW 5095 + DCW 2776 + DCW -7896 + DCW -637 + DCW 2768 + DCW 2105 + DCW -558 + DCW 2030 + DCW -3757 + DCW -4781 + DCW 6261 + DCW 428 + DCW 2348 + DCW -2139 + DCW -6265 + DCW 4386 + DCW 323 + DCW 3057 + DCW -2998 + DCW 814 + DCW 2382 + DCW -7578 + DCW 6055 + DCW -445 + DCW -713 + DCW 398 + DCW -4068 + DCW 4089 + DCW -1807 + DCW 1258 + DCW 633 + DCW -323 + DCW 990 + DCW -4252 + DCW 4286 + DCW 1388 + DCW -2491 + DCW -629 + DCW -1916 + DCW 3879 + DCW -784 + DCW 2428 + DCW -2332 + DCW -5443 + DCW 6848 + DCW -3862 + DCW 3611 + DCW 1375 + DCW -6869 + DCW 3493 + DCW -323 + DCW 2139 + DCW -1296 + DCW 1111 + DCW -1824 + DCW -2231 + DCW 4734 + DCW -2025 + DCW 3187 + DCW -3560 + DCW -2411 + DCW 3866 + DCW -554 + DCW 1002 + DCW -1677 + DCW 2772 + DCW -3070 + DCW -1866 + DCW 3833 + DCW -1497 + DCW 2894 + DCW -3632 + DCW -1313 + DCW 3850 + DCW -1401 + DCW 218 + DCW -927 + DCW 2021 + DCW -1568 + DCW -1111 + DCW 3971 + DCW -1128 + DCW -1539 + DCW -1816 + DCW 2369 + DCW 742 + DCW -801 + DCW 1874 + DCW -4521 + DCW 839 + DCW 1447 + DCW -407 + DCW 3938 + DCW -3678 + DCW -1984 + DCW 688 + DCW 164 + DCW 2348 + DCW -273 + DCW 1199 + DCW -3690 + DCW -629 + DCW 3309 + DCW 138 + DCW 1048 + DCW -3246 + DCW 340 + DCW 164 + DCW 575 + DCW 1191 + DCW -1774 + DCW 1338 + DCW -2759 + DCW 2126 + DCW 2118 + DCW -3980 + DCW 2277 + DCW -600 + DCW -176 + DCW 2587 + DCW -1728 + DCW 533 + DCW -1258 + DCW -910 + DCW 1074 + DCW 830 + DCW 1703 + DCW -1996 + DCW -1984 + DCW -751 + DCW 2592 + DCW 302 + DCW 88 + DCW 608 + DCW -4621 + DCW 2843 + DCW 595 + DCW -235 + DCW 2759 + DCW -3879 + DCW -92 + DCW 1099 + DCW 1375 + DCW 403 + DCW -1979 + DCW 1065 + DCW -1006 + DCW 486 + DCW 1036 + DCW -1199 + DCW -38 + DCW 109 + DCW -491 + DCW -348 + DCW 1908 + DCW -1338 + DCW -952 + DCW 1434 + DCW -2415 + DCW 1879 + DCW 1464 + DCW -1703 + DCW 1157 + DCW -1694 + DCW 826 + DCW 717 + DCW 143 + DCW 1233 + DCW -3871 + DCW 2231 + DCW 1027 + DCW -1694 + DCW 2202 + DCW -285 + DCW -2990 + DCW -793 + DCW 4630 + DCW -1510 + DCW 264 + DCW -654 + DCW -3774 + DCW 4948 + DCW -893 + DCW -906 + DCW 2139 + DCW -1556 + DCW -1543 + DCW 516 + DCW 3887 + DCW -2629 + DCW -1841 + DCW 2143 + DCW -1279 + DCW 2017 + DCW -424 + DCW -1375 + DCW 843 + DCW -474 + DCW -570 + DCW 650 + DCW 2755 + DCW -3493 + DCW -713 + DCW 2294 + DCW -981 + DCW 1841 + DCW -985 + DCW -310 + DCW -1074 + DCW -59 + DCW 2202 + DCW -1371 + DCW 1459 + DCW 50 + DCW -3384 + DCW 1090 + DCW 2491 + DCW -1531 + DCW 478 + DCW 725 + DCW -2948 + DCW 1698 + DCW 1715 + DCW -2445 + DCW 1619 + DCW -583 + DCW -2025 + DCW 3237 + DCW -109 + DCW -1627 + DCW -478 + DCW 566 + DCW 1099 + DCW -382 + DCW 495 + DCW -1656 + DCW -226 + DCW 1220 + DCW -507 + DCW 1589 + DCW 38 + DCW -2139 + DCW -453 + DCW 2097 + DCW 457 + DCW -1510 + DCW 1103 + DCW -705 + DCW -474 + DCW 604 + DCW 520 + DCW 902 + DCW -1631 + DCW 55 + DCW -1241 + DCW 1187 + DCW 1359 + DCW -2449 + DCW 2378 + DCW -621 + DCW -2474 + DCW 801 + DCW 1895 + DCW -252 + DCW -470 + DCW -155 + DCW -2634 + DCW 1971 + DCW 1128 + DCW 1782 + DCW 63 + DCW -4760 + DCW 1053 + DCW 1967 + DCW -126 + DCW -419 + DCW -415 + DCW -75 + DCW -931 + DCW 1178 + DCW 2424 + DCW -2558 + DCW -1350 + DCW 1564 + DCW -197 + DCW 805 + DCW -872 + DCW -478 + DCW 1430 + DCW -818 + DCW -1204 + DCW 1984 + DCW 486 + DCW -1686 + DCW -134 + DCW 499 + DCW 1568 + DCW -1455 + DCW -1208 + DCW 1250 + DCW 327 + DCW -80 + DCW 143 + DCW -621 + DCW -1967 + DCW 2709 + DCW 2097 + DCW -671 + DCW -327 + DCW -4080 + DCW -889 + DCW 5217 + DCW 1250 + DCW 499 + DCW -3191 + DCW -6341 + DCW 6215 + DCW 1627 + DCW -700 + DCW 3854 + DCW -5296 + DCW -3669 + DCW 2441 + DCW 3128 + DCW 2210 + DCW 688 + DCW -6114 + DCW -1111 + DCW 2986 + DCW -595 + DCW 5024 + DCW -1820 + DCW -3133 + DCW -1489 + DCW -822 + DCW 6408 + DCW 88 + DCW -2831 + DCW -2298 + END + \ No newline at end of file diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/principal.c b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/principal.c new file mode 100644 index 0000000..d09be75 --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/principal.c @@ -0,0 +1,28 @@ + + +#include "DriverJeuLaser.h" + + + +int main(void) +{ + +// =========================================================================== +// ============= INIT PERIPH (faites qu'une seule fois) ===================== +// =========================================================================== + +// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers +CLOCK_Configure(); + + + + + +//============================================================================ + + +while (1) + { + } +} + diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/startup-rvds.s b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/Src/startup-rvds.s @@ -0,0 +1,335 @@ +;******************** (C) COPYRIGHT 2011 STMicroelectronics ******************** +;* File Name : startup_stm32f10x_md.s +;* Author : MCD Application Team +;* Version : V3.5.0 +;* Date : 11-March-2011 +;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM +;* toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Configure the clock system +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. +; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, +; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE +; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING +; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1_2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD USART1_IRQHandler ; USART1 + DCD USART2_IRQHandler ; USART2 + DCD USART3_IRQHandler ; USART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + + LDR R0, =SystemInit + BLX R0 + +; +; Enable UsageFault, MemFault and Busfault interrupts +; +_SHCSR EQU 0xE000ED24 ; SHCSR is located at address 0xE000ED24 + LDR.W R0, =_SHCSR + LDR R1, [R0] ; Read CPACR + ORR R1, R1, #(0x7 << 16) ; Set bits 16,17,18 to enable usagefault, busfault, memfault interrupts + STR R1, [R0] ; Write back the modified value to the CPACR + DSB ; Wait for store to complete + +; +; Set priority grouping (PRIGROUP) in AIRCR to 3 (16 levels for group priority and 0 for subpriority) +; +_AIRCR EQU 0xE000ED0C +_AIRCR_VAL EQU 0x05FA0300 + LDR.W R0, =_AIRCR + LDR.W R1, =_AIRCR_VAL + STR R1,[R0] + +; +; Finaly, jump to main function (void main (void)) +; + LDR R0, =__main + BX R0 + ENDP + +SystemInit PROC + EXPORT SystemInit [WEAK] + BX LR + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] + EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_IRQHandler [WEAK] + EXPORT TIM1_UP_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTCAlarm_IRQHandler [WEAK] + EXPORT USBWakeUp_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +USB_HP_CAN1_TX_IRQHandler +USB_LP_CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_IRQHandler +TIM1_UP_IRQHandler +TIM1_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_IRQHandler +EXTI15_10_IRQHandler +RTCAlarm_IRQHandler +USBWakeUp_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE***** diff --git a/PjtKEIL_StepSon/PjtKEIL_StepSon/StepSon.uvprojx b/PjtKEIL_StepSon/PjtKEIL_StepSon/StepSon.uvprojx new file mode 100644 index 0000000..d0b5c10 --- /dev/null +++ b/PjtKEIL_StepSon/PjtKEIL_StepSon/StepSon.uvprojx @@ -0,0 +1,1337 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + + + CibleSondeKEIL + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + + + CibleSondeST + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + + + <Project Info> + + + + + + 0 + 1 + + + + +
diff --git a/PjtKEIL_StepSon/Src/GestionSon.s b/PjtKEIL_StepSon/Src/GestionSon.s new file mode 100644 index 0000000..8a75b7a --- /dev/null +++ b/PjtKEIL_StepSon/Src/GestionSon.s @@ -0,0 +1,30 @@ + PRESERVE8 + THUMB + + +; ====================== zone de réservation de données, ====================================== +;Section RAM (read only) : + area mesdata,data,readonly + + +;Section RAM (read write): + area maram,data,readwrite + + + +; =============================================================================================== + + + + +;Section ROM code (read only) : + area moncode,code,readonly +; écrire le code ici + + + + + + + + END \ No newline at end of file diff --git a/PjtKEIL_StepSon/Src/bruitverre.asm b/PjtKEIL_StepSon/Src/bruitverre.asm new file mode 100644 index 0000000..bf5ba29 --- /dev/null +++ b/PjtKEIL_StepSon/Src/bruitverre.asm @@ -0,0 +1,5527 @@ +;********************************************* + + AREA SecSon, DATA, READONLY + ;********************************************* + + + export LongueurSon + export PeriodeSonMicroSec + export Son + +LongueurSon DCD 5512 +PeriodeSonMicroSec DCD 91 +Son + DCW -6911 + DCW 20666 + DCW -1338 + DCW 10995 + DCW -23488 + DCW -18984 + DCW 29795 + DCW -21890 + DCW 12388 + DCW 16304 + DCW -32768 + DCW 13298 + DCW 22737 + DCW -20334 + DCW 4588 + DCW 5271 + DCW -27547 + DCW 19370 + DCW -4248 + DCW -7368 + DCW 24620 + DCW -21404 + DCW 14442 + DCW 4961 + DCW -7125 + DCW 21290 + DCW -22096 + DCW -6605 + DCW 6777 + DCW -14300 + DCW 8261 + DCW -2223 + DCW -6714 + DCW 15935 + DCW -13063 + DCW -3648 + DCW 19575 + DCW -15365 + DCW 7934 + DCW 23001 + DCW -10157 + DCW -5535 + DCW -7091 + DCW 3950 + DCW 7741 + DCW -8492 + DCW 1686 + DCW -6785 + DCW -6663 + DCW 5548 + DCW -15768 + DCW -2114 + DCW 18837 + DCW -13201 + DCW 3493 + DCW 21693 + DCW -2961 + DCW 8207 + DCW -12924 + DCW -10400 + DCW 16283 + DCW -22049 + DCW 2080 + DCW 21521 + DCW -12295 + DCW -3355 + DCW 3766 + DCW -1736 + DCW 243 + DCW -3078 + DCW 5452 + DCW 14019 + DCW -8475 + DCW 386 + DCW -12182 + DCW -13620 + DCW 20749 + DCW -1921 + DCW 4332 + DCW 11159 + DCW -17239 + DCW -9343 + DCW 9758 + DCW -11566 + DCW -294 + DCW 8244 + DCW -13503 + DCW 18862 + DCW 4927 + DCW -22662 + DCW -1355 + DCW -6030 + DCW -1854 + DCW 14325 + DCW -2709 + DCW -1665 + DCW 7607 + DCW -5997 + DCW 14191 + DCW -369 + DCW -14400 + DCW 19106 + DCW -8857 + DCW -2881 + DCW 5414 + DCW -12354 + DCW 16309 + DCW -1308 + DCW -9557 + DCW 9532 + DCW 3107 + DCW -1447 + DCW -7263 + DCW -15617 + DCW 8681 + DCW -4843 + DCW -13457 + DCW 31439 + DCW -13612 + DCW -4588 + DCW 3405 + DCW -23987 + DCW 32767 + DCW -289 + DCW -10215 + DCW 30843 + DCW -16631 + DCW -8412 + DCW -3242 + DCW -3221 + DCW 13516 + DCW -16531 + DCW -10689 + DCW 13306 + DCW -15306 + DCW -10861 + DCW 11322 + DCW -12702 + DCW 16518 + DCW 7024 + DCW -12572 + DCW 26193 + DCW -25496 + DCW 101 + DCW 18116 + DCW -20557 + DCW 20468 + DCW -14099 + DCW -12211 + DCW 18611 + DCW 1619 + DCW 8068 + DCW -10891 + DCW -7313 + DCW 10123 + DCW -570 + DCW 4290 + DCW 7582 + DCW -12287 + DCW -923 + DCW 5078 + DCW -6840 + DCW 17533 + DCW -7871 + DCW -13977 + DCW 2084 + DCW -9092 + DCW 11742 + DCW -4667 + DCW -365 + DCW 5552 + DCW -8580 + DCW 1166 + DCW 6215 + DCW 4592 + DCW -5636 + DCW -3627 + DCW -17856 + DCW 8047 + DCW 12723 + DCW -24196 + DCW 6399 + DCW 16589 + DCW -11700 + DCW -6102 + DCW 23366 + DCW -11679 + DCW -12132 + DCW 22477 + DCW -18841 + DCW 2550 + DCW 10048 + DCW -6823 + DCW 7502 + DCW -1166 + DCW 9234 + DCW -13864 + DCW -9263 + DCW 8848 + DCW -5632 + DCW 956 + DCW 2835 + DCW 3535 + DCW -1241 + DCW 4932 + DCW -3715 + DCW -2235 + DCW 6211 + DCW -9477 + DCW -4445 + DCW -12195 + DCW 9863 + DCW 15617 + DCW -14069 + DCW 5405 + DCW 9632 + DCW 323 + DCW -13247 + DCW -654 + DCW 14946 + DCW -12803 + DCW 1497 + DCW 2566 + DCW 1598 + DCW 9611 + DCW -14388 + DCW -1367 + DCW 14761 + DCW -1287 + DCW -26503 + DCW 18472 + DCW 18917 + DCW -25589 + DCW 16162 + DCW -19114 + DCW -4919 + DCW 20200 + DCW -18250 + DCW 11327 + DCW -1912 + DCW 3439 + DCW -21051 + DCW 6680 + DCW 32767 + DCW -20917 + DCW 13998 + DCW -12555 + DCW 566 + DCW 1241 + DCW -9293 + DCW 21731 + DCW -17290 + DCW 9033 + DCW -8106 + DCW -1065 + DCW 8458 + DCW -20229 + DCW 13398 + DCW -3208 + DCW -3518 + DCW 5456 + DCW -1208 + DCW -11159 + DCW 11289 + DCW 6303 + DCW -20586 + DCW 31736 + DCW -17302 + DCW -9909 + DCW 27702 + DCW -15419 + DCW 2311 + DCW -4344 + DCW -1103 + DCW -12170 + DCW 11348 + DCW 3317 + DCW -17634 + DCW 19781 + DCW -3745 + DCW -4064 + DCW -1774 + DCW 130 + DCW -6504 + DCW 3313 + DCW 2717 + DCW -7599 + DCW 14459 + DCW -3984 + DCW -1807 + DCW 1635 + DCW -2533 + DCW 2495 + DCW -6928 + DCW 2093 + DCW 1887 + DCW -2873 + DCW 12186 + DCW -13369 + DCW 2944 + DCW 13570 + DCW -16267 + DCW -872 + DCW -1522 + DCW -3451 + DCW -4495 + DCW 16216 + DCW 2449 + DCW 994 + DCW 10337 + DCW -17017 + DCW 356 + DCW -315 + DCW -2185 + DCW -4927 + DCW 2776 + DCW -1577 + DCW -4990 + DCW 12102 + DCW -9045 + DCW 4047 + DCW 4152 + DCW -23710 + DCW 4516 + DCW 9410 + DCW -12329 + DCW 3502 + DCW 11037 + DCW -8840 + DCW -2252 + DCW 15260 + DCW -19709 + DCW 3321 + DCW 16199 + DCW -20921 + DCW 3741 + DCW 9159 + DCW -2504 + DCW -3753 + DCW 10626 + DCW -2969 + DCW -5661 + DCW 4890 + DCW -11423 + DCW 11180 + DCW 4487 + DCW -11947 + DCW 4894 + DCW 3476 + DCW -6517 + DCW 10257 + DCW 5724 + DCW -14216 + DCW 10270 + DCW -2264 + DCW -14933 + DCW 18489 + DCW 990 + DCW -13281 + DCW 4906 + DCW 5200 + DCW -2814 + DCW -1669 + DCW 5632 + DCW -2306 + DCW -3753 + DCW -8655 + DCW 2088 + DCW 2659 + DCW -2537 + DCW 12392 + DCW -5414 + DCW 981 + DCW -2462 + DCW -3539 + DCW 2114 + DCW -2315 + DCW 8618 + DCW -17256 + DCW -1598 + DCW 7381 + DCW 92 + DCW 1631 + DCW -6722 + DCW 11696 + DCW -12874 + DCW -5758 + DCW 12132 + DCW -3892 + DCW 2273 + DCW 6596 + DCW -705 + DCW -8052 + DCW 15294 + DCW -11197 + DCW -8031 + DCW 18594 + DCW -14581 + DCW 2487 + DCW -1254 + DCW 4948 + DCW 11306 + DCW -7297 + DCW 1661 + DCW -1912 + DCW 5267 + DCW -9251 + DCW 3640 + DCW 7909 + DCW -14832 + DCW 4613 + DCW 2374 + DCW -8286 + DCW 4508 + DCW 7796 + DCW -14887 + DCW 4726 + DCW 5619 + DCW -16283 + DCW 14912 + DCW -2881 + DCW -117 + DCW 4579 + DCW -14514 + DCW 15029 + DCW -6127 + DCW 3774 + DCW 12446 + DCW -12933 + DCW 4051 + DCW -7079 + DCW 1254 + DCW 3980 + DCW -3233 + DCW 11561 + DCW 948 + DCW -13914 + DCW 5590 + DCW 7511 + DCW -13797 + DCW 15415 + DCW -5401 + DCW -14736 + DCW 12346 + DCW -5301 + DCW 7854 + DCW -2751 + DCW -1971 + DCW -440 + DCW -7838 + DCW 8240 + DCW -6026 + DCW 5548 + DCW 2554 + DCW 2738 + DCW 4110 + DCW -15986 + DCW 5246 + DCW 7330 + DCW -14941 + DCW 210 + DCW 10215 + DCW -15663 + DCW 12220 + DCW 8110 + DCW -10714 + DCW 13734 + DCW -14954 + DCW 3183 + DCW 4240 + DCW -8144 + DCW 16866 + DCW -9809 + DCW -4323 + DCW 13302 + DCW -4793 + DCW -4982 + DCW 9876 + DCW -4399 + DCW -4911 + DCW 3338 + DCW -403 + DCW 5162 + DCW -9532 + DCW 2613 + DCW 3749 + DCW -6458 + DCW 2684 + DCW -1916 + DCW 1736 + DCW 256 + DCW 7569 + DCW -1103 + DCW -17982 + DCW 9272 + DCW 6164 + DCW -15084 + DCW 14929 + DCW 3233 + DCW -19080 + DCW 10501 + DCW -3451 + DCW -2663 + DCW 8026 + DCW -11431 + DCW 7364 + DCW -4034 + DCW -5347 + DCW 16317 + DCW -7984 + DCW -243 + DCW 2914 + DCW -11406 + DCW -1124 + DCW 2344 + DCW 8215 + DCW 2449 + DCW -3611 + DCW 11650 + DCW -6504 + DCW -11532 + DCW 20330 + DCW -5766 + DCW -8307 + DCW 8211 + DCW -8198 + DCW 6458 + DCW 2361 + DCW 6185 + DCW 3640 + DCW -15990 + DCW 3577 + DCW -2495 + DCW -5443 + DCW 10647 + DCW -3434 + DCW -4189 + DCW 4118 + DCW -3237 + DCW 3535 + DCW -5087 + DCW -193 + DCW 11004 + DCW -21886 + DCW 449 + DCW 3791 + DCW -16258 + DCW 18149 + DCW 2021 + DCW -8291 + DCW -231 + DCW -8244 + DCW 7225 + DCW 4382 + DCW -809 + DCW 6546 + DCW -7376 + DCW -4512 + DCW 5766 + DCW -4122 + DCW -281 + DCW 1547 + DCW 910 + DCW -2680 + DCW -7108 + DCW 10131 + DCW 3174 + DCW -10408 + DCW 10823 + DCW -5611 + DCW -10467 + DCW 16074 + DCW -956 + DCW 1866 + DCW 1589 + DCW -4789 + DCW -348 + DCW -2743 + DCW 15575 + DCW 2847 + DCW -7116 + DCW 9553 + DCW -5015 + DCW -4223 + DCW 10706 + DCW -6752 + DCW 1459 + DCW -377 + DCW -15130 + DCW 12920 + DCW 2483 + DCW 46 + DCW 15126 + DCW -12639 + DCW -10446 + DCW 3233 + DCW -2386 + DCW 1942 + DCW 9687 + DCW 4235 + DCW -12564 + DCW -2185 + DCW 12442 + DCW -4592 + DCW -730 + DCW 4051 + DCW -14120 + DCW 2382 + DCW 6424 + DCW -3946 + DCW 7460 + DCW -2814 + DCW -2768 + DCW -1757 + DCW -4726 + DCW 5343 + DCW -5137 + DCW -1837 + DCW -407 + DCW -3606 + DCW 8303 + DCW -5217 + DCW 3548 + DCW 9880 + DCW -20695 + DCW 1925 + DCW 9632 + DCW -12597 + DCW 12677 + DCW 4848 + DCW -13797 + DCW 6588 + DCW 2059 + DCW -6869 + DCW 6324 + DCW 2088 + DCW -1614 + DCW 742 + DCW -2382 + DCW 4210 + DCW 71 + DCW -210 + DCW 3443 + DCW -1078 + DCW -3934 + DCW -3594 + DCW 8005 + DCW -319 + DCW -5493 + DCW 7682 + DCW -9066 + DCW -6169 + DCW 10241 + DCW -3921 + DCW -164 + DCW 5171 + DCW 897 + DCW -373 + DCW -4659 + DCW 151 + DCW 650 + DCW -3757 + DCW 9863 + DCW 7678 + DCW -5879 + DCW 5158 + DCW -4433 + DCW -5275 + DCW -264 + DCW -4680 + DCW 2696 + DCW -1724 + DCW 7309 + DCW 5946 + DCW -5821 + DCW -1975 + DCW 910 + DCW -482 + DCW -1677 + DCW 3070 + DCW 717 + DCW -4793 + DCW 1744 + DCW 3791 + DCW -1866 + DCW 2826 + DCW 1220 + DCW -3783 + DCW -776 + DCW -4495 + DCW -751 + DCW 2873 + DCW -2734 + DCW 8936 + DCW -2160 + DCW -9507 + DCW 9297 + DCW -4843 + DCW -4537 + DCW 6248 + DCW -176 + DCW -3757 + DCW 2864 + DCW 5175 + DCW -4017 + DCW 1044 + DCW -1090 + DCW -3166 + DCW -143 + DCW 1568 + DCW 1170 + DCW 8 + DCW 4177 + DCW -2944 + DCW -3133 + DCW -3028 + DCW 5187 + DCW 5200 + DCW -8697 + DCW 5883 + DCW -1166 + DCW -7053 + DCW 692 + DCW 2709 + DCW 7351 + DCW -7984 + DCW 88 + DCW 3636 + DCW -923 + DCW 5393 + DCW 2365 + DCW -7733 + DCW -4244 + DCW 6043 + DCW -8827 + DCW 3699 + DCW 5552 + DCW -1598 + DCW -5045 + DCW -3183 + DCW 8253 + DCW -5833 + DCW 470 + DCW 6328 + DCW 3434 + DCW -9142 + DCW 730 + DCW 583 + DCW -1447 + DCW 12027 + DCW -5833 + DCW 1786 + DCW -11029 + DCW -2147 + DCW 7909 + DCW -8253 + DCW 8995 + DCW -805 + DCW -3174 + DCW 3074 + DCW -55 + DCW -1355 + DCW -1967 + DCW 3636 + DCW -2491 + DCW 5401 + DCW -1556 + DCW -3904 + DCW 6542 + DCW -3279 + DCW 3229 + DCW -6047 + DCW -2420 + DCW 4114 + DCW 927 + DCW 1468 + DCW -2181 + DCW 3573 + DCW -9649 + DCW 2134 + DCW 4621 + DCW -956 + DCW 1623 + DCW -7351 + DCW 3900 + DCW 310 + DCW 1979 + DCW 2776 + DCW -3707 + DCW 1136 + DCW -566 + DCW 2080 + DCW -2558 + DCW 4563 + DCW 814 + DCW -7506 + DCW 4286 + DCW -2688 + DCW 1401 + DCW 1082 + DCW 3212 + DCW 2244 + DCW -1925 + DCW -814 + DCW -2340 + DCW 4986 + DCW -7825 + DCW 7183 + DCW 1996 + DCW -6055 + DCW 7938 + DCW -6798 + DCW 709 + DCW 1451 + DCW -1879 + DCW -1308 + DCW -159 + DCW 1002 + DCW -2550 + DCW 4843 + DCW 2294 + DCW 2231 + DCW -7997 + DCW -5066 + DCW 4827 + DCW -2466 + DCW 6462 + DCW -4315 + DCW -671 + DCW -277 + DCW 1162 + DCW 10194 + DCW -9226 + DCW 3154 + DCW -7414 + DCW -4043 + DCW 8223 + DCW 2575 + DCW 6349 + DCW -7636 + DCW 268 + DCW -113 + DCW -2671 + DCW -2239 + DCW 6362 + DCW 117 + DCW -5137 + DCW 8270 + DCW -8718 + DCW 4894 + DCW 1162 + DCW -4835 + DCW 7158 + DCW -9477 + DCW 558 + DCW -134 + DCW 1581 + DCW 7611 + DCW -876 + DCW -5053 + DCW -5254 + DCW 6127 + DCW -2562 + DCW 4286 + DCW 1342 + DCW -1036 + DCW 646 + DCW -6055 + DCW 6013 + DCW -3992 + DCW 6718 + DCW -2608 + DCW -4697 + DCW 5078 + DCW -5808 + DCW 9834 + DCW -2290 + DCW -260 + DCW 210 + DCW -13713 + DCW 4483 + DCW 8337 + DCW 2151 + DCW -457 + DCW -268 + DCW -4621 + DCW 1212 + DCW 839 + DCW -3099 + DCW 6533 + DCW -10823 + DCW 5691 + DCW 2621 + DCW -2889 + DCW 11616 + DCW -12325 + DCW 956 + DCW -1493 + DCW -138 + DCW 667 + DCW -348 + DCW 8228 + DCW -164 + DCW 369 + DCW -5473 + DCW 2126 + DCW -4667 + DCW 1942 + DCW 2432 + DCW -2634 + DCW 3263 + DCW -7322 + DCW 8924 + DCW 2285 + DCW -2206 + DCW 3149 + DCW -15306 + DCW 7829 + DCW -1640 + DCW -8 + DCW 8836 + DCW -7896 + DCW 9574 + DCW -13818 + DCW 5603 + DCW -331 + DCW 6315 + DCW 3409 + DCW -18900 + DCW 16606 + DCW -12648 + DCW 16820 + DCW -2038 + DCW -3154 + DCW 11826 + DCW -24704 + DCW 5749 + DCW -445 + DCW 8400 + DCW 4500 + DCW -461 + DCW -5883 + DCW -8207 + DCW 4990 + DCW 176 + DCW 15151 + DCW -1543 + DCW -7926 + DCW -5045 + DCW -4084 + DCW 3518 + DCW 6747 + DCW 8718 + DCW -4064 + DCW -344 + DCW -14421 + DCW -1476 + DCW 7540 + DCW 2592 + DCW 15700 + DCW -10761 + DCW -5561 + DCW -2923 + DCW 2478 + DCW 9721 + DCW 5242 + DCW -277 + DCW -11209 + DCW -1120 + DCW -9469 + DCW 6030 + DCW 5821 + DCW 2969 + DCW 3497 + DCW -10140 + DCW -159 + DCW -5615 + DCW 4701 + DCW 8060 + DCW 2139 + DCW 289 + DCW -12010 + DCW -2856 + DCW -1631 + DCW 7192 + DCW 7796 + DCW -2885 + DCW 3275 + DCW -12434 + DCW 575 + DCW 4374 + DCW 1652 + DCW 7615 + DCW -1526 + DCW -1833 + DCW -9733 + DCW 4357 + DCW -6471 + DCW 6500 + DCW 14300 + DCW -10987 + DCW 1535 + DCW -7863 + DCW -2696 + DCW 5556 + DCW 6840 + DCW 5359 + DCW -6034 + DCW -667 + DCW -8156 + DCW 3028 + DCW 4957 + DCW 2634 + DCW 5984 + DCW -7217 + DCW 1053 + DCW -7972 + DCW 1526 + DCW 7435 + DCW 2826 + DCW 5883 + DCW -9289 + DCW -3619 + DCW -5305 + DCW 5057 + DCW 6907 + DCW 4588 + DCW -327 + DCW -11725 + DCW 319 + DCW -4252 + DCW 5514 + DCW 9997 + DCW -465 + DCW -1778 + DCW -6957 + DCW -5053 + DCW -1015 + DCW 7670 + DCW 5347 + DCW 1111 + DCW -2940 + DCW -12430 + DCW 579 + DCW 4227 + DCW 8110 + DCW 5460 + DCW -5808 + DCW -7938 + DCW -7511 + DCW 5133 + DCW 3980 + DCW 10853 + DCW 612 + DCW -7846 + DCW -4885 + DCW -7242 + DCW 7167 + DCW 3338 + DCW 7804 + DCW -1283 + DCW -8584 + DCW -3795 + DCW -2944 + DCW 9146 + DCW 3380 + DCW 5946 + DCW -7662 + DCW -10773 + DCW 1422 + DCW 38 + DCW 12996 + DCW 3481 + DCW -721 + DCW -8249 + DCW -6907 + DCW 4806 + DCW 1132 + DCW 10165 + DCW -549 + DCW -2210 + DCW -5850 + DCW -4755 + DCW 5548 + DCW 1153 + DCW 9410 + DCW -1988 + DCW -5615 + DCW -4839 + DCW -3887 + DCW 6978 + DCW 3577 + DCW 6907 + DCW -4118 + DCW -4827 + DCW -4412 + DCW -1824 + DCW 10773 + DCW -428 + DCW 3292 + DCW -3091 + DCW -5124 + DCW -1883 + DCW 1174 + DCW 4751 + DCW 168 + DCW 7343 + DCW -7817 + DCW -3057 + DCW 1258 + DCW -3422 + DCW 7049 + DCW 3808 + DCW -549 + DCW -5363 + DCW -2814 + DCW -1069 + DCW 4269 + DCW 5351 + DCW -1833 + DCW 772 + DCW -5452 + DCW -1535 + DCW 1984 + DCW 96 + DCW 6546 + DCW -3187 + DCW -143 + DCW -3275 + DCW -2772 + DCW 2659 + DCW 604 + DCW 5309 + DCW -3443 + DCW -2629 + DCW -2625 + DCW 3485 + DCW -935 + DCW 369 + DCW 4403 + DCW -1040 + DCW 1816 + DCW -5359 + DCW 1069 + DCW -1245 + DCW 3552 + DCW 2227 + DCW -7037 + DCW 3770 + DCW -2420 + DCW -3112 + DCW 7162 + DCW 663 + DCW -3451 + DCW -159 + DCW -1338 + DCW -1258 + DCW 4277 + DCW 377 + DCW -549 + DCW 2394 + DCW -4751 + DCW 1266 + DCW -88 + DCW 3795 + DCW 2541 + DCW -34 + DCW -264 + DCW -5389 + DCW 2432 + DCW -407 + DCW 5934 + DCW 117 + DCW -2004 + DCW -2348 + DCW -4877 + DCW 3573 + DCW 1128 + DCW 4227 + DCW 1099 + DCW -5481 + DCW -5162 + DCW 507 + DCW 3200 + DCW 4575 + DCW 3711 + DCW -5556 + DCW -4424 + DCW 1178 + DCW -1501 + DCW 6131 + DCW 1401 + DCW -2768 + DCW -600 + DCW -3388 + DCW 226 + DCW 923 + DCW 5959 + DCW -2004 + DCW 1673 + DCW -3024 + DCW -5800 + DCW 4298 + DCW -348 + DCW 4483 + DCW 1107 + DCW -3053 + DCW -3141 + DCW -1476 + DCW 2516 + DCW 3711 + DCW 335 + DCW -2634 + DCW -3179 + DCW -1820 + DCW 2009 + DCW 5103 + DCW 214 + DCW -642 + DCW 17 + DCW -2994 + DCW 939 + DCW -960 + DCW 3351 + DCW 1950 + DCW 1208 + DCW -2818 + DCW -3011 + DCW 2151 + DCW -470 + DCW 2592 + DCW 382 + DCW -1392 + DCW -2608 + DCW -541 + DCW -763 + DCW 3439 + DCW 2151 + DCW -843 + DCW -952 + DCW -1975 + DCW 432 + DCW -252 + DCW 1329 + DCW 1132 + DCW 830 + DCW -1786 + DCW -784 + DCW -1757 + DCW 1652 + DCW 2973 + DCW 533 + DCW -486 + DCW -1115 + DCW -2717 + DCW -4 + DCW 3124 + DCW -1069 + DCW 2239 + DCW -1396 + DCW -927 + DCW -985 + DCW 1162 + DCW 159 + DCW 562 + DCW 2613 + DCW -3401 + DCW 8 + DCW -2080 + DCW 218 + DCW 3552 + DCW 1329 + DCW 252 + DCW -923 + DCW -3770 + DCW -386 + DCW 2420 + DCW 2013 + DCW 1879 + DCW -839 + DCW -1963 + DCW -579 + DCW -1254 + DCW 147 + DCW 4152 + DCW -700 + DCW 445 + DCW -1573 + DCW -2046 + DCW 1346 + DCW 3128 + DCW 1799 + DCW -197 + DCW -2956 + DCW -4781 + DCW 1837 + DCW 1996 + DCW 3938 + DCW 1153 + DCW -3489 + DCW -2692 + DCW 1371 + DCW -495 + DCW 2227 + DCW 3611 + DCW -3170 + DCW 151 + DCW -1401 + DCW -2139 + DCW 2424 + DCW 3133 + DCW 122 + DCW 201 + DCW -3191 + DCW -3682 + DCW 1195 + DCW 3346 + DCW 2675 + DCW 734 + DCW -2990 + DCW -1535 + DCW 960 + DCW -298 + DCW 2856 + DCW -1015 + DCW -411 + DCW -1115 + DCW -151 + DCW 1346 + DCW 361 + DCW 1166 + DCW 369 + DCW 721 + DCW -3812 + DCW -1732 + DCW 688 + DCW 2634 + DCW 4126 + DCW -348 + DCW -3325 + DCW -1120 + DCW -1434 + DCW 1225 + DCW 3325 + DCW -746 + DCW -1786 + DCW -1053 + DCW -633 + DCW 797 + DCW 2109 + DCW 189 + DCW 1610 + DCW -478 + DCW -1304 + DCW -1241 + DCW -315 + DCW 654 + DCW 2558 + DCW 1367 + DCW -2378 + DCW -1589 + DCW -2441 + DCW 3590 + DCW 2856 + DCW -92 + DCW -2084 + DCW -1061 + DCW 415 + DCW 1011 + DCW 432 + DCW -2290 + DCW -143 + DCW -4592 + DCW -4789 + DCW -130 + DCW 1552 + DCW 4164 + DCW 14208 + DCW 12434 + DCW 7733 + DCW 1728 + DCW -10396 + DCW -6307 + DCW -7259 + DCW -8437 + DCW -4420 + DCW -2680 + DCW 1854 + DCW 2688 + DCW 6911 + DCW 7611 + DCW -3304 + DCW -3128 + DCW 0 + DCW -2474 + DCW -25 + DCW 5204 + DCW -3837 + DCW -6596 + DCW 4495 + DCW -1703 + DCW 2000 + DCW 3384 + DCW -1774 + DCW 2269 + DCW 4131 + DCW -2625 + DCW -6022 + DCW 1178 + DCW -3309 + DCW 2281 + DCW 4013 + DCW -2789 + DCW 1006 + DCW 298 + DCW 1954 + DCW 881 + DCW -839 + DCW -2114 + DCW -4852 + DCW -2709 + DCW 1061 + DCW 2034 + DCW 3585 + DCW 5774 + DCW -1971 + DCW 4 + DCW -1078 + DCW -512 + DCW -2600 + DCW -1006 + DCW -2613 + DCW -4252 + DCW 8458 + DCW -7074 + DCW 15009 + DCW -327 + DCW -11809 + DCW 7846 + DCW -9213 + DCW 134 + DCW -1325 + DCW 1770 + DCW -839 + DCW 7498 + DCW 6466 + DCW -2231 + DCW -646 + DCW -8291 + DCW 1874 + DCW 9666 + DCW -11956 + DCW -5049 + DCW 3103 + DCW -6253 + DCW 18829 + DCW -415 + DCW -1623 + DCW 1803 + DCW -4315 + DCW -6974 + DCW -3590 + DCW -587 + DCW -1900 + DCW 12396 + DCW -4365 + DCW 8312 + DCW 2332 + DCW -3929 + DCW -2206 + DCW -3724 + DCW -2168 + DCW -1455 + DCW -717 + DCW -4470 + DCW 13654 + DCW 4072 + DCW -80 + DCW 587 + DCW -7733 + DCW -3158 + DCW 4651 + DCW -3346 + DCW 696 + DCW 2332 + DCW -2197 + DCW 4164 + DCW 570 + DCW -2042 + DCW 1619 + DCW 0 + DCW -3975 + DCW 2554 + DCW -6068 + DCW 2864 + DCW 5347 + DCW 2239 + DCW 3137 + DCW -2348 + DCW -6819 + DCW -2445 + DCW 5967 + DCW -2545 + DCW 5816 + DCW -474 + DCW -1812 + DCW 3917 + DCW 528 + DCW -2868 + DCW 1082 + DCW -918 + DCW -1501 + DCW 1719 + DCW -4458 + DCW 1413 + DCW 1338 + DCW 1954 + DCW -1040 + DCW 2499 + DCW -3581 + DCW 226 + DCW 1895 + DCW -969 + DCW 2420 + DCW -2202 + DCW 231 + DCW -1057 + DCW 1128 + DCW -2344 + DCW 1006 + DCW -1698 + DCW 4583 + DCW 147 + DCW -1979 + DCW 1916 + DCW -4365 + DCW 3166 + DCW 1027 + DCW -2315 + DCW -3460 + DCW 2592 + DCW 4097 + DCW 3325 + DCW -2365 + DCW -3007 + DCW -3154 + DCW -394 + DCW 315 + DCW -2428 + DCW 4122 + DCW 2617 + DCW 2483 + DCW 2147 + DCW -4793 + DCW -4596 + DCW 3246 + DCW -2055 + DCW 3996 + DCW -180 + DCW -4198 + DCW 2093 + DCW 1841 + DCW 2923 + DCW 608 + DCW -1329 + DCW -4630 + DCW -3317 + DCW -1095 + DCW 3497 + DCW 1908 + DCW 3216 + DCW 1308 + DCW 671 + DCW -3694 + DCW -1975 + DCW -2751 + DCW -1199 + DCW 7280 + DCW -1778 + DCW 923 + DCW -906 + DCW 424 + DCW 2839 + DCW 1594 + DCW -3103 + DCW -5322 + DCW -382 + DCW 1145 + DCW 2009 + DCW 5099 + DCW 2017 + DCW -2004 + DCW 168 + DCW -4462 + DCW -2227 + DCW -2780 + DCW 256 + DCW 545 + DCW 3887 + DCW 1673 + DCW -684 + DCW 2407 + DCW -168 + DCW 1199 + DCW -5062 + DCW -2508 + DCW -1229 + DCW 361 + DCW 5213 + DCW 2076 + DCW -1690 + DCW 3774 + DCW -3510 + DCW -784 + DCW 1078 + DCW -6957 + DCW 1841 + DCW 2432 + DCW 2218 + DCW -1199 + DCW 143 + DCW -960 + DCW 3552 + DCW -545 + DCW -3720 + DCW 1132 + DCW -893 + DCW 1334 + DCW 3795 + DCW 1635 + DCW -5355 + DCW 2566 + DCW -3233 + DCW -814 + DCW 2973 + DCW -3426 + DCW -621 + DCW 2160 + DCW -445 + DCW 449 + DCW 1212 + DCW -3510 + DCW 4764 + DCW -2449 + DCW 1216 + DCW 4168 + DCW -4927 + DCW -566 + DCW 4143 + DCW -1581 + DCW -1874 + DCW 4705 + DCW -7129 + DCW -302 + DCW 6844 + DCW -2025 + DCW -1338 + DCW 1724 + DCW 2059 + DCW -1099 + DCW -6219 + DCW 243 + DCW 4089 + DCW -3036 + DCW 2562 + DCW 5200 + DCW -5015 + DCW -3254 + DCW 7112 + DCW -2743 + DCW -1552 + DCW 1623 + DCW -4613 + DCW 562 + DCW 3384 + DCW 5175 + DCW -512 + DCW -4223 + DCW -3711 + DCW 5145 + DCW -4621 + DCW -4177 + DCW 9721 + DCW -5363 + DCW 1296 + DCW 7766 + DCW -2889 + DCW -4428 + DCW 252 + DCW -491 + DCW 2583 + DCW -3124 + DCW -1027 + DCW 5091 + DCW -5200 + DCW 4235 + DCW 6663 + DCW -3598 + DCW -8093 + DCW 2017 + DCW 1187 + DCW -3967 + DCW 2273 + DCW -92 + DCW 7091 + DCW -386 + DCW -4122 + DCW 4630 + DCW -7750 + DCW 1958 + DCW 3707 + DCW -3757 + DCW -667 + DCW -1191 + DCW 6513 + DCW -1807 + DCW 2927 + DCW -4206 + DCW -2956 + DCW -709 + DCW 445 + DCW 7993 + DCW -9758 + DCW 4286 + DCW 1942 + DCW 705 + DCW 2264 + DCW -3200 + DCW -1132 + DCW -2067 + DCW 3174 + DCW -3254 + DCW 1552 + DCW -2025 + DCW 923 + DCW 6500 + DCW -4386 + DCW -2197 + DCW -2189 + DCW 4827 + DCW 2021 + DCW -1245 + DCW 3430 + DCW -9318 + DCW 1233 + DCW 1363 + DCW 3099 + DCW -881 + DCW -7561 + DCW 6395 + DCW 1040 + DCW 4005 + DCW -2692 + DCW -1552 + DCW -3284 + DCW 1874 + DCW 5301 + DCW -6055 + DCW -1237 + DCW -4147 + DCW 6911 + DCW 2722 + DCW -499 + DCW 2235 + DCW -8387 + DCW 1518 + DCW 4915 + DCW -1761 + DCW -3426 + DCW 38 + DCW 2164 + DCW 2877 + DCW 4185 + DCW -8324 + DCW 1862 + DCW -1816 + DCW -512 + DCW 8710 + DCW -7737 + DCW 5506 + DCW -3770 + DCW 5238 + DCW -2160 + DCW -6198 + DCW 5020 + DCW -5233 + DCW 6118 + DCW -11721 + DCW 14245 + DCW -1522 + DCW -4936 + DCW 12715 + DCW -13189 + DCW 7691 + DCW -11637 + DCW 306 + DCW 6731 + DCW -524 + DCW 92 + DCW -3099 + DCW 15080 + DCW -5640 + DCW 2051 + DCW -16275 + DCW 2445 + DCW 9414 + DCW -12400 + DCW 20192 + DCW -13646 + DCW 6332 + DCW -1329 + DCW -4722 + DCW 6441 + DCW -16321 + DCW 16028 + DCW -13323 + DCW 14929 + DCW -80 + DCW -9431 + DCW 9037 + DCW -12270 + DCW 15013 + DCW -11742 + DCW 7263 + DCW -8538 + DCW 4416 + DCW 3015 + DCW -9171 + DCW 15814 + DCW -19336 + DCW 20716 + DCW -5414 + DCW -4441 + DCW -965 + DCW -8249 + DCW 13495 + DCW -12975 + DCW 7628 + DCW -13046 + DCW 6185 + DCW 8056 + DCW 9381 + DCW 19479 + DCW -28570 + DCW -1694 + DCW -12920 + DCW 1682 + DCW 15713 + DCW 2835 + DCW 12371 + DCW -17810 + DCW 3481 + DCW -13851 + DCW 4906 + DCW 9280 + DCW -7272 + DCW 13369 + DCW -18036 + DCW 10345 + DCW -1233 + DCW 474 + DCW 1577 + DCW -4382 + DCW -3070 + DCW -8194 + DCW 19378 + DCW -17214 + DCW 9628 + DCW -3007 + DCW -1996 + DCW 20313 + DCW -22305 + DCW 10291 + DCW -9934 + DCW -5196 + DCW 13855 + DCW 2940 + DCW 4638 + DCW -16153 + DCW 2948 + DCW -3195 + DCW 15466 + DCW 1711 + DCW -8014 + DCW 5213 + DCW -22305 + DCW 11700 + DCW -1044 + DCW 6584 + DCW -1610 + DCW -5074 + DCW 11205 + DCW -4433 + DCW 9075 + DCW -16166 + DCW 6202 + DCW -5477 + DCW 851 + DCW 9398 + DCW -18309 + DCW 9352 + DCW 2118 + DCW 13570 + DCW 2566 + DCW -10899 + DCW -8731 + DCW -13654 + DCW 11985 + DCW 3044 + DCW 4231 + DCW 1053 + DCW -3376 + DCW 12509 + DCW -5913 + DCW 1724 + DCW -5565 + DCW -8630 + DCW 927 + DCW 1707 + DCW 2537 + DCW -1879 + DCW 14677 + DCW 755 + DCW 4269 + DCW -13734 + DCW -8257 + DCW 4290 + DCW -6873 + DCW 11855 + DCW -4563 + DCW 239 + DCW -2319 + DCW 8555 + DCW 7112 + DCW -9733 + DCW -17 + DCW -8685 + DCW 4231 + DCW -3359 + DCW 386 + DCW 9628 + DCW -2776 + DCW 10786 + DCW -2143 + DCW -4361 + DCW -8379 + DCW -6479 + DCW 9347 + DCW -2738 + DCW 7200 + DCW -4391 + DCW 2122 + DCW 6026 + DCW -2919 + DCW -4131 + DCW -6563 + DCW 3824 + DCW -5192 + DCW 6789 + DCW -5384 + DCW 7313 + DCW 1749 + DCW -5892 + DCW 19135 + DCW -16959 + DCW -5510 + DCW 2302 + DCW -5737 + DCW 11385 + DCW -1573 + DCW -2164 + DCW 6429 + DCW -2675 + DCW -985 + DCW 4265 + DCW -7959 + DCW -6018 + DCW 9066 + DCW -8060 + DCW 10597 + DCW 3355 + DCW -19718 + DCW 17835 + DCW -2671 + DCW 700 + DCW 3871 + DCW -9695 + DCW -4407 + DCW -17 + DCW 872 + DCW 5464 + DCW 9574 + DCW -16841 + DCW 9192 + DCW 75 + DCW -9293 + DCW 8702 + DCW -2285 + DCW -5301 + DCW 7460 + DCW -1518 + DCW -9922 + DCW 15097 + DCW -5896 + DCW -2294 + DCW 10790 + DCW -12266 + DCW -474 + DCW 8110 + DCW -8748 + DCW 12337 + DCW -3690 + DCW -14430 + DCW 12643 + DCW -5309 + DCW -952 + DCW 14585 + DCW -8685 + DCW -5921 + DCW 9779 + DCW -15629 + DCW 6991 + DCW 5871 + DCW -7972 + DCW 8026 + DCW 92 + DCW -5221 + DCW 3590 + DCW 734 + DCW -7267 + DCW 10287 + DCW -11838 + DCW -2654 + DCW 13671 + DCW -7804 + DCW 3787 + DCW 14581 + DCW -15621 + DCW -5036 + DCW 8802 + DCW -14556 + DCW 10022 + DCW 4579 + DCW -6739 + DCW 7842 + DCW -4890 + DCW -4282 + DCW 13738 + DCW -9037 + DCW -1648 + DCW 7246 + DCW -15206 + DCW 4118 + DCW 11834 + DCW -7339 + DCW 5590 + DCW 6580 + DCW -19445 + DCW 8328 + DCW -4399 + DCW -1124 + DCW 9020 + DCW -12375 + DCW 6349 + DCW 3636 + DCW -2143 + DCW 2462 + DCW 10123 + DCW -14652 + DCW 1048 + DCW 7267 + DCW -18418 + DCW 11847 + DCW 2994 + DCW -3564 + DCW 13461 + DCW -6991 + DCW -6223 + DCW 2852 + DCW -6726 + DCW 6890 + DCW 4227 + DCW -12090 + DCW 2185 + DCW 8584 + DCW -10190 + DCW 11272 + DCW 2722 + DCW -16896 + DCW 9867 + DCW -923 + DCW 1044 + DCW 3908 + DCW -6596 + DCW -696 + DCW 5242 + DCW -5259 + DCW 2059 + DCW 5456 + DCW -11436 + DCW 10786 + DCW 340 + DCW -12367 + DCW 11209 + DCW -906 + DCW -7100 + DCW 10660 + DCW -4906 + DCW -8177 + DCW 8236 + DCW -2722 + DCW 5540 + DCW 2583 + DCW -15776 + DCW 8106 + DCW 2483 + DCW -3632 + DCW 13419 + DCW -7603 + DCW -8295 + DCW 4772 + DCW -595 + DCW -2852 + DCW 6970 + DCW -3355 + DCW -4697 + DCW 8651 + DCW -9758 + DCW 2227 + DCW 6701 + DCW -7691 + DCW 9670 + DCW -5682 + DCW -11318 + DCW 12954 + DCW -4588 + DCW 2214 + DCW 10794 + DCW -13558 + DCW -6429 + DCW 5623 + DCW 1614 + DCW 1187 + DCW 7435 + DCW -8517 + DCW -1635 + DCW 4399 + DCW -8664 + DCW 10421 + DCW -2856 + DCW -3711 + DCW 11285 + DCW -9851 + DCW -6655 + DCW 9305 + DCW -1296 + DCW 1799 + DCW 7116 + DCW -13629 + DCW -1535 + DCW 7381 + DCW -1786 + DCW 7137 + DCW -5137 + DCW -8005 + DCW 8391 + DCW -2550 + DCW 1602 + DCW 8349 + DCW -11566 + DCW -3338 + DCW 7586 + DCW -3476 + DCW 449 + DCW 4940 + DCW -10282 + DCW 6039 + DCW 6588 + DCW -13260 + DCW 4755 + DCW -3598 + DCW -1698 + DCW 7590 + DCW -4311 + DCW -2646 + DCW 6726 + DCW 11377 + DCW 2868 + DCW -3170 + DCW -10601 + DCW 667 + DCW -3657 + DCW -5347 + DCW 13453 + DCW -6550 + DCW -4235 + DCW 2512 + DCW -876 + DCW 6475 + DCW 1313 + DCW -3539 + DCW -55 + DCW 2759 + DCW -12539 + DCW 7221 + DCW 3858 + DCW -8685 + DCW 18896 + DCW -8517 + DCW -10102 + DCW 11423 + DCW -7125 + DCW -1854 + DCW 9913 + DCW -9800 + DCW -3460 + DCW 9897 + DCW -5309 + DCW 7997 + DCW 1002 + DCW -13977 + DCW 9846 + DCW 1086 + DCW -14451 + DCW 8140 + DCW 1195 + DCW -4877 + DCW 11612 + DCW -6257 + DCW -205 + DCW 12903 + DCW -13080 + DCW -3149 + DCW 5863 + DCW -10387 + DCW 5070 + DCW 4064 + DCW -3019 + DCW 11398 + DCW -2994 + DCW -18292 + DCW 12899 + DCW 4303 + DCW -12534 + DCW 11712 + DCW -8081 + DCW -59 + DCW 12572 + DCW -9536 + DCW 3996 + DCW 4500 + DCW -10203 + DCW 2164 + DCW 428 + DCW -9100 + DCW 9310 + DCW 5179 + DCW -6894 + DCW 8190 + DCW -5267 + DCW -8806 + DCW 11461 + DCW -5598 + DCW -608 + DCW 6567 + DCW -9242 + DCW 3552 + DCW 6923 + DCW -3237 + DCW 3388 + DCW -5238 + DCW -7611 + DCW 6970 + DCW -3065 + DCW 2118 + DCW 6970 + DCW -3711 + DCW -1128 + DCW 1950 + DCW -4470 + DCW -1443 + DCW 4533 + DCW -2160 + DCW 579 + DCW -96 + DCW -4412 + DCW 1933 + DCW 7821 + DCW 1505 + DCW -2692 + DCW -6894 + DCW -1929 + DCW 2176 + DCW -3049 + DCW 7066 + DCW 88 + DCW -6806 + DCW 6332 + DCW -2256 + DCW -2642 + DCW 8127 + DCW -6206 + DCW -1749 + DCW 3422 + DCW -3267 + DCW -977 + DCW 2575 + DCW -650 + DCW 1002 + DCW 3154 + DCW -8781 + DCW 5619 + DCW 2642 + DCW -7095 + DCW 6437 + DCW -3804 + DCW -5284 + DCW 6320 + DCW -394 + DCW 583 + DCW 1304 + DCW -2382 + DCW 734 + DCW -658 + DCW -1518 + DCW 319 + DCW 1614 + DCW -4617 + DCW 6060 + DCW -273 + DCW -5439 + DCW 6995 + DCW -4466 + DCW 746 + DCW 4273 + DCW -9024 + DCW -130 + DCW 9737 + DCW -5204 + DCW 126 + DCW 3816 + DCW -6999 + DCW 5015 + DCW 4843 + DCW -7825 + DCW 4340 + DCW -2701 + DCW -8890 + DCW 10945 + DCW -331 + DCW 952 + DCW 3242 + DCW -6173 + DCW 612 + DCW 1652 + DCW -4651 + DCW 1317 + DCW 3359 + DCW -3862 + DCW 2692 + DCW -503 + DCW 503 + DCW 5024 + DCW -1749 + DCW -3254 + DCW -524 + DCW -7125 + DCW 1287 + DCW 9301 + DCW -1032 + DCW 205 + DCW -201 + DCW -6714 + DCW 927 + DCW 4932 + DCW -4953 + DCW 4214 + DCW -1036 + DCW -5070 + DCW 5963 + DCW -1032 + DCW -864 + DCW 3137 + DCW -3325 + DCW -977 + DCW -914 + DCW -3866 + DCW 5816 + DCW 1816 + DCW -1489 + DCW -319 + DCW 273 + DCW -2889 + DCW 977 + DCW 1749 + DCW -96 + DCW 1321 + DCW -7142 + DCW 3036 + DCW 1371 + DCW -1560 + DCW 4785 + DCW 159 + DCW -1744 + DCW 1166 + DCW -5883 + DCW -4483 + DCW 9624 + DCW 1602 + DCW -3711 + DCW 2801 + DCW -2369 + DCW -2051 + DCW 4529 + DCW -1879 + DCW -4 + DCW -1522 + DCW -3632 + DCW 2621 + DCW 3497 + DCW -688 + DCW -285 + DCW -608 + DCW -3439 + DCW 2839 + DCW -2919 + DCW 1640 + DCW 3443 + DCW -3820 + DCW 1233 + DCW -1820 + DCW -2499 + DCW 6131 + DCW -419 + DCW -3443 + DCW 5108 + DCW -4315 + DCW -3804 + DCW 7871 + DCW -839 + DCW -5049 + DCW 4927 + DCW -7225 + DCW -512 + DCW 8769 + DCW -4835 + DCW 2143 + DCW 738 + DCW -3854 + DCW 2000 + DCW 1220 + DCW -4391 + DCW 1799 + DCW 2013 + DCW -1967 + DCW 1384 + DCW -985 + DCW -168 + DCW 3749 + DCW -650 + DCW -2826 + DCW 1199 + DCW -3606 + DCW 2348 + DCW 1359 + DCW -1858 + DCW 2705 + DCW -1740 + DCW 671 + DCW 3120 + DCW -4684 + DCW -3204 + DCW 4286 + DCW -2860 + DCW 1589 + DCW 5192 + DCW -3728 + DCW 1090 + DCW 1531 + DCW -6810 + DCW 2407 + DCW 3028 + DCW -3925 + DCW 3003 + DCW 1313 + DCW -2948 + DCW -210 + DCW 147 + DCW 3133 + DCW 3736 + DCW -4437 + DCW -2847 + DCW -2671 + DCW -625 + DCW 1279 + DCW 3187 + DCW 1283 + DCW -1132 + DCW 277 + DCW -1287 + DCW 4730 + DCW -2613 + DCW 600 + DCW 1199 + DCW -3082 + DCW -3766 + DCW -4399 + DCW 4458 + DCW 6756 + DCW 4529 + DCW -1082 + DCW 59 + DCW -6626 + DCW -8194 + DCW 3929 + DCW 4508 + DCW -3200 + DCW 554 + DCW 1367 + DCW 1170 + DCW 3892 + DCW 990 + DCW -1774 + DCW -5942 + DCW -4038 + DCW -1799 + DCW 5468 + DCW 4600 + DCW 3229 + DCW 1355 + DCW -985 + DCW -948 + DCW -7041 + DCW -2088 + DCW 860 + DCW -3770 + DCW 2223 + DCW 5548 + DCW -818 + DCW 6651 + DCW -495 + DCW -6647 + DCW 524 + DCW -5368 + DCW -2399 + DCW 5745 + DCW 122 + DCW -218 + DCW 6303 + DCW 679 + DCW -29 + DCW -1183 + DCW -6156 + DCW -3619 + DCW 1027 + DCW -600 + DCW 2801 + DCW 2877 + DCW 969 + DCW 6403 + DCW -985 + DCW -4223 + DCW -3896 + DCW -5246 + DCW 491 + DCW 3904 + DCW 453 + DCW 1099 + DCW 2852 + DCW 746 + DCW 1526 + DCW -201 + DCW -5770 + DCW -2143 + DCW -1426 + DCW -1245 + DCW 7599 + DCW -2600 + DCW -1690 + DCW 6517 + DCW -2696 + DCW 2088 + DCW 2554 + DCW -8953 + DCW 2692 + DCW 465 + DCW -9578 + DCW 6680 + DCW 5804 + DCW -1212 + DCW 2118 + DCW 2533 + DCW -7024 + DCW -1782 + DCW 3342 + DCW -3728 + DCW -168 + DCW -2466 + DCW 889 + DCW 1204 + DCW 2843 + DCW 7284 + DCW -1443 + DCW -5313 + DCW -608 + DCW -3875 + DCW -2927 + DCW 5896 + DCW 1174 + DCW -797 + DCW 2587 + DCW -1577 + DCW -1858 + DCW 1744 + DCW 1715 + DCW 1250 + DCW -3355 + DCW -5510 + DCW -818 + DCW 2365 + DCW 1413 + DCW 7393 + DCW 1279 + DCW -9981 + DCW 1002 + DCW 595 + DCW -4630 + DCW 2705 + DCW 3258 + DCW -1132 + DCW 4785 + DCW 4667 + DCW -2034 + DCW -2478 + DCW -2390 + DCW -1287 + DCW -5678 + DCW -6383 + DCW 4881 + DCW 5036 + DCW 717 + DCW 8207 + DCW -285 + DCW -6110 + DCW -1778 + DCW -2290 + DCW -738 + DCW -369 + DCW 977 + DCW 939 + DCW -520 + DCW 1468 + DCW 7355 + DCW -990 + DCW -4013 + DCW -197 + DCW -6957 + DCW -2638 + DCW 4168 + DCW 2638 + DCW 164 + DCW 3174 + DCW 2650 + DCW -2730 + DCW -155 + DCW -356 + DCW -981 + DCW -3300 + DCW -3128 + DCW 2940 + DCW -2650 + DCW 3137 + DCW 8282 + DCW 1216 + DCW -2994 + DCW -4462 + DCW -3296 + DCW -1103 + DCW 554 + DCW 55 + DCW 3107 + DCW -2717 + DCW 507 + DCW 2822 + DCW 2235 + DCW 3451 + DCW -3195 + DCW -2772 + DCW -2914 + DCW 411 + DCW -113 + DCW 1879 + DCW -927 + DCW -2504 + DCW 5301 + DCW 1958 + DCW -3145 + DCW -1929 + DCW -3422 + DCW -1526 + DCW 3984 + DCW -361 + DCW 742 + DCW 1325 + DCW -42 + DCW -8 + DCW 1480 + DCW -1757 + DCW -3263 + DCW 2218 + DCW -621 + DCW 994 + DCW 1933 + DCW -3418 + DCW -235 + DCW 3267 + DCW -3468 + DCW 147 + DCW -138 + DCW 256 + DCW -889 + DCW -3409 + DCW 6869 + DCW -4101 + DCW -3254 + DCW 7984 + DCW -2852 + DCW 185 + DCW 3242 + DCW -3208 + DCW -1703 + DCW -1933 + DCW 3489 + DCW -71 + DCW -1099 + DCW 3548 + DCW 1065 + DCW -4722 + DCW -1535 + DCW 4843 + DCW -1929 + DCW -1396 + DCW -1157 + DCW -994 + DCW -2126 + DCW 6257 + DCW 3271 + DCW -3162 + DCW 499 + DCW -1434 + DCW -1715 + DCW -38 + DCW 2315 + DCW -3258 + DCW 1002 + DCW -784 + DCW 2696 + DCW -453 + DCW -2545 + DCW 3745 + DCW -721 + DCW -1325 + DCW -2839 + DCW -2617 + DCW -2046 + DCW 5842 + DCW 5183 + DCW -717 + DCW -3036 + DCW 554 + DCW -1292 + DCW 1732 + DCW 1371 + DCW -2973 + DCW -2017 + DCW -2025 + DCW 7041 + DCW -415 + DCW -126 + DCW -59 + DCW 411 + DCW -1430 + DCW -3254 + DCW 1128 + DCW -2181 + DCW 1602 + DCW 3212 + DCW 1581 + DCW -3162 + DCW 2332 + DCW -512 + DCW 356 + DCW -1346 + DCW -5774 + DCW 386 + DCW 2407 + DCW 6131 + DCW 1812 + DCW 633 + DCW -3070 + DCW -2776 + DCW -3778 + DCW -1334 + DCW -717 + DCW 411 + DCW 4428 + DCW -361 + DCW 3887 + DCW -751 + DCW -2302 + DCW -1568 + DCW -1904 + DCW -1958 + DCW -860 + DCW 7414 + DCW 5292 + DCW -486 + DCW -675 + DCW -3657 + DCW -5657 + DCW -1770 + DCW -130 + DCW 3091 + DCW -1338 + DCW 2193 + DCW 6651 + DCW -1128 + DCW -2348 + DCW -3762 + DCW -461 + DCW -1044 + DCW -2365 + DCW 2361 + DCW 2881 + DCW 872 + DCW 2357 + DCW 876 + DCW -1652 + DCW -604 + DCW -7410 + DCW -2302 + DCW 4806 + DCW 2906 + DCW 486 + DCW 365 + DCW 4105 + DCW -352 + DCW -2034 + DCW -4013 + DCW -2281 + DCW -1577 + DCW -432 + DCW 4453 + DCW 1816 + DCW 2776 + DCW -1497 + DCW -1019 + DCW 193 + DCW -4399 + DCW 264 + DCW 579 + DCW -264 + DCW 2797 + DCW -742 + DCW 1560 + DCW 2910 + DCW -1426 + DCW -377 + DCW -3602 + DCW -2277 + DCW 138 + DCW -25 + DCW 1874 + DCW 1984 + DCW -881 + DCW 520 + DCW 1522 + DCW -1539 + DCW -797 + DCW -4269 + DCW 2663 + DCW 1598 + DCW -4139 + DCW -113 + DCW 2868 + DCW 3372 + DCW -1631 + DCW 1346 + DCW -3644 + DCW -3493 + DCW 2013 + DCW 3003 + DCW -2931 + DCW -5804 + DCW 10756 + DCW 7867 + DCW -9918 + DCW -11847 + DCW 11561 + DCW 11998 + DCW -9326 + DCW -6689 + DCW -2130 + DCW 4533 + DCW 5103 + DCW -3485 + DCW -1967 + DCW 1619 + DCW 1598 + DCW -3661 + DCW -3837 + DCW 7628 + DCW 2747 + DCW -3304 + DCW -1170 + DCW -4005 + DCW 1682 + DCW 5418 + DCW 633 + DCW -5531 + DCW -675 + DCW 419 + DCW 541 + DCW 2583 + DCW -3091 + DCW 3497 + DCW 2130 + DCW -1468 + DCW -4588 + DCW -5171 + DCW 8068 + DCW 2537 + DCW -2004 + DCW 1258 + DCW -3560 + DCW -4156 + DCW 2529 + DCW 6248 + DCW -201 + DCW 575 + DCW -4609 + DCW -306 + DCW -11905 + DCW -18430 + DCW 32767 + DCW 20728 + DCW -32768 + DCW -20229 + DCW 32767 + DCW 32767 + DCW -32768 + DCW -32768 + DCW 24939 + DCW 32767 + DCW 2868 + DCW -32768 + DCW 2332 + DCW 27904 + DCW -3300 + DCW 1992 + DCW -28763 + DCW -814 + DCW 32767 + DCW -7783 + DCW -13818 + DCW -9687 + DCW 5577 + DCW 21085 + DCW 16497 + DCW -28214 + DCW -32768 + DCW 32767 + DCW 13461 + DCW -28419 + DCW 4680 + DCW -11377 + DCW 15801 + DCW 9599 + DCW -7498 + DCW -19806 + DCW 8630 + DCW 24482 + DCW -32768 + DCW 10480 + DCW 12832 + DCW -17944 + DCW 13901 + DCW -2432 + DCW -1770 + DCW -8442 + DCW 13033 + DCW -2365 + DCW -20338 + DCW 32767 + DCW -13822 + DCW -16325 + DCW 11914 + DCW -10350 + DCW 12300 + DCW -340 + DCW 0 + DCW -13163 + DCW 7502 + DCW 10727 + DCW -19743 + DCW 24033 + DCW -11251 + DCW -16602 + DCW 18133 + DCW -2696 + DCW -1229 + DCW -7305 + DCW 8169 + DCW 2826 + DCW -780 + DCW 1308 + DCW -18565 + DCW 10362 + DCW 7502 + DCW -3112 + DCW 2495 + DCW -8001 + DCW -923 + DCW 2332 + DCW 12736 + DCW -4064 + DCW -11415 + DCW 9477 + DCW -8307 + DCW 67 + DCW 7418 + DCW -2575 + DCW 1111 + DCW -654 + DCW 2285 + DCW -11792 + DCW 9645 + DCW 6890 + DCW -16833 + DCW 16204 + DCW -7028 + DCW -10844 + DCW 11427 + DCW -2298 + DCW 3694 + DCW -851 + DCW 3917 + DCW -11528 + DCW -143 + DCW 16699 + DCW -17671 + DCW 9817 + DCW 1677 + DCW -12291 + DCW 9867 + DCW -3258 + DCW 3409 + DCW -2961 + DCW 3753 + DCW -3606 + DCW -5686 + DCW 7519 + DCW -9435 + DCW 12069 + DCW 3103 + DCW -10249 + DCW 1241 + DCW 2818 + DCW 507 + DCW -5254 + DCW 7301 + DCW -9549 + DCW 226 + DCW 10303 + DCW -7255 + DCW 5464 + DCW -520 + DCW -2415 + DCW -210 + DCW 994 + DCW -5716 + DCW -2747 + DCW 16208 + DCW -8362 + DCW -4093 + DCW 12476 + DCW -9712 + DCW -5053 + DCW 5066 + DCW -2508 + DCW 3183 + DCW 1799 + DCW -3946 + DCW -3187 + DCW 8156 + DCW 4890 + DCW -12107 + DCW 7573 + DCW -8454 + DCW -2873 + DCW 16183 + DCW -7712 + DCW 3279 + DCW -7267 + DCW 3200 + DCW 3493 + DCW -4751 + DCW 10433 + DCW -17671 + DCW 3409 + DCW 9003 + DCW -4625 + DCW 5665 + DCW -5368 + DCW 2269 + DCW -3393 + DCW 2558 + DCW 75 + DCW -6974 + DCW 8567 + DCW -5137 + DCW 579 + DCW 5795 + DCW -4047 + DCW -491 + DCW 2998 + DCW -3221 + DCW -3590 + DCW 6693 + DCW -5007 + DCW -3963 + DCW 8140 + DCW 2080 + DCW -5561 + DCW 2214 + DCW 730 + DCW -6898 + DCW 8722 + DCW 164 + DCW -5598 + DCW 5963 + DCW -3082 + DCW -4856 + DCW 3409 + DCW 2881 + DCW -1925 + DCW -323 + DCW -1497 + DCW -1858 + DCW 235 + DCW 4525 + DCW 264 + DCW -2831 + DCW 1929 + DCW -6831 + DCW 5867 + DCW 3304 + DCW -2822 + DCW 3535 + DCW -7204 + DCW 3162 + DCW -1552 + DCW 524 + DCW 1124 + DCW -4206 + DCW 8454 + DCW -4336 + DCW -1355 + DCW -159 + DCW -2831 + DCW 3980 + DCW 415 + DCW 1673 + DCW -5330 + DCW 2218 + DCW 1891 + DCW -3309 + DCW 6198 + DCW -4114 + DCW -2273 + DCW 3145 + DCW -6529 + DCW 4424 + DCW 12178 + DCW -13168 + DCW -5108 + DCW 13901 + DCW -6974 + DCW -612 + DCW -193 + DCW -7318 + DCW 9721 + DCW 1610 + DCW -8068 + DCW 445 + DCW 8387 + DCW -2910 + DCW -7272 + DCW 6622 + DCW -1598 + DCW -424 + DCW 3057 + DCW -7494 + DCW 1208 + DCW 8026 + DCW -1568 + DCW -3414 + DCW 2885 + DCW -4235 + DCW -3443 + DCW 6261 + DCW 981 + DCW -4336 + DCW 3732 + DCW 4453 + DCW -7104 + DCW 164 + DCW 3430 + DCW -3770 + DCW 4114 + DCW 3992 + DCW -8462 + DCW -1493 + DCW 3824 + DCW -5691 + DCW 6311 + DCW 1237 + DCW -10249 + DCW 3145 + DCW 4827 + DCW 3099 + DCW -2223 + DCW 3296 + DCW 1199 + DCW -6445 + DCW 4168 + DCW -5875 + DCW 663 + DCW 7351 + DCW -6156 + DCW 205 + DCW 3837 + DCW -4307 + DCW -7414 + DCW 7171 + DCW 3363 + DCW -6848 + DCW 5200 + DCW -2114 + DCW -2504 + DCW 6055 + DCW -2130 + DCW -2046 + DCW 2940 + DCW 587 + DCW -3606 + DCW 1484 + DCW 528 + DCW -516 + DCW 2478 + DCW -973 + DCW -1241 + DCW -2789 + DCW -918 + DCW -247 + DCW 5095 + DCW 1690 + DCW -7624 + DCW 956 + DCW 4013 + DCW -2273 + DCW 176 + DCW 3632 + DCW -2537 + DCW 1942 + DCW -1233 + DCW -3858 + DCW 4546 + DCW -361 + DCW -1455 + DCW -256 + DCW 1174 + DCW -2759 + DCW -2168 + DCW 6089 + DCW 994 + DCW -1795 + DCW -839 + DCW -3544 + DCW -1078 + DCW 6169 + DCW 1036 + DCW -4286 + DCW 2537 + DCW -256 + DCW 470 + DCW 3179 + DCW -2894 + DCW -3866 + DCW 688 + DCW 876 + DCW -923 + DCW 3221 + DCW -335 + DCW -1141 + DCW 1845 + DCW -243 + DCW -2407 + DCW -3263 + DCW 763 + DCW 470 + DCW 3439 + DCW 2453 + DCW -4617 + DCW 2705 + DCW 2206 + DCW -2797 + DCW 403 + DCW -3904 + DCW 168 + DCW 1086 + DCW 2160 + DCW 2118 + DCW -6093 + DCW 3107 + DCW -1002 + DCW -155 + DCW 5171 + DCW -5997 + DCW -2914 + DCW 2499 + DCW 4575 + DCW 13 + DCW 2285 + DCW -5041 + DCW -5196 + DCW 10111 + DCW -3061 + DCW -1648 + DCW -1300 + DCW 3967 + DCW 3690 + DCW -9406 + DCW 1300 + DCW 281 + DCW 7439 + DCW -4105 + DCW -4399 + DCW 1887 + DCW -3359 + DCW 6483 + DCW -6194 + DCW 8068 + DCW -2088 + DCW -4311 + DCW 4068 + DCW -10182 + DCW 9482 + DCW -830 + DCW -1770 + DCW 2487 + DCW 512 + DCW -3216 + DCW 474 + DCW 7590 + DCW -7913 + DCW 5137 + DCW -4139 + DCW -4860 + DCW 5183 + DCW 2013 + DCW -981 + DCW -1522 + DCW 5171 + DCW -7573 + DCW 4898 + DCW -13 + DCW -2466 + DCW -969 + DCW -1271 + DCW 6911 + DCW -5883 + DCW 5477 + DCW -4395 + DCW 1963 + DCW -356 + DCW -1791 + DCW -134 + DCW -7687 + DCW 14149 + DCW -8819 + DCW 8026 + DCW -348 + DCW -8546 + DCW 7561 + DCW -6986 + DCW 4474 + DCW -7045 + DCW 10513 + DCW -4831 + DCW -2923 + DCW 10643 + DCW -12929 + DCW 10001 + DCW -5703 + DCW -751 + DCW 4298 + DCW -5259 + DCW 2017 + DCW -6110 + DCW 11582 + DCW -3661 + DCW 84 + DCW 3284 + DCW -7884 + DCW 3862 + DCW -6936 + DCW 9171 + DCW -2520 + DCW 855 + DCW 3749 + DCW -7511 + DCW 5372 + DCW -5628 + DCW 4399 + DCW -2579 + DCW 3263 + DCW -1891 + DCW -3996 + DCW 4982 + DCW -7020 + DCW 8072 + DCW -2273 + DCW -2193 + DCW 1011 + DCW 461 + DCW 788 + DCW -2986 + DCW 5686 + DCW -2562 + DCW 164 + DCW -3812 + DCW 692 + DCW 6152 + DCW -4558 + DCW 4043 + DCW -2789 + DCW -2604 + DCW -1887 + DCW 2013 + DCW 3317 + DCW -4235 + DCW 8400 + DCW -6315 + DCW -3225 + DCW 205 + DCW 4277 + DCW 5514 + DCW -6336 + DCW 5774 + DCW -10211 + DCW 700 + DCW 4969 + DCW -3141 + DCW 4567 + DCW 4 + DCW 2998 + DCW -8148 + DCW 1355 + DCW 197 + DCW -948 + DCW 5900 + DCW -4353 + DCW 2894 + DCW -4445 + DCW -474 + DCW 315 + DCW 6039 + DCW -1858 + DCW -10618 + DCW 15231 + DCW -10131 + DCW -2294 + DCW 9913 + DCW -3502 + DCW 428 + DCW -3564 + DCW 4999 + DCW -4349 + DCW -277 + DCW 3388 + DCW -914 + DCW 155 + DCW 323 + DCW 315 + DCW -5984 + DCW 5984 + DCW 113 + DCW -1598 + DCW 4064 + DCW -7729 + DCW 705 + DCW 3745 + DCW -2629 + DCW 2340 + DCW 3237 + DCW -5896 + DCW -1631 + DCW 6680 + DCW -7251 + DCW 3036 + DCW 9507 + DCW -797 + DCW -10790 + DCW -6181 + DCW 14258 + DCW -11985 + DCW 3984 + DCW 15206 + DCW -15042 + DCW 629 + DCW -394 + DCW -3007 + DCW 10706 + DCW -1032 + DCW -5770 + DCW 7771 + DCW -12237 + DCW 243 + DCW 9762 + DCW -7322 + DCW 12723 + DCW -10756 + DCW -4248 + DCW 8026 + DCW -7297 + DCW 9310 + DCW -3757 + DCW -2030 + DCW 4776 + DCW -6643 + DCW -3024 + DCW 11901 + DCW -939 + DCW -9557 + DCW 7905 + DCW -7901 + DCW 6110 + DCW 1732 + DCW -7561 + DCW 8567 + DCW -9435 + DCW 3594 + DCW 5108 + DCW -3355 + DCW 2185 + DCW -3367 + DCW -3128 + DCW 5519 + DCW 105 + DCW -3544 + DCW 6827 + DCW -9813 + DCW 2948 + DCW 7674 + DCW -10136 + DCW 7871 + DCW 340 + DCW -9062 + DCW 2680 + DCW 3892 + DCW -960 + DCW 2873 + DCW 143 + DCW -5171 + DCW 2353 + DCW -4860 + DCW 3866 + DCW 3460 + DCW -2906 + DCW 1812 + DCW -8345 + DCW 6492 + DCW 2680 + DCW -1631 + DCW 3753 + DCW -7330 + DCW -1078 + DCW 5590 + DCW -2181 + DCW -4441 + DCW 7523 + DCW -4919 + DCW 96 + DCW 6177 + DCW -3787 + DCW 2223 + DCW -5951 + DCW 2877 + DCW 2038 + DCW -3787 + DCW 3984 + DCW -2504 + DCW 352 + DCW 2025 + DCW -4944 + DCW 2969 + DCW 3824 + DCW -7942 + DCW 3007 + DCW 147 + DCW -4357 + DCW 9754 + DCW -46 + DCW -5456 + DCW 2231 + DCW -4089 + DCW -440 + DCW 8844 + DCW -4378 + DCW -1640 + DCW -1262 + DCW -3850 + DCW 10320 + DCW -5435 + DCW -1388 + DCW 5393 + DCW -11218 + DCW 6777 + DCW 7532 + DCW -9385 + DCW 2881 + DCW 2743 + DCW -6529 + DCW 3309 + DCW 1904 + DCW -688 + DCW 533 + DCW -4047 + DCW 2290 + DCW -2399 + DCW 3418 + DCW 985 + DCW -4479 + DCW 8806 + DCW -11662 + DCW -1329 + DCW 10907 + DCW -5733 + DCW 155 + DCW 1724 + DCW -1069 + DCW -4298 + DCW 8177 + DCW -767 + DCW -7112 + DCW 8026 + DCW -4349 + DCW -562 + DCW 2843 + DCW -1124 + DCW -654 + DCW -2231 + DCW 4365 + DCW -746 + DCW -1296 + DCW 1833 + DCW -5305 + DCW 4416 + DCW 4126 + DCW -7611 + DCW 4583 + DCW 415 + DCW -5649 + DCW 4001 + DCW -138 + DCW -1791 + DCW 3028 + DCW -1614 + DCW -1728 + DCW 3200 + DCW -218 + DCW 881 + DCW -671 + DCW -1027 + DCW -973 + DCW -2449 + DCW 4994 + DCW -356 + DCW -4256 + DCW 4932 + DCW -2759 + DCW -1623 + DCW 4437 + DCW -5103 + DCW 2625 + DCW 3116 + DCW -4739 + DCW 1535 + DCW 3946 + DCW -4932 + DCW -2164 + DCW 5292 + DCW -1157 + DCW 2239 + DCW -2239 + DCW -2462 + DCW 2193 + DCW -3032 + DCW 3485 + DCW -3036 + DCW 2671 + DCW 2088 + DCW -9645 + DCW 9477 + DCW -92 + DCW -4760 + DCW 6039 + DCW -4856 + DCW -2365 + DCW 4424 + DCW 595 + DCW -3917 + DCW 6320 + DCW -2000 + DCW -7758 + DCW 7649 + DCW -1120 + DCW -2713 + DCW 3028 + DCW 256 + DCW -1749 + DCW -2059 + DCW 2885 + DCW -1074 + DCW -1103 + DCW 3778 + DCW -2248 + DCW 742 + DCW 449 + DCW -3351 + DCW 2839 + DCW 1107 + DCW -2768 + DCW -818 + DCW 3061 + DCW -3351 + DCW -1023 + DCW 4563 + DCW -2302 + DCW 457 + DCW -218 + DCW -1313 + DCW 939 + DCW 1178 + DCW 700 + DCW -2831 + DCW 2743 + DCW -432 + DCW -4655 + DCW 6722 + DCW -902 + DCW -3632 + DCW 4139 + DCW -2344 + DCW -1543 + DCW 1409 + DCW 331 + DCW -835 + DCW 2290 + DCW -2441 + DCW -2789 + DCW 5510 + DCW -1187 + DCW -927 + DCW 562 + DCW 952 + DCW 495 + DCW -3313 + DCW 4915 + DCW -2378 + DCW -2504 + DCW 3728 + DCW -4835 + DCW 5967 + DCW -436 + DCW -5653 + DCW 3682 + DCW -1455 + DCW 256 + DCW -377 + DCW 2680 + DCW -730 + DCW -3590 + DCW 2759 + DCW 554 + DCW 17 + DCW 294 + DCW -545 + DCW -1744 + DCW 1279 + DCW 340 + DCW -1300 + DCW 4441 + DCW -3095 + DCW -4902 + DCW 4604 + DCW -398 + DCW -671 + DCW 1627 + DCW -2046 + DCW -29 + DCW 608 + DCW -587 + DCW 2843 + DCW 1329 + DCW -2353 + DCW 457 + DCW 449 + DCW 1975 + DCW -4072 + DCW -5510 + DCW 3602 + DCW -637 + DCW 2663 + DCW 3661 + DCW -4101 + DCW 3866 + DCW 80 + DCW -5636 + DCW 3007 + DCW -1610 + DCW -3380 + DCW 914 + DCW 1602 + DCW 3158 + DCW 1036 + DCW 130 + DCW -2747 + DCW -1782 + DCW 2931 + DCW -2302 + DCW -3225 + DCW 5179 + DCW 1262 + DCW -5095 + DCW 5888 + DCW -637 + DCW -3183 + DCW 4621 + DCW -8387 + DCW 5795 + DCW 2084 + DCW -9964 + DCW 7125 + DCW 759 + DCW -1019 + DCW 839 + DCW 419 + DCW -352 + DCW -2646 + DCW -851 + DCW -75 + DCW 9880 + DCW -3363 + DCW -12191 + DCW 6395 + DCW 8391 + DCW -2688 + DCW -5238 + DCW 2759 + DCW -1484 + DCW -1023 + DCW 231 + DCW -5363 + DCW 11046 + DCW 1778 + DCW -10635 + DCW 6047 + DCW 847 + DCW -3615 + DCW 2042 + DCW -2684 + DCW 969 + DCW 3883 + DCW -7364 + DCW 1090 + DCW 10924 + DCW -8244 + DCW -1015 + DCW 6550 + DCW -7812 + DCW 3749 + DCW -4 + DCW -5594 + DCW 8777 + DCW -1111 + DCW -6475 + DCW 5674 + DCW 1011 + DCW -6223 + DCW 3082 + DCW 1904 + DCW -3653 + DCW 2214 + DCW -1812 + DCW -2323 + DCW 6437 + DCW -503 + DCW -4663 + DCW 6940 + DCW -1614 + DCW -8697 + DCW 7523 + DCW 1241 + DCW -3946 + DCW 4416 + DCW -4256 + DCW 143 + DCW 4449 + DCW -4906 + DCW 3556 + DCW 1967 + DCW -7666 + DCW 1187 + DCW 1359 + DCW 516 + DCW 3544 + DCW -3900 + DCW 143 + DCW 4034 + DCW -4709 + DCW -1405 + DCW 6370 + DCW -1048 + DCW -5233 + DCW 2302 + DCW 600 + DCW -759 + DCW -470 + DCW -2818 + DCW 4047 + DCW 2185 + DCW -5225 + DCW 1656 + DCW 4177 + DCW -5556 + DCW 952 + DCW 5825 + DCW -2814 + DCW 2722 + DCW -1535 + DCW -5493 + DCW 5200 + DCW -2407 + DCW -4571 + DCW 6181 + DCW -868 + DCW -4521 + DCW 3736 + DCW 1283 + DCW 449 + DCW 1837 + DCW -5011 + DCW -1770 + DCW 3879 + DCW -2952 + DCW 587 + DCW 6697 + DCW -3330 + DCW -2541 + DCW 3137 + DCW -1958 + DCW -629 + DCW 872 + DCW -1795 + DCW 1967 + DCW 2462 + DCW -3154 + DCW 1002 + DCW 1887 + DCW -4579 + DCW -558 + DCW 1300 + DCW 126 + DCW 893 + DCW -1124 + DCW 1573 + DCW 3837 + DCW -1434 + DCW -1929 + DCW 2097 + DCW -4525 + DCW -3154 + DCW 3632 + DCW -365 + DCW 3674 + DCW 176 + DCW -4936 + DCW 4173 + DCW 621 + DCW -5108 + DCW 738 + DCW 1292 + DCW -2432 + DCW 3007 + DCW 3212 + DCW -1095 + DCW 1078 + DCW -3351 + DCW -3095 + DCW 2810 + DCW -247 + DCW -3019 + DCW 2470 + DCW 2319 + DCW -1086 + DCW 2671 + DCW -545 + DCW -2860 + DCW -533 + DCW -2931 + DCW 2478 + DCW 4344 + DCW -3703 + DCW 700 + DCW 2445 + DCW -2738 + DCW 1975 + DCW 256 + DCW -2394 + DCW 1334 + DCW -3422 + DCW -763 + DCW 7389 + DCW -973 + DCW -4424 + DCW 2302 + DCW -470 + DCW -725 + DCW 1048 + DCW -1744 + DCW 1522 + DCW 1325 + DCW -3317 + DCW 784 + DCW 3636 + DCW -3296 + DCW -797 + DCW 3988 + DCW -2269 + DCW -1229 + DCW 533 + DCW -247 + DCW 1988 + DCW 239 + DCW -1229 + DCW 1132 + DCW -566 + DCW -3040 + DCW 1652 + DCW 1153 + DCW -562 + DCW 801 + DCW -1430 + DCW -17 + DCW 1069 + DCW -1581 + DCW 1518 + DCW 2097 + DCW -4877 + DCW 365 + DCW 3674 + DCW -3871 + DCW 2424 + DCW 2701 + DCW -4198 + DCW 1342 + DCW -365 + DCW -839 + DCW 4047 + DCW -315 + DCW -2914 + DCW 839 + DCW 302 + DCW -1505 + DCW 1296 + DCW -956 + DCW 1095 + DCW 956 + DCW -3573 + DCW 3715 + DCW 1963 + DCW -4915 + DCW 55 + DCW 2550 + DCW -361 + DCW 1023 + DCW 277 + DCW -2764 + DCW 1048 + DCW 67 + DCW -2277 + DCW 2575 + DCW 432 + DCW -2214 + DCW 935 + DCW 1078 + DCW 591 + DCW 931 + DCW -2051 + DCW -2545 + DCW 1740 + DCW -134 + DCW -63 + DCW 1849 + DCW -889 + DCW -50 + DCW 1220 + DCW 394 + DCW -935 + DCW -2407 + DCW -352 + DCW 2864 + DCW -868 + DCW -1409 + DCW 2264 + DCW -663 + DCW -1405 + DCW 1082 + DCW 843 + DCW 13 + DCW -1002 + DCW -2260 + DCW 876 + DCW 3443 + DCW -1988 + DCW 784 + DCW 3405 + DCW -6202 + DCW 17 + DCW 4508 + DCW -897 + DCW -1539 + DCW -5326 + DCW 4332 + DCW 8202 + DCW -6546 + DCW -6546 + DCW 8232 + DCW 2722 + DCW -9133 + DCW 218 + DCW 6705 + DCW 3430 + DCW -7125 + DCW -4760 + DCW 8974 + DCW 1728 + DCW -8756 + DCW 298 + DCW 8421 + DCW -2696 + DCW -6311 + DCW 1262 + DCW 8198 + DCW 1514 + DCW -14044 + DCW 1686 + DCW 11629 + DCW -5586 + DCW -5133 + DCW 5934 + DCW 2281 + DCW -4558 + DCW -721 + DCW 814 + DCW 4240 + DCW -2596 + DCW -8869 + DCW 9314 + DCW 3233 + DCW -5301 + DCW 3720 + DCW -2998 + DCW -2524 + DCW 5288 + DCW -1996 + DCW -6399 + DCW 7754 + DCW 3896 + DCW -11062 + DCW -147 + DCW 9129 + DCW 411 + DCW -8366 + DCW -1732 + DCW 9519 + DCW 1329 + DCW -10706 + DCW 2206 + DCW 10576 + DCW -5967 + DCW -7901 + DCW 5527 + DCW 8257 + DCW -5875 + DCW -11293 + DCW 7301 + DCW 13830 + DCW -5691 + DCW -13721 + DCW 9804 + DCW 6299 + DCW -13285 + DCW 889 + DCW 9712 + DCW 3057 + DCW -10052 + DCW -8538 + DCW 14304 + DCW 6072 + DCW -15168 + DCW 1648 + DCW 10446 + DCW -5259 + DCW -7716 + DCW 1275 + DCW 12547 + DCW -713 + DCW -14879 + DCW 3892 + DCW 10626 + DCW -3187 + DCW -7028 + DCW 2948 + DCW 6932 + DCW -6886 + DCW -8052 + DCW 9364 + DCW 7871 + DCW -8240 + DCW -6445 + DCW 6684 + DCW 5301 + DCW -5967 + DCW -4290 + DCW 7330 + DCW 755 + DCW -8832 + DCW 1459 + DCW 7984 + DCW 2134 + DCW -7871 + DCW -2931 + DCW 9473 + DCW -2038 + DCW -7137 + DCW 5204 + DCW 2466 + DCW -3489 + DCW -2789 + DCW 864 + DCW 8655 + DCW -1447 + DCW -11595 + DCW 6273 + DCW 5997 + DCW -8588 + DCW 382 + DCW 5573 + DCW -755 + DCW -5590 + DCW -1069 + DCW 7787 + DCW 1438 + DCW -6789 + DCW -990 + DCW 5447 + DCW 1199 + DCW -6085 + DCW -361 + DCW 6584 + DCW -2139 + DCW -4705 + DCW 3883 + DCW 2550 + DCW -3107 + DCW -3405 + DCW 1489 + DCW 6626 + DCW -4001 + DCW -5535 + DCW 6718 + DCW 1556 + DCW -3221 + DCW -1942 + DCW 2273 + DCW 4760 + DCW -6034 + DCW -4760 + DCW 8379 + DCW 1380 + DCW -6731 + DCW 2583 + DCW 2160 + DCW -1468 + DCW -1300 + DCW -952 + DCW 4932 + DCW -751 + DCW -7347 + DCW 2210 + DCW 7498 + DCW -1048 + DCW -6487 + DCW 176 + DCW 5858 + DCW -1820 + DCW -4076 + DCW 3460 + DCW 2185 + DCW -4051 + DCW -4269 + DCW 6148 + DCW 5959 + DCW -5774 + DCW -4340 + DCW 4282 + DCW 914 + DCW -3304 + DCW 612 + DCW 1254 + DCW 2420 + DCW -5561 + DCW -1103 + DCW 7884 + DCW -1833 + DCW -3065 + DCW -835 + DCW 1111 + DCW 1061 + DCW -1585 + DCW -193 + DCW 4495 + DCW -2545 + DCW -4948 + DCW 5489 + DCW 1929 + DCW -2424 + DCW -1988 + DCW 239 + DCW 3082 + DCW -814 + DCW -2608 + DCW 4240 + DCW -1082 + DCW -4403 + DCW 2596 + DCW 1895 + DCW 948 + DCW -3523 + DCW -1719 + DCW 4198 + DCW 17 + DCW -1313 + DCW 1493 + DCW 361 + DCW -1417 + DCW -4017 + DCW 2273 + DCW 5271 + DCW -3233 + DCW -3921 + DCW 1912 + DCW 2487 + DCW -931 + DCW -2164 + DCW 1614 + DCW 2885 + DCW -5477 + DCW -734 + DCW 5917 + DCW -973 + DCW -3837 + DCW 554 + DCW 1631 + DCW 2000 + DCW -2235 + DCW -1908 + DCW 4772 + DCW -2231 + DCW -2847 + DCW 931 + DCW 3166 + DCW 541 + DCW -3984 + DCW 935 + DCW 3187 + DCW -2768 + DCW -1556 + DCW 2625 + DCW 1199 + DCW -1929 + DCW -3036 + DCW 3472 + DCW 818 + DCW -3913 + DCW -189 + DCW 12081 + DCW 969 + DCW -13855 + DCW -3988 + DCW 7976 + DCW 9410 + DCW -8924 + DCW -4705 + DCW 4051 + DCW 3476 + DCW 1069 + DCW -9494 + DCW 2701 + DCW 9557 + DCW -8588 + DCW -2235 + DCW 7947 + DCW -5359 + DCW 608 + DCW 2034 + DCW -2290 + DCW 3405 + DCW -4940 + DCW 751 + DCW 6932 + DCW -4688 + DCW -3980 + DCW 486 + DCW 4458 + DCW 1011 + DCW -3527 + DCW 843 + DCW 130 + DCW -2919 + DCW 1782 + DCW 4009 + DCW -956 + DCW 130 + DCW -4701 + DCW 1539 + DCW 4856 + DCW -3107 + DCW 2139 + DCW -2046 + DCW -2864 + DCW 1497 + DCW -893 + DCW 6118 + DCW -1598 + DCW -6932 + DCW 5808 + DCW 260 + DCW -1237 + DCW 2600 + DCW -2923 + DCW -285 + DCW 1568 + DCW -4294 + DCW 5208 + DCW 2139 + DCW -6554 + DCW 1736 + DCW -80 + DCW 1023 + DCW 579 + DCW -231 + DCW 231 + DCW -998 + DCW -902 + DCW 2692 + DCW 340 + DCW -2319 + DCW -549 + DCW -1707 + DCW 3980 + DCW 377 + DCW -2260 + DCW 1698 + DCW -25 + DCW -3011 + DCW 1107 + DCW 3632 + DCW 524 + DCW -3372 + DCW -3082 + DCW 3741 + DCW 327 + DCW -159 + DCW 1518 + DCW -2646 + DCW 1510 + DCW -2109 + DCW 168 + DCW 6504 + DCW -4571 + DCW -4143 + DCW 2239 + DCW 2080 + DCW -147 + DCW 155 + DCW -453 + DCW -222 + DCW -566 + DCW -3485 + DCW 4869 + DCW 2873 + DCW -4583 + DCW -1245 + DCW 595 + DCW 2411 + DCW 273 + DCW -1770 + DCW 1946 + DCW -1765 + DCW -2105 + DCW 1325 + DCW 1547 + DCW 1531 + DCW -2772 + DCW -2210 + DCW 3485 + DCW 675 + DCW -3162 + DCW 2248 + DCW 1635 + DCW -2629 + DCW -684 + DCW 2176 + DCW 1870 + DCW -1744 + DCW -2575 + DCW 2512 + DCW -575 + DCW -1602 + DCW 1166 + DCW -663 + DCW 2940 + DCW -2873 + DCW -2097 + DCW 5623 + DCW -2374 + DCW -3564 + DCW 3154 + DCW 981 + DCW 226 + DCW -830 + DCW -1011 + DCW 2919 + DCW -1115 + DCW -2449 + DCW 2910 + DCW 872 + DCW -1967 + DCW -1464 + DCW 1040 + DCW 3892 + DCW -3644 + DCW -1698 + DCW 2504 + DCW -1061 + DCW 281 + DCW -122 + DCW 1422 + DCW 201 + DCW -3074 + DCW 407 + DCW 4244 + DCW -1241 + DCW -2944 + DCW 1715 + DCW 155 + DCW -84 + DCW -1141 + DCW 432 + DCW 3330 + DCW -3971 + DCW -1715 + DCW 3401 + DCW 1539 + DCW -386 + DCW -3824 + DCW 1753 + DCW 1422 + DCW -2969 + DCW 1640 + DCW 2420 + DCW -2747 + DCW -1883 + DCW 1921 + DCW 1895 + DCW 889 + DCW -2764 + DCW -1199 + DCW 3485 + DCW -1489 + DCW -1686 + DCW 3506 + DCW -910 + DCW -1740 + DCW -1518 + DCW 2390 + DCW 2495 + DCW -3560 + DCW -1128 + DCW 1086 + DCW 2202 + DCW -583 + DCW -826 + DCW 1325 + DCW -172 + DCW -3363 + DCW 1153 + DCW 4915 + DCW -1606 + DCW -3544 + DCW 180 + DCW 2508 + DCW -377 + DCW -637 + DCW 1296 + DCW 369 + DCW -3120 + DCW -637 + DCW 3963 + DCW 985 + DCW -1912 + DCW -4131 + DCW 2323 + DCW 3292 + DCW -1988 + DCW 1409 + DCW -814 + DCW -851 + DCW -725 + DCW 688 + DCW 2453 + DCW -981 + DCW -1069 + DCW -1728 + DCW 2516 + DCW 776 + DCW -2667 + DCW 734 + DCW 2172 + DCW -1086 + DCW -4315 + DCW 3355 + DCW 2810 + DCW -2738 + DCW 289 + DCW -1547 + DCW 1245 + DCW 2109 + DCW -2256 + DCW 1417 + DCW -218 + DCW -2252 + DCW 835 + DCW 2445 + DCW -1006 + DCW -2592 + DCW 1334 + DCW 1191 + DCW -164 + DCW -1560 + DCW 155 + DCW 1434 + DCW -1132 + DCW -13 + DCW -38 + DCW 2030 + DCW 436 + DCW -5087 + DCW 3711 + DCW 2101 + DCW -2717 + DCW 889 + DCW -709 + DCW 1472 + DCW -1053 + DCW -1438 + DCW 1690 + DCW 1916 + DCW -1937 + DCW -2415 + DCW 3086 + DCW -533 + DCW -1195 + DCW 1245 + DCW 382 + DCW -377 + DCW -1388 + DCW 1204 + DCW 247 + DCW -595 + DCW 470 + DCW -403 + DCW 1313 + DCW -1300 + DCW -1283 + DCW 2290 + DCW -893 + DCW -1556 + DCW 2063 + DCW 2520 + DCW -2189 + DCW -3309 + DCW 1845 + DCW 977 + DCW -486 + DCW 1396 + DCW 88 + DCW -1254 + DCW -872 + DCW -306 + DCW 1728 + DCW 1942 + DCW -2076 + DCW -1556 + DCW 566 + DCW 1166 + DCW 684 + DCW -1095 + DCW -50 + DCW -348 + DCW -1455 + DCW 1698 + DCW 1635 + DCW -1149 + DCW -491 + DCW -730 + DCW 2067 + DCW 973 + DCW -2654 + DCW 835 + DCW 1740 + DCW -2982 + DCW -1992 + DCW 3556 + DCW 2822 + DCW -1942 + DCW -4441 + DCW 931 + DCW 2621 + DCW 742 + DCW 516 + DCW -3028 + DCW -549 + DCW 1174 + DCW 470 + DCW 2558 + DCW -1371 + DCW -3699 + DCW 923 + DCW 2353 + DCW 281 + DCW -415 + DCW -1984 + DCW 2000 + DCW 3380 + DCW -7305 + DCW -126 + DCW 8513 + DCW -3380 + DCW -5762 + DCW 2491 + DCW 2952 + DCW -667 + DCW -130 + DCW -1837 + DCW -315 + DCW 1862 + DCW -1367 + DCW 1417 + DCW 2453 + DCW -3711 + DCW -1812 + DCW 1992 + DCW 956 + DCW 2344 + DCW -1858 + DCW -3942 + DCW 2533 + DCW 1564 + DCW -990 + DCW 2399 + DCW -2327 + DCW -3221 + DCW 2751 + DCW 528 + DCW 1526 + DCW -281 + DCW -4344 + DCW 2260 + DCW 2449 + DCW -2327 + DCW 1199 + DCW 1749 + DCW -3200 + DCW -759 + DCW 1522 + DCW 415 + DCW 3598 + DCW -2789 + DCW -4428 + DCW 3778 + DCW 923 + DCW -2675 + DCW 1992 + DCW 1145 + DCW -4554 + DCW 1677 + DCW 2084 + DCW -1136 + DCW 1225 + DCW -2738 + DCW 721 + DCW 3502 + DCW -2042 + DCW -264 + DCW 1665 + DCW -2273 + DCW -361 + DCW 1396 + DCW 482 + DCW 1355 + DCW -3137 + DCW -1401 + DCW 3678 + DCW -512 + DCW -650 + DCW 1032 + DCW -2571 + DCW -214 + DCW 1921 + DCW -474 + DCW 2512 + DCW -1040 + DCW -5057 + DCW 2256 + DCW 4957 + DCW -2466 + DCW -1837 + DCW 2524 + DCW -1690 + DCW 1107 + DCW -977 + DCW 549 + DCW 4164 + DCW -5057 + DCW -2474 + DCW 2185 + DCW 1765 + DCW -185 + DCW -906 + DCW -222 + DCW -1178 + DCW 1539 + DCW 1464 + DCW 1568 + DCW -1359 + DCW -6114 + DCW 2457 + DCW 9343 + DCW -876 + DCW -6601 + DCW -1157 + DCW 1355 + DCW 1568 + DCW -344 + DCW 327 + DCW 721 + DCW -4282 + DCW -864 + DCW 4529 + DCW 1187 + DCW -3137 + DCW -1124 + DCW 2529 + DCW -977 + DCW -281 + DCW 373 + DCW 449 + DCW 2634 + DCW -5644 + DCW 155 + DCW 6479 + DCW -3787 + DCW -923 + DCW 2235 + DCW -1141 + DCW -985 + DCW 4 + DCW 1480 + DCW 902 + DCW -2709 + DCW -1870 + DCW 3883 + DCW -92 + DCW -1220 + DCW 424 + DCW -675 + DCW 1883 + DCW -1493 + DCW -138 + DCW 1375 + DCW -1736 + DCW 1334 + DCW 1279 + DCW -2399 + DCW -306 + DCW 398 + DCW 654 + DCW 1900 + DCW -3116 + DCW -1422 + DCW 2877 + DCW 658 + DCW -793 + DCW -2202 + DCW 725 + DCW 3095 + DCW -1602 + DCW -461 + DCW 369 + DCW -516 + DCW 1518 + DCW -944 + DCW -67 + DCW 1170 + DCW -1208 + DCW -512 + DCW 1321 + DCW -822 + DCW -189 + DCW 449 + DCW -1166 + DCW 2105 + DCW -1296 + DCW -1547 + DCW 3409 + DCW -1661 + DCW -1346 + DCW 1430 + DCW -205 + DCW 1677 + DCW -994 + DCW -1510 + DCW 1929 + DCW 277 + DCW -969 + DCW -8 + DCW 1178 + DCW -465 + DCW -1417 + DCW 17 + DCW 935 + DCW 784 + DCW -1640 + DCW -822 + DCW 2847 + DCW 2151 + DCW -4965 + DCW -2327 + DCW 6185 + DCW 847 + DCW -3468 + DCW -1208 + DCW 1535 + DCW 1375 + DCW -1036 + DCW 25 + DCW 1237 + DCW -654 + DCW -1384 + DCW -80 + DCW 767 + DCW 327 + DCW -1170 + DCW 1912 + DCW -92 + DCW -3078 + DCW -218 + DCW 5284 + DCW 491 + DCW -8366 + DCW 4294 + DCW 6269 + DCW -6986 + DCW -3044 + DCW 9297 + DCW -767 + DCW -8760 + DCW 4181 + DCW 4189 + DCW -470 + DCW -5334 + DCW -1820 + DCW 9947 + DCW -3875 + DCW -9762 + DCW 9788 + DCW 4567 + DCW -9586 + DCW -516 + DCW 5573 + DCW 1476 + DCW -277 + DCW -5976 + DCW 3313 + DCW 3942 + DCW -8278 + DCW 6294 + DCW 1044 + DCW -5032 + DCW 2202 + DCW -621 + DCW 0 + DCW 1296 + DCW 583 + DCW -3674 + DCW 2688 + DCW -1099 + DCW -1552 + DCW 5959 + DCW -2097 + DCW -2793 + DCW 285 + DCW -122 + DCW 1996 + DCW 2294 + DCW -3409 + DCW -1803 + DCW 3363 + DCW -1115 + DCW 801 + DCW 755 + DCW -4512 + DCW 5028 + DCW 876 + DCW -7603 + DCW 4986 + DCW 2768 + DCW -3992 + DCW 2009 + DCW -814 + DCW -2269 + DCW 4915 + DCW -2764 + DCW -2696 + DCW 5724 + DCW -3795 + DCW -214 + DCW 1438 + DCW -1816 + DCW 2193 + DCW -1359 + DCW -101 + DCW 1392 + DCW -185 + DCW -2990 + DCW 3443 + DCW 1392 + DCW -4114 + DCW 2143 + DCW -1078 + DCW 1552 + DCW -612 + DCW -1065 + DCW 2642 + DCW -1292 + DCW -415 + DCW -461 + DCW 1589 + DCW -2348 + DCW 742 + DCW 3703 + DCW -4709 + DCW 591 + DCW 2462 + DCW -1317 + DCW -885 + DCW -315 + DCW 1719 + DCW 587 + DCW -1954 + DCW -1019 + DCW 4235 + DCW -1484 + DCW -5192 + DCW 5561 + DCW 784 + DCW -4013 + DCW 864 + DCW -801 + DCW 2814 + DCW 205 + DCW -2818 + DCW 1308 + DCW 1761 + DCW -575 + DCW -3036 + DCW 6114 + DCW -159 + DCW -8882 + DCW 2516 + DCW 5116 + DCW 1325 + DCW -2986 + DCW -2692 + DCW -243 + DCW 2730 + DCW -516 + DCW 331 + DCW 3661 + DCW -5959 + DCW -1099 + DCW 3112 + DCW 1635 + DCW 1497 + DCW -4885 + DCW -1061 + DCW 4282 + DCW -1669 + DCW 461 + DCW 4802 + DCW -4420 + DCW -4420 + DCW 1854 + DCW 3250 + DCW 3242 + DCW -2587 + DCW -4034 + DCW 1531 + DCW -247 + DCW 1854 + DCW 965 + DCW 1635 + DCW -1728 + DCW -9322 + DCW 9498 + DCW 2797 + DCW -3913 + DCW 1770 + DCW -3913 + DCW 2353 + DCW -1866 + DCW 2709 + DCW 1296 + DCW -1019 + DCW -956 + DCW -5766 + DCW 7636 + DCW 231 + DCW -2696 + DCW 277 + DCW -1329 + DCW 2982 + DCW -3573 + DCW 5447 + DCW -1895 + DCW -5368 + DCW 5229 + DCW -3854 + DCW 5095 + DCW 2776 + DCW -7896 + DCW -637 + DCW 2768 + DCW 2105 + DCW -558 + DCW 2030 + DCW -3757 + DCW -4781 + DCW 6261 + DCW 428 + DCW 2348 + DCW -2139 + DCW -6265 + DCW 4386 + DCW 323 + DCW 3057 + DCW -2998 + DCW 814 + DCW 2382 + DCW -7578 + DCW 6055 + DCW -445 + DCW -713 + DCW 398 + DCW -4068 + DCW 4089 + DCW -1807 + DCW 1258 + DCW 633 + DCW -323 + DCW 990 + DCW -4252 + DCW 4286 + DCW 1388 + DCW -2491 + DCW -629 + DCW -1916 + DCW 3879 + DCW -784 + DCW 2428 + DCW -2332 + DCW -5443 + DCW 6848 + DCW -3862 + DCW 3611 + DCW 1375 + DCW -6869 + DCW 3493 + DCW -323 + DCW 2139 + DCW -1296 + DCW 1111 + DCW -1824 + DCW -2231 + DCW 4734 + DCW -2025 + DCW 3187 + DCW -3560 + DCW -2411 + DCW 3866 + DCW -554 + DCW 1002 + DCW -1677 + DCW 2772 + DCW -3070 + DCW -1866 + DCW 3833 + DCW -1497 + DCW 2894 + DCW -3632 + DCW -1313 + DCW 3850 + DCW -1401 + DCW 218 + DCW -927 + DCW 2021 + DCW -1568 + DCW -1111 + DCW 3971 + DCW -1128 + DCW -1539 + DCW -1816 + DCW 2369 + DCW 742 + DCW -801 + DCW 1874 + DCW -4521 + DCW 839 + DCW 1447 + DCW -407 + DCW 3938 + DCW -3678 + DCW -1984 + DCW 688 + DCW 164 + DCW 2348 + DCW -273 + DCW 1199 + DCW -3690 + DCW -629 + DCW 3309 + DCW 138 + DCW 1048 + DCW -3246 + DCW 340 + DCW 164 + DCW 575 + DCW 1191 + DCW -1774 + DCW 1338 + DCW -2759 + DCW 2126 + DCW 2118 + DCW -3980 + DCW 2277 + DCW -600 + DCW -176 + DCW 2587 + DCW -1728 + DCW 533 + DCW -1258 + DCW -910 + DCW 1074 + DCW 830 + DCW 1703 + DCW -1996 + DCW -1984 + DCW -751 + DCW 2592 + DCW 302 + DCW 88 + DCW 608 + DCW -4621 + DCW 2843 + DCW 595 + DCW -235 + DCW 2759 + DCW -3879 + DCW -92 + DCW 1099 + DCW 1375 + DCW 403 + DCW -1979 + DCW 1065 + DCW -1006 + DCW 486 + DCW 1036 + DCW -1199 + DCW -38 + DCW 109 + DCW -491 + DCW -348 + DCW 1908 + DCW -1338 + DCW -952 + DCW 1434 + DCW -2415 + DCW 1879 + DCW 1464 + DCW -1703 + DCW 1157 + DCW -1694 + DCW 826 + DCW 717 + DCW 143 + DCW 1233 + DCW -3871 + DCW 2231 + DCW 1027 + DCW -1694 + DCW 2202 + DCW -285 + DCW -2990 + DCW -793 + DCW 4630 + DCW -1510 + DCW 264 + DCW -654 + DCW -3774 + DCW 4948 + DCW -893 + DCW -906 + DCW 2139 + DCW -1556 + DCW -1543 + DCW 516 + DCW 3887 + DCW -2629 + DCW -1841 + DCW 2143 + DCW -1279 + DCW 2017 + DCW -424 + DCW -1375 + DCW 843 + DCW -474 + DCW -570 + DCW 650 + DCW 2755 + DCW -3493 + DCW -713 + DCW 2294 + DCW -981 + DCW 1841 + DCW -985 + DCW -310 + DCW -1074 + DCW -59 + DCW 2202 + DCW -1371 + DCW 1459 + DCW 50 + DCW -3384 + DCW 1090 + DCW 2491 + DCW -1531 + DCW 478 + DCW 725 + DCW -2948 + DCW 1698 + DCW 1715 + DCW -2445 + DCW 1619 + DCW -583 + DCW -2025 + DCW 3237 + DCW -109 + DCW -1627 + DCW -478 + DCW 566 + DCW 1099 + DCW -382 + DCW 495 + DCW -1656 + DCW -226 + DCW 1220 + DCW -507 + DCW 1589 + DCW 38 + DCW -2139 + DCW -453 + DCW 2097 + DCW 457 + DCW -1510 + DCW 1103 + DCW -705 + DCW -474 + DCW 604 + DCW 520 + DCW 902 + DCW -1631 + DCW 55 + DCW -1241 + DCW 1187 + DCW 1359 + DCW -2449 + DCW 2378 + DCW -621 + DCW -2474 + DCW 801 + DCW 1895 + DCW -252 + DCW -470 + DCW -155 + DCW -2634 + DCW 1971 + DCW 1128 + DCW 1782 + DCW 63 + DCW -4760 + DCW 1053 + DCW 1967 + DCW -126 + DCW -419 + DCW -415 + DCW -75 + DCW -931 + DCW 1178 + DCW 2424 + DCW -2558 + DCW -1350 + DCW 1564 + DCW -197 + DCW 805 + DCW -872 + DCW -478 + DCW 1430 + DCW -818 + DCW -1204 + DCW 1984 + DCW 486 + DCW -1686 + DCW -134 + DCW 499 + DCW 1568 + DCW -1455 + DCW -1208 + DCW 1250 + DCW 327 + DCW -80 + DCW 143 + DCW -621 + DCW -1967 + DCW 2709 + DCW 2097 + DCW -671 + DCW -327 + DCW -4080 + DCW -889 + DCW 5217 + DCW 1250 + DCW 499 + DCW -3191 + DCW -6341 + DCW 6215 + DCW 1627 + DCW -700 + DCW 3854 + DCW -5296 + DCW -3669 + DCW 2441 + DCW 3128 + DCW 2210 + DCW 688 + DCW -6114 + DCW -1111 + DCW 2986 + DCW -595 + DCW 5024 + DCW -1820 + DCW -3133 + DCW -1489 + DCW -822 + DCW 6408 + DCW 88 + DCW -2831 + DCW -2298 + END + \ No newline at end of file diff --git a/PjtKEIL_StepSon/Src/principal.c b/PjtKEIL_StepSon/Src/principal.c new file mode 100644 index 0000000..d09be75 --- /dev/null +++ b/PjtKEIL_StepSon/Src/principal.c @@ -0,0 +1,28 @@ + + +#include "DriverJeuLaser.h" + + + +int main(void) +{ + +// =========================================================================== +// ============= INIT PERIPH (faites qu'une seule fois) ===================== +// =========================================================================== + +// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers +CLOCK_Configure(); + + + + + +//============================================================================ + + +while (1) + { + } +} + diff --git a/PjtKEIL_StepSon/Src/startup-rvds.s b/PjtKEIL_StepSon/Src/startup-rvds.s new file mode 100644 index 0000000..a7b631a --- /dev/null +++ b/PjtKEIL_StepSon/Src/startup-rvds.s @@ -0,0 +1,335 @@ +;******************** (C) COPYRIGHT 2011 STMicroelectronics ******************** +;* File Name : startup_stm32f10x_md.s +;* Author : MCD Application Team +;* Version : V3.5.0 +;* Date : 11-March-2011 +;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM +;* toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Configure the clock system +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. +; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, +; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE +; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING +; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1_2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD USART1_IRQHandler ; USART1 + DCD USART2_IRQHandler ; USART2 + DCD USART3_IRQHandler ; USART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + + LDR R0, =SystemInit + BLX R0 + +; +; Enable UsageFault, MemFault and Busfault interrupts +; +_SHCSR EQU 0xE000ED24 ; SHCSR is located at address 0xE000ED24 + LDR.W R0, =_SHCSR + LDR R1, [R0] ; Read CPACR + ORR R1, R1, #(0x7 << 16) ; Set bits 16,17,18 to enable usagefault, busfault, memfault interrupts + STR R1, [R0] ; Write back the modified value to the CPACR + DSB ; Wait for store to complete + +; +; Set priority grouping (PRIGROUP) in AIRCR to 3 (16 levels for group priority and 0 for subpriority) +; +_AIRCR EQU 0xE000ED0C +_AIRCR_VAL EQU 0x05FA0300 + LDR.W R0, =_AIRCR + LDR.W R1, =_AIRCR_VAL + STR R1,[R0] + +; +; Finaly, jump to main function (void main (void)) +; + LDR R0, =__main + BX R0 + ENDP + +SystemInit PROC + EXPORT SystemInit [WEAK] + BX LR + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] + EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_IRQHandler [WEAK] + EXPORT TIM1_UP_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTCAlarm_IRQHandler [WEAK] + EXPORT USBWakeUp_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +USB_HP_CAN1_TX_IRQHandler +USB_LP_CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_IRQHandler +TIM1_UP_IRQHandler +TIM1_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_IRQHandler +EXTI15_10_IRQHandler +RTCAlarm_IRQHandler +USBWakeUp_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE***** diff --git a/PjtKEIL_StepSon/StepSon.uvprojx b/PjtKEIL_StepSon/StepSon.uvprojx new file mode 100644 index 0000000..d0b5c10 --- /dev/null +++ b/PjtKEIL_StepSon/StepSon.uvprojx @@ -0,0 +1,1337 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Simu + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + + + CibleSondeKEIL + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + + + CibleSondeST + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.3.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + StepSon + 1 + 0 + 1 + 1 + 1 + + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + SARMCM3.DLL + -REMAP + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4100 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER + + .\Driver + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + Sources + + + principal.c + 1 + .\Src\principal.c + + + + + Sys + + + startup-rvds.s + 2 + .\Src\startup-rvds.s + + + + + Driver + + + DriverJeuLaser.lib + 4 + .\Driver\DriverJeuLaser.lib + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + + + + + + <Project Info> + + + + + + 0 + 1 + + + + +