Commit Graph

63868 Commits

Author SHA1 Message Date
Jessica Hamilton
a0a83410c4 docs/BList: fix DoForEach to match BeOS.
* The function passed to `DoForEach` returns `true` to terminate
  the loop early

Change-Id: If445836b14c44b981d169564e7beab8c0ecac36f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5336
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-24 04:35:46 +00:00
Andrew Lindesay
7d137fd96a HaikuDepot: Issue with Version Dates
Resolves an issue where package version dates are not
updated in the UI as they are updated in the model.

Change-Id: Ic21954f91abb9c6f9bf0907500e189215adb70de
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5333
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-23 20:25:23 +00:00
Pascal Abresch
eb9ff8e5a7 libtracker: Fix Tests.cpp compilation
Change-Id: I5a738e71a92846cfe7cc46727be65ff0f57d4c39
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5328
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-21 14:54:29 +00:00
Autocomitter
193c594405 Update translations from Pootle 2022-05-21 08:14:41 +00:00
Alexander von Gluck IV
ea166fa97e build/repo/riscv64: Bump python to 3.9.1, add libffi
Change-Id: I2f15f2ce856fa8c6a105cdb09efe9da90694bb50
2022-05-20 22:31:01 -05:00
Alexander von Gluck IV
f8ef244100 system/riscv64: Use dtb-based time cv for system_time
* Fixes speedy-system_time in qemu

Change-Id: I07ae4d984c09f2f2503bd45acc415c219f3b3f11
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5327
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-20 21:54:45 +00:00
Augustin Cavalier
6c675bab59 XHCI: Defer writing the cycle bits for the "wrapping" link TRB.
There is already a comment above this that some controllers choke if the
target of a link TRB is invalid, and thus to not write the cycle bit
of the link TRB until said target is valid, but we did not follow that
when writing the link TRB to go back to the beginning of the ring.

Also put in a memory_write_barrier before writing the cycle bits,
just to be sure.

Tested in QEMU. May help with errors seen in #17749.
2022-05-20 17:32:17 -04:00
Alexander von Gluck IV
ca49b33f40 build/repo: Adjust riscv64 packages to older icu57
* This is a temporary workaround for #17468.  Using the older
  riscv64 icu-57 package (compiled with gcc 8.x) removes
  the userspace hang on startup of Haiku.
* Thanks to X512 for the workaround.
* icu66, icu70 compiled with gcc 11.2.0 exhibits the
  userspace hang at startup.
* We have a lot of bootstrap work to do, and this gives us
  a riscv64 image which boots for testing + building software
  in a native environment.

Change-Id: I503a1e99ff38450628c0863100450c883139a25a
2022-05-20 12:48:00 -05:00
Jessica Hamilton
f5dd7d3c7b libroot_build: fix stat of files in a symlinked directory
Only manifested itself with the host build tools, where looking
up a file inside a directory that is a symlink would fail, as the
cached stat info in NodeRef would fail to match the stat info to
check that the path still exists, as `lstat` returned the stat info
of the resolved symlink. Replacing `lstat` with `stat` fixes the
mismatching stat information cached in the NodeRef.

* Fixes #17750

Change-Id: I7cc360dd4678d2c4cf1186e9f39490a6bfd946a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5325
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2022-05-20 17:19:28 +00:00
Jaidyn Ann
87db9cb2a6 MediaPlayer: Add per-track scripting items
Somewhat restructures scripting interface: Playlist items can be
accessed/added/removed through PlaylistTrack, current item can be
accessed through CurrentTrack. Also adds an IsPlaying property.

Fixes #13881

Change-Id: Iad333ec20ab00ff57147c7e1359a24dea04d6aa2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5316
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-20 16:05:44 +00:00
Jaidyn Ann
cc9bc8c6fb Move DateTimeEdit into libshared
BInvoker methods are now used, and input-handling is also tweaked.

Change-Id: I120cca8df9f11c11aac80911108d62fb49488f8f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4927
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-20 05:19:05 +00:00
Augustin Cavalier
f43b88e836 freebsd_network: Use Haiku's PCI capability finding functions.
Instead of reimplementing them in here, for which there is no need.
2022-05-19 23:07:01 -04:00
Augustin Cavalier
458c40fb27 freebsd_network: Drop arpcom from if_arp.h.
It was dropped from FreeBSD somewhere between 9 and 13.
OpenBSD has an equivalent structure but it is not compatible.
Best to avoid it altogether.
2022-05-19 22:04:43 -04:00
Jérôme Duval
c35e9b906a ScreenMode: add some manufacturers
Change-Id: Id3eea56f5e0d453817eaedb4f1d6a6014af8f9e3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5321
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-19 19:17:50 +00:00
Alexander von Gluck IV
071f4aad57 kernel/user_debugger: Show the thread name in addition to the id
* Helps in debugging early boot issues where you won't have
  access to the list of thread id's

