Skip to content

Commit

Permalink
Add dactyl_manuform_carbonfet board (KMKfw#836)
Browse files Browse the repository at this point in the history
* add `dactyl_manuform_carbonfet`

---------

Co-authored-by: xs5871 <60395129+xs5871@users.noreply.github.com>
  • Loading branch information
2 people authored and Alex Elias committed Nov 25, 2023
1 parent fe0d052 commit dd5382b
Show file tree
Hide file tree
Showing 13 changed files with 631 additions and 0 deletions.
38 changes: 38 additions & 0 deletions boards/dactyl_manuform_carbonfet/4x5/kb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import board

from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.avr_promicro import translate as avr
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation


class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[avr['C6']],
pins[avr['D7']],
pins[avr['E6']],
pins[avr['B4']],
pins[avr['B5']],
)
col_pins = (
pins[avr['F7']],
pins[avr['B1']],
pins[avr['B3']],
pins[avr['B2']],
pins[avr['B6']],
)
diode_orientation = DiodeOrientation.COLUMNS
data_pin = pins[avr['D0']]
# data_pin2 =
# rgb_pixel_pin = pins[avr['D3']]
# num_pixels = 12

# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 25, 26, 27, 28, 29,
5, 6, 7, 8, 9, 30, 31, 32, 33, 34,
10, 11, 12, 13, 14, 35, 36, 37, 38, 39,
16, 17, 22, 18, 19, 40, 41, 47, 42, 43,
21, 23, 24, 45, 46, 48
]
62 changes: 62 additions & 0 deletions boards/dactyl_manuform_carbonfet/4x5/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from kb import KMKKeyboard

from kmk.keys import KC
from kmk.modules.holdtap import HoldTap
from kmk.modules.layers import Layers
from kmk.modules.split import Split

keyboard = KMKKeyboard()

keyboard.modules.append(Layers())
keyboard.modules.append(HoldTap())

split = Split(
data_pin=keyboard.data_pin
# data_pin2=keyboard.data_pin2
)
keyboard.modules.append(split)

G_A = KC.HT(KC.A, KC.LGUI)
H_W = KC.HT(KC.W, KC.HYPR)
A_S = KC.HT(KC.s, KC.LALT)
M_E = KC.HT(KC.E, KC.MEH)
C_D = KC.HT(KC.D, KC.LCTL)
S_F = KC.HT(KC.F, KC.LSFT)
S_J = KC.HT(KC.J, KC.RSFT)
C_K = KC.HT(KC.D, KC.RCTL)
M_I = KC.HT(KC.I, KC.MEH)
A_L = KC.HT(KC.L, KC.LALT)
H_O = KC.HT(KC.O, KC.HYPR)
G_SCLN = KC.HT(KC.SCLN, KC.RGUI)
ALTCTL = KC.LALT(KC.LCTL)

keyboard.keymap = [
[ # 0
KC.Q, H_W, M_E, KC.R, KC.T, KC.Y, KC.U, M_I, H_O, KC.P,
G_A, A_S, C_D, S_F, KC.G, KC.H, S_J, C_K, A_L, G_SCLN,
KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,
KC.LEFT, KC.RGHT, KC.MO(1), KC.SPC, KC.DEL, KC.BSPC, KC.ENT, KC.MO(2), KC.UP, KC.DOWN,
KC.ESC, KC.HOME, KC.BSLS, KC.QUOT, KC.END, KC.TAB,
],
[ #1
KC.F1, KC.F2, KC.F3, KC.F4, KC.INS, KC.NLCK, KC.P7, KC.P8, KC.P9, KC.PMNS,
KC.F5, KC.F6, KC.F7, KC.F8, KC.PSCR, KC.PAST, KC.P4, KC.P5, KC.P6, KC.PPLS,
KC.F9, KC.F10, KC.F11, KC.F12, KC.PAUS, KC.PSLS, KC.P1, KC.P2, KC.P3, KC.PENT,
KC.CAPS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.LALT, KC.RSFT, KC.MO(3), KC.P0, KC.PDOT,
KC.NO, KC.NO, KC.NO, KC.RGUI, KC.RCTL, ALTCTL,
],
[ #2
KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.GRV, KC.TILD,
KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,
KC.MINS, KC.PLUS, KC.LBRC, KC.LPRN, KC.LCBR, KC.RCBR, KC.RPRN, KC.RBRC, KC.UNDS, KC.EQL,
KC.PGDN, KC.PGUP, KC.MO(3), KC.LSFT, KC.LALT, KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.SLCK,
ALTCTL, KC.LCTL, KC.LGUI, KC.NO, KC.NO, KC.NO,
],
[ #3
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
KC.DEBUG, KC.NO, KC.NO, KC.RESET, KC.NO, KC.NO, KC.RLD, KC.NO, KC.NO, KC.NO,
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
KC.NO, KC.NO, KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.TRNS, KC.NO, KC.NO,
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
],
]
39 changes: 39 additions & 0 deletions boards/dactyl_manuform_carbonfet/4x6/kb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import board

