Re: SAPI : change Voice
Posted: Thu Feb 08, 2024 2:07 pm
Dear Enrico,
Here it builds ok with Harbour but events are not working
Here it builds ok with Harbour but events are not working
www.FiveTechSoft.com
https://fivetechsupport.com/forums/
Code: Select all | Expand
oNarrator := CreateObject( "Sapi.SPVoice" , "WithEvents")
compile el mismo y no hace nada porque no se utilizo ningun evento solo se asigno un valor.Este ejemplo es Harbour
Code: Select all | Expand
oVoice:EventInterests = 327679
supongamos que tenemos un texto y este sea relatado por una voz femenina pero al llegar a unas Comillas ("") que resaltara "digamos" algo especifico como ser también una palabra en negrita cambie la voz por masculina o que cada palabra del texto sea resaltado en forma automatica (mediante nuestro codigo) mientras es relatado ese texto.EventInterests Property
La propiedad EventInterests especifica los tipos de eventos aceptados por el objeto SpeechRecoContext.
Un interés de evento es un mecanismo de filtrado para cada contexto de reconocimiento. Al configurar EventInterests, el contexto de reconocimiento permite o niega que los eventos del motor de reconocimiento de voz lleguen a la aplicación. Se pueden filtrar todos, ninguno o tipos seleccionados de eventos. De forma predeterminada, el reconocimiento de voz permite todos los eventos excepto SREAudioLevel (un cambio en el nivel de audio).
Seguiremos porque se pone interesante el tema
descubri que tampoco funcionaAntonio Linares wrote:Daniel,
Aqui tienes un ejemplo de como usar los eventos con SPVoice para marcar la palabra que se está pronunciando:
https://www.youtube.com/watch?v=Y8-yjsRsyvI
Esto es lo que debería conseguirse con esta llamada:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
pero algo nos falta pues los eventos no llegan
Code: Select all | Expand
Function ChangeAvailavedevice()
If Main.List_2.Value > 0
oNarrator:AudioOutput := oDevice:Item( Main.List_2.Value - 1 )
// oNarrator:AudioOutput := oNarrator:GetAudioOutputs():Item(Main.List_2.Value - 1)
End If
Return
Code: Select all | Expand
#include "FiveWin.ch"
static lIsPaused := .F.
function Main()
local oDlg, oGetText, oBtnPlay, oBtnPause, oBtnStop, oBtnInterroga, oBrowVoices, cVoice, oCbxOutPut, oCbxVoiceNormal
local oCbxVoiceAlert, oMeter
local oBtnVolumeUp, oBtnVolumeDown, oBtnVelocityUp, oBtnVelocityDown
local oGetVolumeLevel, oGetVelocityLevel
local cMeter
local aVoices := {}, aPhoneme := {}, aVoiceForSelect := {}
local aOutPutStream := { "Voz", "File" }, cSelOutPutStream := "Voz"
local oFile := tOleAuto():New( "Sapi.SpFileStream" )
local nVolume := 50
local nVelocity := 0
local n := 0, n2 := 0
local oVoice := tOleAuto():New( "Sapi.SPVoice", "WithEvents" )
local oVoiceAlert := tOleAuto():New( "Sapi.SPVoice", "WithEvents" )
local cSelNormalVoice, cSelAlertVoice
// SpeechVoiceFlags
local SVSFDefault := 0
local SVSFlagsAsync := 1
local SVSFPurgeBeforeSpeak := 2
local SVSFIsXML := 8
// SpeechVoiceEvents
local SVEStartInputStream := 2
local SVEEndInputStream := 4
local SVEVoiceChange := 8
local SVEBookmark := 16
local SVEWordBoundary := 32
local SVEPhoneme := 64
local SVESentenceBoundary := 128
local SVEViseme := 256
local SVEAudioLevel := 512
local SVEPrivate := 32768
local SVEAllEvents := 33790
//SpeechVoicePriority
local SVPNormal := 0
local SVPAlert := 1
local SVPOver := 2
local cTextToRead := "La Guía de Programación de FiveWin, ofrece una introducción dirigida a técnicas" + CRLF +;
"de desarrollo de aplicaciones de Windows utilizando (x)Harbour y FiveWin. Esta" + CRLF +;
"guía explicará los conceptos básicos que usted debe tener para construir correctamente" + CRLF +;
"sus aplicaciones de Windows."
local ISpeechObjectTokens := oVoice:GetVoices()
For n = 0 To Len( oVoice:GetVoices() )
Aadd( aVoices, { n, ISpeechObjectTokens[n]:GetAttribute( 'Name' ), ISpeechObjectTokens[n]:GetAttribute( 'Gender' ),;
ISpeechObjectTokens[n]:GetAttribute( 'Age' ), ISpeechObjectTokens[n]:GetAttribute( 'Language' ),;
ISpeechObjectTokens[n]:GetAttribute( 'Vendor' ) } )
Aadd( aVoiceForSelect, ISpeechObjectTokens[n]:GetAttribute( 'Name' ) )
Next
cSelNormalVoice := aVoiceForSelect[1]
cSelAlertVoice := aVoiceForSelect[1]
oVoiceAlert:Priority() := SVPAlert // Set oVoiceAlert as an 'alert' voice
oVoiceAlert:Voice() := oVoiceAlert:GetVoices( "Name = " + cSelNormalVoice ):Item( 0 )
oVoiceAlert:Volume() := 90 // Set the volume of the Alert Voice at 90 to a Maximum of 100
oVoice:AlertBoundary() := SVEPhoneme // Allow to Stop voice by Another one with Alert priority
oVoice:EventInterests := SVEAllEvents + SVEAudioLevel
oVoice:Voice() := oVoice:GetVoices( "Name = " + cSelNormalVoice ):Item( 0 )
oVoice:Volume() := nVolume
oVoice:Rate := nVelocity
DEFINE DIALOG oDlg RESOURCE "sound"
REDEFINE GET oGetText VAR cTextToRead ID 10 OF oDlg MULTILINE UPDATE
REDEFINE METER oMeter VAR cMeter ID 3000 OF oDlg NOPERCENTAGE UPDATE
REDEFINE BUTTON oBtnPlay ID 2010 OF oDlg ACTION ( oVoice:Speak( cTextToRead, ( SVSFlagsAsync + SVSFIsXML ) ) ) UPDATE
REDEFINE BUTTON oBtnPause ID 2020 OF oDlg ACTION ( PauseResume( oVoice, oDlg, oBtnPause ), oDlg:Update() ) UPDATE
REDEFINE BUTTON oBtnStop ID 2030 OF oDlg ACTION ( iif( lIsPaused, ( lIsPaused := .F., oBtnPause:SetText( "Pause" ) ) , ),;
oVoice:Speak( " ",SVSFPurgeBeforeSpeak ) ) UPDATE
REDEFINE BUTTON oBtnInterroga ID 2040 OF oDlg ACTION ;
( oVoiceAlert:Speak( "This is a Warning Interrupt", SVSFlagsAsync ), MsgInfo( "Esto es una prueba de interrupción de Alerta" ) )
REDEFINE BUTTON oBtnVolumeUp ID 120 OF oDlg;
ACTION ( nVolume := nVolume + 10, iif( nVolume > 100, ( nVolume := 100 , MsgInfo( "Máximum Volume" ) ) ,;
oVoice:Volume := nVolume ), oGetVolumeLevel:SetText( AllTrim( Str( nVolume ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVolumeDown ID 130 OF oDlg;
ACTION ( nVolume := nVolume - 10, iif( nVolume < 0, ( nVolume := 0 , MsgInfo( "Mínimum Volume" ) ),;
oVoice:Volume := nVolume ), oGetVolumeLevel:SetText( AllTrim( Str( nVolume ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityUp ID 140 OF oDlg;
ACTION ( nVelocity++, iif( nVelocity > 10, ( nVelocity := 10 , MsgInfo( "Máximum Velocity" ) ),;
oVoice:Rate := nVelocity ), oGetVelocityLevel:SetText( AllTrim( Str( nVelocity ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityDown ID 150 OF oDlg;
ACTION ( nVelocity--, iif( nVelocity < -10, ( nVelocity := -10 , MsgInfo( "Mínimum Velocity" ) ),;
oVoice:Rate := nVelocity ), oGetVelocityLevel:SetText( AllTrim( Str( nVelocity ) ) ) ) UPDATE
REDEFINE GET oGetVolumeLevel VAR nVolume ID 160 OF oDlg UPDATE
oGetVolumeLevel:SetText( Str( nVolume ) )
REDEFINE GET oGetVelocityLevel VAR nVelocity ID 170 OF oDlg UPDATE
oGetVelocityLevel:SetText( Str( nVelocity ) )
REDEFINE LISTBOX oBrowVoices FIELDS AllTrim( Str( aVoices[ oBrowVoices:nAt, 1 ] ) ), aVoices[ oBrowVoices:nAt, 2 ],;
aVoices[ oBrowVoices:nAt, 3 ], aVoices[ oBrowVoices:nAt, 4 ], aVoices[ oBrowVoices:nAt, 5 ], aVoices[ oBrowVoices:nAt, 6 ];
HEADERS "Item", "Nombre", "_", "Edad", "Idioma ID", "Empresa";
COLSIZES 31, 77, 72, 42, 58, 64;
ON DBLCLICK oVoice:Voice := oVoice:GetVoices():Item( aVoices[ oBrowVoices:nAt, 1 ] );
ID 200 OF oDlg UPDATE
oBrowVoices:SetArray( aVoices )
REDEFINE COMBOBOX oCbxOutPut VAR cSelOutPutStream;
ITEMS aOutPutStream ID 210 OF oDlg UPDATE ;
ON CHANGE OutPutStream( cSelOutPutStream, oVoice, oFile )
REDEFINE COMBOBOX oCbxVoiceNormal VAR cSelNormalVoice;
ITEMS aVoiceForSelect ID 220 OF oDlg UPDATE;
ON CHANGE oVoice:Voice := oVoice:GetVoices( "name = " + cSelNormalVoice ):Item( 0 )
REDEFINE COMBOBOX oCbxVoiceAlert VAR cSelAlertVoice;
ITEMS aVoiceForSelect ID 230 OF oDlg UPDATE;
ON CHANGE oVoiceAlert:Voice := oVoiceAlert:GetVoices( "name = " + cSelAlertVoice ):Item( 0 )
ACTIVATE DIALOG oDlg CENTERED
return nil
function PauseResume( oVoice, oDlg, oBtnPause )
iif( lIsPaused,;
( oVoice:Resume(), lIsPaused := .F., oBtnPause:SetText( "Pause" ) ),;
( oVoice:Pause(), lIsPaused := .T., oBtnPause:SetText( "Resume" ) ) )
return nil
function OutPutStream( cSelOutPutStream, oVoice, oFile )
local SSFMCreateForWrite := 3
if cSelOutPutStream = "File"
MsgInfo( "OutPut redirected to a File in 'c:\TeechToSpeak.wav'", "Warning!!!" )
oFile:Open( "c:\TeechToSpeak.wav" , SSFMCreateForWrite )
oVoice:AudioOutputStream := oFile
else
MsgInfo( "OutPut redirected to Speakers", "Warning!!!" )
oFile:Close()
oVoice:AudioOutputStream := nil
endif
return nil
Here --->> https://forums.fivetechsupport.com/view ... hp?t=12983Jimmy wrote:hi Daniel,
can you please provide a *.RC File for your great Solution
Code: Select all | Expand
oSpVoice:EventInterests := SVEAllEvents + SVEAudioLevel
Code: Select all | Expand
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
Code: Select all | Expand
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | a,b,c,d | LogFile( a, b,c, d ) } )
PROCEDURE LogFile( a, b,c, d )
DEFAULT a := ""
DEFAULT b := ""
DEFAULT c := ""
DEFAULT d := ""
FWLOG hb_valToExp(a), hb_valToExp(b),hb_valToExp(c),hb_valToExp(d)
RETURN
Code: Select all | Expand
PROCEDURE oSpVoice_Word(StreamNumber, StreamPosition , CharacterPosition , Length )
* In order to show this selection,
* the Text1.HideSelection property must be False!
SetProperty(SPEAK,"oGetText","SelStart", CharacterPosition )
SetProperty(SPEAK,"oGetText","SelLength", Length )
Domethod(SPEAK,"oGetText","SetFocus")
* Domethod(SPEAK,"oGetText","ScrolltoCaret")
RETURN
Me imagino que su tiempo debe ser muy ocupado para responder todas las consultas dentro del foro, yo en mi caso solo lo hago mientras desayuno o después de la cena e intento hacer una pequeña contribución.Antonio Linares wrote:Dear Jimmy,
Reviewing Harbour OLE implementation it seems as this is the way:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | MsgInfo( x, y ) } )
but here in my tests it is not working as expected.
Maybe another Harbour OLE bug ? I am doing some research to find the right way...
Code: Select all | Expand
SET ALTER ON
SET ALTER TO "_LOGIT2.TXT "
...
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | a, b,c,d | OnDummy( a, b,c, d ) } )
Code: Select all | Expand
FUNCTION onDummy()
LOCAL iMax := PCOUNT()
LOCAL i
LOCAL cText := ""
LOCAL xValue
FOR i := 1 TO iMax - 1
cText += Var2Char( PValue( i ) ) + CHR( 9 )
NEXT
cText += Var2Char( PValue( iMax ) )
IF EMPTY( cText )
cText := TIME() + " no Parameter ? " + CRLF + PROCNAME( 1 ) + STR( PROCLINE( 1 ) ) + CRLF + PROCNAME( 2 ) + STR( PROCLINE( 2 ) )
ENDIF
SET CONSOLE OFF
SET ALTER ON
// ? cText
QOUT( cText )
SET ALTER OFF
SET CONSOLE ON
RETURN NIL
FUNCTION VAR2CHAR( cIn )
LOCAL cOut := hb_valToExp( cIn )
RETURN STRTRAN( cOut, '"', '' )
Code: Select all | Expand
1 1 0.00 NIL
3 1 0.00 __itemSetObj( {{__HOBJ, <pointer>}}, {{WIN_OLEAUTO,}} )
7 1 0.00 0
6 1 0.00 100
8 1 0.00 100
5 1 3200.00 0
6 1 3200.00 125
8 1 3200.00 125
6 1 7200.00 77
8 1 7200.00 155
6 1 9680.00 77
5 1 12160.00 3
6 1 12160.00 55
8 1 12160.00 55
6 1 13920.00 90
8 1 13920.00 90
5 1 16800.00 7
6 1 16800.00 87
8 1 16800.00 175
6 1 19600.00 87
5 1 22400.00 9
6 1 22400.00 45
8 1 22400.00 45
6 1 23840.00 60
8 1 23840.00 60
5 1 25760.00 12
6 1 25760.00 80
8 1 25760.00 80
6 1 28320.00 55
8 1 28320.00 55
6 1 30080.00 60
8 1 30080.00 60
6 1 32000.00 65
8 1 32000.00 65
6 1 34080.00 65
8 1 34080.00 65
6 1 36160.00 60
8 1 36160.00 60
6 1 38080.00 70
8 1 38080.00 70
6 1 40320.00 70
8 1 40320.00 70
6 1 42560.00 140
8 1 42560.00 70
8 1 44800.00 70
6 1 47040.00 60
8 1 47040.00 60
6 1 48960.00 75
8 1 48960.00 75
6 1 51360.00 105
8 1 51360.00 105
5 1 54720.00 26
6 1 54720.00 40
8 1 54720.00 40
6 1 56000.00 45
8 1 56000.00 45
5 1 57440.00 29
6 1 57440.00 115
8 1 57440.00 115
6 1 61120.00 165
8 1 61120.00 82
8 1 63760.00 82
6 1 66400.00 105
8 1 66400.00 105
6 1 69760.00 60
8 1 69760.00 60
6 1 71680.00 75
8 1 71680.00 75
6 1 74080.00 140
8 1 74080.00 140
6 1 78560.00 500
8 1 78560.00 500
5 1 94560.00 38
6 1 94560.00 130
8 1 94560.00 130
6 1 98720.00 105
8 1 98720.00 105
6 1 102080.00 55
8 1 102080.00 55
6 1 103840.00 75
8 1 103840.00 75
6 1 106240.00 130
8 1 106240.00 65
8 1 108320.00 65
6 1 110400.00 75
8 1 110400.00 75
6 1 112800.00 135
8 1 112800.00 135
5 1 117120.00 45
6 1 117120.00 105
8 1 117120.00 105
6 1 120480.00 65
8 1 120480.00 65
6 1 122560.00 135
8 1 122560.00 135
5 1 126880.00 49
6 1 126880.00 60
8 1 126880.00 60
6 1 128800.00 60
8 1 128800.00 60
6 1 130720.00 45
8 1 130720.00 45
6 1 132160.00 65
8 1 132160.00 65
6 1 134240.00 65
8 1 134240.00 65
6 1 136320.00 45
8 1 136320.00 45
6 1 137760.00 60
8 1 137760.00 60
6 1 139680.00 55
8 1 139680.00 55
6 1 141440.00 135
8 1 141440.00 67
8 1 143600.00 67
6 1 145760.00 60
8 1 145760.00 60
6 1 147680.00 100
8 1 147680.00 100
6 1 150880.00 65
8 1 150880.00 65
5 1 152960.00 63
6 1 152960.00 55
8 1 152960.00 55
6 1 154720.00 60
8 1 154720.00 60
6 1 156640.00 70
8 1 156640.00 70
6 1 158880.00 65
8 1 158880.00 65
6 1 160960.00 60
8 1 160960.00 60
6 1 162880.00 100
8 1 162880.00 100
6 1 166080.00 45
8 1 166080.00 45
6 1 167520.00 130
8 1 167520.00 130
5 1 171680.00 72
6 1 171680.00 87
8 1 171680.00 175
6 1 174480.00 87
5 1 177280.00 74
6 1 177280.00 120
8 1 177280.00 120
6 1 181120.00 105
8 1 181120.00 105
6 1 184480.00 95
8 1 184480.00 95
6 1 187520.00 55
8 1 187520.00 55
6 1 189280.00 60
8 1 189280.00 60
6 1 191200.00 90
8 1 191200.00 90
6 1 194080.00 125
8 1 194080.00 125
6 1 198080.00 200
8 1 198080.00 200
6 1 204480.00 750
8 1 204480.00 750
7 1 228480.00 85
6 1 228480.00 100
8 1 228480.00 100
5 1 231680.00 85
6 1 231680.00 55
8 1 231680.00 55
6 1 233440.00 55
8 1 233440.00 55
5 1 235200.00 88
6 1 235200.00 50
8 1 235200.00 50
6 1 236800.00 65
8 1 236800.00 65
6 1 238880.00 110
8 1 238880.00 110
6 1 242400.00 75
8 1 242400.00 75
6 1 244800.00 50
8 1 244800.00 50
6 1 246400.00 105
8 1 246400.00 105
6 1 249760.00 65
8 1 249760.00 65
6 1 251840.00 105
8 1 251840.00 105
5 1 255200.00 99
6 1 255200.00 45
8 1 255200.00 45
6 1 256640.00 80
8 1 256640.00 80
5 1 259200.00 102
6 1 259200.00 90
8 1 259200.00 90
6 1 262080.00 85
8 1 262080.00 85
6 1 264800.00 40
8 1 264800.00 40
6 1 266080.00 60
8 1 266080.00 60
6 1 268000.00 100
8 1 268000.00 100
6 1 271200.00 75
8 1 271200.00 75
6 1 273600.00 135
8 1 273600.00 67
8 1 275760.00 67
6 1 277920.00 45
8 1 277920.00 45
6 1 279360.00 80
8 1 279360.00 80
6 1 281920.00 55
8 1 281920.00 55
6 1 283680.00 55
8 1 283680.00 55
6 1 285440.00 90
8 1 285440.00 90
5 1 288320.00 115
6 1 288320.00 40
8 1 288320.00 40
6 1 289600.00 60
8 1 289600.00 60
5 1 291520.00 118
6 1 291520.00 65
8 1 291520.00 65
6 1 293600.00 45
8 1 293600.00 45
6 1 295040.00 85
8 1 295040.00 85
6 1 297760.00 35
8 1 297760.00 35
6 1 298880.00 115
8 1 298880.00 115
6 1 302560.00 95
8 1 302560.00 95
5 1 305600.00 126
6 1 305600.00 95
8 1 305600.00 95
6 1 308640.00 85
8 1 308640.00 85
6 1 311360.00 50
8 1 311360.00 50
6 1 312960.00 55
8 1 312960.00 55
6 1 314720.00 55
8 1 314720.00 55
6 1 316480.00 130
8 1 316480.00 65
8 1 318560.00 65
6 1 320640.00 90
8 1 320640.00 90
6 1 323520.00 90
8 1 323520.00 90
6 1 326400.00 55
8 1 326400.00 55
6 1 328160.00 170
8 1 328160.00 170
6 1 333600.00 500
8 1 333600.00 500
5 1 349600.00 138
6 1 349600.00 65
8 1 349600.00 65
6 1 351680.00 90
8 1 351680.00 90
6 1 354560.00 150
8 1 354560.00 150
6 1 359360.00 500
8 1 359360.00 500
5 1 375360.00 140
6 1 375360.00 190
8 1 375360.00 190
6 1 381440.00 60
8 1 381440.00 120
6 1 383360.00 60
6 1 385280.00 65
8 1 385280.00 65
6 1 387360.00 70
8 1 387360.00 70
6 1 389600.00 110
8 1 389600.00 110
6 1 393120.00 40
8 1 393120.00 80
6 1 394400.00 40
5 1 395680.00 148
6 1 395680.00 60
8 1 395680.00 60
6 1 397600.00 65
8 1 397600.00 65
6 1 399680.00 110
8 1 399680.00 110
6 1 403200.00 80
8 1 403200.00 80
6 1 405760.00 60
8 1 405760.00 60
6 1 407680.00 105
8 1 407680.00 105
6 1 411040.00 80
8 1 411040.00 80
5 1 413600.00 150
6 1 413600.00 110
8 1 413600.00 110
6 1 417120.00 165
8 1 417120.00 82
8 1 419760.00 82
6 1 422400.00 105
8 1 422400.00 105
6 1 425760.00 60
8 1 425760.00 60
6 1 427680.00 75
8 1 427680.00 75
6 1 430080.00 200
8 1 430080.00 200
6 1 436480.00 750
8 1 436480.00 750
7 1 460480.00 159
6 1 460480.00 100
8 1 460480.00 100
5 1 463680.00 159
6 1 463680.00 85
8 1 463680.00 85
6 1 466400.00 125
8 1 466400.00 125
6 1 470400.00 65
8 1 470400.00 65
6 1 472480.00 200
8 1 472480.00 200
6 1 478880.00 750
8 1 478880.00 750
7 1 502880.00 165
6 1 502880.00 100
8 1 502880.00 100
5 1 506080.00 165
6 1 506080.00 80
8 1 506080.00 80
6 1 508640.00 85
8 1 508640.00 85
5 1 511360.00 169
6 1 511360.00 72
8 1 511360.00 145
6 1 513680.00 72
5 1 516000.00 171
6 1 516000.00 85
8 1 516000.00 85
6 1 518720.00 60
8 1 518720.00 60
6 1 520640.00 75
8 1 520640.00 75
6 1 523040.00 80
8 1 523040.00 80
6 1 525600.00 40
8 1 525600.00 40
6 1 526880.00 60
8 1 526880.00 60
6 1 528800.00 100
8 1 528800.00 100
6 1 532000.00 85
8 1 532000.00 85
6 1 534720.00 55
8 1 534720.00 55
6 1 536480.00 75
8 1 536480.00 75
6 1 538880.00 65
8 1 538880.00 65
6 1 540960.00 70
8 1 540960.00 70
6 1 543200.00 52
8 1 543200.00 105
6 1 544880.00 52
6 1 546560.00 130
8 1 546560.00 130
6 1 550720.00 65
8 1 550720.00 65
5 1 552800.00 182
6 1 552800.00 75
8 1 552800.00 75
6 1 555200.00 110
8 1 555200.00 110
6 1 558720.00 85
8 1 558720.00 85
5 1 561440.00 186
6 1 561440.00 90
8 1 561440.00 90
6 1 564320.00 60
8 1 564320.00 60
6 1 566240.00 70
8 1 566240.00 70
6 1 568480.00 90
8 1 568480.00 45
8 1 569920.00 45
6 1 571360.00 105
8 1 571360.00 105
6 1 574720.00 60
8 1 574720.00 60
6 1 576640.00 75
8 1 576640.00 75
6 1 579040.00 110
8 1 579040.00 110
6 1 582560.00 115
8 1 582560.00 115
6 1 586240.00 80
8 1 586240.00 80
5 1 588800.00 196
6 1 588800.00 90
8 1 588800.00 90
6 1 591680.00 125
8 1 591680.00 125
6 1 595680.00 75
8 1 595680.00 75
6 1 598080.00 90
8 1 598080.00 90
6 1 600960.00 60
8 1 600960.00 60
6 1 602880.00 95
8 1 602880.00 95
6 1 605920.00 105
8 1 605920.00 105
6 1 609280.00 80
8 1 609280.00 80
5 1 611840.00 205
6 1 611840.00 65
8 1 611840.00 65
6 1 613920.00 85
8 1 613920.00 85
5 1 616640.00 209
6 1 616640.00 75
8 1 616640.00 75
6 1 619040.00 80
8 1 619040.00 80
6 1 621600.00 65
8 1 621600.00 65
6 1 623680.00 70
8 1 623680.00 70
6 1 625920.00 75
8 1 625920.00 75
5 1 628320.00 215
6 1 628320.00 50
8 1 628320.00 50
6 1 629920.00 95
8 1 629920.00 95
6 1 632960.00 60
8 1 632960.00 60
6 1 634880.00 60
8 1 634880.00 60
5 1 636800.00 220
6 1 636800.00 110
8 1 636800.00 110
6 1 640320.00 85
8 1 640320.00 85
6 1 643040.00 55
8 1 643040.00 55
6 1 644800.00 55
8 1 644800.00 55
6 1 646560.00 80
8 1 646560.00 80
5 1 649120.00 226
6 1 649120.00 95
8 1 649120.00 95
6 1 652160.00 57
8 1 652160.00 115
6 1 654000.00 57
6 1 655840.00 55
8 1 655840.00 55
6 1 657600.00 90
8 1 657600.00 90
5 1 660480.00 231
6 1 660480.00 95
8 1 660480.00 95
6 1 663520.00 75
8 1 663520.00 75
6 1 665920.00 60
8 1 665920.00 60
6 1 667840.00 80
8 1 667840.00 80
6 1 670400.00 65
8 1 670400.00 65
6 1 672480.00 60
8 1 672480.00 60
6 1 674400.00 110
8 1 674400.00 110
6 1 677920.00 25
8 1 677920.00 50
6 1 678720.00 25
5 1 679520.00 241
6 1 679520.00 95
8 1 679520.00 95
6 1 682560.00 60
8 1 682560.00 60
6 1 684480.00 60
8 1 684480.00 60
6 1 686400.00 60
8 1 686400.00 60
6 1 688320.00 65
8 1 688320.00 65
6 1 690400.00 75
8 1 690400.00 75
6 1 692800.00 60
8 1 692800.00 60
6 1 694720.00 75
8 1 694720.00 75
6 1 697120.00 80
8 1 697120.00 80
6 1 699680.00 70
8 1 699680.00 70
6 1 701920.00 75
8 1 701920.00 75
6 1 704320.00 200
8 1 704320.00 200
6 1 710720.00 750
8 1 710720.00 750
7 1 734720.00 256
6 1 734720.00 100
8 1 734720.00 100
5 1 737920.00 256
6 1 737920.00 70
8 1 737920.00 70
6 1 740160.00 125
8 1 740160.00 125
6 1 744160.00 45
8 1 744160.00 45
6 1 745600.00 105
8 1 745600.00 105
6 1 748960.00 100
8 1 748960.00 100
6 1 752160.00 90
8 1 752160.00 90
5 1 755040.00 260
6 1 755040.00 95
8 1 755040.00 95
6 1 758080.00 80
8 1 758080.00 80
6 1 760640.00 40
8 1 760640.00 40
6 1 761920.00 65
8 1 761920.00 65
6 1 764000.00 100
8 1 764000.00 100
6 1 767200.00 70
8 1 767200.00 70
6 1 769440.00 140
8 1 769440.00 70
8 1 771680.00 70
6 1 773920.00 40
8 1 773920.00 40
6 1 775200.00 80
8 1 775200.00 80
6 1 777760.00 55
8 1 777760.00 55
6 1 779520.00 55
8 1 779520.00 55
6 1 781280.00 80
8 1 781280.00 80
5 1 783840.00 273
6 1 783840.00 40
8 1 783840.00 40
6 1 785120.00 60
8 1 785120.00 60
5 1 787040.00 276
6 1 787040.00 65
8 1 787040.00 65
6 1 789120.00 50
8 1 789120.00 50
6 1 790720.00 85
8 1 790720.00 85
6 1 793440.00 55
8 1 793440.00 55
6 1 795200.00 165
8 1 795200.00 165
6 1 800480.00 200
8 1 800480.00 200
6 1 806880.00 750
8 1 806880.00 750
2 1 830880.00 NIL