DIRCh. h.  mIL%ʹh ,.fleet/receipt.jsonh. h.  ;}H, H&f읈 ʚ .gitignoreh. h.  OE"%`lt}Vn} README.mdhS6:hS6: $iږ^Ž5Sbuild.gradle.ktsh. h.   YD*FG2#composeApp/build.gradle.ktshS6:hS6: qUO3ݐ..composeApp/src/androidMain/AndroidManifest.xmlh. h.  *Hμ/;NҐ:?composeApp/src/androidMain/kotlin/world/respect/MainActivity.kth. h.  +F*Kfb FcomposeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xmlh. h.  >va;h-ܒw3BcomposeApp/src/androidMain/res/drawable/ic_launcher_background.xmlh. h.   Rf( h{@composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xmlh. h.   Rf( h{FcomposeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xmlh. h.   q,+b򒜿R:composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.pngh. h.  aUUa=,֑F@composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.pngh. h.   L҅1,#whKv^:composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.pngh. h.   mFڱBG]. -栾;composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.pngh. h.  01qFQ @0{ AcomposeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.pngh. h.  h CG 42o?gradle.propertieshS6IhS6I ' /ZрY/ub'gradle/libs.versions.tomlh. JVh. JV  ,5!}|EC %!gradle/wrapper/gradle-wrapper.jarh. JVh. JV !|FEi)&5;Z(gradle/wrapper/gradle-wrapper.propertieshUhg0jMhUhg0jM "":mkkZ&BGtgradlewh. JVh. JV # 8!4\'{[*n gradlew.bathS6IhS6I ^B*18LyqzK}respect-cli/.gitignorehS6IhS6I _H s: + YIgKc6 respect-cli/build.gradle.ktshS6IhS6I hR8If<>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kthS6IhS6I jB*18LyqzK}respect-datasource/.gitignorehS6IhS6I k6&?F3#respect-datasource/build.gradle.ktshS6IhS6I tyha̮O Ԉ[vEs6respect-datasource/src/androidMain/AndroidManifest.xmlhS6IhS6I zcֺJ'@4F9$ Srespect-datasource/src/commonMain/kotlin/world/respect/datasource/DataLoadParams.kthS6IhS6I {J:o W<[mOrespect-datasource/src/commonMain/kotlin/world/respect/datasource/DataResult.kthS6IhS6I |Z.E k+L9Rrespect-datasource/src/commonMain/kotlin/world/respect/datasource/LoadingStatus.kthS6IhS6I }j^.MI+`RXYrespect-datasource/src/commonMain/kotlin/world/respect/datasource/RespectAppDataSource.kthS6IhS6I RD+PhMlrespect-datasource/src/commonMain/kotlin/world/respect/datasource/compatibleapps/CompatibleAppsDataSource.kthS6IhS6I  9t{'Rp`=lrespect-datasource/src/commonMain/kotlin/world/respect/datasource/compatibleapps/model/RespectAppManifest.kthS6IhS6I m-,j铘N"D"{Xrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/OpdsDataSource.kthS6IhS6I L`}.a:#̀Wrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/LangMap.kthS6IhS6I p[ ?i&dѻcWY7Jz}Zrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/LangMapExt.kthS6IhS6I !%00z!#L_respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsAcquisition.kthS6IhS6I T7@`v@v]respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsBelongsTo.kthS6YAhS6YA NΰA~2=! Yrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsFacet.kthS6YAhS6YA :oCiJw(0Xrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsFeed.kthS6YAhS6YA GM{!g7tٵb`respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsFeedMetadata.kthS6YAhS6YA  X#+4P2Pb Yrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsGroup.kthS6YAhS6YA gL(^(օU Yrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsPrice.kthS6YAhS6YA 9j:+a _respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsPublication.kthS6YAhS6YA i޼Ҥ #`3qxZrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/OpdsSeries.kthS6YAhS6YA  Tiu&Uhrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumContributorObject.kthS6YAhS6YA GCJ.tO1[respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumLink.kthS6YAhS6YA IOoµbJVhmerespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumLinkProperties.kthS6YAhS6YA UMMI Xnrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumLinkPropertiesEncrypted.kthS6YAhS6YA  H0cHN5սw_respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumMetadata.kthS6YAhS6YA ѹq$ΐJ9Jw{MJ^respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/model/ReadiumSubject.kthS6YAhS6YA  kTDž Ξ1uInF ;H;krespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/LocalDateOrDateTime.kthS6YAhS6YA k;q=(q*O }respect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/SingleItemToListTransformerSerializer.kthS6YAhS6YA 1&썴c2nwÛlrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/StringListSerializer.kthS6YAhS6YA WdB#u?ۜw?wprespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/StringOrObjectSerializer.kthS6YAhS6YA wpQiRЦx~crespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/StringValue.kthS6YAhS6YA T .;' DZsmkrespect-datasource/src/commonMain/kotlin/world/respect/datasource/opds/serialization/UriStringSerializer.kth. JVh. JV %"S* t,g'=J.server/build.gradle.ktsh. JVh. JV +L_ՠ1N*em7mQ3server/src/main/kotlin/world/respect/Application.kth. JVh. JV ->ׁhŘh qI7%server/src/main/resources/logback.xmlhS6YAhS6YA .L9ExN?Rshared/src/commonMain/kotlin/world/respect/domain/getfavicons/GetFavIconUseCase.kthS6YAhS6YA  rb0´Oshared/src/commonMain/kotlin/world/respect/domain/licenses/model/SpdxLicense.kthS6YAhS6YA u)F53K{Sshared/src/commonMain/kotlin/world/respect/domain/licenses/model/SpdxLicenseList.kthS6YAhS6YA 6~2W`35VQshared/src/commonMain/kotlin/world/respect/domain/opds/validator/HttpClientExt.kthS6YAhS6YA U^J7J'Yshared/src/commonMain/kotlin/world/respect/domain/respectappmanifest/model/RespectSite.kthS6YAhS6YA )`C/lD0xMshared/src/commonMain/kotlin/world/respect/domain/validator/HttpLinkHeader.kthS6YAhS6YA V$Ơ`2oQ8reUy^shared/src/commonMain/kotlin/world/respect/domain/validator/ListAndPrintlnValidatorReporter.kthS6YAhS6YA PSBaG5ä Jͼ+Rshared/src/commonMain/kotlin/world/respect/domain/validator/ValidateLinkUseCase.kthS6YAhS6YA 0~ms v%CUXHshared/src/commonMain/kotlin/world/respect/domain/validator/Validator.kthS6YAhS6YA V$h_27^[Oshared/src/commonMain/kotlin/world/respect/domain/validator/ValidatorMessage.kthS6YAhS6YA .Fîs>ݙ:7FPshared/src/commonMain/kotlin/world/respect/domain/validator/ValidatorReporter.kthS6YAhS6YA ګlLc :d)94shared/src/commonTest/resources/invalid-catalog.jsonhS6YAhS6YA BvhPǕe)d{w~1shared/src/commonTest/resources/opds-io-home.jsonhS6YAhS6YA @ߓˉ](iv#T@=5shared/src/commonTest/resources/respect-manifest.jsonhS6YAhS6YA `1rd9"Q53shared/src/commonTest/resources/sample-catalog.jsonhS6hHhS6hH ȸ-vn\uʥb \0shared/src/commonTest/resources/sample-feed.jsonhS6hHhS6hH j#{w@\"7shared/src/commonTest/resources/sample-publication.jsonhS6hHhS6hH +lgoSd3:shared/src/commonTest/resources/sample-with-array-rel.jsonh. h.  BP슈KZ 7shared/src/jvmMain/kotlin/world/respect/Platform.jvm.kthS6hHhS6hH  k vPx^ [9shared/src/jvmMain/kotlin/world/respect/di/JvmDiModule.kthS6hHhS6hH 9Iݵ3RǮ-rSTshared/src/jvmMain/kotlin/world/respect/domain/getfavicons/GetFavIconsUseCaseImpl.kthS6hHhS6hH W@Xr f?ɸ\shared/src/jvmMain/kotlin/world/respect/domain/opds/validator/AbstractJsonSchemaValidator.kthS6hHhS6hH =j)T +vvRshared/src/jvmMain/kotlin/world/respect/domain/opds/validator/OpdsFeedValidator.kthS6hHhS6hH |{ UJX™d[q/pYshared/src/jvmMain/kotlin/world/respect/domain/opds/validator/OpdsPublicationValidator.kthS6hHhS6hH  qXs"ry$;߇lSXshared/src/jvmMain/kotlin/world/respect/domain/opds/validator/ValidateLinkUseCaseImpl.kthS6hHhS6hH ,-#lx\+W`(>b_shared/src/jvmMain/kotlin/world/respect/domain/opds/validator/ValidateOpdsPublicationUseCase.kthS6hHhS6hH bssS@IUshared/src/jvmMain/kotlin/world/respect/domain/opds/validator/ValidationMessageExt.kthS6hHhS6hH L a0qb'R4jshared/src/jvmMain/kotlin/world/respect/domain/respectappmanifest/validator/RespectAppManifestValidator.kthS6hHhS6hH I 29ݽDi+Oshared/src/jvmMain/kotlin/world/respect/domain/validator/DiscardOutputStream.kthS6hHhS6hH d1P\weRyKshared/src/jvmMain/kotlin/world/respect/domain/validator/HttpResponseExt.kthUhg0+hUhg0+ lbo2(5 ƈXn]shared/src/jvmMain/kotlin/world/respect/domain/validator/ValidateHttpResponseForUrlUseCase.kthS6hHhS6hH XQ3{ FwTi7NzOshared/src/jvmMain/resources/world/respect/domain/validator/README-licenses.txthS6wŁhS6wŁ ~7% rfnZUIshared/src/jvmMain/resources/world/respect/domain/validator/licenses.jsonhS6wŁhS6wŁ g#f?\w\OO9jd@shared/src/jvmTest/kotlin/world/respect/OpdsSerializationTest.kthS6wŁhS6wŁ <`~QBv!u.JNshared/src/jvmTest/kotlin/world/respect/domain/validator/HttpLinkHeaderTest.kthS6wŁhS6wŁ M5ENo!?<Sshared/src/jvmTest/kotlin/world/respect/domain/validator/TestValidationScenarios.kthS6wŁhS6wŁ ГζviWI<ZYkotlin13 1 resources36 1 ǑꯔyNE7fʡworld36 1 U­!TG2^YlbLrespect36 1 }(mQiXE']Nvalidator36 4 ;N؏t,(̥Ycase_valid10 1 r݅E5OTograde17 1 Ut򃀉NmYJlesson0016 0 -p6<``S/rHcase_no_resources_in_manifest10 1 ҆ ^g}*COgrade17 1 Nr h2i󐫸r2lesson0016 0 YG;ildcase_manifest_not_discoverable10 1 ?\)pK;|;grade17 1 O{ x 'lesson0016 0 G)›aJ1çRmcase_manifest_resources_do_not_exist6 1 "1ycfL*hgrade13 1 < -IDMElesson0012 0 Ws^*:uQLԬdcommonMain14 1 a\Kqworld14 1 *2 6 ƛ%%CErespect14 1 򺸧rCz2% (;domain11 5 MͰM.!$w^opds1 1 s9Jh:Nvalidator1 0 3/h"鋵j< licenses2 1 _@k/>w,wwGmodel2 0 /T@c}%0vpihvalidator6 0 KO: WNfNgetfavicons1 0 px؉h|I'respectappmanifest1 1 XukUրkA%@model1 0 04}0qU|V ZcommonTest7 1 a6D(B" resources7 0 E'6s/5+'values1 0 x>=俑;#}drawable1 0 qM_+~tL^̆Jmipmap-hdpi2 0 {GiW*=\Zq+ Jmipmap-mdpi2 0 <_p~xq(& A哫drawable-v241 0 UȤ.F~`omipmap-xhdpi2 0 Jp8 umipmap-xxhdpi2 0 HzR|x}-GШmipmap-xxxhdpi2 0 x&ͺ r% | mipmap-anydpi-v262 0 RB tUkWkhikotlin1 1 Kul.HSǮworld1 1 7.I%8%\corespect1 0 bZ\q}vX7desktopMain2 2 Qe C@uRkotlin1 1 f8k +sI4Q۔world1 1 gu׋z&w}respect1 0 K)40AV1resources1 0 ɾ`EK:#ke=respect-cli3 1 zRXM^[:sLjZA)src1 1 圢 GE'{main1 1 c_m.5k&java1 1 4f".۞mLEfc_world1 1 (1"?" zrespect1 1 3wTr;>A-$clitools1 0 6mn]3m?'.respect-datasource33 1 cp/ Lg5Q &csrc31 2 Cm +M+gFcommonMain30 1 |,u9gkotlin30 1 amsdX` "o#world30 1 9Cko[Frespect30 1 &iXjUSIŻdatasource30 2 q;@RcL?ۜ5opds24 2 8Wڮ*Ҧ=؝+model17 0 qPcl0/X'piserialization6 0 jHmwPO7compatibleapps2 1 <V8 95MЂ9model1 0 S2zsZ8!npEandroidMain1 0 I./RH+yXIU>[b+Vf