from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.avr_promicro import translate as avr
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation


class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[avr['D4']],
pins[avr['C6']],
pins[avr['D7']],
pins[avr['E6']],
pins[avr['B4']],
pins[avr['B5']],
)
col_pins = (
pins[avr['F7']],
pins[avr['B1']],
pins[avr['B3']],
pins[avr['B2']],
pins[avr['B6']],
)
diode_orientation = DiodeOrientation.COLUMNS
data_pin = pins[avr['D0']]
# data_pin2 =
# rgb_pixel_pin = pins[avr['D3']]
# num_pixels = 12

# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 30, 31, 32, 33, 34, 35,
6, 7, 8, 9, 10, 11, 36, 37, 38, 39, 40, 41,
12, 13, 14, 15, 16, 17, 42, 43, 44, 45, 46, 47,
20, 21, 22, 23, 29, 48, 49, 56, 50, 51,
27, 28, 54, 55, 57
]
58 changes: 58 additions & 0 deletions boards/dactyl_manuform_carbonfet/4x6/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
from kb import KMKKeyboard

from kmk.keys import KC
from kmk.modules.holdtap import HoldTap
from kmk.modules.layers import Layers
from kmk.modules.split import Split

keyboard = KMKKeyboard()

keyboard.modules.append(Layers())
keyboard.modules.append(HoldTap())

split = Split(
data_pin=keyboard.data_pin
# data_pin2=
)
keyboard.modules.append(split)

A_D = KC.HT(KC.D, KC.LALT)
C_F = KC.HT(KC.F, KC.LCTL)
S_SPC = KC.HT(KC.SPC, KC.LSFT)
S_ENT = KC.HT(KC.ENT, KC.RSFT)
C_J = KC.HT(KC.J, KC.RCTL)
A_K = KC.HT(KC.L, KC.LALT)
M_HOME = KC.HT(KC.HOME, KC.MEH)
H_END = KC.HT(KC.END, KC.HYPR)
ALTCTL = KC.LALT(KC.LCTL)

keyboard.keymap = [
[ # 0
KC.GRV, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSLS,
KC.CAPS, KC.A, KC.S, A_D, C_F, KC.G, KC.H, C_J, A_K, KC.L, KC.SCLN, KC.QUOT,
KC.LBRC, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RBRC,
KC.LEFT, KC.RGHT, KC.MO(1), S_SPC, KC.DEL, KC.BSPC, S_ENT, KC.MO(2), KC.UP, KC.DOWN,
KC.ESC, M_HOME, KC.LGUI, KC.RGUI, H_END, KC.TAB,
],
[ #1
KC.TRNS, KC.F1, KC.F2, KC.F3, KC.F4, KC.INS, KC.NLCK, KC.P7, KC.P8, KC.P9, KC.PMNS, KC.TRNS,
KC.TRNS, KC.F5, KC.F6, KC.F7, KC.F8, KC.PSCR, KC.PAST, KC.P4, KC.P5, KC.P6, KC.PPLS, KC.TRNS,
KC.TRNS, KC.F9, KC.F10, KC.F11, KC.F12, KC.PAUS, KC.PSLS, KC.P1, KC.P2, KC.P3, KC.PENT, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.LALT, KC.RSFT, KC.MO(3), KC.P0, KC.PDOT,
KC.NO, KC.NO, KC.NO, KC.RGUI, KC.RCTL, ALTCTL,
],
[ #2
KC.TRNS, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.TRNS,
KC.TRNS, KC.MINS, KC.PLUS, KC.LPRN, KC.LCBR, KC.TRNS, KC.TRNS, KC.RCBR, KC.RPRN, KC.UNDS, KC.EQL, KC.TRNS,
KC.PGDN, KC.PGUP, KC.MO(3), KC.LSFT, KC.LALT, KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.SLCK,
ALTCTL, KC.LCTL, KC.LGUI, KC.NO, KC.NO,
],
[ #3
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
KC.NO, KC.DEBUG, KC.NO, KC.NO, KC.RESET, KC.NO, KC.NO, KC.RLD, KC.NO, KC.NO, KC.NO, KC.NO,
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
KC.NO, KC.NO, KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.TRNS, KC.NO, KC.NO,
KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO,
],
]
41 changes: 41 additions & 0 deletions boards/dactyl_manuform_carbonfet/5x6/kb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import board