Change-Id: Ic06bd0b53ccceccd8c911156724a799ca6a1c28b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5322
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-19 16:55:27 +00:00
milek7
088321c119 arm64: Fix typos in arm_registers, add define for nGnRE.
Change-Id: I43aa971f2ead3a171af3c707539cbe08ff60cae5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5262
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-19 09:42:42 +00:00
milek7
a25542e7ef arm64: MMU WIP.
Change-Id: I19b2b9617fcb7bc047f9bea156801ec78786532e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5261
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-19 09:42:42 +00:00
Jérôme Duval
514c42d740 intel_extreme: improve DpAux support on HSW/SNB/IVB
hraw_clock is possibly dynamic, but for the usecase this seems good enough.
Tested on SandyBridge and Haswell laptops.

Change-Id: I045b3c03f6b37bbffb3d8688658ffaa2a97311ae
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5319
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-18 22:02:01 +00:00
Jérôme Duval
fe3aff01c0 intel_extreme: probe DP AUX or/and DDC on DDI ports
* the VBT tells whether DDI ports can have both DP and HDMI/DVI as outputs.
* tested on Dell Optiplex 9020 Gen7/Haswell with an HDMI/DP adapter on a DP connector.
* avoids enabling a down DDI port when an EDID is found: the display isn't setup by the BIOS.

Change-Id: I69487a2fcb74899d7c22d04e955e776b0e739151
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5317
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-17 18:36:42 +00:00
Jim906
07d5dba065 kernel/drivers/disk: enable Werror
* For NVMe library, disable warnings.
* Otherwise, change code to avoid generating warnings.
* No functional change.
* Fixes #9460.

Change-Id: Ia790de391e6b230c909dff7023f00a19bdd574be
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5284
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:33:25 +00:00
Jim906
9570ee3534 FileTypes: Improve ApplicationTypeWindow cascading
* Using StyledEditApp as a model, ensure that multiple Application Type windows do not cascade so far that they open partially off-screen.
* Add a dedicated function, FileTypes::_AppTypeCascade, to set the position of the next ApplicationTypeWindow to be constructed and save this position in FileTypes::fSettings.
* Unlike StyledEditApp, do not add an uncascade function, because existing code in ApplicationTypeWindow::QuitRequested already resets app_type_next_frame.
* Follows up on https://review.haiku-os.org/c/haiku/+/5164.

Change-Id: I9cbb58ba391ddafdd1ea136157e5c6129bf41ebd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5307
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:31:12 +00:00
PulkoMandy
6ee62ca6c6 Installer: make sure there is space for 5 lines of text in the status view
Fixes #17095

Change-Id: I53752d6ee60a913f230dc44eddac7f872db6c184
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5314
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:29:20 +00:00
Mashijams
b666bf3fd8 xfs : Enabling -Werror and fixing all build issues that result
This patch will fix almost all warnings we have in xfs code.
There are some which I haven't fixed yet, I added comments on
part of code which is giving error and its type as well.

I tested all the changes on xfs_shell and everything is
working fine.

Change-Id: I1af1d09e7eab7f2c2397193bd5a584c5d40c424c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5257
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:28:43 +00:00
Máximo Castañeda
2e75ef07fe Fix 32bit build
Change-Id: If7c2da0a28302f5535eda25999b1f877cbca1152
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5315
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-16 16:05:09 +00:00
Augustin Cavalier
9e85b9ea2a network/stack: Return immediately from device_reader_thread after calling device_removed.
Otherwise we can and will use-after-free the device structures.
It seems this code has been broken this way since it was first added
in cc8eceb0af (2010).
2022-05-14 11:52:19 -04:00
PulkoMandy
3ad6b5ecba usb_rndis: accept incoming USB transfers up to 0x4000 size
As required by the spec. Then split them into multiple ethernet frames
as needed.

Fixes #17738.

