From ab7838c27bb5d0ebb089c888ec5ba9b409b4c836 Mon Sep 17 00:00:00 2001 From: "anastasia.birillo" Date: Sun, 16 Apr 2023 17:32:57 +0200 Subject: [PATCH 1/5] Rename card trainer project --- .../course/card/trainer/card/CardModel.kt | 16 -- .../course/card/trainer/card/CardResource.kt | 17 -- .../course/card/trainer/card/CardService.kt | 27 --- .../course/card/trainer/stat/StatModel.kt | 8 - .../course/card/trainer/stat/StatResource.kt | 24 -- .../course/card/trainer/stat/StatService.kt | 22 -- .../course/card/trainer/util/Converters.kt | 6 - .../task-info.yaml | 83 ------- .../cardTrainerServerFinishGame/task.md | 57 ----- .../test/CardSequenceGeneratorTestClass.kt | 20 -- .../test/CardServiceTestClass.kt | 67 ------ .../test/CardTestClass.kt | 35 --- .../test/StatServiceTestClass.kt | 59 ----- .../test/StatTestClass.kt | 25 -- .../cardTrainerServerFinishGame/test/Tests.kt | 222 ------------------ .../card/trainer/CardTrainerApplication.kt | 13 - .../course/card/trainer/util/Countries.kt | 155 ------------ .../src/main/resources/application.properties | 1 - .../main/resources/static/asset-manifest.json | 27 --- .../src/main/resources/static/favicon.ico | Bin 67646 -> 0 bytes .../src/main/resources/static/index.html | 1 - .../src/main/resources/static/manifest.json | 15 -- .../src/main/resources/static/robots.txt | 3 - .../static/static/css/main.b4de2bbf.css | 2 - .../static/static/css/main.b4de2bbf.css.map | 1 - .../static/static/js/787.de30ccfb.chunk.js | 2 - .../static/js/787.de30ccfb.chunk.js.map | 1 - .../static/static/js/main.d2e844a0.js | 3 - .../static/js/main.d2e844a0.js.LICENSE.txt | 39 --- .../static/static/js/main.d2e844a0.js.map | 1 - .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 16 -- .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 16 -- .../media/back.578d2b1544fe8bc2e2ec.svg | 15 -- .../media/big_card.b9fbc88cc98ea6fd7147.svg | 10 - .../big_card_front.faa5775005a2e1fe4f63.svg | 9 - .../media/dontknow.67ebf471040d40c46b2a.svg | 14 -- .../finish_game.2e4ab89d10148dcafb77.svg | 14 -- .../media/know.0fb122e6ade5c1b93f61.svg | 14 -- .../logo.167e6cdb952b1683e98c7820458359a8.svg | 159 ------------- .../play_button.aad770749eabbe8ac9b1.svg | 14 -- .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 10 - .../media/stats.127dcf3dc65bb4121d5a.svg | 17 -- cardTrainerServer/lesson-info.yaml | 10 - course-info.yaml | 2 +- .../.env.development | 0 .../.env.production | 0 .../.gitignore | 0 .../build.gradle.kts | 0 .../package.json | 0 .../public/favicon.ico | Bin .../public/index.html | 0 .../public/manifest.json | 0 .../public/robots.txt | 0 .../src/App.css | 0 .../src/App.test.tsx | 0 .../src/App.tsx | 0 .../src/assets/Kotlin_bg.svg | 0 .../src/assets/Kotlin_bg_white.svg | 0 .../src/assets/back.svg | 0 .../src/assets/big_card.svg | 0 .../src/assets/big_card_front.svg | 0 .../src/assets/dontknow.svg | 0 .../src/assets/finish_game.svg | 0 .../src/assets/know.svg | 0 .../src/assets/logo.svg | 0 .../src/assets/play_button.svg | 0 .../src/assets/small-card.svg | 0 .../src/assets/stats.svg | 0 .../src/components/Card.tsx | 0 .../src/components/GameScreen.tsx | 0 .../src/components/StatColumn.tsx | 0 .../components/screens/GameRoundScreen.tsx | 0 .../screens/GameStatisticsScreen.tsx | 0 .../src/components/screens/StartScreen.tsx | 2 +- .../src/index.css | 0 .../src/index.tsx | 0 .../src/react-app-env.d.ts | 0 .../src/reportWebVitals.ts | 0 .../src/setupTests.ts | 0 .../src/util/util.ts | 0 .../tsconfig.json | 0 memoryTrainerServer/lesson-info.yaml | 10 + .../card/trainer/CardTrainerApplication.kt | 0 .../course/card/trainer/card/CardModel.kt | 0 .../course/card/trainer/card/CardResource.kt | 0 .../course/card/trainer/card/CardService.kt | 0 .../course/card/trainer/stat/StatModel.kt | 0 .../course/card/trainer/stat/StatResource.kt | 0 .../course/card/trainer/stat/StatService.kt | 0 .../course/card/trainer/util/Converters.kt | 0 .../course/card/trainer/util/Countries.kt | 0 .../src/main/resources/application.properties | 0 .../main/resources/static/asset-manifest.json | 0 .../src/main/resources/static/favicon.ico | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/manifest.json | 0 .../src/main/resources/static/robots.txt | 0 .../static/static/css/main.b4de2bbf.css | 0 .../static/static/css/main.b4de2bbf.css.map | 0 .../static/static/js/787.de30ccfb.chunk.js | 0 .../static/js/787.de30ccfb.chunk.js.map | 0 .../static/static/js/main.d2e844a0.js | 0 .../static/js/main.d2e844a0.js.LICENSE.txt | 0 .../static/static/js/main.d2e844a0.js.map | 0 .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 0 .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 0 .../media/back.578d2b1544fe8bc2e2ec.svg | 0 .../media/big_card.b9fbc88cc98ea6fd7147.svg | 0 .../big_card_front.faa5775005a2e1fe4f63.svg | 0 .../media/dontknow.67ebf471040d40c46b2a.svg | 0 .../finish_game.2e4ab89d10148dcafb77.svg | 0 .../media/know.0fb122e6ade5c1b93f61.svg | 0 .../logo.167e6cdb952b1683e98c7820458359a8.svg | 0 .../play_button.aad770749eabbe8ac9b1.svg | 0 .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 0 .../media/stats.127dcf3dc65bb4121d5a.svg | 0 .../task-info.yaml | 0 .../memoryTrainerServerCardModel}/task.md | 0 .../test/CardSequenceGeneratorTestClass.kt | 0 .../test/CardServiceTestClass.kt | 0 .../test/CardTestClass.kt | 0 .../test/StatServiceTestClass.kt | 0 .../test/StatTestClass.kt | 0 .../test/Tests.kt | 0 .../card/trainer/CardTrainerApplication.kt | 0 .../course/card/trainer/card/CardModel.kt | 0 .../course/card/trainer/card/CardResource.kt | 0 .../course/card/trainer/card/CardService.kt | 0 .../course/card/trainer/stat/StatModel.kt | 0 .../course/card/trainer/stat/StatResource.kt | 0 .../course/card/trainer/stat/StatService.kt | 0 .../course/card/trainer/util/Converters.kt | 0 .../course/card/trainer/util/Countries.kt | 0 .../src/main/resources/application.properties | 0 .../main/resources/static/asset-manifest.json | 0 .../src/main/resources/static/favicon.ico | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/manifest.json | 0 .../src/main/resources/static/robots.txt | 0 .../static/static/css/main.b4de2bbf.css | 0 .../static/static/css/main.b4de2bbf.css.map | 0 .../static/static/js/787.de30ccfb.chunk.js | 0 .../static/js/787.de30ccfb.chunk.js.map | 0 .../static/static/js/main.d2e844a0.js | 0 .../static/js/main.d2e844a0.js.LICENSE.txt | 0 .../static/static/js/main.d2e844a0.js.map | 0 .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 0 .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 0 .../media/back.578d2b1544fe8bc2e2ec.svg | 0 .../media/big_card.b9fbc88cc98ea6fd7147.svg | 0 .../big_card_front.faa5775005a2e1fe4f63.svg | 0 .../media/dontknow.67ebf471040d40c46b2a.svg | 0 .../finish_game.2e4ab89d10148dcafb77.svg | 0 .../media/know.0fb122e6ade5c1b93f61.svg | 0 .../logo.167e6cdb952b1683e98c7820458359a8.svg | 0 .../play_button.aad770749eabbe8ac9b1.svg | 0 .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 0 .../media/stats.127dcf3dc65bb4121d5a.svg | 0 .../task-info.yaml | 0 .../task.md | 0 .../test/CardSequenceGeneratorTestClass.kt | 0 .../test/CardServiceTestClass.kt | 0 .../test/CardTestClass.kt | 0 .../test/StatServiceTestClass.kt | 0 .../test/StatTestClass.kt | 0 .../test/Tests.kt | 0 .../card/trainer/CardTrainerApplication.kt | 0 .../course/card/trainer/card/CardModel.kt | 0 .../course/card/trainer/card/CardResource.kt | 0 .../course/card/trainer/card/CardService.kt | 0 .../course/card/trainer/stat/StatModel.kt | 0 .../course/card/trainer/stat/StatResource.kt | 0 .../course/card/trainer/stat/StatService.kt | 0 .../course/card/trainer/util/Converters.kt | 0 .../course/card/trainer/util/Countries.kt | 0 .../src/main/resources/application.properties | 0 .../main/resources/static/asset-manifest.json | 0 .../src/main/resources/static/favicon.ico | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/manifest.json | 0 .../src/main/resources/static/robots.txt | 0 .../static/static/css/main.b4de2bbf.css | 0 .../static/static/css/main.b4de2bbf.css.map | 0 .../static/static/js/787.de30ccfb.chunk.js | 0 .../static/js/787.de30ccfb.chunk.js.map | 0 .../static/static/js/main.d2e844a0.js | 0 .../static/js/main.d2e844a0.js.LICENSE.txt | 0 .../static/static/js/main.d2e844a0.js.map | 0 .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 0 .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 0 .../media/back.578d2b1544fe8bc2e2ec.svg | 0 .../media/big_card.b9fbc88cc98ea6fd7147.svg | 0 .../big_card_front.faa5775005a2e1fe4f63.svg | 0 .../media/dontknow.67ebf471040d40c46b2a.svg | 0 .../finish_game.2e4ab89d10148dcafb77.svg | 0 .../media/know.0fb122e6ade5c1b93f61.svg | 0 .../logo.167e6cdb952b1683e98c7820458359a8.svg | 0 .../play_button.aad770749eabbe8ac9b1.svg | 0 .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 0 .../media/stats.127dcf3dc65bb4121d5a.svg | 0 .../task-info.yaml | 0 .../memoryTrainerServerCardService}/task.md | 0 .../test/CardSequenceGeneratorTestClass.kt | 0 .../test/CardServiceTestClass.kt | 0 .../test/CardTestClass.kt | 0 .../test/StatServiceTestClass.kt | 0 .../test/StatTestClass.kt | 0 .../test/Tests.kt | 0 .../card/trainer/CardTrainerApplication.kt | 0 .../course/card/trainer/card/CardModel.kt | 0 .../course/card/trainer/card/CardResource.kt | 0 .../course/card/trainer/card/CardService.kt | 0 .../course/card/trainer/stat/StatModel.kt | 0 .../course/card/trainer/stat/StatResource.kt | 0 .../course/card/trainer/stat/StatService.kt | 0 .../course/card/trainer/util/Converters.kt | 0 .../course/card/trainer/util/Countries.kt | 0 .../src/main/resources/application.properties | 0 .../main/resources/static/asset-manifest.json | 0 .../src/main/resources/static/favicon.ico | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/manifest.json | 0 .../src/main/resources/static/robots.txt | 0 .../static/static/css/main.b4de2bbf.css | 0 .../static/static/css/main.b4de2bbf.css.map | 0 .../static/static/js/787.de30ccfb.chunk.js | 0 .../static/js/787.de30ccfb.chunk.js.map | 0 .../static/static/js/main.d2e844a0.js | 0 .../static/js/main.d2e844a0.js.LICENSE.txt | 0 .../static/static/js/main.d2e844a0.js.map | 0 .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 0 .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 0 .../media/back.578d2b1544fe8bc2e2ec.svg | 0 .../media/big_card.b9fbc88cc98ea6fd7147.svg | 0 .../big_card_front.faa5775005a2e1fe4f63.svg | 0 .../media/dontknow.67ebf471040d40c46b2a.svg | 0 .../finish_game.2e4ab89d10148dcafb77.svg | 0 .../media/know.0fb122e6ade5c1b93f61.svg | 0 .../logo.167e6cdb952b1683e98c7820458359a8.svg | 0 .../play_button.aad770749eabbe8ac9b1.svg | 0 .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 0 .../media/stats.127dcf3dc65bb4121d5a.svg | 0 .../task-info.yaml | 0 .../memoryTrainerServerHowToRun}/task.md | 0 .../card/trainer/CardTrainerApplication.kt | 0 .../course/card/trainer/card/CardModel.kt | 0 .../course/card/trainer/card/CardResource.kt | 0 .../course/card/trainer/card/CardService.kt | 0 .../course/card/trainer/stat/StatModel.kt | 0 .../course/card/trainer/stat/StatResource.kt | 0 .../course/card/trainer/stat/StatService.kt | 0 .../course/card/trainer/util/Converters.kt | 0 .../course/card/trainer/util/Countries.kt | 0 .../src/main/resources/application.properties | 0 .../main/resources/static/asset-manifest.json | 0 .../src/main/resources/static/favicon.ico | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/manifest.json | 0 .../src/main/resources/static/robots.txt | 0 .../static/static/css/main.b4de2bbf.css | 0 .../static/static/css/main.b4de2bbf.css.map | 0 .../static/static/js/787.de30ccfb.chunk.js | 0 .../static/js/787.de30ccfb.chunk.js.map | 0 .../static/static/js/main.d2e844a0.js | 0 .../static/js/main.d2e844a0.js.LICENSE.txt | 0 .../static/static/js/main.d2e844a0.js.map | 0 .../media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg | 0 .../Kotlin_bg_white.00acddcc6609eb49c481.svg | 0 .../media/back.578d2b1544fe8bc2e2ec.svg | 0 .../media/big_card.b9fbc88cc98ea6fd7147.svg | 0 .../big_card_front.faa5775005a2e1fe4f63.svg | 0 .../media/dontknow.67ebf471040d40c46b2a.svg | 0 .../finish_game.2e4ab89d10148dcafb77.svg | 0 .../media/know.0fb122e6ade5c1b93f61.svg | 0 .../logo.167e6cdb952b1683e98c7820458359a8.svg | 0 .../play_button.aad770749eabbe8ac9b1.svg | 0 .../media/small-card.5b4cefb99fcb6a8cdacc.svg | 0 .../media/stats.127dcf3dc65bb4121d5a.svg | 0 .../task-info.yaml | 0 .../memoryTrainerServerIntroduction}/task.md | 0 280 files changed, 12 insertions(+), 1272 deletions(-) delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/task-info.yaml delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/task.md delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/CardSequenceGeneratorTestClass.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/CardServiceTestClass.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/CardTestClass.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/StatServiceTestClass.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/StatTestClass.kt delete mode 100644 cardTrainerServer/cardTrainerServerFinishGame/test/Tests.kt delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/application.properties delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/asset-manifest.json delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/favicon.ico delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/index.html delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/manifest.json delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/robots.txt delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css.map delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js.map delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg delete mode 100644 cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg delete mode 100644 cardTrainerServer/lesson-info.yaml rename {cardTrainerFrontend => memoryTrainerFrontend}/.env.development (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/.env.production (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/.gitignore (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/build.gradle.kts (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/package.json (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/public/favicon.ico (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/public/index.html (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/public/manifest.json (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/public/robots.txt (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/App.css (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/App.test.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/App.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/Kotlin_bg.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/Kotlin_bg_white.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/back.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/big_card.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/big_card_front.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/dontknow.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/finish_game.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/know.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/logo.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/play_button.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/small-card.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/assets/stats.svg (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/Card.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/GameScreen.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/StatColumn.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/screens/GameRoundScreen.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/screens/GameStatisticsScreen.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/components/screens/StartScreen.tsx (95%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/index.css (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/index.tsx (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/react-app-env.d.ts (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/reportWebVitals.ts (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/setupTests.ts (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/src/util/util.ts (100%) rename {cardTrainerFrontend => memoryTrainerFrontend}/tsconfig.json (100%) create mode 100644 memoryTrainerServer/lesson-info.yaml rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/application.properties (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/asset-manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/favicon.ico (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/index.html (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/robots.txt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/css/main.b4de2bbf.css (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/css/main.b4de2bbf.css.map (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/js/787.de30ccfb.chunk.js (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/js/main.d2e844a0.js (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/js/main.d2e844a0.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/task-info.yaml (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/task.md (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/CardSequenceGeneratorTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/CardServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/CardTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/StatServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/StatTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardModel => memoryTrainerServer/memoryTrainerServerCardModel}/test/Tests.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/application.properties (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/asset-manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/favicon.ico (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/index.html (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/robots.txt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/css/main.b4de2bbf.css (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/css/main.b4de2bbf.css.map (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/js/787.de30ccfb.chunk.js (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/js/main.d2e844a0.js (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/js/main.d2e844a0.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/task-info.yaml (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/task.md (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/CardSequenceGeneratorTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/CardServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/CardTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/StatServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/StatTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardSequenceGenerator => memoryTrainerServer/memoryTrainerServerCardSequenceGenerator}/test/Tests.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/application.properties (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/asset-manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/favicon.ico (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/index.html (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/manifest.json (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/robots.txt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/css/main.b4de2bbf.css (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/css/main.b4de2bbf.css.map (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/js/787.de30ccfb.chunk.js (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/js/main.d2e844a0.js (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/js/main.d2e844a0.js.map (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/task-info.yaml (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/task.md (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/CardSequenceGeneratorTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/CardServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/CardTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/StatServiceTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/StatTestClass.kt (100%) rename {cardTrainerServer/cardTrainerServerCardService => memoryTrainerServer/memoryTrainerServerCardService}/test/Tests.kt (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/application.properties (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/asset-manifest.json (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/favicon.ico (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/index.html (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/manifest.json (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/robots.txt (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/css/main.b4de2bbf.css (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/css/main.b4de2bbf.css.map (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/js/787.de30ccfb.chunk.js (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/js/main.d2e844a0.js (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/js/main.d2e844a0.js.map (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg (100%) rename {cardTrainerServer/cardTrainerServerFinishGame => memoryTrainerServer/memoryTrainerServerHowToRun}/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/task-info.yaml (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerHowToRun}/task.md (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/application.properties (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/asset-manifest.json (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/favicon.ico (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/index.html (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/manifest.json (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/robots.txt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/css/main.b4de2bbf.css (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/css/main.b4de2bbf.css.map (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/js/787.de30ccfb.chunk.js (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/js/main.d2e844a0.js (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/js/main.d2e844a0.js.map (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg (100%) rename {cardTrainerServer/cardTrainerServerHowToRun => memoryTrainerServer/memoryTrainerServerIntroduction}/src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/task-info.yaml (100%) rename {cardTrainerServer/cardTrainerServerIntroduction => memoryTrainerServer/memoryTrainerServerIntroduction}/task.md (100%) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt deleted file mode 100644 index 3292f4f5..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt +++ /dev/null @@ -1,16 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.card - -@JvmInline -value class Front(val capital: String) - -@JvmInline -value class Back(val country: String) - -data class Card( - val front: Front, - val back: Back, -) - -fun interface CardSequenceGenerator { - fun generateCards(): List -} diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt deleted file mode 100644 index deceac33..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt +++ /dev/null @@ -1,17 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.card - -import card.trainer.JsCardTrainerModel -import jetbrains.kotlin.course.card.trainer.util.toJsCard -import org.springframework.web.bind.annotation.* - -@RestController -@RequestMapping("/api/cards/") -class CardResource(val service: CardService) { - @CrossOrigin - @GetMapping("/next") - fun getNextCard(): JsCardTrainerModel = service.getNextCard().toJsCard() - - @CrossOrigin - @GetMapping("/newGame") - fun startNewGame(): JsCardTrainerModel = service.startNewGame().toJsCard() -} diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt deleted file mode 100644 index f9f0f384..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt +++ /dev/null @@ -1,27 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.card - -import jetbrains.kotlin.course.card.trainer.util.countries -import org.springframework.stereotype.Service - -@Service -class CardService { - companion object { - private val randomCardGenerator = CardSequenceGenerator { - countries.map { (capital, country) -> Card(Front(capital), Back(country)) }.shuffled() - } - - private var cards = generateNewCardsSequence() - - private fun generateNewCardsSequence() = randomCardGenerator.generateCards().toMutableList() - } - - fun getNextCard(): Card { - require(cards.isNotEmpty()) { "The cards list is empty!" } - return cards.removeFirst() - } - - fun startNewGame(): Card { - cards = generateNewCardsSequence() - return getNextCard() - } -} diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt deleted file mode 100644 index 001dda5c..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt +++ /dev/null @@ -1,8 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.stat - -import jetbrains.kotlin.course.card.trainer.card.Back - -data class Stat( - val knownBacks: List, - val unknownBacks: List, -) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt deleted file mode 100644 index f79c20ac..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt +++ /dev/null @@ -1,24 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.stat - -import org.springframework.web.bind.annotation.* - -// We can not use a typealias here because the Spring framework can not parse it -class RoundStat : ArrayList() -class Result ( - val known: RoundStat, - val unknown: RoundStat -) - -@RestController -@RequestMapping("/api/stat/") -class StatResource(val service: StatService) { - @CrossOrigin - @PostMapping("/save") - fun saveGameResults( - @RequestBody body: Result, - ) = service.save(body.known, body.unknown) - - @CrossOrigin - @GetMapping("/history") - fun getAllGameResults() = service.getHistory() -} diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt deleted file mode 100644 index afa1ba0b..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt +++ /dev/null @@ -1,22 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.stat - -import jetbrains.kotlin.course.card.trainer.card.Back -import org.springframework.stereotype.Service - -@Service -class StatService { - companion object { - private val history: MutableList = mutableListOf() - } - - fun getHistory() = history.reversed() - - fun save(known: List, unknown: List) { - history.add( - Stat( - known.map { Back((it)) }, - unknown.map { Back((it)) }, - ) - ) - } -} diff --git a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt b/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt deleted file mode 100644 index eab7a35e..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt +++ /dev/null @@ -1,6 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.util - -import card.trainer.JsCardTrainerModel -import jetbrains.kotlin.course.card.trainer.card.Card - -fun Card.toJsCard(): JsCardTrainerModel = JsCardTrainerModel(front.capital, back.country) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/task-info.yaml b/cardTrainerServer/cardTrainerServerFinishGame/task-info.yaml deleted file mode 100644 index 5ad79675..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/task-info.yaml +++ /dev/null @@ -1,83 +0,0 @@ -type: edu -custom_name: Card Trainer Project - Finish the Game -files: -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt - visible: true -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardModel.kt - visible: true -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardService.kt - visible: true -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/card/CardResource.kt - visible: false -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatModel.kt - visible: true -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatResource.kt - visible: false -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/stat/StatService.kt - visible: true -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Converters.kt - visible: false -- name: src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt - visible: false -- name: test/Tests.kt - visible: false -- name: test/CardTestClass.kt - visible: false -- name: test/CardSequenceGeneratorTestClass.kt - visible: false -- name: test/CardServiceTestClass.kt - visible: false -- name: test/StatTestClass.kt - visible: false -- name: test/StatServiceTestClass.kt - visible: false -- name: src/main/resources/static/static/js/main.d2e844a0.js - visible: false -- name: src/main/resources/static/static/js/main.d2e844a0.js.map - visible: false -- name: src/main/resources/static/static/js/787.de30ccfb.chunk.js - visible: false -- name: src/main/resources/static/static/js/787.de30ccfb.chunk.js.map - visible: false -- name: src/main/resources/static/static/js/main.d2e844a0.js.LICENSE.txt - visible: false -- name: src/main/resources/static/static/css/main.b4de2bbf.css - visible: false -- name: src/main/resources/static/static/css/main.b4de2bbf.css.map - visible: false -- name: src/main/resources/static/static/media/back.578d2b1544fe8bc2e2ec.svg - visible: false -- name: src/main/resources/static/static/media/know.0fb122e6ade5c1b93f61.svg - visible: false -- name: src/main/resources/static/static/media/stats.127dcf3dc65bb4121d5a.svg - visible: false -- name: src/main/resources/static/static/media/big_card.b9fbc88cc98ea6fd7147.svg - visible: false -- name: src/main/resources/static/static/media/dontknow.67ebf471040d40c46b2a.svg - visible: false -- name: src/main/resources/static/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg - visible: false -- name: src/main/resources/static/static/media/small-card.5b4cefb99fcb6a8cdacc.svg - visible: false -- name: src/main/resources/static/static/media/finish_game.2e4ab89d10148dcafb77.svg - visible: false -- name: src/main/resources/static/static/media/play_button.aad770749eabbe8ac9b1.svg - visible: false -- name: src/main/resources/static/static/media/big_card_front.faa5775005a2e1fe4f63.svg - visible: false -- name: src/main/resources/static/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg - visible: false -- name: src/main/resources/static/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg - visible: false -- name: src/main/resources/static/index.html - visible: false -- name: src/main/resources/static/robots.txt - visible: false -- name: src/main/resources/static/favicon.ico - visible: false -- name: src/main/resources/static/manifest.json - visible: false -- name: src/main/resources/static/asset-manifest.json - visible: false -- name: src/main/resources/application.properties - visible: false diff --git a/cardTrainerServer/cardTrainerServerFinishGame/task.md b/cardTrainerServer/cardTrainerServerFinishGame/task.md deleted file mode 100644 index a24524ef..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/task.md +++ /dev/null @@ -1,57 +0,0 @@ -Wow! You've almost finished the project! This is the last step. -In this step, you need to add statistics to the game. - -First of all, you need to add a class `Stat` to the `jetbrains.kotlin.course.card.trainer.stat` package to store statistics: - -- it must have two properties in the primary constructor: - - `knownBacks` with `List` type to store known countries; - - `unknownBacks` with `List` type to store unknown countries. - -Next, you need to implement several methods in the already defined class `StatService` -in the package `jetbrains.kotlin.course.card.trainer.card`: -- add a `history` property to the companion object with type `MutableList` and initialize it with an empty list; -- implement the method `save`, which `adds` new `Stat` to `history`; -- implement the method `getHistory`, which returns _reversed_ `history`. - - -Hooray! After finishing this step, the application will work well: - -![The current state of the application](../../utils/src/main/resources/images/states/cardTrainer/state2.gif) - -If you have any difficulties, **hints will help you solve this task**. - ----- - -### Hints - -
- -To create a new _mutable_ list, you can use [`mutableListOf`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/mutable-list-of.html): - -```kotlin -val mutableList = mutableListOf(1, 2, 3) -``` -
- -
- -If you need to get a list in which the elements are in reverse order, -you can either loop through the elements of the original list from the end to the beginning and -return a new list or use the built-in [`reversed`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/reversed.html) function: - - ```kotlin - val numbers = listOf(1, 2, 3, 4) - val reversedList = mutableListOf() - for (i in numbers.size - 1 downTo 0) { - reversedList.add(numbers[i]) - } - println(reversedList) // [4, 3, 2, 1] - ``` - -It is the **same** as - ```kotlin - val numbers = listOf(1, 2, 3, 4) - val reversedList = numbers.reversed() - println(reversedList) // [4, 3, 2, 1] - ``` -
diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/CardSequenceGeneratorTestClass.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/CardSequenceGeneratorTestClass.kt deleted file mode 100644 index 9d63c0bf..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/CardSequenceGeneratorTestClass.kt +++ /dev/null @@ -1,20 +0,0 @@ -import models.ClassType -import models.KotlinType -import models.TestClass -import models.TestMethod - -internal val cardSequenceGeneratorTestClass = TestClass( - "CardSequenceGenerator", - "jetbrains.kotlin.course.card.trainer.card", - classType = ClassType.SAM_INTERFACE, - customMethods = listOf( - TestMethod( - "generateCards", - KotlinType( - "List", - params = listOf("jetbrains.kotlin.course.card.trainer.card.Card") - ), - returnTypeJava = "List", - ), - ), -) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/CardServiceTestClass.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/CardServiceTestClass.kt deleted file mode 100644 index acb9024f..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/CardServiceTestClass.kt +++ /dev/null @@ -1,67 +0,0 @@ -import models.* - -internal val getNextCardMethod = TestMethod( - name = "getNextCard", - returnType = KotlinType("jetbrains.kotlin.course.card.trainer.card.Card"), - returnTypeJava = "Card", -) - -internal val startNewGameMethod = TestMethod( - name = "startNewGame", - returnType = KotlinType("jetbrains.kotlin.course.card.trainer.card.Card"), - returnTypeJava = "Card", -) - -internal val generateNewCardsSequenceMethod = TestMethod( - name = "generateNewCardsSequence", - returnType = KotlinType( - "List", - params = listOf("jetbrains.kotlin.course.card.trainer.card.Card") - ), - returnTypeJava = "List", - visibility = Visibility.PRIVATE -) - -internal val cardsVariable = Variable( - name = "cards", - javaType = "List", - kotlinType = KotlinType( - "MutableList", - params = listOf("jetbrains.kotlin.course.card.trainer.card.Card") - ), - // Because it is inside companion object - visibility = Visibility.PRIVATE, - mutability = VariableMutability.VAR, - isStatic = true, -) - -internal val cardServiceTestClass = TestClass( - "CardService", - "jetbrains.kotlin.course.card.trainer.card", - declaredFields = listOf( - Variable( - name = "randomCardGenerator", - javaType = "CardSequenceGenerator", - kotlinType = KotlinType( - "jetbrains.kotlin.course.card.trainer.card.CardSequenceGenerator", - ), - // Because it is inside companion object - visibility = Visibility.PRIVATE, - mutability = VariableMutability.VAL, - isStatic = true, - ), - cardsVariable - ), - customMethods = listOf( - getNextCardMethod, - startNewGameMethod - ), -) - -internal val cardServiceCompanionTestClass = TestClass( - "CardService\$Companion", - "jetbrains.kotlin.course.card.trainer.card", - customMethods = listOf( - generateNewCardsSequenceMethod - ) -) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/CardTestClass.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/CardTestClass.kt deleted file mode 100644 index cebc20fa..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/CardTestClass.kt +++ /dev/null @@ -1,35 +0,0 @@ -import models.* - -internal val frontReturnKotlinType = KotlinType( - "String", - abbreviation = "jetbrains.kotlin.course.card.trainer.card.Front" -) - -internal val backReturnKotlinType = KotlinType( - "String", - abbreviation = "jetbrains.kotlin.course.card.trainer.card.Back" -) - -internal val cardTestClass = TestClass( - "Card", - "jetbrains.kotlin.course.card.trainer.card", - isDataClass = true, - declaredFields = listOf( - Variable( - name = "front", - javaType = "String", - kotlinType = frontReturnKotlinType, - visibility = Visibility.PUBLIC, - mutability = VariableMutability.VAL, - isInPrimaryConstructor = true, - ), - Variable( - name = "back", - javaType = "String", - kotlinType = backReturnKotlinType, - visibility = Visibility.PUBLIC, - mutability = VariableMutability.VAL, - isInPrimaryConstructor = true, - ), - ), -) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/StatServiceTestClass.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/StatServiceTestClass.kt deleted file mode 100644 index 52dca7cc..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/StatServiceTestClass.kt +++ /dev/null @@ -1,59 +0,0 @@ -import models.* - -internal val historyVariable = Variable( - name = "history", - javaType = "List", - kotlinType = KotlinType( - "MutableList", - params = listOf("jetbrains.kotlin.course.card.trainer.stat.Stat") - ), - // Because it is inside companion object - visibility = Visibility.PRIVATE, - mutability = VariableMutability.VAR, - isStatic = true, -) - -internal val getHistoryMethod = TestMethod( - name = "getHistory", - returnType = KotlinType( - "List", - params = listOf("jetbrains.kotlin.course.card.trainer.stat.Stat") - ), - returnTypeJava = "List", -) - -internal val saveMethod = TestMethod( - name = "save", - returnType = KotlinType("Unit"), - returnTypeJava = "void", - arguments = listOf( - Variable( - name = "known", - javaType = "List", - kotlinType = KotlinType("List", params = listOf("kotlin.String")), - ), - Variable( - name = "unknown", - javaType = "List", - kotlinType = KotlinType("List", params = listOf("kotlin.String")), - ) - ) -) - - -internal val statServiceTestClass = TestClass( - "StatService", - "jetbrains.kotlin.course.card.trainer.stat", - declaredFields = listOf( - historyVariable - ), - customMethods = listOf( - getHistoryMethod, - saveMethod - ), -) - -internal val statServiceCompanionTestClass = TestClass( - "StatService\$Companion", - "jetbrains.kotlin.course.card.trainer.stat" -) \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/StatTestClass.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/StatTestClass.kt deleted file mode 100644 index 35be4bdc..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/StatTestClass.kt +++ /dev/null @@ -1,25 +0,0 @@ -import models.* - -internal val statTestClass = TestClass( - "Stat", - "jetbrains.kotlin.course.card.trainer.stat", - isDataClass = true, - declaredFields = listOf( - Variable( - name = "knownBacks", - javaType = "List", - kotlinType = KotlinType("List", params = listOf("jetbrains.kotlin.course.card.trainer.card.Back")), - visibility = Visibility.PUBLIC, - mutability = VariableMutability.VAL, - isInPrimaryConstructor = true, - ), - Variable( - name = "unknownBacks", - javaType = "List", - kotlinType = KotlinType("List", params = listOf("jetbrains.kotlin.course.card.trainer.card.Back")), - visibility = Visibility.PUBLIC, - mutability = VariableMutability.VAL, - isInPrimaryConstructor = true, - ), - ), -) diff --git a/cardTrainerServer/cardTrainerServerFinishGame/test/Tests.kt b/cardTrainerServer/cardTrainerServerFinishGame/test/Tests.kt deleted file mode 100644 index 282ae334..00000000 --- a/cardTrainerServer/cardTrainerServerFinishGame/test/Tests.kt +++ /dev/null @@ -1,222 +0,0 @@ -import jetbrains.kotlin.course.card.trainer.util.countries -import models.ConstructorGetter -import models.TestMethodInvokeData -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import java.lang.reflect.Field -import kotlin.jvm.internal.DefaultConstructorMarker - -class Test { - @Test - fun statTestClassTest() { - val clazz = statTestClass.checkBaseDefinition() - statTestClass.checkFieldsDefinition(clazz) - - statTestClass.checkConstructors( - clazz, listOf( - ConstructorGetter( - parameterTypes = listOf(List::class.java, List::class.java), - ), - ) - ) - } - - @Test - fun statServiceTestClassTest() { - val clazz = statServiceTestClass.checkBaseDefinition() - statServiceCompanionTestClass.checkBaseDefinition() - statServiceTestClass.checkFieldsDefinition(clazz, false) - statServiceTestClass.checkConstructors( - clazz, listOf( - ConstructorGetter(), - ) - ) - statServiceTestClass.checkDeclaredMethods(clazz) - } - - @Test - fun saveMethodTest() { - val invokeData = TestMethodInvokeData(statServiceTestClass, saveMethod) - val historyField = getField(invokeData, historyVariable.name) - - val n = 100 - repeat(n) { - val (known, unknown) = invokeSaveMethod(invokeData) - val historyRes = historyField.get(invokeData.instance).toString() - val knownFields = known.convertToBack() - assert(knownFields.all { it in historyRes }) { "Try to call ${saveMethod.name} method with input data: known = $known and unknown = $unknown. All countries should be in ${historyVariable.name} after this call, but they were not" } - val unknownFields = unknown.convertToBack() - assert(unknownFields.all { it in historyRes }) { "Try to call ${saveMethod.name} method with input data: known = $known and unknown = $unknown. All countries should be in ${historyVariable.name} after this call, but they were not" } - val stat = convertToStat(known, unknown) - assert(stat in historyRes) { { "Try to call ${saveMethod.name} method with input data: known = $known and unknown = $unknown. The stat $stat should be in ${historyVariable.name} after this call, but it was not" } } - } - } - - private fun List.convertToBack() = map { "Back(country=$it)" } - - private fun convertToStat(known: List, unknown: List) = - "Stat(knownBacks=[${known.convertToBack().joinToString(", ")}], unknownBacks=[${ - unknown.convertToBack().joinToString(", ") - }])" - - - private fun invokeSaveMethod(invokeData: TestMethodInvokeData): Pair, List> { - val shuffled = countries.values.shuffled() - val known = shuffled.take(5) - val unknown = shuffled.takeLast(5) - invokeData.method.invoke(invokeData.instance, known, unknown) - return Pair(known, unknown) - } - - @Test - fun getHistoryMethodTest() { - val saveInvokeData = TestMethodInvokeData(statServiceTestClass, saveMethod) - - val invokeData = TestMethodInvokeData(statServiceTestClass, getHistoryMethod) - var history = invokeData.method.invoke(invokeData.instance).toString() - assert(history == "[]") { "For empty ${historyVariable.name} ${getHistoryMethod.name} method should return an empty list" } - - val n = 100 - val actualHistory = mutableListOf() - repeat(n) { - val (known, unknown) = invokeSaveMethod(saveInvokeData) - val stat = convertToStat(known, unknown) - actualHistory.add(stat) - - history = invokeData.method.invoke(invokeData.instance).toString() - assert( - actualHistory.reversed().toString() == history - ) { "${getHistoryMethod.name} method should return a reversed list of ${historyVariable.name}" } - } - } - - @Test - fun cardServiceTest() { - val clazz = cardServiceTestClass.checkBaseDefinition() - val companion = cardServiceCompanionTestClass.checkBaseDefinition() - cardServiceCompanionTestClass.checkDeclaredMethods(companion) - cardServiceTestClass.checkFieldsDefinition(clazz, false) - cardServiceTestClass.checkConstructors( - clazz, listOf( - ConstructorGetter(), - ) - ) - cardServiceTestClass.checkDeclaredMethods(clazz) - } - - private fun getField(invokeData: TestMethodInvokeData, name: String): Field { - val field = invokeData.clazz.declaredFields.find { it.name == name } - assert(field != null) { "Can not find field ${cardsVariable.name}" } - field!!.isAccessible = true - return field - } - - @Test - fun getNextCardMethodTest() { - val invokeData = TestMethodInvokeData(cardServiceTestClass, getNextCardMethod) - val cardsField = getField(invokeData, cardsVariable.name) - - val n = countries.size - val previousCards = mutableListOf() - - var cardsRes = cardsField.get(invokeData.instance).toString() - assert(cardsRes.parseCards().size - 1 == countries.size) { "The initial number of cards in ${cardsVariable.name} should be the same with the number of pairs in the countries map" } - repeat(n) { i -> - val card = cardServiceTestClass.invokeMethodWithoutArgs( - clazz = invokeData.clazz, - instance = invokeData.instance, - javaMethod = invokeData.method, - ).toString() - assert(card !in previousCards) { "${getNextCardMethod.name} should return new card each call" } - previousCards.add(card) - - cardsRes = cardsField.get(invokeData.instance).toString() - assert(cardsRes.parseCards().size == countries.size - i) { "After each call of ${getNextCardMethod.name} you need to drop one card from ${cardsVariable.name}" } - } - cardsRes = cardsField.get(invokeData.instance).toString() - assert(cardsRes == "[]") { "If we run ${getNextCardMethod.name} $n times the list of cards in ${cardsVariable.name} should be empty" } - - assertThrows("You need to throw an error if ${cardsVariable.name} is empty and you try to run ${getNextCardMethod.name} method") { - cardServiceTestClass.invokeMethodWithoutArgs( - clazz = invokeData.clazz, - instance = invokeData.instance, - javaMethod = invokeData.method, - ).toString() - } - } - - private fun String.parseCards() = drop(1).dropLast(1).split("Card(") - - @Test - fun randomCardGeneratorMethodTest() { - val constructor = DefaultConstructorMarker::class.java.declaredConstructors.first() - constructor.isAccessible = true - val defaultConstructorMarkerInstance = constructor.newInstance() - - val invokeData = TestMethodInvokeData( - cardServiceCompanionTestClass, - generateNewCardsSequenceMethod, - constructorArgumentsTypes = listOf(DefaultConstructorMarker::class.java), - constructorArguments = listOf(defaultConstructorMarkerInstance) - ) - val previousSequences = mutableListOf() - val n = 100 - repeat(n) { - val cardsSequence = cardServiceCompanionTestClass.invokeMethodWithoutArgs( - clazz = invokeData.clazz, - instance = invokeData.instance, - javaMethod = invokeData.method, - isPrivate = true - ).toString() - assert(cardsSequence !in previousSequences) { "You need to generate different card sequences with ${generateNewCardsSequenceMethod.name} method" } - previousSequences.add(cardsSequence) - val cards = cardsSequence.parseCards() - assert(cards.size - 1 == countries.keys.size) { "The number of generated card sequence should be the same with the number of pairs in the countries maps" } - assert(cards.toSet().size == cards.size) { "All pairs in the generated card sequence should be different" } - } - } - - @Test - fun startNewGameMethodTest() { - val invokeData = TestMethodInvokeData(cardServiceTestClass, startNewGameMethod) - val cardsField = getField(invokeData, cardsVariable.name) - - val previousSequences = mutableListOf() - val n = 100 - repeat(n) { - cardServiceTestClass.invokeMethodWithoutArgs( - clazz = invokeData.clazz, - instance = invokeData.instance, - javaMethod = invokeData.method, - ).toString() - - val cardsRes = cardsField.get(invokeData.instance).toString() - assert(cardsRes !in previousSequences) { "You need to generate different card sequences with ${generateNewCardsSequenceMethod.name} method when call ${startNewGameMethod.name} method" } - previousSequences.add(cardsRes) - assert(cardsRes.parseCards().size == countries.keys.size) { "When you call ${startNewGameMethod.name} you need to drop one card from ${cardsVariable.name}" } - } - - } - - @Test - fun cardSequenceGeneratorTestClassTest() { - val clazz = cardSequenceGeneratorTestClass.checkBaseDefinition() - cardSequenceGeneratorTestClass.checkNoConstructors(clazz) - cardSequenceGeneratorTestClass.checkDeclaredMethods(clazz) - } - - @Test - fun cardTestClassTest() { - val clazz = cardTestClass.checkBaseDefinition() - cardTestClass.checkFieldsDefinition(clazz) - - cardTestClass.checkConstructors( - clazz, listOf( - ConstructorGetter( - parameterTypes = listOf(String::class.java, String::class.java), - toAddDefaultConstructorMarker = true - ), - ) - ) - } -} diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt b/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt deleted file mode 100644 index d8161997..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/CardTrainerApplication.kt +++ /dev/null @@ -1,13 +0,0 @@ -package jetbrains.kotlin.course.card.trainer - -import org.springframework.boot.autoconfigure.SpringBootApplication -import org.springframework.boot.runApplication - -@SpringBootApplication -class CardTrainerApplication - -@Suppress("SpreadOperator") -fun main(args: Array) { - runApplication(*args) -} - diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt b/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt deleted file mode 100644 index 02fef7b9..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/kotlin/jetbrains/kotlin/course/card/trainer/util/Countries.kt +++ /dev/null @@ -1,155 +0,0 @@ -package jetbrains.kotlin.course.card.trainer.util - -private val newLineSymbol = System.lineSeparator() - -val countries = mapOf( - "Kabul" to "Afghanistan", - "Tirane" to "Albania", - "Algiers" to "Algeria", - "Andorra la${newLineSymbol}Vella" to "Andorra", - "Luanda" to "Angola", - "Buenos${newLineSymbol}Aires" to "Argentina", - "Yerevan" to "Armenia", - "Canberra" to "Australia", - "Vienna" to "Austria", - "Baku" to "Azerbaijan", - "Manama" to "Bahrain", - "Dhaka" to "Bangladesh", - "Bridgetown" to "Barbados", - "Minsk" to "Belarus", - "Brussels" to "Belgium", - "Belmopan" to "Belize", - "Thimphu" to "Bhutan", - "Sarajevo" to "Bosnia and${newLineSymbol}Herzegovina", - "Gaborone" to "Botswana", - "Brasilia" to "Brazil", - "Sofia" to "Bulgaria", - "Faso" to "Burkina", - "Gitega" to "Burundi", - "Yaounde" to "Cameroon", - "Ottawa" to "Canada", - "Praia" to "Cape${newLineSymbol}Verde", - "Bangui" to "Central${newLineSymbol}African${newLineSymbol}Republic", - "Santiago" to "Chile", - "Beijing" to "China", - "Bogota" to "Colombia", - "Moroni" to "Comoros", - "Brazzaville" to "Republic of${newLineSymbol}the Congo", - "San Jose" to "Costa Rica", - "Zagreb" to "Croatia", - "Havana" to "Cuba", - "Nicosia" to "Cyprus", - "Prague" to "Czech${newLineSymbol}Republic", - "Copenhagen" to "Denmark", - "Djibouti" to "Djibouti", - "Roseau" to "Dominica", - "Santo${newLineSymbol}Domingo" to "Dominican${newLineSymbol}Republic", - "Quito" to "Ecuador", - "Cairo" to "Egypt", - "Asmara" to "Eritrea", - "Tallinn" to "Estonia", - "Addis" to "Ethiopia", - "Suva" to "Fiji", - "Helsinki" to "Finland", - "Paris" to "France", - "Libreville" to "Gabon", - "Tbilisi" to "Georgia", - "Berlin" to "Germany", - "Accra" to "Ghana", - "Athens" to "Greece", - "Guatemala" to "Guatemala", - "Georgetown" to "Guyana", - "Tegucigalpa" to "Honduras", - "Budapest" to "Hungary", - "Reykjavik" to "Iceland", - "New Delhi" to "India", - "Jakarta" to "Indonesia", - "Tehran" to "Iran", - "Baghdad" to "Iraq", - "Dublin" to "Ireland", - "Rome" to "Italy", - "Kingston" to "Jamaica", - "Tokyo" to "Japan", - "Amman" to "Jordan", - "Nur${newLineSymbol}Sultan" to "Kazakhstan", - "Nairobi" to "Kenya", - "Pyongyang" to "North${newLineSymbol}Korea", - "Seoul" to "South${newLineSymbol}Korea", - "Pristina" to "Kosovo", - "Bishkek" to "Kyrgyzstan", - "Vientiane" to "Laos", - "Riga" to "Latvia", - "Beirut" to "Lebanon", - "Maseru" to "Lesotho", - "Monrovia" to "Liberia", - "Tripoli" to "Libya", - "Vilnius" to "Lithuania", - "Luxembourg" to "Luxembourg", - "Skopje" to "Macedonia", - "Lilongwe" to "Malawi", - "Kuala${newLineSymbol}Lumpur" to "Malaysia", - "Male" to "Maldives", - "Bamako" to "Mali", - "Valletta" to "Malta", - "Nouakchott" to "Mauritania", - "Mexico${newLineSymbol}City" to "Mexico", - "Chisinau" to "Moldova", - "Monte${newLineSymbol}Carlo" to "Monaco", - "Ulaanbaatar" to "Mongolia", - "Podgorica" to "Montenegro", - "Rabat" to "Morocco", - "Maputo" to "Mozambique", - "Windhoek" to "Namibia", - "Kathmandu" to "Nepal", - "Amsterdam" to "Netherlands", - "Wellington" to "New Zealand", - "Managua" to "Nicaragua", - "Niamey" to "Niger", - "Abuja" to "Nigeria", - "Oslo" to "Norway", - "Muscat" to "Oman", - "Islamabad" to "Pakistan", - "Melekeok" to "Palau", - "Asuncion" to "Paraguay", - "Lima" to "Peru", - "Manila" to "Philippines", - "Warsaw" to "Poland", - "Lisbon" to "Portugal", - "Doha" to "Qatar", - "Bucharest" to "Romania", - "Moscow" to "Russia", - "Kigali" to "Rwanda", - "Apia" to "Samoa", - "Dakar" to "Senegal", - "Belgrade" to "Serbia", - "Victoria" to "Seychelles", - "Singapore" to "Singapore", - "Bratislava" to "Slovakia", - "Ljubljana" to "Slovenia", - "Mogadishu" to "Somalia", - "Madrid" to "Spain", - "Colombo" to "Sri Lanka", - "Khartoum" to "Sudan", - "Paramaribo" to "Suriname", - "Mbabane" to "Swaziland", - "Stockholm" to "Sweden", - "Berne" to "Switzerland", - "Damascus" to "Syria", - "Taipei" to "Taiwan", - "Dushanbe" to "Tajikistan", - "Bangkok" to "Thailand", - "Lome" to "Togo", - "Tunis" to "Tunisia", - "Ankara" to "Turkey", - "Ashgabat" to "Turkmenistan", - "Kiev" to "Ukraine", - "Abu Dhabi" to "United${newLineSymbol}Arab${newLineSymbol}Emirates", - "London" to "United${newLineSymbol}Kingdom", - "Washington" to "USA", - "Tashkent" to "Uzbekistan", - "Caracas" to "Venezuela", - "Hanoi" to "Vietnam", - "Sanaa" to "Yemen", - "Lusaka" to "Zambia", - "Harare" to "Zimbabwe" -) diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/application.properties b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/application.properties deleted file mode 100644 index 1c84ec79..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.web.resources.cache.cachecontrol.max-age=0 \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/asset-manifest.json b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/asset-manifest.json deleted file mode 100644 index 6ea7ddfa..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/asset-manifest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "files": { - "main.css": "/static/css/main.b4de2bbf.css", - "main.js": "/static/js/main.d2e844a0.js", - "static/js/787.de30ccfb.chunk.js": "/static/js/787.de30ccfb.chunk.js", - "static/media/stats.svg": "/static/media/stats.127dcf3dc65bb4121d5a.svg", - "static/media/logo.svg": "/static/media/logo.167e6cdb952b1683e98c7820458359a8.svg", - "static/media/finish_game.svg": "/static/media/finish_game.2e4ab89d10148dcafb77.svg", - "static/media/play_button.svg": "/static/media/play_button.aad770749eabbe8ac9b1.svg", - "static/media/dontknow.svg": "/static/media/dontknow.67ebf471040d40c46b2a.svg", - "static/media/back.svg": "/static/media/back.578d2b1544fe8bc2e2ec.svg", - "static/media/know.svg": "/static/media/know.0fb122e6ade5c1b93f61.svg", - "index.html": "/index.html", - "static/media/Kotlin_bg.svg": "/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg", - "static/media/Kotlin_bg_white.svg": "/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg", - "static/media/big_card_front.svg": "/static/media/big_card_front.faa5775005a2e1fe4f63.svg", - "static/media/big_card.svg": "/static/media/big_card.b9fbc88cc98ea6fd7147.svg", - "static/media/small-card.svg": "/static/media/small-card.5b4cefb99fcb6a8cdacc.svg", - "main.b4de2bbf.css.map": "/static/css/main.b4de2bbf.css.map", - "main.d2e844a0.js.map": "/static/js/main.d2e844a0.js.map", - "787.de30ccfb.chunk.js.map": "/static/js/787.de30ccfb.chunk.js.map" - }, - "entrypoints": [ - "static/css/main.b4de2bbf.css", - "static/js/main.d2e844a0.js" - ] -} \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/favicon.ico b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/favicon.ico deleted file mode 100644 index 397d8fdf726af1053119600e8e05b3de6563ff6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67646 zcmeI*3rH1B6bJBYPaj!UqG5$!4@@E?L?j|42niyD5JH3q1PMeCArOTgL770Zp7DbwwmRf3gK98YY^WMF?cV}jIXZ{n~b-j<7^ZU=y4fYla zCCvS~cri5h`M*$ZVnQe*6bj|eeas!=gY(DvCg0kX7n=Y0^Y#2^n){3o!)lO{l0xUs zorAk!?!4C%6BFtD`SUbBJ`R7w{1@yeCnt#qdcQe8`~J0uzuETiH^V>DzGr(L=>K|W zz{(!}X4}JGUw_{Be15<1dp=u78tDJ}Wgu4156=Po_40RO&pCjeeZ|!dp5Qj=>Os~ z;P;*%o(K4g^$(Ig=K%iV{DWo>f3xl3FUCKJ`=0H2p#QteK#=X>Z?--B)@|BtA9FiiF5b+28!mg?&2===BYx-&;z zpUM8b_BCtPP;G53jg5^(t&z^(Fx{Wmzk2m*s;;i4uV26FOdWA;@c;8~0IOE5qBCdC z(3dY?BGyUQgYf_RZ-D$eVMRp+eg6DeSMFu&g8yHCuEmNKE9lgzQ#3d@xU5z>9)SN+ z|Ah>cm6g%Qj~{g;U$Q3nFZbt~BqStIX=y3FfB$|-y>$Bm{*nC`>QYitLIVQ>y0I^= zXJMWAJ9-X|9Xm#E-@aX}nNBz09^E~>HpRuo^!oK{o#^M+623;_;H{!0Bd{J(dx8s-#&Wy@L^yx5N%yJZa){fxw&-z{{28^0M7QEt!kB% zlS6m!-VIy^tk#6@Im^b*oja+!yE{-BfUz^2%}94f^%#moGD5cOAH2{5jdQX%n@yw9w4VjPEi4*Z5tX)GjS8jjmt6?z;>)Sp)9t zE-UNTucxM_CYqX>@=YIrsXJ4r^;@@Y9bLV8m45#G>5B|Foj>mHJ}=41$#nVhWnWx- z4o~-<@zgLWDTyvzxZwHq=kd%Pj}em@e*Y1E4}$UWanF7hz*3B5ymjRFAUJ#WEPea- z&65noJ8wKrTyFUK^O~9(8XX-~o&h+Db97TnzW%(bs)|NNMwDj2&7ARAvDxA4&nqh{ zX?S>8Sq5Mz*3fM|IRmFppQfRqAtf1bJ6}9re17;n2+GUL>C>lA(lY=*@qQv|%GaNt zJb98neE1+W10v>%=a7>j&cKNiC+OX~chWKdJ2`eD>w5h7aq92ymy!XI^Tcz>%hJ)K zN9oO*H^MUjGkIpBYkTC#5qkCNmCy``o+F-5Zk~#YisU;3uL3;lD zxsVLVm>-@~ex?cw3+dUjXRb2Qf2H@h2i^{rh-n^MwTU#T(2Z73Y;I+KV+Qy9= zskym%+4biz@yN}NL0-H*Ueo)`aUZyJ=@R>6paQ4>Du4>00;qst75E=*A63r) diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/index.html b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/index.html deleted file mode 100644 index 4610c045..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/index.html +++ /dev/null @@ -1 +0,0 @@ -Codenames
\ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/manifest.json b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/manifest.json deleted file mode 100644 index ac1f9c61..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "Codenames", - "name": "Codenames game project", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/robots.txt b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/robots.txt deleted file mode 100644 index e9e57dc4..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css deleted file mode 100644 index 47d73d0e..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css +++ /dev/null @@ -1,2 +0,0 @@ -body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.font-link-base{color:#000;font-family:Inter,sans-serif}.font-link-bold{font-family:Inter,sans-serif;font-weight:900}.font-link-light{font-family:Inter,sans-serif;font-weight:200}.App-header-base{background-repeat:no-repeat;background-size:cover;color:#fff;font-size:calc(10px + 2vmin)}.App-header-white{background-image:url(/static/media/Kotlin_bg_white.00acddcc6609eb49c481.svg)}.App-header-black{background-image:url(/static/media/Kotlin_bg.36ac84bcfc4b1fa64b64.svg)}.App-covers{height:20vmin;pointer-events:none}.App-big-name{font-size:10vmin;margin-bottom:2vmin;margin-top:2vmin}.App-small-name{color:#fff;font-size:4vmin;margin-bottom:2vmin;margin-top:0}.App-container{display:flex}.App-buttons-container,.App-container{align-items:center;flex-direction:column;justify-content:center}.App-buttons-container{display:block;min-height:5vmin}.App-display-flex{display:flex}.App-button-base{background-color:initial;background-position:50%;background-repeat:no-repeat;background-size:auto;border:none;color:#fff;cursor:pointer;font-size:100%;height:10vmin;margin-top:5vmin}.App-button-start{background-image:url(/static/media/play_button.aad770749eabbe8ac9b1.svg);background-size:contain;height:6vmin;margin-top:4vmin;width:30vmin}.App-card-container-base{align-items:center;background-repeat:no-repeat;background-size:100%;color:#000;cursor:pointer;display:flex;flex-direction:column;height:9vmin;justify-content:center;margin:2.5vmin;width:18vmin}.App-min-height{min-height:100vh}.App-cards-container{align-items:center;display:flex;flex-direction:column;justify-content:center}.App-flex-direction-row{flex-direction:row}.App-key-card-container{display:flex;flex-direction:row;height:40vmin;justify-content:center;pointer-events:none;width:40vmin}.App-key-card-container-row{height:8vmin}.App-key-card-square{background-position:50%;background-repeat:no-repeat;background-size:auto;height:8vmin;width:8vmin}.App-game-stat-item-container{display:flex;flex-direction:column;justify-content:center;margin-left:5vmin;margin-right:5vmin}.App-game-stat-item-amount{align-items:center;display:flex;font-size:2.5vmin;margin-bottom:3vmin;margin-left:2.5vmin;margin-top:-1vmin}.App-game-stat-container{display:flex;flex-direction:row;justify-content:center;width:100%}.App-game-show-key-card{background-size:contain;height:5vmin;width:25vmin}.App-game-finish-game{background-image:url(/static/media/finish_game.2e4ab89d10148dcafb77.svg);margin-left:1vmin;margin-right:1vmin}.App-game-finish-game,.App-game-stats{background-size:contain;height:5vmin;margin-top:2vmin;width:23vmin}.App-game-stats{background-image:url(/static/media/stats.127dcf3dc65bb4121d5a.svg)}.App-game-know{background-image:url(/static/media/know.0fb122e6ade5c1b93f61.svg);margin-left:1vmin;margin-right:1vmin}.App-game-dont-know,.App-game-know{background-size:contain;height:5vmin;margin-top:4vmin;width:23vmin}.App-game-dont-know{background-image:url(/static/media/dontknow.67ebf471040d40c46b2a.svg)}.App-back-button{background-image:url(/static/media/back.578d2b1544fe8bc2e2ec.svg);background-size:contain;height:5vmin;width:23vmin}.App-game-stat{color:#000;font-size:6vmin;margin-bottom:5vmin;margin-top:0}.App-card{align-items:center;background-image:url(/static/media/big_card.b9fbc88cc98ea6fd7147.svg);background-repeat:no-repeat;background-size:contain;cursor:pointer;display:flex;flex-direction:column;height:35vmin;justify-content:center;margin-bottom:3vmin;width:38vmin}.App-card-front{background-image:url(/static/media/big_card_front.faa5775005a2e1fe4f63.svg)}.App-card-p{color:#fff;font-size:5vmin;margin-left:-3vmin}.App-card-pre{color:#fff;text-align:center}.App-game-stat-column{margin-left:5vmin;margin-right:5vmin;max-height:65vmin;max-width:36vmin}.App-game-stat-column-p{color:#000;font-size:4vmin;text-align:center}.App-game-stat-row{flex-direction:row}.App-game-stat-row,.App-game-stat-row-item{align-items:center;display:flex;justify-content:center}.App-game-stat-row-item{background-image:url(/static/media/small-card.5b4cefb99fcb6a8cdacc.svg);background-repeat:no-repeat;background-size:contain;height:12vmin;margin-bottom:2vmin;margin-left:2vmin;margin-right:2vmin;padding:1vmin;width:12vmin}.App-game-stat-row-item-p{color:#fff;font-size:2.2vmin}.App-game-stat-column-p-small{font-size:3vmin;margin-bottom:1vmin;margin-top:1vmin;padding-left:2vmin} -/*# sourceMappingURL=main.b4de2bbf.css.map*/ \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css.map b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css.map deleted file mode 100644 index 6e5564df..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/css/main.b4de2bbf.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.b4de2bbf.css","mappings":"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","sources":["index.css","App.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".font-link-base {\n font-family: 'Inter', sans-serif;\n color: black;\n}\n\n.font-link-bold {\n font-family: 'Inter', sans-serif;\n font-weight: 900;\n}\n\n.font-link-light {\n font-family: 'Inter', sans-serif;\n font-weight: 200;\n}\n\n.App-header-base {\n font-size: calc(10px + 2vmin);\n color: white;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.App-header-white {\n background-image: url('assets/Kotlin_bg_white.svg');\n}\n\n.App-header-black {\n background-image: url('assets/Kotlin_bg.svg');\n}\n\n.App-covers {\n height: 20vmin;\n pointer-events: none;\n}\n\n.App-big-name {\n font-size: 10vmin;\n margin-top: 2vmin;\n margin-bottom: 2vmin;\n}\n\n.App-small-name {\n font-size: 4vmin;\n margin-top: 0;\n margin-bottom: 2vmin;\n color: white;\n}\n\n.App-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.App-buttons-container {\n min-height: 5vmin;\n display: block;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.App-display-flex {\n display: flex;\n}\n\n.App-button-base {\n height: 10vmin;\n margin-top: 5vmin;\n background-repeat: no-repeat;\n background-size: auto;\n background-color: transparent;\n border: none;\n background-position: center;\n cursor:pointer;\n color: white;\n font-size: 100%;\n}\n\n.App-button-start {\n background-image: url('assets/play_button.svg');\n width: 30vmin;\n height: 6vmin;\n margin-top: 4vmin;\n background-size: contain;\n}\n\n.App-card-container-base {\n background-repeat: no-repeat;\n background-size: 100%;\n height: 9vmin;\n width: 18vmin;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: black;\n margin: 2.5vmin;\n cursor: pointer;\n}\n\n.App-min-height {\n min-height: 100vh;\n}\n\n.App-cards-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.App-flex-direction-row {\n flex-direction: row;\n}\n\n.App-key-card-container {\n height: 40vmin;\n width: 40vmin;\n pointer-events: none;\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n\n.App-key-card-container-row {\n height: 8vmin;\n}\n\n.App-key-card-square {\n height: 8vmin;\n width: 8vmin;\n background-repeat: no-repeat;\n background-size: auto;\n background-position: center;\n}\n\n.App-game-stat-item-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 5vmin;\n margin-right: 5vmin;\n}\n\n.App-game-stat-item-amount {\n display: flex;\n align-items: center;\n font-size: 2.5vmin;\n margin-top: -1vmin;\n margin-left: 2.5vmin;\n margin-bottom: 3vmin;\n}\n\n.App-game-stat-container {\n display: flex;\n flex-direction: row;\n justify-content: center;\n width: 100%;\n}\n\n.App-game-show-key-card {\n height: 5vmin;\n width: 25vmin;\n /*background-image: url('assets/show_card.svg');*/\n background-size: contain;\n}\n\n.App-game-finish-game {\n height: 5vmin;\n width: 23vmin;\n background-image: url('assets/finish_game.svg');\n background-size: contain;\n margin-left: 1vmin;\n margin-right: 1vmin;\n margin-top: 2vmin;\n}\n\n.App-game-stats {\n height: 5vmin;\n width: 23vmin;\n background-image: url('assets/stats.svg');\n background-size: contain;\n margin-top: 2vmin;\n}\n\n.App-game-know {\n height: 5vmin;\n width: 23vmin;\n background-image: url('assets/know.svg');\n background-size: contain;\n margin-left: 1vmin;\n margin-right: 1vmin;\n margin-top: 4vmin;\n}\n\n.App-game-dont-know {\n height: 5vmin;\n width: 23vmin;\n background-image: url('assets/dontknow.svg');\n background-size: contain;\n margin-top: 4vmin;\n}\n\n.App-back-button {\n height: 5vmin;\n width: 23vmin;\n background-image: url('assets/back.svg');\n background-size: contain;\n}\n\n.App-game-stat {\n color: black;\n font-size: 6vmin;\n margin-top: 0;\n margin-bottom: 5vmin;\n}\n\n.App-card {\n width: 38vmin;\n height: 35vmin;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-bottom: 3vmin;\n background-repeat: no-repeat;\n background-size: contain;\n background-image: url('assets/big_card.svg');\n cursor: pointer;\n}\n\n.App-card-front {\n background-image: url('assets/big_card_front.svg');\n}\n\n.App-card-p {\n margin-left: -3vmin;\n color: white;\n font-size: 5vmin;\n}\n\n.App-card-pre {\n text-align: center;\n color: white;\n}\n\n.App-game-stat-column {\n margin-left: 5vmin;\n margin-right: 5vmin;\n max-height: 65vmin;\n max-width: 36vmin;\n}\n\n.App-game-stat-column-p {\n color: black;\n text-align: center;\n font-size: 4vmin;\n}\n\n.App-game-stat-row {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.App-game-stat-row-item {\n width: 12vmin;\n height: 12vmin;\n background-repeat: no-repeat;\n background-size: contain;\n background-image: url('assets/small-card.svg');\n margin-left: 2vmin;\n margin-right: 2vmin;\n padding: 1vmin;\n align-items: center;\n display: flex;\n margin-bottom: 2vmin;\n justify-content: center;\n}\n\n.App-game-stat-row-item-p {\n color: white;\n font-size: 2.2vmin;\n}\n\n.App-game-stat-column-p-small {\n font-size: 3vmin;\n margin-top: 1vmin;\n margin-bottom: 1vmin;\n padding-left: 2vmin;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js deleted file mode 100644 index 0be474b7..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkcard_trainer_client=self.webpackChunkcard_trainer_client||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,d=function(){return"hidden"===document.visibilityState?0:1/0},p=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=d(),p(),s((function(){setTimeout((function(){v=d(),p()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},d=c("layout-shift",v);d&&(n=m(i,r,t),f((function(){d.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),d=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]); -//# sourceMappingURL=787.de30ccfb.chunk.js.map \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map deleted file mode 100644 index fe13ece2..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/787.de30ccfb.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/787.de30ccfb.chunk.js","mappings":"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","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js b/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js deleted file mode 100644 index f6742866..00000000 --- a/cardTrainerServer/cardTrainerServerIntroduction/src/main/resources/static/static/js/main.d2e844a0.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.d2e844a0.js.LICENSE.txt */ -!function(){var e={569:function(e,t,n){e.exports=n(36)},381:function(e,t,n){"use strict";var r=n(589),o=n(297),a=n(301),l=n(774),i=n(804),u=n(145),s=n(411),c=n(789),f=n(531),d=n(795),p=n(261);e.exports=function(e){return new Promise((function(t,n){var h,m=e.data,y=e.headers,v=e.responseType;function g(){e.cancelToken&&e.cancelToken.unsubscribe(h),e.signal&&e.signal.removeEventListener("abort",h)}r.isFormData(m)&&r.isStandardBrowserEnv()&&delete y["Content-Type"];var b=new XMLHttpRequest;if(e.auth){var w=e.auth.username||"",k=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";y.Authorization="Basic "+btoa(w+":"+k)}var S=i(e.baseURL,e.url);function _(){if(b){var r="getAllResponseHeaders"in b?u(b.getAllResponseHeaders()):null,a={data:v&&"text"!==v&&"json"!==v?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:r,config:e,request:b};o((function(e){t(e),g()}),(function(e){n(e),g()}),a),b=null}}if(b.open(e.method.toUpperCase(),l(S,e.params,e.paramsSerializer),!0),b.timeout=e.timeout,"onloadend"in b?b.onloadend=_:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(_)},b.onabort=function(){b&&(n(new f("Request aborted",f.ECONNABORTED,e,b)),b=null)},b.onerror=function(){n(new f("Network Error",f.ERR_NETWORK,e,b,b)),b=null},b.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||c;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new f(t,r.clarifyTimeoutError?f.ETIMEDOUT:f.ECONNABORTED,e,b)),b=null},r.isStandardBrowserEnv()){var x=(e.withCredentials||s(S))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;x&&(y[e.xsrfHeaderName]=x)}"setRequestHeader"in b&&r.forEach(y,(function(e,t){"undefined"===typeof m&&"content-type"===t.toLowerCase()?delete y[t]:b.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(b.withCredentials=!!e.withCredentials),v&&"json"!==v&&(b.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&b.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(h=function(e){b&&(n(!e||e&&e.type?new d:e),b.abort(),b=null)},e.cancelToken&&e.cancelToken.subscribe(h),e.signal&&(e.signal.aborted?h():e.signal.addEventListener("abort",h))),m||(m=null);var E=p(S);E&&-1===["http","https","file"].indexOf(E)?n(new f("Unsupported protocol "+E+":",f.ERR_BAD_REQUEST,e)):b.send(m)}))}},36:function(e,t,n){"use strict";var r=n(589),o=n(49),a=n(773),l=n(777);var i=function e(t){var n=new a(t),i=o(a.prototype.request,n);return r.extend(i,a.prototype,n),r.extend(i,n),i.create=function(n){return e(l(t,n))},i}(n(709));i.Axios=a,i.CanceledError=n(795),i.CancelToken=n(857),i.isCancel=n(517),i.VERSION=n(600).version,i.toFormData=n(397),i.AxiosError=n(531),i.Cancel=i.CanceledError,i.all=function(e){return Promise.all(e)},i.spread=n(89),i.isAxiosError=n(580),e.exports=i,e.exports.default=i},857:function(e,t,n){"use strict";var r=n(795);function o(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(u)})),e.exports=c},789:function(e){"use strict";e.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},600:function(e){e.exports={version:"0.27.2"}},49:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r=0)return;l[t]="set-cookie"===t?(l[t]?l[t]:[]).concat([n]):l[t]?l[t]+", "+n:n}})),l):l}},261:function(e){"use strict";e.exports=function(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}},89:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},397:function(e,t,n){"use strict";var r=n(589);e.exports=function(e,t){t=t||new FormData;var n=[];function o(e){return null===e?"":r.isDate(e)?e.toISOString():r.isArrayBuffer(e)||r.isTypedArray(e)?"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}return function e(a,l){if(r.isPlainObject(a)||r.isArray(a)){if(-1!==n.indexOf(a))throw Error("Circular reference detected in "+l);n.push(a),r.forEach(a,(function(n,a){if(!r.isUndefined(n)){var i,u=l?l+"."+a:a;if(n&&!l&&"object"===typeof n)if(r.endsWith(a,"{}"))n=JSON.stringify(n);else if(r.endsWith(a,"[]")&&(i=r.toArray(n)))return void i.forEach((function(e){!r.isUndefined(e)&&t.append(u,o(e))}));e(n,u)}})),n.pop()}else t.append(l,o(a))}(e),t}},835:function(e,t,n){"use strict";var r=n(600).version,o=n(531),a={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){a[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var l={};a.transitional=function(e,t,n){function a(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,i){if(!1===e)throw new o(a(r," has been removed"+(t?" in "+t:"")),o.ERR_DEPRECATED);return t&&!l[r]&&(l[r]=!0,console.warn(a(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,i)}},e.exports={assertOptions:function(e,t,n){if("object"!==typeof e)throw new o("options must be an object",o.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(e),a=r.length;a-- >0;){var l=r[a],i=t[l];if(i){var u=e[l],s=void 0===u||i(u,l,e);if(!0!==s)throw new o("option "+l+" must be "+s,o.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new o("Unknown option "+l,o.ERR_BAD_OPTION)}},validators:a}},589:function(e,t,n){"use strict";var r,o=n(49),a=Object.prototype.toString,l=(r=Object.create(null),function(e){var t=a.call(e);return r[t]||(r[t]=t.slice(8,-1).toLowerCase())});function i(e){return e=e.toLowerCase(),function(t){return l(t)===e}}function u(e){return Array.isArray(e)}function s(e){return"undefined"===typeof e}var c=i("ArrayBuffer");function f(e){return null!==e&&"object"===typeof e}function d(e){if("object"!==l(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}var p=i("Date"),h=i("File"),m=i("Blob"),y=i("FileList");function v(e){return"[object Function]"===a.call(e)}var g=i("URLSearchParams");function b(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),u(e))for(var n=0,r=e.length;n0;)l[a=r[o]]||(t[a]=e[a],l[a]=!0);e=Object.getPrototypeOf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:l,kindOfTest:i,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;var t=e.length;if(s(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},isTypedArray:k,isFileList:y}},295:function(e,t,n){var r,o,a;o=[t,n(833)],void 0===(a="function"===typeof(r=function(e,t){"use strict";var n=Math.imul,r=t.$_$.a,o=t.$_$.g,a=t.$_$.b,l=t.$_$.c,i=t.$_$.f,u=t.$_$.d,s=t.$_$.e;function c(e,t){this.c2_1=e,this.d2_1=t}function f(e,t,n){var r=void 0===t?0:t;this.i2_1=e,this.j2_1=r,this.k2_1=n}function d(e,t,n){this.q2_1=e,this.r2_1=t,this.s2_1=n}function p(e,t){this.x2_1=e,this.y2_1=t}function h(e){(e.alias||(e.alias={})).JsCard=c,(e.alias||(e.alias={})).JsTeam=f;var t=e.card||(e.card={});(t.trainer||(t.trainer={})).JsCardTrainerModel=d,(e.codenames||(e.codenames={})).JsCodeNamesCard=p}return c.prototype.e2=function(){return this.c2_1},c.prototype.f2=function(){return this.d2_1},c.prototype.equals=function(e){return this===e||!(null==e||!r(this).equals(r(e)))&&(e instanceof c||o(),this.c2_1===e.c2_1&&!!a(this.d2_1,e.d2_1))},c.prototype.hashCode=function(){var e=this.c2_1;return e=n(31,e)+l(this.d2_1)|0},c.prototype.component1=function(){return this.c2_1},c.prototype.component2=function(){return this.d2_1},c.prototype.copy=function(e,t){return this.g2(void 0===e?this.c2_1:e,void 0===t?this.d2_1:t)},c.prototype.g2=function(e,t){return new c(e,t)},c.prototype.h2=function(e,t,n,r){return 0!==(1&n)&&(e=this.c2_1),0!==(2&n)&&(t=this.d2_1),this.g2(e,t)},c.prototype.toString=function(){return"JsCard(id="+this.c2_1+", words="+i(this.d2_1)+")"},c.$metadata$=u("JsCard"),Object.defineProperty(c.prototype,"id",{configurable:!0,get:c.prototype.e2}),Object.defineProperty(c.prototype,"words",{configurable:!0,get:c.prototype.f2}),f.prototype.e2=function(){return this.i2_1},f.prototype.l2=function(e){this.j2_1=e},f.prototype.m2=function(){return this.j2_1},f.prototype.n2=function(){return this.k2_1},f.prototype.component1=function(){return this.i2_1},f.prototype.component2=function(){return this.j2_1},f.prototype.component3=function(){return this.k2_1},f.prototype.copy=function(e,t,n){return this.o2(void 0===e?this.i2_1:e,void 0===t?this.j2_1:t,void 0===n?this.k2_1:n)},f.prototype.o2=function(e,t,n){return new f(e,t,n)},f.prototype.p2=function(e,t,n,r,o){return 0!==(1&r)&&(e=this.i2_1),0!==(2&r)&&(t=this.j2_1),0!==(4&r)&&(n=this.k2_1),this.o2(e,t,n)},f.prototype.toString=function(){return"JsTeam(id="+this.i2_1+", points="+this.j2_1+", name="+this.k2_1+")"},f.prototype.hashCode=function(){var e=this.i2_1;return e=n(e,31)+this.j2_1|0,e=n(e,31)+s(this.k2_1)|0},f.prototype.equals=function(e){if(this===e)return!0;if(!(e instanceof f))return!1;var t=e instanceof f?e:o();return this.i2_1===t.i2_1&&this.j2_1===t.j2_1&&this.k2_1===t.k2_1},f.$metadata$=u("JsTeam"),Object.defineProperty(f.prototype,"id",{configurable:!0,get:f.prototype.e2}),Object.defineProperty(f.prototype,"points",{configurable:!0,get:f.prototype.m2,set:f.prototype.l2}),Object.defineProperty(f.prototype,"name",{configurable:!0,get:f.prototype.n2}),d.prototype.e2=function(){return this.q2_1},d.prototype.t2=function(){return this.r2_1},d.prototype.u2=function(){return this.s2_1},d.prototype.component1=function(){return this.q2_1},d.prototype.component2=function(){return this.r2_1},d.prototype.component3=function(){return this.s2_1},d.prototype.copy=function(e,t,n){return this.v2(void 0===e?this.q2_1:e,void 0===t?this.r2_1:t,void 0===n?this.s2_1:n)},d.prototype.v2=function(e,t,n){return new d(e,t,n)},d.prototype.w2=function(e,t,n,r,o){return 0!==(1&r)&&(e=this.q2_1),0!==(2&r)&&(t=this.r2_1),0!==(4&r)&&(n=this.s2_1),this.v2(e,t,n)},d.prototype.toString=function(){return"JsCardTrainerModel(id="+this.q2_1+", front="+this.r2_1+", back="+this.s2_1+")"},d.prototype.hashCode=function(){var e=this.q2_1;return e=n(e,31)+s(this.r2_1)|0,e=n(e,31)+s(this.s2_1)|0},d.prototype.equals=function(e){if(this===e)return!0;if(!(e instanceof d))return!1;var t=e instanceof d?e:o();return this.q2_1===t.q2_1&&this.r2_1===t.r2_1&&this.s2_1===t.s2_1},d.$metadata$=u("JsCardTrainerModel"),Object.defineProperty(d.prototype,"id",{configurable:!0,get:d.prototype.e2}),Object.defineProperty(d.prototype,"front",{configurable:!0,get:d.prototype.t2}),Object.defineProperty(d.prototype,"back",{configurable:!0,get:d.prototype.u2}),p.prototype.e2=function(){return this.x2_1},p.prototype.z2=function(){return this.y2_1},p.prototype.component1=function(){return this.x2_1},p.prototype.component2=function(){return this.y2_1},p.prototype.copy=function(e,t){return this.a3(void 0===e?this.x2_1:e,void 0===t?this.y2_1:t)},p.prototype.a3=function(e,t){return new p(e,t)},p.prototype.b3=function(e,t,n,r){return 0!==(1&n)&&(e=this.x2_1),0!==(2&n)&&(t=this.y2_1),this.a3(e,t)},p.prototype.toString=function(){return"JsCodeNamesCard(id="+this.x2_1+", word="+this.y2_1+")"},p.prototype.hashCode=function(){var e=this.x2_1;return e=n(e,31)+s(this.y2_1)|0},p.prototype.equals=function(e){if(this===e)return!0;if(!(e instanceof p))return!1;var t=e instanceof p?e:o();return this.x2_1===t.x2_1&&this.y2_1===t.y2_1},p.$metadata$=u("JsCodeNamesCard"),Object.defineProperty(p.prototype,"id",{configurable:!0,get:p.prototype.e2}),Object.defineProperty(p.prototype,"word",{configurable:!0,get:p.prototype.z2}),h(e),e})?r.apply(t,o):r)||(e.exports=a)},833:function(e,t){var n,r,o;"undefined"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView=function(e){return null!=e&&null!=e.__proto__&&e.__proto__.__proto__===Int8Array.prototype.__proto__}),"undefined"===typeof Math.imul&&(Math.imul=function(e,t){return(4294901760&e)*(65535&t)+(65535&e)*(0|t)|0}),r=[t],void 0===(o="function"===typeof(n=function(e){"use strict";var t,n,r,o,a,l,i,u,s,c,f,d,p=Math.imul,h=ArrayBuffer.isView;function m(){}function y(){}function v(){}function g(){t=this}function b(){return null==t&&new g,t}function w(){}function k(e){this.a_1=e}function S(e,t,n){k.call(this,e),this.e_1=t,this.f_1=n}function _(){n=this,k.call(this,Object),this.h_1="Nothing"}function x(){return null==n&&new _,n}function E(){}function C(e){k.call(this,e);var t,n=this,r=e.$metadata$;t=null==r?null:r.simpleName,n.j_1=t}function N(){return G(),r}function P(){return function(e){return De(e)}}function O(){return function(e){return $e(e)}}function T(){return function(e){return null!=e&&"boolean"===typeof e}}function A(){return function(e){return null!=e&&"number"===typeof e}}function R(){return function(e){return null!=e&&"number"===typeof e}}function j(){return function(e){return null!=e&&"number"===typeof e}}function z(){return function(e){return null!=e&&"number"===typeof e}}function L(){return function(e){return null!=e&&"number"===typeof e}}function M(){return function(e){return null!=e&&Fe(e)}}function F(){return function(e){return null!=e&&"string"===typeof e}}function D(){return function(e){return e instanceof Error}}function $(){return function(e){return null!=e&&Ie(e)}}function I(){return function(e){return null!=e&&Ve(e)}}function U(){return function(e){return null!=e&&Ue(e)}}function B(){return function(e){return null!=e&&Be(e)}}function V(){return function(e){return null!=e&&We(e)}}function W(){return function(e){return null!=e&&qe(e)}}function H(){return function(e){return null!=e&&He(e)}}function q(){return function(e){return null!=e&&Qe(e)}}function Q(e){return function(t){return"function"===typeof t&&t.length===e}}function K(){o=this;var e=Object;this.k_1=new S(e,"Any",P());var t=Number;this.l_1=new S(t,"Number",O()),this.m_1=x();var n=Boolean;this.n_1=new S(n,"Boolean",T());var r=Number;this.o_1=new S(r,"Byte",A());var a=Number;this.p_1=new S(a,"Short",R());var l=Number;this.q_1=new S(l,"Int",j());var i=Number;this.r_1=new S(i,"Float",z());var u=Number;this.s_1=new S(u,"Double",L());var s=Array;this.t_1=new S(s,"Array",M());var c=String;this.u_1=new S(c,"String",F());var f=Error;this.v_1=new S(f,"Throwable",D());var d=Array;this.w_1=new S(d,"BooleanArray",$());var p=Uint16Array;this.x_1=new S(p,"CharArray",I());var h=Int8Array;this.y_1=new S(h,"ByteArray",U());var m=Int16Array;this.z_1=new S(m,"ShortArray",B());var y=Int32Array;this.a1_1=new S(y,"IntArray",V());var v=Array;this.b1_1=new S(v,"LongArray",W());var g=Float32Array;this.c1_1=new S(g,"FloatArray",H());var b=Float64Array;this.d1_1=new S(b,"DoubleArray",q())}function J(){return null==o&&new K,o}function G(){var e;a||(a=!0,e=te(Array(0),null),r=e)}function Y(e){return Array.isArray(e)?X(e):Z(e)}function X(e){var t;switch(e.length){case 1:t=Z(e[0]);break;case 0:t=x();break;default:t=new E}return t}function Z(e){if(e===String)return J().u_1;var t,n=e.$metadata$;if(null!=n){var r;if(null==n.$kClass$){var o=new C(e);n.$kClass$=o,r=o}else r=n.$kClass$;t=r}else t=new C(e);return t}function ee(e){var t;switch(typeof e){case"string":t=J().u_1;break;case"number":t=ft(e,0)===e?J().q_1:J().s_1;break;case"boolean":t=J().n_1;break;case"function":var n;n=e,t=J().functionClass(n.length);break;default:var r;if(Ie(e))r=J().w_1;else if(Ve(e))r=J().x_1;else if(Ue(e))r=J().y_1;else if(Be(e))r=J().z_1;else if(We(e))r=J().a1_1;else if(qe(e))r=J().b1_1;else if(He(e))r=J().c1_1;else if(Qe(e))r=J().d1_1;else if(Pe(e,w))r=Y(w);else if(Fe(e))r=J().t_1;else{var o=Object.getPrototypeOf(e).constructor;r=o===Object?J().k_1:o===Error?J().v_1:Z(o)}t=r}return t}function te(e,t){var n=0,r=e.length-1|0;if(n<=r)do{var o=n;n=n+1|0,e[o]=t}while(o!==r);return e}function ne(){return ue(),l}function re(){return ue(),i}function oe(){return ue(),u}function ae(){return ue(),s}function le(){return ue(),c}function ie(e){return ue(),ft(e,0)===e?Se(e):(re()[0]=e,p(oe()[le()],31)+oe()[ae()]|0)}function ue(){var e,t,n;f||(f=!0,l=new ArrayBuffer(8),e=new Float64Array(ne()),i=e,new Float32Array(ne()),t=new Int32Array(ne()),u=t,re()[0]=-1,n=0!==oe()[0]?1:0,s=n,c=1-ae()|0)}function se(e,t){var n=e,r=t;if(n===r)return!0;if(null==n||null==r||!Ce(r)||n.length!=r.length)return!1;var o=0,a=n.length;if(o2147483647?2147483647:e<-2147483648?-2147483648:ft(e,0)}function xe(e,t,n,r,o,a){return Ee("class",e,t,n,r,o,a)}function Ee(e,t,n,r,o,a,l){return{kind:e,simpleName:t,interfaceId:"interface"===e?-1:void 0,interfaces:n||[],associatedObjectKey:r,associatedObjects:o,suspendArity:a,fastPrototype:l,$kClass$:void 0,interfacesCache:{isComplete:void 0===l&&(void 0===n||0===n.length),implementInterfaceMemo:{}}}}function Ce(e){return!!Ne(e)||h(e)}function Ne(e){return Array.isArray(e)}function Pe(e,t){var n=e.constructor;return null!=n&&Oe(n,t)}function Oe(e,t){if(e===t)return!0;var n=e.$metadata$;null!=n&&null==n.interfacesCache&&(n.interfacesCache=Te());var r,o=null==n?null:n.interfacesCache;if(null!=o){o.isComplete||Ae(e);var a=t.$metadata$,l=null==a?null:a.interfaceId;if(null==l)return!1;var i=l;r=!!o.implementInterfaceMemo[i]}else{var u=Re(e),s=null==u?null:u.constructor;if(null==s)return!1;r=Oe(s,t)}return r}function Te(){return{isComplete:!1,implementInterfaceMemo:{}}}function Ae(e){var t=e.$metadata$;null!=t&&null==t.interfacesCache&&(t.interfacesCache=Te());var n=null==t?null:t.interfacesCache;if(null!=n){if(!0===n.isComplete)return n;for(var r=t.interfaces,o=0,a=r.length;o