Contents
level: deep
Time used: 0:00:00.000007
List of important HDP chains detected for A8,H8: 8..:
* DIS # H8: 8 # H5: 4,9 => CTR => H5: 6,7 * CNT 1 HDP CHAINS / 21 HYP OPENED
List of important HDP chains detected for C2,A3: 7..:
* DIS # C2: 7 # D2: 1,9 => CTR => D2: 2,3,4 * CNT 1 HDP CHAINS / 24 HYP OPENED
List of important HDP chains detected for G8,H8: 6..:
* DIS # G8: 6 # H5: 4,7 => CTR => H5: 6,8,9 * CNT 1 HDP CHAINS / 19 HYP OPENED
List of important HDP chains detected for F1,F3: 6..:
* DIS # F3: 6 # D2: 1,4 => CTR => D2: 2,3,9 * DIS # F3: 6 + D2: 2,3,9 # F4: 1,4 => CTR => F4: 8,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 # F7: 1,4 => CTR => F7: 5,7 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 # F9: 1,4 => CTR => F9: 5,7,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 # F2: 9 => CTR => F2: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 # G1: 2,6 => CTR => G1: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 # D2: 9 => CTR => D2: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 # C1: 5 => CTR => C1: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 # F6: 8,9 => CTR => F6: 5,7 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 # D5: 1,4 => CTR => D5: 5,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 # D4: 2,9 => CTR => D4: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 # A7: 5,7 => CTR => A7: 2,3,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 # C7: 5,7 => CTR => C7: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 + C7: 2,3 => CTR => F3: 1,8,9 * STA F3: 1,8,9 * CNT 14 HDP CHAINS / 29 HYP OPENED
See Appendix: Full HDP Chains for full list of HDP chains.
This sudoku is deep. Here is some information that may be helpful on how to proceed.
98.7.....6...5.8....4....3..7..6.5.......3..2.......1..6..8.9....1..2..4...6..... | initial |
98.7.....6...5.8....4....3..7..6.5.......3..2.......1..6..8.9....1..2..4...6..... | autosolve |
level: deep
-------------------------------------------------- * CONSTRAINT PAIRS (AUTO SOLVE) E1,D2: 3.. / E1 = 3 => 2 pairs (_) / D2 = 3 => 3 pairs (_) C1,E1: 3.. / C1 = 3 => 3 pairs (_) / E1 = 3 => 2 pairs (_) F1,F3: 6.. / F1 = 6 => 1 pairs (_) / F3 = 6 => 1 pairs (_) C5,C6: 6.. / C5 = 6 => 1 pairs (_) / C6 = 6 => 0 pairs (_) G8,H8: 6.. / G8 = 6 => 1 pairs (_) / H8 = 6 => 1 pairs (_) C2,A3: 7.. / C2 = 7 => 1 pairs (_) / A3 = 7 => 1 pairs (_) D3,F3: 8.. / D3 = 8 => 0 pairs (_) / F3 = 8 => 1 pairs (_) A8,H8: 8.. / A8 = 8 => 0 pairs (_) / H8 = 8 => 2 pairs (_) * DURATION: 0:00:04.673755 START: 02:25:03.072146 END: 02:25:07.745901 2020-12-14 * CP COUNT: (8) * INCONCLUSIVE -------------------------------------------------- * DEEP CONSTRAINT PAIRS (PAIR REDUCTION) C1,E1: 3.. / C1 = 3 ==> 3 pairs (_) / E1 = 3 ==> 2 pairs (_) E1,D2: 3.. / E1 = 3 ==> 2 pairs (_) / D2 = 3 ==> 3 pairs (_) A8,H8: 8.. / A8 = 8 ==> 0 pairs (_) / H8 = 8 ==> 3 pairs (_) C2,A3: 7.. / C2 = 7 ==> 1 pairs (_) / A3 = 7 ==> 1 pairs (_) G8,H8: 6.. / G8 = 6 ==> 1 pairs (_) / H8 = 6 ==> 1 pairs (_) F1,F3: 6.. / F1 = 6 ==> 1 pairs (_) / F3 = 6 ==> 0 pairs (X) D3,F3: 8.. / D3 = 8 ==> 0 pairs (_) / F3 = 8 ==> 1 pairs (_) C5,C6: 6.. / C5 = 6 ==> 1 pairs (_) / C6 = 6 ==> 0 pairs (_) * DURATION: 0:01:08.650688 START: 02:25:07.746457 END: 02:26:16.397145 2020-12-14 * REASONING A8,H8: 8.. * DIS # H8: 8 # H5: 4,9 => CTR => H5: 6,7 * CNT 1 HDP CHAINS / 21 HYP OPENED * REASONING C2,A3: 7.. * DIS # C2: 7 # D2: 1,9 => CTR => D2: 2,3,4 * CNT 1 HDP CHAINS / 24 HYP OPENED * REASONING G8,H8: 6.. * DIS # G8: 6 # H5: 4,7 => CTR => H5: 6,8,9 * CNT 1 HDP CHAINS / 19 HYP OPENED * REASONING F1,F3: 6.. * DIS # F3: 6 # D2: 1,4 => CTR => D2: 2,3,9 * DIS # F3: 6 + D2: 2,3,9 # F4: 1,4 => CTR => F4: 8,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 # F7: 1,4 => CTR => F7: 5,7 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 # F9: 1,4 => CTR => F9: 5,7,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 # F2: 9 => CTR => F2: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 # G1: 2,6 => CTR => G1: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 # D2: 9 => CTR => D2: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 # C1: 5 => CTR => C1: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 # F6: 8,9 => CTR => F6: 5,7 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 # D5: 1,4 => CTR => D5: 5,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 # D4: 2,9 => CTR => D4: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 # A7: 5,7 => CTR => A7: 2,3,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 # C7: 5,7 => CTR => C7: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 + C7: 2,3 => CTR => F3: 1,8,9 * STA F3: 1,8,9 * CNT 14 HDP CHAINS / 29 HYP OPENED * DCP COUNT: (8) * CLUE FOUND
34227;12_05;GP;21;11.30;11.30;9.90
Full list of HDP chains traversed for C1,E1: 3..:
* INC # C1: 3 # A3: 1,2 => UNS * INC # C1: 3 # B3: 1,2 => UNS * INC # C1: 3 # A3: 2,7 => UNS * INC # C1: 3 # A3: 1,5 => UNS * INC # C1: 3 # H2: 2,7 => UNS * INC # C1: 3 # H2: 4,9 => UNS * INC # C1: 3 # C7: 2,7 => UNS * INC # C1: 3 # C9: 2,7 => UNS * INC # C1: 3 # F9: 5,9 => UNS * INC # C1: 3 # F9: 1,4,7 => UNS * INC # C1: 3 # B8: 5,9 => UNS * INC # C1: 3 # B8: 3 => UNS * INC # C1: 3 # D5: 5,9 => UNS * INC # C1: 3 # D6: 5,9 => UNS * INC # C1: 3 => UNS * INC # E1: 3 # A3: 2,5 => UNS * INC # E1: 3 # B3: 2,5 => UNS * INC # E1: 3 # H1: 2,5 => UNS * INC # E1: 3 # H1: 4,6 => UNS * INC # E1: 3 # C6: 2,5 => UNS * INC # E1: 3 # C7: 2,5 => UNS * INC # E1: 3 # C9: 2,5 => UNS * INC # E1: 3 # E9: 7,9 => UNS * INC # E1: 3 # F9: 7,9 => UNS * INC # E1: 3 # E5: 7,9 => UNS * INC # E1: 3 # E6: 7,9 => UNS * INC # E1: 3 => UNS * CNT 27 HDP CHAINS / 27 HYP OPENED
Full list of HDP chains traversed for E1,D2: 3..:
* INC # D2: 3 # A3: 1,2 => UNS * INC # D2: 3 # B3: 1,2 => UNS * INC # D2: 3 # A3: 2,7 => UNS * INC # D2: 3 # A3: 1,5 => UNS * INC # D2: 3 # H2: 2,7 => UNS * INC # D2: 3 # H2: 4,9 => UNS * INC # D2: 3 # C7: 2,7 => UNS * INC # D2: 3 # C9: 2,7 => UNS * INC # D2: 3 # F9: 5,9 => UNS * INC # D2: 3 # F9: 1,4,7 => UNS * INC # D2: 3 # B8: 5,9 => UNS * INC # D2: 3 # B8: 3 => UNS * INC # D2: 3 # D5: 5,9 => UNS * INC # D2: 3 # D6: 5,9 => UNS * INC # D2: 3 => UNS * INC # E1: 3 # A3: 2,5 => UNS * INC # E1: 3 # B3: 2,5 => UNS * INC # E1: 3 # H1: 2,5 => UNS * INC # E1: 3 # H1: 4,6 => UNS * INC # E1: 3 # C6: 2,5 => UNS * INC # E1: 3 # C7: 2,5 => UNS * INC # E1: 3 # C9: 2,5 => UNS * INC # E1: 3 # E9: 7,9 => UNS * INC # E1: 3 # F9: 7,9 => UNS * INC # E1: 3 # E5: 7,9 => UNS * INC # E1: 3 # E6: 7,9 => UNS * INC # E1: 3 => UNS * CNT 27 HDP CHAINS / 27 HYP OPENED
Full list of HDP chains traversed for A8,H8: 8..:
* DIS # H8: 8 # H5: 4,9 => CTR => H5: 6,7 * INC # H8: 8 + H5: 6,7 # D4: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # F4: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # H2: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # H2: 2,7 => UNS * INC # H8: 8 + H5: 6,7 # G6: 4,7 => UNS * INC # H8: 8 + H5: 6,7 # G6: 3 => UNS * INC # H8: 8 + H5: 6,7 # E5: 4,7 => UNS * INC # H8: 8 + H5: 6,7 # E5: 1,9 => UNS * INC # H8: 8 + H5: 6,7 # D4: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # F4: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # H2: 4,9 => UNS * INC # H8: 8 + H5: 6,7 # H2: 2,7 => UNS * INC # H8: 8 + H5: 6,7 # G6: 4,7 => UNS * INC # H8: 8 + H5: 6,7 # G6: 3 => UNS * INC # H8: 8 + H5: 6,7 # E5: 4,7 => UNS * INC # H8: 8 + H5: 6,7 # E5: 1,9 => UNS * INC # H8: 8 + H5: 6,7 # I6: 6,7 => UNS * INC # H8: 8 + H5: 6,7 # I6: 3,8,9 => UNS * INC # H8: 8 + H5: 6,7 => UNS * INC # A8: 8 => UNS * CNT 21 HDP CHAINS / 21 HYP OPENED
Full list of HDP chains traversed for C2,A3: 7..:
* INC # C2: 7 # I3: 1,9 => UNS * INC # C2: 7 # I3: 5,6,7 => UNS * DIS # C2: 7 # D2: 1,9 => CTR => D2: 2,3,4 * INC # C2: 7 + D2: 2,3,4 # F2: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 4 => UNS * INC # C2: 7 + D2: 2,3,4 # I3: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # I3: 5,6,7 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 4 => UNS * INC # C2: 7 + D2: 2,3,4 # I3: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # I3: 5,6,7 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 1,9 => UNS * INC # C2: 7 + D2: 2,3,4 # F2: 4 => UNS * INC # C2: 7 + D2: 2,3,4 => UNS * INC # A3: 7 # C1: 2,3 => UNS * INC # A3: 7 # B2: 2,3 => UNS * INC # A3: 7 # D2: 2,3 => UNS * INC # A3: 7 # D2: 1,4,9 => UNS * INC # A3: 7 # C4: 2,3 => UNS * INC # A3: 7 # C6: 2,3 => UNS * INC # A3: 7 # C7: 2,3 => UNS * INC # A3: 7 # C9: 2,3 => UNS * INC # A3: 7 => UNS * CNT 24 HDP CHAINS / 24 HYP OPENED
Full list of HDP chains traversed for G8,H8: 6..:
* DIS # G8: 6 # H5: 4,7 => CTR => H5: 6,8,9 * INC # G8: 6 + H5: 6,8,9 # G6: 4,7 => UNS * INC # G8: 6 + H5: 6,8,9 # G6: 4,7 => UNS * INC # G8: 6 + H5: 6,8,9 # G6: 3 => UNS * INC # G8: 6 + H5: 6,8,9 # E5: 4,7 => UNS * INC # G8: 6 + H5: 6,8,9 # E5: 1,9 => UNS * INC # G8: 6 + H5: 6,8,9 # G6: 4,7 => UNS * INC # G8: 6 + H5: 6,8,9 # G6: 3 => UNS * INC # G8: 6 + H5: 6,8,9 # E5: 4,7 => UNS * INC # G8: 6 + H5: 6,8,9 # E5: 1,9 => UNS * INC # G8: 6 + H5: 6,8,9 => UNS * INC # H8: 6 # I7: 3,7 => UNS * INC # H8: 6 # G9: 3,7 => UNS * INC # H8: 6 # I9: 3,7 => UNS * INC # H8: 6 # E8: 3,7 => UNS * INC # H8: 6 # E8: 9 => UNS * INC # H8: 6 # G6: 3,7 => UNS * INC # H8: 6 # G6: 4,6 => UNS * INC # H8: 6 => UNS * CNT 19 HDP CHAINS / 19 HYP OPENED
Full list of HDP chains traversed for F1,F3: 6..:
* INC # F1: 6 # I3: 1,5 => UNS * INC # F1: 6 # I3: 6,7,9 => UNS * INC # F1: 6 # I7: 1,5 => UNS * INC # F1: 6 # I9: 1,5 => UNS * INC # F1: 6 => UNS * INC # F3: 6 # E1: 1,4 => UNS * DIS # F3: 6 # D2: 1,4 => CTR => D2: 2,3,9 * INC # F3: 6 + D2: 2,3,9 # F2: 1,4 => UNS * INC # F3: 6 + D2: 2,3,9 # G1: 1,4 => UNS * INC # F3: 6 + D2: 2,3,9 # G1: 2,6 => UNS * DIS # F3: 6 + D2: 2,3,9 # F4: 1,4 => CTR => F4: 8,9 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 # F7: 1,4 => CTR => F7: 5,7 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 # F9: 1,4 => CTR => F9: 5,7,9 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 # F2: 1,4 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 # F2: 9 => CTR => F2: 1,4 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 # G1: 1,4 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 # G1: 2,6 => CTR => G1: 1,4 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 # D2: 2,3 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 # D2: 9 => CTR => D2: 2,3 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 # C1: 2,3 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 # C1: 5 => CTR => C1: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 # F6: 8,9 => CTR => F6: 5,7 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 # D4: 1,4 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 # D5: 1,4 => CTR => D5: 5,9 * INC # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 # D4: 1,4 => UNS * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 # D4: 2,9 => CTR => D4: 1,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 # A7: 5,7 => CTR => A7: 2,3,4 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 # C7: 5,7 => CTR => C7: 2,3 * DIS # F3: 6 + D2: 2,3,9 + F4: 8,9 + F7: 5,7 + F9: 5,7,9 + F2: 1,4 + G1: 1,4 + D2: 2,3 + C1: 2,3 + F6: 5,7 + D5: 5,9 + D4: 1,4 + A7: 2,3,4 + C7: 2,3 => CTR => F3: 1,8,9 * STA F3: 1,8,9 * CNT 29 HDP CHAINS / 29 HYP OPENED
Full list of HDP chains traversed for D3,F3: 8..:
* INC # F3: 8 # I3: 1,5 => UNS * INC # F3: 8 # I3: 6,7,9 => UNS * INC # F3: 8 # I7: 1,5 => UNS * INC # F3: 8 # I9: 1,5 => UNS * INC # F3: 8 => UNS * INC # D3: 8 => UNS * CNT 6 HDP CHAINS / 6 HYP OPENED
Full list of HDP chains traversed for C5,C6: 6..:
* INC # C5: 6 # H5: 4,7 => UNS * INC # C5: 6 # G6: 4,7 => UNS * INC # C5: 6 # E5: 4,7 => UNS * INC # C5: 6 # E5: 1,9 => UNS * INC # C5: 6 => UNS * INC # C6: 6 => UNS * CNT 6 HDP CHAINS / 6 HYP OPENED