Change-Id: I71ebff0fe1fc5c8a342d6d06b26eda8e87115e04
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5312
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-14 15:48:51 +00:00
Augustin Cavalier
a806e3678a network/stack: Update and add comments in down_device_interface.
The function names in the comment were not been updated in some time,
so synchronize those with how things presently look.

Also add another possible codepath, from device_removed. This one can
and is invoked from the device_reader_thread, in the case where
we get B_DEVICE_NOT_FOUND from receive_data. That is now taken care of
by having wait_for_thread return EDEADLK, we need only note it here.

Change-Id: I18320c2831dce99a34b07de862a0a5c8b4e4e98d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5311
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-14 15:26:32 +00:00
Augustin Cavalier
d9694912a7 kernel: Have wait_for_thread fail with EDEADLK when the current thread is specified.
This behavior is not required by POSIX (for pthread_join), but it
is recommended and other OSes seem to implement it.

This constitutes a behavioral change from BeOS, which just deadlocked
as we do before this commit (I checked.) Preserving this behavior does
not seem very useful, though if in the future we need to, adding a check
to libroot is easy enough.

This fixes a deadlock encountered when the usb_rndis driver is unplugged;
the network stack has a removal path that invokes wait_for_thread on
the receive thread, but the function can itself be called from the
receive thread.

Change-Id: Id3639d98a513f2b0f0bacc90d8d27abb5078857b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5310
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-14 15:26:32 +00:00
PulkoMandy
580f28da6d kernel debug: rewrite dump_block to use a single dprintf call
In the syslog, each dprintf call is prefixed with a KERN: prefix,
rendering the dump unreadable. Bufferize things to print each line with
a single call.

Change-Id: I27c1b1f74434fbc6e554acb0a716f0700821bc8d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5305
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-14 09:24:00 +00:00
PulkoMandy
a5c0d1a80e Enable Werror on some network drivers
Change-Id: Iff3a167da4c7a639f229556c501c2b71133fd8dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5308
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-14 09:24:00 +00:00
Alexander von Gluck IV
2439b2b9dc src/tools: hardlink_packages: Autodetect arch from jam remote repository file
Change-Id: Iccbcdb3105bf7762259493b9852446a3c83fbd2f
2022-05-13 15:18:17 -05:00
Alexander von Gluck IV
6a379485c5 src/tools: hardlink_packages: LooseVersion was deprecated
Change-Id: I3711e76d8357651aa6b400a1c9579d40aa64c558
2022-05-13 15:18:17 -05:00
PulkoMandy
b248954676 usb_rndis: new driver for Android phones USB connection sharing
Based on usb_ecm and other native USB ethernet drivers which share a
similar structure.

References used to implement this:
- FreeBSD urndis driver
- [MS-RNDIS].pdf v20140501
- Microsoft list of RNDIS OIDs

TODO:
- Better handling of "request id" field to make sure the replies we get
  match up with the requests we sent, and it could allow to have
  multiple requests in flight. However, the FreeBSD driver doesn't
  bother to implement this, if you only ever have one request in flight
  and wait for a reply before sending another, this isn't really needed.
- Endian safety, this code will only work on little endian systems for
  now. Several structures sent/received to/from the device must be little
  endian, so on big endian platforms a lot of byteswapping will be needed,
  or the code rewritten to use some smarter object and not a plain
  struct for all of these.
- Investigate if it's possible to send/receive multiple ethernet frames
  in a single USB transaction for better performance. Our driver
  structure doesn't really allow for it unless the driver implements
  some buffering on its own.

Change-Id: I2c6dacf0c1aeb6c7c1c112e9b16a63e586ea979a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5281
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-13 18:00:02 +00:00
Alexander von Gluck IV
21aaa37347 headers/NetworkKit: Drop now-private service calls from NetworkKit.h
Change-Id: I9efdeb7334606e8cd1cf6b394a19e870ff73bd70
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5309
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-13 16:01:15 +00:00
Anarchos
c2066ed1b1 Fix PXE boot
-tar fs buffer upgraded to 9Mb
-adding some kernel addons

With this settings i was able to fully boot a gcc2hybrid.
The x86_64 started up to the rocket, but could'nt go into Tracker.

