From a1e0002ce26e1e81c2bd03eee37b05f449c4e86e Mon Sep 17 00:00:00 2001 From: fredvs Date: Wed, 11 Jul 2018 21:46:07 +0200 Subject: [PATCH] Last fixes for release 1.8.0. --- src/filelistform.pas | 2 +- src/main.mfm | 4 +- src/main.pas | 248 +++++++++++------ src/main_mfm.pas | 4 +- src/strumpract.prj | 168 +++++++----- src/waveform.mfm | 4 +- src/waveform.pas | 16 +- src/waveform_mfm.pas | 622 ++++++++++++++++++++++--------------------- 8 files changed, 601 insertions(+), 467 deletions(-) diff --git a/src/filelistform.pas b/src/filelistform.pas index 62b2ef1..7a2d67b 100644 --- a/src/filelistform.pas +++ b/src/filelistform.pas @@ -90,7 +90,7 @@ procedure tfilelistfo.formcreated(const Sender: TObject); if trim(historyfn.Value) = '' then begin hasinit := 1; - historyfn.Value := ordir + 'sound' + directoryseparator + 'song' ; + historyfn.Value := ordir + 'sound' + directoryseparator + 'song' + directoryseparator ; onchangpath(Sender); end; diff --git a/src/main.mfm b/src/main.mfm index e75f81a..5cd6efa 100644 --- a/src/main.mfm +++ b/src/main.mfm @@ -17,9 +17,9 @@ object mainfo: tmainfo bounds_y = 91 bounds_cx = 454 bounds_cy = 139 - bounds_cxmin = 442 + bounds_cxmin = 454 bounds_cymin = 40 - bounds_cxmax = 454 + bounds_cxmax = 468 bounds_cymax = 700 container.frame.framei_left = 0 container.frame.framei_top = 0 diff --git a/src/main.pas b/src/main.pas index 1916502..af4f6e6 100644 --- a/src/main.pas +++ b/src/main.pas @@ -15,6 +15,7 @@ interface type tmainfo = class(tmainform) Timerwait: Ttimer; + Timeract: Ttimer; basedock: tdockpanel; tmainmenu1: tmainmenu; tfacecomp4: tfacecomp; @@ -39,6 +40,7 @@ tmainfo = class(tmainform) buttonicons: timagelist; tfaceplayerbut: tfacecomp; procedure ontimerwait(const Sender: TObject); + procedure ontimeract(const Sender: TObject); procedure oncreateform(const Sender: TObject); procedure oncreatedform(const Sender: TObject); procedure dodestroy(const Sender: TObject); @@ -81,7 +83,7 @@ tmainfo = class(tmainform) procedure onshowwaverec(const Sender: TObject); procedure ondockplayers(const Sender: TObject); procedure ondockjam(const Sender: TObject); - procedure dragfloat(); + procedure dragfloat(const Sender: TObject); procedure onexit(const sender: TObject); procedure ondockrec(const sender: TObject); procedure loadlayout(const sender: TObject); @@ -127,6 +129,11 @@ implementation config, drums, recorder, songplayer, commander, filelistform, spectrum1, waveform, dockpanel1, aboutform, uos_flat, guitars, main_mfm; + +procedure tmainfo.ontimeract(const Sender: TObject); +begin +activate; +end; procedure tmainfo.ontimerwait(const Sender: TObject); var @@ -135,8 +142,7 @@ procedure tmainfo.ontimerwait(const Sender: TObject); rect1: rectty; begin - // timerwait.Enabled := False; - + //{ children1 := basedock.dragdock.getitems(); visiblecount := 0; @@ -166,6 +172,8 @@ procedure tmainfo.ontimerwait(const Sender: TObject); // writeln('basedock.height: ' + inttostr(basedock.height)); end; //} + + bounds_cxmax := 0; if not fileexists(tstatfile1.filename) then top := 30; @@ -244,6 +252,12 @@ procedure tmainfo.oncreateform(const Sender: TObject); Timerwait.Enabled := False; Timerwait.options := [to_single]; Timerwait.ontimer := @ontimerwait; + + Timeract := ttimer.Create(nil); + Timeract.interval := 500000; + Timeract.Enabled := False; + Timeract.options := [to_single]; + Timeract.ontimer := @ontimeract; end; procedure tmainfo.onabout(const Sender: TObject); @@ -268,14 +282,17 @@ procedure tmainfo.dodestroy(const Sender: TObject); filelistfo.tstatfile1.writestat(ordir+ 'ini' + directoryseparator + 'list.ini'); uos_free(); Timerwait.Free; + Timeract.Free; end; procedure tmainfo.oncreatedform(const Sender: TObject); var x: integer; + haswav : boolean = false; begin Caption := 'StrumPract ' + versiontext; + beginlayout(); visible := true; @@ -320,6 +337,8 @@ procedure tmainfo.oncreatedform(const Sender: TObject); wavefo.bounds_cymax := wavefoheight; wavefo.Width := fowidth; wavefo.Height := wavefoheight; + if haswav = false then height := height + 10; + haswav := true; end; end; @@ -332,6 +351,8 @@ procedure tmainfo.oncreatedform(const Sender: TObject); end else begin + if haswav = false then height := height + 10; + haswav := true; wavefo2.bounds_cxmax := fowidth; wavefo2.bounds_cymax := wavefoheight; wavefo2.Width := fowidth; @@ -348,16 +369,18 @@ procedure tmainfo.oncreatedform(const Sender: TObject); end else begin + if haswav = false then height := height + 10; + haswav := true; waveforec.bounds_cxmax := fowidth; - waveforec.bounds_cymax := wavefoheight; + waveforec.bounds_cymax := wavefoheight; waveforec.Width := fowidth; waveforec.Height := wavefoheight; + end; end; - UOS_GetInfoDevice(); - + x := 0; while x < UOSDeviceCount do @@ -365,14 +388,20 @@ procedure tmainfo.oncreatedform(const Sender: TObject); if UOSDeviceInfos[x].DefaultDevOut = True then begin - configfo.lsuglat.Caption := 'Audio API ' + UOSDeviceInfos[x].HostAPIName + ': Suggested latency = ' + + configfo.lsuglat.Caption := 'Audio API ' + UOSDeviceInfos[x].HostAPIName + + ': Suggested latency = ' + floattostrf(UOSDeviceInfos[x].LatencyLowOut, ffFixed, 15, 8); end; Inc(x); end; - Timerwait.Enabled := True; /// for width if scroll + endlayout(); + + if timerwait.Enabled then + timerwait.restart // to reset + else timerwait.Enabled := True; + end; @@ -427,9 +456,11 @@ procedure tmainfo.endlayout(); basedock.dragdock.endplacement(); if flayoutlock = 0 then updatelayout(); - if timerwait.Enabled then + + if timerwait.Enabled then timerwait.restart // to reset else timerwait.Enabled := True; + end; procedure tmainfo.updatelayout(); @@ -802,10 +833,17 @@ posi := recorderfo.top + topdec; dockpanel4fo.Visible := False; dockpanel5fo.Visible := False; + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; + end; -procedure tmainfo.dragfloat(); +procedure tmainfo.dragfloat(const Sender: TObject); begin + +with tdockpanel1fo(sender) do + begin if drumsfo.parentwidget = basedock then drumsfo.dragdock.float(); @@ -843,7 +881,9 @@ procedure tmainfo.dragfloat(); if waveforec.parentwidget = basedock then waveforec.dragdock.float(); -end; + end; + + end; procedure tmainfo.ondockjam(const Sender: TObject); var @@ -851,19 +891,22 @@ procedure tmainfo.ondockjam(const Sender: TObject); decorationheight: integer = 5; begin // basedock.anchors := [an_left,an_top] ; - decorationheight := window.decoratedbounds_cy - Height; - + beginlayout(); norefresh := true; basedock.dragdock.currentsplitdir := sd_horz; + decorationheight := window.decoratedbounds_cy - Height; + commanderfo.automix.value := true; + + with dockpanel3fo do begin - dragfloat(); + // dragfloat(dockpanel3fo); Visible := True; @@ -895,7 +938,7 @@ procedure tmainfo.ondockjam(const Sender: TObject); with dockpanel1fo do begin - dragfloat(); + // dragfloat(dockpanel1fo); Visible := True; @@ -927,7 +970,7 @@ procedure tmainfo.ondockjam(const Sender: TObject); with dockpanel2fo do begin - dragfloat(); + // dragfloat(dockpanel2fo); Visible := True; @@ -958,7 +1001,7 @@ procedure tmainfo.ondockjam(const Sender: TObject); with dockpanel4fo do begin - dragfloat(); + // dragfloat(dockpanel4fo); Visible := True; recorderfo.Visible := True; @@ -1012,12 +1055,13 @@ procedure tmainfo.ondockjam(const Sender: TObject); endlayout(); dockpanel1fo.left := 0; - dockpanel1fo.top := 0; + dockpanel1fo.top := decorationheight; dockpanel3fo.left := 0; dockpanel3fo.top := songplayerfo.Height + songplayerfo.Height + 30 + (2 * decorationheight); left := dockpanel1fo.Width + 10; + top:= decorationheight; dockpanel2fo.left := left + Width + 8; dockpanel2fo.top := dockpanel1fo.top; @@ -1028,6 +1072,11 @@ procedure tmainfo.ondockjam(const Sender: TObject); norefresh := false; sleep(1); + + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; + if timerwait.Enabled then timerwait.restart // to reset else timerwait.Enabled := True; @@ -1042,11 +1091,9 @@ procedure tmainfo.ondockplayers(const Sender: TObject); interv : integer; begin // basedock.anchors := [an_left,an_top] ; - decorationheight := window.decoratedbounds_cy - Height; - beginlayout(); - norefresh := true; + dockpanel1fo.visible := false; dockpanel2fo.visible := false; dockpanel3fo.visible := false; @@ -1056,6 +1103,11 @@ procedure tmainfo.ondockplayers(const Sender: TObject); songplayer2fo.Visible := true; wavefo.Visible := false; wavefo2.Visible := false; + drumsfo.Visible := False; + + guitarsfo.Visible := False; + + waveforec.Visible := false; commanderfo.Visible := true; @@ -1068,11 +1120,12 @@ procedure tmainfo.ondockplayers(const Sender: TObject); dockpanel5fo.visible := false; basedock.dragdock.currentsplitdir := sd_horz; - + decorationheight := window.decoratedbounds_cy - Height; + with dockpanel1fo do begin - dragfloat(); + // dragfloat(dockpanel1fo); songplayerfo.parentwidget := basedock; @@ -1092,7 +1145,7 @@ procedure tmainfo.ondockplayers(const Sender: TObject); with dockpanel2fo do begin - dragfloat(); + // dragfloat(dockpanel2fo); songplayer2fo.parentwidget := basedock; @@ -1110,7 +1163,7 @@ procedure tmainfo.ondockplayers(const Sender: TObject); // dockpanel2fo.Timerwaitdp.Enabled := False; // dockpanel2fo.Timerwaitdp.Enabled := True; end; - + beginlayout(); filelistfo.dragdock.float(); commanderfo.dragdock.float(); wavefo.dragdock.float(); @@ -1118,34 +1171,34 @@ procedure tmainfo.ondockplayers(const Sender: TObject); recorderfo.dragdock.float(); recorderfo.sentcue1.value := false; - - commanderfo.parentwidget := basedock; + basedock.dragdock.currentsplitdir := sd_horz; + commanderfo.parentwidget := basedock; + left := 0; - top := 0; + top := decorationheight; rect1 := application.screenrect(window); - interv := (rect1.cx- (songplayerfo.Width + filelistfo.Width + songplayer2fo.Width)) div 2 ; + interv := (rect1.cx- ( 3 * foWidth)) div 2 ; dockpanel1fo.left := left; dockpanel1fo.top := commanderfoheight + 74; - filelistfo.activate; filelistfo.left := commanderfo.Width + interv; - filelistfo.top := 0; - filelistfo.Height := commanderfo.Height + 67 + songplayerfo.Height + spectrum1fo.Height ; - + filelistfo.top := decorationheight; + filelistfo.Height := (3 * commanderfoHeight) + (2*decorationheight) +4; + recorderfo.left := filelistfo.left + filelistfo.Width + interv; - recorderfo.top := 0; + recorderfo.top := decorationheight; dockpanel2fo.top := dockpanel1fo.top; dockpanel2fo.left := filelistfo.left + filelistfo.Width + interv; - endlayout(); - - interv := (rect1.cy- 194 - ( 3 *songplayerfoHeight)) div 2; + //endlayout(); + + interv := (rect1.cy- 194 - ( 3 *songplayerfoHeight)) div 2; wavefo2.bounds_cxmax := 0; wavefo2.bounds_cymax := 0; @@ -1157,37 +1210,59 @@ wavefo.Width := recorderfo.left + recorderfo.Width - 2; wavefo2.Width := recorderfo.left + recorderfo.Width - 2; wavefo.Height := interv; wavefo2.Height := interv; - sleep(1); + wavefo.top := (3 * songplayerfoHeight) + 126; + wavefo2.top := (3 * songplayerfoHeight) + 158 + interv; wavefo.left := 0; wavefo2.left := 0; - - // visible:= true; - - drumsfo.Visible := False; - - guitarsfo.Visible := False; - - waveforec.Visible := false; + // visible:= true; + spectrumrecfo.Visible := false; - dockpanel1fo.activate; - dockpanel2fo.activate; - - wavefo.activate; - wavefo2.activate; - - activate; + dockpanel1fo.visible := true; + dockpanel2fo.visible := true; + wavefo.visible := true; + wavefo2.visible := true; + + + endlayout(); + + application.processmessages; + + rect1 := application.screenrect(window); + interv := (rect1.cy- 194 - ( 3 *songplayerfoHeight)) div 2; + + wavefo2.bounds_cxmax := 0; + wavefo2.bounds_cymax := 0; - if timerwait.Enabled then - timerwait.restart // to reset - else timerwait.Enabled := True; + wavefo.bounds_cxmax := 0; + wavefo.bounds_cymax := 0; + + wavefo.Width := recorderfo.left + recorderfo.Width - 2; + wavefo2.Width := recorderfo.left + recorderfo.Width - 2; + wavefo.Height := interv; + wavefo2.Height := interv; + + + wavefo.top := (3 * songplayerfoHeight) + 126; + + wavefo2.top := (3 * songplayerfoHeight) + 158 + interv; + + wavefo.left := 0; + wavefo2.left := 0; - norefresh := false; + visible := true; + + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; + + norefresh := false; + end; procedure tmainfo.ondockall(const Sender: TObject); @@ -1203,13 +1278,13 @@ procedure tmainfo.ondockall(const Sender: TObject); filelistfo.bounds_cymax := 1024; wavefo.bounds_cxmax := fowidth; - wavefo.bounds_cymax := 1024; + wavefo.bounds_cymax := 100; wavefo2.bounds_cxmax := fowidth; - wavefo2.bounds_cymax := 1024; + wavefo2.bounds_cymax := 100; waveforec.bounds_cxmax := fowidth; - waveforec.bounds_cymax := 1024; + waveforec.bounds_cymax := 100; //sizeecbefdock.cy := 500; //size := sizebefdock; @@ -1331,26 +1406,27 @@ procedure tmainfo.ondockall(const Sender: TObject); if guitarsfo.Visible then guitarsfo.pos := pt1; //} - - norefresh := false; - sleep(1); + endlayout(); - - if Height > 699 then - begin - if timerwait.Enabled then + + + if timerwait.Enabled then timerwait.restart // to reset - else timerwait.Enabled := True; - end; - +else timerwait.Enabled := True; + + norefresh := false; + + left := (rect1.cx- Width) div 2 ; + dockpanel1fo.Visible := False; dockpanel2fo.Visible := False; dockpanel3fo.Visible := False; dockpanel4fo.Visible := False; dockpanel5fo.Visible := False; - left := (rect1.cx- Width) div 2 ; - + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; //basedock.anchors := [an_left,an_top,an_right,an_bottom] ; end; @@ -1400,7 +1476,7 @@ procedure tmainfo.ontab(const Sender: TObject); procedure tmainfo.showall(const Sender: TObject); begin norefresh := true; - //beginlayout(); + beginlayout(); drumsfo.Show(); filelistfo.Show(); songplayerfo.Show(); @@ -1415,12 +1491,16 @@ procedure tmainfo.showall(const Sender: TObject); wavefo2.Show(); waveforec.Show(); norefresh := false; - // endlayout(); + endlayout(); if timerwait.Enabled then timerwait.restart // to reset else timerwait.Enabled := True; + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; + end; procedure tmainfo.hideall(const Sender: TObject); @@ -2843,8 +2923,10 @@ procedure tmainfo.onmaintab(const Sender: TObject); procedure tmainfo.onmaindock(const Sender: TObject); begin + basedock.dragdock.currentsplitdir := sd_horz; updatelayout(); + end; procedure tmainfo.onshowwave1(const Sender: TObject); @@ -2885,6 +2967,7 @@ procedure tmainfo.ondockrec(const Sender: TObject); decorationheight: integer = 5; begin // basedock.anchors := [an_left,an_top] ; + basedock.dragdock.currentsplitdir := sd_horz; decorationheight := window.decoratedbounds_cy - Height; rect1 := application.screenrect(window); @@ -2902,8 +2985,6 @@ procedure tmainfo.ondockrec(const Sender: TObject); songplayerfo.edvolleft.value := 100; songplayerfo.edvolright.value := 100; - basedock.dragdock.currentsplitdir := sd_horz; - dockpanel1fo.visible := false; dockpanel2fo.visible := false; dockpanel3fo.visible := false; @@ -2913,7 +2994,7 @@ procedure tmainfo.ondockrec(const Sender: TObject); with dockpanel1fo do begin - dragfloat(); + // dragfloat(dockpanel1fo); songplayerfo.Visible := True; songplayerfo.parentwidget := basedock; @@ -2972,13 +3053,12 @@ procedure tmainfo.ondockrec(const Sender: TObject); commanderfo.Visible := false; recorderfo.sentcue1.value := true; - songplayerfo.historyfn.Value := recorderfo.historyfn.Value; left := interv; - top := 10; + top := decorationheight + 4; dockpanel1fo.left := recorderfo.width + 10 + interv; - dockpanel1fo.top := recorderfo.height +6 ; + dockpanel1fo.top := recorderfo.height + (1*decorationheight) + 8 ; wavefo.dragdock.float(); wavefo.left := left; @@ -2988,7 +3068,7 @@ dockpanel1fo.top := recorderfo.height +6 ; wavefo.height := songplayerfoheight; - wavefo.top := (3*songplayerfoheight) + (2*decorationheight); + wavefo.top := (3*songplayerfoheight) + (3*decorationheight); drumsfo.Visible := False; @@ -3004,7 +3084,11 @@ dockpanel1fo.top := recorderfo.height +6 ; norefresh := false; dockpanel1fo. activate; wavefo. activate; - activate; + + visible := true; + if timeract.Enabled then + timeract.restart // to reset + else timeract.Enabled := True; if timerwait.Enabled then timerwait.restart // to reset diff --git a/src/main_mfm.pas b/src/main_mfm.pas index a7dc198..1d6e6d6 100644 --- a/src/main_mfm.pas +++ b/src/main_mfm.pas @@ -23,9 +23,9 @@ implementation 118,105,115,105,98,108,101,8,8,98,111,117,110,100,115,95,120,3,93,1, 8,98,111,117,110,100,115,95,121,2,91,9,98,111,117,110,100,115,95,99, 120,3,198,1,9,98,111,117,110,100,115,95,99,121,3,139,0,12,98,111, - 117,110,100,115,95,99,120,109,105,110,3,186,1,12,98,111,117,110,100,115, + 117,110,100,115,95,99,120,109,105,110,3,198,1,12,98,111,117,110,100,115, 95,99,121,109,105,110,2,40,12,98,111,117,110,100,115,95,99,120,109,97, - 120,3,198,1,12,98,111,117,110,100,115,95,99,121,109,97,120,3,188,2, + 120,3,212,1,12,98,111,117,110,100,115,95,99,121,109,97,120,3,188,2, 27,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,102,114,97, 109,101,105,95,108,101,102,116,2,0,26,99,111,110,116,97,105,110,101,114, 46,102,114,97,109,101,46,102,114,97,109,101,105,95,116,111,112,2,0,28, diff --git a/src/strumpract.prj b/src/strumpract.prj index b7220e0..9a5851a 100644 --- a/src/strumpract.prj +++ b/src/strumpract.prj @@ -771,8 +771,9 @@ settingsstorage=0 settingsprojecttree=0 settingsautoload=0 settingsautosave=0 -modulenames=8 +modulenames=9 COMMANDERFO + DOCKPANEL1FO DRUMSFO FILELISTFO MAINFO @@ -780,8 +781,9 @@ modulenames=8 SONGPLAYERFO STATUSFO WAVEFO -moduletypes=8 +moduletypes=9 TCOMMANDERFO + TDOCKPANEL1FO TDRUMSFO TFILELISTFO TMAINFO @@ -789,8 +791,9 @@ moduletypes=8 TSONGPLAYERFO TSTATUSFO TWAVEFO -modulefiles=8 +modulefiles=9 /home/fred/strumpract/src/commander.mfm + /home/fred/strumpract/src/dockpanel1.mfm /home/fred/strumpract/src/drums.mfm /home/fred/strumpract/src/filelistform.mfm /home/fred/strumpract/src/main.mfm @@ -1160,11 +1163,11 @@ line=40 582 11 142 - 47 - 1235 + 49 + 1279 5714 - 1415 - 126 + 1462 + 128 1478 305 318 @@ -1174,11 +1177,11 @@ line=40 780 701 1550 - 2098 + 2149 209 1136 - 2578 - 2787 + 2629 + 2838 399 5 720 @@ -1186,8 +1189,8 @@ line=40 103 162 1482 - 342 - 2984 + 356 + 3034 address=40 4584872 7099064 @@ -1515,30 +1518,35 @@ envvarons=0 [edit] hintwidth=314 hintheight=57 -finddtext=theplaying2 +finddtext=showall findhistory=20 - theplaying2 - theplaying1 - floatall showall - ondockr ondockp - timercount - timersent. - ontim - tfixcol - name of - filedialog - fileinfoty - extinfo1.size - size - ondes - status.sta - onchangep + onfl + ondockr ondockj - onfloat + ontimerw + Timerwait + updatelay + onmaind + dockm + endlayout + beginlayout + fileexists + timerwait + tierwait + fowidth + dragfloat + with dockpanel + theplaying2 + theplaying1 findoptions=1 -editpos=13 +editpos=14 + 0,-1073741823 + 0,-1073741823 + 0,1230 + 0,-1073741823 + 0,-1073741823 0,-1073741823 0,-1073741823 0,-1073741823 @@ -1546,12 +1554,8 @@ editpos=13 0,-1073741823 0,-1073741823 0,-1073741823 - 0,323 0,-1073741823 0,-1073741823 - 0,6 - 0,523 - 5,81 bookmarks0=0 bookmarks1=0 bookmarks2=0 @@ -1565,7 +1569,8 @@ bookmarks9=0 bookmarks10=0 bookmarks11=0 bookmarks12=0 -sourcefiles=13 +bookmarks13=0 +sourcefiles=14 ${PROJECTDIR}/filelistform.pas /home/fred/msegui/apps/ide/targetconsole.mfm ${PROJECTDIR}/main.pas @@ -1579,7 +1584,8 @@ sourcefiles=13 ${PROJECTDIR}/status.pas ${PROJECTDIR}/songplayer.pas ${PROJECTDIR}/strumpract.pas -relpaths=13 + ${PROJECTDIR}/dockpanel1.pas +relpaths=14 filelistform.pas msegui/apps/ide/targetconsole.mfm main.pas @@ -1593,7 +1599,8 @@ relpaths=13 status.pas songplayer.pas strumpract.pas -ismoduletexts=13 + dockpanel1.pas +ismoduletexts=14 0 -1 0 @@ -1607,7 +1614,8 @@ ismoduletexts=13 0 0 0 -modules=10 + 0 +modules=11 /home/fred/strumpract/src/main.mfm /home/fred/strumpract/src/commander.mfm /home/fred/strumpract/src/drums.mfm @@ -1618,7 +1626,8 @@ modules=10 /home/fred/strumpract/src/songplayer.mfm /home/fred/strumpract/src/waveform.mfm /home/fred/strumpract/src/status.mfm -moduleoptions=10 + /home/fred/strumpract/src/dockpanel1.mfm +moduleoptions=11 0 0 0 @@ -1629,9 +1638,9 @@ moduleoptions=10 0 0 0 -visiblemodules=10 - 0 0 +visiblemodules=11 + -1 0 0 0 @@ -1639,8 +1648,10 @@ visiblemodules=10 0 -1 -1 + -1 0 -nomenumodules=10 + -1 +nomenumodules=11 0 0 0 @@ -1651,10 +1662,12 @@ nomenumodules=10 0 0 0 + 0 [sourcefo.files_tab] -order=13 +order=14 0 2 + 13 6 10 7 @@ -1667,9 +1680,9 @@ order=13 5 1 firsttab=0 -index=6 +index=1 [layout] -windowlayout=753 +windowlayout=772 [mainfo.basedock] splitdir=2 useroptions=11395 @@ -1705,7 +1718,7 @@ windowlayout=753 basedock,0,0,1350,692 focusedchild=0 wsize=6 - active=1 + active=0 visible=1 [targetconsolefo] splitdir=0 @@ -1792,7 +1805,7 @@ windowlayout=753 [findinfilefo] splitdir=0 useroptions=268451947 - stackedunder=targetconsolefo + stackedunder= parent= mdistate=0 nx=0 @@ -1829,7 +1842,7 @@ windowlayout=753 sortdescend1=0 sorted=0 col=0 - row=8 + row=2 rowheight=16 [stackfo] splitdir=0 @@ -1914,7 +1927,7 @@ windowlayout=753 [objectinspectorfo] splitdir=0 useroptions=805322859 - stackedunder=_mse_songplayerfo_mse_ + stackedunder= parent= mdistate=0 nx=0 @@ -1929,12 +1942,12 @@ windowlayout=753 rcy=0 wsize=0 active=0 - visible=1 + visible=0 [objectinspectorfo.grid] - propcolwidthref=546 - width0=353 + propcolwidthref=561 + width0=363 sortdescend0=0 - width1=187 + width1=192 sortdescend1=0 [symbolfo] splitdir=0 @@ -2155,8 +2168,11 @@ windowlayout=753 [debuggerfo.edit_compiler] value=Pascal [debuggerfo.file_history] - value=/home/fred/strumpract/src/strumpract.pas + value=/home/fred/strumpract/src/main.pas history=20 + /home/fred/strumpract/src/main.pas + /home/fred/strumpract/src/waveform.pas + /home/fred/strumpract/src/strumpract.pas /home/fred/strumpract/src/status.pas /home/fred/strumpract/src/songplayer.pas /home/fred/strumpract/src/infos.pas @@ -2167,8 +2183,6 @@ windowlayout=753 /home/fred/strumpract/src/filelistform.pas /home/fred/strumpract/src/guitars.pas /home/fred/ideu/src/sourceupdate.pas - /home/fred/strumpract/src/main.pas - /home/fred/strumpract/src/waveform.pas /home/fred/strumpract/src/spectrum1.pas /home/fred/scrolltest/waveform.pas /home/fred/strumpract2play/src/songplayer.pas @@ -2176,9 +2190,8 @@ windowlayout=753 /home/fred/Téléchargements/msemem/main.pas /home/fred/sak/sak/sak_mse/examples/main.pas /home/fred/msemem/main2.pas - /home/fred/Téléchargements/msemem/msemem.pas [debuggerfo.project_options] - value=1 + value=6 [debuggerfo.hints] value=0 [sourcefo] @@ -2201,7 +2214,7 @@ windowlayout=753 irqoff=0 splitdir=0 useroptions=268451947 - stackedunder=_mse_mainfo_mse_ + stackedunder=_mse_drumsfo_mse_ parent= mdistate=0 nx=0 @@ -2236,7 +2249,7 @@ windowlayout=753 [_mse_mainfo_mse_] splitdir=0 useroptions=805322875 - stackedunder=_mse_drumsfo_mse_ + stackedunder=_mse_filelistfo_mse_ parent= mdistate=0 nx=0 @@ -2251,7 +2264,7 @@ windowlayout=753 rcy=0 wsize=0 active=0 - visible=0 + visible=1 [_mse_commanderfo_mse_] splitdir=0 useroptions=805322875 @@ -2331,7 +2344,7 @@ windowlayout=753 [_mse_filedialogres_mse_] splitdir=0 useroptions=805322875 - stackedunder=_mse_filelistfo_mse_ + stackedunder=_mse_statusfo_mse_ parent= mdistate=3 nx=0 @@ -2350,7 +2363,7 @@ windowlayout=753 [_mse_filelistfo_mse_] splitdir=0 useroptions=805322875 - stackedunder=_mse_statusfo_mse_ + stackedunder=_mse_songplayerfo_mse_ parent= mdistate=3 nx=0 @@ -2365,11 +2378,11 @@ windowlayout=753 rcy=0 wsize=0 active=0 - visible=0 + visible=1 [_mse_songplayerfo_mse_] splitdir=0 useroptions=805322875 - stackedunder=findinfilefo + stackedunder=_mse_wavefo_mse_ parent= mdistate=3 nx=0 @@ -2388,7 +2401,7 @@ windowlayout=753 [_mse_wavefo_mse_] splitdir=0 useroptions=805322875 - stackedunder=objectinspectorfo + stackedunder=_mse_dockpanel1fo_mse_ parent= mdistate=3 nx=0 @@ -2407,7 +2420,7 @@ windowlayout=753 [_mse_statusfo_mse_] splitdir=0 useroptions=805322875 - stackedunder=_mse_wavefo_mse_ + stackedunder=mainfo parent= mdistate=3 nx=0 @@ -2423,6 +2436,25 @@ windowlayout=753 wsize=0 active=0 visible=0 + [_mse_dockpanel1fo_mse_] + splitdir=0 + useroptions=805322875 + stackedunder=targetconsolefo + parent= + mdistate=3 + nx=0 + ny=0 + ncx=0 + ncy=0 + x=462 + y=211 + cx=464 + cy=96 + rcx=0 + rcy=0 + wsize=0 + active=1 + visible=1 [targetconsole] finddtext= findhistory=0 diff --git a/src/waveform.mfm b/src/waveform.mfm index 98792e2..ddd54dc 100644 --- a/src/waveform.mfm +++ b/src/waveform.mfm @@ -15,6 +15,8 @@ object wavefo: twavefo bounds_cy = 110 bounds_cxmin = 442 bounds_cymin = 94 + bounds_cxmax = 442 + bounds_cymax = 110 container.frame.optionsskin = [fso_flat] container.frame.localprops = [frl_optionsskin] container.frame.localprops1 = [] @@ -108,7 +110,7 @@ object wavefo: twavefo DA72AA01D679AC029DCFC91B9CD0CA01A5C3C501C88FB401D876AB01D778AC01 9CCDC81B9CCEC9019ECAC701B1AFBE01CB89B101BBA1B901 } - oncreate = oncreated + oncreated = oncreated onresize = onresiz onshow = onvisiblech onhide = onvisiblech diff --git a/src/waveform.pas b/src/waveform.pas index 81b8e4b..ff07cae 100644 --- a/src/waveform.pas +++ b/src/waveform.pas @@ -155,7 +155,7 @@ procedure twavefo.onfloat(const Sender: TObject); procedure twavefo.ondock(const Sender: TObject); begin bounds_cymax := 128; - bounds_cxmax := 442; + bounds_cxmax := 442; end; procedure twavefo.onvisiblech(const Sender: TObject); @@ -336,6 +336,20 @@ procedure twavefo.oncreated(const sender: TObject); begin SetExceptionMask(GetExceptionMask + [exZeroDivide] + [exInvalidOp] + [exDenormalized] + [exOverflow] + [exUnderflow] + [exPrecision]); + if (parentwidget = nil) then + begin + bounds_cxmax := 0; + bounds_cymax := 0; + end + else + begin + bounds_cxmax := fowidth; + bounds_cymax := wavefoheight; + bounds_cxmin := fowidth; + bounds_cymin := wavefoheight; + Width := fowidth; + Height := wavefoheight; + end; end; diff --git a/src/waveform_mfm.pas b/src/waveform_mfm.pas index 65a4e6e..f49a503 100644 --- a/src/waveform_mfm.pas +++ b/src/waveform_mfm.pas @@ -8,8 +8,8 @@ implementation mseclasses,waveform; const - objdata: record size: integer; data: array[0..6589] of byte end = - (size: 6590; data: ( + objdata: record size: integer; data: array[0..6621] of byte end = + (size: 6622; data: ( 84,80,70,48,7,116,119,97,118,101,102,111,6,119,97,118,101,102,111,16, 102,114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,11,0,17,102, 114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,49,11,0,15,102, @@ -30,316 +30,318 @@ implementation 110,100,115,95,121,3,49,1,9,98,111,117,110,100,115,95,99,120,3,186, 1,9,98,111,117,110,100,115,95,99,121,2,110,12,98,111,117,110,100,115, 95,99,120,109,105,110,3,186,1,12,98,111,117,110,100,115,95,99,121,109, - 105,110,2,94,27,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101, - 46,111,112,116,105,111,110,115,115,107,105,110,11,8,102,115,111,95,102,108, - 97,116,0,26,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46, - 108,111,99,97,108,112,114,111,112,115,11,15,102,114,108,95,111,112,116,105, - 111,110,115,115,107,105,110,0,27,99,111,110,116,97,105,110,101,114,46,102, - 114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,49,11,0,30,99, - 111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98,104,111,114, - 122,46,111,112,116,105,111,110,115,11,14,115,98,111,95,116,104,117,109,98, - 116,114,97,99,107,16,115,98,111,95,99,108,105,99,107,116,111,118,97,108, - 117,101,12,115,98,111,95,109,111,118,101,97,117,116,111,12,115,98,111,95, - 115,104,111,119,97,117,116,111,0,28,99,111,110,116,97,105,110,101,114,46, - 102,114,97,109,101,46,115,98,104,111,114,122,46,119,105,100,116,104,2,10, - 38,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98,104, - 111,114,122,46,102,97,99,101,46,108,111,99,97,108,112,114,111,112,115,11, - 0,36,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98, - 104,111,114,122,46,102,97,99,101,46,116,101,109,112,108,97,116,101,7,17, - 109,97,105,110,102,111,46,116,102,97,99,101,99,111,109,112,52,44,99,111, - 110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98,104,111,114,122, - 46,102,97,99,101,98,117,116,116,111,110,46,108,111,99,97,108,112,114,111, - 112,115,11,0,42,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101, - 46,115,98,104,111,114,122,46,102,97,99,101,98,117,116,116,111,110,46,116, - 101,109,112,108,97,116,101,7,19,109,97,105,110,102,111,46,116,102,97,99, - 101,98,117,116,103,114,97,121,28,99,111,110,116,97,105,110,101,114,46,102, - 114,97,109,101,46,115,98,118,101,114,116,46,119,105,100,116,104,2,1,16, - 99,111,110,116,97,105,110,101,114,46,98,111,117,110,100,115,1,2,0,2, - 16,3,178,1,2,94,0,16,100,114,97,103,100,111,99,107,46,102,97,99, - 101,116,97,98,7,19,109,97,105,110,102,111,46,116,102,97,99,101,98,117, - 116,103,114,97,121,22,100,114,97,103,100,111,99,107,46,102,97,99,101,97, - 99,116,105,118,101,116,97,98,7,23,109,97,105,110,102,111,46,116,102,97, - 99,101,112,108,97,121,101,114,108,105,103,104,116,20,100,114,97,103,100,111, - 99,107,46,111,112,116,105,111,110,115,100,111,99,107,11,10,111,100,95,115, - 97,118,101,112,111,115,13,111,100,95,115,97,118,101,122,111,114,100,101,114, - 10,111,100,95,99,97,110,109,111,118,101,11,111,100,95,99,97,110,102,108, - 111,97,116,10,111,100,95,99,97,110,100,111,99,107,10,111,100,95,102,105, - 120,115,105,122,101,14,111,100,95,99,97,112,116,105,111,110,104,105,110,116, - 13,111,100,95,99,104,105,108,100,105,99,111,110,115,0,16,100,114,97,103, - 100,111,99,107,46,111,110,102,108,111,97,116,7,7,111,110,102,108,111,97, - 116,15,100,114,97,103,100,111,99,107,46,111,110,100,111,99,107,7,6,111, - 110,100,111,99,107,8,109,97,105,110,109,101,110,117,7,10,116,109,97,105, - 110,109,101,110,117,49,8,115,116,97,116,102,105,108,101,7,17,109,97,105, - 110,102,111,46,116,115,116,97,116,102,105,108,101,49,15,105,99,111,110,46, - 111,114,105,103,102,111,114,109,97,116,6,3,112,110,103,10,105,99,111,110, - 46,105,109,97,103,101,10,88,8,0,0,0,0,0,0,0,0,0,0,32, - 0,0,0,32,0,0,0,36,8,0,0,0,0,0,0,0,0,0,0,0, + 105,110,2,94,12,98,111,117,110,100,115,95,99,120,109,97,120,3,186,1, + 12,98,111,117,110,100,115,95,99,121,109,97,120,2,110,27,99,111,110,116, + 97,105,110,101,114,46,102,114,97,109,101,46,111,112,116,105,111,110,115,115, + 107,105,110,11,8,102,115,111,95,102,108,97,116,0,26,99,111,110,116,97, + 105,110,101,114,46,102,114,97,109,101,46,108,111,99,97,108,112,114,111,112, + 115,11,15,102,114,108,95,111,112,116,105,111,110,115,115,107,105,110,0,27, + 99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,108,111,99,97, + 108,112,114,111,112,115,49,11,0,30,99,111,110,116,97,105,110,101,114,46, + 102,114,97,109,101,46,115,98,104,111,114,122,46,111,112,116,105,111,110,115, + 11,14,115,98,111,95,116,104,117,109,98,116,114,97,99,107,16,115,98,111, + 95,99,108,105,99,107,116,111,118,97,108,117,101,12,115,98,111,95,109,111, + 118,101,97,117,116,111,12,115,98,111,95,115,104,111,119,97,117,116,111,0, + 28,99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98,104, + 111,114,122,46,119,105,100,116,104,2,10,38,99,111,110,116,97,105,110,101, + 114,46,102,114,97,109,101,46,115,98,104,111,114,122,46,102,97,99,101,46, + 108,111,99,97,108,112,114,111,112,115,11,0,36,99,111,110,116,97,105,110, + 101,114,46,102,114,97,109,101,46,115,98,104,111,114,122,46,102,97,99,101, + 46,116,101,109,112,108,97,116,101,7,17,109,97,105,110,102,111,46,116,102, + 97,99,101,99,111,109,112,52,44,99,111,110,116,97,105,110,101,114,46,102, + 114,97,109,101,46,115,98,104,111,114,122,46,102,97,99,101,98,117,116,116, + 111,110,46,108,111,99,97,108,112,114,111,112,115,11,0,42,99,111,110,116, + 97,105,110,101,114,46,102,114,97,109,101,46,115,98,104,111,114,122,46,102, + 97,99,101,98,117,116,116,111,110,46,116,101,109,112,108,97,116,101,7,19, + 109,97,105,110,102,111,46,116,102,97,99,101,98,117,116,103,114,97,121,28, + 99,111,110,116,97,105,110,101,114,46,102,114,97,109,101,46,115,98,118,101, + 114,116,46,119,105,100,116,104,2,1,16,99,111,110,116,97,105,110,101,114, + 46,98,111,117,110,100,115,1,2,0,2,16,3,178,1,2,94,0,16,100, + 114,97,103,100,111,99,107,46,102,97,99,101,116,97,98,7,19,109,97,105, + 110,102,111,46,116,102,97,99,101,98,117,116,103,114,97,121,22,100,114,97, + 103,100,111,99,107,46,102,97,99,101,97,99,116,105,118,101,116,97,98,7, + 23,109,97,105,110,102,111,46,116,102,97,99,101,112,108,97,121,101,114,108, + 105,103,104,116,20,100,114,97,103,100,111,99,107,46,111,112,116,105,111,110, + 115,100,111,99,107,11,10,111,100,95,115,97,118,101,112,111,115,13,111,100, + 95,115,97,118,101,122,111,114,100,101,114,10,111,100,95,99,97,110,109,111, + 118,101,11,111,100,95,99,97,110,102,108,111,97,116,10,111,100,95,99,97, + 110,100,111,99,107,10,111,100,95,102,105,120,115,105,122,101,14,111,100,95, + 99,97,112,116,105,111,110,104,105,110,116,13,111,100,95,99,104,105,108,100, + 105,99,111,110,115,0,16,100,114,97,103,100,111,99,107,46,111,110,102,108, + 111,97,116,7,7,111,110,102,108,111,97,116,15,100,114,97,103,100,111,99, + 107,46,111,110,100,111,99,107,7,6,111,110,100,111,99,107,8,109,97,105, + 110,109,101,110,117,7,10,116,109,97,105,110,109,101,110,117,49,8,115,116, + 97,116,102,105,108,101,7,17,109,97,105,110,102,111,46,116,115,116,97,116, + 102,105,108,101,49,15,105,99,111,110,46,111,114,105,103,102,111,114,109,97, + 116,6,3,112,110,103,10,105,99,111,110,46,105,109,97,103,101,10,88,8, + 0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,0,0,36,8, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,192,252,246,28,191,253,247,1,195,239,236,1,196,231,230,1,191, - 255,248,1,190,250,244,27,190,251,245,1,192,241,237,1,200,210,214,1,204, - 195,203,1,197,222,223,1,189,249,243,24,190,247,241,1,194,230,229,1,189, - 250,244,1,188,252,245,1,197,220,222,1,216,146,167,1,214,152,171,1,207, - 180,192,1,188,247,241,3,188,248,242,1,190,242,237,1,195,221,222,1,187, - 250,243,1,188,247,241,3,187,251,244,1,198,209,214,1,196,220,221,1,187, - 250,243,1,188,247,241,3,188,249,243,1,188,248,241,1,188,247,241,3,191, - 233,231,1,190,238,235,1,188,246,240,1,204,190,199,1,187,252,245,1,187, - 250,243,1,196,219,221,1,216,146,167,1,214,153,172,1,214,152,171,1,187, - 246,240,4,189,237,234,1,199,206,211,1,186,249,242,1,187,247,240,1,186, - 248,241,1,187,245,239,1,185,252,245,1,203,190,199,1,200,200,206,1,187, - 247,240,1,186,248,241,1,191,232,230,1,187,245,239,1,195,217,219,1,188, - 243,237,1,187,246,240,2,187,245,239,1,201,197,204,1,216,147,167,1,211, - 162,178,1,211,164,180,1,185,252,244,1,186,248,242,1,195,218,219,1,216, - 146,167,1,214,153,172,2,186,244,238,3,186,243,237,1,188,236,232,1,198, - 205,210,1,184,250,242,1,194,218,219,1,202,191,200,1,184,249,242,1,192, - 223,222,1,210,166,181,1,207,175,188,1,190,232,229,1,191,228,227,1,200, - 199,206,1,187,242,236,1,212,158,176,1,189,235,231,1,186,244,238,2,186, - 243,238,1,215,149,169,1,214,153,172,1,214,152,171,1,210,166,181,1,185, - 247,240,2,194,217,218,1,216,146,167,1,214,153,172,2,185,243,237,2,186, - 241,235,1,198,200,206,1,192,220,221,1,200,196,203,1,193,217,218,1,194, - 216,217,1,211,161,178,1,190,226,224,1,198,203,208,1,216,146,167,1,206, - 177,189,1,188,233,230,1,194,214,215,1,206,177,189,1,187,237,233,1,211, - 162,178,1,194,215,217,1,185,242,237,1,185,244,238,1,185,243,237,1,215, - 151,170,1,214,153,172,2,212,159,176,1,195,210,213,1,183,249,241,1,194, - 216,218,1,216,146,167,1,214,153,172,2,183,241,235,1,184,240,234,1,198, - 201,206,1,203,185,195,1,200,195,203,1,206,177,189,1,207,174,187,1,199, - 197,204,1,216,147,168,1,198,200,206,1,197,203,208,1,216,147,168,1,213, - 157,175,1,191,221,221,1,193,215,217,1,213,155,173,1,187,231,228,1,210, - 163,179,1,202,190,199,1,188,228,226,1,197,204,209,1,183,241,235,1,215, - 151,170,1,214,153,172,2,212,159,176,1,194,210,214,1,181,248,240,1,193, - 215,216,1,216,147,167,1,214,153,172,2,183,240,234,1,183,238,232,1,200, - 191,199,1,213,155,173,1,199,193,200,1,216,148,168,1,210,164,180,1,204, - 181,192,1,217,146,167,1,198,197,203,1,195,204,208,1,216,148,168,2,196, - 203,208,1,195,205,209,1,213,154,173,1,186,229,226,1,210,163,179,1,202, - 186,195,1,198,196,202,2,183,239,233,1,215,151,170,1,214,153,172,2,213, - 154,173,1,207,171,185,1,194,210,213,1,191,217,218,1,216,147,168,1,214, - 153,172,2,181,238,233,1,182,236,232,1,200,191,198,1,214,153,172,1,208, - 169,184,1,214,152,171,1,214,153,172,1,214,152,171,1,214,152,172,1,211, - 161,178,1,210,162,179,1,214,152,171,1,215,150,170,1,202,185,194,1,209, - 166,181,1,217,145,167,1,185,229,226,1,209,165,181,1,215,150,170,1,208, - 169,184,1,198,195,201,1,183,233,229,1,215,151,171,1,214,153,172,3,215, - 151,171,1,205,176,189,1,188,219,219,1,216,147,168,1,214,153,172,2,180, - 237,231,2,207,172,186,1,215,152,171,1,214,153,172,9,213,156,174,1,214, - 154,173,1,216,148,169,1,190,212,214,1,210,163,179,1,214,152,172,1,214, - 153,172,1,213,156,174,1,214,154,173,1,214,153,172,4,214,152,171,1,209, - 166,181,1,200,188,196,1,215,150,170,1,214,153,172,2,179,235,229,1,198, - 189,198,1,215,150,170,1,214,153,172,13,212,158,175,1,214,154,173,1,214, - 153,172,8,214,152,172,1,211,161,178,1,204,176,188,1,215,151,171,1,214, - 153,172,2,178,233,228,1,197,191,198,1,215,151,171,1,214,153,172,25,215, - 152,171,1,214,153,172,3,177,231,227,1,196,190,197,1,215,151,171,1,214, - 153,172,29,175,231,225,1,196,189,197,1,215,151,171,1,214,153,172,29,174, - 229,223,1,188,204,206,1,200,182,190,1,199,183,191,29,174,227,222,1,196, - 168,194,1,216,113,169,1,215,116,170,29,172,225,221,1,194,170,194,1,215, - 119,171,1,214,121,172,29,171,224,219,1,195,169,194,1,215,119,171,1,214, - 121,172,29,170,223,217,1,194,168,193,1,215,119,171,1,214,121,172,24,214, - 120,172,1,215,120,171,1,214,121,172,3,169,221,216,1,190,175,196,1,216, - 116,170,1,214,121,172,13,215,119,171,1,214,121,172,9,214,120,172,1,210, - 131,176,1,202,148,184,1,215,118,171,1,214,121,172,2,168,220,215,1,168, - 219,215,1,193,167,192,1,215,118,171,1,214,121,172,9,213,124,173,1,213, - 122,173,1,216,117,170,1,191,171,194,1,210,129,176,1,214,121,172,2,212, - 125,174,2,214,121,172,4,215,120,171,1,207,136,179,1,195,163,190,1,216, - 117,170,1,214,121,172,2,166,219,213,1,167,217,212,1,193,164,190,1,214, - 121,172,1,205,140,180,1,215,120,171,1,214,121,172,2,215,119,171,1,204, - 142,181,1,202,145,183,1,215,119,171,1,216,118,171,1,197,157,187,1,207, - 135,178,1,218,112,168,1,171,208,209,1,207,135,178,1,215,118,171,1,205, - 140,180,1,191,169,193,1,168,215,211,1,215,119,171,1,214,121,172,3,215, - 119,171,1,201,147,183,1,177,197,204,1,218,114,169,1,214,121,172,2,165, - 217,212,1,166,215,211,1,193,164,190,1,206,138,179,1,193,164,190,1,217, - 115,169,1,214,120,172,1,215,118,171,1,216,117,170,1,190,169,192,1,186, - 177,195,1,217,115,170,1,217,115,169,1,182,183,198,1,184,181,197,1,214, - 122,172,1,171,206,207,1,208,133,177,1,196,157,187,1,190,170,192,1,191, - 168,192,1,166,217,212,1,215,119,171,1,214,121,172,2,213,122,173,1,203, - 143,181,1,178,192,202,1,178,192,201,1,218,114,169,1,214,121,172,2,164, - 216,211,1,165,214,210,1,182,182,196,1,189,169,191,1,189,168,191,1,193, - 162,188,1,202,143,181,1,188,171,192,1,217,115,169,1,187,172,193,1,186, - 175,194,1,217,114,169,1,212,125,174,1,176,193,202,1,179,188,199,1,213, - 123,173,1,170,204,206,1,208,132,177,1,193,162,188,1,180,185,197,1,190, - 167,190,1,164,215,211,1,215,119,171,1,214,121,172,2,211,128,175,1,181, - 183,197,1,160,223,214,1,179,187,199,1,218,114,169,1,214,121,172,2,163, - 214,209,2,165,210,207,1,185,175,194,1,165,211,208,1,191,165,190,1,178, - 187,198,1,179,185,197,1,209,130,176,1,173,197,202,1,185,173,193,1,217, - 115,169,1,201,146,182,1,169,204,205,1,178,187,198,1,200,147,182,1,166, - 208,206,1,209,130,175,1,179,186,198,1,163,214,209,1,174,194,201,1,163, - 214,209,1,215,118,171,1,214,121,172,2,211,127,175,1,182,180,196,1,159, - 220,211,1,178,186,198,1,218,114,169,1,214,121,172,2,162,213,207,3,162, - 214,207,1,167,205,204,1,184,174,192,1,159,218,209,1,167,204,204,1,185, - 172,191,1,177,187,197,1,172,196,201,1,206,136,178,1,202,143,181,1,170, - 199,202,1,159,218,209,1,184,174,192,1,164,210,206,1,211,126,174,1,167, - 204,204,1,162,213,207,3,192,161,188,1,215,119,171,1,214,120,172,1,209, - 130,176,1,171,197,201,1,159,218,209,1,178,185,197,1,218,114,169,1,214, - 121,172,2,160,211,206,3,160,212,207,1,165,203,203,1,184,171,191,1,158, - 215,208,1,160,212,207,1,159,213,207,3,196,152,184,1,187,166,189,1,159, - 213,207,1,160,212,207,1,164,206,204,1,160,212,207,1,177,183,195,1,162, - 208,205,1,160,211,206,3,190,162,187,1,219,113,169,1,216,117,171,1,207, - 133,177,1,156,219,209,1,159,214,207,1,176,184,196,1,218,114,169,1,214, - 121,172,2,160,210,205,4,161,207,204,1,167,199,200,1,159,211,205,1,160, - 210,205,3,158,212,206,1,176,184,195,1,171,191,198,1,159,211,205,1,160, - 210,205,3,159,211,205,1,160,210,205,4,168,197,199,1,156,215,207,1,179, - 179,193,1,191,159,186,1,157,214,206,1,158,212,206,1,176,183,195,1,218, - 115,170,1,214,121,172,2,159,208,203,24,162,203,201,1,182,172,190,1,157, - 211,204,1,157,210,204,1,175,182,194,1,218,114,170,1,214,121,172,2,157, - 207,201,27,156,208,202,1,165,195,197,1,200,143,180,1,216,118,171,1,215, - 120,172,1,156,205,200,27,156,206,201,1,158,202,199,1,177,175,190,1,203, - 137,177,1,187,161,185,1,8,111,110,99,114,101,97,116,101,7,9,111,110, - 99,114,101,97,116,101,100,8,111,110,114,101,115,105,122,101,7,7,111,110, - 114,101,115,105,122,6,111,110,115,104,111,119,7,11,111,110,118,105,115,105, - 98,108,101,99,104,6,111,110,104,105,100,101,7,11,111,110,118,105,115,105, - 98,108,101,99,104,15,109,111,100,117,108,101,99,108,97,115,115,110,97,109, - 101,6,9,116,100,111,99,107,102,111,114,109,0,7,116,115,108,105,100,101, - 114,9,116,114,97,99,107,98,97,114,49,14,111,112,116,105,111,110,115,119, - 105,100,103,101,116,49,11,13,111,119,49,95,97,117,116,111,115,99,97,108, - 101,17,111,119,49,95,110,111,99,108,97,109,112,105,110,118,105,101,119,0, - 5,99,111,108,111,114,4,3,0,0,128,12,102,114,97,109,101,46,108,101, - 118,101,108,111,2,0,16,102,114,97,109,101,46,108,111,99,97,108,112,114, - 111,112,115,11,10,102,114,108,95,108,101,118,101,108,111,10,102,114,108,95, - 108,101,118,101,108,105,0,17,102,114,97,109,101,46,108,111,99,97,108,112, - 114,111,112,115,49,11,0,15,102,97,99,101,46,108,111,99,97,108,112,114, - 111,112,115,11,0,13,102,97,99,101,46,116,101,109,112,108,97,116,101,7, - 18,109,97,105,110,102,111,46,116,102,97,99,101,112,108,97,121,101,114,8, - 116,97,98,111,114,100,101,114,2,1,4,104,105,110,116,6,35,32,67,108, - 105,99,107,32,116,111,32,99,104,97,110,103,101,32,112,111,115,105,116,105, - 111,110,32,111,102,32,115,111,117,110,100,32,8,98,111,117,110,100,115,95, - 120,2,0,8,98,111,117,110,100,115,95,121,2,0,9,98,111,117,110,100, - 115,95,99,120,3,176,1,9,98,111,117,110,100,115,95,99,121,2,80,7, - 101,110,97,98,108,101,100,8,5,118,97,108,117,101,2,0,17,115,99,114, - 111,108,108,98,97,114,46,111,112,116,105,111,110,115,11,14,115,98,111,95, - 116,104,117,109,98,116,114,97,99,107,16,115,98,111,95,99,108,105,99,107, - 116,111,118,97,108,117,101,12,115,98,111,95,109,111,118,101,97,117,116,111, - 12,115,98,111,95,115,104,111,119,97,117,116,111,13,115,98,111,95,118,97, - 108,117,101,107,101,121,115,0,22,115,99,114,111,108,108,98,97,114,46,98, - 117,116,116,111,110,108,101,110,103,116,104,2,2,25,115,99,114,111,108,108, - 98,97,114,46,98,117,116,116,111,110,109,105,110,108,101,110,103,116,104,2, - 1,25,115,99,114,111,108,108,98,97,114,46,98,117,116,116,111,110,101,110, - 100,108,101,110,103,116,104,2,255,27,115,99,114,111,108,108,98,97,114,46, - 102,97,99,101,46,105,109,97,103,101,46,115,111,117,114,99,101,7,11,115, - 108,105,100,101,114,105,109,97,103,101,29,115,99,114,111,108,108,98,97,114, - 46,102,97,99,101,46,102,97,100,101,95,100,105,114,101,99,116,105,111,110, - 7,7,103,100,95,100,111,119,110,25,115,99,114,111,108,108,98,97,114,46, - 102,97,99,101,46,108,111,99,97,108,112,114,111,112,115,11,15,102,97,108, - 95,102,97,100,105,114,101,99,116,105,111,110,9,102,97,108,95,105,109,97, - 103,101,0,28,115,99,114,111,108,108,98,97,114,46,102,97,99,101,49,46, - 105,109,97,103,101,46,115,111,117,114,99,101,7,11,115,108,105,100,101,114, - 105,109,97,103,101,28,115,99,114,111,108,108,98,97,114,46,102,97,99,101, - 49,46,102,114,97,109,101,105,95,114,105,103,104,116,2,250,26,115,99,114, - 111,108,108,98,97,114,46,102,97,99,101,49,46,108,111,99,97,108,112,114, - 111,112,115,11,16,102,97,108,95,102,114,97,109,101,105,95,114,105,103,104, - 116,9,102,97,108,95,105,109,97,103,101,0,24,115,99,114,111,108,108,98, - 97,114,46,102,97,99,101,49,46,116,101,109,112,108,97,116,101,7,17,109, - 97,105,110,102,111,46,116,102,97,99,101,103,114,101,101,110,15,115,99,114, - 111,108,108,98,97,114,46,99,111,108,111,114,4,3,0,0,128,22,115,99, - 114,111,108,108,98,97,114,46,111,110,97,102,116,101,114,101,118,101,110,116, - 7,9,111,110,97,102,116,101,114,101,118,0,0,11,116,115,116,114,105,110, - 103,103,114,105,100,7,101,99,104,101,108,108,101,5,99,111,108,111,114,4, - 211,211,211,0,12,102,114,97,109,101,46,108,101,118,101,108,111,2,0,16, - 102,114,97,109,101,46,99,111,108,111,114,102,114,97,109,101,4,38,38,38, - 0,16,102,114,97,109,101,46,99,111,108,111,114,108,105,103,104,116,4,38, - 38,38,0,18,102,114,97,109,101,46,99,111,108,111,114,100,107,119,105,100, - 116,104,2,1,18,102,114,97,109,101,46,99,111,108,111,114,104,108,119,105, - 100,116,104,2,1,17,102,114,97,109,101,46,102,114,97,109,101,105,95,108, - 101,102,116,2,1,16,102,114,97,109,101,46,102,114,97,109,101,105,95,116, - 111,112,2,1,18,102,114,97,109,101,46,102,114,97,109,101,105,95,114,105, - 103,104,116,2,1,19,102,114,97,109,101,46,102,114,97,109,101,105,95,98, - 111,116,116,111,109,2,1,18,102,114,97,109,101,46,115,98,118,101,114,116, - 46,119,105,100,116,104,2,0,18,102,114,97,109,101,46,115,98,104,111,114, - 122,46,119,105,100,116,104,2,0,16,102,114,97,109,101,46,108,111,99,97, - 108,112,114,111,112,115,11,10,102,114,108,95,108,101,118,101,108,111,14,102, - 114,108,95,99,111,108,111,114,102,114,97,109,101,14,102,114,108,95,99,111, - 108,111,114,108,105,103,104,116,16,102,114,108,95,99,111,108,111,114,100,107, - 119,105,100,116,104,16,102,114,108,95,99,111,108,111,114,104,108,119,105,100, - 116,104,10,102,114,108,95,102,105,108,101,102,116,9,102,114,108,95,102,105, - 116,111,112,11,102,114,108,95,102,105,114,105,103,104,116,12,102,114,108,95, - 102,105,98,111,116,116,111,109,0,17,102,114,97,109,101,46,108,111,99,97, - 108,112,114,111,112,115,49,11,0,7,101,110,97,98,108,101,100,8,8,98, - 111,117,110,100,115,95,120,2,0,8,98,111,117,110,100,115,95,121,2,78, - 9,98,111,117,110,100,115,95,99,120,3,176,1,9,98,111,117,110,100,115, - 95,99,121,2,16,7,97,110,99,104,111,114,115,11,7,97,110,95,108,101, - 102,116,9,97,110,95,98,111,116,116,111,109,0,18,100,97,116,97,99,111, - 108,115,46,108,105,110,101,99,111,108,111,114,4,25,0,0,144,14,100,97, - 116,97,99,111,108,115,46,119,105,100,116,104,2,21,19,100,97,116,97,99, - 111,108,115,46,102,111,110,116,46,99,111,108,111,114,4,2,0,0,160,29, - 100,97,116,97,99,111,108,115,46,102,111,110,116,46,99,111,108,111,114,98, - 97,99,107,103,114,111,117,110,100,4,4,0,0,160,20,100,97,116,97,99, - 111,108,115,46,102,111,110,116,46,104,101,105,103,104,116,2,9,18,100,97, - 116,97,99,111,108,115,46,102,111,110,116,46,110,97,109,101,6,11,115,116, - 102,95,100,101,102,97,117,108,116,24,100,97,116,97,99,111,108,115,46,102, - 111,110,116,46,108,111,99,97,108,112,114,111,112,115,11,9,102,108,112,95, - 99,111,108,111,114,19,102,108,112,95,99,111,108,111,114,98,97,99,107,103, - 114,111,117,110,100,10,102,108,112,95,104,101,105,103,104,116,0,8,114,111, - 119,99,111,117,110,116,2,1,15,114,111,119,99,111,108,111,114,115,46,99, - 111,117,110,116,2,1,15,114,111,119,99,111,108,111,114,115,46,105,116,101, - 109,115,1,4,4,0,0,160,0,16,100,97,116,97,114,111,119,108,105,110, - 101,99,111,108,111,114,4,25,0,0,144,13,100,97,116,97,114,111,119,104, - 101,105,103,104,116,2,14,12,115,116,97,116,112,114,105,111,114,105,116,121, - 2,1,13,114,101,102,102,111,110,116,104,101,105,103,104,116,2,14,0,0, - 11,116,98,105,116,109,97,112,99,111,109,112,11,115,108,105,100,101,114,105, - 109,97,103,101,4,108,101,102,116,2,72,3,116,111,112,2,21,0,0,6, - 116,116,105,109,101,114,7,116,116,105,109,101,114,49,8,105,110,116,101,114, - 118,97,108,4,32,161,7,0,7,111,112,116,105,111,110,115,11,9,116,111, - 95,115,105,110,103,108,101,0,7,111,110,116,105,109,101,114,7,6,111,110, - 122,111,111,109,4,108,101,102,116,2,23,3,116,111,112,2,44,0,0,9, - 116,109,97,105,110,109,101,110,117,10,116,109,97,105,110,109,101,110,117,49, - 18,109,101,110,117,46,115,117,98,109,101,110,117,46,99,111,117,110,116,2, - 9,18,109,101,110,117,46,115,117,98,109,101,110,117,46,105,116,101,109,115, - 14,1,7,99,97,112,116,105,111,110,6,8,32,69,110,97,98,108,101,32, - 4,104,105,110,116,6,28,32,69,110,97,98,108,101,32,87,97,118,101,32, - 70,111,114,109,32,114,101,110,100,101,114,105,110,103,32,5,115,116,97,116, - 101,11,10,97,115,95,99,104,101,99,107,101,100,15,97,115,95,108,111,99, - 97,108,99,104,101,99,107,101,100,15,97,115,95,108,111,99,97,108,99,97, - 112,116,105,111,110,12,97,115,95,108,111,99,97,108,104,105,110,116,0,7, - 111,112,116,105,111,110,115,11,12,109,97,111,95,99,104,101,99,107,98,111, - 120,19,109,97,111,95,115,104,111,114,116,99,117,116,99,97,112,116,105,111, - 110,0,0,1,7,111,112,116,105,111,110,115,11,13,109,97,111,95,115,101, - 112,97,114,97,116,111,114,19,109,97,111,95,115,104,111,114,116,99,117,116, - 99,97,112,116,105,111,110,0,0,1,7,99,97,112,116,105,111,110,6,7, - 32,78,111,119,61,49,32,4,104,105,110,116,6,20,32,65,99,116,117,97, - 108,32,90,111,111,109,32,102,97,99,116,111,114,32,5,115,116,97,116,101, - 11,16,97,115,95,108,111,99,97,108,100,105,115,97,98,108,101,100,15,97, - 115,95,108,111,99,97,108,99,97,112,116,105,111,110,13,97,115,95,108,111, - 99,97,108,99,111,108,111,114,12,97,115,95,108,111,99,97,108,104,105,110, - 116,0,5,99,111,108,111,114,4,230,230,230,0,0,1,7,111,112,116,105, - 111,110,115,11,13,109,97,111,95,115,101,112,97,114,97,116,111,114,19,109, - 97,111,95,115,104,111,114,116,99,117,116,99,97,112,116,105,111,110,0,0, - 1,7,99,97,112,116,105,111,110,6,8,32,90,111,111,109,61,49,32,4, - 104,105,110,116,6,21,90,111,111,109,32,116,111,32,119,105,110,100,111,119, - 32,119,105,100,116,104,32,5,115,116,97,116,101,11,15,97,115,95,108,111, - 99,97,108,99,97,112,116,105,111,110,12,97,115,95,108,111,99,97,108,104, - 105,110,116,11,97,115,95,108,111,99,97,108,116,97,103,17,97,115,95,108, - 111,99,97,108,111,110,101,120,101,99,117,116,101,0,9,111,110,101,120,101, - 99,117,116,101,7,6,111,110,122,111,111,109,0,1,7,99,97,112,116,105, - 111,110,6,8,32,90,111,111,109,88,50,32,4,104,105,110,116,6,12,32, - 90,111,111,109,32,116,119,105,99,101,32,5,115,116,97,116,101,11,15,97, - 115,95,108,111,99,97,108,99,97,112,116,105,111,110,12,97,115,95,108,111, - 99,97,108,104,105,110,116,11,97,115,95,108,111,99,97,108,116,97,103,17, - 97,115,95,108,111,99,97,108,111,110,101,120,101,99,117,116,101,0,3,116, - 97,103,2,1,9,111,110,101,120,101,99,117,116,101,7,6,111,110,122,111, - 111,109,0,1,7,99,97,112,116,105,111,110,6,8,32,90,111,111,109,47, - 50,32,4,104,105,110,116,6,11,32,90,111,111,109,32,104,97,108,102,32, - 5,115,116,97,116,101,11,15,97,115,95,108,111,99,97,108,99,97,112,116, - 105,111,110,12,97,115,95,108,111,99,97,108,104,105,110,116,11,97,115,95, - 108,111,99,97,108,116,97,103,17,97,115,95,108,111,99,97,108,111,110,101, - 120,101,99,117,116,101,0,3,116,97,103,2,2,9,111,110,101,120,101,99, - 117,116,101,7,6,111,110,122,111,111,109,0,1,7,99,97,112,116,105,111, - 110,6,1,32,5,115,116,97,116,101,11,15,97,115,95,108,111,99,97,108, - 99,97,112,116,105,111,110,0,7,111,112,116,105,111,110,115,11,13,109,97, - 111,95,115,101,112,97,114,97,116,111,114,19,109,97,111,95,115,104,111,114, - 116,99,117,116,99,97,112,116,105,111,110,0,0,1,7,99,97,112,116,105, - 111,110,6,12,32,65,117,116,111,115,99,114,111,108,108,32,4,104,105,110, - 116,6,48,32,84,104,101,32,115,99,114,111,108,108,98,97,114,32,119,105, - 108,108,32,102,111,108,111,119,32,116,104,101,32,112,111,115,105,116,105,111, - 110,32,111,102,32,115,111,117,110,100,32,5,115,116,97,116,101,11,10,97, - 115,95,99,104,101,99,107,101,100,17,97,115,95,108,111,99,97,108,105,110, - 118,105,115,105,98,108,101,15,97,115,95,108,111,99,97,108,99,104,101,99, - 107,101,100,15,97,115,95,108,111,99,97,108,99,97,112,116,105,111,110,12, - 97,115,95,108,111,99,97,108,104,105,110,116,17,97,115,95,108,111,99,97, - 108,111,110,101,120,101,99,117,116,101,0,7,111,112,116,105,111,110,115,11, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,252,246,28,191,253, + 247,1,195,239,236,1,196,231,230,1,191,255,248,1,190,250,244,27,190,251, + 245,1,192,241,237,1,200,210,214,1,204,195,203,1,197,222,223,1,189,249, + 243,24,190,247,241,1,194,230,229,1,189,250,244,1,188,252,245,1,197,220, + 222,1,216,146,167,1,214,152,171,1,207,180,192,1,188,247,241,3,188,248, + 242,1,190,242,237,1,195,221,222,1,187,250,243,1,188,247,241,3,187,251, + 244,1,198,209,214,1,196,220,221,1,187,250,243,1,188,247,241,3,188,249, + 243,1,188,248,241,1,188,247,241,3,191,233,231,1,190,238,235,1,188,246, + 240,1,204,190,199,1,187,252,245,1,187,250,243,1,196,219,221,1,216,146, + 167,1,214,153,172,1,214,152,171,1,187,246,240,4,189,237,234,1,199,206, + 211,1,186,249,242,1,187,247,240,1,186,248,241,1,187,245,239,1,185,252, + 245,1,203,190,199,1,200,200,206,1,187,247,240,1,186,248,241,1,191,232, + 230,1,187,245,239,1,195,217,219,1,188,243,237,1,187,246,240,2,187,245, + 239,1,201,197,204,1,216,147,167,1,211,162,178,1,211,164,180,1,185,252, + 244,1,186,248,242,1,195,218,219,1,216,146,167,1,214,153,172,2,186,244, + 238,3,186,243,237,1,188,236,232,1,198,205,210,1,184,250,242,1,194,218, + 219,1,202,191,200,1,184,249,242,1,192,223,222,1,210,166,181,1,207,175, + 188,1,190,232,229,1,191,228,227,1,200,199,206,1,187,242,236,1,212,158, + 176,1,189,235,231,1,186,244,238,2,186,243,238,1,215,149,169,1,214,153, + 172,1,214,152,171,1,210,166,181,1,185,247,240,2,194,217,218,1,216,146, + 167,1,214,153,172,2,185,243,237,2,186,241,235,1,198,200,206,1,192,220, + 221,1,200,196,203,1,193,217,218,1,194,216,217,1,211,161,178,1,190,226, + 224,1,198,203,208,1,216,146,167,1,206,177,189,1,188,233,230,1,194,214, + 215,1,206,177,189,1,187,237,233,1,211,162,178,1,194,215,217,1,185,242, + 237,1,185,244,238,1,185,243,237,1,215,151,170,1,214,153,172,2,212,159, + 176,1,195,210,213,1,183,249,241,1,194,216,218,1,216,146,167,1,214,153, + 172,2,183,241,235,1,184,240,234,1,198,201,206,1,203,185,195,1,200,195, + 203,1,206,177,189,1,207,174,187,1,199,197,204,1,216,147,168,1,198,200, + 206,1,197,203,208,1,216,147,168,1,213,157,175,1,191,221,221,1,193,215, + 217,1,213,155,173,1,187,231,228,1,210,163,179,1,202,190,199,1,188,228, + 226,1,197,204,209,1,183,241,235,1,215,151,170,1,214,153,172,2,212,159, + 176,1,194,210,214,1,181,248,240,1,193,215,216,1,216,147,167,1,214,153, + 172,2,183,240,234,1,183,238,232,1,200,191,199,1,213,155,173,1,199,193, + 200,1,216,148,168,1,210,164,180,1,204,181,192,1,217,146,167,1,198,197, + 203,1,195,204,208,1,216,148,168,2,196,203,208,1,195,205,209,1,213,154, + 173,1,186,229,226,1,210,163,179,1,202,186,195,1,198,196,202,2,183,239, + 233,1,215,151,170,1,214,153,172,2,213,154,173,1,207,171,185,1,194,210, + 213,1,191,217,218,1,216,147,168,1,214,153,172,2,181,238,233,1,182,236, + 232,1,200,191,198,1,214,153,172,1,208,169,184,1,214,152,171,1,214,153, + 172,1,214,152,171,1,214,152,172,1,211,161,178,1,210,162,179,1,214,152, + 171,1,215,150,170,1,202,185,194,1,209,166,181,1,217,145,167,1,185,229, + 226,1,209,165,181,1,215,150,170,1,208,169,184,1,198,195,201,1,183,233, + 229,1,215,151,171,1,214,153,172,3,215,151,171,1,205,176,189,1,188,219, + 219,1,216,147,168,1,214,153,172,2,180,237,231,2,207,172,186,1,215,152, + 171,1,214,153,172,9,213,156,174,1,214,154,173,1,216,148,169,1,190,212, + 214,1,210,163,179,1,214,152,172,1,214,153,172,1,213,156,174,1,214,154, + 173,1,214,153,172,4,214,152,171,1,209,166,181,1,200,188,196,1,215,150, + 170,1,214,153,172,2,179,235,229,1,198,189,198,1,215,150,170,1,214,153, + 172,13,212,158,175,1,214,154,173,1,214,153,172,8,214,152,172,1,211,161, + 178,1,204,176,188,1,215,151,171,1,214,153,172,2,178,233,228,1,197,191, + 198,1,215,151,171,1,214,153,172,25,215,152,171,1,214,153,172,3,177,231, + 227,1,196,190,197,1,215,151,171,1,214,153,172,29,175,231,225,1,196,189, + 197,1,215,151,171,1,214,153,172,29,174,229,223,1,188,204,206,1,200,182, + 190,1,199,183,191,29,174,227,222,1,196,168,194,1,216,113,169,1,215,116, + 170,29,172,225,221,1,194,170,194,1,215,119,171,1,214,121,172,29,171,224, + 219,1,195,169,194,1,215,119,171,1,214,121,172,29,170,223,217,1,194,168, + 193,1,215,119,171,1,214,121,172,24,214,120,172,1,215,120,171,1,214,121, + 172,3,169,221,216,1,190,175,196,1,216,116,170,1,214,121,172,13,215,119, + 171,1,214,121,172,9,214,120,172,1,210,131,176,1,202,148,184,1,215,118, + 171,1,214,121,172,2,168,220,215,1,168,219,215,1,193,167,192,1,215,118, + 171,1,214,121,172,9,213,124,173,1,213,122,173,1,216,117,170,1,191,171, + 194,1,210,129,176,1,214,121,172,2,212,125,174,2,214,121,172,4,215,120, + 171,1,207,136,179,1,195,163,190,1,216,117,170,1,214,121,172,2,166,219, + 213,1,167,217,212,1,193,164,190,1,214,121,172,1,205,140,180,1,215,120, + 171,1,214,121,172,2,215,119,171,1,204,142,181,1,202,145,183,1,215,119, + 171,1,216,118,171,1,197,157,187,1,207,135,178,1,218,112,168,1,171,208, + 209,1,207,135,178,1,215,118,171,1,205,140,180,1,191,169,193,1,168,215, + 211,1,215,119,171,1,214,121,172,3,215,119,171,1,201,147,183,1,177,197, + 204,1,218,114,169,1,214,121,172,2,165,217,212,1,166,215,211,1,193,164, + 190,1,206,138,179,1,193,164,190,1,217,115,169,1,214,120,172,1,215,118, + 171,1,216,117,170,1,190,169,192,1,186,177,195,1,217,115,170,1,217,115, + 169,1,182,183,198,1,184,181,197,1,214,122,172,1,171,206,207,1,208,133, + 177,1,196,157,187,1,190,170,192,1,191,168,192,1,166,217,212,1,215,119, + 171,1,214,121,172,2,213,122,173,1,203,143,181,1,178,192,202,1,178,192, + 201,1,218,114,169,1,214,121,172,2,164,216,211,1,165,214,210,1,182,182, + 196,1,189,169,191,1,189,168,191,1,193,162,188,1,202,143,181,1,188,171, + 192,1,217,115,169,1,187,172,193,1,186,175,194,1,217,114,169,1,212,125, + 174,1,176,193,202,1,179,188,199,1,213,123,173,1,170,204,206,1,208,132, + 177,1,193,162,188,1,180,185,197,1,190,167,190,1,164,215,211,1,215,119, + 171,1,214,121,172,2,211,128,175,1,181,183,197,1,160,223,214,1,179,187, + 199,1,218,114,169,1,214,121,172,2,163,214,209,2,165,210,207,1,185,175, + 194,1,165,211,208,1,191,165,190,1,178,187,198,1,179,185,197,1,209,130, + 176,1,173,197,202,1,185,173,193,1,217,115,169,1,201,146,182,1,169,204, + 205,1,178,187,198,1,200,147,182,1,166,208,206,1,209,130,175,1,179,186, + 198,1,163,214,209,1,174,194,201,1,163,214,209,1,215,118,171,1,214,121, + 172,2,211,127,175,1,182,180,196,1,159,220,211,1,178,186,198,1,218,114, + 169,1,214,121,172,2,162,213,207,3,162,214,207,1,167,205,204,1,184,174, + 192,1,159,218,209,1,167,204,204,1,185,172,191,1,177,187,197,1,172,196, + 201,1,206,136,178,1,202,143,181,1,170,199,202,1,159,218,209,1,184,174, + 192,1,164,210,206,1,211,126,174,1,167,204,204,1,162,213,207,3,192,161, + 188,1,215,119,171,1,214,120,172,1,209,130,176,1,171,197,201,1,159,218, + 209,1,178,185,197,1,218,114,169,1,214,121,172,2,160,211,206,3,160,212, + 207,1,165,203,203,1,184,171,191,1,158,215,208,1,160,212,207,1,159,213, + 207,3,196,152,184,1,187,166,189,1,159,213,207,1,160,212,207,1,164,206, + 204,1,160,212,207,1,177,183,195,1,162,208,205,1,160,211,206,3,190,162, + 187,1,219,113,169,1,216,117,171,1,207,133,177,1,156,219,209,1,159,214, + 207,1,176,184,196,1,218,114,169,1,214,121,172,2,160,210,205,4,161,207, + 204,1,167,199,200,1,159,211,205,1,160,210,205,3,158,212,206,1,176,184, + 195,1,171,191,198,1,159,211,205,1,160,210,205,3,159,211,205,1,160,210, + 205,4,168,197,199,1,156,215,207,1,179,179,193,1,191,159,186,1,157,214, + 206,1,158,212,206,1,176,183,195,1,218,115,170,1,214,121,172,2,159,208, + 203,24,162,203,201,1,182,172,190,1,157,211,204,1,157,210,204,1,175,182, + 194,1,218,114,170,1,214,121,172,2,157,207,201,27,156,208,202,1,165,195, + 197,1,200,143,180,1,216,118,171,1,215,120,172,1,156,205,200,27,156,206, + 201,1,158,202,199,1,177,175,190,1,203,137,177,1,187,161,185,1,9,111, + 110,99,114,101,97,116,101,100,7,9,111,110,99,114,101,97,116,101,100,8, + 111,110,114,101,115,105,122,101,7,7,111,110,114,101,115,105,122,6,111,110, + 115,104,111,119,7,11,111,110,118,105,115,105,98,108,101,99,104,6,111,110, + 104,105,100,101,7,11,111,110,118,105,115,105,98,108,101,99,104,15,109,111, + 100,117,108,101,99,108,97,115,115,110,97,109,101,6,9,116,100,111,99,107, + 102,111,114,109,0,7,116,115,108,105,100,101,114,9,116,114,97,99,107,98, + 97,114,49,14,111,112,116,105,111,110,115,119,105,100,103,101,116,49,11,13, + 111,119,49,95,97,117,116,111,115,99,97,108,101,17,111,119,49,95,110,111, + 99,108,97,109,112,105,110,118,105,101,119,0,5,99,111,108,111,114,4,3, + 0,0,128,12,102,114,97,109,101,46,108,101,118,101,108,111,2,0,16,102, + 114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,11,10,102,114,108, + 95,108,101,118,101,108,111,10,102,114,108,95,108,101,118,101,108,105,0,17, + 102,114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,49,11,0,15, + 102,97,99,101,46,108,111,99,97,108,112,114,111,112,115,11,0,13,102,97, + 99,101,46,116,101,109,112,108,97,116,101,7,18,109,97,105,110,102,111,46, + 116,102,97,99,101,112,108,97,121,101,114,8,116,97,98,111,114,100,101,114, + 2,1,4,104,105,110,116,6,35,32,67,108,105,99,107,32,116,111,32,99, + 104,97,110,103,101,32,112,111,115,105,116,105,111,110,32,111,102,32,115,111, + 117,110,100,32,8,98,111,117,110,100,115,95,120,2,0,8,98,111,117,110, + 100,115,95,121,2,0,9,98,111,117,110,100,115,95,99,120,3,176,1,9, + 98,111,117,110,100,115,95,99,121,2,80,7,101,110,97,98,108,101,100,8, + 5,118,97,108,117,101,2,0,17,115,99,114,111,108,108,98,97,114,46,111, + 112,116,105,111,110,115,11,14,115,98,111,95,116,104,117,109,98,116,114,97, + 99,107,16,115,98,111,95,99,108,105,99,107,116,111,118,97,108,117,101,12, + 115,98,111,95,109,111,118,101,97,117,116,111,12,115,98,111,95,115,104,111, + 119,97,117,116,111,13,115,98,111,95,118,97,108,117,101,107,101,121,115,0, + 22,115,99,114,111,108,108,98,97,114,46,98,117,116,116,111,110,108,101,110, + 103,116,104,2,2,25,115,99,114,111,108,108,98,97,114,46,98,117,116,116, + 111,110,109,105,110,108,101,110,103,116,104,2,1,25,115,99,114,111,108,108, + 98,97,114,46,98,117,116,116,111,110,101,110,100,108,101,110,103,116,104,2, + 255,27,115,99,114,111,108,108,98,97,114,46,102,97,99,101,46,105,109,97, + 103,101,46,115,111,117,114,99,101,7,11,115,108,105,100,101,114,105,109,97, + 103,101,29,115,99,114,111,108,108,98,97,114,46,102,97,99,101,46,102,97, + 100,101,95,100,105,114,101,99,116,105,111,110,7,7,103,100,95,100,111,119, + 110,25,115,99,114,111,108,108,98,97,114,46,102,97,99,101,46,108,111,99, + 97,108,112,114,111,112,115,11,15,102,97,108,95,102,97,100,105,114,101,99, + 116,105,111,110,9,102,97,108,95,105,109,97,103,101,0,28,115,99,114,111, + 108,108,98,97,114,46,102,97,99,101,49,46,105,109,97,103,101,46,115,111, + 117,114,99,101,7,11,115,108,105,100,101,114,105,109,97,103,101,28,115,99, + 114,111,108,108,98,97,114,46,102,97,99,101,49,46,102,114,97,109,101,105, + 95,114,105,103,104,116,2,250,26,115,99,114,111,108,108,98,97,114,46,102, + 97,99,101,49,46,108,111,99,97,108,112,114,111,112,115,11,16,102,97,108, + 95,102,114,97,109,101,105,95,114,105,103,104,116,9,102,97,108,95,105,109, + 97,103,101,0,24,115,99,114,111,108,108,98,97,114,46,102,97,99,101,49, + 46,116,101,109,112,108,97,116,101,7,17,109,97,105,110,102,111,46,116,102, + 97,99,101,103,114,101,101,110,15,115,99,114,111,108,108,98,97,114,46,99, + 111,108,111,114,4,3,0,0,128,22,115,99,114,111,108,108,98,97,114,46, + 111,110,97,102,116,101,114,101,118,101,110,116,7,9,111,110,97,102,116,101, + 114,101,118,0,0,11,116,115,116,114,105,110,103,103,114,105,100,7,101,99, + 104,101,108,108,101,5,99,111,108,111,114,4,211,211,211,0,12,102,114,97, + 109,101,46,108,101,118,101,108,111,2,0,16,102,114,97,109,101,46,99,111, + 108,111,114,102,114,97,109,101,4,38,38,38,0,16,102,114,97,109,101,46, + 99,111,108,111,114,108,105,103,104,116,4,38,38,38,0,18,102,114,97,109, + 101,46,99,111,108,111,114,100,107,119,105,100,116,104,2,1,18,102,114,97, + 109,101,46,99,111,108,111,114,104,108,119,105,100,116,104,2,1,17,102,114, + 97,109,101,46,102,114,97,109,101,105,95,108,101,102,116,2,1,16,102,114, + 97,109,101,46,102,114,97,109,101,105,95,116,111,112,2,1,18,102,114,97, + 109,101,46,102,114,97,109,101,105,95,114,105,103,104,116,2,1,19,102,114, + 97,109,101,46,102,114,97,109,101,105,95,98,111,116,116,111,109,2,1,18, + 102,114,97,109,101,46,115,98,118,101,114,116,46,119,105,100,116,104,2,0, + 18,102,114,97,109,101,46,115,98,104,111,114,122,46,119,105,100,116,104,2, + 0,16,102,114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,11,10, + 102,114,108,95,108,101,118,101,108,111,14,102,114,108,95,99,111,108,111,114, + 102,114,97,109,101,14,102,114,108,95,99,111,108,111,114,108,105,103,104,116, + 16,102,114,108,95,99,111,108,111,114,100,107,119,105,100,116,104,16,102,114, + 108,95,99,111,108,111,114,104,108,119,105,100,116,104,10,102,114,108,95,102, + 105,108,101,102,116,9,102,114,108,95,102,105,116,111,112,11,102,114,108,95, + 102,105,114,105,103,104,116,12,102,114,108,95,102,105,98,111,116,116,111,109, + 0,17,102,114,97,109,101,46,108,111,99,97,108,112,114,111,112,115,49,11, + 0,7,101,110,97,98,108,101,100,8,8,98,111,117,110,100,115,95,120,2, + 0,8,98,111,117,110,100,115,95,121,2,78,9,98,111,117,110,100,115,95, + 99,120,3,176,1,9,98,111,117,110,100,115,95,99,121,2,16,7,97,110, + 99,104,111,114,115,11,7,97,110,95,108,101,102,116,9,97,110,95,98,111, + 116,116,111,109,0,18,100,97,116,97,99,111,108,115,46,108,105,110,101,99, + 111,108,111,114,4,25,0,0,144,14,100,97,116,97,99,111,108,115,46,119, + 105,100,116,104,2,21,19,100,97,116,97,99,111,108,115,46,102,111,110,116, + 46,99,111,108,111,114,4,2,0,0,160,29,100,97,116,97,99,111,108,115, + 46,102,111,110,116,46,99,111,108,111,114,98,97,99,107,103,114,111,117,110, + 100,4,4,0,0,160,20,100,97,116,97,99,111,108,115,46,102,111,110,116, + 46,104,101,105,103,104,116,2,9,18,100,97,116,97,99,111,108,115,46,102, + 111,110,116,46,110,97,109,101,6,11,115,116,102,95,100,101,102,97,117,108, + 116,24,100,97,116,97,99,111,108,115,46,102,111,110,116,46,108,111,99,97, + 108,112,114,111,112,115,11,9,102,108,112,95,99,111,108,111,114,19,102,108, + 112,95,99,111,108,111,114,98,97,99,107,103,114,111,117,110,100,10,102,108, + 112,95,104,101,105,103,104,116,0,8,114,111,119,99,111,117,110,116,2,1, + 15,114,111,119,99,111,108,111,114,115,46,99,111,117,110,116,2,1,15,114, + 111,119,99,111,108,111,114,115,46,105,116,101,109,115,1,4,4,0,0,160, + 0,16,100,97,116,97,114,111,119,108,105,110,101,99,111,108,111,114,4,25, + 0,0,144,13,100,97,116,97,114,111,119,104,101,105,103,104,116,2,14,12, + 115,116,97,116,112,114,105,111,114,105,116,121,2,1,13,114,101,102,102,111, + 110,116,104,101,105,103,104,116,2,14,0,0,11,116,98,105,116,109,97,112, + 99,111,109,112,11,115,108,105,100,101,114,105,109,97,103,101,4,108,101,102, + 116,2,72,3,116,111,112,2,21,0,0,6,116,116,105,109,101,114,7,116, + 116,105,109,101,114,49,8,105,110,116,101,114,118,97,108,4,32,161,7,0, + 7,111,112,116,105,111,110,115,11,9,116,111,95,115,105,110,103,108,101,0, + 7,111,110,116,105,109,101,114,7,6,111,110,122,111,111,109,4,108,101,102, + 116,2,23,3,116,111,112,2,44,0,0,9,116,109,97,105,110,109,101,110, + 117,10,116,109,97,105,110,109,101,110,117,49,18,109,101,110,117,46,115,117, + 98,109,101,110,117,46,99,111,117,110,116,2,9,18,109,101,110,117,46,115, + 117,98,109,101,110,117,46,105,116,101,109,115,14,1,7,99,97,112,116,105, + 111,110,6,8,32,69,110,97,98,108,101,32,4,104,105,110,116,6,28,32, + 69,110,97,98,108,101,32,87,97,118,101,32,70,111,114,109,32,114,101,110, + 100,101,114,105,110,103,32,5,115,116,97,116,101,11,10,97,115,95,99,104, + 101,99,107,101,100,15,97,115,95,108,111,99,97,108,99,104,101,99,107,101, + 100,15,97,115,95,108,111,99,97,108,99,97,112,116,105,111,110,12,97,115, + 95,108,111,99,97,108,104,105,110,116,0,7,111,112,116,105,111,110,115,11, 12,109,97,111,95,99,104,101,99,107,98,111,120,19,109,97,111,95,115,104, - 111,114,116,99,117,116,99,97,112,116,105,111,110,0,0,0,4,108,101,102, - 116,3,43,1,3,116,111,112,2,44,0,0,9,116,102,97,99,101,99,111, - 109,112,17,116,102,97,99,101,98,117,116,116,111,110,115,108,105,100,101,114, - 23,116,101,109,112,108,97,116,101,46,102,97,100,101,95,100,105,114,101,99, - 116,105,111,110,7,7,103,100,95,100,111,119,110,21,116,101,109,112,108,97, - 116,101,46,111,110,97,102,116,101,114,112,97,105,110,116,7,17,102,97,99, - 101,97,102,116,101,114,112,97,105,110,116,98,117,116,4,108,101,102,116,2, - 107,3,116,111,112,2,29,0,0,0) + 111,114,116,99,117,116,99,97,112,116,105,111,110,0,0,1,7,111,112,116, + 105,111,110,115,11,13,109,97,111,95,115,101,112,97,114,97,116,111,114,19, + 109,97,111,95,115,104,111,114,116,99,117,116,99,97,112,116,105,111,110,0, + 0,1,7,99,97,112,116,105,111,110,6,7,32,78,111,119,61,49,32,4, + 104,105,110,116,6,20,32,65,99,116,117,97,108,32,90,111,111,109,32,102, + 97,99,116,111,114,32,5,115,116,97,116,101,11,16,97,115,95,108,111,99, + 97,108,100,105,115,97,98,108,101,100,15,97,115,95,108,111,99,97,108,99, + 97,112,116,105,111,110,13,97,115,95,108,111,99,97,108,99,111,108,111,114, + 12,97,115,95,108,111,99,97,108,104,105,110,116,0,5,99,111,108,111,114, + 4,230,230,230,0,0,1,7,111,112,116,105,111,110,115,11,13,109,97,111, + 95,115,101,112,97,114,97,116,111,114,19,109,97,111,95,115,104,111,114,116, + 99,117,116,99,97,112,116,105,111,110,0,0,1,7,99,97,112,116,105,111, + 110,6,8,32,90,111,111,109,61,49,32,4,104,105,110,116,6,21,90,111, + 111,109,32,116,111,32,119,105,110,100,111,119,32,119,105,100,116,104,32,5, + 115,116,97,116,101,11,15,97,115,95,108,111,99,97,108,99,97,112,116,105, + 111,110,12,97,115,95,108,111,99,97,108,104,105,110,116,11,97,115,95,108, + 111,99,97,108,116,97,103,17,97,115,95,108,111,99,97,108,111,110,101,120, + 101,99,117,116,101,0,9,111,110,101,120,101,99,117,116,101,7,6,111,110, + 122,111,111,109,0,1,7,99,97,112,116,105,111,110,6,8,32,90,111,111, + 109,88,50,32,4,104,105,110,116,6,12,32,90,111,111,109,32,116,119,105, + 99,101,32,5,115,116,97,116,101,11,15,97,115,95,108,111,99,97,108,99, + 97,112,116,105,111,110,12,97,115,95,108,111,99,97,108,104,105,110,116,11, + 97,115,95,108,111,99,97,108,116,97,103,17,97,115,95,108,111,99,97,108, + 111,110,101,120,101,99,117,116,101,0,3,116,97,103,2,1,9,111,110,101, + 120,101,99,117,116,101,7,6,111,110,122,111,111,109,0,1,7,99,97,112, + 116,105,111,110,6,8,32,90,111,111,109,47,50,32,4,104,105,110,116,6, + 11,32,90,111,111,109,32,104,97,108,102,32,5,115,116,97,116,101,11,15, + 97,115,95,108,111,99,97,108,99,97,112,116,105,111,110,12,97,115,95,108, + 111,99,97,108,104,105,110,116,11,97,115,95,108,111,99,97,108,116,97,103, + 17,97,115,95,108,111,99,97,108,111,110,101,120,101,99,117,116,101,0,3, + 116,97,103,2,2,9,111,110,101,120,101,99,117,116,101,7,6,111,110,122, + 111,111,109,0,1,7,99,97,112,116,105,111,110,6,1,32,5,115,116,97, + 116,101,11,15,97,115,95,108,111,99,97,108,99,97,112,116,105,111,110,0, + 7,111,112,116,105,111,110,115,11,13,109,97,111,95,115,101,112,97,114,97, + 116,111,114,19,109,97,111,95,115,104,111,114,116,99,117,116,99,97,112,116, + 105,111,110,0,0,1,7,99,97,112,116,105,111,110,6,12,32,65,117,116, + 111,115,99,114,111,108,108,32,4,104,105,110,116,6,48,32,84,104,101,32, + 115,99,114,111,108,108,98,97,114,32,119,105,108,108,32,102,111,108,111,119, + 32,116,104,101,32,112,111,115,105,116,105,111,110,32,111,102,32,115,111,117, + 110,100,32,5,115,116,97,116,101,11,10,97,115,95,99,104,101,99,107,101, + 100,17,97,115,95,108,111,99,97,108,105,110,118,105,115,105,98,108,101,15, + 97,115,95,108,111,99,97,108,99,104,101,99,107,101,100,15,97,115,95,108, + 111,99,97,108,99,97,112,116,105,111,110,12,97,115,95,108,111,99,97,108, + 104,105,110,116,17,97,115,95,108,111,99,97,108,111,110,101,120,101,99,117, + 116,101,0,7,111,112,116,105,111,110,115,11,12,109,97,111,95,99,104,101, + 99,107,98,111,120,19,109,97,111,95,115,104,111,114,116,99,117,116,99,97, + 112,116,105,111,110,0,0,0,4,108,101,102,116,3,43,1,3,116,111,112, + 2,44,0,0,9,116,102,97,99,101,99,111,109,112,17,116,102,97,99,101, + 98,117,116,116,111,110,115,108,105,100,101,114,23,116,101,109,112,108,97,116, + 101,46,102,97,100,101,95,100,105,114,101,99,116,105,111,110,7,7,103,100, + 95,100,111,119,110,21,116,101,109,112,108,97,116,101,46,111,110,97,102,116, + 101,114,112,97,105,110,116,7,17,102,97,99,101,97,102,116,101,114,112,97, + 105,110,116,98,117,116,4,108,101,102,116,2,107,3,116,111,112,2,29,0, + 0,0) ); initialization