Room androidx.roomdatabaseBuilderandroidx.room.RoomBuilderandroidx.room.RoomDatabasebuild"androidx.room.RoomDatabase.Builder setDriver"androidx.room.RoomDatabase.BuilderBundledSQLiteDriverandroidx.sqlite.driver.bundled Applicationio.ktor.server.applicationPluginInstanceio.ktor.server.applicationRouteScopedPluginio.ktor.server.applicationinstallio.ktor.server.applicationConditionalHeaders&io.ktor.server.application.Applicationinstall&io.ktor.server.application.Applicationrouting&io.ktor.server.application.Application staticFiles&io.ktor.server.application.ApplicationEmbeddedServerio.ktor.server.engineembeddedServerio.ktor.server.enginestart$io.ktor.server.engine.EmbeddedServerstop$io.ktor.server.engine.EmbeddedServer staticFilesio.ktor.server.http.contentNettyio.ktor.server.nettyNettyApplicationEngineio.ktor.server.netty Configuration+io.ktor.server.netty.NettyApplicationEngineConditionalHeaders)io.ktor.server.plugins.conditionalheadersConditionalHeadersConfig)io.ktor.server.plugins.conditionalheadersRouteio.ktor.server.routingRoutingio.ktor.server.routing RoutingRootio.ktor.server.routingroutingio.ktor.server.routing staticFilesio.ktor.server.routing.RoutingBufferedReaderjava.ioFilejava.io FileFilterjava.ioFileOutputStreamjava.ioFilenameFilterjava.io IOExceptionjava.io InputStreamjava.ioreadTextjava.io.BufferedReaderusejava.io.BufferedReader absolutePath java.io.Fileexists java.io.File extension java.io.FileforEach java.io.File isDirectory java.io.File listFiles java.io.Filemkdirs java.io.File outputStream java.io.File parentFile java.io.FilereadText java.io.FilerecursiveFindAndReplace java.io.FiletakeIf java.io.File writeText java.io.Filejava.io.FileFilterflushjava.io.FileOutputStreamusejava.io.FileOutputStreamjava.io.FilenameFilterbufferedReaderjava.io.InputStreamcopyTojava.io.InputStreamusejava.io.InputStreamflushjava.io.OutputStreamClass java.langgetResourceAsStreamjava.lang.ClassArraykotlin CharSequencekotlin Function1kotlin ThrowablekotlintakeIfkotlinusekotlinforEach kotlin.Arraynotkotlin.Booleaninvokekotlin.Function1contains kotlin.Stringreplace kotlin.StringIteratorkotlin.collectionsListkotlin.collectionsMapkotlin.collections MutableListkotlin.collectionsanykotlin.collectionscontainskotlin.collections emptyListkotlin.collectionsfilterkotlin.collectionsfirstkotlin.collectionsforEachkotlin.collectionslistOfkotlin.collections mutableListOfkotlin.collectionshasNextkotlin.collections.Iteratornextkotlin.collections.Iteratoranykotlin.collections.Listcontainskotlin.collections.Listfilterkotlin.collections.Listfirstkotlin.collections.Listiteratorkotlin.collections.Listsizekotlin.collections.Listgetkotlin.collections.MapSuspendFunction1kotlin.coroutinesbufferedReader kotlin.iocopyTo kotlin.io extension kotlin.io outputStream kotlin.ioprintln kotlin.ioreadText kotlin.iouse kotlin.io writeText kotlin.ioJvmField kotlin.jvmjava kotlin.jvmcontains kotlin.rangesfirst kotlin.rangesjavakotlin.reflect.KClassSequencekotlin.sequencesanykotlin.sequencescontainskotlin.sequencesfilterkotlin.sequencesfirstkotlin.sequencesforEachkotlin.sequences BeforeTest kotlin.testTest kotlin.test assertEquals kotlin.test assertNotNull kotlin.test assertTrue kotlin.testany kotlin.textcontains kotlin.textfilter kotlin.textfirst kotlin.textforEach kotlin.textreplace kotlin.textCoroutineScopekotlinx.coroutines runBlockingkotlinx.coroutinesAuthenticatedUserPrincipalId!kotlinx.coroutines.CoroutineScopeRespectAppManifest!kotlinx.coroutines.CoroutineScopeSetPasswordUseCase!kotlinx.coroutines.CoroutineScopeValidateAuthorizationUseCase!kotlinx.coroutines.CoroutineScopeValidateLinkUseCase!kotlinx.coroutines.CoroutineScope assertEquals!kotlinx.coroutines.CoroutineScope assertNotNull!kotlinx.coroutines.CoroutineScopedefaultTestPerson!kotlinx.coroutines.CoroutineScopegetTokenUseCase!kotlinx.coroutines.CoroutineScope mutableListOf!kotlinx.coroutines.CoroutineScopeschoolDb!kotlinx.coroutines.CoroutineScopesetPasswordUseCase!kotlinx.coroutines.CoroutineScope toEntities!kotlinx.coroutines.CoroutineScopevalidateAuthUseCase!kotlinx.coroutines.CoroutineScopeworld!kotlinx.coroutines.CoroutineScopexxHash!kotlinx.coroutines.CoroutineScope KSerializerkotlinx.serializationJsonkotlinx.serialization.json JsonBuilderkotlinx.serialization.jsondecodeFromStringkotlinx.serialization.json.JsonignoreUnknownKeys&kotlinx.serialization.json.JsonBuilderBefore org.junitRule org.junitTest org.junitTemporaryFolderorg.junit.rulesFileorg.junit.rules.TemporaryFolder IOExceptionorg.junit.rules.TemporaryFoldercopyResourcesToTempDirorg.junit.rules.TemporaryFoldercopyToorg.junit.rules.TemporaryFolderjavaorg.junit.rules.TemporaryFolder newFolderorg.junit.rules.TemporaryFolder outputStreamorg.junit.rules.TemporaryFoldertakeIforg.junit.rules.TemporaryFolderuseorg.junit.rules.TemporaryFolderKoinApplication org.koin.corejvmKoinAppModuleorg.koin.core.KoinApplicationmodulesorg.koin.core.KoinApplication startKoinorg.koin.core.contextstopKoinorg.koin.core.contextModuleorg.koin.core.moduleKoinTest org.koin.testget org.koin.testJson world.respectOpdsFeed world.respectOpdsSerializationTest world.respectTest world.respectbufferedReader world.respectjava world.respectprintln world.respectreadText world.respect serializer world.respectuse world.respectJson#world.respect.OpdsSerializationTestOpdsFeed#world.respect.OpdsSerializationTestbufferedReader#world.respect.OpdsSerializationTestjava#world.respect.OpdsSerializationTestprintln#world.respect.OpdsSerializationTestreadText#world.respect.OpdsSerializationTest serializer#world.respect.OpdsSerializationTestuse#world.respect.OpdsSerializationTestRespectAppManifest,world.respect.datalayer.compatibleapps.model Companion?world.respect.datalayer.compatibleapps.model.RespectAppManifest MIME_TYPE?world.respect.datalayer.compatibleapps.model.RespectAppManifest MIME_TYPEIworld.respect.datalayer.compatibleapps.model.RespectAppManifest.CompanionRespectSchoolDatabaseworld.respect.datalayer.dbgetPersonEntityDao0world.respect.datalayer.db.RespectSchoolDatabasePersonDataSourceDb!world.respect.datalayer.db.schoolPersonEntities*world.respect.datalayer.db.school.adapters toEntities*world.respect.datalayer.db.school.adapters personEntity9world.respect.datalayer.db.school.adapters.PersonEntitiesPersonEntityDao&world.respect.datalayer.db.school.daosinsert6world.respect.datalayer.db.school.daos.PersonEntityDao PersonEntity*world.respect.datalayer.db.school.entitiesOpdsFeed"world.respect.datalayer.opds.model ReadiumLink"world.respect.datalayer.opds.model Companion+world.respect.datalayer.opds.model.OpdsFeed serializer+world.respect.datalayer.opds.model.OpdsFeed serializer5world.respect.datalayer.opds.model.OpdsFeed.Companion AuthToken$world.respect.datalayer.school.modelPerson$world.respect.datalayer.school.model PersonRole$world.respect.datalayer.school.model accessToken.world.respect.datalayer.school.model.AuthTokenguid+world.respect.datalayer.school.model.Person toEntities+world.respect.datalayer.school.model.Personusername+world.respect.datalayer.school.model.PersonBooleanworld.respect.domain.validatorConditionalHeadersworld.respect.domain.validatorHttpLinkHeaderworld.respect.domain.validatorHttpLinkHeaderTestworld.respect.domain.validatorJvmFieldworld.respect.domain.validatorKoinTestworld.respect.domain.validatorListworld.respect.domain.validatorListAndPrintlnValidatorReporterworld.respect.domain.validatorNettyworld.respect.domain.validatorRespectAppManifestworld.respect.domain.validatorRuleworld.respect.domain.validatorStringworld.respect.domain.validatorTemporaryFolderworld.respect.domain.validatorTestworld.respect.domain.validatorTestValidationScenariosworld.respect.domain.validatorUnitworld.respect.domain.validatorValidateLinkUseCaseworld.respect.domain.validatorValidationScenarioContextworld.respect.domain.validatorValidatorMessageworld.respect.domain.validatoranyworld.respect.domain.validator assertEqualsworld.respect.domain.validator assertTrueworld.respect.domain.validatorcontainsworld.respect.domain.validatorcopyResourcesToTempDirworld.respect.domain.validatorembeddedServerworld.respect.domain.validator extensionworld.respect.domain.validatorfilterworld.respect.domain.validator findFreePortworld.respect.domain.validatorfirstworld.respect.domain.validatorjvmKoinAppModuleworld.respect.domain.validatorlistOfworld.respect.domain.validator mutableListOfworld.respect.domain.validatorparseHeaderValueworld.respect.domain.validatorprintlnworld.respect.domain.validatorrecursiveFindAndReplaceworld.respect.domain.validatorreplaceworld.respect.domain.validator runBlockingworld.respect.domain.validator startKoinworld.respect.domain.validatorstopKoinworld.respect.domain.validatorworldworld.respect.domain.validator Companion-world.respect.domain.validator.HttpLinkHeaderLink-world.respect.domain.validator.HttpLinkHeaderlinks-world.respect.domain.validator.HttpLinkHeaderparseHeaderValue-world.respect.domain.validator.HttpLinkHeaderparseHeaderValue7world.respect.domain.validator.HttpLinkHeader.Companionparams2world.respect.domain.validator.HttpLinkHeader.LinkuriRef2world.respect.domain.validator.HttpLinkHeader.LinkHttpLinkHeader1world.respect.domain.validator.HttpLinkHeaderTest assertEquals1world.respect.domain.validator.HttpLinkHeaderTestfirst1world.respect.domain.validator.HttpLinkHeaderTestparseHeaderValue1world.respect.domain.validator.HttpLinkHeaderTestmessages>world.respect.domain.validator.ListAndPrintlnValidatorReporterBoolean6world.respect.domain.validator.TestValidationScenariosConditionalHeaders6world.respect.domain.validator.TestValidationScenariosJvmField6world.respect.domain.validator.TestValidationScenariosList6world.respect.domain.validator.TestValidationScenariosListAndPrintlnValidatorReporter6world.respect.domain.validator.TestValidationScenariosNetty6world.respect.domain.validator.TestValidationScenariosRespectAppManifest6world.respect.domain.validator.TestValidationScenariosRule6world.respect.domain.validator.TestValidationScenariosString6world.respect.domain.validator.TestValidationScenariosTemporaryFolder6world.respect.domain.validator.TestValidationScenariosTest6world.respect.domain.validator.TestValidationScenariosUnit6world.respect.domain.validator.TestValidationScenariosValidateLinkUseCase6world.respect.domain.validator.TestValidationScenariosValidationScenarioContext6world.respect.domain.validator.TestValidationScenariosValidatorMessage6world.respect.domain.validator.TestValidationScenariosany6world.respect.domain.validator.TestValidationScenarios assertEquals6world.respect.domain.validator.TestValidationScenarios assertTrue6world.respect.domain.validator.TestValidationScenarioscontains6world.respect.domain.validator.TestValidationScenarioscopyResourcesToTempDir6world.respect.domain.validator.TestValidationScenariosembeddedServer6world.respect.domain.validator.TestValidationScenarios extension6world.respect.domain.validator.TestValidationScenariosfilter6world.respect.domain.validator.TestValidationScenarios findFreePort6world.respect.domain.validator.TestValidationScenariosget6world.respect.domain.validator.TestValidationScenariosinstall6world.respect.domain.validator.TestValidationScenariosjvmKoinAppModule6world.respect.domain.validator.TestValidationScenarioslistOf6world.respect.domain.validator.TestValidationScenarios mutableListOf6world.respect.domain.validator.TestValidationScenariosprintln6world.respect.domain.validator.TestValidationScenariosrecursiveFindAndReplace6world.respect.domain.validator.TestValidationScenariosreplace6world.respect.domain.validator.TestValidationScenariosrouting6world.respect.domain.validator.TestValidationScenarios runBlocking6world.respect.domain.validator.TestValidationScenarios startKoin6world.respect.domain.validator.TestValidationScenarios staticFiles6world.respect.domain.validator.TestValidationScenariosstopKoin6world.respect.domain.validator.TestValidationScenarios tempFileRule6world.respect.domain.validator.TestValidationScenariostestValidationScenario6world.respect.domain.validator.TestValidationScenariosworld6world.respect.domain.validator.TestValidationScenariosValidatorMessagePworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextanyPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext assertEqualsPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext assertTruePworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextcontainsPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextfilterPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextreporterPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext testBaseUrlPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextValidatorOptions2world.respect.domain.validator.ValidateLinkUseCaseinvoke2world.respect.domain.validator.ValidateLinkUseCase Companion/world.respect.domain.validator.ValidatorMessageLevel/world.respect.domain.validator.ValidatorMessagelevel/world.respect.domain.validator.ValidatorMessagemessage/world.respect.domain.validator.ValidatorMessage sourceUri/world.respect.domain.validator.ValidatorMessageERROR5world.respect.domain.validator.ValidatorMessage.Level findFreePortworld.respect.libutilXXStringHasherworld.respect.libxxhashXXStringHasherCommonJvmworld.respect.libxxhash.jvmimpljvmKoinAppModuleworld.respect.shared.diAuthenticatedUserPrincipalIdworld.respect.shared.domain Companion8world.respect.shared.domain.AuthenticatedUserPrincipalIdDIRECTORY_ADMIN_GUID8world.respect.shared.domain.AuthenticatedUserPrincipalIdguid8world.respect.shared.domain.AuthenticatedUserPrincipalIdDIRECTORY_ADMIN_GUIDBworld.respect.shared.domain.AuthenticatedUserPrincipalId.Companion AuthResponse#world.respect.shared.domain.accountAuthWithPasswordIntegrationTest#world.respect.shared.domain.accountAuthenticatedUserPrincipalId#world.respect.shared.domain.account BeforeTest#world.respect.shared.domain.accountBundledSQLiteDriver#world.respect.shared.domain.accountFile#world.respect.shared.domain.account3GetTokenAndUserProfileWithUsernameAndPasswordDbImpl#world.respect.shared.domain.account4GetTokenAndUserProfileWithUsernameAndPasswordUseCase#world.respect.shared.domain.accountJvmField#world.respect.shared.domain.accountPerson#world.respect.shared.domain.accountPersonDataSourceDb#world.respect.shared.domain.accountRespectSchoolDatabase#world.respect.shared.domain.accountRoom#world.respect.shared.domain.accountRule#world.respect.shared.domain.accountSetPasswordUseCase#world.respect.shared.domain.accountSetPasswordUseDbImpl#world.respect.shared.domain.accountTemporaryFolder#world.respect.shared.domain.accountTest#world.respect.shared.domain.account Throwable#world.respect.shared.domain.accountValidateAuthorizationUseCase#world.respect.shared.domain.account"ValidateAuthorizationUseCaseDbImpl#world.respect.shared.domain.accountXXStringHasher#world.respect.shared.domain.accountXXStringHasherCommonJvm#world.respect.shared.domain.account assertEquals#world.respect.shared.domain.account assertNotNull#world.respect.shared.domain.accountdatabaseBuilder#world.respect.shared.domain.accountdefaultTestPerson#world.respect.shared.domain.account emptyList#world.respect.shared.domain.accountgetTokenUseCase#world.respect.shared.domain.account runBlocking#world.respect.shared.domain.accountschoolDb#world.respect.shared.domain.accountsetPasswordUseCase#world.respect.shared.domain.account toEntities#world.respect.shared.domain.accountvalidateAuthUseCase#world.respect.shared.domain.accountxxHash#world.respect.shared.domain.accountperson0world.respect.shared.domain.account.AuthResponsetoken0world.respect.shared.domain.account.AuthResponseAuthenticatedUserPrincipalIdCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestBundledSQLiteDriverCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestFileCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest3GetTokenAndUserProfileWithUsernameAndPasswordDbImplCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestPersonCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestPersonDataSourceDbCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestRoomCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestSetPasswordUseCaseCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestSetPasswordUseDbImplCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestTemporaryFolderCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestValidateAuthorizationUseCaseCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest"ValidateAuthorizationUseCaseDbImplCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestXXStringHasherCommonJvmCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest assertEqualsCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest assertNotNullCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestdatabaseBuilderCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestdefaultTestPersonCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest emptyListCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestgetTokenUseCaseCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest runBlockingCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestschoolDbCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestsetPasswordUseCaseCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTesttemporaryFolderCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest toEntitiesCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestvalidateAuthUseCaseCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTestxxHashCworld.respect.shared.domain.account.AuthWithPasswordIntegrationTest3GetTokenAndUserProfileWithUsernameAndPasswordDbImpl4world.respect.shared.domain.account.authwithpassword4GetTokenAndUserProfileWithUsernameAndPasswordUseCase3world.respect.shared.domain.account.gettokenanduserinvokehworld.respect.shared.domain.account.gettokenanduser.GetTokenAndUserProfileWithUsernameAndPasswordUseCaseSetPasswordUseCase/world.respect.shared.domain.account.setpasswordSetPasswordUseDbImpl/world.respect.shared.domain.account.setpasswordSetPasswordRequestBworld.respect.shared.domain.account.setpassword.SetPasswordUseCaseinvokeBworld.respect.shared.domain.account.setpassword.SetPasswordUseCaseValidateAuthorizationUseCase0world.respect.shared.domain.account.validateauth"ValidateAuthorizationUseCaseDbImpl0world.respect.shared.domain.account.validateauthBearerTokenCredentialMworld.respect.shared.domain.account.validateauth.ValidateAuthorizationUseCaseinvokeMworld.respect.shared.domain.account.validateauth.ValidateAuthorizationUseCaseFileworld.respect.testutil FileFilterworld.respect.testutil IOExceptionworld.respect.testutilListworld.respect.testutilStringworld.respect.testutilTemporaryFolderworld.respect.testutilcopyResourcesToTempDirworld.respect.testutilcopyToworld.respect.testutilforEachworld.respect.testutiljavaworld.respect.testutil outputStreamworld.respect.testutilreadTextworld.respect.testutilrecursiveFindAndReplaceworld.respect.testutiltakeIfworld.respect.testutiluseworld.respect.testutil writeTextworld.respect.testutil