diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..d4ca079dc2cbcff9f82a0f462726b52217ad8e37
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.idea
+frontend/yarn.lock
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/DB/db_script-v1.1.sql b/DB/db_script-v1.1.sql
new file mode 100644
index 0000000000000000000000000000000000000000..dc38a09c5fdff8316a707b2fb733a6129444c784
--- /dev/null
+++ b/DB/db_script-v1.1.sql
@@ -0,0 +1,78 @@
+CREATE SCHEMA IF NOT EXISTS aswi;
+
+CREATE  TABLE aswi."catalog" ( 
+	id                   uuid  NOT NULL  ,
+	name                 varchar(100)  NOT NULL  ,
+	certainty            integer    ,
+	latitude             double precision    ,
+	longitude            double precision    ,
+	CONSTRAINT pk_katalog PRIMARY KEY ( id )
+ );
+
+CREATE  TABLE aswi.countries ( 
+	name                 varchar(100)  NOT NULL  ,
+	catalog_id           uuid  NOT NULL  ,
+	CONSTRAINT pk_countries PRIMARY KEY ( name )
+ );
+
+CREATE  TABLE aswi.types ( 
+	"type"               varchar(100)  NOT NULL  ,
+	CONSTRAINT pk_types PRIMARY KEY ( "type" )
+ );
+
+CREATE  TABLE aswi.users ( 
+	name                 varchar(100)    ,
+	email                varchar(100)  NOT NULL  ,
+	"password"           varchar(128)  NOT NULL  ,
+	is_admin             bit DEFAULT 0   ,
+	CONSTRAINT pk_users PRIMARY KEY ( email )
+ );
+
+CREATE  TABLE aswi.written_forms ( 
+	form                 varchar(100)  NOT NULL  ,
+	catalog_id           uuid  NOT NULL  ,
+	CONSTRAINT pk_written_forms PRIMARY KEY ( form, catalog_id )
+ );
+
+CREATE  TABLE aswi.alternative_names ( 
+	catalog_id           uuid  NOT NULL  ,
+	name                 varchar(100)  NOT NULL  ,
+	CONSTRAINT pk_alternative_names PRIMARY KEY ( catalog_id, name )
+ );
+
+CREATE  TABLE aswi.bibliography ( 
+	"source"             varchar(150)  NOT NULL  ,
+	catalog_id           uuid  NOT NULL  ,
+	CONSTRAINT pk_bibliography PRIMARY KEY ( "source", catalog_id )
+ );
+
+CREATE  TABLE aswi.catalog_type ( 
+	catalog_id           uuid  NOT NULL  ,
+	"type"               uuid  NOT NULL  ,
+	CONSTRAINT pk_catalog_type PRIMARY KEY ( catalog_id, "type" )
+ );
+
+ALTER TABLE aswi.alternative_names ADD CONSTRAINT fk_catalog FOREIGN KEY ( catalog_id ) REFERENCES aswi."catalog"( id ) ON DELETE CASCADE;
+
+ALTER TABLE aswi.bibliography ADD CONSTRAINT fk_bibliography_catalog FOREIGN KEY ( catalog_id ) REFERENCES aswi."catalog"( id );
+
+ALTER TABLE aswi.catalog_type ADD CONSTRAINT fk_catalog FOREIGN KEY ( catalog_id ) REFERENCES aswi."catalog"( id );
+
+ALTER TABLE aswi.catalog_type ADD CONSTRAINT fk_type_id FOREIGN KEY (  ) REFERENCES aswi.types(  );
+
+ALTER TABLE aswi.countries ADD CONSTRAINT fk_countries_catalog FOREIGN KEY ( catalog_id ) REFERENCES aswi."catalog"( id );
+
+ALTER TABLE aswi.written_forms ADD CONSTRAINT fk_written_forms_catalog FOREIGN KEY ( catalog_id ) REFERENCES aswi."catalog"( id );
+
+COMMENT ON TABLE aswi."catalog" IS 'Catalog with geografical terms';
+
+COMMENT ON COLUMN aswi."catalog".name IS 'Name of the geografical term';
+
+COMMENT ON COLUMN aswi."catalog".latitude IS 'Geografical latitude';
+
+COMMENT ON COLUMN aswi."catalog".longitude IS 'Geografical longitude';
+
+COMMENT ON TABLE aswi.users IS 'Table to store different application users';
+
+COMMENT ON COLUMN aswi.users.is_admin IS 'Logical value if the user has admin privileges';
+
diff --git a/DB/model-v1.1.png b/DB/model-v1.1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9bec5e205123826b54f37f3e7c50383c119c5cdf
Binary files /dev/null and b/DB/model-v1.1.png differ
diff --git a/backend/.gitignore b/backend/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..549e00a2a96fa9d7c5dbc9859664a78d980158c2
--- /dev/null
+++ b/backend/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/backend/AssyrianProject-AllNoDupl-22-03-28.csv b/backend/AssyrianProject-AllNoDupl-22-03-28.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b073b72be49e447deaf6359f006c62ad32b96147
--- /dev/null
+++ b/backend/AssyrianProject-AllNoDupl-22-03-28.csv
@@ -0,0 +1,1086 @@
+"order","name","alt","cer","lat","lon","writ","type","countr","bibl"
+1074,"Abaindi","Abaindi","–","–","–","URU.a-ba-in-di, 𒌷𒀀𒁀𒅔𒁲","fortified city","Aiadi, Iran","Bagg RGTC 7 3/1: 1–2"
+2,"Abani","Abani","–","–","–","ÍD.a-ba-ni","river","Elam","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+3,"Abarnani","Abarnani, Abarnānu","–","–","–","URU.a-bar-na-ni","fortified city","Turkey, Quwê","Bagg RGTC 7 1: 1"
+6,"Abattê","Abattê","–","–","–","URU.a-bat-te-e","town","Central Assyria (?)","Bagg RGTC 7 2/1: 2–3"
+7,"Abbissa","Abbissa, Abbissâ, Apheisôn, Pheisôn, Pheison, Fis",3,"38.36933","40.5615","URU.ab-bi-is-sa, URU.ab-bi-s-aa","town","province of the land Naʾiri","Helsinki Atlas: 5 (map 3 D2), Bagg RGTC 7 2/1: 3 (not Fis), <a href=https://pleiades.stoa.org/places/874646>Pleiades: Pheison</a>"
+1075,"Abdana","Abdana","–","–","–","URU.ab-da-na-a-a, 𒌷𒀊𒁕𒈾𒀀𒀀","country","Naʾiri, Iran","Bagg RGTC 7 3/1: 2 (*Abdana)"
+8,"Abdudu","Abdudu","–","–","–","URU.ab-du-di, URU.ab-du-da-a-a","city","Assyria, Laḫīru","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 3"
+1076,"Abdīnu","Abdīnu, Abdinu, Apdīnu, Apdinu","–","–","–","URU.ap-di-nu, 𒌷𒀊𒁲𒉡","fortress","Rāši, Iran","Bagg RGTC 7 3/1: 2"
+9,"Abil-šiṭṭi","Abil-šiṭṭi, Abilakka, Abil..., Abel ha-Šiṭṭim, Tell al-Kafrain (?), Tall al-Kafrain (?), Al Kafrayn (?), الكفرين (?), Tall al-Ḥammām (?), Tell el-Hammam (?)",2,"31.83955"," 35.67318","URU.a-bi-il-x-x, URU.a-bi-il-šiṭ-ṭi","city","Bīt-Ḫazaʾil, Damascus, Bīt-Ḫumrî, Israel, Jordan","Helsinki Atlas: 5 (map 7 D5), Bagg RGTC 7 1: 1 (Abil...), <a href=https://www.geonames.org/250627/al-kafrayn.html>Geonames: Al Kafrayn</a>, <a href=https://www.geonames.org/248731/tall-al-kafrayn.html>Geonames: Tall al Kafrayn</a>, <a href=https://www.geonames.org/249273/tall-al-hammam.html>Geonames: Tall al Ḩammām</a>"
+10,"Abilāte","Adab, Abilāte","–","–","–","URU.a-bi-la-te","town","Izalla","Bagg RGTC 7 2/1: 4"
+1077,"Abirus","Abirus","–","–","–","KUR.a-bi-ru-us, 𒆳𒀀𒁉𒊒𒊻 ","mountains","Bīt-Kapsi, Iran","Bagg RGTC 7 3/1: 2–3"
+1078,"Abitikna","Abitikna","–","–","–","URU.a-bi-ti-ik-na, 𒌷𒀀𒁉𒋾𒅅𒈾, LÚ.URU.a-bi-ti-ik-na-a-a, 𒇽𒌷𒀀𒁉𒋾𒅅𒈾𒀀𒀀 ","city","Mannāja, Iran","Bagg RGTC 7 3/1: 3"
+1079,"Abnana","Abnana","–","–","–","URU.ab-na-na, 𒌷𒀊𒈾𒈾","city","(?)","Bagg RGTC 7 3/1: 3"
+1080,"Abrau","Abrau","–","–","–","KUR.ab-ra-ú(-x), 𒆳𒀊𒊏𒌑(-x)","land (?), mountain (?)","Mādāia, Ḫarḫār (?), Iran","Bagg RGTC 7 3/2: 3–4 "
+1081,"Absaḫutti","Absaḫutti","–","–","–","KUR.ab-sa-ḫu-at-ti, 𒆳𒀊𒊓𒄷𒀜𒋾","land (?), mountain (?)","Mādāja, Iran","Bagg RGTC 7 3/1: 4"
+1082,"Abuqu","Abuqu","–","–","–","URU.a-bu-qu, 𒌷𒀀𒁍𒄣","town","Tumme, Naʾiri (?)","Bagg RGTC 7 3/1: 4"
+1,"Abā","Abâ, Aba","–","–","–","URU.a-ba-a, URU.a-ba-a.a","town","Tušḫan province","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+4,"Abāt-Aššur-lā-tēni","Abat-Aššur-lā-tenni, Abāt-Aššur-lā-tēni","–","–","–","URU.a-bat-aš-šur-la-te-ni","city","Šubria","Bagg RGTC 7 2/1: 2"
+5,"Abāt-šarri-lā-tēni","Abāt-šarri-lā-tēni, Abat-šarri-lā-tenni","–","–","–","URU.a-bar-MAN-la-te-ni","city","Šubria","Bagg RGTC 7 2/1: 2"
+1083,"Abūrê","Abūrê, Aburê","–","–","–","URU.a-bu-re-e, 𒌷𒀀𒁍𒊑𒂊","city","Puqūdu, Gambūlu, Babylonia, Iraq","Bagg RGTC 7 3/1: 4–5"
+12,"Adab","Bismaya",1,"31.95047","45.62345","–","city","Babylonia","–"
+1057,"Adamdun","Adamdun, Teppe Surkhehgan (?)",4,"32.02136","48.79869","–","city","Elam","–"
+13,"Addauš","Addauš, Adauš, Ḥabb as-Sulṭān Dāġ, Jabal Haybat Sulţān, Hab-es-Sultān Dāgh, جبل هيبت سلطان","–","36.09709","44.67702","URU.ad-da-uš, KUR.a-da-uš","territory","Ḫabrūri (?), Iraq","Bagg RGTC 7 3/1: 5"
+1084,"Adduri","Adduri, Adduru","–","–","–","KUR.ad-du-ri, 𒆳𒀜𒁺𒊑","mountains","Urarṭu, Turkey","Bagg RGTC 7 3/1: 5"
+15,"Adia","Adia, Adiu, Adum, Mosul, Ḫirbat Qara Qounly (?), Khirbet Qara Quwiynili (?), Šēḫ ʿĀdī (?), Shaykh Adī (?)",4,"36.34233","43.11833","URU.a-di-a","town","Assyria","Helsinki Atlas: 5 (map 4 C5), ABL, 683, ONC G4, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 6–7, <a href=https://books.openedition.org/cdf/4715#tocfrom2n18>MTT I/1</a> (Adum)"
+16,"Adian","Adian, Adin, Eski Kalak, Askī Kalak, Dahūk (?)",4,"36.27267","43.63917","URU.EN-an, URU.a-di-an, URU.a-di-in","town","Assyria","Helsinki Atlas: 5 (map 4 C5), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 7–8"
+1085,"Adilê","Adilê","–","–","–","LÚ.a-di-le-e, 𒇽𒀀𒁲𒇷𒂊","tribe","Babylonia, Iraq","Bagg RGTC 7 3/1: 6"
+17,"Adinni","Adinni","–","–","–","URU.a-di-ni, 𒌷𒀀𒁲𒉌, URU.a-di-in-ni, 𒌷𒀀𒁲𒅔𒉌","city","Babylonia, Iraq","Bagg RGTC 7 3/1: 6, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+18,"Admannu","Natmane, Admannu, Atmannu, Tell 'Ali, Tell ʾAli","–","35.38189","43.68247","–","–","–","–"
+1086,"Aduma","Aduma","–","–","–","URU.a-du-ma, 𒌷𒀀𒁺𒈠","town","–","Bagg RGTC 7 3/1: 6"
+20,"Adummatu","Adummatu, Adumatu, Adumutu, Dumetu, Dumeti, Duma, Dumatha, Doumiatha, Dūmat al-Ğandal, Dumat el-Jandal, al-Ǧauf, al-Jawf, الجوف, دومة الجندل, דוּמָ֖ה",1,"29.81144","39.86716","URU.a-du-ma-tu, URU.a-du-mu-tu, URU.a-du-um-ma-te, URU.a-du-um-ma-tu, URU.du-ma, URU.du-me-ti","town, city, fortress","Arabs","Helsinki Atlas: 5 (map 15 D4), Bagg RGTC 7 2/1: 8–9, 'Eph'lal 1982, 119, TPC H5B, <a href=https://pleiades.stoa.org/places/29548>Pleiades: Dumatha</a>"
+19,"Adumānu","Adumānu","–","–","–","URU.a-du-ma-nu","town","East Babylonia","Bagg RGTC 7 2/1: 8"
+11,"Adâ (city)","Adâ, Tall ʿAdā (?), Theleda (?), ʿAin at-Tall (?), Tall Hatab (?)","–","35.81818","36.33017","URU.a-da-a","city","Ḫamāt","Bagg RGTC 7 1: 2"
+14,"Adî","Adî","–","–","–","URU.a-di-i","town","Central Assyria (?)","Bagg RGTC 7 2/1: 6"
+1087,"Agazi","Agazi","–","–","–","KUR.a-ga-zi, 𒆳𒀀𒂵𒍣","territory","Mādāja, Iran","Bagg RGTC 7 3/1: 7"
+1090,"Aiadi","Aiadi, Ajadi, Ayādi, Aiādi, Ayaid, Aiaid, Orūmīye Plain","–","–","–","KUR.a-ia-di, 𒆳𒀀𒅀𒁲, KUR.a-ia-id, 𒆳𒀀𒅀𒀉","territory","Urarṭu, Iran","Bagg RGTC 7 3/1: 10, <a href=https://www.geonames.org/121801/orumiyeh.html>Geonames: Orūmīyeh</a>"
+1091,"Aiaṣun","Aiaṣun, Ajaṣun","–","–","–","URU.a-ia-ṣu-un, 𒌷𒀀𒅀𒍮𒌦","fortified city","Urarṭu, Aiadi, Iran","Bagg RGTC 7 3/1: 10–11, <a href=https://www.geonames.org/121801/orumiyeh.html>Geonames: Orūmīyeh</a>"
+23,"Aila","'Aqaba","–","29.53067789514675","34.99994197134541","–","town","–","–"
+24,"Aira","Aira","–","–","–","URU.a-i-ra","town","–","Bagg RGTC 7 2/1: 12"
+1092,"Aja-Sammu","Aja-Sammu, Aia-Sammu, Aya-Sammu, Aiasamu, Ajasamu","–","–","–","URU.a-a-sa-mu, 𒌷𒀀𒀀𒊓𒈬","fortified city","Gambūlu, Babylonia, Iraq","Bagg RGTC 7 3/1: 11–12"
+25,"Ajaidi","Plain of Urmīya",3,"–","–","–","district","Urarṭu (?), Naʾiri (?), Urmia","Helsinki Atlas: 5 (map 4 D4)"
+1093,"Ajalaja","Ajalaja, Ayyalaya, Ayalaya","–","–","–","KUR.a-a-la-a-a, 𒆳𒀀𒀀𒆷𒀀𒀀, KUR.a-a-la-ia, 𒆳𒀀𒀀𒆷𒅀","country","Ṣibar (?), Iran","Bagg RGTC 7 3/1: 11"
+1094,"Ajalê","Ajalê, Aialê, Ayalê","–","–","–","KUR.a-a-le-e, 𒆳𒀀𒀀𒇷𒂊","fortified city","Iran","Bagg RGTC 7 3/1: 11"
+1095,"Ajubak","Ajubak, Ayubak","–","–","–","URU.a-a-ú-ba-ak, 𒌷𒀀𒀀𒌑𒁀𒀝","city","Namri (?), Iran","Bagg RGTC 7 3/1: 12"
+27,"Akkad","Akkad, Agade, Tell Muhammad (?), Tell Muhammed (?), Tall Muḥammad (?), تل محمد, al-Qādisīya (?), Išān Mizyad (??)",4,"33.3009","44.4682","URI.KI, URI.KI-i, ak-ka-de-e, ak-ka-di-i, A.GA.DÈ.KI, a-ka-di, a-kad.KI, URU.URI, URU.ak-ka-di, URU.ak-kad, KUR.ak-ka-di-i, URU.ak-kad-u-a","city","Babylonia, Akkad, Iraq","Helsinki Atlas: 5 (map 10 D3), Bagg RGTC 7 3/1: 13–14, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+29,"Akkuddu","Akkuddu, Īlām (?), اِلام, ایلام, Surkh Dum Lurī (?), سرخ دم لـري, Surḫ Dum (?), Surḫ Dom (?), Dom Sorkh Lakī (?), دُم سُرخ لَكی, Sorkh Dom Lakī (?), سرخ دم لکي",4,"33.5065","47.7079","URU.ak-ku-du, URU.ak-ku-ud-du, URU.ak-ku-du-ma","capital, city","Ellipi, Iran","Helsinki Atlas: 5 (map 11 C3), Bagg RGTC 7 3/1: 14–15, CT 53 892"
+28,"Akkû","Akkû, 'Akkô, ʿAkko, Acco, Accon, Accra, Ptolemais, Antiocheia Ptolemais, Πτολεμαΐς, Tall al-Fuḫḫār, Tell el-Fukhkhar, עַכּוֹ‎, ʿAkkā, عكّا‎",1,"32.92139","35.08776","URU.ak-ku-u, URU.ak-ku-ú, URU.a-ku-u","city, fortresses, seaport","Ḫatti, Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5  (map 8 A4), Bagg RGTC 7 1: 3–4, <a href=https://pleiades.stoa.org/places/678010>Pleiades: Ake/Ptolemais</a>"
+30,"Akuānu","Akuānu, ʾAkuānu, Akuʾanu",4,"36.83333","39.08333","–","village, city","Ḫarrānu","Helsinki Atlas: 5 (map 3 C4)"
+31,"Akzībi","Akzībi, Akzibu, Akzib, Akzîb, Akziba, Tell Achzib, Achziv, אכזיב, Akzîb, az-Zīb, ez-Zib, الزيب‎",1,"33.04858","35.10194","URU.ak-zi-ba, URU.ak-zi-bi, אכזיב","town","Ḫatti, Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5 (map 8 A3), Bagg RGTC 7 1: 4"
+26,"Akītu Temple of Aššur","Bīt-akīti ša Aššur, Bīt-akīti ša ṣēri, Akītu Temple of Aššur, Akītu Temple of the steppe","–","35.46286","43.25423","É-á-ki-it šá EDIN","temple","Aššur","–"
+42,"Alalaḫ","Alalaḫ, Alalakh, Tell Açana","–","36.2376050898224","36.38418400802268","–","–","–","–"
+43,"Aliṣir","Aliṣir, Alimuš, Antiokia, Antiocheia, Antakya, Anṭakya","–","36.20582","36.16682","URU.a-li-MUŠ","city, fortress","Pattinu, Kullanīa","Helsinki Atlas: 5 (map 2 C4), Bagg RGTC 7 1: 6 (Alimuš)"
+44,"Allabria","Allabria, Sanandağ, سنندج",3,"35.31495","46.99883","KUR.al-la-ab-ra-a-a, KUR.al-la-lab-ri-a, KUR.al-lab-ra-a-a, KUR.al-lab-ri-a, KUR.al-lab-ri-a-a, (KUR.)al-lab-rí-a-a, URU.al-la-ab-ra-a, URU.al-la-ab-ri-a, URU.al-lab-ri-a","territory, country, city","Zagros mountain range, Iran","Helsinki Atlas: 5 (map 11 B1, 11 C1), Bagg RGTC 7 3/1: 18–19, Parpola Toponyms: 12"
+45,"Alligu","Alligu, Ialligu, Iallgu, Jalligu, Aṣbat-lakūnu, Aṣbat-lā-kunu, Aṣbat-lakūn, Aligör, Ali Gör, Ilīğak, Illījāk, Degirman, الليجاك, Tall Qūmluq, قوملوك","–","37.04393","38.4504","URU.a-li-gu, URU.al-li-gi, URU.ia-li-gu","city","Bīt-Adini","Bagg RGTC 7 1: 6–7, Bagg RGTC 7 3/2: 914"
+46,"Alluria","Alluria, Nazlu çay","–","–","–","–","river","–","Helsinki Atlas: 5 (map 4 E4)"
+47,"Alluriu","Alluriu, Alluria, Baradost, جبل برادوست","–","36.73601","44.39033","KUR.a-lu-ri-a, KUR.al-lu-ri-ú","mountain","Iraq","Bagg RGTC 7 3/1: 20"
+48,"Altaqû","Altaqû, Altaqu, Tall aš-Šallāf, Tel Shalaf, Tel Šallāf, תל שלף, Elteqēh, Eltekeh, Eltheke, אלתקה, אלתקא",1,"31.89238","34.76765","URU.al-ta-qu-u, URU.al-ta-qu-ú, אלתקה, אלתקא","city","Asdūdu (province) (?), Pilistu","Helsinki Atlas: 5 (map 7 C5), Bagg RGTC 7 1: 7, <a href=https://pleiades.stoa.org/places/498102722>Pleiades: Altaqû</a>"
+53,"Amadāni","Amadāni, Amadanu, Amadānu, Amadana, Amadani, Maden Dağlari, Maden Dağları",2,"38.27444","39.3835","KUR.a-ma-da-ni, KUR.a-ma-da-na","mountain, mount","Ḫabḫu","Helsinki Atlas: 5 (map 3 C2), Bagg RGTC 7 2/1: 41–42, <a href=https://books.openedition.org/cdf/4564#tocfrom2n39>MTT I/2</a> (Amadānu (1))"
+54,"Amantu","Amantu, Amante, Amatti, Amanta, Sultān ʿAbdallāh, Sultan ʿAbdallah",4,"35.89601","43.39074","URU.a-mat-ti, URU.am-an-te, URU.a-ma-an-ta-a-u","town, village","Central Assyria, Kilīzi (province) (?)","Helsinki Atlas: 5 (map 4 C6), Bagg RGTC 7 2/1: 42"
+57,"Ammali","Ammali, Mamli, Nammal, Namal, نمل","–","35.32081","45.60446","KUR.URU.am-ma-li, URU.am-ma-li, URU.ma-am-li","city","Zamua, Iraq","Bagg RGTC 7 3/1: 37–38"
+59,"Ammanāna","Ammanāna, Ammanānu, Ammanana, Antilibanos, Antilibanus, Anti-Lebanon, Ğabal an-Nuṣairīya, Quṣeir, Jibāl an Nuṣayrīyah, Ǧabal Anṣariya, Ǧibāl Lubnān aš-Šarqīya",2,"35.24408","36.28354","KUR.am-ma-na-na","mountain","–","Helsinki Atlas: 5 (map 8 B1), Bagg RGTC 7 1: 8–9"
+58,"Ammāna","Ammāna, ʿAmmān, Rabbat Ammon, Ammon, Rabatha, Ğabal al-Qal'a, Philadelphia",1,"31.95431","35.93515","URU.am-ma-a-na","capital, city","Bīt-Ammān","Helsinki Atlas: 5 (map 7 D5), Bagg RGTC 7 1: 7–8"
+60,"Ampa","Ampa, Ambi, Anfa, Anfeh, انفه",3,"34.35515","35.73206","URU.am-pa","town","Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5 (map 8 A2), Bagg RGTC 7 1: 9"
+61,"Ampiḫabi","Ampiḫabi, Ampihabi, Ampiḫapi, Ampihapi",3,"33.96633","44.2265","KUR.am-pi-ḫa-a-bi, URU.am-pi-ḫa-bi","town","Assyria, Arzūḫina (province)","Helsinki Atlas: 5 (map 10 D3), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+62,"Amrit","Amrit","–","34.83512","35.91208","–","–","–","–"
+64,"Amurrû","Amurrû, Amurru, Māt-Amurrî, אמורי‎, Ἀμορραῖοι, ʾmr, 𐤀𐤌𐤓‎, ʿAkkār Plain (?)","–","–","–","MAR, MAR.KI, MAR.TU, MAR.TU.KI, KUR.a-mur-ri, KUR.MAR, KUR.MAR.KI, KUR.MAR.TU, KUR.MAR.TU.KI, a-mur-re-e, a-mur-ri-i, a-mur-ru-ú, KUR.a-mur-ra-a-a, KUR.a-mur-re-e, KUR.a-mur-ri-i, KUR.a-mur-ru-u, KUR.MAR.TU-e.KI, LÚ.MAR.TU.KI, MAR.TU-i, MAR.TU.KI-ú, אמורי‎, 𐤀𐤌𐤓‎","territory","Syro-Palestine, Levant","Bagg RGTC 7 1: 11–15"
+65,"Ana-Aššur-utēr-aṣbat","Ana-Aššur-utēr-aṣbat, Aššur-utēr-aṣbat, Aššur-aṣbat, Pitūru, Pitru, Pitiru, Pethor, פְּתוֹר, Tell Aushariye, Ausheriya, Aušar ar-Rafīʿa, Ḥammām aṣ-Ṣaġīr",2,"36.66007","38.07583","URU.a-na-aš-šur-ú-ter-aṣ-bat, URU.AN.ŠÁR-DAB-bat, URU.ana-aš-šur-ú-ter-aṣ-bat, URU.aš-šur-DIB-bat, URU.aš-šur-ú-ter-aṣ-bat, URU.ina-aš-šur-ut-ter-aṣ-bat, URU.pi-it-ru, URU.pi-ti-ru","city","Ḫatti, Bīt-Adini, Til-Barsib (?)","Helsinki Atlas: 5, Bagg RGTC 7 1: 16 (Ana-Aššur-utēr-aṣbat), 191 (Pitru), <a href=https://pleiades.stoa.org/places/771224407>Pleiades: Pitru</a>"
+66,"Anasarta","Anasarta, Khanasir","–","35.77596486304121","37.49764864063391","–","–","–","–"
+68,"Andarutta","Andarutta, Andarutu, Berat Dağ (?), جبل بيرت, Baradost (?), جبل برادوست","–","36.74111","44.14666","KUR.an-da-ru-ut-ta, KUR.an-da-ru-tú","mountain","Ḫabḫu (?), Province of ''nāgir ekalli'' (?), Iraq","Helsinki Atlas: 5 (Berat Dağ, map 4 D5), Bagg RGTC 7 3/1: 39–40 (Baradost), Dlshad A. Marf: ''Re-Identifying the ‫Ḫ‬iptunu Town and Andaruttu Mountain''. Akkadica 136 (2015), pp. 127- 140."
+69,"Andia","Andia",2,"–","–","–","country, state","Zagros mountains","Helsinki Atlas: 5 (map 5 C4)"
+70,"Androna","Androna, El-Andarin","–","35.53433495330736","37.36206520477305","–","–","–","–"
+71,"Anduli","Anduli, Andulu, Hedil, Hêdil, Kayı","–","37.37316","41.7836","URU.an-du-li","town","Izalla","Bagg RGTC 7 2/1: 48"
+73,"Ankuwa","Ankuwa, Alişar Hüyük","–","39.60636312468131","35.26129955642234","–","–","–","–"
+74,"Anmurru","Anmurru, Keban, Nemerli","–","38.70377","37.822263","URU.an-mu-ur-ru","fortress, city","Melīdi, Turkey","Bagg RGTC 7 1: 17, <a href=https://pleiades.stoa.org/places/762647722>Pleiades: Anmurru</a>"
+75,"Anqarrūna","Anqarrūna, Amqarrūna, Amqaruna, Aqqarruna, ʾAmkaruna, Tel Miqne, Khirbat el-Muqanna', Eqron, Ekron, Akkaron, עֶקְרוֹן‎, عقرون‎",1,"31.77746","34.85097","KUR.am-qar-u-na, KUR.am-qar-ru-na, URU.ʾa-am-qa-ar-ru-na, URU.ʾa-am-qa-ru-na, URU.am-qar-ru-na, URU.am-qar-u-na, URU.an-qar-u-na, KUR.an-qar-ru-na-a-a, URU.a-qa-ru-na-a-a","capital, city","Pilistu, Levant, Israel","Helsinki Atlas: 5 (map 7 C5), Bagg RGTC 7 1: 10–11 (Amqarrūna), <a href=https://pleiades.stoa.org/places/687888>Pleiades: Ekron/Akkaron</a>"
+77,"Antakya","Antakya, Antiokia, Antiochia","–","36.22255","36.18321","–","monument","Turkey","Helsinki Atlas:  20 (map 2 C4), <a href=https://pleiades.stoa.org/places/658381>Pleiades: Antiochia/Theoupolis</a>"
+78,"Anzaknê","Anzaknê, Ṣaḥne, صحنه, Bahār, بهار","–","34.4813","47.6908","KUR.an-za-ak-né-e","territory, country (?)","Mādāja, Iraq","Bagg RGTC 7 3/1: 43"
+79,"Anzaria","Anzaria, Kār-Adad","–","–","–","–","fortress","Iran","Parpola Toponyms: 20, Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+72,"Anīsu","Anīsu, Anisu, Anīsus, Anisus, Qalʿat Dīza, Qalaat Diza, Qalʿe Dīze, Qalat Dizah, Qeładizê, قلعة دزة",4,"36.18254","45.13017","URU.a-ni-su, URU.a-ni-i-su-us","town","Zagros mountain range, Iraq","Helsinki Atlas: 5 (map 4 E5), Bagg RGTC 7 3/1: 42–43"
+76,"Anšan","Anzan, Anšan, Aššan, Tall-i Malyān, Tall-e Malyān, Tell Malyan, تل ملیان, Tepe Malyan",1,"30.01238","52.41011","KUR.an-za-an, KUR.áš-ša-an, KUR.an-za-nu-ú-a, URU.áš-šá-an","capital, city","Elam, Iran","Helsinki Atlas: 5 (map 17 D4), Bagg RGTC 7 3/1: 44"
+81,"Aparāzu","Aparāzu, Apparāzu, Apparazu, Parraza, Abarara, Abarraza, Brēğ, البريج, Ṭaṭmaraš, Ṭāṭumarāš, طاطمراش","–","36.25225","36.85209","URU.a-pa-ra-a-zu, URU.ap-pa-ra-zu","fortress, fortified city","Bīt-Agūsi","Bagg RGTC 7 1: 17–18 (Apparāzu), <a href=https://pleiades.stoa.org/places/658362>Pleiades: Abarara</a>"
+82,"Apaša","Apaša, Ephesus (?)",4,"37.94113","27.346","–","–","–","–"
+83,"Apku","Apku, Apqu, Apka, Apqum, Tall Abū Mārīyā, Tell Abu Marya, Abū Mārīyah, Abū Maria, ابو مارية",2,"36.42959","42.5976","URU.ap-ku, URU.ap-ka, URU.ap-ki, URU.ap-qí","town","Central Assyria, Iraq","Helsinki Atlas: 6 (map 4 B5), Bagg RGTC 7 2/1: 49, <a href=https://pleiades.stoa.org/places/874723>Pleiades: Tell Abu Marya/[Apqu]</a>, <a href=https://books.openedition.org/cdf/4564#tocfrom2n50>MTT I/2 ( HIGEOMES Nr. 3)</a>"
+84,"Appari","Appari","–","–","–","URU.ap-pa-ri","town","–","Bagg RGTC 7 1: 18, Parpola Toponyms: 21"
+85,"Apparu","Apparu, Apparum, Afaris, Ḥafīra, وادي الحفيرة, al-Lajāh, al-Lağā, اللجاه","–","32.93481","36.385","URU.ap-pa-ru","oasis, water resource","Māʾab (?), Jordan, Syria","Bagg RGTC 7 1: 18, <a href=https://books.openedition.org/cdf/4715>MTT I/1</a>, Parpola Toponyms: 21"
+86,"Apqu","Apqu, ʾpq, 𐤀𐤐𐤒, Aphek, Aphik, אֲפֵק, Afqā, أفقا, Pegae, Antipatris, Aphaka, Tel Ras el-'Ain, Tel Afēq, תל אפק, Tēl Kabri, Fīq, Tēl Soreq, Ḫirbat al-Hadab",1,"34.06616","35.88854","URU.ap-qu, אֲפֵק, 𐤀𐤐𐤒","town","Bīt-Ḫumrî (?), Israel (?), Phoenicia (?), Lebanon (?), Dimašqa (?), Syria (?), Palestine (?), Iaʾūdu (?)","Helsinki Atlas: 6 (map 7 C4), Bagg RGTC 7 1: 18–19, <a href=https://pleiades.stoa.org/places/668195>Pleiades: Aphaka (Temple of Aphrodite Aphakitis)</a>"
+87,"Aprê","Aprê, Apre, ʿAfrīn, ʿIfrīn",2,"–","–","–","river","Ḫatti, Pattinu, Kullanīa (province), Samʾalla","Helsinki Atlas: 6 (map 2 C4)"
+88,"Apsia","Apsia, Absia, Apsija, Ebsi (?), Apši, Apše",3,"37.364166666667","41.166833333333","–","village","Izalla, Syria (?), Turkey (?)","Helsinki Atlas: 6 (map 3 E3)"
+89,"Apsu","Apsu, Apsuna, ʾpš, Tell Afis, T. Afis",3,"35.905","36.79875","–","city","Ḫatti, Syria","Helsinki Atlas: 6 (map 2 C5)"
+80,"Apāk","Apāk, Apak, Apiak, Abiak",3,"32.416666666667","44.666666666667","–","town","Bīt-Dakkūri, Babylonia, Iraq","Helsinki Atlas: 6 (map 10 D4)"
+90,"Apšu","Apšu",4,"33.321166666667","44.385666666667","–","town","Babylonia, Iraq","Helsinki Atlas: 6 (map 10 D3)"
+91,"Aqarbānu","Aqarbānu, Aqarbāni, Aqarbani, Naqarabāni, Naqarbāni, Merrhan, Kherban",3,"34.65","40.83333","URU.a-qa-ar-ba-ni, URU.na-qa-ra-ba-ni, URU.na-qa-ra-ba-a-ni","town","Lāqê, Syria","Helsinki Atlas: 6 (map 9 C2), Bagg RGTC 7 2/1: 50–51"
+93,"Arad","Arad","–","31.28089","35.12658","–","–","–","–"
+94,"Arameans","Aram, Arameans, Aramaeans","–","–","–","–","ethnic","–","–"
+95,"Arantu","Arantu, Orontes",1,"–","–","–","river","Mediterranean coast, Syria","Helsinki Atlas: 6 (map 8 B1)"
+96,"Aranziaš","Aranziaš, Araziaš, Aranzēšu, Arazišu, Godin Tepe (?), Godin Teppe (?), Gūdīn Tapeh, گودین‌تپه","–","34.51841","48.06839","KUR.a-ra-an-ze-e-šú, KUR.a-ra-an-ze-šú, KUR.a-ra-zi-aš, KUR.a-ra-zi-áš, KUR.a-ra-zi-šú, KUR.a-ra-zi-áš-a-a","territory, city, state","Mādāia, Iran","Bagg RGTC 7 3/1: 56–57 (Araziaš), Helsinki Atlas: 6 (map 11 C2)"
+97,"Aranziaše","Aranziaš, Aranziaše, Aranziašu, Aranzēše","–","–","–","URU.ar-an-ze-e-še, URU.ar-an-zi-a-še, URU.ar-an-zi-a-šu","city","Rāši, Iran","Bagg RGTC 7 3/1: 53–54 (Araziaše), Helsinki Atlas: 6 (map 11 C2)"
+99,"Arattâ","Arattâ","–","–","–","ÍD.a-rat-ta-a","river","Māzamua (?)","Parpola Toponyms: 24"
+100,"Araziqa","Araziqa, Tell el-Hajj (?)",4,"36.19682","38.07494","–","–","–","–"
+101,"Arbail","Arbail, Arbela, Arbēla, Arbīl, Irbīl, Irbil, Erbil, أربيل‎",1,"36.19143","44.00901","arba-ìl, arba-ìl.KI, DUMU.arba-ìl, DUMU-URU.arba-ìl, DUMU.MEŠ-URU.arba-ìl, URU.ar-ba-ìl, URU.ár-ba-ìl, URU.arba, URU.arba-ìl, URU.arba-ìl.KI, URU.er-ba-ìl, URU.arba-ìl-a-a","city","Assyria","Helsinki Atlas: 6 (map 4 C5), Bagg RGTC 7 2/1: 53–57"
+102,"Arbakki","Arbakki, Arbakku, Gre Dimse, Arwah (?)","–","37.82752","40.96629","KUR.ar-ba-ki, KUR.ar-ba-ak-ki, URU.ar-ba-ki, URU.ar-ba-ak-ki, URU.ár-ba-ak-ki","city, territory","Ḫabḫu, Turkey","Bagg RGTC 7 2/1: 58"
+104,"Arbela (Irbid)","Arbela, Irbid","–","32.55925461562157","35.84754833501287","–","–","–","–"
+105,"Arbunâ","Arbunâ","–","–","–","URU.ar-bu-na-a","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 59"
+103,"Arbātu","Arbātu, Arbate, Arbatu, Tell Khaumat Hajin (?), Tall Ḥawmat Hayin, aṣ-Ṣāliḥīyah (?), Dura-Europos (?), Doura'Europus (?), Δοῦρα Εὐρωπός, aç-Çaʾābi (?), Tall ʿAfrīya (?)",4,"34.71257","40.82676","URU.ar-ba-te","town","Lāqê, Syria","Bagg RGTC 7 2/1: 58–59 (Arbate)"
+106,"Ardata","Ardata, Tell Ardé","–","34.408691834184","35.9148561159837","–","–","–","–"
+107,"Arganâ","Arganâ, Arzigana, Ḫarganā, Arziġān at-Taḥtāni, Rīḥā, ar-Rūǧ territory, Ǧabal az-Zāwiya territory, Qalʿat al-Muḍīq territory, Tall Arguni, Tall Qasṭūn",3,"35.81374","36.60964","URU.ar-ga-na-a","city","Ḫamāt, Syria","Helsinki Atlas: 6 (map 2 D5), Bagg RGTC 7 1: 20–21"
+110,"Argite","Argite, Tall ʿArquni, تل عرقوني","–","34.58147","36.65652","URU.ar-gi-te","station","Syria","Bagg RGTC 7 1: 21"
+109,"Argištiuna","Argištiuna, Argistiani, Irgistiani, Qalʿe Esmaʾīl Āġā (?), قلعه اسماعیل آقا","–","37.6651","44.9296","URU.ar-giš-ti-ú-na, URU.ir-gi-is-ti-a-ni","fortified city","Aiadi, Iran","Bagg RGTC 7 3/1: 59"
+108,"Argištiḫinili","Argištihinili, Armavir, Davti-blur",1,"40.08092","44.03321","–","city","–","Helsinki Atlas: 6 (map 4 D1)"
+112,"Ariawāte","Ariawāte",3,"36.8","40.283333333333","–","town","–","Helsinki Atlas: 6 (map 3 D4)"
+113,"Aribi","Aribi, Arabs",2,"–","–","–","tribe","–","Helsinki Atlas: 6 (map 10 A1)"
+114,"Aribua","Aribua, Ǧisr aš-Šuġūr, جسر الشغور, as-Safīra, السفيرة","–","35.81418","36.31983","URU.a-ri-bu-a","fortified city","Pattinu, Syria","Bagg RGTC 7 1: 22"
+117,"Ariru","Ariru","–","–","–","URU.a-ri-ra-a-a","town","Central Assyria (?), Kalḫu province (?)","Bagg RGTC 7 2/1: 62–63"
+118,"Armarialî","Armarialî, Plain of Salmās/Šahpūr",2,"–","–","–","district","–","Helsinki Atlas: 6 (map 4 D3)"
+119,"Arnabāni","Arnabāni",3,"36.583333333333","40.416666666667","–","town","–","Helsinki Atlas: 6 (map 3 D4)"
+120,"Arnê","Arnê, Arne, Arna (?), ʾArnaya (?), Tell ʿArān, تل عرن, Erin",2,"36.12419","37.34718","URU.ar-né-e","capital","Bīt-Agūsi, Syria","Helsinki Atlas: 6 (map 2 D4), Bagg RGTC 7 1: 23"
+121,"Arpadda","Arpadda, Arpad, ʾrpd, 𐡀𐡓𐡐𐡃, ʾArpād, אַרְפָּד, Ḫurpata, Tell Rifʿat, Tall Rifʿat, Tell Rifa'at, تل رفعت",2,"36.47262","37.09464","ar-pad-da, KUR.ar-pad-da, KUR.ár-pad-da, KUR.URU.ar-pad-dà, URU.ar-pa-da, URU.ar-pad-da, URU.ar-pad-du, URU.ár-pa-da, URU.ár-pad-da, ár-pad-da-a-a-te, KUR.ar-pa-da-a-a, KUR.ár-pad-da-a-a, URU.ar-pad-da-a-a, URU.ár-pad-da-a-a, 𐡀𐡓𐡐𐡃, אַרְפָּד","prov. capital","Bīt-Agūsi, Arpadda province, Syria","Helsinki Atlas: 6 (map 2 D4), Bagg RGTC 7 1: 23–25"
+122,"Arqâ","Arqâ, Irqanat, Irqanatu, Irqanata, Arkata, Irkata, Irqata, ʿrqw, 𐡏𐡓𐡒𐡅‎‎, br ʿrqj, 𐡁𐡓 𐡏𐡓𐡒𐡉, ʿArqî, עַרְקִי, Arka, Arkē, ʿrq, 𐤏𐤓𐤒‎, Arca, Arka, Arkē, Archis, Caesarea ad Libanum, Herakleia en Phoinike, Tell ʿArqâ, عرقا",1,"34.53333","36.03333","KUR.ar-qa-a, URU.ar-qa-a, ar-qa-a-a, KUR.ir-qa-na-ta-a-a, ʿrqw, 𐡏𐡓𐡒𐡅‎‎, br ʿrqj, 𐡁𐡓 𐡏𐡓𐡒𐡉, ʿrq, 𐤏𐤓𐤒‎, עַרְקִי","city","Ḫamāt, Phoenicia, Syria","Helsinki Atlas: 6 (map 8 A2), Bagg RGTC 7 1: 25–26, <a href=https://pleiades.stoa.org/places/668198>Pleiades: Arca/Herakleia en Phoinike/Caesarea ad Libanum</a>"
+123,"Arqānia","Arqānia, Arkanâ, Arkania, Ergani mountains, Sakız Dağı, Yaylım Dağı","–","38.49845","39.6579","KUR.ar-ka-a-na-a, KUR.ar-qa-ni-a","mountain","Mallānu, Turkey","Bagg RGTC 7 2/1: 64, Helsinki Atlas: 6 (map 3 C2)"
+124,"Arrakdi","Arrakdi, Arrakdu, Arrakdia, Arikdin, Arragdi, Tukultī-Aššur-aṣbat, Bingird, بنگرد",4,"35.37778","45.71389","KUR.ár-rak-di-a, URU.a-ra-ak-di, URU.a-rak-di, URU.ar-ra-ak-di/URU.ar-ra-ag-di","town","Zamua","Bagg RGTC 7 3/1: 63–64, Helsinki Atlas: 6 (Arragdi, map 10 E1), Radner (2017), A Neo-Assyrian Legal Document from Tell Sitak: 428"
+125,"Arrapḫa","Arrapḫa, Arrapḫum, Arrapḫe, Arrapḫi, Arrapachitis, Karkha de Beth Seluk, Karkūk, Kirkuk, كركوك, ʿArafah, عرفة",1,"35.46963","44.39572","ár-rap-ḫa, arrap-ḫa, arrap-ḫa.KI, KUR.arrap-ḫa, URU.ár-arrap-ḫa, URU.a-rap-ḫa, URU.ar-rap-ḫa, URU.ar-rap-ḫi, URU.ár-rap-ḫa, URU.ár-rap-ḫe, URU.arrap-ḫa, URU.arrap-ra-ap-ḫa, ar-rap-ḫa-ia, URU.ar-rap-ḫa-a-a, URU.arrap-ḫa-a-a","city","Assyria, Arrapḫa province","Helsinki Atlas: 6 (map 10 D1), Bagg RGTC 7 2/1: 64–68, <a href=https://pleiades.stoa.org/places/893941>Pleiades</a>"
+128,"Artulu","Artulu, Kululu, Kayserı, Aksaray","3 4","38.96968","36.13359","URU.ar-tu-lu","city","Tabāl, Turkey","Helsinki Atlas: 6 (Artulu and Artulu (alt. loc.), map 2 B2, 1 D2), Bagg RGTC 7 1: 26, <a href=https://pleiades.stoa.org/places/543726022>Pleiades: Kululu Kalesi</a>, <a href=https://pleiades.stoa.org/places/619164>Pleiades: Aksaray</a>, <a href=https://pleiades.stoa.org/places/629035>Pleiades: Kayserı</a>"
+130,"Arwāda","Arwad, Arvad, Arwād, Arwāda, Armāda, Armada, Arwada, ʾArwād, אַרְוַד, ʾrwd, 𐤀𐤓𐤅𐤃, ʾrwdj, 𐤀𐤓𐤅𐤃𐤉, Arados, Aradus, ar-Ruwād, Arwād, أرواد",1,"34.85735","35.86053","KUR.a-ru-a-di, KUR.a-ru-ad-da, KUR.a-ru-ú-ad-da, KUR.a-ru-ú-da, KUR.a-ru-ud-da, KUR.ar-u-a-da, KUR.ar-ú-a-da, KUR.ar-ú-ad-da, KUR.ar-ú-da, LÚ-KUR.ar-ú-ad-da, URU.a-ru-ad-da, URU.a-ru-a-di, URU.ar-ma-da, URU.ar-ma-di, URU.ar-u-a-da, URU.ar-ú-a-da, KUR.ar-ma-da-a-ia, URU.a-ru-da-a-a, URU.ar-ma-da-a-a, 𐤀𐤓𐤅𐤃, 𐤀𐤓𐤅𐤃𐤉, אַרְוַד","city, island","Phoenicia, Syria","Helsinki Atlas:  6 (map 8 A2), Bagg RGTC 7 1: 27–29, <a href=https://pleiades.stoa.org/places/668197>Pleiades: Arados</a>"
+131,"Arzâ","Arzâ, Arzāja, Yurza, Tell Ğāmā, Tēl Gamma, תל גמה, Tēl Haror, תל הרור, Tall Abū Ḥurēra, Tēl Hesi, תל חסי, al-ʿArīš (?), العريش",1,"31.38715","34.44511","KUR.ar-za-a, URU.ar-za-a, URU.ar-za-a-a","town","Levant, Pilistu, Israel","Helsinki Atlas: 6  (map 7 C5), Bagg RGTC 7 1: 29–30, <a href=https://pleiades.stoa.org/places/309101265>Pleiades: Arzâ (T. Ǧāmā)</a>"
+132,"Arzūḫina","Arzūḫina, Arzuḫina, Aḫi-Zūḫina, Urzūḫina, Azuḫīnum, Azuḫinni, Narzuḫini, Uzuḫinnum, ʾrzḥn, 𐡀𐡓𐡆𐡇𐡍, Gök Tepe, گوگ تپه, Lēlān, ليلان, Tall Qara Khogh",3,"35.84718","44.83326","ar-zu-ḫi-na, ár-zu-ḫi-na, ur-zu-ḫi-na, KUR.ur-zu-ḫi-na, URU.a-ḫi-ÍD.zu-ḫi-na, URU.ar-zu-ḫi-na, URU.ar-zu-ḫi-nu, URU.ár-zu-ḫi-na, URU.ur-zu-ḫi-nu, URU.ar-zu-ḫi-na-a-a, URU.ur-zu-ḫi-na-a-a, 𐡀𐡓𐡆𐡇𐡍","city, prov. capital","Assyria, Arzūḫina province, Iraq","Bagg RGTC 7 2/1: 72–74 (Arzuḫina), <a href=https://pleiades.stoa.org/places/893944>Pleiades: Arzuhin?</a>, Parpola Helsinki Atlas: 6, 24 (map 10 D1)"
+92,"Arâ","Arâ, Arra, Arrha, ʿrw, 𐡏𐡓𐡅, Tall ʿAr, Maʿarrat an-Nuʿmān, معرة النعمان, Tall Arrī, تل عري","–","35.4851","36.67946","URU.a-ra-a, ʿrw, 𐡏𐡓𐡅","town","Ḫamāt, Syria","Bagg RGTC 7 1: 19–20"
+98,"Arāši","Arāši, Rāši","–","–","–","–","region","–","Helsinki Atlas: 6 (map 11 B3)"
+115,"Arīdi","Arīdi, Aridi, Arīdu, Aridu, Jaridu, Jaridi, Iaridu, Tell ʿArāda, Tall ʿArāda, تل عرادة",2,"36.74381","40.26703","URU.a-ri-di, URU.ia-ri-di","town","Gūzāna province, Syria","Helsinki Atlas (Arīdu (1), map 3 D3), Bagg RGTC 7 2/1: 62"
+116,"Arīdu","Arīdu, Aridu, Ruwandiz, Rāwandūz, Ṟuwandiz, راوندوز, رواندز",4,"36.61667","44.51667","KUR.a-ri-di, URU.a-ri-di, URU.a-ri-du","fortified city","Ḫabrūri, Iraq","Bagg RGTC 7 3/1: 60, Helsinki Atlas: 6 (Arīdu (2), map 4 D5), Bagg RGTC 7 1: 62"
+129,"Arūmâ","Arumâ, Arūmâ, Rûmâ, Rumah, רוּמָה, Ḫirbat ar-Rūma, Ḥirbe Ruma, חרבת רומה",1,"32.78854","35.29285","URU.a-ru-ma-a, רוּמָה","town","Bīt-Ḫumrî, Galilee, Israel","Helsinki Atlas: 6, Bagg RGTC 7 1: 27"
+111,"Arḫi","Arḫi","–","–","–","–","district","–","Helsinki Atlas: 6 (map 5 C2)"
+126,"Arṣania","Arṣania, Murat Su, Arsanias",1,"–","–","–","river","–","Helsinki Atlas: 6 (map 3 D2)"
+127,"Arṣaškun","Arṣaškun, Erciṣ",4,"39.02906","43.35914","–","capital","–","Helsinki Atlas: 6 (map 4 C2)"
+133,"Asatia","Asatia, Asati","–","–","–","–","country","Naʾiri","–"
+134,"Asdūdimmu","Asdūdimmu, Asdudimmu, Azōtos Paralios, Ἄζωτος παράλιος, Ašdôd-Yam, Ashdod Yam, H̱orbat Ashdod Yam, חרבת אשדוד ים, Minat el-Qal'a, Tēl Mor, תל מור",1,"31.77931","34.62103","URU.as-du-di-im-mu","seaport, city","Pilistu, Israel","Helsinki Atlas: 6 (map 7 C5), Bagg RGTC 7 1: 30, <a href=https://pleiades.stoa.org/places/687843>Pleiades: Azotos Paralios</a>"
+135,"Asdūdu","Asdūdu, Sadūdu, Sidūdu, Asdudu, Ašdod, ʾAḏdādu, Ašdôd, ʾAšdôd, אַשְׁדּוֹד, Azōtos, Ἀζωτός, Azotos Mesogeios, Ἄζωτος μεσόγειος, ʾšdd, 𐤀𐤔𐤃𐤃, 'Esdūd, Tel Ashdod, Tēl Ašdod, Ashdod",1,"31.75604","34.65606","as-du-du, KUR.as-du-di, URU.as-du-di, URU.as-du-du, URU.as-du-ú-di, KUR.as-du-da-a-a, KUR.sa-du-da-a-a, KUR.si-du-da-a-a, URU.as-du-da-a-a, 𐤀𐤔𐤃𐤃, אַשְׁדּוֹד","prov. capital","Pilistu, Israel","Helsinki Atlas: 6 (map 7 C5), Bagg RGTC 7 1: 30–32, <a href=https://pleiades.stoa.org/places/687838>Pleiades: Ashdod/Azotos (Mesogeios)</a>"
+136,"Asiḫi","Asiḫi","–","–","–","–","town","Assyria, Syria","RGTC 7 2/1: 74–75 (Asiḫi 1 and 2), 76 (Ašiḫi)"
+137,"Astārtu","Astārtu, ʿAštartu, ʿAṯtartu, Astārtu, Astartu, Ashtarot, Aštārôt, ʿštrt, 𐤏𐤔𐤕𐤓𐤕‎, עַשְׁתְּרֹת, עַשְׁתְּרֹת קַרְנַיִם, Tell Aštara, Tell Ashtara, Tall Aštara, تل الشتارا",1,"32.8045","36.01537","URU.as-tar-tu, 𐤏𐤔𐤕𐤓𐤕‎, עַשְׁתְּרֹת, עַשְׁתְּרֹת קַרְנַיִם","city","Dimašqa","Helsinki Atlas: 6 (map 8 B4), Bagg RGTC 7 1: 32, <a href=https://pleiades.stoa.org/places/678227>Pleiades: Karnaia/Astaroth?</a>"
+145,"Atalur","Atalur, Lallar, Kurt Dağ, Kurt Dağı, Jabal al Kurd, جبل الكرد, Jabal Kurī, جبل كري, Kartal Dağı",2,"36.68627","36.63681","KUR.a-ta-lu-ur, KUR.lal-la-ar","mountain","Syria, Turkey (?)","Helsinki Atlas: 7 (map 2 C4), Bagg RGTC 7 1: 34 (Atalur),d 154–155 (Lallar), 328, and 329."
+146,"Atinni","Atinnu, Atinni, Atanni, Adennu, Addanôn, Adanôn, Adana, ad-Dānā, الدانا, Kəfar Atin, Ḫānedān","–","35.6997","36.68736","URU.a-ti-in-ni, URU.a-de-en-nu","royal city","Ḫamāt, Syria","Bagg RGTC 7 1: 35 (Atinnu), Parpola Toponyms: 55, Helsinki Atlas: 8 (Dāna)"
+147,"Atunna","Atunna, Atuna, Tuna, Atūnu, Tūnu, Dunna, Tynna, Porsuk, Bohça, Adana",1,"37.51473","34.58111","KUR.a-tu-un-a-a, KUR.a-tú-un-a-a, KUR.a-tu-na-a-a, KUR.tu-na-a-a, KUR.tu-un-na-a-a, URU.a-tú-na-a-a, URU.tu-na-a-a","city, state","Tabāl, Turkey","Helsinki Atlas: 7 (map 1 D3), Bagg RGTC 7 1: 35–36"
+148,"Aukanê","Aukanê, Miyāne (district of?)","–","37.421","47.715","KUR.a-ú-ka-né-e, URU.a-ú-ka-né-e","district, fortified city","Zikirtu, Iran","Bagg RGTC 7 3/1: 79, Helsinki Atlas: 7 (map 5 B4)"
+149,"Awal","Awal, Tell es-Suleimeh","–","34.1672839680068","45.10398610165713","–","–","–","–"
+150,"Azalla","Azalla, Izalla, Aṣalli, al-ʿUyānīya, العليانية","–","34.01469","38.0986","URU.a-za-al-la, URU.a-za-al-li, URU.i-za-la","city","Syria","Bagg RGTC 7 1: 36–37"
+151,"Azamḫul","Azamhul, Tell Muhammed Diyab (?)",4,"36.92458278462991","41.5639438856054","–","–","–","–"
+152,"Azaqâ","Azaqâ, Azeqa, ʿAzēqāh, עֲזֵקָה, Αζηκα, Tēl ʿAzēqāh, תל עזקה, تل عزيقة, Tēl Zekarya, תל זְכַרְיָה, Tell Zakarīya, Tell Zakariya",1,"31.70927","34.94488","URU.a-za-qa-a, עֲזֵקָה","city","Iaʾūdu, Israel","Helsinki Atlas: 7 (map 7 C5), Bagg RGTC 7 1: 37"
+153,"Azari","Azari, Sulaimāniya",4,"35.558333333333","45.441666666667","–","town","–","Helsinki Atlas: 7 (map 11 A1)"
+154,"Azatiwadaya","Karatepe Aslantaş","–","37.29593799675796","36.25398751793364","–","–","–","–"
+155,"Azmu","Azmu, Zalabiya, Zalebiye, زلابية, Yasīm",4,"35.66842","39.84256","URU.az-mu","town","Bīt-Adini, Middle Euphrates, Syria","Helsinki Atlas: 7 (map 3 C5), Bagg RGTC 7 1: 38"
+156,"Azu","Azu, Tell Hadidi","–","36.2636830630028","38.15089325346946","–","–","–","–"
+157,"Azuru","Azuru, Asuru, Yāzūr, Azor, ʾĀzôr, אָזוֹר‎, Tēl Azor, Azur, أزور‎",1,"32.02167","34.7805","URU.a-zu-ru","town","Pilistu, Isqalūna, Israel","Helsinki Atlas: 7 (map 7 C4), Bagg RGTC 7 1: 38"
+140,"Ašnakkum","Chagar Bazar (?)",4,"36.87559543914787","40.89909269814208","–","–","–","–"
+144,"Aštamāku","Aštammaku, Aštamāku, Aštamaku, Abšimmaku, Abtammaku, Išdamugu, Aštakamu, ʾystmk, al-Mastumaḥ, Tall Masṭūma, تل مسطومة, Stūmā, Stūmāk, Stumak",1,"35.87781","36.63077","URU.ab-ši-ma-ku, URU.ab-ta-ma-ku, URU.áš-ta-ma-ku, URU.áš-tam-ma-ku","town","Ḫamāt, Syria","Helsinki Atlas: 6 (map 2 C5), Bagg RGTC 7 1: 33–34 (Aštammaku), <a href=https://pleiades.stoa.org/places/56494917>Pleiades: Aštamaku</a>"
+141,"Aššur","Libbi-āli, Libbāli, Inner City, Aššur, Assur, Ashur, Baltil, Qalʿat Šarqāṭ, Qal'at Sherqat, Qalaat Sherqat",1,"35.45626","43.25979","–","capital, city","Assyria","Helsinki Atlas: 6 (map 10 C1), <a href=https://www.assur.de/> Assur</a>"
+142,"Aššur-iqīša","Aššūr-iqīša, Aššur-iqīša, Takyan Höyük, Zāḫū",4,"37.17944","42.39525","URU.aš-šur-BA-šá","prov. capital","Ulluba, Birtu (2) province","Helsinki Atlas: 6 (map 4 B4), Bagg RGTC 7 2/1: 81"
+143,"Aššur-māssu-urappiš","Aššur-māssu-urappiš","–","–","–","URU.aš-šur-KUR-su-DAGAL.MEŠ","town","Egypt","–"
+139,"Ašḫāni","Ašḫāni, Ašḫani, Isḫanikka, Išḫanik, Ḫān Šayḫūn, Ḫān Šaiḫūn, خان شيخون, aš-Šaʿrāni, aš-Šēḫ Ḥourāni, الشيخ حوراني, ʿAin Saḫnā, عين السحنة",2,"35.44328","36.64629","URU.aš-ḫa-ni, URU.áš-ḫa-ni","city","Ḫamāt, Syria","Helsinki Atlas: 6 (map 8 B1), Bagg RGTC 7 1: 33 (Ašḫani)"
+1088,"Aḫsipuna","Aḫsipuna","–","–","–","URU.aḫ-si-pu-na, 𒌷𒄴𒋛𒁍𒈾","town","Parsua (?), Mādāja (?), Iran","Bagg RGTC 7 3/1: 9"
+22,"Aḫtâ","al-Mīnāʾ, Raʾs al-Basīṭ (?)",3,"36.05979","35.97939","URU.aḫ-ta-a","city, emporium on the seashore","Ḫamāt (?), Kullanīa (province) (?), Mediterranean coast","Helsinki Atlas: 5 (map 2 B4), Bagg RGTC 7/1: 3, Zadok 1996, 11, Barrington Atlas, 67"
+21,"Aḫšūru","Aḫšūru, Aḫšūra","–","–","–","KUR.aḫ-šu-ú-ru, 𒆳𒄴𒋗𒌑𒊒","mount","Zamua (?), Mannāja (?), Iran ","Bagg RGTC 7 3/1: 9, Parpola Toponyms: 6, <a href=https://www.geonames.org/98463/as-sulaymaniyah.html>Geonames: As Sulaymānīyah</a>"
+1089,"Aḫūdu","Aḫūdu, Aḫudu, Uḫūdu","–","–","–","URU.a-ḫu-di, 𒌷𒀀𒄷𒁲","fortified city","Bīt-Amukkāni, Babylonia, Iraq","Bagg RGTC 7 3/1: 9–10"
+138,"Aṣūṣi","Aṣūṣi, Aṣūṣu, Ṣūṣi","–","–","–","URU.a-ṣu-ṣi, URU.ṣu-ṣi","town","Northern Babylonia (?)","Bagg RGTC 7 1: 74"
+158,"Babil","Assyrian name unknown, Babil, Kebili, Kebeli Köyü, Kebeli Koyu","–","37.1876517","42.0271825","–","monument","Turkey","Helsinki Atlas: 7 (map 4 A4), <a href=https://pleiades.stoa.org/places/708232008>Pleiades: Babil</a>"
+160,"Babiti","Babiti, Baziān",2,"35.6365","44.96966","–","pass","–","Helsinki Atlas: 7 (map 10 E1)"
+161,"Badāni","Badāni","–","–","–","URU.ba-da-a-ni","village","Central Assyria","Bagg RGTC 7 2/1: 88 (Badāni 3)"
+162,"Badāni (2)","Badani, Badānu, Badāni, Fadana, Phaddan, Tall Feddān, Yukarı Telfidan, Yukarıbeğdeş, Aşağı Telfidan, Aşağıbeğdeş",3,"36.84738","38.9045","URU.ba-da-ni, URU.ba-da-na-a-a","village","Ḫarrānu province, Turkey","Bagg RGTC 7 2/1: 87–88 (Badāni 2), Helsinki Atlas: 7 (Badānu, map 3 B4), <a href=https://pleiades.stoa.org/places/658467>Pleiades: Fadana</a>"
+163,"Badānu","Badānu, Badāni","–","–","–","URU.ba-da-na-a-a","tribe","Sinai Peninsula (?), Arabian Peninsula (?)","Bagg RGTC 7 1: 41 (Badāni 1)"
+166,"Baliḫu","Baliḫu, Balīḫu, Baliḫā, Baliḫum, Baliḫa, Ḫarru-ša-mār-Balīḫi, Tell Abyaḍ, Tell Abid, Tall Abyaḍ, تل ابيض, ʿAin al-ʿArūs, عين العروس",3,"36.6844","38.98529","URU.ba-li-ḫi, URU.ba-li-ḫu","town, city","Syria","Helsinki Atlas: 7 (map 3 B4), Bagg RGTC 7 2/1: 90–91 (Balīḫu 1)"
+164,"Balāṭa","Balāṭa, Balaṭu, Balatu, Balad, Balāṭu, Balāṭāja, Balāṭ, Eski Moṣul, Eski Mosul, اسكي موصل, al-Mauṣil-al-Qadīm, Tall Ğikān, Tall Jikan",3,"36.51292","42.73595","URU.ba-la.MEŠ, URU.ba-la-ṭa, URU.ba-la-ṭa-a-a, URU.ba-laṭ, URU.ba-laṭ-a-a","town, prov. capital","Central Assyria, Province of the crown prince, Iraq","Helsinki Atlas: 7 (map 4 B5), RGTC 7 2/1: 89–90 (Balāṭāja)"
+165,"Balīḫ","Balīḫu, Balissos, Balīḫ, Daisan",1,"–","–","–","river","–","Helsinki Atlas: 7 (map 3 C4)"
+167,"Banai-barqa","Banai-barqa, Banajabarqa, B<sup>e</sup>nê b<sup>e</sup>raq, Bnē Brāq, בְנֵי־בְרַק, H̱orbat Bnē Brāq, חרבת בני ברק, Ibn Ibrāq, Tall Abū Zētūn, Tēl Zētūn, תל זיתון",1,"32.03613","34.82061","URU.ba-na-a-a-bar-qa","town","Isqalūna, Pilistu, Israel","Bagg RGTC 7 1: 42 (Banajabarqa), Helsinki Atlas: 7 (Banai-barqa, map 7 C4)"
+168,"Baqarru","Baqarru, Baqarri, Baqar, Qabrā, Tepe Yaʿqūb, Tall Bqarta, Tell Baqrta, Tappe Yaʿqūb, تبه يعقوب",3,"35.95195","43.90993","URU.ba-qar, URU.ba-qar-ma, URU.ba-qar-ri","town","Assyria, Arzūḫina (province) (?)","Helsinki Atlas: 7 (map 4 D6), Bagg RGTC 7 2/1: 92–93 (Baqarri)"
+169,"Bargâ","Barqum (?)",4,"36.03727524058666","36.96663802100544","–","–","–","–"
+172,"Barzaništa","Barzaništa, Barzanista, Göktepe","–","37.69504","40.38403","URU.bar-za-ni-is-ta, URU.bar-za-ni-iš-ta","town","Izalla","Bagg RGTC 7 2/1: 97–98"
+173,"Barzaništun","Barzaništun","–","–","–","URU.bar-za-ni-iš-tu-un","town","Bīt-Zamāni, Turkey","Bagg RGTC 7 2/1: 98"
+171,"Barūri","Barūri, Baruḫu, Bourira (?), Burēr (?)","–","31.56667","34.65","URU.bar-ú-ri","town","Central Assyria (?), Iraq (?), Ḫazzat (?), Pilistu (?), Israel (?)","RGTC 7 2/1: 97"
+170,"Barḫalza","Barḫalza, Barḫalzu, Barḫalzi",2,"–","–","–","province, prov. capital","–","Helsinki Atlas: 7 (map 4 B5), RGTC 7 2/1: 93–95"
+176,"Batruna","Botrus, Batrun?","–","34.25624622926138","35.65955373869843","–","–","–","–"
+175,"Bašimu","Bašimu, Liyan (?), Būšehr, Sabzabad Bushehr",3,"28.9071","50.8456","–","city","–","Helsinki Atlas: 7 (map 17 C5)"
+181,"Baʾali","Baʾali, Baʾalu, Ḫirbat Balʿama, Khirbet Balama, Khirbet Bel'ameh, Khirbet Bal’ama, Ibleam, יִבְלְעָם, Baʿlabakk, Heliopolis","–","34.00675","36.20437","URU.ba-ʾa-li, URU.ba-aʾ-li","town","Syro-Palestine, Dimašqa (?)","Bagg RGTC 7 1: 39"
+182,"Baʾali-raʾasi","Baʾli-rāʾsi, Baʾali-raʾasi, Baʾali-raʾsi, Baʾil-rāʾsi, Baʿal Rôš, Rešbaʿal, Rās an-Nāqūra, Raʾs an-Nāqūra, ראש הננקרה, Ǧabal al-Karmil, جبل الكرمل, Har ha-Karmel, הר כרמל, Karmēlos",2,"33.09409","35.10378","KUR.ba-ʾa-li-ra-ʾa-si/KUR.ba-ʾa-li-ra-si, KUR.ba-aʾ-li-ra-aʾ-si/KUR.ba-aʾ-li-ra-si","mountain","Mediterranean coast, Phoenicia, Syria","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 40–41 (Baʾali-raʾsi)"
+183,"Baʾil-gazara","Baʾil-gazara, Ġazīr (?), Ghazir (?), (?) غزير","–","34.01823","35.66611","URU.ba-il-ga-za-ra","town","Syro-Palestine","Bagg RGTC 7 1: 41–42"
+184,"Baʾli-Ṣapūna","Cassius, Ğabal al-Aqraʿ",2,"–","–","–","mountain","–","Helsinki Atlas: 7 (map 2 B5)"
+174,"Baṣiru","Baṣiru, Tell Bazi","–","36.42789","38.27684","–","–","–","–"
+185,"Beer-šeba","Beersheva, Beer-ševa, Tell es-Saba'","–","31.24500206386151","34.84073003359802","–","–","–","–"
+186,"Ben Shemen Forest","Assyrian name unknown, Ben Shemen Forest","–","31.93558","34.96537","–","monument","Israel","–"
+187,"Benuḫše","Benuḫše","–","–","–","URU.be-nu-uḫ-še (URU.be?-nu?-uḫ?-še?)","town","Central Assyria (?)","Bagg RGTC 7 2/1: 102"
+191,"Bethlehem","Bethlehem, Betlem, Bethleem, Bet Leḥem, Bait Laḥm, בֵּית לֶחֶם, بيت لحم, Βηθλεέμ","–","31.70306","35.19556","بيت لحم, בֵּית לֶחֶם, Βηθλεέμ","town","Israel, Iaʾūdu","–"
+192,"Bethsaida","Gešur (?), Ṣaydȧn, Bethsaida, Bẹt Ṣẹdȧ, Bait Ṣaidā, بيت صيدا, Beit Tsaida, בית צידה, Ioulias, Iulias, Julias, Ἰουλίας, al-Maṣʿadīya, Al Mus‘adīyah, المسعدية, al-ʿAraǧ, Tell ʿAraj, Tel ʿAraj, El Araj, at-Tall","–","32.9103","35.63066","–","fortified city","Gešur (?)","<a href=https://pleiades.stoa.org/places/678065>Pleiades: Bethsaida</a>, <a href=https://bethsaidaarchaeology.org>Bethsaida Excavations Project</a>, <a href=https://www.elarajexcavations.com/updates>El Araj Excavation Project</a>"
+193,"Beʾrū","Biʾrû, Beʾrû, Beʾrū, Biruta, Biʾrutu, Biʾrūtu, bjrt, 𐤉𐤓𐤕‎𐤁, Berytos, Bērytos, Berytus, Laodikeia, Colonia Iulia Augusta Felix, Beirut, Bairūt, بَيْرُوت",1,"33.89942","35.50818","URU.bi-iʾ-ru-u, 𒌷𒁉𒀪𒊒𒌋, URU.bi-iʾ-ru-ú, 𒌷𒁉𒀪𒊒𒌑, 𐤉𐤓𐤕‎𐤁","city, seaport","Phoenicia, Ṣīdūnu, Lebanon","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 43–44 (Biʾrû), <a href=https://pleiades.stoa.org/places/678060>Pleiades: Beirut</a>"
+194,"Bikni","Bikni, Damāvand (?), كوه دماوند (?), Ququ, کوه قوقو",2,"34.2071","51.031","KUR.bi-ik-ni, KUR.bi-ik-nu","mountain","Mādāja, Iran","Helsinki Atlas: 7 (map 6 D5), Bagg RGTC 7 3/1: 105–106"
+197,"Birgiʾ","Birgiʾ, Barğā, Barja, برجا","–","33.64972","35.44278","URU.bi-ir-gi-iʾ","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 42–43"
+198,"Birtu (2)","Birtu, Bīrtu","–","–","–","URU.ḪAL.ṢU","city","–","RGTC 7 2/1: 105–106 (Birtu 2)."
+199,"Birtu (3)","Birtu, Bīrtu","–","–","–","URU.ḪAL.ṢU","town","–","RGTC 7 2/1: 106 (Birtu (3))."
+200,"Birtu-ša-Adad-rēmanni","Birtu-ša-Adad-rēmanni, Birat-ša-Adad-rēmanni, Fort Adad-rēmanni, Panğvīn (?), بينجوين, پنجوین","–","35.62054","45.94908","URU.bir-tu-ša-<sup>m</sup>10-rém-a-ni, URU.ḪAL.ṢU-<sup>md</sup>IM-rém-a-ni, URU.ḪAL.ṢU-ša<sup>md</sup>10-rém-a-ni, URU.ḪAL.ṢU-<sup>md</sup>IŠKUR-rém-a-ni","town, fortress","Māzamua, Mannea, Iraq","Bagg RGTC 7 3/1: 110"
+201,"Biruatti","Biruatti","–","–","–","KUR.bi-ru-at-ti","mount","–","Parpola Toponyms: 75"
+202,"Bisuru","Bisuru, Baśar, Basalla, Bašar, Bisir, Bešri, Ğabal Bišrī, جبل البشري",1,"35.35449","39.28944","KUR.bi-su-ru, KUR.bé-eš-ri (MA)","mountain","Syria","Helsinki Atlas: 7 (map 9 B1), Bagg RGTC 7 2/1: 107"
+241,"Bitirume","Bitirume, Botrys, Βότρυς, al-Batrūn, Batroûn, البترون","–","34.25528","35.65806","URU.bi-ti-ru-me","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 51, <a href=https://pleiades.stoa.org/places/668214>Pleiades: Botrys</a>"
+242,"Biturra","Biturra, Piturra, Beidul, Bedol, بيدول","–","36.86618","43.2352","URU.BI-it-ur-ra, URU.bi-it-ur-ra, URU.pí-it-ur-ra","town","Central Assyria, Iraq","Bagg RGTC 7 2/1: 121"
+243,"Borsippa","Borsippa, Barsip, Birs Nimrūd, Birs Nimrud, برس نمرود",1,"32.39245","44.3425","bar-sip.KI, BÁR.SIPA, BÁR.SÍPA.KI, bur-sip.KI, DUMU-bar-sip.KI, DUMU-BÁR.SIPA.KI, DUMU.MEŠ.bar-sip.KI, DUMU.MEŠ-BÁR.SIPA.KI, LÚ.BÁR.SIPA.KI.MEŠ, LÚ.BÁR.SIPA.MEŠ, LÚ.DUMU-BÁR.SIPA.KI, LÚ.DUMU.MEŠ-BÁR.SIPA.KI, URU.BÁR.SIPA, URU.BÁR.SIPA.KI","prov. capital","Babylonia, Iraq","Helsinki Atlas: 7 (map 10 D4), Bagg RGTC 7 3/1: 98–100 (Barsip)"
+245,"Bulijanu","Bulijanu, Buliiana, Buliana, Buliyana, Bālāne/Yüceköy (?), Tall Abade (?)","–","37.60477","41.3396","URU.bu-li-ia-na, URU.bu-li-ia-ni","town, pass","Ḫabḫu, Turkey","Bagg RGTC 7 2/1: 125"
+246,"Bumame","Bumame, Tall Mamū, تل مامو","–","35.93126","37.02406","URU.bu-ma-me","town","Ḫamāt, Syria","Bagg RGTC 7 1: 55"
+1063,"Bunais","Bunais, Silsilat Jibāl Azmar, سلسلة جبال ازمر, Jabal Ţāslūjah, جبل طاسلوجة, Kānīrāš-Pass (?), كانى ڕەش, Qandīl Dāġ (?), Silsilat Jibāl Qandīl (?), سلسلة جبال قنديل","–","35.63017","45.47669","KUR.bu-na-is","mountain, pass","Zamua, Iran (?), Iraq (?) ","Bagg RGTC 7 3/1: 161–162, Edmonds (1957), <i>Shar Bazhêr and the Basin of the Qalachuwalan</i>. The Geographical Journal 123/3, 318–328"
+1064,"Bunisa","Bunisa, Bunāsi, Bunisu","–","–","–","URU.bu-na-a-si, KUR.bu-ni-sa-a-a, URU.bu-na-i-sa-a-a, URU.bu-ni-sa-a-a","fortified city, country","Zamua, Iran (?), Iraq (?) ","Bagg RGTC 7 3/1: 162, Edmonds (1957), <i>Shar Bazhêr and the Basin of the Qalachuwalan</i>. The Geographical Journal 123/3, 318–328"
+248,"Buramma","Buramma, Purammu, Burrim","–","–","–","URU.bu-ram-ma","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 126"
+252,"Buruqi","Buruqi, Buruqu","–","–","–","URU.bu-ru-qi","town","Gūzāna (?)","Bagg RGTC 7 1: 128–129 (Buruqi 1)"
+253,"Buruqu","Buruqu, Buruqi","–","–","–","URU.bu-ru-qi, URU.bu-ru-qa-a.a","town","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 129 (Buruqi 2)"
+254,"Burušḫanda","Burušhanda, Açemhöyük (?)",4,"38.41158900602762","33.83548385023444","–","–","–","–"
+1065,"Bustus","Bustus, Bustis, Buštus, Kangāvar (?), کنگاور","–","34.50164","47.96017","KUR.bu-us-ti-is, KUR.bu-us-tu-us, KUR.bu-uš-tu-us, URU.bu-us-tu-us","district","Mādāja, Iran","Bagg RGTC 7 3/1: 163–164"
+258,"Buto","Buto, Tell el-Fara'in","–","31.19626755366928","30.7426378739966","–","–","–","–"
+257,"Butāmu","Butāmu, Bdama (?), بداما (?), Beitān (?), Bādāmā (?), Butaynah (?), بتينة (?), Bitammā(?)","–","36.46136","36.83682","URU.bu-ta-a-mu","town","Pattinu, Syria","Bagg RGTC 7 1: 56, Astour (1963), JNES 22, Place-Names from the Kingdom of Alalaḫ...: 224, map"
+256,"Bušâ","Bušâ","–","–","–","URU.bu-šá-a","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 130"
+255,"Buṣruna","Buṣruna, Bosra, Buṣra'","–","32.5198850290294","36.48140619600834","–","–","–","–"
+159,"Bābili","Bābil, Babylon",1,"32.54036","44.42633","–","capital, city","Babylonia","Helsinki Atlas: 7 (map 10 D4)"
+1059,"Bāra","Bāra, Baragird, Girdabor, Girdābur, جردبور","–","35.70139","45.19889","URU.ba-a-ra, URU.ba-ra-a-a","town","Zamua, Iraq","Bagg RGTC 7 3/1: 95–96"
+177,"Bāza","Bāza","–","–","–","KUR.ba-a-za","territory","Central Assyria, Ḫabḫu","Bagg RGTC 7 2/1: 99"
+178,"Bāzi","Bāzi, Bāzu","–","–","–","KUR.ba-zi","territory","North Mesopotamia","Bagg RGTC 7 2/1: 99 (Bāzi 1)"
+179,"Bāzi 2","Bazi, Bāzi, Bāzu","–","–","–","URU.ba-zi","town","Central Assyria (?)","Bagg RGTC 7 2/1: 99 (Bāzi 2 (?))"
+180,"Bāzu","Bāzu, Bāṣi, Bazza, Baz, Bīt-Bāzi, Bāṣ, Baṣ, Bezu, Bāsu, Strait of Hormuz, Azraq Oasis","–","25.99163","49.49675","KUR.ba-a-zi, KUR.ba-a-zu, KUR.ba-az-zi, URU.ba-a-su, URU.ba-a-ṣi, URU.ba-zi, LÚ.be-zu","territory, land, state","Arabian Peninsula","Bagg RGTC 7 2/1: 100–101"
+188,"Bēt-el","Bet-el, Betel, Beitin?","–","31.92623433858433","35.23912780857168","–","–","–","–"
+189,"Bēt-Šean","Bet Shean, Bit-Sani, Scythopolis, Tell el-Hosn","–","32.50419181537359","35.50300346740403","–","–","–","–"
+190,"Bēt-Šemeš","Bet-Šemeš, Bet-Shemesh, Tel Bet-Shemesh","–","31.75189849886516","34.97455573812866","–","–","–","–"
+195,"Bīrāti (city)","Bīrāti, Birtu, Ḫararāti, Ḥadīṯa",3,"34.178","42.376","–","city","–","Helsinki Atlas: 7 (map 10 B2)"
+196,"Bīrāti (fortress)","Bīrāti, Birthôn",3,"37.79383","40.97216","–","fortress","–","Helsinki Atlas: 7 (map 3 D3)"
+203,"Bīt-Abdadāni","Bīt-Abdadāni, Abdadāna",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 D1)"
+204,"Bīt-Abu-ilāʾī","Bīt-Abu-ilāʾī, Āl-Abu-ilāʾī, Bīt-Abī-Ilāja","–","–","–","–","city","east Ǧazīra","RGTC 7 2/1: 108-109"
+206,"Bīt-Adad-erība","Bīt-Adad-erība, Bit-Adad-eriba, Tell Baqaq 1-2, Tell Baqāq 2, Tall Baqqaq 2, Tall Buqāq 2",1,"36.68995","42.93595","URU.É-10-SU, URU.É-<sup>m</sup>10-SU","town","Central Assyria, Tamnūna province, Iraq","Helsinki Atlas: 7 (map 4 B5), Bagg RGTC 7 2/1: 109–110"
+205,"Bīt-Adad-ēreš","Bīt-Adad-ēreš, Bēt-Adad-ēreš","–","–","–","URU.É-m10-KAM-eš","town","Central Assyria (?)","Bagg RGTC 7 2/1: 109"
+207,"Bīt-Adini","Bêt-eden, bytʿdn",3,"–","–","–","territory","–","Helsinki Atlas: 7 (map 3 B4)"
+208,"Bīt-Agūsi","Bīt-Agūsi, Arpadda",2,"–","–","–","country","–","Helsinki Atlas: 7 (map 2 D4)"
+209,"Bīt-Ammān","Bīt-Ammān, Ammon, ʿAmmān",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 7 D5)"
+210,"Bīt-Amukāni","Bīt-Amukāni",2,"–","–","–","territory","–","Helsinki Atlas: 7"
+211,"Bīt-Bagāia","Bīt-Bagāia, Kār-Issār, Bīt-Gabāia, Bīt-Gabia","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110, Parpola Toponyms: 78"
+213,"Bīt-Barrūa","Bīt-Barrūa, Borūğidr",4,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 D3)"
+212,"Bīt-Baḫiāni","Bīt-Baḫiāni",2,"–","–","–","country","–","Helsinki Atlas: 7 (map 3 C4)"
+214,"Bīt-Bunakki","Bīt-Bunakki, Hinemini",4,"33.22933","47.21133","–","city","–","Helsinki Atlas: 7 (map 11 C3)"
+215,"Bīt-Daganna","Bīt-Daganna, Bīt-Dagan, Bīt-Dagān, Bēt Daǧan, Bejt Dagan, Bēt Dağan, בית דגן, Beit Dagon, Beth-dagon, בֵּית־דָּגוֹן, Beit Dajan","–","32.00191","34.82977","URU.É-da-gan, URU.É-da-gan-na, בֵּית־דָּגוֹן","town","Pilistu, Isqalūna, Palestine, Israel","Bagg RGTC 7 1: 48, Parpola Toponyms: 80 (Bīt-Dagān)"
+216,"Bīt-Dakkūri","Bīt-Dakkūri",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 10 D4)"
+217,"Bīt-Dērāja","Bīt-Dērāja, Bīt-Dērāya, Bīt-Dērāia, Tamertu-ša-Bīt-Dērāja, Bādarājā, Badra (?), Badrah (?), بدرة (?)","–","33.11508","45.93344","URU.É-de-ra-a-a, É-<sup>m</sup>de-ra-a-a","city","Dēru province (?), Iraq (?), northern Levant (?)","Bagg RGTC 7 2/1: 112"
+218,"Bīt-Gabbāri","Bīt-Gabbāri, Samʾalla, Samʾal",2,"–","–","–","territory, state, province","Syria","Helsinki Atlas: 7 (map 2 C4)"
+219,"Bīt-Gisimeja","Bīt-Gisimeja, Ḫān al-Qāsimīya (?), مخيم القاسمية (?), القاسمية (?), Biqsmayyā (?), Boqsmaïya (?), بقسميا (?), Bišmizzīn (?), Bechmizzîne (?), بشمزين (?)","–","34.25194","35.765","URU.É-gi-si-me-ia, URU.É-mgi-si-me-ia","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 49"
+225,"Bīt-Iakīn","Bīt-Iakīn, Bīt-Yakīn",2,"–","–","–","territory","Babylonia, Māt-tâmti, Iraq","Helsinki Atlas: 7 (map 16 C2)"
+226,"Bīt-Imbî","Bīt-Imbi, Bīt-Imbīja","–","–","–","URU.É-<sup>m</sup>im-bi-i, URU.É-<sup>md</sup>im-bi-i, URU.É-im-bi-i, URU.É-im-bi-ia, URU.É-im-bi-ía, É-<sup>m</sup>im-bi-ia, URU.É-<sup>m</sup>im-bi-ia, URU.É-<sup>m</sup>im-bi-ía","fortress, city","Elam, Arāši","Bagg RGTC 7 3/1: 133 (Bīt-Imbīja), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+1060,"Bīt-Ištar","Bīt-Ištar, Bīt-Issār, Ravānsar, Rawānsīr, روانسر","–","34.71208","46.65129","KUR.É-<sup>d</sup>15, URU.É-15, URU.É-<sup>d</sup>15, URU.É-<sup>d</sup>INNIN","town","Parsua (?), Mādāja (?), Iran ","Bagg RGTC 7 3/1: 134"
+227,"Bīt-Kapsi","Bīt-Kapsi, Bīt-Kabsi, Bījār (?), Bīğār (?), بيجار (?)",2,"–","–","DUMU-<sup>m</sup>kap-si, URU.É-kap-si, URU.kap-si, KUR.É-kap-si-a-a","territory","Iran","Helsinki Atlas: 7 (map 11 C1), Bagg RGTC 7 3/1: 137–138"
+1061,"Bīt-Kubatti","Bīt-Kubatti, Bīt-Kubati, Kird Qariyat Čiarza (?), Tepe Qebristan (?)","–","35.09844","45.54416","É-ku-bat, É-<sup>m</sup>ku-bat-ti","fortified city","Māt-kaššî, Iraq","Bagg RGTC 7 3/1: 140"
+228,"Bīt-Purūtaš","Bīt-Purūtaš",3,"–","–","–","country","–","Helsinki Atlas: 7 (map 2 B2)"
+229,"Bīt-Ramannu","Bīt-Ramannu","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 2/1: 117"
+1062,"Bīt-Ramatua","Bīt-Ramatua, Nārtu-šaplītu, Rūdḫāne-ye Malāyer (?), Rūd-e Gāmāsīāb (?), رودخانه گاماسیاب (?)","–","–","–","É-<sup>m</sup>ra-ma-tu-a, É-<sup>m</sup>ra-ma-ti-ia","territory","Mādāja, Iran","Bagg RGTC 7 3/1: 144–154"
+230,"Bīt-Ruḫūbu","Bīt-Ramannu, Beth Rehov",1,"–","–","–","country","–","Helsinki Atlas: 7 (map 8 A3)"
+231,"Bīt-Sagbat","Bīt-Sagbat, Ecbatana, Ekbatana,Hamadan, Ḫamadān, Teppe-ye Hekmatana",3,"34.80700819452446","48.51727288555129","–","city","–","Helsinki Atlas: 7 (map 11 D2)"
+836,"Bīt-Sangibūti","Bīt-Sangibūti, Sangibūtu, Singibūtu, Šingibutu, Bīt-Singibūti, Singibūti, Sangibūti, Šāhābād Plain, Eslāmābād-e Gharb, اسلام آباد غرب, Šāhābād-e Ġarb, شاه آباد غرب",2,"34.1089","46.52988","KUR.É-sa-an-gi-bu-te, KUR.É-sa-an-gi-bu-ti, KUR.É-si-in-gi-bu-ti, KUR.sa-an-gi-bu-ti, KUR.si-in-gi-bu-ti, KUR.si-in-gi-bu-te, KUR.si-in-gi-bu-tú, KUR.sin-gi-bu-te, KUR.šin-gi-bu-tú, URU.É-sa-an-gi-bu-ti, KUR.sin-gi-bu-ta-a-a","territory","Mādāja, Ḫarḫār province, Iran","Zimansky (1990), <i>Urartian Geography and Sargon's Eighth Campaign</i>, JANES 49/1: 15, Parpola Toponyms: 88, 303, Bagg RGTC 7 3/1: 148–149 (Bīt-Sangibūti 1), Helsinki Atlas: 16, 30 (Sangibūtu (2), map 11 B2)"
+236,"Bīt-Tābti","Bīt-Tābti, Dašt-e Kavīr",2,"–","–","–","region","–","Helsinki Atlas: 7"
+237,"Bīt-Zamāni","Bīt-Zamāni, Āmidu, Amēdu, Amidu, Amidi, Amida, Amedu, Āmid, Diyarbakir, Diyarbakır",1,"–","–","–","province","Turkey","Helsinki Atlas: 8 (map 3 C2)"
+240,"Bīt-Zualza","Bīt-Zualza, Bīt-Zualzaš",3,"–","–","KUR.É-zu-al-za, KUR.É-zu-al-za-áš","territory","Iran, Bīt-Sangibūti (?)","Bagg RGTC 7 3/1: 157–158, Helsinki Atlas: 8 (map 11 C2)"
+239,"Bīt-Zīzê","Bīt-Zīzê","–","–","–","–","town","Gūzāna","Bagg RGTC 7 2/1: 123/–124, PNA 2/2: 753"
+238,"Bīt-zitti","Bīt-zitti, Bīt-Zitti, Zaitā, Zeitā, زيتا","–","33.5025","35.40028","URU.É-zi-it-ti, URU.É-zi-it-tú","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 54–55"
+234,"Bīt-Šabāia","Bīt-Šabāia",3,"34.46333","41.5045","–","town","–","Helsinki Atlas: 7 (map 9 D2)"
+235,"Bīt-Šilāni","Bīt-Šilāni, Bīt-Silāni, Šilāni","–","–","–","KUR.É-msi-la-a-ni, KUR.É-ši-la-a-ni, KUR.É-<sup>m</sup>ši-la-a-ni, <sup>m</sup>ši-la-a-ni, KUR.É-<sup>m</sup>šil-la-na","country, territory, tribe","Southern Babylonia","–"
+233,"Bīt-ša-muḫḫi-āli","Bīt-ša-muḫḫi-āli, Bītu-ša-muḫḫi-āli","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/1: 119"
+220,"Bīt-Ḫalupê","Bīt-Ḫalupê",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 9 C1)"
+221,"Bīt-Ḫamban","Bīt-Ḫamban, Cambadene",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 C2)"
+222,"Bīt-Ḫazaʾil","Bīt-Ḫazaʾil, Dimašqa, Damascus",1,"–","–","–","country","–","Helsinki Atlas: 7 (map 8 B3)"
+223,"Bīt-Ḫumrî","Bīt-Ḫumrî, Israel, byt ʿmry, Bīt-Ḫumria",1,"–","–","–","country","Israel","Helsinki Atlas: 7 (map 7 C4)"
+224,"Bīt-Ḫurāpî","Bīt-Ḫurāpî, Bīt-Ḫurābî","–","–","–","URU.É—ḫu-ra-pi-i, URU.É—ḫu-ra-bi-i","town","Central Assyria, Nineveh province (?)","Bagg RGTC 7 2/1: 115"
+232,"Bīt-Ṣupūri","Bīt-Ṣupūri, Bīt-Ṣupuri, bt ṣpr, 𐤁𐤕 𐤑𐤐𐤓‎, Ornithopolis, Ormithōnpolis, Ornithon Polis, Ὀρνίθων πόλις, Tell Burāq (?), Tall al-Burāq (?), ʿAdlūn (?), عدلون (?), ʿAin Ṣaufar (?), عين صوفر (?), Ṣfārīya/Ṣfaray/Bṣfaray (?), صفاراي (?), Mazraʿat Bṣaffūr (?), مزرعة بصفّور (?)",4,"33.55528","35.49389","URU.É-ṣu-pu-ri, URU.É-<sup>m</sup>ṣu-pu-ri, bt ṣpr, 𐤁𐤕 𐤑𐤐𐤓‎","town","Phoenicia, Ṣīdūnu, Lebanon","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 53–54, <a href=https://pleiades.stoa.org/places/678000>Pleiades: ‘Ad Nonum’/Ornithon Polis?</a>"
+244,"Būia","Būia, Cham Kizil",2,"–","–","–","river","–","Helsinki Atlas: 7 (map 11 B1)"
+247,"Būr-marʾīna","Būr-marʾīna, Burmarʾina, Burmarina, brmrn, 𐡁𐡓𐡌𐡓𐡍, Marinā, Marinâ ša Bīt-Adini, Marīna, Marīna ša šadê, Tell Šiʾūḫ Fawqāni, Tell esh-Shiyukh Fawqani, Tell Shiukh Fawqani, Tall Šijūḫ Fawqānī, تل الشيوخ فوقاني",1,"36.78761","38.03595","URU.bur-mar-ʾi-na, URU.ma-ri-na-a šá É-ma-di-ni, brmrn, 𐡁𐡓𐡌𐡓𐡍","town","Bīt-Adini, Syria","Helsinki Atlas: 8 (map 3 B4)"
+251,"Būru-Wēr","Būru-Wēr (?), Buresa (?)","–","–","–","URU.bu-ru-e-er (?), URU.bu-ru-e-sa (?)","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 129"
+249,"Būrāte","Būrāte, Būrāti, Burāti, Burate, Burati","–","–","–","URU.bu-ra-a-te","town","Ḫābūr triangle","Bagg RGTC 7 1: 127 (Būrāte 1), Zadok 1995: 237, 3.6.4.5"
+250,"Būrāti","Būrāte, Būrāti, Burāti, Burate, Burati","–","–","–","URU.bu-ra-a-ti, URU.bu-ra-a-te, URU.ḪAL.ṢU","town","Elam","Bagg RGTC 7 1: 127 (Būrāte 2), Parpola Toponyms: 95 (Burāti)"
+259,"Daban","Daban, Rūdḫāne-ye Gangir",3,"–","–","–","river","–","Helsinki Atlas: 8 (map 11 A3)"
+261,"Dadiualla","Dadiualla, Dadi-ualla, Tall al-Ḥusainiyeh, Husaynīyah, حسينية","–","36.68203","43.24538","URU.da-di-ú-al-la","town","Central Assyria, Talmūsa province","Bagg RGTC 7 2/1: 131"
+262,"Daduni","Daduni","–","–","–","KUR.da-du-ni","mountain (?), territory (?)","Zabban","Bagg RGTC 7 2/1: 131"
+1067,"Daiaeni","Daiaeni, Dajaeni, Daiēnu, Daiēni, Dajēni, Diaueḫe, Taochoi, Tauchoi, Τάοχοι","–","40.5","41.5","KUR.da-ia-a-ni, KUR.da-ia-e-ni, KUR.da-ia-ni, URU.da-ia-e-ni, KUR.da-ie-ni","territory","Naʾiri, Urarṭu, Turkey","Bagg RGTC 7 3/1: 167–168, <a href=https://pleiades.stoa.org/places/857343 >Pleiades: Taochoi</a>, <a href=https://books.openedition.org/cdf/4439>MTT I/2</a>"
+263,"Daiašeti","Daiašeti, Dajašeti, Daiašetu, Sitha (?), ruins of al-Aswad (?)","–","33.51151","42.80401","URU.da-ia-še-ti","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 1: 132, <a href=https://pleiades.stoa.org/places/894008>Pleiades: Idu/Diacira/Hit</a>"
+264,"Dalaimme","Dalaimme, Dalhūn, Dalhoun, دلهون","–","33.62667","35.4675","URU.da-la-im-me","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 57–58"
+265,"Damdammusa","Damdammusa, Damdammusu, Damdammusi, Dandammusu, Kaziktepe (?), Pornak (?), Sardebar (?), Sardeoua (?), Tauşantepe (?), Aktepe (?)",4,"37.72463","40.56995","URU.da-am-da-mu-sa, URU.dam<sup>am</sup>-dam-mu-si, URU.dam<sup>am</sup>-dam-mu-su, URU.dam-dam-mu-sa","city","Nirbu, Bīt-Zamāni, Turkey","Bagg RGTC 7 2/1: 133–134, Bagg RGTC 7 2/2: 740 (Aktepe, Dandammusu), 748 (Pornak, Damdammusu, Sinabu), <a href=https://pleiades.stoa.org/places/874681>Pleiades: Sardeoua/‘Sardebar’</a>"
+266,"Dan","Tell Qadi","–","33.2483851722403","35.65224970650611","–","–","–","–"
+268,"Danabu","Danab, Dababu, Din<sup>e</sup>hābâ, Dinhabah, דִּנְהָבָה, Danaba, Danova (?), Ḏunaiba (?), Ṣaidnāyā (?), صيدنايا (?), Ḏunaiba (?), دنيبة (?), Tall Ābil, Abila Dekapoleos/Seleukeia, Quwailibī, Ḏunaiba, ذنيبّة",3,"32.68241","35.8689","KUR.da-na-bi, URU.da-an-a-bi, URU.da-na-bi, URU.da-na-bu","town, fortified city","Dimašqa, Syria (?), Jordan (?)","Helsinki Atlas: 8 (map 8 A3), Bagg RGTC 7 1: 59–60, <a href=https://pleiades.stoa.org/places/668236>Pleiades: ‘Danova’</a>, <a href=https://pleiades.stoa.org/places/677992>Pleiades: Abila Dekapoleos/Seleukeia</a>"
+1066,"Daqalu","Daqalu, Daqala, Dagalā, Til-Daqalu, Diqlâ, דִּקְלָה, Beth Deqla, Bayt-Dagalâ","–","31.77163","45.20362","URU.da-qa-la, URU.da-qa-lu","fortified city","Bīt-Amukkāni, Babylonia, Iraq","Bagg RGTC 7 3/1: 172, Zadok (1985), <i>Zur Geographie Babyloniens während des sargonidischen, chaldäischen, achämenidischen und hellenistischen Zeitalters</i>, Die Welt des Orients 16, p. 60"
+270,"Dawali","Assyrian name unknown, Dawali, Dawālī, Ad-Dawālī, Ad Dawālī","–","34.45357","41.99118","–","–","Sūḫu, Iraq","RIMB 2: 309"
+271,"Dedan","Dedan (?)",4,"26.66642322233715","37.91158927555229","–","–","–","–"
+273,"Diati","Diati","–","–","–","–","town","Assyria","RGTC 7 2/1: 140–141"
+274,"Diban","Diban","–","31.50182","35.77646","–","–","–","–"
+275,"Dibar (mountain)","Dibar, Ğabal ʿAbd al-ʿAzīz",2,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 3 D4)"
+276,"Dibirāti","Dibirāti","–","–","–","–","town","Arrapḫa province (?)","RGTC 7 2/1: 141"
+277,"Diglat","Diglat, Idiglat, Tigris, Diğla",1,"–","–","–","river","–","Helsinki Atlas: 8 (map 10 C2)"
+278,"Dilbat","Dilbat, Tell Dulaim, Tell Dailam, Deilam",1,"32.29571615001174","44.46622078649037","–","city","–","Helsinki Atlas: 8 (map 10 D4)"
+280,"Dimašqa","Dimašqa, Ša-imērīšu, Aram, Damascus, Dimašq",1,"33.51012","36.30921","–","prov. capital","Syria","Helsinki Atlas: 8 (map 8 B3)"
+281,"Dinanu","Dinanu, dynn, 𐡃𐡉𐡍𐡍, Tall Abū Danna, Tell Abu Danne, Abū Dānā, أبو دانا, Abū Z̧annah, أبو ظنة","–","36.1843","37.45152","URU.di-na-nu, 𐡃𐡉𐡍𐡍","city","Bīt-Agūsi","Bagg RGTC 7 1: 62"
+282,"Diniktum","Diniktum (?)",4,"32.8297802583831","45.34726149800385","–","–","–","–"
+283,"Diqūqīna","Diqūqīna, Diqukīna, Diqukina, Ṭāwūq (?), Daqūq (?), Daqūqā (?), داقوق","–","35.13923","44.44907","URU.di-qu-qi-na, KUR.di-qu-ki-na, URU.di-qu-qi-na-a-a","town","Laḫīru (1) (?), Iraq","Bagg, RGTC 7 2/1: 143–144, "
+284,"Dohuk","Dohuk, Dohok","–","36.86249","42.91942","–","monument","Iraq","–"
+285,"Dummutu","Dummutu, Dummete, Dummetu, Ḥalabīya, حلبية, Tall Ḏimme (?)",4,"35.68683","39.82767","URU.du-um-me-te, URU.du-um-mu-tú","town","Bīt-Adini","Helsinki Atlas: 8 (map 3 C5), Bagg RGTC 7 1: 62–63, <a href=https://pleiades.stoa.org/places/894185>Pleiades: Zenobia</a>"
+287,"Dunnu-ša-Uzibi","Dunnu-ša-Uzibi, Giricano","–","37.81718029603009","40.75010515326059","–","–","–","–"
+286,"Dunnāte","Dunnāte","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/1: 146"
+313,"Duʾūa","Duʾūa, Duʾa, Duʾua","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/1: 164"
+260,"Dābigu","Dābigu, Dabigu, Dābiq, Adabiq, Adabig, Dabekon, Dabigu, Dabekov, Tell Dabiq, Tall Dābiq, تل دابق",1,"36.53976","37.26849","URU.da-bi-gi, URU.da-bi-gu","town, fortified city","Bīt-Adini, Syria","Helsinki Atlas: 8 (map 2 D4), Bagg RGTC 7 1: 57 (Dabigu), <a href=https://pleiades.stoa.org/places/727743778>Pleiades: Dabigu</a>"
+267,"Dāna","Dāna, ad-Dāna, ad-Dānā, الدانا",2,"36.21254","36.76998","UU.da-a-na","town","Syria, Unqi (?), Ḫamāt (?)","Helsinki Atlas: 8 (map 2 C4), Bagg RGTC 7 1: 58"
+269,"Dāri-abu (place)","Dāri-abu","–","–","–","URU.dà-ri-AD","town","Central Assyria (?)","Bagg RGTC 7 2/1: 136"
+272,"Dēru","Dēru, Dēr, Der, Dîr, Bīt-Dērāja (?), Bīt-Dērāia (?), Tell ʿAgar (near Badra), Tell Aqar, Tall al-ʿAqar, بتل عقار, Badra, بدرة",1,"33.12467","45.93132","BÀD.KI, BÀD.AN.KI, de-e-ri, de-ri, KUR.de-e-ri, URU.BÀD, URU.BÀD.AN.KI, URU.de-e-ri, URU.de-eʾ-ri, URU.de-ri, URU.de-ru","prov. capital, city, province","Iraq, Dēru province","Helsinki Atlas: 8 (map 11 A3), Bagg RGTC 7 2/1: 138–140, <a href=https://pleiades.stoa.org/places/903013>Pleiades: Deru/Beth Daraya/Badra</a>"
+288,"Dūr-Abīḫāra","Dūr-Abīḫāra, Šaiḫ Yaʿqūb al-Yūsuf",4,"32.75","46.25","–","town","–","Helsinki Atlas: 8 (map 11 B4)"
+289,"Dūr-Aššur","Dūr-Aššur, Dūr-Aššūr, Dur-Aššur, Atlila, Yasim Tepe (?), Tepe Yāsīn (?), Yasin Teppe (?), Bakr Āwā (?), Bakr Awa (?), قرية بكراوه, بکراوه, بەکراوە",4,"35.2216","45.9403","URU.at-li-la, URU.BÀD-aš-šur","prov. capital","Zamua, Iraq, Kurdistan","Bagg RGTC 7 3/1: 74–75 (Atlila), 186 (Dūr-Aššūr 2), Helsinki Atlas: 8 (map 11 A1)"
+291,"Dūr-Aššur-ketti-lēṣir","Dūr-Aššūr-ketti-lēṣir, Dur-Aššur-ketti-lešer, Tell Bdēri, Tell Bderi",1,"36.38745469204624","40.8138848265138","–","town","–","Helsinki Atlas: 8 (map 3 D4)"
+290,"Dūr-Aššūr","Dūr-Aššūr, Dūr-Aššur","–","–","–","URU.BÀD-aš-šur","town","Iraq, east Ǧazīra","Bagg RGTC 7 2/1: 148 (Dūr-Aššur 1)"
+293,"Dūr-Balāṭi","Dūr-Balāṭi, Dūr-balāṭi",4,"33.25","43.83333","–","town","–","Helsinki Atlas: 8 (map 10 C3)"
+294,"Dūr-Balīḫāia","Dūr-Balīḫāia",4,"32.33333","45.56666","–","city","–","Helsinki Atlas: 8 (map 11 A4)"
+296,"Dūr-Bēl-ilāʾī","Dūr-Bēl-ilāʾī, Dūr-Bēl-ilāja","–","–","–","URU.BÀD-EN-DINGIR-a-a, URU.BÀD-<sup>m</sup>EN-DINGIR-a-a","town","Laḫīru (?)","Bagg RGTC 7 2/1: 150"
+295,"Dūr-Bēl-Ḫarrān-bēlī-uṣur","Dūr-Bēl-Ḫarrān-bēlī-uṣur, Tell ʿAbṭa",1,"35.9095","42.55683","–","town","–","Helsinki Atlas: 8 (map 4 B6)"
+297,"Dūr-Iakīn","Dūr-Iakīn, Aginis, Ampē",4,"31.5","47.25","–","city","–","Helsinki Atlas: 8 (map 16 C2)"
+298,"Dūr-Illil","Dūr-Illil, Dūr-Enlil","–","–","–","–","fortress","Assyria, border with Mannea","–"
+299,"Dūr-Katlimmu","Dūr-Katlimmu, Dūr-katlimmu, Dur-Katlimmu, Dūr-duklimmu, Dūr-aduklimmu, Magdala, Tell Šēḫ Ḥamad, Tell Sheikh Hamad, Dur-Katlimmu",1,"35.64538","40.74455","URU.BÀD-kat-lim-mu, URU.BÀD-a-du-ku-1-lim, URU.BÀD-a-duk-1-lim, URU.BÀD-duk-1-lim, URU.BÀD-kat-li-me","capital, city","Lāqê","Helsinki Atlas: 8 (map 9 C1), Bagg RGTC 7 1: 152–153"
+300,"Dūr-Kurigalzu","Dūr-Kurigalzu, ʿAqarqūf, Aqar Quf",1,"33.35466","44.2008","–","city","–","Helsinki Atlas: 8 (map 10 D3)"
+301,"Dūr-Ladīni","Tell Ḫālid",3,"32.33333","44.66666","–","city","–","Helsinki Atlas: 8 (map 10 D4)"
+302,"Dūr-Nanāia","Dūr-Nanāia, Dūr-Nanâ, Dūr-Nanāja, Beonan, Bethonan","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/1: 154–155"
+303,"Dūr-Papsukkal","Dūr-Papsukkal, Mandalī",4,"33.74939","45.5538","–","city","–","Helsinki Atlas: 8 (map 11 A3)"
+304,"Dūr-Samsuiluna","Dur-Samsuiluna, Khafaja B","–","33.35091903696783","44.55058886950584","–","–","–","–"
+305,"Dūr-Sîn-aḫḫē-erība","Dūr-Sîn-aḫḫē-erība, Dūr-Sîn-aḫḫē-erība eššu, Aliḫu","–","–","–","URU.BÀD-<sup>m</sup>30-PAB.MEŠ-SU GIBIL, URU.a-li-ḫu, URU.a-li-ḫi","city","Assyria","Radner (2006), RlA 11: 64"
+310,"Dūr-Undāsi","Dūr-Undāsi, Dur-Untaš, Dūr-Untaš, Chogha Zanbil, Côġa Zanbīl",1,"32.00848520889885","48.52139171893702","–","city","–","Helsinki Atlas: 8 (map 17 A2)"
+292,"Dūr-atānāte","Dūr-atānāte, Dūr-Atānāte, Tawakkal",4,"35.70833","44.87683","–","town","–","Helsinki Atlas: 8 (map 10 D1), Bagg RGTC 7 2/1: 149."
+309,"Dūr-tālitte","Dūr-tālitte, Dūr-Talīti, Dūr-tāliti",3,"35.52667","44.8395","–","town","Central Assyria, Arzūḫina province","Helsinki Atlas: 8 (Dūr-Taliti, map 10 D1), RGTC 7 2/1: 162–163, RGTC 7 2/2: 420"
+306,"Dūr-Šamšī-Adad","Dur-Šamši-Adad, Qal'at Halwanji (?)",4,"36.64406619565289","37.90457984690173","–","–","–","–"
+308,"Dūr-Šarrukku","Dūr-Šarrukku",3,"33.25","44.58333","–","prov. capital","–","Helsinki Atlas: 8 (map 10 D3)"
+307,"Dūr-Šarrukīn","Dūr-Šarrukīn, Dur-Šarrukin, Dur-Šarruken, Khorsabad, Ḫorsābād, Khursabad, خورسباط, دور شروكين",1,"36.50365","43.23367","BÀD-LUGAL-GI.NA, BÀD-LUGAL-GI.NA.KI, BÀD-MAN-GIN, KUR.BÀD-MAN-GIN, URU.BÀD-LUGAL-GI, URU.BÀD-LUGAL-i-ku, URU.BÀD-LUGAL-ú-kin, URU.BÀD-MAN-GI.NA, URU.BÀD-MAN-GIN, URU.BÀD-mLUGAL-GI.NA, URU.BÀD-mLUGAL-GIN, URU.BÀD-mMAN-GI.NA, URU.BÀD-mMAN-GIN, URU.BÀD-mMAN-GIN.NA","capital, city","Assyria","Helsinki Atlas: 8 (map 4 C5)"
+311,"Dūru","Dūru, Anaz",1,"37.14","39.027","–","town","–","Helsinki Atlas: 8 (map 3 C3)"
+312,"Dūʾru","Dūʾru, Duʾru, Dor, Tel Dor, Dôr, Dora, Khirbet el-Burj",1,"32.61645","34.91612","–","prov. capital","–","Helsinki Atlas: 8 (map 7 C4), <a href=https://sketchfab.com/3d-models/tel-dor-biblical-port-israel-223035f60f1a4787b49a0fe479f5692f>3D model</a>"
+315,"Eber nāri","Eber nāri, Aber Nahara",1,"–","–","–","region","–","Helsinki Atlas: 8 (map 2 C5)"
+314,"Ebeḫ","Ğabal Ḥamrīn",2,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 10 C2)"
+316,"Ebla","Ebla, Tell Mardikh","–","35.79888167626015","36.79830790607152","–","–","–","–"
+317,"Ebʾala","Ebʾala, Ebla, Ibla, Ebʾal",3,"35.16666","44.16666","–","town","–","Helsinki Atlas: 8 (map 10 D1)"
+318,"Edimgalkalama","Edimgalkalama, House, Great Bond of the Land, bīt-Ištarān","–","33.10945","45.94789","é-dim-gal-kalam-ma, É.DIM.GAL.KALAM.MA, É-AN.GAL","temple","Dēru, Dēru province, Iraq","George 1993, House Most High: 76, <a href=https://pleiades.stoa.org/places/667048536>Pleiades: Edimgalkalama</a>"
+319,"Ediʾil","ldalion, Dali",1,"35.01654738846563","33.42360094234276","–","city","–","Helsinki Atlas: 8 (map 7 B1)"
+320,"Edurḫenunna","Edurḫenunna, Adad Temple, House, Abode of Plenty","–","–","–","É.DÚR.ḪÉ.NUN.NA","temple","Assyria, Aššur, Kurbail","George 1993, House Most High: 80–81"
+323,"Ekal māšarti of Kalḫu","ekal māšarti Kalḫa, Review Palace of Calah, ekal māšarti of Kalḫu, Fort Shalmaneser",1,"36.09408","43.34666","–","palace, armory, arsenal, review palace","Assyria, Kalḫu","Helsinki Atlas: 8 (map 4 C5)"
+324,"Ekal māšarti of Nineveh","Review Palace of Nineveh, Tell Nebi Yunus","–","36.3480377418","43.1609489586","–","review palace, fortress, palace","Nineveh province","–"
+325,"Ekallāti","Ekallāti, Ekallāte, Tulūl Haikal",3,"35.56583","43.253","–","town","–","Helsinki Atlas: 8 (map 10 C1)"
+326,"Ekalte","Ekalte, Tell Munbaqa","–","36.22053470854134","38.13183949295749","–","–","–","–"
+327,"El-Ghâb","el-Ghab, el-Ghâb, al-Ghab","–","35.587","36.356","–","monument","Syria","<a href=https://pleiades.stoa.org/places/413309735>Pleiades: Al-Ghab</a>"
+328,"Elamtu","Elam, Elamtu",1,"–","–","–","country, territory","–","Helsinki Atlas: 8 (map 17 A1)"
+329,"Elephantine","Elephantine, Geziret Aswan","–","24.08494","32.88581","–",",island","Egypt","<a href=https://www.dainst.org/en/projekt/-/project-display/25953>Elephantine Reports Online</a>"
+330,"Ellipi","Ellipi",1,"–","–","–","country","–","Helsinki Atlas: 8 (map 11 B3)"
+332,"Ellitarbi","Ellitarbi, el-Atārib, Litarba, Tērib",1,"36.129","36.85766","–","town","–","Helsinki Atlas: 8 (map 2 C4)"
+331,"Ellišu","Ellišu, Ullassa, Tripoli, Tripolis",3,"34.45218677501611","35.81494409315681","–","town","–","Helsinki Atlas: 8 (map 8 A2)"
+333,"Elumu","Elumu","–","–","–","–","village","Gargamīs, Syria","PNA 1/1: 4"
+334,"Emar","EmarBarbalissus, Tell Meskene","–","35.9878","38.11287","–","–","–","<a href=https://web.archive.org/web/20060925230158/http://www.uni-tuebingen.de/emar/en/index.html>Emar Website</a>"
+335,"Emesa","Emesa, Hims","–","34.72354534277252","36.71452867140398","–","–","–","–"
+336,"Enu-Šasî","Enu-Šasî, Tell 'Ayn Sharif (?)",4,"33.8916086298232","36.02661717170561","–","–","–","–"
+337,"Enzite","Alzi, Ilzi, Alši, Alze, Enzite, Enzi, Alzu, Elâsiğ, Anzitēnē",2,"38.49648","39.2199","KUR.al-zi, KUR.en-zi","region, territory","Urarṭu","Helsinki Atlas: 8 (map 3 B2), Bagg RGTC 7 2/1: 40–41, <a href=https://pleiades.stoa.org/places/874328>Pleiades: Anzitene</a>"
+338,"Erebuni","Erebuni, Arin-berd","–","40.14085010986663","44.53744103455104","–","–","–","–"
+339,"Eridu","Eridu, Abū Šaḥrain, Tell Abu Shahrain",1,"30.81686971277664","45.99672447851623","–","city","–","Helsinki Atlas: 8 (map 16 B3)"
+340,"Eritīa","Ertīa",3,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 4 D3)"
+341,"Erudi","Erudi","–","–","–","–","town","Central Assyria","RGTC 7 2/1: 172"
+342,"Esagil","Esagila, Esagil, Esaggil, Esaŋil","–","32.53379","44.42149","É.SAG.ÍL, é-sag-gíl, e₂-saŋ-il₂-la","temple","Babylonia, Babylon","–"
+343,"Ešarra","Ešarra, Temple of Aššur","–","35.46081","43.26293","É.ŠÁR.RA, 𒂍𒊹𒊏, É.ŠÁR.RA.KI, 𒂍𒊹𒊏𒆠","temple","Assyria","–"
+344,"Ešnunna","Ešnunna, Tell Asmar D244","–","33.48313061963756","44.72850137066683","–","–","–","–"
+321,"Eǧil","Eǧil, Egil","–","38.25791","40.08115","–","monument","Turkey","Helsinki Atlas: 8 (map 3 D2)"
+322,"Eḫiman","Eḫiman","–","–","–","–","town","Ḫābūr triangle","RGTC 7 2/1: 166"
+345,"Faida","Faida, Faidah (فايدة), Fayda (فايضة)","–","36.757628","42.935313","–","monument","Assyria, Iraq","Helsinki Atlas: 8 (map 4 B5), <a href=https://qui.uniud.it/notizieEventi/ricerca-e-innovazione/italian-and-kurdish-archaeologists-on-the-trail-of-the-assyrian-empire/>Italian and Kurdish Archaeologists on the trail of the Assyrian Empire</a>"
+347,"Gabbutūnu","Gibbetôn, Raʾs Abī Ḥamīd",1,"31.83333","34.83333","–","town","–","Helsinki Atlas: 8 (map 7 C5)"
+346,"Gabbāru-ibni","Gabbāru-ibni, Gabbāri-ibni, Āl-Gabbāru-ibni, āl Gabbāru-ibni, Gabbari-ibni, Āl-gabbāri-bānî, Sūr Ğurʿa, Sur Jur'eh, Sūr Jarʿā, Sur Jureh",3,"34.30549","42.20724","–","town","Sūḫu","Helsinki Atlas: 8 (map 10 B2)"
+1069,"Gadisê","Gadisê","–","–","–","URU.ga-di-se-e","town","Syria","Bagg RGTC 7 2/1: 176"
+348,"Gambūlu","Gambūlu",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 11 B4)"
+349,"Gannanāti","Gannanāti, Gannanāte,Qaṣr-e Šīrīn",4,"34.51667","45.58433","–","town","–","Helsinki Atlas: 9 (map 11 A2)"
+350,"Gargamīs","Gargamīs, Karkemish, Karchemiš, Karkemiš, Carchemish, Karkamiş, krkymyš, Djerablis, Ğarablūs, جرابلس",1,"36.82891","38.01622","–","prov. capital","–","Helsinki Atlas: 9 (map 3 A4), <a href=https://www.orientlab.net/3d-kark>Karkemish 3D Visualization Project</a>"
+351,"Gasur","Gasur, Nuzi, Yorgan Teppe","–","35.36956130794378","44.2548782342147","–","–","–","–"
+352,"Gath","Gimtu, Gat, Gath, Tel es-Safī","–","31.70286793150219","34.84939088642997","–","–","–","–"
+353,"Gazru","Gazru, Gezer, Gazara, Tell Jazar",1,"31.85958","34.92048","–","city","–","Helsinki Atlas: 9 (map 7 C5)"
+354,"Gazziura","Gazziura, Turhal","–","40.38836556561288","36.09263300772279","–","–","–","–"
+355,"Gerasa","Gerasa, Jerash","–","32.28028700581027","35.89338726699758","–","–","–","–"
+356,"Gibeon","Gibeon, El-Jib","–","31.84696414567557","35.18560843989516","–","–","–","–"
+357,"Gibʿat Šaul","Gibʿat Šaul, Gibʿat Shaul, Givat Shaul, Givat Šaul, Tell el-Ful","–","31.82214335732264","35.23111358574556","–","–","–","–"
+358,"Gidira","Gader, Gadara, Gidira, Pompeia, Umm Qeis",1,"32.65692","35.67797","–","city","–","Helsinki Atlas: 9 (map 8 A4)"
+359,"Gilzānu","Gilzānu, Gelišin Plain",2,"–","–","–","country","–","Helsinki Atlas: 9 (map 4 E5)"
+360,"Gilʾad","Gilʿad, Gilead, Ḫirbat Ğalʿad",1,"32.08333","35.75","–","town","–","Helsinki Atlas: 9 (map 7 D4)"
+361,"Gimir","Gimir, Gomer, Cimmerians, Caucasus",1,"–","–","LÚ.gi-mir-ra-a.a","tribe","–","–"
+362,"Gimtu","Gimtu, Gat, Gath, Tel es-Safī",2,"31.60883","34.77","–","city","–","Helsinki Atlas: 9 (map 7 C5)"
+363,"Gingiliniš","Gingiliniš, Tepe Chenchi",2,"36.48211","43.22937","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+364,"Girmua","Girmua, Ğirwān, Jerwan",2,"36.659","43.35383","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+365,"Girsu","Girsu, Tello","–","31.55980384457702","46.17866802939608","–","–","–","–"
+366,"Girumu","Girumu, Tell Barghuthiat / Ishan Khilala K94","–","32.7025685157628","44.79553579596829","–","–","–","–"
+367,"Gizilbunda","Gizilbunda",2,"–","–","–","territory","–","Helsinki Atlas: 9 (map 11 C1)"
+369,"Gordion","Gordion, Yassihüyük","–","39.65698267259338","31.98669023055001","–","–","–","–"
+370,"Gubal","Gubal, Ğabla, Gibala, Gibaʾla, Gubla, Gabala, Tell Tuweini, Jableh",2,"35.37182694071063","35.93723497454413","–","town","–","Helsinki Atlas: 9 (map 8 A1)"
+371,"Gubla","Gubla,Byblos, Ğubail, Gebal",1,"34.11877","35.64464","–","capital","–","Helsinki Atlas: 9 (map 8 A2)"
+372,"Gurasimmu","Gurasimmu",2,"–","–","–","tribe","–","Helsinki Atlas: 9 (map 16 A3)"
+374,"Gurgum","Gurgum, Marqāsa, Marqasi, Marqas",2,"–","–","–","territory, country, province","Turkey, Assyria","Helsinki Atlas: 9 (map 2 C3)"
+375,"Gurru","Gurru, Gurrāja, Qamurra","–","–","–","gur-ri, gur-ru, LÚ.gur-ru, LÚ.qa-mur-ra, KUR.gur-ra-a-a, LÚ.gur-a-a, LÚ.gur-ra-a-a, LÚ.gur-ra-a-a-e-a, LÚ.qur-mur-ra-a-a","tribe","Iraq (?)","Bagg RGTC 7 2/1: 186–187"
+373,"Gurēte","Gurēte, Gurētu, Kurdā, Kurda, Tell Aswad",3,"36.58317","40.88117","URU.gu-re-e-te","town","Ḫābūr area","Helsinki Atlas: 9 (map 3 D4), Bagg RGTC 7 1: 185"
+368,"Gīʾa","Giʾ, Gīʾa, Gīya, Porphyreon Polis",1,"33.59717","35.41433","–","town","–","Helsinki Atlas: 9 (map 8 A3)"
+376,"Gūzāna","Guzana, Gôzān, gwzn, Gizania, Tell Ḥalaf, Tell Halaf",1,"36.82619","40.0395","–","prov. capital","–","Helsinki Atlas: 9 (map 3 D4)"
+377,"Ha-Ma’apil","Ha-Ma’apil, Kibbutz Hama’apil, HaMa'apil","–","32.37776","34.98405","–","monument","Israel","<a href=https://pleiades.stoa.org/places/189103682>Pleiades: HaMa'apil</a>"
+422,"Hatra","el-Hadhar","–","35.58702654572083","42.71855218530546","–","–","–","–"
+418,"Hašabu","Ḫašabu, Hašabu, Tell 'Ayn 'Ushba, Tell Hashba (?)",4,"33.94699430482985","36.05384272993871","–","–","–","–"
+437,"Hilla","Hilla, Hillah, Al-Hilla, Al-Hillah, الحلة","–","32.47362","44.42519","–","–","Iraq, Babylonia","–"
+461,"Iabrūdu","Iabrūdu, Jabrūdu, Jabrudu, Yabrūd, Yabrud",1,"33.96686712056401","36.66004361025661","–","town","–","Helsinki Atlas: 10 (map 8 B3)"
+462,"Iadaʾî","Iadaʾî, Jadaʾî, Yadaʾî","–","–","–","–","town","Izalla","Bagg, RGTC 7 2/1: 267, Zadok, The Ethno-Linguistic character of the Jezireh and adjancent regions in the 9th–7th centuries, in Liverani (1995): 271, 6.3.6, Kessler, Unterzchungen zur historischen Topografie Nordmesopotamiens nach keilschriftlichen Quellen des 1. Jahrtausends v Chr., TAVO Beih, B 26 (1980): 47 Anm. 205"
+463,"Iadburu","Iadburu",2,"–","–","–","territory","–","Helsinki Atlas: 10 (map 11 C4)"
+464,"Iadnāna","Iadnāna, Cyprus",1,"–","–","–","region, island","Levant","Helsinki Atlas: 10 (map 7 A1)"
+467,"Iamutbal","Iamutbal, Jamutbal, Jamutbalu",2,"–","–","–","region, territory","–","Helsinki Atlas: 10 (map 11 A3)"
+468,"Iappû","Jappû, Ioppe, Yafa, Yafo, Jaffa",1,"32.05406","34.75264","–","city","–","Helsinki Atlas: 10 (map 7 C4), <a href=http://jaffa.nelc.ucla.edu/>The Jaffa Cultural Heritage Project (JCHP)</a>"
+469,"Iasūbu","Iasūbu, Jasūbu",2,"–","–","–","region","–","Helsinki Atlas: 10 (map 11 A3)"
+470,"Iasūmu","Iasūmu, Sūmu, Aisūmas, Ašūmā, Karacadağ",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 3 C3)"
+472,"Iaʾūdu","Iaʾūdu, Jaʾūdu, Yehūdā, Judah",1,"–","–","–","country, territory","Israel","Helsinki Atlas: 10 (map 14 B2)"
+465,"Iaḫariša","Jahariša, Iahariša, Tell Fray","–","35.88141078555107","38.38536367908736","–","–","–","–"
+466,"Iaḫdik","Iaḫdik, Yahdik","–","–","–","URU.ia-aḫ-di-ik","city","Elam (?)","–"
+471,"Iaṭbite","Iaṭbite, Jaṭbite, Yaṭbite, Iōtapata, Jotapata, Yodefat, Yodfat, Ḫirbat Šifāt","–","32.836897","35.2736","–","city","Israel, Galilea","RGTC 7/1: 127"
+473,"Ibatuni","Ibatuni","–","–","–","LÚ.i-ba-tú-na","ethnic","–","Parpola Toponyms: 171"
+474,"Idide","Idide, Āb-e Dez, Hithite, Hudhud",2,"–","–","–","river","–","Helsinki Atlas: 10 (map 17 A1)"
+475,"Idu","Idu, Īdu, Ida, Satu Qala, Tall Sātu Qala, Sātū Qalā, ساتو قلا",1,"35.874","44.6965","URU.i-du, KUR.i-da-a-a, URU.i-da-a-a","town, fortress, region, country","Assyria","Bagg RGTC 7 2/1: 242, Parpola Toponyms: 72 (Ida, Idu), Helsinki Atlas: 10 (map 11 B1, (Idu, region))"
+478,"Ilansura","Ilansura, Tell Farfara (?)",4,"36.82263255254318","41.33237455299481","–","–","–","–"
+479,"Ilgie","Ilgie, Ilgê","–","–","–","URU.il-gi-e","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 243"
+482,"Ilištamʾu","Ilištam'u, Stamo (?)",4,"35.48439709459653","35.91601561510269","–","–","–","–"
+483,"Illubru","Illubru, Ellibir, Olymbros, Lampron, Namrun",1,37,"34.66666","–","city","–","Helsinki Atlas: 10 (map 1 D4)"
+480,"Ilḫini","Ilḫini","–","–","–","URU.il-ḫi-ni","town","Gūzāna province","Bagg RGTC 7 2/1: 244"
+484,"Imgur-Illil","Imgur-Illil, Imgur-Enlil, Balawāt, Balawat",1,"36.22945","43.4038","–","town","–","Helsinki Atlas: 11 (map 4 C5)"
+485,"Immiu","Immiu, Amyūn, Ammiya",1,"34.29683","35.81866","–","city","–","Helsinki Atlas: 11 (map 8 A2)"
+486,"Ingirâ","Ingirâ, Anchiale, Anchialeia",1,"36.84983","34.57233","–","city","–","Helsinki Atlas: 11 (map 1 D4)"
+487,"Inimme","Inimme, en-Nāʿima",1,"33.74316","35.4615","–","town","–","Helsinki Atlas: 11 (map 8 A3)"
+488,"Innaia","Innaia, Qasemlua, Branduz çay","–","–","–","–","river","–","Helsinki Atlas: 11 (map 4 E4)"
+489,"Irbû","Irbû, Irbayu, Irbuāja","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/1: 248–249"
+490,"Irgilli","Irgilli, Tell Irjil (?)",4,"35.84856296472241","37.22541738884766","–","–","–","–"
+1071,"Irinniḫ","Irinniḫ","–","–","–","URU.i-ri-in-ni-iḫ, 𒌷𒄿𒊑𒅔𒉌𒄴","town","Central Assyria, Kalḫu province (?), Iraq","Bagg RGTC 7 2/1: 249"
+491,"Irrita","Irrita, Oylum Höyük","–","36.69900478406686","37.17821281809435","–","–","–","–"
+493,"Isin","IIsin, šān al-Baḥriyāt, Ishan Bahriyat",1,"31.88640216500606","45.27050931069247","–","city","–","Helsinki Atlas: 11 (map 16 A2)"
+494,"Ispallurê","Ispallurê, Išpallurê, Ispallure, Isphrium (?)","–","–","–","–","town","Izalla","Bagg, RGTC 7 2/1: 253"
+495,"Isqalūna","Isqalūna, Ashcalon, Ascalon, ʿAsqalān, Ašqelôn, Ašqaluna, Isqaluna, Ashqelon, Ashkelon",1,"31.66426","34.54732","–","capital","–","Helsinki Atlas: 11 (map 7 C5)"
+496,"Issēte","Issētu, Issēte, Issutu, Šaqlāwa",4,"36.39783","44.34517","–","town","–","Helsinki Atlas: 11 (map 4 D5), Bagg RGTC 7 2/1: 254–255"
+497,"Istuanda","Istuanda, Wištawanda, Patuanda",3,"37.66666","34.33333","–","city","–","Helsinki Atlas: 11 (map 1 D3)"
+492,"Isāna","Isāna, Isān Köi, Izan, Tell Isān",4,"36.75","37.66666","–","prov. capital","–","Helsinki Atlas: 11 (map 2 D4)"
+504,"Ituʾu","Utuʾu, Ituʾu",2,"–","–","–","tribe","–","Helsinki Atlas: 11 (map 10 C3)"
+505,"Izalla","Izalla, Azalla, Azallu, Zalla, Zallu, Izallu, Azalzi, Išalā, byt ṣll, 𐡁𐡉𐡕 𐡑𐡋𐡋‎, ʾÛzāl, אוּזָל, Aṣalli, Iṣalla, Kanni, Nini, Ninili, Ṭūrā ḏIzalā, Izalā, Izala mons, Azalla, Ṭūro d-Malbash, Melabas, Dibek Daği",1,"37.20109","41.46527","i-za-al, ì-zal, KUR.a-za-al-li, KUR.a-zal-li, KUR.i-za-la, KUR.i-za-li, KUR.i-zal, KUR.i-zal-li, KUR.i-zal-lu, KUR.ì-zal, KUR.ì-zal-la, KUR.ì-zal-li, KUR.za-al-lu, KUR.a-za-la-a-a, KUR.zal-la-a-a, KUR.zal-la-a-ia, byt ṣll, 𐡁𐡉𐡕 𐡑𐡋𐡋‎, אוּזָל","territory, mountain","Ǧazīra, Turkey","Helsinki Atlas: 7 (Azalla, territory, map 3 C4), 11 (Izalla, mountain, map 3 D3 ), Bagg RGTC 7 2/1: 263–265 (Izalla)"
+507,"Izirtu","Izirtu, Zirtu, Saqqez",2,"36.25116","46.279","–","capital","–","Helsinki Atlas: 11 (map 5 B4)"
+506,"Izībia","Izībia, Zīwiye, Ziwiye, Zīwe",1,"36.2614","46.68737","–","city","–","Helsinki Atlas: 11 (map 5 B4)"
+477,"Iēri","Jēri, Iēri, Yeri, Sardašt",4,"36.15267","45.47767","–","town","Ḫabḫu, Ḫabḫu 2","Helsinki Atlas: 11 (map 5 A4), Bagg RGTC 7 3/1: 310"
+498,"Išida","Išida, Išid","–","–","–","LÚ.i-ši-da-a-a","town","Central Assyria (?), Kalḫu province (?)","Bagg RGTC 7 1: 256, "
+499,"Iškûzai","Iškûzai, Iškuza, Ašgûzai, Scythians","–","–","–","iš-ku-za-a.a, KUR.as-ku-za-a.a, KUR.áš-gu-za-a.a, KUR.iš-ku-za, KUR.iš-ku-za-a.a, LÚ.iš-ku-za-a.a, URU.as-gu-za-a.a","ethnic","–","Parpola Toponyms: 178 (Iškuza), Vera Chamaza (2002), Die Omnipotenz Aššurs: 227"
+500,"Išrun","Išrun","–","–","–","KUR.iš-ru-un","mount","–","–"
+501,"Ištaraurâ","Ištaraurâ, Sārūq",2,"–","–","–","river","–","Helsinki Atlas: 11 (map 5 B4)"
+502,"Išua","Išua",2,"–","–","–","region","–","Helsinki Atlas: 11 (map 3 B3)"
+508,"Jalūna","Jalūna, Ialuna","–","–","–","URU.ia-lu-na, KUR.ia-lu-na, KUR.ia-lu-na-a-a, URU.ia-lu-na-a-a","town, territory","Kalḫu province (?), Central Assyria","Bagg RGTC 7 2/1: 269–270"
+509,"Jericho (1)","Jericho (1), Tell es-Sultan","–","31.87098681042005","35.44476683822438","–","–","–","–"
+510,"Jericho (2)","Jericho (2), Tulul Abu el-'Alaiq North","–","31.85262041903013","35.43531529964726","–","–","–","–"
+511,"Jericho (3)","Jericho (3), Tulul Abu el-'Alaiq South","–","31.85024154909864","35.43693647832034","–","–","–","–"
+512,"Jerwan Aqueduct","Jerwan Aqueduct, Ğirwān Aqueduct","–","36.66952","43.3946","–",",canal, monument","Assyria, Iraq","<a href=https://pleiades.stoa.org/places/10280471>Pleiades: Jerwan Aqueduct</a>"
+513,"Jokneam","Jokneam, Tel Yoqne'am","–","32.66466721782095","35.10883229927659","–","–","–","–"
+514,"Judeideh","Judeideh, Judaide, Jedīdē, Jadīdah","–","34.23989","42.30865","–","–","Sūḫu, Iraq","RIMB 2: 322"
+515,"Judi Dagh","Judi Dagh, Ğudi Dağ, Ḥsanah, Šeḫ, Cudi Dagh","–","37.37667","42.34667","–",",Monument","Turkey","Helsinki Atlas: 11 (map 4 B4)"
+516,"Kabinnak","Kabinnak, Kabinak, Kabnak, Hafttappe, Haft Teppe",1,"32.08090580192094","48.32873115985338","–","city","–","Helsinki Atlas: 11 (map 17 A1)"
+517,"Kabsite","Kabsite, Kabsitu","–","–","–","kab-si-te, URU.kab-si-te","town","Northern Babylonia","Bagg RGTC 7 1: 275"
+518,"Kadeš Barnea","Kadeš-Barnea, Kadeš Barnea, Tell el-Qudeirat (?)",4,"30.64667651544816","34.41929399232647","–","–","–","–"
+519,"Kafar Nahum","Kafar Nahum, Kafar-Nahum, Capharnaum","–","32.88049659607911","35.57594165209499","–","–","–","–"
+521,"Kailete","Kailete, Kailetu","–","–","–","URU.ka-i-le-te","town","mid-Euphrates, Sūḫu, Ḫābūr basin (?)","Bagg RGTC 7 1: 276"
+522,"Kakkabnaše","Kakkabnaše, Kakkabnamušat","–","–","–","URU.kak-kab-na-še","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 276"
+523,"Kaldu","Kaldu, Chaldea",2,"–","–","–","territory","–","Helsinki Atlas: 11 (map 10 D4)"
+525,"Kallat","Kallat, Batman Suyu",2,"–","–","–","river","–","Helsinki Atlas: 11 (map 3 E2)"
+526,"Kalmakarra Cave","Kalmakarra Cave","–","33.03461","47.56946","–","–","Iran","<a href=https://pleiades.stoa.org/places/413309734>Pleiades: Pol-e Dokhtar</a>"
+524,"Kalḫu","Kalḫu, Calah, Kalhu, Kalchu, Nimrūd, Nimrud",1,"36.09863","43.32932","URU.kal-ḫu, URU.kal-ḫi","capital, city","Assyria","Helsinki Atlas: 11 (map 4 C5)"
+528,"Kannuʾ","Kannuʾ","–","–","–","URU.ka-an-nu-uʾ, URU.kan-nu-uʾ, LÚ.kan-nu-uʾ-a-a, URU.kan-nu-a-a, URU.kan-nu-uʾ-a-a","city","Central Assyria","Bagg RGTC 7 2/1: 287–288"
+530,"Kapar-Akkullāni","Kapar-Akkullāni, village of Akkullānu","–","–","–","URU.ŠE-<sup>m</sup>ak-ku-la-ni","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 296"
+531,"Kapar-Andarānu","Kapar-Andarānu","–","–","–","–","–","–","–"
+529,"Kapar-Aḫi-iaqar","Kapar-Aḫi-iaqar, Kapar-Ahiqar","–","–","–","–","village","–","–"
+532,"Kapar-Bisê","Kapar-Bisê, village Bisê","–","–","–","URU.ŠE-bi-se-e","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 300–301"
+533,"Kapar-Dannāia","Kapar-Dannāia, village of Dannaya, village of Dannāia","–","–","–","–","village","Assyria","–"
+535,"Kapar-Itiri","Kapar-Itiri","–","–","–","URU.ŠE-i-ti-ri","village","Central Assyria (?)","Bagg RGTC 7 3/2: 967–968"
+536,"Kapar-Mannu-lū-aḫūʾa","Kapar-Mannu-lū-aḫūʾa","–","–","–","–","village","Central Assyria, Nineveh province","Bagg, RGTC 7 1/1: 309–310"
+538,"Kapar-Nabû-šimanni","Kapar-Nabû-išmanni, Kapar-Nabû-šimanni, village of Nabû-šimanni","–","–","–","URU.ŠE-mdPA-ḪAL-a-ni, URU.ŠE-mdAG-ši-man-ni","village","Central Assyria (?), Nineveh province (?)","Bagg RGTC 7 2/1: 311–312"
+539,"Kapar-Qiluḫte","Kapar-Qiluḫte, Kapar-Kiluḫte, Kiluḫte","–","–","–","–","village","Central Assyria","RGTC 7 2/1: 314"
+540,"Kapar-Usāni","Kapar-Usāni","–","–","–","–","village","Central Assyria","RGTC 7 2/1: 323"
+534,"Kapar-ikkāri","Kapar-ikkāri, village of the Farmer","–","–","–","URU.ŠE-LÚ.ENGAR","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 304"
+537,"Kapar-mār-šarri","Kapar-mār-šarri, Village of the Crown Prince, URU.ŠE A MAN","–","–","–","–","village","Central Assyria, Kalḫu province (?)","RGTC 7 2/1: 310"
+541,"Kaprabi","Kaprabi, Edessa, Urfa",4,"37.15211","38.78947","–","town","–","Helsinki Atlas: 11 (map 3 B3)"
+542,"Kapri-Dargilâ","Kapri-Dargilâ",3,"36.7","38.33333","–","village","–","Helsinki Atlas: 11 (map 3 B4)"
+555,"Karabur","Karabur, Karsanbey","–","36.02","36.19","–","monument","Turkey","Helsinki Atlas: 11 (map 2 C4), O. Aytuğ Taşyürek,: Some New Assyrian Rock-Reliefs in Turkey: 174-176, 177 Fig. 10."
+556,"Karalla","Karalla, Uramanat",2,"–","–","KUR.kar-al-li, KUR.kar-al-la, KUR.kar-al-la-a-a, KUR.kar-al-lu, KUR.kar-al-lu₄, KUR.kar-la-a-a, KUR.kar-..., URU.kar-al-lu, KUR.kar-al-la-a-a","country, state","Iran","Helsinki Atlas: 11 (map 11 B2), Parpola Toponyms: 199–200"
+557,"Karduniaš","Babylonia, Karduniaš",2,"–","–","–","country","–","Helsinki Atlas: 11 (map 10 D3)"
+558,"Karkara","Karkara, Tell Jidr U004 (?)",4,"31.82392203365745","45.70750109912942","–","–","–","–"
+559,"Kasappa","Kasappa, Kušāf, Tell Kašāf, Tell Kashaf",1,"35.99892626871029","43.36667385244879","–","town","–","Helsinki Atlas: 11 (map 4 C6)"
+562,"Katmuḫi","Katmuḫi, Katmuḫu, Kadmuḫi, Šaḫuppa, Saḫuppa, Šuḫuppa",2,"–","–","–","state, province","–","Helsinki Atlas: 11 (map 3 E3)"
+563,"Kazallu","Kazallu","–","–","–","ka-za-lu.KI, ka-zal-lu.KI","city","Northern Babylonia","Groneberg, RGTC 3: 136–237"
+561,"Kašpūna","Kašpūna, Kusbā",2,"34.28733","35.87867","–","city","–","Helsinki Atlas: 11 (map 8 A2)"
+520,"Kaḫat","Kaḫat, Kahat, Tell Barrī, Tell Barri",3,"36.73893","41.12701","URU.ka-ḫa-at, URU.ka-ḫat","town","Ḫābūr area","Helsinki Atlas: 11 (map 3 E4), Bagg RGTC 7 1: 276"
+564,"Kelenderis","Kelenderis, Ura (?), Aydıncık","–","36.14441180151798","33.32303180199708","–","–","–","–"
+565,"Kenk Boğazi","Kenk Boğazi, Kenk Boğazı","–","37.24166","37.85433","–","–","Turkey","Helsinki Atlas: 11 (map 3 A3)"
+566,"Kesentaş","Ergani, Gisgis, Kesentaş","–","38.20387","39.58986","–","monument","Turkey","Helsinki Atlas: 11 (map 3 C2)"
+567,"Kibaki","Kibaki, Kivah",1,"37.24883","41.5015","–","town","–","Helsinki Atlas: 11 (map 4 A4)"
+568,"Kilīzi","Kilīzi, Kilizu, Kilizi, Kalīzi, Kilīzu, Kalzu, Kalzi, Qaṣr Šamāmūk, Qasr Shamamok EPAS 2, Kilīzi",1,"36.10582","43.75306","kàl-zi, URU.kàl-zi, URU.kàl-zu, URU.ki-li-zi, URU.kàl-zi-a-a","prov. capital","–","Helsinki Atlas: 11 (map 4 C5), <a href=https://scholar.harvard.edu/jasonur/pages/erbil>Erbil Plain Archaeological Survey</a>, <a href=https://sketchfab.com/3d-models/site-2-qasr-shemamok-d658c28b789c460998697a621ca7fd4b>3D model</a>, Bagg RGTC 7 2/1: 284–285 (Kalzu), "
+569,"Kinabu","Kinabu, Tavşantepe (?), Aktepe (?)","–","37.83546","40.2019","ki-na-bu, URU.ki-na-bu","fortified city","Nirbu, Turkey","Bagg RGTC 7 2/1: 341–342"
+570,"Kindāu","Kindāu, Qindau, Kār-Sîn","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110"
+571,"Kipšūna","Kipšūna, Kipšūnu, Gefše",3,"37.21617","42.7535","–","capital of Qumēni, prov. capital","Qumēni, Province of masennu","Helsinki Atlas: 11 (map 4 B4), Bagg RGTC 7 2/1: 343–344"
+572,"Kirruru","Ḫabrūru, Kirruru, Kirruri, Kirriuru","–","–","–","KUR.kìr-ri-ú-ri, KUR.ḫab-ru-ri, KUR.kìr-ru-ri","mount","Ḫabrūri","–"
+573,"Kirši","Kirši, Meydancıkkale?","–","36.27389593578619","33.44268818917155","–","–","–","–"
+575,"Kisiru","Kisiru, Kisiri, Tell Inṯa, Tall ʿAin Ṭelṯameh",3,"36.48083","43.21467","URU.ki-si-ri","village","Nineveh province (?), Central Assyria","Helsinki Atlas: 12 (map 4 C5), Bagg RGTC 7 1: 345–346"
+576,"Kissik","Kissik, Duru (?), Tell al-Laḥm, Tell el-Lahm",1,"30.77400531941019","46.3655492049713","–","city","–","Helsinki Atlas: 12 (map 16 B3)"
+577,"Kissuwatna","Kissuwatna, Kizzuwatna",4,37,36,"–","city","–","Helsinki Atlas: 12 (map 2 C3)"
+578,"Kisurra","Kisurra, Abu Hatab","–","31.83792434426611","45.4819673839158","–","–","–","–"
+583,"Kitrusu","Kitrusu, Khytroi, Kitrea",1,"35.24066","33.49183","–","city","–","Helsinki Atlas: 12 (map 7 B1)"
+581,"Kišešlu","Kišešlu, Kār-Nabû","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+582,"Kištan","Kištan, Kaysūn, Kaisūm",2,"–","–","–","district","–","Helsinki Atlas: 12 (map 3 B3)"
+580,"Kišēsim","Kišēsim, Kišessim, Kār-Nergal, Najafabad, Najafābād, Nağafābād, نجف‌آباد",3,"34.6527"," 47.9761","–","city","–","Helsinki Atlas: 11 (map 11 B2), <a href=https://pleiades.stoa.org/places/811827554>Pleiades: Najafabad</a>, <a href=https://zenodo.org/record/5217600>CIGS</a>, Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+574,"Kiṣirte","Kiṣirte, Kiṣirtu","–","–","–","URU.ki-ṣir-te, URU.ki-ṣir-tu","town","South-east Assyria","CTN 6: 221, Parpola 1970: 210"
+585,"Kubanaše","Kubanaše",3,"36.9","40.2","–","town","–","Helsinki Atlas: 12 (map 3 D4)"
+587,"Kulimmeri","Kulimmeri, Kullimeri, Qulmere, Chlomarôn, Klimar, Gre Migro",2,"37.99107","41.1573","–","prov. capital","Šubria, Assyria","Helsinki Atlas: 12 (map 3 E2), Bagg RGTC 7 2/1: 349–350"
+588,"Kullab","Kullab",1,"31.32183","45.6405","–","town","–","Helsinki Atlas: 12 (map 16 A2)"
+589,"Kullanīa","Kullanīa, Kunulua, Kinalūa, Kullania, Kunalīa, Kalnē, Calneh, Tell Taʿyīnāt, Tell Tayinat",1,"36.24717","36.37452","–","prov. capital","–","Helsinki Atlas: 12 (map 2 C4), <a href=https://tayinat.artsci.utoronto.ca> Tayinat Archaeological Project (TAP)</a>"
+591,"Kullar","Kullar, Kolara, Baziān",2,"35.6365","44.96966","–","mountain","–","Helsinki Atlas: 12 (map 10 E1)"
+592,"Kulmadara","Kulmadara, Chôlmadara, Charmodara",1,"37.64166","38.74483","–","town","–","Helsinki Atlas: 12 (map 3 B3)"
+593,"Kulumān","Kulumān, Kilmān, not Kermanshah, near Ḫarḫār","–","–","–","–","town","–","–"
+594,"Kumidu","Kumidu, Kamid el-Loz","–","33.62381849627923","35.82143372904021","–","–","–","–"
+595,"Kummanni","Kummanni, Comana Cappadociae, Şar (?)",4,"38.33041595481895","36.32519972256748","–","–","–","–"
+596,"Kumme","Kumme",3,"37.34716","42.74483","–","city","–","Helsinki Atlas: 12 (map 4 B4)"
+597,"Kummuḫi","Kummuhu, Kammānu (district), Commagēnē, Samosata, Samsat",1,"37.50560103152622","38.50081550200599","–","prov. capital","–","Helsinki Atlas: 12 (map 3 B3)"
+598,"Kundu","Kundu, Anavarza, Kynda",1,"37.257","35.91216","–","city","–","Helsinki Atlas: 12 (map 2 B3)"
+599,"Kurbail","Kurbail, ʿAgra",4,"36.75983","43.90316","–","prov. capital","–","Helsinki Atlas: 12 (map 4 C5)"
+600,"Kurbail (alt. loc.)","Kurbail (alt. loc.), Ğarāhīya, Ḫirbat al-Ğarāhīya",4,"36.6875","43.20966","–","prov. capital","–","–"
+601,"Kurî","Kurî, Kourion, Episkopi",1,"34.67216001285875","32.86433366558725","–","city","–","Helsinki Atlas: 12 (map 7 A2)"
+603,"Kutalla","Kutalla, Kutallu, Tell Sifr, Tell Ṣifir",1,"31.29236345808405","45.9694994372622","–","town","–","Helsinki Atlas: 12 (map 16 B2)"
+604,"Kutê","Kutê, Kûtâ, Kutû, Gudua, Kutha, Cutha, Tell Ibrāhīm, Tell Ibrahim",1,"32.75989763098715","44.61289455976172","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D4)"
+527,"Kāneš","Kāneš, Kaneš, Nēša, Neša, Kültepe","–","38.85017107282217","35.6352947895362","–","–","–","–"
+543,"Kār-Apladad","Gleieh, Glaiʿā, Glaiʿā, Gleiʿeh",4,"34.30261","42.21187","–","–","Sūḫu, Iraq","RIMB 2: 327, 329"
+544,"Kār-Aššur","Kār-Aššur, Ḫumut","–","–","–","kar-aš-šur, URU.kar-AN.ŠÁR, URU.kar-aš-šur, URU.kar-<sup>d</sup>aš-šur","city","Assyria, Laḫīru province (?)","Bagg RGTC 7 2/1: 330"
+545,"Kār-Aššur-aḫu-iddina","Kār-Aššūr-aḫu-iddina, see Ṣīdūnu","–","–","–","–","city","–","–"
+546,"Kār-Aššurnasirpal","Kār-Aššurnasirpal, Kār-Aššur-nāṣir-apli, Kār-Ashurnasirpal, Kar-Assurnasirpal, Jebel Masaikh","–","34.97366","40.55532","URU.kar-<sup>m</sup>AŠ-PAB-A","city","Assyria, Middle Euphrates","Bagg RGTC 7 2/1: 330–331"
+547,"Kār-Issār","Kār-Ištar, Tell ʿAğāğī",4,"35.03333","43.55","–","town","–","Helsinki Atlas: 11 (map 10 C1)"
+549,"Kār-Mullissi","Kar-Mullissi, Karmallīs, Keremlīs, Keramlais",1,"36.30538292011827","43.40982550055244","–","city","–","Helsinki Atlas: 11 (map 4 C5)"
+550,"Kār-Nergal","Kār-Nergal, aṣ-Ṣūwaira",4,"32.92616","44.78683","–","town","–","Helsinki Atlas: 11 (map 10 D4)"
+554,"Kār-Tukultī-Ninurta","Kār-Tukultī-Ninurta, Kar-Tukulti-Ninurta, Tulūl al-ʿAgar, Tulul el-'Aqir",1,"35.50153","43.2831","–","city","–","Helsinki Atlas: 11 (map 10 C1)"
+548,"Kār-kaššî","Kār-kaššî, Karkaššî","–","–","–","KUR.kar-ka-ši-e, KUR.kar-kaš-ši-i, URU.kar-kaš-ši-i, KUR.kar-kaš-šá-a.a","city","Iran, Media","Parpola Toponyms: 197"
+551,"Kār-nūri","Kār-nūri, ʿAin Sifnī, Ain Sifni","–","36.69182","43.35083","URU.kar-nu-ru, URU.kar-nu-ú-ri, URU.ka-ru-nu-ri","town","Assyria","Bagg RGTC 7 2/1: 335"
+552,"Kār-Šamaš","Kār-Šamaš",3,"34.09449","44.00033","–","town","–","Helsinki Atlas: 11 (map 10 D2)"
+553,"Kār-Šamaš-nāṣir","Kār-Šamaš-nāṣir","–","–","–","–","town","Central Assyria","RGTC 7 2/1: 336"
+560,"Kāšijēri","Kašiieri, Kašiiari, Kāšijēri, Kāšiāru, Kašijari, Ṭūr ʿAbdīn",1,"–","–","–","mountain","–","Helsinki Atlas: 11 (map 3 D3)"
+579,"Kīš","Kīš, Kiš, Kish, Ḫursagkalama, Tell Inġarra, Tell al-Uḥaimir, Uhaimir",1,"32.55189","44.59024","–","city","–","Helsinki Atlas: 11 (map 10 D4)"
+584,"Kızkapanlı","Kızkapanlı, Kizkapanli, Pazarcık, Kahramanmaraş, Pazarğik","–","37.47166","37.25599","–","–","Turkey","–"
+586,"Kūkab","Kūkab, Tell Kawkab",1,"36.53183","40.85433","–","mountain","–","Helsinki Atlas: 12 (map 3 D4)"
+602,"Kūsu","Kūsu, Kush, Cush, Kuš, Meluḫḫa, Emeluḫḫa, Nubia","–","–","–","KUR.ku-u-si, KUR.ku-u-su, KUR.ku-ú-su, KUR.ku-ú-ši, KUR.ku-ú-šú, KUR.ku-si, KUR.ku-ú-si, URU.ku-ú-si, KUR.ku-ši, KUR.ku-su, ku-sa-a, ku-sa-a-a, ku-sa-a-a-te, KUR.ku-sa-a-a, KUR.ku-sa-a-e","country, territory","Africa, Nubia","Bagg RGTC 7 2/1: 356–358, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+606,"Labdūdu","Labdūdu",3,"–","–","–","tribe","–","Helsinki Atlas: 12 (map 11 A3)"
+608,"Labnāna","Labnāna, Lubnān, Lebānôn, Lebanon",1,"–","–","–","mountain","–","Helsinki Atlas: 12 (map 8 A3)"
+605,"Labāʾu","Laba'u, Labaʾu, Lebo, Labwa, Lebô, Tell Qasr Labwa",1,"34.20045475734132","36.34428372649153","–","city","–","Helsinki Atlas: 12 (map 8 B2)"
+607,"Labīru","Labīru","–","–","–","–","town","Assyria","RGTC 7 2/1: 360"
+609,"Ladānu","Ladānu","–","–","–","KUR.la-da-a-ni","territory","–","–"
+610,"Lagaš","Lagaš, El-Hiba","–","31.4183207967609","46.41221284166029","–","–","–","–"
+612,"Laglāgu","Laglāgu, Tagalāgu, Tagalagi, Lagalaga, Laggalagi, ʿUlūw Būlāq, Ulubulagh","–","35.5",45,"–","town","–","Helsinki Atlas: 12 (map 10 E1)"
+614,"Lakīsu","Lakīsu, Lakišu, Lakisu, Lākîš, Lachish, Tell al-Duweir, Tell ed-Duwer",1,"31.56525","34.84951","–",",admin. center","–","Helsinki Atlas: 12 (map 7 C5), <a href=https://sketchfab.com/3d-models/tel-lachish-2018-993a67a2138d4e6782e71ad3275ead8c>3D model</a>"
+615,"Lalar","Lalar","–","–","–","KUR.la-la-ar","mountain","–","RGTC 5: 176"
+618,"Larak","Larak, Tell Wilaya (?), Tell al-Ḫayyād (?)",4,"32.31115954785168","45.66040975327528","–","city","Babylonia, Iraq","Helsinki Atlas: 12 (map 11 A4)"
+619,"Larbusa","Larbusa, Larbusu, Tall Sitak, Tell Sitak, Tall Sītak, تل سيتك","–","35.642","45.5028","URU.la-ar-bu-sa, URU.la-ar-bu-sa-a-a","fortified city","Zamua, Iraq","Bagg RGTC 7 3/1: 370, Radner (2017), A Neo-Assyrian Legal Document from Tell Sitak: 428–429"
+620,"Laribda","Laribda, Gebb al-Qdeim (?), قديم, aṭ-Ṭajjibe (?), At Tayyibah (?), Al Taibah (?), ʿUrd (?), Ourd Oriza (?), التيبة","–","35.08895","38.91597","URU.la-ri-ib-da","town, fortified water point","Syria","Bagg RGTC 7 1: 156"
+621,"Larsa","Larsa, as-Sankara, Tulul Sinkara",1,"31.28473","45.85513","–","city","Babylonia","Helsinki Atlas: 12 (map 16 A2)"
+622,"Latiḫu","Latiḫu, Latiḫi, Tell Baḥza (?), Tall Šaddāda (?)",4,"36.05","40.73333","URU.la-ti-ḫi","town","Šadikanni","Helsinki Atlas: 12 (map 3 D4), Bagg RGTC 7 1: 366"
+613,"Laḫīru","Laḫīru, Eski Kifri",3,"34.63333","44.88333","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D2)"
+623,"Lidir","Lidir, Ledroi",1,"35.16666","33.35","–","city","–","Helsinki Atlas: 12 (map 7 B1)"
+624,"Luamma","Luamma, Luʾama","–","–","–","URU.lu-a-ma","town","Assyria, Arrapḫa province","Bagg RGTC 7 2/1: 372 (Luamma 2)"
+625,"Lubda","Lubda, Tawūq, Daquq",3,"35.13133","44.45683","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D1)"
+626,"Luddi","Luddi, Lūdu, Lûd, לוּד, Lydia","–","–","–","lu-ud-di, KUR.lu-ud-di, לוּד","country","Anatolia","Bagg RGTC 7 1: 158"
+627,"Luddin-ilu","Luddin-ilu","–","–","–","–","town","Central Assyria (?), East Tigris area (?), Laḫīru (?)","RGTC 7 2/1: 373–374"
+630,"Luʾamma","Luʾamma, Luamma","–","–","–","URU.lu-u-am-ma","town","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 2/1: 372 (Luamma 1)"
+628,"Luḫutu","Luḫutu, Luʿaš",3,"–","–","–","country","–","Helsinki Atlas: 12 (map 2 C5)"
+616,"Lāqê","Lāqê, Laqê, Laqû",2,"–","–","–","territory, country, province","–","Helsinki Atlas: 12 (map 9 C1)"
+617,"Lāra...","Lāra...","–","–","–","URU.la-a-ra-x-x","town","Central Assyria (?)","Bagg RGTC 7 2/2: 365"
+629,"Lūsanda","Lūsanda, Lawasantia, Lwsnd, Elbistan",4,"38.2065","37.20366","–","city","–","Helsinki Atlas: 12 (map 2 D2)"
+633,"Madaktu","Madaktu, Tepe Patak, Badake",4,"32.5","47.76666","–","city","–","Helsinki Atlas: 12 (map 16 D1)"
+634,"Madara","Madara, Matar",2,"37.71416","40.9505","–","city","–","Helsinki Atlas: 12 (map 3 D3)"
+635,"Maganiṣi","Maganiṣi","–","–","–","–","town","Central Assyria, Nineveh province","RGTC 7 2/2: 380"
+636,"Maganuba","Maganuba, Maganubba, Magganubba","–","–","–","URU.ma-ag-ga-nu-ub-ba, URU.ma-ga-ni-ib, URU.ma-ga-nu-ba","town","Central Assyria, Dūr-Šarrukīn province","Bagg RGTC 7 2/2: 380–381"
+637,"Magidû","Magidû, Megiddo, Megiddôn, Tell al-Mutesellim, Tell el-Mutasallim",1,"32.58534","35.18437","–","prov. capital","–","Helsinki Atlas: 13 (map 7 D4), <a href=https://ochre.lib.uchicago.edu/Megiddo/ Megiddo III Digital Archive</a>"
+638,"Magrīsu","Magrīsu, Magrisu, Magarisu, Magrisi, Magarisi, Makrisā, Magrus, Tell Haṣaka, Tell Abū-Bakr, Tell Hasaka (?)",3,"36.49907","40.75183","URU.ma-ag-ri-su, URU.ma-ga-ri-si, URU.ma-ga-ri-su","city","Ḫābūr area","Helsinki Atlas: 13 (map 3 D4), Bagg RGTC 7 2: 381"
+643,"Mallanāte","Mallanāte, Mallanate, Maʾallanate, Mallanum","–","–","–","–","town","Balīḫ basin","Bagg RGTC 7 2/2: 386"
+644,"Maltai","Maltai","–","36.84055","42.94502","–","monument","Iraq , Assyria","Helsinki Atlas: 13 (map 4 B5)"
+640,"Malāḫu","Malāḫu, Malaḥ d'Ezraʿa",3,"32.79999","36.33333","–","city","–","Helsinki Atlas: 13 (map 8 B4)"
+645,"Mandiru","Mandiru","–","–","–","LÚ.man-di-ra-a-a, KUR.ma-di-ra-a-a, URU.man-di-ri-a-a","town","Elam","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+646,"Manisa","Manisa","–","–","–","KUR.ma-ni-sa-a-a, KUR.ma-ni-sa-a-a-u",",land","–","Parpola Toponyms: 236"
+647,"Manna","Manna, Minni, Mannea",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 5 B4)"
+648,"Manṣuāti","Manṣuāti, Manṣuati, Manṣuāte, Manṣuate, Manṣuati, Manṣuātu, Manṣuatu, Maṣyāf,Maṣyāt, Maṣyāṭ, Maṣyād, Mnḏt, Masyaf",2,"35.06614671547394","36.34331897024435","–","prov. capital","–","Helsinki Atlas: 13 (map 8 B1)"
+649,"Manṣuāti (alt. loc.)","Manṣuāti (alt. loc.), Massyas, al-Biqāʾ",3,"33.747","35.8945","–","prov. capital","–","–"
+650,"Marad","Wanna wa Sadūm, Tell es-Sadum",1,"32.09186862054076","44.7833573553678","–","city","–","Helsinki Atlas: 13 (map 10 D4)"
+651,"Mardijanê","Mardijanê, Maride, Mardīn",3,"37.31333","40.72083","–","town","–","Helsinki Atlas: 13 (map 3 D3)"
+652,"Margu","Antiokia Margiana, Merv, Erk Kala, Gyaur Kala","–","37.66893324474648","62.19383087233302","–","–","–","–"
+653,"Mari","Mari, Tell Hariri","–","34.55048884495861","40.8900285084387","–","–","–","–"
+654,"Mariametu","Mariametu","–","–","–","–","town","Ḫābūr area","RGTC 7 2/2: 391"
+655,"Marib","Marib","–","15.42575","45.33242","–","–","–","–"
+656,"Marqāsa","Gurgum, Marqāsa, Marqasi, Marqas, Germanikeia, Marʿāš, Kahramanmaraş",1,"37.58709","36.92543","–","prov. capital","Gurgum, Marqāsa","Helsinki Atlas: 13 (map 2 C3)"
+657,"Marratu","Marratu, Persian Gulf",2,"–","–","–","sea","–","Helsinki Atlas: 13 (map 17 B4)"
+658,"Marubištu","Marubištu, Ḫorramābād",4,"33.48733","48.3585","–","capital","–","Helsinki Atlas: 13 (map 11 D3)"
+660,"Maruri","Maruri, Maruru, Marūru","–","–","–","URU.ma-ru-ri, URU.ma-ru-ru","town","Southern Babylonia, Bīt-Iakīn (?)","Bagg RGTC 7 3/1: 396"
+659,"Marūm","Marūm, Marum, Qarn Ḥiṭṭīn, Merôm",3,"32.8","35.46667","–","town","Israel, Galilea","Helsinki Atlas: 13 (map 8 A4), Bagg RGTC 7/1: 171–172"
+661,"Masāka","Masāka, Amasakku, Tell Muḥammad (2)",4,"36.9255","41.1835","–","town","–","Helsinki Atlas: 13 (map 3 E4)"
+665,"Matiātu","Matiātu, Matiatu, Matiāte, Matiate, Midyāt",1,"37.41418721778389","41.37739487559983","–","city","–","Helsinki Atlas: 13 (map 3 E3)"
+666,"Maturaba","Maturaba","–","–","–","–","town","Central Assyria, Arzūḫina province","RGTC 7 2/2: 420"
+668,"Mazani","Mazani (?)","–","–","–","–","village","Assyria","Bagg RGTC 7 2/2: 420"
+662,"Maškan-šapir","Maškan-šapir, Tell Abu Duwari H639","–","32.40508948708455","45.22069097667509","–","–","–","–"
+663,"Mašqīte","Mašqīte, Mašqītu, Mašqitu","–","–","–","URU.maš-qi-te","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 2: 396–397"
+639,"Maḫalliba","Maḫalliba, Maḥālib",1,"33.35","35.48333","–","city","–","Helsinki Atlas: 13 (map 8 A3)"
+673,"Meluḫḫa","Kūsu, Kush, Cush, Kuš, Meluḫḫa, Emeluḫḫa, Nubia","–","–","–","me-luḫ-ḫa, KUR.me-luḫ, KUR.me-luḫ-ḫa, KUR.me-luḫ-ḫi, KUR.mi-luḫ-ḫa, KUR.me-luḫ-ḫe, KUR.me-luḫ-ḫe-e, KUR.me-luḫ-ḫe-e.KI, LÚ.me-luḫ-ḫe-e, KUR.eme-luḫ-ḫa, KUR.me-lu-ḫi, KUR.me-luḫ-x-ḫa","country, territory","Africa, Nubia, India","Bagg RGTC 7 2/2: 422–424"
+672,"Melīdi","Melīdi, Melīde, Melitēnē, Melid, Meliddu, Kammānu, Kammanu, Kammanūja, Malataya Plain",1,"–","–","KUR.me-li-di, KUR.me-li-i-di, KUR.me-lid-di, KUR.me-lid-du, KUR.ma-li-da-a-a, KUR.me-li-da-a-a, KUR.me-lid-a-a, KUR.me-lid-da-a-a, KUR.mé-li-da-a-a, KUR.mi-li-da-a-a, KUR.mi-lid-da-a-a, LÚ.mi-li-da-a-a, KUR.kam-ma-ni, KUR.kam-ma-nu, KUR.kam-ma-nu-a-a","state, province","Anatolia, Kummuḫi (part of since 712?), Province of turtānu šumēlu (since 708)","Helsinki Atlas: 13 (map 3 A2), Bagg RGTC 7/1: 132, 172–174, <a href=https://pleiades.stoa.org/places/319432673</a>, <a href=https://pleiades.stoa.org/places/629040>Pleiades: Melitene</a>"
+674,"Mempi","Mempi, Memphis, Memfis","–","29.85544","31.25644","URU.me-em-pi, URU.me-in-pu, URU.me-im-pi, URU.mi-in-pu","city","Egypt","Bagg RGTC 7 2/2: 424–425"
+677,"Mezê","Mezê","–","–","–","–","town","Assyria, Gūzāna province","RGTC 7 2/2: 428"
+675,"Mešta","Mešta, Hasanlu",2,"37.00458","45.45889","–","city","–","Helsinki Atlas: 13 (map 5 A3)"
+671,"Meḫinî","Meḫinî","–","–","–","–","town","–","RGTC 7 2/2: 421"
+678,"Mila Mergi","Ilimmer, Ilimeri, Ilimeru, Mila Mergi, Millet Mergi",1,"37.00583","42.9135","–","monument","Iraq, Birtu (province)","Helsinki Atlas: 10 (map 4 B4), <a href=https://pleiades.stoa.org/places/649834357>Pleiades: Mila Mergi</a>"
+679,"Milawanda","Milawanda, Miletos, Miletus (?)",4,"37.532214329903","27.27993258015492","–","–","–","–"
+680,"Milqia","Milqia, ʿAin Kawa, mlqy",3,"36.22916","43.99166","–","town","–","Helsinki Atlas: 13 (map 4 D5)"
+681,"Minūʾ","Minūʾ","–","–","–","URU.mi-nu-uʾ, URU.mu-nu-uʾ","town","Northern Babylonia","Bagg RGTC 7 3/1: 412"
+682,"Missi","Missi",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 11 C1)"
+683,"Mubî (town)","Mubî","–","–","–","URU.mu-bi-a-a, LÚ.mu-bi-a-a","town","Central Assyria","Bagg RGTC 7 2/2: 430"
+684,"Mugdan","Mugdan, Umm el-Jir K97 (?)",4,"32.65043710008911","44.85026956964368","–","–","–","–"
+686,"Mulu...","Mulu...","–","–","–","–","city, town","Assyria","–"
+685,"Mulî","Mulî, Bolgar Dağlari",2,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 1 D3)"
+690,"Musru","Musru, Ğabal Maqlūb",1,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 4 C5)"
+689,"Musīna-aplu-iddina","Musīna-aplu-iddina","–","–","–","URU.mu-si-na-A-AŠ","town","Arpadda province","Bagg, RGTC 7 1: 178"
+694,"Mutkīnu","Mutkīnu, Tell ʿAbīr",2,"36.692","38.09983","–","town","–","Helsinki Atlas: 13 (map 3 B4)"
+693,"Mušku","Mušku, Musku, Muški, Muski, Phrygia","–","–","–","–","country","Turkey","–"
+691,"Muṣur","Muṣur, Egypt, Miṣraim, Miṣir",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 13 A3)"
+688,"Muṣāṣir","Muṣāṣir, Muṣaṣir",1,"36.80353","44.59303","–","city, capital","Urarṭu","Helsinki Atlas: 13 (map 4 D5)"
+631,"Mādaba","Mādaba, Madaba, Mēdeba","–","31.714700808822","35.79229526122018","–","–","–","–"
+632,"Mādāia","Mādāia, Mādai, Mēdia, Media",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 12 A1)"
+641,"Māliki","Māliki","–","–","–","URU.ma-la-ki, URU.ma-lak, URU.ma-li-ki, URU.ma-lak-a-a","town","Rāši, Elam","Bagg RGTC 7 3/1: 386"
+642,"Māliku","Māliku","–","–","–","URU.ma-li-ku, URU.ma-li-ki","town","Ǧazīra (?), Rāši (?)","Bagg RGTC 7 2/2: 385 (Māliku), Bagg RGTC 7 3/1: 386 (Māliki) (?)"
+664,"Māt Tāmti","Māt-tâmti, Māt Tāmti, Sealand",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 16 B2)"
+667,"Māzamua","Māzamua, Zamua, Lullumû, Lullu, Lullubu, Lullubum",2,"–","–","KUR.lu-ul-lu","state, province","Māzamua, Lullumû","Helsinki Atlas: 13 (map 11 A1), Radner (2006), RlA 11: 51–52"
+669,"Māʾab","Māʾab, Môʾāb, Moab",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 7 D5)"
+676,"Mēturna","Mēturna, Mê-Turnat, Mê-Turran, Mê-Turan, Mê-Turnu, Tell Ḥaddād (?), Tell al-Sīb (?), es-Sib (?), Tulul Baradan (?), Tell Baradan (?), Haddad (?)",1,"34.18581","45.05152","–","city","–","Helsinki Atlas: 13 (map 10 D2), <a href=https://pleiades.stoa.org/places/894042>Pleiades: Me-Turnat</a>"
+687,"Mūru","Mūru, Tibil",3,"36.692","37.01917","–","city","Bīt-Agūsi","Helsinki Atlas: 13 (map 2 D4)"
+692,"Mūši","–",3,"36.53333","44.4","–","town","–","Helsinki Atlas: 13 (map 4 D5)"
+695,"Nabada","Nabada, Tell Beidar","–","36.73816167702558","40.58730935539984","–","–","–","–"
+696,"Nabajāti","Nabajāti, Nabâtu, Nebaʾāti, nbyt, n<sup>e</sup>bāyôt, נְבָיוֹת, nbyh, 𐡍𐡁𐡉𐡄","–","–","–","KUR.na-ba-a-a-te, KUR.na-ba-a-a-ti, LÚ.na-ba-a-a-ti, URU.na-ba-a-a-ti, KUR.na-ba-a-a-ta-a-a, KUR.na-ba-a-a-ti-a-a, LÚ.na-ba-a-a-ta-a-a, נְבָיוֹת, 𐡍𐡁𐡉𐡄","tribe, territory","Arabian Peninsula","Bagg RGTC 7 2/2: 439–440"
+698,"Nabula","Nabula, Nawali, Gir Nawas, Girnavaz",1,"37.10493","41.23044","–","town","–","Helsinki Atlas: 13 (map 3 E3)"
+697,"Nabû Temple of Kalḫu","Ezida, Nabû Temple of Kalḫu","–","36.0970655912","43.3303415509","É.ZI.DA","temple","Central Assyria, Kalḫu province, Kalḫu","George 1993, House Most High: 160, <a href=https://pleiades.stoa.org/places/242008148>Pleiades: Ezida (Kalhu)</a>"
+700,"Nagiāti","Nagiāti, Nagiati, Nagiātu, Nagiatu",3,"34.50183","40.9165","URU.na-gi-a-te","town","–","Helsinki Atlas: 13, Bagg RGTC 7 2: 442 (map 9 C2)"
+701,"Nagsu","Nagsu, U175 (?)",4,"31.69619309557163","45.7837152077515","–","–","–","–"
+704,"Nahr el-Kelb","Nahr el-Kelb, Nahr al-Kalb","–","33.955434","35.597312","–","monument","Lebanon","<a href=https://pleiades.stoa.org/places/2970016>Pleiades: Nahr al-Kalb monuments</a>"
+705,"Najafehabad","Najafehabad, Nağafabad, Najafabad","–","34.4295","47.86967","–","monument","Iran, Kišēsim","Helsinki Atlas: 28 (map 11 B2)"
+706,"Nal","Nal",2,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 4 B5)"
+707,"Nampigu","Nampigu, Nappigi, Nappigu, Menbiğ, Membiğ, Bambykē, Manbij","–","36.52828807598983","37.95515225576806","–","city","–","Helsinki Atlas: 13 (map 3 A4)"
+708,"Namri","Namri",2,"–","–","–","country","–","Helsinki Atlas: 13 (map 11 B2)"
+709,"Namrītu","Namrītu, Nāudār","–","–","–","–","river","–","Helsinki Atlas: 13 (map 11 B2)"
+710,"Napata","Napata, Jebel Barkal","–","18.53531834028109","31.83062507955553","–","–","–","–"
+711,"Napisina","Napisina","–","–","–","URU.na-pi-si-na","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2: 447"
+712,"Napisu","Napisu","–","–","–","URU.na-pi-su, na-pi-šá-a-a, KUR.na-pi-sá-a-a","town","Assyria, Laḫīru","Bagg RGTC 7 2: 447, "
+719,"Natḫu","Natḫu, Natḫû, Nathō, Leontōn Polis, Leontopolis, Tall al-Muqdām, Tell el-Moqdam","–","30.67955","31.35798","URU.na-at-ḫu-ú","city","Muṣur, Egypt","Bagg RGTC 7 2/2: 451 (Natḫû 2), <a href=https://pleiades.stoa.org/places/727147>Pleiades: Leontopolis</a>"
+720,"Natḫû","Natḫû, Nathō, Leontōn Polis, Leontopolis, Tall al-Yahūdīya, Tell el-Yahudiya","–","30.2921","31.33083","URU.na-at-ḫu-ú","city","Muṣur, Egypt","Bagg RGTC 7 2/2: 451 (Natḫû 1), <a href=https://pleiades.stoa.org/places/727146>Pleiades: Leontopolis</a>"
+721,"Naʾiri","Naʾiri, Nairi",2,"–","–","–","region","–","Helsinki Atlas: 14 (map 3 D3)"
+702,"Naḫal Muṣur (alt. loc.)","Naḫal Muṣur (alt. loc.), Wādī Ġazza","–","–","–","–","river","–","–"
+703,"Naḫal-Muṣur","Naḫal-Muṣur, Naḥal Mizraim, נהל מצרים, נהר מצרים, River of Egypt, Brook of Egypt, Wādī al-ʿArīš, وادي العريش",2,"–","–","na-ḫal KUR.mu-ṣur, na-ḫal KUR.mu-uṣ-ri","river","Egypt","Helsinki Atlas: 14 (map 13 C3), Bagg RGTC 7 1: 291"
+718,"Naṣībina","Naṣībina, Naṣībīna, Naṣībīni, Naṣipinu, Naṣipanu, Naṣibina, Nisibis, Nuṣaybin, Nisibin, Nisibis, Nusaybin",1,"37.06887","41.21395","na-ṣi-be-na, na-ṣi-pa-ni, na-ṣib-i-na, na-ṣib-na, URU.na-ṣa-pi-na, URU.na-ṣi-bi-na, URU.na-ṣi-pi-na, URU.na-ṣib-bi-na, URU.na-ṣib-na, URU.na-ṣib-i-na, URU.na-ṣi-pi-na-a-a","prov. capital","Ḫābūr area","Helsinki Atlas: 14 (map 3 E3), Bagg RGTC 7 2: 449–450"
+726,"Nerebtum","Nerebtum, Ishchali","–","33.30358590414998","44.58274622287485","–","–","–","–"
+727,"Nikippa","Nikippa",2,"–","–","–","mountain","–","Helsinki Atlas: 14 (map 11 B1)"
+728,"Nikkur","Nikkur, Rawānsīr",4,"34.74983","46.631","–","prov. capital","–","Helsinki Atlas: 14 (map 11 B2)"
+729,"Nilibši","Nilibši, Nilabšini, Nagar, Nawar, Tell Brāk, Tell Brak, تل براك","–","36.6671","41.0585","–","town","–","Helsinki Atlas: 14 (map 3 E4)"
+730,"Ninâ","Nina, Surġūl, Tulūl -az-Zurġūl, Surghul, Ishan Durghul",1,"31.37762560029498","46.49431484186504","–","town","–","Helsinki Atlas: 14 (map 16 B2)"
+732,"Nippur","Nippur, Nuffar",1,"32.12623","45.23134","–","city, provincial capital","Babylonia","Helsinki Atlas: 14 (map 10 E4), <a href=https://oi.uchicago.edu/research/projects/nippur-expedition>Nippur Expedition</a>"
+733,"Nipur","Nipur, Ğudi Dağ",2,"37.39866","42.46366","–","mountain","–","Helsinki Atlas: 14 (map 4 B4)"
+734,"Nirgi","Nirgi","–","–","–","URU.ni-ir-gi","town","Central Assyria (?)","Bagg RGTC 7 2/2: 468"
+735,"Nisa","Nisa","–","37.95153","58.21157","–","–","–","–"
+737,"Niʾ","Niʾ, Thebe, Thebes, Waset, Nut","–","25.70837095778625","32.64734464125721","–","–","–","–"
+738,"Niʾu","Niʾu, Nihi, Niḫi, Niya, Apamea, Qalʿat Maḍīq, Qal'at el-Mudiq",2,"35.4198576713808","36.392271981049","–","town","–","Helsinki Atlas: 14 (map 8 B1)"
+736,"Niṣir","Niṣir, NiMUŠ, Pir-i Mukurun, Pir Omar Gudrun, Pire Magrūn",2,"35.77247","45.22961","–","mountain","–","Helsinki Atlas: 14 (map 10 E1), Bagg RGTC 7 3/1: 96 (in connection with Bāru)"
+740,"Nulia","Nulia, Niara, Lulia (?), Niyara, Niyārah, نيارة, Ǧabal Semʿan (?), جبل سمعان, Ǧabal Barakat (?), Šeiḫ Bereket (?), شيخ بركات","–","36.27615","36.82203","URU.nu-li-a","town","Pattinu, Syria","Bagg RGTC 7 1: 183, <a href=https://pleiades.stoa.org/places/658546>Pleiades: Niara</a>"
+741,"Nuniba","Nuniba","–","–","–","URU.nu-ni-ba","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 470"
+739,"Nuḫubu","Nuḫubu, Nuḫbu, Nuḫba","–","–","–","–","town","–","RGTC 7 2/2: 469"
+713,"Nār Šarri","Nār-šarri, Nār-Šarri, Nahar Malkā",2,"–","–","–",",canal","–","Helsinki Atlas: 13 (map 10 D3)"
+714,"Nārtu","Nārtu",3,"–","–","–","territory","–","Helsinki Atlas: 14 (map 11 D2)"
+715,"Nārtu elītu","Nārtu elītu, Nārtu-elītu","–","–","–","–","river","–","Helsinki Atlas: 14 (map 12 A2)"
+716,"Nārtu šaplītu","Nārtu šaplītu, Nārtu-šaplītu","–","–","–","–","river","–","Helsinki Atlas: 14 (map 11 D2)"
+717,"Nāru ša Bīt-Dērāia","Nāru-ša-Bīt-Dērāia, Nāru-ša-Bīt-Dērāja, Galāl Badra",2,"–","–","–","river","Bīt-Dērāja","Helsinki Atlas: 14 (map 11 A3)"
+722,"Nēbarti-Aššur","Nēbarti-Aššur, Tall Graiye 3, Al Qurayyā, El Qraïyé, القورية, القريا","–","34.95629","40.54139","né-bar-ti-aš-šur","town","Middle Euphrates, Syria","Bagg RGTC 7 2/2: 451–452"
+723,"Nēmed-Issār","Nēmed-Issār, Nēmed-Ištar, Tell ʿAfar",4,"36.37667","42.46583","URU.ne-med-<sup>d</sup>15, URU.né-med-15, URU.né-med-<sup>d</sup>15, URU.né-med-<sup>d</sup>INANNA, URU.né-med-<sup>d</sup>15-a-a","city","Assyria, North Ǧazīra, Raṣappa","Helsinki Atlas: 14 (map 4 B5), Bagg RGTC 7 2/2: 452–453"
+724,"Nēmed-Laguda","Nēmed-Laguda, Nēmed-Lagudu","–","–","–","UŠ-dla-gu-du.KI, URU.né-med-dla-gu-da, URU.né-me-ed-la-gu-da, né-med-dla-gu-da.KI","town","Southern Babylonia","–"
+725,"Nērab","Nērab, Nīrabu, Nereb, Nayrab, Neirab",1,"36.1775","37.22708","–","city","Arpadda province","Helsinki Atlas: 14 (map 2 D4), Bagg, RGTC 7 1: 178"
+731,"Nīnuwa","Nīnuwa, Nīnevē, Nīnuwā, Nīnua, Nineveh, Tell Qūyunğiq, Tell Nebi Yunus",1,"36.35929","43.15199","–","capital, city","Assyria","Helsinki Atlas: 14 (map 4 C5)"
+742,"Padakku","Padakku, Ha'it","–","25.98033212387223","40.4744466279597","–","–","–","–"
+743,"Padānu","Padānu, Paddanu, Padāni, Padnu","–","–","–","URU.pa-da-a-ni, URU.pa-da-ni, URU.pa-ad-nu","town","Diyala Region","Bagg RGTC 7 2/2: 472 (Padnu), Parpola Toponyms: 271 (Padāni)"
+745,"Paiê","Paiê","–","–","–","–","town","North Assyria (?)","RGTC 7 2/2: 473"
+746,"Palgu ša Ḫabūr","Palgu-ša-Ḫabūr, Dawwarīn Canal",2,"–","–","–","canal","–","Helsinki Atlas: 14 (map 9 C1)"
+747,"Pallūkat","Pallūkat, al-Fallūğa, Pallakottas",1,"33.357","43.77583","–","town","–","Helsinki Atlas: 14 (map 10 C3)"
+748,"Panziš","Panziš",4,"36.41666","47.08333","–","fortress","–","Helsinki Atlas: 14 (map 5 C4)"
+749,"Pappa","Pappa, Paphos, Pāphos, Kouklia",1,"34.70773537188416","32.57386157169607","–","city","–","Helsinki Atlas: 14 (map 7 A2)"
+750,"Paqarḫubūni","Paqarḫubūni, Gaziantep",3,"37.06618","37.38332","–","city","–","Helsinki Atlas: 14 (map 2 D3)"
+752,"Paritakka","Partakka, Parētakēnē, Isfanān",2,"–","–","–","territory","–","Helsinki Atlas: 14 (map 12 A3)"
+753,"Parsua","see also Parsumaš",2,"–","–","–","state, province","–","Helsinki Atlas: 14 (map 11 B2)"
+754,"Parsumaš","Fars, Persis, see also Parsua",2,"–","–","–","territory","–","Helsinki Atlas: 14 (map 17 C2)"
+756,"Patibīri","Patibīri, Bad-tibira, Bad-Tibira, Tell Madain, Tell Medinah, Madain",1,"31.38134980866285","46.00364502667787","–","town","–","Helsinki Atlas: 14 (map 16 A2)"
+757,"Patiškun","Patiškun, Phathakon (?), Istilil (?)","–","–","–","URU.pa-ti-iš-kun (?)","town","Bīt-Zamāni","Bagg RGTC 7 2: 476"
+758,"Patti-Illil","Patti-Illil, Patti-Enlil",2,"–","–","–",",canal","Northern Babylonia","Helsinki Atlas: 14 (map 10 C3)"
+759,"Pattinu","Kullanīa, Kunulua, Kinalūa, Kullania, Kunalīa, Pattinu, Patina, Patinu, Pattina, Ḫattina","–","–","–","–","state, territory, province","Kullanīa, Pattinu, Syria","Helsinki Atlas: 14 (map 2 C4)"
+760,"Patušarra","Patušarra, Padašvar, Pateischoreis",3,"–","–","–","country","–","Helsinki Atlas: 14 (map 6 D5)"
+755,"Pašime","Pašime, Tell Abu Sheeja","–","32.39476517362748","47.14907362172696","–","–","–","–"
+744,"Paḫri","Paḫri, Misis",3,"36.96183","35.61333","–","city","–","Helsinki Atlas: 14 (map 2 B4)"
+761,"Penzâ","Penzâ, Genç","–","38.75056","40.55417","URU.pe-en-za-a ","city","Šubria, Turkey ","Helsinki Atlas: 14 (map 3 D2), Bagg RGTC 7 2/2: 477, <a href=https://www.geonames.org/314649/genc.html>Geonames: Genç</a>"
+762,"Persepolis","Persepolis, Parsa, Persai, Sat Setun, Takht-i Jamshid","–","29.9353403333","52.889437","–","–","Iran, Anšan, Elam","<a href=https://pleiades.stoa.org/places/922695>Pleiades: Persepolis/Parsa/Persai/Sat Setun</a>"
+763,"Pilistu","Pilistu, Philistia, Pelištî",1,"–","–","–","country","–","Helsinki Atlas: 14 (map 7 C5)"
+765,"Province of masennu","Province of masennu, Māt masenni",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt masenni, map 4 B4)"
+766,"Province of nāgir ekalli","Province of nāgir ekalli, Māt nāgir ekalli, Māt-nāgir-ekalli",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt nāgir ekalli, map 4 D5)"
+767,"Province of rab šāqê","Māt rab šāqê, Province of rab šāqê",3,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt rab šāqê, map 4 A4)"
+768,"Province of turtānu","Turtānu, Māt turtāni, Province of turtānu",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt turtāni, map 3 B3)"
+769,"Pulua","Pulua, Palu",4,"38.70239","39.9535","–","city","–","Helsinki Atlas: 14 (map 3 C2)"
+770,"Puqūdu","Puqūdu, Peqôd",3,"–","–","–","tribe","–","Helsinki Atlas: 14 (map 16 B2)"
+771,"Purattu","Purattu, Euphrates, al-Furāt",1,"–","–","–","river","–","Helsinki Atlas: 14 (map 10 B3)"
+772,"Puzriš-Dagan","Puzriš-Dagan, Drehem H1001","–","32.05966976844359","45.29229603804436","–","–","–","–"
+751,"Pāra","unknown, Pāra, Para, Bāra, Bārah, بارة","–","36.3757","41.4852","–","monument","Iraq","Helsinki Atlas: 14 (map 4 A5)"
+764,"Pīru","Pīru","–","–","–","URU.pi-i-ru","town","–","Bagg RGTC 7 2: 480"
+773,"Qablit","Qablit","–","–","–","URU.qab-lit","town","Izalla","Bagg RGTC 7 2/2: 484"
+774,"Qadinê","Qadinê, Qatnu, Qaṭṭunān, Gudadanum, Qattunān, Tell Fadġāmi",3,"35.918","40.88483","URU.qa-di-né-e","town","mid-Ḫabūr","Helsinki Atlas: 14 (map 3 D5), Bagg RGTC 7 2: 489–491"
+776,"Qadumu","Qadumu, Qatma (?)","?","36.58475767424099","36.96524084139543","–","–","–","–"
+775,"Qadīsu","Qadīsu, Qadeš, Kadeš, Qādēš, Tell Nebī Mend, Tell Nebi Mendo",1,"34.5530600329926","36.51879036532772","–","town","–","Helsinki Atlas: 14 (map 8 B2)"
+778,"Qallania","Qallania, Berdesur çay","–","–","–","–","river","–","Helsinki Atlas: 14 (map 4 E4)"
+777,"Qal’eh-i Imam","Qal’eh-i Imam, Imam Fortress, Marivan Fortress, Qal’eh-i Marivan","–","35.49134","46.17588","–","–","Iran, Kurdistan, Marivan District","<a href=https://pleiades.stoa.org/places/858969850>Pleiades: Qal’eh-i Imam</a>"
+780,"Qanû","Qanû, Qanawat","–","32.7550572637493","36.61859072108363","–","–","–","–"
+781,"Qarena","Qarena, Qarenabis","–","–","–","URU.qar-e-na","town","Izalla","Bagg RGTC 7 2/2: 487–488"
+782,"Qarnīna","Qarnina, Qarnaim, Šeiḫ Saʿd, Shaykh Sa'ad?",1,"32.836875092298","36.03687665155054","–","prov. capital","–","Helsinki Atlas: 14 (map 8 B4)"
+783,"Qarqar","Qarqar, Tell Qarqur",3,"35.74210088217787","36.33069731154433","–","city","–","Helsinki Atlas: 14 (map 2 C5)"
+785,"Qarti-Ḫaldi","Qarti-Ḫaldi","–","–","–","URU.qar-ti—ḫal-di","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 488"
+784,"Qarti-ḫadasti","Qarti-ḫadasti, Kition, Larnaca, Larnaka",1,"34.91971","33.63384","–","city","–","Helsinki Atlas: 14 (map 7 B2), <a href=https://pleiades.stoa.org/places/707556>Pleiades: Larnaka</a>"
+787,"Qatna","Qatna, Qatnu, Qatnû, Tell Ašamšāni, Tall Ašamšānī, Tell Ašamsani (?)",3,"35.8779","40.87166","KUR.qat-ni, URU.qa-at-ni, URU.qat-ni, URU.qa-at-na-a-ia, URU.qat-na-a-ia, URU.qat-ta-na-ia","town","mid-Ḫabūr","Helsinki Atlas: 14 (map 3 D5), Bagg RGTC 7 2: 489–491"
+786,"Qaštu","Qaštu","–","–","–","URU.BAN, URU.BAN-a-a","town","Assyria","Bagg RGTC 7 2/2: 489"
+788,"Qaṭna","Qaṭna, Tell Mishrifeh, Tall Mašrafa","–","34.83448","36.86609","–","–","North Levant","Bagg RGTC 7 2: 490 (under Qatna / Tall Ašamšānī), <a href=http://www.qatna.org/en-index.html>Qatna / Tell Mishrifeh Website</a>"
+789,"Qedeš","Qedeš, Tel Qedesh","–","33.11314","35.52853","–","–","–","<a href=https://daily.jstor.org/the-archaeological-mystery-of-tel-kedesh/>The Archaeological Mystery of Tel Kedesh</a>"
+790,"Qidru","Qidru, Qēdār, Cedrei",3,"–","–","–","country","–","Helsinki Atlas: 14 (map 15 D3)"
+791,"Qilissa","Qilissa, Khlisi, Silvan",3,"38.14883","41.01266","–","town","–","Helsinki Atlas: 14 (map 3 D2)"
+792,"Qinnasrīna","Qinnasrīna, Qinnasrīn, Nebīʾ ʿĪs, Chalcis ad Belum",2,"35.98932","37.00383","–","town","–","Helsinki Atlas: 15 (map 2 D5)"
+793,"Qipānu","Qipānu",2,"–","–","–","district","–","Helsinki Atlas: 15 (map 3 C3)"
+794,"Qirbit","Qirbit, Qirbutu, Kirbit, Ilam, Ilām",4,"33.63497","46.41528","URU.qir-bi-it, URU.qir-bi-ti, URU.qir-bit, URU.qir-bít, URU.qir-bu-tu","city","East Babylonia, Ḫalēḫasta","Helsinki Atlas: 15 (map 11 B3), Bagg RGTC 7 2/2: 494–495"
+795,"Qubbāte","Qubbāte","–","–","–","–","town","East Ǧazīra, Raṣappa (?)","Bagg RGTC 7 2/2: 495–496"
+796,"Qudāru","Qudāru","–","–","–","URU.qu-da-ru","town","Central Assyria (?)","Bagg RGTC 7 2/2: 496"
+797,"Qumbuna","Qumbuna, Qunbuna","–","–","–","URU.qu-um-bu-na, URU.qu-un-bu-na","town","Māzamua","–"
+798,"Qumēni","Qumēni, Qumanî, Qumānu, Qumēnu, Qumanû, Plain of Silopi",3,"–","–","–","territory","–","Helsinki Atlas: 15 (map 4 B4), RGTC 7 2/2: 497"
+799,"Quruba","Quruba","–","–","–","–","territory","North Assyria (?)","RGTC 7 2/2: 499"
+800,"Qurubi","Qurubi, Qurrubu","–","–","–","–","town","–","RGTC 7 2/2: 499"
+801,"Qutû","Qutû, Guti, Gutium","–","–","–","–","territory","Iran","Parpola Toponyms: 138 (Gutium)"
+802,"Quwê (capital)","Quwê, Que, Adana, Coa",4,"36.99333","35.34233","–","prov. capital","–","Helsinki Atlas: 15 (map 2 B4)"
+803,"Quwê (country)","Quwê, Que, Coa, Qewē",2,"–","–","–","province","–","Helsinki Atlas: 15 (map 2 B4)"
+779,"Qāna","Qāna, Ḫirbat Qānā",3,"37.5",42,"–","town","–","Helsinki Atlas: 15 (map 4 B4)"
+804,"Rablā","Rablā, Rablê, Riblāh, Tell Zira'at, Ribla",1,"34.45954691757429","36.57262261969346","–","city","–","Helsinki Atlas: 15 (map 8 B2)"
+805,"Radānu","Radānu, Nahr al-ʿUzaim, Physkos",2,"–","–","–","river","–","Helsinki Atlas: 15 (map 10 D2)"
+810,"Rappâ","Rappâ","–","–","–","ÍD.rap-pa-a","river","–","Parpola Toponyms: 292"
+807,"Rapâ (town)","Rapâ","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/2: 503"
+808,"Rapīḫu","Rapihu, Raphia, Rafaḥ, Rafah",1,"31.30152961251805","34.24261667132028","–","town","–","Helsinki Atlas: 15 (map 7 C5)"
+806,"Raḫimmu","Raḫimmu",3,"33.37866","43.50316","–","town","–","Helsinki Atlas: 15 (map 10 C3)"
+811,"Raṣappa","Raṣappa, Sergiopolis, Resafa, Rezef, Reṣep, (al-)Ruṣāfa",3,"35.62908419489116","38.75819320314854","–","prov. capital","–","Helsinki Atlas: 15 (map 3 B5)"
+812,"Reḫōv","Reḫōv, Rehob, Tel Rehov, Tell es-Sarem","–","32.45681300656256","35.49778333702537","–","–","–","–"
+814,"Rummunidu","Rummunidu, Rummunina, Tell Mašīḥ (?)",3,"35.20317","40.52517","URU.ru-um-mu-ni-na","town","Lāqê","Helsinki Atlas: 15 (map 9 C1), Bagg RGTC 7 2: 511"
+817,"Rusai URU.TUR","Rusai URU.TUR, Bastam","–","38.88592314900662","44.94843769009853","–","–","–","–"
+815,"Rusaḫinili Eidurukai","Rusahinili Eidurukai, Ayanis, Ağartı",1,"38.70805567683607","43.21146686196357","–","city","–","Helsinki Atlas: 15 (map 4 C3)"
+816,"Rusaḫinili Qilbanikai","Rusaḫinili Qilbanikai, Rusaḫinili, Rusahinili, Toprakkale",1,"38.50998328968381","43.40639519418901","–","city","–","Helsinki Atlas: 15 (map 4 C3)"
+809,"Rāpiqu","Rāpiqu, Rapiqu, Raphaka, Tell al-Anbār",2,"33.46666","43.25833","–","town","–","Helsinki Atlas: 15 (map 10 C3)"
+813,"Rēš-ēni","Rēš-ēni, Rus al-ʿAin",2,"36.54999","43.21666","–","village","–","Helsinki Atlas: 15 (map 4 C5)"
+818,"Sa","Sa, Sais, Sa el-Hagar","–","30.96246207693751","30.76838085331379","–","–","–","–"
+820,"Sabḫānu","Sabḫānu",3,"32.46666","44.3","–","fortress","–","Helsinki Atlas: 15 (map 10 D4)"
+821,"Sagūru","Sagūru, Sagurri, Sāğūr, Nahr as-Sāğūr",1,"–","–","–","river","–","Helsinki Atlas: 15 (map 3 A4)"
+825,"Sairi","Sairi, Sairu","–","–","–","URU.sa-i-ri","town","Assyria","Bagg RGTC 7 2/2: 518"
+826,"Salammê","Salammê","–","–","–","–","town","Central Assyria (?), East Tigris area (?), Laḫīru (?)","RGTC 7 2/2: 519"
+827,"Salimāni","Salimāni","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/2: 520"
+828,"Sallat","Sallat, Salatu",3,"33.16667","43.91667","URU.sa-la-te","town","Northern Babylonia","Helsinki Atlas: 15 (map 10 C3)"
+829,"Saluara","Saluara, Labotas, Kara su",1,"–","–","–","river","–","Helsinki Atlas: 15 (map 2 C4)"
+830,"Samakku","Samakku","–","–","–","URU.sa-ma-ak-ka, URU.sa-ma-ku","town","Central Assyria","Bagg RGTC 7 2/2: 521"
+831,"Samarra","Samarra","–","34.206","43.88002","–","–","–","–"
+833,"Samsimurūna","Samsimurūna, Ğūniya","–","33.97783","35.62816","–","capital","–","Helsinki Atlas: 16 (map 8 A3)"
+1058,"Samānu","Samānu","–","–","–","URU.sa-ma-na, URU.sa-ma-ni, URU.sa-ma-nu, URU.sa-am-ma-na-a-a, URU.sa-ma-na-a-a","town","Assyria, Šibanība","Bagg, RGTC 7/2–2: 521"
+834,"Samʾalla","Samʾalla, Samʾal, šmʿl, Zencirli, Zincirli, Zinçirli",1,"37.10332","36.67788","–","prov. capital","Sam'al, Samʾalla, Bīt-Gabbāri","Helsinki Atlas: 15 (map 2 C3), <a href=https://zincirli.uchicago.edu>Zincirli Höyük</a>"
+835,"Sangarītu","Sangarītu, Saggaratum, Tell Abū Ḥāʾit, Tell Abu Ha'it",3,"35.25119717279915","40.55705303323461","–","town","–","Helsinki Atlas: 16 (map 9 C1)"
+836,"Sangibūtu","Sangibūtu, Bīt-Sangibuti, Bīt-Sangibūti, Plain of Ḫoy, Plain of Khoy, Khowy, Ḫōy, خوی",2,"38.5503","44.9521","KUR.É-sa-an-gi-bu-ti, KUR.sa-an-gi-bu-te, KUR.sa-an-gi-bu-ti","district, Urarṭian province","Urarṭu, Iran, West Azerbaijan","Zimansky (1990), <i>Urartian Geography and Sargon's Eighth Campaign</i>, JANES 49/1: 15, Parpola Toponyms: 88, 303, Bagg RGTC 7 3/1: 149 (Bīt-Sangibūti 2), Helsinki Atlas: 16, 29 (Sangibūtu (1), map 4 D3)"
+837,"Sanīru","Sanīru, Senîr, Sanīr, Hermon",2,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 8 A3)"
+838,"Sapalāte","Sapalāte","–","–","–","–","town","–","RGTC 7 2/2: 522"
+839,"Sapirrutu","Sapirrutu, Saburutu, Sabiritu, Sapiratum, Sapîratum, Ğazīrat Bēğān, Bijan",3,"34.30701","42.12688","URU.sa-bi-re-te, URU.sa-bi-ru-tu, URU.sa-pi-ri-te, sa-pi-rit","town","mid-Euphrates, Sūḫu","Helsinki Atlas: 16, Bagg RGTC 7 2: 516"
+842,"Sardes","Sardes, Sartmustafa","–","38.48488020937479","28.04362609584273","–","–","–","–"
+843,"Sarduriḫinili","Sarduriḫinili, Sardurihinili, Chavushtepe, Çavuştepe",2,"38.35299780346134","43.46128741722196","–","city","–","Helsinki Atlas: 16 (map 4 C3)"
+846,"Sarrabānu","Sarrabānu","–","–","–","URU.sa-rab-na-a.a, URU.sa-ar-rab-a-ni, URU.sa-ar-rab-a-nu, URU.sa-ar-ra-ba-nu, URU.sar-ra-ba-ni, URU.sa-ar-ra-ba-a-nu","city","Southern Babylonia, Bīt-Šilāni","–"
+847,"Sarragitu","Sarragitu, Sarragītu, Šarragitu","–","–","–","URU.šá-ra-gi-ti, URU.sa-ar-ra-gi-tu, sa-ra-gi-ti, sa-ar-ra-gi-ti, URU.sar-gi-te (?)","fortified city","Babylonia","<a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+844,"Sarê","Sarê, Altūn Kūbrī",4,"35.7455","44.13983","–","town","–","Helsinki Atlas: 16 (map 10 D1)"
+848,"Sarūgu","Sarūgu, Suruṣ, Sarūğ","–","36.97366","38.41883","–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+849,"Sasiqāni","Sasiqāni, Salāmīya",4,"36.13733","43.3195","–","town","–","Helsinki Atlas: 16 (map 4 C5)"
+850,"Sazabu","Sazabu, Šazabê, Tell ʿAmarna, Šaḏabu",1,"36.74532","38.01371","–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+851,"Sazanâ","Sazanâ, Šaezana",3,"34.14366","36.75333","–","town","–","Helsinki Atlas: 16 (map 8 B2)"
+852,"Saʾarru","Saʾarru, Šaʿāra",1,"33.11433","36.35499","–","town","–","Helsinki Atlas: 16 (map 8 B3)"
+822,"Saḫlāla","Saḫlāla, Tell Sahlān",3,"36.5",39,"–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+823,"Saḫrīna","Saḫrīna",3,"32.41666","44.41666","–","town","–","Helsinki Atlas: 16 (map 10 D4)"
+853,"Siannu","Siannu, Siyannu, Tell Siyānu, Tell Siyanu",1,"35.36539543015847","36.00295594215738","–","city","–","Helsinki Atlas: 16 (map 8 A1)"
+857,"Sikiri","Sikiri, Kisiri, Kisiru, Tell Šaddāda",1,"36.0325","40.76433","URU.ki-si-ri, URU.si-ki-ri","town","Ḫābūr area","Helsinki Atlas: 16 (map 3 D4), Bagg RGTC 7 1: 345 (Kisiri 1)"
+856,"Sikāni","Sikāni, Sikani, Sikānu, Sikanu, Wašukanni, Tell Faḫārīya, Tell Fekheriye, Tell Fekherye",1,"36.84261","40.06983","–","town","–","Helsinki Atlas: 16 (map 3 D4), <a href=https://pleiades.stoa.org/places/572048102>Pleiades: Sikani</a>"
+859,"Sillu","Sillu, Soloi",1,"35.1415","32.81266","–","city","–","Helsinki Atlas: 16 (map 7 A1)"
+860,"Silluwa","Silluwa, Salamis, Konstanteia",1,"35.18558206858346","33.89933423453447","–","city","–","Helsinki Atlas: 16 (map 7 B1)"
+858,"Silḫazi","Silḫazi, Kūh-i Alwand",3,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 11 D2)"
+862,"Simirria","Simirria, Kūh-i Šaiḫ Māret",2,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 11 B1)"
+863,"Sinabir","Sinabir","–","–","–","KUR.si-na-bi-ir","mount","–","Parpola Toponyms: 310"
+867,"Sinaʾini","Sinaʾini","–","–","–","URU.si-na-ʾi-i-ni","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 532"
+866,"Sinaḫulzi","Sinaḫulzi","–","–","–","KUR.si-na-ḫul-zi","mount","–","Parpola Toponyms: 310"
+868,"Singāra (mountain)","Singāra, Singara, Ğabal Sinğār, Singara",1,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 4 A5)"
+869,"Singāra (town)","Singāra, Singara, Balad Sinğār, Balad Sinjar",1,"36.32755273132588","41.85724480938713","–","town","–","Helsinki Atlas: 16 (map 4 A5)"
+870,"Sinnu","Sinnu, as-Sinn",3,"35.33333","43.5","–","town","–","Helsinki Atlas: 16 (map 10 C1)"
+871,"Sinzi","Sinzi, Göksu, Singas",1,"–","–","–","river","–","Helsinki Atlas: 16 (map 3 A3)"
+864,"Sinābu (1)","Sinābu, Sinabu, Aktepe",4,"37.72451603785152","40.56932833730519","–","prov. capital","–","Helsinki Atlas: 16 (map 3 D3)"
+865,"Sinābu (2)","Sinābu, Sinabu, Murattaş, Pornak",4,"37.79679781783449","40.38033037771094","–","–","–","–"
+872,"Sippar","Sippar, Sippar-ṣērim, Tell Abū Ḥabba, Abu Habba",1,"33.06","44.25466","–","prov. capital","–","Helsinki Atlas: 16 (map 10 D3)"
+873,"Sippar-Arūru","Sippar-Arūru, Sippar-dūrim, Tell ed-Dēr, Tell ed-Der",2,"33.09812236862174","44.29948761295098","–","town","–","Helsinki Atlas: 16 (map 10 C3)"
+875,"Sirdakka","Sirdakka, Zirdiakka",4,"35.1","47.16666","–","fortress","–","Helsinki Atlas: 16 (map 11 C1)"
+876,"Sirqu","Sirqu, Terqa, Tell ʿAšāra, Ashara, تل الأشارة",1,"34.92225","40.56841","–","city","–","Helsinki Atlas: 16 (map 9 C2)"
+874,"Sirāra","Sirāra, Anti-Lebanon",3,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 8 B3)"
+877,"Sissû","Sissû, Sīs, Kozan, Sission",1,"37.4475","35.82666","–","city","–","Helsinki Atlas: 16 (map 2 B3)"
+878,"Siʾimmê","Siʾimmê, Tell Ǧilāga",4,"36.96666","41.83333","–","prov. capital","–","Helsinki Atlas: 16 (map 4 A5)"
+879,"Subartu","Subartu, Šubartu, North Mesopotamia","–","–","–","su-bar-tum, su-bar-tum.KI, SU.BIR<sub>4</sub>, SU.BIR<sub>4</sub>.KI, SU.KI, šu-bar-ti, KUR.su-bar-ti, KUR.SU.BIR<sub>4</sub>","territory","North Assyria","Bagg RGTC 7 2: 538–539"
+880,"Sueia","Sueia","–","–","–","KUR.su-e-ia (?)","mount","Nairi","Bagg RGTC 7 2: 539"
+883,"Sumbu","Sumbu, Sumbi, Plain of Sulaimānīya",2,"–","–","–","district","–","Helsinki Atlas: 16 (map 11 A1)"
+884,"Sumurzu","Sumurzu, Plain of Dehra/Sar-i-Pūl Zuhāb",3,"–","–","–","territory","–","Helsinki Atlas: 16 (map 11 A2)"
+885,"Sumuʾil","Sumuʾil, Sumuʾel","–","–","–","KUR.su-mu-ìl, LÚ.su-mu-uʾ-ìl","tribe","desert to the west of Babylonia","Bagg RGTC 7 2/2: 543–544"
+887,"Supnat","Supnat, Subnat, Sufan çay",2,"–","–","ÍD.su-ub-na-at, ÍD.su-ub-nat","river","–","Helsinki Atlas: 16 (map 4 B4), Bagg RGTC 7 2: 687–688"
+889,"Sura","Sura, Suriya","–","35.89692739079189","38.77896278946255","–","–","–","–"
+890,"Surappu","Surappu, Rūdḫāne-ye Cangūle",2,"–","–","–","river","–","Helsinki Atlas: 16 (map 11 B4)"
+891,"Surikaš","Šurikaš, Surikaš",3,"–","–","KUR.su-ri-ka-áš","district","Mannea","Helsinki Atlas: 16 (map 11 B1), Parpola Toponyms: 319"
+892,"Surmarrāti","Sūr-marrati, Surmarrāti, Sāmarāʾ, Surra-man-rāʾ, Sur-marrati, Gurmarriti, Samarra",1,"34.20983","43.89167","–","town","–","Helsinki Atlas: 16 (map 10 C2), <a href=https://pleiades.stoa.org/places/894082>Pleiades: Samarra/‘Sumere’</a>"
+832,"Sāmerīna","Sāmerīna, Samerina, Samaria, Šomerôn, Shomron",1,"32.27663","35.18862","–","prov. capital","–","Helsinki Atlas: 16 (map 7 D4), <a href=https://www.telshimronexcavations.com>Tel Shimron Excavations</a>"
+841,"Sāqi","Sāqi","–","–","–","URU.sa-a-qi","town","–","–"
+882,"Sūia","Sūia, Sūja, Sūya, Sû, Sūa","–","–","–","KUR.su-ú-ia, KUR.su-ú, KUR.su-ú-a","mount","Māzamua","Parpola Toponyms: 316"
+894,"Sūru (1)","Sūru, Suru, Tell Fidēn",1,"35.35883","40.53217","URU.su-ú-ri, URU.su-ru","town","Bīt-Ḫalupê","Helsinki Atlas: 16 (map 9 C1), Bagg RGTC 7 2: 546 (Sūru 1)"
+895,"Sūru (2)","Sūru, Suru, Sūr, Sur Telbis, Sūr Telbīs",3,"34.36899","42.05814","URU.su-ru, URU.su-ú-ru, URU.su-ú-ri","town","Sūḫu","Helsinki Atlas: 16 (map 10 B2), Bagg RGTC 7 2: 547"
+896,"Sūrunu","Sūrunu, Tell Ṣūrān, Šewirin",3,"36.56643","37.21078","–","town","–","Helsinki Atlas: 16 (map 2 D4)"
+881,"Sūḫu","Sūḫu, Sūḫi, Šoaʿ",1,"–","–","–","country, province","–","Helsinki Atlas: 16 (map 9 D2)"
+929,"Tabite","Tabite, Tabitu, Thebeta (2), Tell Abū Arzala, Tall Abū Arzala",3,"36.634","41.04133","URU.ta-bi-te, URU.ta-bi-ti","town","Ḫarmiš","Helsinki Atlas: 16 (map 3 E4), Bagg RGTC 7 2: 581"
+927,"Tabāl","Tabāl, Tubal, Cappadocia",2,"–","–","–","region","–","Helsinki Atlas: 16 (map 1 D3)"
+930,"Tadmar","Tadmar, Tadmur, Palmyra, Tadmor",2,"34.54724142003493","38.27402120752187","–","city","–","Helsinki Atlas: 16 (map 8 D2)"
+933,"Taidu","Taidu, Tell Ḥamidīya, Tell Hamidiya",3,"36.81577174902419","41.16411788377453","–","city","–","Helsinki Atlas: 16 (map 3 E4)"
+934,"Tajâ","Tajâ, Taiâ, Kefr Tai, Kəfar Ṭai, Kafr Tāyā, كفر تايا, Kafr Nāyā, كفر نايا, Ṭaṭaya (?), طاطية (?)","–","36.4201","37.07461","URU.ta-ia-a","city","Pattinu, Syria","Bagg RGTC 7 1: 247, Astour (1963), JNES 22, Place-Names from the Kingdom of Alalaḫ...: 237, no. 153"
+935,"Takritain","Takritain, Tagaritejāni, Birta, Tikrit, Takrit, Takrīt, Tikrīt, Ṭrīhān",4,"34.6012","43.6925","–","–","–","–"
+936,"Talbiš","Talbiš, Talmiš, Thilutha, Telbis, Thilabous",1,"34.34466","42.08483","–","town","–","Helsinki Atlas: 17 (map 10 B2)"
+937,"Tall Zirā‘a","Tall Zirā‘a, Tell Zirā‘a","–","32.6206","35.65588","–","city","Southern Levant","<a href=http://www.tallziraa.de/Tall-Zira'a/1_106.html>The Gadara Region Project</a>"
+938,"Talmūsa","Talmūsa, Gir-e pan",4,"36.776","42.9355","–","prov. capital","–","Helsinki Atlas: 17 (map 4 B5)"
+939,"Tamarana","Tamarana, Talid...","–","–","–","–","town","Ḫarrānu area (?), Central Assyria (?)","RGTC 7 2/2: 585"
+940,"Tamessu","Tamesu, Tamassos, Politikou",1,"35.02935209404931","33.24632521688231","–","city","–","Helsinki Atlas: 17 (map 7 B1)"
+941,"Tamna","Tamna, Timnah, Timnāh, Tel Baṭaš, Tel Batash",2,"31.78414897289624","34.91169775911752","–","town","–","Helsinki Atlas: 17 (map 7 C5)"
+942,"Tamnūna","Tamnūna, Tell Ǧikān",3,"36.61666","42.83333","–","prov. capital","–","Helsinki Atlas: 17 (map 4 B5)"
+948,"Tang-i Var","Tang-i Var, Tangī Var, تنگي ور‎","–","34.9962","46.6183","–","monument","Iran, Karalla (?), Parsua (?)","Helsinki Atlas: 17 (map 11 B2)"
+949,"Tanis","Tanis, San el-Hagar","–","30.97589714736804","31.88377780122345","–","–","–","–"
+950,"Tapigga","Tapigga, Maşat Höyük","–","40.14831086580463","35.76242077279552","–","–","–","–"
+951,"Tarbiṣu","Tarbiṣu, Tarbiṣi, Tell Šarīf Ḫān, Sharif Khan",1,"36.40915","43.08089","–","city","–","Helsinki Atlas: 17 (map 4 C5)"
+953,"Tarmanazi","Tarmanazi, Tarmanaše, Turmānīn",3,"36.232","36.82183","–","town","–","Helsinki Atlas: 17 (map 2 C4)"
+954,"Tarninu","Tarninu","–","–","–","URU.tar-ni-nu, URU.tar-NINA","town","Central Assyria (?)","Bagg RGTC 7 2/2: 589"
+955,"Tartāra","Tartāra, Tartaru, Tharthar, Nahr aṯ-Ṯarṯār, Wādī ath Tharthār, وادي الثرثار, الثرثار",1,"34.97575","43.07063","ÍD.tar-ta-ri, ÍD.tar-ta-ra","river","Iraq","Helsinki Atlas: 17 (map 10 C2), <a href=https://pleiades.stoa.org/places/897854>Pleiades: Tartaru/Tharthar</a>, <a href=https://www.geonames.org/90169/buhayrat-ath-tharthar.html>Geonames: Buḩayrat ath Tharthār</a>, <a href=https://www.geonames.org/90167/wadi-ath-tharthar.html>Geonames: Wādī ath Tharthār</a>, <a href=https://www.geonames.org/90157/wadi-tharthar.html>Geonames: Wādī Tharthār</a>"
+956,"Tarzi","Tarzi, Tarsa, Tarsus, Tarsos, Gözlü Kule",1,"36.91268346363448","34.89736190801483","–","city","–","Helsinki Atlas: 17 (map 1 D4)"
+952,"Tarḫuntašša","Tarḫuntašša, Tarhuntašša, Kızıldağ (?)",4,"37.49241267862221","33.0758453490096","–","–","–","–"
+957,"Tas","Tas, Bāwiyān, Bavian",2,"36.78133","43.4075","–","mountain","–","Helsinki Atlas: 17 (map 4 C5)"
+959,"Tastiāti","Tastiāti",4,"36.46416","42.95466","–","town","–","Helsinki Atlas: 17 (map 4 B5)"
+960,"Taʿnak","Taʿnak, Taʿannach","–","32.52160394899919","35.21993788223087","–","–","–","–"
+932,"Taḫazimuna","Tahazimuna, Dazimon, Tokat",4,"40.31747950970083","36.54935398805887","–","–","–","–"
+961,"Tebiltu","Negub Tunnel","–","36.022095","43.405813","–","monument, canal","Assyria, Iraq","Helsinki Atlas: 17 (map 4 C5), <a href=https://pleiades.stoa.org/places/413309737>Pleiades: Negub tunnel</a>"
+962,"Teišebai URU","Teišebai URU, Karmir-blur","–","40.15358685587648","44.45269887985066","–","–","–","–"
+1068,"Tel Motza","Tel Motza, Tel Moza, Khirbet Mizza, Motza, Mozah, Motsa, מֹּצָה, מוֹצָא‎, Ammaous, Kolonia, Qaluniya, قالونيا‎","–","31.79445","35.16378","מֹּצָה, מוֹצָא","village, temple","Iaʾūdu, Israel","Joshua 18:26, <a href=https://pleiades.stoa.org/places/687979>Pleiades: Moza/Ammaous/Kolonia</a>, <a href=https://www.geonames.org/294148/moza.html>Geonames: Moẕa</a>"
+964,"Tell Razzuq","Tell Razzuq","–","–","–","–","–","Sūḫu, Iraq, Ḥadītha area, Ḥamrīn area","RIMB 2: 328"
+963,"Tell al-Hawa","Tell al-Hawa","–","36.763329","42.319867","–","–","Iraq, Assyria","<a href=https://pleiades.stoa.org/places/874728>Pleiades: Tell al-Hawa</a>"
+965,"Temaʾ","Temaʾ, Tayma","–","27.62679170802305","38.54894299042446","–","–","–","–"
+967,"Tigris Tunnel","Tigris Tunnel, Birkleyn, Berkilin, Berkilin Çay, Birklin","–","38.52966","40.54764","–","monument","Turkey","Helsinki Atlas: 17 (map 3 D2)"
+968,"Til-Abnu","Til-Abnu, Tell Qitar (?)",4,"36.38339418330214","38.18058176413058","–","–","–","–"
+969,"Til-Barsib","Til-Barsib, Til-Barsip, Tarbusībi, Kār-Salmānu-ašarēd, Kār-Salmaneser, Kār-Šulmānu-ašarēd, Masuwari, Tell Aḥmar, Tell Ahmar",1,"36.67443","38.12095","–","prov. capital","–","Helsinki Atlas: 17 (map 3 B4)"
+970,"Til-Baserê","Til-Bašerê, Tell Bašir, Tilbeşar",2,"36.8724936391149","37.56017941010104","–","town","–","Helsinki Atlas: 17 (map 2 D4)"
+977,"Til-Tūri","Til-Tūri, ʿAǧāmī, Tell Tūrin, Thiltauri",1,"36.426","37.671","–","city","–","Helsinki Atlas: 17 (map 2 D4)"
+973,"Til-līni","Til-līni","–","–","–","URU.DU₆-li-i-ni (URU.DU₆!-li!-i-ni!), URU.DU₆-li-ni","town","Ḫarrānu area","Bagg RGTC 7 2/2: 601"
+974,"Til-naḫīri","Til-naḫīri","–","–","–","–","town","Assyria, Ḫābūr territory","RGTC 7 2/2: 603-604"
+975,"Til-raḫajāte","Til-raḫajāte","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/2: 605"
+976,"Til-ša-Abtāni","Til-ša-Abtāni, Tell as-Sulaima",3,"34.08333",45,"–","town","–","Helsinki Atlas: 17 (map 10 E2)"
+971,"Til-ḫarrapina","Til-ḫarrapina, Til-ḫardušina","–","–","–","–","town","Assyria","RGTC 7 2/2: 598"
+972,"Til-ḫauar","Til-ḫauar, Til-ḫawar, Bad-ḫawar, Badḫawar","–","–","–","URU.til-ḫa-ú-ar","town","Central Assyria","Bagg RGTC 7 2/2: 599"
+978,"Tilgarimmu","Tilgarimmu, Tīl-Garimme, Gürün, Tôgarmāh/Tagarama",3,"38.7175","37.27683","–","city","–","Helsinki Atlas: 17 (map 2 D2)"
+979,"Tillê","Tillê, Tell Rumailān",4,"36.94837","41.96987","–","prov. capital","–","Helsinki Atlas: 17 (map 4 A5)"
+980,"Tilmun","Tilmun, Dilmun, Failaka, al-Baḥrain,Tylos",2,"–","–","–","territory","–","Helsinki Atlas: 17 (map 17 A4)"
+981,"Timnaʾ","Timnaʾ","–","15.01919","45.80467","–","–","–","–"
+982,"Timur","Timur","–","–","–","–","fortress","Quwê (country)","–"
+983,"Tirza","Tirza, Tirzah, Tell el-Far'ah, Tell el-Far'ah (north)","–","32.287387","35.337803","תִּרְצָה","royal city","Israel, Bīt-Ḫumrî","–"
+984,"Tiʾi","Tiʾi","–","–","–","URU.ti-ʾi-i","town","Central Assyria, Dūr-Šarrukīn province","Bagg RGTC 7 2/2: 596"
+986,"Tubliaš","Tubliaš, Tupliaš, Tupliʾaš, Tubuliaš, Tubliʾaš, Nahr aṭ-Ṭīb, Rūdkhāneh-ye Meymeh",2,"–","–","ÍD.tu-bu-li-ʾa-áš","river, territory","East Babylonia","Helsinki Atlas: 17 (map 11 C4)"
+987,"Tugliš","Tugliš, Tubliš",2,"34.31316","46.17383","–","region","–","Helsinki Atlas: 17 (map 11 B2)"
+989,"Tulul al-Lak","Tulul al-Lak, Qaryat al-Lak","–","36.299303","43.263063","–","–","Iraq, Assyria","<a href=https://pleiades.stoa.org/places/741318296>Pleiades: Qaryat al-Lak</a>"
+990,"Tumme","Tumme",2,"–","–","–","territory","–","Helsinki Atlas: 17 (map 4 D5)"
+991,"Tunip","Tunip, Asharneh, al-Ašārina, Ašarne, Tell Ašarne, Tell Asharneh, Qarqar (alt. loc.), Tell Acharneh, ‘Acharneh, Acharneh",4,"35.2839","36.39936","–","–","–","Helsinki Atlas: 17 (map 8 B1), <a href=http://www.acharneh.hst.ulaval.ca/english/frameInter.html>Tell Acharneh Project</a>"
+992,"Tunna","Tunna, Dunna, Aladaǧ",2,"–","–","–","mountain","–","Helsinki Atlas: 17 (map 2 B3)"
+993,"Turlu Höyük","Turlu Höyük, Tell Turlu","–","37.75892","37.06912","–","–","Turkey","<a href=https://pleiades.stoa.org/places/201144661>Pleiades: Turlu Höyük</a>"
+994,"Turna","Turna, Diyāla",1,"–","–","–","river","–","Helsinki Atlas: 17 (map 10 D3)"
+995,"Turnû","Turnû","–","–","–","URU.tur-nu-a-a","town","Central Assyria","Bagg RGTC 7 2/2: 614"
+996,"Tursāna","Tursāna, Turšā, Turšān, Tell Māḥūz",2,"35.49155","43.83659","–","town","–","Helsinki Atlas: 17 (map 10 C1)"
+999,"Tuttul","Tuttul, Tell Bi'a","–","35.95769717739928","39.04765257021229","–","–","–","–"
+1000,"Tutub","Tutub, Khafaja","–","33.35566","44.55556","–","–","–","–"
+998,"Tušḫan","Tušḫan, Tušhan, Ziyāret Tepe, Ziyaret Tepe",3,"37.79324242090923","40.79327286803895","–","prov. capital","–","Helsinki Atlas: 17 (map 3 D3)"
+1001,"Tuʾammu","Tuʾammu, Tuwwama (?)",4,"36.19342674839879","36.81142717481402","–","–","–","–"
+988,"Tuḫana","Tuḫana, Tuhana, Tuwanuwa, Kemerhisar, Tyana, Tuwan",2,"37.82544537714595","34.5646292998379","–","city","–","Helsinki Atlas: 17 (map 1 D3)"
+943,"Tāmtu elītu","Tāmtu elītu, Tāmtu rabītu, Mediterranean Sea",2,"–","–","–","sea","–","–"
+944,"Tāmtu elītu ša Naʾiri","Tāmtu elītu ša Naʾiri, Tāmtu ša Naʾiri, Lake Van",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 4 B3)"
+945,"Tāmtu ša Kaldi","Tāmtu ša Kaldi, Persian Gulf",2,"–","–","–","sea","–","Helsinki Atlas: 17 (map 17 B4)"
+946,"Tāmtu ša Zamua","Tāmtu ša Zamua, Lake Zeribor",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 11 B1)"
+947,"Tāmtu šaplītu ša Naʾiri","Tāmtu šaplītu ša Naʾiri, Tāmtu ša Naʾiri, Lake Urmia",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 5 A3)"
+958,"Tāsa","Tāsa, Taṣdelen, Taše",4,"38.83333","38.5","–","town","–","Helsinki Atlas: 17 (map 3 B2)"
+966,"Tīdu","Tīdu, Tidu, Kerh, Charcha, Üç Tepe, Kurkh",2,"37.82591","40.54008","–","fortress","–","Helsinki Atlas: 17 (map 3 D3)"
+1002,"Tūʾimmu","Tūʾimmu, Taʾum",3,"35.97983","36.75816","–","town","–","Helsinki Atlas: 17 (map 2 C5)"
+1072,"Uatzunza","Uatzunza","–","–","–","URU.ú-at-zu-un-za, 𒌷𒌑𒀜𒍪𒌦𒍝","fortified city","Sangibūtu, Iran","Bagg RGTC 7 3/2: 579"
+1073,"Ubabara","Ubabara","–","–","–","URU.ú-ba-ba-ra, 𒌷𒌑𒁀𒁀𒊏","fortified city","Aukanê, Iran","Bagg RGTC 7 3/2: 581"
+1003,"Ubasê","Ubasê, Tell Ḥuwaiš",3,"35.58733","43.25516","–","town","–","Helsinki Atlas: 17 (map 10 C1)"
+1004,"Udu","Udu, Arpatepe (?)",4,"37.14136","40.79761","URU.ú-da, URU.ú-di","town, fortress","Nirdun","Bagg RGTC 7 2: 621–622"
+1005,"Udūmu","Udūmu, Edom, Edôm",1,"–","–","–","country","–","Helsinki Atlas: 17 (map 14 C3)"
+1006,"Ugarit","Ugarit, Ras Shamra","–","35.60212","35.78557","–","–","–","<a href=https://ochre.lib.uchicago.edu/RSTI>Ras Shamra Tablet Inventory (RSTI)</a>, <a href=https://www.ras-shamra.ougarit.mom.fr>Ugarit Website</a>"
+1007,"Ukku","Ukku, Sirnak",4,"37.51666","42.46816","–","city","–","Helsinki Atlas: 17 (map 4 B4)"
+1009,"Ulluba","Ulluba, Birtu, Plain of Zāḫū","–","–","–","–","district, province","–","Helsinki Atlas: 17 (map 4 B4), RGTC 7 2/1: 105–106 (Birtu 2)."
+1010,"Uluruš","Uluruš","–","–","–","–","mountain","–","Helsinki Atlas: 18 (map 3 C2)"
+1011,"Umma","Umma, Tell Jokha","–","31.66743001625768","45.88767609164621","–","–","–","–"
+1012,"Unniga","Unniga, Unchae, Onchae",3,"36.26666","36.58333","–","town","–","Helsinki Atlas: 18 (map 2 C4)"
+1013,"Unqi","Unqi, ʿmg, al-ʿAmq, ʿAmuq","–","–","–","–","territory","–","Helsinki Atlas: 18 (map 2 C4)"
+1014,"Upâ","Upâ, Kūh-i-Ḫiplak",2,"–","–","–","mountain","–","Helsinki Atlas: 18 (map 11 B1)"
+1015,"Upî","Ôpis, Tell al-Muǧailāt, Tulul Mujaili'",1,"33.18443235498685","44.7019290937689","–","city","–","Helsinki Atlas: 18 (map 10 D3)"
+1016,"Upūmu","Upūmu, Fūm",3,"38.3685","40.74067","–","prov. capital","–","Helsinki Atlas: 18 (map 3 D2)"
+1017,"Uqnû","Uqnû",2,"–","–","–","river","–","Helsinki Atlas: 18 (map 11 B4)"
+1018,"Urakka","Urakka, Urkeš, Urkiš, Tell Mūzān, Tell Mozan",2,"37.05770819862687","40.99640254169595","–","city","–","Helsinki Atlas: 18 (map 3 D3)"
+1019,"Urarṭu","Urarṭu, Uruaṭri, Uraṭru, Urartu, Ararat",2,"–","–","–","country, state","Turkey, Armenia","Helsinki Atlas: 18 (map 4 B3)"
+1021,"Urrubnu","Urrubnu","–","–","–","KUR.ur-ru-ub-nu","mount","–","–"
+1022,"Urrus","Urrus, Orossus, Arsuz, Uluçinar, Rhosos",2,"36.40516","35.89133","–","town","–","Helsinki Atlas: 18 (map 2 B4)"
+1023,"Ursalimmu","Ursalimmu, Jerusalem, Yerūšalaim",1,"31.77461","35.23595","–","capital","Iaʾūdu","Helsinki Atlas: 18 (map 7 D5)"
+1025,"Uruk","Uruk, Warka, Erech",1,"31.32263","45.63961","–","prov. capital","–","Helsinki Atlas: 18 (map 16 A2)"
+1027,"Urzunapi","Urzunapi","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/2: 635"
+1026,"Urzâ","Urzâ","–","–","–","URU.ur-za, URU.ur-za-a","town","Central Assyria (?)","Bagg RGTC 7 2/2: 634"
+1028,"Usalâ","Usalâ, Tell Ṣuwwar, Tell Suwwar",3,"35.50987","40.66151","URU.ú-sa-la-a","town","Lāqê","Helsinki Atlas: 18 (map 9 C1), Bagg RGTC 7 2: 635"
+1029,"Usnû","Usnû, Paltos",1,"35.29316","35.95","–","city","–","Helsinki Atlas: 18 (map 8 A1)"
+1033,"Uzuoğlan Tepe","Uzuoğlan Tepe, Ferhatli, Ferhatlı, Uzunuglantepe","–","37.60767","35.96467","–","monument","Turkey, Cilicia, Ḫilakku (?), Quwê (country) (?)","Helsinki Atlas: 18 (map 2 B3), O. Aytuğ Taşyürek, Some New Assyrian Rock-Reliefs in Turkey: 169"
+1030,"Ušiši","Ušiši","–","–","–","URU.ú-ši-ši","town","Iran, Media (?)","–"
+1031,"Ušqaia","Ušqaia, Uski",3,"37.91666","46.16666","–","fortress","–","Helsinki Atlas: 18 (map 5 B3)"
+1032,"Ušû","Ušû, Tell Rašīdīya, Palaityros",1,"33.23673","35.21616","–","city","–","Helsinki Atlas: 18 (map 8 A3)"
+1034,"Wadi Bastura Tunnel","Wadi Bastura Tunnel, Qala Mortka","–","36.35169","44.11584","–",",canal, monument","Iraq, Assyria","Helsinki Atlas: 18 (map 4 D5), <a href=https://pleiades.stoa.org/places/359792984>Wadi Bastura Tunnel Inscription</a>"
+1035,"Waisi","Waisi, Qalatgah",3,"37.0354","45.2209","–","prov. capital","–","Helsinki Atlas: 18 (map 4 E4)"
+1036,"Wauš","Wauš, Uauš, Kūh-e Sahand",2,"–","–","–","mountain","–","Helsinki Atlas: 18 (map 5 B3)"
+1037,"Wilusa","Wilusa, Wiluša, Troy, Hisarlik","–","39.95751754939872","26.23830411661108","–","–","–","–"
+1038,"Wišdiš","Wišdiš, Uišdiš, Plain of Marand",3,"–","–","–","district","–","Helsinki Atlas: 18 (map 5 A3)"
+1041,"Zabalam","Zabalam, Tulul Ibzaikh","–","31.74472924832169","45.87575461093312","–","–","–","–"
+1042,"Zabannu","Zabannu, Sabaʾa, Tell Umm ʿAqrubba",4,"35.66165","41.19707","–","town, monument","–","Helsinki Atlas: 18 (map 9 D1)"
+1043,"Zabban","Zabban",3,"34.5","44.83333","–","city","–","Helsinki Atlas: 18 (map 10 D2)"
+1044,"Zadidāni","Zadidāni, Zadidānu, ruins al-Mḥddâde (?)","–","–","–","URU.za-di-da-a-ni","town","mid-Euphrates","Bagg RGTC 7 2: 641"
+1045,"Zakrūti","Zakrūti","–","–","–","–","district","–","Helsinki Atlas: 18 (map 12 A2)"
+1046,"Zamaḫâ","Zamaḫâ, Qatara, Qattara, Qaṭṭara, Zamahe, Karana (?), Tell al-Rimāḥ, Tell Rimah, Tell al-Rimah",2,"36.25677","42.45019","–","town","–","Helsinki Atlas: 18 (map 4 B5), <a href=https://pleiades.stoa.org/places/356369838>Pleiades: Qattara?/Karana?</a>"
+1047,"Zanbāja","Zanbāja, Zanba","–","–","–","URU.za-an-ba-a-a","town","Central Assyria, Nineveh province (?)","Bagg RGTC 7 2/2: 643"
+1048,"Zaralulu","Zaralulu, Tell ed-Diba'i","–","33.322758019531","44.48194432052211","–","–","–","–"
+1049,"Zaranda","Zaranda, Plain of Evoġlī",3,"–","–","–","region","–","Helsinki Atlas: 18 (map 4 E3)"
+1050,"Zawiyeh","Zawiyeh, Zawiyyā, Zawiyah, Zāwiyah","–","34.29263"," 42.1725","–","–","Sūḫu, Iraq","RIMB 2: 323"
+1051,"Zikirtu","Zikirtu",2,"–","–","–","country","–","Helsinki Atlas: 18 (map 5 A3)"
+1052,"Zikkû","Zikkû, Yāramǧa, Yaremjeh, يارمجة",4,"36.3005","43.19083","URU.zi-ik-ku-u, URU.zi-ik-ku-ú","town","Central Assyria","Helsinki Atlas: 18 (map 4 C5), Bagg RGTC 7 2/2: 645–646"
+1053,"Zitānu","Zitānu, Zaytān",1,"36.05839","37.01205","–","town","–","Helsinki Atlas: 18 (map 2 D4)"
+1054,"Zuqarru","Zuqarru",3,"37.06133","37.8645","–","town","–","Helsinki Atlas: 18 (map 3 A3)"
+1039,"Zāba elû","Zāba-elû, Upper Zab, az-Zāb al-aʿlā",1,"–","–","–","river","–","Helsinki Atlas: 18 (map 4 C5)"
+1040,"Zāba šaplû","Zāba-šaplû, az-Zāb al-asfal, Lower Zab",1,"–","–","–","river","–","Helsinki Atlas: 18 (map 10 C1)"
+32,"Āl-Adad","Āl-Adad","–","–","–","URU-<sup>d</sup>IM","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 14 (Āl-Adad 2)"
+34,"Āl-Daiān-Adad","Āl-Daiān-Adad, āl Daiān-Adad, Bīt-Daiān-Adad, Daiān-Adad",4,"36.16667","37.16667","–","town, village, city","Ḫatti","Helsinki Atlas: 5 (map 2 D4)"
+35,"Āl-Dannāia","Āl-Dannāia, Āl-Dannāja","–","–","–","URU.da-na-a-a","town","Central Assyria (?), Nineveh province (?)","Bagg RGTC 7 2/1: 19"
+36,"Āl-Naḫal-Muṣur","Āl-Naḫal-Muṣur, āl Naḫal Muṣur, City of the Brook of Egypt, ʿngrn, al-ʿArīš, العريش‎, Rhinocolura, Rhinokoloura, Ῥινοκόρουρα",3,"31.1285","33.8075","URU.na-ḫal-mu-ṣur, URU.na-ḫal-mu-uṣ-ri","town","Muṣur, Egypt","Helsinki Atlas: 5 (map 13 C2), Bagg RGTC 7 1: 5–6, <a href=https://pleiades.stoa.org/places/688016>Pleiades: Rhinocolura</a>"
+33,"Āl-ašlākāni","Āl-ašlākāni, Town of the washers, Fuller Town","–","–","–","–","town","Central Assyria, Nineveh province (?)","RGTC 7 2/1: 16"
+37,"Āl-rādi-imāri","Āl-rādi-imāri, Rādi-emāri, Town of the Donkey Drivers, Donkey-Driver Town","–","–","–","URU-UŠ-ANŠE","town","Central Assyria","RGTC 7 2/1: 24–25"
+40,"Āl-sirāšî","Āl-sirāšî, Brewers' village, Brewers' town","–","–","–","URU-LUNGA.MEŠ, URU-LÚNGA.MEŠ, URU-LÚ.LÚNGA.MEŠ","town","Central Assyria, Dūr-Šarrukīn province (?), Kalḫu province (?)","Bagg RGTC 7 2/1: 25–26"
+41,"Āl-sūsānī","Āl-sūsānī, Horse Trainer Town, Horse-Trainer Town‏‎","–","–","–","–","town","Assyria, Arbail (province)","Bagg, RGTC 7 2/1: 26"
+39,"Āl-Ṣāṣi","Āl-Ṣāṣi, Ṣāṣu","–","–","–","URU.2-ṣa-a-ṣi","town","Central Assyria","Bagg RGTC 7 2/1: 27"
+38,"Āl-ṣarrāpī","Āl-ṣarrāpī, Town of the Goldsmiths, Goldsmith Town","–","–","–","URU-SIMUG.KUG.GI","town","Central Assyria","RGTC 7 2/1: 26–27"
+50,"Ālu-ša-Libbālāja","Ālu-ša-Libbālāja, Ālu-ša-Libbālāia, Ālu-ša-Libbi-ālāja, Yāramǧa, Yaremjeh, يارمجة","–","36.3031","43.17633","URU-šá-ŠÀ-URU-a-a, URU-šá-LÚ.ŠÀ-URU-a-a","town","Central Assyria","Bagg RGTC 7 2/1: 35"
+1070,"Ālu-ša-Lulûʾa","Ālu-ša-Lulûʾa","–","–","–","URU.ša-mlu-lu-ú-a","town","Central Assyria (?), Iraq (?)","Bagg RGTC 7 3/2: 957 (add. to 7/2)"
+51,"Ālu-ša-rāṭātīšu","Ālu-ša-rāṭātīšu, Plumbers' Town, Malṭeh Naṣara, Mālṭah Naṣārā, مالطة نصارى","–","36.85276","42.93362","URU-ša-ra-ṭa-ṭi-šú","town","Central Assyria, Kurbail","Bagg RGTC 7 2/1: 38"
+52,"Ālu-ša-rēšāni","Ālu-ša-rēšāni, Eunuch Town","–","–","–","URU.2.LÚ.SAG.MEŠ, URU.LÚ.SAG.MEŠ","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 38–39"
+49,"Ālu-ša-Ḫarāni","Ālu-ša-Ḫarāni, ālu ša Ḫarāni, Ša-Ḫarāni, Tall Ḫanḏal, Tall Abū Ḥāʾit (?)",2,"35.25","40.51667","URU.šá-<sup>m</sup>ḫa-ra-a-ni","village","Bīt-Ḫalupê, Lāqê (?)","Helsinki Atlas: 5 (map 9 C1), Bagg RGTC 7 2/1: 32–33, <a href=https://pleiades.stoa.org/places/894106>Pleiades: Tell Abu Hait/Sangarite?/Sachare?</a>"
+55,"Āmidu","Āmidu, Amēdu, Amidu, Amidi, Amida, Amedu, Āmid, Diyarbakir, Diyarbakır",1,"37.9101","40.23852","URU.a-me-di, a-me-di, a-me-du, URU.a-me-du, URU.a-mi-di, URU.a-med-a-a","city, capital, province","Āmidu (province), Bīt-Zamāni, Turkey, Bīt-Zamāni","Helsinki Atlas: 5 (map 3 D3), Bagg RGTC 7 2/1: 43–44 (Amēdu)"
+63,"Āmul","Āmul, Amul, Āmol",4,"36.47083","52.34933","URU.a-mul","city","Zagros mountains, Iran","Helsinki Atlas: 5 (map 6 D4)"
+67,"Ānat","Ānat, Anat, Anatu, Ḫanat, Ana, Ānatha, Ānatho, Qal'at 'Ana, Anah, ʾĀna, عانة‎",1,"34.46761","41.97943","URU.a-na-at, URU.an-at, LÚ.an-at-a-a, URU.ana-te","city, island","Sūḫu, Iraq","Helsinki Atlas: 5 (map 10 B1), Bagg RGTC 7 2/1: 46–47 (Anat), <a href=https://pleiades.stoa.org/places/893936>Pleiades: Anatho</a>, <a href=https://books.openedition.org/cdf/4564#tocfrom2n39>MTT I/2 (HIGEOMES Nr. 196)</a>"
+503,"Ītu","Ītu, Īdu, Idu, Ida, Is, Idi, Hit, Hīt, هيت",1,"33.64391811933405","42.82314138727005","URU.i-te, URU.itu5 (= URU.ÍD)","town","Sūḫu, Iraq","Bagg RGTC 7 2/1: 259, Helsinki Atlas: 10 (Īdu, map 10 B3), Parpola Toponyms: 179"
+897,"Šabirēšu","Šabirēšu, Basorin",4,"37.15179","42.34429","–","city","–","Helsinki Atlas: 15 (map 4 B4)"
+898,"Šabuqu","Šabuqu","–","–","–","KUR.šá-bu-qa-a.a, LÚ.šá-bu-qa-a.a","territory (?), tribe (?)","–","<a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+899,"Šadikanni","Šadikanni, Šadikannu, ʿArbān, Arabana, Tell ʿAğāğa, Tell 'Ajaja",1,"36.2081","40.72067","šá-URU.di-kan-ni, URU.šá-di-kan-ni, di-ka-ni-a, KUR.di-ka-na-a-ia, URU.di-kan-a-a, URU.šá-di-kan-a-a, URU.še-di-kan-a-a","city","Ḫābūr area","Helsinki Atlas: 15 (map 3 D4), Bagg RGTC 7 2: 559"
+900,"Šaduppûm","Šaduppûm, Tell Harmal","–","33.30978245280799","44.46657571197006","–","–","–","–"
+902,"Šakmu","Šakmu, Shechem, Šekem, Tell Balata","–","32.2135081628689","35.28222003429811","–","–","–","–"
+903,"Šapinuwa","Šapinuwa, Ortaköy","–","40.25443121418439","35.23660208437604","–","–","–","–"
+905,"Šarišša","Šarišša, Kuşaklı","–","39.30842871867329","36.90967428160425","–","–","–","–"
+906,"Šarru-iddina (city)","Šarru-iddina","–","–","–","–","city","Central Assyria, Aššur province","RGTC 7 2/2: 564"
+904,"Šarēši","Šarēši, Tell Šarīsī",4,"36.83333","41.33333","–","town","–","Helsinki Atlas: 15 (map 3 E4)"
+901,"Šaḫuppa","Šaḫuppa, Saḫuppa, Šuḫuppa, Katmuḫi, Katmuḫu, Kadmuḫi","–","–","–","URU.šá-ḫu-up-pa, URU.sa-ḫu-up-pa, ša-ḫup-pa, URU.šá-ḫu-pa, URU.šá-ḫup-pa, URU.šú-ḫu-pa","city, province","Assyria","Bagg RGTC 7 2/2: 560–561, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+907,"Šibanība","Šibanība, Šibaniba, Tell Billa",1,"36.43376","43.34825","–","prov. capital","–","Helsinki Atlas: 15 (map 4 C5)"
+908,"Šiddi nāri","Šiddi nāri, Šiddi-nāri, Parapotamia","–","–","–","–","district","–","Helsinki Atlas: 15 (map 3 B5)"
+909,"Šiddi-asika","Šiddi-asika","–","–","–","–","town","Assyria","Bagg RGTC 7 2/2: 568"
+910,"Šiddi-ḫirīti","Šiddi-ḫirīti, Ušḫiriti","–","–","–","URU.UŠ-ḫi-ri-ti","town","Central Assyria, Dūr-Šarrukīn province (?)","Bagg RGTC 7 2/2: 568–569"
+913,"Šingiša","Šingiša","–","37.6","40.88","–","town","–","Helsinki Atlas: 15 (map 3 D3)"
+914,"Šinuḫtu","Šinuḫtu, Niğde",3,"37.97583","34.69516","–","city","–","Helsinki Atlas: 15 (map 1 D3)"
+915,"Širu Malikta","Širu-Malikta, Širu Malikta","–","36.74466","43.06116","–","monument","Central Assyria, Talmūsa province","–"
+916,"Šišlu","Šišil, Šišlu, Šišda, Šašilū, Šilšil, Šašillānu, al-Qayyāra, Qayyāra, القيارة",4,"35.8025","43.29133","URU.ši-iš-li, URU.ši-iš-lu, URU.ši-šil, URU.ši-šil-a-a","town","Iraq","Helsinki Atlas: 15 (map 4 C6), Bagg RGTC 7 2/2: 572–573 (Šišil)"
+918,"Šubarû","Šubarû, Šubarûm, Subarû, Subaru, Šubaru, Subir, Šubartum","–","–","–","KUR.šu-ba-re-e, KUR.šu-ba-ri-i, KUR.šu-pa-re-e","territory","–","Bagg RGTC 7 2: 573"
+919,"Šubat-Enlil","Šubat-Enlil, Šeḫna, Tell Leilan","–","36.9585300465899","41.5062658743722","–","–","–","–"
+920,"Šubria","Šubria",1,"–","–","–","country","–","Helsinki Atlas: 15 (map 2 D2)"
+921,"Šuksu","Šuksu, Tell Sukas","–","35.30587310836101","35.92274244299347","–","–","–","–"
+922,"Šurda","Šurda","–","–","–","–","country, region","Iran, Zagros Mountains","–"
+924,"Šuruppak","Šuruppak, Fara","–","31.7776323654228","45.50974801317648","–","–","–","–"
+926,"Šušarra","Šušarra, Tell Shemshara","–","36.20064","44.93869","–","–","–","–"
+911,"Šīmu","Šīmu, Siʾimê","–","–","–","–","city","Central Assyria, Province of Šīmu","RGTC 7 2/2: 569–570"
+912,"Šīmu (province)","Šīmu, Siʾimê","–","–","–","–","province","Central Assyria","RGTC 7 2/2: 569–570"
+917,"Šītamrat","Šītamrat",2,"–","–","–","mountain","–","Helsinki Atlas: 15 (map 3 B4)"
+923,"Šūru","Šūru, Sauras, Tzauras",1,"–","–","–","town","–","Helsinki Atlas: 15 (map 3 D3)"
+925,"Šūšan","Susa, Šūš, Sūsa, Šûšan",1,"32.18977297421221","48.25205205147439","–","capital","–","Helsinki Atlas: 15 (map 17 Al)"
+1008,"Ūlāia","Ulai, Eulaios, Karḫe, Karkhe",2,"–","–","–","river","–","Helsinki Atlas: 17 (map 17 A2)"
+1024,"Ūru","Ūru, Ûr, Ur, Tell al-Muqayyar, Tell Muqayyar",1,"30.9618","46.10512","–","prov. capital","Babylonia","Helsinki Atlas: 18 (map 16 B3)"
+1055,"ʾAtaroth","Khirbet 'Ataruz (?), Khirbat Ataruz, עֲטָרוֹת, ʿăṭārôt",4,"31.57431","35.66511","עֲטָרוֹת","city","Māʾab, Transjordania, Israel","<a href=http://www.ataruz.org>Khirbat Ataruz Project</a>, <a href=https://www.thetorah.com/article/ataroth-and-the-inscribed-altar-who-won-the-war-between-moab-and-israel>Ataroth and the Inscribed Altar</a>"
+1056,"ʿAqaba","Aqaba, ʿAqaba, Al-ʿAkūba (?), Aqabah (?), العكوبة, Baʾqūba (?), Baqubah (?), بعقوبة",3,"33.52954","42.91286","URU.a-qa-ba","town","Babylonia, Māt-tâmti (?), Iraq","Helsinki Atlas: 6 (map 10 B3), Bagg RGTC 7 3/1: 46–47"
+383,"Ḫabrūri","Ḫabrūri (province), Ḥerīr Plain",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 4 D5)"
+384,"Ḫabūr","Ḫabūr, Ḫābūr, Khabur",1,"–","–","–","river","–","Helsinki Atlas: 9 (map 9 C1)"
+379,"Ḫabḫu","Ḫabḫu",3,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 5 A4)"
+380,"Ḫabḫu ša bētāni (1)","Ḫabḫu ša bētāni",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 4 B4)"
+381,"Ḫabḫu ša bētāni (2)","Ḫabḫu ša bētāni_(1)",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 4 D5)"
+382,"Ḫabḫu ša pān Ḫatti","Ḫabḫu ša pān Ḫatti",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 3 C3)"
+385,"Ḫadattu","Ḫadatu, Ḫadattu, Hadatu, Hadattu, Arslān Ṭāš, Arslan Tash",1,"36.84938","38.40774","–","city","–","Helsinki Atlas: 9 (map 3 B4)"
+386,"Ḫadina","Ḫadina",4,"–","–","–","river","–","Helsinki Atlas: 9 (map 8 B2)"
+387,"Ḫalab","Ḫalab, Ḫalman, Halab, Aleppo, Ḥalab",1,"36.19911","37.16416","–","city","–","Helsinki Atlas: 9 (map 2 D4), Bagg RGTC 7 1: 84 (Ḫalman 1)"
+388,"Ḫalaḫḫu","Ḫalaḫḫu, חֲלַח",2,"–","–","–","district","–","Helsinki Atlas: 9 (map 4 C5), Bagg RGTC 7 2/1: 194–195"
+389,"Ḫaldini Ziuquni","Haldini Ziuquni, Kef Kalesi (?)",4,"38.8305","42.72728","–","–","–","–"
+391,"Ḫalmān","Armān, Ḥolwa, Ḥulwān",1,"34.45983","45.86266","–","city","–","Helsinki Atlas: 9 (map 11 A2)"
+392,"Ḫalpi","Ḫalpi, Gölbasi",2,"–","–","–","district","–","Helsinki Atlas: 9 (map 2 D3)"
+393,"Ḫalulê","Ḫalulê",3,"34.16666","43.86666","–","town","–","Helsinki Atlas: 9 (map 10 C2)"
+394,"Ḫalzi-atbāri","Ḫalzi-atbāri",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 4 B4), RGTC 7 2/1: 201–202."
+395,"Ḫalziluḫa","Ḫalziluḫa","–","–","–","URU.ḫal-zi-lu-ḫa","town","Turkey","Bagg RGTC 7 2/1: 202"
+396,"Ḫalzu","Ḫalzu, Ḫalzi",2,"–","–","–","city","Central Assyria, Province of Ḫalzu","Helsinki Atlas: 9 (map 4 C5), RGTC 7 2/1: 200"
+397,"Ḫalzu (province)","Ḫalzu, Ḫalzi",2,"–","–","–","province","Central Assyria","Helsinki Atlas: 9 (map 4 C5), RGTC 7 2/1: 200"
+390,"Ḫalēḫasta","Ḫalēḫasta, Ḫarēḫasta","–","–","–","KUR.ḫa-le-e-ḫa-as-ta, URU.ḫa-le-e-ḫa-as-ta, URU.ḫa-re-e-ḫa-as-ta, URU.ḫa-re-ḫa-as-ta","mount, territory","East Babylonia","Bagg RGTC 7 2/1: 196–197"
+398,"Ḫamanu","Ḫamanu, Ḫamānu, Amanus",2,"–","–","KUR.ḫa-ma-na, KUR.ḫa-ma-ni, KUR.ḫa-ma-nim, KUR.ḫa-ma-nu, KUR.ḫa-ma-a-ni, KUR.ḫa-ma-a-nu, ḫa-ma-ni","mountain","–","Helsinki Atlas: 9 (Ḫamānu, map 2 C4), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+399,"Ḫamānu","Ḫamānu","–","–","–","URU.ḫa-ma-a-nu, KUR.ḫa-ma-nu, URU.ḫa-ma-nu","city","Elam","–"
+400,"Ḫamāt","Ḫamāt, Amattu, Amatu, Ḥamāt, Ḥamā, Hama, Hamath",1,"35.13589896027996","36.74949783765234","–","city, capital, state","Syria, Ḫamāt","Helsinki Atlas: 9 (map 8 B1)"
+401,"Ḫamūru","Ḫamūru","–","–","–","–","tribe in Babylonia, living near Borsippa","–","PNA 2/2: 256; PNA 2/2: 728; PNA 3/2: 1283; Vera Chamaza (2002): ''Die Omnipotenz Aššurs'' (AOAT 295): 30–31"
+402,"Ḫanigalbat","Ḫanigalbat",2,"–","–","–","territory, Middle Assyrian province","Turkey, Syria, territory of the Kāšijēri mountains","Helsinki Atlas: 9 (map 3 D4), Bagg RGTC 7 2/1: 206"
+403,"Ḫanqāti","Ḫanqāti","–","–","–","URU.ḫa-an-qa-a-ti","town","Central Assyria (?)","Bagg RGTC 7 2/1: 207"
+404,"Ḫanusa","Ḫinnis, Khinis, Hinnis",2,"36.75617","43.41486","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+405,"Ḫappati","Ḫappati","–","–","–","URU.ḫa-ap-pa-ti","town","Central Assyria (?), Nineveh province","Bagg RGTC 7 2/1: 208"
+407,"Ḫarbe","Harbe, Tell Huera","–","36.64698549413157","39.49853194903646","–","–","–","–"
+408,"Ḫarbê","Ḫarbê, Ḫarbû","–","–","–","URU.ḫar-bé-e","town","mid-Euphrates, Sūḫu, al-Koṭbijje (?)","Bagg RGTC 7 1: 210"
+410,"Ḫariḫumba","Ḫariḫumba","–","–","–","URU.ḫa-ri-ḫum-ba, URU.ḫar-ḫum-ba","town","Central Assyria, Kalḫu province","Bagg RGTC 7 1: 211–212"
+411,"Ḫariṣû","Ḫariṣû, Ḥariṣṣa",2,"33.97816","35.67416","–","town","–","Helsinki Atlas: 9 (map 8 A3)"
+413,"Ḫarmiš","Ḫarmiš, Ğaġğāġ, Harmās",2,"–","–","–","river","–","Helsinki Atlas: 9 (map 3 E4)"
+412,"Ḫarmāsu","Ḫarmāsu, Ḫarmāše",4,"36.79999","43.5","–","town","–","Helsinki Atlas: 9 (map 4 C5)"
+414,"Ḫarrānia","Ḫarrānia, Rāniya",3,"36.25817","44.90183","–","town","–","Helsinki Atlas: 9 (map 4 D5)"
+415,"Ḫarrānu","Ḫarrānu, Harran, Ḥarrān, Carrhae",1,"36.8666","39.03039","–","prov. capital","–","Helsinki Atlas: 9 (map 3 C4)"
+409,"Ḫarḫār","Ḫarḫār, Ḫarḫar, Kār-Šarrukīn, Malayer, Tepe Giyan",4,"34.18139","48.24361","–","prov. capital","–","Helsinki Atlas: 9 (map 12 A2), Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+416,"Ḫasamu","Ḫasamu, Ḥasmī Ṭūrā, Teke Daği",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 3 C3)"
+420,"Ḫatallu","Ḫatallu, Ḫaṭallu, Ḫadallu","–","–","–","KUR.ḫa-da-lu, KUR.ḫa-tal-li, KUR.ḫa-ta-li, KUR.ḫa-ta-lim, LÚ.ḫa-tal-la-a-a, LÚ.ḫa-tal-a-a, LÚ.ḫa-tal-la, LÚ.ḫa-tal-li, LÚ.ḫa-tal-lu, LÚ.ḫa-tal-lum",",Aramean tribe, territory","Iraq, Raṣappa province (?)","Bagg RGTC 7 2/1: 220–221"
+421,"Ḫatarikka","Hatarikka, Ḫadrāk, ḥzrk, ʿAḏrā, Hadra",3,"33.60616","36.51216","–","prov. capital","–","Helsinki Atlas: 10 (map 8 B3)"
+424,"Ḫatti","Ḫatti",2,"–","–","–","territory","–","Helsinki Atlas: 10 (map 2 C4)"
+425,"Ḫattuša","Hattuša, Boğazköy","–","40.01438533090195","34.6140544346557","–","–","–","–"
+423,"Ḫattâ","Ḫattâ, Ḫatâ","–","–","–","URU.ḫat-ta-a, URU.ḫa-ta-a","town","Central Assyria, Talmūsa province (?)","PNA 1/1: 4, Bagg RGTC 7 2/1: 222, SAA 6 268"
+426,"Ḫaurāni","Ḫaurāni, Ḥawār an-Nahr",3,"36.51433","37.25233","–","town","–","Helsinki Atlas: 10 (map 2 D4)"
+429,"Ḫazi","Hazi, Tell Hizzin (?)",4,"33.96514007015759","36.10399255635561","–","–","–","–"
+431,"Ḫazzat","Hazzat, Gaza, Ġazza, ʿazza, Tell Harube, Tell 'Azza",1,"31.54755980011124","34.51377704279476","–","capital","–","Helsinki Atlas: 10 (map 7 C5)"
+428,"Ḫazāzu","Ḫazāzu, Hazazu, ʿAzāz, 'Azaz",1,"36.58626410781966","37.04525182513137","–","city","–","Helsinki Atlas: 10 (map 2 D4)"
+419,"Ḫašmar","Ḫašmar, Darband-e Ḫān",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 11 A1)"
+417,"Ḫaṣōr","Ḫaṣōr, Hazor","–","33.01724381534079","35.56794736461505","–","–","–","–"
+433,"Ḫešbōn","Ḫešbōn, Heshbon, Tell Hesban","–","31.80133725149214","35.809734682461","–","–","–","–"
+435,"Ḫilakku","Ḫilakku, Cilicia",2,"–","–","–","country","–","Helsinki Atlas: 10 (map 1 C4)"
+436,"Ḫildua","Hildua, Ḫān el-Ḫulda, Ḫuldā, Ḫalde, Khalda",1,"33.78912076105539","35.47415191117009","–","town","–","Helsinki Atlas: 10 (map 8 A3)"
+439,"Ḫindaru","Ḫindaru, Ḫindiru","–","–","–","–",",Aramean tribe","Babylonia","–"
+438,"Ḫindānu","Hindanu, Giddan, 'Eddana, al-Ğābirīya, Karable",2,"34.38484","41.06521","–","city, country, province","–","Helsinki Atlas: 10 (map 9 D2)"
+440,"Ḫinnatūna","Ḫinnatūna, Ḫinatuna, Hinatuna, Hinnatuna, Hannaton, Tell al-Badawīya, Ḥannatôn, Tel Hannaton, Tell el-Badawiya, Ḥinnātôn, Asōchis, Tel Ḥanaton",1,"32.78574","35.25794","–","town","Israel","Helsinki Atlas: 10 (map 8 A4), Bagg RGTC 7/1: 107–108"
+441,"Ḫinnis Monuments","Ḫinnis Monuments, Kharusa Monuments, Hinnis Monuments, Bavian Monuments, Khinis Monuments, Bawian Monuments, Khinnis Monuments","–","36.76156","43.41999","–","monument","Iraq, Assyria","Helsinki Atlas: 10 (map 4 C5)"
+442,"Ḫiptūnu","Ḫiptūnu, Hefton, Tell Ḥaftūn",3,"36.65","44.25","–","town","–","Helsinki Atlas: 10 (map 4 D5)"
+443,"Ḫirītu","Ḫirītu","–","–","–","–","river","Babyloénia, Gambūlu","–"
+445,"Ḫubišna","Ḫubišna, Ḫupišna, Ḫubušna, Hubišna, Hupišna, Hubušnu, Kybistra, Cybistra, Karahüyük,'Eregli",1,"37.66234693212137","34.22669200769285","–","city","–","Helsinki Atlas: 10 (map 1 D3)"
+446,"Ḫubuškia","Ḫubuškia, Ḫubušku, Ḫāne Plain",2,"–","–","–","country","–","Helsinki Atlas: 10 (map 4 E5)"
+444,"Ḫubāba","Ḫubāba","–","–","–","–","town","Central Assyria, Province of Šīmu","RGTC 7 2/1: 235"
+447,"Ḫudubili","Ḫudubili, Ḫudubilu","–","–","–","URU.ḫu-du-bi-li","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 1: 236"
+448,"Ḫukkurūna","Ḫukkurūna, al-Lağā",2,"–","–","–","region","–","Helsinki Atlas: 10 (map 8 B4)"
+449,"Ḫulbūnu","Ḫulbūnu, Ḥelbôn, Ḥalbūn",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 8 B3)"
+450,"Ḫulḫulītu","Ḫulḫulītu, Ḫalḫala, Ḥulḥulē",2,"33.06133","36.53316","–","town","–","Helsinki Atlas: 10 (map 8 B3)"
+451,"Ḫundur","Ḫundur, Ḫundiru","–","–","–","URU.ḫu-un-dír-a-a, LÚ.ḫu-un-du-ru-a-a, URU.ḫu-un-du-ur, URU.ḫu-un-du-ur-a-a","city","Iran","Parpola Toponyms: 169 (Ḫundiru and Ḫundur)"
+452,"Ḫupšana","Ḫupšana, Hupšana, Deh-e Now","–","32.06884773403157","48.57295649754241","–","–","–","–"
+453,"Ḫuri-ṣubuʾi","Huri-ṣubuʾi, Khraṣbo?","–","35.61418771815032","35.87285278541339","–","–","–","–"
+454,"Ḫurmu","Ḫurmu, Ḥārim",3,"36.20724","36.51909","–","town","–","Helsinki Atlas: 10 (map 2 C4)"
+455,"Ḫursagkalama","Ḫursagkalama, Hursagkalama, Inġarra, Ingharra, see also Kiš","–","32.54463","44.613","–","city","–","Helsinki Atlas: 10 (map 10 D4)"
+456,"Ḫusur","Ḫusur, Ḫosr",1,"–","–","–","river","–","Helsinki Atlas: 10 (map 4 C5)"
+457,"Ḫuzarra","Ḫuzarra, Ḥazra al-ʿAtīqa",3,"36.244","36.79333","–","town","–","Helsinki Atlas: 10 (map 2 C4)"
+459,"Ḫuzirina","Ḫuzirīna, Ḫuzirina, Ḫaziri, Ḫuzīrānu, ʿĀmūdā",3,"37.10333","40.87867","URU.ḫu-zi-ri-na","town","Ḫanigalbat","Helsinki Atlas: 10 (map 3 D3), Bagg RGTC 7 1: 238–239, Postgate, RlA 4: 535–536"
+460,"Ḫuzirīna","Ḫuzirīna, Huzirina, Huzarad, Huzariʾum, Hostra, Sultantepe",1,"37.05035","38.90587","URU.ḫu, URU.ḫu-zir-na, URU.ḫu-zir-i-na, URU.ḫu-zir-ri-na","city","Balīḫ basin","Helsinki Atlas: 10 (map 3 B3), Bagg RGTC 7 1: 238–239, Postgate, RlA 4: 535–536"
+458,"Ḫuzāza","Ḫuzāza, Ḥuzaiz, Ḥuzēz",3,"34.5","36.76666","–","town","–","Helsinki Atlas: 10 (map 8 B2)"
+378,"Ḫāba","Ḫāba","–","–","–","URU.ḫa-a-ba","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 244"
+406,"Ḫāradu","Ḫaradu, Ḫarada, Haradu, Ḫirbat ad-Dīnīya, Ḫirbat ad-Dīnīyah, Khirbet ed-Diniye",3,"34.46176","41.59212","–","town","–","Helsinki Atlas: 10 (map 9 D2)"
+427,"Ḫāurīna","Ḫāurīna, Ḥawārīn",2,"34.2695","37.08433","–","prov. capital","–","Helsinki Atlas: 10 (map 8 C2)"
+430,"Ḫāzur","Ḫāzur, Ḫāzir",1,"–","–","–","river","–","Helsinki Atlas: 10 (map 4 C5)"
+432,"Ḫēsa","Ḫēsa, Ḫasīya, Hasya, Hassia",3,"34.41333","36.76433","–","town","–","Helsinki Atlas: 10 (map 8 B2)"
+434,"Ḫīdālu","Ḫīdālu, Ḫaidalu, Ardjān",1,"30.96666",50,"–","capital","–","Helsinki Atlas: 10 (map 17 C3)"
+824,"Ṣaidinu","Ṣaidinu, Ṣaidini, Ṣaidina, Ṣaidi, Zaidinu","–","–","–","–","town","Ḫarrānu area","RGTC 7 2/2: 550"
+840,"Ṣapuna","Ṣapuna, Ṣafon, Tell es-Sa'idiyeh","–","32.26772147669001","35.5771886219876","–","–","–","–"
+845,"Ṣariptu","Ṣariptu, Sarephtha, aṣ-Ṣarafand, Sarepta, Ras el-Qantara",1,"33.46443052775337","35.29507077977482","–","city","–","Helsinki Atlas: 15 (map 8 A3)"
+854,"Ṣibur","Ṣibur, Ṣibar, Ṣimaš, Ṣibara, Ṣiburaja","–","–","–","URU.ṣi-bu-ur, URU.ṣi-bar, URU.ṣi-ba-ra-a-a, URU.ṣi-ba-ra","city","Media, Western Iran, Gizilbunda","PNA B–G: 270, Parpola Toponyms: 321"
+861,"Ṣimirra","Ṣimirra, Ṣumur, Simyra, Tell Kazel, Ṣumra",1,"34.70849380585606","35.9861363536706","–","prov. capital","–","Helsinki Atlas: 15 (map 8 A2)"
+888,"Ṣupru","Ṣupru, Tell Abu Hasan (?)",4,"34.65467","40.88574","–","–","–","–"
+893,"Ṣurru","Ṣurru, Tyros, Tyre, Ṣūr, Ṣôr, Sur",1,"33.27028907957312","35.19597034995852","–","prov. capital","–","Helsinki Atlas: 15 (map 8 A3)"
+855,"Ṣīdūnu","Ṣīdūnu, Sidon, Ṣīdôn, Ṣaidā",1,"33.56243","35.36933","–","city","–","Helsinki Atlas: 15 (map 8 A3)"
+886,"Ṣūpat","Ṣūpat, Ṣupat, Ṣubat, Ḥoms, Zobah/Ṣôbā",4,"34.7205","36.717","–","prov. capital","–","Helsinki Atlas: 15 (map 8 B2), Bagg RGTC 7 1: 233–234"
+985,"Ṭuba","Ṭuba, Umm el-Marra (?)",4,"36.13471","37.69422","–","–","–","<a href=https://web.archive.org/web/20051124034827/http://www.jhu.edu/neareast/uem/index.html>Umm el-Marra Website</a>"
+997,"Ṭurušpâ","Ṭušpa, Tušpa, Ṭurušpâ, Turušpa, Van, Thospia",1,"38.50114487332675","43.33814728564371","–","capital","–","Helsinki Atlas: 17 (map 4 C3)"
+928,"Ṭābēte","Ṭābēte, Ṭabēte, Ṭābātu, Ṭabatu, Ṭabitu, Ṭabatun, Tell Tābān, Tall Tābān, Thebeta (1), Tell Ta'ban",2,"36.33621","40.78773","URU.DÙG.GA-e-te, URU.DÙG.GA-ta-ia, URU.ṭa-bé-te","city","Ḫābūr area","Helsinki Atlas: 17 (map 3 D4), Bagg RGTC 7 2: 617"
diff --git a/backend/Dockerfile b/backend/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..ca048f269a6b211bb1fbcdc189581d7710fa409e
--- /dev/null
+++ b/backend/Dockerfile
@@ -0,0 +1,6 @@
+FROM adoptopenjdk/openjdk11:jdk-11.0.2.9-slim
+WORKDIR /opt
+ENV PORT 8080
+EXPOSE 8080
+COPY target/*.jar /opt/app.jar
+ENTRYPOINT exec java $JAVA_OPTS -jar app.jar
\ No newline at end of file
diff --git a/backend/HELP.md b/backend/HELP.md
new file mode 100644
index 0000000000000000000000000000000000000000..2e1bba69df0c73f692f1223f30c76da1659f08f9
--- /dev/null
+++ b/backend/HELP.md
@@ -0,0 +1,22 @@
+# Read Me First
+The following was discovered as part of building this project:
+
+* The original package name 'cz.zcu.kiv.backend-api' is invalid and this project uses 'cz.zcu.kiv.backendapi' instead.
+
+# Getting Started
+
+### Reference Documentation
+For further reference, please consider the following sections:
+
+* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
+* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/html/)
+* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/reference/html/#build-image)
+* [Spring Web](https://docs.spring.io/spring-boot/docs/2.6.4/reference/htmlsingle/#boot-features-developing-web-applications)
+
+### Guides
+The following guides illustrate how to use some features concretely:
+
+* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
+* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
+* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/)
+
diff --git a/backend/app-deployment.yaml b/backend/app-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..24011a9631481f451fb37a54c54453ba40631aa6
--- /dev/null
+++ b/backend/app-deployment.yaml
@@ -0,0 +1,36 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: app
+  name: app
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: app
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+        kompose.version: 1.26.0 (40646f47)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: app
+    spec:
+      containers:
+        - env:
+            - name: SPRING_DATASOURCE_URL
+              value: jdbc:postgresql://db:5432/test
+          image: schwobik/backend-app:1.2
+          name: app-backend
+          ports:
+            - containerPort: 8080
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/backend/app-service.yaml b/backend/app-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..26a34bcda0025e18b986e9d0687708c3763aa3fb
--- /dev/null
+++ b/backend/app-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: app
+  name: app
+spec:
+  ports:
+    - name: "8080"
+      port: 8080
+      targetPort: 8080
+  selector:
+    io.kompose.service: app
+status:
+  loadBalancer: {}
diff --git a/backend/db-data-persistentvolumeclaim.yaml b/backend/db-data-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..803a5b98bc1b461ad090a07e88e3724e6a97ea9b
--- /dev/null
+++ b/backend/db-data-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: db-data
+  name: db-data
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/backend/db-deployment.yaml b/backend/db-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7503bf27a5eba002c02d49a00f28b19e3f53c6f2
--- /dev/null
+++ b/backend/db-deployment.yaml
@@ -0,0 +1,41 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: db
+  name: db
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: db
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+        kompose.version: 1.26.0 (40646f47)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: db
+    spec:
+      containers:
+        - env:
+            - name: POSTGRES_DB
+              value: test
+            - name: POSTGRES_PASSWORD
+              value: Password.123
+            - name: POSTGRES_USER
+              value: test
+          image: postgres:14.2
+          name: postgres-db
+          ports:
+            - containerPort: 5432
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/backend/db-service.yaml b/backend/db-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c96ee07371e1f9eb253a62b4046ec94386bdfb4f
--- /dev/null
+++ b/backend/db-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: db
+  name: db
+spec:
+  ports:
+    - name: "5432"
+      port: 5432
+      targetPort: 5432
+  selector:
+    io.kompose.service: db
+status:
+  loadBalancer: {}
diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f9b11668c4e55d5a11c47dc6e0165e12f400e118
--- /dev/null
+++ b/backend/docker-compose.yml
@@ -0,0 +1,39 @@
+version: '3.8'
+
+services:
+  db: # PostgreSQL database
+    image: postgres:14.2
+    container_name: postgres-db
+    environment:
+      - POSTGRES_DB=test                # database name
+      - POSTGRES_USER=test              # database user
+      - POSTGRES_PASSWORD=Password.123  # database password
+    expose:
+      - 5432
+    ports:
+      - "5432:5432"                # expose port 5432 (PostgreSQL) out of the docker container to the local machine
+    volumes:
+      - db-data:/var/lib/postgresql/data
+
+
+  app: # Spring boot application
+    build: .
+    container_name: app-backend  # name of the container
+    image: schwobik/backend-app:1.2
+    ports:
+      - "8080:8080"                 # expose port 8080 out of the docker container do the local machine
+    depends_on:
+      - db
+    environment:
+      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/test # overwrites application.properties datasource url to connect to the database
+
+  frontend:
+    # Since our Dockerfile for web-server is located in react-app foler, our build context is ./react-app
+    build: ../frontend
+    container_name: frontend
+    image: schwobik/frontend-app:1.2
+    ports:
+      - "80:80"
+
+volumes:
+  db-data:
\ No newline at end of file
diff --git a/backend/frontend-deployment.yaml b/backend/frontend-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..735ea3284b53614c331ff0d7f74c49fb9398a9a6
--- /dev/null
+++ b/backend/frontend-deployment.yaml
@@ -0,0 +1,33 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: frontend
+  name: frontend
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: frontend
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+        kompose.version: 1.26.0 (40646f47)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: frontend
+    spec:
+      containers:
+        - image: schwobik/frontend-app:1.2
+          name: frontend
+          ports:
+            - containerPort: 80
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/backend/frontend-service.yaml b/backend/frontend-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..98b0f6137ff37d8317e4640b5c507bcda31509c9
--- /dev/null
+++ b/backend/frontend-service.yaml
@@ -0,0 +1,20 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: D:\Skola\5_leto\ASWI\Semestralka\aswi2022code-of-duty\kompose.exe convert
+    kompose.version: 1.26.0 (40646f47)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: frontend
+  name: frontend
+spec:
+  ports:
+    - name: "80"
+      port: 80
+      targetPort: 80
+  selector:
+    io.kompose.service: frontend
+  type: LoadBalancer
+status:
+  loadBalancer: {}
diff --git a/backend/mvnw b/backend/mvnw
new file mode 100644
index 0000000000000000000000000000000000000000..8a8fb2282df5b8f7263470a5a2dc0e196f35f35f
--- /dev/null
+++ b/backend/mvnw
@@ -0,0 +1,316 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /usr/local/etc/mavenrc ] ; then
+    . /usr/local/etc/mavenrc
+  fi
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`\\unset -f command; \\command -v java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  $MAVEN_DEBUG_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/backend/mvnw.cmd b/backend/mvnw.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..1d8ab018eaf11d9b3a4a90e7818ace373dfbb380
--- /dev/null
+++ b/backend/mvnw.cmd
@@ -0,0 +1,188 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+  %JVM_CONFIG_MAVEN_PROPS% ^
+  %MAVEN_OPTS% ^
+  %MAVEN_DEBUG_OPTS% ^
+  -classpath %WRAPPER_JAR% ^
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/backend/pom.xml b/backend/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1cd1d4cb0a8446de67374977f794edeb1ecf99b6
--- /dev/null
+++ b/backend/pom.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.6.4</version>
+        <relativePath/>
+    </parent>
+    <groupId>cz.zcu.kiv</groupId>
+    <artifactId>backend-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>backend-api</name>
+    <description>Backend API for Neo-assyrian web application</description>
+    <properties>
+        <java.version>11</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-csv</artifactId>
+            <version>1.9.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.19.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>31.1-jre</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <version>2.6.5</version>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-ui</artifactId>
+            <version>1.6.6</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/BackendApiApplication.java b/backend/src/main/java/cz/zcu/kiv/backendapi/BackendApiApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a69f5ec0a7fc2c01235e8512d88ea19cdcb2832
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/BackendApiApplication.java
@@ -0,0 +1,19 @@
+package cz.zcu.kiv.backendapi;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import java.util.logging.Logger;
+
+@SpringBootApplication
+public class BackendApiApplication {
+
+    // TODO replace with log4j?
+    public static final Logger LOGGER = Logger.getLogger(BackendApiApplication.class.getName());
+
+    public static void main(String[] args) {
+        SpringApplication.run(BackendApiApplication.class, args);
+        LOGGER.info("Swagger is running at: http://localhost:8080/swagger-ui.html");
+    }
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeName.java b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeName.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ccd5eb3c2100e04c278c7ee6e4065ca27cf2afa
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeName.java
@@ -0,0 +1,34 @@
+package cz.zcu.kiv.backendapi.alternativename;
+
+import cz.zcu.kiv.backendapi.catalog.CatalogItem;
+import lombok.*;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * Alternative name entity representing alternative name of catalog item
+ */
+@Data
+@EqualsAndHashCode(exclude = "catalogItem")
+@ToString(exclude = "catalogItem")
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "alternative_names")
+@IdClass(AlternativeName.class)
+public class AlternativeName implements Serializable {
+    /**
+     * Name, serves as ID
+     */
+    @Id
+    private String name;
+
+    /**
+     * Catalog entity
+     */
+    @ManyToOne
+    @JoinColumn(name = "catalog_item_id")
+    @Id
+    private CatalogItem catalogItem;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..bbb7cf3e31c0837cf9bc2ba9189b1fd81902d1b0
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameRepository.java
@@ -0,0 +1,11 @@
+package cz.zcu.kiv.backendapi.alternativename;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Alternative name repository
+ */
+@Repository
+public interface AlternativeNameRepository extends JpaRepository<AlternativeName, AlternativeName> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb1abf114dc0a2acbaa5b117224d571a562caf3d
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/AlternativeNameServiceImpl.java
@@ -0,0 +1,19 @@
+package cz.zcu.kiv.backendapi.alternativename;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Alternative name service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class AlternativeNameServiceImpl implements IAlternativeNameService {
+
+    /**
+     * Alternative name repository
+     */
+    private final AlternativeNameRepository alternativeNameRepository;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/IAlternativeNameService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/IAlternativeNameService.java
new file mode 100644
index 0000000000000000000000000000000000000000..9e7a7d06cba1255ba34e1409158c3132d32f888c
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/alternativename/IAlternativeNameService.java
@@ -0,0 +1,7 @@
+package cz.zcu.kiv.backendapi.alternativename;
+
+/**
+ * Alternative name service interface
+ */
+public interface IAlternativeNameService {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/Bibliography.java b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/Bibliography.java
new file mode 100644
index 0000000000000000000000000000000000000000..7b345663335a4fc39af63d1b94721cdeda594d9a
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/Bibliography.java
@@ -0,0 +1,30 @@
+package cz.zcu.kiv.backendapi.bibliography;
+
+import cz.zcu.kiv.backendapi.catalog.CatalogItem;
+import lombok.*;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * Bibliography entity representing bibliography
+ */
+@Data
+@EqualsAndHashCode(exclude = "catalogItem")
+@ToString(exclude = "catalogItem")
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "bibliography")
+@IdClass(Bibliography.class)
+public class Bibliography implements Serializable {
+    /**
+     * Source, serves as ID
+     */
+    @Id
+    private String source;
+
+    @ManyToOne
+    @JoinColumn(name = "catalog_item_id")
+    private CatalogItem catalogItem;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..cebbae075e65a849f4143f80a3a2242751a12be0
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyRepository.java
@@ -0,0 +1,11 @@
+package cz.zcu.kiv.backendapi.bibliography;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Bibliography repository
+ */
+@Repository
+public interface BibliographyRepository extends JpaRepository<Bibliography, Bibliography> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3964b41418b7bccee13ae69bcf8851a5e85678f
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/BibliographyServiceImpl.java
@@ -0,0 +1,18 @@
+package cz.zcu.kiv.backendapi.bibliography;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Bibliography service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class BibliographyServiceImpl implements IBibliographyService {
+    /**
+     * Bibliography repository
+     */
+    private final BibliographyRepository bibliographyRepository;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/IBibliographyService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/IBibliographyService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c29c80287050ddeb36244dbce0938599037a0adc
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/bibliography/IBibliographyService.java
@@ -0,0 +1,7 @@
+package cz.zcu.kiv.backendapi.bibliography;
+
+/**
+ * Bibliography service interface
+ */
+public interface IBibliographyService {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogController.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogController.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f6fa019f8a7db27bc1e64e126a56ce2f5c4fb3f
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogController.java
@@ -0,0 +1,84 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * Controller for catalog
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/catalog-items")
+public class CatalogController {
+
+    /**
+     * Catalog service
+     */
+    private final ICatalogItemService catalogService;
+
+    /**
+     * Saves new catalog item
+     *
+     * @param catalogItemDto catalog item DTO
+     */
+    @PostMapping("")
+    @Operation(summary = "creates new catalog item")
+    public void addCatalogItem(@RequestBody CatalogItemDto catalogItemDto) {
+        catalogService.saveCatalogItem(catalogItemDto);
+    }
+
+    /**
+     * Returns catalog items satisfying given filter
+     *
+     * @param name    name - optional
+     * @param country country - optional
+     * @param type    type - optional
+     * @return list of catalog items satisfying given filter
+     */
+    @GetMapping("")
+    @Operation(summary = "returns catalog items based on filter")
+    public ResponseEntity<List<CatalogItemDto>> getCatalog(@RequestParam(defaultValue = "") String name, @RequestParam(defaultValue = "") String country, @RequestParam(defaultValue = "") String type) {
+        return new ResponseEntity<>(catalogService.getCatalog(name, country, type), HttpStatus.OK);
+    }
+
+    /**
+     * Updates catalog item with given ID
+     *
+     * @param id             ID
+     * @param catalogItemDto catalog item DTO
+     */
+    @PutMapping("/{id}")
+    @Operation(summary = "updates catalog item with given ID")
+    public void updateCatalogItem(@PathVariable UUID id, @RequestBody CatalogItemDto catalogItemDto) {
+        catalogService.updateCatalogItem(id, catalogItemDto);
+    }
+
+    /**
+     * Deletes catalog item with given ID
+     *
+     * @param id ID
+     */
+    @DeleteMapping("/{id}")
+    @Operation(summary = "deletes catalog item with given ID")
+    public void deleteCatalogItem(@PathVariable UUID id) {
+        catalogService.deleteCatalogItem(id);
+    }
+
+    /**
+     * Returns catalog item with given ID
+     *
+     * @param id ID
+     * @return catalog item with given ID
+     */
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/json")
+    @Operation(summary = "returns catalog item with given ID")
+    public CatalogItemDto getCatalogItem(@PathVariable UUID id) {
+        return catalogService.getCatalogItem(id);
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItem.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5db4d0e0b3aa9a6eaefd570daed5c53f1392d1c
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItem.java
@@ -0,0 +1,161 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import cz.zcu.kiv.backendapi.alternativename.AlternativeName;
+import cz.zcu.kiv.backendapi.bibliography.Bibliography;
+import cz.zcu.kiv.backendapi.country.Country;
+import cz.zcu.kiv.backendapi.type.Type;
+import cz.zcu.kiv.backendapi.writtenform.WrittenForm;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
+import org.hibernate.annotations.LazyCollection;
+import org.hibernate.annotations.LazyCollectionOption;
+
+import javax.persistence.*;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * Catalog entity representing catalog item
+ */
+@Data
+@NoArgsConstructor
+@Entity
+@Table(name = "catalog_item")
+//@NamedEntityGraph(name = "graph", attributeNodes = {
+//        @NamedAttributeNode("bibliography"),
+//        @NamedAttributeNode("alternativeNames"),
+//        @NamedAttributeNode("countries"),
+//        @NamedAttributeNode("writtenForms"),
+//        @NamedAttributeNode("types"),
+//})
+public class CatalogItem {
+    private static final String INTEGER_PATTERN = "\\d+";
+    private static final String DOUBLE_PATTERN = "(\\d+[.]\\d+)|(\\d+)";
+    private static final String EMPTY_ENTRY = "–";
+    /**
+     * Catalog item id
+     */
+    @Id
+    @GeneratedValue
+    private UUID id;
+
+    /**
+     * Name of geographic item
+     */
+    private String name;
+
+    /**
+     * Certainty
+     */
+    private int certainty;
+
+    /**
+     * Longitude
+     */
+    private double longitude;
+
+    /**
+     * Latitude
+     */
+    private double latitude;
+
+    /**
+     * Bibliography
+     */
+    @OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @Fetch(FetchMode.SUBSELECT)
+    private Set<Bibliography> bibliography = Collections.emptySet();
+
+    /**
+     * Countries
+     */
+    @OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @Fetch(FetchMode.SUBSELECT)
+    private Set<Country> countries = Collections.emptySet();
+
+    /**
+     * Written forms
+     */
+    @OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @Fetch(FetchMode.SUBSELECT)
+    private Set<WrittenForm> writtenForms = Collections.emptySet();
+
+    /**
+     * Alternative names
+     */
+    @OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @Fetch(FetchMode.SUBSELECT)
+    private Set<AlternativeName> alternativeNames = Collections.emptySet();
+
+    /**
+     * Set of user roles - many-to-many relationship
+     */
+    @ManyToMany(fetch = FetchType.EAGER)
+    @Fetch(FetchMode.SUBSELECT)
+    @JoinTable(
+            name = "catalog_item_type",
+            joinColumns = {
+                    @JoinColumn(name = "catalog_item_id", referencedColumnName = "id")
+            },
+            inverseJoinColumns = {
+                    @JoinColumn(name = "type", referencedColumnName = "type")
+            }
+    )
+    private Set<Type> types = Collections.emptySet();
+
+    public CatalogItem(final List<String> csvFields) {
+
+        this.name = csvFields.get(1);
+        List<String> stringList = processListField(csvFields.get(2));
+        this.alternativeNames = stringList.stream().map(s -> new AlternativeName(s, this)).collect(Collectors.toSet());
+
+        this.certainty = processIntField(csvFields.get(3));
+        this.latitude = processDoubleField(csvFields.get(4));
+        this.longitude = processDoubleField(csvFields.get(5));
+
+        stringList = processListField(csvFields.get(6));
+        this.writtenForms = stringList.stream().map(s -> new WrittenForm(s, this)).collect(Collectors.toSet());
+
+        stringList = processListField(csvFields.get(7));
+        this.types = stringList.stream().map(Type::new).collect(Collectors.toSet());
+
+        stringList = processListField(csvFields.get(8));
+        this.countries = stringList.stream().map(s -> new Country(s, this)).collect(Collectors.toSet());
+
+        stringList = processListField(csvFields.get(9));
+        this.bibliography = stringList.stream().map(s -> new Bibliography(s, this)).collect(Collectors.toSet());
+    }
+
+    private int processIntField(String field) {
+        Matcher matcher = Pattern.compile(INTEGER_PATTERN).matcher(field);
+        if (matcher.find()) {
+            return Integer.parseInt(matcher.group());
+        } else {
+            return 0;
+        }
+    }
+
+    private double processDoubleField(String field) {
+        Matcher matcher = Pattern.compile(DOUBLE_PATTERN).matcher(field);
+        if (matcher.find()) {
+            return Double.parseDouble(matcher.group());
+        } else {
+            return 0.0;
+        }
+    }
+
+    private List<String> processListField(String field) {
+        if (field.isEmpty() || field.equals(EMPTY_ENTRY)) {
+            return new ArrayList<>();
+        }
+        return Arrays.stream(field.split(",")).map(String::trim).filter(item -> !item.isEmpty()).collect(Collectors.toList());
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemDto.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..0977be4be08bbc29b5cc27aea8bff7a0f8637dbe
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemDto.java
@@ -0,0 +1,70 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.UUID;
+
+/**
+ * Class representing catalog item DTO
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CatalogItemDto {
+    /**
+     * Id
+     */
+    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+    private UUID id;
+
+    /**
+     * Name of catalog item
+     */
+    private String name;
+
+    /**
+     * Certainty
+     */
+    private int certainty;
+
+    /**
+     * Longitude
+     */
+    private double longitude;
+
+    /**
+     * Latitude
+     */
+    private double latitude;
+
+    /**
+     * Bibliography
+     */
+    private Set<String> bibliography = Collections.emptySet();
+
+    /**
+     * Countries
+     */
+    private Set<String> countries = Collections.emptySet();
+
+    /**
+     * Written forms
+     */
+    private Set<String> writtenForms = Collections.emptySet();
+
+    /**
+     * Alternative names
+     */
+    private Set<String> alternativeNames = Collections.emptySet();
+
+    /**
+     * Types
+     */
+    private Set<String> types = Collections.emptySet();
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..8aa72cbd37c148088457ec6fba24d68e70134284
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepository.java
@@ -0,0 +1,32 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.Set;
+import java.util.UUID;
+
+/**
+ * Catalog repository
+ */
+@Repository
+public interface CatalogItemRepository extends JpaRepository<CatalogItem, UUID> {
+
+    /**
+     * Returns all catalog items containing specific values
+     *
+     * @param name    name - optional
+     * @param country country - optional
+     * @param type    type - optional
+     * @return set of catalog items satisfying filter conditions
+     */
+    @Query("SELECT DISTINCT e FROM CatalogItem e " +
+            "LEFT JOIN FETCH AlternativeName a ON e = a.catalogItem " +
+            "LEFT JOIN FETCH Country c ON e = c.catalogItem " +
+            "LEFT JOIN FETCH e.types t " +
+            "WHERE (?1 = '' OR UPPER(e.name) LIKE UPPER(?1) OR UPPER(a.name) LIKE UPPER(?1)) " +
+            "AND (?2 = '' OR UPPER(c.name) LIKE UPPER(?2)) " +
+            "AND (?3 = '' OR UPPER(t.type) LIKE UPPER(?3))")
+    Set<CatalogItem> filterCatalog(String name, String country, String type);
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4df5713e09ab432ea2ed139b25a5a4e8c99b8c2a
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java
@@ -0,0 +1,185 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import cz.zcu.kiv.backendapi.alternativename.AlternativeName;
+import cz.zcu.kiv.backendapi.bibliography.Bibliography;
+import cz.zcu.kiv.backendapi.country.Country;
+import cz.zcu.kiv.backendapi.exception.ApiRequestException;
+import cz.zcu.kiv.backendapi.type.ITypeService;
+import cz.zcu.kiv.backendapi.type.Type;
+import cz.zcu.kiv.backendapi.writtenform.WrittenForm;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+/**
+ * Catalog item service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+@Slf4j
+public class CatalogItemServiceImpl implements ICatalogItemService {
+    /**
+     * Regex for one arbitrary character in string
+     */
+    private static final String WILDCARD_CHARACTER_REGEX = "\\?";
+
+    /**
+     * Regex for one arbitrary character in string used in SQL language
+     */
+    private static final String WILDCARD_CHARACTER_REGEX_SQL = "_";
+
+    /**
+     * Regex for any number of arbitrary characters in string
+     */
+    private static final String WILDCARD_CHARACTERS_REGEX = "\\*";
+
+    /**
+     * Regex for any number of arbitrary characters in string used in SQL language
+     */
+    private static final String WILDCARD_CHARACTERS_REGEX_SQL = "%";
+
+    /**
+     * Message for exception when catalog item is not found by id
+     */
+    private static final String CATALOG_ITEM_NOT_FOUND = "Catalog item not found";
+
+    /**
+     * Catalog repository
+     */
+    private final CatalogItemRepository catalogItemRepository;
+
+    /**
+     * Type service
+     */
+    private final ITypeService typeService;
+
+    @Override
+    public void saveCatalog(List<CatalogItem> catalogItems) {
+        log.info("Saving catalog");
+        catalogItems.forEach(this::saveCatalogEntity);
+    }
+
+    @Override
+    public void saveCatalogItem(CatalogItemDto catalogItemDto) {
+        log.info("Saving catalog item");
+        CatalogItem catalogItem = new CatalogItem();
+        convertDtoToEntity(catalogItemDto, catalogItem);
+        saveCatalogEntity(catalogItem);
+    }
+
+    @Override
+    public void updateCatalogItem(UUID id, CatalogItemDto catalogItemDto) {
+        CatalogItem catalogItem = catalogItemRepository.findById(id).orElseThrow(() -> {
+            log.error(CATALOG_ITEM_NOT_FOUND);
+            throw new ApiRequestException(CATALOG_ITEM_NOT_FOUND, HttpStatus.NOT_FOUND);
+        });
+        convertDtoToEntity(catalogItemDto, catalogItem);
+        saveCatalogEntity(catalogItem);
+        log.info("Catalog item updated");
+    }
+
+    @Override
+    public void deleteCatalogItem(UUID id) {
+        if (!catalogItemRepository.existsById(id)) {
+            log.error(CATALOG_ITEM_NOT_FOUND);
+            throw new ApiRequestException(CATALOG_ITEM_NOT_FOUND, HttpStatus.NOT_FOUND);
+        }
+        catalogItemRepository.deleteById(id);
+        log.info("Catalog item deleted");
+    }
+
+    @Override
+    public List<CatalogItemDto> getCatalog(String name, String country, String type) {
+        log.info("Retrieving catalog");
+        name = name.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_SQL);
+        name = name.replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_SQL);
+        country = country.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_SQL);
+        country = country.replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_SQL);
+        type = type.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_SQL);
+        type = type.replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_SQL);
+        Set<CatalogItem> entities = catalogItemRepository.filterCatalog(name, country, type);
+        return entities.stream().map(this::convertEntityToDto).collect(Collectors.toList());
+    }
+
+    @Override
+    public CatalogItemDto getCatalogItem(UUID id) {
+        var catalogItem = catalogItemRepository.findById(id).orElseThrow(() -> {
+            log.error(CATALOG_ITEM_NOT_FOUND);
+            throw new ApiRequestException(CATALOG_ITEM_NOT_FOUND, HttpStatus.NOT_FOUND);
+        });
+
+        return convertEntityToDto(catalogItem);
+    }
+
+    /**
+     * Saves catalog entity to database
+     *
+     * @param catalogItem catalog entity
+     */
+    private void saveCatalogEntity(CatalogItem catalogItem) {
+        for (Type type : catalogItem.getTypes()) {
+            if (typeService.getTypeByName(type.getType()).isEmpty()) {
+                typeService.saveType(type);
+            }
+        }
+        catalogItemRepository.save(catalogItem);
+    }
+
+    /**
+     * Converts catalog DTO to catalog entity
+     *
+     * @param catalogItemDto catalog DTO
+     * @param catalogItem    catalog entity
+     */
+    private void convertDtoToEntity(CatalogItemDto catalogItemDto, CatalogItem catalogItem) {
+        catalogItem.setName(catalogItemDto.getName());
+        catalogItem.setCertainty(catalogItemDto.getCertainty());
+        catalogItem.setLatitude(catalogItemDto.getLatitude());
+        catalogItem.setLongitude(catalogItemDto.getLongitude());
+        catalogItem.setBibliography(catalogItemDto.getBibliography()
+                .stream().map(s -> new Bibliography(s, catalogItem)).collect(Collectors.toSet()));
+        catalogItem.setTypes(catalogItemDto.getTypes()
+                .stream().map(Type::new).collect(Collectors.toSet()));
+        catalogItem.setCountries(catalogItemDto.getCountries()
+                .stream().map(s -> new Country(s, catalogItem)).collect(Collectors.toSet()));
+        catalogItem.setAlternativeNames(catalogItemDto.getAlternativeNames()
+                .stream().map(s -> new AlternativeName(s, catalogItem)).collect(Collectors.toSet()));
+        catalogItem.setWrittenForms(catalogItemDto.getWrittenForms()
+                .stream().map(s -> new WrittenForm(s, catalogItem)).collect(Collectors.toSet()));
+    }
+
+    /**
+     * Converts catalog entity to catalog DTO
+     *
+     * @param entity catalog entity
+     * @return catalog DTO
+     */
+    private CatalogItemDto convertEntityToDto(CatalogItem entity) {
+        CatalogItemDto catalogItemDto = new CatalogItemDto();
+        catalogItemDto.setId(entity.getId());
+        catalogItemDto.setName(entity.getName());
+        catalogItemDto.setLatitude(entity.getLatitude());
+        catalogItemDto.setLongitude(entity.getLongitude());
+        catalogItemDto.setCertainty(entity.getCertainty());
+        catalogItemDto.setBibliography(entity.getBibliography()
+                .stream().map(Bibliography::getSource).collect(Collectors.toSet()));
+        catalogItemDto.setTypes(entity.getTypes()
+                .stream().map(Type::getType).collect(Collectors.toSet()));
+        catalogItemDto.setCountries(entity.getCountries()
+                .stream().map(Country::getName).collect(Collectors.toSet()));
+        catalogItemDto.setAlternativeNames(entity.getAlternativeNames()
+                .stream().map(AlternativeName::getName).collect(Collectors.toSet()));
+        catalogItemDto.setWrittenForms(entity.getWrittenForms()
+                .stream().map(WrittenForm::getForm).collect(Collectors.toSet()));
+        return catalogItemDto;
+    }
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/ICatalogItemService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/ICatalogItemService.java
new file mode 100644
index 0000000000000000000000000000000000000000..62079e19913980a21965abcc24c4953abb0ed2b1
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/ICatalogItemService.java
@@ -0,0 +1,57 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * Catalog service interface
+ */
+public interface ICatalogItemService {
+    /**
+     * Saves list of catalog items
+     *
+     * @param catalogItems catalog items
+     */
+    void saveCatalog(List<CatalogItem> catalogItems);
+
+    /**
+     * Saves one catalog item
+     *
+     * @param catalogItemDto catalog item DTO
+     */
+    void saveCatalogItem(CatalogItemDto catalogItemDto);
+
+    /**
+     * Updates catalog item with given ID
+     *
+     * @param id             ID
+     * @param catalogItemDto catalog item DTO
+     */
+    void updateCatalogItem(UUID id, CatalogItemDto catalogItemDto);
+
+    /**
+     * Deletes catalog item with given ID
+     *
+     * @param id ID
+     */
+    void deleteCatalogItem(UUID id);
+
+    /**
+     * Returns catalog items satisfying given filter
+     *
+     * @param name    name - optional
+     * @param country country - optional
+     * @param type    type - optional
+     * @return list of catalog items satisfying given filter
+     */
+    List<CatalogItemDto> getCatalog(String name, String country, String type);
+
+    /**
+     * Returns catalog item with given ID
+     *
+     * @param id ID
+     * @return catalog item with given ID
+     */
+    CatalogItemDto getCatalogItem(UUID id);
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/config/CorsConfig.java b/backend/src/main/java/cz/zcu/kiv/backendapi/config/CorsConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..7746785d91284fc04f7ecff84ec246d0a001c361
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/config/CorsConfig.java
@@ -0,0 +1,19 @@
+package cz.zcu.kiv.backendapi.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+// TODO this needs to be configured for production and localhost development!
+@Configuration
+@EnableWebMvc
+public class CorsConfig implements WebMvcConfigurer {
+
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+        registry.addMapping("/**")
+                .allowedOrigins("*")
+                .allowedMethods("GET", "POST", "DELETE", "PUT", "OPTIONS");
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/config/DataInitiator.java b/backend/src/main/java/cz/zcu/kiv/backendapi/config/DataInitiator.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9947662d18c3a88f2653a88289f433565dd9f04
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/config/DataInitiator.java
@@ -0,0 +1,102 @@
+package cz.zcu.kiv.backendapi.config;
+
+import cz.zcu.kiv.backendapi.catalog.CatalogItem;
+import cz.zcu.kiv.backendapi.catalog.CatalogItemRepository;
+import cz.zcu.kiv.backendapi.catalog.ICatalogItemService;
+import cz.zcu.kiv.backendapi.titlepage.ITitlePageService;
+import cz.zcu.kiv.backendapi.titlepage.TitlePage;
+import cz.zcu.kiv.backendapi.type.ITypeService;
+import cz.zcu.kiv.backendapi.type.Type;
+import cz.zcu.kiv.backendapi.user.UserEntity;
+import cz.zcu.kiv.backendapi.user.UserRepository;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.csv.CSVFormat;
+import org.apache.commons.csv.CSVParser;
+import org.apache.commons.csv.CSVRecord;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
+//TODO comment or delete
+@Component
+@RequiredArgsConstructor
+public class DataInitiator implements ApplicationListener<ContextRefreshedEvent> {
+
+    private final ICatalogItemService catalogService;
+
+    private final ITypeService typeService;
+
+    private final CatalogItemRepository catalogItemRepository;
+
+    private final UserRepository userRepository;
+
+    private final ITitlePageService titlePageService;
+
+    private final BCryptPasswordEncoder encoder;
+
+    @Override
+    @Transactional
+    public void onApplicationEvent(ContextRefreshedEvent event) {
+        List<Type> types = loadTypes();
+        for (Type type : types) {
+            typeService.saveType(type);
+        }
+        List<CatalogItem> catalog = loadCatalog();
+        catalogService.saveCatalog(catalog);
+
+        titlePageService.updateTitlePage(new TitlePage(1L, "", ""));
+
+        UserEntity user1 = new UserEntity("admin", "admin", encoder.encode("password"), (byte) 7, true);
+        userRepository.save(user1);
+
+        UserEntity user2 = new UserEntity("normal", "normal", encoder.encode("password"), (byte) 1, false);
+        userRepository.save(user2);
+
+    }
+
+    private List<CatalogItem> loadCatalog() {
+        List<CatalogItem> catalogEntities = new ArrayList<>();
+        var csvData = getClass().getClassLoader().getResourceAsStream("AssyrianProject-AllNoDupl-22-03-28.csv");
+//        File csvData = new File("AssyrianProject-AllNoDupl-22-03-28.csv");
+        CSVParser parser;
+        try {
+            parser = CSVParser.parse(csvData, StandardCharsets.UTF_8, CSVFormat.Builder.create(CSVFormat.DEFAULT)
+                    .setHeader()
+                    .setSkipHeaderRecord(true)
+                    .build());
+            for (CSVRecord csvRecord : parser) {
+                catalogEntities.add(new CatalogItem(csvRecord.toList()));
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return catalogEntities;
+
+    }
+
+    private List<Type> loadTypes() {
+        List<Type> types = new ArrayList<>();
+        CSVParser parser;
+        File csvData = new File("AssyrianProject-All.csv");
+        try {
+            parser = CSVParser.parse(csvData, Charset.defaultCharset(), CSVFormat.DEFAULT.builder().setSkipHeaderRecord(true).build());
+            for (CSVRecord csvRecord : parser) {
+                if (csvRecord.get(0).equals("10000")) {
+                    types.add(new Type(csvRecord.get(2)));
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return types;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/country/Country.java b/backend/src/main/java/cz/zcu/kiv/backendapi/country/Country.java
new file mode 100644
index 0000000000000000000000000000000000000000..8960ee619f1d723104b7be32f5fd4c1f94b780e8
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/country/Country.java
@@ -0,0 +1,31 @@
+package cz.zcu.kiv.backendapi.country;
+
+import cz.zcu.kiv.backendapi.catalog.CatalogItem;
+import lombok.*;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * Country entity representing country of catalog item
+ */
+@Data
+@EqualsAndHashCode(exclude = "catalogItem")
+@ToString(exclude = "catalogItem")
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "countries")
+@IdClass(Country.class)
+public class Country implements Serializable {
+    /**
+     * Name of country, serves as ID
+     */
+    @Id
+    private String name;
+
+    @ManyToOne
+    @JoinColumn(name = "catalog_item_id")
+    @Id
+    private CatalogItem catalogItem;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..408b3818b24494726f9653395ec6136f075c2d07
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryRepository.java
@@ -0,0 +1,11 @@
+package cz.zcu.kiv.backendapi.country;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Country repository
+ */
+@Repository
+public interface CountryRepository extends JpaRepository<Country, Country> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..d007f299da116445fda2ba39782d5e943855fe87
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/country/CountryServiceImpl.java
@@ -0,0 +1,19 @@
+package cz.zcu.kiv.backendapi.country;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Country service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class CountryServiceImpl implements ICountryService {
+
+    /**
+     * Country repository
+     */
+    private final CountryRepository countryRepository;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/country/ICountryService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/country/ICountryService.java
new file mode 100644
index 0000000000000000000000000000000000000000..70fda7b7ffe619fcde25ea6002b831b28d18638b
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/country/ICountryService.java
@@ -0,0 +1,7 @@
+package cz.zcu.kiv.backendapi.country;
+
+/**
+ * Country service interface
+ */
+public interface ICountryService {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiExceptionHandler.java b/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiExceptionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..81303e80535aa10809441929608af7a7f331e2fe
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiExceptionHandler.java
@@ -0,0 +1,57 @@
+package cz.zcu.kiv.backendapi.exception;
+
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.validation.BindException;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+
+@ControllerAdvice
+public class ApiExceptionHandler {
+
+    /**
+     * Handles bind exception
+     *
+     * @param exception bind exception
+     * @return response entity with message and status
+     */
+    @ExceptionHandler(value = {BindException.class})
+    public ResponseEntity<Object> handleBindException(BindException exception) {
+        return new ResponseEntity<>(exception.getBindingResult().getAllErrors(), HttpStatus.BAD_REQUEST);
+    }
+
+    /**
+     * Handles username not found exception
+     *
+     * @param exception username not found exception
+     * @return response entity with message and status
+     */
+    @ExceptionHandler(value = {UsernameNotFoundException.class})
+    public ResponseEntity<Object> handleUsernameNotFoundException(UsernameNotFoundException exception) {
+        return new ResponseEntity<>(exception.getMessage(), HttpStatus.NOT_FOUND);
+    }
+
+    /**
+     * Handles api request exception
+     *
+     * @param exception api request found exception
+     * @return response entity with message and status
+     */
+    @ExceptionHandler(value = {ApiRequestException.class})
+    public ResponseEntity<Object> handleApiRequestException(ApiRequestException exception) {
+        return new ResponseEntity<>(exception.getMessage(), exception.getHttpStatus());
+    }
+
+    /**
+     * Handles illegal argument exception
+     *
+     * @param exception illegal argument exception
+     * @return response entity with message and status
+     */
+    @ExceptionHandler(value = {IllegalArgumentException.class})
+    public ResponseEntity<Object> handleIllegalArgumentException(IllegalArgumentException exception) {
+        return new ResponseEntity<>(exception.getMessage(), HttpStatus.BAD_REQUEST);
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiRequestException.java b/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiRequestException.java
new file mode 100644
index 0000000000000000000000000000000000000000..d43df3d21659b80f52c5cdd11577e5289c86d886
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/exception/ApiRequestException.java
@@ -0,0 +1,15 @@
+package cz.zcu.kiv.backendapi.exception;
+
+import lombok.Getter;
+import org.springframework.http.HttpStatus;
+
+@Getter
+public class ApiRequestException extends RuntimeException {
+    private final HttpStatus httpStatus;
+
+    public ApiRequestException(String message, HttpStatus httpStatus) {
+        super(message);
+        this.httpStatus = httpStatus;
+    }
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/PasswordEncoder.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/PasswordEncoder.java
new file mode 100644
index 0000000000000000000000000000000000000000..759d2d0f23d61a9ec3308e6195ba9de3273ced56
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/PasswordEncoder.java
@@ -0,0 +1,23 @@
+package cz.zcu.kiv.backendapi.security;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+
+/**
+ * Class representing password encoder
+ */
+@Configuration
+public class PasswordEncoder {
+
+    /**
+     * Returns password encoder
+     *
+     * @return password encoder
+     */
+    @Bean
+    public BCryptPasswordEncoder bCryptPasswordEncoder() {
+        return new BCryptPasswordEncoder();
+    }
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/SecurityConfig.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/SecurityConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6883d7112d7735d636cd61ff022a6f5acd61f2c
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/SecurityConfig.java
@@ -0,0 +1,108 @@
+package cz.zcu.kiv.backendapi.security;
+
+import cz.zcu.kiv.backendapi.security.jwt.JwtTokenVerifier;
+import cz.zcu.kiv.backendapi.security.jwt.JwtUsernameAndPasswordAuthenticationFilter;
+import cz.zcu.kiv.backendapi.security.jwt.JwtUtils;
+import cz.zcu.kiv.backendapi.user.Role;
+import cz.zcu.kiv.backendapi.user.permission.Permission;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.CorsConfigurationSource;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+
+/**
+ * Security config class
+ */
+@Configuration
+@EnableWebSecurity
+@RequiredArgsConstructor
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
+    /**
+     * User detail service
+     */
+    private final UserDetailsService userDetailsService;
+
+    /**
+     * Password encoder
+     */
+    private final BCryptPasswordEncoder bCryptPasswordEncoder;
+
+    /**
+     * JWT utils
+     */
+    private final JwtUtils jwtUtils;
+
+    /**
+     * List of permitted pages without login
+     */
+    private final String[] permittedUrls = new String[]{"/login", "/users/token", "/swagger-ui/**",
+            "/swagger-ui.html", "/v3/api-docs", "/v3/api-docs/swagger-config"};
+
+    /**
+     * Security configuration
+     *
+     * @param http http security
+     * @throws Exception exception
+     */
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.csrf().disable()
+                .cors()
+                .and()
+                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+                .and()
+                .addFilter(new JwtUsernameAndPasswordAuthenticationFilter(authenticationManager(), jwtUtils))
+                .addFilterAfter(new JwtTokenVerifier(jwtUtils, permittedUrls), JwtUsernameAndPasswordAuthenticationFilter.class)
+                .authorizeRequests()
+                .antMatchers(permittedUrls).permitAll()
+                .antMatchers("/user/update-permissions/**", "/user/reset-password/**").hasRole(Role.ADMIN.name())
+                .antMatchers(HttpMethod.DELETE, "/user/**").hasRole(Role.ADMIN.name())
+                .antMatchers("/write/**").hasAuthority(Permission.WRITE.name())
+                .antMatchers("/read/**").hasAuthority(Permission.READ.name())
+                .antMatchers("/delete/**").hasAuthority(Permission.DELETE.name())
+                .anyRequest()
+                .authenticated();
+    }
+
+    /**
+     * Sets authentication provider to authentication manager
+     *
+     * @param auth authentication manager builder
+     */
+    @Override
+    protected void configure(final AuthenticationManagerBuilder auth) {
+        auth.authenticationProvider(authenticationProvider());
+    }
+
+
+    /**
+     * Returns authentication provider
+     *
+     * @return authentication provider
+     */
+    @Bean
+    public DaoAuthenticationProvider authenticationProvider() {
+        final DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
+        provider.setUserDetailsService(userDetailsService);
+        provider.setPasswordEncoder(bCryptPasswordEncoder);
+        return provider;
+    }
+
+    @Bean
+    CorsConfigurationSource corsConfigurationSource() {
+        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
+        return source;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtTokenVerifier.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtTokenVerifier.java
new file mode 100644
index 0000000000000000000000000000000000000000..fed29b1a71b79b0eb909526da2b3286fadaa01ec
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtTokenVerifier.java
@@ -0,0 +1,92 @@
+package cz.zcu.kiv.backendapi.security.jwt;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.JWTVerifier;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import com.google.common.base.Strings;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpHeaders;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * Class that verifies JWT per request
+ */
+@Slf4j
+@RequiredArgsConstructor
+public class JwtTokenVerifier extends OncePerRequestFilter {
+
+    /**
+     * JWT utils
+     */
+    private final JwtUtils jwtUtils;
+
+    /**
+     * Array or urls with this filter (JWT not needed for them)
+     */
+    private final String[] skipFilterUrls;
+
+    /**
+     * Filters request - checks for JWT token and validates it
+     *
+     * @param request     request
+     * @param response    response
+     * @param filterChain filter chain
+     * @throws ServletException servlet exception
+     * @throws IOException      I/O exception
+     */
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+        String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
+        if (Strings.isNullOrEmpty(authorizationHeader) || !authorizationHeader.startsWith(jwtUtils.getTokenPrefix())) {
+            filterChain.doFilter(request, response);
+            return;
+        }
+
+        try {
+            String token = authorizationHeader.substring(jwtUtils.getTokenPrefix().length());
+            Algorithm algorithm = jwtUtils.getAlgorithm(); //TODO secure
+            JWTVerifier verifier = JWT.require(algorithm).build();
+            DecodedJWT decodedJWT = verifier.verify(token);
+            String username = decodedJWT.getSubject();
+            List<String> authorities = decodedJWT.getClaim(jwtUtils.getClaimAuthoritiesName()).asList(String.class);
+            Collection<SimpleGrantedAuthority> simpleGrantedAuthorities = authorities.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toSet());
+
+            UsernamePasswordAuthenticationToken authenticationToken =
+                    new UsernamePasswordAuthenticationToken(username, null, simpleGrantedAuthorities);
+            SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+        } catch (Exception e) {
+            log.error("Error logging in: " + e.getMessage());
+            jwtUtils.writeErrorToResponse(response, e);
+        }
+        filterChain.doFilter(request, response);
+    }
+
+    /**
+     * Tells filter whether given request should not be scanned for JWT
+     *
+     * @param request request
+     * @return true if given request should not be scanned for JWT, false otherwise
+     * @throws ServletException servlet exception
+     */
+    @Override
+    protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
+        return Arrays.stream(skipFilterUrls).anyMatch(url -> new AntPathRequestMatcher(url).matches(request));
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUsernameAndPasswordAuthenticationFilter.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUsernameAndPasswordAuthenticationFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2944929a585ef6f327c402547e1020351d9615a
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUsernameAndPasswordAuthenticationFilter.java
@@ -0,0 +1,99 @@
+package cz.zcu.kiv.backendapi.security.jwt;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import cz.zcu.kiv.backendapi.user.UserEntity;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+import java.util.stream.Collectors;
+
+/**
+ * Class that checks login and provides user with tokens after successful login
+ */
+@Slf4j
+@RequiredArgsConstructor
+public class JwtUsernameAndPasswordAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
+    /**
+     * Authentication manager
+     */
+    private final AuthenticationManager authenticationManager;
+
+    /**
+     * JWT utils
+     */
+    private final JwtUtils jwtUtils;
+
+    /**
+     * Attempts authentication - checks username and password
+     *
+     * @param request  request (contains username and password)
+     * @param response response
+     * @return authentication manager
+     * @throws AuthenticationException authentication exception
+     */
+    @Override
+    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
+        try {
+            UsernameAndPasswordAuthenticationRequest authenticationRequest = new ObjectMapper()
+                    .readValue(request.getInputStream(), UsernameAndPasswordAuthenticationRequest.class);
+            log.info("Username is: " + authenticationRequest.getUsername());
+            log.info("Password is: " + authenticationRequest.getPassword());
+            Authentication authentication = new UsernamePasswordAuthenticationToken(
+                    authenticationRequest.getUsername(),
+                    authenticationRequest.getPassword()
+            );
+            return authenticationManager.authenticate(authentication);
+        } catch (IOException e) {
+            log.error("Error getting authentication request from request: " + e.getMessage());
+            throw new AuthenticationCredentialsNotFoundException(e.getMessage());
+        }
+    }
+
+    /**
+     * Handles successful authentication - sends tokens to client
+     *
+     * @param request        request
+     * @param response       response
+     * @param chain          filter chain
+     * @param authentication authentication
+     * @throws IOException I/O exception
+     */
+    @Override
+    protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authentication) throws IOException {
+        UserEntity user = (UserEntity) authentication.getPrincipal();
+
+        Algorithm algorithm = jwtUtils.getAlgorithm(); //TODO secure
+
+        String access_token = JWT.create()
+                .withSubject(user.getUsername())
+                .withExpiresAt(Date.from((LocalDateTime.now().plusMinutes(jwtUtils.getTokenExpirationAfterMinutes())).atZone(ZoneId.systemDefault()).toInstant()))
+                .withIssuer(request.getRequestURL().toString())
+                .withClaim(jwtUtils.getClaimAuthoritiesName(), user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()))
+                .sign(algorithm);
+
+        String refresh_token = JWT.create()
+                .withSubject(user.getUsername())
+                .withExpiresAt(Date.from((LocalDate.now().plusMonths(jwtUtils.getRefreshTokenExpirationAfterMonths())).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()))
+                .withIssuer(request.getRequestURL().toString())
+                .sign(algorithm);
+
+        jwtUtils.writeTokensToResponse(response, access_token, refresh_token);
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUtils.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb61bbc66b62559fcf604691dddfcd1f338737bb
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/JwtUtils.java
@@ -0,0 +1,106 @@
+package cz.zcu.kiv.backendapi.security.jwt;
+
+import com.auth0.jwt.algorithms.Algorithm;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * Util class with configurations and methods for JWT
+ */
+@Getter
+@Setter
+@Configuration
+@ConfigurationProperties(prefix = "application.jwt")
+public class JwtUtils {
+
+    /**
+     * Secret key
+     */
+    private String secretKey;
+
+    /**
+     * Token prefix
+     */
+    private String tokenPrefix;
+
+    /**
+     * Access token expiration time in minutes
+     */
+    private Integer tokenExpirationAfterMinutes;
+
+    /**
+     * Refresh token expiration time in months
+     */
+    private Integer refreshTokenExpirationAfterMonths;
+
+    /**
+     * Access token name
+     */
+    private String accessTokenName;
+
+    /**
+     * Refresh token name
+     */
+    private String refreshTokenName;
+
+    /**
+     * Claim authorities name
+     */
+    private String claimAuthoritiesName;
+
+
+    /**
+     * Returns algorithm for JWT
+     *
+     * @return algorithm for JWT
+     */
+    @Bean
+    public Algorithm getAlgorithm() {
+        return Algorithm.HMAC512(secretKey.getBytes());
+    }
+
+    /**
+     * Writes tokens to response
+     *
+     * @param response     response
+     * @param accessToken  access token
+     * @param refreshToken refresh token
+     * @throws IOException I/O exception
+     */
+    public void writeTokensToResponse(HttpServletResponse response, String accessToken, String refreshToken) throws IOException {
+        Map<String, String> tokens = new HashMap<>();
+        tokens.put(this.getAccessTokenName(), this.getTokenPrefix() + accessToken);
+        tokens.put(this.getRefreshTokenName(), this.getTokenPrefix() + refreshToken);
+        response.setContentType(MediaType.APPLICATION_JSON_VALUE);
+        new ObjectMapper().writeValue(response.getOutputStream(), tokens);
+    }
+
+    /**
+     * Writes error to response
+     *
+     * @param response response
+     * @param e        error with message
+     * @throws IOException I/O exception
+     */
+    public void writeErrorToResponse(HttpServletResponse response, Exception e) throws IOException {
+        response.setStatus(HttpStatus.UNAUTHORIZED.value());
+        Map<String, String> error = new HashMap<>();
+        error.put("error_message", e.getMessage());
+        response.setContentType(MediaType.APPLICATION_JSON_VALUE);
+        new ObjectMapper().writeValue(response.getOutputStream(), error);
+    }
+
+}
+
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/UsernameAndPasswordAuthenticationRequest.java b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/UsernameAndPasswordAuthenticationRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..daba82578c863d5dd8fd7e51d39968ebcee318bb
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/security/jwt/UsernameAndPasswordAuthenticationRequest.java
@@ -0,0 +1,24 @@
+package cz.zcu.kiv.backendapi.security.jwt;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * Class representing the username and password authentication request
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+public class UsernameAndPasswordAuthenticationRequest {
+    /**
+     * Username
+     */
+    private String username;
+
+    /**
+     * Password
+     */
+    private String password;
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/ITitlePageService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/ITitlePageService.java
new file mode 100644
index 0000000000000000000000000000000000000000..5539794534ba8d69fc8ee0fff56a97731f72c0fe
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/ITitlePageService.java
@@ -0,0 +1,21 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+/**
+ * Title page service interface
+ */
+public interface ITitlePageService {
+    /**
+     * Returns title page
+     *
+     * @return title page
+     */
+    TitlePage getTitlePage();
+
+    /**
+     * Adds or updates title page with given ID
+     *
+     * @param titlePage title page
+     */
+    void updateTitlePage(TitlePage titlePage);
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePage.java b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePage.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c6e685e970302fc4f6c35434a82b5217b3820b3
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePage.java
@@ -0,0 +1,41 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Class representing title page
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "title_page")
+@Schema(name = "TitlePageDto")
+public class TitlePage {
+    /**
+     * ID
+     */
+    @Id
+    @JsonIgnore
+    private Long id;
+
+    /**
+     * Title
+     */
+    private String title;
+
+    /**
+     * Content of the title page
+     */
+    @Column(length = 100000)
+    private String content;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageController.java b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageController.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd65ea25fa3638367abf694687a9a4d3e0e0632b
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageController.java
@@ -0,0 +1,43 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Controller for title page
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/title-page")
+public class TitlePageController {
+    /**
+     * Title page service
+     */
+    private final ITitlePageService titlePageService;
+
+    /**
+     * Returns title page
+     *
+     * @return title page
+     */
+    @GetMapping("")
+    @Operation(summary = "returns title page")
+    public ResponseEntity<TitlePage> getTitlePage() {
+        return new ResponseEntity<>(titlePageService.getTitlePage(), HttpStatus.OK);
+    }
+
+    /**
+     * Updates title page
+     *
+     * @param titlePage title page
+     */
+    @PostMapping("")
+    @Operation(summary = "updates/creates title page")
+    public void updateTitlePage(@RequestBody TitlePage titlePage) {
+        titlePageService.updateTitlePage(titlePage);
+    }
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..5497d6d1f9d201fc868753fb5631433e9850b12a
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageRepository.java
@@ -0,0 +1,11 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Title page repository
+ */
+@Repository
+public interface TitlePageRepository extends JpaRepository<TitlePage, Long> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementation.java b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementation.java
new file mode 100644
index 0000000000000000000000000000000000000000..3c86c0aa10864a0d815bffdfbecd1fb379301502
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementation.java
@@ -0,0 +1,43 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Optional;
+
+/**
+ * Title page service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+@Slf4j
+public class TitlePageServiceImplementation implements ITitlePageService {
+    /**
+     * ID of the title page
+     */
+    private static final long TITLE_PAGE_ID = 1;
+
+    /**
+     * Title page repository
+     */
+    private final TitlePageRepository titlePageRepository;
+
+    @Override
+    public TitlePage getTitlePage() {
+        Optional<TitlePage> optionalTitlePage = titlePageRepository.findById(TITLE_PAGE_ID);
+        if (optionalTitlePage.isEmpty()) {
+            TitlePage titlePage = new TitlePage(TITLE_PAGE_ID, "", "");
+            return titlePageRepository.save(titlePage);
+        }
+        return optionalTitlePage.get();
+    }
+
+    @Override
+    public void updateTitlePage(TitlePage titlePage) {
+        titlePage.setId(TITLE_PAGE_ID);
+        titlePageRepository.save(titlePage);
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/type/ITypeService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/type/ITypeService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c8a921f667b6f5dfcb2fbfea4108f4990372dafa
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/type/ITypeService.java
@@ -0,0 +1,24 @@
+package cz.zcu.kiv.backendapi.type;
+
+import java.util.Optional;
+
+/**
+ * Type service interface
+ */
+public interface ITypeService {
+
+    /**
+     * Saves on type
+     *
+     * @param type type
+     */
+    void saveType(Type type);
+
+    /**
+     * Returns type by name (optional)
+     *
+     * @param type type name
+     * @return type by name (optional)
+     */
+    Optional<Type> getTypeByName(String type);
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/type/Type.java b/backend/src/main/java/cz/zcu/kiv/backendapi/type/Type.java
new file mode 100644
index 0000000000000000000000000000000000000000..8bf3d415c5b2fa5e9ca35148bc32f7284c25f9e8
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/type/Type.java
@@ -0,0 +1,25 @@
+package cz.zcu.kiv.backendapi.type;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Type entity representing type of catalog item
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "types")
+public class Type {
+    /**
+     * Type (e.g. river), serves as ID
+     */
+    @Id
+    private String type;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..9cd64bd8cc8935352913daea5f201939492a15b4
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeRepository.java
@@ -0,0 +1,12 @@
+package cz.zcu.kiv.backendapi.type;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+/**
+ * Type repository
+ */
+@Repository
+public interface TypeRepository extends JpaRepository<Type, String> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..2cc599869d29f0c166711dff6b31b6934fe14588
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/type/TypeServiceImpl.java
@@ -0,0 +1,32 @@
+package cz.zcu.kiv.backendapi.type;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Optional;
+
+/**
+ * Type service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class TypeServiceImpl implements ITypeService {
+    /**
+     * Type repository
+     */
+    private final TypeRepository typeRepository;
+
+    @Override
+    public void saveType(Type type) {
+        typeRepository.save(type);
+    }
+
+    @Override
+    public Optional<Type> getTypeByName(String type) {
+        return typeRepository.findById(type);
+    }
+
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/IUserService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/IUserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c75699850265e18ddcca3f909f99c7ec0beef79c
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/IUserService.java
@@ -0,0 +1,64 @@
+package cz.zcu.kiv.backendapi.user;
+
+import cz.zcu.kiv.backendapi.user.permission.PermissionDto;
+
+import java.util.List;
+
+/**
+ * User service interface
+ */
+public interface IUserService {
+
+    /**
+     * Returns user by username
+     *
+     * @param username username
+     * @return user by username
+     */
+    UserEntity getUserByName(String username);
+
+    /**
+     * Registers new user
+     *
+     * @param userDto user DTO
+     */
+    void registerNewUser(UserDto userDto);
+
+    /**
+     * Deletes user with given username
+     *
+     * @param username username
+     */
+    void deleteUser(String username);
+
+    /**
+     * Returns list of all users
+     *
+     * @return list of all users
+     */
+    List<UserDto> getAllUsers();
+
+    /**
+     * Changes password of the user
+     *
+     * @param oldPassword old password
+     * @param newPassword new password
+     */
+    void changePassword(String oldPassword, String newPassword);
+
+    /**
+     * Updates permissions to given user
+     *
+     * @param username      username
+     * @param permissionDto permissions
+     */
+    void updatePermissions(String username, PermissionDto permissionDto);
+
+    /**
+     * Resets password to given user
+     *
+     * @param username    username
+     * @param newPassword new password
+     */
+    void resetPassword(String username, String newPassword);
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/Role.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/Role.java
new file mode 100644
index 0000000000000000000000000000000000000000..8936643f1e84b2284359f0f0756d3da2ee9498dc
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/Role.java
@@ -0,0 +1,26 @@
+package cz.zcu.kiv.backendapi.user;
+
+import lombok.Getter;
+
+/**
+ * Enum for user roles
+ */
+@Getter
+public enum Role {
+    ADMIN("ROLE_ADMIN"),
+    USER("ROLE_USER");
+
+    /**
+     * Role
+     */
+    private final String role;
+
+    /**
+     * Creates role
+     *
+     * @param role role
+     */
+    Role(final String role) {
+        this.role = role;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserController.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba1bab6821a3514f1856ed538f109fa3ff4e6946
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserController.java
@@ -0,0 +1,152 @@
+package cz.zcu.kiv.backendapi.user;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.JWTVerifier;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import com.google.common.base.Strings;
+import cz.zcu.kiv.backendapi.exception.ApiRequestException;
+import cz.zcu.kiv.backendapi.security.jwt.JwtUtils;
+import cz.zcu.kiv.backendapi.user.password.PasswordDto;
+import cz.zcu.kiv.backendapi.user.permission.PermissionDto;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Controller for users
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/users")
+@Slf4j
+public class UserController {
+
+    /**
+     * User service
+     */
+    private final IUserService userService;
+
+    /**
+     * JWT utils
+     */
+    private final JwtUtils jwtUtils;
+
+
+    /**
+     * Registers new user
+     *
+     * @param userDto user DTO
+     */
+    @PostMapping("")
+    @Operation(summary = "registers new user")
+    public void registerNewUser(@RequestBody @Valid UserDto userDto) {
+        userService.registerNewUser(userDto);
+    }
+
+
+    /**
+     * Changes password to logged-in user
+     *
+     * @param oldPassword old password
+     * @param passwordDto password DTO
+     */
+    @PatchMapping("/password")
+    @Operation(summary = "changes password to logged-in user")
+    public void changePassword(@Valid @NotNull(message = "Old password must not be null") @RequestParam String oldPassword, @RequestBody @Valid PasswordDto passwordDto) {
+        userService.changePassword(oldPassword, passwordDto.getPassword());
+    }
+
+    /**
+     * Returns list of all users
+     *
+     * @return list of all users
+     */
+    @GetMapping("")
+    @Operation(summary = "returns all users")
+    public ResponseEntity<List<UserDto>> getAllUsers() {
+        return new ResponseEntity<>(userService.getAllUsers(), HttpStatus.OK);
+    }
+
+    /**
+     * Updates permissions to given user
+     *
+     * @param username      username
+     * @param permissionDto permissions
+     */
+    @PatchMapping("/{username}/permissions")
+    @Operation(summary = "changes permissions to given user")
+    public void updatePermissions(@PathVariable String username, @RequestBody PermissionDto permissionDto) {
+        userService.updatePermissions(username, permissionDto);
+    }
+
+    /**
+     * Resets password to given user
+     *
+     * @param username    username
+     * @param passwordDto password
+     */
+    @PatchMapping(value = "/{username}/password")
+    @Operation(summary = "changes password to given user")
+    public void resetPassword(@PathVariable String username, @RequestBody @Valid PasswordDto passwordDto) {
+        userService.resetPassword(username, passwordDto.getPassword());
+    }
+
+    //TODO check if needed, comment otherwise
+    @DeleteMapping("/{username}")
+    @Operation(summary = "deletes user with given username")
+    public void deleteUser(@PathVariable String username) {
+        userService.deleteUser(username);
+    }
+
+
+    /**
+     * Refreshes access token if refresh token is valid
+     *
+     * @param request  request
+     * @param response response
+     * @throws IOException I/O Exception
+     */
+    @GetMapping("/token")
+    @Operation(summary = "returns a new access token and a refresh token to user")
+    public void refreshToken(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
+        if (Strings.isNullOrEmpty(authorizationHeader) || !authorizationHeader.startsWith(jwtUtils.getTokenPrefix())) {
+            throw new ApiRequestException("Refresh token is missing", HttpStatus.FORBIDDEN);
+        }
+        try {
+            String refresh_token = authorizationHeader.substring(jwtUtils.getTokenPrefix().length());
+            Algorithm algorithm = jwtUtils.getAlgorithm(); //TODO secure
+            JWTVerifier verifier = JWT.require(algorithm).build();
+            DecodedJWT decodedJWT = verifier.verify(refresh_token);
+            String username = decodedJWT.getSubject();
+            UserEntity user = userService.getUserByName(username);
+            String access_token = JWT.create()
+                    .withSubject(user.getUsername())
+                    .withExpiresAt(Date.from((LocalDateTime.now().plusMinutes(jwtUtils.getTokenExpirationAfterMinutes())).atZone(ZoneId.systemDefault()).toInstant()))
+                    .withIssuer(request.getRequestURL().toString())
+                    .withClaim(jwtUtils.getClaimAuthoritiesName(), user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()))
+                    .sign(algorithm);
+            jwtUtils.writeTokensToResponse(response, access_token, refresh_token);
+        } catch (Exception e) {
+            log.error("Error refreshing token in: " + e.getMessage());
+            jwtUtils.writeErrorToResponse(response, e);
+        }
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserDto.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f110b2c742bfdaa4fe9c48679fe0cde8e405173
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserDto.java
@@ -0,0 +1,53 @@
+package cz.zcu.kiv.backendapi.user;
+
+import cz.zcu.kiv.backendapi.user.password.PasswordDto;
+import cz.zcu.kiv.backendapi.user.permission.PermissionDto;
+import cz.zcu.kiv.backendapi.validation.PasswordMatches;
+import cz.zcu.kiv.backendapi.validation.ValidEmail;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * User data object
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@PasswordMatches
+public class UserDto {
+    /**
+     * Name
+     */
+    private String name;
+
+    /**
+     * Email - must be valid email
+     */
+    @ValidEmail
+    @NotNull(message = "Email must not be null")
+    @NotEmpty(message = "Email must not be empty")
+    private String email;
+
+    /**
+     * Permissions
+     */
+    @Valid
+    private PermissionDto permissions;
+
+
+    /**
+     * Password DTO containing password and confirmation password
+     */
+    @Valid
+    @NotNull(message = "Passwords must not be null")
+    @NotEmpty(message = "Passwords must not be empty")
+    private PasswordDto passwords;
+
+
+}
\ No newline at end of file
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserEntity.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..ddf9ae56d9235477eb5ad1f936b7f2b0a6be61c1
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserEntity.java
@@ -0,0 +1,109 @@
+package cz.zcu.kiv.backendapi.user;
+
+import cz.zcu.kiv.backendapi.user.permission.Permission;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Type;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * User entity representing application user
+ */
+@Data
+@NoArgsConstructor
+@Entity
+@Table(name = "users")
+public class UserEntity implements UserDetails {
+    /**
+     * Name
+     */
+    private String name;
+
+    /**
+     * Email - serves as username and must be unique - serves as Id
+     */
+    @Id
+    private String email;
+
+    /**
+     * Password
+     */
+    private String password;
+
+    /**
+     * Permissions
+     */
+    private byte permissions;
+
+
+    /**
+     * Whether the user is admin or not
+     */
+    @Column(name = "is_admin")
+    @Type(type = "numeric_boolean")
+    private boolean isAdmin;
+
+    public UserEntity(String name, String email, String password, byte permissions, boolean isAdmin) {
+        this.name = name;
+        this.email = email;
+        this.password = password;
+        this.permissions = permissions;
+        this.isAdmin = isAdmin;
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+        final List<GrantedAuthority> authorities = new ArrayList<>();
+        if (isAdmin) {
+            authorities.add(new SimpleGrantedAuthority(Role.ADMIN.getRole()));
+        } else {
+            authorities.add(new SimpleGrantedAuthority(Role.USER.getRole()));
+        }
+        for (Permission permission : Permission.values()) {
+            if ((permission.getBit() & permissions) == permission.getBit()) {
+                authorities.add(new SimpleGrantedAuthority(permission.getName()));
+            }
+        }
+
+        return authorities;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    @Override
+    public String getUsername() {
+        return email;
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return true;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return true;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..976fdd4b6a267d4b604310b6127d62172be7ee52
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserRepository.java
@@ -0,0 +1,22 @@
+package cz.zcu.kiv.backendapi.user;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+
+/**
+ * User repository
+ */
+@Repository
+public interface UserRepository extends JpaRepository<UserEntity, String> {
+    /**
+     * Returns user by email (username)
+     *
+     * @param username username
+     * @return optional user by email (username)
+     */
+    Optional<UserEntity> findByEmail(String username);
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f031a5763ec6b9b530c287e69315ea6f27183b9f
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/UserServiceImpl.java
@@ -0,0 +1,186 @@
+package cz.zcu.kiv.backendapi.user;
+
+import cz.zcu.kiv.backendapi.exception.ApiRequestException;
+import cz.zcu.kiv.backendapi.user.permission.Permission;
+import cz.zcu.kiv.backendapi.user.permission.PermissionDto;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * User service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+@Slf4j
+public class UserServiceImpl implements IUserService, UserDetailsService {
+    /**
+     * Message for exception when user is not found by username
+     */
+    private static final String USER_NOT_FOUND = "User with username %s not found";
+
+    /**
+     * User repository
+     */
+    private final UserRepository userRepository;
+
+    /**
+     * Password encoder
+     */
+    private final BCryptPasswordEncoder bCryptPasswordEncoder;
+
+
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        return userRepository.findByEmail(username)
+                .orElseThrow(() -> {
+                    log.error(String.format(USER_NOT_FOUND, username));
+                    throw new UsernameNotFoundException(String.format(USER_NOT_FOUND, username));
+                });
+    }
+
+    @Override
+    public UserEntity getUserByName(String username) {
+        return userRepository.findByEmail(username).
+                orElseThrow(() -> {
+                    log.error(String.format(USER_NOT_FOUND, username));
+                    throw new UsernameNotFoundException(String.format(USER_NOT_FOUND, username));
+                });
+    }
+
+    @Override
+    public void registerNewUser(UserDto userDto) {
+        if (userRepository.findByEmail(userDto.getEmail()).isPresent()) {
+            log.error("Trying to register new user with username that is already taken: " + userDto.getEmail());
+            throw new ApiRequestException(String.format("User with username %s already exists", userDto.getEmail()), HttpStatus.CONFLICT);
+        }
+        UserEntity userEntity = new UserEntity();
+        convertDtoToEntity(userDto, userEntity);
+        userRepository.save(userEntity);
+    }
+
+    @Override
+    public void updatePermissions(String username, PermissionDto permissionDto) {
+        UserEntity userEntity = userRepository.findByEmail(username).orElseThrow(() -> {
+            log.error(String.format(USER_NOT_FOUND, username));
+            throw new UsernameNotFoundException(String.format(USER_NOT_FOUND, username));
+        });
+        userEntity.setPermissions(getPermissionsFromDto(permissionDto));
+        userRepository.save(userEntity);
+    }
+
+    @Override
+    public void resetPassword(String username, String newPassword) {
+        UserEntity userEntity = userRepository.findByEmail(username).orElseThrow(() -> {
+            log.error(String.format(USER_NOT_FOUND, username));
+            throw new UsernameNotFoundException(String.format(USER_NOT_FOUND, username));
+        });
+        userEntity.setPassword(bCryptPasswordEncoder.encode(newPassword));
+        userRepository.save(userEntity);
+    }
+
+    //TODO maybe check if user is not deleting himself - or it might be ok
+    @Override
+    public void deleteUser(String username) {
+        if (!userRepository.existsById(username)) {
+            log.error(String.format(USER_NOT_FOUND, username));
+            throw new UsernameNotFoundException(String.format(USER_NOT_FOUND, username));
+        }
+        userRepository.deleteById(username);
+    }
+
+    @Override
+    public List<UserDto> getAllUsers() {
+        return userRepository.findAll().stream().map(this::convertEntityToDto).collect(Collectors.toList());
+    }
+
+    @Override
+    public void changePassword(String oldPassword, String newPassword) {
+        UserEntity loggedUser = getUserByName((String) SecurityContextHolder.getContext().getAuthentication().getPrincipal());
+        if (!bCryptPasswordEncoder.matches(oldPassword, loggedUser.getPassword())) {
+            throw new ApiRequestException("Old password does not match", HttpStatus.BAD_REQUEST);
+        }
+        loggedUser.setPassword(bCryptPasswordEncoder.encode(newPassword));
+        userRepository.save(loggedUser);
+    }
+
+
+    /**
+     * Converts user DTO to user entity
+     *
+     * @param userDto    user DTO
+     * @param userEntity user entity
+     */
+    private void convertDtoToEntity(UserDto userDto, UserEntity userEntity) {
+        userEntity.setName(userDto.getName());
+        userEntity.setEmail(userDto.getEmail());
+        userEntity.setPermissions(getPermissionsFromDto(userDto.getPermissions()));
+        userEntity.setPassword(bCryptPasswordEncoder.encode(userDto.getPasswords().getPassword()));
+    }
+
+    /**
+     * Converts user entity to user DTO
+     *
+     * @param userEntity user entity
+     * @return user DTO from user entity
+     */
+    private UserDto convertEntityToDto(UserEntity userEntity) {
+        UserDto userDto = new UserDto();
+        userDto.setName(userEntity.getName());
+        userDto.setEmail(userEntity.getEmail());
+        setPermissionsToDto(userDto, userEntity);
+        return userDto;
+    }
+
+    /**
+     * Sets permission to user DTO based on user entity
+     *
+     * @param userDto    user DTO
+     * @param userEntity user entity
+     */
+    private void setPermissionsToDto(UserDto userDto, UserEntity userEntity) {
+        byte userPermissions = userEntity.getPermissions();
+        PermissionDto permissionDto = new PermissionDto();
+        if ((userPermissions & Permission.READ.getBit()) == Permission.READ.getBit()) {
+            permissionDto.setCanRead(true);
+        }
+        if ((userPermissions & Permission.WRITE.getBit()) == Permission.WRITE.getBit()) {
+            permissionDto.setCanWrite(true);
+        }
+        if ((userPermissions & Permission.DELETE.getBit()) == Permission.DELETE.getBit()) {
+            permissionDto.setCanDelete(true);
+        }
+        userDto.setPermissions(permissionDto);
+    }
+
+    /**
+     * Returns permissions as byte from permission DTO
+     *
+     * @param permissionDto permission DTO
+     * @return permissions as byte
+     */
+    private byte getPermissionsFromDto(PermissionDto permissionDto) {
+        byte permissions = (byte) 0;
+        if (permissionDto.isCanRead()) {
+            permissions |= Permission.READ.getBit();
+        }
+        if (permissionDto.isCanWrite()) {
+            permissions |= Permission.WRITE.getBit();
+        }
+        if (permissionDto.isCanDelete()) {
+            permissions |= Permission.DELETE.getBit();
+        }
+        return permissions;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/password/PasswordDto.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/password/PasswordDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..a03f11686b6d736eb210dcac238565904645e4f7
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/password/PasswordDto.java
@@ -0,0 +1,42 @@
+package cz.zcu.kiv.backendapi.user.password;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import cz.zcu.kiv.backendapi.validation.PasswordMatches;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+/**
+ * Password data object
+ */
+@Data
+@PasswordMatches
+@NoArgsConstructor
+@AllArgsConstructor
+public class PasswordDto {
+    /**
+     * Minimal length for password
+     */
+    @JsonIgnore
+    private static final int MIN_PASSWORD_LENGTH = 8;
+
+    /**
+     * New password - must be strong enough
+     */
+    @NotNull(message = "Password must not be null")
+    @NotEmpty(message = "Password must not be empty")
+    @Size(min = MIN_PASSWORD_LENGTH, message = "Password must be at least " + MIN_PASSWORD_LENGTH + " characters long")
+    private String password;
+
+    /**
+     * New password confirmation - must match new password
+     */
+    @NotNull(message = "Confirmation password must not be null")
+    @NotEmpty(message = "Confirmation password must not be empty")
+    private String confirmationPassword;
+
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/Permission.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/Permission.java
new file mode 100644
index 0000000000000000000000000000000000000000..c822219301d24fa90bdf558dc5b87813018bf55a
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/Permission.java
@@ -0,0 +1,34 @@
+package cz.zcu.kiv.backendapi.user.permission;
+
+import lombok.Getter;
+
+/**
+ * Enum of permission with given name end byte value which is used to extract permission from number
+ */
+@Getter
+public enum Permission {
+    READ("READ", (byte) 0x1),
+    WRITE("WRITE", (byte) 0x2),
+    DELETE("DELETE", (byte) 0x4);
+
+    /**
+     * Permission name
+     */
+    private final String name;
+
+    /**
+     * Hexadecimal number containing only one bit set to 1 (corresponds to given permission)
+     */
+    private final byte bit;
+
+    /**
+     * Creates new permission with given name and byte value
+     *
+     * @param name name
+     * @param bit  byte value
+     */
+    Permission(String name, byte bit) {
+        this.name = name;
+        this.bit = bit;
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/PermissionDto.java b/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/PermissionDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..dfc16672a412189b162aade267428b851db5acb6
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/user/permission/PermissionDto.java
@@ -0,0 +1,28 @@
+package cz.zcu.kiv.backendapi.user.permission;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * Permission DTO
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PermissionDto {
+    /**
+     * Whether user has 'READ' authority
+     */
+    private boolean canRead;
+
+    /**
+     * Whether user has 'WRITE' authority
+     */
+    private boolean canWrite;
+
+    /**
+     * Whether user has 'DELETE' authority
+     */
+    private boolean canDelete;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/validation/EmailValidator.java b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/EmailValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a20bd49bf212503f426a72c09c76aa5f01761e2
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/EmailValidator.java
@@ -0,0 +1,37 @@
+package cz.zcu.kiv.backendapi.validation;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Validator for email
+ */
+public class EmailValidator implements ConstraintValidator<ValidEmail, String> {
+    /**
+     * Email string pattern
+     */
+    private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-+]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$";
+
+    /**
+     * Email patter
+     */
+    private static final Pattern PATTERN = Pattern.compile(EMAIL_PATTERN);
+
+    /**
+     * Check if email is valid (matches pattern)
+     *
+     * @param email                      email
+     * @param constraintValidatorContext constraint validator context
+     * @return true if email is valid, false otherwise
+     */
+    @Override
+    public boolean isValid(final String email, final ConstraintValidatorContext constraintValidatorContext) {
+        if (email == null) {
+            return false;
+        }
+        final Matcher matcher = PATTERN.matcher(email);
+        return matcher.matches();
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatches.java b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatches.java
new file mode 100644
index 0000000000000000000000000000000000000000..51930b07b1c767fc74d9b66d77f2311b094e18d5
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatches.java
@@ -0,0 +1,25 @@
+package cz.zcu.kiv.backendapi.validation;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.*;
+
+/**
+ * Constraint to password matches confirmation password
+ */
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Constraint(validatedBy = PasswordMatchesValidator.class)
+@Documented
+public @interface PasswordMatches {
+    /**
+     * Error message when validation fails
+     *
+     * @return error message
+     */
+    String message() default "Passwords do not match";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatchesValidator.java b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatchesValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..a243457e98c036e7529e4c81fb572b47bbe852f2
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/PasswordMatchesValidator.java
@@ -0,0 +1,27 @@
+package cz.zcu.kiv.backendapi.validation;
+
+import cz.zcu.kiv.backendapi.user.password.PasswordDto;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ * Validator for password and confirmation password
+ */
+public class PasswordMatchesValidator implements ConstraintValidator<PasswordMatches, PasswordDto> {
+
+    /**
+     * Checks if password and confirmation password match
+     *
+     * @param passwordDto                password DTO
+     * @param constraintValidatorContext constraint validator context
+     * @return true if passwords matches, false otherwise
+     */
+    @Override
+    public boolean isValid(final PasswordDto passwordDto, final ConstraintValidatorContext constraintValidatorContext) {
+        if (passwordDto.getPassword() == null || passwordDto.getConfirmationPassword() == null) {
+            return false;
+        }
+        return passwordDto.getPassword().equals(passwordDto.getConfirmationPassword());
+    }
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/validation/ValidEmail.java b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/ValidEmail.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e512259daf87414488aae4655f4dc95fd7dd0ab
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/validation/ValidEmail.java
@@ -0,0 +1,25 @@
+package cz.zcu.kiv.backendapi.validation;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.*;
+
+/**
+ * Constraint to email is valid
+ */
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Constraint(validatedBy = EmailValidator.class)
+@Documented
+public @interface ValidEmail {
+    /**
+     * Error message when validation fails
+     *
+     * @return error message
+     */
+    String message() default "Email is not valid - example \"x@x.xx\" (at least one character before and after \"@\" and two characters after \".\")";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/IWrittenFormService.java b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/IWrittenFormService.java
new file mode 100644
index 0000000000000000000000000000000000000000..500809e391784988d2401c41ce6e4d929883e8cf
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/IWrittenFormService.java
@@ -0,0 +1,7 @@
+package cz.zcu.kiv.backendapi.writtenform;
+
+/**
+ * Written form service interface
+ */
+public interface IWrittenFormService {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenForm.java b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenForm.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5124b5a446abc78db2d1e7a01279aa016a4b159
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenForm.java
@@ -0,0 +1,31 @@
+package cz.zcu.kiv.backendapi.writtenform;
+
+import cz.zcu.kiv.backendapi.catalog.CatalogItem;
+import lombok.*;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * Written form entity representing written form of catalog item
+ */
+@Data
+@EqualsAndHashCode(exclude = "catalogItem")
+@ToString(exclude = "catalogItem")
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "written_forms")
+@IdClass(WrittenForm.class)
+public class WrittenForm implements Serializable {
+    /**
+     * Written form, serves as ID
+     */
+    @Id
+    private String form;
+
+    @ManyToOne
+    @JoinColumn(name = "catalog_item_id")
+    @Id
+    private CatalogItem catalogItem;
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormRepository.java b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..6089d08029bf3f4a3ce0083faa004a58ba77aaae
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormRepository.java
@@ -0,0 +1,11 @@
+package cz.zcu.kiv.backendapi.writtenform;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Written form repository
+ */
+@Repository
+public interface WrittenFormRepository extends JpaRepository<WrittenForm, WrittenForm> {
+}
diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e885c74b93f8019ce22a36ea89990707ba1653e7
--- /dev/null
+++ b/backend/src/main/java/cz/zcu/kiv/backendapi/writtenform/WrittenFormServiceImpl.java
@@ -0,0 +1,19 @@
+package cz.zcu.kiv.backendapi.writtenform;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Written form service implementation
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class WrittenFormServiceImpl implements IWrittenFormService {
+
+    /**
+     * Written form repository
+     */
+    private final WrittenFormRepository writtenFormRepository;
+}
diff --git a/backend/src/main/resources/AssyrianProject-AllNoDupl-22-03-28.csv b/backend/src/main/resources/AssyrianProject-AllNoDupl-22-03-28.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b073b72be49e447deaf6359f006c62ad32b96147
--- /dev/null
+++ b/backend/src/main/resources/AssyrianProject-AllNoDupl-22-03-28.csv
@@ -0,0 +1,1086 @@
+"order","name","alt","cer","lat","lon","writ","type","countr","bibl"
+1074,"Abaindi","Abaindi","–","–","–","URU.a-ba-in-di, 𒌷𒀀𒁀𒅔𒁲","fortified city","Aiadi, Iran","Bagg RGTC 7 3/1: 1–2"
+2,"Abani","Abani","–","–","–","ÍD.a-ba-ni","river","Elam","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+3,"Abarnani","Abarnani, Abarnānu","–","–","–","URU.a-bar-na-ni","fortified city","Turkey, Quwê","Bagg RGTC 7 1: 1"
+6,"Abattê","Abattê","–","–","–","URU.a-bat-te-e","town","Central Assyria (?)","Bagg RGTC 7 2/1: 2–3"
+7,"Abbissa","Abbissa, Abbissâ, Apheisôn, Pheisôn, Pheison, Fis",3,"38.36933","40.5615","URU.ab-bi-is-sa, URU.ab-bi-s-aa","town","province of the land Naʾiri","Helsinki Atlas: 5 (map 3 D2), Bagg RGTC 7 2/1: 3 (not Fis), <a href=https://pleiades.stoa.org/places/874646>Pleiades: Pheison</a>"
+1075,"Abdana","Abdana","–","–","–","URU.ab-da-na-a-a, 𒌷𒀊𒁕𒈾𒀀𒀀","country","Naʾiri, Iran","Bagg RGTC 7 3/1: 2 (*Abdana)"
+8,"Abdudu","Abdudu","–","–","–","URU.ab-du-di, URU.ab-du-da-a-a","city","Assyria, Laḫīru","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 3"
+1076,"Abdīnu","Abdīnu, Abdinu, Apdīnu, Apdinu","–","–","–","URU.ap-di-nu, 𒌷𒀊𒁲𒉡","fortress","Rāši, Iran","Bagg RGTC 7 3/1: 2"
+9,"Abil-šiṭṭi","Abil-šiṭṭi, Abilakka, Abil..., Abel ha-Šiṭṭim, Tell al-Kafrain (?), Tall al-Kafrain (?), Al Kafrayn (?), الكفرين (?), Tall al-Ḥammām (?), Tell el-Hammam (?)",2,"31.83955"," 35.67318","URU.a-bi-il-x-x, URU.a-bi-il-šiṭ-ṭi","city","Bīt-Ḫazaʾil, Damascus, Bīt-Ḫumrî, Israel, Jordan","Helsinki Atlas: 5 (map 7 D5), Bagg RGTC 7 1: 1 (Abil...), <a href=https://www.geonames.org/250627/al-kafrayn.html>Geonames: Al Kafrayn</a>, <a href=https://www.geonames.org/248731/tall-al-kafrayn.html>Geonames: Tall al Kafrayn</a>, <a href=https://www.geonames.org/249273/tall-al-hammam.html>Geonames: Tall al Ḩammām</a>"
+10,"Abilāte","Adab, Abilāte","–","–","–","URU.a-bi-la-te","town","Izalla","Bagg RGTC 7 2/1: 4"
+1077,"Abirus","Abirus","–","–","–","KUR.a-bi-ru-us, 𒆳𒀀𒁉𒊒𒊻 ","mountains","Bīt-Kapsi, Iran","Bagg RGTC 7 3/1: 2–3"
+1078,"Abitikna","Abitikna","–","–","–","URU.a-bi-ti-ik-na, 𒌷𒀀𒁉𒋾𒅅𒈾, LÚ.URU.a-bi-ti-ik-na-a-a, 𒇽𒌷𒀀𒁉𒋾𒅅𒈾𒀀𒀀 ","city","Mannāja, Iran","Bagg RGTC 7 3/1: 3"
+1079,"Abnana","Abnana","–","–","–","URU.ab-na-na, 𒌷𒀊𒈾𒈾","city","(?)","Bagg RGTC 7 3/1: 3"
+1080,"Abrau","Abrau","–","–","–","KUR.ab-ra-ú(-x), 𒆳𒀊𒊏𒌑(-x)","land (?), mountain (?)","Mādāia, Ḫarḫār (?), Iran","Bagg RGTC 7 3/2: 3–4 "
+1081,"Absaḫutti","Absaḫutti","–","–","–","KUR.ab-sa-ḫu-at-ti, 𒆳𒀊𒊓𒄷𒀜𒋾","land (?), mountain (?)","Mādāja, Iran","Bagg RGTC 7 3/1: 4"
+1082,"Abuqu","Abuqu","–","–","–","URU.a-bu-qu, 𒌷𒀀𒁍𒄣","town","Tumme, Naʾiri (?)","Bagg RGTC 7 3/1: 4"
+1,"Abā","Abâ, Aba","–","–","–","URU.a-ba-a, URU.a-ba-a.a","town","Tušḫan province","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+4,"Abāt-Aššur-lā-tēni","Abat-Aššur-lā-tenni, Abāt-Aššur-lā-tēni","–","–","–","URU.a-bat-aš-šur-la-te-ni","city","Šubria","Bagg RGTC 7 2/1: 2"
+5,"Abāt-šarri-lā-tēni","Abāt-šarri-lā-tēni, Abat-šarri-lā-tenni","–","–","–","URU.a-bar-MAN-la-te-ni","city","Šubria","Bagg RGTC 7 2/1: 2"
+1083,"Abūrê","Abūrê, Aburê","–","–","–","URU.a-bu-re-e, 𒌷𒀀𒁍𒊑𒂊","city","Puqūdu, Gambūlu, Babylonia, Iraq","Bagg RGTC 7 3/1: 4–5"
+12,"Adab","Bismaya",1,"31.95047","45.62345","–","city","Babylonia","–"
+1057,"Adamdun","Adamdun, Teppe Surkhehgan (?)",4,"32.02136","48.79869","–","city","Elam","–"
+13,"Addauš","Addauš, Adauš, Ḥabb as-Sulṭān Dāġ, Jabal Haybat Sulţān, Hab-es-Sultān Dāgh, جبل هيبت سلطان","–","36.09709","44.67702","URU.ad-da-uš, KUR.a-da-uš","territory","Ḫabrūri (?), Iraq","Bagg RGTC 7 3/1: 5"
+1084,"Adduri","Adduri, Adduru","–","–","–","KUR.ad-du-ri, 𒆳𒀜𒁺𒊑","mountains","Urarṭu, Turkey","Bagg RGTC 7 3/1: 5"
+15,"Adia","Adia, Adiu, Adum, Mosul, Ḫirbat Qara Qounly (?), Khirbet Qara Quwiynili (?), Šēḫ ʿĀdī (?), Shaykh Adī (?)",4,"36.34233","43.11833","URU.a-di-a","town","Assyria","Helsinki Atlas: 5 (map 4 C5), ABL, 683, ONC G4, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 6–7, <a href=https://books.openedition.org/cdf/4715#tocfrom2n18>MTT I/1</a> (Adum)"
+16,"Adian","Adian, Adin, Eski Kalak, Askī Kalak, Dahūk (?)",4,"36.27267","43.63917","URU.EN-an, URU.a-di-an, URU.a-di-in","town","Assyria","Helsinki Atlas: 5 (map 4 C5), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>, Bagg RGTC 7 2/1: 7–8"
+1085,"Adilê","Adilê","–","–","–","LÚ.a-di-le-e, 𒇽𒀀𒁲𒇷𒂊","tribe","Babylonia, Iraq","Bagg RGTC 7 3/1: 6"
+17,"Adinni","Adinni","–","–","–","URU.a-di-ni, 𒌷𒀀𒁲𒉌, URU.a-di-in-ni, 𒌷𒀀𒁲𒅔𒉌","city","Babylonia, Iraq","Bagg RGTC 7 3/1: 6, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+18,"Admannu","Natmane, Admannu, Atmannu, Tell 'Ali, Tell ʾAli","–","35.38189","43.68247","–","–","–","–"
+1086,"Aduma","Aduma","–","–","–","URU.a-du-ma, 𒌷𒀀𒁺𒈠","town","–","Bagg RGTC 7 3/1: 6"
+20,"Adummatu","Adummatu, Adumatu, Adumutu, Dumetu, Dumeti, Duma, Dumatha, Doumiatha, Dūmat al-Ğandal, Dumat el-Jandal, al-Ǧauf, al-Jawf, الجوف, دومة الجندل, דוּמָ֖ה",1,"29.81144","39.86716","URU.a-du-ma-tu, URU.a-du-mu-tu, URU.a-du-um-ma-te, URU.a-du-um-ma-tu, URU.du-ma, URU.du-me-ti","town, city, fortress","Arabs","Helsinki Atlas: 5 (map 15 D4), Bagg RGTC 7 2/1: 8–9, 'Eph'lal 1982, 119, TPC H5B, <a href=https://pleiades.stoa.org/places/29548>Pleiades: Dumatha</a>"
+19,"Adumānu","Adumānu","–","–","–","URU.a-du-ma-nu","town","East Babylonia","Bagg RGTC 7 2/1: 8"
+11,"Adâ (city)","Adâ, Tall ʿAdā (?), Theleda (?), ʿAin at-Tall (?), Tall Hatab (?)","–","35.81818","36.33017","URU.a-da-a","city","Ḫamāt","Bagg RGTC 7 1: 2"
+14,"Adî","Adî","–","–","–","URU.a-di-i","town","Central Assyria (?)","Bagg RGTC 7 2/1: 6"
+1087,"Agazi","Agazi","–","–","–","KUR.a-ga-zi, 𒆳𒀀𒂵𒍣","territory","Mādāja, Iran","Bagg RGTC 7 3/1: 7"
+1090,"Aiadi","Aiadi, Ajadi, Ayādi, Aiādi, Ayaid, Aiaid, Orūmīye Plain","–","–","–","KUR.a-ia-di, 𒆳𒀀𒅀𒁲, KUR.a-ia-id, 𒆳𒀀𒅀𒀉","territory","Urarṭu, Iran","Bagg RGTC 7 3/1: 10, <a href=https://www.geonames.org/121801/orumiyeh.html>Geonames: Orūmīyeh</a>"
+1091,"Aiaṣun","Aiaṣun, Ajaṣun","–","–","–","URU.a-ia-ṣu-un, 𒌷𒀀𒅀𒍮𒌦","fortified city","Urarṭu, Aiadi, Iran","Bagg RGTC 7 3/1: 10–11, <a href=https://www.geonames.org/121801/orumiyeh.html>Geonames: Orūmīyeh</a>"
+23,"Aila","'Aqaba","–","29.53067789514675","34.99994197134541","–","town","–","–"
+24,"Aira","Aira","–","–","–","URU.a-i-ra","town","–","Bagg RGTC 7 2/1: 12"
+1092,"Aja-Sammu","Aja-Sammu, Aia-Sammu, Aya-Sammu, Aiasamu, Ajasamu","–","–","–","URU.a-a-sa-mu, 𒌷𒀀𒀀𒊓𒈬","fortified city","Gambūlu, Babylonia, Iraq","Bagg RGTC 7 3/1: 11–12"
+25,"Ajaidi","Plain of Urmīya",3,"–","–","–","district","Urarṭu (?), Naʾiri (?), Urmia","Helsinki Atlas: 5 (map 4 D4)"
+1093,"Ajalaja","Ajalaja, Ayyalaya, Ayalaya","–","–","–","KUR.a-a-la-a-a, 𒆳𒀀𒀀𒆷𒀀𒀀, KUR.a-a-la-ia, 𒆳𒀀𒀀𒆷𒅀","country","Ṣibar (?), Iran","Bagg RGTC 7 3/1: 11"
+1094,"Ajalê","Ajalê, Aialê, Ayalê","–","–","–","KUR.a-a-le-e, 𒆳𒀀𒀀𒇷𒂊","fortified city","Iran","Bagg RGTC 7 3/1: 11"
+1095,"Ajubak","Ajubak, Ayubak","–","–","–","URU.a-a-ú-ba-ak, 𒌷𒀀𒀀𒌑𒁀𒀝","city","Namri (?), Iran","Bagg RGTC 7 3/1: 12"
+27,"Akkad","Akkad, Agade, Tell Muhammad (?), Tell Muhammed (?), Tall Muḥammad (?), تل محمد, al-Qādisīya (?), Išān Mizyad (??)",4,"33.3009","44.4682","URI.KI, URI.KI-i, ak-ka-de-e, ak-ka-di-i, A.GA.DÈ.KI, a-ka-di, a-kad.KI, URU.URI, URU.ak-ka-di, URU.ak-kad, KUR.ak-ka-di-i, URU.ak-kad-u-a","city","Babylonia, Akkad, Iraq","Helsinki Atlas: 5 (map 10 D3), Bagg RGTC 7 3/1: 13–14, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+29,"Akkuddu","Akkuddu, Īlām (?), اِلام, ایلام, Surkh Dum Lurī (?), سرخ دم لـري, Surḫ Dum (?), Surḫ Dom (?), Dom Sorkh Lakī (?), دُم سُرخ لَكی, Sorkh Dom Lakī (?), سرخ دم لکي",4,"33.5065","47.7079","URU.ak-ku-du, URU.ak-ku-ud-du, URU.ak-ku-du-ma","capital, city","Ellipi, Iran","Helsinki Atlas: 5 (map 11 C3), Bagg RGTC 7 3/1: 14–15, CT 53 892"
+28,"Akkû","Akkû, 'Akkô, ʿAkko, Acco, Accon, Accra, Ptolemais, Antiocheia Ptolemais, Πτολεμαΐς, Tall al-Fuḫḫār, Tell el-Fukhkhar, עַכּוֹ‎, ʿAkkā, عكّا‎",1,"32.92139","35.08776","URU.ak-ku-u, URU.ak-ku-ú, URU.a-ku-u","city, fortresses, seaport","Ḫatti, Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5  (map 8 A4), Bagg RGTC 7 1: 3–4, <a href=https://pleiades.stoa.org/places/678010>Pleiades: Ake/Ptolemais</a>"
+30,"Akuānu","Akuānu, ʾAkuānu, Akuʾanu",4,"36.83333","39.08333","–","village, city","Ḫarrānu","Helsinki Atlas: 5 (map 3 C4)"
+31,"Akzībi","Akzībi, Akzibu, Akzib, Akzîb, Akziba, Tell Achzib, Achziv, אכזיב, Akzîb, az-Zīb, ez-Zib, الزيب‎",1,"33.04858","35.10194","URU.ak-zi-ba, URU.ak-zi-bi, אכזיב","town","Ḫatti, Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5 (map 8 A3), Bagg RGTC 7 1: 4"
+26,"Akītu Temple of Aššur","Bīt-akīti ša Aššur, Bīt-akīti ša ṣēri, Akītu Temple of Aššur, Akītu Temple of the steppe","–","35.46286","43.25423","É-á-ki-it šá EDIN","temple","Aššur","–"
+42,"Alalaḫ","Alalaḫ, Alalakh, Tell Açana","–","36.2376050898224","36.38418400802268","–","–","–","–"
+43,"Aliṣir","Aliṣir, Alimuš, Antiokia, Antiocheia, Antakya, Anṭakya","–","36.20582","36.16682","URU.a-li-MUŠ","city, fortress","Pattinu, Kullanīa","Helsinki Atlas: 5 (map 2 C4), Bagg RGTC 7 1: 6 (Alimuš)"
+44,"Allabria","Allabria, Sanandağ, سنندج",3,"35.31495","46.99883","KUR.al-la-ab-ra-a-a, KUR.al-la-lab-ri-a, KUR.al-lab-ra-a-a, KUR.al-lab-ri-a, KUR.al-lab-ri-a-a, (KUR.)al-lab-rí-a-a, URU.al-la-ab-ra-a, URU.al-la-ab-ri-a, URU.al-lab-ri-a","territory, country, city","Zagros mountain range, Iran","Helsinki Atlas: 5 (map 11 B1, 11 C1), Bagg RGTC 7 3/1: 18–19, Parpola Toponyms: 12"
+45,"Alligu","Alligu, Ialligu, Iallgu, Jalligu, Aṣbat-lakūnu, Aṣbat-lā-kunu, Aṣbat-lakūn, Aligör, Ali Gör, Ilīğak, Illījāk, Degirman, الليجاك, Tall Qūmluq, قوملوك","–","37.04393","38.4504","URU.a-li-gu, URU.al-li-gi, URU.ia-li-gu","city","Bīt-Adini","Bagg RGTC 7 1: 6–7, Bagg RGTC 7 3/2: 914"
+46,"Alluria","Alluria, Nazlu çay","–","–","–","–","river","–","Helsinki Atlas: 5 (map 4 E4)"
+47,"Alluriu","Alluriu, Alluria, Baradost, جبل برادوست","–","36.73601","44.39033","KUR.a-lu-ri-a, KUR.al-lu-ri-ú","mountain","Iraq","Bagg RGTC 7 3/1: 20"
+48,"Altaqû","Altaqû, Altaqu, Tall aš-Šallāf, Tel Shalaf, Tel Šallāf, תל שלף, Elteqēh, Eltekeh, Eltheke, אלתקה, אלתקא",1,"31.89238","34.76765","URU.al-ta-qu-u, URU.al-ta-qu-ú, אלתקה, אלתקא","city","Asdūdu (province) (?), Pilistu","Helsinki Atlas: 5 (map 7 C5), Bagg RGTC 7 1: 7, <a href=https://pleiades.stoa.org/places/498102722>Pleiades: Altaqû</a>"
+53,"Amadāni","Amadāni, Amadanu, Amadānu, Amadana, Amadani, Maden Dağlari, Maden Dağları",2,"38.27444","39.3835","KUR.a-ma-da-ni, KUR.a-ma-da-na","mountain, mount","Ḫabḫu","Helsinki Atlas: 5 (map 3 C2), Bagg RGTC 7 2/1: 41–42, <a href=https://books.openedition.org/cdf/4564#tocfrom2n39>MTT I/2</a> (Amadānu (1))"
+54,"Amantu","Amantu, Amante, Amatti, Amanta, Sultān ʿAbdallāh, Sultan ʿAbdallah",4,"35.89601","43.39074","URU.a-mat-ti, URU.am-an-te, URU.a-ma-an-ta-a-u","town, village","Central Assyria, Kilīzi (province) (?)","Helsinki Atlas: 5 (map 4 C6), Bagg RGTC 7 2/1: 42"
+57,"Ammali","Ammali, Mamli, Nammal, Namal, نمل","–","35.32081","45.60446","KUR.URU.am-ma-li, URU.am-ma-li, URU.ma-am-li","city","Zamua, Iraq","Bagg RGTC 7 3/1: 37–38"
+59,"Ammanāna","Ammanāna, Ammanānu, Ammanana, Antilibanos, Antilibanus, Anti-Lebanon, Ğabal an-Nuṣairīya, Quṣeir, Jibāl an Nuṣayrīyah, Ǧabal Anṣariya, Ǧibāl Lubnān aš-Šarqīya",2,"35.24408","36.28354","KUR.am-ma-na-na","mountain","–","Helsinki Atlas: 5 (map 8 B1), Bagg RGTC 7 1: 8–9"
+58,"Ammāna","Ammāna, ʿAmmān, Rabbat Ammon, Ammon, Rabatha, Ğabal al-Qal'a, Philadelphia",1,"31.95431","35.93515","URU.am-ma-a-na","capital, city","Bīt-Ammān","Helsinki Atlas: 5 (map 7 D5), Bagg RGTC 7 1: 7–8"
+60,"Ampa","Ampa, Ambi, Anfa, Anfeh, انفه",3,"34.35515","35.73206","URU.am-pa","town","Ṣīdūnu, Mediterranean coast, Phoenicia","Helsinki Atlas: 5 (map 8 A2), Bagg RGTC 7 1: 9"
+61,"Ampiḫabi","Ampiḫabi, Ampihabi, Ampiḫapi, Ampihapi",3,"33.96633","44.2265","KUR.am-pi-ḫa-a-bi, URU.am-pi-ḫa-bi","town","Assyria, Arzūḫina (province)","Helsinki Atlas: 5 (map 10 D3), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+62,"Amrit","Amrit","–","34.83512","35.91208","–","–","–","–"
+64,"Amurrû","Amurrû, Amurru, Māt-Amurrî, אמורי‎, Ἀμορραῖοι, ʾmr, 𐤀𐤌𐤓‎, ʿAkkār Plain (?)","–","–","–","MAR, MAR.KI, MAR.TU, MAR.TU.KI, KUR.a-mur-ri, KUR.MAR, KUR.MAR.KI, KUR.MAR.TU, KUR.MAR.TU.KI, a-mur-re-e, a-mur-ri-i, a-mur-ru-ú, KUR.a-mur-ra-a-a, KUR.a-mur-re-e, KUR.a-mur-ri-i, KUR.a-mur-ru-u, KUR.MAR.TU-e.KI, LÚ.MAR.TU.KI, MAR.TU-i, MAR.TU.KI-ú, אמורי‎, 𐤀𐤌𐤓‎","territory","Syro-Palestine, Levant","Bagg RGTC 7 1: 11–15"
+65,"Ana-Aššur-utēr-aṣbat","Ana-Aššur-utēr-aṣbat, Aššur-utēr-aṣbat, Aššur-aṣbat, Pitūru, Pitru, Pitiru, Pethor, פְּתוֹר, Tell Aushariye, Ausheriya, Aušar ar-Rafīʿa, Ḥammām aṣ-Ṣaġīr",2,"36.66007","38.07583","URU.a-na-aš-šur-ú-ter-aṣ-bat, URU.AN.ŠÁR-DAB-bat, URU.ana-aš-šur-ú-ter-aṣ-bat, URU.aš-šur-DIB-bat, URU.aš-šur-ú-ter-aṣ-bat, URU.ina-aš-šur-ut-ter-aṣ-bat, URU.pi-it-ru, URU.pi-ti-ru","city","Ḫatti, Bīt-Adini, Til-Barsib (?)","Helsinki Atlas: 5, Bagg RGTC 7 1: 16 (Ana-Aššur-utēr-aṣbat), 191 (Pitru), <a href=https://pleiades.stoa.org/places/771224407>Pleiades: Pitru</a>"
+66,"Anasarta","Anasarta, Khanasir","–","35.77596486304121","37.49764864063391","–","–","–","–"
+68,"Andarutta","Andarutta, Andarutu, Berat Dağ (?), جبل بيرت, Baradost (?), جبل برادوست","–","36.74111","44.14666","KUR.an-da-ru-ut-ta, KUR.an-da-ru-tú","mountain","Ḫabḫu (?), Province of ''nāgir ekalli'' (?), Iraq","Helsinki Atlas: 5 (Berat Dağ, map 4 D5), Bagg RGTC 7 3/1: 39–40 (Baradost), Dlshad A. Marf: ''Re-Identifying the ‫Ḫ‬iptunu Town and Andaruttu Mountain''. Akkadica 136 (2015), pp. 127- 140."
+69,"Andia","Andia",2,"–","–","–","country, state","Zagros mountains","Helsinki Atlas: 5 (map 5 C4)"
+70,"Androna","Androna, El-Andarin","–","35.53433495330736","37.36206520477305","–","–","–","–"
+71,"Anduli","Anduli, Andulu, Hedil, Hêdil, Kayı","–","37.37316","41.7836","URU.an-du-li","town","Izalla","Bagg RGTC 7 2/1: 48"
+73,"Ankuwa","Ankuwa, Alişar Hüyük","–","39.60636312468131","35.26129955642234","–","–","–","–"
+74,"Anmurru","Anmurru, Keban, Nemerli","–","38.70377","37.822263","URU.an-mu-ur-ru","fortress, city","Melīdi, Turkey","Bagg RGTC 7 1: 17, <a href=https://pleiades.stoa.org/places/762647722>Pleiades: Anmurru</a>"
+75,"Anqarrūna","Anqarrūna, Amqarrūna, Amqaruna, Aqqarruna, ʾAmkaruna, Tel Miqne, Khirbat el-Muqanna', Eqron, Ekron, Akkaron, עֶקְרוֹן‎, عقرون‎",1,"31.77746","34.85097","KUR.am-qar-u-na, KUR.am-qar-ru-na, URU.ʾa-am-qa-ar-ru-na, URU.ʾa-am-qa-ru-na, URU.am-qar-ru-na, URU.am-qar-u-na, URU.an-qar-u-na, KUR.an-qar-ru-na-a-a, URU.a-qa-ru-na-a-a","capital, city","Pilistu, Levant, Israel","Helsinki Atlas: 5 (map 7 C5), Bagg RGTC 7 1: 10–11 (Amqarrūna), <a href=https://pleiades.stoa.org/places/687888>Pleiades: Ekron/Akkaron</a>"
+77,"Antakya","Antakya, Antiokia, Antiochia","–","36.22255","36.18321","–","monument","Turkey","Helsinki Atlas:  20 (map 2 C4), <a href=https://pleiades.stoa.org/places/658381>Pleiades: Antiochia/Theoupolis</a>"
+78,"Anzaknê","Anzaknê, Ṣaḥne, صحنه, Bahār, بهار","–","34.4813","47.6908","KUR.an-za-ak-né-e","territory, country (?)","Mādāja, Iraq","Bagg RGTC 7 3/1: 43"
+79,"Anzaria","Anzaria, Kār-Adad","–","–","–","–","fortress","Iran","Parpola Toponyms: 20, Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+72,"Anīsu","Anīsu, Anisu, Anīsus, Anisus, Qalʿat Dīza, Qalaat Diza, Qalʿe Dīze, Qalat Dizah, Qeładizê, قلعة دزة",4,"36.18254","45.13017","URU.a-ni-su, URU.a-ni-i-su-us","town","Zagros mountain range, Iraq","Helsinki Atlas: 5 (map 4 E5), Bagg RGTC 7 3/1: 42–43"
+76,"Anšan","Anzan, Anšan, Aššan, Tall-i Malyān, Tall-e Malyān, Tell Malyan, تل ملیان, Tepe Malyan",1,"30.01238","52.41011","KUR.an-za-an, KUR.áš-ša-an, KUR.an-za-nu-ú-a, URU.áš-šá-an","capital, city","Elam, Iran","Helsinki Atlas: 5 (map 17 D4), Bagg RGTC 7 3/1: 44"
+81,"Aparāzu","Aparāzu, Apparāzu, Apparazu, Parraza, Abarara, Abarraza, Brēğ, البريج, Ṭaṭmaraš, Ṭāṭumarāš, طاطمراش","–","36.25225","36.85209","URU.a-pa-ra-a-zu, URU.ap-pa-ra-zu","fortress, fortified city","Bīt-Agūsi","Bagg RGTC 7 1: 17–18 (Apparāzu), <a href=https://pleiades.stoa.org/places/658362>Pleiades: Abarara</a>"
+82,"Apaša","Apaša, Ephesus (?)",4,"37.94113","27.346","–","–","–","–"
+83,"Apku","Apku, Apqu, Apka, Apqum, Tall Abū Mārīyā, Tell Abu Marya, Abū Mārīyah, Abū Maria, ابو مارية",2,"36.42959","42.5976","URU.ap-ku, URU.ap-ka, URU.ap-ki, URU.ap-qí","town","Central Assyria, Iraq","Helsinki Atlas: 6 (map 4 B5), Bagg RGTC 7 2/1: 49, <a href=https://pleiades.stoa.org/places/874723>Pleiades: Tell Abu Marya/[Apqu]</a>, <a href=https://books.openedition.org/cdf/4564#tocfrom2n50>MTT I/2 ( HIGEOMES Nr. 3)</a>"
+84,"Appari","Appari","–","–","–","URU.ap-pa-ri","town","–","Bagg RGTC 7 1: 18, Parpola Toponyms: 21"
+85,"Apparu","Apparu, Apparum, Afaris, Ḥafīra, وادي الحفيرة, al-Lajāh, al-Lağā, اللجاه","–","32.93481","36.385","URU.ap-pa-ru","oasis, water resource","Māʾab (?), Jordan, Syria","Bagg RGTC 7 1: 18, <a href=https://books.openedition.org/cdf/4715>MTT I/1</a>, Parpola Toponyms: 21"
+86,"Apqu","Apqu, ʾpq, 𐤀𐤐𐤒, Aphek, Aphik, אֲפֵק, Afqā, أفقا, Pegae, Antipatris, Aphaka, Tel Ras el-'Ain, Tel Afēq, תל אפק, Tēl Kabri, Fīq, Tēl Soreq, Ḫirbat al-Hadab",1,"34.06616","35.88854","URU.ap-qu, אֲפֵק, 𐤀𐤐𐤒","town","Bīt-Ḫumrî (?), Israel (?), Phoenicia (?), Lebanon (?), Dimašqa (?), Syria (?), Palestine (?), Iaʾūdu (?)","Helsinki Atlas: 6 (map 7 C4), Bagg RGTC 7 1: 18–19, <a href=https://pleiades.stoa.org/places/668195>Pleiades: Aphaka (Temple of Aphrodite Aphakitis)</a>"
+87,"Aprê","Aprê, Apre, ʿAfrīn, ʿIfrīn",2,"–","–","–","river","Ḫatti, Pattinu, Kullanīa (province), Samʾalla","Helsinki Atlas: 6 (map 2 C4)"
+88,"Apsia","Apsia, Absia, Apsija, Ebsi (?), Apši, Apše",3,"37.364166666667","41.166833333333","–","village","Izalla, Syria (?), Turkey (?)","Helsinki Atlas: 6 (map 3 E3)"
+89,"Apsu","Apsu, Apsuna, ʾpš, Tell Afis, T. Afis",3,"35.905","36.79875","–","city","Ḫatti, Syria","Helsinki Atlas: 6 (map 2 C5)"
+80,"Apāk","Apāk, Apak, Apiak, Abiak",3,"32.416666666667","44.666666666667","–","town","Bīt-Dakkūri, Babylonia, Iraq","Helsinki Atlas: 6 (map 10 D4)"
+90,"Apšu","Apšu",4,"33.321166666667","44.385666666667","–","town","Babylonia, Iraq","Helsinki Atlas: 6 (map 10 D3)"
+91,"Aqarbānu","Aqarbānu, Aqarbāni, Aqarbani, Naqarabāni, Naqarbāni, Merrhan, Kherban",3,"34.65","40.83333","URU.a-qa-ar-ba-ni, URU.na-qa-ra-ba-ni, URU.na-qa-ra-ba-a-ni","town","Lāqê, Syria","Helsinki Atlas: 6 (map 9 C2), Bagg RGTC 7 2/1: 50–51"
+93,"Arad","Arad","–","31.28089","35.12658","–","–","–","–"
+94,"Arameans","Aram, Arameans, Aramaeans","–","–","–","–","ethnic","–","–"
+95,"Arantu","Arantu, Orontes",1,"–","–","–","river","Mediterranean coast, Syria","Helsinki Atlas: 6 (map 8 B1)"
+96,"Aranziaš","Aranziaš, Araziaš, Aranzēšu, Arazišu, Godin Tepe (?), Godin Teppe (?), Gūdīn Tapeh, گودین‌تپه","–","34.51841","48.06839","KUR.a-ra-an-ze-e-šú, KUR.a-ra-an-ze-šú, KUR.a-ra-zi-aš, KUR.a-ra-zi-áš, KUR.a-ra-zi-šú, KUR.a-ra-zi-áš-a-a","territory, city, state","Mādāia, Iran","Bagg RGTC 7 3/1: 56–57 (Araziaš), Helsinki Atlas: 6 (map 11 C2)"
+97,"Aranziaše","Aranziaš, Aranziaše, Aranziašu, Aranzēše","–","–","–","URU.ar-an-ze-e-še, URU.ar-an-zi-a-še, URU.ar-an-zi-a-šu","city","Rāši, Iran","Bagg RGTC 7 3/1: 53–54 (Araziaše), Helsinki Atlas: 6 (map 11 C2)"
+99,"Arattâ","Arattâ","–","–","–","ÍD.a-rat-ta-a","river","Māzamua (?)","Parpola Toponyms: 24"
+100,"Araziqa","Araziqa, Tell el-Hajj (?)",4,"36.19682","38.07494","–","–","–","–"
+101,"Arbail","Arbail, Arbela, Arbēla, Arbīl, Irbīl, Irbil, Erbil, أربيل‎",1,"36.19143","44.00901","arba-ìl, arba-ìl.KI, DUMU.arba-ìl, DUMU-URU.arba-ìl, DUMU.MEŠ-URU.arba-ìl, URU.ar-ba-ìl, URU.ár-ba-ìl, URU.arba, URU.arba-ìl, URU.arba-ìl.KI, URU.er-ba-ìl, URU.arba-ìl-a-a","city","Assyria","Helsinki Atlas: 6 (map 4 C5), Bagg RGTC 7 2/1: 53–57"
+102,"Arbakki","Arbakki, Arbakku, Gre Dimse, Arwah (?)","–","37.82752","40.96629","KUR.ar-ba-ki, KUR.ar-ba-ak-ki, URU.ar-ba-ki, URU.ar-ba-ak-ki, URU.ár-ba-ak-ki","city, territory","Ḫabḫu, Turkey","Bagg RGTC 7 2/1: 58"
+104,"Arbela (Irbid)","Arbela, Irbid","–","32.55925461562157","35.84754833501287","–","–","–","–"
+105,"Arbunâ","Arbunâ","–","–","–","URU.ar-bu-na-a","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 59"
+103,"Arbātu","Arbātu, Arbate, Arbatu, Tell Khaumat Hajin (?), Tall Ḥawmat Hayin, aṣ-Ṣāliḥīyah (?), Dura-Europos (?), Doura'Europus (?), Δοῦρα Εὐρωπός, aç-Çaʾābi (?), Tall ʿAfrīya (?)",4,"34.71257","40.82676","URU.ar-ba-te","town","Lāqê, Syria","Bagg RGTC 7 2/1: 58–59 (Arbate)"
+106,"Ardata","Ardata, Tell Ardé","–","34.408691834184","35.9148561159837","–","–","–","–"
+107,"Arganâ","Arganâ, Arzigana, Ḫarganā, Arziġān at-Taḥtāni, Rīḥā, ar-Rūǧ territory, Ǧabal az-Zāwiya territory, Qalʿat al-Muḍīq territory, Tall Arguni, Tall Qasṭūn",3,"35.81374","36.60964","URU.ar-ga-na-a","city","Ḫamāt, Syria","Helsinki Atlas: 6 (map 2 D5), Bagg RGTC 7 1: 20–21"
+110,"Argite","Argite, Tall ʿArquni, تل عرقوني","–","34.58147","36.65652","URU.ar-gi-te","station","Syria","Bagg RGTC 7 1: 21"
+109,"Argištiuna","Argištiuna, Argistiani, Irgistiani, Qalʿe Esmaʾīl Āġā (?), قلعه اسماعیل آقا","–","37.6651","44.9296","URU.ar-giš-ti-ú-na, URU.ir-gi-is-ti-a-ni","fortified city","Aiadi, Iran","Bagg RGTC 7 3/1: 59"
+108,"Argištiḫinili","Argištihinili, Armavir, Davti-blur",1,"40.08092","44.03321","–","city","–","Helsinki Atlas: 6 (map 4 D1)"
+112,"Ariawāte","Ariawāte",3,"36.8","40.283333333333","–","town","–","Helsinki Atlas: 6 (map 3 D4)"
+113,"Aribi","Aribi, Arabs",2,"–","–","–","tribe","–","Helsinki Atlas: 6 (map 10 A1)"
+114,"Aribua","Aribua, Ǧisr aš-Šuġūr, جسر الشغور, as-Safīra, السفيرة","–","35.81418","36.31983","URU.a-ri-bu-a","fortified city","Pattinu, Syria","Bagg RGTC 7 1: 22"
+117,"Ariru","Ariru","–","–","–","URU.a-ri-ra-a-a","town","Central Assyria (?), Kalḫu province (?)","Bagg RGTC 7 2/1: 62–63"
+118,"Armarialî","Armarialî, Plain of Salmās/Šahpūr",2,"–","–","–","district","–","Helsinki Atlas: 6 (map 4 D3)"
+119,"Arnabāni","Arnabāni",3,"36.583333333333","40.416666666667","–","town","–","Helsinki Atlas: 6 (map 3 D4)"
+120,"Arnê","Arnê, Arne, Arna (?), ʾArnaya (?), Tell ʿArān, تل عرن, Erin",2,"36.12419","37.34718","URU.ar-né-e","capital","Bīt-Agūsi, Syria","Helsinki Atlas: 6 (map 2 D4), Bagg RGTC 7 1: 23"
+121,"Arpadda","Arpadda, Arpad, ʾrpd, 𐡀𐡓𐡐𐡃, ʾArpād, אַרְפָּד, Ḫurpata, Tell Rifʿat, Tall Rifʿat, Tell Rifa'at, تل رفعت",2,"36.47262","37.09464","ar-pad-da, KUR.ar-pad-da, KUR.ár-pad-da, KUR.URU.ar-pad-dà, URU.ar-pa-da, URU.ar-pad-da, URU.ar-pad-du, URU.ár-pa-da, URU.ár-pad-da, ár-pad-da-a-a-te, KUR.ar-pa-da-a-a, KUR.ár-pad-da-a-a, URU.ar-pad-da-a-a, URU.ár-pad-da-a-a, 𐡀𐡓𐡐𐡃, אַרְפָּד","prov. capital","Bīt-Agūsi, Arpadda province, Syria","Helsinki Atlas: 6 (map 2 D4), Bagg RGTC 7 1: 23–25"
+122,"Arqâ","Arqâ, Irqanat, Irqanatu, Irqanata, Arkata, Irkata, Irqata, ʿrqw, 𐡏𐡓𐡒𐡅‎‎, br ʿrqj, 𐡁𐡓 𐡏𐡓𐡒𐡉, ʿArqî, עַרְקִי, Arka, Arkē, ʿrq, 𐤏𐤓𐤒‎, Arca, Arka, Arkē, Archis, Caesarea ad Libanum, Herakleia en Phoinike, Tell ʿArqâ, عرقا",1,"34.53333","36.03333","KUR.ar-qa-a, URU.ar-qa-a, ar-qa-a-a, KUR.ir-qa-na-ta-a-a, ʿrqw, 𐡏𐡓𐡒𐡅‎‎, br ʿrqj, 𐡁𐡓 𐡏𐡓𐡒𐡉, ʿrq, 𐤏𐤓𐤒‎, עַרְקִי","city","Ḫamāt, Phoenicia, Syria","Helsinki Atlas: 6 (map 8 A2), Bagg RGTC 7 1: 25–26, <a href=https://pleiades.stoa.org/places/668198>Pleiades: Arca/Herakleia en Phoinike/Caesarea ad Libanum</a>"
+123,"Arqānia","Arqānia, Arkanâ, Arkania, Ergani mountains, Sakız Dağı, Yaylım Dağı","–","38.49845","39.6579","KUR.ar-ka-a-na-a, KUR.ar-qa-ni-a","mountain","Mallānu, Turkey","Bagg RGTC 7 2/1: 64, Helsinki Atlas: 6 (map 3 C2)"
+124,"Arrakdi","Arrakdi, Arrakdu, Arrakdia, Arikdin, Arragdi, Tukultī-Aššur-aṣbat, Bingird, بنگرد",4,"35.37778","45.71389","KUR.ár-rak-di-a, URU.a-ra-ak-di, URU.a-rak-di, URU.ar-ra-ak-di/URU.ar-ra-ag-di","town","Zamua","Bagg RGTC 7 3/1: 63–64, Helsinki Atlas: 6 (Arragdi, map 10 E1), Radner (2017), A Neo-Assyrian Legal Document from Tell Sitak: 428"
+125,"Arrapḫa","Arrapḫa, Arrapḫum, Arrapḫe, Arrapḫi, Arrapachitis, Karkha de Beth Seluk, Karkūk, Kirkuk, كركوك, ʿArafah, عرفة",1,"35.46963","44.39572","ár-rap-ḫa, arrap-ḫa, arrap-ḫa.KI, KUR.arrap-ḫa, URU.ár-arrap-ḫa, URU.a-rap-ḫa, URU.ar-rap-ḫa, URU.ar-rap-ḫi, URU.ár-rap-ḫa, URU.ár-rap-ḫe, URU.arrap-ḫa, URU.arrap-ra-ap-ḫa, ar-rap-ḫa-ia, URU.ar-rap-ḫa-a-a, URU.arrap-ḫa-a-a","city","Assyria, Arrapḫa province","Helsinki Atlas: 6 (map 10 D1), Bagg RGTC 7 2/1: 64–68, <a href=https://pleiades.stoa.org/places/893941>Pleiades</a>"
+128,"Artulu","Artulu, Kululu, Kayserı, Aksaray","3 4","38.96968","36.13359","URU.ar-tu-lu","city","Tabāl, Turkey","Helsinki Atlas: 6 (Artulu and Artulu (alt. loc.), map 2 B2, 1 D2), Bagg RGTC 7 1: 26, <a href=https://pleiades.stoa.org/places/543726022>Pleiades: Kululu Kalesi</a>, <a href=https://pleiades.stoa.org/places/619164>Pleiades: Aksaray</a>, <a href=https://pleiades.stoa.org/places/629035>Pleiades: Kayserı</a>"
+130,"Arwāda","Arwad, Arvad, Arwād, Arwāda, Armāda, Armada, Arwada, ʾArwād, אַרְוַד, ʾrwd, 𐤀𐤓𐤅𐤃, ʾrwdj, 𐤀𐤓𐤅𐤃𐤉, Arados, Aradus, ar-Ruwād, Arwād, أرواد",1,"34.85735","35.86053","KUR.a-ru-a-di, KUR.a-ru-ad-da, KUR.a-ru-ú-ad-da, KUR.a-ru-ú-da, KUR.a-ru-ud-da, KUR.ar-u-a-da, KUR.ar-ú-a-da, KUR.ar-ú-ad-da, KUR.ar-ú-da, LÚ-KUR.ar-ú-ad-da, URU.a-ru-ad-da, URU.a-ru-a-di, URU.ar-ma-da, URU.ar-ma-di, URU.ar-u-a-da, URU.ar-ú-a-da, KUR.ar-ma-da-a-ia, URU.a-ru-da-a-a, URU.ar-ma-da-a-a, 𐤀𐤓𐤅𐤃, 𐤀𐤓𐤅𐤃𐤉, אַרְוַד","city, island","Phoenicia, Syria","Helsinki Atlas:  6 (map 8 A2), Bagg RGTC 7 1: 27–29, <a href=https://pleiades.stoa.org/places/668197>Pleiades: Arados</a>"
+131,"Arzâ","Arzâ, Arzāja, Yurza, Tell Ğāmā, Tēl Gamma, תל גמה, Tēl Haror, תל הרור, Tall Abū Ḥurēra, Tēl Hesi, תל חסי, al-ʿArīš (?), العريش",1,"31.38715","34.44511","KUR.ar-za-a, URU.ar-za-a, URU.ar-za-a-a","town","Levant, Pilistu, Israel","Helsinki Atlas: 6  (map 7 C5), Bagg RGTC 7 1: 29–30, <a href=https://pleiades.stoa.org/places/309101265>Pleiades: Arzâ (T. Ǧāmā)</a>"
+132,"Arzūḫina","Arzūḫina, Arzuḫina, Aḫi-Zūḫina, Urzūḫina, Azuḫīnum, Azuḫinni, Narzuḫini, Uzuḫinnum, ʾrzḥn, 𐡀𐡓𐡆𐡇𐡍, Gök Tepe, گوگ تپه, Lēlān, ليلان, Tall Qara Khogh",3,"35.84718","44.83326","ar-zu-ḫi-na, ár-zu-ḫi-na, ur-zu-ḫi-na, KUR.ur-zu-ḫi-na, URU.a-ḫi-ÍD.zu-ḫi-na, URU.ar-zu-ḫi-na, URU.ar-zu-ḫi-nu, URU.ár-zu-ḫi-na, URU.ur-zu-ḫi-nu, URU.ar-zu-ḫi-na-a-a, URU.ur-zu-ḫi-na-a-a, 𐡀𐡓𐡆𐡇𐡍","city, prov. capital","Assyria, Arzūḫina province, Iraq","Bagg RGTC 7 2/1: 72–74 (Arzuḫina), <a href=https://pleiades.stoa.org/places/893944>Pleiades: Arzuhin?</a>, Parpola Helsinki Atlas: 6, 24 (map 10 D1)"
+92,"Arâ","Arâ, Arra, Arrha, ʿrw, 𐡏𐡓𐡅, Tall ʿAr, Maʿarrat an-Nuʿmān, معرة النعمان, Tall Arrī, تل عري","–","35.4851","36.67946","URU.a-ra-a, ʿrw, 𐡏𐡓𐡅","town","Ḫamāt, Syria","Bagg RGTC 7 1: 19–20"
+98,"Arāši","Arāši, Rāši","–","–","–","–","region","–","Helsinki Atlas: 6 (map 11 B3)"
+115,"Arīdi","Arīdi, Aridi, Arīdu, Aridu, Jaridu, Jaridi, Iaridu, Tell ʿArāda, Tall ʿArāda, تل عرادة",2,"36.74381","40.26703","URU.a-ri-di, URU.ia-ri-di","town","Gūzāna province, Syria","Helsinki Atlas (Arīdu (1), map 3 D3), Bagg RGTC 7 2/1: 62"
+116,"Arīdu","Arīdu, Aridu, Ruwandiz, Rāwandūz, Ṟuwandiz, راوندوز, رواندز",4,"36.61667","44.51667","KUR.a-ri-di, URU.a-ri-di, URU.a-ri-du","fortified city","Ḫabrūri, Iraq","Bagg RGTC 7 3/1: 60, Helsinki Atlas: 6 (Arīdu (2), map 4 D5), Bagg RGTC 7 1: 62"
+129,"Arūmâ","Arumâ, Arūmâ, Rûmâ, Rumah, רוּמָה, Ḫirbat ar-Rūma, Ḥirbe Ruma, חרבת רומה",1,"32.78854","35.29285","URU.a-ru-ma-a, רוּמָה","town","Bīt-Ḫumrî, Galilee, Israel","Helsinki Atlas: 6, Bagg RGTC 7 1: 27"
+111,"Arḫi","Arḫi","–","–","–","–","district","–","Helsinki Atlas: 6 (map 5 C2)"
+126,"Arṣania","Arṣania, Murat Su, Arsanias",1,"–","–","–","river","–","Helsinki Atlas: 6 (map 3 D2)"
+127,"Arṣaškun","Arṣaškun, Erciṣ",4,"39.02906","43.35914","–","capital","–","Helsinki Atlas: 6 (map 4 C2)"
+133,"Asatia","Asatia, Asati","–","–","–","–","country","Naʾiri","–"
+134,"Asdūdimmu","Asdūdimmu, Asdudimmu, Azōtos Paralios, Ἄζωτος παράλιος, Ašdôd-Yam, Ashdod Yam, H̱orbat Ashdod Yam, חרבת אשדוד ים, Minat el-Qal'a, Tēl Mor, תל מור",1,"31.77931","34.62103","URU.as-du-di-im-mu","seaport, city","Pilistu, Israel","Helsinki Atlas: 6 (map 7 C5), Bagg RGTC 7 1: 30, <a href=https://pleiades.stoa.org/places/687843>Pleiades: Azotos Paralios</a>"
+135,"Asdūdu","Asdūdu, Sadūdu, Sidūdu, Asdudu, Ašdod, ʾAḏdādu, Ašdôd, ʾAšdôd, אַשְׁדּוֹד, Azōtos, Ἀζωτός, Azotos Mesogeios, Ἄζωτος μεσόγειος, ʾšdd, 𐤀𐤔𐤃𐤃, 'Esdūd, Tel Ashdod, Tēl Ašdod, Ashdod",1,"31.75604","34.65606","as-du-du, KUR.as-du-di, URU.as-du-di, URU.as-du-du, URU.as-du-ú-di, KUR.as-du-da-a-a, KUR.sa-du-da-a-a, KUR.si-du-da-a-a, URU.as-du-da-a-a, 𐤀𐤔𐤃𐤃, אַשְׁדּוֹד","prov. capital","Pilistu, Israel","Helsinki Atlas: 6 (map 7 C5), Bagg RGTC 7 1: 30–32, <a href=https://pleiades.stoa.org/places/687838>Pleiades: Ashdod/Azotos (Mesogeios)</a>"
+136,"Asiḫi","Asiḫi","–","–","–","–","town","Assyria, Syria","RGTC 7 2/1: 74–75 (Asiḫi 1 and 2), 76 (Ašiḫi)"
+137,"Astārtu","Astārtu, ʿAštartu, ʿAṯtartu, Astārtu, Astartu, Ashtarot, Aštārôt, ʿštrt, 𐤏𐤔𐤕𐤓𐤕‎, עַשְׁתְּרֹת, עַשְׁתְּרֹת קַרְנַיִם, Tell Aštara, Tell Ashtara, Tall Aštara, تل الشتارا",1,"32.8045","36.01537","URU.as-tar-tu, 𐤏𐤔𐤕𐤓𐤕‎, עַשְׁתְּרֹת, עַשְׁתְּרֹת קַרְנַיִם","city","Dimašqa","Helsinki Atlas: 6 (map 8 B4), Bagg RGTC 7 1: 32, <a href=https://pleiades.stoa.org/places/678227>Pleiades: Karnaia/Astaroth?</a>"
+145,"Atalur","Atalur, Lallar, Kurt Dağ, Kurt Dağı, Jabal al Kurd, جبل الكرد, Jabal Kurī, جبل كري, Kartal Dağı",2,"36.68627","36.63681","KUR.a-ta-lu-ur, KUR.lal-la-ar","mountain","Syria, Turkey (?)","Helsinki Atlas: 7 (map 2 C4), Bagg RGTC 7 1: 34 (Atalur),d 154–155 (Lallar), 328, and 329."
+146,"Atinni","Atinnu, Atinni, Atanni, Adennu, Addanôn, Adanôn, Adana, ad-Dānā, الدانا, Kəfar Atin, Ḫānedān","–","35.6997","36.68736","URU.a-ti-in-ni, URU.a-de-en-nu","royal city","Ḫamāt, Syria","Bagg RGTC 7 1: 35 (Atinnu), Parpola Toponyms: 55, Helsinki Atlas: 8 (Dāna)"
+147,"Atunna","Atunna, Atuna, Tuna, Atūnu, Tūnu, Dunna, Tynna, Porsuk, Bohça, Adana",1,"37.51473","34.58111","KUR.a-tu-un-a-a, KUR.a-tú-un-a-a, KUR.a-tu-na-a-a, KUR.tu-na-a-a, KUR.tu-un-na-a-a, URU.a-tú-na-a-a, URU.tu-na-a-a","city, state","Tabāl, Turkey","Helsinki Atlas: 7 (map 1 D3), Bagg RGTC 7 1: 35–36"
+148,"Aukanê","Aukanê, Miyāne (district of?)","–","37.421","47.715","KUR.a-ú-ka-né-e, URU.a-ú-ka-né-e","district, fortified city","Zikirtu, Iran","Bagg RGTC 7 3/1: 79, Helsinki Atlas: 7 (map 5 B4)"
+149,"Awal","Awal, Tell es-Suleimeh","–","34.1672839680068","45.10398610165713","–","–","–","–"
+150,"Azalla","Azalla, Izalla, Aṣalli, al-ʿUyānīya, العليانية","–","34.01469","38.0986","URU.a-za-al-la, URU.a-za-al-li, URU.i-za-la","city","Syria","Bagg RGTC 7 1: 36–37"
+151,"Azamḫul","Azamhul, Tell Muhammed Diyab (?)",4,"36.92458278462991","41.5639438856054","–","–","–","–"
+152,"Azaqâ","Azaqâ, Azeqa, ʿAzēqāh, עֲזֵקָה, Αζηκα, Tēl ʿAzēqāh, תל עזקה, تل عزيقة, Tēl Zekarya, תל זְכַרְיָה, Tell Zakarīya, Tell Zakariya",1,"31.70927","34.94488","URU.a-za-qa-a, עֲזֵקָה","city","Iaʾūdu, Israel","Helsinki Atlas: 7 (map 7 C5), Bagg RGTC 7 1: 37"
+153,"Azari","Azari, Sulaimāniya",4,"35.558333333333","45.441666666667","–","town","–","Helsinki Atlas: 7 (map 11 A1)"
+154,"Azatiwadaya","Karatepe Aslantaş","–","37.29593799675796","36.25398751793364","–","–","–","–"
+155,"Azmu","Azmu, Zalabiya, Zalebiye, زلابية, Yasīm",4,"35.66842","39.84256","URU.az-mu","town","Bīt-Adini, Middle Euphrates, Syria","Helsinki Atlas: 7 (map 3 C5), Bagg RGTC 7 1: 38"
+156,"Azu","Azu, Tell Hadidi","–","36.2636830630028","38.15089325346946","–","–","–","–"
+157,"Azuru","Azuru, Asuru, Yāzūr, Azor, ʾĀzôr, אָזוֹר‎, Tēl Azor, Azur, أزور‎",1,"32.02167","34.7805","URU.a-zu-ru","town","Pilistu, Isqalūna, Israel","Helsinki Atlas: 7 (map 7 C4), Bagg RGTC 7 1: 38"
+140,"Ašnakkum","Chagar Bazar (?)",4,"36.87559543914787","40.89909269814208","–","–","–","–"
+144,"Aštamāku","Aštammaku, Aštamāku, Aštamaku, Abšimmaku, Abtammaku, Išdamugu, Aštakamu, ʾystmk, al-Mastumaḥ, Tall Masṭūma, تل مسطومة, Stūmā, Stūmāk, Stumak",1,"35.87781","36.63077","URU.ab-ši-ma-ku, URU.ab-ta-ma-ku, URU.áš-ta-ma-ku, URU.áš-tam-ma-ku","town","Ḫamāt, Syria","Helsinki Atlas: 6 (map 2 C5), Bagg RGTC 7 1: 33–34 (Aštammaku), <a href=https://pleiades.stoa.org/places/56494917>Pleiades: Aštamaku</a>"
+141,"Aššur","Libbi-āli, Libbāli, Inner City, Aššur, Assur, Ashur, Baltil, Qalʿat Šarqāṭ, Qal'at Sherqat, Qalaat Sherqat",1,"35.45626","43.25979","–","capital, city","Assyria","Helsinki Atlas: 6 (map 10 C1), <a href=https://www.assur.de/> Assur</a>"
+142,"Aššur-iqīša","Aššūr-iqīša, Aššur-iqīša, Takyan Höyük, Zāḫū",4,"37.17944","42.39525","URU.aš-šur-BA-šá","prov. capital","Ulluba, Birtu (2) province","Helsinki Atlas: 6 (map 4 B4), Bagg RGTC 7 2/1: 81"
+143,"Aššur-māssu-urappiš","Aššur-māssu-urappiš","–","–","–","URU.aš-šur-KUR-su-DAGAL.MEŠ","town","Egypt","–"
+139,"Ašḫāni","Ašḫāni, Ašḫani, Isḫanikka, Išḫanik, Ḫān Šayḫūn, Ḫān Šaiḫūn, خان شيخون, aš-Šaʿrāni, aš-Šēḫ Ḥourāni, الشيخ حوراني, ʿAin Saḫnā, عين السحنة",2,"35.44328","36.64629","URU.aš-ḫa-ni, URU.áš-ḫa-ni","city","Ḫamāt, Syria","Helsinki Atlas: 6 (map 8 B1), Bagg RGTC 7 1: 33 (Ašḫani)"
+1088,"Aḫsipuna","Aḫsipuna","–","–","–","URU.aḫ-si-pu-na, 𒌷𒄴𒋛𒁍𒈾","town","Parsua (?), Mādāja (?), Iran","Bagg RGTC 7 3/1: 9"
+22,"Aḫtâ","al-Mīnāʾ, Raʾs al-Basīṭ (?)",3,"36.05979","35.97939","URU.aḫ-ta-a","city, emporium on the seashore","Ḫamāt (?), Kullanīa (province) (?), Mediterranean coast","Helsinki Atlas: 5 (map 2 B4), Bagg RGTC 7/1: 3, Zadok 1996, 11, Barrington Atlas, 67"
+21,"Aḫšūru","Aḫšūru, Aḫšūra","–","–","–","KUR.aḫ-šu-ú-ru, 𒆳𒄴𒋗𒌑𒊒","mount","Zamua (?), Mannāja (?), Iran ","Bagg RGTC 7 3/1: 9, Parpola Toponyms: 6, <a href=https://www.geonames.org/98463/as-sulaymaniyah.html>Geonames: As Sulaymānīyah</a>"
+1089,"Aḫūdu","Aḫūdu, Aḫudu, Uḫūdu","–","–","–","URU.a-ḫu-di, 𒌷𒀀𒄷𒁲","fortified city","Bīt-Amukkāni, Babylonia, Iraq","Bagg RGTC 7 3/1: 9–10"
+138,"Aṣūṣi","Aṣūṣi, Aṣūṣu, Ṣūṣi","–","–","–","URU.a-ṣu-ṣi, URU.ṣu-ṣi","town","Northern Babylonia (?)","Bagg RGTC 7 1: 74"
+158,"Babil","Assyrian name unknown, Babil, Kebili, Kebeli Köyü, Kebeli Koyu","–","37.1876517","42.0271825","–","monument","Turkey","Helsinki Atlas: 7 (map 4 A4), <a href=https://pleiades.stoa.org/places/708232008>Pleiades: Babil</a>"
+160,"Babiti","Babiti, Baziān",2,"35.6365","44.96966","–","pass","–","Helsinki Atlas: 7 (map 10 E1)"
+161,"Badāni","Badāni","–","–","–","URU.ba-da-a-ni","village","Central Assyria","Bagg RGTC 7 2/1: 88 (Badāni 3)"
+162,"Badāni (2)","Badani, Badānu, Badāni, Fadana, Phaddan, Tall Feddān, Yukarı Telfidan, Yukarıbeğdeş, Aşağı Telfidan, Aşağıbeğdeş",3,"36.84738","38.9045","URU.ba-da-ni, URU.ba-da-na-a-a","village","Ḫarrānu province, Turkey","Bagg RGTC 7 2/1: 87–88 (Badāni 2), Helsinki Atlas: 7 (Badānu, map 3 B4), <a href=https://pleiades.stoa.org/places/658467>Pleiades: Fadana</a>"
+163,"Badānu","Badānu, Badāni","–","–","–","URU.ba-da-na-a-a","tribe","Sinai Peninsula (?), Arabian Peninsula (?)","Bagg RGTC 7 1: 41 (Badāni 1)"
+166,"Baliḫu","Baliḫu, Balīḫu, Baliḫā, Baliḫum, Baliḫa, Ḫarru-ša-mār-Balīḫi, Tell Abyaḍ, Tell Abid, Tall Abyaḍ, تل ابيض, ʿAin al-ʿArūs, عين العروس",3,"36.6844","38.98529","URU.ba-li-ḫi, URU.ba-li-ḫu","town, city","Syria","Helsinki Atlas: 7 (map 3 B4), Bagg RGTC 7 2/1: 90–91 (Balīḫu 1)"
+164,"Balāṭa","Balāṭa, Balaṭu, Balatu, Balad, Balāṭu, Balāṭāja, Balāṭ, Eski Moṣul, Eski Mosul, اسكي موصل, al-Mauṣil-al-Qadīm, Tall Ğikān, Tall Jikan",3,"36.51292","42.73595","URU.ba-la.MEŠ, URU.ba-la-ṭa, URU.ba-la-ṭa-a-a, URU.ba-laṭ, URU.ba-laṭ-a-a","town, prov. capital","Central Assyria, Province of the crown prince, Iraq","Helsinki Atlas: 7 (map 4 B5), RGTC 7 2/1: 89–90 (Balāṭāja)"
+165,"Balīḫ","Balīḫu, Balissos, Balīḫ, Daisan",1,"–","–","–","river","–","Helsinki Atlas: 7 (map 3 C4)"
+167,"Banai-barqa","Banai-barqa, Banajabarqa, B<sup>e</sup>nê b<sup>e</sup>raq, Bnē Brāq, בְנֵי־בְרַק, H̱orbat Bnē Brāq, חרבת בני ברק, Ibn Ibrāq, Tall Abū Zētūn, Tēl Zētūn, תל זיתון",1,"32.03613","34.82061","URU.ba-na-a-a-bar-qa","town","Isqalūna, Pilistu, Israel","Bagg RGTC 7 1: 42 (Banajabarqa), Helsinki Atlas: 7 (Banai-barqa, map 7 C4)"
+168,"Baqarru","Baqarru, Baqarri, Baqar, Qabrā, Tepe Yaʿqūb, Tall Bqarta, Tell Baqrta, Tappe Yaʿqūb, تبه يعقوب",3,"35.95195","43.90993","URU.ba-qar, URU.ba-qar-ma, URU.ba-qar-ri","town","Assyria, Arzūḫina (province) (?)","Helsinki Atlas: 7 (map 4 D6), Bagg RGTC 7 2/1: 92–93 (Baqarri)"
+169,"Bargâ","Barqum (?)",4,"36.03727524058666","36.96663802100544","–","–","–","–"
+172,"Barzaništa","Barzaništa, Barzanista, Göktepe","–","37.69504","40.38403","URU.bar-za-ni-is-ta, URU.bar-za-ni-iš-ta","town","Izalla","Bagg RGTC 7 2/1: 97–98"
+173,"Barzaništun","Barzaništun","–","–","–","URU.bar-za-ni-iš-tu-un","town","Bīt-Zamāni, Turkey","Bagg RGTC 7 2/1: 98"
+171,"Barūri","Barūri, Baruḫu, Bourira (?), Burēr (?)","–","31.56667","34.65","URU.bar-ú-ri","town","Central Assyria (?), Iraq (?), Ḫazzat (?), Pilistu (?), Israel (?)","RGTC 7 2/1: 97"
+170,"Barḫalza","Barḫalza, Barḫalzu, Barḫalzi",2,"–","–","–","province, prov. capital","–","Helsinki Atlas: 7 (map 4 B5), RGTC 7 2/1: 93–95"
+176,"Batruna","Botrus, Batrun?","–","34.25624622926138","35.65955373869843","–","–","–","–"
+175,"Bašimu","Bašimu, Liyan (?), Būšehr, Sabzabad Bushehr",3,"28.9071","50.8456","–","city","–","Helsinki Atlas: 7 (map 17 C5)"
+181,"Baʾali","Baʾali, Baʾalu, Ḫirbat Balʿama, Khirbet Balama, Khirbet Bel'ameh, Khirbet Bal’ama, Ibleam, יִבְלְעָם, Baʿlabakk, Heliopolis","–","34.00675","36.20437","URU.ba-ʾa-li, URU.ba-aʾ-li","town","Syro-Palestine, Dimašqa (?)","Bagg RGTC 7 1: 39"
+182,"Baʾali-raʾasi","Baʾli-rāʾsi, Baʾali-raʾasi, Baʾali-raʾsi, Baʾil-rāʾsi, Baʿal Rôš, Rešbaʿal, Rās an-Nāqūra, Raʾs an-Nāqūra, ראש הננקרה, Ǧabal al-Karmil, جبل الكرمل, Har ha-Karmel, הר כרמל, Karmēlos",2,"33.09409","35.10378","KUR.ba-ʾa-li-ra-ʾa-si/KUR.ba-ʾa-li-ra-si, KUR.ba-aʾ-li-ra-aʾ-si/KUR.ba-aʾ-li-ra-si","mountain","Mediterranean coast, Phoenicia, Syria","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 40–41 (Baʾali-raʾsi)"
+183,"Baʾil-gazara","Baʾil-gazara, Ġazīr (?), Ghazir (?), (?) غزير","–","34.01823","35.66611","URU.ba-il-ga-za-ra","town","Syro-Palestine","Bagg RGTC 7 1: 41–42"
+184,"Baʾli-Ṣapūna","Cassius, Ğabal al-Aqraʿ",2,"–","–","–","mountain","–","Helsinki Atlas: 7 (map 2 B5)"
+174,"Baṣiru","Baṣiru, Tell Bazi","–","36.42789","38.27684","–","–","–","–"
+185,"Beer-šeba","Beersheva, Beer-ševa, Tell es-Saba'","–","31.24500206386151","34.84073003359802","–","–","–","–"
+186,"Ben Shemen Forest","Assyrian name unknown, Ben Shemen Forest","–","31.93558","34.96537","–","monument","Israel","–"
+187,"Benuḫše","Benuḫše","–","–","–","URU.be-nu-uḫ-še (URU.be?-nu?-uḫ?-še?)","town","Central Assyria (?)","Bagg RGTC 7 2/1: 102"
+191,"Bethlehem","Bethlehem, Betlem, Bethleem, Bet Leḥem, Bait Laḥm, בֵּית לֶחֶם, بيت لحم, Βηθλεέμ","–","31.70306","35.19556","بيت لحم, בֵּית לֶחֶם, Βηθλεέμ","town","Israel, Iaʾūdu","–"
+192,"Bethsaida","Gešur (?), Ṣaydȧn, Bethsaida, Bẹt Ṣẹdȧ, Bait Ṣaidā, بيت صيدا, Beit Tsaida, בית צידה, Ioulias, Iulias, Julias, Ἰουλίας, al-Maṣʿadīya, Al Mus‘adīyah, المسعدية, al-ʿAraǧ, Tell ʿAraj, Tel ʿAraj, El Araj, at-Tall","–","32.9103","35.63066","–","fortified city","Gešur (?)","<a href=https://pleiades.stoa.org/places/678065>Pleiades: Bethsaida</a>, <a href=https://bethsaidaarchaeology.org>Bethsaida Excavations Project</a>, <a href=https://www.elarajexcavations.com/updates>El Araj Excavation Project</a>"
+193,"Beʾrū","Biʾrû, Beʾrû, Beʾrū, Biruta, Biʾrutu, Biʾrūtu, bjrt, 𐤉𐤓𐤕‎𐤁, Berytos, Bērytos, Berytus, Laodikeia, Colonia Iulia Augusta Felix, Beirut, Bairūt, بَيْرُوت",1,"33.89942","35.50818","URU.bi-iʾ-ru-u, 𒌷𒁉𒀪𒊒𒌋, URU.bi-iʾ-ru-ú, 𒌷𒁉𒀪𒊒𒌑, 𐤉𐤓𐤕‎𐤁","city, seaport","Phoenicia, Ṣīdūnu, Lebanon","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 43–44 (Biʾrû), <a href=https://pleiades.stoa.org/places/678060>Pleiades: Beirut</a>"
+194,"Bikni","Bikni, Damāvand (?), كوه دماوند (?), Ququ, کوه قوقو",2,"34.2071","51.031","KUR.bi-ik-ni, KUR.bi-ik-nu","mountain","Mādāja, Iran","Helsinki Atlas: 7 (map 6 D5), Bagg RGTC 7 3/1: 105–106"
+197,"Birgiʾ","Birgiʾ, Barğā, Barja, برجا","–","33.64972","35.44278","URU.bi-ir-gi-iʾ","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 42–43"
+198,"Birtu (2)","Birtu, Bīrtu","–","–","–","URU.ḪAL.ṢU","city","–","RGTC 7 2/1: 105–106 (Birtu 2)."
+199,"Birtu (3)","Birtu, Bīrtu","–","–","–","URU.ḪAL.ṢU","town","–","RGTC 7 2/1: 106 (Birtu (3))."
+200,"Birtu-ša-Adad-rēmanni","Birtu-ša-Adad-rēmanni, Birat-ša-Adad-rēmanni, Fort Adad-rēmanni, Panğvīn (?), بينجوين, پنجوین","–","35.62054","45.94908","URU.bir-tu-ša-<sup>m</sup>10-rém-a-ni, URU.ḪAL.ṢU-<sup>md</sup>IM-rém-a-ni, URU.ḪAL.ṢU-ša<sup>md</sup>10-rém-a-ni, URU.ḪAL.ṢU-<sup>md</sup>IŠKUR-rém-a-ni","town, fortress","Māzamua, Mannea, Iraq","Bagg RGTC 7 3/1: 110"
+201,"Biruatti","Biruatti","–","–","–","KUR.bi-ru-at-ti","mount","–","Parpola Toponyms: 75"
+202,"Bisuru","Bisuru, Baśar, Basalla, Bašar, Bisir, Bešri, Ğabal Bišrī, جبل البشري",1,"35.35449","39.28944","KUR.bi-su-ru, KUR.bé-eš-ri (MA)","mountain","Syria","Helsinki Atlas: 7 (map 9 B1), Bagg RGTC 7 2/1: 107"
+241,"Bitirume","Bitirume, Botrys, Βότρυς, al-Batrūn, Batroûn, البترون","–","34.25528","35.65806","URU.bi-ti-ru-me","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 51, <a href=https://pleiades.stoa.org/places/668214>Pleiades: Botrys</a>"
+242,"Biturra","Biturra, Piturra, Beidul, Bedol, بيدول","–","36.86618","43.2352","URU.BI-it-ur-ra, URU.bi-it-ur-ra, URU.pí-it-ur-ra","town","Central Assyria, Iraq","Bagg RGTC 7 2/1: 121"
+243,"Borsippa","Borsippa, Barsip, Birs Nimrūd, Birs Nimrud, برس نمرود",1,"32.39245","44.3425","bar-sip.KI, BÁR.SIPA, BÁR.SÍPA.KI, bur-sip.KI, DUMU-bar-sip.KI, DUMU-BÁR.SIPA.KI, DUMU.MEŠ.bar-sip.KI, DUMU.MEŠ-BÁR.SIPA.KI, LÚ.BÁR.SIPA.KI.MEŠ, LÚ.BÁR.SIPA.MEŠ, LÚ.DUMU-BÁR.SIPA.KI, LÚ.DUMU.MEŠ-BÁR.SIPA.KI, URU.BÁR.SIPA, URU.BÁR.SIPA.KI","prov. capital","Babylonia, Iraq","Helsinki Atlas: 7 (map 10 D4), Bagg RGTC 7 3/1: 98–100 (Barsip)"
+245,"Bulijanu","Bulijanu, Buliiana, Buliana, Buliyana, Bālāne/Yüceköy (?), Tall Abade (?)","–","37.60477","41.3396","URU.bu-li-ia-na, URU.bu-li-ia-ni","town, pass","Ḫabḫu, Turkey","Bagg RGTC 7 2/1: 125"
+246,"Bumame","Bumame, Tall Mamū, تل مامو","–","35.93126","37.02406","URU.bu-ma-me","town","Ḫamāt, Syria","Bagg RGTC 7 1: 55"
+1063,"Bunais","Bunais, Silsilat Jibāl Azmar, سلسلة جبال ازمر, Jabal Ţāslūjah, جبل طاسلوجة, Kānīrāš-Pass (?), كانى ڕەش, Qandīl Dāġ (?), Silsilat Jibāl Qandīl (?), سلسلة جبال قنديل","–","35.63017","45.47669","KUR.bu-na-is","mountain, pass","Zamua, Iran (?), Iraq (?) ","Bagg RGTC 7 3/1: 161–162, Edmonds (1957), <i>Shar Bazhêr and the Basin of the Qalachuwalan</i>. The Geographical Journal 123/3, 318–328"
+1064,"Bunisa","Bunisa, Bunāsi, Bunisu","–","–","–","URU.bu-na-a-si, KUR.bu-ni-sa-a-a, URU.bu-na-i-sa-a-a, URU.bu-ni-sa-a-a","fortified city, country","Zamua, Iran (?), Iraq (?) ","Bagg RGTC 7 3/1: 162, Edmonds (1957), <i>Shar Bazhêr and the Basin of the Qalachuwalan</i>. The Geographical Journal 123/3, 318–328"
+248,"Buramma","Buramma, Purammu, Burrim","–","–","–","URU.bu-ram-ma","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 126"
+252,"Buruqi","Buruqi, Buruqu","–","–","–","URU.bu-ru-qi","town","Gūzāna (?)","Bagg RGTC 7 1: 128–129 (Buruqi 1)"
+253,"Buruqu","Buruqu, Buruqi","–","–","–","URU.bu-ru-qi, URU.bu-ru-qa-a.a","town","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 129 (Buruqi 2)"
+254,"Burušḫanda","Burušhanda, Açemhöyük (?)",4,"38.41158900602762","33.83548385023444","–","–","–","–"
+1065,"Bustus","Bustus, Bustis, Buštus, Kangāvar (?), کنگاور","–","34.50164","47.96017","KUR.bu-us-ti-is, KUR.bu-us-tu-us, KUR.bu-uš-tu-us, URU.bu-us-tu-us","district","Mādāja, Iran","Bagg RGTC 7 3/1: 163–164"
+258,"Buto","Buto, Tell el-Fara'in","–","31.19626755366928","30.7426378739966","–","–","–","–"
+257,"Butāmu","Butāmu, Bdama (?), بداما (?), Beitān (?), Bādāmā (?), Butaynah (?), بتينة (?), Bitammā(?)","–","36.46136","36.83682","URU.bu-ta-a-mu","town","Pattinu, Syria","Bagg RGTC 7 1: 56, Astour (1963), JNES 22, Place-Names from the Kingdom of Alalaḫ...: 224, map"
+256,"Bušâ","Bušâ","–","–","–","URU.bu-šá-a","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 130"
+255,"Buṣruna","Buṣruna, Bosra, Buṣra'","–","32.5198850290294","36.48140619600834","–","–","–","–"
+159,"Bābili","Bābil, Babylon",1,"32.54036","44.42633","–","capital, city","Babylonia","Helsinki Atlas: 7 (map 10 D4)"
+1059,"Bāra","Bāra, Baragird, Girdabor, Girdābur, جردبور","–","35.70139","45.19889","URU.ba-a-ra, URU.ba-ra-a-a","town","Zamua, Iraq","Bagg RGTC 7 3/1: 95–96"
+177,"Bāza","Bāza","–","–","–","KUR.ba-a-za","territory","Central Assyria, Ḫabḫu","Bagg RGTC 7 2/1: 99"
+178,"Bāzi","Bāzi, Bāzu","–","–","–","KUR.ba-zi","territory","North Mesopotamia","Bagg RGTC 7 2/1: 99 (Bāzi 1)"
+179,"Bāzi 2","Bazi, Bāzi, Bāzu","–","–","–","URU.ba-zi","town","Central Assyria (?)","Bagg RGTC 7 2/1: 99 (Bāzi 2 (?))"
+180,"Bāzu","Bāzu, Bāṣi, Bazza, Baz, Bīt-Bāzi, Bāṣ, Baṣ, Bezu, Bāsu, Strait of Hormuz, Azraq Oasis","–","25.99163","49.49675","KUR.ba-a-zi, KUR.ba-a-zu, KUR.ba-az-zi, URU.ba-a-su, URU.ba-a-ṣi, URU.ba-zi, LÚ.be-zu","territory, land, state","Arabian Peninsula","Bagg RGTC 7 2/1: 100–101"
+188,"Bēt-el","Bet-el, Betel, Beitin?","–","31.92623433858433","35.23912780857168","–","–","–","–"
+189,"Bēt-Šean","Bet Shean, Bit-Sani, Scythopolis, Tell el-Hosn","–","32.50419181537359","35.50300346740403","–","–","–","–"
+190,"Bēt-Šemeš","Bet-Šemeš, Bet-Shemesh, Tel Bet-Shemesh","–","31.75189849886516","34.97455573812866","–","–","–","–"
+195,"Bīrāti (city)","Bīrāti, Birtu, Ḫararāti, Ḥadīṯa",3,"34.178","42.376","–","city","–","Helsinki Atlas: 7 (map 10 B2)"
+196,"Bīrāti (fortress)","Bīrāti, Birthôn",3,"37.79383","40.97216","–","fortress","–","Helsinki Atlas: 7 (map 3 D3)"
+203,"Bīt-Abdadāni","Bīt-Abdadāni, Abdadāna",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 D1)"
+204,"Bīt-Abu-ilāʾī","Bīt-Abu-ilāʾī, Āl-Abu-ilāʾī, Bīt-Abī-Ilāja","–","–","–","–","city","east Ǧazīra","RGTC 7 2/1: 108-109"
+206,"Bīt-Adad-erība","Bīt-Adad-erība, Bit-Adad-eriba, Tell Baqaq 1-2, Tell Baqāq 2, Tall Baqqaq 2, Tall Buqāq 2",1,"36.68995","42.93595","URU.É-10-SU, URU.É-<sup>m</sup>10-SU","town","Central Assyria, Tamnūna province, Iraq","Helsinki Atlas: 7 (map 4 B5), Bagg RGTC 7 2/1: 109–110"
+205,"Bīt-Adad-ēreš","Bīt-Adad-ēreš, Bēt-Adad-ēreš","–","–","–","URU.É-m10-KAM-eš","town","Central Assyria (?)","Bagg RGTC 7 2/1: 109"
+207,"Bīt-Adini","Bêt-eden, bytʿdn",3,"–","–","–","territory","–","Helsinki Atlas: 7 (map 3 B4)"
+208,"Bīt-Agūsi","Bīt-Agūsi, Arpadda",2,"–","–","–","country","–","Helsinki Atlas: 7 (map 2 D4)"
+209,"Bīt-Ammān","Bīt-Ammān, Ammon, ʿAmmān",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 7 D5)"
+210,"Bīt-Amukāni","Bīt-Amukāni",2,"–","–","–","territory","–","Helsinki Atlas: 7"
+211,"Bīt-Bagāia","Bīt-Bagāia, Kār-Issār, Bīt-Gabāia, Bīt-Gabia","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110, Parpola Toponyms: 78"
+213,"Bīt-Barrūa","Bīt-Barrūa, Borūğidr",4,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 D3)"
+212,"Bīt-Baḫiāni","Bīt-Baḫiāni",2,"–","–","–","country","–","Helsinki Atlas: 7 (map 3 C4)"
+214,"Bīt-Bunakki","Bīt-Bunakki, Hinemini",4,"33.22933","47.21133","–","city","–","Helsinki Atlas: 7 (map 11 C3)"
+215,"Bīt-Daganna","Bīt-Daganna, Bīt-Dagan, Bīt-Dagān, Bēt Daǧan, Bejt Dagan, Bēt Dağan, בית דגן, Beit Dagon, Beth-dagon, בֵּית־דָּגוֹן, Beit Dajan","–","32.00191","34.82977","URU.É-da-gan, URU.É-da-gan-na, בֵּית־דָּגוֹן","town","Pilistu, Isqalūna, Palestine, Israel","Bagg RGTC 7 1: 48, Parpola Toponyms: 80 (Bīt-Dagān)"
+216,"Bīt-Dakkūri","Bīt-Dakkūri",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 10 D4)"
+217,"Bīt-Dērāja","Bīt-Dērāja, Bīt-Dērāya, Bīt-Dērāia, Tamertu-ša-Bīt-Dērāja, Bādarājā, Badra (?), Badrah (?), بدرة (?)","–","33.11508","45.93344","URU.É-de-ra-a-a, É-<sup>m</sup>de-ra-a-a","city","Dēru province (?), Iraq (?), northern Levant (?)","Bagg RGTC 7 2/1: 112"
+218,"Bīt-Gabbāri","Bīt-Gabbāri, Samʾalla, Samʾal",2,"–","–","–","territory, state, province","Syria","Helsinki Atlas: 7 (map 2 C4)"
+219,"Bīt-Gisimeja","Bīt-Gisimeja, Ḫān al-Qāsimīya (?), مخيم القاسمية (?), القاسمية (?), Biqsmayyā (?), Boqsmaïya (?), بقسميا (?), Bišmizzīn (?), Bechmizzîne (?), بشمزين (?)","–","34.25194","35.765","URU.É-gi-si-me-ia, URU.É-mgi-si-me-ia","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 49"
+225,"Bīt-Iakīn","Bīt-Iakīn, Bīt-Yakīn",2,"–","–","–","territory","Babylonia, Māt-tâmti, Iraq","Helsinki Atlas: 7 (map 16 C2)"
+226,"Bīt-Imbî","Bīt-Imbi, Bīt-Imbīja","–","–","–","URU.É-<sup>m</sup>im-bi-i, URU.É-<sup>md</sup>im-bi-i, URU.É-im-bi-i, URU.É-im-bi-ia, URU.É-im-bi-ía, É-<sup>m</sup>im-bi-ia, URU.É-<sup>m</sup>im-bi-ia, URU.É-<sup>m</sup>im-bi-ía","fortress, city","Elam, Arāši","Bagg RGTC 7 3/1: 133 (Bīt-Imbīja), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+1060,"Bīt-Ištar","Bīt-Ištar, Bīt-Issār, Ravānsar, Rawānsīr, روانسر","–","34.71208","46.65129","KUR.É-<sup>d</sup>15, URU.É-15, URU.É-<sup>d</sup>15, URU.É-<sup>d</sup>INNIN","town","Parsua (?), Mādāja (?), Iran ","Bagg RGTC 7 3/1: 134"
+227,"Bīt-Kapsi","Bīt-Kapsi, Bīt-Kabsi, Bījār (?), Bīğār (?), بيجار (?)",2,"–","–","DUMU-<sup>m</sup>kap-si, URU.É-kap-si, URU.kap-si, KUR.É-kap-si-a-a","territory","Iran","Helsinki Atlas: 7 (map 11 C1), Bagg RGTC 7 3/1: 137–138"
+1061,"Bīt-Kubatti","Bīt-Kubatti, Bīt-Kubati, Kird Qariyat Čiarza (?), Tepe Qebristan (?)","–","35.09844","45.54416","É-ku-bat, É-<sup>m</sup>ku-bat-ti","fortified city","Māt-kaššî, Iraq","Bagg RGTC 7 3/1: 140"
+228,"Bīt-Purūtaš","Bīt-Purūtaš",3,"–","–","–","country","–","Helsinki Atlas: 7 (map 2 B2)"
+229,"Bīt-Ramannu","Bīt-Ramannu","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 2/1: 117"
+1062,"Bīt-Ramatua","Bīt-Ramatua, Nārtu-šaplītu, Rūdḫāne-ye Malāyer (?), Rūd-e Gāmāsīāb (?), رودخانه گاماسیاب (?)","–","–","–","É-<sup>m</sup>ra-ma-tu-a, É-<sup>m</sup>ra-ma-ti-ia","territory","Mādāja, Iran","Bagg RGTC 7 3/1: 144–154"
+230,"Bīt-Ruḫūbu","Bīt-Ramannu, Beth Rehov",1,"–","–","–","country","–","Helsinki Atlas: 7 (map 8 A3)"
+231,"Bīt-Sagbat","Bīt-Sagbat, Ecbatana, Ekbatana,Hamadan, Ḫamadān, Teppe-ye Hekmatana",3,"34.80700819452446","48.51727288555129","–","city","–","Helsinki Atlas: 7 (map 11 D2)"
+836,"Bīt-Sangibūti","Bīt-Sangibūti, Sangibūtu, Singibūtu, Šingibutu, Bīt-Singibūti, Singibūti, Sangibūti, Šāhābād Plain, Eslāmābād-e Gharb, اسلام آباد غرب, Šāhābād-e Ġarb, شاه آباد غرب",2,"34.1089","46.52988","KUR.É-sa-an-gi-bu-te, KUR.É-sa-an-gi-bu-ti, KUR.É-si-in-gi-bu-ti, KUR.sa-an-gi-bu-ti, KUR.si-in-gi-bu-ti, KUR.si-in-gi-bu-te, KUR.si-in-gi-bu-tú, KUR.sin-gi-bu-te, KUR.šin-gi-bu-tú, URU.É-sa-an-gi-bu-ti, KUR.sin-gi-bu-ta-a-a","territory","Mādāja, Ḫarḫār province, Iran","Zimansky (1990), <i>Urartian Geography and Sargon's Eighth Campaign</i>, JANES 49/1: 15, Parpola Toponyms: 88, 303, Bagg RGTC 7 3/1: 148–149 (Bīt-Sangibūti 1), Helsinki Atlas: 16, 30 (Sangibūtu (2), map 11 B2)"
+236,"Bīt-Tābti","Bīt-Tābti, Dašt-e Kavīr",2,"–","–","–","region","–","Helsinki Atlas: 7"
+237,"Bīt-Zamāni","Bīt-Zamāni, Āmidu, Amēdu, Amidu, Amidi, Amida, Amedu, Āmid, Diyarbakir, Diyarbakır",1,"–","–","–","province","Turkey","Helsinki Atlas: 8 (map 3 C2)"
+240,"Bīt-Zualza","Bīt-Zualza, Bīt-Zualzaš",3,"–","–","KUR.É-zu-al-za, KUR.É-zu-al-za-áš","territory","Iran, Bīt-Sangibūti (?)","Bagg RGTC 7 3/1: 157–158, Helsinki Atlas: 8 (map 11 C2)"
+239,"Bīt-Zīzê","Bīt-Zīzê","–","–","–","–","town","Gūzāna","Bagg RGTC 7 2/1: 123/–124, PNA 2/2: 753"
+238,"Bīt-zitti","Bīt-zitti, Bīt-Zitti, Zaitā, Zeitā, زيتا","–","33.5025","35.40028","URU.É-zi-it-ti, URU.É-zi-it-tú","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 54–55"
+234,"Bīt-Šabāia","Bīt-Šabāia",3,"34.46333","41.5045","–","town","–","Helsinki Atlas: 7 (map 9 D2)"
+235,"Bīt-Šilāni","Bīt-Šilāni, Bīt-Silāni, Šilāni","–","–","–","KUR.É-msi-la-a-ni, KUR.É-ši-la-a-ni, KUR.É-<sup>m</sup>ši-la-a-ni, <sup>m</sup>ši-la-a-ni, KUR.É-<sup>m</sup>šil-la-na","country, territory, tribe","Southern Babylonia","–"
+233,"Bīt-ša-muḫḫi-āli","Bīt-ša-muḫḫi-āli, Bītu-ša-muḫḫi-āli","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/1: 119"
+220,"Bīt-Ḫalupê","Bīt-Ḫalupê",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 9 C1)"
+221,"Bīt-Ḫamban","Bīt-Ḫamban, Cambadene",2,"–","–","–","territory","–","Helsinki Atlas: 7 (map 11 C2)"
+222,"Bīt-Ḫazaʾil","Bīt-Ḫazaʾil, Dimašqa, Damascus",1,"–","–","–","country","–","Helsinki Atlas: 7 (map 8 B3)"
+223,"Bīt-Ḫumrî","Bīt-Ḫumrî, Israel, byt ʿmry, Bīt-Ḫumria",1,"–","–","–","country","Israel","Helsinki Atlas: 7 (map 7 C4)"
+224,"Bīt-Ḫurāpî","Bīt-Ḫurāpî, Bīt-Ḫurābî","–","–","–","URU.É—ḫu-ra-pi-i, URU.É—ḫu-ra-bi-i","town","Central Assyria, Nineveh province (?)","Bagg RGTC 7 2/1: 115"
+232,"Bīt-Ṣupūri","Bīt-Ṣupūri, Bīt-Ṣupuri, bt ṣpr, 𐤁𐤕 𐤑𐤐𐤓‎, Ornithopolis, Ormithōnpolis, Ornithon Polis, Ὀρνίθων πόλις, Tell Burāq (?), Tall al-Burāq (?), ʿAdlūn (?), عدلون (?), ʿAin Ṣaufar (?), عين صوفر (?), Ṣfārīya/Ṣfaray/Bṣfaray (?), صفاراي (?), Mazraʿat Bṣaffūr (?), مزرعة بصفّور (?)",4,"33.55528","35.49389","URU.É-ṣu-pu-ri, URU.É-<sup>m</sup>ṣu-pu-ri, bt ṣpr, 𐤁𐤕 𐤑𐤐𐤓‎","town","Phoenicia, Ṣīdūnu, Lebanon","Helsinki Atlas: 7 (map 8 A3), Bagg RGTC 7 1: 53–54, <a href=https://pleiades.stoa.org/places/678000>Pleiades: ‘Ad Nonum’/Ornithon Polis?</a>"
+244,"Būia","Būia, Cham Kizil",2,"–","–","–","river","–","Helsinki Atlas: 7 (map 11 B1)"
+247,"Būr-marʾīna","Būr-marʾīna, Burmarʾina, Burmarina, brmrn, 𐡁𐡓𐡌𐡓𐡍, Marinā, Marinâ ša Bīt-Adini, Marīna, Marīna ša šadê, Tell Šiʾūḫ Fawqāni, Tell esh-Shiyukh Fawqani, Tell Shiukh Fawqani, Tall Šijūḫ Fawqānī, تل الشيوخ فوقاني",1,"36.78761","38.03595","URU.bur-mar-ʾi-na, URU.ma-ri-na-a šá É-ma-di-ni, brmrn, 𐡁𐡓𐡌𐡓𐡍","town","Bīt-Adini, Syria","Helsinki Atlas: 8 (map 3 B4)"
+251,"Būru-Wēr","Būru-Wēr (?), Buresa (?)","–","–","–","URU.bu-ru-e-er (?), URU.bu-ru-e-sa (?)","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 129"
+249,"Būrāte","Būrāte, Būrāti, Burāti, Burate, Burati","–","–","–","URU.bu-ra-a-te","town","Ḫābūr triangle","Bagg RGTC 7 1: 127 (Būrāte 1), Zadok 1995: 237, 3.6.4.5"
+250,"Būrāti","Būrāte, Būrāti, Burāti, Burate, Burati","–","–","–","URU.bu-ra-a-ti, URU.bu-ra-a-te, URU.ḪAL.ṢU","town","Elam","Bagg RGTC 7 1: 127 (Būrāte 2), Parpola Toponyms: 95 (Burāti)"
+259,"Daban","Daban, Rūdḫāne-ye Gangir",3,"–","–","–","river","–","Helsinki Atlas: 8 (map 11 A3)"
+261,"Dadiualla","Dadiualla, Dadi-ualla, Tall al-Ḥusainiyeh, Husaynīyah, حسينية","–","36.68203","43.24538","URU.da-di-ú-al-la","town","Central Assyria, Talmūsa province","Bagg RGTC 7 2/1: 131"
+262,"Daduni","Daduni","–","–","–","KUR.da-du-ni","mountain (?), territory (?)","Zabban","Bagg RGTC 7 2/1: 131"
+1067,"Daiaeni","Daiaeni, Dajaeni, Daiēnu, Daiēni, Dajēni, Diaueḫe, Taochoi, Tauchoi, Τάοχοι","–","40.5","41.5","KUR.da-ia-a-ni, KUR.da-ia-e-ni, KUR.da-ia-ni, URU.da-ia-e-ni, KUR.da-ie-ni","territory","Naʾiri, Urarṭu, Turkey","Bagg RGTC 7 3/1: 167–168, <a href=https://pleiades.stoa.org/places/857343 >Pleiades: Taochoi</a>, <a href=https://books.openedition.org/cdf/4439>MTT I/2</a>"
+263,"Daiašeti","Daiašeti, Dajašeti, Daiašetu, Sitha (?), ruins of al-Aswad (?)","–","33.51151","42.80401","URU.da-ia-še-ti","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 1: 132, <a href=https://pleiades.stoa.org/places/894008>Pleiades: Idu/Diacira/Hit</a>"
+264,"Dalaimme","Dalaimme, Dalhūn, Dalhoun, دلهون","–","33.62667","35.4675","URU.da-la-im-me","town","Phoenicia, Ṣīdūnu, Lebanon","Bagg RGTC 7 1: 57–58"
+265,"Damdammusa","Damdammusa, Damdammusu, Damdammusi, Dandammusu, Kaziktepe (?), Pornak (?), Sardebar (?), Sardeoua (?), Tauşantepe (?), Aktepe (?)",4,"37.72463","40.56995","URU.da-am-da-mu-sa, URU.dam<sup>am</sup>-dam-mu-si, URU.dam<sup>am</sup>-dam-mu-su, URU.dam-dam-mu-sa","city","Nirbu, Bīt-Zamāni, Turkey","Bagg RGTC 7 2/1: 133–134, Bagg RGTC 7 2/2: 740 (Aktepe, Dandammusu), 748 (Pornak, Damdammusu, Sinabu), <a href=https://pleiades.stoa.org/places/874681>Pleiades: Sardeoua/‘Sardebar’</a>"
+266,"Dan","Tell Qadi","–","33.2483851722403","35.65224970650611","–","–","–","–"
+268,"Danabu","Danab, Dababu, Din<sup>e</sup>hābâ, Dinhabah, דִּנְהָבָה, Danaba, Danova (?), Ḏunaiba (?), Ṣaidnāyā (?), صيدنايا (?), Ḏunaiba (?), دنيبة (?), Tall Ābil, Abila Dekapoleos/Seleukeia, Quwailibī, Ḏunaiba, ذنيبّة",3,"32.68241","35.8689","KUR.da-na-bi, URU.da-an-a-bi, URU.da-na-bi, URU.da-na-bu","town, fortified city","Dimašqa, Syria (?), Jordan (?)","Helsinki Atlas: 8 (map 8 A3), Bagg RGTC 7 1: 59–60, <a href=https://pleiades.stoa.org/places/668236>Pleiades: ‘Danova’</a>, <a href=https://pleiades.stoa.org/places/677992>Pleiades: Abila Dekapoleos/Seleukeia</a>"
+1066,"Daqalu","Daqalu, Daqala, Dagalā, Til-Daqalu, Diqlâ, דִּקְלָה, Beth Deqla, Bayt-Dagalâ","–","31.77163","45.20362","URU.da-qa-la, URU.da-qa-lu","fortified city","Bīt-Amukkāni, Babylonia, Iraq","Bagg RGTC 7 3/1: 172, Zadok (1985), <i>Zur Geographie Babyloniens während des sargonidischen, chaldäischen, achämenidischen und hellenistischen Zeitalters</i>, Die Welt des Orients 16, p. 60"
+270,"Dawali","Assyrian name unknown, Dawali, Dawālī, Ad-Dawālī, Ad Dawālī","–","34.45357","41.99118","–","–","Sūḫu, Iraq","RIMB 2: 309"
+271,"Dedan","Dedan (?)",4,"26.66642322233715","37.91158927555229","–","–","–","–"
+273,"Diati","Diati","–","–","–","–","town","Assyria","RGTC 7 2/1: 140–141"
+274,"Diban","Diban","–","31.50182","35.77646","–","–","–","–"
+275,"Dibar (mountain)","Dibar, Ğabal ʿAbd al-ʿAzīz",2,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 3 D4)"
+276,"Dibirāti","Dibirāti","–","–","–","–","town","Arrapḫa province (?)","RGTC 7 2/1: 141"
+277,"Diglat","Diglat, Idiglat, Tigris, Diğla",1,"–","–","–","river","–","Helsinki Atlas: 8 (map 10 C2)"
+278,"Dilbat","Dilbat, Tell Dulaim, Tell Dailam, Deilam",1,"32.29571615001174","44.46622078649037","–","city","–","Helsinki Atlas: 8 (map 10 D4)"
+280,"Dimašqa","Dimašqa, Ša-imērīšu, Aram, Damascus, Dimašq",1,"33.51012","36.30921","–","prov. capital","Syria","Helsinki Atlas: 8 (map 8 B3)"
+281,"Dinanu","Dinanu, dynn, 𐡃𐡉𐡍𐡍, Tall Abū Danna, Tell Abu Danne, Abū Dānā, أبو دانا, Abū Z̧annah, أبو ظنة","–","36.1843","37.45152","URU.di-na-nu, 𐡃𐡉𐡍𐡍","city","Bīt-Agūsi","Bagg RGTC 7 1: 62"
+282,"Diniktum","Diniktum (?)",4,"32.8297802583831","45.34726149800385","–","–","–","–"
+283,"Diqūqīna","Diqūqīna, Diqukīna, Diqukina, Ṭāwūq (?), Daqūq (?), Daqūqā (?), داقوق","–","35.13923","44.44907","URU.di-qu-qi-na, KUR.di-qu-ki-na, URU.di-qu-qi-na-a-a","town","Laḫīru (1) (?), Iraq","Bagg, RGTC 7 2/1: 143–144, "
+284,"Dohuk","Dohuk, Dohok","–","36.86249","42.91942","–","monument","Iraq","–"
+285,"Dummutu","Dummutu, Dummete, Dummetu, Ḥalabīya, حلبية, Tall Ḏimme (?)",4,"35.68683","39.82767","URU.du-um-me-te, URU.du-um-mu-tú","town","Bīt-Adini","Helsinki Atlas: 8 (map 3 C5), Bagg RGTC 7 1: 62–63, <a href=https://pleiades.stoa.org/places/894185>Pleiades: Zenobia</a>"
+287,"Dunnu-ša-Uzibi","Dunnu-ša-Uzibi, Giricano","–","37.81718029603009","40.75010515326059","–","–","–","–"
+286,"Dunnāte","Dunnāte","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/1: 146"
+313,"Duʾūa","Duʾūa, Duʾa, Duʾua","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/1: 164"
+260,"Dābigu","Dābigu, Dabigu, Dābiq, Adabiq, Adabig, Dabekon, Dabigu, Dabekov, Tell Dabiq, Tall Dābiq, تل دابق",1,"36.53976","37.26849","URU.da-bi-gi, URU.da-bi-gu","town, fortified city","Bīt-Adini, Syria","Helsinki Atlas: 8 (map 2 D4), Bagg RGTC 7 1: 57 (Dabigu), <a href=https://pleiades.stoa.org/places/727743778>Pleiades: Dabigu</a>"
+267,"Dāna","Dāna, ad-Dāna, ad-Dānā, الدانا",2,"36.21254","36.76998","UU.da-a-na","town","Syria, Unqi (?), Ḫamāt (?)","Helsinki Atlas: 8 (map 2 C4), Bagg RGTC 7 1: 58"
+269,"Dāri-abu (place)","Dāri-abu","–","–","–","URU.dà-ri-AD","town","Central Assyria (?)","Bagg RGTC 7 2/1: 136"
+272,"Dēru","Dēru, Dēr, Der, Dîr, Bīt-Dērāja (?), Bīt-Dērāia (?), Tell ʿAgar (near Badra), Tell Aqar, Tall al-ʿAqar, بتل عقار, Badra, بدرة",1,"33.12467","45.93132","BÀD.KI, BÀD.AN.KI, de-e-ri, de-ri, KUR.de-e-ri, URU.BÀD, URU.BÀD.AN.KI, URU.de-e-ri, URU.de-eʾ-ri, URU.de-ri, URU.de-ru","prov. capital, city, province","Iraq, Dēru province","Helsinki Atlas: 8 (map 11 A3), Bagg RGTC 7 2/1: 138–140, <a href=https://pleiades.stoa.org/places/903013>Pleiades: Deru/Beth Daraya/Badra</a>"
+288,"Dūr-Abīḫāra","Dūr-Abīḫāra, Šaiḫ Yaʿqūb al-Yūsuf",4,"32.75","46.25","–","town","–","Helsinki Atlas: 8 (map 11 B4)"
+289,"Dūr-Aššur","Dūr-Aššur, Dūr-Aššūr, Dur-Aššur, Atlila, Yasim Tepe (?), Tepe Yāsīn (?), Yasin Teppe (?), Bakr Āwā (?), Bakr Awa (?), قرية بكراوه, بکراوه, بەکراوە",4,"35.2216","45.9403","URU.at-li-la, URU.BÀD-aš-šur","prov. capital","Zamua, Iraq, Kurdistan","Bagg RGTC 7 3/1: 74–75 (Atlila), 186 (Dūr-Aššūr 2), Helsinki Atlas: 8 (map 11 A1)"
+291,"Dūr-Aššur-ketti-lēṣir","Dūr-Aššūr-ketti-lēṣir, Dur-Aššur-ketti-lešer, Tell Bdēri, Tell Bderi",1,"36.38745469204624","40.8138848265138","–","town","–","Helsinki Atlas: 8 (map 3 D4)"
+290,"Dūr-Aššūr","Dūr-Aššūr, Dūr-Aššur","–","–","–","URU.BÀD-aš-šur","town","Iraq, east Ǧazīra","Bagg RGTC 7 2/1: 148 (Dūr-Aššur 1)"
+293,"Dūr-Balāṭi","Dūr-Balāṭi, Dūr-balāṭi",4,"33.25","43.83333","–","town","–","Helsinki Atlas: 8 (map 10 C3)"
+294,"Dūr-Balīḫāia","Dūr-Balīḫāia",4,"32.33333","45.56666","–","city","–","Helsinki Atlas: 8 (map 11 A4)"
+296,"Dūr-Bēl-ilāʾī","Dūr-Bēl-ilāʾī, Dūr-Bēl-ilāja","–","–","–","URU.BÀD-EN-DINGIR-a-a, URU.BÀD-<sup>m</sup>EN-DINGIR-a-a","town","Laḫīru (?)","Bagg RGTC 7 2/1: 150"
+295,"Dūr-Bēl-Ḫarrān-bēlī-uṣur","Dūr-Bēl-Ḫarrān-bēlī-uṣur, Tell ʿAbṭa",1,"35.9095","42.55683","–","town","–","Helsinki Atlas: 8 (map 4 B6)"
+297,"Dūr-Iakīn","Dūr-Iakīn, Aginis, Ampē",4,"31.5","47.25","–","city","–","Helsinki Atlas: 8 (map 16 C2)"
+298,"Dūr-Illil","Dūr-Illil, Dūr-Enlil","–","–","–","–","fortress","Assyria, border with Mannea","–"
+299,"Dūr-Katlimmu","Dūr-Katlimmu, Dūr-katlimmu, Dur-Katlimmu, Dūr-duklimmu, Dūr-aduklimmu, Magdala, Tell Šēḫ Ḥamad, Tell Sheikh Hamad, Dur-Katlimmu",1,"35.64538","40.74455","URU.BÀD-kat-lim-mu, URU.BÀD-a-du-ku-1-lim, URU.BÀD-a-duk-1-lim, URU.BÀD-duk-1-lim, URU.BÀD-kat-li-me","capital, city","Lāqê","Helsinki Atlas: 8 (map 9 C1), Bagg RGTC 7 1: 152–153"
+300,"Dūr-Kurigalzu","Dūr-Kurigalzu, ʿAqarqūf, Aqar Quf",1,"33.35466","44.2008","–","city","–","Helsinki Atlas: 8 (map 10 D3)"
+301,"Dūr-Ladīni","Tell Ḫālid",3,"32.33333","44.66666","–","city","–","Helsinki Atlas: 8 (map 10 D4)"
+302,"Dūr-Nanāia","Dūr-Nanāia, Dūr-Nanâ, Dūr-Nanāja, Beonan, Bethonan","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/1: 154–155"
+303,"Dūr-Papsukkal","Dūr-Papsukkal, Mandalī",4,"33.74939","45.5538","–","city","–","Helsinki Atlas: 8 (map 11 A3)"
+304,"Dūr-Samsuiluna","Dur-Samsuiluna, Khafaja B","–","33.35091903696783","44.55058886950584","–","–","–","–"
+305,"Dūr-Sîn-aḫḫē-erība","Dūr-Sîn-aḫḫē-erība, Dūr-Sîn-aḫḫē-erība eššu, Aliḫu","–","–","–","URU.BÀD-<sup>m</sup>30-PAB.MEŠ-SU GIBIL, URU.a-li-ḫu, URU.a-li-ḫi","city","Assyria","Radner (2006), RlA 11: 64"
+310,"Dūr-Undāsi","Dūr-Undāsi, Dur-Untaš, Dūr-Untaš, Chogha Zanbil, Côġa Zanbīl",1,"32.00848520889885","48.52139171893702","–","city","–","Helsinki Atlas: 8 (map 17 A2)"
+292,"Dūr-atānāte","Dūr-atānāte, Dūr-Atānāte, Tawakkal",4,"35.70833","44.87683","–","town","–","Helsinki Atlas: 8 (map 10 D1), Bagg RGTC 7 2/1: 149."
+309,"Dūr-tālitte","Dūr-tālitte, Dūr-Talīti, Dūr-tāliti",3,"35.52667","44.8395","–","town","Central Assyria, Arzūḫina province","Helsinki Atlas: 8 (Dūr-Taliti, map 10 D1), RGTC 7 2/1: 162–163, RGTC 7 2/2: 420"
+306,"Dūr-Šamšī-Adad","Dur-Šamši-Adad, Qal'at Halwanji (?)",4,"36.64406619565289","37.90457984690173","–","–","–","–"
+308,"Dūr-Šarrukku","Dūr-Šarrukku",3,"33.25","44.58333","–","prov. capital","–","Helsinki Atlas: 8 (map 10 D3)"
+307,"Dūr-Šarrukīn","Dūr-Šarrukīn, Dur-Šarrukin, Dur-Šarruken, Khorsabad, Ḫorsābād, Khursabad, خورسباط, دور شروكين",1,"36.50365","43.23367","BÀD-LUGAL-GI.NA, BÀD-LUGAL-GI.NA.KI, BÀD-MAN-GIN, KUR.BÀD-MAN-GIN, URU.BÀD-LUGAL-GI, URU.BÀD-LUGAL-i-ku, URU.BÀD-LUGAL-ú-kin, URU.BÀD-MAN-GI.NA, URU.BÀD-MAN-GIN, URU.BÀD-mLUGAL-GI.NA, URU.BÀD-mLUGAL-GIN, URU.BÀD-mMAN-GI.NA, URU.BÀD-mMAN-GIN, URU.BÀD-mMAN-GIN.NA","capital, city","Assyria","Helsinki Atlas: 8 (map 4 C5)"
+311,"Dūru","Dūru, Anaz",1,"37.14","39.027","–","town","–","Helsinki Atlas: 8 (map 3 C3)"
+312,"Dūʾru","Dūʾru, Duʾru, Dor, Tel Dor, Dôr, Dora, Khirbet el-Burj",1,"32.61645","34.91612","–","prov. capital","–","Helsinki Atlas: 8 (map 7 C4), <a href=https://sketchfab.com/3d-models/tel-dor-biblical-port-israel-223035f60f1a4787b49a0fe479f5692f>3D model</a>"
+315,"Eber nāri","Eber nāri, Aber Nahara",1,"–","–","–","region","–","Helsinki Atlas: 8 (map 2 C5)"
+314,"Ebeḫ","Ğabal Ḥamrīn",2,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 10 C2)"
+316,"Ebla","Ebla, Tell Mardikh","–","35.79888167626015","36.79830790607152","–","–","–","–"
+317,"Ebʾala","Ebʾala, Ebla, Ibla, Ebʾal",3,"35.16666","44.16666","–","town","–","Helsinki Atlas: 8 (map 10 D1)"
+318,"Edimgalkalama","Edimgalkalama, House, Great Bond of the Land, bīt-Ištarān","–","33.10945","45.94789","é-dim-gal-kalam-ma, É.DIM.GAL.KALAM.MA, É-AN.GAL","temple","Dēru, Dēru province, Iraq","George 1993, House Most High: 76, <a href=https://pleiades.stoa.org/places/667048536>Pleiades: Edimgalkalama</a>"
+319,"Ediʾil","ldalion, Dali",1,"35.01654738846563","33.42360094234276","–","city","–","Helsinki Atlas: 8 (map 7 B1)"
+320,"Edurḫenunna","Edurḫenunna, Adad Temple, House, Abode of Plenty","–","–","–","É.DÚR.ḪÉ.NUN.NA","temple","Assyria, Aššur, Kurbail","George 1993, House Most High: 80–81"
+323,"Ekal māšarti of Kalḫu","ekal māšarti Kalḫa, Review Palace of Calah, ekal māšarti of Kalḫu, Fort Shalmaneser",1,"36.09408","43.34666","–","palace, armory, arsenal, review palace","Assyria, Kalḫu","Helsinki Atlas: 8 (map 4 C5)"
+324,"Ekal māšarti of Nineveh","Review Palace of Nineveh, Tell Nebi Yunus","–","36.3480377418","43.1609489586","–","review palace, fortress, palace","Nineveh province","–"
+325,"Ekallāti","Ekallāti, Ekallāte, Tulūl Haikal",3,"35.56583","43.253","–","town","–","Helsinki Atlas: 8 (map 10 C1)"
+326,"Ekalte","Ekalte, Tell Munbaqa","–","36.22053470854134","38.13183949295749","–","–","–","–"
+327,"El-Ghâb","el-Ghab, el-Ghâb, al-Ghab","–","35.587","36.356","–","monument","Syria","<a href=https://pleiades.stoa.org/places/413309735>Pleiades: Al-Ghab</a>"
+328,"Elamtu","Elam, Elamtu",1,"–","–","–","country, territory","–","Helsinki Atlas: 8 (map 17 A1)"
+329,"Elephantine","Elephantine, Geziret Aswan","–","24.08494","32.88581","–",",island","Egypt","<a href=https://www.dainst.org/en/projekt/-/project-display/25953>Elephantine Reports Online</a>"
+330,"Ellipi","Ellipi",1,"–","–","–","country","–","Helsinki Atlas: 8 (map 11 B3)"
+332,"Ellitarbi","Ellitarbi, el-Atārib, Litarba, Tērib",1,"36.129","36.85766","–","town","–","Helsinki Atlas: 8 (map 2 C4)"
+331,"Ellišu","Ellišu, Ullassa, Tripoli, Tripolis",3,"34.45218677501611","35.81494409315681","–","town","–","Helsinki Atlas: 8 (map 8 A2)"
+333,"Elumu","Elumu","–","–","–","–","village","Gargamīs, Syria","PNA 1/1: 4"
+334,"Emar","EmarBarbalissus, Tell Meskene","–","35.9878","38.11287","–","–","–","<a href=https://web.archive.org/web/20060925230158/http://www.uni-tuebingen.de/emar/en/index.html>Emar Website</a>"
+335,"Emesa","Emesa, Hims","–","34.72354534277252","36.71452867140398","–","–","–","–"
+336,"Enu-Šasî","Enu-Šasî, Tell 'Ayn Sharif (?)",4,"33.8916086298232","36.02661717170561","–","–","–","–"
+337,"Enzite","Alzi, Ilzi, Alši, Alze, Enzite, Enzi, Alzu, Elâsiğ, Anzitēnē",2,"38.49648","39.2199","KUR.al-zi, KUR.en-zi","region, territory","Urarṭu","Helsinki Atlas: 8 (map 3 B2), Bagg RGTC 7 2/1: 40–41, <a href=https://pleiades.stoa.org/places/874328>Pleiades: Anzitene</a>"
+338,"Erebuni","Erebuni, Arin-berd","–","40.14085010986663","44.53744103455104","–","–","–","–"
+339,"Eridu","Eridu, Abū Šaḥrain, Tell Abu Shahrain",1,"30.81686971277664","45.99672447851623","–","city","–","Helsinki Atlas: 8 (map 16 B3)"
+340,"Eritīa","Ertīa",3,"–","–","–","mountain","–","Helsinki Atlas: 8 (map 4 D3)"
+341,"Erudi","Erudi","–","–","–","–","town","Central Assyria","RGTC 7 2/1: 172"
+342,"Esagil","Esagila, Esagil, Esaggil, Esaŋil","–","32.53379","44.42149","É.SAG.ÍL, é-sag-gíl, e₂-saŋ-il₂-la","temple","Babylonia, Babylon","–"
+343,"Ešarra","Ešarra, Temple of Aššur","–","35.46081","43.26293","É.ŠÁR.RA, 𒂍𒊹𒊏, É.ŠÁR.RA.KI, 𒂍𒊹𒊏𒆠","temple","Assyria","–"
+344,"Ešnunna","Ešnunna, Tell Asmar D244","–","33.48313061963756","44.72850137066683","–","–","–","–"
+321,"Eǧil","Eǧil, Egil","–","38.25791","40.08115","–","monument","Turkey","Helsinki Atlas: 8 (map 3 D2)"
+322,"Eḫiman","Eḫiman","–","–","–","–","town","Ḫābūr triangle","RGTC 7 2/1: 166"
+345,"Faida","Faida, Faidah (فايدة), Fayda (فايضة)","–","36.757628","42.935313","–","monument","Assyria, Iraq","Helsinki Atlas: 8 (map 4 B5), <a href=https://qui.uniud.it/notizieEventi/ricerca-e-innovazione/italian-and-kurdish-archaeologists-on-the-trail-of-the-assyrian-empire/>Italian and Kurdish Archaeologists on the trail of the Assyrian Empire</a>"
+347,"Gabbutūnu","Gibbetôn, Raʾs Abī Ḥamīd",1,"31.83333","34.83333","–","town","–","Helsinki Atlas: 8 (map 7 C5)"
+346,"Gabbāru-ibni","Gabbāru-ibni, Gabbāri-ibni, Āl-Gabbāru-ibni, āl Gabbāru-ibni, Gabbari-ibni, Āl-gabbāri-bānî, Sūr Ğurʿa, Sur Jur'eh, Sūr Jarʿā, Sur Jureh",3,"34.30549","42.20724","–","town","Sūḫu","Helsinki Atlas: 8 (map 10 B2)"
+1069,"Gadisê","Gadisê","–","–","–","URU.ga-di-se-e","town","Syria","Bagg RGTC 7 2/1: 176"
+348,"Gambūlu","Gambūlu",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 11 B4)"
+349,"Gannanāti","Gannanāti, Gannanāte,Qaṣr-e Šīrīn",4,"34.51667","45.58433","–","town","–","Helsinki Atlas: 9 (map 11 A2)"
+350,"Gargamīs","Gargamīs, Karkemish, Karchemiš, Karkemiš, Carchemish, Karkamiş, krkymyš, Djerablis, Ğarablūs, جرابلس",1,"36.82891","38.01622","–","prov. capital","–","Helsinki Atlas: 9 (map 3 A4), <a href=https://www.orientlab.net/3d-kark>Karkemish 3D Visualization Project</a>"
+351,"Gasur","Gasur, Nuzi, Yorgan Teppe","–","35.36956130794378","44.2548782342147","–","–","–","–"
+352,"Gath","Gimtu, Gat, Gath, Tel es-Safī","–","31.70286793150219","34.84939088642997","–","–","–","–"
+353,"Gazru","Gazru, Gezer, Gazara, Tell Jazar",1,"31.85958","34.92048","–","city","–","Helsinki Atlas: 9 (map 7 C5)"
+354,"Gazziura","Gazziura, Turhal","–","40.38836556561288","36.09263300772279","–","–","–","–"
+355,"Gerasa","Gerasa, Jerash","–","32.28028700581027","35.89338726699758","–","–","–","–"
+356,"Gibeon","Gibeon, El-Jib","–","31.84696414567557","35.18560843989516","–","–","–","–"
+357,"Gibʿat Šaul","Gibʿat Šaul, Gibʿat Shaul, Givat Shaul, Givat Šaul, Tell el-Ful","–","31.82214335732264","35.23111358574556","–","–","–","–"
+358,"Gidira","Gader, Gadara, Gidira, Pompeia, Umm Qeis",1,"32.65692","35.67797","–","city","–","Helsinki Atlas: 9 (map 8 A4)"
+359,"Gilzānu","Gilzānu, Gelišin Plain",2,"–","–","–","country","–","Helsinki Atlas: 9 (map 4 E5)"
+360,"Gilʾad","Gilʿad, Gilead, Ḫirbat Ğalʿad",1,"32.08333","35.75","–","town","–","Helsinki Atlas: 9 (map 7 D4)"
+361,"Gimir","Gimir, Gomer, Cimmerians, Caucasus",1,"–","–","LÚ.gi-mir-ra-a.a","tribe","–","–"
+362,"Gimtu","Gimtu, Gat, Gath, Tel es-Safī",2,"31.60883","34.77","–","city","–","Helsinki Atlas: 9 (map 7 C5)"
+363,"Gingiliniš","Gingiliniš, Tepe Chenchi",2,"36.48211","43.22937","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+364,"Girmua","Girmua, Ğirwān, Jerwan",2,"36.659","43.35383","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+365,"Girsu","Girsu, Tello","–","31.55980384457702","46.17866802939608","–","–","–","–"
+366,"Girumu","Girumu, Tell Barghuthiat / Ishan Khilala K94","–","32.7025685157628","44.79553579596829","–","–","–","–"
+367,"Gizilbunda","Gizilbunda",2,"–","–","–","territory","–","Helsinki Atlas: 9 (map 11 C1)"
+369,"Gordion","Gordion, Yassihüyük","–","39.65698267259338","31.98669023055001","–","–","–","–"
+370,"Gubal","Gubal, Ğabla, Gibala, Gibaʾla, Gubla, Gabala, Tell Tuweini, Jableh",2,"35.37182694071063","35.93723497454413","–","town","–","Helsinki Atlas: 9 (map 8 A1)"
+371,"Gubla","Gubla,Byblos, Ğubail, Gebal",1,"34.11877","35.64464","–","capital","–","Helsinki Atlas: 9 (map 8 A2)"
+372,"Gurasimmu","Gurasimmu",2,"–","–","–","tribe","–","Helsinki Atlas: 9 (map 16 A3)"
+374,"Gurgum","Gurgum, Marqāsa, Marqasi, Marqas",2,"–","–","–","territory, country, province","Turkey, Assyria","Helsinki Atlas: 9 (map 2 C3)"
+375,"Gurru","Gurru, Gurrāja, Qamurra","–","–","–","gur-ri, gur-ru, LÚ.gur-ru, LÚ.qa-mur-ra, KUR.gur-ra-a-a, LÚ.gur-a-a, LÚ.gur-ra-a-a, LÚ.gur-ra-a-a-e-a, LÚ.qur-mur-ra-a-a","tribe","Iraq (?)","Bagg RGTC 7 2/1: 186–187"
+373,"Gurēte","Gurēte, Gurētu, Kurdā, Kurda, Tell Aswad",3,"36.58317","40.88117","URU.gu-re-e-te","town","Ḫābūr area","Helsinki Atlas: 9 (map 3 D4), Bagg RGTC 7 1: 185"
+368,"Gīʾa","Giʾ, Gīʾa, Gīya, Porphyreon Polis",1,"33.59717","35.41433","–","town","–","Helsinki Atlas: 9 (map 8 A3)"
+376,"Gūzāna","Guzana, Gôzān, gwzn, Gizania, Tell Ḥalaf, Tell Halaf",1,"36.82619","40.0395","–","prov. capital","–","Helsinki Atlas: 9 (map 3 D4)"
+377,"Ha-Ma’apil","Ha-Ma’apil, Kibbutz Hama’apil, HaMa'apil","–","32.37776","34.98405","–","monument","Israel","<a href=https://pleiades.stoa.org/places/189103682>Pleiades: HaMa'apil</a>"
+422,"Hatra","el-Hadhar","–","35.58702654572083","42.71855218530546","–","–","–","–"
+418,"Hašabu","Ḫašabu, Hašabu, Tell 'Ayn 'Ushba, Tell Hashba (?)",4,"33.94699430482985","36.05384272993871","–","–","–","–"
+437,"Hilla","Hilla, Hillah, Al-Hilla, Al-Hillah, الحلة","–","32.47362","44.42519","–","–","Iraq, Babylonia","–"
+461,"Iabrūdu","Iabrūdu, Jabrūdu, Jabrudu, Yabrūd, Yabrud",1,"33.96686712056401","36.66004361025661","–","town","–","Helsinki Atlas: 10 (map 8 B3)"
+462,"Iadaʾî","Iadaʾî, Jadaʾî, Yadaʾî","–","–","–","–","town","Izalla","Bagg, RGTC 7 2/1: 267, Zadok, The Ethno-Linguistic character of the Jezireh and adjancent regions in the 9th–7th centuries, in Liverani (1995): 271, 6.3.6, Kessler, Unterzchungen zur historischen Topografie Nordmesopotamiens nach keilschriftlichen Quellen des 1. Jahrtausends v Chr., TAVO Beih, B 26 (1980): 47 Anm. 205"
+463,"Iadburu","Iadburu",2,"–","–","–","territory","–","Helsinki Atlas: 10 (map 11 C4)"
+464,"Iadnāna","Iadnāna, Cyprus",1,"–","–","–","region, island","Levant","Helsinki Atlas: 10 (map 7 A1)"
+467,"Iamutbal","Iamutbal, Jamutbal, Jamutbalu",2,"–","–","–","region, territory","–","Helsinki Atlas: 10 (map 11 A3)"
+468,"Iappû","Jappû, Ioppe, Yafa, Yafo, Jaffa",1,"32.05406","34.75264","–","city","–","Helsinki Atlas: 10 (map 7 C4), <a href=http://jaffa.nelc.ucla.edu/>The Jaffa Cultural Heritage Project (JCHP)</a>"
+469,"Iasūbu","Iasūbu, Jasūbu",2,"–","–","–","region","–","Helsinki Atlas: 10 (map 11 A3)"
+470,"Iasūmu","Iasūmu, Sūmu, Aisūmas, Ašūmā, Karacadağ",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 3 C3)"
+472,"Iaʾūdu","Iaʾūdu, Jaʾūdu, Yehūdā, Judah",1,"–","–","–","country, territory","Israel","Helsinki Atlas: 10 (map 14 B2)"
+465,"Iaḫariša","Jahariša, Iahariša, Tell Fray","–","35.88141078555107","38.38536367908736","–","–","–","–"
+466,"Iaḫdik","Iaḫdik, Yahdik","–","–","–","URU.ia-aḫ-di-ik","city","Elam (?)","–"
+471,"Iaṭbite","Iaṭbite, Jaṭbite, Yaṭbite, Iōtapata, Jotapata, Yodefat, Yodfat, Ḫirbat Šifāt","–","32.836897","35.2736","–","city","Israel, Galilea","RGTC 7/1: 127"
+473,"Ibatuni","Ibatuni","–","–","–","LÚ.i-ba-tú-na","ethnic","–","Parpola Toponyms: 171"
+474,"Idide","Idide, Āb-e Dez, Hithite, Hudhud",2,"–","–","–","river","–","Helsinki Atlas: 10 (map 17 A1)"
+475,"Idu","Idu, Īdu, Ida, Satu Qala, Tall Sātu Qala, Sātū Qalā, ساتو قلا",1,"35.874","44.6965","URU.i-du, KUR.i-da-a-a, URU.i-da-a-a","town, fortress, region, country","Assyria","Bagg RGTC 7 2/1: 242, Parpola Toponyms: 72 (Ida, Idu), Helsinki Atlas: 10 (map 11 B1, (Idu, region))"
+478,"Ilansura","Ilansura, Tell Farfara (?)",4,"36.82263255254318","41.33237455299481","–","–","–","–"
+479,"Ilgie","Ilgie, Ilgê","–","–","–","URU.il-gi-e","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 243"
+482,"Ilištamʾu","Ilištam'u, Stamo (?)",4,"35.48439709459653","35.91601561510269","–","–","–","–"
+483,"Illubru","Illubru, Ellibir, Olymbros, Lampron, Namrun",1,37,"34.66666","–","city","–","Helsinki Atlas: 10 (map 1 D4)"
+480,"Ilḫini","Ilḫini","–","–","–","URU.il-ḫi-ni","town","Gūzāna province","Bagg RGTC 7 2/1: 244"
+484,"Imgur-Illil","Imgur-Illil, Imgur-Enlil, Balawāt, Balawat",1,"36.22945","43.4038","–","town","–","Helsinki Atlas: 11 (map 4 C5)"
+485,"Immiu","Immiu, Amyūn, Ammiya",1,"34.29683","35.81866","–","city","–","Helsinki Atlas: 11 (map 8 A2)"
+486,"Ingirâ","Ingirâ, Anchiale, Anchialeia",1,"36.84983","34.57233","–","city","–","Helsinki Atlas: 11 (map 1 D4)"
+487,"Inimme","Inimme, en-Nāʿima",1,"33.74316","35.4615","–","town","–","Helsinki Atlas: 11 (map 8 A3)"
+488,"Innaia","Innaia, Qasemlua, Branduz çay","–","–","–","–","river","–","Helsinki Atlas: 11 (map 4 E4)"
+489,"Irbû","Irbû, Irbayu, Irbuāja","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/1: 248–249"
+490,"Irgilli","Irgilli, Tell Irjil (?)",4,"35.84856296472241","37.22541738884766","–","–","–","–"
+1071,"Irinniḫ","Irinniḫ","–","–","–","URU.i-ri-in-ni-iḫ, 𒌷𒄿𒊑𒅔𒉌𒄴","town","Central Assyria, Kalḫu province (?), Iraq","Bagg RGTC 7 2/1: 249"
+491,"Irrita","Irrita, Oylum Höyük","–","36.69900478406686","37.17821281809435","–","–","–","–"
+493,"Isin","IIsin, šān al-Baḥriyāt, Ishan Bahriyat",1,"31.88640216500606","45.27050931069247","–","city","–","Helsinki Atlas: 11 (map 16 A2)"
+494,"Ispallurê","Ispallurê, Išpallurê, Ispallure, Isphrium (?)","–","–","–","–","town","Izalla","Bagg, RGTC 7 2/1: 253"
+495,"Isqalūna","Isqalūna, Ashcalon, Ascalon, ʿAsqalān, Ašqelôn, Ašqaluna, Isqaluna, Ashqelon, Ashkelon",1,"31.66426","34.54732","–","capital","–","Helsinki Atlas: 11 (map 7 C5)"
+496,"Issēte","Issētu, Issēte, Issutu, Šaqlāwa",4,"36.39783","44.34517","–","town","–","Helsinki Atlas: 11 (map 4 D5), Bagg RGTC 7 2/1: 254–255"
+497,"Istuanda","Istuanda, Wištawanda, Patuanda",3,"37.66666","34.33333","–","city","–","Helsinki Atlas: 11 (map 1 D3)"
+492,"Isāna","Isāna, Isān Köi, Izan, Tell Isān",4,"36.75","37.66666","–","prov. capital","–","Helsinki Atlas: 11 (map 2 D4)"
+504,"Ituʾu","Utuʾu, Ituʾu",2,"–","–","–","tribe","–","Helsinki Atlas: 11 (map 10 C3)"
+505,"Izalla","Izalla, Azalla, Azallu, Zalla, Zallu, Izallu, Azalzi, Išalā, byt ṣll, 𐡁𐡉𐡕 𐡑𐡋𐡋‎, ʾÛzāl, אוּזָל, Aṣalli, Iṣalla, Kanni, Nini, Ninili, Ṭūrā ḏIzalā, Izalā, Izala mons, Azalla, Ṭūro d-Malbash, Melabas, Dibek Daği",1,"37.20109","41.46527","i-za-al, ì-zal, KUR.a-za-al-li, KUR.a-zal-li, KUR.i-za-la, KUR.i-za-li, KUR.i-zal, KUR.i-zal-li, KUR.i-zal-lu, KUR.ì-zal, KUR.ì-zal-la, KUR.ì-zal-li, KUR.za-al-lu, KUR.a-za-la-a-a, KUR.zal-la-a-a, KUR.zal-la-a-ia, byt ṣll, 𐡁𐡉𐡕 𐡑𐡋𐡋‎, אוּזָל","territory, mountain","Ǧazīra, Turkey","Helsinki Atlas: 7 (Azalla, territory, map 3 C4), 11 (Izalla, mountain, map 3 D3 ), Bagg RGTC 7 2/1: 263–265 (Izalla)"
+507,"Izirtu","Izirtu, Zirtu, Saqqez",2,"36.25116","46.279","–","capital","–","Helsinki Atlas: 11 (map 5 B4)"
+506,"Izībia","Izībia, Zīwiye, Ziwiye, Zīwe",1,"36.2614","46.68737","–","city","–","Helsinki Atlas: 11 (map 5 B4)"
+477,"Iēri","Jēri, Iēri, Yeri, Sardašt",4,"36.15267","45.47767","–","town","Ḫabḫu, Ḫabḫu 2","Helsinki Atlas: 11 (map 5 A4), Bagg RGTC 7 3/1: 310"
+498,"Išida","Išida, Išid","–","–","–","LÚ.i-ši-da-a-a","town","Central Assyria (?), Kalḫu province (?)","Bagg RGTC 7 1: 256, "
+499,"Iškûzai","Iškûzai, Iškuza, Ašgûzai, Scythians","–","–","–","iš-ku-za-a.a, KUR.as-ku-za-a.a, KUR.áš-gu-za-a.a, KUR.iš-ku-za, KUR.iš-ku-za-a.a, LÚ.iš-ku-za-a.a, URU.as-gu-za-a.a","ethnic","–","Parpola Toponyms: 178 (Iškuza), Vera Chamaza (2002), Die Omnipotenz Aššurs: 227"
+500,"Išrun","Išrun","–","–","–","KUR.iš-ru-un","mount","–","–"
+501,"Ištaraurâ","Ištaraurâ, Sārūq",2,"–","–","–","river","–","Helsinki Atlas: 11 (map 5 B4)"
+502,"Išua","Išua",2,"–","–","–","region","–","Helsinki Atlas: 11 (map 3 B3)"
+508,"Jalūna","Jalūna, Ialuna","–","–","–","URU.ia-lu-na, KUR.ia-lu-na, KUR.ia-lu-na-a-a, URU.ia-lu-na-a-a","town, territory","Kalḫu province (?), Central Assyria","Bagg RGTC 7 2/1: 269–270"
+509,"Jericho (1)","Jericho (1), Tell es-Sultan","–","31.87098681042005","35.44476683822438","–","–","–","–"
+510,"Jericho (2)","Jericho (2), Tulul Abu el-'Alaiq North","–","31.85262041903013","35.43531529964726","–","–","–","–"
+511,"Jericho (3)","Jericho (3), Tulul Abu el-'Alaiq South","–","31.85024154909864","35.43693647832034","–","–","–","–"
+512,"Jerwan Aqueduct","Jerwan Aqueduct, Ğirwān Aqueduct","–","36.66952","43.3946","–",",canal, monument","Assyria, Iraq","<a href=https://pleiades.stoa.org/places/10280471>Pleiades: Jerwan Aqueduct</a>"
+513,"Jokneam","Jokneam, Tel Yoqne'am","–","32.66466721782095","35.10883229927659","–","–","–","–"
+514,"Judeideh","Judeideh, Judaide, Jedīdē, Jadīdah","–","34.23989","42.30865","–","–","Sūḫu, Iraq","RIMB 2: 322"
+515,"Judi Dagh","Judi Dagh, Ğudi Dağ, Ḥsanah, Šeḫ, Cudi Dagh","–","37.37667","42.34667","–",",Monument","Turkey","Helsinki Atlas: 11 (map 4 B4)"
+516,"Kabinnak","Kabinnak, Kabinak, Kabnak, Hafttappe, Haft Teppe",1,"32.08090580192094","48.32873115985338","–","city","–","Helsinki Atlas: 11 (map 17 A1)"
+517,"Kabsite","Kabsite, Kabsitu","–","–","–","kab-si-te, URU.kab-si-te","town","Northern Babylonia","Bagg RGTC 7 1: 275"
+518,"Kadeš Barnea","Kadeš-Barnea, Kadeš Barnea, Tell el-Qudeirat (?)",4,"30.64667651544816","34.41929399232647","–","–","–","–"
+519,"Kafar Nahum","Kafar Nahum, Kafar-Nahum, Capharnaum","–","32.88049659607911","35.57594165209499","–","–","–","–"
+521,"Kailete","Kailete, Kailetu","–","–","–","URU.ka-i-le-te","town","mid-Euphrates, Sūḫu, Ḫābūr basin (?)","Bagg RGTC 7 1: 276"
+522,"Kakkabnaše","Kakkabnaše, Kakkabnamušat","–","–","–","URU.kak-kab-na-še","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 276"
+523,"Kaldu","Kaldu, Chaldea",2,"–","–","–","territory","–","Helsinki Atlas: 11 (map 10 D4)"
+525,"Kallat","Kallat, Batman Suyu",2,"–","–","–","river","–","Helsinki Atlas: 11 (map 3 E2)"
+526,"Kalmakarra Cave","Kalmakarra Cave","–","33.03461","47.56946","–","–","Iran","<a href=https://pleiades.stoa.org/places/413309734>Pleiades: Pol-e Dokhtar</a>"
+524,"Kalḫu","Kalḫu, Calah, Kalhu, Kalchu, Nimrūd, Nimrud",1,"36.09863","43.32932","URU.kal-ḫu, URU.kal-ḫi","capital, city","Assyria","Helsinki Atlas: 11 (map 4 C5)"
+528,"Kannuʾ","Kannuʾ","–","–","–","URU.ka-an-nu-uʾ, URU.kan-nu-uʾ, LÚ.kan-nu-uʾ-a-a, URU.kan-nu-a-a, URU.kan-nu-uʾ-a-a","city","Central Assyria","Bagg RGTC 7 2/1: 287–288"
+530,"Kapar-Akkullāni","Kapar-Akkullāni, village of Akkullānu","–","–","–","URU.ŠE-<sup>m</sup>ak-ku-la-ni","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 296"
+531,"Kapar-Andarānu","Kapar-Andarānu","–","–","–","–","–","–","–"
+529,"Kapar-Aḫi-iaqar","Kapar-Aḫi-iaqar, Kapar-Ahiqar","–","–","–","–","village","–","–"
+532,"Kapar-Bisê","Kapar-Bisê, village Bisê","–","–","–","URU.ŠE-bi-se-e","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 300–301"
+533,"Kapar-Dannāia","Kapar-Dannāia, village of Dannaya, village of Dannāia","–","–","–","–","village","Assyria","–"
+535,"Kapar-Itiri","Kapar-Itiri","–","–","–","URU.ŠE-i-ti-ri","village","Central Assyria (?)","Bagg RGTC 7 3/2: 967–968"
+536,"Kapar-Mannu-lū-aḫūʾa","Kapar-Mannu-lū-aḫūʾa","–","–","–","–","village","Central Assyria, Nineveh province","Bagg, RGTC 7 1/1: 309–310"
+538,"Kapar-Nabû-šimanni","Kapar-Nabû-išmanni, Kapar-Nabû-šimanni, village of Nabû-šimanni","–","–","–","URU.ŠE-mdPA-ḪAL-a-ni, URU.ŠE-mdAG-ši-man-ni","village","Central Assyria (?), Nineveh province (?)","Bagg RGTC 7 2/1: 311–312"
+539,"Kapar-Qiluḫte","Kapar-Qiluḫte, Kapar-Kiluḫte, Kiluḫte","–","–","–","–","village","Central Assyria","RGTC 7 2/1: 314"
+540,"Kapar-Usāni","Kapar-Usāni","–","–","–","–","village","Central Assyria","RGTC 7 2/1: 323"
+534,"Kapar-ikkāri","Kapar-ikkāri, village of the Farmer","–","–","–","URU.ŠE-LÚ.ENGAR","village","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 1: 304"
+537,"Kapar-mār-šarri","Kapar-mār-šarri, Village of the Crown Prince, URU.ŠE A MAN","–","–","–","–","village","Central Assyria, Kalḫu province (?)","RGTC 7 2/1: 310"
+541,"Kaprabi","Kaprabi, Edessa, Urfa",4,"37.15211","38.78947","–","town","–","Helsinki Atlas: 11 (map 3 B3)"
+542,"Kapri-Dargilâ","Kapri-Dargilâ",3,"36.7","38.33333","–","village","–","Helsinki Atlas: 11 (map 3 B4)"
+555,"Karabur","Karabur, Karsanbey","–","36.02","36.19","–","monument","Turkey","Helsinki Atlas: 11 (map 2 C4), O. Aytuğ Taşyürek,: Some New Assyrian Rock-Reliefs in Turkey: 174-176, 177 Fig. 10."
+556,"Karalla","Karalla, Uramanat",2,"–","–","KUR.kar-al-li, KUR.kar-al-la, KUR.kar-al-la-a-a, KUR.kar-al-lu, KUR.kar-al-lu₄, KUR.kar-la-a-a, KUR.kar-..., URU.kar-al-lu, KUR.kar-al-la-a-a","country, state","Iran","Helsinki Atlas: 11 (map 11 B2), Parpola Toponyms: 199–200"
+557,"Karduniaš","Babylonia, Karduniaš",2,"–","–","–","country","–","Helsinki Atlas: 11 (map 10 D3)"
+558,"Karkara","Karkara, Tell Jidr U004 (?)",4,"31.82392203365745","45.70750109912942","–","–","–","–"
+559,"Kasappa","Kasappa, Kušāf, Tell Kašāf, Tell Kashaf",1,"35.99892626871029","43.36667385244879","–","town","–","Helsinki Atlas: 11 (map 4 C6)"
+562,"Katmuḫi","Katmuḫi, Katmuḫu, Kadmuḫi, Šaḫuppa, Saḫuppa, Šuḫuppa",2,"–","–","–","state, province","–","Helsinki Atlas: 11 (map 3 E3)"
+563,"Kazallu","Kazallu","–","–","–","ka-za-lu.KI, ka-zal-lu.KI","city","Northern Babylonia","Groneberg, RGTC 3: 136–237"
+561,"Kašpūna","Kašpūna, Kusbā",2,"34.28733","35.87867","–","city","–","Helsinki Atlas: 11 (map 8 A2)"
+520,"Kaḫat","Kaḫat, Kahat, Tell Barrī, Tell Barri",3,"36.73893","41.12701","URU.ka-ḫa-at, URU.ka-ḫat","town","Ḫābūr area","Helsinki Atlas: 11 (map 3 E4), Bagg RGTC 7 1: 276"
+564,"Kelenderis","Kelenderis, Ura (?), Aydıncık","–","36.14441180151798","33.32303180199708","–","–","–","–"
+565,"Kenk Boğazi","Kenk Boğazi, Kenk Boğazı","–","37.24166","37.85433","–","–","Turkey","Helsinki Atlas: 11 (map 3 A3)"
+566,"Kesentaş","Ergani, Gisgis, Kesentaş","–","38.20387","39.58986","–","monument","Turkey","Helsinki Atlas: 11 (map 3 C2)"
+567,"Kibaki","Kibaki, Kivah",1,"37.24883","41.5015","–","town","–","Helsinki Atlas: 11 (map 4 A4)"
+568,"Kilīzi","Kilīzi, Kilizu, Kilizi, Kalīzi, Kilīzu, Kalzu, Kalzi, Qaṣr Šamāmūk, Qasr Shamamok EPAS 2, Kilīzi",1,"36.10582","43.75306","kàl-zi, URU.kàl-zi, URU.kàl-zu, URU.ki-li-zi, URU.kàl-zi-a-a","prov. capital","–","Helsinki Atlas: 11 (map 4 C5), <a href=https://scholar.harvard.edu/jasonur/pages/erbil>Erbil Plain Archaeological Survey</a>, <a href=https://sketchfab.com/3d-models/site-2-qasr-shemamok-d658c28b789c460998697a621ca7fd4b>3D model</a>, Bagg RGTC 7 2/1: 284–285 (Kalzu), "
+569,"Kinabu","Kinabu, Tavşantepe (?), Aktepe (?)","–","37.83546","40.2019","ki-na-bu, URU.ki-na-bu","fortified city","Nirbu, Turkey","Bagg RGTC 7 2/1: 341–342"
+570,"Kindāu","Kindāu, Qindau, Kār-Sîn","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110"
+571,"Kipšūna","Kipšūna, Kipšūnu, Gefše",3,"37.21617","42.7535","–","capital of Qumēni, prov. capital","Qumēni, Province of masennu","Helsinki Atlas: 11 (map 4 B4), Bagg RGTC 7 2/1: 343–344"
+572,"Kirruru","Ḫabrūru, Kirruru, Kirruri, Kirriuru","–","–","–","KUR.kìr-ri-ú-ri, KUR.ḫab-ru-ri, KUR.kìr-ru-ri","mount","Ḫabrūri","–"
+573,"Kirši","Kirši, Meydancıkkale?","–","36.27389593578619","33.44268818917155","–","–","–","–"
+575,"Kisiru","Kisiru, Kisiri, Tell Inṯa, Tall ʿAin Ṭelṯameh",3,"36.48083","43.21467","URU.ki-si-ri","village","Nineveh province (?), Central Assyria","Helsinki Atlas: 12 (map 4 C5), Bagg RGTC 7 1: 345–346"
+576,"Kissik","Kissik, Duru (?), Tell al-Laḥm, Tell el-Lahm",1,"30.77400531941019","46.3655492049713","–","city","–","Helsinki Atlas: 12 (map 16 B3)"
+577,"Kissuwatna","Kissuwatna, Kizzuwatna",4,37,36,"–","city","–","Helsinki Atlas: 12 (map 2 C3)"
+578,"Kisurra","Kisurra, Abu Hatab","–","31.83792434426611","45.4819673839158","–","–","–","–"
+583,"Kitrusu","Kitrusu, Khytroi, Kitrea",1,"35.24066","33.49183","–","city","–","Helsinki Atlas: 12 (map 7 B1)"
+581,"Kišešlu","Kišešlu, Kār-Nabû","–","–","–","–","fortress","Iran","Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+582,"Kištan","Kištan, Kaysūn, Kaisūm",2,"–","–","–","district","–","Helsinki Atlas: 12 (map 3 B3)"
+580,"Kišēsim","Kišēsim, Kišessim, Kār-Nergal, Najafabad, Najafābād, Nağafābād, نجف‌آباد",3,"34.6527"," 47.9761","–","city","–","Helsinki Atlas: 11 (map 11 B2), <a href=https://pleiades.stoa.org/places/811827554>Pleiades: Najafabad</a>, <a href=https://zenodo.org/record/5217600>CIGS</a>, Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+574,"Kiṣirte","Kiṣirte, Kiṣirtu","–","–","–","URU.ki-ṣir-te, URU.ki-ṣir-tu","town","South-east Assyria","CTN 6: 221, Parpola 1970: 210"
+585,"Kubanaše","Kubanaše",3,"36.9","40.2","–","town","–","Helsinki Atlas: 12 (map 3 D4)"
+587,"Kulimmeri","Kulimmeri, Kullimeri, Qulmere, Chlomarôn, Klimar, Gre Migro",2,"37.99107","41.1573","–","prov. capital","Šubria, Assyria","Helsinki Atlas: 12 (map 3 E2), Bagg RGTC 7 2/1: 349–350"
+588,"Kullab","Kullab",1,"31.32183","45.6405","–","town","–","Helsinki Atlas: 12 (map 16 A2)"
+589,"Kullanīa","Kullanīa, Kunulua, Kinalūa, Kullania, Kunalīa, Kalnē, Calneh, Tell Taʿyīnāt, Tell Tayinat",1,"36.24717","36.37452","–","prov. capital","–","Helsinki Atlas: 12 (map 2 C4), <a href=https://tayinat.artsci.utoronto.ca> Tayinat Archaeological Project (TAP)</a>"
+591,"Kullar","Kullar, Kolara, Baziān",2,"35.6365","44.96966","–","mountain","–","Helsinki Atlas: 12 (map 10 E1)"
+592,"Kulmadara","Kulmadara, Chôlmadara, Charmodara",1,"37.64166","38.74483","–","town","–","Helsinki Atlas: 12 (map 3 B3)"
+593,"Kulumān","Kulumān, Kilmān, not Kermanshah, near Ḫarḫār","–","–","–","–","town","–","–"
+594,"Kumidu","Kumidu, Kamid el-Loz","–","33.62381849627923","35.82143372904021","–","–","–","–"
+595,"Kummanni","Kummanni, Comana Cappadociae, Şar (?)",4,"38.33041595481895","36.32519972256748","–","–","–","–"
+596,"Kumme","Kumme",3,"37.34716","42.74483","–","city","–","Helsinki Atlas: 12 (map 4 B4)"
+597,"Kummuḫi","Kummuhu, Kammānu (district), Commagēnē, Samosata, Samsat",1,"37.50560103152622","38.50081550200599","–","prov. capital","–","Helsinki Atlas: 12 (map 3 B3)"
+598,"Kundu","Kundu, Anavarza, Kynda",1,"37.257","35.91216","–","city","–","Helsinki Atlas: 12 (map 2 B3)"
+599,"Kurbail","Kurbail, ʿAgra",4,"36.75983","43.90316","–","prov. capital","–","Helsinki Atlas: 12 (map 4 C5)"
+600,"Kurbail (alt. loc.)","Kurbail (alt. loc.), Ğarāhīya, Ḫirbat al-Ğarāhīya",4,"36.6875","43.20966","–","prov. capital","–","–"
+601,"Kurî","Kurî, Kourion, Episkopi",1,"34.67216001285875","32.86433366558725","–","city","–","Helsinki Atlas: 12 (map 7 A2)"
+603,"Kutalla","Kutalla, Kutallu, Tell Sifr, Tell Ṣifir",1,"31.29236345808405","45.9694994372622","–","town","–","Helsinki Atlas: 12 (map 16 B2)"
+604,"Kutê","Kutê, Kûtâ, Kutû, Gudua, Kutha, Cutha, Tell Ibrāhīm, Tell Ibrahim",1,"32.75989763098715","44.61289455976172","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D4)"
+527,"Kāneš","Kāneš, Kaneš, Nēša, Neša, Kültepe","–","38.85017107282217","35.6352947895362","–","–","–","–"
+543,"Kār-Apladad","Gleieh, Glaiʿā, Glaiʿā, Gleiʿeh",4,"34.30261","42.21187","–","–","Sūḫu, Iraq","RIMB 2: 327, 329"
+544,"Kār-Aššur","Kār-Aššur, Ḫumut","–","–","–","kar-aš-šur, URU.kar-AN.ŠÁR, URU.kar-aš-šur, URU.kar-<sup>d</sup>aš-šur","city","Assyria, Laḫīru province (?)","Bagg RGTC 7 2/1: 330"
+545,"Kār-Aššur-aḫu-iddina","Kār-Aššūr-aḫu-iddina, see Ṣīdūnu","–","–","–","–","city","–","–"
+546,"Kār-Aššurnasirpal","Kār-Aššurnasirpal, Kār-Aššur-nāṣir-apli, Kār-Ashurnasirpal, Kar-Assurnasirpal, Jebel Masaikh","–","34.97366","40.55532","URU.kar-<sup>m</sup>AŠ-PAB-A","city","Assyria, Middle Euphrates","Bagg RGTC 7 2/1: 330–331"
+547,"Kār-Issār","Kār-Ištar, Tell ʿAğāğī",4,"35.03333","43.55","–","town","–","Helsinki Atlas: 11 (map 10 C1)"
+549,"Kār-Mullissi","Kar-Mullissi, Karmallīs, Keremlīs, Keramlais",1,"36.30538292011827","43.40982550055244","–","city","–","Helsinki Atlas: 11 (map 4 C5)"
+550,"Kār-Nergal","Kār-Nergal, aṣ-Ṣūwaira",4,"32.92616","44.78683","–","town","–","Helsinki Atlas: 11 (map 10 D4)"
+554,"Kār-Tukultī-Ninurta","Kār-Tukultī-Ninurta, Kar-Tukulti-Ninurta, Tulūl al-ʿAgar, Tulul el-'Aqir",1,"35.50153","43.2831","–","city","–","Helsinki Atlas: 11 (map 10 C1)"
+548,"Kār-kaššî","Kār-kaššî, Karkaššî","–","–","–","KUR.kar-ka-ši-e, KUR.kar-kaš-ši-i, URU.kar-kaš-ši-i, KUR.kar-kaš-šá-a.a","city","Iran, Media","Parpola Toponyms: 197"
+551,"Kār-nūri","Kār-nūri, ʿAin Sifnī, Ain Sifni","–","36.69182","43.35083","URU.kar-nu-ru, URU.kar-nu-ú-ri, URU.ka-ru-nu-ri","town","Assyria","Bagg RGTC 7 2/1: 335"
+552,"Kār-Šamaš","Kār-Šamaš",3,"34.09449","44.00033","–","town","–","Helsinki Atlas: 11 (map 10 D2)"
+553,"Kār-Šamaš-nāṣir","Kār-Šamaš-nāṣir","–","–","–","–","town","Central Assyria","RGTC 7 2/1: 336"
+560,"Kāšijēri","Kašiieri, Kašiiari, Kāšijēri, Kāšiāru, Kašijari, Ṭūr ʿAbdīn",1,"–","–","–","mountain","–","Helsinki Atlas: 11 (map 3 D3)"
+579,"Kīš","Kīš, Kiš, Kish, Ḫursagkalama, Tell Inġarra, Tell al-Uḥaimir, Uhaimir",1,"32.55189","44.59024","–","city","–","Helsinki Atlas: 11 (map 10 D4)"
+584,"Kızkapanlı","Kızkapanlı, Kizkapanli, Pazarcık, Kahramanmaraş, Pazarğik","–","37.47166","37.25599","–","–","Turkey","–"
+586,"Kūkab","Kūkab, Tell Kawkab",1,"36.53183","40.85433","–","mountain","–","Helsinki Atlas: 12 (map 3 D4)"
+602,"Kūsu","Kūsu, Kush, Cush, Kuš, Meluḫḫa, Emeluḫḫa, Nubia","–","–","–","KUR.ku-u-si, KUR.ku-u-su, KUR.ku-ú-su, KUR.ku-ú-ši, KUR.ku-ú-šú, KUR.ku-si, KUR.ku-ú-si, URU.ku-ú-si, KUR.ku-ši, KUR.ku-su, ku-sa-a, ku-sa-a-a, ku-sa-a-a-te, KUR.ku-sa-a-a, KUR.ku-sa-a-e","country, territory","Africa, Nubia","Bagg RGTC 7 2/1: 356–358, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+606,"Labdūdu","Labdūdu",3,"–","–","–","tribe","–","Helsinki Atlas: 12 (map 11 A3)"
+608,"Labnāna","Labnāna, Lubnān, Lebānôn, Lebanon",1,"–","–","–","mountain","–","Helsinki Atlas: 12 (map 8 A3)"
+605,"Labāʾu","Laba'u, Labaʾu, Lebo, Labwa, Lebô, Tell Qasr Labwa",1,"34.20045475734132","36.34428372649153","–","city","–","Helsinki Atlas: 12 (map 8 B2)"
+607,"Labīru","Labīru","–","–","–","–","town","Assyria","RGTC 7 2/1: 360"
+609,"Ladānu","Ladānu","–","–","–","KUR.la-da-a-ni","territory","–","–"
+610,"Lagaš","Lagaš, El-Hiba","–","31.4183207967609","46.41221284166029","–","–","–","–"
+612,"Laglāgu","Laglāgu, Tagalāgu, Tagalagi, Lagalaga, Laggalagi, ʿUlūw Būlāq, Ulubulagh","–","35.5",45,"–","town","–","Helsinki Atlas: 12 (map 10 E1)"
+614,"Lakīsu","Lakīsu, Lakišu, Lakisu, Lākîš, Lachish, Tell al-Duweir, Tell ed-Duwer",1,"31.56525","34.84951","–",",admin. center","–","Helsinki Atlas: 12 (map 7 C5), <a href=https://sketchfab.com/3d-models/tel-lachish-2018-993a67a2138d4e6782e71ad3275ead8c>3D model</a>"
+615,"Lalar","Lalar","–","–","–","KUR.la-la-ar","mountain","–","RGTC 5: 176"
+618,"Larak","Larak, Tell Wilaya (?), Tell al-Ḫayyād (?)",4,"32.31115954785168","45.66040975327528","–","city","Babylonia, Iraq","Helsinki Atlas: 12 (map 11 A4)"
+619,"Larbusa","Larbusa, Larbusu, Tall Sitak, Tell Sitak, Tall Sītak, تل سيتك","–","35.642","45.5028","URU.la-ar-bu-sa, URU.la-ar-bu-sa-a-a","fortified city","Zamua, Iraq","Bagg RGTC 7 3/1: 370, Radner (2017), A Neo-Assyrian Legal Document from Tell Sitak: 428–429"
+620,"Laribda","Laribda, Gebb al-Qdeim (?), قديم, aṭ-Ṭajjibe (?), At Tayyibah (?), Al Taibah (?), ʿUrd (?), Ourd Oriza (?), التيبة","–","35.08895","38.91597","URU.la-ri-ib-da","town, fortified water point","Syria","Bagg RGTC 7 1: 156"
+621,"Larsa","Larsa, as-Sankara, Tulul Sinkara",1,"31.28473","45.85513","–","city","Babylonia","Helsinki Atlas: 12 (map 16 A2)"
+622,"Latiḫu","Latiḫu, Latiḫi, Tell Baḥza (?), Tall Šaddāda (?)",4,"36.05","40.73333","URU.la-ti-ḫi","town","Šadikanni","Helsinki Atlas: 12 (map 3 D4), Bagg RGTC 7 1: 366"
+613,"Laḫīru","Laḫīru, Eski Kifri",3,"34.63333","44.88333","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D2)"
+623,"Lidir","Lidir, Ledroi",1,"35.16666","33.35","–","city","–","Helsinki Atlas: 12 (map 7 B1)"
+624,"Luamma","Luamma, Luʾama","–","–","–","URU.lu-a-ma","town","Assyria, Arrapḫa province","Bagg RGTC 7 2/1: 372 (Luamma 2)"
+625,"Lubda","Lubda, Tawūq, Daquq",3,"35.13133","44.45683","–","prov. capital","–","Helsinki Atlas: 12 (map 10 D1)"
+626,"Luddi","Luddi, Lūdu, Lûd, לוּד, Lydia","–","–","–","lu-ud-di, KUR.lu-ud-di, לוּד","country","Anatolia","Bagg RGTC 7 1: 158"
+627,"Luddin-ilu","Luddin-ilu","–","–","–","–","town","Central Assyria (?), East Tigris area (?), Laḫīru (?)","RGTC 7 2/1: 373–374"
+630,"Luʾamma","Luʾamma, Luamma","–","–","–","URU.lu-u-am-ma","town","Central Assyria, Ḫalaḫḫu","Bagg RGTC 7 2/1: 372 (Luamma 1)"
+628,"Luḫutu","Luḫutu, Luʿaš",3,"–","–","–","country","–","Helsinki Atlas: 12 (map 2 C5)"
+616,"Lāqê","Lāqê, Laqê, Laqû",2,"–","–","–","territory, country, province","–","Helsinki Atlas: 12 (map 9 C1)"
+617,"Lāra...","Lāra...","–","–","–","URU.la-a-ra-x-x","town","Central Assyria (?)","Bagg RGTC 7 2/2: 365"
+629,"Lūsanda","Lūsanda, Lawasantia, Lwsnd, Elbistan",4,"38.2065","37.20366","–","city","–","Helsinki Atlas: 12 (map 2 D2)"
+633,"Madaktu","Madaktu, Tepe Patak, Badake",4,"32.5","47.76666","–","city","–","Helsinki Atlas: 12 (map 16 D1)"
+634,"Madara","Madara, Matar",2,"37.71416","40.9505","–","city","–","Helsinki Atlas: 12 (map 3 D3)"
+635,"Maganiṣi","Maganiṣi","–","–","–","–","town","Central Assyria, Nineveh province","RGTC 7 2/2: 380"
+636,"Maganuba","Maganuba, Maganubba, Magganubba","–","–","–","URU.ma-ag-ga-nu-ub-ba, URU.ma-ga-ni-ib, URU.ma-ga-nu-ba","town","Central Assyria, Dūr-Šarrukīn province","Bagg RGTC 7 2/2: 380–381"
+637,"Magidû","Magidû, Megiddo, Megiddôn, Tell al-Mutesellim, Tell el-Mutasallim",1,"32.58534","35.18437","–","prov. capital","–","Helsinki Atlas: 13 (map 7 D4), <a href=https://ochre.lib.uchicago.edu/Megiddo/ Megiddo III Digital Archive</a>"
+638,"Magrīsu","Magrīsu, Magrisu, Magarisu, Magrisi, Magarisi, Makrisā, Magrus, Tell Haṣaka, Tell Abū-Bakr, Tell Hasaka (?)",3,"36.49907","40.75183","URU.ma-ag-ri-su, URU.ma-ga-ri-si, URU.ma-ga-ri-su","city","Ḫābūr area","Helsinki Atlas: 13 (map 3 D4), Bagg RGTC 7 2: 381"
+643,"Mallanāte","Mallanāte, Mallanate, Maʾallanate, Mallanum","–","–","–","–","town","Balīḫ basin","Bagg RGTC 7 2/2: 386"
+644,"Maltai","Maltai","–","36.84055","42.94502","–","monument","Iraq , Assyria","Helsinki Atlas: 13 (map 4 B5)"
+640,"Malāḫu","Malāḫu, Malaḥ d'Ezraʿa",3,"32.79999","36.33333","–","city","–","Helsinki Atlas: 13 (map 8 B4)"
+645,"Mandiru","Mandiru","–","–","–","LÚ.man-di-ra-a-a, KUR.ma-di-ra-a-a, URU.man-di-ri-a-a","town","Elam","<a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+646,"Manisa","Manisa","–","–","–","KUR.ma-ni-sa-a-a, KUR.ma-ni-sa-a-a-u",",land","–","Parpola Toponyms: 236"
+647,"Manna","Manna, Minni, Mannea",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 5 B4)"
+648,"Manṣuāti","Manṣuāti, Manṣuati, Manṣuāte, Manṣuate, Manṣuati, Manṣuātu, Manṣuatu, Maṣyāf,Maṣyāt, Maṣyāṭ, Maṣyād, Mnḏt, Masyaf",2,"35.06614671547394","36.34331897024435","–","prov. capital","–","Helsinki Atlas: 13 (map 8 B1)"
+649,"Manṣuāti (alt. loc.)","Manṣuāti (alt. loc.), Massyas, al-Biqāʾ",3,"33.747","35.8945","–","prov. capital","–","–"
+650,"Marad","Wanna wa Sadūm, Tell es-Sadum",1,"32.09186862054076","44.7833573553678","–","city","–","Helsinki Atlas: 13 (map 10 D4)"
+651,"Mardijanê","Mardijanê, Maride, Mardīn",3,"37.31333","40.72083","–","town","–","Helsinki Atlas: 13 (map 3 D3)"
+652,"Margu","Antiokia Margiana, Merv, Erk Kala, Gyaur Kala","–","37.66893324474648","62.19383087233302","–","–","–","–"
+653,"Mari","Mari, Tell Hariri","–","34.55048884495861","40.8900285084387","–","–","–","–"
+654,"Mariametu","Mariametu","–","–","–","–","town","Ḫābūr area","RGTC 7 2/2: 391"
+655,"Marib","Marib","–","15.42575","45.33242","–","–","–","–"
+656,"Marqāsa","Gurgum, Marqāsa, Marqasi, Marqas, Germanikeia, Marʿāš, Kahramanmaraş",1,"37.58709","36.92543","–","prov. capital","Gurgum, Marqāsa","Helsinki Atlas: 13 (map 2 C3)"
+657,"Marratu","Marratu, Persian Gulf",2,"–","–","–","sea","–","Helsinki Atlas: 13 (map 17 B4)"
+658,"Marubištu","Marubištu, Ḫorramābād",4,"33.48733","48.3585","–","capital","–","Helsinki Atlas: 13 (map 11 D3)"
+660,"Maruri","Maruri, Maruru, Marūru","–","–","–","URU.ma-ru-ri, URU.ma-ru-ru","town","Southern Babylonia, Bīt-Iakīn (?)","Bagg RGTC 7 3/1: 396"
+659,"Marūm","Marūm, Marum, Qarn Ḥiṭṭīn, Merôm",3,"32.8","35.46667","–","town","Israel, Galilea","Helsinki Atlas: 13 (map 8 A4), Bagg RGTC 7/1: 171–172"
+661,"Masāka","Masāka, Amasakku, Tell Muḥammad (2)",4,"36.9255","41.1835","–","town","–","Helsinki Atlas: 13 (map 3 E4)"
+665,"Matiātu","Matiātu, Matiatu, Matiāte, Matiate, Midyāt",1,"37.41418721778389","41.37739487559983","–","city","–","Helsinki Atlas: 13 (map 3 E3)"
+666,"Maturaba","Maturaba","–","–","–","–","town","Central Assyria, Arzūḫina province","RGTC 7 2/2: 420"
+668,"Mazani","Mazani (?)","–","–","–","–","village","Assyria","Bagg RGTC 7 2/2: 420"
+662,"Maškan-šapir","Maškan-šapir, Tell Abu Duwari H639","–","32.40508948708455","45.22069097667509","–","–","–","–"
+663,"Mašqīte","Mašqīte, Mašqītu, Mašqitu","–","–","–","URU.maš-qi-te","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 2: 396–397"
+639,"Maḫalliba","Maḫalliba, Maḥālib",1,"33.35","35.48333","–","city","–","Helsinki Atlas: 13 (map 8 A3)"
+673,"Meluḫḫa","Kūsu, Kush, Cush, Kuš, Meluḫḫa, Emeluḫḫa, Nubia","–","–","–","me-luḫ-ḫa, KUR.me-luḫ, KUR.me-luḫ-ḫa, KUR.me-luḫ-ḫi, KUR.mi-luḫ-ḫa, KUR.me-luḫ-ḫe, KUR.me-luḫ-ḫe-e, KUR.me-luḫ-ḫe-e.KI, LÚ.me-luḫ-ḫe-e, KUR.eme-luḫ-ḫa, KUR.me-lu-ḫi, KUR.me-luḫ-x-ḫa","country, territory","Africa, Nubia, India","Bagg RGTC 7 2/2: 422–424"
+672,"Melīdi","Melīdi, Melīde, Melitēnē, Melid, Meliddu, Kammānu, Kammanu, Kammanūja, Malataya Plain",1,"–","–","KUR.me-li-di, KUR.me-li-i-di, KUR.me-lid-di, KUR.me-lid-du, KUR.ma-li-da-a-a, KUR.me-li-da-a-a, KUR.me-lid-a-a, KUR.me-lid-da-a-a, KUR.mé-li-da-a-a, KUR.mi-li-da-a-a, KUR.mi-lid-da-a-a, LÚ.mi-li-da-a-a, KUR.kam-ma-ni, KUR.kam-ma-nu, KUR.kam-ma-nu-a-a","state, province","Anatolia, Kummuḫi (part of since 712?), Province of turtānu šumēlu (since 708)","Helsinki Atlas: 13 (map 3 A2), Bagg RGTC 7/1: 132, 172–174, <a href=https://pleiades.stoa.org/places/319432673</a>, <a href=https://pleiades.stoa.org/places/629040>Pleiades: Melitene</a>"
+674,"Mempi","Mempi, Memphis, Memfis","–","29.85544","31.25644","URU.me-em-pi, URU.me-in-pu, URU.me-im-pi, URU.mi-in-pu","city","Egypt","Bagg RGTC 7 2/2: 424–425"
+677,"Mezê","Mezê","–","–","–","–","town","Assyria, Gūzāna province","RGTC 7 2/2: 428"
+675,"Mešta","Mešta, Hasanlu",2,"37.00458","45.45889","–","city","–","Helsinki Atlas: 13 (map 5 A3)"
+671,"Meḫinî","Meḫinî","–","–","–","–","town","–","RGTC 7 2/2: 421"
+678,"Mila Mergi","Ilimmer, Ilimeri, Ilimeru, Mila Mergi, Millet Mergi",1,"37.00583","42.9135","–","monument","Iraq, Birtu (province)","Helsinki Atlas: 10 (map 4 B4), <a href=https://pleiades.stoa.org/places/649834357>Pleiades: Mila Mergi</a>"
+679,"Milawanda","Milawanda, Miletos, Miletus (?)",4,"37.532214329903","27.27993258015492","–","–","–","–"
+680,"Milqia","Milqia, ʿAin Kawa, mlqy",3,"36.22916","43.99166","–","town","–","Helsinki Atlas: 13 (map 4 D5)"
+681,"Minūʾ","Minūʾ","–","–","–","URU.mi-nu-uʾ, URU.mu-nu-uʾ","town","Northern Babylonia","Bagg RGTC 7 3/1: 412"
+682,"Missi","Missi",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 11 C1)"
+683,"Mubî (town)","Mubî","–","–","–","URU.mu-bi-a-a, LÚ.mu-bi-a-a","town","Central Assyria","Bagg RGTC 7 2/2: 430"
+684,"Mugdan","Mugdan, Umm el-Jir K97 (?)",4,"32.65043710008911","44.85026956964368","–","–","–","–"
+686,"Mulu...","Mulu...","–","–","–","–","city, town","Assyria","–"
+685,"Mulî","Mulî, Bolgar Dağlari",2,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 1 D3)"
+690,"Musru","Musru, Ğabal Maqlūb",1,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 4 C5)"
+689,"Musīna-aplu-iddina","Musīna-aplu-iddina","–","–","–","URU.mu-si-na-A-AŠ","town","Arpadda province","Bagg, RGTC 7 1: 178"
+694,"Mutkīnu","Mutkīnu, Tell ʿAbīr",2,"36.692","38.09983","–","town","–","Helsinki Atlas: 13 (map 3 B4)"
+693,"Mušku","Mušku, Musku, Muški, Muski, Phrygia","–","–","–","–","country","Turkey","–"
+691,"Muṣur","Muṣur, Egypt, Miṣraim, Miṣir",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 13 A3)"
+688,"Muṣāṣir","Muṣāṣir, Muṣaṣir",1,"36.80353","44.59303","–","city, capital","Urarṭu","Helsinki Atlas: 13 (map 4 D5)"
+631,"Mādaba","Mādaba, Madaba, Mēdeba","–","31.714700808822","35.79229526122018","–","–","–","–"
+632,"Mādāia","Mādāia, Mādai, Mēdia, Media",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 12 A1)"
+641,"Māliki","Māliki","–","–","–","URU.ma-la-ki, URU.ma-lak, URU.ma-li-ki, URU.ma-lak-a-a","town","Rāši, Elam","Bagg RGTC 7 3/1: 386"
+642,"Māliku","Māliku","–","–","–","URU.ma-li-ku, URU.ma-li-ki","town","Ǧazīra (?), Rāši (?)","Bagg RGTC 7 2/2: 385 (Māliku), Bagg RGTC 7 3/1: 386 (Māliki) (?)"
+664,"Māt Tāmti","Māt-tâmti, Māt Tāmti, Sealand",2,"–","–","–","territory","–","Helsinki Atlas: 13 (map 16 B2)"
+667,"Māzamua","Māzamua, Zamua, Lullumû, Lullu, Lullubu, Lullubum",2,"–","–","KUR.lu-ul-lu","state, province","Māzamua, Lullumû","Helsinki Atlas: 13 (map 11 A1), Radner (2006), RlA 11: 51–52"
+669,"Māʾab","Māʾab, Môʾāb, Moab",1,"–","–","–","country","–","Helsinki Atlas: 13 (map 7 D5)"
+676,"Mēturna","Mēturna, Mê-Turnat, Mê-Turran, Mê-Turan, Mê-Turnu, Tell Ḥaddād (?), Tell al-Sīb (?), es-Sib (?), Tulul Baradan (?), Tell Baradan (?), Haddad (?)",1,"34.18581","45.05152","–","city","–","Helsinki Atlas: 13 (map 10 D2), <a href=https://pleiades.stoa.org/places/894042>Pleiades: Me-Turnat</a>"
+687,"Mūru","Mūru, Tibil",3,"36.692","37.01917","–","city","Bīt-Agūsi","Helsinki Atlas: 13 (map 2 D4)"
+692,"Mūši","–",3,"36.53333","44.4","–","town","–","Helsinki Atlas: 13 (map 4 D5)"
+695,"Nabada","Nabada, Tell Beidar","–","36.73816167702558","40.58730935539984","–","–","–","–"
+696,"Nabajāti","Nabajāti, Nabâtu, Nebaʾāti, nbyt, n<sup>e</sup>bāyôt, נְבָיוֹת, nbyh, 𐡍𐡁𐡉𐡄","–","–","–","KUR.na-ba-a-a-te, KUR.na-ba-a-a-ti, LÚ.na-ba-a-a-ti, URU.na-ba-a-a-ti, KUR.na-ba-a-a-ta-a-a, KUR.na-ba-a-a-ti-a-a, LÚ.na-ba-a-a-ta-a-a, נְבָיוֹת, 𐡍𐡁𐡉𐡄","tribe, territory","Arabian Peninsula","Bagg RGTC 7 2/2: 439–440"
+698,"Nabula","Nabula, Nawali, Gir Nawas, Girnavaz",1,"37.10493","41.23044","–","town","–","Helsinki Atlas: 13 (map 3 E3)"
+697,"Nabû Temple of Kalḫu","Ezida, Nabû Temple of Kalḫu","–","36.0970655912","43.3303415509","É.ZI.DA","temple","Central Assyria, Kalḫu province, Kalḫu","George 1993, House Most High: 160, <a href=https://pleiades.stoa.org/places/242008148>Pleiades: Ezida (Kalhu)</a>"
+700,"Nagiāti","Nagiāti, Nagiati, Nagiātu, Nagiatu",3,"34.50183","40.9165","URU.na-gi-a-te","town","–","Helsinki Atlas: 13, Bagg RGTC 7 2: 442 (map 9 C2)"
+701,"Nagsu","Nagsu, U175 (?)",4,"31.69619309557163","45.7837152077515","–","–","–","–"
+704,"Nahr el-Kelb","Nahr el-Kelb, Nahr al-Kalb","–","33.955434","35.597312","–","monument","Lebanon","<a href=https://pleiades.stoa.org/places/2970016>Pleiades: Nahr al-Kalb monuments</a>"
+705,"Najafehabad","Najafehabad, Nağafabad, Najafabad","–","34.4295","47.86967","–","monument","Iran, Kišēsim","Helsinki Atlas: 28 (map 11 B2)"
+706,"Nal","Nal",2,"–","–","–","mountain","–","Helsinki Atlas: 13 (map 4 B5)"
+707,"Nampigu","Nampigu, Nappigi, Nappigu, Menbiğ, Membiğ, Bambykē, Manbij","–","36.52828807598983","37.95515225576806","–","city","–","Helsinki Atlas: 13 (map 3 A4)"
+708,"Namri","Namri",2,"–","–","–","country","–","Helsinki Atlas: 13 (map 11 B2)"
+709,"Namrītu","Namrītu, Nāudār","–","–","–","–","river","–","Helsinki Atlas: 13 (map 11 B2)"
+710,"Napata","Napata, Jebel Barkal","–","18.53531834028109","31.83062507955553","–","–","–","–"
+711,"Napisina","Napisina","–","–","–","URU.na-pi-si-na","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2: 447"
+712,"Napisu","Napisu","–","–","–","URU.na-pi-su, na-pi-šá-a-a, KUR.na-pi-sá-a-a","town","Assyria, Laḫīru","Bagg RGTC 7 2: 447, "
+719,"Natḫu","Natḫu, Natḫû, Nathō, Leontōn Polis, Leontopolis, Tall al-Muqdām, Tell el-Moqdam","–","30.67955","31.35798","URU.na-at-ḫu-ú","city","Muṣur, Egypt","Bagg RGTC 7 2/2: 451 (Natḫû 2), <a href=https://pleiades.stoa.org/places/727147>Pleiades: Leontopolis</a>"
+720,"Natḫû","Natḫû, Nathō, Leontōn Polis, Leontopolis, Tall al-Yahūdīya, Tell el-Yahudiya","–","30.2921","31.33083","URU.na-at-ḫu-ú","city","Muṣur, Egypt","Bagg RGTC 7 2/2: 451 (Natḫû 1), <a href=https://pleiades.stoa.org/places/727146>Pleiades: Leontopolis</a>"
+721,"Naʾiri","Naʾiri, Nairi",2,"–","–","–","region","–","Helsinki Atlas: 14 (map 3 D3)"
+702,"Naḫal Muṣur (alt. loc.)","Naḫal Muṣur (alt. loc.), Wādī Ġazza","–","–","–","–","river","–","–"
+703,"Naḫal-Muṣur","Naḫal-Muṣur, Naḥal Mizraim, נהל מצרים, נהר מצרים, River of Egypt, Brook of Egypt, Wādī al-ʿArīš, وادي العريش",2,"–","–","na-ḫal KUR.mu-ṣur, na-ḫal KUR.mu-uṣ-ri","river","Egypt","Helsinki Atlas: 14 (map 13 C3), Bagg RGTC 7 1: 291"
+718,"Naṣībina","Naṣībina, Naṣībīna, Naṣībīni, Naṣipinu, Naṣipanu, Naṣibina, Nisibis, Nuṣaybin, Nisibin, Nisibis, Nusaybin",1,"37.06887","41.21395","na-ṣi-be-na, na-ṣi-pa-ni, na-ṣib-i-na, na-ṣib-na, URU.na-ṣa-pi-na, URU.na-ṣi-bi-na, URU.na-ṣi-pi-na, URU.na-ṣib-bi-na, URU.na-ṣib-na, URU.na-ṣib-i-na, URU.na-ṣi-pi-na-a-a","prov. capital","Ḫābūr area","Helsinki Atlas: 14 (map 3 E3), Bagg RGTC 7 2: 449–450"
+726,"Nerebtum","Nerebtum, Ishchali","–","33.30358590414998","44.58274622287485","–","–","–","–"
+727,"Nikippa","Nikippa",2,"–","–","–","mountain","–","Helsinki Atlas: 14 (map 11 B1)"
+728,"Nikkur","Nikkur, Rawānsīr",4,"34.74983","46.631","–","prov. capital","–","Helsinki Atlas: 14 (map 11 B2)"
+729,"Nilibši","Nilibši, Nilabšini, Nagar, Nawar, Tell Brāk, Tell Brak, تل براك","–","36.6671","41.0585","–","town","–","Helsinki Atlas: 14 (map 3 E4)"
+730,"Ninâ","Nina, Surġūl, Tulūl -az-Zurġūl, Surghul, Ishan Durghul",1,"31.37762560029498","46.49431484186504","–","town","–","Helsinki Atlas: 14 (map 16 B2)"
+732,"Nippur","Nippur, Nuffar",1,"32.12623","45.23134","–","city, provincial capital","Babylonia","Helsinki Atlas: 14 (map 10 E4), <a href=https://oi.uchicago.edu/research/projects/nippur-expedition>Nippur Expedition</a>"
+733,"Nipur","Nipur, Ğudi Dağ",2,"37.39866","42.46366","–","mountain","–","Helsinki Atlas: 14 (map 4 B4)"
+734,"Nirgi","Nirgi","–","–","–","URU.ni-ir-gi","town","Central Assyria (?)","Bagg RGTC 7 2/2: 468"
+735,"Nisa","Nisa","–","37.95153","58.21157","–","–","–","–"
+737,"Niʾ","Niʾ, Thebe, Thebes, Waset, Nut","–","25.70837095778625","32.64734464125721","–","–","–","–"
+738,"Niʾu","Niʾu, Nihi, Niḫi, Niya, Apamea, Qalʿat Maḍīq, Qal'at el-Mudiq",2,"35.4198576713808","36.392271981049","–","town","–","Helsinki Atlas: 14 (map 8 B1)"
+736,"Niṣir","Niṣir, NiMUŠ, Pir-i Mukurun, Pir Omar Gudrun, Pire Magrūn",2,"35.77247","45.22961","–","mountain","–","Helsinki Atlas: 14 (map 10 E1), Bagg RGTC 7 3/1: 96 (in connection with Bāru)"
+740,"Nulia","Nulia, Niara, Lulia (?), Niyara, Niyārah, نيارة, Ǧabal Semʿan (?), جبل سمعان, Ǧabal Barakat (?), Šeiḫ Bereket (?), شيخ بركات","–","36.27615","36.82203","URU.nu-li-a","town","Pattinu, Syria","Bagg RGTC 7 1: 183, <a href=https://pleiades.stoa.org/places/658546>Pleiades: Niara</a>"
+741,"Nuniba","Nuniba","–","–","–","URU.nu-ni-ba","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 470"
+739,"Nuḫubu","Nuḫubu, Nuḫbu, Nuḫba","–","–","–","–","town","–","RGTC 7 2/2: 469"
+713,"Nār Šarri","Nār-šarri, Nār-Šarri, Nahar Malkā",2,"–","–","–",",canal","–","Helsinki Atlas: 13 (map 10 D3)"
+714,"Nārtu","Nārtu",3,"–","–","–","territory","–","Helsinki Atlas: 14 (map 11 D2)"
+715,"Nārtu elītu","Nārtu elītu, Nārtu-elītu","–","–","–","–","river","–","Helsinki Atlas: 14 (map 12 A2)"
+716,"Nārtu šaplītu","Nārtu šaplītu, Nārtu-šaplītu","–","–","–","–","river","–","Helsinki Atlas: 14 (map 11 D2)"
+717,"Nāru ša Bīt-Dērāia","Nāru-ša-Bīt-Dērāia, Nāru-ša-Bīt-Dērāja, Galāl Badra",2,"–","–","–","river","Bīt-Dērāja","Helsinki Atlas: 14 (map 11 A3)"
+722,"Nēbarti-Aššur","Nēbarti-Aššur, Tall Graiye 3, Al Qurayyā, El Qraïyé, القورية, القريا","–","34.95629","40.54139","né-bar-ti-aš-šur","town","Middle Euphrates, Syria","Bagg RGTC 7 2/2: 451–452"
+723,"Nēmed-Issār","Nēmed-Issār, Nēmed-Ištar, Tell ʿAfar",4,"36.37667","42.46583","URU.ne-med-<sup>d</sup>15, URU.né-med-15, URU.né-med-<sup>d</sup>15, URU.né-med-<sup>d</sup>INANNA, URU.né-med-<sup>d</sup>15-a-a","city","Assyria, North Ǧazīra, Raṣappa","Helsinki Atlas: 14 (map 4 B5), Bagg RGTC 7 2/2: 452–453"
+724,"Nēmed-Laguda","Nēmed-Laguda, Nēmed-Lagudu","–","–","–","UŠ-dla-gu-du.KI, URU.né-med-dla-gu-da, URU.né-me-ed-la-gu-da, né-med-dla-gu-da.KI","town","Southern Babylonia","–"
+725,"Nērab","Nērab, Nīrabu, Nereb, Nayrab, Neirab",1,"36.1775","37.22708","–","city","Arpadda province","Helsinki Atlas: 14 (map 2 D4), Bagg, RGTC 7 1: 178"
+731,"Nīnuwa","Nīnuwa, Nīnevē, Nīnuwā, Nīnua, Nineveh, Tell Qūyunğiq, Tell Nebi Yunus",1,"36.35929","43.15199","–","capital, city","Assyria","Helsinki Atlas: 14 (map 4 C5)"
+742,"Padakku","Padakku, Ha'it","–","25.98033212387223","40.4744466279597","–","–","–","–"
+743,"Padānu","Padānu, Paddanu, Padāni, Padnu","–","–","–","URU.pa-da-a-ni, URU.pa-da-ni, URU.pa-ad-nu","town","Diyala Region","Bagg RGTC 7 2/2: 472 (Padnu), Parpola Toponyms: 271 (Padāni)"
+745,"Paiê","Paiê","–","–","–","–","town","North Assyria (?)","RGTC 7 2/2: 473"
+746,"Palgu ša Ḫabūr","Palgu-ša-Ḫabūr, Dawwarīn Canal",2,"–","–","–","canal","–","Helsinki Atlas: 14 (map 9 C1)"
+747,"Pallūkat","Pallūkat, al-Fallūğa, Pallakottas",1,"33.357","43.77583","–","town","–","Helsinki Atlas: 14 (map 10 C3)"
+748,"Panziš","Panziš",4,"36.41666","47.08333","–","fortress","–","Helsinki Atlas: 14 (map 5 C4)"
+749,"Pappa","Pappa, Paphos, Pāphos, Kouklia",1,"34.70773537188416","32.57386157169607","–","city","–","Helsinki Atlas: 14 (map 7 A2)"
+750,"Paqarḫubūni","Paqarḫubūni, Gaziantep",3,"37.06618","37.38332","–","city","–","Helsinki Atlas: 14 (map 2 D3)"
+752,"Paritakka","Partakka, Parētakēnē, Isfanān",2,"–","–","–","territory","–","Helsinki Atlas: 14 (map 12 A3)"
+753,"Parsua","see also Parsumaš",2,"–","–","–","state, province","–","Helsinki Atlas: 14 (map 11 B2)"
+754,"Parsumaš","Fars, Persis, see also Parsua",2,"–","–","–","territory","–","Helsinki Atlas: 14 (map 17 C2)"
+756,"Patibīri","Patibīri, Bad-tibira, Bad-Tibira, Tell Madain, Tell Medinah, Madain",1,"31.38134980866285","46.00364502667787","–","town","–","Helsinki Atlas: 14 (map 16 A2)"
+757,"Patiškun","Patiškun, Phathakon (?), Istilil (?)","–","–","–","URU.pa-ti-iš-kun (?)","town","Bīt-Zamāni","Bagg RGTC 7 2: 476"
+758,"Patti-Illil","Patti-Illil, Patti-Enlil",2,"–","–","–",",canal","Northern Babylonia","Helsinki Atlas: 14 (map 10 C3)"
+759,"Pattinu","Kullanīa, Kunulua, Kinalūa, Kullania, Kunalīa, Pattinu, Patina, Patinu, Pattina, Ḫattina","–","–","–","–","state, territory, province","Kullanīa, Pattinu, Syria","Helsinki Atlas: 14 (map 2 C4)"
+760,"Patušarra","Patušarra, Padašvar, Pateischoreis",3,"–","–","–","country","–","Helsinki Atlas: 14 (map 6 D5)"
+755,"Pašime","Pašime, Tell Abu Sheeja","–","32.39476517362748","47.14907362172696","–","–","–","–"
+744,"Paḫri","Paḫri, Misis",3,"36.96183","35.61333","–","city","–","Helsinki Atlas: 14 (map 2 B4)"
+761,"Penzâ","Penzâ, Genç","–","38.75056","40.55417","URU.pe-en-za-a ","city","Šubria, Turkey ","Helsinki Atlas: 14 (map 3 D2), Bagg RGTC 7 2/2: 477, <a href=https://www.geonames.org/314649/genc.html>Geonames: Genç</a>"
+762,"Persepolis","Persepolis, Parsa, Persai, Sat Setun, Takht-i Jamshid","–","29.9353403333","52.889437","–","–","Iran, Anšan, Elam","<a href=https://pleiades.stoa.org/places/922695>Pleiades: Persepolis/Parsa/Persai/Sat Setun</a>"
+763,"Pilistu","Pilistu, Philistia, Pelištî",1,"–","–","–","country","–","Helsinki Atlas: 14 (map 7 C5)"
+765,"Province of masennu","Province of masennu, Māt masenni",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt masenni, map 4 B4)"
+766,"Province of nāgir ekalli","Province of nāgir ekalli, Māt nāgir ekalli, Māt-nāgir-ekalli",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt nāgir ekalli, map 4 D5)"
+767,"Province of rab šāqê","Māt rab šāqê, Province of rab šāqê",3,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt rab šāqê, map 4 A4)"
+768,"Province of turtānu","Turtānu, Māt turtāni, Province of turtānu",2,"–","–","–","territory","–","Helsinki Atlas: 13 (Māt turtāni, map 3 B3)"
+769,"Pulua","Pulua, Palu",4,"38.70239","39.9535","–","city","–","Helsinki Atlas: 14 (map 3 C2)"
+770,"Puqūdu","Puqūdu, Peqôd",3,"–","–","–","tribe","–","Helsinki Atlas: 14 (map 16 B2)"
+771,"Purattu","Purattu, Euphrates, al-Furāt",1,"–","–","–","river","–","Helsinki Atlas: 14 (map 10 B3)"
+772,"Puzriš-Dagan","Puzriš-Dagan, Drehem H1001","–","32.05966976844359","45.29229603804436","–","–","–","–"
+751,"Pāra","unknown, Pāra, Para, Bāra, Bārah, بارة","–","36.3757","41.4852","–","monument","Iraq","Helsinki Atlas: 14 (map 4 A5)"
+764,"Pīru","Pīru","–","–","–","URU.pi-i-ru","town","–","Bagg RGTC 7 2: 480"
+773,"Qablit","Qablit","–","–","–","URU.qab-lit","town","Izalla","Bagg RGTC 7 2/2: 484"
+774,"Qadinê","Qadinê, Qatnu, Qaṭṭunān, Gudadanum, Qattunān, Tell Fadġāmi",3,"35.918","40.88483","URU.qa-di-né-e","town","mid-Ḫabūr","Helsinki Atlas: 14 (map 3 D5), Bagg RGTC 7 2: 489–491"
+776,"Qadumu","Qadumu, Qatma (?)","?","36.58475767424099","36.96524084139543","–","–","–","–"
+775,"Qadīsu","Qadīsu, Qadeš, Kadeš, Qādēš, Tell Nebī Mend, Tell Nebi Mendo",1,"34.5530600329926","36.51879036532772","–","town","–","Helsinki Atlas: 14 (map 8 B2)"
+778,"Qallania","Qallania, Berdesur çay","–","–","–","–","river","–","Helsinki Atlas: 14 (map 4 E4)"
+777,"Qal’eh-i Imam","Qal’eh-i Imam, Imam Fortress, Marivan Fortress, Qal’eh-i Marivan","–","35.49134","46.17588","–","–","Iran, Kurdistan, Marivan District","<a href=https://pleiades.stoa.org/places/858969850>Pleiades: Qal’eh-i Imam</a>"
+780,"Qanû","Qanû, Qanawat","–","32.7550572637493","36.61859072108363","–","–","–","–"
+781,"Qarena","Qarena, Qarenabis","–","–","–","URU.qar-e-na","town","Izalla","Bagg RGTC 7 2/2: 487–488"
+782,"Qarnīna","Qarnina, Qarnaim, Šeiḫ Saʿd, Shaykh Sa'ad?",1,"32.836875092298","36.03687665155054","–","prov. capital","–","Helsinki Atlas: 14 (map 8 B4)"
+783,"Qarqar","Qarqar, Tell Qarqur",3,"35.74210088217787","36.33069731154433","–","city","–","Helsinki Atlas: 14 (map 2 C5)"
+785,"Qarti-Ḫaldi","Qarti-Ḫaldi","–","–","–","URU.qar-ti—ḫal-di","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 488"
+784,"Qarti-ḫadasti","Qarti-ḫadasti, Kition, Larnaca, Larnaka",1,"34.91971","33.63384","–","city","–","Helsinki Atlas: 14 (map 7 B2), <a href=https://pleiades.stoa.org/places/707556>Pleiades: Larnaka</a>"
+787,"Qatna","Qatna, Qatnu, Qatnû, Tell Ašamšāni, Tall Ašamšānī, Tell Ašamsani (?)",3,"35.8779","40.87166","KUR.qat-ni, URU.qa-at-ni, URU.qat-ni, URU.qa-at-na-a-ia, URU.qat-na-a-ia, URU.qat-ta-na-ia","town","mid-Ḫabūr","Helsinki Atlas: 14 (map 3 D5), Bagg RGTC 7 2: 489–491"
+786,"Qaštu","Qaštu","–","–","–","URU.BAN, URU.BAN-a-a","town","Assyria","Bagg RGTC 7 2/2: 489"
+788,"Qaṭna","Qaṭna, Tell Mishrifeh, Tall Mašrafa","–","34.83448","36.86609","–","–","North Levant","Bagg RGTC 7 2: 490 (under Qatna / Tall Ašamšānī), <a href=http://www.qatna.org/en-index.html>Qatna / Tell Mishrifeh Website</a>"
+789,"Qedeš","Qedeš, Tel Qedesh","–","33.11314","35.52853","–","–","–","<a href=https://daily.jstor.org/the-archaeological-mystery-of-tel-kedesh/>The Archaeological Mystery of Tel Kedesh</a>"
+790,"Qidru","Qidru, Qēdār, Cedrei",3,"–","–","–","country","–","Helsinki Atlas: 14 (map 15 D3)"
+791,"Qilissa","Qilissa, Khlisi, Silvan",3,"38.14883","41.01266","–","town","–","Helsinki Atlas: 14 (map 3 D2)"
+792,"Qinnasrīna","Qinnasrīna, Qinnasrīn, Nebīʾ ʿĪs, Chalcis ad Belum",2,"35.98932","37.00383","–","town","–","Helsinki Atlas: 15 (map 2 D5)"
+793,"Qipānu","Qipānu",2,"–","–","–","district","–","Helsinki Atlas: 15 (map 3 C3)"
+794,"Qirbit","Qirbit, Qirbutu, Kirbit, Ilam, Ilām",4,"33.63497","46.41528","URU.qir-bi-it, URU.qir-bi-ti, URU.qir-bit, URU.qir-bít, URU.qir-bu-tu","city","East Babylonia, Ḫalēḫasta","Helsinki Atlas: 15 (map 11 B3), Bagg RGTC 7 2/2: 494–495"
+795,"Qubbāte","Qubbāte","–","–","–","–","town","East Ǧazīra, Raṣappa (?)","Bagg RGTC 7 2/2: 495–496"
+796,"Qudāru","Qudāru","–","–","–","URU.qu-da-ru","town","Central Assyria (?)","Bagg RGTC 7 2/2: 496"
+797,"Qumbuna","Qumbuna, Qunbuna","–","–","–","URU.qu-um-bu-na, URU.qu-un-bu-na","town","Māzamua","–"
+798,"Qumēni","Qumēni, Qumanî, Qumānu, Qumēnu, Qumanû, Plain of Silopi",3,"–","–","–","territory","–","Helsinki Atlas: 15 (map 4 B4), RGTC 7 2/2: 497"
+799,"Quruba","Quruba","–","–","–","–","territory","North Assyria (?)","RGTC 7 2/2: 499"
+800,"Qurubi","Qurubi, Qurrubu","–","–","–","–","town","–","RGTC 7 2/2: 499"
+801,"Qutû","Qutû, Guti, Gutium","–","–","–","–","territory","Iran","Parpola Toponyms: 138 (Gutium)"
+802,"Quwê (capital)","Quwê, Que, Adana, Coa",4,"36.99333","35.34233","–","prov. capital","–","Helsinki Atlas: 15 (map 2 B4)"
+803,"Quwê (country)","Quwê, Que, Coa, Qewē",2,"–","–","–","province","–","Helsinki Atlas: 15 (map 2 B4)"
+779,"Qāna","Qāna, Ḫirbat Qānā",3,"37.5",42,"–","town","–","Helsinki Atlas: 15 (map 4 B4)"
+804,"Rablā","Rablā, Rablê, Riblāh, Tell Zira'at, Ribla",1,"34.45954691757429","36.57262261969346","–","city","–","Helsinki Atlas: 15 (map 8 B2)"
+805,"Radānu","Radānu, Nahr al-ʿUzaim, Physkos",2,"–","–","–","river","–","Helsinki Atlas: 15 (map 10 D2)"
+810,"Rappâ","Rappâ","–","–","–","ÍD.rap-pa-a","river","–","Parpola Toponyms: 292"
+807,"Rapâ (town)","Rapâ","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/2: 503"
+808,"Rapīḫu","Rapihu, Raphia, Rafaḥ, Rafah",1,"31.30152961251805","34.24261667132028","–","town","–","Helsinki Atlas: 15 (map 7 C5)"
+806,"Raḫimmu","Raḫimmu",3,"33.37866","43.50316","–","town","–","Helsinki Atlas: 15 (map 10 C3)"
+811,"Raṣappa","Raṣappa, Sergiopolis, Resafa, Rezef, Reṣep, (al-)Ruṣāfa",3,"35.62908419489116","38.75819320314854","–","prov. capital","–","Helsinki Atlas: 15 (map 3 B5)"
+812,"Reḫōv","Reḫōv, Rehob, Tel Rehov, Tell es-Sarem","–","32.45681300656256","35.49778333702537","–","–","–","–"
+814,"Rummunidu","Rummunidu, Rummunina, Tell Mašīḥ (?)",3,"35.20317","40.52517","URU.ru-um-mu-ni-na","town","Lāqê","Helsinki Atlas: 15 (map 9 C1), Bagg RGTC 7 2: 511"
+817,"Rusai URU.TUR","Rusai URU.TUR, Bastam","–","38.88592314900662","44.94843769009853","–","–","–","–"
+815,"Rusaḫinili Eidurukai","Rusahinili Eidurukai, Ayanis, Ağartı",1,"38.70805567683607","43.21146686196357","–","city","–","Helsinki Atlas: 15 (map 4 C3)"
+816,"Rusaḫinili Qilbanikai","Rusaḫinili Qilbanikai, Rusaḫinili, Rusahinili, Toprakkale",1,"38.50998328968381","43.40639519418901","–","city","–","Helsinki Atlas: 15 (map 4 C3)"
+809,"Rāpiqu","Rāpiqu, Rapiqu, Raphaka, Tell al-Anbār",2,"33.46666","43.25833","–","town","–","Helsinki Atlas: 15 (map 10 C3)"
+813,"Rēš-ēni","Rēš-ēni, Rus al-ʿAin",2,"36.54999","43.21666","–","village","–","Helsinki Atlas: 15 (map 4 C5)"
+818,"Sa","Sa, Sais, Sa el-Hagar","–","30.96246207693751","30.76838085331379","–","–","–","–"
+820,"Sabḫānu","Sabḫānu",3,"32.46666","44.3","–","fortress","–","Helsinki Atlas: 15 (map 10 D4)"
+821,"Sagūru","Sagūru, Sagurri, Sāğūr, Nahr as-Sāğūr",1,"–","–","–","river","–","Helsinki Atlas: 15 (map 3 A4)"
+825,"Sairi","Sairi, Sairu","–","–","–","URU.sa-i-ri","town","Assyria","Bagg RGTC 7 2/2: 518"
+826,"Salammê","Salammê","–","–","–","–","town","Central Assyria (?), East Tigris area (?), Laḫīru (?)","RGTC 7 2/2: 519"
+827,"Salimāni","Salimāni","–","–","–","–","town","Central Assyria, Kalḫu province","RGTC 7 2/2: 520"
+828,"Sallat","Sallat, Salatu",3,"33.16667","43.91667","URU.sa-la-te","town","Northern Babylonia","Helsinki Atlas: 15 (map 10 C3)"
+829,"Saluara","Saluara, Labotas, Kara su",1,"–","–","–","river","–","Helsinki Atlas: 15 (map 2 C4)"
+830,"Samakku","Samakku","–","–","–","URU.sa-ma-ak-ka, URU.sa-ma-ku","town","Central Assyria","Bagg RGTC 7 2/2: 521"
+831,"Samarra","Samarra","–","34.206","43.88002","–","–","–","–"
+833,"Samsimurūna","Samsimurūna, Ğūniya","–","33.97783","35.62816","–","capital","–","Helsinki Atlas: 16 (map 8 A3)"
+1058,"Samānu","Samānu","–","–","–","URU.sa-ma-na, URU.sa-ma-ni, URU.sa-ma-nu, URU.sa-am-ma-na-a-a, URU.sa-ma-na-a-a","town","Assyria, Šibanība","Bagg, RGTC 7/2–2: 521"
+834,"Samʾalla","Samʾalla, Samʾal, šmʿl, Zencirli, Zincirli, Zinçirli",1,"37.10332","36.67788","–","prov. capital","Sam'al, Samʾalla, Bīt-Gabbāri","Helsinki Atlas: 15 (map 2 C3), <a href=https://zincirli.uchicago.edu>Zincirli Höyük</a>"
+835,"Sangarītu","Sangarītu, Saggaratum, Tell Abū Ḥāʾit, Tell Abu Ha'it",3,"35.25119717279915","40.55705303323461","–","town","–","Helsinki Atlas: 16 (map 9 C1)"
+836,"Sangibūtu","Sangibūtu, Bīt-Sangibuti, Bīt-Sangibūti, Plain of Ḫoy, Plain of Khoy, Khowy, Ḫōy, خوی",2,"38.5503","44.9521","KUR.É-sa-an-gi-bu-ti, KUR.sa-an-gi-bu-te, KUR.sa-an-gi-bu-ti","district, Urarṭian province","Urarṭu, Iran, West Azerbaijan","Zimansky (1990), <i>Urartian Geography and Sargon's Eighth Campaign</i>, JANES 49/1: 15, Parpola Toponyms: 88, 303, Bagg RGTC 7 3/1: 149 (Bīt-Sangibūti 2), Helsinki Atlas: 16, 29 (Sangibūtu (1), map 4 D3)"
+837,"Sanīru","Sanīru, Senîr, Sanīr, Hermon",2,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 8 A3)"
+838,"Sapalāte","Sapalāte","–","–","–","–","town","–","RGTC 7 2/2: 522"
+839,"Sapirrutu","Sapirrutu, Saburutu, Sabiritu, Sapiratum, Sapîratum, Ğazīrat Bēğān, Bijan",3,"34.30701","42.12688","URU.sa-bi-re-te, URU.sa-bi-ru-tu, URU.sa-pi-ri-te, sa-pi-rit","town","mid-Euphrates, Sūḫu","Helsinki Atlas: 16, Bagg RGTC 7 2: 516"
+842,"Sardes","Sardes, Sartmustafa","–","38.48488020937479","28.04362609584273","–","–","–","–"
+843,"Sarduriḫinili","Sarduriḫinili, Sardurihinili, Chavushtepe, Çavuştepe",2,"38.35299780346134","43.46128741722196","–","city","–","Helsinki Atlas: 16 (map 4 C3)"
+846,"Sarrabānu","Sarrabānu","–","–","–","URU.sa-rab-na-a.a, URU.sa-ar-rab-a-ni, URU.sa-ar-rab-a-nu, URU.sa-ar-ra-ba-nu, URU.sar-ra-ba-ni, URU.sa-ar-ra-ba-a-nu","city","Southern Babylonia, Bīt-Šilāni","–"
+847,"Sarragitu","Sarragitu, Sarragītu, Šarragitu","–","–","–","URU.šá-ra-gi-ti, URU.sa-ar-ra-gi-tu, sa-ra-gi-ti, sa-ar-ra-gi-ti, URU.sar-gi-te (?)","fortified city","Babylonia","<a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+844,"Sarê","Sarê, Altūn Kūbrī",4,"35.7455","44.13983","–","town","–","Helsinki Atlas: 16 (map 10 D1)"
+848,"Sarūgu","Sarūgu, Suruṣ, Sarūğ","–","36.97366","38.41883","–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+849,"Sasiqāni","Sasiqāni, Salāmīya",4,"36.13733","43.3195","–","town","–","Helsinki Atlas: 16 (map 4 C5)"
+850,"Sazabu","Sazabu, Šazabê, Tell ʿAmarna, Šaḏabu",1,"36.74532","38.01371","–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+851,"Sazanâ","Sazanâ, Šaezana",3,"34.14366","36.75333","–","town","–","Helsinki Atlas: 16 (map 8 B2)"
+852,"Saʾarru","Saʾarru, Šaʿāra",1,"33.11433","36.35499","–","town","–","Helsinki Atlas: 16 (map 8 B3)"
+822,"Saḫlāla","Saḫlāla, Tell Sahlān",3,"36.5",39,"–","town","–","Helsinki Atlas: 16 (map 3 B4)"
+823,"Saḫrīna","Saḫrīna",3,"32.41666","44.41666","–","town","–","Helsinki Atlas: 16 (map 10 D4)"
+853,"Siannu","Siannu, Siyannu, Tell Siyānu, Tell Siyanu",1,"35.36539543015847","36.00295594215738","–","city","–","Helsinki Atlas: 16 (map 8 A1)"
+857,"Sikiri","Sikiri, Kisiri, Kisiru, Tell Šaddāda",1,"36.0325","40.76433","URU.ki-si-ri, URU.si-ki-ri","town","Ḫābūr area","Helsinki Atlas: 16 (map 3 D4), Bagg RGTC 7 1: 345 (Kisiri 1)"
+856,"Sikāni","Sikāni, Sikani, Sikānu, Sikanu, Wašukanni, Tell Faḫārīya, Tell Fekheriye, Tell Fekherye",1,"36.84261","40.06983","–","town","–","Helsinki Atlas: 16 (map 3 D4), <a href=https://pleiades.stoa.org/places/572048102>Pleiades: Sikani</a>"
+859,"Sillu","Sillu, Soloi",1,"35.1415","32.81266","–","city","–","Helsinki Atlas: 16 (map 7 A1)"
+860,"Silluwa","Silluwa, Salamis, Konstanteia",1,"35.18558206858346","33.89933423453447","–","city","–","Helsinki Atlas: 16 (map 7 B1)"
+858,"Silḫazi","Silḫazi, Kūh-i Alwand",3,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 11 D2)"
+862,"Simirria","Simirria, Kūh-i Šaiḫ Māret",2,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 11 B1)"
+863,"Sinabir","Sinabir","–","–","–","KUR.si-na-bi-ir","mount","–","Parpola Toponyms: 310"
+867,"Sinaʾini","Sinaʾini","–","–","–","URU.si-na-ʾi-i-ni","town","Balīḫ basin (?)","Bagg RGTC 7 2/2: 532"
+866,"Sinaḫulzi","Sinaḫulzi","–","–","–","KUR.si-na-ḫul-zi","mount","–","Parpola Toponyms: 310"
+868,"Singāra (mountain)","Singāra, Singara, Ğabal Sinğār, Singara",1,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 4 A5)"
+869,"Singāra (town)","Singāra, Singara, Balad Sinğār, Balad Sinjar",1,"36.32755273132588","41.85724480938713","–","town","–","Helsinki Atlas: 16 (map 4 A5)"
+870,"Sinnu","Sinnu, as-Sinn",3,"35.33333","43.5","–","town","–","Helsinki Atlas: 16 (map 10 C1)"
+871,"Sinzi","Sinzi, Göksu, Singas",1,"–","–","–","river","–","Helsinki Atlas: 16 (map 3 A3)"
+864,"Sinābu (1)","Sinābu, Sinabu, Aktepe",4,"37.72451603785152","40.56932833730519","–","prov. capital","–","Helsinki Atlas: 16 (map 3 D3)"
+865,"Sinābu (2)","Sinābu, Sinabu, Murattaş, Pornak",4,"37.79679781783449","40.38033037771094","–","–","–","–"
+872,"Sippar","Sippar, Sippar-ṣērim, Tell Abū Ḥabba, Abu Habba",1,"33.06","44.25466","–","prov. capital","–","Helsinki Atlas: 16 (map 10 D3)"
+873,"Sippar-Arūru","Sippar-Arūru, Sippar-dūrim, Tell ed-Dēr, Tell ed-Der",2,"33.09812236862174","44.29948761295098","–","town","–","Helsinki Atlas: 16 (map 10 C3)"
+875,"Sirdakka","Sirdakka, Zirdiakka",4,"35.1","47.16666","–","fortress","–","Helsinki Atlas: 16 (map 11 C1)"
+876,"Sirqu","Sirqu, Terqa, Tell ʿAšāra, Ashara, تل الأشارة",1,"34.92225","40.56841","–","city","–","Helsinki Atlas: 16 (map 9 C2)"
+874,"Sirāra","Sirāra, Anti-Lebanon",3,"–","–","–","mountain","–","Helsinki Atlas: 16 (map 8 B3)"
+877,"Sissû","Sissû, Sīs, Kozan, Sission",1,"37.4475","35.82666","–","city","–","Helsinki Atlas: 16 (map 2 B3)"
+878,"Siʾimmê","Siʾimmê, Tell Ǧilāga",4,"36.96666","41.83333","–","prov. capital","–","Helsinki Atlas: 16 (map 4 A5)"
+879,"Subartu","Subartu, Šubartu, North Mesopotamia","–","–","–","su-bar-tum, su-bar-tum.KI, SU.BIR<sub>4</sub>, SU.BIR<sub>4</sub>.KI, SU.KI, šu-bar-ti, KUR.su-bar-ti, KUR.SU.BIR<sub>4</sub>","territory","North Assyria","Bagg RGTC 7 2: 538–539"
+880,"Sueia","Sueia","–","–","–","KUR.su-e-ia (?)","mount","Nairi","Bagg RGTC 7 2: 539"
+883,"Sumbu","Sumbu, Sumbi, Plain of Sulaimānīya",2,"–","–","–","district","–","Helsinki Atlas: 16 (map 11 A1)"
+884,"Sumurzu","Sumurzu, Plain of Dehra/Sar-i-Pūl Zuhāb",3,"–","–","–","territory","–","Helsinki Atlas: 16 (map 11 A2)"
+885,"Sumuʾil","Sumuʾil, Sumuʾel","–","–","–","KUR.su-mu-ìl, LÚ.su-mu-uʾ-ìl","tribe","desert to the west of Babylonia","Bagg RGTC 7 2/2: 543–544"
+887,"Supnat","Supnat, Subnat, Sufan çay",2,"–","–","ÍD.su-ub-na-at, ÍD.su-ub-nat","river","–","Helsinki Atlas: 16 (map 4 B4), Bagg RGTC 7 2: 687–688"
+889,"Sura","Sura, Suriya","–","35.89692739079189","38.77896278946255","–","–","–","–"
+890,"Surappu","Surappu, Rūdḫāne-ye Cangūle",2,"–","–","–","river","–","Helsinki Atlas: 16 (map 11 B4)"
+891,"Surikaš","Šurikaš, Surikaš",3,"–","–","KUR.su-ri-ka-áš","district","Mannea","Helsinki Atlas: 16 (map 11 B1), Parpola Toponyms: 319"
+892,"Surmarrāti","Sūr-marrati, Surmarrāti, Sāmarāʾ, Surra-man-rāʾ, Sur-marrati, Gurmarriti, Samarra",1,"34.20983","43.89167","–","town","–","Helsinki Atlas: 16 (map 10 C2), <a href=https://pleiades.stoa.org/places/894082>Pleiades: Samarra/‘Sumere’</a>"
+832,"Sāmerīna","Sāmerīna, Samerina, Samaria, Šomerôn, Shomron",1,"32.27663","35.18862","–","prov. capital","–","Helsinki Atlas: 16 (map 7 D4), <a href=https://www.telshimronexcavations.com>Tel Shimron Excavations</a>"
+841,"Sāqi","Sāqi","–","–","–","URU.sa-a-qi","town","–","–"
+882,"Sūia","Sūia, Sūja, Sūya, Sû, Sūa","–","–","–","KUR.su-ú-ia, KUR.su-ú, KUR.su-ú-a","mount","Māzamua","Parpola Toponyms: 316"
+894,"Sūru (1)","Sūru, Suru, Tell Fidēn",1,"35.35883","40.53217","URU.su-ú-ri, URU.su-ru","town","Bīt-Ḫalupê","Helsinki Atlas: 16 (map 9 C1), Bagg RGTC 7 2: 546 (Sūru 1)"
+895,"Sūru (2)","Sūru, Suru, Sūr, Sur Telbis, Sūr Telbīs",3,"34.36899","42.05814","URU.su-ru, URU.su-ú-ru, URU.su-ú-ri","town","Sūḫu","Helsinki Atlas: 16 (map 10 B2), Bagg RGTC 7 2: 547"
+896,"Sūrunu","Sūrunu, Tell Ṣūrān, Šewirin",3,"36.56643","37.21078","–","town","–","Helsinki Atlas: 16 (map 2 D4)"
+881,"Sūḫu","Sūḫu, Sūḫi, Šoaʿ",1,"–","–","–","country, province","–","Helsinki Atlas: 16 (map 9 D2)"
+929,"Tabite","Tabite, Tabitu, Thebeta (2), Tell Abū Arzala, Tall Abū Arzala",3,"36.634","41.04133","URU.ta-bi-te, URU.ta-bi-ti","town","Ḫarmiš","Helsinki Atlas: 16 (map 3 E4), Bagg RGTC 7 2: 581"
+927,"Tabāl","Tabāl, Tubal, Cappadocia",2,"–","–","–","region","–","Helsinki Atlas: 16 (map 1 D3)"
+930,"Tadmar","Tadmar, Tadmur, Palmyra, Tadmor",2,"34.54724142003493","38.27402120752187","–","city","–","Helsinki Atlas: 16 (map 8 D2)"
+933,"Taidu","Taidu, Tell Ḥamidīya, Tell Hamidiya",3,"36.81577174902419","41.16411788377453","–","city","–","Helsinki Atlas: 16 (map 3 E4)"
+934,"Tajâ","Tajâ, Taiâ, Kefr Tai, Kəfar Ṭai, Kafr Tāyā, كفر تايا, Kafr Nāyā, كفر نايا, Ṭaṭaya (?), طاطية (?)","–","36.4201","37.07461","URU.ta-ia-a","city","Pattinu, Syria","Bagg RGTC 7 1: 247, Astour (1963), JNES 22, Place-Names from the Kingdom of Alalaḫ...: 237, no. 153"
+935,"Takritain","Takritain, Tagaritejāni, Birta, Tikrit, Takrit, Takrīt, Tikrīt, Ṭrīhān",4,"34.6012","43.6925","–","–","–","–"
+936,"Talbiš","Talbiš, Talmiš, Thilutha, Telbis, Thilabous",1,"34.34466","42.08483","–","town","–","Helsinki Atlas: 17 (map 10 B2)"
+937,"Tall Zirā‘a","Tall Zirā‘a, Tell Zirā‘a","–","32.6206","35.65588","–","city","Southern Levant","<a href=http://www.tallziraa.de/Tall-Zira'a/1_106.html>The Gadara Region Project</a>"
+938,"Talmūsa","Talmūsa, Gir-e pan",4,"36.776","42.9355","–","prov. capital","–","Helsinki Atlas: 17 (map 4 B5)"
+939,"Tamarana","Tamarana, Talid...","–","–","–","–","town","Ḫarrānu area (?), Central Assyria (?)","RGTC 7 2/2: 585"
+940,"Tamessu","Tamesu, Tamassos, Politikou",1,"35.02935209404931","33.24632521688231","–","city","–","Helsinki Atlas: 17 (map 7 B1)"
+941,"Tamna","Tamna, Timnah, Timnāh, Tel Baṭaš, Tel Batash",2,"31.78414897289624","34.91169775911752","–","town","–","Helsinki Atlas: 17 (map 7 C5)"
+942,"Tamnūna","Tamnūna, Tell Ǧikān",3,"36.61666","42.83333","–","prov. capital","–","Helsinki Atlas: 17 (map 4 B5)"
+948,"Tang-i Var","Tang-i Var, Tangī Var, تنگي ور‎","–","34.9962","46.6183","–","monument","Iran, Karalla (?), Parsua (?)","Helsinki Atlas: 17 (map 11 B2)"
+949,"Tanis","Tanis, San el-Hagar","–","30.97589714736804","31.88377780122345","–","–","–","–"
+950,"Tapigga","Tapigga, Maşat Höyük","–","40.14831086580463","35.76242077279552","–","–","–","–"
+951,"Tarbiṣu","Tarbiṣu, Tarbiṣi, Tell Šarīf Ḫān, Sharif Khan",1,"36.40915","43.08089","–","city","–","Helsinki Atlas: 17 (map 4 C5)"
+953,"Tarmanazi","Tarmanazi, Tarmanaše, Turmānīn",3,"36.232","36.82183","–","town","–","Helsinki Atlas: 17 (map 2 C4)"
+954,"Tarninu","Tarninu","–","–","–","URU.tar-ni-nu, URU.tar-NINA","town","Central Assyria (?)","Bagg RGTC 7 2/2: 589"
+955,"Tartāra","Tartāra, Tartaru, Tharthar, Nahr aṯ-Ṯarṯār, Wādī ath Tharthār, وادي الثرثار, الثرثار",1,"34.97575","43.07063","ÍD.tar-ta-ri, ÍD.tar-ta-ra","river","Iraq","Helsinki Atlas: 17 (map 10 C2), <a href=https://pleiades.stoa.org/places/897854>Pleiades: Tartaru/Tharthar</a>, <a href=https://www.geonames.org/90169/buhayrat-ath-tharthar.html>Geonames: Buḩayrat ath Tharthār</a>, <a href=https://www.geonames.org/90167/wadi-ath-tharthar.html>Geonames: Wādī ath Tharthār</a>, <a href=https://www.geonames.org/90157/wadi-tharthar.html>Geonames: Wādī Tharthār</a>"
+956,"Tarzi","Tarzi, Tarsa, Tarsus, Tarsos, Gözlü Kule",1,"36.91268346363448","34.89736190801483","–","city","–","Helsinki Atlas: 17 (map 1 D4)"
+952,"Tarḫuntašša","Tarḫuntašša, Tarhuntašša, Kızıldağ (?)",4,"37.49241267862221","33.0758453490096","–","–","–","–"
+957,"Tas","Tas, Bāwiyān, Bavian",2,"36.78133","43.4075","–","mountain","–","Helsinki Atlas: 17 (map 4 C5)"
+959,"Tastiāti","Tastiāti",4,"36.46416","42.95466","–","town","–","Helsinki Atlas: 17 (map 4 B5)"
+960,"Taʿnak","Taʿnak, Taʿannach","–","32.52160394899919","35.21993788223087","–","–","–","–"
+932,"Taḫazimuna","Tahazimuna, Dazimon, Tokat",4,"40.31747950970083","36.54935398805887","–","–","–","–"
+961,"Tebiltu","Negub Tunnel","–","36.022095","43.405813","–","monument, canal","Assyria, Iraq","Helsinki Atlas: 17 (map 4 C5), <a href=https://pleiades.stoa.org/places/413309737>Pleiades: Negub tunnel</a>"
+962,"Teišebai URU","Teišebai URU, Karmir-blur","–","40.15358685587648","44.45269887985066","–","–","–","–"
+1068,"Tel Motza","Tel Motza, Tel Moza, Khirbet Mizza, Motza, Mozah, Motsa, מֹּצָה, מוֹצָא‎, Ammaous, Kolonia, Qaluniya, قالونيا‎","–","31.79445","35.16378","מֹּצָה, מוֹצָא","village, temple","Iaʾūdu, Israel","Joshua 18:26, <a href=https://pleiades.stoa.org/places/687979>Pleiades: Moza/Ammaous/Kolonia</a>, <a href=https://www.geonames.org/294148/moza.html>Geonames: Moẕa</a>"
+964,"Tell Razzuq","Tell Razzuq","–","–","–","–","–","Sūḫu, Iraq, Ḥadītha area, Ḥamrīn area","RIMB 2: 328"
+963,"Tell al-Hawa","Tell al-Hawa","–","36.763329","42.319867","–","–","Iraq, Assyria","<a href=https://pleiades.stoa.org/places/874728>Pleiades: Tell al-Hawa</a>"
+965,"Temaʾ","Temaʾ, Tayma","–","27.62679170802305","38.54894299042446","–","–","–","–"
+967,"Tigris Tunnel","Tigris Tunnel, Birkleyn, Berkilin, Berkilin Çay, Birklin","–","38.52966","40.54764","–","monument","Turkey","Helsinki Atlas: 17 (map 3 D2)"
+968,"Til-Abnu","Til-Abnu, Tell Qitar (?)",4,"36.38339418330214","38.18058176413058","–","–","–","–"
+969,"Til-Barsib","Til-Barsib, Til-Barsip, Tarbusībi, Kār-Salmānu-ašarēd, Kār-Salmaneser, Kār-Šulmānu-ašarēd, Masuwari, Tell Aḥmar, Tell Ahmar",1,"36.67443","38.12095","–","prov. capital","–","Helsinki Atlas: 17 (map 3 B4)"
+970,"Til-Baserê","Til-Bašerê, Tell Bašir, Tilbeşar",2,"36.8724936391149","37.56017941010104","–","town","–","Helsinki Atlas: 17 (map 2 D4)"
+977,"Til-Tūri","Til-Tūri, ʿAǧāmī, Tell Tūrin, Thiltauri",1,"36.426","37.671","–","city","–","Helsinki Atlas: 17 (map 2 D4)"
+973,"Til-līni","Til-līni","–","–","–","URU.DU₆-li-i-ni (URU.DU₆!-li!-i-ni!), URU.DU₆-li-ni","town","Ḫarrānu area","Bagg RGTC 7 2/2: 601"
+974,"Til-naḫīri","Til-naḫīri","–","–","–","–","town","Assyria, Ḫābūr territory","RGTC 7 2/2: 603-604"
+975,"Til-raḫajāte","Til-raḫajāte","–","–","–","–","town","Central Assyria, East Ǧazīra","RGTC 7 2/2: 605"
+976,"Til-ša-Abtāni","Til-ša-Abtāni, Tell as-Sulaima",3,"34.08333",45,"–","town","–","Helsinki Atlas: 17 (map 10 E2)"
+971,"Til-ḫarrapina","Til-ḫarrapina, Til-ḫardušina","–","–","–","–","town","Assyria","RGTC 7 2/2: 598"
+972,"Til-ḫauar","Til-ḫauar, Til-ḫawar, Bad-ḫawar, Badḫawar","–","–","–","URU.til-ḫa-ú-ar","town","Central Assyria","Bagg RGTC 7 2/2: 599"
+978,"Tilgarimmu","Tilgarimmu, Tīl-Garimme, Gürün, Tôgarmāh/Tagarama",3,"38.7175","37.27683","–","city","–","Helsinki Atlas: 17 (map 2 D2)"
+979,"Tillê","Tillê, Tell Rumailān",4,"36.94837","41.96987","–","prov. capital","–","Helsinki Atlas: 17 (map 4 A5)"
+980,"Tilmun","Tilmun, Dilmun, Failaka, al-Baḥrain,Tylos",2,"–","–","–","territory","–","Helsinki Atlas: 17 (map 17 A4)"
+981,"Timnaʾ","Timnaʾ","–","15.01919","45.80467","–","–","–","–"
+982,"Timur","Timur","–","–","–","–","fortress","Quwê (country)","–"
+983,"Tirza","Tirza, Tirzah, Tell el-Far'ah, Tell el-Far'ah (north)","–","32.287387","35.337803","תִּרְצָה","royal city","Israel, Bīt-Ḫumrî","–"
+984,"Tiʾi","Tiʾi","–","–","–","URU.ti-ʾi-i","town","Central Assyria, Dūr-Šarrukīn province","Bagg RGTC 7 2/2: 596"
+986,"Tubliaš","Tubliaš, Tupliaš, Tupliʾaš, Tubuliaš, Tubliʾaš, Nahr aṭ-Ṭīb, Rūdkhāneh-ye Meymeh",2,"–","–","ÍD.tu-bu-li-ʾa-áš","river, territory","East Babylonia","Helsinki Atlas: 17 (map 11 C4)"
+987,"Tugliš","Tugliš, Tubliš",2,"34.31316","46.17383","–","region","–","Helsinki Atlas: 17 (map 11 B2)"
+989,"Tulul al-Lak","Tulul al-Lak, Qaryat al-Lak","–","36.299303","43.263063","–","–","Iraq, Assyria","<a href=https://pleiades.stoa.org/places/741318296>Pleiades: Qaryat al-Lak</a>"
+990,"Tumme","Tumme",2,"–","–","–","territory","–","Helsinki Atlas: 17 (map 4 D5)"
+991,"Tunip","Tunip, Asharneh, al-Ašārina, Ašarne, Tell Ašarne, Tell Asharneh, Qarqar (alt. loc.), Tell Acharneh, ‘Acharneh, Acharneh",4,"35.2839","36.39936","–","–","–","Helsinki Atlas: 17 (map 8 B1), <a href=http://www.acharneh.hst.ulaval.ca/english/frameInter.html>Tell Acharneh Project</a>"
+992,"Tunna","Tunna, Dunna, Aladaǧ",2,"–","–","–","mountain","–","Helsinki Atlas: 17 (map 2 B3)"
+993,"Turlu Höyük","Turlu Höyük, Tell Turlu","–","37.75892","37.06912","–","–","Turkey","<a href=https://pleiades.stoa.org/places/201144661>Pleiades: Turlu Höyük</a>"
+994,"Turna","Turna, Diyāla",1,"–","–","–","river","–","Helsinki Atlas: 17 (map 10 D3)"
+995,"Turnû","Turnû","–","–","–","URU.tur-nu-a-a","town","Central Assyria","Bagg RGTC 7 2/2: 614"
+996,"Tursāna","Tursāna, Turšā, Turšān, Tell Māḥūz",2,"35.49155","43.83659","–","town","–","Helsinki Atlas: 17 (map 10 C1)"
+999,"Tuttul","Tuttul, Tell Bi'a","–","35.95769717739928","39.04765257021229","–","–","–","–"
+1000,"Tutub","Tutub, Khafaja","–","33.35566","44.55556","–","–","–","–"
+998,"Tušḫan","Tušḫan, Tušhan, Ziyāret Tepe, Ziyaret Tepe",3,"37.79324242090923","40.79327286803895","–","prov. capital","–","Helsinki Atlas: 17 (map 3 D3)"
+1001,"Tuʾammu","Tuʾammu, Tuwwama (?)",4,"36.19342674839879","36.81142717481402","–","–","–","–"
+988,"Tuḫana","Tuḫana, Tuhana, Tuwanuwa, Kemerhisar, Tyana, Tuwan",2,"37.82544537714595","34.5646292998379","–","city","–","Helsinki Atlas: 17 (map 1 D3)"
+943,"Tāmtu elītu","Tāmtu elītu, Tāmtu rabītu, Mediterranean Sea",2,"–","–","–","sea","–","–"
+944,"Tāmtu elītu ša Naʾiri","Tāmtu elītu ša Naʾiri, Tāmtu ša Naʾiri, Lake Van",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 4 B3)"
+945,"Tāmtu ša Kaldi","Tāmtu ša Kaldi, Persian Gulf",2,"–","–","–","sea","–","Helsinki Atlas: 17 (map 17 B4)"
+946,"Tāmtu ša Zamua","Tāmtu ša Zamua, Lake Zeribor",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 11 B1)"
+947,"Tāmtu šaplītu ša Naʾiri","Tāmtu šaplītu ša Naʾiri, Tāmtu ša Naʾiri, Lake Urmia",2,"–","–","–",",lake","–","Helsinki Atlas: 17 (map 5 A3)"
+958,"Tāsa","Tāsa, Taṣdelen, Taše",4,"38.83333","38.5","–","town","–","Helsinki Atlas: 17 (map 3 B2)"
+966,"Tīdu","Tīdu, Tidu, Kerh, Charcha, Üç Tepe, Kurkh",2,"37.82591","40.54008","–","fortress","–","Helsinki Atlas: 17 (map 3 D3)"
+1002,"Tūʾimmu","Tūʾimmu, Taʾum",3,"35.97983","36.75816","–","town","–","Helsinki Atlas: 17 (map 2 C5)"
+1072,"Uatzunza","Uatzunza","–","–","–","URU.ú-at-zu-un-za, 𒌷𒌑𒀜𒍪𒌦𒍝","fortified city","Sangibūtu, Iran","Bagg RGTC 7 3/2: 579"
+1073,"Ubabara","Ubabara","–","–","–","URU.ú-ba-ba-ra, 𒌷𒌑𒁀𒁀𒊏","fortified city","Aukanê, Iran","Bagg RGTC 7 3/2: 581"
+1003,"Ubasê","Ubasê, Tell Ḥuwaiš",3,"35.58733","43.25516","–","town","–","Helsinki Atlas: 17 (map 10 C1)"
+1004,"Udu","Udu, Arpatepe (?)",4,"37.14136","40.79761","URU.ú-da, URU.ú-di","town, fortress","Nirdun","Bagg RGTC 7 2: 621–622"
+1005,"Udūmu","Udūmu, Edom, Edôm",1,"–","–","–","country","–","Helsinki Atlas: 17 (map 14 C3)"
+1006,"Ugarit","Ugarit, Ras Shamra","–","35.60212","35.78557","–","–","–","<a href=https://ochre.lib.uchicago.edu/RSTI>Ras Shamra Tablet Inventory (RSTI)</a>, <a href=https://www.ras-shamra.ougarit.mom.fr>Ugarit Website</a>"
+1007,"Ukku","Ukku, Sirnak",4,"37.51666","42.46816","–","city","–","Helsinki Atlas: 17 (map 4 B4)"
+1009,"Ulluba","Ulluba, Birtu, Plain of Zāḫū","–","–","–","–","district, province","–","Helsinki Atlas: 17 (map 4 B4), RGTC 7 2/1: 105–106 (Birtu 2)."
+1010,"Uluruš","Uluruš","–","–","–","–","mountain","–","Helsinki Atlas: 18 (map 3 C2)"
+1011,"Umma","Umma, Tell Jokha","–","31.66743001625768","45.88767609164621","–","–","–","–"
+1012,"Unniga","Unniga, Unchae, Onchae",3,"36.26666","36.58333","–","town","–","Helsinki Atlas: 18 (map 2 C4)"
+1013,"Unqi","Unqi, ʿmg, al-ʿAmq, ʿAmuq","–","–","–","–","territory","–","Helsinki Atlas: 18 (map 2 C4)"
+1014,"Upâ","Upâ, Kūh-i-Ḫiplak",2,"–","–","–","mountain","–","Helsinki Atlas: 18 (map 11 B1)"
+1015,"Upî","Ôpis, Tell al-Muǧailāt, Tulul Mujaili'",1,"33.18443235498685","44.7019290937689","–","city","–","Helsinki Atlas: 18 (map 10 D3)"
+1016,"Upūmu","Upūmu, Fūm",3,"38.3685","40.74067","–","prov. capital","–","Helsinki Atlas: 18 (map 3 D2)"
+1017,"Uqnû","Uqnû",2,"–","–","–","river","–","Helsinki Atlas: 18 (map 11 B4)"
+1018,"Urakka","Urakka, Urkeš, Urkiš, Tell Mūzān, Tell Mozan",2,"37.05770819862687","40.99640254169595","–","city","–","Helsinki Atlas: 18 (map 3 D3)"
+1019,"Urarṭu","Urarṭu, Uruaṭri, Uraṭru, Urartu, Ararat",2,"–","–","–","country, state","Turkey, Armenia","Helsinki Atlas: 18 (map 4 B3)"
+1021,"Urrubnu","Urrubnu","–","–","–","KUR.ur-ru-ub-nu","mount","–","–"
+1022,"Urrus","Urrus, Orossus, Arsuz, Uluçinar, Rhosos",2,"36.40516","35.89133","–","town","–","Helsinki Atlas: 18 (map 2 B4)"
+1023,"Ursalimmu","Ursalimmu, Jerusalem, Yerūšalaim",1,"31.77461","35.23595","–","capital","Iaʾūdu","Helsinki Atlas: 18 (map 7 D5)"
+1025,"Uruk","Uruk, Warka, Erech",1,"31.32263","45.63961","–","prov. capital","–","Helsinki Atlas: 18 (map 16 A2)"
+1027,"Urzunapi","Urzunapi","–","–","–","–","town","Central Assyria (?)","RGTC 7 2/2: 635"
+1026,"Urzâ","Urzâ","–","–","–","URU.ur-za, URU.ur-za-a","town","Central Assyria (?)","Bagg RGTC 7 2/2: 634"
+1028,"Usalâ","Usalâ, Tell Ṣuwwar, Tell Suwwar",3,"35.50987","40.66151","URU.ú-sa-la-a","town","Lāqê","Helsinki Atlas: 18 (map 9 C1), Bagg RGTC 7 2: 635"
+1029,"Usnû","Usnû, Paltos",1,"35.29316","35.95","–","city","–","Helsinki Atlas: 18 (map 8 A1)"
+1033,"Uzuoğlan Tepe","Uzuoğlan Tepe, Ferhatli, Ferhatlı, Uzunuglantepe","–","37.60767","35.96467","–","monument","Turkey, Cilicia, Ḫilakku (?), Quwê (country) (?)","Helsinki Atlas: 18 (map 2 B3), O. Aytuğ Taşyürek, Some New Assyrian Rock-Reliefs in Turkey: 169"
+1030,"Ušiši","Ušiši","–","–","–","URU.ú-ši-ši","town","Iran, Media (?)","–"
+1031,"Ušqaia","Ušqaia, Uski",3,"37.91666","46.16666","–","fortress","–","Helsinki Atlas: 18 (map 5 B3)"
+1032,"Ušû","Ušû, Tell Rašīdīya, Palaityros",1,"33.23673","35.21616","–","city","–","Helsinki Atlas: 18 (map 8 A3)"
+1034,"Wadi Bastura Tunnel","Wadi Bastura Tunnel, Qala Mortka","–","36.35169","44.11584","–",",canal, monument","Iraq, Assyria","Helsinki Atlas: 18 (map 4 D5), <a href=https://pleiades.stoa.org/places/359792984>Wadi Bastura Tunnel Inscription</a>"
+1035,"Waisi","Waisi, Qalatgah",3,"37.0354","45.2209","–","prov. capital","–","Helsinki Atlas: 18 (map 4 E4)"
+1036,"Wauš","Wauš, Uauš, Kūh-e Sahand",2,"–","–","–","mountain","–","Helsinki Atlas: 18 (map 5 B3)"
+1037,"Wilusa","Wilusa, Wiluša, Troy, Hisarlik","–","39.95751754939872","26.23830411661108","–","–","–","–"
+1038,"Wišdiš","Wišdiš, Uišdiš, Plain of Marand",3,"–","–","–","district","–","Helsinki Atlas: 18 (map 5 A3)"
+1041,"Zabalam","Zabalam, Tulul Ibzaikh","–","31.74472924832169","45.87575461093312","–","–","–","–"
+1042,"Zabannu","Zabannu, Sabaʾa, Tell Umm ʿAqrubba",4,"35.66165","41.19707","–","town, monument","–","Helsinki Atlas: 18 (map 9 D1)"
+1043,"Zabban","Zabban",3,"34.5","44.83333","–","city","–","Helsinki Atlas: 18 (map 10 D2)"
+1044,"Zadidāni","Zadidāni, Zadidānu, ruins al-Mḥddâde (?)","–","–","–","URU.za-di-da-a-ni","town","mid-Euphrates","Bagg RGTC 7 2: 641"
+1045,"Zakrūti","Zakrūti","–","–","–","–","district","–","Helsinki Atlas: 18 (map 12 A2)"
+1046,"Zamaḫâ","Zamaḫâ, Qatara, Qattara, Qaṭṭara, Zamahe, Karana (?), Tell al-Rimāḥ, Tell Rimah, Tell al-Rimah",2,"36.25677","42.45019","–","town","–","Helsinki Atlas: 18 (map 4 B5), <a href=https://pleiades.stoa.org/places/356369838>Pleiades: Qattara?/Karana?</a>"
+1047,"Zanbāja","Zanbāja, Zanba","–","–","–","URU.za-an-ba-a-a","town","Central Assyria, Nineveh province (?)","Bagg RGTC 7 2/2: 643"
+1048,"Zaralulu","Zaralulu, Tell ed-Diba'i","–","33.322758019531","44.48194432052211","–","–","–","–"
+1049,"Zaranda","Zaranda, Plain of Evoġlī",3,"–","–","–","region","–","Helsinki Atlas: 18 (map 4 E3)"
+1050,"Zawiyeh","Zawiyeh, Zawiyyā, Zawiyah, Zāwiyah","–","34.29263"," 42.1725","–","–","Sūḫu, Iraq","RIMB 2: 323"
+1051,"Zikirtu","Zikirtu",2,"–","–","–","country","–","Helsinki Atlas: 18 (map 5 A3)"
+1052,"Zikkû","Zikkû, Yāramǧa, Yaremjeh, يارمجة",4,"36.3005","43.19083","URU.zi-ik-ku-u, URU.zi-ik-ku-ú","town","Central Assyria","Helsinki Atlas: 18 (map 4 C5), Bagg RGTC 7 2/2: 645–646"
+1053,"Zitānu","Zitānu, Zaytān",1,"36.05839","37.01205","–","town","–","Helsinki Atlas: 18 (map 2 D4)"
+1054,"Zuqarru","Zuqarru",3,"37.06133","37.8645","–","town","–","Helsinki Atlas: 18 (map 3 A3)"
+1039,"Zāba elû","Zāba-elû, Upper Zab, az-Zāb al-aʿlā",1,"–","–","–","river","–","Helsinki Atlas: 18 (map 4 C5)"
+1040,"Zāba šaplû","Zāba-šaplû, az-Zāb al-asfal, Lower Zab",1,"–","–","–","river","–","Helsinki Atlas: 18 (map 10 C1)"
+32,"Āl-Adad","Āl-Adad","–","–","–","URU-<sup>d</sup>IM","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 14 (Āl-Adad 2)"
+34,"Āl-Daiān-Adad","Āl-Daiān-Adad, āl Daiān-Adad, Bīt-Daiān-Adad, Daiān-Adad",4,"36.16667","37.16667","–","town, village, city","Ḫatti","Helsinki Atlas: 5 (map 2 D4)"
+35,"Āl-Dannāia","Āl-Dannāia, Āl-Dannāja","–","–","–","URU.da-na-a-a","town","Central Assyria (?), Nineveh province (?)","Bagg RGTC 7 2/1: 19"
+36,"Āl-Naḫal-Muṣur","Āl-Naḫal-Muṣur, āl Naḫal Muṣur, City of the Brook of Egypt, ʿngrn, al-ʿArīš, العريش‎, Rhinocolura, Rhinokoloura, Ῥινοκόρουρα",3,"31.1285","33.8075","URU.na-ḫal-mu-ṣur, URU.na-ḫal-mu-uṣ-ri","town","Muṣur, Egypt","Helsinki Atlas: 5 (map 13 C2), Bagg RGTC 7 1: 5–6, <a href=https://pleiades.stoa.org/places/688016>Pleiades: Rhinocolura</a>"
+33,"Āl-ašlākāni","Āl-ašlākāni, Town of the washers, Fuller Town","–","–","–","–","town","Central Assyria, Nineveh province (?)","RGTC 7 2/1: 16"
+37,"Āl-rādi-imāri","Āl-rādi-imāri, Rādi-emāri, Town of the Donkey Drivers, Donkey-Driver Town","–","–","–","URU-UŠ-ANŠE","town","Central Assyria","RGTC 7 2/1: 24–25"
+40,"Āl-sirāšî","Āl-sirāšî, Brewers' village, Brewers' town","–","–","–","URU-LUNGA.MEŠ, URU-LÚNGA.MEŠ, URU-LÚ.LÚNGA.MEŠ","town","Central Assyria, Dūr-Šarrukīn province (?), Kalḫu province (?)","Bagg RGTC 7 2/1: 25–26"
+41,"Āl-sūsānī","Āl-sūsānī, Horse Trainer Town, Horse-Trainer Town‏‎","–","–","–","–","town","Assyria, Arbail (province)","Bagg, RGTC 7 2/1: 26"
+39,"Āl-Ṣāṣi","Āl-Ṣāṣi, Ṣāṣu","–","–","–","URU.2-ṣa-a-ṣi","town","Central Assyria","Bagg RGTC 7 2/1: 27"
+38,"Āl-ṣarrāpī","Āl-ṣarrāpī, Town of the Goldsmiths, Goldsmith Town","–","–","–","URU-SIMUG.KUG.GI","town","Central Assyria","RGTC 7 2/1: 26–27"
+50,"Ālu-ša-Libbālāja","Ālu-ša-Libbālāja, Ālu-ša-Libbālāia, Ālu-ša-Libbi-ālāja, Yāramǧa, Yaremjeh, يارمجة","–","36.3031","43.17633","URU-šá-ŠÀ-URU-a-a, URU-šá-LÚ.ŠÀ-URU-a-a","town","Central Assyria","Bagg RGTC 7 2/1: 35"
+1070,"Ālu-ša-Lulûʾa","Ālu-ša-Lulûʾa","–","–","–","URU.ša-mlu-lu-ú-a","town","Central Assyria (?), Iraq (?)","Bagg RGTC 7 3/2: 957 (add. to 7/2)"
+51,"Ālu-ša-rāṭātīšu","Ālu-ša-rāṭātīšu, Plumbers' Town, Malṭeh Naṣara, Mālṭah Naṣārā, مالطة نصارى","–","36.85276","42.93362","URU-ša-ra-ṭa-ṭi-šú","town","Central Assyria, Kurbail","Bagg RGTC 7 2/1: 38"
+52,"Ālu-ša-rēšāni","Ālu-ša-rēšāni, Eunuch Town","–","–","–","URU.2.LÚ.SAG.MEŠ, URU.LÚ.SAG.MEŠ","town","Central Assyria, Kalḫu province (?)","Bagg RGTC 7 2/1: 38–39"
+49,"Ālu-ša-Ḫarāni","Ālu-ša-Ḫarāni, ālu ša Ḫarāni, Ša-Ḫarāni, Tall Ḫanḏal, Tall Abū Ḥāʾit (?)",2,"35.25","40.51667","URU.šá-<sup>m</sup>ḫa-ra-a-ni","village","Bīt-Ḫalupê, Lāqê (?)","Helsinki Atlas: 5 (map 9 C1), Bagg RGTC 7 2/1: 32–33, <a href=https://pleiades.stoa.org/places/894106>Pleiades: Tell Abu Hait/Sangarite?/Sachare?</a>"
+55,"Āmidu","Āmidu, Amēdu, Amidu, Amidi, Amida, Amedu, Āmid, Diyarbakir, Diyarbakır",1,"37.9101","40.23852","URU.a-me-di, a-me-di, a-me-du, URU.a-me-du, URU.a-mi-di, URU.a-med-a-a","city, capital, province","Āmidu (province), Bīt-Zamāni, Turkey, Bīt-Zamāni","Helsinki Atlas: 5 (map 3 D3), Bagg RGTC 7 2/1: 43–44 (Amēdu)"
+63,"Āmul","Āmul, Amul, Āmol",4,"36.47083","52.34933","URU.a-mul","city","Zagros mountains, Iran","Helsinki Atlas: 5 (map 6 D4)"
+67,"Ānat","Ānat, Anat, Anatu, Ḫanat, Ana, Ānatha, Ānatho, Qal'at 'Ana, Anah, ʾĀna, عانة‎",1,"34.46761","41.97943","URU.a-na-at, URU.an-at, LÚ.an-at-a-a, URU.ana-te","city, island","Sūḫu, Iraq","Helsinki Atlas: 5 (map 10 B1), Bagg RGTC 7 2/1: 46–47 (Anat), <a href=https://pleiades.stoa.org/places/893936>Pleiades: Anatho</a>, <a href=https://books.openedition.org/cdf/4564#tocfrom2n39>MTT I/2 (HIGEOMES Nr. 196)</a>"
+503,"Ītu","Ītu, Īdu, Idu, Ida, Is, Idi, Hit, Hīt, هيت",1,"33.64391811933405","42.82314138727005","URU.i-te, URU.itu5 (= URU.ÍD)","town","Sūḫu, Iraq","Bagg RGTC 7 2/1: 259, Helsinki Atlas: 10 (Īdu, map 10 B3), Parpola Toponyms: 179"
+897,"Šabirēšu","Šabirēšu, Basorin",4,"37.15179","42.34429","–","city","–","Helsinki Atlas: 15 (map 4 B4)"
+898,"Šabuqu","Šabuqu","–","–","–","KUR.šá-bu-qa-a.a, LÚ.šá-bu-qa-a.a","territory (?), tribe (?)","–","<a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+899,"Šadikanni","Šadikanni, Šadikannu, ʿArbān, Arabana, Tell ʿAğāğa, Tell 'Ajaja",1,"36.2081","40.72067","šá-URU.di-kan-ni, URU.šá-di-kan-ni, di-ka-ni-a, KUR.di-ka-na-a-ia, URU.di-kan-a-a, URU.šá-di-kan-a-a, URU.še-di-kan-a-a","city","Ḫābūr area","Helsinki Atlas: 15 (map 3 D4), Bagg RGTC 7 2: 559"
+900,"Šaduppûm","Šaduppûm, Tell Harmal","–","33.30978245280799","44.46657571197006","–","–","–","–"
+902,"Šakmu","Šakmu, Shechem, Šekem, Tell Balata","–","32.2135081628689","35.28222003429811","–","–","–","–"
+903,"Šapinuwa","Šapinuwa, Ortaköy","–","40.25443121418439","35.23660208437604","–","–","–","–"
+905,"Šarišša","Šarišša, Kuşaklı","–","39.30842871867329","36.90967428160425","–","–","–","–"
+906,"Šarru-iddina (city)","Šarru-iddina","–","–","–","–","city","Central Assyria, Aššur province","RGTC 7 2/2: 564"
+904,"Šarēši","Šarēši, Tell Šarīsī",4,"36.83333","41.33333","–","town","–","Helsinki Atlas: 15 (map 3 E4)"
+901,"Šaḫuppa","Šaḫuppa, Saḫuppa, Šuḫuppa, Katmuḫi, Katmuḫu, Kadmuḫi","–","–","–","URU.šá-ḫu-up-pa, URU.sa-ḫu-up-pa, ša-ḫup-pa, URU.šá-ḫu-pa, URU.šá-ḫup-pa, URU.šú-ḫu-pa","city, province","Assyria","Bagg RGTC 7 2/2: 560–561, <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>"
+907,"Šibanība","Šibanība, Šibaniba, Tell Billa",1,"36.43376","43.34825","–","prov. capital","–","Helsinki Atlas: 15 (map 4 C5)"
+908,"Šiddi nāri","Šiddi nāri, Šiddi-nāri, Parapotamia","–","–","–","–","district","–","Helsinki Atlas: 15 (map 3 B5)"
+909,"Šiddi-asika","Šiddi-asika","–","–","–","–","town","Assyria","Bagg RGTC 7 2/2: 568"
+910,"Šiddi-ḫirīti","Šiddi-ḫirīti, Ušḫiriti","–","–","–","URU.UŠ-ḫi-ri-ti","town","Central Assyria, Dūr-Šarrukīn province (?)","Bagg RGTC 7 2/2: 568–569"
+913,"Šingiša","Šingiša","–","37.6","40.88","–","town","–","Helsinki Atlas: 15 (map 3 D3)"
+914,"Šinuḫtu","Šinuḫtu, Niğde",3,"37.97583","34.69516","–","city","–","Helsinki Atlas: 15 (map 1 D3)"
+915,"Širu Malikta","Širu-Malikta, Širu Malikta","–","36.74466","43.06116","–","monument","Central Assyria, Talmūsa province","–"
+916,"Šišlu","Šišil, Šišlu, Šišda, Šašilū, Šilšil, Šašillānu, al-Qayyāra, Qayyāra, القيارة",4,"35.8025","43.29133","URU.ši-iš-li, URU.ši-iš-lu, URU.ši-šil, URU.ši-šil-a-a","town","Iraq","Helsinki Atlas: 15 (map 4 C6), Bagg RGTC 7 2/2: 572–573 (Šišil)"
+918,"Šubarû","Šubarû, Šubarûm, Subarû, Subaru, Šubaru, Subir, Šubartum","–","–","–","KUR.šu-ba-re-e, KUR.šu-ba-ri-i, KUR.šu-pa-re-e","territory","–","Bagg RGTC 7 2: 573"
+919,"Šubat-Enlil","Šubat-Enlil, Šeḫna, Tell Leilan","–","36.9585300465899","41.5062658743722","–","–","–","–"
+920,"Šubria","Šubria",1,"–","–","–","country","–","Helsinki Atlas: 15 (map 2 D2)"
+921,"Šuksu","Šuksu, Tell Sukas","–","35.30587310836101","35.92274244299347","–","–","–","–"
+922,"Šurda","Šurda","–","–","–","–","country, region","Iran, Zagros Mountains","–"
+924,"Šuruppak","Šuruppak, Fara","–","31.7776323654228","45.50974801317648","–","–","–","–"
+926,"Šušarra","Šušarra, Tell Shemshara","–","36.20064","44.93869","–","–","–","–"
+911,"Šīmu","Šīmu, Siʾimê","–","–","–","–","city","Central Assyria, Province of Šīmu","RGTC 7 2/2: 569–570"
+912,"Šīmu (province)","Šīmu, Siʾimê","–","–","–","–","province","Central Assyria","RGTC 7 2/2: 569–570"
+917,"Šītamrat","Šītamrat",2,"–","–","–","mountain","–","Helsinki Atlas: 15 (map 3 B4)"
+923,"Šūru","Šūru, Sauras, Tzauras",1,"–","–","–","town","–","Helsinki Atlas: 15 (map 3 D3)"
+925,"Šūšan","Susa, Šūš, Sūsa, Šûšan",1,"32.18977297421221","48.25205205147439","–","capital","–","Helsinki Atlas: 15 (map 17 Al)"
+1008,"Ūlāia","Ulai, Eulaios, Karḫe, Karkhe",2,"–","–","–","river","–","Helsinki Atlas: 17 (map 17 A2)"
+1024,"Ūru","Ūru, Ûr, Ur, Tell al-Muqayyar, Tell Muqayyar",1,"30.9618","46.10512","–","prov. capital","Babylonia","Helsinki Atlas: 18 (map 16 B3)"
+1055,"ʾAtaroth","Khirbet 'Ataruz (?), Khirbat Ataruz, עֲטָרוֹת, ʿăṭārôt",4,"31.57431","35.66511","עֲטָרוֹת","city","Māʾab, Transjordania, Israel","<a href=http://www.ataruz.org>Khirbat Ataruz Project</a>, <a href=https://www.thetorah.com/article/ataroth-and-the-inscribed-altar-who-won-the-war-between-moab-and-israel>Ataroth and the Inscribed Altar</a>"
+1056,"ʿAqaba","Aqaba, ʿAqaba, Al-ʿAkūba (?), Aqabah (?), العكوبة, Baʾqūba (?), Baqubah (?), بعقوبة",3,"33.52954","42.91286","URU.a-qa-ba","town","Babylonia, Māt-tâmti (?), Iraq","Helsinki Atlas: 6 (map 10 B3), Bagg RGTC 7 3/1: 46–47"
+383,"Ḫabrūri","Ḫabrūri (province), Ḥerīr Plain",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 4 D5)"
+384,"Ḫabūr","Ḫabūr, Ḫābūr, Khabur",1,"–","–","–","river","–","Helsinki Atlas: 9 (map 9 C1)"
+379,"Ḫabḫu","Ḫabḫu",3,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 5 A4)"
+380,"Ḫabḫu ša bētāni (1)","Ḫabḫu ša bētāni",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 4 B4)"
+381,"Ḫabḫu ša bētāni (2)","Ḫabḫu ša bētāni_(1)",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 4 D5)"
+382,"Ḫabḫu ša pān Ḫatti","Ḫabḫu ša pān Ḫatti",2,"–","–","–","mountain","–","Helsinki Atlas: 9 (map 3 C3)"
+385,"Ḫadattu","Ḫadatu, Ḫadattu, Hadatu, Hadattu, Arslān Ṭāš, Arslan Tash",1,"36.84938","38.40774","–","city","–","Helsinki Atlas: 9 (map 3 B4)"
+386,"Ḫadina","Ḫadina",4,"–","–","–","river","–","Helsinki Atlas: 9 (map 8 B2)"
+387,"Ḫalab","Ḫalab, Ḫalman, Halab, Aleppo, Ḥalab",1,"36.19911","37.16416","–","city","–","Helsinki Atlas: 9 (map 2 D4), Bagg RGTC 7 1: 84 (Ḫalman 1)"
+388,"Ḫalaḫḫu","Ḫalaḫḫu, חֲלַח",2,"–","–","–","district","–","Helsinki Atlas: 9 (map 4 C5), Bagg RGTC 7 2/1: 194–195"
+389,"Ḫaldini Ziuquni","Haldini Ziuquni, Kef Kalesi (?)",4,"38.8305","42.72728","–","–","–","–"
+391,"Ḫalmān","Armān, Ḥolwa, Ḥulwān",1,"34.45983","45.86266","–","city","–","Helsinki Atlas: 9 (map 11 A2)"
+392,"Ḫalpi","Ḫalpi, Gölbasi",2,"–","–","–","district","–","Helsinki Atlas: 9 (map 2 D3)"
+393,"Ḫalulê","Ḫalulê",3,"34.16666","43.86666","–","town","–","Helsinki Atlas: 9 (map 10 C2)"
+394,"Ḫalzi-atbāri","Ḫalzi-atbāri",2,"–","–","–","province","–","Helsinki Atlas: 9 (map 4 B4), RGTC 7 2/1: 201–202."
+395,"Ḫalziluḫa","Ḫalziluḫa","–","–","–","URU.ḫal-zi-lu-ḫa","town","Turkey","Bagg RGTC 7 2/1: 202"
+396,"Ḫalzu","Ḫalzu, Ḫalzi",2,"–","–","–","city","Central Assyria, Province of Ḫalzu","Helsinki Atlas: 9 (map 4 C5), RGTC 7 2/1: 200"
+397,"Ḫalzu (province)","Ḫalzu, Ḫalzi",2,"–","–","–","province","Central Assyria","Helsinki Atlas: 9 (map 4 C5), RGTC 7 2/1: 200"
+390,"Ḫalēḫasta","Ḫalēḫasta, Ḫarēḫasta","–","–","–","KUR.ḫa-le-e-ḫa-as-ta, URU.ḫa-le-e-ḫa-as-ta, URU.ḫa-re-e-ḫa-as-ta, URU.ḫa-re-ḫa-as-ta","mount, territory","East Babylonia","Bagg RGTC 7 2/1: 196–197"
+398,"Ḫamanu","Ḫamanu, Ḫamānu, Amanus",2,"–","–","KUR.ḫa-ma-na, KUR.ḫa-ma-ni, KUR.ḫa-ma-nim, KUR.ḫa-ma-nu, KUR.ḫa-ma-a-ni, KUR.ḫa-ma-a-nu, ḫa-ma-ni","mountain","–","Helsinki Atlas: 9 (Ḫamānu, map 2 C4), <a href=http://oracc.museum.upenn.edu/saao/knpp/peoplegodsplaces/index.html>Knowledge and Power: People, gods & places</a>, <a href=https://www.ucl.ac.uk/sargon/peoplegodsplaces>Assyrian empire builders</a>"
+399,"Ḫamānu","Ḫamānu","–","–","–","URU.ḫa-ma-a-nu, KUR.ḫa-ma-nu, URU.ḫa-ma-nu","city","Elam","–"
+400,"Ḫamāt","Ḫamāt, Amattu, Amatu, Ḥamāt, Ḥamā, Hama, Hamath",1,"35.13589896027996","36.74949783765234","–","city, capital, state","Syria, Ḫamāt","Helsinki Atlas: 9 (map 8 B1)"
+401,"Ḫamūru","Ḫamūru","–","–","–","–","tribe in Babylonia, living near Borsippa","–","PNA 2/2: 256; PNA 2/2: 728; PNA 3/2: 1283; Vera Chamaza (2002): ''Die Omnipotenz Aššurs'' (AOAT 295): 30–31"
+402,"Ḫanigalbat","Ḫanigalbat",2,"–","–","–","territory, Middle Assyrian province","Turkey, Syria, territory of the Kāšijēri mountains","Helsinki Atlas: 9 (map 3 D4), Bagg RGTC 7 2/1: 206"
+403,"Ḫanqāti","Ḫanqāti","–","–","–","URU.ḫa-an-qa-a-ti","town","Central Assyria (?)","Bagg RGTC 7 2/1: 207"
+404,"Ḫanusa","Ḫinnis, Khinis, Hinnis",2,"36.75617","43.41486","–","village","–","Helsinki Atlas: 9 (map 4 C5)"
+405,"Ḫappati","Ḫappati","–","–","–","URU.ḫa-ap-pa-ti","town","Central Assyria (?), Nineveh province","Bagg RGTC 7 2/1: 208"
+407,"Ḫarbe","Harbe, Tell Huera","–","36.64698549413157","39.49853194903646","–","–","–","–"
+408,"Ḫarbê","Ḫarbê, Ḫarbû","–","–","–","URU.ḫar-bé-e","town","mid-Euphrates, Sūḫu, al-Koṭbijje (?)","Bagg RGTC 7 1: 210"
+410,"Ḫariḫumba","Ḫariḫumba","–","–","–","URU.ḫa-ri-ḫum-ba, URU.ḫar-ḫum-ba","town","Central Assyria, Kalḫu province","Bagg RGTC 7 1: 211–212"
+411,"Ḫariṣû","Ḫariṣû, Ḥariṣṣa",2,"33.97816","35.67416","–","town","–","Helsinki Atlas: 9 (map 8 A3)"
+413,"Ḫarmiš","Ḫarmiš, Ğaġğāġ, Harmās",2,"–","–","–","river","–","Helsinki Atlas: 9 (map 3 E4)"
+412,"Ḫarmāsu","Ḫarmāsu, Ḫarmāše",4,"36.79999","43.5","–","town","–","Helsinki Atlas: 9 (map 4 C5)"
+414,"Ḫarrānia","Ḫarrānia, Rāniya",3,"36.25817","44.90183","–","town","–","Helsinki Atlas: 9 (map 4 D5)"
+415,"Ḫarrānu","Ḫarrānu, Harran, Ḥarrān, Carrhae",1,"36.8666","39.03039","–","prov. capital","–","Helsinki Atlas: 9 (map 3 C4)"
+409,"Ḫarḫār","Ḫarḫār, Ḫarḫar, Kār-Šarrukīn, Malayer, Tepe Giyan",4,"34.18139","48.24361","–","prov. capital","–","Helsinki Atlas: 9 (map 12 A2), Radner 2018: The “Lost Tribes of Israel” in the Context of the Resettlement Programme of the Assyrian Empire, p. 110."
+416,"Ḫasamu","Ḫasamu, Ḥasmī Ṭūrā, Teke Daği",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 3 C3)"
+420,"Ḫatallu","Ḫatallu, Ḫaṭallu, Ḫadallu","–","–","–","KUR.ḫa-da-lu, KUR.ḫa-tal-li, KUR.ḫa-ta-li, KUR.ḫa-ta-lim, LÚ.ḫa-tal-la-a-a, LÚ.ḫa-tal-a-a, LÚ.ḫa-tal-la, LÚ.ḫa-tal-li, LÚ.ḫa-tal-lu, LÚ.ḫa-tal-lum",",Aramean tribe, territory","Iraq, Raṣappa province (?)","Bagg RGTC 7 2/1: 220–221"
+421,"Ḫatarikka","Hatarikka, Ḫadrāk, ḥzrk, ʿAḏrā, Hadra",3,"33.60616","36.51216","–","prov. capital","–","Helsinki Atlas: 10 (map 8 B3)"
+424,"Ḫatti","Ḫatti",2,"–","–","–","territory","–","Helsinki Atlas: 10 (map 2 C4)"
+425,"Ḫattuša","Hattuša, Boğazköy","–","40.01438533090195","34.6140544346557","–","–","–","–"
+423,"Ḫattâ","Ḫattâ, Ḫatâ","–","–","–","URU.ḫat-ta-a, URU.ḫa-ta-a","town","Central Assyria, Talmūsa province (?)","PNA 1/1: 4, Bagg RGTC 7 2/1: 222, SAA 6 268"
+426,"Ḫaurāni","Ḫaurāni, Ḥawār an-Nahr",3,"36.51433","37.25233","–","town","–","Helsinki Atlas: 10 (map 2 D4)"
+429,"Ḫazi","Hazi, Tell Hizzin (?)",4,"33.96514007015759","36.10399255635561","–","–","–","–"
+431,"Ḫazzat","Hazzat, Gaza, Ġazza, ʿazza, Tell Harube, Tell 'Azza",1,"31.54755980011124","34.51377704279476","–","capital","–","Helsinki Atlas: 10 (map 7 C5)"
+428,"Ḫazāzu","Ḫazāzu, Hazazu, ʿAzāz, 'Azaz",1,"36.58626410781966","37.04525182513137","–","city","–","Helsinki Atlas: 10 (map 2 D4)"
+419,"Ḫašmar","Ḫašmar, Darband-e Ḫān",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 11 A1)"
+417,"Ḫaṣōr","Ḫaṣōr, Hazor","–","33.01724381534079","35.56794736461505","–","–","–","–"
+433,"Ḫešbōn","Ḫešbōn, Heshbon, Tell Hesban","–","31.80133725149214","35.809734682461","–","–","–","–"
+435,"Ḫilakku","Ḫilakku, Cilicia",2,"–","–","–","country","–","Helsinki Atlas: 10 (map 1 C4)"
+436,"Ḫildua","Hildua, Ḫān el-Ḫulda, Ḫuldā, Ḫalde, Khalda",1,"33.78912076105539","35.47415191117009","–","town","–","Helsinki Atlas: 10 (map 8 A3)"
+439,"Ḫindaru","Ḫindaru, Ḫindiru","–","–","–","–",",Aramean tribe","Babylonia","–"
+438,"Ḫindānu","Hindanu, Giddan, 'Eddana, al-Ğābirīya, Karable",2,"34.38484","41.06521","–","city, country, province","–","Helsinki Atlas: 10 (map 9 D2)"
+440,"Ḫinnatūna","Ḫinnatūna, Ḫinatuna, Hinatuna, Hinnatuna, Hannaton, Tell al-Badawīya, Ḥannatôn, Tel Hannaton, Tell el-Badawiya, Ḥinnātôn, Asōchis, Tel Ḥanaton",1,"32.78574","35.25794","–","town","Israel","Helsinki Atlas: 10 (map 8 A4), Bagg RGTC 7/1: 107–108"
+441,"Ḫinnis Monuments","Ḫinnis Monuments, Kharusa Monuments, Hinnis Monuments, Bavian Monuments, Khinis Monuments, Bawian Monuments, Khinnis Monuments","–","36.76156","43.41999","–","monument","Iraq, Assyria","Helsinki Atlas: 10 (map 4 C5)"
+442,"Ḫiptūnu","Ḫiptūnu, Hefton, Tell Ḥaftūn",3,"36.65","44.25","–","town","–","Helsinki Atlas: 10 (map 4 D5)"
+443,"Ḫirītu","Ḫirītu","–","–","–","–","river","Babyloénia, Gambūlu","–"
+445,"Ḫubišna","Ḫubišna, Ḫupišna, Ḫubušna, Hubišna, Hupišna, Hubušnu, Kybistra, Cybistra, Karahüyük,'Eregli",1,"37.66234693212137","34.22669200769285","–","city","–","Helsinki Atlas: 10 (map 1 D3)"
+446,"Ḫubuškia","Ḫubuškia, Ḫubušku, Ḫāne Plain",2,"–","–","–","country","–","Helsinki Atlas: 10 (map 4 E5)"
+444,"Ḫubāba","Ḫubāba","–","–","–","–","town","Central Assyria, Province of Šīmu","RGTC 7 2/1: 235"
+447,"Ḫudubili","Ḫudubili, Ḫudubilu","–","–","–","URU.ḫu-du-bi-li","town","mid-Euphrates, Sūḫu","Bagg RGTC 7 1: 236"
+448,"Ḫukkurūna","Ḫukkurūna, al-Lağā",2,"–","–","–","region","–","Helsinki Atlas: 10 (map 8 B4)"
+449,"Ḫulbūnu","Ḫulbūnu, Ḥelbôn, Ḥalbūn",2,"–","–","–","mountain","–","Helsinki Atlas: 10 (map 8 B3)"
+450,"Ḫulḫulītu","Ḫulḫulītu, Ḫalḫala, Ḥulḥulē",2,"33.06133","36.53316","–","town","–","Helsinki Atlas: 10 (map 8 B3)"
+451,"Ḫundur","Ḫundur, Ḫundiru","–","–","–","URU.ḫu-un-dír-a-a, LÚ.ḫu-un-du-ru-a-a, URU.ḫu-un-du-ur, URU.ḫu-un-du-ur-a-a","city","Iran","Parpola Toponyms: 169 (Ḫundiru and Ḫundur)"
+452,"Ḫupšana","Ḫupšana, Hupšana, Deh-e Now","–","32.06884773403157","48.57295649754241","–","–","–","–"
+453,"Ḫuri-ṣubuʾi","Huri-ṣubuʾi, Khraṣbo?","–","35.61418771815032","35.87285278541339","–","–","–","–"
+454,"Ḫurmu","Ḫurmu, Ḥārim",3,"36.20724","36.51909","–","town","–","Helsinki Atlas: 10 (map 2 C4)"
+455,"Ḫursagkalama","Ḫursagkalama, Hursagkalama, Inġarra, Ingharra, see also Kiš","–","32.54463","44.613","–","city","–","Helsinki Atlas: 10 (map 10 D4)"
+456,"Ḫusur","Ḫusur, Ḫosr",1,"–","–","–","river","–","Helsinki Atlas: 10 (map 4 C5)"
+457,"Ḫuzarra","Ḫuzarra, Ḥazra al-ʿAtīqa",3,"36.244","36.79333","–","town","–","Helsinki Atlas: 10 (map 2 C4)"
+459,"Ḫuzirina","Ḫuzirīna, Ḫuzirina, Ḫaziri, Ḫuzīrānu, ʿĀmūdā",3,"37.10333","40.87867","URU.ḫu-zi-ri-na","town","Ḫanigalbat","Helsinki Atlas: 10 (map 3 D3), Bagg RGTC 7 1: 238–239, Postgate, RlA 4: 535–536"
+460,"Ḫuzirīna","Ḫuzirīna, Huzirina, Huzarad, Huzariʾum, Hostra, Sultantepe",1,"37.05035","38.90587","URU.ḫu, URU.ḫu-zir-na, URU.ḫu-zir-i-na, URU.ḫu-zir-ri-na","city","Balīḫ basin","Helsinki Atlas: 10 (map 3 B3), Bagg RGTC 7 1: 238–239, Postgate, RlA 4: 535–536"
+458,"Ḫuzāza","Ḫuzāza, Ḥuzaiz, Ḥuzēz",3,"34.5","36.76666","–","town","–","Helsinki Atlas: 10 (map 8 B2)"
+378,"Ḫāba","Ḫāba","–","–","–","URU.ḫa-a-ba","town","Balīḫ basin (?)","Bagg RGTC 7 2/1: 244"
+406,"Ḫāradu","Ḫaradu, Ḫarada, Haradu, Ḫirbat ad-Dīnīya, Ḫirbat ad-Dīnīyah, Khirbet ed-Diniye",3,"34.46176","41.59212","–","town","–","Helsinki Atlas: 10 (map 9 D2)"
+427,"Ḫāurīna","Ḫāurīna, Ḥawārīn",2,"34.2695","37.08433","–","prov. capital","–","Helsinki Atlas: 10 (map 8 C2)"
+430,"Ḫāzur","Ḫāzur, Ḫāzir",1,"–","–","–","river","–","Helsinki Atlas: 10 (map 4 C5)"
+432,"Ḫēsa","Ḫēsa, Ḫasīya, Hasya, Hassia",3,"34.41333","36.76433","–","town","–","Helsinki Atlas: 10 (map 8 B2)"
+434,"Ḫīdālu","Ḫīdālu, Ḫaidalu, Ardjān",1,"30.96666",50,"–","capital","–","Helsinki Atlas: 10 (map 17 C3)"
+824,"Ṣaidinu","Ṣaidinu, Ṣaidini, Ṣaidina, Ṣaidi, Zaidinu","–","–","–","–","town","Ḫarrānu area","RGTC 7 2/2: 550"
+840,"Ṣapuna","Ṣapuna, Ṣafon, Tell es-Sa'idiyeh","–","32.26772147669001","35.5771886219876","–","–","–","–"
+845,"Ṣariptu","Ṣariptu, Sarephtha, aṣ-Ṣarafand, Sarepta, Ras el-Qantara",1,"33.46443052775337","35.29507077977482","–","city","–","Helsinki Atlas: 15 (map 8 A3)"
+854,"Ṣibur","Ṣibur, Ṣibar, Ṣimaš, Ṣibara, Ṣiburaja","–","–","–","URU.ṣi-bu-ur, URU.ṣi-bar, URU.ṣi-ba-ra-a-a, URU.ṣi-ba-ra","city","Media, Western Iran, Gizilbunda","PNA B–G: 270, Parpola Toponyms: 321"
+861,"Ṣimirra","Ṣimirra, Ṣumur, Simyra, Tell Kazel, Ṣumra",1,"34.70849380585606","35.9861363536706","–","prov. capital","–","Helsinki Atlas: 15 (map 8 A2)"
+888,"Ṣupru","Ṣupru, Tell Abu Hasan (?)",4,"34.65467","40.88574","–","–","–","–"
+893,"Ṣurru","Ṣurru, Tyros, Tyre, Ṣūr, Ṣôr, Sur",1,"33.27028907957312","35.19597034995852","–","prov. capital","–","Helsinki Atlas: 15 (map 8 A3)"
+855,"Ṣīdūnu","Ṣīdūnu, Sidon, Ṣīdôn, Ṣaidā",1,"33.56243","35.36933","–","city","–","Helsinki Atlas: 15 (map 8 A3)"
+886,"Ṣūpat","Ṣūpat, Ṣupat, Ṣubat, Ḥoms, Zobah/Ṣôbā",4,"34.7205","36.717","–","prov. capital","–","Helsinki Atlas: 15 (map 8 B2), Bagg RGTC 7 1: 233–234"
+985,"Ṭuba","Ṭuba, Umm el-Marra (?)",4,"36.13471","37.69422","–","–","–","<a href=https://web.archive.org/web/20051124034827/http://www.jhu.edu/neareast/uem/index.html>Umm el-Marra Website</a>"
+997,"Ṭurušpâ","Ṭušpa, Tušpa, Ṭurušpâ, Turušpa, Van, Thospia",1,"38.50114487332675","43.33814728564371","–","capital","–","Helsinki Atlas: 17 (map 4 C3)"
+928,"Ṭābēte","Ṭābēte, Ṭabēte, Ṭābātu, Ṭabatu, Ṭabitu, Ṭabatun, Tell Tābān, Tall Tābān, Thebeta (1), Tell Ta'ban",2,"36.33621","40.78773","URU.DÙG.GA-e-te, URU.DÙG.GA-ta-ia, URU.ṭa-bé-te","city","Ḫābūr area","Helsinki Atlas: 17 (map 3 D4), Bagg RGTC 7 2: 617"
diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..787b21dc8609c5828e92f4d720215fa329e3f928
--- /dev/null
+++ b/backend/src/main/resources/application.properties
@@ -0,0 +1,19 @@
+spring.datasource.url=jdbc:postgresql://localhost:5432/test
+spring.datasource.username=test
+spring.datasource.password=Password.123
+
+spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.generate-ddl=true
+spring.jpa.open-in-view=false
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
+spring.jpa.properties.hibernate.format_sql=true
+#spring.jpa.show-sql=true
+
+
+application.jwt.secretKey=securesecuresecuresecuresecuresecuresecuresecuresecuresecuresecuresecuresecure
+application.jwt.tokenPrefix=Bearer 
+application.jwt.tokenExpirationAfterMinutes=15
+application.jwt.refreshTokenExpirationAfterMonths=6
+application.jwt.accessTokenName=access_token
+application.jwt.refreshTokenName=refresh_token
+application.jwt.claimAuthoritiesName=authorities
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepositoryTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepositoryTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b3aa1eb2c2ac45c79cda17df51fdfdf98dde16b
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemRepositoryTest.java
@@ -0,0 +1,326 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import cz.zcu.kiv.backendapi.alternativename.AlternativeName;
+import cz.zcu.kiv.backendapi.country.Country;
+import cz.zcu.kiv.backendapi.type.Type;
+import cz.zcu.kiv.backendapi.type.TypeRepository;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+
+import java.util.List;
+import java.util.Set;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.junit.jupiter.api.Assertions.*;
+
+@DataJpaTest
+class CatalogItemRepositoryTest {
+
+    @Autowired
+    private CatalogItemRepository underTest;
+
+    @Autowired
+    private TypeRepository typeRepository;
+
+    private CatalogItem catalogItem1;
+    private CatalogItem catalogItem2;
+    private CatalogItem catalogItem3;
+    private CatalogItem catalogItem4;
+    private CatalogItem catalogItem5;
+
+    @BeforeEach
+    void setUp() {
+        Type typeCountry = new Type("country");
+        Type typeCity = new Type("city");
+        Type typeCapitalCity = new Type("capital city new");
+        Type typeCityUpper = new Type("City");
+        Type typeCountri = new Type("countri");
+        typeRepository.saveAll(List.of(typeCountry, typeCity, typeCapitalCity, typeCityUpper, typeCountri));
+
+        String nameFirst = "first";
+        String nameFirstUpper = "First";
+        String nameSecond = "second";
+        String nameSedond = "sedond";
+        String nameThird = "third";
+        String nameTwelve = "twelve";
+        String nameTwentyUpper = "TWENTY";
+
+        String countryAaa = "aaa";
+        String countryAaaUpper = "AAA";
+        String countryBbb = "bbb";
+        String countryBccb = "bccb";
+        String countryCcc = "ccc";
+        String countryDdd = "ddd";
+        String countryDcd = "dcd";
+
+        catalogItem1 = new CatalogItem();
+        catalogItem2 = new CatalogItem();
+        catalogItem3 = new CatalogItem();
+        catalogItem4 = new CatalogItem();
+        catalogItem5 = new CatalogItem();
+
+        catalogItem1.setName(nameFirst);
+        catalogItem1.setTypes(Set.of(typeCountry, typeCity));
+        catalogItem1.setCountries(Set.of(new Country(countryAaa, catalogItem1), new Country(countryDcd, catalogItem1)));
+
+        catalogItem2.setName(nameSecond);
+        catalogItem2.setAlternativeNames(Set.of(new AlternativeName(nameTwelve, catalogItem2), new AlternativeName(nameThird, catalogItem2)));
+        catalogItem2.setTypes(Set.of(typeCountry, typeCityUpper));
+        catalogItem2.setCountries(Set.of(new Country(countryAaa, catalogItem2), new Country(countryBbb, catalogItem2)));
+
+        catalogItem3.setName(nameThird);
+        catalogItem3.setAlternativeNames(Set.of(new AlternativeName(nameTwentyUpper, catalogItem3), new AlternativeName(nameSedond, catalogItem3)));
+        catalogItem3.setTypes(Set.of(typeCountri, typeCapitalCity));
+        catalogItem3.setCountries(Set.of(new Country(countryAaaUpper, catalogItem3), new Country(countryCcc, catalogItem3)));
+
+
+        catalogItem4.setAlternativeNames(Set.of(new AlternativeName(nameTwelve, catalogItem4), new AlternativeName(nameFirstUpper, catalogItem4)));
+        catalogItem4.setTypes(Set.of(typeCountri, typeCountry));
+        catalogItem4.setCountries(Set.of(new Country(countryBccb, catalogItem4), new Country(countryDdd, catalogItem4)));
+
+
+        catalogItem5.setName(nameSedond);
+        catalogItem5.setAlternativeNames(Set.of(new AlternativeName(nameThird, catalogItem5)));
+        catalogItem5.setTypes(Set.of(typeCountri));
+
+        underTest.saveAll(List.of(catalogItem1, catalogItem2, catalogItem3, catalogItem4, catalogItem5));
+
+
+    }
+
+    @AfterEach
+    void tearDown() {
+        underTest.deleteAll();
+    }
+
+    @Test
+    void itShouldReturnAll() {
+        // given
+        String name = "";
+        String country = "";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(5);
+    }
+
+    @Test
+    void testName() {
+        // given
+        String name = "first";
+        String country = "";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem4));
+    }
+
+    @Test
+    void testWildcardCharacterName() {
+        // given
+        String name = "se_ond";
+        String country = "";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(3);
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+        assertTrue(filterResult.contains(catalogItem5));
+    }
+
+    @Test
+    void testWildcardCharactersName() {
+        // given
+        String name = "twe%";
+        String country = "";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(3);
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+        assertTrue(filterResult.contains(catalogItem4));
+    }
+
+    @Test
+    void testCountry() {
+        // given
+        String name = "";
+        String country = "aaa";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(3);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+    }
+
+    @Test
+    void testWildcardCharacterCountry() {
+        // given
+        String name = "";
+        String country = "d_d";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem4));
+    }
+
+    @Test
+    void testWildcardCharactersCountry() {
+        // given
+        String name = "";
+        String country = "b%b";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem4));
+    }
+
+
+    @Test
+    void testType() {
+        // given
+        String name = "";
+        String country = "";
+        String type = "city";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem2));
+    }
+
+    @Test
+    void testWildcardCharacterType() {
+        // given
+        String name = "";
+        String country = "";
+        String type = "countr_";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(5);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+        assertTrue(filterResult.contains(catalogItem4));
+        assertTrue(filterResult.contains(catalogItem5));
+    }
+
+    @Test
+    void testWildcardCharactersType() {
+        // given
+        String name = "";
+        String country = "";
+        String type = "%city%";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(3);
+        assertTrue(filterResult.contains(catalogItem1));
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+    }
+
+    @Test
+    void testNameAndCountry() {
+        // given
+        String name = "third";
+        String country = "aaa";
+        String type = "";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem2));
+        assertTrue(filterResult.contains(catalogItem3));
+    }
+
+    @Test
+    void testNameAndType() {
+        // given
+        String name = "third";
+        String country = "";
+        String type = "countri";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(2);
+        assertTrue(filterResult.contains(catalogItem3));
+        assertTrue(filterResult.contains(catalogItem5));
+    }
+
+    @Test
+    void testCountryAndType() {
+        // given
+        String name = "";
+        String country = "ddd";
+        String type = "country";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(1);
+        assertTrue(filterResult.contains(catalogItem4));
+    }
+
+    @Test
+    void testAll() {
+        // given
+        String name = "third";
+        String country = "AAA";
+        String type = "countri";
+
+        // when
+        Set<CatalogItem> filterResult = underTest.filterCatalog(name, country, type);
+
+        // then
+        assertThat(filterResult.size()).isEqualTo(1);
+        assertTrue(filterResult.contains(catalogItem3));
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..51bf71acc5750a799e5d9c43601032a62ea1f733
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java
@@ -0,0 +1,313 @@
+package cz.zcu.kiv.backendapi.catalog;
+
+import cz.zcu.kiv.backendapi.alternativename.AlternativeName;
+import cz.zcu.kiv.backendapi.bibliography.Bibliography;
+import cz.zcu.kiv.backendapi.country.Country;
+import cz.zcu.kiv.backendapi.exception.ApiRequestException;
+import cz.zcu.kiv.backendapi.type.Type;
+import cz.zcu.kiv.backendapi.type.TypeServiceImpl;
+import cz.zcu.kiv.backendapi.writtenform.WrittenForm;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.*;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.UUID;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class CatalogItemServiceImplTest {
+
+    @Mock
+    private CatalogItemRepository catalogItemRepository;
+
+    @Mock
+    private TypeServiceImpl typeService;
+
+
+    private CatalogItemServiceImpl underTest;
+
+    @BeforeEach
+    void setUp() {
+        underTest = new CatalogItemServiceImpl(catalogItemRepository, typeService);
+    }
+
+    @Test
+    void saveCatalog() {
+        // given
+        Type type = new Type("type");
+
+        CatalogItem catalogItem = new CatalogItem();
+        catalogItem.setName("aaacbbbbbbbaa");
+        catalogItem.setBibliography(Set.of(new Bibliography("bibl", catalogItem)));
+        catalogItem.setTypes(Set.of(type));
+        catalogItem.setAlternativeNames(Set.of(new AlternativeName("altName", catalogItem)));
+        catalogItem.setCountries(Set.of(new Country("aaaabbaa", catalogItem)));
+        catalogItem.setWrittenForms(Set.of(new WrittenForm("written", catalogItem)));
+        catalogItem.setCertainty(0);
+        catalogItem.setLatitude(0.1);
+        catalogItem.setLongitude(0.2);
+
+        CatalogItem catalogItem2 = new CatalogItem();
+        catalogItem2.setName("name");
+        catalogItem2.setBibliography(Set.of(new Bibliography("bibl", catalogItem2)));
+        catalogItem2.setTypes(Set.of(type));
+        catalogItem2.setAlternativeNames(Set.of(new AlternativeName("aaaabbbbbbaa", catalogItem2)));
+        catalogItem2.setCountries(Set.of(new Country("aaaabbcccefaa", catalogItem2)));
+        catalogItem2.setWrittenForms(Set.of(new WrittenForm("written", catalogItem2)));
+        catalogItem2.setCertainty(1);
+        catalogItem2.setLatitude(1.1);
+        catalogItem2.setLongitude(1.2);
+
+        List<CatalogItem> catalog = List.of(catalogItem, catalogItem2);
+
+        given(typeService.getTypeByName(anyString())).willReturn(Optional.of(type));
+
+        // when
+        underTest.saveCatalog(catalog);
+
+        // then
+        verify(typeService, never()).saveType(type);
+        verify(catalogItemRepository).save(catalogItem);
+        verify(catalogItemRepository).save(catalogItem2);
+    }
+
+    @Test
+    void testSaveCatalogItem() {
+        // given
+        CatalogItemDto catalogItemDto = new CatalogItemDto();
+        catalogItemDto.setName("name");
+        catalogItemDto.setBibliography(Set.of("bibl"));
+        catalogItemDto.setTypes(Set.of("type"));
+        catalogItemDto.setAlternativeNames(Set.of("altName"));
+        catalogItemDto.setCountries(Set.of("country"));
+        catalogItemDto.setWrittenForms(Set.of("written"));
+        catalogItemDto.setCertainty(0);
+        catalogItemDto.setLatitude(0.1);
+        catalogItemDto.setLongitude(0.2);
+
+        Type type = new Type("type");
+
+        CatalogItem catalogItem = new CatalogItem();
+        catalogItem.setName("name");
+        catalogItem.setBibliography(Set.of(new Bibliography("bibl", catalogItem)));
+        catalogItem.setTypes(Set.of(type));
+        catalogItem.setAlternativeNames(Set.of(new AlternativeName("altName", catalogItem)));
+        catalogItem.setCountries(Set.of(new Country("country", catalogItem)));
+        catalogItem.setWrittenForms(Set.of(new WrittenForm("written", catalogItem)));
+        catalogItem.setCertainty(0);
+        catalogItem.setLatitude(0.1);
+        catalogItem.setLongitude(0.2);
+
+        given(typeService.getTypeByName(anyString())).willReturn(Optional.of(type));
+
+        // when
+        underTest.saveCatalogItem(catalogItemDto);
+
+        // then
+        ArgumentCaptor<CatalogItem> argumentCaptor = ArgumentCaptor.forClass(CatalogItem.class);
+
+        verify(catalogItemRepository).save(argumentCaptor.capture());
+        verify(typeService, never()).saveType(type);
+
+        CatalogItem capturedItem = argumentCaptor.getValue();
+
+        assertThat(capturedItem).isEqualTo(catalogItem);
+
+    }
+
+    @Test
+    void testCanUpdateCatalogItem() {
+        // given
+        UUID id = UUID.randomUUID();
+
+        CatalogItemDto catalogItemDto = new CatalogItemDto();
+        catalogItemDto.setName("name");
+        catalogItemDto.setBibliography(Set.of("bibl"));
+        catalogItemDto.setTypes(Set.of("type"));
+        catalogItemDto.setAlternativeNames(Set.of("altName"));
+        catalogItemDto.setCountries(Set.of("country"));
+        catalogItemDto.setWrittenForms(Set.of("written"));
+        catalogItemDto.setCertainty(0);
+        catalogItemDto.setLatitude(0.1);
+        catalogItemDto.setLongitude(0.2);
+
+        Type type = new Type("type");
+        Type typeOld = new Type("old");
+
+        CatalogItem catalogItem = new CatalogItem();
+        catalogItem.setName("name");
+        catalogItem.setBibliography(Set.of(new Bibliography("bibl", catalogItem)));
+        catalogItem.setTypes(Set.of(type));
+        catalogItem.setAlternativeNames(Set.of(new AlternativeName("altName", catalogItem)));
+        catalogItem.setCountries(Set.of(new Country("country", catalogItem)));
+        catalogItem.setWrittenForms(Set.of(new WrittenForm("written", catalogItem)));
+        catalogItem.setCertainty(0);
+        catalogItem.setLatitude(0.1);
+        catalogItem.setLongitude(0.2);
+
+        CatalogItem oldCatalogItem = new CatalogItem();
+        oldCatalogItem.setName("old");
+        oldCatalogItem.setBibliography(Set.of(new Bibliography("old", oldCatalogItem)));
+        oldCatalogItem.setTypes(Set.of(typeOld));
+        oldCatalogItem.setAlternativeNames(Set.of(new AlternativeName("old", oldCatalogItem)));
+        oldCatalogItem.setCountries(Set.of(new Country("old", oldCatalogItem)));
+        oldCatalogItem.setWrittenForms(Set.of(new WrittenForm("old", catalogItem)));
+        oldCatalogItem.setCertainty(10);
+        oldCatalogItem.setLatitude(10.1);
+        oldCatalogItem.setLongitude(10.2);
+
+        given(catalogItemRepository.findById(id)).willReturn(Optional.of(oldCatalogItem));
+        given(typeService.getTypeByName(anyString())).willReturn(Optional.empty());
+
+        // when
+
+        underTest.updateCatalogItem(id, catalogItemDto);
+
+        // then
+        verify(typeService).saveType(type);
+
+        ArgumentCaptor<CatalogItem> argumentCaptor = ArgumentCaptor.forClass(CatalogItem.class);
+
+        verify(catalogItemRepository).save(argumentCaptor.capture());
+
+        CatalogItem capturedCatalogItem = argumentCaptor.getValue();
+
+        assertThat(capturedCatalogItem).isEqualTo(catalogItem);
+    }
+
+    @Test
+    void testCanNotUpdateCatalogItem() {
+        // given
+        UUID id = UUID.randomUUID();
+
+        CatalogItemDto catalogItemDto = new CatalogItemDto();
+        catalogItemDto.setName("name");
+        catalogItemDto.setBibliography(Set.of("bibl"));
+        catalogItemDto.setTypes(Set.of("type"));
+        catalogItemDto.setAlternativeNames(Set.of("altName"));
+        catalogItemDto.setCountries(Set.of("country"));
+        catalogItemDto.setWrittenForms(Set.of("written"));
+        catalogItemDto.setCertainty(0);
+        catalogItemDto.setLatitude(0.1);
+        catalogItemDto.setLongitude(0.2);
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.updateCatalogItem(id, catalogItemDto))
+                .isInstanceOf(ApiRequestException.class)
+                .hasMessageContaining("Catalog item not found");
+
+        verify(catalogItemRepository, never()).save(any());
+        verify(typeService, never()).saveType(any());
+    }
+
+    @Test
+    void testCanDeleteCatalogItem() {
+        // given
+        UUID id = UUID.randomUUID();
+        given(catalogItemRepository.existsById(id)).willReturn(true);
+
+        // when
+        underTest.deleteCatalogItem(id);
+
+        // then
+        verify(catalogItemRepository).deleteById(id);
+    }
+
+    @Test
+    void testCanNotDeleteCatalogItem() {
+        // given
+        UUID id = UUID.randomUUID();
+        given(catalogItemRepository.existsById(id)).willReturn(false);
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.deleteCatalogItem(id))
+                .isInstanceOf(ApiRequestException.class)
+                .hasMessageContaining("Catalog item not found");
+
+        verify(catalogItemRepository, never()).deleteById(any());
+    }
+
+    @Test
+    void getCatalog() {
+        // given
+        String name = "aaa?bb*aa";
+        String country = "aaa?bb*aa";
+        String type = "aaa?bb*aa";
+        String nameChanged = "aaa_bb%aa";
+        String countryChanged = "aaa_bb%aa";
+        String typeChanged = "aaa_bb%aa";
+
+        Type typeEntity = new Type(type);
+
+        CatalogItem catalogItem = new CatalogItem();
+        catalogItem.setName("aaacbbbbbbbaa");
+        catalogItem.setBibliography(Set.of(new Bibliography("bibl", catalogItem)));
+        catalogItem.setTypes(Set.of(typeEntity));
+        catalogItem.setAlternativeNames(Set.of(new AlternativeName("altName", catalogItem)));
+        catalogItem.setCountries(Set.of(new Country("aaaabbaa", catalogItem)));
+        catalogItem.setWrittenForms(Set.of(new WrittenForm("written", catalogItem)));
+        catalogItem.setCertainty(0);
+        catalogItem.setLatitude(0.1);
+        catalogItem.setLongitude(0.2);
+
+        CatalogItem catalogItem2 = new CatalogItem();
+        catalogItem2.setName("name");
+        catalogItem2.setBibliography(Set.of(new Bibliography("bibl", catalogItem2)));
+        catalogItem2.setTypes(Set.of(typeEntity));
+        catalogItem2.setAlternativeNames(Set.of(new AlternativeName("aaaabbbbbbaa", catalogItem2)));
+        catalogItem2.setCountries(Set.of(new Country("aaaabbcccefaa", catalogItem2)));
+        catalogItem2.setWrittenForms(Set.of(new WrittenForm("written", catalogItem2)));
+        catalogItem2.setCertainty(1);
+        catalogItem2.setLatitude(1.1);
+        catalogItem2.setLongitude(1.2);
+
+        CatalogItemDto catalogItemDto = new CatalogItemDto();
+        catalogItemDto.setName("aaacbbbbbbbaa");
+        catalogItemDto.setBibliography(Set.of("bibl"));
+        catalogItemDto.setTypes(Set.of("aaa?bb*aa"));
+        catalogItemDto.setAlternativeNames(Set.of("altName"));
+        catalogItemDto.setCountries(Set.of("aaaabbaa"));
+        catalogItemDto.setWrittenForms(Set.of("written"));
+        catalogItemDto.setCertainty(0);
+        catalogItemDto.setLatitude(0.1);
+        catalogItemDto.setLongitude(0.2);
+
+        CatalogItemDto catalogItemDto2 = new CatalogItemDto();
+        catalogItemDto2.setName("name");
+        catalogItemDto2.setBibliography(Set.of("bibl"));
+        catalogItemDto2.setTypes(Set.of("aaa?bb*aa"));
+        catalogItemDto2.setAlternativeNames(Set.of("aaaabbbbbbaa"));
+        catalogItemDto2.setCountries(Set.of("aaaabbcccefaa"));
+        catalogItemDto2.setWrittenForms(Set.of("written"));
+        catalogItemDto2.setCertainty(1);
+        catalogItemDto2.setLatitude(1.1);
+        catalogItemDto2.setLongitude(1.2);
+
+        given(catalogItemRepository.filterCatalog(nameChanged, countryChanged, typeChanged)).willReturn(Set.of(catalogItem, catalogItem2));
+
+        // when
+        List<CatalogItemDto> results = underTest.getCatalog(name, country, type);
+
+        // then
+        assertThat(results.size()).isEqualTo(2);
+        assertTrue(results.contains(catalogItemDto));
+        assertTrue(results.contains(catalogItemDto2));
+
+        verify(catalogItemRepository).filterCatalog(nameChanged, countryChanged, typeChanged);
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementationTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementationTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..61a333a4578237fa1b302eb542e2554e34bbeab8
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/titlepage/TitlePageServiceImplementationTest.java
@@ -0,0 +1,97 @@
+package cz.zcu.kiv.backendapi.titlepage;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Optional;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class TitlePageServiceImplementationTest {
+
+    @Mock
+    private TitlePageRepository titlePageRepository;
+
+    private TitlePageServiceImplementation underTest;
+
+    @BeforeEach
+    void setUp() {
+        underTest = new TitlePageServiceImplementation(titlePageRepository);
+    }
+
+    @Test
+    void testAddTitlePage() {
+        // given
+        long id = 1;
+        TitlePage titlePage = new TitlePage();
+        titlePage.setTitle("title");
+        titlePage.setContent("content");
+
+        // when
+        underTest.updateTitlePage(titlePage);
+
+        // then
+        ArgumentCaptor<TitlePage> argumentCaptor = ArgumentCaptor.forClass(TitlePage.class);
+
+        verify(titlePageRepository).save(argumentCaptor.capture());
+
+        TitlePage capturedTitlePage = argumentCaptor.getValue();
+
+        assertThat(capturedTitlePage.getId()).isEqualTo(id);
+
+        assertThat(capturedTitlePage).isEqualTo(titlePage);
+
+    }
+
+    @Test
+    void testGetTitlePageWhenExists() {
+        // given
+        long id = 1;
+        TitlePage titlePage = new TitlePage(id, "title", "content");
+
+        given(titlePageRepository.findById(id)).willReturn(Optional.of(titlePage));
+
+        // when
+        TitlePage result = underTest.getTitlePage();
+
+        // then
+        verify(titlePageRepository).findById(id);
+        verify(titlePageRepository, never()).save(any());
+
+        assertThat(result).isEqualTo(titlePage);
+
+    }
+
+    @Test
+    void testGetTitlePageWhenNotExists() {
+        // given
+        long id = 1;
+        TitlePage titlePage = new TitlePage(id, "", "");
+
+        given(titlePageRepository.findById(id)).willReturn(Optional.empty());
+
+        // when
+        underTest.getTitlePage();
+
+        // then
+        verify(titlePageRepository).findById(id);
+
+        ArgumentCaptor<TitlePage> argumentCaptor = ArgumentCaptor.forClass(TitlePage.class);
+
+        verify(titlePageRepository).save(argumentCaptor.capture());
+
+        TitlePage capturedTitlePage = argumentCaptor.getValue();
+
+        assertThat(capturedTitlePage).isEqualTo(titlePage);
+
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/type/TypeServiceImplTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/type/TypeServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..51fcda503beb8d67a3169df768704fd766322451
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/type/TypeServiceImplTest.java
@@ -0,0 +1,52 @@
+package cz.zcu.kiv.backendapi.type;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class TypeServiceImplTest {
+
+    @Mock
+    private TypeRepository typeRepository;
+
+    private TypeServiceImpl underTest;
+
+    @BeforeEach
+    void setUp() {
+        underTest = new TypeServiceImpl(typeRepository);
+    }
+
+    @Test
+    void saveType() {
+        // when
+        Type type = new Type("type");
+        underTest.saveType(type);
+
+        // then
+        ArgumentCaptor<Type> argumentCaptor = ArgumentCaptor.forClass(Type.class);
+
+        verify(typeRepository).save(argumentCaptor.capture());
+
+        Type capturedType = argumentCaptor.getValue();
+
+        assertThat(capturedType).isEqualTo(type);
+    }
+
+    @Test
+    void getTypeByName() {
+        // when
+        String typeName = "type";
+        underTest.getTypeByName(typeName);
+
+        // then
+        verify(typeRepository).findById(typeName);
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserRepositoryTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserRepositoryTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..291a616939af495d73c191e6892331c253bde9f9
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserRepositoryTest.java
@@ -0,0 +1,48 @@
+package cz.zcu.kiv.backendapi.user;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@DataJpaTest
+class UserRepositoryTest {
+
+    @Autowired
+    private UserRepository underTest;
+
+    @AfterEach
+    void tearDown() {
+        underTest.deleteAll();
+    }
+
+    @Test
+    void itShouldFindByEmail() {
+        // given
+        String email = "user@user.com";
+        UserEntity userEntity = new UserEntity("User", email, "password", (byte) 0, false);
+        underTest.save(userEntity);
+
+        // when
+        Optional<UserEntity> userFoundByEmail = underTest.findByEmail(email);
+
+        // then
+        assertTrue(userFoundByEmail.isPresent());
+    }
+
+    @Test
+    void itShouldNotFindByEmail() {
+        // given
+        String email = "user@user.com";
+
+        // when
+        Optional<UserEntity> userFoundByEmail = underTest.findByEmail(email);
+
+        // then
+        assertTrue(userFoundByEmail.isEmpty());
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserServiceImplTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..7fcbd4f0e434b193b375a0772779680af4bd9d43
--- /dev/null
+++ b/backend/src/test/java/cz/zcu/kiv/backendapi/user/UserServiceImplTest.java
@@ -0,0 +1,328 @@
+package cz.zcu.kiv.backendapi.user;
+
+import cz.zcu.kiv.backendapi.exception.ApiRequestException;
+import cz.zcu.kiv.backendapi.user.password.PasswordDto;
+import cz.zcu.kiv.backendapi.user.permission.PermissionDto;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+class UserServiceImplTest {
+
+    @Mock
+    private UserRepository userRepository;
+
+    @Mock
+    private BCryptPasswordEncoder bCryptPasswordEncoder;
+
+    private UserServiceImpl underTest;
+
+    @BeforeEach
+    void setUp() {
+        underTest = new UserServiceImpl(userRepository, bCryptPasswordEncoder);
+    }
+
+    @Test
+    void testCanLoadUserByUsername() {
+        // given
+        String email = "test@test.com";
+        UserEntity userEntity = new UserEntity("John Doe", email, "password", (byte) 1, false);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+
+        // when
+        UserEntity user = (UserEntity) underTest.loadUserByUsername(email);
+
+        // then
+        verify(userRepository).findByEmail(email);
+        assertThat(user).isEqualTo(userEntity);
+    }
+
+    @Test
+    void testCanNotLoadUserByUsername() {
+        String email = "test@test.com";
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.loadUserByUsername(email))
+                .isInstanceOf(UsernameNotFoundException.class)
+                .hasMessageContaining("User with username " + email + " not found");
+
+        verify(userRepository).findByEmail(email);
+    }
+
+    @Test
+    void testCanGetUserByName() {
+        // given
+        String email = "test@test.com";
+        UserEntity userEntity = new UserEntity("John Doe", email, "password", (byte) 1, false);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+
+        // when
+        UserEntity user = underTest.getUserByName(email);
+
+        // then
+        verify(userRepository).findByEmail(email);
+        assertThat(user).isEqualTo(userEntity);
+    }
+
+    @Test
+    void testCanNotGetUserByName() {
+        String email = "test@test.com";
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.getUserByName(email))
+                .isInstanceOf(UsernameNotFoundException.class)
+                .hasMessageContaining("User with username " + email + " not found");
+
+        verify(userRepository).findByEmail(email);
+    }
+
+    @Test
+    void canRegisterNewUser() {
+        // given
+        String email = "test@test.com";
+        String password = "password";
+        UserDto userDto = new UserDto("John Doe", email, new PermissionDto(), new PasswordDto(password, password));
+        UserEntity userEntity = new UserEntity(userDto.getName(), userDto.getEmail(), bCryptPasswordEncoder.encode(password), (byte) 0, false);
+        // when
+        underTest.registerNewUser(userDto);
+
+        // then
+        ArgumentCaptor<UserEntity> argumentCaptor = ArgumentCaptor.forClass(UserEntity.class);
+
+        verify(userRepository).save(argumentCaptor.capture());
+
+        UserEntity capturedUser = argumentCaptor.getValue();
+
+        assertThat(capturedUser).isEqualTo(userEntity);
+    }
+
+    @Test
+    void canNotRegisterNewUser() {
+        // given
+        String email = "test@test.com";
+        String password = "password";
+        UserDto userDto = new UserDto("John Doe", email, new PermissionDto(), new PasswordDto(password, password));
+
+
+        given(userRepository.findByEmail(anyString())).willReturn(Optional.of(new UserEntity()));
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.registerNewUser(userDto))
+                .isInstanceOf(ApiRequestException.class)
+                .hasMessageContaining("User with username " + email + " already exists");
+
+        verify(userRepository, never()).save(any());
+    }
+
+    @Test
+    void testCanUpdatePermissions() {
+        // given
+        String email = "test@test.com";
+        String password = "password";
+        UserEntity userEntity = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(password), (byte) 0, false);
+        UserEntity userEntityWithChangedPermissions = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(password), (byte) 7, false);
+        PermissionDto permissionDto = new PermissionDto(true, true, true);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+
+        // when
+        underTest.updatePermissions(email, permissionDto);
+
+        // then
+        ArgumentCaptor<UserEntity> argumentCaptor = ArgumentCaptor.forClass(UserEntity.class);
+
+        verify(userRepository).save(argumentCaptor.capture());
+
+        UserEntity capturedUser = argumentCaptor.getValue();
+
+        assertThat(capturedUser).isEqualTo(userEntityWithChangedPermissions);
+    }
+
+    @Test
+    void testCanNotUpdatePermissions() {
+        // given
+        String email = "test@test.com";
+        PermissionDto permissionDto = new PermissionDto();
+        given(userRepository.findByEmail(anyString())).willReturn(Optional.empty());
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.updatePermissions(email, permissionDto))
+                .isInstanceOf(UsernameNotFoundException.class)
+                .hasMessageContaining("User with username " + email + " not found");
+
+        verify(userRepository, never()).save(any());
+    }
+
+    @Test
+    void testCanResetPassword() {
+        // given
+        String email = "test@test.com";
+        String password = "password";
+        String newPassword = "password123";
+        UserEntity userEntity = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(password), (byte) 0, false);
+        UserEntity userEntityWithChangedPassword = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(newPassword), (byte) 0, false);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+
+        // when
+        underTest.resetPassword(email, newPassword);
+
+        // then
+        ArgumentCaptor<UserEntity> argumentCaptor = ArgumentCaptor.forClass(UserEntity.class);
+
+        verify(userRepository).save(argumentCaptor.capture());
+
+        UserEntity capturedUser = argumentCaptor.getValue();
+
+        assertThat(capturedUser).isEqualTo(userEntityWithChangedPassword);
+    }
+
+    @Test
+    void testCanNotResetPassword() {
+        // given
+        String email = "test@test.com";
+        String newPassword = "password123";
+        given(userRepository.findByEmail(anyString())).willReturn(Optional.empty());
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.resetPassword(email, newPassword))
+                .isInstanceOf(UsernameNotFoundException.class)
+                .hasMessageContaining("User with username " + email + " not found");
+
+        verify(userRepository, never()).save(any());
+    }
+
+    @Test
+    void testCanDeleteUser() {
+        // given
+        String email = "test@test.com";
+        given(userRepository.existsById(email)).willReturn(true);
+        // when
+        underTest.deleteUser(email);
+
+        // then
+        verify(userRepository).deleteById(email);
+    }
+
+    @Test
+    void testCanNotDeleteUser() {
+        // given
+        String email = "test@test.com";
+        given(userRepository.existsById(email)).willReturn(false);
+        // when
+        assertThatThrownBy(() -> underTest.deleteUser(email))
+                .isInstanceOf(UsernameNotFoundException.class)
+                .hasMessageContaining("User with username " + email + " not found");
+
+        // then
+        verify(userRepository, never()).deleteById(email);
+    }
+
+    @Test
+    void getAllUsers() {
+        // given
+        UserEntity userEntity1 = new UserEntity("first", "first@test.com", "password", (byte) 0, false);
+        UserEntity userEntity2 = new UserEntity("second", "second@test.com", "password2", (byte) 1, false);
+        UserEntity userEntity3 = new UserEntity("third", "third@test.com", "password3", (byte) 7, true);
+
+        UserDto userDto1 = new UserDto("first", "first@test.com", new PermissionDto(), null);
+        UserDto userDto2 = new UserDto("second", "second@test.com", new PermissionDto(true, false, false), null);
+        UserDto userDto3 = new UserDto("third", "third@test.com", new PermissionDto(true, true, true), null);
+
+        given(userRepository.findAll()).willReturn(List.of(userEntity1, userEntity2, userEntity3));
+
+        // when
+        List<UserDto> allUsers = underTest.getAllUsers();
+
+        // then
+        assertThat(allUsers.size()).isEqualTo(3);
+        assertTrue(allUsers.contains(userDto1));
+        assertTrue(allUsers.contains(userDto2));
+        assertTrue(allUsers.contains(userDto3));
+
+
+        verify(userRepository).findAll();
+    }
+
+    @Test
+    void testCanChangePassword() {
+        // given
+        String email = "test@test.com";
+        String oldPassword = "password";
+        String newPassword = "password123";
+        given(bCryptPasswordEncoder.encode(oldPassword)).willReturn("encodedOldPassword");
+        given(bCryptPasswordEncoder.encode(newPassword)).willReturn("encodedNewPassword");
+        UserEntity userEntity = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(oldPassword), (byte) 0, false);
+        UserEntity userEntityWithChangedPassword = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(newPassword), (byte) 0, false);
+        given(bCryptPasswordEncoder.matches(any(), any())).willReturn(true);
+        SecurityContext securityContext = mock(SecurityContext.class);
+        Authentication authentication = mock(Authentication.class);
+        given(securityContext.getAuthentication()).willReturn(authentication);
+        SecurityContextHolder.setContext(securityContext);
+        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(email, null, Collections.emptySet());
+        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+        given(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).willReturn(email);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+        // when
+        underTest.changePassword(oldPassword, newPassword);
+
+        // then
+        ArgumentCaptor<UserEntity> argumentCaptor = ArgumentCaptor.forClass(UserEntity.class);
+
+        verify(userRepository).save(argumentCaptor.capture());
+
+        UserEntity capturedUser = argumentCaptor.getValue();
+
+        assertThat(capturedUser).isEqualTo(userEntityWithChangedPassword);
+    }
+
+    @Test
+    void testCanNotChangePassword() {
+        // given
+        String email = "test@test.com";
+        String oldPassword = "password";
+        String newPassword = "password123";
+        UserEntity userEntity = new UserEntity("John Doe", email, bCryptPasswordEncoder.encode(oldPassword), (byte) 0, false);
+        given(bCryptPasswordEncoder.matches(any(), any())).willReturn(false);
+        SecurityContext securityContext = mock(SecurityContext.class);
+        Authentication authentication = mock(Authentication.class);
+        given(securityContext.getAuthentication()).willReturn(authentication);
+        SecurityContextHolder.setContext(securityContext);
+        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(email, null, Collections.emptySet());
+        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+        given(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).willReturn(email);
+        given(userRepository.findByEmail(email)).willReturn(Optional.of(userEntity));
+
+        // when
+        // then
+        assertThatThrownBy(() -> underTest.changePassword(oldPassword, newPassword))
+                .isInstanceOf(ApiRequestException.class)
+                .hasMessageContaining("Old password does not match");
+
+        verify(userRepository, never()).save(any());
+    }
+}
\ No newline at end of file
diff --git a/backend/src/test/resources/application.properties b/backend/src/test/resources/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..40e4da488406eb2804a6475772a1446fb34490ca
--- /dev/null
+++ b/backend/src/test/resources/application.properties
@@ -0,0 +1,12 @@
+spring.datasource.url=jdbc:h2://mem:db;DB_CLOSE_DELAY=-1
+spring.datasource.username=sa
+spring.datasource.password=sa
+spring.datasource.driver-class-name=org.h2.Driver
+
+spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.generate-ddl=true
+spring.jpa.open-in-view=false
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
+spring.jpa.properties.hibernate.format_sql=true
+spring.jpa.show-sql=true
+
diff --git a/frontend/.env b/frontend/.env
new file mode 100644
index 0000000000000000000000000000000000000000..ae3abf8f093cb9db6236ce4dd3eb20320ad09cc1
--- /dev/null
+++ b/frontend/.env
@@ -0,0 +1 @@
+REACT_APP_API_BASE_URL=/api
\ No newline at end of file
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..85f30939ae4f0f1f7ba4c3a07b5630dd483e10ae
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,24 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+./yarn.lock
\ No newline at end of file
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..85193d51794bccf19f57f81bea0115b77acd914a
--- /dev/null
+++ b/frontend/Dockerfile
@@ -0,0 +1,37 @@
+# STAGE 1 - build the react app # set the base image to build from
+# This is the application image from which all other subsequent
+# applications run. Alpine Linux is a security-oriented, lightweight #(~5Mb) Linux distribution.
+FROM node:alpine as build
+# set working directory
+# this is the working folder in the container from which the app.   # will be running from
+WORKDIR /app
+
+# add the node_modules folder to $PATH
+ENV PATH /app/node_modules/.bin:$PATH
+
+# copy package.json file to /app directory for installation prep
+COPY ./package.json /app/
+
+# install dependencies
+RUN yarn --silent
+
+# copy everything to /app directory
+COPY . /app
+
+# build the app
+RUN yarn build
+
+# STAGE 2 - build the final image using a nginx web server
+# distribution and copy the react build files
+FROM nginx:alpine
+COPY --from=build /app/build /usr/share/nginx/html
+
+# needed this to make React Router work properly
+RUN rm /etc/nginx/conf.d/default.conf
+COPY nginx/nginx.conf /etc/nginx/conf.d
+
+# Expose port 80 for HTTP Traffic
+EXPOSE 80
+
+# start the nginx web server
+CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
diff --git a/frontend/README.md b/frontend/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b58e0af830ec5dbc90534e641396406fd17bf11c
--- /dev/null
+++ b/frontend/README.md
@@ -0,0 +1,46 @@
+# Getting Started with Create React App
+
+This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `yarn start`
+
+Runs the app in the development mode.\
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
+
+The page will reload if you make edits.\
+You will also see any lint errors in the console.
+
+### `yarn test`
+
+Launches the test runner in the interactive watch mode.\
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
+
+### `yarn build`
+
+Builds the app for production to the `build` folder.\
+It correctly bundles React in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.\
+Your app is ready to be deployed!
+
+See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
+
+### `yarn eject`
+
+**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
+
+If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
+
+You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
+
+## Learn More
+
+You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
+
+To learn React, check out the [React documentation](https://reactjs.org/).
diff --git a/frontend/nginx/nginx.conf b/frontend/nginx/nginx.conf
new file mode 100644
index 0000000000000000000000000000000000000000..4a52cb86b1aa76ad41134a63830c06a9823dd02c
--- /dev/null
+++ b/frontend/nginx/nginx.conf
@@ -0,0 +1,18 @@
+upstream app {
+    server app:8080;
+}
+server {
+    listen 80;
+
+    root   /usr/share/nginx/html;
+
+    location / {
+        index  index.html index.htm;
+        try_files $uri $uri/ /index.html;
+    }
+
+    location /api {
+        rewrite /api/(.*) /$1 break;
+        proxy_pass http://app;
+    }
+}
\ No newline at end of file
diff --git a/frontend/package.json b/frontend/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..9851cc8b31f4840455ba469626d78efaee7beff6
--- /dev/null
+++ b/frontend/package.json
@@ -0,0 +1,68 @@
+{
+  "name": "frontend",
+  "type": "module",
+  "version": "0.1.0",
+  "private": true,
+  "dependencies": {
+    "@emotion/react": "^11.8.2",
+    "@emotion/styled": "^11.8.1",
+    "@faker-js/faker": "^6.0.0",
+    "@mui/icons-material": "^5.5.1",
+    "@mui/material": "^5.5.2",
+    "@reduxjs/toolkit": "^1.8.1",
+    "axios": "^0.26.0",
+    "dotenv": "^16.0.0",
+    "formik": "^2.2.9",
+    "jwt-decode": "^3.1.2",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "react-redux": "^7.2.6",
+    "react-router-dom": "^6.2.2",
+    "react-scripts": "5.0.0",
+    "redux": "^4.1.2",
+    "redux-persist": "^6.0.0",
+    "redux-thunk": "^2.4.1",
+    "swagger-typescript-api": "^9.3.1",
+    "ts-node": "^10.7.0",
+    "typescript": "^4.4.2",
+    "web-vitals": "^2.1.0",
+    "yup": "^0.32.11"
+  },
+  "scripts": {
+    "start": "react-scripts start",
+    "build": "react-scripts build",
+    "test": "react-scripts test",
+    "eject": "react-scripts eject",
+    "gen:swagger": "swagger-typescript-api -p http://localhost:8080/v3/api-docs -o ./src/swagger --modular"
+  },
+  "eslintConfig": {
+    "extends": [
+      "react-app",
+      "react-app/jest"
+    ]
+  },
+  "browserslist": {
+    "production": [
+      ">0.2%",
+      "not dead",
+      "not op_mini all"
+    ],
+    "development": [
+      "last 1 chrome version",
+      "last 1 firefox version",
+      "last 1 safari version"
+    ]
+  },
+  "devDependencies": {
+    "@testing-library/jest-dom": "^5.14.1",
+    "@testing-library/react": "^12.0.0",
+    "@testing-library/user-event": "^13.2.1",
+    "@types/jest": "^27.0.1",
+    "@types/node": "^16.7.13",
+    "@types/react": "^17.0.43",
+    "@types/react-dom": "^17.0.9",
+    "@types/react-redux": "^7.1.23",
+    "@types/redux-persist": "^4.3.1",
+    "@types/yup": "^0.29.13"
+  }
+}
diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a
Binary files /dev/null and b/frontend/public/favicon.ico differ
diff --git a/frontend/public/index.html b/frontend/public/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..aa069f27cbd9d53394428171c3989fd03db73c76
--- /dev/null
+++ b/frontend/public/index.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="theme-color" content="#000000" />
+    <meta
+      name="description"
+      content="Web site created using create-react-app"
+    />
+    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
+    <!--
+      manifest.json provides metadata used when your web app is installed on a
+      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
+    -->
+    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
+    <!--
+      Notice the use of %PUBLIC_URL% in the tags above.
+      It will be replaced with the URL of the `public` folder during the build.
+      Only files inside the `public` folder can be referenced from the HTML.
+
+      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
+      work correctly both with client-side routing and a non-root public URL.
+      Learn how to configure a non-root public URL by running `npm run build`.
+    -->
+    <title>React App</title>
+  </head>
+  <body>
+    <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="root"></div>
+    <!--
+      This HTML file is a template.
+      If you open it directly in the browser, you will see an empty page.
+
+      You can add webfonts, meta tags, or analytics to this file.
+      The build step will place the bundled scripts into the <body> tag.
+
+      To begin the development, run `npm start` or `yarn start`.
+      To create a production bundle, use `npm run build` or `yarn build`.
+    -->
+  </body>
+</html>
diff --git a/frontend/public/logo192.png b/frontend/public/logo192.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9
Binary files /dev/null and b/frontend/public/logo192.png differ
diff --git a/frontend/public/logo512.png b/frontend/public/logo512.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4e47a6545bc15971f8f63fba70e4013df88a664
Binary files /dev/null and b/frontend/public/logo512.png differ
diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..080d6c77ac21bb2ef88a6992b2b73ad93daaca92
--- /dev/null
+++ b/frontend/public/manifest.json
@@ -0,0 +1,25 @@
+{
+  "short_name": "React App",
+  "name": "Create React App Sample",
+  "icons": [
+    {
+      "src": "favicon.ico",
+      "sizes": "64x64 32x32 24x24 16x16",
+      "type": "image/x-icon"
+    },
+    {
+      "src": "logo192.png",
+      "type": "image/png",
+      "sizes": "192x192"
+    },
+    {
+      "src": "logo512.png",
+      "type": "image/png",
+      "sizes": "512x512"
+    }
+  ],
+  "start_url": ".",
+  "display": "standalone",
+  "theme_color": "#000000",
+  "background_color": "#ffffff"
+}
diff --git a/frontend/public/robots.txt b/frontend/public/robots.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e9e57dc4d41b9b46e05112e9f45b7ea6ac0ba15e
--- /dev/null
+++ b/frontend/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/frontend/requests/login.http b/frontend/requests/login.http
new file mode 100644
index 0000000000000000000000000000000000000000..9c402c2cb933c63e40269f88098054df6be77352
--- /dev/null
+++ b/frontend/requests/login.http
@@ -0,0 +1,9 @@
+POST /login
+Host: /api
+Content-Type: application/json
+
+{
+    "username": "ultrabanger",
+    "email": "ultra@banger.com",
+    "password": "thereisnone"
+}
\ No newline at end of file
diff --git a/frontend/requests/register.http b/frontend/requests/register.http
new file mode 100644
index 0000000000000000000000000000000000000000..0eeab65b64651f9d17932933a15595bf192c1910
--- /dev/null
+++ b/frontend/requests/register.http
@@ -0,0 +1,12 @@
+POST /register
+Host: /api
+Content-Type: application/json
+
+
+{
+    "name": "ultrabanger3000",
+    "email": "ultra@banger.com",
+    "canRead": true,
+    "canWrite": true,
+    "canDelete": true
+}
\ No newline at end of file
diff --git a/frontend/src/.env b/frontend/src/.env
new file mode 100644
index 0000000000000000000000000000000000000000..ae3abf8f093cb9db6236ce4dd3eb20320ad09cc1
--- /dev/null
+++ b/frontend/src/.env
@@ -0,0 +1 @@
+REACT_APP_API_BASE_URL=/api
\ No newline at end of file
diff --git a/frontend/src/App.css b/frontend/src/App.css
new file mode 100644
index 0000000000000000000000000000000000000000..74b5e053450a48a6bdb4d71aad648e7af821975c
--- /dev/null
+++ b/frontend/src/App.css
@@ -0,0 +1,38 @@
+.App {
+  text-align: center;
+}
+
+.App-logo {
+  height: 40vmin;
+  pointer-events: none;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+  .App-logo {
+    animation: App-logo-spin infinite 20s linear;
+  }
+}
+
+.App-header {
+  background-color: #282c34;
+  min-height: 100vh;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-size: calc(10px + 2vmin);
+  color: white;
+}
+
+.App-link {
+  color: #61dafb;
+}
+
+@keyframes App-logo-spin {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..e760950c9ffa89bfdb6759d75ecc40eb67fcf337
--- /dev/null
+++ b/frontend/src/App.tsx
@@ -0,0 +1,37 @@
+import './App.css'
+import { Routes, Route, Link } from 'react-router-dom'
+import Home from './features/Home/Home'
+import Catalog from './features/Catalog/Catalog'
+import NotFound from './features/NotFound/NotFound'
+import { Container, Paper, Theme } from '@mui/material'
+import { ThemeProvider } from '@emotion/react'
+import { useSelector } from 'react-redux'
+import { RootState } from './features/redux/store'
+import Login from './features/Auth/Login'
+import CatalogItemDetail from './features/Catalog/CatalogItemDetail'
+import Navigation from './features/Navigation/Navigation'
+
+const App = () => {
+    const theme: Theme = useSelector((state: RootState) => state.theme.theme)
+
+    return (
+        <ThemeProvider theme={theme}>
+            <Navigation>
+                    <Container>
+                        <Routes>
+                            <Route path="/" element={<Home />} />
+                            <Route path="/catalog" element={<Catalog />} />
+                            <Route
+                                path="/catalog/:itemId"
+                                element={<CatalogItemDetail />}
+                            />
+                            <Route path="/login" element={<Login />} />
+                            <Route path="*" element={<NotFound />} />
+                        </Routes>
+                    </Container>
+            </Navigation>
+        </ThemeProvider>
+    )
+}
+
+export default App
diff --git a/frontend/src/api/api.ts b/frontend/src/api/api.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7cabf90eae7dcdbdf743a3e1196dbc410d07682a
--- /dev/null
+++ b/frontend/src/api/api.ts
@@ -0,0 +1,99 @@
+import axios from 'axios'
+import { Store } from 'redux'
+import conf from '../config/conf'
+import config from '../config/conf'
+import { AppStore } from '../features/redux/store'
+
+let store: AppStore // this will get injected in index.tsx
+
+export const injectStore = (_store: Store) => {
+    store = _store
+}
+
+// Error
+export interface ApiError {}
+
+const createBaseInstance = () =>
+    axios.create({
+        baseURL: config.baseUrl,
+        headers: {}
+    })
+
+const axiosInstance = createBaseInstance()
+
+axiosInstance.interceptors.request.use(
+    (config) => {
+        const accessToken = store.getState().user.accessToken // get the access token from the store
+        if (accessToken) {
+            // @ts-ignore (axios typescript types are a crime and this will always be defined)
+            config.headers['Authorization'] = accessToken as string
+        }
+
+        return config
+    },
+    (err) => {
+        Promise.reject(err)
+    }
+)
+
+axiosInstance.interceptors.response.use(
+    (res) => res,
+    async (err) => {
+        const originalConfig = err.config
+
+
+        // Original URL might be login in which case we don't want to refresh the access token
+        // Since the user just failed to log in and no token expired
+        if (originalConfig.url === '/login' || !err.response) {
+            return Promise.reject(err)
+        }
+
+        // If the error is not a 401 reject this
+        if (err.response.status !== 401) {
+            return Promise.reject(err)
+        }
+
+        // We need to set the refresh token in the auth header
+        const oldRefreshToken = store.getState().user.refreshToken
+
+        // If there is no refresh token we simply log the user out
+        if (!oldRefreshToken) {
+            store.dispatch({ type: 'user/logout' })
+        }
+
+        // Try refreshing the JWT
+        try {
+            // For some reason axios refuses to create instance here so just use fetch
+            // Send the request
+            const res = await fetch(`${conf.baseUrl}/users/token`, {
+                method: 'GET',
+                // credentials: 'include',
+                headers: {
+                    'Authorization': oldRefreshToken as string
+                }
+            })
+
+            const json = await res.json()
+            const [ accessToken, refreshToken ] = [json.access_token, json.refresh_token]
+
+            // Set the new tokens
+            store.dispatch({
+                type: 'user/refreshTokens',
+                payload: { accessToken, refreshToken },
+            })
+
+            // Set this to retry the request that failed
+            originalConfig.retry = true
+
+            // Return the failed instance so it can retry
+            return axiosInstance(originalConfig)
+        } catch (err: any) {
+            // If the refresh token fails we log the user out
+            store.dispatch({ type: 'user/logout' })
+            originalConfig.retry = false // do not retry we are logged out
+            return originalConfig
+        }
+    }
+)
+
+export default axiosInstance
diff --git a/frontend/src/config/conf.ts b/frontend/src/config/conf.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7c592a317d2799ee429584d951aaaeb2594dc4cb
--- /dev/null
+++ b/frontend/src/config/conf.ts
@@ -0,0 +1,5 @@
+const conf = {
+    baseUrl: '/api'
+}
+
+export default conf;
\ No newline at end of file
diff --git a/frontend/src/features/Auth/Login.tsx b/frontend/src/features/Auth/Login.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..5effcc9b76ea87f743095f1556d4331e03bacfea
--- /dev/null
+++ b/frontend/src/features/Auth/Login.tsx
@@ -0,0 +1,105 @@
+import { Button, TextField, Typography } from '@mui/material'
+import { useFormik } from 'formik'
+import { Fragment, useEffect } from 'react'
+import { useDispatch, useSelector } from 'react-redux'
+import { useNavigate } from 'react-router-dom'
+import * as yup from 'yup'
+import { SchemaOf } from 'yup'
+import { RootState } from '../redux/store'
+import { logIn } from './userThunks'
+
+interface LoginFields {
+    username: string
+    password: string
+}
+
+const Login = () => {
+    const validationSchema: SchemaOf<LoginFields> = yup.object().shape({
+        username: yup.string().required('Username is required'),
+        password: yup.string().required('Password is required'),
+    })
+
+    const dispatch = useDispatch()
+    const formik = useFormik({
+        initialValues: {
+            username: '',
+            password: '',
+        },
+        validationSchema,
+        onSubmit: () => {
+            dispatch(
+                logIn({
+                    username: formik.values.username,
+                    password: formik.values.password,
+                })
+            )
+        },
+    })
+
+    // Redirect to home if the user is logged in
+    const userLoggedIn = useSelector(
+        (state: RootState) => state.user.isLoggedIn
+    )
+    const navigate = useNavigate()
+    useEffect(() => {
+        if (userLoggedIn) {
+            navigate('/')
+        }
+    }, [userLoggedIn, navigate])
+
+    return (
+        <Fragment>
+            <Typography variant="h3">Login</Typography>
+            <p>Credentials = admin:password</p>
+
+            <form onSubmit={formik.handleSubmit}>
+                <TextField
+                    label="Username"
+                    name="username"
+                    fullWidth
+                    sx={{ mb: 2 }}
+                    value={formik.values.username}
+                    onChange={formik.handleChange}
+                    error={
+                        Boolean(formik.errors.username) &&
+                        formik.touched.username
+                    }
+                    helperText={
+                        formik.errors.username &&
+                        formik.touched.username &&
+                        formik.errors.username
+                    }
+                />
+                <TextField
+                    type="password"
+                    label="Password"
+                    name="password"
+                    fullWidth
+                    value={formik.values.password}
+                    onChange={formik.handleChange}
+                    error={
+                        Boolean(formik.errors.password) &&
+                        formik.touched.password
+                    }
+                    helperText={
+                        formik.errors.password &&
+                        formik.touched.password &&
+                        formik.errors.password
+                    }
+                    sx={{ mb: 2 }}
+                />
+                <Button
+                    size="large"
+                    variant="contained"
+                    color="primary"
+                    type="submit"
+                    fullWidth
+                >
+                    Login
+                </Button>
+            </form>
+        </Fragment>
+    )
+}
+
+export default Login
diff --git a/frontend/src/features/Auth/Register.tsx b/frontend/src/features/Auth/Register.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..4833a02bc1243f3f3bb34f7d4c833848aae99189
--- /dev/null
+++ b/frontend/src/features/Auth/Register.tsx
@@ -0,0 +1,2 @@
+
+export default {}
\ No newline at end of file
diff --git a/frontend/src/features/Auth/userSlice.ts b/frontend/src/features/Auth/userSlice.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0c8c0ab6cdad5a26b0dfd47574e2d5fa41c79c23
--- /dev/null
+++ b/frontend/src/features/Auth/userSlice.ts
@@ -0,0 +1,67 @@
+import { createSlice } from '@reduxjs/toolkit'
+import { persistReducer } from 'redux-persist'
+import storage from 'redux-persist/lib/storage'
+import { logIn } from './userThunks'
+
+export interface UserState {
+    accessToken?: string
+    refreshToken?: string
+    username: string
+    roles: string[]
+    isLoggedIn: boolean
+    lastErr?: string // consumable for errors during thunks
+}
+
+const persistConfig = {
+    key: 'auth',
+    storage, // localStorage for browsers
+}
+
+// Default state when user first starts the application
+const initialState: UserState = {
+    roles: [],
+    isLoggedIn: false,
+    username: '',
+}
+
+export const userSlice = createSlice({
+    name: 'user', // name to generate action types
+
+    initialState, // default state
+
+    // Reducers that update the state
+    reducers: {
+        logout: () => initialState, // Reset to the inital state
+        refreshTokens: (state, action) => ({
+            ...state,
+            accessToken: action.payload.accessToken,
+            refreshToken: action.payload.refreshToken,
+        }),
+        setErr: (state, action) => ({
+            ...state,
+            lastErr: action.payload,
+        }),
+        setUserState: (state, action) => {
+            return ({ ...state, ...action.payload })
+        },
+    },
+
+    // Thunks
+    extraReducers: (builder) => {
+        builder.addCase(logIn.fulfilled, (state, action) => {
+            return ({ ...state, ...action.payload })
+        })
+        builder.addCase(logIn.rejected, (state, action) => {
+            if (action.payload && typeof action.payload === 'string') {
+                return ({ ...state, lastErr: action.payload })
+            }
+        })
+    },
+})
+
+
+const userReducer = persistReducer(persistConfig, userSlice.reducer)
+
+export const { logout, refreshTokens, setErr, setUserState } = userSlice.actions
+
+export default userReducer
diff --git a/frontend/src/features/Auth/userThunks.ts b/frontend/src/features/Auth/userThunks.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a7a16d7cb77111e81d2d3a8970b5794a783b0d76
--- /dev/null
+++ b/frontend/src/features/Auth/userThunks.ts
@@ -0,0 +1,51 @@
+import { createAsyncThunk } from '@reduxjs/toolkit'
+import axiosInstance from '../../api/api'
+import {  UserState } from './userSlice'
+import jwt from 'jwt-decode' 
+
+const loginError =
+    'Server error occurred while logging in. Please contact help service to resolve this issue or try again later.'
+
+// This is not present in the swagger since spring generates
+export interface UserLogin {
+    username: string,
+    password: string
+}
+
+export const logIn = createAsyncThunk(
+    'user/login',
+    async (userDto: UserLogin, { getState }) => {
+        try {
+            // @ts-ignore
+            if (getState().user.isLoggedIn) {
+                return Promise.reject(undefined)
+            }
+
+            const { data, status } = await axiosInstance.post('/login', userDto)
+            const [ accessToken, refreshToken ] = [data.access_token, data.refresh_token]
+            if (status !== 200) {
+                // TODO read API err
+                return Promise.reject(loginError)
+            }
+
+            // Strip bearer from access token
+            const userInfo = jwt(accessToken.replace('Bearer ', '')) as any
+            const { sub, authorities } = userInfo
+            if (!sub || !authorities) {
+                return Promise.reject(loginError)
+            }
+
+            const userState: UserState = {
+                accessToken,
+                refreshToken,
+                username: sub,
+                roles: authorities,
+                isLoggedIn: true
+            }
+            
+            return userState
+        } catch (err: any) {
+            return Promise.reject(loginError)
+        }
+    }
+)
diff --git a/frontend/src/features/Catalog/Catalog.tsx b/frontend/src/features/Catalog/Catalog.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..eac9af309b25478ff8fb692b90022d9a0484f5e1
--- /dev/null
+++ b/frontend/src/features/Catalog/Catalog.tsx
@@ -0,0 +1,98 @@
+import {
+    Box,
+    Button,
+    Collapse,
+    Container,
+    Grid,
+    Paper,
+    Stack,
+    TextField,
+    Typography,
+} from '@mui/material'
+import CatalogTable from './CatalogTable'
+import { Fragment, useState } from 'react'
+
+const Catalog = () => {
+    const [filterOpen, setFilterOpen] = useState(false)
+    const toggleFilter = () => {
+        setFilterOpen(!filterOpen)
+    }
+
+    return (
+        <Fragment>
+            <Paper
+                sx={{ py: 2, mt: 2 }}
+                variant="outlined"
+                style={{ minHeight: '50vh' }}
+            >
+                <Container sx={{ mt: 4 }}>
+                    <Typography variant="h3" sx={{mb: 2}} fontWeight="bold" >Catalog</Typography>
+                    <Button variant="outlined" color="primary" onClick={toggleFilter}>
+                        Filter
+                    </Button>
+                    <Collapse in={filterOpen} timeout="auto" unmountOnExit>
+                        <Grid container spacing={1} alignItems="stretch">
+                            <Grid item xs={6}>
+                                <Stack
+                                    direction="column"
+                                    spacing={1}
+                                    sx={{ mt: 2 }}
+                                >
+                                    <Stack direction="row" spacing={2}>
+                                        <TextField
+                                            size="small"
+                                            id="name"
+                                            label="Name"
+                                        />
+                                        <TextField
+                                            size="small"
+                                            id="type"
+                                            label="Type"
+                                        />
+                                        <TextField
+                                            size="small"
+                                            id="coordinates"
+                                            label="Coordinates"
+                                        />
+                                    </Stack>
+                                    <Stack direction="row" spacing={2}>
+                                        <TextField
+                                            size="small"
+                                            id="writtenForm"
+                                            label="Written form"
+                                        />
+                                        <TextField
+                                            size="small"
+                                            id="stateOrTerritory"
+                                            label="State or territory"
+                                        />
+                                        <TextField
+                                            size="small"
+                                            id="groupBy"
+                                            label="Group by"
+                                        />
+                                    </Stack>
+                                </Stack>
+                            </Grid>
+                            <Grid item xs sx={{ mt: 'auto', ml: 1, mb: 1 }}>
+                                <Stack
+                                    direction="row"
+                                    justifyContent="flex-start"
+                                    alignItems="flex-end"
+                                >
+                                    <Button variant="outlined">Search</Button>
+                                </Stack>
+                            </Grid>
+                        </Grid>
+                    </Collapse>
+
+                    <Box sx={{ mt: 4 }}>
+                        <CatalogTable />
+                    </Box>
+                </Container>
+            </Paper>
+        </Fragment>
+    )
+}
+
+export default Catalog
diff --git a/frontend/src/features/Catalog/CatalogItemDetail.tsx b/frontend/src/features/Catalog/CatalogItemDetail.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..d2424677e4be314141aa202678d8c0e3ab463135
--- /dev/null
+++ b/frontend/src/features/Catalog/CatalogItemDetail.tsx
@@ -0,0 +1,149 @@
+import {
+    Box,
+    Divider,
+    Grid,
+    Paper,
+    Skeleton,
+    Typography,
+} from '@mui/material'
+import { Fragment, useEffect, useState } from 'react'
+import { useParams } from 'react-router-dom'
+import axiosInstance from '../../api/api'
+import { CatalogItemDto } from '../../swagger/data-contracts'
+import ShowErrorIfPresent from '../Reusables/ShowErrorIfPresent'
+import ContentLoading from '../Reusables/ContentLoading'
+
+const apiError =
+    'Error while fetching data from the server, please try again later.'
+
+const CatalogItemDetail = () => {
+    // itemId from query params
+    const { itemId } = useParams()
+
+    const [item, setItem] = useState<CatalogItemDto | undefined>(undefined)
+    const [isItemLoading, setIsItemLoading] = useState(true)
+    const [err, setErr] = useState<string | undefined>(undefined)
+
+    // Fetch the item from the api after mounting the component
+    useEffect(() => {
+        // Function to fetch the item from the api
+        const fetchItem = async () => {
+            try {
+                const { data, status } = await axiosInstance.get(
+                    `/catalog-items/${itemId}`
+                )
+                if (status !== 200) {
+                    setErr(apiError)
+                    return
+                }
+
+                setItem(data)
+                setIsItemLoading(false)
+            } catch (err: any) {
+                setErr(apiError)
+            }
+        }
+
+        fetchItem()
+    }, [])
+
+    // Maps catalogItem property to corresponding table row
+    const mapToRow = (rowName: string, items: string[]) => (
+        <Fragment>
+            <Grid sx={{ my: 2 }} container justifyContent="space-around">
+                <Grid item xs={8} sx={{ px: 1 }}>
+                    <Typography fontWeight={500}>{rowName}</Typography>
+                </Grid>
+                <Grid item xs={4} sx={{ ml: 'auto' }}>
+                    {items.map((item) => (
+                        <Typography>{item}</Typography>
+                    ))}
+                </Grid>
+            </Grid>
+        </Fragment>
+    )
+
+    // Catalog item rows
+    const rows = [
+        {
+            rowName: 'Name',
+            items: [item?.name],
+        },
+        {
+            rowName: 'Alternative Names',
+            items: item?.alternativeNames,
+        },
+        {
+            rowName: 'Written Forms',
+            items: item?.writtenForms,
+        },
+        {
+            rowName: 'Type',
+            items: item?.types,
+        },
+        {
+            rowName: 'State or Territory',
+            items: item?.countries,
+        },
+        {
+            rowName: 'Coordinates',
+            items: [`${item?.longitude}°, ${item?.latitude}°`],
+        },
+        {
+            rowName: 'Certainty',
+            items: [item?.certainty],
+        },
+        {
+            rowName: 'Bibliography',
+            items: item?.bibliography,
+        },
+    ]
+
+    return (
+        // TODO remove min height
+        <Paper style={{ minHeight: '100vh', borderRadius: 0 }} elevation={2}>
+            <ShowErrorIfPresent err={err} />
+
+            {isItemLoading && !err ? <ContentLoading /> : null}
+            {!isItemLoading && item ? (
+                <Grid container justifyContent="space-around">
+                    <Grid item xs={6} sx={{ px: 2 }}>
+                        {rows.map((row, idx) => {
+                            const maxIdx = rows.length - 1
+                            return (
+                                <Fragment>
+                                    {mapToRow(
+                                        row.rowName as string,
+                                        row.items as string[]
+                                    )}
+                                    {idx === maxIdx ? null : <Divider />}
+                                </Fragment>
+                            )
+                        })}
+                    </Grid>
+
+                    <Grid item xs={6}>
+                        <Box sx={{ px: 2, py: 4 }}>
+                            <Typography
+                                variant="h4"
+                                sx={{ mb: 4 }}
+                                fontWeight="bold"
+                            >
+                                Map
+                            </Typography>
+
+                            <Skeleton
+                                animation="pulse"
+                                variant="rectangular"
+                                width="100%"
+                                height={400}
+                            />
+                        </Box>
+                    </Grid>
+                </Grid>
+            ) : null}
+        </Paper>
+    )
+}
+
+export default CatalogItemDetail
diff --git a/frontend/src/features/Catalog/CatalogTable.tsx b/frontend/src/features/Catalog/CatalogTable.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..d1318bf258747b43e1c2979a78767aa316740bf0
--- /dev/null
+++ b/frontend/src/features/Catalog/CatalogTable.tsx
@@ -0,0 +1,158 @@
+import {
+    Link,
+    Table,
+    TableBody,
+    TableCell,
+    TableContainer,
+    TableHead,
+    TablePagination,
+    TableRow,
+} from '@mui/material'
+import { Fragment, useEffect, useState } from 'react'
+import { Link as RouterLink } from 'react-router-dom'
+import { CatalogItemDto } from '../../swagger/data-contracts'
+import ShowErrorIfPresent from '../Reusables/ShowErrorIfPresent'
+import ContentLoading from '../Reusables/ContentLoading'
+import axiosInstance from '../../api/api'
+
+const apiError =
+    'Error while fetching data from the server, please try again later.'
+
+// Catalog table component
+const CatalogTable = () => {
+    const [page, setPage] = useState(0) // currently shown page
+    const rowsPerPage = [5, 10, 15, 20] // number of rows per page
+
+    // Selected rows per page
+    const [selectedRowsPerPage, setSelectedRowsPerPage] = useState(
+        rowsPerPage[0]
+    )
+
+    const [items, setItems] = useState<CatalogItemDto[]>([])
+    const [areItemsLoading, setAreItemsLoading] = useState(true)
+    const [err, setErr] = useState<string | undefined>(undefined)
+
+    // When changing rows per page set the selected number and reset to the first page
+    const onRowsPerPageChange = (
+        event: React.ChangeEvent<HTMLInputElement>
+    ) => {
+        setSelectedRowsPerPage(Number(event.target.value))
+        setPage(0)
+    }
+
+    // Use effect hook to fetch rows from the server
+    useEffect(() => {
+        // Function to fetch items from the API
+        const fetchItems = async () => {
+            try {
+                const { data, status } = await axiosInstance.get(
+                    '/catalog-items'
+                )
+                if (status !== 200) {
+                    setErr(apiError)
+                    return
+                }
+
+                setItems(data)
+                setAreItemsLoading(false)
+            } catch (err: any) {
+                setErr(apiError)
+            }
+        }
+
+        fetchItems()
+    }, [])
+
+    // Name of columns in the header
+    const columns = [
+        'Name',
+        'Alternative Names',
+        'Written form',
+        'Type',
+        'State or Territory',
+        'Coordinates',
+        'Certainty',
+    ]
+
+    const mapValueOrDefault = (value?: string) => (
+        <TableCell align="center">{value || 'N/A'}</TableCell>
+    )
+
+    // Maps catalogItem to corresponding table row
+    const mapItemColumnValues = (item: CatalogItemDto) => (
+        <Fragment>
+            {/* {mapValueOrDefault(item.name)} */}
+            <TableCell align="center">
+                <Link
+                    component={RouterLink}
+                    to={`/catalog/${item.id as string}`}
+                >
+                    {item.name}
+                </Link>
+            </TableCell>
+            {mapValueOrDefault(item.alternativeNames?.join(', '))}
+            {mapValueOrDefault(item.writtenForms?.join(', '))}
+            {mapValueOrDefault(item.types?.join(', '))}
+            {mapValueOrDefault(item.countries?.join(', '))}
+            {mapValueOrDefault(
+                item.latitude && item.longitude
+                    ? `${item.latitude}, ${item.longitude}`
+                    : undefined
+            )}
+            {mapValueOrDefault(
+                item.certainty ? `${item.certainty}` : undefined
+            )}
+        </Fragment>
+    )
+
+    return (
+        <Fragment>
+            <ShowErrorIfPresent err={err} />
+            {areItemsLoading && !err ? <ContentLoading /> : null}
+            {!areItemsLoading && !err ? (
+                <Fragment>
+                    <TableContainer>
+                        <Table
+                            stickyHeader
+                            sx={{ minWidth: 400 }}
+                            aria-label="catalogTable"
+                        >
+                            <TableHead>
+                                <TableRow>
+                                    {columns.map((col, idx) => (
+                                        <TableCell key={idx} align="center">
+                                            {col}
+                                        </TableCell>
+                                    ))}
+                                </TableRow>
+                            </TableHead>
+                            <TableBody>
+                                {items
+                                    .slice(
+                                        page * rowsPerPage[0],
+                                        page * rowsPerPage[0] + rowsPerPage[0]
+                                    )
+                                    .map((row, idx) => (
+                                        <TableRow hover tabIndex={-1} key={idx}>
+                                            {mapItemColumnValues(row)}
+                                        </TableRow>
+                                    ))}
+                            </TableBody>
+                        </Table>
+                    </TableContainer>
+                    <TablePagination
+                        rowsPerPageOptions={rowsPerPage}
+                        component="div"
+                        count={items.length}
+                        rowsPerPage={selectedRowsPerPage}
+                        page={page}
+                        onPageChange={(_, newPage) => setPage(newPage)}
+                        onRowsPerPageChange={onRowsPerPageChange}
+                    />
+                </Fragment>
+            ) : null}
+        </Fragment>
+    )
+}
+
+export default CatalogTable
diff --git a/frontend/src/features/Home/Home.tsx b/frontend/src/features/Home/Home.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..0ca56df7e528e777211cba0582e509dba1f4e553
--- /dev/null
+++ b/frontend/src/features/Home/Home.tsx
@@ -0,0 +1,31 @@
+import { Button } from '@mui/material'
+import { Fragment } from 'react'
+import { useDispatch, useSelector } from 'react-redux'
+import { logout } from '../Auth/userSlice'
+import { RootState } from '../redux/store'
+
+const Home = () => {
+    const dispatch = useDispatch()
+
+    const userLoggedIn = useSelector(
+        (state: RootState) => state.user.isLoggedIn
+    )
+
+    return (
+        <Fragment>
+            <h1>Home</h1>
+            {userLoggedIn ? (
+                <Button
+                    size="large"
+                    variant="contained"
+                    color="primary"
+                    onClick={() => dispatch(logout())}
+                >
+                    Logout
+                </Button>
+            ) : null}
+        </Fragment>
+    )
+}
+
+export default Home
diff --git a/frontend/src/features/Navigation/Navigation.tsx b/frontend/src/features/Navigation/Navigation.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..989d087eea97a82b656e2faf834da01666efe072
--- /dev/null
+++ b/frontend/src/features/Navigation/Navigation.tsx
@@ -0,0 +1,120 @@
+import * as React from 'react'
+import { styled, useTheme } from '@mui/material/styles'
+import Box from '@mui/material/Box'
+import Drawer from '@mui/material/Drawer'
+import CssBaseline from '@mui/material/CssBaseline'
+import MuiAppBar, { AppBarProps as MuiAppBarProps } from '@mui/material/AppBar'
+import Toolbar from '@mui/material/Toolbar'
+import List from '@mui/material/List'
+import Typography from '@mui/material/Typography'
+import Divider from '@mui/material/Divider'
+import IconButton from '@mui/material/IconButton'
+import MenuIcon from '@mui/icons-material/Menu'
+import ChevronLeftIcon from '@mui/icons-material/ChevronLeft'
+import ChevronRightIcon from '@mui/icons-material/ChevronRight'
+import ListItem from '@mui/material/ListItem'
+import ListItemIcon from '@mui/material/ListItemIcon'
+import ListItemText from '@mui/material/ListItemText'
+import InboxIcon from '@mui/icons-material/MoveToInbox'
+import MailIcon from '@mui/icons-material/Mail'
+import { FunctionComponent } from 'react'
+import NavigationMenu from './NavigationMenu'
+import { Paper } from '@mui/material'
+
+const drawerWidth = 240
+
+const Main = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })<{
+    open?: boolean
+}>(({ theme, open }) => ({
+    flexGrow: 1,
+    // padding: theme.spacing(3),
+    transition: theme.transitions.create('margin', {
+        easing: theme.transitions.easing.sharp,
+        duration: theme.transitions.duration.leavingScreen,
+    }),
+    marginLeft: `-${drawerWidth}px`,
+    ...(open && {
+        transition: theme.transitions.create('margin', {
+            easing: theme.transitions.easing.easeOut,
+            duration: theme.transitions.duration.enteringScreen,
+        }),
+        marginLeft: 0,
+    }),
+}))
+
+interface AppBarProps extends MuiAppBarProps {
+    open?: boolean
+}
+
+const AppBar = styled(MuiAppBar, {
+    shouldForwardProp: (prop) => prop !== 'open',
+})<AppBarProps>(({ theme, open }) => ({
+    transition: theme.transitions.create(['margin', 'width'], {
+        easing: theme.transitions.easing.sharp,
+        duration: theme.transitions.duration.leavingScreen,
+    }),
+    ...(open && {
+        width: `calc(100% - ${drawerWidth}px)`,
+        marginLeft: `${drawerWidth}px`,
+        transition: theme.transitions.create(['margin', 'width'], {
+            easing: theme.transitions.easing.easeOut,
+            duration: theme.transitions.duration.enteringScreen,
+        }),
+    }),
+}))
+
+const DrawerHeader = styled('div')(({ theme }) => ({
+    display: 'flex',
+    alignItems: 'center',
+    padding: theme.spacing(0, 1),
+    // necessary for content to be below app bar
+    ...theme.mixins.toolbar,
+    justifyContent: 'flex-end',
+}))
+
+export interface DrawerProps {
+    children: React.ReactNode
+}
+
+const PersistentDrawerLeft: FunctionComponent<DrawerProps> = ({ children }) => {
+    const [open, setOpen] = React.useState(false)
+
+    const onOpenDrawer = () => {
+        setOpen(true)
+    }
+
+    return (
+        <Box sx={{ display: 'flex' }}>
+            <CssBaseline />
+            <AppBar position="fixed" open={open}>
+                <Toolbar>
+                    <IconButton
+                        color="inherit"
+                        aria-label="open drawer"
+                        onClick={onOpenDrawer}
+                        edge="start"
+                        sx={{ mr: 2, ...(open && { display: 'none' }) }}
+                    >
+                        <MenuIcon />
+                    </IconButton>
+                    <Typography variant="h6" noWrap component="div">
+                        Assyrian Toponyms App Prototype
+                    </Typography>
+                </Toolbar>
+            </AppBar>
+            <NavigationMenu
+                open={open}
+                drawerWidth={drawerWidth}
+                setOpen={setOpen}
+            />
+            <Main open={open} sx={{ mt: 2 }}>
+                <Paper style={{ minHeight: '100vh', borderRadius: 0 }}>
+                    <DrawerHeader />
+                    {children}
+                </Paper>
+            </Main>
+        </Box>
+    )
+}
+
+export default PersistentDrawerLeft
diff --git a/frontend/src/features/Navigation/NavigationMenu.tsx b/frontend/src/features/Navigation/NavigationMenu.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..b8007f1d237702ed0d4d2c8c55125883e542ae5a
--- /dev/null
+++ b/frontend/src/features/Navigation/NavigationMenu.tsx
@@ -0,0 +1,102 @@
+import { styled, useTheme } from '@mui/material/styles'
+import { FunctionComponent, useEffect, useState } from 'react'
+import ChevronLeftIcon from '@mui/icons-material/ChevronLeft'
+import ChevronRightIcon from '@mui/icons-material/ChevronRight'
+import {
+    Divider,
+    Drawer,
+    IconButton,
+    Link,
+    List,
+    ListItem,
+    ListItemIcon,
+    ListItemText,
+} from '@mui/material'
+import { useSelector } from 'react-redux'
+import { RootState } from '../redux/store'
+import getNavigationItems from './navigationMenuItems'
+import { Link as RouterLink } from 'react-router-dom'
+
+export interface NavigationMenuProps {
+    open: boolean
+    drawerWidth: number
+    setOpen: (open: boolean) => void
+}
+
+const DrawerHeader = styled('div')(({ theme }) => ({
+    display: 'flex',
+    alignItems: 'center',
+    padding: theme.spacing(0, 1),
+    // necessary for content to be below app bar
+    ...theme.mixins.toolbar,
+    justifyContent: 'flex-end',
+}))
+
+const NavigationMenu: FunctionComponent<NavigationMenuProps> = ({
+    open,
+    drawerWidth,
+    setOpen,
+}) => {
+    const theme = useTheme()
+
+    const onCloseDrawer = () => {
+        setOpen(false)
+    }
+
+    // We need user roles to determine which pages will be accessible from the navigation menu
+    const userRoles = useSelector((state: RootState) => state.user.roles)
+
+    // List of all menu items
+    const [menuItems, setMenuItems] = useState(getNavigationItems(userRoles))
+
+    // Use effect to update menu items should the user roles change
+    useEffect(() => {
+        setMenuItems(getNavigationItems(userRoles))
+    }, [userRoles])
+
+    return (
+        <Drawer
+            sx={{
+                width: drawerWidth,
+                flexShrink: 0,
+                '& .MuiDrawer-paper': {
+                    width: drawerWidth,
+                    boxSizing: 'border-box',
+                },
+            }}
+            variant="persistent"
+            anchor="left"
+            open={open}
+        >
+            <DrawerHeader>
+                <IconButton onClick={onCloseDrawer}>
+                    {theme.direction === 'ltr' ? (
+                        <ChevronLeftIcon />
+                    ) : (
+                        <ChevronRightIcon />
+                    )}
+                </IconButton>
+            </DrawerHeader>
+            <Divider />
+
+            <List>
+                {menuItems.map((item, idx) => (
+                    <Link
+                        underline="none"
+                        color="inherit"
+                        component={RouterLink}
+                        to={item.path}
+                        key={idx}
+                    >
+                        <ListItem button>
+                            <ListItemIcon><item.icon /></ListItemIcon>
+                            <ListItemText>{item.name}</ListItemText>
+                        </ListItem>
+                    </Link>
+                ))}
+            </List>
+        </Drawer>
+    )
+}
+
+export default NavigationMenu
diff --git a/frontend/src/features/Navigation/navigationMenuItems.ts b/frontend/src/features/Navigation/navigationMenuItems.ts
new file mode 100644
index 0000000000000000000000000000000000000000..69dfcec638b6ae1efceff015b8b2dd2d1e8738ae
--- /dev/null
+++ b/frontend/src/features/Navigation/navigationMenuItems.ts
@@ -0,0 +1,88 @@
+import { OverridableComponent } from '@mui/material/OverridableComponent'
+import HomeIcon from '@mui/icons-material/Home'
+import { MenuBook } from '@mui/icons-material'
+import LibraryBooksIcon from '@mui/icons-material/LibraryBooks'
+import MapIcon from '@mui/icons-material/Map'
+import PersonIcon from '@mui/icons-material/Person'
+import LoginIcon from '@mui/icons-material/Login'
+import { SvgIconTypeMap } from '@mui/material'
+
+export interface NavigationMenuItem {
+    name: string
+    path: string
+    // All privileges that can access this menu item
+    accessibleTo: Set<string>
+    icon: OverridableComponent<SvgIconTypeMap<{}, 'svg'>>
+    position: number
+}
+
+const visitorRole = 'VISITOR'
+const visitorRoleOnly = 'VISITOR_ONLY'
+const visitorAccess = new Set([visitorRole])
+
+const items: NavigationMenuItem[] = [
+    {
+        name: 'Home',
+        path: '/',
+        accessibleTo: visitorAccess,
+        icon: HomeIcon,
+        position: 0,
+    },
+    {
+        name: 'Catalog',
+        path: '/catalog',
+        accessibleTo: visitorAccess,
+        icon: MenuBook,
+        position: 1,
+    },
+    {
+        name: 'Map',
+        path: '/map',
+        accessibleTo: visitorAccess,
+        icon: MapIcon,
+        position: 2,
+    },
+    {
+        name: 'Sources',
+        path: '/sources',
+        accessibleTo: visitorAccess,
+        icon: LibraryBooksIcon,
+        position: 3,
+    },
+    // TODO add statistics
+    {
+        name: 'Admin',
+        path: '/admin',
+        accessibleTo: new Set(['ADMIN']),
+        icon: PersonIcon,
+        position: 4,
+    },
+    // TODO move this to the top
+    {
+        name: 'Login',
+        path: '/login',
+        accessibleTo: new Set([visitorRoleOnly]),
+        icon: LoginIcon,
+        position: 5,
+    },
+]
+
+const getNavigationItems = (_userRoles: string[]): NavigationMenuItem[] => {
+    const userRoles: string[] = [..._userRoles]
+    // Add visitor role if not present and visitor role only if user has no roles
+    if (!userRoles || userRoles.length === 0) {
+        userRoles.push( visitorRole, visitorRoleOnly)
+    } else {
+        userRoles.push(visitorRole)
+    }
+
+    return items // else return everything the user has privileges to
+        .filter((item) => {
+            // If the user has any of the roles that are required to access this item
+            // then return it
+            return userRoles.some((role) => item.accessibleTo.has(role))
+        })
+        .sort((a, b) => a.position - b.position)
+}
+
+export default getNavigationItems
diff --git a/frontend/src/features/NotFound/NotFound.tsx b/frontend/src/features/NotFound/NotFound.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..ef17bc21fcfc9ece1d8a411628ea473107c140ad
--- /dev/null
+++ b/frontend/src/features/NotFound/NotFound.tsx
@@ -0,0 +1,14 @@
+import { Button, Stack } from "@mui/material"
+import { Link as RouterLink } from 'react-router-dom'
+
+const NotFound = () => {
+
+    return (
+        <Stack alignItems={"center"} sx={{my: 4}}>
+            <h1>Page Not Found 😔</h1>
+            <Button variant="outlined" component={RouterLink} to="/" >Return Home</Button>
+        </Stack>
+    )
+}
+
+export default NotFound
\ No newline at end of file
diff --git a/frontend/src/features/Reusables/ContentLoading.tsx b/frontend/src/features/Reusables/ContentLoading.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..d3c7c9e7cdf8c683c8451c8dea2926c4de16a5a3
--- /dev/null
+++ b/frontend/src/features/Reusables/ContentLoading.tsx
@@ -0,0 +1,19 @@
+import { CircularProgress, Stack, Typography } from '@mui/material'
+import { Fragment } from 'react'
+
+/**
+ * Component that shows a skeleton while the specified item is loading
+ * @returns
+ */
+const ContentLoading = () => (
+    <Fragment>
+        <Typography align="center" fontWeight={400}>
+            Loading ...
+        </Typography>
+        <Stack sx={{ mt: 2 }} justifyContent="center" alignItems="center">
+            <CircularProgress />
+        </Stack>
+    </Fragment>
+)
+
+export default ContentLoading
diff --git a/frontend/src/features/Reusables/ShowErrorIfPresent.tsx b/frontend/src/features/Reusables/ShowErrorIfPresent.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..84b730b698df3870382924f72ac00837f31d2fca
--- /dev/null
+++ b/frontend/src/features/Reusables/ShowErrorIfPresent.tsx
@@ -0,0 +1,19 @@
+import { Typography } from '@mui/material'
+import { Fragment, FunctionComponent } from 'react'
+
+export interface ShowErrorProps {
+    err?: string
+}
+
+// Utility component for showing error messages
+const ShowErrorIfPresent: FunctionComponent<ShowErrorProps> = ({ err }) => (
+    <Fragment>
+        {err ? (
+            <Typography align="center" variant="h6" fontWeight="400">
+                {err}
+            </Typography>
+        ) : null}
+    </Fragment>
+)
+
+export default ShowErrorIfPresent
diff --git a/frontend/src/features/Reusables/TableNavigation.tsx b/frontend/src/features/Reusables/TableNavigation.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..69353c9f17dcf63fa54518e82b57771239f9dc9a
--- /dev/null
+++ b/frontend/src/features/Reusables/TableNavigation.tsx
@@ -0,0 +1,86 @@
+import { KeyboardArrowLeft, KeyboardArrowRight } from '@mui/icons-material'
+import { Box, IconButton, useTheme } from '@mui/material'
+import FirstPageIcon from '@mui/icons-material/FirstPage'
+import LastPageIcon from '@mui/icons-material/LastPage'
+
+// Props for the pagination
+export interface TablePaginationActionsProps {
+    count: number
+    page: number
+    rowsPerPage: number
+    onPageChange: (
+        event: React.MouseEvent<HTMLButtonElement>,
+        newPage: number
+    ) => void
+}
+
+// Actions that can be performed
+const TablePaginationActions = (props: TablePaginationActionsProps) => {
+    const { count, page, rowsPerPage, onPageChange } = props
+
+    const theme = useTheme()
+
+    const onFirstPageButtonClick = (
+        event: React.MouseEvent<HTMLButtonElement>
+    ) => onPageChange(event, 0)
+    const onPreviousPageButtonClick = (
+        event: React.MouseEvent<HTMLButtonElement>
+    ) => onPageChange(event, page - 1)
+    const onNextPageButtonClick = (
+        event: React.MouseEvent<HTMLButtonElement>
+    ) => onPageChange(event, page + 1)
+    const onLastPageButtonClick = (
+        event: React.MouseEvent<HTMLButtonElement>
+    ) => onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))
+
+    return (
+        <Box sx={{ flexShrink: 0, ml: 2.5 }}>
+            <IconButton
+                onClick={onFirstPageButtonClick}
+                disabled={page === 0}
+                aria-label="first page"
+            >
+                {theme.direction === 'rtl' ? (
+                    <LastPageIcon />
+                ) : (
+                    <FirstPageIcon />
+                )}
+            </IconButton>
+            <IconButton
+                onClick={onPreviousPageButtonClick}
+                disabled={page === 0}
+                aria-label="previous page"
+            >
+                {theme.direction === 'rtl' ? (
+                    <KeyboardArrowRight />
+                ) : (
+                    <KeyboardArrowLeft />
+                )}
+            </IconButton>
+            <IconButton
+                onClick={onNextPageButtonClick}
+                disabled={page >= Math.ceil(count / rowsPerPage) - 1}
+                aria-label="next page"
+            >
+                {theme.direction === 'rtl' ? (
+                    <KeyboardArrowLeft />
+                ) : (
+                    <KeyboardArrowRight />
+                )}
+            </IconButton>
+            <IconButton
+                onClick={onLastPageButtonClick}
+                disabled={page >= Math.ceil(count / rowsPerPage) - 1}
+                aria-label="last page"
+            >
+                {theme.direction === 'rtl' ? (
+                    <FirstPageIcon />
+                ) : (
+                    <LastPageIcon />
+                )}
+            </IconButton>
+        </Box>
+    )
+}
+
+export default TablePaginationActions
\ No newline at end of file
diff --git a/frontend/src/features/Theme/ThemeChanger.tsx b/frontend/src/features/Theme/ThemeChanger.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..56004c9f9e0627ae25f38e9fbe5848d8078663e3
--- /dev/null
+++ b/frontend/src/features/Theme/ThemeChanger.tsx
@@ -0,0 +1 @@
+export default {}
\ No newline at end of file
diff --git a/frontend/src/features/Theme/themeReducer.ts b/frontend/src/features/Theme/themeReducer.ts
new file mode 100644
index 0000000000000000000000000000000000000000..504142aab89c012a89d1843c0066ef3a9f50b9a1
--- /dev/null
+++ b/frontend/src/features/Theme/themeReducer.ts
@@ -0,0 +1,53 @@
+import { createTheme, Theme } from '@mui/material/styles'
+import { AnyAction } from 'redux'
+import { persist } from '../../utils/statePersistence'
+
+export interface ThemeState {
+    theme: Theme
+    themeType: 'Light' | 'Dark'
+}
+
+const statePersistName = 'theme'
+
+const initialTheme = createTheme({
+    palette: {
+        mode: 'light'
+    },
+    typography: {
+        fontFamily: [
+      '-apple-system',
+      'BlinkMacSystemFont',
+      '"Segoe UI"',
+      'Roboto',
+      '"Helvetica Neue"',
+      'Arial',
+      'sans-serif',
+      '"Apple Color Emoji"',
+      '"Segoe UI Emoji"',
+      '"Segoe UI Symbol"',
+    ].join(','),
+    }
+})
+const initialState: ThemeState = {
+    theme: initialTheme,
+    themeType: 'Light',
+}
+
+export enum ThemeStateActions {
+    TOGGLE_THEME = 'TOGGLE_THEME',
+    SET_LIGHT_MODE = 'SET_LIGHT_MODE',
+    SET_DARK_MODE = 'SET_DARK_MODE',
+}
+
+const themeReducer = (state: ThemeState = initialState, action: AnyAction) => {
+    // TODO add all the actions
+    switch (action.type) {
+        case ThemeStateActions.TOGGLE_THEME:
+            return persist(statePersistName, state)
+
+        default:
+            return state
+    }
+}
+
+export default themeReducer
diff --git a/frontend/src/features/redux/store.ts b/frontend/src/features/redux/store.ts
new file mode 100644
index 0000000000000000000000000000000000000000..945ae90c9d538c1ae139d50390caf2e7d74cd1b8
--- /dev/null
+++ b/frontend/src/features/redux/store.ts
@@ -0,0 +1,19 @@
+
+import { applyMiddleware, combineReducers, createStore } from 'redux'
+import { persistStore } from 'redux-persist'
+import thunk from 'redux-thunk'
+import userReducer from '../Auth/userSlice'
+import themeReducer from '../Theme/themeReducer'
+
+
+// Store holds shared state in the application
+const store = createStore(
+    combineReducers({ user: userReducer, theme: themeReducer }),
+    applyMiddleware(thunk) // Thunk middleware so we can async fetch data from the api
+)
+
+export default store
+export const persistor = persistStore(store)
+export type AppStore = typeof store
+export type RootState = ReturnType<typeof store.getState>
+export type AppDispatch = typeof store.dispatch
diff --git a/frontend/src/index.css b/frontend/src/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..ec2585e8c0bb8188184ed1e0703c4c8f2a8419b0
--- /dev/null
+++ b/frontend/src/index.css
@@ -0,0 +1,13 @@
+body {
+  margin: 0;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+    sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+    monospace;
+}
diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..6d4c9893b26533255acc370cbd70a49d1a000cbd
--- /dev/null
+++ b/frontend/src/index.tsx
@@ -0,0 +1,31 @@
+import React from 'react'
+import ReactDOM from 'react-dom'
+import './index.css'
+import App from './App'
+import reportWebVitals from './reportWebVitals'
+import { BrowserRouter } from 'react-router-dom'
+import store, { persistor } from './features/redux/store'
+import { Provider } from 'react-redux'
+import { injectStore } from './api/api'
+import { PersistGate } from 'redux-persist/integration/react'
+
+// Injects store to the axios instance in ./api/axiosInstance
+injectStore(store)
+
+ReactDOM.render(
+    <Provider store={store}>
+        <PersistGate loading={null} persistor={persistor}>
+            <React.StrictMode>
+                <BrowserRouter>
+                    <App />
+                </BrowserRouter>
+            </React.StrictMode>
+        </PersistGate>
+    </Provider>,
+    document.getElementById('root')
+)
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals()
diff --git a/frontend/src/reportWebVitals.ts b/frontend/src/reportWebVitals.ts
new file mode 100644
index 0000000000000000000000000000000000000000..49a2a16e0fbc7636ee16bf907257a5282b856493
--- /dev/null
+++ b/frontend/src/reportWebVitals.ts
@@ -0,0 +1,15 @@
+import { ReportHandler } from 'web-vitals';
+
+const reportWebVitals = (onPerfEntry?: ReportHandler) => {
+  if (onPerfEntry && onPerfEntry instanceof Function) {
+    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+      getCLS(onPerfEntry);
+      getFID(onPerfEntry);
+      getFCP(onPerfEntry);
+      getLCP(onPerfEntry);
+      getTTFB(onPerfEntry);
+    });
+  }
+};
+
+export default reportWebVitals;
diff --git a/frontend/src/swagger/CatalogItems.ts b/frontend/src/swagger/CatalogItems.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cfd3c2ee13dc18620af08cf7a5166c478a87d4c6
--- /dev/null
+++ b/frontend/src/swagger/CatalogItems.ts
@@ -0,0 +1,92 @@
+/* eslint-disable */
+/* tslint:disable */
+/*
+ * ---------------------------------------------------------------
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
+ * ##                                                           ##
+ * ## AUTHOR: acacode                                           ##
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
+ * ---------------------------------------------------------------
+ */
+
+import { CatalogItemDto } from "./data-contracts";
+import { ContentType, HttpClient, RequestParams } from "./http-client";
+
+export class CatalogItems<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
+  /**
+   * No description
+   *
+   * @tags catalog-controller
+   * @name GetCatalogItem
+   * @summary returns catalog item with given ID
+   * @request GET:/catalog-items/{id}
+   */
+  getCatalogItem = (id: string, params: RequestParams = {}) =>
+    this.request<CatalogItemDto, any>({
+      path: `/catalog-items/${id}`,
+      method: "GET",
+      format: "json",
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags catalog-controller
+   * @name UpdateCatalogItem
+   * @summary updates catalog item with given ID
+   * @request PUT:/catalog-items/{id}
+   */
+  updateCatalogItem = (id: string, data: CatalogItemDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/catalog-items/${id}`,
+      method: "PUT",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags catalog-controller
+   * @name DeleteCatalogItem
+   * @summary deletes catalog item with given ID
+   * @request DELETE:/catalog-items/{id}
+   */
+  deleteCatalogItem = (id: string, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/catalog-items/${id}`,
+      method: "DELETE",
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags catalog-controller
+   * @name GetCatalog
+   * @summary returns catalog items based on filter
+   * @request GET:/catalog-items
+   */
+  getCatalog = (query?: { name?: string; country?: string; type?: string }, params: RequestParams = {}) =>
+    this.request<CatalogItemDto[], any>({
+      path: `/catalog-items`,
+      method: "GET",
+      query: query,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags catalog-controller
+   * @name AddCatalogItem
+   * @summary creates new catalog item
+   * @request POST:/catalog-items
+   */
+  addCatalogItem = (data: CatalogItemDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/catalog-items`,
+      method: "POST",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+}
diff --git a/frontend/src/swagger/TitlePage.ts b/frontend/src/swagger/TitlePage.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0d657e10b2a0b6f03806d313e5b57c942ddf3896
--- /dev/null
+++ b/frontend/src/swagger/TitlePage.ts
@@ -0,0 +1,46 @@
+/* eslint-disable */
+/* tslint:disable */
+/*
+ * ---------------------------------------------------------------
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
+ * ##                                                           ##
+ * ## AUTHOR: acacode                                           ##
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
+ * ---------------------------------------------------------------
+ */
+
+import { TitlePageDto } from "./data-contracts";
+import { ContentType, HttpClient, RequestParams } from "./http-client";
+
+export class TitlePage<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
+  /**
+   * No description
+   *
+   * @tags title-page-controller
+   * @name GetTitlePage
+   * @summary returns title page
+   * @request GET:/title-page
+   */
+  getTitlePage = (params: RequestParams = {}) =>
+    this.request<TitlePageDto, any>({
+      path: `/title-page`,
+      method: "GET",
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags title-page-controller
+   * @name UpdateTitlePage
+   * @summary updates/creates title page
+   * @request POST:/title-page
+   */
+  updateTitlePage = (data: TitlePageDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/title-page`,
+      method: "POST",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+}
diff --git a/frontend/src/swagger/Users.ts b/frontend/src/swagger/Users.ts
new file mode 100644
index 0000000000000000000000000000000000000000..27d5c1b7b0e087384c7d1b76e479c29f49621430
--- /dev/null
+++ b/frontend/src/swagger/Users.ts
@@ -0,0 +1,123 @@
+/* eslint-disable */
+/* tslint:disable */
+/*
+ * ---------------------------------------------------------------
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
+ * ##                                                           ##
+ * ## AUTHOR: acacode                                           ##
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
+ * ---------------------------------------------------------------
+ */
+
+import { PasswordDto, PermissionDto, UserDto } from "./data-contracts";
+import { ContentType, HttpClient, RequestParams } from "./http-client";
+
+export class Users<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name GetAllUsers
+   * @summary returns all users
+   * @request GET:/users
+   */
+  getAllUsers = (params: RequestParams = {}) =>
+    this.request<UserDto[], any>({
+      path: `/users`,
+      method: "GET",
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name RegisterNewUser
+   * @summary registers new user
+   * @request POST:/users
+   */
+  registerNewUser = (data: UserDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users`,
+      method: "POST",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name UpdatePermissions
+   * @summary changes permissions to given user
+   * @request PATCH:/users/{username}/permissions
+   */
+  updatePermissions = (username: string, data: PermissionDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users/${username}/permissions`,
+      method: "PATCH",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name ResetPassword
+   * @summary changes password to given user
+   * @request PATCH:/users/{username}/password
+   */
+  resetPassword = (username: string, data: PasswordDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users/${username}/password`,
+      method: "PATCH",
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name ChangePassword
+   * @summary changes password to logged-in user
+   * @request PATCH:/users/password
+   */
+  changePassword = (query: { oldPassword: string }, data: PasswordDto, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users/password`,
+      method: "PATCH",
+      query: query,
+      body: data,
+      type: ContentType.Json,
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name RefreshToken
+   * @summary returns a new access token and a refresh token to user
+   * @request GET:/users/token
+   */
+  refreshToken = (params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users/token`,
+      method: "GET",
+      ...params,
+    });
+  /**
+   * No description
+   *
+   * @tags user-controller
+   * @name DeleteUser
+   * @summary deletes user with given username
+   * @request DELETE:/users/{username}
+   */
+  deleteUser = (username: string, params: RequestParams = {}) =>
+    this.request<void, any>({
+      path: `/users/${username}`,
+      method: "DELETE",
+      ...params,
+    });
+}
diff --git a/frontend/src/swagger/data-contracts.ts b/frontend/src/swagger/data-contracts.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8808aa6e24927ef96bdf5065e7c68526ab55984
--- /dev/null
+++ b/frontend/src/swagger/data-contracts.ts
@@ -0,0 +1,53 @@
+/* eslint-disable */
+/* tslint:disable */
+/*
+ * ---------------------------------------------------------------
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
+ * ##                                                           ##
+ * ## AUTHOR: acacode                                           ##
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
+ * ---------------------------------------------------------------
+ */
+
+export interface CatalogItemDto {
+  /** @format uuid */
+  id?: string;
+  name?: string;
+
+  /** @format int32 */
+  certainty?: number;
+
+  /** @format double */
+  longitude?: number;
+
+  /** @format double */
+  latitude?: number;
+  bibliography?: string[];
+  countries?: string[];
+  writtenForms?: string[];
+  alternativeNames?: string[];
+  types?: string[];
+}
+
+export interface PasswordDto {
+  password: string;
+  confirmationPassword: string;
+}
+
+export interface PermissionDto {
+  canRead?: boolean;
+  canWrite?: boolean;
+  canDelete?: boolean;
+}
+
+export interface UserDto {
+  name?: string;
+  email: string;
+  permissions?: PermissionDto;
+  passwords: PasswordDto;
+}
+
+export interface TitlePageDto {
+  title?: string;
+  content?: string;
+}
diff --git a/frontend/src/swagger/http-client.ts b/frontend/src/swagger/http-client.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e994ab9d1446ea82fd72e2afd648f81053cfcc16
--- /dev/null
+++ b/frontend/src/swagger/http-client.ts
@@ -0,0 +1,218 @@
+/* eslint-disable */
+/* tslint:disable */
+/*
+ * ---------------------------------------------------------------
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##
+ * ##                                                           ##
+ * ## AUTHOR: acacode                                           ##
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
+ * ---------------------------------------------------------------
+ */
+
+export type QueryParamsType = Record<string | number, any>;
+export type ResponseFormat = keyof Omit<Body, "body" | "bodyUsed">;
+
+export interface FullRequestParams extends Omit<RequestInit, "body"> {
+  /** set parameter to `true` for call `securityWorker` for this request */
+  secure?: boolean;
+  /** request path */
+  path: string;
+  /** content type of request body */
+  type?: ContentType;
+  /** query params */
+  query?: QueryParamsType;
+  /** format of response (i.e. response.json() -> format: "json") */
+  format?: ResponseFormat;
+  /** request body */
+  body?: unknown;
+  /** base url */
+  baseUrl?: string;
+  /** request cancellation token */
+  cancelToken?: CancelToken;
+}
+
+export type RequestParams = Omit<FullRequestParams, "body" | "method" | "query" | "path">;
+
+export interface ApiConfig<SecurityDataType = unknown> {
+  baseUrl?: string;
+  baseApiParams?: Omit<RequestParams, "baseUrl" | "cancelToken" | "signal">;
+  securityWorker?: (securityData: SecurityDataType | null) => Promise<RequestParams | void> | RequestParams | void;
+  customFetch?: typeof fetch;
+}
+
+export interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {
+  data: D;
+  error: E;
+}
+
+type CancelToken = Symbol | string | number;
+
+export enum ContentType {
+  Json = "application/json",
+  FormData = "multipart/form-data",
+  UrlEncoded = "application/x-www-form-urlencoded",
+}
+
+export class HttpClient<SecurityDataType = unknown> {
+  public baseUrl: string = "/api";
+  private securityData: SecurityDataType | null = null;
+  private securityWorker?: ApiConfig<SecurityDataType>["securityWorker"];
+  private abortControllers = new Map<CancelToken, AbortController>();
+  private customFetch = (...fetchParams: Parameters<typeof fetch>) => fetch(...fetchParams);
+
+  private baseApiParams: RequestParams = {
+    credentials: "same-origin",
+    headers: {},
+    redirect: "follow",
+    referrerPolicy: "no-referrer",
+  };
+
+  constructor(apiConfig: ApiConfig<SecurityDataType> = {}) {
+    Object.assign(this, apiConfig);
+  }
+
+  public setSecurityData = (data: SecurityDataType | null) => {
+    this.securityData = data;
+  };
+
+  private encodeQueryParam(key: string, value: any) {
+    const encodedKey = encodeURIComponent(key);
+    return `${encodedKey}=${encodeURIComponent(typeof value === "number" ? value : `${value}`)}`;
+  }
+
+  private addQueryParam(query: QueryParamsType, key: string) {
+    return this.encodeQueryParam(key, query[key]);
+  }
+
+  private addArrayQueryParam(query: QueryParamsType, key: string) {
+    const value = query[key];
+    return value.map((v: any) => this.encodeQueryParam(key, v)).join("&");
+  }
+
+  protected toQueryString(rawQuery?: QueryParamsType): string {
+    const query = rawQuery || {};
+    const keys = Object.keys(query).filter((key) => "undefined" !== typeof query[key]);
+    return keys
+      .map((key) => (Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key)))
+      .join("&");
+  }
+
+  protected addQueryParams(rawQuery?: QueryParamsType): string {
+    const queryString = this.toQueryString(rawQuery);
+    return queryString ? `?${queryString}` : "";
+  }
+
+  private contentFormatters: Record<ContentType, (input: any) => any> = {
+    [ContentType.Json]: (input: any) =>
+      input !== null && (typeof input === "object" || typeof input === "string") ? JSON.stringify(input) : input,
+    [ContentType.FormData]: (input: any) =>
+      Object.keys(input || {}).reduce((formData, key) => {
+        const property = input[key];
+        formData.append(
+          key,
+          property instanceof Blob
+            ? property
+            : typeof property === "object" && property !== null
+            ? JSON.stringify(property)
+            : `${property}`,
+        );
+        return formData;
+      }, new FormData()),
+    [ContentType.UrlEncoded]: (input: any) => this.toQueryString(input),
+  };
+
+  private mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams {
+    return {
+      ...this.baseApiParams,
+      ...params1,
+      ...(params2 || {}),
+      headers: {
+        ...(this.baseApiParams.headers || {}),
+        ...(params1.headers || {}),
+        ...((params2 && params2.headers) || {}),
+      },
+    };
+  }
+
+  private createAbortSignal = (cancelToken: CancelToken): AbortSignal | undefined => {
+    if (this.abortControllers.has(cancelToken)) {
+      const abortController = this.abortControllers.get(cancelToken);
+      if (abortController) {
+        return abortController.signal;
+      }
+      return void 0;
+    }
+
+    const abortController = new AbortController();
+    this.abortControllers.set(cancelToken, abortController);
+    return abortController.signal;
+  };
+
+  public abortRequest = (cancelToken: CancelToken) => {
+    const abortController = this.abortControllers.get(cancelToken);
+
+    if (abortController) {
+      abortController.abort();
+      this.abortControllers.delete(cancelToken);
+    }
+  };
+
+  public request = async <T = any, E = any>({
+    body,
+    secure,
+    path,
+    type,
+    query,
+    format,
+    baseUrl,
+    cancelToken,
+    ...params
+  }: FullRequestParams): Promise<HttpResponse<T, E>> => {
+    const secureParams =
+      ((typeof secure === "boolean" ? secure : this.baseApiParams.secure) &&
+        this.securityWorker &&
+        (await this.securityWorker(this.securityData))) ||
+      {};
+    const requestParams = this.mergeRequestParams(params, secureParams);
+    const queryString = query && this.toQueryString(query);
+    const payloadFormatter = this.contentFormatters[type || ContentType.Json];
+    const responseFormat = format || requestParams.format;
+
+    return this.customFetch(`${baseUrl || this.baseUrl || ""}${path}${queryString ? `?${queryString}` : ""}`, {
+      ...requestParams,
+      headers: {
+        ...(type && type !== ContentType.FormData ? { "Content-Type": type } : {}),
+        ...(requestParams.headers || {}),
+      },
+      signal: cancelToken ? this.createAbortSignal(cancelToken) : void 0,
+      body: typeof body === "undefined" || body === null ? null : payloadFormatter(body),
+    }).then(async (response) => {
+      const r = response as HttpResponse<T, E>;
+      r.data = null as unknown as T;
+      r.error = null as unknown as E;
+
+      const data = !responseFormat
+        ? r
+        : await response[responseFormat]()
+            .then((data) => {
+              if (r.ok) {
+                r.data = data;
+              } else {
+                r.error = data;
+              }
+              return r;
+            })
+            .catch((e) => {
+              r.error = e;
+              return r;
+            });
+
+      if (cancelToken) {
+        this.abortControllers.delete(cancelToken);
+      }
+
+      if (!response.ok) throw data;
+      return data;
+    });
+  };
+}
diff --git a/frontend/src/utils/statePersistence.ts b/frontend/src/utils/statePersistence.ts
new file mode 100644
index 0000000000000000000000000000000000000000..69cbe48e054f46b731693d70be183e990b5dbee1
--- /dev/null
+++ b/frontend/src/utils/statePersistence.ts
@@ -0,0 +1,12 @@
+// TODO this could be replaced with redux library
+const persist = (name: string, value: any) => {
+    localStorage.setItem(name, JSON.stringify(value))
+    return value
+}
+
+const load = (name: string) => {
+    const item = localStorage.getItem(name)
+    return item ? JSON.parse(item) : undefined
+}
+
+export { persist, load }
diff --git a/frontend/src/utils/thunkResponse.ts b/frontend/src/utils/thunkResponse.ts
new file mode 100644
index 0000000000000000000000000000000000000000..400726ee15873bf098c8cd48dbba03c98ac0559c
--- /dev/null
+++ b/frontend/src/utils/thunkResponse.ts
@@ -0,0 +1,5 @@
+
+export default interface ThunkResponse<T> {
+    success: boolean
+    data?: T
+}
\ No newline at end of file
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..46cbe2912a55d133ccc97bb3bd80ee86aeed5434
--- /dev/null
+++ b/frontend/tsconfig.json
@@ -0,0 +1,28 @@
+{
+  "compilerOptions": {
+    "target": "ES2022",
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "esnext"
+    ],
+    "allowJs": true,
+    "skipLibCheck": true,
+    "esModuleInterop": true,
+    "allowSyntheticDefaultImports": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "noFallthroughCasesInSwitch": true,
+    "experimentalDecorators": true,
+    "sourceMap": true,
+    "module": "es2022",
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "isolatedModules": true,
+    "noEmit": true,
+    "jsx": "react-jsx"
+  },
+  "include": [
+    "src"
+  ]
+}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
new file mode 100644
index 0000000000000000000000000000000000000000..42913e2efcc6e390a76f6c744b6a3862f7387752
--- /dev/null
+++ b/frontend/yarn.lock
@@ -0,0 +1,9578 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.1.0":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
+  integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+  dependencies:
+    "@jridgewell/trace-mapping" "^0.3.0"
+
+"@apideck/better-ajv-errors@^0.3.1":
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz#ab0b1e981e1749bf59736cf7ebe25cfc9f949c15"
+  integrity sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==
+  dependencies:
+    json-schema "^0.4.0"
+    jsonpointer "^5.0.0"
+    leven "^3.1.0"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.8.3":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
+  integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
+  dependencies:
+    "@babel/highlight" "^7.16.7"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34"
+  integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==
+
+"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+  version "7.17.5"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225"
+  integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==
+  dependencies:
+    "@ampproject/remapping" "^2.1.0"
+    "@babel/code-frame" "^7.16.7"
+    "@babel/generator" "^7.17.3"
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helpers" "^7.17.2"
+    "@babel/parser" "^7.17.3"
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.17.3"
+    "@babel/types" "^7.17.0"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.1.2"
+    semver "^6.3.0"
+
+"@babel/eslint-parser@^7.16.3":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6"
+  integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==
+  dependencies:
+    eslint-scope "^5.1.1"
+    eslint-visitor-keys "^2.1.0"
+    semver "^6.3.0"
+
+"@babel/generator@^7.17.3", "@babel/generator@^7.7.2":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200"
+  integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==
+  dependencies:
+    "@babel/types" "^7.17.0"
+    jsesc "^2.5.1"
+    source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
+  integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
+  integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+  dependencies:
+    "@babel/helper-explode-assignable-expression" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
+  integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+  dependencies:
+    "@babel/compat-data" "^7.16.4"
+    "@babel/helper-validator-option" "^7.16.7"
+    browserslist "^4.17.5"
+    semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1", "@babel/helper-create-class-features-plugin@^7.17.6":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9"
+  integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-member-expression-to-functions" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+
+"@babel/helper-create-regexp-features-plugin@^7.16.7":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1"
+  integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    regexpu-core "^5.0.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.1":
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
+  integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.13.0"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/traverse" "^7.13.0"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+    semver "^6.1.2"
+
+"@babel/helper-environment-visitor@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
+  integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-explode-assignable-expression@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
+  integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-function-name@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
+  integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.16.7"
+    "@babel/template" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-get-function-arity@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
+  integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-hoist-variables@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
+  integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-member-expression-to-functions@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0"
+  integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
+  integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-module-transforms@^7.16.7":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0"
+  integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-simple-access" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    "@babel/helper-validator-identifier" "^7.16.7"
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.17.3"
+    "@babel/types" "^7.17.0"
+
+"@babel/helper-optimise-call-expression@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
+  integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
+  integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
+
+"@babel/helper-remap-async-to-generator@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3"
+  integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-wrap-function" "^7.16.8"
+    "@babel/types" "^7.16.8"
+
+"@babel/helper-replace-supers@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1"
+  integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-member-expression-to-functions" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/traverse" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-simple-access@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
+  integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
+  integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
+  dependencies:
+    "@babel/types" "^7.16.0"
+
+"@babel/helper-split-export-declaration@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
+  integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+  dependencies:
+    "@babel/types" "^7.16.7"
+
+"@babel/helper-validator-identifier@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
+  integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
+
+"@babel/helper-validator-option@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
+  integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+
+"@babel/helper-wrap-function@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200"
+  integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
+  dependencies:
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.16.8"
+    "@babel/types" "^7.16.8"
+
+"@babel/helpers@^7.17.2":
+  version "7.17.2"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417"
+  integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
+  dependencies:
+    "@babel/template" "^7.16.7"
+    "@babel/traverse" "^7.17.0"
+    "@babel/types" "^7.17.0"
+
+"@babel/highlight@^7.16.7":
+  version "7.16.10"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
+  integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.16.7"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0"
+  integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050"
+  integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9"
+  integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+    "@babel/plugin-proposal-optional-chaining" "^7.16.7"
+
+"@babel/plugin-proposal-async-generator-functions@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8"
+  integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-remap-async-to-generator" "^7.16.8"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0"
+  integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-class-static-block@^7.16.7":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c"
+  integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.17.6"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-proposal-decorators@^7.16.4":
+  version "7.17.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz#c36372ddfe0360cac1ee331a238310bddca11493"
+  integrity sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.17.1"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+    "@babel/plugin-syntax-decorators" "^7.17.0"
+    charcodes "^0.2.0"
+
+"@babel/plugin-proposal-dynamic-import@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2"
+  integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-namespace-from@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163"
+  integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8"
+  integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea"
+  integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99"
+  integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9"
+  integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.16.7":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390"
+  integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==
+  dependencies:
+    "@babel/compat-data" "^7.17.0"
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.16.7"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf"
+  integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a"
+  integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.16.11":
+  version "7.16.11"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50"
+  integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.16.10"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-private-property-in-object@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce"
+  integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2"
+  integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+  version "7.8.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+  integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+  integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+  integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+  integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-decorators@^7.17.0":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d"
+  integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+  integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+  integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-flow@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832"
+  integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-import-meta@^7.8.3":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+  integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+  integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
+  integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+  integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+  integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+  integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+  integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+  integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+  integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+  integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+  integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.16.7", "@babel/plugin-syntax-typescript@^7.7.2":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8"
+  integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-arrow-functions@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154"
+  integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-async-to-generator@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808"
+  integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==
+  dependencies:
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-remap-async-to-generator" "^7.16.8"
+
+"@babel/plugin-transform-block-scoped-functions@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
+  integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-block-scoping@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87"
+  integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-classes@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00"
+  integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-optimise-call-expression" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470"
+  integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-destructuring@^7.16.7":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc"
+  integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241"
+  integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-duplicate-keys@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9"
+  integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-exponentiation-operator@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b"
+  integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
+  dependencies:
+    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-flow-strip-types@^7.16.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8"
+  integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-flow" "^7.16.7"
+
+"@babel/plugin-transform-for-of@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c"
+  integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-function-name@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
+  integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-literals@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1"
+  integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-member-expression-literals@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
+  integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-modules-amd@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186"
+  integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-commonjs@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
+  integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-simple-access" "^7.16.7"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7"
+  integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==
+  dependencies:
+    "@babel/helper-hoist-variables" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-validator-identifier" "^7.16.7"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-umd@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618"
+  integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252"
+  integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+
+"@babel/plugin-transform-new-target@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244"
+  integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-object-super@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
+  integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-replace-supers" "^7.16.7"
+
+"@babel/plugin-transform-parameters@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f"
+  integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-property-literals@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
+  integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-constant-elements@^7.12.1":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz#6cc273c2f612a6a50cb657e63ee1303e5e68d10a"
+  integrity sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340"
+  integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-development@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8"
+  integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==
+  dependencies:
+    "@babel/plugin-transform-react-jsx" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx@^7.16.7":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1"
+  integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-jsx" "^7.16.7"
+    "@babel/types" "^7.17.0"
+
+"@babel/plugin-transform-react-pure-annotations@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67"
+  integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-regenerator@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb"
+  integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
+  dependencies:
+    regenerator-transform "^0.14.2"
+
+"@babel/plugin-transform-reserved-words@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586"
+  integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-runtime@^7.16.4":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70"
+  integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==
+  dependencies:
+    "@babel/helper-module-imports" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    babel-plugin-polyfill-corejs2 "^0.3.0"
+    babel-plugin-polyfill-corejs3 "^0.5.0"
+    babel-plugin-polyfill-regenerator "^0.3.0"
+    semver "^6.3.0"
+
+"@babel/plugin-transform-shorthand-properties@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
+  integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-spread@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44"
+  integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+
+"@babel/plugin-transform-sticky-regex@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660"
+  integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-template-literals@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab"
+  integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typeof-symbol@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e"
+  integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typescript@^7.16.7":
+  version "7.16.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0"
+  integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/plugin-syntax-typescript" "^7.16.7"
+
+"@babel/plugin-transform-unicode-escapes@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3"
+  integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-unicode-regex@^7.16.7":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2"
+  integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4":
+  version "7.16.11"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982"
+  integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==
+  dependencies:
+    "@babel/compat-data" "^7.16.8"
+    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-validator-option" "^7.16.7"
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7"
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7"
+    "@babel/plugin-proposal-async-generator-functions" "^7.16.8"
+    "@babel/plugin-proposal-class-properties" "^7.16.7"
+    "@babel/plugin-proposal-class-static-block" "^7.16.7"
+    "@babel/plugin-proposal-dynamic-import" "^7.16.7"
+    "@babel/plugin-proposal-export-namespace-from" "^7.16.7"
+    "@babel/plugin-proposal-json-strings" "^7.16.7"
+    "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7"
+    "@babel/plugin-proposal-numeric-separator" "^7.16.7"
+    "@babel/plugin-proposal-object-rest-spread" "^7.16.7"
+    "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
+    "@babel/plugin-proposal-optional-chaining" "^7.16.7"
+    "@babel/plugin-proposal-private-methods" "^7.16.11"
+    "@babel/plugin-proposal-private-property-in-object" "^7.16.7"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.16.7"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-class-properties" "^7.12.13"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+    "@babel/plugin-syntax-top-level-await" "^7.14.5"
+    "@babel/plugin-transform-arrow-functions" "^7.16.7"
+    "@babel/plugin-transform-async-to-generator" "^7.16.8"
+    "@babel/plugin-transform-block-scoped-functions" "^7.16.7"
+    "@babel/plugin-transform-block-scoping" "^7.16.7"
+    "@babel/plugin-transform-classes" "^7.16.7"
+    "@babel/plugin-transform-computed-properties" "^7.16.7"
+    "@babel/plugin-transform-destructuring" "^7.16.7"
+    "@babel/plugin-transform-dotall-regex" "^7.16.7"
+    "@babel/plugin-transform-duplicate-keys" "^7.16.7"
+    "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
+    "@babel/plugin-transform-for-of" "^7.16.7"
+    "@babel/plugin-transform-function-name" "^7.16.7"
+    "@babel/plugin-transform-literals" "^7.16.7"
+    "@babel/plugin-transform-member-expression-literals" "^7.16.7"
+    "@babel/plugin-transform-modules-amd" "^7.16.7"
+    "@babel/plugin-transform-modules-commonjs" "^7.16.8"
+    "@babel/plugin-transform-modules-systemjs" "^7.16.7"
+    "@babel/plugin-transform-modules-umd" "^7.16.7"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8"
+    "@babel/plugin-transform-new-target" "^7.16.7"
+    "@babel/plugin-transform-object-super" "^7.16.7"
+    "@babel/plugin-transform-parameters" "^7.16.7"
+    "@babel/plugin-transform-property-literals" "^7.16.7"
+    "@babel/plugin-transform-regenerator" "^7.16.7"
+    "@babel/plugin-transform-reserved-words" "^7.16.7"
+    "@babel/plugin-transform-shorthand-properties" "^7.16.7"
+    "@babel/plugin-transform-spread" "^7.16.7"
+    "@babel/plugin-transform-sticky-regex" "^7.16.7"
+    "@babel/plugin-transform-template-literals" "^7.16.7"
+    "@babel/plugin-transform-typeof-symbol" "^7.16.7"
+    "@babel/plugin-transform-unicode-escapes" "^7.16.7"
+    "@babel/plugin-transform-unicode-regex" "^7.16.7"
+    "@babel/preset-modules" "^0.1.5"
+    "@babel/types" "^7.16.8"
+    babel-plugin-polyfill-corejs2 "^0.3.0"
+    babel-plugin-polyfill-corejs3 "^0.5.0"
+    babel-plugin-polyfill-regenerator "^0.3.0"
+    core-js-compat "^3.20.2"
+    semver "^6.3.0"
+
+"@babel/preset-modules@^0.1.5":
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
+  integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+    "@babel/plugin-transform-dotall-regex" "^7.4.4"
+    "@babel/types" "^7.4.4"
+    esutils "^2.0.2"
+
+"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852"
+  integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-validator-option" "^7.16.7"
+    "@babel/plugin-transform-react-display-name" "^7.16.7"
+    "@babel/plugin-transform-react-jsx" "^7.16.7"
+    "@babel/plugin-transform-react-jsx-development" "^7.16.7"
+    "@babel/plugin-transform-react-pure-annotations" "^7.16.7"
+
+"@babel/preset-typescript@^7.16.0":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9"
+  integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.16.7"
+    "@babel/helper-validator-option" "^7.16.7"
+    "@babel/plugin-transform-typescript" "^7.16.7"
+
+"@babel/runtime-corejs3@^7.10.2":
+  version "7.17.2"
+  resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13"
+  integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==
+  dependencies:
+    core-js-pure "^3.20.2"
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+  version "7.17.2"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
+  integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.13.10", "@babel/runtime@^7.17.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.7":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.7.tgz#a5f3328dc41ff39d803f311cfe17703418cf9825"
+  integrity sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.15.4":
+  version "7.17.9"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
+  integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.16.7", "@babel/template@^7.3.3":
+  version "7.16.7"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
+  integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+  dependencies:
+    "@babel/code-frame" "^7.16.7"
+    "@babel/parser" "^7.16.7"
+    "@babel/types" "^7.16.7"
+
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.2":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57"
+  integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
+  dependencies:
+    "@babel/code-frame" "^7.16.7"
+    "@babel/generator" "^7.17.3"
+    "@babel/helper-environment-visitor" "^7.16.7"
+    "@babel/helper-function-name" "^7.16.7"
+    "@babel/helper-hoist-variables" "^7.16.7"
+    "@babel/helper-split-export-declaration" "^7.16.7"
+    "@babel/parser" "^7.17.3"
+    "@babel/types" "^7.17.0"
+    debug "^4.1.0"
+    globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
+  integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.16.7"
+    to-fast-properties "^2.0.0"
+
+"@bcoe/v8-coverage@^0.2.3":
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+  integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@cspotcode/source-map-consumer@0.8.0":
+  version "0.8.0"
+  resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b"
+  integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==
+
+"@cspotcode/source-map-support@0.7.0":
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5"
+  integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==
+  dependencies:
+    "@cspotcode/source-map-consumer" "0.8.0"
+
+"@csstools/normalize.css@*":
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4"
+  integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==
+
+"@csstools/postcss-color-function@^1.0.2":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz#251c961a852c99e9aabdbbdbefd50e9a96e8a9ff"
+  integrity sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==
+  dependencies:
+    "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-font-format-keywords@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz#7e7df948a83a0dfb7eb150a96e2390ac642356a1"
+  integrity sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-hwb-function@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz#d6785c1c5ba8152d1d392c66f3a6a446c6034f6d"
+  integrity sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-ic-unit@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz#f484db59fc94f35a21b6d680d23b0ec69b286b7f"
+  integrity sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==
+  dependencies:
+    "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-is-pseudo-class@^2.0.0":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz#472fff2cf434bdf832f7145b2a5491587e790c9e"
+  integrity sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+"@csstools/postcss-normalize-display-values@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz#ce698f688c28517447aedf15a9037987e3d2dc97"
+  integrity sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-oklab-function@^1.0.1":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz#87cd646e9450347a5721e405b4f7cc35157b7866"
+  integrity sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==
+  dependencies:
+    "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+    postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.2.0":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa"
+  integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+"@emotion/babel-plugin@^11.7.1":
+  version "11.7.2"
+  resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz#fec75f38a6ab5b304b0601c74e2a5e77c95e5fa0"
+  integrity sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==
+  dependencies:
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/plugin-syntax-jsx" "^7.12.13"
+    "@babel/runtime" "^7.13.10"
+    "@emotion/hash" "^0.8.0"
+    "@emotion/memoize" "^0.7.5"
+    "@emotion/serialize" "^1.0.2"
+    babel-plugin-macros "^2.6.1"
+    convert-source-map "^1.5.0"
+    escape-string-regexp "^4.0.0"
+    find-root "^1.1.0"
+    source-map "^0.5.7"
+    stylis "4.0.13"
+
+"@emotion/cache@^11.7.1":
+  version "11.7.1"
+  resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539"
+  integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==
+  dependencies:
+    "@emotion/memoize" "^0.7.4"
+    "@emotion/sheet" "^1.1.0"
+    "@emotion/utils" "^1.0.0"
+    "@emotion/weak-memoize" "^0.2.5"
+    stylis "4.0.13"
+
+"@emotion/hash@^0.8.0":
+  version "0.8.0"
+  resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+  integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
+
+"@emotion/is-prop-valid@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95"
+  integrity sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==
+  dependencies:
+    "@emotion/memoize" "^0.7.4"
+
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
+  version "0.7.5"
+  resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
+  integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
+
+"@emotion/react@^11.8.2":
+  version "11.8.2"
+  resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.8.2.tgz#e51f5e6372e22e82780836c9288da19af4b51e70"
+  integrity sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==
+  dependencies:
+    "@babel/runtime" "^7.13.10"
+    "@emotion/babel-plugin" "^11.7.1"
+    "@emotion/cache" "^11.7.1"
+    "@emotion/serialize" "^1.0.2"
+    "@emotion/utils" "^1.1.0"
+    "@emotion/weak-memoize" "^0.2.5"
+    hoist-non-react-statics "^3.3.1"
+
+"@emotion/serialize@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965"
+  integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==
+  dependencies:
+    "@emotion/hash" "^0.8.0"
+    "@emotion/memoize" "^0.7.4"
+    "@emotion/unitless" "^0.7.5"
+    "@emotion/utils" "^1.0.0"
+    csstype "^3.0.2"
+
+"@emotion/sheet@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
+  integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
+
+"@emotion/styled@^11.8.1":
+  version "11.8.1"
+  resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.8.1.tgz#856f6f63aceef0eb783985fa2322e2bf66d04e17"
+  integrity sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==
+  dependencies:
+    "@babel/runtime" "^7.13.10"
+    "@emotion/babel-plugin" "^11.7.1"
+    "@emotion/is-prop-valid" "^1.1.2"
+    "@emotion/serialize" "^1.0.2"
+    "@emotion/utils" "^1.1.0"
+
+"@emotion/unitless@^0.7.5":
+  version "0.7.5"
+  resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+  integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
+
+"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
+  integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
+
+"@emotion/weak-memoize@^0.2.5":
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
+  integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
+
+"@eslint/eslintrc@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a"
+  integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.3.1"
+    globals "^13.9.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^4.1.0"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
+"@exodus/schemasafe@^1.0.0-rc.2":
+  version "1.0.0-rc.6"
+  resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz#7985f681564cff4ffaebb5896eb4be20af3aae7a"
+  integrity sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==
+
+"@faker-js/faker@^6.0.0":
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-6.1.2.tgz#7093ea65e6d78eae388918a46968c083366bd621"
+  integrity sha512-QSvmexHCxeRUk1/yKmoEDaWB5Hohjvtim5g2JJwy8S/l0L4b3y/GxSpE6vN4SBoVGGahEQW21uqyRr7EofI35A==
+
+"@humanwhocodes/config-array@^0.9.2":
+  version "0.9.5"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
+  integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==
+  dependencies:
+    "@humanwhocodes/object-schema" "^1.2.1"
+    debug "^4.1.1"
+    minimatch "^3.0.4"
+
+"@humanwhocodes/object-schema@^1.2.1":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+  integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+  dependencies:
+    camelcase "^5.3.1"
+    find-up "^4.1.0"
+    get-package-type "^0.1.0"
+    js-yaml "^3.13.1"
+    resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2":
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+  integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba"
+  integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    jest-message-util "^27.5.1"
+    jest-util "^27.5.1"
+    slash "^3.0.0"
+
+"@jest/core@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626"
+  integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==
+  dependencies:
+    "@jest/console" "^27.5.1"
+    "@jest/reporters" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    ansi-escapes "^4.2.1"
+    chalk "^4.0.0"
+    emittery "^0.8.1"
+    exit "^0.1.2"
+    graceful-fs "^4.2.9"
+    jest-changed-files "^27.5.1"
+    jest-config "^27.5.1"
+    jest-haste-map "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-regex-util "^27.5.1"
+    jest-resolve "^27.5.1"
+    jest-resolve-dependencies "^27.5.1"
+    jest-runner "^27.5.1"
+    jest-runtime "^27.5.1"
+    jest-snapshot "^27.5.1"
+    jest-util "^27.5.1"
+    jest-validate "^27.5.1"
+    jest-watcher "^27.5.1"
+    micromatch "^4.0.4"
+    rimraf "^3.0.0"
+    slash "^3.0.0"
+    strip-ansi "^6.0.0"
+
+"@jest/environment@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74"
+  integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==
+  dependencies:
+    "@jest/fake-timers" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    jest-mock "^27.5.1"
+
+"@jest/fake-timers@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74"
+  integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    "@sinonjs/fake-timers" "^8.0.1"
+    "@types/node" "*"
+    jest-message-util "^27.5.1"
+    jest-mock "^27.5.1"
+    jest-util "^27.5.1"
+
+"@jest/globals@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b"
+  integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    expect "^27.5.1"
+
+"@jest/reporters@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04"
+  integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==
+  dependencies:
+    "@bcoe/v8-coverage" "^0.2.3"
+    "@jest/console" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    collect-v8-coverage "^1.0.0"
+    exit "^0.1.2"
+    glob "^7.1.2"
+    graceful-fs "^4.2.9"
+    istanbul-lib-coverage "^3.0.0"
+    istanbul-lib-instrument "^5.1.0"
+    istanbul-lib-report "^3.0.0"
+    istanbul-lib-source-maps "^4.0.0"
+    istanbul-reports "^3.1.3"
+    jest-haste-map "^27.5.1"
+    jest-resolve "^27.5.1"
+    jest-util "^27.5.1"
+    jest-worker "^27.5.1"
+    slash "^3.0.0"
+    source-map "^0.6.0"
+    string-length "^4.0.1"
+    terminal-link "^2.0.0"
+    v8-to-istanbul "^8.1.0"
+
+"@jest/source-map@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf"
+  integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==
+  dependencies:
+    callsites "^3.0.0"
+    graceful-fs "^4.2.9"
+    source-map "^0.6.0"
+
+"@jest/test-result@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb"
+  integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==
+  dependencies:
+    "@jest/console" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/istanbul-lib-coverage" "^2.0.0"
+    collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b"
+  integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==
+  dependencies:
+    "@jest/test-result" "^27.5.1"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^27.5.1"
+    jest-runtime "^27.5.1"
+
+"@jest/transform@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409"
+  integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==
+  dependencies:
+    "@babel/core" "^7.1.0"
+    "@jest/types" "^27.5.1"
+    babel-plugin-istanbul "^6.1.1"
+    chalk "^4.0.0"
+    convert-source-map "^1.4.0"
+    fast-json-stable-stringify "^2.0.0"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^27.5.1"
+    jest-regex-util "^27.5.1"
+    jest-util "^27.5.1"
+    micromatch "^4.0.4"
+    pirates "^4.0.4"
+    slash "^3.0.0"
+    source-map "^0.6.1"
+    write-file-atomic "^3.0.0"
+
+"@jest/types@^27.5.1":
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80"
+  integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==
+  dependencies:
+    "@types/istanbul-lib-coverage" "^2.0.0"
+    "@types/istanbul-reports" "^3.0.0"
+    "@types/node" "*"
+    "@types/yargs" "^16.0.0"
+    chalk "^4.0.0"
+
+"@jridgewell/resolve-uri@^3.0.3":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
+  integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+  version "1.4.11"
+  resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
+  integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
+
+"@jridgewell/trace-mapping@^0.3.0":
+  version "0.3.4"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
+  integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
+  dependencies:
+    "@jridgewell/resolve-uri" "^3.0.3"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@mui/base@5.0.0-alpha.75":
+  version "5.0.0-alpha.75"
+  resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.75.tgz#0b352ff951765dfa83723fd1faf46a128dfe63ca"
+  integrity sha512-eQ8SP2ML5nJyOdSqmk26ezg/eEP1k42Z+k6uMfNbgHZc8iZwgw9iVe+6g5j/qZPKS88AtxVG8YsLLZkXT82/Bw==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@emotion/is-prop-valid" "^1.1.2"
+    "@mui/types" "^7.1.3"
+    "@mui/utils" "^5.6.0"
+    "@popperjs/core" "^2.11.4"
+    clsx "^1.1.1"
+    prop-types "^15.7.2"
+    react-is "^17.0.2"
+
+"@mui/icons-material@^5.5.1":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.6.0.tgz#bce757f7c7a8eb31b238311a15fa0a0bcdf9ec39"
+  integrity sha512-2GDGt+/BbwM3oVkF84b9FFKQdQ9TxBJIRnTwT99vO2mimdfJaojxMRB2lkysm9tUY4HOf0yoU6O//X6GTC0Zhw==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+
+"@mui/material@^5.5.2":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.6.0.tgz#284270f5e48d379a9b9bc4db412a807b807965b5"
+  integrity sha512-yh4FoRRPTgJWjv1oIu3YuvfYGD/WOEnyGizQ9fKs+hlMjIc0rzFpyUCo++P/3BUd0/hRKcI8D8mrpJK9OiOy1g==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@mui/base" "5.0.0-alpha.75"
+    "@mui/system" "^5.6.0"
+    "@mui/types" "^7.1.3"
+    "@mui/utils" "^5.6.0"
+    "@types/react-transition-group" "^4.4.4"
+    clsx "^1.1.1"
+    csstype "^3.0.11"
+    hoist-non-react-statics "^3.3.2"
+    prop-types "^15.7.2"
+    react-is "^17.0.2"
+    react-transition-group "^4.4.2"
+
+"@mui/private-theming@^5.6.0":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.6.0.tgz#b907e055a0a19caf554d5b43209a143edaa9b398"
+  integrity sha512-62jUFaMGfW3nvq/worcOAEiY++rWd44tpWShq4o97DybWmmWvEFYlBIuHEcXrtBIK/cloaQw8jqelQIFZeiVdw==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@mui/utils" "^5.6.0"
+    prop-types "^15.7.2"
+
+"@mui/styled-engine@^5.6.0":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.6.0.tgz#c7c34d2e319158559cef49b796457a4e6a4c58f7"
+  integrity sha512-K1WPKTruJTPA49cub0HtDCBBvosPKizqgZ4RenAfWz/ldlFtM4p7e7Mt3YEnNWTOJMHvDGcEke1tCuELkVAMyA==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@emotion/cache" "^11.7.1"
+    prop-types "^15.7.2"
+
+"@mui/system@^5.6.0":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.6.0.tgz#4d6db0db6a8daf90acd7fcaab3a353aa127987ce"
+  integrity sha512-FoytH73hY78Dll6F0fg7AI/hnpplygbFeW0HsqBfwFWrt2PMc2YSq2ICqHzd2CZPIhzEgRHDTSI8bMTLtG9W7A==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@mui/private-theming" "^5.6.0"
+    "@mui/styled-engine" "^5.6.0"
+    "@mui/types" "^7.1.3"
+    "@mui/utils" "^5.6.0"
+    clsx "^1.1.1"
+    csstype "^3.0.11"
+    prop-types "^15.7.2"
+
+"@mui/types@^7.1.3":
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.3.tgz#d7636f3046110bcccc63e6acfd100e2ad9ca712a"
+  integrity sha512-DDF0UhMBo4Uezlk+6QxrlDbchF79XG6Zs0zIewlR4c0Dt6GKVFfUtzPtHCH1tTbcSlq/L2bGEdiaoHBJ9Y1gSA==
+
+"@mui/utils@^5.6.0":
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.6.0.tgz#0ec741f5ac7c89ac76054832bed2d6e17ab1c011"
+  integrity sha512-LbZKkCOn4243vbEVGbaKV7t6eN6kz7t95DR6AcUCRk4daH3l7CXPYkWsyzysRWdXgSzHmIyrgg4FZKzTy0dTHQ==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "@types/prop-types" "^15.7.4"
+    "@types/react-is" "^16.7.1 || ^17.0.0"
+    prop-types "^15.7.2"
+    react-is "^17.0.2"
+
+"@nodelib/fs.scandir@2.1.5":
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@pmmmwh/react-refresh-webpack-plugin@^0.5.3":
+  version "0.5.4"
+  resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz#df0d0d855fc527db48aac93c218a0bf4ada41f99"
+  integrity sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==
+  dependencies:
+    ansi-html-community "^0.0.8"
+    common-path-prefix "^3.0.0"
+    core-js-pure "^3.8.1"
+    error-stack-parser "^2.0.6"
+    find-up "^5.0.0"
+    html-entities "^2.1.0"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+    source-map "^0.7.3"
+
+"@popperjs/core@^2.11.4":
+  version "2.11.5"
+  resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
+  integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
+
+"@reduxjs/toolkit@^1.8.1":
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.1.tgz#94ee1981b8cf9227cda40163a04704a9544c9a9f"
+  integrity sha512-Q6mzbTpO9nOYRnkwpDlFOAbQnd3g7zj7CtHAZWz5SzE5lcV97Tf8f3SzOO8BoPOMYBFgfZaqTUZqgGu+a0+Fng==
+  dependencies:
+    immer "^9.0.7"
+    redux "^4.1.2"
+    redux-thunk "^2.4.1"
+    reselect "^4.1.5"
+
+"@rollup/plugin-babel@^5.2.0":
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283"
+  integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==
+  dependencies:
+    "@babel/helper-module-imports" "^7.10.4"
+    "@rollup/pluginutils" "^3.1.0"
+
+"@rollup/plugin-node-resolve@^11.2.1":
+  version "11.2.1"
+  resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60"
+  integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==
+  dependencies:
+    "@rollup/pluginutils" "^3.1.0"
+    "@types/resolve" "1.17.1"
+    builtin-modules "^3.1.0"
+    deepmerge "^4.2.2"
+    is-module "^1.0.0"
+    resolve "^1.19.0"
+
+"@rollup/plugin-replace@^2.4.1":
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a"
+  integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==
+  dependencies:
+    "@rollup/pluginutils" "^3.1.0"
+    magic-string "^0.25.7"
+
+"@rollup/pluginutils@^3.1.0":
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
+  integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
+  dependencies:
+    "@types/estree" "0.0.39"
+    estree-walker "^1.0.1"
+    picomatch "^2.2.2"
+
+"@rushstack/eslint-patch@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
+  integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
+
+"@sinonjs/commons@^1.7.0":
+  version "1.8.3"
+  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
+  integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
+  dependencies:
+    type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^8.0.1":
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7"
+  integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==
+  dependencies:
+    "@sinonjs/commons" "^1.7.0"
+
+"@surma/rollup-plugin-off-main-thread@^2.2.3":
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053"
+  integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==
+  dependencies:
+    ejs "^3.1.6"
+    json5 "^2.2.0"
+    magic-string "^0.25.0"
+    string.prototype.matchall "^4.0.6"
+
+"@svgr/babel-plugin-add-jsx-attribute@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906"
+  integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==
+
+"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef"
+  integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==
+
+"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1":
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd"
+  integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==
+
+"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1":
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897"
+  integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==
+
+"@svgr/babel-plugin-svg-dynamic-title@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7"
+  integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==
+
+"@svgr/babel-plugin-svg-em-dimensions@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0"
+  integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==
+
+"@svgr/babel-plugin-transform-react-native-svg@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80"
+  integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==
+
+"@svgr/babel-plugin-transform-svg-component@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a"
+  integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==
+
+"@svgr/babel-preset@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327"
+  integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==
+  dependencies:
+    "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0"
+    "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0"
+    "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1"
+    "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1"
+    "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0"
+    "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0"
+    "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0"
+    "@svgr/babel-plugin-transform-svg-component" "^5.5.0"
+
+"@svgr/core@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579"
+  integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==
+  dependencies:
+    "@svgr/plugin-jsx" "^5.5.0"
+    camelcase "^6.2.0"
+    cosmiconfig "^7.0.0"
+
+"@svgr/hast-util-to-babel-ast@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461"
+  integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==
+  dependencies:
+    "@babel/types" "^7.12.6"
+
+"@svgr/plugin-jsx@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000"
+  integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==
+  dependencies:
+    "@babel/core" "^7.12.3"
+    "@svgr/babel-preset" "^5.5.0"
+    "@svgr/hast-util-to-babel-ast" "^5.5.0"
+    svg-parser "^2.0.2"
+
+"@svgr/plugin-svgo@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246"
+  integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==
+  dependencies:
+    cosmiconfig "^7.0.0"
+    deepmerge "^4.2.2"
+    svgo "^1.2.2"
+
+"@svgr/webpack@^5.5.0":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640"
+  integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==
+  dependencies:
+    "@babel/core" "^7.12.3"
+    "@babel/plugin-transform-react-constant-elements" "^7.12.1"
+    "@babel/preset-env" "^7.12.1"
+    "@babel/preset-react" "^7.12.5"
+    "@svgr/core" "^5.5.0"
+    "@svgr/plugin-jsx" "^5.5.0"
+    "@svgr/plugin-svgo" "^5.5.0"
+    loader-utils "^2.0.0"
+
+"@testing-library/dom@^8.0.0":
+  version "8.11.3"
+  resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808"
+  integrity sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==
+  dependencies:
+    "@babel/code-frame" "^7.10.4"
+    "@babel/runtime" "^7.12.5"
+    "@types/aria-query" "^4.2.0"
+    aria-query "^5.0.0"
+    chalk "^4.1.0"
+    dom-accessibility-api "^0.5.9"
+    lz-string "^1.4.4"
+    pretty-format "^27.0.2"
+
+"@testing-library/jest-dom@^5.14.1":
+  version "5.16.2"
+  resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz#f329b36b44aa6149cd6ced9adf567f8b6aa1c959"
+  integrity sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==
+  dependencies:
+    "@babel/runtime" "^7.9.2"
+    "@types/testing-library__jest-dom" "^5.9.1"
+    aria-query "^5.0.0"
+    chalk "^3.0.0"
+    css "^3.0.0"
+    css.escape "^1.5.1"
+    dom-accessibility-api "^0.5.6"
+    lodash "^4.17.15"
+    redent "^3.0.0"
+
+"@testing-library/react@^12.0.0":
+  version "12.1.3"
+  resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.3.tgz#ef26c5f122661ea9b6f672b23dc6b328cadbbf26"
+  integrity sha512-oCULRXWRrBtC9m6G/WohPo1GLcLesH7T4fuKzRAKn1CWVu9BzXtqLXDDTA6KhFNNtRwLtfSMr20HFl+Qrdrvmg==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+    "@testing-library/dom" "^8.0.0"
+    "@types/react-dom" "*"
+
+"@testing-library/user-event@^13.2.1":
+  version "13.5.0"
+  resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295"
+  integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+
+"@tootallnate/once@1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
+  integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
+"@trysound/sax@0.2.0":
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+  integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+
+"@tsconfig/node10@^1.0.7":
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9"
+  integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==
+
+"@tsconfig/node12@^1.0.7":
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c"
+  integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==
+
+"@tsconfig/node14@^1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2"
+  integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==
+
+"@tsconfig/node16@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e"
+  integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
+
+"@types/aria-query@^4.2.0":
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc"
+  integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==
+
+"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":
+  version "7.1.18"
+  resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8"
+  integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==
+  dependencies:
+    "@babel/parser" "^7.1.0"
+    "@babel/types" "^7.0.0"
+    "@types/babel__generator" "*"
+    "@types/babel__template" "*"
+    "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+  version "7.6.4"
+  resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
+  integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
+  dependencies:
+    "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
+  integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
+  dependencies:
+    "@babel/parser" "^7.1.0"
+    "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43"
+  integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==
+  dependencies:
+    "@babel/types" "^7.3.0"
+
+"@types/body-parser@*":
+  version "1.19.2"
+  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
+  integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
+  dependencies:
+    "@types/connect" "*"
+    "@types/node" "*"
+
+"@types/bonjour@^3.5.9":
+  version "3.5.10"
+  resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275"
+  integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/connect-history-api-fallback@^1.3.5":
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
+  integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==
+  dependencies:
+    "@types/express-serve-static-core" "*"
+    "@types/node" "*"
+
+"@types/connect@*":
+  version "3.4.35"
+  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
+  integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
+  dependencies:
+    "@types/node" "*"
+
+"@types/eslint-scope@^3.7.3":
+  version "3.7.3"
+  resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224"
+  integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==
+  dependencies:
+    "@types/eslint" "*"
+    "@types/estree" "*"
+
+"@types/eslint@*":
+  version "8.4.1"
+  resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304"
+  integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==
+  dependencies:
+    "@types/estree" "*"
+    "@types/json-schema" "*"
+
+"@types/eslint@^7.28.2":
+  version "7.29.0"
+  resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78"
+  integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==
+  dependencies:
+    "@types/estree" "*"
+    "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^0.0.51":
+  version "0.0.51"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
+  integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
+
+"@types/estree@0.0.39":
+  version "0.0.39"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+  integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+
+"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
+  version "4.17.28"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8"
+  integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==
+  dependencies:
+    "@types/node" "*"
+    "@types/qs" "*"
+    "@types/range-parser" "*"
+
+"@types/express@*", "@types/express@^4.17.13":
+  version "4.17.13"
+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034"
+  integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==
+  dependencies:
+    "@types/body-parser" "*"
+    "@types/express-serve-static-core" "^4.17.18"
+    "@types/qs" "*"
+    "@types/serve-static" "*"
+
+"@types/graceful-fs@^4.1.2":
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
+  integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/hoist-non-react-statics@^3.3.0":
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
+  integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
+  dependencies:
+    "@types/react" "*"
+    hoist-non-react-statics "^3.3.0"
+
+"@types/html-minifier-terser@^6.0.0":
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
+  integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
+
+"@types/http-proxy@^1.17.8":
+  version "1.17.8"
+  resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55"
+  integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==
+  dependencies:
+    "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
+  integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
+
+"@types/istanbul-lib-report@*":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+  integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
+  dependencies:
+    "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"
+  integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
+  dependencies:
+    "@types/istanbul-lib-report" "*"
+
+"@types/jest@*", "@types/jest@^27.0.1":
+  version "27.4.1"
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.1.tgz#185cbe2926eaaf9662d340cc02e548ce9e11ab6d"
+  integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==
+  dependencies:
+    jest-matcher-utils "^27.0.0"
+    pretty-format "^27.0.0"
+
+"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
+  version "7.0.9"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
+  integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
+
+"@types/json5@^0.0.29":
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+  integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
+"@types/lodash@^4.14.175":
+  version "4.14.181"
+  resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.181.tgz#d1d3740c379fda17ab175165ba04e2d03389385d"
+  integrity sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==
+
+"@types/mime@^1":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
+  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
+
+"@types/node@*":
+  version "17.0.21"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644"
+  integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
+
+"@types/node@^16.7.13":
+  version "16.11.26"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47"
+  integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==
+
+"@types/parse-json@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prettier@^2.1.5":
+  version "2.4.4"
+  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17"
+  integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==
+
+"@types/prop-types@*", "@types/prop-types@^15.7.4":
+  version "15.7.4"
+  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
+  integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/q@^1.5.1":
+  version "1.5.5"
+  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df"
+  integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==
+
+"@types/qs@*":
+  version "6.9.7"
+  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
+  integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+
+"@types/range-parser@*":
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
+  integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
+
+"@types/react-dom@*", "@types/react-dom@^17.0.9":
+  version "17.0.13"
+  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.13.tgz#a3323b974ee4280070982b3112351bb1952a7809"
+  integrity sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react-is@^16.7.1 || ^17.0.0":
+  version "17.0.3"
+  resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a"
+  integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react-redux@^7.1.20", "@types/react-redux@^7.1.23":
+  version "7.1.23"
+  resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.23.tgz#3c2bb1bcc698ae69d70735f33c5a8e95f41ac528"
+  integrity sha512-D02o3FPfqQlfu2WeEYwh3x2otYd2Dk1o8wAfsA0B1C2AJEFxE663Ozu7JzuWbznGgW248NaOF6wsqCGNq9d3qw==
+  dependencies:
+    "@types/hoist-non-react-statics" "^3.3.0"
+    "@types/react" "*"
+    hoist-non-react-statics "^3.3.0"
+    redux "^4.0.0"
+
+"@types/react-transition-group@^4.4.4":
+  version "4.4.4"
+  resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e"
+  integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react@*":
+  version "17.0.39"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.39.tgz#d0f4cde092502a6db00a1cded6e6bf2abb7633ce"
+  integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/scheduler" "*"
+    csstype "^3.0.2"
+
+"@types/react@^17.0.43":
+  version "17.0.44"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
+  integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/scheduler" "*"
+    csstype "^3.0.2"
+
+"@types/redux-persist@^4.3.1":
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/@types/redux-persist/-/redux-persist-4.3.1.tgz#aa4c876859e0bea5155e5f7980e5b8c4699dc2e6"
+  integrity sha1-qkyHaFngvqUVXl95gOW4xGmdwuY=
+  dependencies:
+    redux-persist "*"
+
+"@types/resolve@1.17.1":
+  version "1.17.1"
+  resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
+  integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/retry@^0.12.0":
+  version "0.12.1"
+  resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
+  integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==
+
+"@types/scheduler@*":
+  version "0.16.2"
+  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+  integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/serve-index@^1.9.1":
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"
+  integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==
+  dependencies:
+    "@types/express" "*"
+
+"@types/serve-static@*":
+  version "1.13.10"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
+  integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==
+  dependencies:
+    "@types/mime" "^1"
+    "@types/node" "*"
+
+"@types/sockjs@^0.3.33":
+  version "0.3.33"
+  resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f"
+  integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/stack-utils@^2.0.0":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
+  integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+
+"@types/swagger-schema-official@2.0.21":
+  version "2.0.21"
+  resolved "https://registry.yarnpkg.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.21.tgz#56812a86dcd57ba60e5c51705ee96a2b2dc9b374"
+  integrity sha512-n9BbLOjR4Hre7B4TSGGMPohOgOg8tcp00uxqsIE00uuWQC0QuX57G1bqC1csLsk2DpTGtHkd0dEb3ipsCZ9dAA==
+
+"@types/testing-library__jest-dom@^5.9.1":
+  version "5.14.3"
+  resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17"
+  integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==
+  dependencies:
+    "@types/jest" "*"
+
+"@types/trusted-types@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756"
+  integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==
+
+"@types/ws@^8.2.2":
+  version "8.5.2"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.2.tgz#77e0c2e360e9579da930ffcfa53c5975ea3bdd26"
+  integrity sha512-VXI82ykONr5tacHEojnErTQk+KQSoYbW1NB6iz6wUwrNd+BqfkfggQNoNdCqhJSzbNumShPERbM+Pc5zpfhlbw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/yargs-parser@*":
+  version "21.0.0"
+  resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
+  integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
+
+"@types/yargs@^16.0.0":
+  version "16.0.4"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977"
+  integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
+  dependencies:
+    "@types/yargs-parser" "*"
+
+"@types/yup@^0.29.13":
+  version "0.29.13"
+  resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.13.tgz#21b137ba60841307a3c8a1050d3bf4e63ad561e9"
+  integrity sha512-qRyuv+P/1t1JK1rA+elmK1MmCL1BapEzKKfbEhDBV/LMMse4lmhZ/XbgETI39JveDJRpLjmToOI6uFtMW/WR2g==
+
+"@typescript-eslint/eslint-plugin@^5.5.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335"
+  integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==
+  dependencies:
+    "@typescript-eslint/scope-manager" "5.14.0"
+    "@typescript-eslint/type-utils" "5.14.0"
+    "@typescript-eslint/utils" "5.14.0"
+    debug "^4.3.2"
+    functional-red-black-tree "^1.0.1"
+    ignore "^5.1.8"
+    regexpp "^3.2.0"
+    semver "^7.3.5"
+    tsutils "^3.21.0"
+
+"@typescript-eslint/experimental-utils@^5.0.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.14.0.tgz#73a455cd975d52830360a5b4131b7c4f8f1ff06f"
+  integrity sha512-ke48La1A/TWAn949cdgQiP3oK0NT7ArhDAOVOmNLVjT/uAXlFyrJY8dM4qqxHrATzIp8glg+G2OZjy2lRKBIUA==
+  dependencies:
+    "@typescript-eslint/utils" "5.14.0"
+
+"@typescript-eslint/parser@^5.5.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.14.0.tgz#7c79f898aa3cff0ceee6f1d34eeed0f034fb9ef3"
+  integrity sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==
+  dependencies:
+    "@typescript-eslint/scope-manager" "5.14.0"
+    "@typescript-eslint/types" "5.14.0"
+    "@typescript-eslint/typescript-estree" "5.14.0"
+    debug "^4.3.2"
+
+"@typescript-eslint/scope-manager@5.14.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b"
+  integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==
+  dependencies:
+    "@typescript-eslint/types" "5.14.0"
+    "@typescript-eslint/visitor-keys" "5.14.0"
+
+"@typescript-eslint/type-utils@5.14.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b"
+  integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==
+  dependencies:
+    "@typescript-eslint/utils" "5.14.0"
+    debug "^4.3.2"
+    tsutils "^3.21.0"
+
+"@typescript-eslint/types@5.14.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11"
+  integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==
+
+"@typescript-eslint/typescript-estree@5.14.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314"
+  integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==
+  dependencies:
+    "@typescript-eslint/types" "5.14.0"
+    "@typescript-eslint/visitor-keys" "5.14.0"
+    debug "^4.3.2"
+    globby "^11.0.4"
+    is-glob "^4.0.3"
+    semver "^7.3.5"
+    tsutils "^3.21.0"
+
+"@typescript-eslint/utils@5.14.0", "@typescript-eslint/utils@^5.13.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4"
+  integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==
+  dependencies:
+    "@types/json-schema" "^7.0.9"
+    "@typescript-eslint/scope-manager" "5.14.0"
+    "@typescript-eslint/types" "5.14.0"
+    "@typescript-eslint/typescript-estree" "5.14.0"
+    eslint-scope "^5.1.1"
+    eslint-utils "^3.0.0"
+
+"@typescript-eslint/visitor-keys@5.14.0":
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986"
+  integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==
+  dependencies:
+    "@typescript-eslint/types" "5.14.0"
+    eslint-visitor-keys "^3.0.0"
+
+"@webassemblyjs/ast@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
+  integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
+  dependencies:
+    "@webassemblyjs/helper-numbers" "1.11.1"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+
+"@webassemblyjs/floating-point-hex-parser@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
+  integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
+
+"@webassemblyjs/helper-api-error@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
+  integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
+
+"@webassemblyjs/helper-buffer@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
+  integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
+
+"@webassemblyjs/helper-numbers@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
+  integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
+  dependencies:
+    "@webassemblyjs/floating-point-hex-parser" "1.11.1"
+    "@webassemblyjs/helper-api-error" "1.11.1"
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/helper-wasm-bytecode@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
+  integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
+
+"@webassemblyjs/helper-wasm-section@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
+  integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/helper-buffer" "1.11.1"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+    "@webassemblyjs/wasm-gen" "1.11.1"
+
+"@webassemblyjs/ieee754@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
+  integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
+  dependencies:
+    "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
+  integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
+  dependencies:
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
+  integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
+
+"@webassemblyjs/wasm-edit@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
+  integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/helper-buffer" "1.11.1"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+    "@webassemblyjs/helper-wasm-section" "1.11.1"
+    "@webassemblyjs/wasm-gen" "1.11.1"
+    "@webassemblyjs/wasm-opt" "1.11.1"
+    "@webassemblyjs/wasm-parser" "1.11.1"
+    "@webassemblyjs/wast-printer" "1.11.1"
+
+"@webassemblyjs/wasm-gen@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
+  integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+    "@webassemblyjs/ieee754" "1.11.1"
+    "@webassemblyjs/leb128" "1.11.1"
+    "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wasm-opt@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
+  integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/helper-buffer" "1.11.1"
+    "@webassemblyjs/wasm-gen" "1.11.1"
+    "@webassemblyjs/wasm-parser" "1.11.1"
+
+"@webassemblyjs/wasm-parser@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
+  integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/helper-api-error" "1.11.1"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+    "@webassemblyjs/ieee754" "1.11.1"
+    "@webassemblyjs/leb128" "1.11.1"
+    "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wast-printer@1.11.1":
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
+  integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.1"
+    "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+  integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+  integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+abab@^2.0.3, abab@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
+  integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
+
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+  integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+  dependencies:
+    mime-types "~2.1.34"
+    negotiator "0.6.3"
+
+acorn-globals@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
+  integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
+  dependencies:
+    acorn "^7.1.1"
+    acorn-walk "^7.1.1"
+
+acorn-import-assertions@^1.7.6:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
+  integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
+
+acorn-jsx@^5.3.1:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-node@^1.6.1:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+  integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+  dependencies:
+    acorn "^7.0.0"
+    acorn-walk "^7.0.0"
+    xtend "^4.0.2"
+
+acorn-walk@^7.0.0, acorn-walk@^7.1.1:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn-walk@^8.1.1:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+  integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^7.0.0, acorn@^7.1.1:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0:
+  version "8.7.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
+  integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+
+address@^1.0.1, address@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
+  integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+
+adjust-sourcemap-loader@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99"
+  integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==
+  dependencies:
+    loader-utils "^2.0.0"
+    regex-parser "^2.2.11"
+
+agent-base@6:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+  dependencies:
+    debug "4"
+
+aggregate-error@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+ajv-formats@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+  integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+  dependencies:
+    ajv "^8.0.0"
+
+ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+  integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv-keywords@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
+  integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+  dependencies:
+    fast-deep-equal "^3.1.3"
+
+ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0:
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d"
+  integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.1:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+  dependencies:
+    type-fest "^0.21.3"
+
+ansi-html-community@^0.0.8:
+  version "0.0.8"
+  resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
+  integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
+
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-regex@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+  integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+ansi-styles@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+  integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
+anymatch@^3.0.3, anymatch@~3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+arg@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+  integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+arg@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
+  integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
+
+argparse@^1.0.7:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+  dependencies:
+    sprintf-js "~1.0.2"
+
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+aria-query@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
+  integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
+  dependencies:
+    "@babel/runtime" "^7.10.2"
+    "@babel/runtime-corejs3" "^7.10.2"
+
+aria-query@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c"
+  integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==
+
+array-flatten@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
+array-flatten@^2.1.0:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+  integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
+
+array-includes@^3.1.3, array-includes@^3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+  integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+    get-intrinsic "^1.1.1"
+    is-string "^1.0.7"
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+array.prototype.flat@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
+  integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.0"
+
+array.prototype.flatmap@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"
+  integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.0"
+
+asap@~2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
+ast-types-flow@^0.0.7:
+  version "0.0.7"
+  resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+  integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
+
+async@0.9.x:
+  version "0.9.2"
+  resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+  integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
+
+async@^2.6.2:
+  version "2.6.3"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+  integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+  dependencies:
+    lodash "^4.17.14"
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+atob@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+autoprefixer@^10.4.2:
+  version "10.4.2"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b"
+  integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
+  dependencies:
+    browserslist "^4.19.1"
+    caniuse-lite "^1.0.30001297"
+    fraction.js "^4.1.2"
+    normalize-range "^0.1.2"
+    picocolors "^1.0.0"
+    postcss-value-parser "^4.2.0"
+
+axe-core@^4.3.5:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
+  integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
+
+axios@^0.21.4:
+  version "0.21.4"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+  dependencies:
+    follow-redirects "^1.14.0"
+
+axios@^0.26.0:
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928"
+  integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==
+  dependencies:
+    follow-redirects "^1.14.8"
+
+axobject-query@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
+  integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
+
+babel-jest@^27.4.2, babel-jest@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444"
+  integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==
+  dependencies:
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/babel__core" "^7.1.14"
+    babel-plugin-istanbul "^6.1.1"
+    babel-preset-jest "^27.5.1"
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    slash "^3.0.0"
+
+babel-loader@^8.2.3:
+  version "8.2.3"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d"
+  integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==
+  dependencies:
+    find-cache-dir "^3.3.1"
+    loader-utils "^1.4.0"
+    make-dir "^3.1.0"
+    schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+  dependencies:
+    object.assign "^4.1.0"
+
+babel-plugin-istanbul@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+  integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@istanbuljs/load-nyc-config" "^1.0.0"
+    "@istanbuljs/schema" "^0.1.2"
+    istanbul-lib-instrument "^5.0.4"
+    test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e"
+  integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==
+  dependencies:
+    "@babel/template" "^7.3.3"
+    "@babel/types" "^7.3.3"
+    "@types/babel__core" "^7.0.0"
+    "@types/babel__traverse" "^7.0.6"
+
+babel-plugin-macros@^2.6.1:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+  integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
+  dependencies:
+    "@babel/runtime" "^7.7.2"
+    cosmiconfig "^6.0.0"
+    resolve "^1.12.0"
+
+babel-plugin-macros@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
+  integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+    cosmiconfig "^7.0.0"
+    resolve "^1.19.0"
+
+babel-plugin-named-asset-import@^0.3.8:
+  version "0.3.8"
+  resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2"
+  integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==
+
+babel-plugin-polyfill-corejs2@^0.3.0:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5"
+  integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+  dependencies:
+    "@babel/compat-data" "^7.13.11"
+    "@babel/helper-define-polyfill-provider" "^0.3.1"
+    semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.5.0:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72"
+  integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.3.1"
+    core-js-compat "^3.21.0"
+
+babel-plugin-polyfill-regenerator@^0.3.0:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990"
+  integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.3.1"
+
+babel-plugin-transform-react-remove-prop-types@^0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
+  integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
+
+babel-preset-current-node-syntax@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+  integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
+  dependencies:
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-bigint" "^7.8.3"
+    "@babel/plugin-syntax-class-properties" "^7.8.3"
+    "@babel/plugin-syntax-import-meta" "^7.8.3"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-top-level-await" "^7.8.3"
+
+babel-preset-jest@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81"
+  integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==
+  dependencies:
+    babel-plugin-jest-hoist "^27.5.1"
+    babel-preset-current-node-syntax "^1.0.0"
+
+babel-preset-react-app@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584"
+  integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==
+  dependencies:
+    "@babel/core" "^7.16.0"
+    "@babel/plugin-proposal-class-properties" "^7.16.0"
+    "@babel/plugin-proposal-decorators" "^7.16.4"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0"
+    "@babel/plugin-proposal-numeric-separator" "^7.16.0"
+    "@babel/plugin-proposal-optional-chaining" "^7.16.0"
+    "@babel/plugin-proposal-private-methods" "^7.16.0"
+    "@babel/plugin-transform-flow-strip-types" "^7.16.0"
+    "@babel/plugin-transform-react-display-name" "^7.16.0"
+    "@babel/plugin-transform-runtime" "^7.16.4"
+    "@babel/preset-env" "^7.16.4"
+    "@babel/preset-react" "^7.16.0"
+    "@babel/preset-typescript" "^7.16.0"
+    "@babel/runtime" "^7.16.3"
+    babel-plugin-macros "^3.1.0"
+    babel-plugin-transform-react-remove-prop-types "^0.4.24"
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+batch@0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+  integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
+
+bfj@^7.0.2:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2"
+  integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==
+  dependencies:
+    bluebird "^3.5.5"
+    check-types "^11.1.1"
+    hoopy "^0.1.4"
+    tryer "^1.0.1"
+
+big.js@^5.2.2:
+  version "5.2.2"
+  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+  integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bluebird@^3.5.5:
+  version "3.7.2"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+body-parser@1.19.2:
+  version "1.19.2"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
+  integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
+  dependencies:
+    bytes "3.1.2"
+    content-type "~1.0.4"
+    debug "2.6.9"
+    depd "~1.1.2"
+    http-errors "1.8.1"
+    iconv-lite "0.4.24"
+    on-finished "~2.3.0"
+    qs "6.9.7"
+    raw-body "2.4.3"
+    type-is "~1.6.18"
+
+bonjour@^3.5.0:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+  integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
+  dependencies:
+    array-flatten "^2.1.0"
+    deep-equal "^1.0.1"
+    dns-equal "^1.0.0"
+    dns-txt "^2.0.2"
+    multicast-dns "^6.0.1"
+    multicast-dns-service-types "^1.1.0"
+
+boolbase@^1.0.0, boolbase@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+browser-process-hrtime@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+  integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
+
+browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1, browserslist@^4.19.3:
+  version "4.20.0"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9"
+  integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
+  dependencies:
+    caniuse-lite "^1.0.30001313"
+    electron-to-chromium "^1.4.76"
+    escalade "^3.1.1"
+    node-releases "^2.0.2"
+    picocolors "^1.0.0"
+
+bser@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+  integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+  dependencies:
+    node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer-indexof@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+  integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
+
+builtin-modules@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
+  integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
+
+bytes@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+  integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
+
+bytes@3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+  integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+call-me-maybe@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camel-case@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+  integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+  dependencies:
+    pascal-case "^3.1.2"
+    tslib "^2.0.3"
+
+camelcase-css@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+  integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+camelcase@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.2.0, camelcase@^6.2.1:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+  integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+caniuse-api@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+  integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-lite "^1.0.0"
+    lodash.memoize "^4.1.2"
+    lodash.uniq "^4.5.0"
+
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001313:
+  version "1.0.30001314"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
+  integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
+
+case-sensitive-paths-webpack-plugin@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
+  integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
+
+chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+char-regex@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+  integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+char-regex@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e"
+  integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==
+
+charcodes@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4"
+  integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==
+
+check-types@^11.1.1:
+  version "11.1.2"
+  resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f"
+  integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==
+
+chokidar@^3.4.2, chokidar@^3.5.3:
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+  integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+  dependencies:
+    anymatch "~3.1.2"
+    braces "~3.0.2"
+    glob-parent "~5.1.2"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.6.0"
+  optionalDependencies:
+    fsevents "~2.3.2"
+
+chrome-trace-event@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+  integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+ci-info@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
+  integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
+
+cjs-module-lexer@^1.0.0:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
+  integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
+
+clean-css@^5.2.2:
+  version "5.2.4"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4"
+  integrity sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==
+  dependencies:
+    source-map "~0.6.0"
+
+clean-stack@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
+clsx@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
+  integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
+
+co@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+  integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+coa@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+  integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+  dependencies:
+    "@types/q" "^1.5.1"
+    chalk "^2.4.1"
+    q "^1.1.2"
+
+collect-v8-coverage@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
+  integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
+
+color-convert@^1.9.0:
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+  dependencies:
+    color-name "1.1.3"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.1.4, color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+colord@^2.9.1:
+  version "2.9.2"
+  resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
+  integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
+
+colorette@^2.0.10:
+  version "2.0.16"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+  integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
+commander@^2.20.0:
+  version "2.20.3"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
+commander@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
+commander@^8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+  integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
+common-path-prefix@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0"
+  integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==
+
+common-tags@^1.8.0:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
+  integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
+
+commondir@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+  integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+compressible@~2.0.16:
+  version "2.0.18"
+  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+  integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
+  dependencies:
+    mime-db ">= 1.43.0 < 2"
+
+compression@^1.7.4:
+  version "1.7.4"
+  resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+  integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+  dependencies:
+    accepts "~1.3.5"
+    bytes "3.0.0"
+    compressible "~2.0.16"
+    debug "2.6.9"
+    on-headers "~1.0.2"
+    safe-buffer "5.1.2"
+    vary "~1.1.2"
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+confusing-browser-globals@^1.0.11:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
+  integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
+
+connect-history-api-fallback@^1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
+  integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
+
+content-disposition@0.5.4:
+  version "0.5.4"
+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+  integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+  dependencies:
+    safe-buffer "5.2.1"
+
+content-type@~1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
+cookie-signature@1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
+
+cookie@0.4.2:
+  version "0.4.2"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+  integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
+core-js-compat@^3.20.2, core-js-compat@^3.21.0:
+  version "3.21.1"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82"
+  integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==
+  dependencies:
+    browserslist "^4.19.1"
+    semver "7.0.0"
+
+core-js-pure@^3.20.2, core-js-pure@^3.8.1:
+  version "3.21.1"
+  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51"
+  integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==
+
+core-js@^3.19.2:
+  version "3.21.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
+  integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
+
+core-util-is@~1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+cosmiconfig@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+  integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+  dependencies:
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.1.0"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.7.2"
+
+cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
+  integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==
+  dependencies:
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.2.1"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
+
+create-require@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+  integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+crypto-random-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+  integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+css-blank-pseudo@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561"
+  integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+css-declaration-sorter@^6.0.3:
+  version "6.1.4"
+  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4"
+  integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==
+  dependencies:
+    timsort "^0.3.0"
+
+css-has-pseudo@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73"
+  integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+css-loader@^6.5.1:
+  version "6.7.1"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e"
+  integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==
+  dependencies:
+    icss-utils "^5.1.0"
+    postcss "^8.4.7"
+    postcss-modules-extract-imports "^3.0.0"
+    postcss-modules-local-by-default "^4.0.0"
+    postcss-modules-scope "^3.0.0"
+    postcss-modules-values "^4.0.0"
+    postcss-value-parser "^4.2.0"
+    semver "^7.3.5"
+
+css-minimizer-webpack-plugin@^3.2.0:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f"
+  integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==
+  dependencies:
+    cssnano "^5.0.6"
+    jest-worker "^27.0.2"
+    postcss "^8.3.5"
+    schema-utils "^4.0.0"
+    serialize-javascript "^6.0.0"
+    source-map "^0.6.1"
+
+css-prefers-color-scheme@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349"
+  integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
+
+css-select-base-adapter@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+  integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+
+css-select@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+  integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+  dependencies:
+    boolbase "^1.0.0"
+    css-what "^3.2.1"
+    domutils "^1.7.0"
+    nth-check "^1.0.2"
+
+css-select@^4.1.3:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
+  integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
+  dependencies:
+    boolbase "^1.0.0"
+    css-what "^5.1.0"
+    domhandler "^4.3.0"
+    domutils "^2.8.0"
+    nth-check "^2.0.1"
+
+css-tree@1.0.0-alpha.37:
+  version "1.0.0-alpha.37"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+  dependencies:
+    mdn-data "2.0.4"
+    source-map "^0.6.1"
+
+css-tree@^1.1.2, css-tree@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+  dependencies:
+    mdn-data "2.0.14"
+    source-map "^0.6.1"
+
+css-what@^3.2.1:
+  version "3.4.2"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
+  integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+
+css-what@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
+  integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
+
+css.escape@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+  integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
+
+css@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d"
+  integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
+  dependencies:
+    inherits "^2.0.4"
+    source-map "^0.6.1"
+    source-map-resolve "^0.6.0"
+
+cssdb@^6.4.0:
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.4.1.tgz#a2b5955e3283d8df6b6bb86e4107fedaeec1521b"
+  integrity sha512-R70R/Q1fPlM1D6Y+Kpat0QjiY+aMsY2/8lekdVoYcJ7ZQs9kw71W78FdOMf8DFq975KHQf1089PNg1dLsbAhoA==
+
+cssesc@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano-preset-default@^5.2.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.1.tgz#a83b15d3294c69bd1cedd14b0066c2f2357d108e"
+  integrity sha512-Y+CUCS5iZ1uzHn5KtmKIlysQVXrTtLCnYsYTOJcbdd5rghOwtw1gobvEXefBncjGO4fWwGZr9/n9hwZfo6W1Fw==
+  dependencies:
+    css-declaration-sorter "^6.0.3"
+    cssnano-utils "^3.1.0"
+    postcss-calc "^8.2.3"
+    postcss-colormin "^5.3.0"
+    postcss-convert-values "^5.1.0"
+    postcss-discard-comments "^5.1.1"
+    postcss-discard-duplicates "^5.1.0"
+    postcss-discard-empty "^5.1.0"
+    postcss-discard-overridden "^5.1.0"
+    postcss-merge-longhand "^5.1.0"
+    postcss-merge-rules "^5.1.0"
+    postcss-minify-font-values "^5.1.0"
+    postcss-minify-gradients "^5.1.0"
+    postcss-minify-params "^5.1.0"
+    postcss-minify-selectors "^5.2.0"
+    postcss-normalize-charset "^5.1.0"
+    postcss-normalize-display-values "^5.1.0"
+    postcss-normalize-positions "^5.1.0"
+    postcss-normalize-repeat-style "^5.1.0"
+    postcss-normalize-string "^5.1.0"
+    postcss-normalize-timing-functions "^5.1.0"
+    postcss-normalize-unicode "^5.1.0"
+    postcss-normalize-url "^5.1.0"
+    postcss-normalize-whitespace "^5.1.0"
+    postcss-ordered-values "^5.1.0"
+    postcss-reduce-initial "^5.1.0"
+    postcss-reduce-transforms "^5.1.0"
+    postcss-svgo "^5.1.0"
+    postcss-unique-selectors "^5.1.1"
+
+cssnano-utils@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
+  integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
+
+cssnano@^5.0.6:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.1.tgz#2df44d26461b95f699096b6830df5107b1a758f4"
+  integrity sha512-WWfN7jBK/3Uk3oX/jsFbQApDf9DkXj6dOYull5ZaSGskcDggzg3RyDZI4GKKO+00LdfLMEZtY1cwTQUL+YMg2Q==
+  dependencies:
+    cssnano-preset-default "^5.2.1"
+    lilconfig "^2.0.3"
+    yaml "^1.10.2"
+
+csso@^4.0.2, csso@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+  integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+  dependencies:
+    css-tree "^1.1.2"
+
+cssom@^0.4.4:
+  version "0.4.4"
+  resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
+  integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
+
+cssom@~0.3.6:
+  version "0.3.8"
+  resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+  integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+  integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+  dependencies:
+    cssom "~0.3.6"
+
+csstype@^3.0.11, csstype@^3.0.2:
+  version "3.0.11"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
+  integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
+
+damerau-levenshtein@^1.0.7:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
+  integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
+
+data-urls@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
+  integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
+  dependencies:
+    abab "^2.0.3"
+    whatwg-mimetype "^2.3.0"
+    whatwg-url "^8.0.0"
+
+debug@2.6.9, debug@^2.6.0, debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+  dependencies:
+    ms "2.1.2"
+
+debug@^3.1.1, debug@^3.2.7:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+  dependencies:
+    ms "^2.1.1"
+
+decimal.js@^10.2.1:
+  version "10.3.1"
+  resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
+  integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
+
+decode-uri-component@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+dedent@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+  integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
+deep-equal@^1.0.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+  dependencies:
+    is-arguments "^1.0.4"
+    is-date-object "^1.0.1"
+    is-regex "^1.0.4"
+    object-is "^1.0.1"
+    object-keys "^1.1.1"
+    regexp.prototype.flags "^1.2.0"
+
+deep-is@^0.1.3, deep-is@~0.1.3:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^2.1.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
+  integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
+
+deepmerge@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+  integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+default-gateway@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
+  integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
+  dependencies:
+    execa "^5.0.0"
+
+define-lazy-prop@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+  integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
+define-properties@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+  dependencies:
+    object-keys "^1.0.12"
+
+defined@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+
+del@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952"
+  integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
+  dependencies:
+    globby "^11.0.1"
+    graceful-fs "^4.2.4"
+    is-glob "^4.0.1"
+    is-path-cwd "^2.2.0"
+    is-path-inside "^3.0.2"
+    p-map "^4.0.0"
+    rimraf "^3.0.2"
+    slash "^3.0.0"
+
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+depd@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+destroy@~1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+detect-newline@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+  integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+detect-node@^2.0.4:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
+  integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+
+detect-port-alt@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275"
+  integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==
+  dependencies:
+    address "^1.0.1"
+    debug "^2.6.0"
+
+detective@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
+  integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+  dependencies:
+    acorn-node "^1.6.1"
+    defined "^1.0.0"
+    minimist "^1.1.1"
+
+didyoumean@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+  integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
+diff-sequences@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327"
+  integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
+
+diff@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
+dlv@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+  integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
+dns-equal@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+  integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
+
+dns-packet@^1.3.1:
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
+  integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
+  dependencies:
+    ip "^1.1.0"
+    safe-buffer "^5.0.1"
+
+dns-txt@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+  integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
+  dependencies:
+    buffer-indexof "^1.0.0"
+
+doctrine@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+  integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+  dependencies:
+    esutils "^2.0.2"
+
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
+dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
+  version "0.5.13"
+  resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b"
+  integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==
+
+dom-converter@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+  integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
+  dependencies:
+    utila "~0.4"
+
+dom-helpers@^5.0.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+  integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+  dependencies:
+    "@babel/runtime" "^7.8.7"
+    csstype "^3.0.2"
+
+dom-serializer@0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+  integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+  dependencies:
+    domelementtype "^2.0.1"
+    entities "^2.0.0"
+
+dom-serializer@^1.0.1:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
+  integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.2.0"
+    entities "^2.0.0"
+
+domelementtype@1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+
+domelementtype@^2.0.1, domelementtype@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+  integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+
+domexception@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
+  integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
+  dependencies:
+    webidl-conversions "^5.0.0"
+
+domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626"
+  integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
+  dependencies:
+    domelementtype "^2.2.0"
+
+domutils@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+  integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+  dependencies:
+    dom-serializer "0"
+    domelementtype "1"
+
+domutils@^2.5.2, domutils@^2.8.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+  integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+  dependencies:
+    dom-serializer "^1.0.1"
+    domelementtype "^2.2.0"
+    domhandler "^4.2.0"
+
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
+dotenv-expand@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
+  integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+
+dotenv@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
+  integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+
+dotenv@^16.0.0:
+  version "16.0.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411"
+  integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==
+
+duplexer@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+  integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+ee-first@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+ejs@^3.1.6:
+  version "3.1.6"
+  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
+  integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
+  dependencies:
+    jake "^10.6.1"
+
+electron-to-chromium@^1.4.76:
+  version "1.4.77"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.77.tgz#c26e454cb8721d4ebdae3e276c57cd32e51c32ed"
+  integrity sha512-fiDxw8mO9Ph1Z0bjX2sFTPpi0J0QkOiwOJF+5Q0J0baNc/F9lLePAvDPlnoxvbUYYMizqrKPeotRRkJ9LtxAew==
+
+emittery@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
+  integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==
+
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+  version "9.2.2"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+  integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+emojis-list@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+  integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+encodeurl@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+enhanced-resolve@^5.9.2:
+  version "5.9.2"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
+  integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==
+  dependencies:
+    graceful-fs "^4.2.4"
+    tapable "^2.2.0"
+
+entities@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+  integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+error-ex@^1.3.1:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+  dependencies:
+    is-arrayish "^0.2.1"
+
+error-stack-parser@^2.0.6:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57"
+  integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==
+  dependencies:
+    stackframe "^1.1.1"
+
+es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1:
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
+  integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
+  dependencies:
+    call-bind "^1.0.2"
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    get-intrinsic "^1.1.1"
+    get-symbol-description "^1.0.0"
+    has "^1.0.3"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    is-callable "^1.2.4"
+    is-negative-zero "^2.0.1"
+    is-regex "^1.1.4"
+    is-shared-array-buffer "^1.0.1"
+    is-string "^1.0.7"
+    is-weakref "^1.0.1"
+    object-inspect "^1.11.0"
+    object-keys "^1.1.1"
+    object.assign "^4.1.2"
+    string.prototype.trimend "^1.0.4"
+    string.prototype.trimstart "^1.0.4"
+    unbox-primitive "^1.0.1"
+
+es-module-lexer@^0.9.0:
+  version "0.9.3"
+  resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
+  integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
+
+es-to-primitive@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+  dependencies:
+    is-callable "^1.1.4"
+    is-date-object "^1.0.1"
+    is-symbol "^1.0.2"
+
+es6-promise@^3.2.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
+  integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
+
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-html@~1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escape-string-regexp@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+  integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escodegen@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
+  integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
+  dependencies:
+    esprima "^4.0.1"
+    estraverse "^5.2.0"
+    esutils "^2.0.2"
+    optionator "^0.8.1"
+  optionalDependencies:
+    source-map "~0.6.1"
+
+eslint-config-react-app@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz#0fa96d5ec1dfb99c029b1554362ab3fa1c3757df"
+  integrity sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==
+  dependencies:
+    "@babel/core" "^7.16.0"
+    "@babel/eslint-parser" "^7.16.3"
+    "@rushstack/eslint-patch" "^1.1.0"
+    "@typescript-eslint/eslint-plugin" "^5.5.0"
+    "@typescript-eslint/parser" "^5.5.0"
+    babel-preset-react-app "^10.0.1"
+    confusing-browser-globals "^1.0.11"
+    eslint-plugin-flowtype "^8.0.3"
+    eslint-plugin-import "^2.25.3"
+    eslint-plugin-jest "^25.3.0"
+    eslint-plugin-jsx-a11y "^6.5.1"
+    eslint-plugin-react "^7.27.1"
+    eslint-plugin-react-hooks "^4.3.0"
+    eslint-plugin-testing-library "^5.0.1"
+
+eslint-import-resolver-node@^0.3.6:
+  version "0.3.6"
+  resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd"
+  integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==
+  dependencies:
+    debug "^3.2.7"
+    resolve "^1.20.0"
+
+eslint-module-utils@^2.7.2:
+  version "2.7.3"
+  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee"
+  integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==
+  dependencies:
+    debug "^3.2.7"
+    find-up "^2.1.0"
+
+eslint-plugin-flowtype@^8.0.3:
+  version "8.0.3"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912"
+  integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==
+  dependencies:
+    lodash "^4.17.21"
+    string-natural-compare "^3.0.1"
+
+eslint-plugin-import@^2.25.3:
+  version "2.25.4"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1"
+  integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==
+  dependencies:
+    array-includes "^3.1.4"
+    array.prototype.flat "^1.2.5"
+    debug "^2.6.9"
+    doctrine "^2.1.0"
+    eslint-import-resolver-node "^0.3.6"
+    eslint-module-utils "^2.7.2"
+    has "^1.0.3"
+    is-core-module "^2.8.0"
+    is-glob "^4.0.3"
+    minimatch "^3.0.4"
+    object.values "^1.1.5"
+    resolve "^1.20.0"
+    tsconfig-paths "^3.12.0"
+
+eslint-plugin-jest@^25.3.0:
+  version "25.7.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a"
+  integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==
+  dependencies:
+    "@typescript-eslint/experimental-utils" "^5.0.0"
+
+eslint-plugin-jsx-a11y@^6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8"
+  integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==
+  dependencies:
+    "@babel/runtime" "^7.16.3"
+    aria-query "^4.2.2"
+    array-includes "^3.1.4"
+    ast-types-flow "^0.0.7"
+    axe-core "^4.3.5"
+    axobject-query "^2.2.0"
+    damerau-levenshtein "^1.0.7"
+    emoji-regex "^9.2.2"
+    has "^1.0.3"
+    jsx-ast-utils "^3.2.1"
+    language-tags "^1.0.5"
+    minimatch "^3.0.4"
+
+eslint-plugin-react-hooks@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172"
+  integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==
+
+eslint-plugin-react@^7.27.1:
+  version "7.29.3"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.3.tgz#f4eab757f2756d25d6d4c2a58a9e20b004791f05"
+  integrity sha512-MzW6TuCnDOcta67CkpDyRfRsEVx9FNMDV8wZsDqe1luHPdGTrQIUaUXD27Ja3gHsdOIs/cXzNchWGlqm+qRVRg==
+  dependencies:
+    array-includes "^3.1.4"
+    array.prototype.flatmap "^1.2.5"
+    doctrine "^2.1.0"
+    estraverse "^5.3.0"
+    jsx-ast-utils "^2.4.1 || ^3.0.0"
+    minimatch "^3.1.2"
+    object.entries "^1.1.5"
+    object.fromentries "^2.0.5"
+    object.hasown "^1.1.0"
+    object.values "^1.1.5"
+    prop-types "^15.8.1"
+    resolve "^2.0.0-next.3"
+    semver "^6.3.0"
+    string.prototype.matchall "^4.0.6"
+
+eslint-plugin-testing-library@^5.0.1:
+  version "5.0.6"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.6.tgz#86b0aff2ed0c80f63966c2a4894c06bff382b6d5"
+  integrity sha512-mMU4+slZsWKHNxtxc5TE2+bs9S//e2uFPlcpTapPhVdnctgn0+G/DaUu6VbT0JLiVMcbBjy3IcfddK+abZawbw==
+  dependencies:
+    "@typescript-eslint/utils" "^5.13.0"
+
+eslint-scope@5.1.1, eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+eslint-scope@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
+  integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^5.2.0"
+
+eslint-utils@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+  integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
+  dependencies:
+    eslint-visitor-keys "^2.0.0"
+
+eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
+  integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
+
+eslint-webpack-plugin@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz#83dad2395e5f572d6f4d919eedaa9cf902890fcb"
+  integrity sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==
+  dependencies:
+    "@types/eslint" "^7.28.2"
+    jest-worker "^27.3.1"
+    micromatch "^4.0.4"
+    normalize-path "^3.0.0"
+    schema-utils "^3.1.1"
+
+eslint@^8.3.0:
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d"
+  integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==
+  dependencies:
+    "@eslint/eslintrc" "^1.2.0"
+    "@humanwhocodes/config-array" "^0.9.2"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.3.2"
+    doctrine "^3.0.0"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^7.1.1"
+    eslint-utils "^3.0.0"
+    eslint-visitor-keys "^3.3.0"
+    espree "^9.3.1"
+    esquery "^1.4.0"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    functional-red-black-tree "^1.0.1"
+    glob-parent "^6.0.1"
+    globals "^13.6.0"
+    ignore "^5.2.0"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    js-yaml "^4.1.0"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.0.4"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    regexpp "^3.2.0"
+    strip-ansi "^6.0.1"
+    strip-json-comments "^3.1.0"
+    text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
+
+espree@^9.3.1:
+  version "9.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd"
+  integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==
+  dependencies:
+    acorn "^8.7.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^3.3.0"
+
+esprima@^4.0.0, esprima@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+estree-walker@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
+  integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+eta@^1.12.1:
+  version "1.12.3"
+  resolved "https://registry.yarnpkg.com/eta/-/eta-1.12.3.tgz#2982d08adfbef39f9fa50e2fbd42d7337e7338b1"
+  integrity sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==
+
+etag@~1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+eventemitter3@^4.0.0:
+  version "4.0.7"
+  resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+  integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+events@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+execa@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+  dependencies:
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
+    strip-final-newline "^2.0.0"
+
+exit@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+  integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+
+expect@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74"
+  integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    jest-get-type "^27.5.1"
+    jest-matcher-utils "^27.5.1"
+    jest-message-util "^27.5.1"
+
+express@^4.17.1:
+  version "4.17.3"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1"
+  integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==
+  dependencies:
+    accepts "~1.3.8"
+    array-flatten "1.1.1"
+    body-parser "1.19.2"
+    content-disposition "0.5.4"
+    content-type "~1.0.4"
+    cookie "0.4.2"
+    cookie-signature "1.0.6"
+    debug "2.6.9"
+    depd "~1.1.2"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    finalhandler "~1.1.2"
+    fresh "0.5.2"
+    merge-descriptors "1.0.1"
+    methods "~1.1.2"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    path-to-regexp "0.1.7"
+    proxy-addr "~2.0.7"
+    qs "6.9.7"
+    range-parser "~1.2.1"
+    safe-buffer "5.2.1"
+    send "0.17.2"
+    serve-static "1.14.2"
+    setprototypeof "1.2.0"
+    statuses "~1.5.0"
+    type-is "~1.6.18"
+    utils-merge "1.0.1"
+    vary "~1.1.2"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^3.2.11, fast-glob@^3.2.9:
+  version "3.2.11"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
+  integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fast-safe-stringify@^2.0.7:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
+  integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+
+fastq@^1.6.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+  dependencies:
+    reusify "^1.0.4"
+
+faye-websocket@^0.11.3:
+  version "0.11.4"
+  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
+  integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
+  dependencies:
+    websocket-driver ">=0.5.1"
+
+fb-watchman@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+  integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
+  dependencies:
+    bser "2.1.1"
+
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
+file-loader@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
+  integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
+  dependencies:
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+
+filelist@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
+  integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==
+  dependencies:
+    minimatch "^3.0.4"
+
+filesize@^8.0.6:
+  version "8.0.7"
+  resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8"
+  integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+finalhandler@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+  dependencies:
+    debug "2.6.9"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    statuses "~1.5.0"
+    unpipe "~1.0.0"
+
+find-cache-dir@^3.3.1:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+  integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^3.0.2"
+    pkg-dir "^4.1.0"
+
+find-root@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
+find-up@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+  dependencies:
+    locate-path "^2.0.0"
+
+find-up@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+  dependencies:
+    locate-path "^3.0.0"
+
+find-up@^4.0.0, find-up@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
+
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flatted@^3.1.0:
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
+  integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
+
+follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.8:
+  version "1.14.9"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
+  integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
+
+fork-ts-checker-webpack-plugin@^6.5.0:
+  version "6.5.0"
+  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz#0282b335fa495a97e167f69018f566ea7d2a2b5e"
+  integrity sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==
+  dependencies:
+    "@babel/code-frame" "^7.8.3"
+    "@types/json-schema" "^7.0.5"
+    chalk "^4.1.0"
+    chokidar "^3.4.2"
+    cosmiconfig "^6.0.0"
+    deepmerge "^4.2.2"
+    fs-extra "^9.0.0"
+    glob "^7.1.6"
+    memfs "^3.1.2"
+    minimatch "^3.0.4"
+    schema-utils "2.7.0"
+    semver "^7.3.2"
+    tapable "^1.0.0"
+
+form-data@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
+  integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
+formik@^2.2.9:
+  version "2.2.9"
+  resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0"
+  integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==
+  dependencies:
+    deepmerge "^2.1.1"
+    hoist-non-react-statics "^3.3.0"
+    lodash "^4.17.21"
+    lodash-es "^4.17.21"
+    react-fast-compare "^2.0.1"
+    tiny-warning "^1.0.2"
+    tslib "^1.10.0"
+
+forwarded@0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+  integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fraction.js@^4.1.2:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+  integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
+fresh@0.5.2:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+fs-extra@^10.0.0:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8"
+  integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==
+  dependencies:
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
+fs-extra@^9.0.0, fs-extra@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+  dependencies:
+    at-least-node "^1.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
+fs-monkey@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3"
+  integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^2.3.2, fsevents@~2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gensync@^1.0.0-beta.2:
+  version "1.0.0-beta.2"
+  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-own-enumerable-property-symbols@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
+
+get-package-type@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+  integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+get-symbol-description@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
+  integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.1"
+
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-parent@^6.0.1, glob-parent@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+glob-to-regexp@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+  integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+global-modules@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
+  integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
+  dependencies:
+    global-prefix "^3.0.0"
+
+global-prefix@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
+  integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+  dependencies:
+    ini "^1.3.5"
+    kind-of "^6.0.2"
+    which "^1.3.1"
+
+globals@^11.1.0:
+  version "11.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^13.6.0, globals@^13.9.0:
+  version "13.12.1"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb"
+  integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==
+  dependencies:
+    type-fest "^0.20.2"
+
+globby@^11.0.1, globby@^11.0.4:
+  version "11.1.0"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+  integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.2.9"
+    ignore "^5.2.0"
+    merge2 "^1.4.1"
+    slash "^3.0.0"
+
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
+  version "4.2.9"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
+  integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
+
+gzip-size@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
+  integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
+  dependencies:
+    duplexer "^0.1.2"
+
+handle-thing@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+  integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
+
+harmony-reflect@^1.4.6:
+  version "1.6.2"
+  resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710"
+  integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==
+
+has-bigints@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+  integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has-tostringtag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
+  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+  dependencies:
+    has-symbols "^1.0.2"
+
+has@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+  dependencies:
+    function-bind "^1.1.1"
+
+he@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+history@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b"
+  integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==
+  dependencies:
+    "@babel/runtime" "^7.7.6"
+
+hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+  integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+  dependencies:
+    react-is "^16.7.0"
+
+hoopy@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+  integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
+
+hpack.js@^2.1.6:
+  version "2.1.6"
+  resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+  integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
+  dependencies:
+    inherits "^2.0.1"
+    obuf "^1.0.0"
+    readable-stream "^2.0.1"
+    wbuf "^1.1.0"
+
+html-encoding-sniffer@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
+  integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
+  dependencies:
+    whatwg-encoding "^1.0.5"
+
+html-entities@^2.1.0, html-entities@^2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488"
+  integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==
+
+html-escaper@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+  integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+html-minifier-terser@^6.0.2:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
+  integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==
+  dependencies:
+    camel-case "^4.1.2"
+    clean-css "^5.2.2"
+    commander "^8.3.0"
+    he "^1.2.0"
+    param-case "^3.0.4"
+    relateurl "^0.2.7"
+    terser "^5.10.0"
+
+html-webpack-plugin@^5.5.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50"
+  integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==
+  dependencies:
+    "@types/html-minifier-terser" "^6.0.0"
+    html-minifier-terser "^6.0.2"
+    lodash "^4.17.21"
+    pretty-error "^4.0.0"
+    tapable "^2.0.0"
+
+htmlparser2@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
+  integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.0.0"
+    domutils "^2.5.2"
+    entities "^2.0.0"
+
+http-deceiver@^1.2.7:
+  version "1.2.7"
+  resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+  integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
+
+http-errors@1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+  integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.4"
+    setprototypeof "1.2.0"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.1"
+
+http-errors@~1.6.2:
+  version "1.6.3"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+  integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.3"
+    setprototypeof "1.1.0"
+    statuses ">= 1.4.0 < 2"
+
+http-parser-js@>=0.5.1:
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd"
+  integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==
+
+http-proxy-agent@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
+  integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+  dependencies:
+    "@tootallnate/once" "1"
+    agent-base "6"
+    debug "4"
+
+http-proxy-middleware@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz#5df04f69a89f530c2284cd71eeaa51ba52243289"
+  integrity sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==
+  dependencies:
+    "@types/http-proxy" "^1.17.8"
+    http-proxy "^1.18.1"
+    is-glob "^4.0.1"
+    is-plain-obj "^3.0.0"
+    micromatch "^4.0.2"
+
+http-proxy@^1.18.1:
+  version "1.18.1"
+  resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+  integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
+  dependencies:
+    eventemitter3 "^4.0.0"
+    follow-redirects "^1.0.0"
+    requires-port "^1.0.0"
+
+http2-client@^1.2.5:
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181"
+  integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==
+
+https-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  dependencies:
+    agent-base "6"
+    debug "4"
+
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+iconv-lite@0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.6.3:
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+  integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3.0.0"
+
+icss-utils@^5.0.0, icss-utils@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
+  integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
+
+idb@^6.1.4:
+  version "6.1.5"
+  resolved "https://registry.yarnpkg.com/idb/-/idb-6.1.5.tgz#dbc53e7adf1ac7c59f9b2bf56e00b4ea4fce8c7b"
+  integrity sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==
+
+identity-obj-proxy@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14"
+  integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=
+  dependencies:
+    harmony-reflect "^1.4.6"
+
+ignore@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.1.8, ignore@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
+  integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+
+immer@^9.0.7:
+  version "9.0.12"
+  resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.12.tgz#2d33ddf3ee1d247deab9d707ca472c8c942a0f20"
+  integrity sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==
+
+import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
+import-local@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
+  integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
+  dependencies:
+    pkg-dir "^4.2.0"
+    resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+ini@^1.3.5:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+internal-slot@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+  integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+  dependencies:
+    get-intrinsic "^1.1.0"
+    has "^1.0.3"
+    side-channel "^1.0.4"
+
+ip@^1.1.0:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+  integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
+
+ipaddr.js@1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+  integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+ipaddr.js@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0"
+  integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
+
+is-arguments@^1.0.4:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+  integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
+is-arrayish@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-bigint@^1.0.1:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
+  integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+  dependencies:
+    has-bigints "^1.0.1"
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
+is-boolean-object@^1.1.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
+  integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
+is-callable@^1.1.4, is-callable@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
+  integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
+
+is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1:
+  version "2.8.1"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
+  integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+  dependencies:
+    has "^1.0.3"
+
+is-date-object@^1.0.1:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
+  integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
+is-docker@^2.0.0, is-docker@^2.1.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+  integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-generator-fn@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+  integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-module@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
+  integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
+
+is-negative-zero@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
+  integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+
+is-number-object@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
+  integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+
+is-path-cwd@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+  integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
+is-path-inside@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-plain-obj@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
+  integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+
+is-potential-custom-element-name@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+  integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+
+is-regex@^1.0.4, is-regex@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
+  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
+is-regexp@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+
+is-root@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
+  integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
+
+is-shared-array-buffer@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
+  integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
+
+is-stream@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+  integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-string@^1.0.5, is-string@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
+  integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+  dependencies:
+    has-symbols "^1.0.2"
+
+is-typedarray@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-weakref@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+  integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+  dependencies:
+    call-bind "^1.0.2"
+
+is-wsl@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+  dependencies:
+    is-docker "^2.0.0"
+
+isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
+  integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
+
+istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a"
+  integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==
+  dependencies:
+    "@babel/core" "^7.12.3"
+    "@babel/parser" "^7.14.7"
+    "@istanbuljs/schema" "^0.1.2"
+    istanbul-lib-coverage "^3.2.0"
+    semver "^6.3.0"
+
+istanbul-lib-report@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+  integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+  dependencies:
+    istanbul-lib-coverage "^3.0.0"
+    make-dir "^3.0.0"
+    supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+  integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+  dependencies:
+    debug "^4.1.1"
+    istanbul-lib-coverage "^3.0.0"
+    source-map "^0.6.1"
+
+istanbul-reports@^3.1.3:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c"
+  integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
+  dependencies:
+    html-escaper "^2.0.0"
+    istanbul-lib-report "^3.0.0"
+
+jake@^10.6.1:
+  version "10.8.2"
+  resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
+  integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
+  dependencies:
+    async "0.9.x"
+    chalk "^2.4.2"
+    filelist "^1.0.1"
+    minimatch "^3.0.4"
+
+jest-changed-files@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5"
+  integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    execa "^5.0.0"
+    throat "^6.0.1"
+
+jest-circus@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc"
+  integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    co "^4.6.0"
+    dedent "^0.7.0"
+    expect "^27.5.1"
+    is-generator-fn "^2.0.0"
+    jest-each "^27.5.1"
+    jest-matcher-utils "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-runtime "^27.5.1"
+    jest-snapshot "^27.5.1"
+    jest-util "^27.5.1"
+    pretty-format "^27.5.1"
+    slash "^3.0.0"
+    stack-utils "^2.0.3"
+    throat "^6.0.1"
+
+jest-cli@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145"
+  integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==
+  dependencies:
+    "@jest/core" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    chalk "^4.0.0"
+    exit "^0.1.2"
+    graceful-fs "^4.2.9"
+    import-local "^3.0.2"
+    jest-config "^27.5.1"
+    jest-util "^27.5.1"
+    jest-validate "^27.5.1"
+    prompts "^2.0.1"
+    yargs "^16.2.0"
+
+jest-config@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41"
+  integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==
+  dependencies:
+    "@babel/core" "^7.8.0"
+    "@jest/test-sequencer" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    babel-jest "^27.5.1"
+    chalk "^4.0.0"
+    ci-info "^3.2.0"
+    deepmerge "^4.2.2"
+    glob "^7.1.1"
+    graceful-fs "^4.2.9"
+    jest-circus "^27.5.1"
+    jest-environment-jsdom "^27.5.1"
+    jest-environment-node "^27.5.1"
+    jest-get-type "^27.5.1"
+    jest-jasmine2 "^27.5.1"
+    jest-regex-util "^27.5.1"
+    jest-resolve "^27.5.1"
+    jest-runner "^27.5.1"
+    jest-util "^27.5.1"
+    jest-validate "^27.5.1"
+    micromatch "^4.0.4"
+    parse-json "^5.2.0"
+    pretty-format "^27.5.1"
+    slash "^3.0.0"
+    strip-json-comments "^3.1.1"
+
+jest-diff@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def"
+  integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==
+  dependencies:
+    chalk "^4.0.0"
+    diff-sequences "^27.5.1"
+    jest-get-type "^27.5.1"
+    pretty-format "^27.5.1"
+
+jest-docblock@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0"
+  integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==
+  dependencies:
+    detect-newline "^3.0.0"
+
+jest-each@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e"
+  integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    chalk "^4.0.0"
+    jest-get-type "^27.5.1"
+    jest-util "^27.5.1"
+    pretty-format "^27.5.1"
+
+jest-environment-jsdom@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546"
+  integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/fake-timers" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    jest-mock "^27.5.1"
+    jest-util "^27.5.1"
+    jsdom "^16.6.0"
+
+jest-environment-node@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e"
+  integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/fake-timers" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    jest-mock "^27.5.1"
+    jest-util "^27.5.1"
+
+jest-get-type@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1"
+  integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
+
+jest-haste-map@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f"
+  integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    "@types/graceful-fs" "^4.1.2"
+    "@types/node" "*"
+    anymatch "^3.0.3"
+    fb-watchman "^2.0.0"
+    graceful-fs "^4.2.9"
+    jest-regex-util "^27.5.1"
+    jest-serializer "^27.5.1"
+    jest-util "^27.5.1"
+    jest-worker "^27.5.1"
+    micromatch "^4.0.4"
+    walker "^1.0.7"
+  optionalDependencies:
+    fsevents "^2.3.2"
+
+jest-jasmine2@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4"
+  integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/source-map" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    co "^4.6.0"
+    expect "^27.5.1"
+    is-generator-fn "^2.0.0"
+    jest-each "^27.5.1"
+    jest-matcher-utils "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-runtime "^27.5.1"
+    jest-snapshot "^27.5.1"
+    jest-util "^27.5.1"
+    pretty-format "^27.5.1"
+    throat "^6.0.1"
+
+jest-leak-detector@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8"
+  integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==
+  dependencies:
+    jest-get-type "^27.5.1"
+    pretty-format "^27.5.1"
+
+jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab"
+  integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==
+  dependencies:
+    chalk "^4.0.0"
+    jest-diff "^27.5.1"
+    jest-get-type "^27.5.1"
+    pretty-format "^27.5.1"
+
+jest-message-util@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf"
+  integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@jest/types" "^27.5.1"
+    "@types/stack-utils" "^2.0.0"
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    micromatch "^4.0.4"
+    pretty-format "^27.5.1"
+    slash "^3.0.0"
+    stack-utils "^2.0.3"
+
+jest-mock@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6"
+  integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+
+jest-pnp-resolver@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
+  integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
+
+jest-regex-util@^27.0.0, jest-regex-util@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95"
+  integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==
+
+jest-resolve-dependencies@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8"
+  integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    jest-regex-util "^27.5.1"
+    jest-snapshot "^27.5.1"
+
+jest-resolve@^27.4.2, jest-resolve@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384"
+  integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    chalk "^4.0.0"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^27.5.1"
+    jest-pnp-resolver "^1.2.2"
+    jest-util "^27.5.1"
+    jest-validate "^27.5.1"
+    resolve "^1.20.0"
+    resolve.exports "^1.1.0"
+    slash "^3.0.0"
+
+jest-runner@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5"
+  integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==
+  dependencies:
+    "@jest/console" "^27.5.1"
+    "@jest/environment" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    emittery "^0.8.1"
+    graceful-fs "^4.2.9"
+    jest-docblock "^27.5.1"
+    jest-environment-jsdom "^27.5.1"
+    jest-environment-node "^27.5.1"
+    jest-haste-map "^27.5.1"
+    jest-leak-detector "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-resolve "^27.5.1"
+    jest-runtime "^27.5.1"
+    jest-util "^27.5.1"
+    jest-worker "^27.5.1"
+    source-map-support "^0.5.6"
+    throat "^6.0.1"
+
+jest-runtime@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af"
+  integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==
+  dependencies:
+    "@jest/environment" "^27.5.1"
+    "@jest/fake-timers" "^27.5.1"
+    "@jest/globals" "^27.5.1"
+    "@jest/source-map" "^27.5.1"
+    "@jest/test-result" "^27.5.1"
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    chalk "^4.0.0"
+    cjs-module-lexer "^1.0.0"
+    collect-v8-coverage "^1.0.0"
+    execa "^5.0.0"
+    glob "^7.1.3"
+    graceful-fs "^4.2.9"
+    jest-haste-map "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-mock "^27.5.1"
+    jest-regex-util "^27.5.1"
+    jest-resolve "^27.5.1"
+    jest-snapshot "^27.5.1"
+    jest-util "^27.5.1"
+    slash "^3.0.0"
+    strip-bom "^4.0.0"
+
+jest-serializer@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64"
+  integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==
+  dependencies:
+    "@types/node" "*"
+    graceful-fs "^4.2.9"
+
+jest-snapshot@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1"
+  integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==
+  dependencies:
+    "@babel/core" "^7.7.2"
+    "@babel/generator" "^7.7.2"
+    "@babel/plugin-syntax-typescript" "^7.7.2"
+    "@babel/traverse" "^7.7.2"
+    "@babel/types" "^7.0.0"
+    "@jest/transform" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/babel__traverse" "^7.0.4"
+    "@types/prettier" "^2.1.5"
+    babel-preset-current-node-syntax "^1.0.0"
+    chalk "^4.0.0"
+    expect "^27.5.1"
+    graceful-fs "^4.2.9"
+    jest-diff "^27.5.1"
+    jest-get-type "^27.5.1"
+    jest-haste-map "^27.5.1"
+    jest-matcher-utils "^27.5.1"
+    jest-message-util "^27.5.1"
+    jest-util "^27.5.1"
+    natural-compare "^1.4.0"
+    pretty-format "^27.5.1"
+    semver "^7.3.2"
+
+jest-util@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9"
+  integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    ci-info "^3.2.0"
+    graceful-fs "^4.2.9"
+    picomatch "^2.2.3"
+
+jest-validate@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067"
+  integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==
+  dependencies:
+    "@jest/types" "^27.5.1"
+    camelcase "^6.2.0"
+    chalk "^4.0.0"
+    jest-get-type "^27.5.1"
+    leven "^3.1.0"
+    pretty-format "^27.5.1"
+
+jest-watch-typeahead@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz#4de2ca1eb596acb1889752afbab84b74fcd99173"
+  integrity sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==
+  dependencies:
+    ansi-escapes "^4.3.1"
+    chalk "^4.0.0"
+    jest-regex-util "^27.0.0"
+    jest-watcher "^27.0.0"
+    slash "^4.0.0"
+    string-length "^5.0.1"
+    strip-ansi "^7.0.1"
+
+jest-watcher@^27.0.0, jest-watcher@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2"
+  integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==
+  dependencies:
+    "@jest/test-result" "^27.5.1"
+    "@jest/types" "^27.5.1"
+    "@types/node" "*"
+    ansi-escapes "^4.2.1"
+    chalk "^4.0.0"
+    jest-util "^27.5.1"
+    string-length "^4.0.1"
+
+jest-worker@^26.2.1:
+  version "26.6.2"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+  integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^7.0.0"
+
+jest-worker@^27.0.2, jest-worker@^27.3.1, jest-worker@^27.4.5, jest-worker@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
+  integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^8.0.0"
+
+jest@^27.4.3:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc"
+  integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==
+  dependencies:
+    "@jest/core" "^27.5.1"
+    import-local "^3.0.2"
+    jest-cli "^27.5.1"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+  version "3.14.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
+js-yaml@^4.0.0, js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+jsdom@^16.6.0:
+  version "16.7.0"
+  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710"
+  integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==
+  dependencies:
+    abab "^2.0.5"
+    acorn "^8.2.4"
+    acorn-globals "^6.0.0"
+    cssom "^0.4.4"
+    cssstyle "^2.3.0"
+    data-urls "^2.0.0"
+    decimal.js "^10.2.1"
+    domexception "^2.0.1"
+    escodegen "^2.0.0"
+    form-data "^3.0.0"
+    html-encoding-sniffer "^2.0.1"
+    http-proxy-agent "^4.0.1"
+    https-proxy-agent "^5.0.0"
+    is-potential-custom-element-name "^1.0.1"
+    nwsapi "^2.2.0"
+    parse5 "6.0.1"
+    saxes "^5.0.1"
+    symbol-tree "^3.2.4"
+    tough-cookie "^4.0.0"
+    w3c-hr-time "^1.0.2"
+    w3c-xmlserializer "^2.0.0"
+    webidl-conversions "^6.1.0"
+    whatwg-encoding "^1.0.5"
+    whatwg-mimetype "^2.3.0"
+    whatwg-url "^8.5.0"
+    ws "^7.4.6"
+    xml-name-validator "^3.0.0"
+
+jsesc@^2.5.1:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+  integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-parse-better-errors@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+  integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json-schema@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+  integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json5@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+  integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+  dependencies:
+    minimist "^1.2.0"
+
+json5@^2.1.2, json5@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+  dependencies:
+    universalify "^2.0.0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
+jsonpointer@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072"
+  integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
+  integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
+  dependencies:
+    array-includes "^3.1.3"
+    object.assign "^4.1.2"
+
+jwt-decode@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59"
+  integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==
+
+kind-of@^6.0.2:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+kleur@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+  integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+klona@^2.0.4, klona@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
+  integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
+
+language-subtag-registry@~0.3.2:
+  version "0.3.21"
+  resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
+  integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==
+
+language-tags@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
+  integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
+  dependencies:
+    language-subtag-registry "~0.3.2"
+
+leven@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+  integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+levn@~0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+  dependencies:
+    prelude-ls "~1.1.2"
+    type-check "~0.3.2"
+
+lilconfig@^2.0.3, lilconfig@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
+  integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
+
+lines-and-columns@^1.1.6:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+  integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+loader-runner@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
+  integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
+
+loader-utils@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+  integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^1.0.1"
+
+loader-utils@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
+  integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^2.1.2"
+
+loader-utils@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.0.tgz#bcecc51a7898bee7473d4bc6b845b23af8304d4f"
+  integrity sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==
+
+locate-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+  dependencies:
+    p-locate "^2.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+  dependencies:
+    p-locate "^3.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+  dependencies:
+    p-locate "^4.1.0"
+
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
+lodash-es@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+  integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+lodash.debounce@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+  integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.memoize@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+  integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.sortby@^4.7.0:
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+  integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+
+lodash.uniq@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
+
+lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+loose-envify@^1.1.0, loose-envify@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+  dependencies:
+    js-tokens "^3.0.0 || ^4.0.0"
+
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+  dependencies:
+    tslib "^2.0.3"
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+lz-string@^1.4.4:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
+  integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=
+
+magic-string@^0.25.0, magic-string@^0.25.7:
+  version "0.25.9"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
+  integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
+  dependencies:
+    sourcemap-codec "^1.4.8"
+
+make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
+make-error@^1.1.1:
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+  integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+makeerror@1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+  integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+  dependencies:
+    tmpl "1.0.5"
+
+mdn-data@2.0.14:
+  version "2.0.14"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+  integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
+mdn-data@2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+  integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+
+media-typer@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+memfs@^3.1.2, memfs@^3.4.1:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305"
+  integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==
+  dependencies:
+    fs-monkey "1.0.3"
+
+merge-descriptors@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+methods@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+micromatch@^4.0.2, micromatch@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
+mime-db@1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+
+"mime-db@>= 1.43.0 < 2":
+  version "1.52.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+  dependencies:
+    mime-db "1.51.0"
+
+mime@1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+min-indent@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+  integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
+mini-css-extract-plugin@^2.4.5:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e"
+  integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==
+  dependencies:
+    schema-utils "^4.0.0"
+
+minimalistic-assert@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimatch@3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimatch@^3.0.4, minimatch@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mkdirp@^0.5.5, mkdirp@~0.5.1:
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+  dependencies:
+    minimist "^1.2.5"
+
+ms@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3, ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+multicast-dns-service-types@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+  integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
+
+multicast-dns@^6.0.1:
+  version "6.2.3"
+  resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+  integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
+  dependencies:
+    dns-packet "^1.3.1"
+    thunky "^1.0.2"
+
+nanoclone@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4"
+  integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==
+
+nanoid@^3.1.22, nanoid@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
+  integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
+
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+negotiator@0.6.3:
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+  integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+neo-async@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+  dependencies:
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
+
+node-emoji@^1.10.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c"
+  integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==
+  dependencies:
+    lodash "^4.17.21"
+
+node-fetch-h2@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac"
+  integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==
+  dependencies:
+    http2-client "^1.2.5"
+
+node-fetch@^2.6.1:
+  version "2.6.7"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+  integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+  dependencies:
+    whatwg-url "^5.0.0"
+
+node-forge@^1.2.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c"
+  integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==
+
+node-int64@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+  integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
+
+node-readfiles@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/node-readfiles/-/node-readfiles-0.2.0.tgz#dbbd4af12134e2e635c245ef93ffcf6f60673a5d"
+  integrity sha1-271K8SE04uY1wkXvk//Pb2BnOl0=
+  dependencies:
+    es6-promise "^3.2.1"
+
+node-releases@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
+  integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+  integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+normalize-url@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+  integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
+
+npm-run-path@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+  dependencies:
+    path-key "^3.0.0"
+
+nth-check@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+  dependencies:
+    boolbase "~1.0.0"
+
+nth-check@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
+  integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
+  dependencies:
+    boolbase "^1.0.0"
+
+nwsapi@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+  integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
+
+oas-kit-common@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535"
+  integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==
+  dependencies:
+    fast-safe-stringify "^2.0.7"
+
+oas-linter@^3.2.2:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e"
+  integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==
+  dependencies:
+    "@exodus/schemasafe" "^1.0.0-rc.2"
+    should "^13.2.1"
+    yaml "^1.10.0"
+
+oas-resolver@^2.5.6:
+  version "2.5.6"
+  resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b"
+  integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==
+  dependencies:
+    node-fetch-h2 "^2.3.0"
+    oas-kit-common "^1.0.8"
+    reftools "^1.1.9"
+    yaml "^1.10.0"
+    yargs "^17.0.1"
+
+oas-schema-walker@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22"
+  integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==
+
+oas-validator@^5.0.8:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28"
+  integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==
+  dependencies:
+    call-me-maybe "^1.0.1"
+    oas-kit-common "^1.0.8"
+    oas-linter "^3.2.2"
+    oas-resolver "^2.5.6"
+    oas-schema-walker "^1.1.5"
+    reftools "^1.1.9"
+    should "^13.2.1"
+    yaml "^1.10.0"
+
+object-assign@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-hash@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
+  integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+
+object-inspect@^1.11.0, object-inspect@^1.9.0:
+  version "1.12.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
+  integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
+
+object-is@^1.0.1:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+  integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.0, object.assign@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
+
+object.entries@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
+  integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.fromentries@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
+  integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.getownpropertydescriptors@^2.1.0:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e"
+  integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.hasown@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"
+  integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+object.values@^1.1.0, object.values@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+  integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+
+obuf@^1.0.0, obuf@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+  integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
+
+on-finished@~2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+  dependencies:
+    ee-first "1.1.1"
+
+on-headers@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+  integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
+once@^1.3.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  dependencies:
+    wrappy "1"
+
+onetime@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+  dependencies:
+    mimic-fn "^2.1.0"
+
+open@^8.0.9, open@^8.4.0:
+  version "8.4.0"
+  resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
+  integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
+  dependencies:
+    define-lazy-prop "^2.0.0"
+    is-docker "^2.1.1"
+    is-wsl "^2.2.0"
+
+optionator@^0.8.1:
+  version "0.8.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+  dependencies:
+    deep-is "~0.1.3"
+    fast-levenshtein "~2.0.6"
+    levn "~0.3.0"
+    prelude-ls "~1.1.2"
+    type-check "~0.3.2"
+    word-wrap "~1.2.3"
+
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+  dependencies:
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
+
+p-limit@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+  dependencies:
+    p-try "^1.0.0"
+
+p-limit@^2.0.0, p-limit@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+  dependencies:
+    p-try "^2.0.0"
+
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+  dependencies:
+    p-limit "^1.1.0"
+
+p-locate@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+  dependencies:
+    p-limit "^2.0.0"
+
+p-locate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+  dependencies:
+    p-limit "^2.2.0"
+
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+p-map@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-retry@^4.5.0:
+  version "4.6.1"
+  resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c"
+  integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==
+  dependencies:
+    "@types/retry" "^0.12.0"
+    retry "^0.13.1"
+
+p-try@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+param-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+  integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+parse-json@^5.0.0, parse-json@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    error-ex "^1.3.1"
+    json-parse-even-better-errors "^2.3.0"
+    lines-and-columns "^1.1.6"
+
+parse5@6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+  integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+
+parseurl@~1.3.2, parseurl@~1.3.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascal-case@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
+path-exists@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^3.0.0, path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6, path-parse@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-to-regexp@0.1.7:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+performance-now@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
+picocolors@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
+  integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pirates@^4.0.4:
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
+  integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+  dependencies:
+    find-up "^4.0.0"
+
+pkg-up@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
+  integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
+  dependencies:
+    find-up "^3.0.0"
+
+portfinder@^1.0.28:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
+  integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
+  dependencies:
+    async "^2.6.2"
+    debug "^3.1.1"
+    mkdirp "^0.5.5"
+
+postcss-attribute-case-insensitive@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz#39cbf6babf3ded1e4abf37d09d6eda21c644105c"
+  integrity sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==
+  dependencies:
+    postcss-selector-parser "^6.0.2"
+
+postcss-browser-comments@^4:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a"
+  integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==
+
+postcss-calc@^8.2.3:
+  version "8.2.4"
+  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
+  integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+    postcss-value-parser "^4.2.0"
+
+postcss-color-functional-notation@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz#f59ccaeb4ee78f1b32987d43df146109cc743073"
+  integrity sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-color-hex-alpha@^8.0.3:
+  version "8.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz#61a0fd151d28b128aa6a8a21a2dad24eebb34d52"
+  integrity sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-color-rebeccapurple@^7.0.2:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079"
+  integrity sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-colormin@^5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a"
+  integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==
+  dependencies:
+    browserslist "^4.16.6"
+    caniuse-api "^3.0.0"
+    colord "^2.9.1"
+    postcss-value-parser "^4.2.0"
+
+postcss-convert-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz#f8d3abe40b4ce4b1470702a0706343eac17e7c10"
+  integrity sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-custom-media@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1"
+  integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==
+
+postcss-custom-properties@^12.1.4:
+  version "12.1.4"
+  resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz#e3d8a8000f28094453b836dff5132385f2862285"
+  integrity sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-custom-selectors@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz#022839e41fbf71c47ae6e316cb0e6213012df5ef"
+  integrity sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==
+  dependencies:
+    postcss-selector-parser "^6.0.4"
+
+postcss-dir-pseudo-class@^6.0.4:
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz#9afe49ea631f0cb36fa0076e7c2feb4e7e3f049c"
+  integrity sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+postcss-discard-comments@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz#e90019e1a0e5b99de05f63516ce640bd0df3d369"
+  integrity sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==
+
+postcss-discard-duplicates@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
+  integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
+
+postcss-discard-empty@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz#7f51b16cd1b89f8180bbc7cee34d6cbabf2ef810"
+  integrity sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA==
+
+postcss-discard-overridden@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
+  integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
+
+postcss-double-position-gradients@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz#a12cfdb7d11fa1a99ccecc747f0c19718fb37152"
+  integrity sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==
+  dependencies:
+    "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-env-function@^4.0.5:
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.5.tgz#b9614d50abd91e4c88a114644a9766880dabe393"
+  integrity sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-flexbugs-fixes@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d"
+  integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==
+
+postcss-focus-visible@^6.0.4:
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e"
+  integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+postcss-focus-within@^5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20"
+  integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+postcss-font-variant@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66"
+  integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==
+
+postcss-gap-properties@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz#6401bb2f67d9cf255d677042928a70a915e6ba60"
+  integrity sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==
+
+postcss-image-set-function@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz#bcff2794efae778c09441498f40e0c77374870a9"
+  integrity sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-initial@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42"
+  integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==
+
+postcss-js@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
+  integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
+  dependencies:
+    camelcase-css "^2.0.1"
+
+postcss-lab-function@^4.1.1:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz#b75afe43ba9c1f16bfe9bb12c8109cabd55b5fc2"
+  integrity sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==
+  dependencies:
+    "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-load-config@^3.1.0:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23"
+  integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==
+  dependencies:
+    lilconfig "^2.0.4"
+    yaml "^1.10.2"
+
+postcss-loader@^6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef"
+  integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==
+  dependencies:
+    cosmiconfig "^7.0.0"
+    klona "^2.0.5"
+    semver "^7.3.5"
+
+postcss-logical@^5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73"
+  integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==
+
+postcss-media-minmax@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5"
+  integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==
+
+postcss-merge-longhand@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz#f716bffbf0bdfbde6ea78c36088e21559f8a0a95"
+  integrity sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+    stylehacks "^5.1.0"
+
+postcss-merge-rules@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f"
+  integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==
+  dependencies:
+    browserslist "^4.16.6"
+    caniuse-api "^3.0.0"
+    cssnano-utils "^3.1.0"
+    postcss-selector-parser "^6.0.5"
+
+postcss-minify-font-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
+  integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-minify-gradients@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377"
+  integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==
+  dependencies:
+    colord "^2.9.1"
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-minify-params@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz#e0b1f4e05cfd396682f612856485907e4064f25e"
+  integrity sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg==
+  dependencies:
+    browserslist "^4.16.6"
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-minify-selectors@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c"
+  integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==
+  dependencies:
+    postcss-selector-parser "^6.0.5"
+
+postcss-modules-extract-imports@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
+  integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
+
+postcss-modules-local-by-default@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
+  integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
+  dependencies:
+    icss-utils "^5.0.0"
+    postcss-selector-parser "^6.0.2"
+    postcss-value-parser "^4.1.0"
+
+postcss-modules-scope@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
+  integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
+  dependencies:
+    postcss-selector-parser "^6.0.4"
+
+postcss-modules-values@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
+  integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
+  dependencies:
+    icss-utils "^5.0.0"
+
+postcss-nested@5.0.6:
+  version "5.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
+  integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
+  dependencies:
+    postcss-selector-parser "^6.0.6"
+
+postcss-nesting@^10.1.2:
+  version "10.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.3.tgz#f0b1cd7ae675c697ab6a5a5ca1feea4784a2ef77"
+  integrity sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+postcss-normalize-charset@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
+  integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
+
+postcss-normalize-display-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
+  integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-positions@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458"
+  integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-repeat-style@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398"
+  integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-string@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
+  integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-timing-functions@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
+  integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-unicode@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75"
+  integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==
+  dependencies:
+    browserslist "^4.16.6"
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-url@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
+  integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
+  dependencies:
+    normalize-url "^6.0.1"
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize-whitespace@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz#aed8b4580c9ad6e8eac034177291187ea16a059c"
+  integrity sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-normalize@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7"
+  integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==
+  dependencies:
+    "@csstools/normalize.css" "*"
+    postcss-browser-comments "^4"
+    sanitize.css "*"
+
+postcss-opacity-percentage@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz#bd698bb3670a0a27f6d657cc16744b3ebf3b1145"
+  integrity sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==
+
+postcss-ordered-values@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f"
+  integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==
+  dependencies:
+    cssnano-utils "^3.1.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-overflow-shorthand@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz#ebcfc0483a15bbf1b27fdd9b3c10125372f4cbc2"
+  integrity sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==
+
+postcss-page-break@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f"
+  integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==
+
+postcss-place@^7.0.4:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.4.tgz#eb026650b7f769ae57ca4f938c1addd6be2f62c9"
+  integrity sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-preset-env@^7.0.1:
+  version "7.4.2"
+  resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz#2ff3e4787bd9d89710659535855d6ce85ce6110b"
+  integrity sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA==
+  dependencies:
+    "@csstools/postcss-color-function" "^1.0.2"
+    "@csstools/postcss-font-format-keywords" "^1.0.0"
+    "@csstools/postcss-hwb-function" "^1.0.0"
+    "@csstools/postcss-ic-unit" "^1.0.0"
+    "@csstools/postcss-is-pseudo-class" "^2.0.0"
+    "@csstools/postcss-normalize-display-values" "^1.0.0"
+    "@csstools/postcss-oklab-function" "^1.0.1"
+    "@csstools/postcss-progressive-custom-properties" "^1.2.0"
+    autoprefixer "^10.4.2"
+    browserslist "^4.19.3"
+    css-blank-pseudo "^3.0.3"
+    css-has-pseudo "^3.0.4"
+    css-prefers-color-scheme "^6.0.3"
+    cssdb "^6.4.0"
+    postcss-attribute-case-insensitive "^5.0.0"
+    postcss-color-functional-notation "^4.2.2"
+    postcss-color-hex-alpha "^8.0.3"
+    postcss-color-rebeccapurple "^7.0.2"
+    postcss-custom-media "^8.0.0"
+    postcss-custom-properties "^12.1.4"
+    postcss-custom-selectors "^6.0.0"
+    postcss-dir-pseudo-class "^6.0.4"
+    postcss-double-position-gradients "^3.1.0"
+    postcss-env-function "^4.0.5"
+    postcss-focus-visible "^6.0.4"
+    postcss-focus-within "^5.0.4"
+    postcss-font-variant "^5.0.0"
+    postcss-gap-properties "^3.0.3"
+    postcss-image-set-function "^4.0.6"
+    postcss-initial "^4.0.1"
+    postcss-lab-function "^4.1.1"
+    postcss-logical "^5.0.4"
+    postcss-media-minmax "^5.0.0"
+    postcss-nesting "^10.1.2"
+    postcss-opacity-percentage "^1.1.2"
+    postcss-overflow-shorthand "^3.0.3"
+    postcss-page-break "^3.0.4"
+    postcss-place "^7.0.4"
+    postcss-pseudo-class-any-link "^7.1.1"
+    postcss-replace-overflow-wrap "^4.0.0"
+    postcss-selector-not "^5.0.0"
+    postcss-value-parser "^4.2.0"
+
+postcss-pseudo-class-any-link@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz#534eb1dadd9945eb07830dbcc06fb4d5d865b8e0"
+  integrity sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==
+  dependencies:
+    postcss-selector-parser "^6.0.9"
+
+postcss-reduce-initial@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6"
+  integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==
+  dependencies:
+    browserslist "^4.16.6"
+    caniuse-api "^3.0.0"
+
+postcss-reduce-transforms@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
+  integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+
+postcss-replace-overflow-wrap@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319"
+  integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==
+
+postcss-selector-not@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz#ac5fc506f7565dd872f82f5314c0f81a05630dc7"
+  integrity sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==
+  dependencies:
+    balanced-match "^1.0.0"
+
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
+  version "6.0.9"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
+  integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
+  dependencies:
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
+
+postcss-svgo@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
+  integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
+  dependencies:
+    postcss-value-parser "^4.2.0"
+    svgo "^2.7.0"
+
+postcss-unique-selectors@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
+  integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
+  dependencies:
+    postcss-selector-parser "^6.0.5"
+
+postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@^7.0.35:
+  version "7.0.39"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309"
+  integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
+  dependencies:
+    picocolors "^0.2.1"
+    source-map "^0.6.1"
+
+postcss@^8.3.5, postcss@^8.4.4, postcss@^8.4.6, postcss@^8.4.7:
+  version "8.4.8"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032"
+  integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==
+  dependencies:
+    nanoid "^3.3.1"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prelude-ls@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+prettier@^2.2.1:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4"
+  integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==
+
+pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
+  integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
+
+pretty-error@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
+  integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==
+  dependencies:
+    lodash "^4.17.20"
+    renderkid "^3.0.0"
+
+pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1:
+  version "27.5.1"
+  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+  integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
+  dependencies:
+    ansi-regex "^5.0.1"
+    ansi-styles "^5.0.0"
+    react-is "^17.0.1"
+
+process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+promise@^8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
+  integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
+  dependencies:
+    asap "~2.0.6"
+
+prompts@^2.0.1, prompts@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+  integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+  dependencies:
+    kleur "^3.0.3"
+    sisteransi "^1.0.5"
+
+prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
+  version "15.8.1"
+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+  integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+  dependencies:
+    loose-envify "^1.4.0"
+    object-assign "^4.1.1"
+    react-is "^16.13.1"
+
+property-expr@^2.0.4:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4"
+  integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==
+
+proxy-addr@~2.0.7:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+  integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+  dependencies:
+    forwarded "0.2.0"
+    ipaddr.js "1.9.1"
+
+psl@^1.1.33:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+  integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+punycode@^2.1.0, punycode@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+q@^1.1.2:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+  integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+
+qs@6.9.7:
+  version "6.9.7"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
+  integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
+
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+  integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+raf@^3.4.1:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
+  integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
+  dependencies:
+    performance-now "^2.1.0"
+
+randombytes@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+  dependencies:
+    safe-buffer "^5.1.0"
+
+range-parser@^1.2.1, range-parser@~1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.3:
+  version "2.4.3"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c"
+  integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
+  dependencies:
+    bytes "3.1.2"
+    http-errors "1.8.1"
+    iconv-lite "0.4.24"
+    unpipe "1.0.0"
+
+react-app-polyfill@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7"
+  integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==
+  dependencies:
+    core-js "^3.19.2"
+    object-assign "^4.1.1"
+    promise "^8.1.0"
+    raf "^3.4.1"
+    regenerator-runtime "^0.13.9"
+    whatwg-fetch "^3.6.2"
+
+react-dev-utils@^12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.0.tgz#4eab12cdb95692a077616770b5988f0adf806526"
+  integrity sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==
+  dependencies:
+    "@babel/code-frame" "^7.16.0"
+    address "^1.1.2"
+    browserslist "^4.18.1"
+    chalk "^4.1.2"
+    cross-spawn "^7.0.3"
+    detect-port-alt "^1.1.6"
+    escape-string-regexp "^4.0.0"
+    filesize "^8.0.6"
+    find-up "^5.0.0"
+    fork-ts-checker-webpack-plugin "^6.5.0"
+    global-modules "^2.0.0"
+    globby "^11.0.4"
+    gzip-size "^6.0.0"
+    immer "^9.0.7"
+    is-root "^2.1.0"
+    loader-utils "^3.2.0"
+    open "^8.4.0"
+    pkg-up "^3.1.0"
+    prompts "^2.4.2"
+    react-error-overlay "^6.0.10"
+    recursive-readdir "^2.2.2"
+    shell-quote "^1.7.3"
+    strip-ansi "^6.0.1"
+    text-table "^0.2.0"
+
+react-dom@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
+  integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+    scheduler "^0.20.2"
+
+react-error-overlay@^6.0.10:
+  version "6.0.10"
+  resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.10.tgz#0fe26db4fa85d9dbb8624729580e90e7159a59a6"
+  integrity sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==
+
+react-fast-compare@^2.0.1:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
+  integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
+
+react-is@^16.13.1, react-is@^16.7.0:
+  version "16.13.1"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-is@^17.0.1, react-is@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+  integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-redux@^7.2.6:
+  version "7.2.8"
+  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de"
+  integrity sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==
+  dependencies:
+    "@babel/runtime" "^7.15.4"
+    "@types/react-redux" "^7.1.20"
+    hoist-non-react-statics "^3.3.2"
+    loose-envify "^1.4.0"
+    prop-types "^15.7.2"
+    react-is "^17.0.2"
+
+react-refresh@^0.11.0:
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046"
+  integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==
+
+react-router-dom@^6.2.2:
+  version "6.2.2"
+  resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.2.2.tgz#f1a2c88365593c76b9612ae80154a13fcb72e442"
+  integrity sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==
+  dependencies:
+    history "^5.2.0"
+    react-router "6.2.2"
+
+react-router@6.2.2:
+  version "6.2.2"
+  resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.2.2.tgz#495e683a0c04461eeb3d705fe445d6cf42f0c249"
+  integrity sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==
+  dependencies:
+    history "^5.2.0"
+
+react-scripts@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.0.tgz#6547a6d7f8b64364ef95273767466cc577cb4b60"
+  integrity sha512-3i0L2CyIlROz7mxETEdfif6Sfhh9Lfpzi10CtcGs1emDQStmZfWjJbAIMtRD0opVUjQuFWqHZyRZ9PPzKCFxWg==
+  dependencies:
+    "@babel/core" "^7.16.0"
+    "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3"
+    "@svgr/webpack" "^5.5.0"
+    babel-jest "^27.4.2"
+    babel-loader "^8.2.3"
+    babel-plugin-named-asset-import "^0.3.8"
+    babel-preset-react-app "^10.0.1"
+    bfj "^7.0.2"
+    browserslist "^4.18.1"
+    camelcase "^6.2.1"
+    case-sensitive-paths-webpack-plugin "^2.4.0"
+    css-loader "^6.5.1"
+    css-minimizer-webpack-plugin "^3.2.0"
+    dotenv "^10.0.0"
+    dotenv-expand "^5.1.0"
+    eslint "^8.3.0"
+    eslint-config-react-app "^7.0.0"
+    eslint-webpack-plugin "^3.1.1"
+    file-loader "^6.2.0"
+    fs-extra "^10.0.0"
+    html-webpack-plugin "^5.5.0"
+    identity-obj-proxy "^3.0.0"
+    jest "^27.4.3"
+    jest-resolve "^27.4.2"
+    jest-watch-typeahead "^1.0.0"
+    mini-css-extract-plugin "^2.4.5"
+    postcss "^8.4.4"
+    postcss-flexbugs-fixes "^5.0.2"
+    postcss-loader "^6.2.1"
+    postcss-normalize "^10.0.1"
+    postcss-preset-env "^7.0.1"
+    prompts "^2.4.2"
+    react-app-polyfill "^3.0.0"
+    react-dev-utils "^12.0.0"
+    react-refresh "^0.11.0"
+    resolve "^1.20.0"
+    resolve-url-loader "^4.0.0"
+    sass-loader "^12.3.0"
+    semver "^7.3.5"
+    source-map-loader "^3.0.0"
+    style-loader "^3.3.1"
+    tailwindcss "^3.0.2"
+    terser-webpack-plugin "^5.2.5"
+    webpack "^5.64.4"
+    webpack-dev-server "^4.6.0"
+    webpack-manifest-plugin "^4.0.2"
+    workbox-webpack-plugin "^6.4.1"
+  optionalDependencies:
+    fsevents "^2.3.2"
+
+react-transition-group@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
+  integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    dom-helpers "^5.0.1"
+    loose-envify "^1.4.0"
+    prop-types "^15.6.2"
+
+react@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
+  integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+readable-stream@^2.0.1:
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.3"
+    isarray "~1.0.0"
+    process-nextick-args "~2.0.0"
+    safe-buffer "~5.1.1"
+    string_decoder "~1.1.1"
+    util-deprecate "~1.0.1"
+
+readable-stream@^3.0.6:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+  dependencies:
+    picomatch "^2.2.1"
+
+recursive-readdir@^2.2.2:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
+  integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==
+  dependencies:
+    minimatch "3.0.4"
+
+redent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+  integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+  dependencies:
+    indent-string "^4.0.0"
+    strip-indent "^3.0.0"
+
+redux-persist@*, redux-persist@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-6.0.0.tgz#b4d2972f9859597c130d40d4b146fecdab51b3a8"
+  integrity sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==
+
+redux-thunk@^2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714"
+  integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==
+
+redux@^4.0.0, redux@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104"
+  integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==
+  dependencies:
+    "@babel/runtime" "^7.9.2"
+
+reftools@^1.1.9:
+  version "1.1.9"
+  resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e"
+  integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==
+
+regenerate-unicode-properties@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
+  integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+  dependencies:
+    regenerate "^1.4.2"
+
+regenerate@^1.4.2:
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+  integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9:
+  version "0.13.9"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+  integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
+regenerator-transform@^0.14.2:
+  version "0.14.5"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+  integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+  dependencies:
+    "@babel/runtime" "^7.8.4"
+
+regex-parser@^2.2.11:
+  version "2.2.11"
+  resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58"
+  integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==
+
+regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
+  integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+regexpp@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+  integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+regexpu-core@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
+  integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+  dependencies:
+    regenerate "^1.4.2"
+    regenerate-unicode-properties "^10.0.1"
+    regjsgen "^0.6.0"
+    regjsparser "^0.8.2"
+    unicode-match-property-ecmascript "^2.0.0"
+    unicode-match-property-value-ecmascript "^2.0.0"
+
+regjsgen@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
+  integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+
+regjsparser@^0.8.2:
+  version "0.8.4"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
+  integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+  dependencies:
+    jsesc "~0.5.0"
+
+relateurl@^0.2.7:
+  version "0.2.7"
+  resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+
+renderkid@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a"
+  integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==
+  dependencies:
+    css-select "^4.1.3"
+    dom-converter "^0.2.0"
+    htmlparser2 "^6.1.0"
+    lodash "^4.17.21"
+    strip-ansi "^6.0.1"
+
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+requires-port@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+  integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
+
+reselect@^4.1.5:
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6"
+  integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==
+
+resolve-cwd@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+  integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+  dependencies:
+    resolve-from "^5.0.0"
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+  integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-url-loader@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57"
+  integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==
+  dependencies:
+    adjust-sourcemap-loader "^4.0.0"
+    convert-source-map "^1.7.0"
+    loader-utils "^2.0.0"
+    postcss "^7.0.35"
+    source-map "0.6.1"
+
+resolve.exports@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9"
+  integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
+
+resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0:
+  version "1.22.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+  integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+  dependencies:
+    is-core-module "^2.8.1"
+    path-parse "^1.0.7"
+    supports-preserve-symlinks-flag "^1.0.0"
+
+resolve@^2.0.0-next.3:
+  version "2.0.0-next.3"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
+  integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
+retry@^0.13.1:
+  version "0.13.1"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+  integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^3.0.0, rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+rollup-plugin-terser@^7.0.0:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
+  integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
+  dependencies:
+    "@babel/code-frame" "^7.10.4"
+    jest-worker "^26.2.1"
+    serialize-javascript "^4.0.0"
+    terser "^5.0.0"
+
+rollup@^2.43.1:
+  version "2.70.0"
+  resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7"
+  integrity sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA==
+  optionalDependencies:
+    fsevents "~2.3.2"
+
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sanitize.css@*:
+  version "13.0.0"
+  resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173"
+  integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==
+
+sass-loader@^12.3.0:
+  version "12.6.0"
+  resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb"
+  integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==
+  dependencies:
+    klona "^2.0.4"
+    neo-async "^2.6.2"
+
+sax@~1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+saxes@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
+  integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
+  dependencies:
+    xmlchars "^2.2.0"
+
+scheduler@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+  integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+schema-utils@2.7.0:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
+  integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
+  dependencies:
+    "@types/json-schema" "^7.0.4"
+    ajv "^6.12.2"
+    ajv-keywords "^3.4.1"
+
+schema-utils@^2.6.5:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+  integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+  dependencies:
+    "@types/json-schema" "^7.0.5"
+    ajv "^6.12.4"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
+  integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+  dependencies:
+    "@types/json-schema" "^7.0.8"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7"
+  integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==
+  dependencies:
+    "@types/json-schema" "^7.0.9"
+    ajv "^8.8.0"
+    ajv-formats "^2.1.1"
+    ajv-keywords "^5.0.0"
+
+select-hose@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+  integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
+
+selfsigned@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.0.tgz#e927cd5377cbb0a1075302cff8df1042cc2bce5b"
+  integrity sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==
+  dependencies:
+    node-forge "^1.2.0"
+
+semver@7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.3.2, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
+send@0.17.2:
+  version "0.17.2"
+  resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
+  integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
+  dependencies:
+    debug "2.6.9"
+    depd "~1.1.2"
+    destroy "~1.0.4"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    fresh "0.5.2"
+    http-errors "1.8.1"
+    mime "1.6.0"
+    ms "2.1.3"
+    on-finished "~2.3.0"
+    range-parser "~1.2.1"
+    statuses "~1.5.0"
+
+serialize-javascript@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
+  integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+  dependencies:
+    randombytes "^2.1.0"
+
+serialize-javascript@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
+  integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
+  dependencies:
+    randombytes "^2.1.0"
+
+serve-index@^1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+  integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
+  dependencies:
+    accepts "~1.3.4"
+    batch "0.6.1"
+    debug "2.6.9"
+    escape-html "~1.0.3"
+    http-errors "~1.6.2"
+    mime-types "~2.1.17"
+    parseurl "~1.3.2"
+
+serve-static@1.14.2:
+  version "1.14.2"
+  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa"
+  integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
+  dependencies:
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    parseurl "~1.3.3"
+    send "0.17.2"
+
+setprototypeof@1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+  integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+
+setprototypeof@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+  integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+shell-quote@^1.7.3:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
+  integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
+
+should-equal@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3"
+  integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==
+  dependencies:
+    should-type "^1.4.0"
+
+should-format@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
+  integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE=
+  dependencies:
+    should-type "^1.3.0"
+    should-type-adaptors "^1.0.1"
+
+should-type-adaptors@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a"
+  integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==
+  dependencies:
+    should-type "^1.3.0"
+    should-util "^1.0.0"
+
+should-type@^1.3.0, should-type@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
+  integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=
+
+should-util@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28"
+  integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==
+
+should@^13.2.1:
+  version "13.2.3"
+  resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10"
+  integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==
+  dependencies:
+    should-equal "^2.0.0"
+    should-format "^3.0.3"
+    should-type "^1.4.0"
+    should-type-adaptors "^1.0.1"
+    should-util "^1.0.0"
+
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
+
+signal-exit@^3.0.2, signal-exit@^3.0.3:
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+  integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+sisteransi@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+  integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slash@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
+  integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
+
+sockjs@^0.3.21:
+  version "0.3.24"
+  resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
+  integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
+  dependencies:
+    faye-websocket "^0.11.3"
+    uuid "^8.3.2"
+    websocket-driver "^0.7.4"
+
+source-list-map@^2.0.0, source-list-map@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-js@^1.0.1, source-map-js@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map-loader@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.1.tgz#9ae5edc7c2d42570934be4c95d1ccc6352eba52d"
+  integrity sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==
+  dependencies:
+    abab "^2.0.5"
+    iconv-lite "^0.6.3"
+    source-map-js "^1.0.1"
+
+source-map-resolve@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2"
+  integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==
+  dependencies:
+    atob "^2.1.2"
+    decode-uri-component "^0.2.0"
+
+source-map-support@^0.5.6, source-map-support@~0.5.20:
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@^0.5.0, source-map@^0.5.7:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.7.3, source-map@~0.7.2:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+source-map@^0.8.0-beta.0:
+  version "0.8.0-beta.0"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
+  integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
+  dependencies:
+    whatwg-url "^7.0.0"
+
+sourcemap-codec@^1.4.8:
+  version "1.4.8"
+  resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+  integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+
+spdy-transport@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+  integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
+  dependencies:
+    debug "^4.1.0"
+    detect-node "^2.0.4"
+    hpack.js "^2.1.6"
+    obuf "^1.1.2"
+    readable-stream "^3.0.6"
+    wbuf "^1.7.3"
+
+spdy@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+  integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
+  dependencies:
+    debug "^4.1.0"
+    handle-thing "^2.0.0"
+    http-deceiver "^1.2.7"
+    select-hose "^2.0.0"
+    spdy-transport "^3.0.0"
+
+sprintf-js@~1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+stable@^0.1.8:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+  integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
+stack-utils@^2.0.3:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
+  integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==
+  dependencies:
+    escape-string-regexp "^2.0.0"
+
+stackframe@^1.1.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1"
+  integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==
+
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+string-length@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+  integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+  dependencies:
+    char-regex "^1.0.2"
+    strip-ansi "^6.0.0"
+
+string-length@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e"
+  integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==
+  dependencies:
+    char-regex "^2.0.0"
+    strip-ansi "^7.0.1"
+
+string-natural-compare@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4"
+  integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
+
+string.prototype.matchall@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
+  integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.19.1"
+    get-intrinsic "^1.1.1"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    regexp.prototype.flags "^1.3.1"
+    side-channel "^1.0.4"
+
+string.prototype.trimend@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string_decoder@^1.1.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
+stringify-object@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+  dependencies:
+    get-own-enumerable-property-symbols "^3.0.0"
+    is-obj "^1.0.1"
+    is-regexp "^1.0.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
+strip-ansi@^7.0.0, strip-ansi@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
+  integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
+  dependencies:
+    ansi-regex "^6.0.1"
+
+strip-bom@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+  integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-bom@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+  integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-comments@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
+  integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
+
+strip-final-newline@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-indent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+  integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+  dependencies:
+    min-indent "^1.0.0"
+
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+style-loader@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
+  integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==
+
+stylehacks@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520"
+  integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==
+  dependencies:
+    browserslist "^4.16.6"
+    postcss-selector-parser "^6.0.4"
+
+stylis@4.0.13:
+  version "4.0.13"
+  resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91"
+  integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==
+
+supports-color@^5.3.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.0.0, supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+supports-color@^8.0.0:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+  dependencies:
+    has-flag "^4.0.0"
+
+supports-hyperlinks@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
+  integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
+  dependencies:
+    has-flag "^4.0.0"
+    supports-color "^7.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+  integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+svg-parser@^2.0.2:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
+  integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
+
+svgo@^1.2.2:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+  integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+  dependencies:
+    chalk "^2.4.1"
+    coa "^2.0.2"
+    css-select "^2.0.0"
+    css-select-base-adapter "^0.1.1"
+    css-tree "1.0.0-alpha.37"
+    csso "^4.0.2"
+    js-yaml "^3.13.1"
+    mkdirp "~0.5.1"
+    object.values "^1.1.0"
+    sax "~1.2.4"
+    stable "^0.1.8"
+    unquote "~1.1.1"
+    util.promisify "~1.0.0"
+
+svgo@^2.7.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+  integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
+  dependencies:
+    "@trysound/sax" "0.2.0"
+    commander "^7.2.0"
+    css-select "^4.1.3"
+    css-tree "^1.1.3"
+    csso "^4.2.0"
+    picocolors "^1.0.0"
+    stable "^0.1.8"
+
+swagger-schema-official@2.0.0-bab6bed:
+  version "2.0.0-bab6bed"
+  resolved "https://registry.yarnpkg.com/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz#70070468d6d2977ca5237b2e519ca7d06a2ea3fd"
+  integrity sha1-cAcEaNbSl3ylI3suUZyn0Gouo/0=
+
+swagger-typescript-api@^9.3.1:
+  version "9.3.1"
+  resolved "https://registry.yarnpkg.com/swagger-typescript-api/-/swagger-typescript-api-9.3.1.tgz#07df3aa8e83a3897356a6e820e88b8348830aa6b"
+  integrity sha512-vtarFELmXmDKrtY2FvU2OjNvN1BqOj3kHWzz7mAresNKRgRubZpjlopECxbBekrLeX3lezAYSNcrFMVRGJAD4A==
+  dependencies:
+    "@types/swagger-schema-official" "2.0.21"
+    axios "^0.21.4"
+    commander "^6.2.1"
+    cosmiconfig "^7.0.0"
+    eta "^1.12.1"
+    js-yaml "^4.0.0"
+    lodash "^4.17.21"
+    make-dir "^3.1.0"
+    nanoid "^3.1.22"
+    node-emoji "^1.10.0"
+    prettier "^2.2.1"
+    swagger-schema-official "2.0.0-bab6bed"
+    swagger2openapi "^7.0.5"
+    typescript "^4.2.4"
+
+swagger2openapi@^7.0.5:
+  version "7.0.8"
+  resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-7.0.8.tgz#12c88d5de776cb1cbba758994930f40ad0afac59"
+  integrity sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==
+  dependencies:
+    call-me-maybe "^1.0.1"
+    node-fetch "^2.6.1"
+    node-fetch-h2 "^2.3.0"
+    node-readfiles "^0.2.0"
+    oas-kit-common "^1.0.8"
+    oas-resolver "^2.5.6"
+    oas-schema-walker "^1.1.5"
+    oas-validator "^5.0.8"
+    reftools "^1.1.9"
+    yaml "^1.10.0"
+    yargs "^17.0.1"
+
+symbol-tree@^3.2.4:
+  version "3.2.4"
+  resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+  integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
+tailwindcss@^3.0.2:
+  version "3.0.23"
+  resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.23.tgz#c620521d53a289650872a66adfcb4129d2200d10"
+  integrity sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==
+  dependencies:
+    arg "^5.0.1"
+    chalk "^4.1.2"
+    chokidar "^3.5.3"
+    color-name "^1.1.4"
+    cosmiconfig "^7.0.1"
+    detective "^5.2.0"
+    didyoumean "^1.2.2"
+    dlv "^1.1.3"
+    fast-glob "^3.2.11"
+    glob-parent "^6.0.2"
+    is-glob "^4.0.3"
+    normalize-path "^3.0.0"
+    object-hash "^2.2.0"
+    postcss "^8.4.6"
+    postcss-js "^4.0.0"
+    postcss-load-config "^3.1.0"
+    postcss-nested "5.0.6"
+    postcss-selector-parser "^6.0.9"
+    postcss-value-parser "^4.2.0"
+    quick-lru "^5.1.1"
+    resolve "^1.22.0"
+
+tapable@^1.0.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+  integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
+
+tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+  integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
+
+temp-dir@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
+  integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
+
+tempy@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3"
+  integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==
+  dependencies:
+    is-stream "^2.0.0"
+    temp-dir "^2.0.0"
+    type-fest "^0.16.0"
+    unique-string "^2.0.0"
+
+terminal-link@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+  integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+  dependencies:
+    ansi-escapes "^4.2.1"
+    supports-hyperlinks "^2.0.0"
+
+terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54"
+  integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==
+  dependencies:
+    jest-worker "^27.4.5"
+    schema-utils "^3.1.1"
+    serialize-javascript "^6.0.0"
+    source-map "^0.6.1"
+    terser "^5.7.2"
+
+terser@^5.0.0, terser@^5.10.0, terser@^5.7.2:
+  version "5.12.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a"
+  integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==
+  dependencies:
+    acorn "^8.5.0"
+    commander "^2.20.0"
+    source-map "~0.7.2"
+    source-map-support "~0.5.20"
+
+test-exclude@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+  integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+  dependencies:
+    "@istanbuljs/schema" "^0.1.2"
+    glob "^7.1.4"
+    minimatch "^3.0.4"
+
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+throat@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
+  integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
+
+thunky@^1.0.2:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
+  integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
+
+timsort@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+  integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+
+tiny-warning@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
+  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+
+tmpl@1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+  integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+toidentifier@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+toposort@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
+  integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
+
+tough-cookie@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
+  integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
+  dependencies:
+    psl "^1.1.33"
+    punycode "^2.1.1"
+    universalify "^0.1.2"
+
+tr46@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+  integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+  dependencies:
+    punycode "^2.1.0"
+
+tr46@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"
+  integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==
+  dependencies:
+    punycode "^2.1.1"
+
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
+tryer@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+  integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
+
+ts-node@^10.7.0:
+  version "10.7.0"
+  resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5"
+  integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==
+  dependencies:
+    "@cspotcode/source-map-support" "0.7.0"
+    "@tsconfig/node10" "^1.0.7"
+    "@tsconfig/node12" "^1.0.7"
+    "@tsconfig/node14" "^1.0.0"
+    "@tsconfig/node16" "^1.0.2"
+    acorn "^8.4.1"
+    acorn-walk "^8.1.1"
+    arg "^4.1.0"
+    create-require "^1.1.0"
+    diff "^4.0.1"
+    make-error "^1.1.1"
+    v8-compile-cache-lib "^3.0.0"
+    yn "3.1.1"
+
+tsconfig-paths@^3.12.0:
+  version "3.13.0"
+  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz#f3e9b8f6876698581d94470c03c95b3a48c0e3d7"
+  integrity sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==
+  dependencies:
+    "@types/json5" "^0.0.29"
+    json5 "^1.0.1"
+    minimist "^1.2.0"
+    strip-bom "^3.0.0"
+
+tslib@^1.10.0, tslib@^1.8.1:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.0.3:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
+  integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
+
+tsutils@^3.21.0:
+  version "3.21.0"
+  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+  integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+  dependencies:
+    tslib "^1.8.1"
+
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-check@~0.3.2:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+  dependencies:
+    prelude-ls "~1.1.2"
+
+type-detect@4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+  integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.16.0:
+  version "0.16.0"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
+  integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.21.3:
+  version "0.21.3"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-is@~1.6.18:
+  version "1.6.18"
+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+  dependencies:
+    media-typer "0.3.0"
+    mime-types "~2.1.24"
+
+typedarray-to-buffer@^3.1.5:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+  integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+  dependencies:
+    is-typedarray "^1.0.0"
+
+typescript@^4.2.4, typescript@^4.4.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
+  integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
+
+unbox-primitive@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+  dependencies:
+    function-bind "^1.1.1"
+    has-bigints "^1.0.1"
+    has-symbols "^1.0.2"
+    which-boxed-primitive "^1.0.2"
+
+unicode-canonical-property-names-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+  integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
+unicode-match-property-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+  integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+  dependencies:
+    unicode-canonical-property-names-ecmascript "^2.0.0"
+    unicode-property-aliases-ecmascript "^2.0.0"
+
+unicode-match-property-value-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
+  integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
+  integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
+
+unique-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+  integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+  dependencies:
+    crypto-random-string "^2.0.0"
+
+universalify@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+unquote@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
+
+upath@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util.promisify@~1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+  integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.2"
+    has-symbols "^1.0.1"
+    object.getownpropertydescriptors "^2.1.0"
+
+utila@~0.4:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+  integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
+
+utils-merge@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
+uuid@^8.3.2:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+v8-compile-cache-lib@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8"
+  integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==
+
+v8-compile-cache@^2.0.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+v8-to-istanbul@^8.1.0:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed"
+  integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==
+  dependencies:
+    "@types/istanbul-lib-coverage" "^2.0.1"
+    convert-source-map "^1.6.0"
+    source-map "^0.7.3"
+
+vary@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+w3c-hr-time@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+  integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
+  dependencies:
+    browser-process-hrtime "^1.0.0"
+
+w3c-xmlserializer@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
+  integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
+  dependencies:
+    xml-name-validator "^3.0.0"
+
+walker@^1.0.7:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+  integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+  dependencies:
+    makeerror "1.0.12"
+
+watchpack@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25"
+  integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==
+  dependencies:
+    glob-to-regexp "^0.4.1"
+    graceful-fs "^4.1.2"
+
+wbuf@^1.1.0, wbuf@^1.7.3:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+  integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
+  dependencies:
+    minimalistic-assert "^1.0.0"
+
+web-vitals@^2.1.0:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c"
+  integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==
+
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+webidl-conversions@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+  integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+webidl-conversions@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
+  integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+
+webidl-conversions@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
+  integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
+
+webpack-dev-middleware@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f"
+  integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==
+  dependencies:
+    colorette "^2.0.10"
+    memfs "^3.4.1"
+    mime-types "^2.1.31"
+    range-parser "^1.2.1"
+    schema-utils "^4.0.0"
+
+webpack-dev-server@^4.6.0:
+  version "4.7.4"
+  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz#d0ef7da78224578384e795ac228d8efb63d5f945"
+  integrity sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==
+  dependencies:
+    "@types/bonjour" "^3.5.9"
+    "@types/connect-history-api-fallback" "^1.3.5"
+    "@types/express" "^4.17.13"
+    "@types/serve-index" "^1.9.1"
+    "@types/sockjs" "^0.3.33"
+    "@types/ws" "^8.2.2"
+    ansi-html-community "^0.0.8"
+    bonjour "^3.5.0"
+    chokidar "^3.5.3"
+    colorette "^2.0.10"
+    compression "^1.7.4"
+    connect-history-api-fallback "^1.6.0"
+    default-gateway "^6.0.3"
+    del "^6.0.0"
+    express "^4.17.1"
+    graceful-fs "^4.2.6"
+    html-entities "^2.3.2"
+    http-proxy-middleware "^2.0.0"
+    ipaddr.js "^2.0.1"
+    open "^8.0.9"
+    p-retry "^4.5.0"
+    portfinder "^1.0.28"
+    schema-utils "^4.0.0"
+    selfsigned "^2.0.0"
+    serve-index "^1.9.1"
+    sockjs "^0.3.21"
+    spdy "^4.0.2"
+    strip-ansi "^7.0.0"
+    webpack-dev-middleware "^5.3.1"
+    ws "^8.4.2"
+
+webpack-manifest-plugin@^4.0.2:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f"
+  integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==
+  dependencies:
+    tapable "^2.0.0"
+    webpack-sources "^2.2.0"
+
+webpack-sources@^1.4.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+  integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+  dependencies:
+    source-list-map "^2.0.0"
+    source-map "~0.6.1"
+
+webpack-sources@^2.2.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
+  integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
+  dependencies:
+    source-list-map "^2.0.1"
+    source-map "^0.6.1"
+
+webpack-sources@^3.2.3:
+  version "3.2.3"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
+  integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
+
+webpack@^5.64.4:
+  version "5.70.0"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d"
+  integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==
+  dependencies:
+    "@types/eslint-scope" "^3.7.3"
+    "@types/estree" "^0.0.51"
+    "@webassemblyjs/ast" "1.11.1"
+    "@webassemblyjs/wasm-edit" "1.11.1"
+    "@webassemblyjs/wasm-parser" "1.11.1"
+    acorn "^8.4.1"
+    acorn-import-assertions "^1.7.6"
+    browserslist "^4.14.5"
+    chrome-trace-event "^1.0.2"
+    enhanced-resolve "^5.9.2"
+    es-module-lexer "^0.9.0"
+    eslint-scope "5.1.1"
+    events "^3.2.0"
+    glob-to-regexp "^0.4.1"
+    graceful-fs "^4.2.9"
+    json-parse-better-errors "^1.0.2"
+    loader-runner "^4.2.0"
+    mime-types "^2.1.27"
+    neo-async "^2.6.2"
+    schema-utils "^3.1.0"
+    tapable "^2.1.1"
+    terser-webpack-plugin "^5.1.3"
+    watchpack "^2.3.1"
+    webpack-sources "^3.2.3"
+
+websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
+  version "0.7.4"
+  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
+  integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
+  dependencies:
+    http-parser-js ">=0.5.1"
+    safe-buffer ">=5.1.0"
+    websocket-extensions ">=0.1.1"
+
+websocket-extensions@>=0.1.1:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
+  integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
+
+whatwg-encoding@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
+  integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+  dependencies:
+    iconv-lite "0.4.24"
+
+whatwg-fetch@^3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
+  integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
+
+whatwg-mimetype@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+  integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
+whatwg-url@^7.0.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+  integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+  dependencies:
+    lodash.sortby "^4.7.0"
+    tr46 "^1.0.1"
+    webidl-conversions "^4.0.2"
+
+whatwg-url@^8.0.0, whatwg-url@^8.5.0:
+  version "8.7.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77"
+  integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==
+  dependencies:
+    lodash "^4.7.0"
+    tr46 "^2.1.0"
+    webidl-conversions "^6.1.0"
+
+which-boxed-primitive@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+  dependencies:
+    is-bigint "^1.0.1"
+    is-boolean-object "^1.1.0"
+    is-number-object "^1.0.4"
+    is-string "^1.0.5"
+    is-symbol "^1.0.3"
+
+which@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+  dependencies:
+    isexe "^2.0.0"
+
+which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+word-wrap@^1.2.3, word-wrap@~1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+workbox-background-sync@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.1.tgz#df79c6a4a22945d8a44493a4947a6ed0f720ef86"
+  integrity sha512-T5a35fagLXQvV8Dr4+bDU+XYsP90jJ3eBLjZMKuCNELMQZNj+VekCODz1QK44jgoBeQk+vp94pkZV6G+e41pgg==
+  dependencies:
+    idb "^6.1.4"
+    workbox-core "6.5.1"
+
+workbox-broadcast-update@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.1.tgz#9aecb116979b0709480b84cfd1beca7a901d01d4"
+  integrity sha512-mb/oyblyEpDbw167cCTyHnC3RqCnCQHtFYuYZd+QTpuExxM60qZuBH1AuQCgvLtDcztBKdEYK2VFD9SZYgRbaQ==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-build@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.1.tgz#6b5e8f090bb608267868540d3072b44b8531b3bc"
+  integrity sha512-coDUDzHvFZ1ADOl3wKCsCSyOBvkPKlPgcQDb6LMMShN1zgF31Mev/1HzN3+9T2cjjWAgFwZKkuRyExqc1v21Zw==
+  dependencies:
+    "@apideck/better-ajv-errors" "^0.3.1"
+    "@babel/core" "^7.11.1"
+    "@babel/preset-env" "^7.11.0"
+    "@babel/runtime" "^7.11.2"
+    "@rollup/plugin-babel" "^5.2.0"
+    "@rollup/plugin-node-resolve" "^11.2.1"
+    "@rollup/plugin-replace" "^2.4.1"
+    "@surma/rollup-plugin-off-main-thread" "^2.2.3"
+    ajv "^8.6.0"
+    common-tags "^1.8.0"
+    fast-json-stable-stringify "^2.1.0"
+    fs-extra "^9.0.1"
+    glob "^7.1.6"
+    lodash "^4.17.20"
+    pretty-bytes "^5.3.0"
+    rollup "^2.43.1"
+    rollup-plugin-terser "^7.0.0"
+    source-map "^0.8.0-beta.0"
+    stringify-object "^3.3.0"
+    strip-comments "^2.0.1"
+    tempy "^0.6.0"
+    upath "^1.2.0"
+    workbox-background-sync "6.5.1"
+    workbox-broadcast-update "6.5.1"
+    workbox-cacheable-response "6.5.1"
+    workbox-core "6.5.1"
+    workbox-expiration "6.5.1"
+    workbox-google-analytics "6.5.1"
+    workbox-navigation-preload "6.5.1"
+    workbox-precaching "6.5.1"
+    workbox-range-requests "6.5.1"
+    workbox-recipes "6.5.1"
+    workbox-routing "6.5.1"
+    workbox-strategies "6.5.1"
+    workbox-streams "6.5.1"
+    workbox-sw "6.5.1"
+    workbox-window "6.5.1"
+
+workbox-cacheable-response@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.1.tgz#f71d0a75b3d6846e39594955e99ac42fd26f8693"
+  integrity sha512-3TdtH/luDiytmM+Cn72HCBLZXmbeRNJqZx2yaVOfUZhj0IVwZqQXhNarlGE9/k6U5Jelb+TtpH2mLVhnzfiSMg==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-core@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.1.tgz#0dba3bccf883a46dfa61cc412eaa3cb09bb549e6"
+  integrity sha512-qObXZ39aFJ2N8X7IUbGrJHKWguliCuU1jOXM/I4MTT84u9BiKD2rHMkIzgeRP1Ixu9+cXU4/XHJq3Cy0Qqc5hw==
+
+workbox-expiration@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.1.tgz#9f105fcf3362852754884ad153888070ce98b692"
+  integrity sha512-iY/cTADAQATMmPkUBRmQdacqq0TJd2wMHimBQz+tRnPGHSMH+/BoLPABPnu7O7rT/g/s59CUYYRGxe3mEgoJCA==
+  dependencies:
+    idb "^6.1.4"
+    workbox-core "6.5.1"
+
+workbox-google-analytics@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.1.tgz#685224d439c1e7a943f8241d65e2a34ee95a4ba0"
+  integrity sha512-qZU46/h4dbionYT6Yk6iBkUwpiEzAfnO1W7KkI+AMmY7G9/gA03dQQ7rpTw8F4vWrG7ahTUGWDFv6fERtaw1BQ==
+  dependencies:
+    workbox-background-sync "6.5.1"
+    workbox-core "6.5.1"
+    workbox-routing "6.5.1"
+    workbox-strategies "6.5.1"
+
+workbox-navigation-preload@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.1.tgz#a244e3bdf99ce86da7210315ca1ba5aef3710825"
+  integrity sha512-aKrgAbn2IMgzTowTi/ZyKdQUcES2m++9aGtpxqsX7Gn9ovCY8zcssaMEAMMwrIeveij5HiWNBrmj6MWDHi+0rg==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-precaching@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.1.tgz#177b6424f1e71e601b9c3d6864decad2655f9ff9"
+  integrity sha512-EzlPBxvmjGfE56YZzsT/vpVkpLG1XJhoplgXa5RPyVWLUL1LbwEAxhkrENElSS/R9tgiTw80IFwysidfUqLihg==
+  dependencies:
+    workbox-core "6.5.1"
+    workbox-routing "6.5.1"
+    workbox-strategies "6.5.1"
+
+workbox-range-requests@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.1.tgz#f40f84aa8765940543eba16131d02f12b38e2fdc"
+  integrity sha512-57Da/qRbd9v33YlHX0rlSUVFmE4THCjKqwkmfhY3tNLnSKN2L5YBS3qhWeDO0IrMNgUj+rGve2moKYXeUqQt4A==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-recipes@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.1.tgz#d2fb21743677cc3ca9e1fc9e3b68f0d1587df205"
+  integrity sha512-DGsyKygHggcGPQpWafC/Nmbm1Ny3sB2vE9r//3UbeidXiQ+pLF14KEG1/0NNGRaY+lfOXOagq6d1H7SC8KA+rA==
+  dependencies:
+    workbox-cacheable-response "6.5.1"
+    workbox-core "6.5.1"
+    workbox-expiration "6.5.1"
+    workbox-precaching "6.5.1"
+    workbox-routing "6.5.1"
+    workbox-strategies "6.5.1"
+
+workbox-routing@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.1.tgz#5488795ae850fe3ae435241143b54ff25ab0db70"
+  integrity sha512-yAAncdTwanvlR8KPjubyvFKeAok8ZcIws6UKxvIAg0I+wsf7UYi93DXNuZr6RBSQrByrN6HkCyjuhmk8P63+PA==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-strategies@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.1.tgz#51cabbddad5a1956eb9d51cf6ce01ab0a6372756"
+  integrity sha512-JNaTXPy8wXzKkr+6za7/eJX9opoZk7UgY261I2kPxl80XQD8lMjz0vo9EOcBwvD72v3ZhGJbW84ZaDwFEhFvWA==
+  dependencies:
+    workbox-core "6.5.1"
+
+workbox-streams@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.1.tgz#12036817385fa4449a86a3ef77fce1cb00ecad9f"
+  integrity sha512-7jaTWm6HRGJ/ewECnhb+UgjTT50R42E0/uNCC4eTKQwnLO/NzNGjoXTdQgFjo4zteR+L/K6AtFAiYKH3ZJbAYw==
+  dependencies:
+    workbox-core "6.5.1"
+    workbox-routing "6.5.1"
+
+workbox-sw@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.1.tgz#f9256b40f0a7e94656ccd06f127ba19a92cd23c5"
+  integrity sha512-hVrQa19yo9wzN1fQQ/h2JlkzFpkuH2qzYT2/rk7CLaWt6tLnTJVFCNHlGRRPhytZSf++LoIy7zThT714sowT/Q==
+
+workbox-webpack-plugin@^6.4.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.1.tgz#da88b4b6d8eff855958f0e7ebb7aa3eea50a8282"
+  integrity sha512-SHtlQBpKruI16CAYhICDMkgjXE2fH5Yp+D+1UmBfRVhByZYzusVOykvnPm8ObJb9d/tXgn9yoppoxafFS7D4vQ==
+  dependencies:
+    fast-json-stable-stringify "^2.1.0"
+    pretty-bytes "^5.4.1"
+    upath "^1.2.0"
+    webpack-sources "^1.4.3"
+    workbox-build "6.5.1"
+
+workbox-window@6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.1.tgz#7b5ca29467b1da45dc9e2b5a1b89159d3eb9957a"
+  integrity sha512-oRlun9u7b7YEjo2fIDBqJkU2hXtrEljXcOytRhfeQRbqXxjUOpFgXSGRSAkmDx1MlKUNOSbr+zfi8h5n7In3yA==
+  dependencies:
+    "@types/trusted-types" "^2.0.2"
+    workbox-core "6.5.1"
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^3.0.0:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+  integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+  dependencies:
+    imurmurhash "^0.1.4"
+    is-typedarray "^1.0.0"
+    signal-exit "^3.0.2"
+    typedarray-to-buffer "^3.1.5"
+
+ws@^7.4.6:
+  version "7.5.7"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67"
+  integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
+
+ws@^8.4.2:
+  version "8.5.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"
+  integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
+
+xml-name-validator@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+  integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+
+xmlchars@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+  integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
+xtend@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^20.2.2:
+  version "20.2.9"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs-parser@^21.0.0:
+  version "21.0.1"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
+  integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
+
+yargs@^16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
+yargs@^17.0.1:
+  version "17.4.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.0.tgz#9fc9efc96bd3aa2c1240446af28499f0e7593d00"
+  integrity sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.3"
+    y18n "^5.0.5"
+    yargs-parser "^21.0.0"
+
+yn@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+  integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+yup@^0.32.11:
+  version "0.32.11"
+  resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5"
+  integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==
+  dependencies:
+    "@babel/runtime" "^7.15.4"
+    "@types/lodash" "^4.14.175"
+    lodash "^4.17.21"
+    lodash-es "^4.17.21"
+    nanoclone "^0.2.1"
+    property-expr "^2.0.4"
+    toposort "^2.0.2"