Commit graph

16 commits

Author SHA1 Message Date
Ryan
2da0827d4f
Remove matrix size defines (#19581) 2023-02-17 16:08:25 +11:00
Ryan
f9aeea64c1
Migrate MCU and BOOTLOADER to data-driven (#19529) 2023-02-08 18:41:46 +11:00
Ryan
ebb512db82
Debounce defines cleanup (#19742)
* Clean up `DEBOUNCE` in config.h, 0-9

* Clean up `DEBOUNCE` in config.h, A

* Clean up `DEBOUNCE` in config.h, B

* Clean up `DEBOUNCE` in config.h, C

* Clean up `DEBOUNCE` in config.h, D

* Clean up `DEBOUNCE` in config.h, E

* Clean up `DEBOUNCE` in config.h, F

* Clean up `DEBOUNCE` in config.h, G

* Clean up `DEBOUNCE` in config.h, H

* Clean up `DEBOUNCE` in config.h, handwired

* Clean up `DEBOUNCE` in config.h, I

* Clean up `DEBOUNCE` in config.h, J

* Clean up `DEBOUNCE` in config.h, K

* Clean up `DEBOUNCE` in config.h, L

* Clean up `DEBOUNCE` in config.h, M

* Clean up `DEBOUNCE` in config.h, N

* Clean up `DEBOUNCE` in config.h, O

* Clean up `DEBOUNCE` in config.h, P

* Clean up `DEBOUNCE` in config.h, Q

* Clean up `DEBOUNCE` in config.h, R

* Clean up `DEBOUNCE` in config.h, S

* Clean up `DEBOUNCE` in config.h, T

* Clean up `DEBOUNCE` in config.h, U

* Clean up `DEBOUNCE` in config.h, V

* Clean up `DEBOUNCE` in config.h, W

* Clean up `DEBOUNCE` in config.h, X

* Clean up `DEBOUNCE` in config.h, Y

* Clean up `DEBOUNCE` in config.h, Z

* Remove default debounce from info.json

* Migrate non-default debounce to info.json
2023-02-03 19:19:58 +00:00
Nick Brassel
f6dd8dea2e
Remove usages of config_common.h from config.h files. (#19714) 2023-01-31 06:03:30 +11:00
fauxpark
61689ae609 Merge remote-tracking branch 'upstream/master' into develop 2022-08-20 10:55:40 +10:00
Ryan
f4dcce7e59
Move keyboard USB IDs and strings to data driven, pass 2: M-O (#18090) 2022-08-20 01:45:28 +01:00
Nick Brassel
154d35ac14
Remove UNUSED_PINS (#17931) 2022-08-06 23:23:35 +10:00
Ryan
f718a10889
Fix up build options comments (#15463) 2021-12-12 18:05:37 -08:00
Ryan
a8d440e4e0
Tidy up NKRO_ENABLE rules (#15382) 2021-12-09 16:05:44 +11:00
Ryan
c12b997679
Tidy up SLEEP_LED_ENABLE rules (#15362) 2021-12-01 21:13:00 +11:00
James Young
84ea77ead6
Remove BOOTMAGIC_ENABLE = lite option (#15002)
* remove BOOTMAGIC_ENABLE=lite setting

* change keyboard BOOTMAGIC_ENABLE rules

Edits keyboard-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keyboard BOOTMAGIC_ENABLE inline comments

Edits keyboard-level BOOTMAGIC_ENABLE inline comments to "Enable Bootmagic Lite".

* change keymap BOOTMAGIC_ENABLE rules

Edits keymap-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keymap BOOTMAGIC_ENABLE inline comments

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* change layout/user BOOTMAGIC_ENABLE rules/comments

Edits instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* update non-rules.mk BOOTMAGIC_ENABLE references in keyboards/

* remove docs references to Full Bootmagic

* convert data-driven Bootmagic Lite instances

* remove Bootmagic Lite bodge from data-driven generation

* Merge remote-tracking branch 'upstream/develop' into rm/bootmagic-full_q4a

* update docs/ja/config_options.md per mtei

* update docs/faq_misc.md per mtei

Remove remaining Full Bootmagic reference.
2021-11-05 08:18:09 +11:00
Ryan
5af1799735
Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (#14379) 2021-09-12 15:27:29 +10:00
James Young
a03aa301de
Remove Full Bootmagic (#13846)
* disambiguate Bootmagic rules in keymaps

The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic.

This commit edits the files to specify that full Bootmagic is intended.

* remove BOOTMAGIC_ENABLE=full setting

* unify commented BOOTMAGIC_ENABLE rules in keyboards

Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no       # Virtual DIP switch configuration;g' {} +
```

* remove commented Bootmagic rules from keymap/user level

Command:

```
find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} +
```

* update keyboard BOOTMAGIC_ENABLE rule formatting

Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later).

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
```

* update keyboards' BOOTMAGIC_ENABLE settings

Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' +
```

* update keymap/user BOOTMAGIC_ENABLE settings

Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
```

* remove and replace inline comments in keyboards and keymap/user files

Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1     # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1      # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1       # Enable Bootmagic Lite;g' '{}' +
```

* rename improperly named makefiles

Some files intended to be used as makefiles had improper names causing them to not be used as intended when building.

This commit corrects the filenames of the affected files.

* update renamed file with new rule formatting

* update QMK's template files

Updates QMK's `rules.mk` templates to use the new inline comment.

* update QMK Docs

- remove documentation of full Bootmagic
- update links to Bootmagic Lite doc
- add doc for Magic Keycodes

* rules.mk patch for coarse/ixora and coarse/vinta
2021-08-06 23:59:56 -07:00
Zach White
546f5f2c4f
Error log cleanup (#13349)
* error log cleanup: 40percentclub/25

40percentclub/25: Claims to support a community layout that does not exist: ortho_5x5

* error log cleanup: 40percentclub/4x4

☒ 40percentclub/4x4: Claims to support a community layout that does not exist: ortho_4x8
☒ 40percentclub/4x4: Claims to support a community layout that does not exist: ortho_4x16

* error log cleanup: 40percentclub/5x5

☒ 40percentclub/5x5: Claims to support a community layout that does not exist: ortho_5x5

* error log cleanup: 40percentclub/nori

☒ 40percentclub/nori: Claims to support a community layout that does not exist: ortho_4x8

* error log cleanup: barracuda

☒ barracuda: Claims to support a community layout that does not exist: ortho_3x11

* error log cleanup: bpiphany/frosty_flake

☒ keyboards/bpiphany/frosty_flake/frosty_flake.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!

* error log cleanup: bpiphany/pegasushoof/2013

☒ keyboards/bpiphany/pegasushoof/2013/2013.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!

* error cleanup: bpiphany/pegasushoof/2015

☒ keyboards/bpiphany/pegasushoof/2015/2015.h: LAYOUT_tkl_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/bpiphany/pegasushoof/2015/2015.h: LAYOUT_tkl_iso: Nested layout macro detected. Matrix data not available!

* error log cleanup: 40percentclub

☒ 40percentclub/25: Claims to support a community layout that does not exist: ortho_5x10
☒ 40percentclub/5x5: Claims to support a community layout that does not exist: ortho_5x10

* error cleanup: converter/usb_usb

☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_ansi: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_iso: Nested layout macro detected. Matrix data not available!
☒ keyboards/converter/usb_usb/usb_usb.h: LAYOUT_jis: Nested layout macro detected. Matrix data not available!

* error cleanup: ergo42

☒ ergo42/rev1: Claims to support a community layout that does not exist: ortho_4x14

* error cleanup: handwired/412_64

☒ handwired/412_64: Claims to support a community layout that does not exist: ortho_4x16

* error log cleanup: handwired/tritium_numpad
☒ handwired/tritium_numpad: Claims to support a community layout that does not exist: nontra_6x4

* error log cleanup: handwired/xealous/rev1
☒ handwired/xealous/rev1: Claims to support a community layout that does not exist: split60

* error log cleanup: kbdfans/kbd67/rev2

⚠ kbdfans/kbd67/rev2: info.json uses alias name LAYOUT_65_ansi_blocker_splitbs instead of LAYOUT_65_ansi_blocker_split_bs

* error cleanup: keebio/nyquist

☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/keebio/nyquist/nyquist.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!

* error cleanup: kindakeyboards/conone65

☒ kindakeyboards/conone65: Claims to support a community layout that does not exist: 65_iso_split_bs

* error cleanup: latinpadble

☒ latinpadble: Claims to support a community layout that does not exist: pad

* error cleanup: masterworks/classy_tkl/rev_a

☒ masterworks/classy_tkl/rev_a: Claims to support a community layout that does not exist: tkl_ansi_wkl

* error cleanup: meira

⚠ meira/featherble: info.json uses alias name LAYOUT_ortho_4x12 instead of LAYOUT
⚠ meira/promicro: info.json uses alias name LAYOUT_ortho_4x12 instead of LAYOUT

* error cleanup: nopunin10did/jabberwocky

⚠ nopunin10did/jabberwocky: MANUFACTURER in config.h is overwriting manufacturer in info.json

* error cleanup: ok60

☒ ok60: Claims to support a community layout that does not exist: 60_ansi_split_bksp_rshift

* error cleanup: ok60

☒ ok60: Claims to support a community layout that does not exist: 60_ansi_split_bksp_rshift

* error cleanup: planck

☒ keyboards/planck/ez/ez.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
☒ keyboards/planck/ez/ez.h: LAYOUT_ortho_4x12: Nested layout macro detected. Matrix data not available!
⚠ planck/thk: DEBOUNCE in config.h is overwriting debounce in info.json
⚠ planck/thk: DEVICE_VER in config.h is overwriting usb.device_ver in info.json
⚠ planck/thk: DIODE_DIRECTION in config.h is overwriting diode_direction in info.json
⚠ planck/thk: MANUFACTURER in config.h is overwriting manufacturer in info.json
⚠ planck/thk: PRODUCT_ID in config.h is overwriting usb.pid in info.json
⚠ planck/thk: VENDOR_ID in config.h is overwriting usb.vid in info.json
⚠ planck/thk: QMK_ESC_OUTPUT in config.h is overwriting qmk_lufa_bootloader.esc_output in info.json
⚠ planck/thk: QMK_ESC_INPUT in config.h is overwriting qmk_lufa_bootloader.esc_input in info.json
⚠ planck/thk: QMK_LED in config.h is overwriting qmk_lufa_bootloader.led in info.json
⚠ planck/thk: QMK_SPEAKER in config.h is overwriting qmk_lufa_bootloader.speaker in info.json
⚠ planck/thk: Matrix pins are specified in both info.json and config.h, the config.h values win.
⚠ planck/thk: LAYOUTS in rules.mk is overwriting community_layouts in info.json
⚠ planck/thk: Feature mousekey is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature extrakey is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature console is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature command is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature sleep_led is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature nkro is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature backlight is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature rgblight is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature bluetooth is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature audio is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature encoder is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature dip_switch is specified in both info.json and rules.mk, the rules.mk value wins.
⚠ planck/thk: Feature bootmagic_lite is specified in both info.json and rules.mk, the rules.mk value wins.

* error cleanup: primekb/prime_m

☒ primekb/prime_m: Claims to support a community layout that does not exist: ortho_5x6

* error cleanup: rgbkb/sol/rev2

⚠ rgbkb/sol/rev2: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: '(BACKLIGHT_LEDS + FULLHAND_LEDS)'

* error log cleanup: shk9

☒ shk9: Claims to support a community layout that does not exist: ortho_3x3

* error log cleanup: sowbug

⚠ sowbug/68keys: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: 'DRIVER_LED_TOTAL'
⚠ sowbug/ansi_tkl: RGBLED_NUM->rgblight.led_count: invalid literal for int() with base 10: '(DRIVER_LED_TOTAL)'

* error log cleanup: torn

☒ torn: Claims to support a community layout that does not exist: split_3x6_4

* error cleanup: ymdk/np24/u4rgb6

☒ ymdk/np24/u4rgb6: Claims to support a community layout that does not exist: ortho_4x6

* error cleanup: masterworks/classy_tkl/rev_a

☒ masterworks/classy_tkl/rev_a: Claims to support a community layout that does not exist: tkl_iso_wkl
2021-06-26 08:38:14 -07:00
James Young
a8d64c8b89
Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
4pplet
b0024470ed
[Keyboard] 4pplet keyboards (#10251)
* added 4pplet keyboards

added 4pplet keyboards

* Update keyboards/4pplet/aekiso60_rev_a/aekiso60_rev_a.h

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60_rev_a/config.h

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60_rev_a/config.h

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/waffling60_rev_a/config.h

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/steezy60_rev_a/config.h

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Delete info.json

* Delete info.json

* Delete info.json

* removed VIA_ENABLE

* Update config.h

* Update rules.mk

* Update steezy60_rev_a.h

* Update config.h

* Removed VIA_ENABLE

* Update keyboards/4pplet/steezy60_rev_a/rules.mk

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Removed VIA_ENABLE

* Update config.h

* Update config.h

* Update config.h

* adding fauxpark suggestion

* Update keyboards/4pplet/aekiso60_rev_a/config.h

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* some updates recommended by noroadsleft, still work in progress 

some updates recommended by noroadsleft, still work in progress

* made directorys for revisions per noroadsleft  suggestion

made directorys for revisions per noroadsleft  suggestion

* renamed keyboard_pre_init_user to keyboard_pre_init_kb

* Update keyboards/4pplet/aekiso60/rev_a/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* started working on refactoring led function for waffling60

* removed LED functionality

* Update keyboards/wilba_tech/zeal60/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/wilba_tech/zeal60/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/waffling60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/steezy60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update config.h

added debounce to prevent stuttering with some switches

* Update README.md

* Adding masterwork classy_tkl

* Update keyboards/masterwork/classy_tkl/rev_a/rev_a.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/masterwork/classy_tkl/rev_a/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/masterwork/classy_tkl/rev_a/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update rev_a.c

* Update rev_a.c

* updated name from masterwork to masterworks

* Update keyboards/masterworks/classy_tkl/info.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/masterworks/classy_tkl/info.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/masterworks/classy_tkl/info.json

Co-authored-by: Drashna Jaelre <drashna@live.com>

* added license header to keymap

* Update keyboards/masterworks/classy_tkl/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/rev_a/config.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/rev_a/rev_a.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/rev_a/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/rev_a/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/rev_a/rev_a.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/masterworks/classy_tkl/readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-18 19:31:44 -07:00