brackt/app/lib/fifa-2026-third-place-allocation.ts

507 lines
12 KiB
TypeScript
Raw Normal View History

Reflect group stage in World Cup sim; seed R32 from real 2026 bracket The World Cup Monte Carlo simulator ignored the admin-populated knockout draw and re-paired its own simulated group output sequentially, so bracket paths from the Round of 32 onward did not match the real tournament. It also silently invented 12 synthetic groups when none were configured, discarding real group-stage results. Rework the simulator around three regimes: - draw set → simulate the real R32 matchups, advancing through the bracket tree via the canonical ceil(matchNumber/2) rule (matching advanceWinnerTemplate) so sim paths match the admin tooling. - groups only → simulate remaining group matches, then seed the R32 with the official 2026 group-position template + FIFA's exact Annex C best-third-place allocation (495-row published table). - neither → futures-seeded bracket fallback, flagged via result source. Completed group and knockout matches still lock in real results at every round. New app/lib/fifa-2026-bracket.ts encodes the R32 group-position template (official FIFA matches 73-88 mapped onto DB matchNumbers 1-16 so the tree reproduces the real halves) and assignThirdPlaceSlots(). The Annex C table is generated deterministically by scripts/gen-fifa-third-place.mjs into app/lib/fifa-2026-third-place-allocation.ts. Tests assert exact Annex C values, cross-check the template's eligible groups against all 495 combinations, and cover each regime including the partial-draw dedup and fully-drawn fast path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:15:45 -07:00
// AUTO-GENERATED from FIFA 2026 World Cup Annex C third-place allocation.
// Source: Wikipedia "Template:2026 FIFA World Cup third-place table".
// Do not edit by hand — regenerate with scripts/gen-fifa-third-place.mjs.
//
// Key: the eight qualifying third-place group letters, sorted (e.g. "EFGHIJKL").
// Value: the qualifying third-place group facing each group winner, in the
// column order [1A, 1B, 1D, 1E, 1G, 1I, 1K, 1L].
export const THIRD_PLACE_WINNER_COLUMNS = ["A", "B", "D", "E", "G", "I", "K", "L"] as const;
export const ANNEX_C_THIRD_PLACE_ALLOCATION: Record<string, string> = {
ABCDEFGH: "HGBCAFDE",
ABCDEFGI: "CGBDAFEI",
ABCDEFGJ: "CGBDAFEJ",
ABCDEFGK: "CGBDAFEK",
ABCDEFGL: "CGBDAFLE",
ABCDEFHI: "HEBCAFDI",
ABCDEFHJ: "HJBCAFDE",
ABCDEFHK: "HEBCAFDK",
ABCDEFHL: "HFBCADLE",
ABCDEFIJ: "CJBDAFEI",
ABCDEFIK: "CEBDAFIK",
ABCDEFIL: "CEBDAFLI",
ABCDEFJK: "CJBDAFEK",
ABCDEFJL: "CJBDAFLE",
ABCDEFKL: "CEBDAFLK",
ABCDEGHI: "HGBCADEI",
ABCDEGHJ: "HGBCADEJ",
ABCDEGHK: "HGBCADEK",
ABCDEGHL: "HGBCADLE",
ABCDEGIJ: "EGBCADIJ",
ABCDEGIK: "EGBCADIK",
ABCDEGIL: "EGBCADLI",
ABCDEGJK: "EGBCADJK",
ABCDEGJL: "EGBCADLJ",
ABCDEGKL: "EGBCADLK",
ABCDEHIJ: "HJBCADEI",
ABCDEHIK: "HEBCADIK",
ABCDEHIL: "HEBCADLI",
ABCDEHJK: "HJBCADEK",
ABCDEHJL: "HJBCADLE",
ABCDEHKL: "HEBCADLK",
ABCDEIJK: "EJBCADIK",
ABCDEIJL: "EJBCADLI",
ABCDEIKL: "EIBCADLK",
ABCDEJKL: "EJBCADLK",
ABCDFGHI: "HGBCAFDI",
ABCDFGHJ: "HGBCAFDJ",
ABCDFGHK: "HGBCAFDK",
ABCDFGHL: "CGBDAFLH",
ABCDFGIJ: "CGBDAFIJ",
ABCDFGIK: "CGBDAFIK",
ABCDFGIL: "CGBDAFLI",
ABCDFGJK: "CGBDAFJK",
ABCDFGJL: "CGBDAFLJ",
ABCDFGKL: "CGBDAFLK",
ABCDFHIJ: "HJBCAFDI",
ABCDFHIK: "HFBCADIK",
ABCDFHIL: "HFBCADLI",
ABCDFHJK: "HJBCAFDK",
ABCDFHJL: "CJBDAFLH",
ABCDFHKL: "HFBCADLK",
ABCDFIJK: "CJBDAFIK",
ABCDFIJL: "CJBDAFLI",
ABCDFIKL: "CIBDAFLK",
ABCDFJKL: "CJBDAFLK",
ABCDGHIJ: "HGBCADIJ",
ABCDGHIK: "HGBCADIK",
ABCDGHIL: "HGBCADLI",
ABCDGHJK: "HGBCADJK",
ABCDGHJL: "HGBCADLJ",
ABCDGHKL: "HGBCADLK",
ABCDGIJK: "CJBDAGIK",
ABCDGIJL: "CJBDAGLI",
ABCDGIKL: "IGBCADLK",
ABCDGJKL: "CJBDAGLK",
ABCDHIJK: "HJBCADIK",
ABCDHIJL: "HJBCADLI",
ABCDHIKL: "HIBCADLK",
ABCDHJKL: "HJBCADLK",
ABCDIJKL: "IJBCADLK",
ABCEFGHI: "HGBCAFEI",
ABCEFGHJ: "HGBCAFEJ",
ABCEFGHK: "HGBCAFEK",
ABCEFGHL: "HGBCAFLE",
ABCEFGIJ: "EGBCAFIJ",
ABCEFGIK: "EGBCAFIK",
ABCEFGIL: "EGBCAFLI",
ABCEFGJK: "EGBCAFJK",
ABCEFGJL: "EGBCAFLJ",
ABCEFGKL: "EGBCAFLK",
ABCEFHIJ: "HJBCAFEI",
ABCEFHIK: "HEBCAFIK",
ABCEFHIL: "HEBCAFLI",
ABCEFHJK: "HJBCAFEK",
ABCEFHJL: "HJBCAFLE",
ABCEFHKL: "HEBCAFLK",
ABCEFIJK: "EJBCAFIK",
ABCEFIJL: "EJBCAFLI",
ABCEFIKL: "EIBCAFLK",
ABCEFJKL: "EJBCAFLK",
ABCEGHIJ: "HJBCAGEI",
ABCEGHIK: "EGBCAHIK",
ABCEGHIL: "EGBCAHLI",
ABCEGHJK: "HJBCAGEK",
ABCEGHJL: "HJBCAGLE",
ABCEGHKL: "EGBCAHLK",
ABCEGIJK: "EJBCAGIK",
ABCEGIJL: "EJBCAGLI",
ABCEGIKL: "EGBAICLK",
ABCEGJKL: "EJBCAGLK",
ABCEHIJK: "EJBCAHIK",
ABCEHIJL: "EJBCAHLI",
ABCEHIKL: "EIBCAHLK",
ABCEHJKL: "EJBCAHLK",
ABCEIJKL: "EJBAICLK",
ABCFGHIJ: "HGBCAFIJ",
ABCFGHIK: "HGBCAFIK",
ABCFGHIL: "HGBCAFLI",
ABCFGHJK: "HGBCAFJK",
ABCFGHJL: "HGBCAFLJ",
ABCFGHKL: "HGBCAFLK",
ABCFGIJK: "CJBFAGIK",
ABCFGIJL: "CJBFAGLI",
ABCFGIKL: "IGBCAFLK",
ABCFGJKL: "CJBFAGLK",
ABCFHIJK: "HJBCAFIK",
ABCFHIJL: "HJBCAFLI",
ABCFHIKL: "HIBCAFLK",
ABCFHJKL: "HJBCAFLK",
ABCFIJKL: "IJBCAFLK",
ABCGHIJK: "HJBCAGIK",
ABCGHIJL: "HJBCAGLI",
ABCGHIKL: "IGBCAHLK",
ABCGHJKL: "HJBCAGLK",
ABCGIJKL: "IJBCAGLK",
ABCHIJKL: "IJBCAHLK",
ABDEFGHI: "HGBDAFEI",
ABDEFGHJ: "HGBDAFEJ",
ABDEFGHK: "HGBDAFEK",
ABDEFGHL: "HGBDAFLE",
ABDEFGIJ: "EGBDAFIJ",
ABDEFGIK: "EGBDAFIK",
ABDEFGIL: "EGBDAFLI",
ABDEFGJK: "EGBDAFJK",
ABDEFGJL: "EGBDAFLJ",
ABDEFGKL: "EGBDAFLK",
ABDEFHIJ: "HJBDAFEI",
ABDEFHIK: "HEBDAFIK",
ABDEFHIL: "HEBDAFLI",
ABDEFHJK: "HJBDAFEK",
ABDEFHJL: "HJBDAFLE",
ABDEFHKL: "HEBDAFLK",
ABDEFIJK: "EJBDAFIK",
ABDEFIJL: "EJBDAFLI",
ABDEFIKL: "EIBDAFLK",
ABDEFJKL: "EJBDAFLK",
ABDEGHIJ: "HJBDAGEI",
ABDEGHIK: "EGBDAHIK",
ABDEGHIL: "EGBDAHLI",
ABDEGHJK: "HJBDAGEK",
ABDEGHJL: "HJBDAGLE",
ABDEGHKL: "EGBDAHLK",
ABDEGIJK: "EJBDAGIK",
ABDEGIJL: "EJBDAGLI",
ABDEGIKL: "EGBAIDLK",
ABDEGJKL: "EJBDAGLK",
ABDEHIJK: "EJBDAHIK",
ABDEHIJL: "EJBDAHLI",
ABDEHIKL: "EIBDAHLK",
ABDEHJKL: "EJBDAHLK",
ABDEIJKL: "EJBAIDLK",
ABDFGHIJ: "HGBDAFIJ",
ABDFGHIK: "HGBDAFIK",
ABDFGHIL: "HGBDAFLI",
ABDFGHJK: "HGBDAFJK",
ABDFGHJL: "HGBDAFLJ",
ABDFGHKL: "HGBDAFLK",
ABDFGIJK: "FJBDAGIK",
ABDFGIJL: "FJBDAGLI",
ABDFGIKL: "IGBDAFLK",
ABDFGJKL: "FJBDAGLK",
ABDFHIJK: "HJBDAFIK",
ABDFHIJL: "HJBDAFLI",
ABDFHIKL: "HIBDAFLK",
ABDFHJKL: "HJBDAFLK",
ABDFIJKL: "IJBDAFLK",
ABDGHIJK: "HJBDAGIK",
ABDGHIJL: "HJBDAGLI",
ABDGHIKL: "IGBDAHLK",
ABDGHJKL: "HJBDAGLK",
ABDGIJKL: "IJBDAGLK",
ABDHIJKL: "IJBDAHLK",
ABEFGHIJ: "HJBFAGEI",
ABEFGHIK: "EGBFAHIK",
ABEFGHIL: "EGBFAHLI",
ABEFGHJK: "HJBFAGEK",
ABEFGHJL: "HJBFAGLE",
ABEFGHKL: "EGBFAHLK",
ABEFGIJK: "EJBFAGIK",
ABEFGIJL: "EJBFAGLI",
ABEFGIKL: "EGBAIFLK",
ABEFGJKL: "EJBFAGLK",
ABEFHIJK: "EJBFAHIK",
ABEFHIJL: "EJBFAHLI",
ABEFHIKL: "EIBFAHLK",
ABEFHJKL: "EJBFAHLK",
ABEFIJKL: "EJBAIFLK",
ABEGHIJK: "EJBAHGIK",
ABEGHIJL: "EJBAHGLI",
ABEGHIKL: "EGBAIHLK",
ABEGHJKL: "EJBAHGLK",
ABEGIJKL: "EJBAIGLK",
ABEHIJKL: "EJBAIHLK",
ABFGHIJK: "HJBFAGIK",
ABFGHIJL: "HJBFAGLI",
ABFGHIKL: "HGBAIFLK",
ABFGHJKL: "HJBFAGLK",
ABFGIJKL: "IJBFAGLK",
ABFHIJKL: "HJBAIFLK",
ABGHIJKL: "HJBAIGLK",
ACDEFGHI: "HGECAFDI",
ACDEFGHJ: "HGJCAFDE",
ACDEFGHK: "HGECAFDK",
ACDEFGHL: "HGFCADLE",
ACDEFGIJ: "CGJDAFEI",
ACDEFGIK: "CGEDAFIK",
ACDEFGIL: "CGEDAFLI",
ACDEFGJK: "CGJDAFEK",
ACDEFGJL: "CGJDAFLE",
ACDEFGKL: "CGEDAFLK",
ACDEFHIJ: "HJECAFDI",
ACDEFHIK: "HEFCADIK",
ACDEFHIL: "HEFCADLI",
ACDEFHJK: "HJECAFDK",
ACDEFHJL: "HJFCADLE",
ACDEFHKL: "HEFCADLK",
ACDEFIJK: "CJEDAFIK",
ACDEFIJL: "CJEDAFLI",
ACDEFIKL: "CEIDAFLK",
ACDEFJKL: "CJEDAFLK",
ACDEGHIJ: "HGJCADEI",
ACDEGHIK: "HGECADIK",
ACDEGHIL: "HGECADLI",
ACDEGHJK: "HGJCADEK",
ACDEGHJL: "HGJCADLE",
ACDEGHKL: "HGECADLK",
ACDEGIJK: "EGJCADIK",
ACDEGIJL: "EGJCADLI",
ACDEGIKL: "EGICADLK",
ACDEGJKL: "EGJCADLK",
ACDEHIJK: "HJECADIK",
ACDEHIJL: "HJECADLI",
ACDEHIKL: "HEICADLK",
ACDEHJKL: "HJECADLK",
ACDEIJKL: "EJICADLK",
ACDFGHIJ: "HGJCAFDI",
ACDFGHIK: "HGFCADIK",
ACDFGHIL: "HGFCADLI",
ACDFGHJK: "HGJCAFDK",
ACDFGHJL: "CGJDAFLH",
ACDFGHKL: "HGFCADLK",
ACDFGIJK: "CGJDAFIK",
ACDFGIJL: "CGJDAFLI",
ACDFGIKL: "CGIDAFLK",
ACDFGJKL: "CGJDAFLK",
ACDFHIJK: "HJFCADIK",
ACDFHIJL: "HJFCADLI",
ACDFHIKL: "HFICADLK",
ACDFHJKL: "HJFCADLK",
ACDFIJKL: "CJIDAFLK",
ACDGHIJK: "HGJCADIK",
ACDGHIJL: "HGJCADLI",
ACDGHIKL: "HGICADLK",
ACDGHJKL: "HGJCADLK",
ACDGIJKL: "IGJCADLK",
ACDHIJKL: "HJICADLK",
ACEFGHIJ: "HGJCAFEI",
ACEFGHIK: "HGECAFIK",
ACEFGHIL: "HGECAFLI",
ACEFGHJK: "HGJCAFEK",
ACEFGHJL: "HGJCAFLE",
ACEFGHKL: "HGECAFLK",
ACEFGIJK: "EGJCAFIK",
ACEFGIJL: "EGJCAFLI",
ACEFGIKL: "EGICAFLK",
ACEFGJKL: "EGJCAFLK",
ACEFHIJK: "HJECAFIK",
ACEFHIJL: "HJECAFLI",
ACEFHIKL: "HEICAFLK",
ACEFHJKL: "HJECAFLK",
ACEFIJKL: "EJICAFLK",
ACEGHIJK: "EGJCAHIK",
ACEGHIJL: "EGJCAHLI",
ACEGHIKL: "EGICAHLK",
ACEGHJKL: "EGJCAHLK",
ACEGIJKL: "EJICAGLK",
ACEHIJKL: "EJICAHLK",
ACFGHIJK: "HGJCAFIK",
ACFGHIJL: "HGJCAFLI",
ACFGHIKL: "HGICAFLK",
ACFGHJKL: "HGJCAFLK",
ACFGIJKL: "IGJCAFLK",
ACFHIJKL: "HJICAFLK",
ACGHIJKL: "HJICAGLK",
ADEFGHIJ: "HGJDAFEI",
ADEFGHIK: "HGEDAFIK",
ADEFGHIL: "HGEDAFLI",
ADEFGHJK: "HGJDAFEK",
ADEFGHJL: "HGJDAFLE",
ADEFGHKL: "HGEDAFLK",
ADEFGIJK: "EGJDAFIK",
ADEFGIJL: "EGJDAFLI",
ADEFGIKL: "EGIDAFLK",
ADEFGJKL: "EGJDAFLK",
ADEFHIJK: "HJEDAFIK",
ADEFHIJL: "HJEDAFLI",
ADEFHIKL: "HEIDAFLK",
ADEFHJKL: "HJEDAFLK",
ADEFIJKL: "EJIDAFLK",
ADEGHIJK: "EGJDAHIK",
ADEGHIJL: "EGJDAHLI",
ADEGHIKL: "EGIDAHLK",
ADEGHJKL: "EGJDAHLK",
ADEGIJKL: "EJIDAGLK",
ADEHIJKL: "EJIDAHLK",
ADFGHIJK: "HGJDAFIK",
ADFGHIJL: "HGJDAFLI",
ADFGHIKL: "HGIDAFLK",
ADFGHJKL: "HGJDAFLK",
ADFGIJKL: "IGJDAFLK",
ADFHIJKL: "HJIDAFLK",
ADGHIJKL: "HJIDAGLK",
AEFGHIJK: "EGJFAHIK",
AEFGHIJL: "EGJFAHLI",
AEFGHIKL: "EGIFAHLK",
AEFGHJKL: "EGJFAHLK",
AEFGIJKL: "EJIFAGLK",
AEFHIJKL: "EJIFAHLK",
AEGHIJKL: "EJIAHGLK",
AFGHIJKL: "HJIFAGLK",
BCDEFGHI: "CGBDHFEI",
BCDEFGHJ: "HGBCJFDE",
BCDEFGHK: "CGBDHFEK",
BCDEFGHL: "CGBDHFLE",
BCDEFGIJ: "CGBDJFEI",
BCDEFGIK: "CGBDEFIK",
BCDEFGIL: "CGBDEFLI",
BCDEFGJK: "CGBDJFEK",
BCDEFGJL: "CGBDJFLE",
BCDEFGKL: "CGBDEFLK",
BCDEFHIJ: "CJBDHFEI",
BCDEFHIK: "CEBDHFIK",
BCDEFHIL: "CEBDHFLI",
BCDEFHJK: "CJBDHFEK",
BCDEFHJL: "CJBDHFLE",
BCDEFHKL: "CEBDHFLK",
BCDEFIJK: "CJBDEFIK",
BCDEFIJL: "CJBDEFLI",
BCDEFIKL: "CEBDIFLK",
BCDEFJKL: "CJBDEFLK",
BCDEGHIJ: "HGBCJDEI",
BCDEGHIK: "EGBCHDIK",
BCDEGHIL: "EGBCHDLI",
BCDEGHJK: "HGBCJDEK",
BCDEGHJL: "HGBCJDLE",
BCDEGHKL: "EGBCHDLK",
BCDEGIJK: "EGBCJDIK",
BCDEGIJL: "EGBCJDLI",
BCDEGIKL: "EGBCIDLK",
BCDEGJKL: "EGBCJDLK",
BCDEHIJK: "EJBCHDIK",
BCDEHIJL: "EJBCHDLI",
BCDEHIKL: "EIBCHDLK",
BCDEHJKL: "EJBCHDLK",
BCDEIJKL: "EJBCIDLK",
BCDFGHIJ: "HGBCJFDI",
BCDFGHIK: "CGBDHFIK",
BCDFGHIL: "CGBDHFLI",
BCDFGHJK: "HGBCJFDK",
BCDFGHJL: "CGBDHFLJ",
BCDFGHKL: "CGBDHFLK",
BCDFGIJK: "CGBDJFIK",
BCDFGIJL: "CGBDJFLI",
BCDFGIKL: "CGBDIFLK",
BCDFGJKL: "CGBDJFLK",
BCDFHIJK: "CJBDHFIK",
BCDFHIJL: "CJBDHFLI",
BCDFHIKL: "CIBDHFLK",
BCDFHJKL: "CJBDHFLK",
BCDFIJKL: "CJBDIFLK",
BCDGHIJK: "HGBCJDIK",
BCDGHIJL: "HGBCJDLI",
BCDGHIKL: "HGBCIDLK",
BCDGHJKL: "HGBCJDLK",
BCDGIJKL: "IGBCJDLK",
BCDHIJKL: "HJBCIDLK",
BCEFGHIJ: "HGBCJFEI",
BCEFGHIK: "EGBCHFIK",
BCEFGHIL: "EGBCHFLI",
BCEFGHJK: "HGBCJFEK",
BCEFGHJL: "HGBCJFLE",
BCEFGHKL: "EGBCHFLK",
BCEFGIJK: "EGBCJFIK",
BCEFGIJL: "EGBCJFLI",
BCEFGIKL: "EGBCIFLK",
BCEFGJKL: "EGBCJFLK",
BCEFHIJK: "EJBCHFIK",
BCEFHIJL: "EJBCHFLI",
BCEFHIKL: "EIBCHFLK",
BCEFHJKL: "EJBCHFLK",
BCEFIJKL: "EJBCIFLK",
BCEGHIJK: "EJBCHGIK",
BCEGHIJL: "EJBCHGLI",
BCEGHIKL: "EGBCIHLK",
BCEGHJKL: "EJBCHGLK",
BCEGIJKL: "EJBCIGLK",
BCEHIJKL: "EJBCIHLK",
BCFGHIJK: "HGBCJFIK",
BCFGHIJL: "HGBCJFLI",
BCFGHIKL: "HGBCIFLK",
BCFGHJKL: "HGBCJFLK",
BCFGIJKL: "IGBCJFLK",
BCFHIJKL: "HJBCIFLK",
BCGHIJKL: "HJBCIGLK",
BDEFGHIJ: "HGBDJFEI",
BDEFGHIK: "EGBDHFIK",
BDEFGHIL: "EGBDHFLI",
BDEFGHJK: "HGBDJFEK",
BDEFGHJL: "HGBDJFLE",
BDEFGHKL: "EGBDHFLK",
BDEFGIJK: "EGBDJFIK",
BDEFGIJL: "EGBDJFLI",
BDEFGIKL: "EGBDIFLK",
BDEFGJKL: "EGBDJFLK",
BDEFHIJK: "EJBDHFIK",
BDEFHIJL: "EJBDHFLI",
BDEFHIKL: "EIBDHFLK",
BDEFHJKL: "EJBDHFLK",
BDEFIJKL: "EJBDIFLK",
BDEGHIJK: "EJBDHGIK",
BDEGHIJL: "EJBDHGLI",
BDEGHIKL: "EGBDIHLK",
BDEGHJKL: "EJBDHGLK",
BDEGIJKL: "EJBDIGLK",
BDEHIJKL: "EJBDIHLK",
BDFGHIJK: "HGBDJFIK",
BDFGHIJL: "HGBDJFLI",
BDFGHIKL: "HGBDIFLK",
BDFGHJKL: "HGBDJFLK",
BDFGIJKL: "IGBDJFLK",
BDFHIJKL: "HJBDIFLK",
BDGHIJKL: "HJBDIGLK",
BEFGHIJK: "EJBFHGIK",
BEFGHIJL: "EJBFHGLI",
BEFGHIKL: "EGBFIHLK",
BEFGHJKL: "EJBFHGLK",
BEFGIJKL: "EJBFIGLK",
BEFHIJKL: "EJBFIHLK",
BEGHIJKL: "EJIBHGLK",
BFGHIJKL: "HJBFIGLK",
CDEFGHIJ: "CGJDHFEI",
CDEFGHIK: "CGEDHFIK",
CDEFGHIL: "CGEDHFLI",
CDEFGHJK: "CGJDHFEK",
CDEFGHJL: "CGJDHFLE",
CDEFGHKL: "CGEDHFLK",
CDEFGIJK: "CGEDJFIK",
CDEFGIJL: "CGEDJFLI",
CDEFGIKL: "CGEDIFLK",
CDEFGJKL: "CGEDJFLK",
CDEFHIJK: "CJEDHFIK",
CDEFHIJL: "CJEDHFLI",
CDEFHIKL: "CEIDHFLK",
CDEFHJKL: "CJEDHFLK",
CDEFIJKL: "CJEDIFLK",
CDEGHIJK: "EGJCHDIK",
CDEGHIJL: "EGJCHDLI",
CDEGHIKL: "EGICHDLK",
CDEGHJKL: "EGJCHDLK",
CDEGIJKL: "EGICJDLK",
CDEHIJKL: "EJICHDLK",
CDFGHIJK: "CGJDHFIK",
CDFGHIJL: "CGJDHFLI",
CDFGHIKL: "CGIDHFLK",
CDFGHJKL: "CGJDHFLK",
CDFGIJKL: "CGIDJFLK",
CDFHIJKL: "CJIDHFLK",
CDGHIJKL: "HGICJDLK",
CEFGHIJK: "EGJCHFIK",
CEFGHIJL: "EGJCHFLI",
CEFGHIKL: "EGICHFLK",
CEFGHJKL: "EGJCHFLK",
CEFGIJKL: "EGICJFLK",
CEFHIJKL: "EJICHFLK",
CEGHIJKL: "EJICHGLK",
CFGHIJKL: "HGICJFLK",
DEFGHIJK: "EGJDHFIK",
DEFGHIJL: "EGJDHFLI",
DEFGHIKL: "EGIDHFLK",
DEFGHJKL: "EGJDHFLK",
DEFGIJKL: "EGIDJFLK",
DEFHIJKL: "EJIDHFLK",
DEGHIJKL: "EJIDHGLK",
DFGHIJKL: "HGIDJFLK",
EFGHIJKL: "EJIFHGLK",
};