from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.avr_promicro import translate as avr
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation


class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[avr['D4']],
pins[avr['C6']],
pins[avr['D7']],
pins[avr['E6']],
pins[avr['B4']],
pins[avr['B5']],
)
col_pins = (
pins[avr['F6']],
pins[avr['F7']],
pins[avr['B1']],
pins[avr['B3']],
pins[avr['B2']],
pins[avr['B6']],
)
diode_orientation = DiodeOrientation.COLUMNS
data_pin = pins[avr['D0']]
# data_pin2 =
# rgb_pixel_pin = pins[avr['D3']]
# num_pixels = 12

# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 36, 37, 38, 39, 40, 41,
6, 7, 8, 9, 10, 11, 42, 43, 44, 45, 46, 47,
12, 13, 14, 15, 16, 17, 48, 49, 50, 51, 52, 53,
18, 19, 20, 21, 22, 23, 54, 55, 56, 57, 58, 59,
26, 27, 28, 29, 35, 60, 61, 68, 62, 63,
33, 34, 66, 67, 69
]
52 changes: 52 additions & 0 deletions boards/dactyl_manuform_carbonfet/5x6/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from kb import KMKKeyboard

from kmk.keys import KC
from kmk.modules.holdtap import HoldTap
from kmk.modules.layers import Layers
from kmk.modules.split import Split

keyboard = KMKKeyboard()

keyboard.modules.append(Layers())
keyboard.modules.append(HoldTap())

split = Split(
data_pin=keyboard.data_pin
# data_pin2=
)
keyboard.modules.append(split)

L1_HOME = KC.LT(1, KC.HOME)
L2_END = KC.LT(2, KC.END)
M_DEL = KC.HT(KC.DEL, KC.MEH)
H_BSPC = KC.HT(KC.BSPC, KC.HYPR)
A_TAB = KC.HT(KC.TAB, KC.LALT)
ALTCTL = KC.LALT(KC.LCTL)
SFTGUI = KC.LSFT(KC.LGUI)

keyboard.keymap = [
[ # 0
KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.GRV,
KC.CAPS, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSLS,
KC.LSFT, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.RSFT,
KC.LCTL, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RCTL,
KC.LEFT, KC.RGHT, KC.MO(1), KC.SPC, A_TAB, KC.LALT, KC.ENT, KC.MO(2), KC.UP, KC.DOWN,
KC.HOME, M_DEL, KC.LGUI, KC.RGUI, H_BSPC, KC.END,
],
[ #1
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NLCK, KC.P7, KC.P8, KC.P9, KC.PMNS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.UNDS, KC.MINS, KC.KC.LBRC, KC.KC.RBRC, KC.PAST, KC.P4, KC.P5, KC.P6, KC.PPLS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.EQL, KC.PLUS, KC.KC.LCBR, KC.KC.RCBR, KC.PSLS, KC.P1, KC.P2, KC.P3, KC.PENT, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.LALT, KC.RSFT, SFTGUI, KC.P0, KC.PDOT,
KC.NO, KC.NO, KC.NO, KC.RGUI, KC.RCTL, ALTCTL,
],
[ #2
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.F1, KC.F2, KC.F3, KC.F4, KC.INS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.F5, KC.F6, KC.F7, KC.F8, KC.PSCR, KC.TRNS, KC.RESET, KC.DEBUG, KC.TRNS, KC.RLD, KC.TRNS,
KC.TRNS, KC.F9, KC.F10, KC.F11, KC.F12, KC.PAUS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.PGDN, KC.PGUP, SFTGUI, KC.LSFT, KC.LALT, KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.SLCK,
ALTCTL, KC.LCTL, KC.LGUI, KC.NO, KC.NO, KC.NO,
],
]
42 changes: 42 additions & 0 deletions boards/dactyl_manuform_carbonfet/5x7/kb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import board

