Commit Graph

1392 Commits

Author SHA1 Message Date
SergeySlice
bd0ad5dfa6 key should be string not data
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-10-15 23:20:30 +03:00
SergeySlice
d296bfa767 fix error for clang
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-10-07 22:44:15 +03:00
Сергей Исаков
e56b549dca implement tscsync
Signed-off-by: Сергей Исаков <slice@Sergejs-Mac-Pro.local>
2022-10-06 22:14:54 +03:00
SergeySlice
70a37b142c dont fix ownership for VIA
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-10-05 21:04:32 +03:00
SergeySlice
9d6f4fa5a3 revert commit f63935
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-09-09 21:51:31 +03:00
SergeySlice
9cdae6f9d1 remove dust
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-09-05 22:23:30 +03:00
SergeySlice
847b46bbaf exclude unused constant
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-09-02 22:14:43 +03:00
SergeySlice
f63935320d add some apple variables
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-29 22:44:10 +03:00
SergeySlice
a65f244b2a embed AppleKeyAggregator
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-18 19:27:04 +03:00
SergeySlice
d5a69286c7 use count for dsdt patches
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-17 13:58:30 +03:00
SergeySlice
d54c3b9601 embed AppleImageCodec protocol
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-16 21:30:49 +03:00
SergeySlice
ee318d5c52 comment about WX
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-16 14:04:17 +03:00
Сергей Исаков
2313e8bac9 fix clang 13 compatibility
Signed-off-by: Сергей Исаков <sergey@iMac2017.local>
2022-08-12 22:09:53 +03:00
SergeySlice
3fa603faa8 add legacy target
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-12 21:06:10 +03:00
SergeySlice
7c21ded8c1 add gibraltar
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-04 20:22:25 +03:00
SergeySlice
12aa924078 repair clover entry
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-02 22:12:31 +03:00
SergeySlice
4d3d93231b redirect selfdir in the case of pseudo MS
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-08-01 22:34:35 +03:00
SergeySlice
ad2d256e46 collect definitions
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-28 20:46:19 +03:00
SergeySlice
f9f87a5e8d use question instead of comment
it is read as Ask Clover for auto values

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-27 20:42:01 +03:00
SergeySlice
46135654f0 update FakeSMC
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-26 22:01:13 +03:00
SergeySlice
735987a8b1 exclude SMCHelper as the service is embedded
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-26 19:57:36 +03:00
SergeySlice
6b0669f249 embed SMC protocol
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-25 22:29:12 +03:00
SergeySlice
094ca73262 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2022-07-21 20:33:35 +03:00
SergeySlice
6db8fd03d0 change defaults in config
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-21 20:33:09 +03:00
SergeySlice
8216d9f442 take into account non-GOP gfx to be able to change properties in GUI
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-20 20:33:57 +03:00
SergeySlice
30f3048fbf revert commit 9598d7ec, fix issue 525
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-18 21:11:16 +03:00
SergeySlice
a5e5d3b1cc add 13 folder
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-11 23:07:37 +03:00
SergeySlice
8920835bfa sometimes required key
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-09 06:52:23 +03:00
SergeySlice
319545d91f updates versions and SMC keys
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-08 18:41:16 +03:00
SergeySlice
6397778322 fix several mistakes
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-07 22:57:30 +03:00
SergeySlice
e79039c034 exclude FirmwareVolume from compilation
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-03 21:11:48 +03:00
SergeySlice
373008f57b embed FirmwareVolume protocol, separate driver excluded
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-02 13:08:16 +03:00
SergeySlice
53f60e49d7 fix DefaultBackgroundColor
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-07-02 10:08:53 +03:00
SergeySlice
ccf27146a6 merge conflicts
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-06-29 18:45:16 +03:00
SergeySlice
efa26ef552 new guids to discover
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-06-29 18:41:03 +03:00
SergeySlice
0f50b3644e hwtarget is not for ventura
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-06-28 22:20:28 +03:00
SergeySlice
2c28c23fdd take Ventura into account
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-06-24 19:03:14 +03:00
jief666
48be65956e Upgrade to OC pre version 0.8.2. 2022-06-19 18:46:52 +02:00
jief666
cec450188d gcc12 fix. 2022-05-24 15:34:14 +02:00
jief666
68f80562e0 Fix CCPV compilation, addendum. 2022-05-22 20:59:22 +02:00
SergeySlice
153fa4e07c detect new device-ids
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-05-20 20:50:35 +03:00
jief666
ff012267ca Fix CCPV compilation. 2022-05-20 11:29:26 +02:00
SergeySlice
3216ec0696 unused variable
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-05-17 19:43:08 +03:00
jief666
f12fd7c9ca Re-comment unnecessary code. GuidLEToXString8 is replaced by toXString8. 2022-05-14 21:54:27 +02:00
SergeySlice
8fc250a95c reconsideration of USB protocol
revert UUID endianess to traitional

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-05-07 17:03:25 +03:00
SergeySlice
04e42c09e7 restores old smUUID behavior
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-05-03 06:38:54 +03:00
SergeySlice
e6ae7e5926 initialize pointer
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-30 21:51:40 +03:00
SergeySlice
4ba408424c dont define copy constructor
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-30 15:39:36 +03:00
SergeySlice
60b2ed52b0 simple setNull
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-29 21:20:25 +03:00
jief666
1ea4700bd6 Replace EFI_GUID by a class EFI_GUID. 2022-04-26 00:55:56 +02:00
jief666
562ffe5ff0 Add Skip value in ACPI DSDT patches. 2022-04-14 18:07:46 +02:00
jief666
f18a5127ad Allow tracing getMobile result. 2022-04-14 18:06:34 +02:00
jief666
016794a82e Improve data string check (must be hex digits). 2022-04-14 18:02:47 +02:00
SergeySlice
c650742514 new ati id
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-09 16:22:09 +03:00
SergeySlice
465dd0d12a technical bug shouldnt be in release
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-06 19:05:05 +03:00
SergeySlice
8883032765 exclude error about absent theme
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-04-06 18:49:44 +03:00
SergeySlice
9337508928 exclude debug messages on screen
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-24 20:32:31 +03:00
SergeySlice
d57b9f1e52 join same device properties
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-24 20:04:30 +03:00
SergeySlice
b481378c04 cancel joining
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-22 22:07:31 +03:00
SergeySlice
27133ac407 fix unused variable
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-22 21:21:26 +03:00
SergeySlice
a8d0208452 join same devices
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-21 21:20:39 +03:00
SergeySlice
8221a911a2 define new framebuffers
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-19 16:48:22 +03:00
SergeySlice
89658955fb correct ATI injection
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-19 13:26:00 +03:00
SergeySlice
799880e95a more test for apfs
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-13 20:01:48 +03:00
SergeySlice
2bc6361ae8 exclude testing codes
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-13 08:47:07 +03:00
SergeySlice
7f87e8cc8c testing force kexts
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-13 08:25:01 +03:00
SergeySlice
aab98d9408 first found volume is not good enough
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-10 19:48:39 +03:00
SergeySlice
e6d2d6ab7b search other volume
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-09 22:34:49 +03:00
SergeySlice
9598d7ec94 choose other volume root
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-08 21:57:31 +03:00
SergeySlice
5f9f7072a3 correct root pointer
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-08 19:48:52 +03:00
SergeySlice
ede47c040b remember handle index
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-08 18:09:22 +03:00
SergeySlice
dba6587447 apfs partition type
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-08 17:18:21 +03:00
SergeySlice
d69a944398 prepare for kext injecting, step 2
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-06 13:42:12 +03:00
SergeySlice
af0fb92a75 exclude unused old methods for kext inject
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-06 09:42:49 +03:00
SergeySlice
bf067e514c a template todo
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-03-02 21:55:17 +03:00
SergeySlice
c64e643e90 unused device FDC_
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-23 12:51:33 +03:00
SergeySlice
21ede3b8fa Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2022-02-23 11:47:34 +03:00
SergeySlice
472837a58b add some more default models
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-23 11:47:24 +03:00
SergeySlice
619d9e870f include FakeSMC into strict order
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-19 19:35:52 +03:00
SergeySlice
a1432de73b ignore trailing spaces in dropped tables
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-19 10:18:18 +03:00
SergeySlice
6a722e3bba optimize style
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-18 22:00:04 +03:00
SergeySlice
b55b199188 using lambda
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-18 20:44:36 +03:00
SergeySlice
7b8e787751 code style: exclude tabs
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-13 21:21:04 +03:00
SergeySlice
ad44b1a68f few comments
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-11 22:23:58 +03:00
SergeySlice
294551b969 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2022-02-08 20:01:10 +03:00
SergeySlice
362e2e7934 some guid comments
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-08 19:22:40 +03:00
SergeySlice
0d7169a5cd update standards
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-07 20:01:31 +03:00
SergeySlice
4266f4ddf3 make defaults for HWTarget
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-05 15:57:08 +03:00
SergeySlice
79f048aa46 exclude temporary files from compilation
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-02-02 20:52:17 +03:00
SergeySlice
2aa7f5c42e change some defaults
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-30 21:49:31 +03:00
SergeySlice
4c040a5eb5 provide menu entry for new quirks
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-29 13:59:16 +03:00
SergeySlice
08b24e5649 array size
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-28 22:29:33 +03:00
SergeySlice
7945747d83 implement ProvideCurrentCpuInfo
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-28 21:47:15 +03:00
SergeySlice
80a7bd0b7a some style check
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-25 20:07:33 +03:00
Sergey Isakov
b65ace3b58 VS2017 compatibility
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
2022-01-23 19:12:22 +03:00
SergeySlice
d388e910fe wrong DEBUG usage, firmware version is 2
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-23 15:19:15 +03:00
SergeySlice
7ffa4d6bf8 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2022-01-22 13:39:41 +03:00
SergeySlice
ebb6e486ba some comments on AMD cards
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-22 13:39:20 +03:00
SergeySlice
8e678ac895 set default models for Haswell computers to be Monterey compatible
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-18 20:24:25 +03:00
SergeySlice
2de9d98382 check default extended features for more models
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2022-01-15 10:06:07 +03:00
SergeySlice
62ad226e21 MatchBuild absent should means allowed
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-12-24 21:22:53 +03:00
SergeySlice
16aba10098 delete unused variable
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-12-19 08:17:30 +03:00
jief666
eebffc9de8 Reset configPlist before reloading. 2021-12-05 09:31:28 -06:00
SergeySlice
981e737da3 take into account CometLake
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-11-26 22:26:29 +03:00
SergeySlice
c10a0b7f57 support for 11h and 12h generation of IntelCPU
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-11-17 19:40:36 +03:00
SergeySlice
d537baf58d some info about HWTarget
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-11-14 21:16:50 +03:00
SergeySlice
1ba1ba6d6c implement ForceOcWriteFlash
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-11-11 21:58:28 +03:00
SergeySlice
57b93550f8 a separate folder for OpenRuntime-v12 for possibility to start old Clover with OpenRuntime-v11
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-11-01 21:26:41 +03:00
SergeySlice
5c3e2eacb0 hwtarget is not for installer
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-31 21:40:55 +03:00
SergeySlice
b624e4d1e9 exclude doubles
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-30 11:55:55 +03:00
SergeySlice
aebddff13d corrections for previous commit
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-30 11:37:40 +03:00
SergeySlice
9ce3a2607b Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2021-10-30 11:21:44 +03:00
SergeySlice
05615c24f4 make a bridge to new quirks
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-30 11:21:39 +03:00
jief666
109901bbeb Better log in case of messages about config,plist.
Implememts --info in ccpv.
2021-10-30 08:58:43 +02:00
jief666
c26dec1e78 ResizeAppleGpuBars. 2021-10-30 06:39:10 +02:00
jief666
e036b3d54b Do not display config info messages at launch. 2021-10-29 21:56:32 +02:00
jief666
07b993b8b2 Clean some unused globals in main.cpp 2021-10-27 21:41:42 +02:00
jief666
891edf8a3c Cleaning Settings.h 2021-10-27 19:37:54 +02:00
jief666
e1fe2bc9bb Simplify validate methods as suggested by Slice. 2021-10-21 11:53:15 +02:00
SergeySlice
c7d8bbf283 losen commit caa636
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-20 18:40:16 +03:00
jief666
be9b4c2d7f Remove outdated dead code (AddLoadOption and RemoveLoadOption). 2021-10-20 10:55:05 +02:00
jief666
710b2dcee5 Allow SmbiosDictClass to work without ProductName defined (using a
defaultMacModel member that has to be assigned before).
Move BiosVersion, BiosReleaseDate and EfiVersion checks in
SmbiosDictClass. Create warnings for incorrect values.
Rename MaxMachineType to MaxMacModel.
Remove GlobalConfig->BiosVersionUsed, ReleaseDateUsed and
EfiVersionUsed.
2021-10-19 19:57:27 +02:00
jief666
2988fb41be Fix SlotCounts >= MAX_RAM_SLOTS to SlotCounts > MAX_RAM_SLOTS 2021-10-19 12:27:41 +02:00
jief666
cee098d1e6 Rename MACHINE_TYPES enum to MacModel.
Rename PLATFORMDATA array to ApplePlatformDataArrayClass.
Refactor so enum MacModel doesn't have to be in the same order as
ApplePlatformDataArrayClass.
Create static_assert that guarantee that all model has platform data.
2021-10-18 21:06:19 +02:00
jief666
8b14c24c7c Fix access to undefined SlotCount. 2021-10-17 13:20:36 +02:00
SergeySlice
f014920e14 block warning about ProductName
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-10 20:08:20 +03:00
SergeySlice
ec1f8a6a4a implemented hw.target
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-08 22:49:07 +03:00
SergeySlice
26f6050622 one more compatibility issue
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-05 19:00:02 +03:00
SergeySlice
198a8e3d9b c++20 compatibility
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-10-03 20:33:03 +03:00
jief666
6238a02434 Remove incorrect text in debug message. 2021-10-03 09:53:30 +03:00
jief666
542b812276 Refactor array of RamSlotInfo and RAM_SLOT_INFO to avoid allocating
empty slots.
Remove the InUse member.
Remove mHandle17, mInstalled, mEnabled global.
Create numeric_limits.
2021-10-02 20:44:16 +03:00
jief666
83b93234be Move assignment of gCPUStructure.TSCCalibr after
construct_globals_objects.
2021-09-29 16:32:55 +03:00
jief666
83593a5ab9 Convert bool to XBool. 2021-09-28 16:54:31 +03:00
jief666
7b23e6ba3c Remove non const value() in xmllite that breaks encapsulation. 2021-09-28 12:14:59 +03:00
jief666
c7161c8e97 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2021-09-28 11:28:54 +03:00
jief666
2c829b66cd Create XBool to avoid nasty side effect when assigning int to bool. 2021-09-28 11:28:45 +03:00
SergeySlice
38f629e980 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2021-09-27 22:41:04 +03:00
SergeySlice
5226aa6153 code formatting
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-09-27 22:40:40 +03:00
jief666
c6b08f89ba Change DsdtsList from statically allocated to XStringWArray. 2021-09-27 10:18:52 +03:00
jief666
8134f37bde Change ConfigsList from statically allocated to XStringWArray. 2021-09-27 10:05:11 +03:00
jief666
9c79b8f1c5 Changed hard coded EFI/Clover to self path in menus. 2021-09-27 09:39:06 +03:00
SergeySlice
ed10c41581 Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader 2021-09-25 15:14:21 +03:00
SergeySlice
4be6350c94 FirmwareFeatures must be odd
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-09-25 15:13:38 +03:00
jief666
e8a9e4af4f
Merge pull request #446 from z3DD3r/master
Add ExtendBTFeatureFlags to Quirks
2021-09-25 14:45:42 +03:00
SergeySlice
f0a20247e9 implement ExtendedFeatures
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2021-09-25 14:33:16 +03:00
jief666
537884c7bd Remove CPU/Latency. Warning if CPU/Latency is used. 2021-09-25 13:57:07 +03:00
jief666
e6c194d1b9 Change OC_STRING_ASSIGN_N macro to function to fix a side effect. 2021-09-25 13:25:02 +03:00
jief666
9d7d7b6059 Delegate patching ACPI if USE_OC_SECTION_Acpi is defined.
Comments.
2021-09-25 13:17:25 +03:00
jief666
c9794ad85d Create union for uint32 signature with SignatureAs4Char. Useful in gdb. 2021-09-25 13:11:54 +03:00
jief666
f70da719e5 Panic message if OpenRuntime is wrong.
OC version.
2021-09-25 13:02:47 +03:00