diff --git a/assets/images/flags/alg.svg b/assets/images/flags/alg.svg
new file mode 100644
index 0000000..49e52c6
--- /dev/null
+++ b/assets/images/flags/alg.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/arg.svg b/assets/images/flags/arg.svg
new file mode 100644
index 0000000..2056b21
--- /dev/null
+++ b/assets/images/flags/arg.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/aus.svg b/assets/images/flags/aus.svg
new file mode 100644
index 0000000..e8d8360
--- /dev/null
+++ b/assets/images/flags/aus.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/aut.svg b/assets/images/flags/aut.svg
new file mode 100644
index 0000000..9838efb
--- /dev/null
+++ b/assets/images/flags/aut.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/bel.svg b/assets/images/flags/bel.svg
new file mode 100644
index 0000000..bd09d0f
--- /dev/null
+++ b/assets/images/flags/bel.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/bra.svg b/assets/images/flags/bra.svg
new file mode 100644
index 0000000..877a308
--- /dev/null
+++ b/assets/images/flags/bra.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/can.svg b/assets/images/flags/can.svg
new file mode 100644
index 0000000..481fac7
--- /dev/null
+++ b/assets/images/flags/can.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/chi.svg b/assets/images/flags/chi.svg
new file mode 100644
index 0000000..90fdb74
--- /dev/null
+++ b/assets/images/flags/chi.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/civ.svg b/assets/images/flags/civ.svg
new file mode 100644
index 0000000..aa864f1
--- /dev/null
+++ b/assets/images/flags/civ.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/cmr.svg b/assets/images/flags/cmr.svg
new file mode 100644
index 0000000..e382e7a
--- /dev/null
+++ b/assets/images/flags/cmr.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/col.svg b/assets/images/flags/col.svg
new file mode 100644
index 0000000..fb41bd0
--- /dev/null
+++ b/assets/images/flags/col.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/crc.svg b/assets/images/flags/crc.svg
new file mode 100644
index 0000000..56ffa8c
--- /dev/null
+++ b/assets/images/flags/crc.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/cro.svg b/assets/images/flags/cro.svg
new file mode 100644
index 0000000..078fc09
--- /dev/null
+++ b/assets/images/flags/cro.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/den.svg b/assets/images/flags/den.svg
new file mode 100644
index 0000000..6c7cf0c
--- /dev/null
+++ b/assets/images/flags/den.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/ecu.svg b/assets/images/flags/ecu.svg
new file mode 100644
index 0000000..769819e
--- /dev/null
+++ b/assets/images/flags/ecu.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/egy.svg b/assets/images/flags/egy.svg
new file mode 100644
index 0000000..acc9c35
--- /dev/null
+++ b/assets/images/flags/egy.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/eng.svg b/assets/images/flags/eng.svg
new file mode 100644
index 0000000..f966c1e
--- /dev/null
+++ b/assets/images/flags/eng.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/esp.svg b/assets/images/flags/esp.svg
new file mode 100644
index 0000000..4ebbfe4
--- /dev/null
+++ b/assets/images/flags/esp.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/fra.svg b/assets/images/flags/fra.svg
new file mode 100644
index 0000000..203aa9c
--- /dev/null
+++ b/assets/images/flags/fra.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/ger.svg b/assets/images/flags/ger.svg
new file mode 100644
index 0000000..96b90bc
--- /dev/null
+++ b/assets/images/flags/ger.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/gha.svg b/assets/images/flags/gha.svg
new file mode 100644
index 0000000..cc77146
--- /dev/null
+++ b/assets/images/flags/gha.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/hon.svg b/assets/images/flags/hon.svg
new file mode 100644
index 0000000..2895391
--- /dev/null
+++ b/assets/images/flags/hon.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/irn.svg b/assets/images/flags/irn.svg
new file mode 100644
index 0000000..2497678
--- /dev/null
+++ b/assets/images/flags/irn.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/ita.svg b/assets/images/flags/ita.svg
new file mode 100644
index 0000000..62cb13a
--- /dev/null
+++ b/assets/images/flags/ita.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/jam.svg b/assets/images/flags/jam.svg
new file mode 100644
index 0000000..2fef052
--- /dev/null
+++ b/assets/images/flags/jam.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/jor.svg b/assets/images/flags/jor.svg
new file mode 100644
index 0000000..a7f8075
--- /dev/null
+++ b/assets/images/flags/jor.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/jpn.svg b/assets/images/flags/jpn.svg
new file mode 100644
index 0000000..f2ea938
--- /dev/null
+++ b/assets/images/flags/jpn.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/kor.svg b/assets/images/flags/kor.svg
new file mode 100644
index 0000000..f1230bb
--- /dev/null
+++ b/assets/images/flags/kor.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/ksa.svg b/assets/images/flags/ksa.svg
new file mode 100644
index 0000000..99cc4fd
--- /dev/null
+++ b/assets/images/flags/ksa.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/mar.svg b/assets/images/flags/mar.svg
new file mode 100644
index 0000000..5e6a3a4
--- /dev/null
+++ b/assets/images/flags/mar.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/mex.svg b/assets/images/flags/mex.svg
new file mode 100644
index 0000000..d36d984
--- /dev/null
+++ b/assets/images/flags/mex.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/ned.svg b/assets/images/flags/ned.svg
new file mode 100644
index 0000000..a94925a
--- /dev/null
+++ b/assets/images/flags/ned.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/nga.svg b/assets/images/flags/nga.svg
new file mode 100644
index 0000000..eb7a0e4
--- /dev/null
+++ b/assets/images/flags/nga.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/nzl.svg b/assets/images/flags/nzl.svg
new file mode 100644
index 0000000..e2b53a3
--- /dev/null
+++ b/assets/images/flags/nzl.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/pan.svg b/assets/images/flags/pan.svg
new file mode 100644
index 0000000..38333d0
--- /dev/null
+++ b/assets/images/flags/pan.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/par.svg b/assets/images/flags/par.svg
new file mode 100644
index 0000000..f2f8cd6
--- /dev/null
+++ b/assets/images/flags/par.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/pol.svg b/assets/images/flags/pol.svg
new file mode 100644
index 0000000..975a799
--- /dev/null
+++ b/assets/images/flags/pol.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/por.svg b/assets/images/flags/por.svg
new file mode 100644
index 0000000..b2111d5
--- /dev/null
+++ b/assets/images/flags/por.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/qat.svg b/assets/images/flags/qat.svg
new file mode 100644
index 0000000..1d8a355
--- /dev/null
+++ b/assets/images/flags/qat.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/sco.svg b/assets/images/flags/sco.svg
new file mode 100644
index 0000000..751660a
--- /dev/null
+++ b/assets/images/flags/sco.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/sen.svg b/assets/images/flags/sen.svg
new file mode 100644
index 0000000..4ca9407
--- /dev/null
+++ b/assets/images/flags/sen.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/srb.svg b/assets/images/flags/srb.svg
new file mode 100644
index 0000000..1c268a1
--- /dev/null
+++ b/assets/images/flags/srb.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/sui.svg b/assets/images/flags/sui.svg
new file mode 100644
index 0000000..ff6b28a
--- /dev/null
+++ b/assets/images/flags/sui.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/tun.svg b/assets/images/flags/tun.svg
new file mode 100644
index 0000000..8724616
--- /dev/null
+++ b/assets/images/flags/tun.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/tur.svg b/assets/images/flags/tur.svg
new file mode 100644
index 0000000..e1f76ad
--- /dev/null
+++ b/assets/images/flags/tur.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/uru.svg b/assets/images/flags/uru.svg
new file mode 100644
index 0000000..533435a
--- /dev/null
+++ b/assets/images/flags/uru.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/usa.svg b/assets/images/flags/usa.svg
new file mode 100644
index 0000000..a3b6a85
--- /dev/null
+++ b/assets/images/flags/usa.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/flags/uzb.svg b/assets/images/flags/uzb.svg
new file mode 100644
index 0000000..cda4acb
--- /dev/null
+++ b/assets/images/flags/uzb.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/stadiums/akron.svg b/assets/images/stadiums/akron.svg
new file mode 100644
index 0000000..31d379e
--- /dev/null
+++ b/assets/images/stadiums/akron.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/allegiant.svg b/assets/images/stadiums/allegiant.svg
new file mode 100644
index 0000000..00b2345
--- /dev/null
+++ b/assets/images/stadiums/allegiant.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/arrowhead.svg b/assets/images/stadiums/arrowhead.svg
new file mode 100644
index 0000000..9c20063
--- /dev/null
+++ b/assets/images/stadiums/arrowhead.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/att.svg b/assets/images/stadiums/att.svg
new file mode 100644
index 0000000..5525fb7
--- /dev/null
+++ b/assets/images/stadiums/att.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/azteca.svg b/assets/images/stadiums/azteca.svg
new file mode 100644
index 0000000..ba17d01
--- /dev/null
+++ b/assets/images/stadiums/azteca.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/bbva.svg b/assets/images/stadiums/bbva.svg
new file mode 100644
index 0000000..cb5e43a
--- /dev/null
+++ b/assets/images/stadiums/bbva.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/bcplace.svg b/assets/images/stadiums/bcplace.svg
new file mode 100644
index 0000000..082bb71
--- /dev/null
+++ b/assets/images/stadiums/bcplace.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/bmo.svg b/assets/images/stadiums/bmo.svg
new file mode 100644
index 0000000..44b21ff
--- /dev/null
+++ b/assets/images/stadiums/bmo.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/campingworld.svg b/assets/images/stadiums/campingworld.svg
new file mode 100644
index 0000000..f276c95
--- /dev/null
+++ b/assets/images/stadiums/campingworld.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/commonwealth.svg b/assets/images/stadiums/commonwealth.svg
new file mode 100644
index 0000000..aea72b9
--- /dev/null
+++ b/assets/images/stadiums/commonwealth.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/cuauhtemoc.svg b/assets/images/stadiums/cuauhtemoc.svg
new file mode 100644
index 0000000..dd25824
--- /dev/null
+++ b/assets/images/stadiums/cuauhtemoc.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/empower.svg b/assets/images/stadiums/empower.svg
new file mode 100644
index 0000000..1b50463
--- /dev/null
+++ b/assets/images/stadiums/empower.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/gillette.svg b/assets/images/stadiums/gillette.svg
new file mode 100644
index 0000000..75d2270
--- /dev/null
+++ b/assets/images/stadiums/gillette.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/hardrock.svg b/assets/images/stadiums/hardrock.svg
new file mode 100644
index 0000000..9176a6d
--- /dev/null
+++ b/assets/images/stadiums/hardrock.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/jalisco.svg b/assets/images/stadiums/jalisco.svg
new file mode 100644
index 0000000..9e4395e
--- /dev/null
+++ b/assets/images/stadiums/jalisco.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/levis.svg b/assets/images/stadiums/levis.svg
new file mode 100644
index 0000000..43fb371
--- /dev/null
+++ b/assets/images/stadiums/levis.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/lincoln.svg b/assets/images/stadiums/lincoln.svg
new file mode 100644
index 0000000..db132ff
--- /dev/null
+++ b/assets/images/stadiums/lincoln.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/lumen.svg b/assets/images/stadiums/lumen.svg
new file mode 100644
index 0000000..9ba12f5
--- /dev/null
+++ b/assets/images/stadiums/lumen.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/mercedesbenz.svg b/assets/images/stadiums/mercedesbenz.svg
new file mode 100644
index 0000000..7671be3
--- /dev/null
+++ b/assets/images/stadiums/mercedesbenz.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/metlife.svg b/assets/images/stadiums/metlife.svg
new file mode 100644
index 0000000..dc4f7d3
--- /dev/null
+++ b/assets/images/stadiums/metlife.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/mtbank.svg b/assets/images/stadiums/mtbank.svg
new file mode 100644
index 0000000..7b3a30f
--- /dev/null
+++ b/assets/images/stadiums/mtbank.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/nrg.svg b/assets/images/stadiums/nrg.svg
new file mode 100644
index 0000000..de2c316
--- /dev/null
+++ b/assets/images/stadiums/nrg.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/olympic.svg b/assets/images/stadiums/olympic.svg
new file mode 100644
index 0000000..8614d29
--- /dev/null
+++ b/assets/images/stadiums/olympic.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/raymondjames.svg b/assets/images/stadiums/raymondjames.svg
new file mode 100644
index 0000000..d78c42d
--- /dev/null
+++ b/assets/images/stadiums/raymondjames.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/rosebowl.svg b/assets/images/stadiums/rosebowl.svg
new file mode 100644
index 0000000..05969b8
--- /dev/null
+++ b/assets/images/stadiums/rosebowl.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/sofi.svg b/assets/images/stadiums/sofi.svg
new file mode 100644
index 0000000..5a79d78
--- /dev/null
+++ b/assets/images/stadiums/sofi.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/soldier.svg b/assets/images/stadiums/soldier.svg
new file mode 100644
index 0000000..6de4091
--- /dev/null
+++ b/assets/images/stadiums/soldier.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/statefarm.svg b/assets/images/stadiums/statefarm.svg
new file mode 100644
index 0000000..be3d9e9
--- /dev/null
+++ b/assets/images/stadiums/statefarm.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/superdome.svg b/assets/images/stadiums/superdome.svg
new file mode 100644
index 0000000..58272c1
--- /dev/null
+++ b/assets/images/stadiums/superdome.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/images/stadiums/universitario.svg b/assets/images/stadiums/universitario.svg
new file mode 100644
index 0000000..a11f334
--- /dev/null
+++ b/assets/images/stadiums/universitario.svg
@@ -0,0 +1,15 @@
+
diff --git a/data/bracket-config.json b/data/bracket-config.json
new file mode 100644
index 0000000..9c09c4c
--- /dev/null
+++ b/data/bracket-config.json
@@ -0,0 +1,214 @@
+{
+ "round32": [
+ {
+ "id": "R32-1",
+ "home": {
+ "type": "group",
+ "ref": "A",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 1
+ }
+ },
+ {
+ "id": "R32-2",
+ "home": {
+ "type": "group",
+ "ref": "C",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "F",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-3",
+ "home": {
+ "type": "group",
+ "ref": "B",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 2
+ }
+ },
+ {
+ "id": "R32-4",
+ "home": {
+ "type": "group",
+ "ref": "D",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "E",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-5",
+ "home": {
+ "type": "group",
+ "ref": "E",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 3
+ }
+ },
+ {
+ "id": "R32-6",
+ "home": {
+ "type": "group",
+ "ref": "F",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "C",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-7",
+ "home": {
+ "type": "group",
+ "ref": "G",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 4
+ }
+ },
+ {
+ "id": "R32-8",
+ "home": {
+ "type": "group",
+ "ref": "H",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "J",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-9",
+ "home": {
+ "type": "group",
+ "ref": "I",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 5
+ }
+ },
+ {
+ "id": "R32-10",
+ "home": {
+ "type": "group",
+ "ref": "J",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "H",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-11",
+ "home": {
+ "type": "group",
+ "ref": "K",
+ "pos": 1
+ },
+ "away": {
+ "type": "third",
+ "slot": 6
+ }
+ },
+ {
+ "id": "R32-12",
+ "home": {
+ "type": "group",
+ "ref": "L",
+ "pos": 1
+ },
+ "away": {
+ "type": "group",
+ "ref": "K",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-13",
+ "home": {
+ "type": "group",
+ "ref": "A",
+ "pos": 2
+ },
+ "away": {
+ "type": "group",
+ "ref": "B",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-14",
+ "home": {
+ "type": "group",
+ "ref": "D",
+ "pos": 2
+ },
+ "away": {
+ "type": "third",
+ "slot": 7
+ }
+ },
+ {
+ "id": "R32-15",
+ "home": {
+ "type": "group",
+ "ref": "G",
+ "pos": 2
+ },
+ "away": {
+ "type": "group",
+ "ref": "I",
+ "pos": 2
+ }
+ },
+ {
+ "id": "R32-16",
+ "home": {
+ "type": "group",
+ "ref": "L",
+ "pos": 2
+ },
+ "away": {
+ "type": "third",
+ "slot": 8
+ }
+ }
+ ],
+ "thirdPlaceAssignment": {
+ "1": null,
+ "2": null,
+ "3": null,
+ "4": null,
+ "5": null,
+ "6": null,
+ "7": null,
+ "8": null
+ }
+}
diff --git a/data/groups.json b/data/groups.json
new file mode 100644
index 0000000..5669be6
--- /dev/null
+++ b/data/groups.json
@@ -0,0 +1,74 @@
+{
+ "A": [
+ "MEX",
+ "SUI",
+ "KOR",
+ "JAM"
+ ],
+ "B": [
+ "CAN",
+ "ESP",
+ "EGY",
+ "NZL"
+ ],
+ "C": [
+ "BRA",
+ "ENG",
+ "TUN",
+ "UZB"
+ ],
+ "D": [
+ "USA",
+ "NED",
+ "GHA",
+ "PAR"
+ ],
+ "E": [
+ "ARG",
+ "AUT",
+ "CMR",
+ "QAT"
+ ],
+ "F": [
+ "FRA",
+ "COL",
+ "NGA",
+ "AUS"
+ ],
+ "G": [
+ "GER",
+ "URU",
+ "ALG",
+ "JPN"
+ ],
+ "H": [
+ "POR",
+ "SRB",
+ "SEN",
+ "CRC"
+ ],
+ "I": [
+ "ITA",
+ "ECU",
+ "KSA",
+ "HON"
+ ],
+ "J": [
+ "BEL",
+ "POL",
+ "IRN",
+ "PAN"
+ ],
+ "K": [
+ "CRO",
+ "TUR",
+ "CIV",
+ "CHI"
+ ],
+ "L": [
+ "MAR",
+ "DEN",
+ "SCO",
+ "JOR"
+ ]
+}
diff --git a/data/matches.json b/data/matches.json
new file mode 100644
index 0000000..e46c3ad
--- /dev/null
+++ b/data/matches.json
@@ -0,0 +1,1010 @@
+[
+ {
+ "id": 1,
+ "phase": "Group A",
+ "date": "2026-06-11",
+ "time": "16:00",
+ "stadium": "Estadio Azteca",
+ "city": "Mexico City",
+ "homeTeam": "MEX",
+ "awayTeam": "SUI"
+ },
+ {
+ "id": 2,
+ "phase": "Group A",
+ "date": "2026-06-11",
+ "time": "19:00",
+ "stadium": "Estadio Azteca",
+ "city": "Mexico City",
+ "homeTeam": "KOR",
+ "awayTeam": "JAM"
+ },
+ {
+ "id": 3,
+ "phase": "Group B",
+ "date": "2026-06-11",
+ "time": "19:00",
+ "stadium": "Levi's Stadium",
+ "city": "San Francisco",
+ "homeTeam": "CAN",
+ "awayTeam": "ESP"
+ },
+ {
+ "id": 4,
+ "phase": "Group B",
+ "date": "2026-06-11",
+ "time": "22:00",
+ "stadium": "NRG Stadium",
+ "city": "Houston",
+ "homeTeam": "EGY",
+ "awayTeam": "NZL"
+ },
+ {
+ "id": 5,
+ "phase": "Group C",
+ "date": "2026-06-11",
+ "time": "22:00",
+ "stadium": "Raymond James Stadium",
+ "city": "Tampa",
+ "homeTeam": "BRA",
+ "awayTeam": "ENG"
+ },
+ {
+ "id": 6,
+ "phase": "Group C",
+ "date": "2026-06-11",
+ "time": "16:00",
+ "stadium": "BC Place",
+ "city": "Vancouver",
+ "homeTeam": "TUN",
+ "awayTeam": "UZB"
+ },
+ {
+ "id": 7,
+ "phase": "Group D",
+ "date": "2026-06-12",
+ "time": "16:00",
+ "stadium": "Estadio Jalisco",
+ "city": "Guadalajara",
+ "homeTeam": "USA",
+ "awayTeam": "NED"
+ },
+ {
+ "id": 8,
+ "phase": "Group D",
+ "date": "2026-06-12",
+ "time": "19:00",
+ "stadium": "Empower Field",
+ "city": "Denver",
+ "homeTeam": "GHA",
+ "awayTeam": "PAR"
+ },
+ {
+ "id": 9,
+ "phase": "Group E",
+ "date": "2026-06-12",
+ "time": "19:00",
+ "stadium": "Hard Rock Stadium",
+ "city": "Miami",
+ "homeTeam": "ARG",
+ "awayTeam": "AUT"
+ },
+ {
+ "id": 10,
+ "phase": "Group E",
+ "date": "2026-06-12",
+ "time": "22:00",
+ "stadium": "BMO Field",
+ "city": "Toronto",
+ "homeTeam": "CMR",
+ "awayTeam": "QAT"
+ },
+ {
+ "id": 11,
+ "phase": "Group F",
+ "date": "2026-06-12",
+ "time": "22:00",
+ "stadium": "Estadio Cuauhtemoc",
+ "city": "Puebla",
+ "homeTeam": "FRA",
+ "awayTeam": "COL"
+ },
+ {
+ "id": 12,
+ "phase": "Group F",
+ "date": "2026-06-12",
+ "time": "16:00",
+ "stadium": "Allegiant Stadium",
+ "city": "Las Vegas",
+ "homeTeam": "NGA",
+ "awayTeam": "AUS"
+ },
+ {
+ "id": 13,
+ "phase": "Group G",
+ "date": "2026-06-13",
+ "time": "16:00",
+ "stadium": "Caesars Superdome",
+ "city": "New Orleans",
+ "homeTeam": "GER",
+ "awayTeam": "URU"
+ },
+ {
+ "id": 14,
+ "phase": "Group G",
+ "date": "2026-06-13",
+ "time": "19:00",
+ "stadium": "Gillette Stadium",
+ "city": "Boston",
+ "homeTeam": "ALG",
+ "awayTeam": "JPN"
+ },
+ {
+ "id": 15,
+ "phase": "Group H",
+ "date": "2026-06-13",
+ "time": "19:00",
+ "stadium": "Estadio Akron",
+ "city": "Guadalajara",
+ "homeTeam": "POR",
+ "awayTeam": "SRB"
+ },
+ {
+ "id": 16,
+ "phase": "Group H",
+ "date": "2026-06-13",
+ "time": "22:00",
+ "stadium": "Lumen Field",
+ "city": "Seattle",
+ "homeTeam": "SEN",
+ "awayTeam": "CRC"
+ },
+ {
+ "id": 17,
+ "phase": "Group I",
+ "date": "2026-06-13",
+ "time": "22:00",
+ "stadium": "Arrowhead Stadium",
+ "city": "Kansas City",
+ "homeTeam": "ITA",
+ "awayTeam": "ECU"
+ },
+ {
+ "id": 18,
+ "phase": "Group I",
+ "date": "2026-06-13",
+ "time": "16:00",
+ "stadium": "MetLife Stadium",
+ "city": "New York",
+ "homeTeam": "KSA",
+ "awayTeam": "HON"
+ },
+ {
+ "id": 19,
+ "phase": "Group J",
+ "date": "2026-06-14",
+ "time": "16:00",
+ "stadium": "Commonwealth Stadium",
+ "city": "Edmonton",
+ "homeTeam": "BEL",
+ "awayTeam": "POL"
+ },
+ {
+ "id": 20,
+ "phase": "Group J",
+ "date": "2026-06-14",
+ "time": "19:00",
+ "stadium": "SoFi Stadium",
+ "city": "Los Angeles",
+ "homeTeam": "IRN",
+ "awayTeam": "PAN"
+ },
+ {
+ "id": 21,
+ "phase": "Group K",
+ "date": "2026-06-14",
+ "time": "19:00",
+ "stadium": "AT&T Stadium",
+ "city": "Dallas",
+ "homeTeam": "CRO",
+ "awayTeam": "TUR"
+ },
+ {
+ "id": 22,
+ "phase": "Group K",
+ "date": "2026-06-14",
+ "time": "22:00",
+ "stadium": "Camping World Stadium",
+ "city": "Orlando",
+ "homeTeam": "CIV",
+ "awayTeam": "CHI"
+ },
+ {
+ "id": 23,
+ "phase": "Group L",
+ "date": "2026-06-14",
+ "time": "22:00",
+ "stadium": "Olympic Stadium",
+ "city": "Montreal",
+ "homeTeam": "MAR",
+ "awayTeam": "DEN"
+ },
+ {
+ "id": 24,
+ "phase": "Group L",
+ "date": "2026-06-14",
+ "time": "16:00",
+ "stadium": "Estadio Universitario",
+ "city": "Monterrey",
+ "homeTeam": "SCO",
+ "awayTeam": "JOR"
+ },
+ {
+ "id": 25,
+ "phase": "Group A",
+ "date": "2026-06-16",
+ "time": "16:00",
+ "stadium": "State Farm Stadium",
+ "city": "Phoenix",
+ "homeTeam": "MEX",
+ "awayTeam": "KOR"
+ },
+ {
+ "id": 26,
+ "phase": "Group A",
+ "date": "2026-06-16",
+ "time": "19:00",
+ "stadium": "Mercedes-Benz Stadium",
+ "city": "Atlanta",
+ "homeTeam": "SUI",
+ "awayTeam": "JAM"
+ },
+ {
+ "id": 27,
+ "phase": "Group B",
+ "date": "2026-06-16",
+ "time": "19:00",
+ "stadium": "M&T Bank Stadium",
+ "city": "Baltimore",
+ "homeTeam": "CAN",
+ "awayTeam": "EGY"
+ },
+ {
+ "id": 28,
+ "phase": "Group B",
+ "date": "2026-06-16",
+ "time": "22:00",
+ "stadium": "Estadio BBVA",
+ "city": "Monterrey",
+ "homeTeam": "ESP",
+ "awayTeam": "NZL"
+ },
+ {
+ "id": 29,
+ "phase": "Group C",
+ "date": "2026-06-16",
+ "time": "22:00",
+ "stadium": "Rose Bowl",
+ "city": "Pasadena",
+ "homeTeam": "BRA",
+ "awayTeam": "TUN"
+ },
+ {
+ "id": 30,
+ "phase": "Group C",
+ "date": "2026-06-16",
+ "time": "16:00",
+ "stadium": "Soldier Field",
+ "city": "Chicago",
+ "homeTeam": "ENG",
+ "awayTeam": "UZB"
+ },
+ {
+ "id": 31,
+ "phase": "Group D",
+ "date": "2026-06-17",
+ "time": "16:00",
+ "stadium": "Lincoln Financial Field",
+ "city": "Philadelphia",
+ "homeTeam": "USA",
+ "awayTeam": "GHA"
+ },
+ {
+ "id": 32,
+ "phase": "Group D",
+ "date": "2026-06-17",
+ "time": "19:00",
+ "stadium": "Estadio Azteca",
+ "city": "Mexico City",
+ "homeTeam": "NED",
+ "awayTeam": "PAR"
+ },
+ {
+ "id": 33,
+ "phase": "Group E",
+ "date": "2026-06-17",
+ "time": "19:00",
+ "stadium": "Levi's Stadium",
+ "city": "San Francisco",
+ "homeTeam": "ARG",
+ "awayTeam": "CMR"
+ },
+ {
+ "id": 34,
+ "phase": "Group E",
+ "date": "2026-06-17",
+ "time": "22:00",
+ "stadium": "NRG Stadium",
+ "city": "Houston",
+ "homeTeam": "AUT",
+ "awayTeam": "QAT"
+ },
+ {
+ "id": 35,
+ "phase": "Group F",
+ "date": "2026-06-17",
+ "time": "22:00",
+ "stadium": "Raymond James Stadium",
+ "city": "Tampa",
+ "homeTeam": "FRA",
+ "awayTeam": "NGA"
+ },
+ {
+ "id": 36,
+ "phase": "Group F",
+ "date": "2026-06-17",
+ "time": "16:00",
+ "stadium": "BC Place",
+ "city": "Vancouver",
+ "homeTeam": "COL",
+ "awayTeam": "AUS"
+ },
+ {
+ "id": 37,
+ "phase": "Group G",
+ "date": "2026-06-18",
+ "time": "16:00",
+ "stadium": "Estadio Jalisco",
+ "city": "Guadalajara",
+ "homeTeam": "GER",
+ "awayTeam": "ALG"
+ },
+ {
+ "id": 38,
+ "phase": "Group G",
+ "date": "2026-06-18",
+ "time": "19:00",
+ "stadium": "Empower Field",
+ "city": "Denver",
+ "homeTeam": "URU",
+ "awayTeam": "JPN"
+ },
+ {
+ "id": 39,
+ "phase": "Group H",
+ "date": "2026-06-18",
+ "time": "19:00",
+ "stadium": "Hard Rock Stadium",
+ "city": "Miami",
+ "homeTeam": "POR",
+ "awayTeam": "SEN"
+ },
+ {
+ "id": 40,
+ "phase": "Group H",
+ "date": "2026-06-18",
+ "time": "22:00",
+ "stadium": "BMO Field",
+ "city": "Toronto",
+ "homeTeam": "SRB",
+ "awayTeam": "CRC"
+ },
+ {
+ "id": 41,
+ "phase": "Group I",
+ "date": "2026-06-18",
+ "time": "22:00",
+ "stadium": "Estadio Cuauhtemoc",
+ "city": "Puebla",
+ "homeTeam": "ITA",
+ "awayTeam": "KSA"
+ },
+ {
+ "id": 42,
+ "phase": "Group I",
+ "date": "2026-06-18",
+ "time": "16:00",
+ "stadium": "Allegiant Stadium",
+ "city": "Las Vegas",
+ "homeTeam": "ECU",
+ "awayTeam": "HON"
+ },
+ {
+ "id": 43,
+ "phase": "Group J",
+ "date": "2026-06-19",
+ "time": "16:00",
+ "stadium": "Caesars Superdome",
+ "city": "New Orleans",
+ "homeTeam": "BEL",
+ "awayTeam": "IRN"
+ },
+ {
+ "id": 44,
+ "phase": "Group J",
+ "date": "2026-06-19",
+ "time": "19:00",
+ "stadium": "Gillette Stadium",
+ "city": "Boston",
+ "homeTeam": "POL",
+ "awayTeam": "PAN"
+ },
+ {
+ "id": 45,
+ "phase": "Group K",
+ "date": "2026-06-19",
+ "time": "19:00",
+ "stadium": "Estadio Akron",
+ "city": "Guadalajara",
+ "homeTeam": "CRO",
+ "awayTeam": "CIV"
+ },
+ {
+ "id": 46,
+ "phase": "Group K",
+ "date": "2026-06-19",
+ "time": "22:00",
+ "stadium": "Lumen Field",
+ "city": "Seattle",
+ "homeTeam": "TUR",
+ "awayTeam": "CHI"
+ },
+ {
+ "id": 47,
+ "phase": "Group L",
+ "date": "2026-06-19",
+ "time": "22:00",
+ "stadium": "Arrowhead Stadium",
+ "city": "Kansas City",
+ "homeTeam": "MAR",
+ "awayTeam": "SCO"
+ },
+ {
+ "id": 48,
+ "phase": "Group L",
+ "date": "2026-06-19",
+ "time": "16:00",
+ "stadium": "MetLife Stadium",
+ "city": "New York",
+ "homeTeam": "DEN",
+ "awayTeam": "JOR"
+ },
+ {
+ "id": 49,
+ "phase": "Group A",
+ "date": "2026-06-21",
+ "time": "16:00",
+ "stadium": "Commonwealth Stadium",
+ "city": "Edmonton",
+ "homeTeam": "MEX",
+ "awayTeam": "JAM"
+ },
+ {
+ "id": 50,
+ "phase": "Group A",
+ "date": "2026-06-21",
+ "time": "16:00",
+ "stadium": "SoFi Stadium",
+ "city": "Los Angeles",
+ "homeTeam": "SUI",
+ "awayTeam": "KOR"
+ },
+ {
+ "id": 51,
+ "phase": "Group B",
+ "date": "2026-06-21",
+ "time": "19:00",
+ "stadium": "AT&T Stadium",
+ "city": "Dallas",
+ "homeTeam": "CAN",
+ "awayTeam": "NZL"
+ },
+ {
+ "id": 52,
+ "phase": "Group B",
+ "date": "2026-06-21",
+ "time": "19:00",
+ "stadium": "Camping World Stadium",
+ "city": "Orlando",
+ "homeTeam": "ESP",
+ "awayTeam": "EGY"
+ },
+ {
+ "id": 53,
+ "phase": "Group C",
+ "date": "2026-06-21",
+ "time": "22:00",
+ "stadium": "Olympic Stadium",
+ "city": "Montreal",
+ "homeTeam": "BRA",
+ "awayTeam": "UZB"
+ },
+ {
+ "id": 54,
+ "phase": "Group C",
+ "date": "2026-06-21",
+ "time": "22:00",
+ "stadium": "Estadio Universitario",
+ "city": "Monterrey",
+ "homeTeam": "ENG",
+ "awayTeam": "TUN"
+ },
+ {
+ "id": 55,
+ "phase": "Group D",
+ "date": "2026-06-22",
+ "time": "16:00",
+ "stadium": "State Farm Stadium",
+ "city": "Phoenix",
+ "homeTeam": "USA",
+ "awayTeam": "PAR"
+ },
+ {
+ "id": 56,
+ "phase": "Group D",
+ "date": "2026-06-22",
+ "time": "16:00",
+ "stadium": "Mercedes-Benz Stadium",
+ "city": "Atlanta",
+ "homeTeam": "NED",
+ "awayTeam": "GHA"
+ },
+ {
+ "id": 57,
+ "phase": "Group E",
+ "date": "2026-06-22",
+ "time": "19:00",
+ "stadium": "M&T Bank Stadium",
+ "city": "Baltimore",
+ "homeTeam": "ARG",
+ "awayTeam": "QAT"
+ },
+ {
+ "id": 58,
+ "phase": "Group E",
+ "date": "2026-06-22",
+ "time": "19:00",
+ "stadium": "Estadio BBVA",
+ "city": "Monterrey",
+ "homeTeam": "AUT",
+ "awayTeam": "CMR"
+ },
+ {
+ "id": 59,
+ "phase": "Group F",
+ "date": "2026-06-22",
+ "time": "22:00",
+ "stadium": "Rose Bowl",
+ "city": "Pasadena",
+ "homeTeam": "FRA",
+ "awayTeam": "AUS"
+ },
+ {
+ "id": 60,
+ "phase": "Group F",
+ "date": "2026-06-22",
+ "time": "22:00",
+ "stadium": "Soldier Field",
+ "city": "Chicago",
+ "homeTeam": "COL",
+ "awayTeam": "NGA"
+ },
+ {
+ "id": 61,
+ "phase": "Group G",
+ "date": "2026-06-23",
+ "time": "16:00",
+ "stadium": "Lincoln Financial Field",
+ "city": "Philadelphia",
+ "homeTeam": "GER",
+ "awayTeam": "JPN"
+ },
+ {
+ "id": 62,
+ "phase": "Group G",
+ "date": "2026-06-23",
+ "time": "16:00",
+ "stadium": "Estadio Azteca",
+ "city": "Mexico City",
+ "homeTeam": "URU",
+ "awayTeam": "ALG"
+ },
+ {
+ "id": 63,
+ "phase": "Group H",
+ "date": "2026-06-23",
+ "time": "19:00",
+ "stadium": "Levi's Stadium",
+ "city": "San Francisco",
+ "homeTeam": "POR",
+ "awayTeam": "CRC"
+ },
+ {
+ "id": 64,
+ "phase": "Group H",
+ "date": "2026-06-23",
+ "time": "19:00",
+ "stadium": "NRG Stadium",
+ "city": "Houston",
+ "homeTeam": "SRB",
+ "awayTeam": "SEN"
+ },
+ {
+ "id": 65,
+ "phase": "Group I",
+ "date": "2026-06-23",
+ "time": "22:00",
+ "stadium": "Raymond James Stadium",
+ "city": "Tampa",
+ "homeTeam": "ITA",
+ "awayTeam": "HON"
+ },
+ {
+ "id": 66,
+ "phase": "Group I",
+ "date": "2026-06-23",
+ "time": "22:00",
+ "stadium": "BC Place",
+ "city": "Vancouver",
+ "homeTeam": "ECU",
+ "awayTeam": "KSA"
+ },
+ {
+ "id": 67,
+ "phase": "Group J",
+ "date": "2026-06-24",
+ "time": "16:00",
+ "stadium": "Estadio Jalisco",
+ "city": "Guadalajara",
+ "homeTeam": "BEL",
+ "awayTeam": "PAN"
+ },
+ {
+ "id": 68,
+ "phase": "Group J",
+ "date": "2026-06-24",
+ "time": "16:00",
+ "stadium": "Empower Field",
+ "city": "Denver",
+ "homeTeam": "POL",
+ "awayTeam": "IRN"
+ },
+ {
+ "id": 69,
+ "phase": "Group K",
+ "date": "2026-06-24",
+ "time": "19:00",
+ "stadium": "Hard Rock Stadium",
+ "city": "Miami",
+ "homeTeam": "CRO",
+ "awayTeam": "CHI"
+ },
+ {
+ "id": 70,
+ "phase": "Group K",
+ "date": "2026-06-24",
+ "time": "19:00",
+ "stadium": "BMO Field",
+ "city": "Toronto",
+ "homeTeam": "TUR",
+ "awayTeam": "CIV"
+ },
+ {
+ "id": 71,
+ "phase": "Group L",
+ "date": "2026-06-24",
+ "time": "22:00",
+ "stadium": "Estadio Cuauhtemoc",
+ "city": "Puebla",
+ "homeTeam": "MAR",
+ "awayTeam": "JOR"
+ },
+ {
+ "id": 72,
+ "phase": "Group L",
+ "date": "2026-06-24",
+ "time": "22:00",
+ "stadium": "Allegiant Stadium",
+ "city": "Las Vegas",
+ "homeTeam": "DEN",
+ "awayTeam": "SCO"
+ },
+ {
+ "id": 73,
+ "phase": "Round of 32",
+ "date": "2026-06-29",
+ "time": "13:00",
+ "stadium": "Caesars Superdome",
+ "city": "New Orleans",
+ "bracketRef": "R32-1"
+ },
+ {
+ "id": 74,
+ "phase": "Round of 32",
+ "date": "2026-06-29",
+ "time": "16:00",
+ "stadium": "Gillette Stadium",
+ "city": "Boston",
+ "bracketRef": "R32-2"
+ },
+ {
+ "id": 75,
+ "phase": "Round of 32",
+ "date": "2026-06-29",
+ "time": "19:00",
+ "stadium": "Estadio Akron",
+ "city": "Guadalajara",
+ "bracketRef": "R32-3"
+ },
+ {
+ "id": 76,
+ "phase": "Round of 32",
+ "date": "2026-06-29",
+ "time": "22:00",
+ "stadium": "Lumen Field",
+ "city": "Seattle",
+ "bracketRef": "R32-4"
+ },
+ {
+ "id": 77,
+ "phase": "Round of 32",
+ "date": "2026-06-30",
+ "time": "13:00",
+ "stadium": "Arrowhead Stadium",
+ "city": "Kansas City",
+ "bracketRef": "R32-5"
+ },
+ {
+ "id": 78,
+ "phase": "Round of 32",
+ "date": "2026-06-30",
+ "time": "16:00",
+ "stadium": "MetLife Stadium",
+ "city": "New York",
+ "bracketRef": "R32-6"
+ },
+ {
+ "id": 79,
+ "phase": "Round of 32",
+ "date": "2026-06-30",
+ "time": "19:00",
+ "stadium": "Commonwealth Stadium",
+ "city": "Edmonton",
+ "bracketRef": "R32-7"
+ },
+ {
+ "id": 80,
+ "phase": "Round of 32",
+ "date": "2026-06-30",
+ "time": "22:00",
+ "stadium": "SoFi Stadium",
+ "city": "Los Angeles",
+ "bracketRef": "R32-8"
+ },
+ {
+ "id": 81,
+ "phase": "Round of 32",
+ "date": "2026-07-01",
+ "time": "13:00",
+ "stadium": "AT&T Stadium",
+ "city": "Dallas",
+ "bracketRef": "R32-9"
+ },
+ {
+ "id": 82,
+ "phase": "Round of 32",
+ "date": "2026-07-01",
+ "time": "16:00",
+ "stadium": "Camping World Stadium",
+ "city": "Orlando",
+ "bracketRef": "R32-10"
+ },
+ {
+ "id": 83,
+ "phase": "Round of 32",
+ "date": "2026-07-01",
+ "time": "19:00",
+ "stadium": "Olympic Stadium",
+ "city": "Montreal",
+ "bracketRef": "R32-11"
+ },
+ {
+ "id": 84,
+ "phase": "Round of 32",
+ "date": "2026-07-01",
+ "time": "22:00",
+ "stadium": "Estadio Universitario",
+ "city": "Monterrey",
+ "bracketRef": "R32-12"
+ },
+ {
+ "id": 85,
+ "phase": "Round of 32",
+ "date": "2026-07-02",
+ "time": "13:00",
+ "stadium": "State Farm Stadium",
+ "city": "Phoenix",
+ "bracketRef": "R32-13"
+ },
+ {
+ "id": 86,
+ "phase": "Round of 32",
+ "date": "2026-07-02",
+ "time": "16:00",
+ "stadium": "Mercedes-Benz Stadium",
+ "city": "Atlanta",
+ "bracketRef": "R32-14"
+ },
+ {
+ "id": 87,
+ "phase": "Round of 32",
+ "date": "2026-07-02",
+ "time": "19:00",
+ "stadium": "M&T Bank Stadium",
+ "city": "Baltimore",
+ "bracketRef": "R32-15"
+ },
+ {
+ "id": 88,
+ "phase": "Round of 32",
+ "date": "2026-07-02",
+ "time": "22:00",
+ "stadium": "Estadio BBVA",
+ "city": "Monterrey",
+ "bracketRef": "R32-16"
+ },
+ {
+ "id": 89,
+ "phase": "Round of 16",
+ "date": "2026-07-04",
+ "time": "17:00",
+ "stadium": "Rose Bowl",
+ "city": "Pasadena",
+ "bracketRef": "R16-1"
+ },
+ {
+ "id": 90,
+ "phase": "Round of 16",
+ "date": "2026-07-04",
+ "time": "21:00",
+ "stadium": "Soldier Field",
+ "city": "Chicago",
+ "bracketRef": "R16-2"
+ },
+ {
+ "id": 91,
+ "phase": "Round of 16",
+ "date": "2026-07-05",
+ "time": "17:00",
+ "stadium": "Lincoln Financial Field",
+ "city": "Philadelphia",
+ "bracketRef": "R16-3"
+ },
+ {
+ "id": 92,
+ "phase": "Round of 16",
+ "date": "2026-07-05",
+ "time": "21:00",
+ "stadium": "Estadio Azteca",
+ "city": "Mexico City",
+ "bracketRef": "R16-4"
+ },
+ {
+ "id": 93,
+ "phase": "Round of 16",
+ "date": "2026-07-06",
+ "time": "17:00",
+ "stadium": "Levi's Stadium",
+ "city": "San Francisco",
+ "bracketRef": "R16-5"
+ },
+ {
+ "id": 94,
+ "phase": "Round of 16",
+ "date": "2026-07-06",
+ "time": "21:00",
+ "stadium": "NRG Stadium",
+ "city": "Houston",
+ "bracketRef": "R16-6"
+ },
+ {
+ "id": 95,
+ "phase": "Round of 16",
+ "date": "2026-07-07",
+ "time": "17:00",
+ "stadium": "Raymond James Stadium",
+ "city": "Tampa",
+ "bracketRef": "R16-7"
+ },
+ {
+ "id": 96,
+ "phase": "Round of 16",
+ "date": "2026-07-07",
+ "time": "21:00",
+ "stadium": "BC Place",
+ "city": "Vancouver",
+ "bracketRef": "R16-8"
+ },
+ {
+ "id": 97,
+ "phase": "Quarterfinals",
+ "date": "2026-07-09",
+ "time": "17:00",
+ "stadium": "Estadio Jalisco",
+ "city": "Guadalajara",
+ "bracketRef": "QF-1"
+ },
+ {
+ "id": 98,
+ "phase": "Quarterfinals",
+ "date": "2026-07-09",
+ "time": "21:00",
+ "stadium": "Empower Field",
+ "city": "Denver",
+ "bracketRef": "QF-2"
+ },
+ {
+ "id": 99,
+ "phase": "Quarterfinals",
+ "date": "2026-07-10",
+ "time": "17:00",
+ "stadium": "Hard Rock Stadium",
+ "city": "Miami",
+ "bracketRef": "QF-3"
+ },
+ {
+ "id": 100,
+ "phase": "Quarterfinals",
+ "date": "2026-07-10",
+ "time": "21:00",
+ "stadium": "BMO Field",
+ "city": "Toronto",
+ "bracketRef": "QF-4"
+ },
+ {
+ "id": 101,
+ "phase": "Semifinals",
+ "date": "2026-07-14",
+ "time": "21:00",
+ "stadium": "Estadio Cuauhtemoc",
+ "city": "Puebla",
+ "bracketRef": "SF-1"
+ },
+ {
+ "id": 102,
+ "phase": "Semifinals",
+ "date": "2026-07-15",
+ "time": "21:00",
+ "stadium": "Allegiant Stadium",
+ "city": "Las Vegas",
+ "bracketRef": "SF-2"
+ },
+ {
+ "id": 103,
+ "phase": "Third Place",
+ "date": "2026-07-18",
+ "time": "17:00",
+ "stadium": "Caesars Superdome",
+ "city": "New Orleans",
+ "bracketRef": "THIRD-PLACE"
+ },
+ {
+ "id": 104,
+ "phase": "Final",
+ "date": "2026-07-19",
+ "time": "19:00",
+ "stadium": "MetLife Stadium",
+ "city": "New York",
+ "bracketRef": "FINAL"
+ }
+]
diff --git a/data/results.json b/data/results.json
new file mode 100644
index 0000000..611bfdd
--- /dev/null
+++ b/data/results.json
@@ -0,0 +1,630 @@
+[
+ {
+ "matchId": 1,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 2,
+ "homeScore": 1,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 3,
+ "homeScore": 3,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 4,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 5,
+ "homeScore": 4,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 6,
+ "homeScore": 0,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 7,
+ "homeScore": 1,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 8,
+ "homeScore": 2,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 9,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 10,
+ "homeScore": 0,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 11,
+ "homeScore": 4,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 12,
+ "homeScore": 2,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 13,
+ "homeScore": 3,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 14,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 15,
+ "homeScore": 3,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 16,
+ "homeScore": 1,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 17,
+ "homeScore": 2,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 18,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 19,
+ "homeScore": 4,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 20,
+ "homeScore": 2,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 21,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 22,
+ "homeScore": 4,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 23,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 24,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 25,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 26,
+ "homeScore": 4,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 27,
+ "homeScore": 2,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 28,
+ "homeScore": 3,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 29,
+ "homeScore": 4,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 30,
+ "homeScore": 0,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 31,
+ "homeScore": 2,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 32,
+ "homeScore": 1,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 33,
+ "homeScore": 0,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 34,
+ "homeScore": 1,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 35,
+ "homeScore": 3,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 36,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 37,
+ "homeScore": 2,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 38,
+ "homeScore": 1,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 39,
+ "homeScore": 4,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 40,
+ "homeScore": 4,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 41,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 42,
+ "homeScore": 3,
+ "awayScore": 2,
+ "status": "finished"
+ },
+ {
+ "matchId": 43,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 44,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 45,
+ "homeScore": 3,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 46,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 47,
+ "homeScore": 2,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 48,
+ "homeScore": 0,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 49,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 50,
+ "homeScore": 4,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 51,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 52,
+ "homeScore": 4,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 53,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 54,
+ "homeScore": 3,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 55,
+ "homeScore": 0,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 56,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 57,
+ "homeScore": 4,
+ "awayScore": 3,
+ "status": "finished"
+ },
+ {
+ "matchId": 58,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 59,
+ "homeScore": 2,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 60,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished"
+ },
+ {
+ "matchId": 61,
+ "homeScore": 1,
+ "awayScore": 0,
+ "status": "live"
+ },
+ {
+ "matchId": 62,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 63,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 64,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 65,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 66,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 67,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 68,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 69,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 70,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 71,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 72,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 73,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 74,
+ "homeScore": 1,
+ "awayScore": 1,
+ "status": "finished",
+ "penalties": {
+ "home": 4,
+ "away": 3
+ }
+ },
+ {
+ "matchId": 75,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 76,
+ "homeScore": 2,
+ "awayScore": 0,
+ "status": "finished"
+ },
+ {
+ "matchId": 77,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 78,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 79,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 80,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 81,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 82,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 83,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 84,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 85,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 86,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 87,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 88,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 89,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 90,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 91,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 92,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 93,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 94,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 95,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 96,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 97,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 98,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 99,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 100,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 101,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 102,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 103,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ },
+ {
+ "matchId": 104,
+ "homeScore": null,
+ "awayScore": null,
+ "status": "scheduled"
+ }
+]
diff --git a/data/stadiums.json b/data/stadiums.json
new file mode 100644
index 0000000..5677336
--- /dev/null
+++ b/data/stadiums.json
@@ -0,0 +1,242 @@
+[
+ {
+ "id": 1,
+ "name": "Estadio Azteca",
+ "city": "Mexico City",
+ "capacity": 87000,
+ "image": "stadiums/azteca.svg",
+ "timezone": "America/Mexico_City"
+ },
+ {
+ "id": 2,
+ "name": "Estadio Akron",
+ "city": "Guadalajara",
+ "capacity": 49850,
+ "image": "stadiums/akron.svg",
+ "timezone": "America/Mexico_City"
+ },
+ {
+ "id": 3,
+ "name": "Estadio BBVA",
+ "city": "Monterrey",
+ "capacity": 53500,
+ "image": "stadiums/bbva.svg",
+ "timezone": "America/Monterrey"
+ },
+ {
+ "id": 4,
+ "name": "Estadio Cuauhtemoc",
+ "city": "Puebla",
+ "capacity": 51726,
+ "image": "stadiums/cuauhtemoc.svg",
+ "timezone": "America/Mexico_City"
+ },
+ {
+ "id": 5,
+ "name": "Estadio Universitario",
+ "city": "Monterrey",
+ "capacity": 42000,
+ "image": "stadiums/universitario.svg",
+ "timezone": "America/Monterrey"
+ },
+ {
+ "id": 6,
+ "name": "Estadio Jalisco",
+ "city": "Guadalajara",
+ "capacity": 55020,
+ "image": "stadiums/jalisco.svg",
+ "timezone": "America/Mexico_City"
+ },
+ {
+ "id": 7,
+ "name": "SoFi Stadium",
+ "city": "Los Angeles",
+ "capacity": 70240,
+ "image": "stadiums/sofi.svg",
+ "timezone": "America/Los_Angeles"
+ },
+ {
+ "id": 8,
+ "name": "Levi's Stadium",
+ "city": "San Francisco",
+ "capacity": 68500,
+ "image": "stadiums/levis.svg",
+ "timezone": "America/Los_Angeles"
+ },
+ {
+ "id": 9,
+ "name": "Lumen Field",
+ "city": "Seattle",
+ "capacity": 69000,
+ "image": "stadiums/lumen.svg",
+ "timezone": "America/Los_Angeles"
+ },
+ {
+ "id": 10,
+ "name": "Rose Bowl",
+ "city": "Pasadena",
+ "capacity": 89702,
+ "image": "stadiums/rosebowl.svg",
+ "timezone": "America/Los_Angeles"
+ },
+ {
+ "id": 11,
+ "name": "Allegiant Stadium",
+ "city": "Las Vegas",
+ "capacity": 65000,
+ "image": "stadiums/allegiant.svg",
+ "timezone": "America/Los_Angeles"
+ },
+ {
+ "id": 12,
+ "name": "State Farm Stadium",
+ "city": "Phoenix",
+ "capacity": 63400,
+ "image": "stadiums/statefarm.svg",
+ "timezone": "America/Phoenix"
+ },
+ {
+ "id": 13,
+ "name": "Empower Field",
+ "city": "Denver",
+ "capacity": 76125,
+ "image": "stadiums/empower.svg",
+ "timezone": "America/Denver"
+ },
+ {
+ "id": 14,
+ "name": "AT&T Stadium",
+ "city": "Dallas",
+ "capacity": 80000,
+ "image": "stadiums/att.svg",
+ "timezone": "America/Chicago"
+ },
+ {
+ "id": 15,
+ "name": "NRG Stadium",
+ "city": "Houston",
+ "capacity": 72220,
+ "image": "stadiums/nrg.svg",
+ "timezone": "America/Chicago"
+ },
+ {
+ "id": 16,
+ "name": "Arrowhead Stadium",
+ "city": "Kansas City",
+ "capacity": 76416,
+ "image": "stadiums/arrowhead.svg",
+ "timezone": "America/Chicago"
+ },
+ {
+ "id": 17,
+ "name": "Soldier Field",
+ "city": "Chicago",
+ "capacity": 61500,
+ "image": "stadiums/soldier.svg",
+ "timezone": "America/Chicago"
+ },
+ {
+ "id": 18,
+ "name": "Caesars Superdome",
+ "city": "New Orleans",
+ "capacity": 73208,
+ "image": "stadiums/superdome.svg",
+ "timezone": "America/Chicago"
+ },
+ {
+ "id": 19,
+ "name": "Mercedes-Benz Stadium",
+ "city": "Atlanta",
+ "capacity": 71000,
+ "image": "stadiums/mercedesbenz.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 20,
+ "name": "Hard Rock Stadium",
+ "city": "Miami",
+ "capacity": 64767,
+ "image": "stadiums/hardrock.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 21,
+ "name": "Camping World Stadium",
+ "city": "Orlando",
+ "capacity": 60219,
+ "image": "stadiums/campingworld.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 22,
+ "name": "Raymond James Stadium",
+ "city": "Tampa",
+ "capacity": 65890,
+ "image": "stadiums/raymondjames.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 23,
+ "name": "MetLife Stadium",
+ "city": "New York",
+ "capacity": 82500,
+ "image": "stadiums/metlife.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 24,
+ "name": "Lincoln Financial Field",
+ "city": "Philadelphia",
+ "capacity": 69796,
+ "image": "stadiums/lincoln.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 25,
+ "name": "Gillette Stadium",
+ "city": "Boston",
+ "capacity": 65878,
+ "image": "stadiums/gillette.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 26,
+ "name": "M&T Bank Stadium",
+ "city": "Baltimore",
+ "capacity": 71008,
+ "image": "stadiums/mtbank.svg",
+ "timezone": "America/New_York"
+ },
+ {
+ "id": 27,
+ "name": "BMO Field",
+ "city": "Toronto",
+ "capacity": 45736,
+ "image": "stadiums/bmo.svg",
+ "timezone": "America/Toronto"
+ },
+ {
+ "id": 28,
+ "name": "Olympic Stadium",
+ "city": "Montreal",
+ "capacity": 56040,
+ "image": "stadiums/olympic.svg",
+ "timezone": "America/Toronto"
+ },
+ {
+ "id": 29,
+ "name": "BC Place",
+ "city": "Vancouver",
+ "capacity": 54500,
+ "image": "stadiums/bcplace.svg",
+ "timezone": "America/Vancouver"
+ },
+ {
+ "id": 30,
+ "name": "Commonwealth Stadium",
+ "city": "Edmonton",
+ "capacity": 56302,
+ "image": "stadiums/commonwealth.svg",
+ "timezone": "America/Edmonton"
+ }
+]
diff --git a/data/teams.json b/data/teams.json
new file mode 100644
index 0000000..bb65e69
--- /dev/null
+++ b/data/teams.json
@@ -0,0 +1,242 @@
+[
+ {
+ "id": "MEX",
+ "name": "Mexico",
+ "flag": "flags/mex.svg"
+ },
+ {
+ "id": "USA",
+ "name": "United States",
+ "flag": "flags/usa.svg"
+ },
+ {
+ "id": "CAN",
+ "name": "Canada",
+ "flag": "flags/can.svg"
+ },
+ {
+ "id": "BRA",
+ "name": "Brazil",
+ "flag": "flags/bra.svg"
+ },
+ {
+ "id": "ARG",
+ "name": "Argentina",
+ "flag": "flags/arg.svg"
+ },
+ {
+ "id": "URU",
+ "name": "Uruguay",
+ "flag": "flags/uru.svg"
+ },
+ {
+ "id": "COL",
+ "name": "Colombia",
+ "flag": "flags/col.svg"
+ },
+ {
+ "id": "ECU",
+ "name": "Ecuador",
+ "flag": "flags/ecu.svg"
+ },
+ {
+ "id": "PAR",
+ "name": "Paraguay",
+ "flag": "flags/par.svg"
+ },
+ {
+ "id": "CHI",
+ "name": "Chile",
+ "flag": "flags/chi.svg"
+ },
+ {
+ "id": "FRA",
+ "name": "France",
+ "flag": "flags/fra.svg"
+ },
+ {
+ "id": "ENG",
+ "name": "England",
+ "flag": "flags/eng.svg"
+ },
+ {
+ "id": "ESP",
+ "name": "Spain",
+ "flag": "flags/esp.svg"
+ },
+ {
+ "id": "GER",
+ "name": "Germany",
+ "flag": "flags/ger.svg"
+ },
+ {
+ "id": "POR",
+ "name": "Portugal",
+ "flag": "flags/por.svg"
+ },
+ {
+ "id": "NED",
+ "name": "Netherlands",
+ "flag": "flags/ned.svg"
+ },
+ {
+ "id": "BEL",
+ "name": "Belgium",
+ "flag": "flags/bel.svg"
+ },
+ {
+ "id": "ITA",
+ "name": "Italy",
+ "flag": "flags/ita.svg"
+ },
+ {
+ "id": "CRO",
+ "name": "Croatia",
+ "flag": "flags/cro.svg"
+ },
+ {
+ "id": "SUI",
+ "name": "Switzerland",
+ "flag": "flags/sui.svg"
+ },
+ {
+ "id": "DEN",
+ "name": "Denmark",
+ "flag": "flags/den.svg"
+ },
+ {
+ "id": "AUT",
+ "name": "Austria",
+ "flag": "flags/aut.svg"
+ },
+ {
+ "id": "POL",
+ "name": "Poland",
+ "flag": "flags/pol.svg"
+ },
+ {
+ "id": "SRB",
+ "name": "Serbia",
+ "flag": "flags/srb.svg"
+ },
+ {
+ "id": "TUR",
+ "name": "Turkey",
+ "flag": "flags/tur.svg"
+ },
+ {
+ "id": "SCO",
+ "name": "Scotland",
+ "flag": "flags/sco.svg"
+ },
+ {
+ "id": "PAN",
+ "name": "Panama",
+ "flag": "flags/pan.svg"
+ },
+ {
+ "id": "CRC",
+ "name": "Costa Rica",
+ "flag": "flags/crc.svg"
+ },
+ {
+ "id": "JAM",
+ "name": "Jamaica",
+ "flag": "flags/jam.svg"
+ },
+ {
+ "id": "HON",
+ "name": "Honduras",
+ "flag": "flags/hon.svg"
+ },
+ {
+ "id": "JPN",
+ "name": "Japan",
+ "flag": "flags/jpn.svg"
+ },
+ {
+ "id": "KOR",
+ "name": "South Korea",
+ "flag": "flags/kor.svg"
+ },
+ {
+ "id": "AUS",
+ "name": "Australia",
+ "flag": "flags/aus.svg"
+ },
+ {
+ "id": "IRN",
+ "name": "Iran",
+ "flag": "flags/irn.svg"
+ },
+ {
+ "id": "KSA",
+ "name": "Saudi Arabia",
+ "flag": "flags/ksa.svg"
+ },
+ {
+ "id": "QAT",
+ "name": "Qatar",
+ "flag": "flags/qat.svg"
+ },
+ {
+ "id": "UZB",
+ "name": "Uzbekistan",
+ "flag": "flags/uzb.svg"
+ },
+ {
+ "id": "JOR",
+ "name": "Jordan",
+ "flag": "flags/jor.svg"
+ },
+ {
+ "id": "MAR",
+ "name": "Morocco",
+ "flag": "flags/mar.svg"
+ },
+ {
+ "id": "SEN",
+ "name": "Senegal",
+ "flag": "flags/sen.svg"
+ },
+ {
+ "id": "NGA",
+ "name": "Nigeria",
+ "flag": "flags/nga.svg"
+ },
+ {
+ "id": "EGY",
+ "name": "Egypt",
+ "flag": "flags/egy.svg"
+ },
+ {
+ "id": "ALG",
+ "name": "Algeria",
+ "flag": "flags/alg.svg"
+ },
+ {
+ "id": "TUN",
+ "name": "Tunisia",
+ "flag": "flags/tun.svg"
+ },
+ {
+ "id": "GHA",
+ "name": "Ghana",
+ "flag": "flags/gha.svg"
+ },
+ {
+ "id": "CIV",
+ "name": "Ivory Coast",
+ "flag": "flags/civ.svg"
+ },
+ {
+ "id": "CMR",
+ "name": "Cameroon",
+ "flag": "flags/cmr.svg"
+ },
+ {
+ "id": "NZL",
+ "name": "New Zealand",
+ "flag": "flags/nzl.svg"
+ }
+]