1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-09 01:56:05 -05:00
Commit Graph

2721 Commits

Author SHA1 Message Date
f4exb
5ce49a387d Changed font for upward compatibiilty (test) 2018-05-05 15:10:19 +02:00
f4exb
359af254f0 SSB modulator: fixed issue #167: typo in remove Tx registration method 2018-05-03 00:28:27 +02:00
f4exb
1db2da3b60 NFM demod: fixed squelch 2018-05-02 01:22:34 +02:00
f4exb
c7db2a3ca7 Bumped plugins version 2018-05-02 00:29:18 +02:00
f4exb
058f3d5af8 RTLSDR: optimized decimator 2018-05-02 00:24:50 +02:00
f4exb
19c32b4354 Removed 24/16 bit differentiation on Decimator instantiation where possible 2018-05-01 23:57:12 +02:00
f4exb
d735025c6c With global adoption of even/odd decimators the accu type must be 32 not 64 bits 2018-04-29 10:38:25 +02:00
f4exb
8d565f8187 SSB mod: fixed span slider aspect and bulky low/high cut slider group 2018-04-27 07:09:37 +02:00
f4exb
34ff36926e SSB demod: fixed span slider aspect 2018-04-27 06:59:36 +02:00
f4exb
45aa323cf6 SSB demod: make the filter sliders less bulky with only one scale on the high cutoff 2018-04-27 06:41:48 +02:00
f4exb
b03e9c59cb Benchmarking: implemented decimator float to int test 2018-04-25 01:44:54 +02:00
f4exb
2efa7ab594 DSD demod: allow use of audio rates that are integer multiples of 8k other than 48k (x2,3,4,5) 2018-04-23 01:04:47 +02:00
f4exb
486468afe0 Updated Debian changelog and DSD demod doc 2018-04-22 18:49:58 +02:00
f4exb
06cd90e354 AM demod: use buffered delay squelch 2018-04-22 10:23:11 +02:00
f4exb
7e6267f41c SSB demod: use delay line to squeeze squelch tail 2018-04-22 09:37:34 +02:00
f4exb
4670cbaa33 Merge branch 'master' into dev 2018-04-22 07:48:13 +02:00
f4exb
e206d65283
Merge pull request #162 from jigpu/spelling-fixes
Spelling fixes
2018-04-22 07:45:20 +02:00
f4exb
a099b05fb6
Merge pull request #164 from jigpu/memleak-fixes
Memleak fixes
2018-04-22 07:40:58 +02:00
Jason Gerecke
1eaae0de30 BFM demod: Delete the SpectrumVis when destroying BFMDemodGUI
Take care of a pair of memory leaks that occur when the BFM demod GUI
is closed.

==786== 19,952 (24 direct, 19,928 indirect) bytes in 1 blocks are definitely lost in loss record 7,065 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x54C82ED: allocate (new_allocator.h:111)
==786==    by 0x54C82ED: allocate (alloc_traits.h:436)
==786==    by 0x54C82ED: _M_get_node (stl_list.h:383)
==786==    by 0x54C82ED: _M_create_node<FFTWEngine::Plan* const&> (stl_list.h:572)
==786==    by 0x54C82ED: _M_insert<FFTWEngine::Plan* const&> (stl_list.h:1801)
==786==    by 0x54C82ED: push_back (stl_list.h:1118)
==786==    by 0x54C82ED: FFTWEngine::configure(int, bool) (fftwengine.cpp:35)
==786==    by 0x4F4590B: SpectrumVis::handleConfigure(int, int, FFTWindow::Function) (spectrumvis.cpp:206)
==786==    by 0x4F459EE: SpectrumVis::handleMessage(Message const&) (spectrumvis.cpp:170)
==786==    by 0x548346C: BasebandSampleSink::handleInputMessages() (basebandsamplesink.cpp:21)
==786==    by 0x69E1615: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497D4B: MessageQueue::push(Message*, bool) (messagequeue.cpp:52)
==786==    by 0x33F9D61A: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:352)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
==786==
==786== 54,096 (112 direct, 53,984 indirect) bytes in 1 blocks are definitely lost in loss record 7,075 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x69E9162: QObject::QObject(QObject*) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497BEE: MessageQueue::MessageQueue(QObject*) (messagequeue.cpp:26)
==786==    by 0x54834FF: BasebandSampleSink::BasebandSampleSink() (basebandsamplesink.cpp:6)
==786==    by 0x4F45A29: SpectrumVis::SpectrumVis(float, GLSpectrum*) (spectrumvis.cpp:26)
==786==    by 0x33F9D53C: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:342)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
2018-04-21 18:56:21 -07:00
Jason Gerecke
141997475c BFM demod: RDS demod: Initialize RDSDemod array elements
The m_parms.tot_errs array is not initialized prior to its first use
in the RDSDemod::biphase function. ASAN does not pick up on this
directly, but instead reports it as follows (note that ASAN fills
memory with 0xBE and -1094795586 is 0xBEBEBEBE):

    ./plugins/channelrx/demodbfm/rdsdemod.cpp:159:95: runtime error: signed
    integer overflow: -1094795586 + -1094795586 cannot be represented in type
    'int'