from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.avr_promicro import translate as avr
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation


class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[avr['D4']],
pins[avr['C6']],
pins[avr['D7']],
pins[avr['E6']],
pins[avr['B4']],
pins[avr['B5']],
)
col_pins = (
pins[avr['F5']],
pins[avr['F6']],
pins[avr['F7']],
pins[avr['B1']],
pins[avr['B3']],
pins[avr['B2']],
pins[avr['B6']],
)
diode_orientation = DiodeOrientation.COLUMNS
data_pin = pins[avr['D0']]
# data_pin2 =
# rgb_pixel_pin = pins[avr['D3']]
# num_pixels = 12

# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 42, 43, 44, 45, 46, 47, 48,
7, 8, 9, 10, 11, 12, 13, 49, 50, 51, 52, 53, 54, 55,
14, 15, 16, 17, 18, 19, 20, 56, 75, 58, 59, 60, 61, 62,
21, 22, 23, 24, 25, 26, 64, 65, 66, 67, 68, 69,
28, 29, 30, 31, 32, 33, 34, 71, 72, 80, 73, 74, 75, 76,
40, 41, 78, 79, 81
]
49 changes: 49 additions & 0 deletions boards/dactyl_manuform_carbonfet/5x7/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from kb import KMKKeyboard

from kmk.keys import KC
from kmk.modules.holdtap import HoldTap
from kmk.modules.layers import Layers
from kmk.modules.split import Split

keyboard = KMKKeyboard()

keyboard.modules.append(Layers())
keyboard.modules.append(HoldTap())

split = Split(
data_pin=keyboard.data_pin
# data_pin2=
)
keyboard.modules.append(split)

M_DEL = KC.HT(KC.DEL, KC.MEH)
H_BSPC = KC.HT(KC.BSPC, KC.HYPR)
ALTCTL = KC.LALT(KC.LCTL)
SFTGUI = KC.LSFT(KC.LGUI)

keyboard.keymap = [
[ # 0
KC.ESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.PSCR, KC.INS, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.GRV,
KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.MINS, KC.EQL, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSLS,
KC.CAPS, KC.A, KC.S, KC.D, KC.F, KC.G, KC.LBRC, KC.RBRC, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT,
KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.RSFT,
KC.LCTL, KC.LGUI, KC.LEFT, KC.RGHT, KC.MO(1), KC.SPC, KC.DEL, KC.BSPC, KC.ENT, KC.MO(2), KC.UP, KC.DOWN, KC.RGUI, KC.RCTL,
KC.LALT, KC.HOME, KC.PGUP, KC.PGDN, KC.END, KC.RALT,
],
[ #1
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NLCK, KC.P7, KC.P8, KC.P9, KC.PMNS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.PAST, KC.P4, KC.P5, KC.P6, KC.PPLS, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.PSLS, KC.P1, KC.P2, KC.P3, KC.PENT, KC.TRNS,
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.LALT, KC.RSFT, SFTGUI, KC.P0, KC.PDOT, KC.TRNS, KC.TRNS,
KC.NO, KC.NO, KC.NO, KC.RGUI, KC.RCTL, ALTCTL,
],
[ #2
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.F1, KC.F2, KC.F3, KC.F4, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.F1, KC.F2, KC.F3, KC.F4, KC.PAUS, KC.TRNS, KC.TRNS, KC.TRNS, KC.RESET, KC.DEBUG, KC.TRNS, KC.RLD, KC.TRNS,
KC.TRNS, KC.F9, KC.F10, KC.F11, KC.F12, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.TRNS, KC.TRNS, SFTGUI, KC.LSFT, KC.LALT, KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.SLCK,
ALTCTL, KC.LCTL, KC.LGUI, KC.NO, KC.NO, KC.NO,
],
]
Loading

0 comments on commit dd5382b

Please sign in to comment.