Change-Id: I8f9e1f803f4a918419305bce3068ffce027d2548
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5295
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-05-13 08:52:13 +00:00
Alexander von Gluck IV
c2a9a890f3 compat/freebsd_network: Catch BSD socket ioctl and act on within stack
Change-Id: Iaf7e645836ffee58b3a8a8e5352048412035ab32
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5296
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-12 19:48:09 +00:00
Jérôme Duval
92450935b2 intel_extreme: when DDI A eDP port isn't enabled by the BIOS, don't enable
we might be connected with an external port (HDMI or DP) which would be later found.

Change-Id: Ibeab4abb651e5b37d7a0fa452286ee34dec7dfbd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5306
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-11 18:01:28 +00:00
PulkoMandy
981d0862ed net_buffer: fix build with tracing enabled
Change-Id: Ifc26defe30946f928bbff360ea70f33eb1352745
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5304
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-11 16:43:11 +00:00
Jérôme Duval
f808e87ad0 intel_extreme: the eDP port on DDI is mostly found on port A
* for eDP a displayport output should also be found als VBT device type.
* should help with #17730

Change-Id: I893bd2dabfd1730ab545336e2f9a5b15abc194a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5299
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-09 07:43:39 +00:00
Niels Sascha Reedijk
929355add7 libroot: return error on partial match in strptime()
The previously implemented behavior of strptime() allowed for partial matches
of strings. For example, if the format string was "%a, %d %b %Y %H:%M:%S", it
would successfully parse "Sun, 07 Dec 2003" as input. This is inconsistent with
the standardization in POSIX.1-2001 (and later).

This change makes strptime() return an error if there is no more data in the
buffer and not the entire format string is parsed.

Change-Id: If066c49fb7fc094f8ccd56703cd01903a0e40cb3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5298
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-08 07:58:05 +00:00
Jérôme Duval
7ff9722ae3 intel_extreme: reuse DpAux code for DisplayPort
the code is moved in the Port class.

Change-Id: I3beb337e29b26ee4732224723c5b76b5f415a248
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5291
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-05 16:26:03 +00:00
Jérôme Duval
1c23e6bcf1 intel_extreme: leverage VBT device type for internal panel
* also handle dp aux on PCH.
* tested on Gen7, should work from Gen6.

Change-Id: I8d99bcdc10c817e66441a6a644df490dd988a74d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5290
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-05 16:26:03 +00:00
Augustin Cavalier
d98fcb7db6 HID: Return ENODEV instead of B_ERROR if the device was removed.
This should help with diagnosing problems in some failure conditions.
2022-05-03 16:59:19 -04:00
milek7
42c53fc8b8 arm64: Fix ELF relocations.
Change-Id: Icc48649d6a3a8c6b5b5ab845e9025352c1e77dfb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5260
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-03 20:27:18 +00:00
milek7
8417420441 arm64: Do not misalign kernel stack.
AAPCS64 requires stack to be aligned to 16 bytes.
Additionally alignment might be enforced by hardware for every sp-relative
access depending on configuration in SCTLR.

Change-Id: Idd4756dd19386eb491d926b8a9862fa7fa48e506
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5259
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-03 20:27:18 +00:00
milek7
7c69ebda17 arm64: Add mapping of all memory in kernel virtual space at KERNEL_PMAP_BASE.
Change-Id: I828b1ba8c0add614e9df6bba1e14c5e514ec1bad
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5258
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-05-03 20:27:18 +00:00
Lt-Henry
2684c64083 usb_hid: Update HID Consumer usage page constants to 1.3 spec
Change-Id: I5ffbcda41547b1a31049b5d7ba73f7327bb8cf04
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5288
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-03 19:04:30 +00:00
Jérôme Duval
459f1bcd8d intel_extreme: irq hotplug support for IceLake and newer PCH.
we enable every port interrupt instead of relying on the ports found in the VBT.
ATM only log the plug state when it changes.

Change-Id: I5175fb137d11f0114beb2915a4f363341cfe8e36
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5287
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-03 18:15:48 +00:00
Jérôme Duval
46bbf334f6 intel_extreme: parse VBT device configs, use this to skip unused ports
* BDB version from 111
* for DDI from Gen9
* for HDMI and DisplayPort from Gen6
* use the first port to create the mode list
* also probe DDI Port A
* the aux channel helps to select the correct dp aux registers.

Change-Id: I80549a6ec0477bed768cc5f388959b606d50c1b7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5286
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-05-03 08:48:34 +00:00
Autocomitter
2aac05508f Update translations from Pootle 2022-04-30 08:15:54 +00:00