The m_parms.subcarr_bb array does not appear to be read prior to
initialization, but we initialize it to zero anyway for the sake
of good hygiene.
2018-04-21 18:54:19 -07:00
Jason Gerecke
bc4d7adce7 FileSourceGui: Prevent potential integer overflow in updateWithStreamTime
UBSan reports the following error when replaying an IQ stream:

    ./plugins/samplesource/filesource/filesourcegui.cpp:331:29: runtime
    error: signed integer overflow: 2704064 * 1000 cannot be represented
    in type 'int'

By rearranging the calculation, we can be sure that the calculation never
overflows.
2018-04-21 18:53:21 -07:00
Jason Gerecke
8cf3469c87 Fix spelling errors in documentation 2018-04-21 18:45:09 -07:00
Jason Gerecke
f6ea7b216e Fix spelling errors present in UI files 2018-04-21 18:44:54 -07:00
f4exb
b4a77e08c8 DSD demod: symmetrical attack and decay for squelch like NFM 2018-04-21 17:22:07 +02:00
f4exb
84538f1acf DSD demod: use buffered squelch to start decoding at the very beginning of the transmission regardless of squelch gate length 2018-04-21 09:56:12 +02:00
f4exb
12f5f4e30c NFM demod: buffered squelch 2018-04-21 09:23:01 +02:00
f4exb
20fbac5621 LimeSDR: updated documentation 2018-04-20 09:15:30 +02:00
f4exb
8c891a191a UDP source and sink: ensure proper click focus on line edits 2018-04-20 00:17:10 +02:00
f4exb
15f7c4d80e UDP source and sink: added dialogs to specify addresses and ports 2018-04-19 23:03:21 +02:00
f4exb
befc08f2e1 UDP source: send audio samples always on 16 bits. Options to send raw I/Q in either 16 or 24 bits regardless of sample size at compile time 2018-04-19 13:34:22 +02:00
f4exb
da362823dc UDPSink: use neutral denomination for I/Q sample size with sample size format 2018-04-19 00:52:01 +02:00
f4exb
f8251ecb50 UDPSink: fixed wrong sample sizes based on I/Q actual sample size that can now be 16 or 32 bits 2018-04-19 00:43:29 +02:00
f4exb
5c51297717 Moved FFT filter destruction at end of the mod or demod destructor 2018-04-18 22:20:47 +02:00
f4exb
aa3f12ec46 NFM demod: assymetrical fade in and fade out for the squelch 2018-04-17 09:15:02 +02:00
f4exb
31eb02ab74 LimeSDR: updated documentation with transverter shift 2018-04-17 01:31:12 +02:00
f4exb
ff88a2e1db LimeSDR output: implemented transverter shift 2018-04-17 00:55:56 +02:00
f4exb
b9587273d8 LimeSDR input: implemented transverter shift 2018-04-17 00:25:19 +02:00
f4exb
27ddcabd56 Bumped version to v3.14.3 2018-04-16 08:24:56 +02:00
f4exb
01798c9d15 BFM demod: RDS parser: fixed compiler warning 2018-04-15 22:03:31 +02:00
f4exb
eb047ba15e DATV demod: removed reference to deleted method 2018-04-15 21:13:47 +02:00
f4exb
def7592053 Widnows build fixes 2018-04-15 20:56:46 +02:00
f4exb
36c3c71c73 BladeRF output server plugins: removed QWidget dependency 2018-04-15 19:18:21 +02:00
f4exb
4df9aa93ab AirspyHF and BladeRF input server plugins: removed QWidget dependency 2018-04-15 19:14:20 +02:00
f4exb
5c5c6d4b7a Added server plugins for ATV, SSB modulators and UDP sink 2018-04-15 18:48:59 +02:00
f4exb
274e6c645d UDP Sink: Web API: settings and report implementation 2018-04-15 18:25:22 +02:00
f4exb
62998101d3 WFM modulator: Web API: fixed set windows title 2018-04-15 10:59:01 +02:00
f4exb
1c1b073eba SSB modulator: Web API: fixed set windows title 2018-04-15 10:54:22 +02:00
f4exb
9a6069b6b2 NFM modulator: Web API: fixed set windows title 2018-04-15 10:46:11 +02:00
f4exb
8723bfb74b AM modulator: Web API: fixed set windows title 2018-04-15 10:42:51 +02:00
f4exb
889712b457 ATV modulator: Web API: fixed set windows title 2018-04-15 10:38:32 +02:00
f4exb
416f852861 ATV modulator: Web API: fixed video settings display in the GUI 2018-04-15 10:20:13 +02:00
f4exb
88bb596baf HackRF output: allow display of SR down to 1 MS/s 2018-04-15 10:19:23 +02:00
f4exb
6320716eb9 ATV modulator: Web API: add possibility to set image and video files 2018-04-15 02:22:54 +02:00
f4exb
875cf59fda ATV modulator: pass text overlay switch in settings 2018-04-15 01:34:46 +02:00
f4exb
b21ea9ab2f ATV modulator: Web API: settings and report implementation 2018-04-15 00:52:39 +02:00
f4exb
b38d2a2a65 SSB mod: Web API: settings and report implementation 2018-04-14 21:46:53 +02:00
f4exb
9c7026ae5e NFM demod: fixed AF squelch setting according to audio sample rate. Fixed discriminator. Added details to documentation. 2018-04-14 21:45:45 +02:00
f4exb
9196c6f0c7 NFM demod: adjusted deviations, scaling and audio volume 2018-04-14 04:45:22 +02:00
f4exb
e3815e4076 SSB mod: moved AF input mode in settings structure 2018-04-13 08:41:34 +02:00
f4exb
b151b00182 SSBMod YAML file 2018-04-12 23:49:29 +02:00
f4exb
6e1005018f NFM demod: limit volume setting to a maximum of 2.0 with a default of 1.0 2018-04-12 01:21:34 +02:00
f4exb
a37443fe58 BFM demod: bumped version 2018-04-12 00:13:40 +02:00
f4exb
2d0e0290a0 BFM demod: fixed RDS parser bug when processing optional content (issue #157) 2018-04-12 00:12:51 +02:00
f4exb
dac48f9a6d NFM demod: corrections applied to the audio sample rate depedent parameters 2018-04-11 01:31:48 +02:00
f4exb
4dc99f7ad8 SDRdaemon source: fixed decimation setting 2018-04-10 22:27:34 +02:00
f4exb
83efddee9a Build ModWFM tx channel server plugin and apply corrections to other server plugins 2018-04-09 00:54:25 +02:00
f4exb
b4d7a0a905 WFM demod: Web API: settings and report implementation 2018-04-09 00:37:17 +02:00
f4exb
b2d153ed9e Build ModAM tx channel server plugin. Bumped version to 3.14.2 2018-04-06 01:04:31 +02:00
f4exb
0ba86c0d22 AM demod: Web API: settings and report implementation. NFM demod: fixes 2018-04-06 00:54:18 +02:00
f4exb
376e0d9b1f AM mod: put AF input mode in settings 2018-04-05 21:58:45 +02:00
f4exb
cc3483aabe Build AirspyHF and BladeRF server plugins. Removed AirspyHFi 2018-04-05 21:24:01 +02:00
f4exb
275a020818 AM demod: implemented server plugin. Corrections to NFM demod server plugin 2018-04-05 20:13:05 +02:00
f4exb
8dfdc1086c PVS-Studio static analysis corrections (4) 2018-04-04 23:39:31 +02:00
f4exb
62abc80a97 BladeRF: bumped version to v3.14.1 2018-04-02 00:38:04 +02:00
f4exb
5a5d9e497e DSD demod: Windows build 2018-04-02 00:35:56 +02:00
f4exb
04d7e56f84 DSD demod: status text dialog: removed auto default on save button 2018-04-02 00:21:12 +02:00
f4exb
dd1686df9e DSD demod: updated documentation and Debian changelog 2018-04-01 23:49:26 +02:00
f4exb
21aaeaedda DSD demod: status text log dialog save to file 2018-04-01 22:45:43 +02:00
f4exb
8d64ca2068 DSD demod: new dialog to show status text log 2018-04-01 22:14:11 +02:00
f4exb
a447193bd7 DSD demod: make FM deviation independent of RF bandwidth. Bumped version to 3.14.1 2018-04-01 09:33:08 +02:00
f4exb
fad2b7981d BladeRF: Web API: implemented settings management 2018-03-31 19:29:52 +02:00
f4exb
f838258937 NFM mod and demod: fixed lowpass filter initialization at construction time (segfault correction with CTCSS) 2018-03-31 15:06:35 +02:00
f4exb
deefab7c7c ATV demod: fixed segfault when TV screen pointer is not set yet by the GUI 2018-03-30 23:41:48 +02:00
f4exb
53beb8a92d Removed UDP address and port from Channel marker 2018-03-30 19:06:27 +02:00
f4exb
e0356a39a5 Multiple audio: updated plugins documentation 2018-03-30 11:51:57 +02:00
f4exb
8735ca97ca AM, NFM, SSB demods: make audio FIFO length 1s for any audio sample rate 2018-03-30 08:55:49 +02:00
f4exb
10fe136b5e SSB demod: fixed AGC constants audio sample rate dependency 2018-03-30 02:07:03 +02:00
f4exb
75201ad303 Multiple audio support: WFM modulator 2018-03-29 17:27:03 +02:00
f4exb
d2a658d8a1 HackRF output: allow interpolation by 64 2018-03-29 17:06:04 +02:00
f4exb
0d7f73f595 Multiple audio support: SSB modulator 2018-03-29 16:57:42 +02:00
f4exb
eb57c1aca6 Multiple audio support: NFM modulator 2018-03-29 15:42:20 +02:00
f4exb
2380211533 Multiple audio support: AM modulator 2018-03-29 15:20:38 +02:00
f4exb
e0db2adc6b LimeSDR plugins: bumped version 2018-03-29 14:54:14 +02:00
f4exb
3ca49aa849 LimeSDR: corrceted get/set center frequency taking NCO into account 2018-03-29 12:15:33 +02:00
f4exb
dbc9e78077 DATV demod: fixed message handling 2018-03-29 10:03:52 +02:00
f4exb
acb96acd85 Multiple audio support: Web API: AMDemod and NFMDemod: implemented audio device name in settings 2018-03-29 07:55:51 +02:00
f4exb
231cb45aa6 Removed obsolete references to AudioNetSink 2018-03-28 10:00:56 +02:00
f4exb
28cb4e7c3c AM demod: removed UDP/RTP copy audio entirely 2018-03-28 09:58:45 +02:00
f4exb
3b882e78b4 BFM demod: removed UDP/RTP copy audio entirely 2018-03-28 09:43:33 +02:00
f4exb
289318beaa NFM demod: removed UDP/RTP copy audio entirely 2018-03-28 09:40:24 +02:00
f4exb
4501066426 SSB demod: removed UDP/RTP copy audio entirely 2018-03-28 09:27:47 +02:00
f4exb
814764eeee WFM demod: remove UDP/RTP copy audio entirely 2018-03-28 09:18:28 +02:00
f4exb
f71446b6ec Multiple audio support: DSD demodulator: allow to use native 8k decoder if audio sample rate is 8k 2018-03-28 08:43:11 +02:00
f4exb
c4b092dff0 Multiple audio support: DSD demodulator 2018-03-28 08:00:27 +02:00
f4exb
44b4b3cc85 Multiple audio support: WFM demodulator 2018-03-28 07:44:54 +02:00
f4exb
ae0470218c Multiple audio support: BFM demodulator 2018-03-27 23:57:29 +02:00
f4exb
275144ae97 Multiple audio support: NFM demodulator 2018-03-27 13:18:00 +02:00
f4exb
4d324875b9 Bumped to v3.14.0 and allow decimation by 64 on all input plugins (missing yet: BladeRF and RTLSDR) 2018-03-27 11:32:39 +02:00
f4exb
4fbb8f74c8 Multiple audio support: SSB demodulator 2018-03-27 11:17:11 +02:00
f4exb
d67c3adeb4 Plugins: RTP cleanup 2018-03-27 09:20:23 +02:00
f4exb
ebf3b1fc4b RTP fixes 2018-03-27 09:04:10 +02:00
f4exb
e64ed09308 Option to disable RTP when constructing the AudioNetSink 2018-03-27 08:13:06 +02:00
f4exb
ef69dd22fa Airspy HF+: allow decimation by 64 2018-03-27 01:43:04 +02:00
f4exb
6887a7d61e AM demod: removed RTP over UDP. Changed fixed volume factor depending on audio sample rate 2018-03-27 01:30:44 +02:00
f4exb
c8a6bb71ba AM demod: remove UDP copy using RTP 2018-03-27 00:57:41 +02:00
f4exb
a0282dd3d9 DSD demod: removed copy to UDP/RTP 2018-03-27 00:38:26 +02:00
f4exb
6f8d546ab7 BFM demod: removed copy to UDP/RTP 2018-03-27 00:30:21 +02:00
f4exb
a049e3aaa6 Multiple audio support: Select output device in AM demod 2018-03-26 18:41:09 +02:00
f4exb
095ab14a14 Multiple audio support: New audio preferences dialog (3). Application to AM demod 2018-03-26 11:55:45 +02:00
f4exb
745e187e2b Multiple audio support: extend audio output information to UDP/RTP information. New audio preferences dialog 2018-03-25 11:50:34 +02:00
f4exb
7aaa230eb4 Multiple audio support: added ability to manage more than one audio output 2018-03-24 23:50:28 +01:00
f4exb
408b80fa1d Merge branch 'dev' of /shared/development/sdrangel into dev 2018-03-24 09:13:15 +01:00
f4exb
5b844c2618 Windows build updates 2018-03-24 09:12:34 +01:00
f4exb
6cc370e93e Documentation updates 2018-03-24 04:55:51 +01:00
f4exb
5b7cbdf0e5 Multiple audio support: transfer start/stop audio to audio FIFO management in AudioDeviceManager 2018-03-24 04:18:58 +01:00
f4exb
15e62814de Multiple audio support: removed audio methods from DSP engine and use AudioDeviceManager instead 2018-03-24 03:36:49 +01:00
f4exb
94d3c7155c TV screen: removed useless render immediate indicator 2018-03-23 09:24:18 +01:00
f4exb
1204734b58 Web API: AM demod and AirspyHF: many fixes 2018-03-22 06:34:51 +01:00
f4exb
db2e7fe71b Web API: AirspyHF: implemented settings entry points 2018-03-22 05:10:13 +01:00
f4exb
7ad8e50651 Web API: AM demod: implemented settings and report entry points 2018-03-21 23:49:16 +01:00
f4exb
afa7351811 LimeSDR: fixed LO frequency setting with the latest version of LimeSuite 2018-03-20 08:45:03 +01:00
f4exb
d4e1521c90 Web API: new entry point to get a channel report. Applied to NFM mod and demod 2018-03-18 20:17:11 +01:00
f4exb
733c213bf2 RTLSDR: updated plugin version 2018-03-18 11:16:39 +01:00
f4exb
eb2dcfb74b RTLSDR: start direct mode frequency range at DC (0 kHz) 2018-03-17 19:56:07 +01:00
f4exb
d042507c8f DATV demod: fixed initialization sequence in constructor 2018-03-17 01:00:46 +01:00
f4exb
cca17093b6 LimeSDR: updated latest status in documentation 2018-03-16 22:42:01 +01:00
f4exb
ea1d007710 Channel Tx modulators: in constructor make sure the thread is launched when all members have been properly initialized (i.e. do it last) 2018-03-16 10:26:49 +01:00
f4exb
170c59de43 Channel Rx demods: in constructor make sure the thread is launched when all members have been properly initialized (i.e. do it last) 2018-03-16 10:24:19 +01:00
f4exb
0157c950f4 DSD demod: GUI cosmetic change 2018-03-15 01:22:40 +01:00
f4exb
09905c362a DATV demod: TV screen graticule optimization 2018-03-15 00:58:18 +01:00
f4exb
8d984c2f09 DSD demod: TV screen graticule optimization 2018-03-15 00:16:50 +01:00
f4exb
243235b75f LimeSDR: GUI cosmetic changea 2018-03-14 19:52:54 +01:00
f4exb
f75b45a1c1 Merge branch 'master' into dev 2018-03-14 19:18:20 +01:00
f4exb
c99693eacc LimeSDR: removed useless step information from range inspection functions 2018-03-14 11:03:22 +01:00
f4exb
5d7b56ffc7 LimeSDR: updated documentation 2018-03-14 08:40:05 +01:00
f4exb
71686e6c45 Revert "Removed LimeSDR support from all builds"
This reverts commit d0599a2ec0.
2018-03-14 08:37:40 +01:00
f4exb
5a07823b4e LimeSDR output GUI: NCO and baseband center frequencies now show actual values 2018-03-14 06:54:27 +01:00
f4exb
a9887bcdaa LimeSDR input GUI: NCO and baseband center frequency now show actual values 2018-03-14 06:30:45 +01:00
f4exb
56178c65cf DSD demod: updated documentation following GUI redesign 2018-03-14 05:16:07 +01:00
ZigaS
815d4cceac Rebuild of 3.12.0 version on macOS 10.12.6 (16G1212). 2018-03-13 13:50:34 +01:00