From 7e5165d587cf686dae0db46bb74d6e5883fd7192 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:46:29 -0600 Subject: [PATCH 001/114] Twst JS compile --- .../cloudstream3/SerializationClassTester.kt | 154 ------- .../actions/temp/CloudStreamPackage.kt | 22 +- .../actions/temp/fcast/Packets.kt | 13 +- .../cloudstream3/plugins/PluginManager.kt | 11 +- .../cloudstream3/plugins/RepositoryManager.kt | 45 +- .../cloudstream3/plugins/VotingApi.kt | 5 +- .../cloudstream3/syncproviders/AuthAPI.kt | 31 +- .../syncproviders/providers/AniListApi.kt | 391 +++++++++--------- .../syncproviders/providers/KitsuApi.kt | 125 +++--- .../syncproviders/providers/MALApi.kt | 251 ++++++----- .../providers/OpenSubtitlesApi.kt | 67 ++- .../syncproviders/providers/SimklApi.kt | 237 +++++------ .../syncproviders/providers/SubSource.kt | 53 ++- .../syncproviders/providers/Subdl.kt | 83 ++-- .../cloudstream3/ui/ControllerActivity.kt | 17 +- .../ui/player/PlayerSubtitleHelper.kt | 4 - .../cloudstream3/ui/player/Torrent.kt | 89 ++-- .../ui/search/SearchHistoryAdaptor.kt | 9 +- .../ui/search/SearchSuggestionApi.kt | 13 +- .../ui/settings/SettingsGeneral.kt | 9 +- .../extensions/ExtensionsViewModel.kt | 7 +- .../subtitles/ChromecastSubtitlesFragment.kt | 17 +- .../ui/subtitles/SubtitlesFragment.kt | 35 +- .../cloudstream3/utils/BackupUtils.kt | 17 +- .../lagradost/cloudstream3/utils/DataStore.kt | 12 - .../cloudstream3/utils/DataStoreHelper.kt | 138 +++---- .../cloudstream3/utils/FillerEpisodeCheck.kt | 51 ++- .../cloudstream3/utils/InAppUpdater.kt | 39 +- .../lagradost/cloudstream3/utils/SyncUtil.kt | 89 ++-- .../utils/downloader/DownloadObjects.kt | 124 +++--- .../cloudstream3/utils/videoskip/AniSkip.kt | 21 +- .../cloudstream3/utils/videoskip/AnimeSkip.kt | 61 ++- .../utils/videoskip/IntroDbSkip.kt | 27 +- .../utils/videoskip/TheIntroDBSkip.kt | 17 +- library/build.gradle.kts | 7 - .../com/lagradost/cloudstream3/MainAPI.kt | 68 ++- .../extractors/helper/AesHelper.kt | 7 +- .../extractors/helper/GogoHelper.kt | 15 +- .../extractors/helper/JWPlayerHelper.kt | 13 +- .../extractors/helper/WcoHelper.kt | 11 +- .../metaproviders/CrossTmdbProvider.kt | 5 +- .../cloudstream3/metaproviders/MyDramaList.kt | 201 +++++---- .../metaproviders/TraktProvider.kt | 226 +++++----- .../cloudstream3/plugins/BasePlugin.kt | 9 +- .../cloudstream3/utils/ExtractorApi.kt | 6 +- 45 files changed, 1296 insertions(+), 1556 deletions(-) delete mode 100644 app/src/androidTest/java/com/lagradost/cloudstream3/SerializationClassTester.kt diff --git a/app/src/androidTest/java/com/lagradost/cloudstream3/SerializationClassTester.kt b/app/src/androidTest/java/com/lagradost/cloudstream3/SerializationClassTester.kt deleted file mode 100644 index 84ef1fee070..00000000000 --- a/app/src/androidTest/java/com/lagradost/cloudstream3/SerializationClassTester.kt +++ /dev/null @@ -1,154 +0,0 @@ -package com.lagradost.cloudstream3 - -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.platform.app.InstrumentationRegistry -import com.lagradost.cloudstream3.SkipSerializationTest -import com.lagradost.cloudstream3.utils.AppUtils.toJson -import dalvik.system.DexFile -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.InternalSerializationApi -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable -import kotlinx.serialization.serializer -import kotlinx.serialization.serializerOrNull -import org.instancio.Instancio -import org.junit.Test -import org.junit.runner.RunWith -import kotlin.reflect.KClass -import kotlin.reflect.jvm.jvmName -import kotlin.test.assertEquals -import kotlin.test.assertNotNull - -@RunWith(AndroidJUnit4::class) -class SerializationClassTester { - // Same as app, or using app reference - val jacksonMapper = mapper - val kotlinxMapper = json - - @Test - fun isIdenticalSerialization() { - val serializableClasses = findSerializableClasses("com.lagradost") - println("Number of serializable classes: ${serializableClasses.size}") - - val failures = mutableListOf() - - serializableClasses.forEach { kClass -> - runCatching { - val instance = Instancio.of(kClass.java).withMaxDepth(10).create() - - val jacksonJson = jacksonMapper.writeValueAsString(instance) - val kotlinxJson = serializeWithKotlinx(kClass, instance) - - assertEquals( - jacksonJson, - kotlinxJson, - """ - Serialization mismatch for: - ${kClass.qualifiedName} - - Jackson: - $jacksonJson - - Kotlinx: - $kotlinxJson - - """.trimIndent() - ) - println("Identical serialization for: ${kClass.jvmName}") - }.onFailure { e -> - failures.add("FAILED ${kClass.qualifiedName}: ${e.message}") - } - } - - if (failures.isNotEmpty()) { - throw AssertionError("${failures.size} class(es) failed:\n${failures.joinToString("\n")}") - } - } - - @OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class) - @Test - fun isIdenticalDeserialization() { - val serializableClasses = findSerializableClasses("com.lagradost") - println("Number of serializable classes: ${serializableClasses.size}") - - val failures = mutableListOf() - - serializableClasses.forEach { kClass -> - runCatching { - val instance = Instancio.of(kClass.java).withMaxDepth(10).create() - // Convert to JSON to get example JSON object - // We prefer jackson here because the app may have many jackson JSON strings in local storage - val originalJson = jacksonMapper.writeValueAsString(instance) - - // Create an object from the JSON using kotlinx - val serializer = - kClass.serializerOrNull() ?: kotlinxMapper.serializersModule.getContextual(kClass) - assertNotNull(serializer, "The class: ${kClass.jvmName} must be serializable!") - val kotlinxDecoded = kotlinxMapper.decodeFromString(serializer, originalJson) - - // Create an object from the JSON using jackson - val mapperDecoded = jacksonMapper.readValue(originalJson, kClass.java) - - // Deep inspect both object using the mapper toJson function. - // This deep equality check can be performed using other methods, but this just works. - val jacksonJson = mapperDecoded.toJson() - val kotlinxJson = kotlinxDecoded.toJson() - - assertEquals( - jacksonJson, - kotlinxJson, - """ - Serialization mismatch for: - ${kClass.qualifiedName} - - Jackson: - $jacksonJson - - Kotlinx: - $kotlinxJson - - """.trimIndent() - ) - println("Identical deserialization for: ${kClass.jvmName}") - }.onFailure { e -> - failures.add("FAILED ${kClass.qualifiedName}: ${e.message}") - } - } - - if (failures.isNotEmpty()) { - throw AssertionError("${failures.size} class(es) failed:\n${failures.joinToString("\n")}") - } - } - - // DEX files are the best solution to read all our classes dynamically. - // classgraph could be used instead, but it only gives results on the JVM, not Android. - @Suppress("DEPRECATION") - private fun findSerializableClasses(packageName: String): List> { - val context = InstrumentationRegistry - .getInstrumentation() - .targetContext - - val dexFile = DexFile(context.packageCodePath) - return dexFile.entries() - .toList() - .filter { it.startsWith(packageName) } - .mapNotNull { - runCatching { Class.forName(it).kotlin }.getOrNull() - }.filter { kClass -> - // Not possible to use .hasAnnotation() on newer Android versions. - kClass.java.annotations.any { it is Serializable } - && kClass.java.annotations.none { it is SkipSerializationTest } - && !kClass.isAbstract - } - } - - @OptIn(InternalSerializationApi::class) - @Suppress("UNCHECKED_CAST") - private fun serializeWithKotlinx( - kClass: KClass<*>, - value: Any - ): String { - val serializer = kClass.serializer() as KSerializer - return kotlinxMapper.encodeToString(serializer, value) - } -} diff --git a/app/src/main/java/com/lagradost/cloudstream3/actions/temp/CloudStreamPackage.kt b/app/src/main/java/com/lagradost/cloudstream3/actions/temp/CloudStreamPackage.kt index a2bb53a16b6..69d2b07ad20 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/actions/temp/CloudStreamPackage.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/actions/temp/CloudStreamPackage.kt @@ -4,7 +4,6 @@ import android.app.Activity import android.content.Context import android.content.Intent import android.net.Uri -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.actions.OpenInAppAction import com.lagradost.cloudstream3.BuildConfig import com.lagradost.cloudstream3.SkipSerializationTest @@ -54,16 +53,15 @@ class CloudStreamPackage : OpenInAppAction( } @Serializable - @SkipSerializationTest //.Uri has issues with Jackson data class MinimalVideoLink( - @JsonProperty("uri") @SerialName("uri") + @SerialName("uri") @Serializable(with = UriSerializer::class) val uri: Uri?, - @JsonProperty("url") @SerialName("url") val url: String?, - @JsonProperty("mimeType") @SerialName("mimeType") val mimeType: String = "video/mp4", - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("headers") @SerialName("headers") var headers: Map = mapOf(), - @JsonProperty("quality") @SerialName("quality") val quality: Int?, + @SerialName("url") val url: String?, + @SerialName("mimeType") val mimeType: String = "video/mp4", + @SerialName("name") val name: String?, + @SerialName("headers") var headers: Map = mapOf(), + @SerialName("quality") val quality: Int?, ) { companion object { fun fromExtractor(link: ExtractorLink): MinimalVideoLink = MinimalVideoLink( @@ -101,10 +99,10 @@ class CloudStreamPackage : OpenInAppAction( @Serializable data class MinimalSubtitleLink( - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("mimeType") @SerialName("mimeType") val mimeType: String = "text/vtt", - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("headers") @SerialName("headers") var headers: Map = mapOf(), + @SerialName("url") val url: String, + @SerialName("mimeType") val mimeType: String = "text/vtt", + @SerialName("name") val name: String?, + @SerialName("headers") var headers: Map = mapOf(), ) { companion object { fun fromSubtitle(sub: SubtitleData): MinimalSubtitleLink = MinimalSubtitleLink( diff --git a/app/src/main/java/com/lagradost/cloudstream3/actions/temp/fcast/Packets.kt b/app/src/main/java/com/lagradost/cloudstream3/actions/temp/fcast/Packets.kt index d54791e8907..a578224538b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/actions/temp/fcast/Packets.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/actions/temp/fcast/Packets.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.actions.temp.fcast -import com.fasterxml.jackson.annotation.JsonProperty import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -24,12 +23,12 @@ enum class Opcode(val value: Byte) { @Serializable data class PlayMessage( - @JsonProperty("container") @SerialName("container") val container: String, - @JsonProperty("url") @SerialName("url") val url: String? = null, - @JsonProperty("content") @SerialName("content") val content: String? = null, - @JsonProperty("time") @SerialName("time") val time: Double? = null, - @JsonProperty("speed") @SerialName("speed") val speed: Double? = null, - @JsonProperty("headers") @SerialName("headers") val headers: Map? = null, + @SerialName("container") val container: String, + @SerialName("url") val url: String? = null, + @SerialName("content") val content: String? = null, + @SerialName("time") val time: Double? = null, + @SerialName("speed") val speed: Double? = null, + @SerialName("headers") val headers: Map? = null, ) data class SeekMessage( diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt index de41cbc748e..560e11d971b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt @@ -18,7 +18,6 @@ import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.fragment.app.FragmentActivity -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.removePluginMapping import com.lagradost.cloudstream3.AllLanguagesName @@ -77,11 +76,11 @@ const val EXTENSIONS_CHANNEL_DESCRIPT = "Extension notification channel" // Data class for internal storage @Serializable data class PluginData( - @JsonProperty("internalName") @SerialName("internalName") val internalName: String, - @JsonProperty("url") @SerialName("url") val url: String?, - @JsonProperty("isOnline") @SerialName("isOnline") val isOnline: Boolean, - @JsonProperty("filePath") @SerialName("filePath") val filePath: String, - @JsonProperty("version") @SerialName("version") val version: Int, + @SerialName("internalName") val internalName: String, + @SerialName("url") val url: String?, + @SerialName("isOnline") val isOnline: Boolean, + @SerialName("filePath") val filePath: String, + @SerialName("version") val version: Int, ) { @WorkerThread fun toSitePlugin(): SitePlugin { diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt index 9ffe70063f4..b4ab736de36 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.plugins import android.content.Context import androidx.annotation.WorkerThread -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.context import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey @@ -32,11 +31,11 @@ import java.util.concurrent.TimeUnit */ @Serializable data class Repository( - @JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("description") @SerialName("description") val description: String?, - @JsonProperty("manifestVersion") @SerialName("manifestVersion") val manifestVersion: Int, - @JsonProperty("pluginLists") @SerialName("pluginLists") val pluginLists: List, + @SerialName("iconUrl") val iconUrl: String?, + @SerialName("name") val name: String, + @SerialName("description") val description: String?, + @SerialName("manifestVersion") val manifestVersion: Int, + @SerialName("pluginLists") val pluginLists: List, ) /** @@ -49,37 +48,37 @@ data class Repository( @Serializable data class SitePlugin( // Url to the .cs3 file - @JsonProperty("url") @SerialName("url") val url: String, + @SerialName("url") val url: String, // Status to remotely disable the provider - @JsonProperty("status") @SerialName("status") val status: Int, + @SerialName("status") val status: Int, // Integer over 0, any change of this will trigger an auto update - @JsonProperty("version") @SerialName("version") val version: Int, + @SerialName("version") val version: Int, // Unused currently, used to make the api backwards compatible? // Set to 1 - @JsonProperty("apiVersion") @SerialName("apiVersion") val apiVersion: Int, + @SerialName("apiVersion") val apiVersion: Int, // Name to be shown in app - @JsonProperty("name") @SerialName("name") val name: String, + @SerialName("name") val name: String, // Name to be referenced internally. Separate to make name and url changes possible - @JsonProperty("internalName") @SerialName("internalName") val internalName: String, - @JsonProperty("authors") @SerialName("authors") val authors: List, - @JsonProperty("description") @SerialName("description") val description: String?, + @SerialName("internalName") val internalName: String, + @SerialName("authors") val authors: List, + @SerialName("description") val description: String?, // Might be used to go directly to the plugin repo in the future - @JsonProperty("repositoryUrl") @SerialName("repositoryUrl") val repositoryUrl: String?, + @SerialName("repositoryUrl") val repositoryUrl: String?, // These types are yet to be mapped and used, ignore for now - @JsonProperty("tvTypes") @SerialName("tvTypes") val tvTypes: List?, + @SerialName("tvTypes") val tvTypes: List?, // Most often a language tag like "en" or "zh-TW" - @JsonProperty("language") @SerialName("language") val language: String?, - @JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?, + @SerialName("language") val language: String?, + @SerialName("iconUrl") val iconUrl: String?, // Automatically generated by the gradle plugin - @JsonProperty("fileSize") @SerialName("fileSize") val fileSize: Long?, - @JsonProperty("fileHash") @SerialName("fileHash") val fileHash: String?, + @SerialName("fileSize") val fileSize: Long?, + @SerialName("fileHash") val fileHash: String?, ) @Serializable data class PluginWrapper( - @JsonProperty("repository") @SerialName("repository") val repository: Repository, - @JsonProperty("repositoryData") @SerialName("repositoryData") val repositoryData: RepositoryData, - @JsonProperty("plugin") @SerialName("plugin") val plugin: SitePlugin + @SerialName("repository") val repository: Repository, + @SerialName("repositoryData") val repositoryData: RepositoryData, + @SerialName("plugin") val plugin: SitePlugin ) { companion object { private val localRepository = Repository("", "", "", 1, emptyList()) diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt index 13910ae5774..0a67b6892e1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.plugins import android.util.Log import android.widget.Toast -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.context import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey @@ -95,7 +94,7 @@ object VotingApi { @Serializable private data class CountifyResult( - @JsonProperty("id") @SerialName("id") val id: String? = null, - @JsonProperty("count") @SerialName("count") val count: Int? = null, + @SerialName("id") val id: String? = null, + @SerialName("count") val count: Int? = null, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/AuthAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/AuthAPI.kt index 60e41e8b3d5..19fc04fa890 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/AuthAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/AuthAPI.kt @@ -1,7 +1,5 @@ package com.lagradost.cloudstream3.syncproviders -import com.fasterxml.jackson.annotation.JsonAlias -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.unixTime import com.lagradost.cloudstream3.APIHolder.unixTimeMS @@ -31,22 +29,22 @@ data class AuthToken( * This is the general access tokens/api token representing a logged in user. * Access tokens are the thing that applications use to make API requests on behalf of a user. */ - @JsonProperty("accessToken") @SerialName("accessToken") + @SerialName("accessToken") val accessToken: String? = null, /** For OAuth a special refresh token is issues to refresh the access token. */ - @JsonProperty("refreshToken") @SerialName("refreshToken") + @SerialName("refreshToken") val refreshToken: String? = null, /** In UnixTime (sec) when it expires */ - @JsonProperty("accessTokenLifetime") @SerialName("accessTokenLifetime") + @SerialName("accessTokenLifetime") val accessTokenLifetime: Long? = null, /** In UnixTime (sec) when it expires */ - @JsonProperty("refreshTokenLifetime") @SerialName("refreshTokenLifetime") + @SerialName("refreshTokenLifetime") val refreshTokenLifetime: Long? = null, /** * Sometimes AuthToken needs to be customized to store e.g. username/password, * this acts as a catch all to store text or JSON data. */ - @JsonProperty("payload") @SerialName("payload") + @SerialName("payload") val payload: String? = null, ) { fun isAccessTokenExpired(marginSec: Long = 10L) = @@ -60,19 +58,18 @@ data class AuthToken( @Serializable data class AuthUser( /** Account display-name, can also be email if name does not exist */ - @JsonProperty("name") @SerialName("name") + @SerialName("name") val name: String?, /** * Unique account identifier. If a subsequent login is done then it * will be refused if another account with the same id exists. */ - @JsonProperty("id") @SerialName("id") + @SerialName("id") val id: Int, /** Profile picture URL */ - @JsonProperty("profilePicture") @SerialName("profilePicture") + @SerialName("profilePicture") val profilePicture: String? = null, /** Profile picture Headers of the URL */ - @JsonProperty("profilePictureHeaders") @JsonAlias("profilePictureHeader") @SerialName("profilePictureHeaders") @JsonNames("profilePictureHeader") val profilePictureHeaders: Map? = null, ) @@ -87,8 +84,8 @@ data class AuthUser( */ @Serializable data class AuthData( - @JsonProperty("user") @SerialName("user") val user: AuthUser, - @JsonProperty("token") @SerialName("token") val token: AuthToken, + @SerialName("user") val user: AuthUser, + @SerialName("token") val token: AuthToken, ) data class AuthPinData( @@ -113,10 +110,10 @@ data class AuthLoginRequirement( /** What the user responds to the AuthLoginRequirement */ @Serializable data class AuthLoginResponse( - @JsonProperty("password") @SerialName("password") val password: String?, - @JsonProperty("username") @SerialName("username") val username: String?, - @JsonProperty("email") @SerialName("email") val email: String?, - @JsonProperty("server") @SerialName("server") val server: String?, + @SerialName("password") val password: String?, + @SerialName("username") val username: String?, + @SerialName("email") val email: String?, + @SerialName("server") val server: String?, ) /** Stateless Authentication class used for all personalized content */ diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt index 37795c30b74..ae99fd2d2e8 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import androidx.annotation.StringRes -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.Actor import com.lagradost.cloudstream3.ActorData import com.lagradost.cloudstream3.ActorRole @@ -526,77 +525,77 @@ class AniListApi : SyncAPI() { @Serializable data class Variables( - @JsonProperty("search") @SerialName("search") val search: String, - @JsonProperty("page") @SerialName("page") val page: Int, - @JsonProperty("type") @SerialName("type") val type: String, + @SerialName("search") val search: String, + @SerialName("page") val page: Int, + @SerialName("type") val type: String, ) @Serializable data class MediaRecommendation( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("title") @SerialName("title") val title: Title?, - @JsonProperty("idMal") @SerialName("idMal") val idMal: Int?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: CoverImage?, - @JsonProperty("averageScore") @SerialName("averageScore") val averageScore: Int?, + @SerialName("id") val id: Int, + @SerialName("title") val title: Title?, + @SerialName("idMal") val idMal: Int?, + @SerialName("coverImage") val coverImage: CoverImage?, + @SerialName("averageScore") val averageScore: Int?, ) @Serializable data class FullAnilistList( - @JsonProperty("data") @SerialName("data") val data: Data?, + @SerialName("data") val data: Data?, ) @Serializable data class CompletedAt( - @JsonProperty("year") @SerialName("year") val year: Int, - @JsonProperty("month") @SerialName("month") val month: Int, - @JsonProperty("day") @SerialName("day") val day: Int, + @SerialName("year") val year: Int, + @SerialName("month") val month: Int, + @SerialName("day") val day: Int, ) @Serializable data class StartedAt( - @JsonProperty("year") @SerialName("year") val year: String?, - @JsonProperty("month") @SerialName("month") val month: String?, - @JsonProperty("day") @SerialName("day") val day: String?, + @SerialName("year") val year: String?, + @SerialName("month") val month: String?, + @SerialName("day") val day: String?, ) @Serializable data class Title( - @JsonProperty("english") @SerialName("english") val english: String?, - @JsonProperty("romaji") @SerialName("romaji") val romaji: String?, + @SerialName("english") val english: String?, + @SerialName("romaji") val romaji: String?, ) @Serializable data class CoverImage( - @JsonProperty("medium") @SerialName("medium") val medium: String?, - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("extraLarge") @SerialName("extraLarge") val extraLarge: String?, + @SerialName("medium") val medium: String?, + @SerialName("large") val large: String?, + @SerialName("extraLarge") val extraLarge: String?, ) @Serializable data class Media( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("idMal") @SerialName("idMal") val idMal: Int?, - @JsonProperty("season") @SerialName("season") val season: String?, - @JsonProperty("seasonYear") @SerialName("seasonYear") val seasonYear: Int, - @JsonProperty("format") @SerialName("format") val format: String?, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Int, - @JsonProperty("title") @SerialName("title") val title: Title, - @JsonProperty("description") @SerialName("description") val description: String?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: CoverImage, - @JsonProperty("synonyms") @SerialName("synonyms") val synonyms: List, - @JsonProperty("nextAiringEpisode") @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, + @SerialName("id") val id: Int, + @SerialName("idMal") val idMal: Int?, + @SerialName("season") val season: String?, + @SerialName("seasonYear") val seasonYear: Int, + @SerialName("format") val format: String?, + @SerialName("episodes") val episodes: Int, + @SerialName("title") val title: Title, + @SerialName("description") val description: String?, + @SerialName("coverImage") val coverImage: CoverImage, + @SerialName("synonyms") val synonyms: List, + @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, ) @Serializable data class Entries( - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("completedAt") @SerialName("completedAt") val completedAt: CompletedAt, - @JsonProperty("startedAt") @SerialName("startedAt") val startedAt: StartedAt, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: Int, - @JsonProperty("progress") @SerialName("progress") val progress: Int, - @JsonProperty("score") @SerialName("score") val score: Int, - @JsonProperty("private") @SerialName("private") val private: Boolean, - @JsonProperty("media") @SerialName("media") val media: Media, + @SerialName("status") val status: String?, + @SerialName("completedAt") val completedAt: CompletedAt, + @SerialName("startedAt") val startedAt: StartedAt, + @SerialName("updatedAt") val updatedAt: Int, + @SerialName("progress") val progress: Int, + @SerialName("score") val score: Int, + @SerialName("private") val private: Boolean, + @SerialName("media") val media: Media, ) { fun toLibraryItem(): SyncAPI.LibraryItem { return SyncAPI.LibraryItem( @@ -625,18 +624,18 @@ class AniListApi : SyncAPI() { @Serializable data class Lists( - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("entries") @SerialName("entries") val entries: List, + @SerialName("status") val status: String?, + @SerialName("entries") val entries: List, ) @Serializable data class MediaListCollection( - @JsonProperty("lists") @SerialName("lists") val lists: List, + @SerialName("lists") val lists: List, ) @Serializable data class Data( - @JsonProperty("MediaListCollection") @SerialName("MediaListCollection") val mediaListCollection: MediaListCollection, + @SerialName("MediaListCollection") val mediaListCollection: MediaListCollection, ) private suspend fun getAniListAnimeListSmart(auth: AuthData): Array? { @@ -749,17 +748,17 @@ class AniListApi : SyncAPI() { /** Used to query a saved MediaItem on the list to get the id for removal */ @Serializable data class MediaListItemRoot( - @JsonProperty("data") @SerialName("data") val data: MediaListItem? = null, + @SerialName("data") val data: MediaListItem? = null, ) @Serializable data class MediaListItem( - @JsonProperty("MediaList") @SerialName("MediaList") val mediaList: MediaListId? = null, + @SerialName("MediaList") val mediaList: MediaListId? = null, ) @Serializable data class MediaListId( - @JsonProperty("id") @SerialName("id") val id: Long? = null, + @SerialName("id") val id: Long? = null, ) private suspend fun postDataAboutId( @@ -863,355 +862,355 @@ class AniListApi : SyncAPI() { @Serializable data class SeasonResponse( - @JsonProperty("data") @SerialName("data") val data: SeasonData, + @SerialName("data") val data: SeasonData, ) @Serializable data class SeasonData( - @JsonProperty("Media") @SerialName("Media") val media: SeasonMedia, + @SerialName("Media") val media: SeasonMedia, ) @Serializable data class RecommendedMedia( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("title") @SerialName("title") val title: MediaTitle?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: MediaCoverImage?, + @SerialName("id") val id: Int?, + @SerialName("title") val title: MediaTitle?, + @SerialName("coverImage") val coverImage: MediaCoverImage?, ) @Serializable data class CharacterMedia( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("title") @SerialName("title") val title: MediaTitle?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: MediaCoverImage?, + @SerialName("id") val id: Int?, + @SerialName("title") val title: MediaTitle?, + @SerialName("coverImage") val coverImage: MediaCoverImage?, ) @Serializable data class SeasonMedia( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("title") @SerialName("title") val title: MediaTitle?, - @JsonProperty("idMal") @SerialName("idMal") val idMal: Int?, - @JsonProperty("format") @SerialName("format") val format: String?, - @JsonProperty("nextAiringEpisode") @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, - @JsonProperty("relations") @SerialName("relations") val relations: SeasonEdges?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: MediaCoverImage?, - @JsonProperty("duration") @SerialName("duration") val duration: Int?, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Int?, - @JsonProperty("genres") @SerialName("genres") val genres: List?, - @JsonProperty("synonyms") @SerialName("synonyms") val synonyms: List?, - @JsonProperty("averageScore") @SerialName("averageScore") val averageScore: Int?, - @JsonProperty("isAdult") @SerialName("isAdult") val isAdult: Boolean?, - @JsonProperty("trailer") @SerialName("trailer") val trailer: MediaTrailer?, - @JsonProperty("description") @SerialName("description") val description: String?, - @JsonProperty("characters") @SerialName("characters") val characters: CharacterConnection?, - @JsonProperty("recommendations") @SerialName("recommendations") val recommendations: RecommendationConnection?, + @SerialName("id") val id: Int?, + @SerialName("title") val title: MediaTitle?, + @SerialName("idMal") val idMal: Int?, + @SerialName("format") val format: String?, + @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, + @SerialName("relations") val relations: SeasonEdges?, + @SerialName("coverImage") val coverImage: MediaCoverImage?, + @SerialName("duration") val duration: Int?, + @SerialName("episodes") val episodes: Int?, + @SerialName("genres") val genres: List?, + @SerialName("synonyms") val synonyms: List?, + @SerialName("averageScore") val averageScore: Int?, + @SerialName("isAdult") val isAdult: Boolean?, + @SerialName("trailer") val trailer: MediaTrailer?, + @SerialName("description") val description: String?, + @SerialName("characters") val characters: CharacterConnection?, + @SerialName("recommendations") val recommendations: RecommendationConnection?, ) @Serializable data class RecommendationConnection( - @JsonProperty("edges") @SerialName("edges") val edges: List = emptyList(), - @JsonProperty("nodes") @SerialName("nodes") val nodes: List = emptyList(), + @SerialName("edges") val edges: List = emptyList(), + @SerialName("nodes") val nodes: List = emptyList(), ) @Serializable data class RecommendationEdge( - @JsonProperty("node") @SerialName("node") val node: Recommendation, + @SerialName("node") val node: Recommendation, ) @Serializable data class Recommendation( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("mediaRecommendation") @SerialName("mediaRecommendation") val mediaRecommendation: RecommendedMedia?, + @SerialName("id") val id: Long, + @SerialName("mediaRecommendation") val mediaRecommendation: RecommendedMedia?, ) @Serializable data class CharacterName( - @JsonProperty("name") @SerialName("name") val first: String?, - @JsonProperty("middle") @SerialName("middle") val middle: String?, - @JsonProperty("last") @SerialName("last") val last: String?, - @JsonProperty("full") @SerialName("full") val full: String?, - @JsonProperty("native") @SerialName("native") val native: String?, - @JsonProperty("alternative") @SerialName("alternative") val alternative: List?, - @JsonProperty("alternativeSpoiler") @SerialName("alternativeSpoiler") val alternativeSpoiler: List?, - @JsonProperty("userPreferred") @SerialName("userPreferred") val userPreferred: String?, + @SerialName("name") val first: String?, + @SerialName("middle") val middle: String?, + @SerialName("last") val last: String?, + @SerialName("full") val full: String?, + @SerialName("native") val native: String?, + @SerialName("alternative") val alternative: List?, + @SerialName("alternativeSpoiler") val alternativeSpoiler: List?, + @SerialName("userPreferred") val userPreferred: String?, ) @Serializable data class CharacterImage( - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("medium") @SerialName("medium") val medium: String?, + @SerialName("large") val large: String?, + @SerialName("medium") val medium: String?, ) @Serializable data class Character( - @JsonProperty("name") @SerialName("name") val name: CharacterName?, - @JsonProperty("age") @SerialName("age") val age: String?, - @JsonProperty("image") @SerialName("image") val image: CharacterImage?, + @SerialName("name") val name: CharacterName?, + @SerialName("age") val age: String?, + @SerialName("image") val image: CharacterImage?, ) @Serializable data class CharacterEdge( - @JsonProperty("id") @SerialName("id") val id: Int?, + @SerialName("id") val id: Int?, /** * MAIN - A primary character role in the media * SUPPORTING - A supporting character role in the media * BACKGROUND - A background character in the media */ - @JsonProperty("role") @SerialName("role") val role: String?, - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("voiceActors") @SerialName("voiceActors") val voiceActors: List?, - @JsonProperty("favouriteOrder") @SerialName("favouriteOrder") val favouriteOrder: Int?, - @JsonProperty("media") @SerialName("media") val media: List?, - @JsonProperty("node") @SerialName("node") val node: Character?, + @SerialName("role") val role: String?, + @SerialName("name") val name: String?, + @SerialName("voiceActors") val voiceActors: List?, + @SerialName("favouriteOrder") val favouriteOrder: Int?, + @SerialName("media") val media: List?, + @SerialName("node") val node: Character?, ) @Serializable data class StaffImage( - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("medium") @SerialName("medium") val medium: String?, + @SerialName("large") val large: String?, + @SerialName("medium") val medium: String?, ) @Serializable data class StaffName( - @JsonProperty("name") @SerialName("name") val first: String?, - @JsonProperty("middle") @SerialName("middle") val middle: String?, - @JsonProperty("last") @SerialName("last") val last: String?, - @JsonProperty("full") @SerialName("full") val full: String?, - @JsonProperty("native") @SerialName("native") val native: String?, - @JsonProperty("alternative") @SerialName("alternative") val alternative: List?, - @JsonProperty("userPreferred") @SerialName("userPreferred") val userPreferred: String?, + @SerialName("name") val first: String?, + @SerialName("middle") val middle: String?, + @SerialName("last") val last: String?, + @SerialName("full") val full: String?, + @SerialName("native") val native: String?, + @SerialName("alternative") val alternative: List?, + @SerialName("userPreferred") val userPreferred: String?, ) @Serializable data class Staff( - @JsonProperty("image") @SerialName("image") val image: StaffImage?, - @JsonProperty("name") @SerialName("name") val name: StaffName?, - @JsonProperty("age") @SerialName("age") val age: Int?, + @SerialName("image") val image: StaffImage?, + @SerialName("name") val name: StaffName?, + @SerialName("age") val age: Int?, ) @Serializable data class CharacterConnection( - @JsonProperty("edges") @SerialName("edges") val edges: List?, - @JsonProperty("nodes") @SerialName("nodes") val nodes: List?, + @SerialName("edges") val edges: List?, + @SerialName("nodes") val nodes: List?, ) @Serializable data class MediaTrailer( - @JsonProperty("id") @SerialName("id") val id: String?, - @JsonProperty("site") @SerialName("site") val site: String?, - @JsonProperty("thumbnail") @SerialName("thumbnail") val thumbnail: String?, + @SerialName("id") val id: String?, + @SerialName("site") val site: String?, + @SerialName("thumbnail") val thumbnail: String?, ) @Serializable data class MediaCoverImage( - @JsonProperty("extraLarge") @SerialName("extraLarge") val extraLarge: String?, - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("medium") @SerialName("medium") val medium: String?, - @JsonProperty("color") @SerialName("color") val color: String?, + @SerialName("extraLarge") val extraLarge: String?, + @SerialName("large") val large: String?, + @SerialName("medium") val medium: String?, + @SerialName("color") val color: String?, ) @Serializable data class SeasonNextAiringEpisode( - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("timeUntilAiring") @SerialName("timeUntilAiring") val timeUntilAiring: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("timeUntilAiring") val timeUntilAiring: Int?, ) @Serializable data class SeasonEdges( - @JsonProperty("edges") @SerialName("edges") val edges: List?, + @SerialName("edges") val edges: List?, ) @Serializable data class SeasonEdge( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("relationType") @SerialName("relationType") val relationType: String?, - @JsonProperty("node") @SerialName("node") val node: SeasonNode?, + @SerialName("id") val id: Int?, + @SerialName("relationType") val relationType: String?, + @SerialName("node") val node: SeasonNode?, ) @Serializable data class AniListFavoritesMediaConnection( - @JsonProperty("nodes") @SerialName("nodes") val nodes: List, + @SerialName("nodes") val nodes: List, ) @Serializable data class AniListFavourites( - @JsonProperty("anime") @SerialName("anime") val anime: AniListFavoritesMediaConnection, + @SerialName("anime") val anime: AniListFavoritesMediaConnection, ) @Serializable data class MediaTitle( - @JsonProperty("romaji") @SerialName("romaji") val romaji: String?, - @JsonProperty("english") @SerialName("english") val english: String?, - @JsonProperty("native") @SerialName("native") val native: String?, - @JsonProperty("userPreferred") @SerialName("userPreferred") val userPreferred: String?, + @SerialName("romaji") val romaji: String?, + @SerialName("english") val english: String?, + @SerialName("native") val native: String?, + @SerialName("userPreferred") val userPreferred: String?, ) @Serializable data class SeasonNode( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("format") @SerialName("format") val format: String?, - @JsonProperty("title") @SerialName("title") val title: Title?, - @JsonProperty("idMal") @SerialName("idMal") val idMal: Int?, - @JsonProperty("coverImage") @SerialName("coverImage") val coverImage: CoverImage?, - @JsonProperty("averageScore") @SerialName("averageScore") val averageScore: Int?, + @SerialName("id") val id: Int, + @SerialName("format") val format: String?, + @SerialName("title") val title: Title?, + @SerialName("idMal") val idMal: Int?, + @SerialName("coverImage") val coverImage: CoverImage?, + @SerialName("averageScore") val averageScore: Int?, ) @Serializable data class AniListAvatar( - @JsonProperty("large") @SerialName("large") val large: String?, + @SerialName("large") val large: String?, ) @Serializable data class AniListViewer( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("avatar") @SerialName("avatar") val avatar: AniListAvatar?, - @JsonProperty("favourites") @SerialName("favourites") val favourites: AniListFavourites?, + @SerialName("id") val id: Int, + @SerialName("name") val name: String, + @SerialName("avatar") val avatar: AniListAvatar?, + @SerialName("favourites") val favourites: AniListFavourites?, ) @Serializable data class AniListData( - @JsonProperty("Viewer") @SerialName("Viewer") val viewer: AniListViewer?, + @SerialName("Viewer") val viewer: AniListViewer?, ) @Serializable data class AniListRoot( - @JsonProperty("data") @SerialName("data") val data: AniListData?, + @SerialName("data") val data: AniListData?, ) @Serializable data class AniListUser( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("picture") @SerialName("picture") val picture: String?, + @SerialName("id") val id: Int, + @SerialName("name") val name: String, + @SerialName("picture") val picture: String?, ) @Serializable data class LikeNode( - @JsonProperty("id") @SerialName("id") val id: Int?, + @SerialName("id") val id: Int?, ) @Serializable data class LikePageInfo( - @JsonProperty("total") @SerialName("total") val total: Int?, - @JsonProperty("currentPage") @SerialName("currentPage") val currentPage: Int?, - @JsonProperty("lastPage") @SerialName("lastPage") val lastPage: Int?, - @JsonProperty("perPage") @SerialName("perPage") val perPage: Int?, - @JsonProperty("hasNextPage") @SerialName("hasNextPage") val hasNextPage: Boolean?, + @SerialName("total") val total: Int?, + @SerialName("currentPage") val currentPage: Int?, + @SerialName("lastPage") val lastPage: Int?, + @SerialName("perPage") val perPage: Int?, + @SerialName("hasNextPage") val hasNextPage: Boolean?, ) @Serializable data class LikeAnime( - @JsonProperty("nodes") @SerialName("nodes") val nodes: List?, - @JsonProperty("pageInfo") @SerialName("pageInfo") val pageInfo: LikePageInfo?, + @SerialName("nodes") val nodes: List?, + @SerialName("pageInfo") val pageInfo: LikePageInfo?, ) @Serializable data class LikeFavourites( - @JsonProperty("anime") @SerialName("anime") val anime: LikeAnime?, + @SerialName("anime") val anime: LikeAnime?, ) @Serializable data class LikeViewer( - @JsonProperty("favourites") @SerialName("favourites") val favourites: LikeFavourites?, + @SerialName("favourites") val favourites: LikeFavourites?, ) @Serializable data class LikeData( - @JsonProperty("Viewer") @SerialName("Viewer") val viewer: LikeViewer?, + @SerialName("Viewer") val viewer: LikeViewer?, ) @Serializable data class LikeRoot( - @JsonProperty("data") @SerialName("data") val data: LikeData?, + @SerialName("data") val data: LikeData?, ) @Serializable data class AniListTitleHolder( - @JsonProperty("title") @SerialName("title") val title: Title?, - @JsonProperty("isFavourite") @SerialName("isFavourite") val isFavourite: Boolean?, - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("progress") @SerialName("progress") val progress: Int?, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Int?, - @JsonProperty("score") @SerialName("score") val score: Int?, - @JsonProperty("type") @SerialName("type") val type: AniListStatusType?, + @SerialName("title") val title: Title?, + @SerialName("isFavourite") val isFavourite: Boolean?, + @SerialName("id") val id: Int?, + @SerialName("progress") val progress: Int?, + @SerialName("episodes") val episodes: Int?, + @SerialName("score") val score: Int?, + @SerialName("type") val type: AniListStatusType?, ) @Serializable data class GetDataMediaListEntry( - @JsonProperty("progress") @SerialName("progress") val progress: Int?, - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("score") @SerialName("score") val score: Int?, + @SerialName("progress") val progress: Int?, + @SerialName("status") val status: String?, + @SerialName("score") val score: Int?, ) @Serializable data class Nodes( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("mediaRecommendation") @SerialName("mediaRecommendation") val mediaRecommendation: MediaRecommendation?, + @SerialName("id") val id: Int?, + @SerialName("mediaRecommendation") val mediaRecommendation: MediaRecommendation?, ) @Serializable data class GetDataMedia( - @JsonProperty("isFavourite") @SerialName("isFavourite") val isFavourite: Boolean?, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Int?, - @JsonProperty("title") @SerialName("title") val title: Title?, - @JsonProperty("mediaListEntry") @SerialName("mediaListEntry") val mediaListEntry: GetDataMediaListEntry?, + @SerialName("isFavourite") val isFavourite: Boolean?, + @SerialName("episodes") val episodes: Int?, + @SerialName("title") val title: Title?, + @SerialName("mediaListEntry") val mediaListEntry: GetDataMediaListEntry?, ) @Serializable data class Recommendations( - @JsonProperty("nodes") @SerialName("nodes") val nodes: List?, + @SerialName("nodes") val nodes: List?, ) @Serializable data class GetDataData( - @JsonProperty("Media") @SerialName("Media") val media: GetDataMedia?, + @SerialName("Media") val media: GetDataMedia?, ) @Serializable data class GetDataRoot( - @JsonProperty("data") @SerialName("data") val data: GetDataData?, + @SerialName("data") val data: GetDataData?, ) @Serializable data class GetSearchTitle( - @JsonProperty("romaji") @SerialName("romaji") val romaji: String?, + @SerialName("romaji") val romaji: String?, ) @Serializable data class TrailerObject( - @JsonProperty("id") @SerialName("id") val id: String?, - @JsonProperty("thumbnail") @SerialName("thumbnail") val thumbnail: String?, - @JsonProperty("site") @SerialName("site") val site: String?, + @SerialName("id") val id: String?, + @SerialName("thumbnail") val thumbnail: String?, + @SerialName("site") val site: String?, ) @Serializable data class GetSearchMedia( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("idMal") @SerialName("idMal") val idMal: Int?, - @JsonProperty("seasonYear") @SerialName("seasonYear") val seasonYear: Int, - @JsonProperty("title") @SerialName("title") val title: GetSearchTitle, - @JsonProperty("startDate") @SerialName("startDate") val startDate: StartedAt, - @JsonProperty("averageScore") @SerialName("averageScore") val averageScore: Int?, - @JsonProperty("meanScore") @SerialName("meanScore") val meanScore: Int?, - @JsonProperty("bannerImage") @SerialName("bannerImage") val bannerImage: String?, - @JsonProperty("trailer") @SerialName("trailer") val trailer: TrailerObject?, - @JsonProperty("nextAiringEpisode") @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, - @JsonProperty("recommendations") @SerialName("recommendations") val recommendations: Recommendations?, - @JsonProperty("relations") @SerialName("relations") val relations: SeasonEdges?, + @SerialName("id") val id: Int, + @SerialName("idMal") val idMal: Int?, + @SerialName("seasonYear") val seasonYear: Int, + @SerialName("title") val title: GetSearchTitle, + @SerialName("startDate") val startDate: StartedAt, + @SerialName("averageScore") val averageScore: Int?, + @SerialName("meanScore") val meanScore: Int?, + @SerialName("bannerImage") val bannerImage: String?, + @SerialName("trailer") val trailer: TrailerObject?, + @SerialName("nextAiringEpisode") val nextAiringEpisode: SeasonNextAiringEpisode?, + @SerialName("recommendations") val recommendations: Recommendations?, + @SerialName("relations") val relations: SeasonEdges?, ) @Serializable data class GetSearchPage( - @JsonProperty("Page") @SerialName("Page") val page: GetSearchData?, + @SerialName("Page") val page: GetSearchData?, ) @Serializable data class GetSearchData( - @JsonProperty("media") @SerialName("media") val media: List?, + @SerialName("media") val media: List?, ) @Serializable data class GetSearchRoot( - @JsonProperty("data") @SerialName("data") val data: GetSearchPage?, + @SerialName("data") val data: GetSearchPage?, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/KitsuApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/KitsuApi.kt index c613aa6ea24..cc3478f5335 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/KitsuApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/KitsuApi.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import androidx.annotation.StringRes -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey @@ -181,7 +180,7 @@ class KitsuApi: SyncAPI() { @Serializable data class KitsuResponse( - @JsonProperty("data") @SerialName("data") val data: KitsuNode, + @SerialName("data") val data: KitsuNode, ) val url = @@ -464,19 +463,19 @@ class KitsuApi: SyncAPI() { @Serializable data class ResponseToken( - @JsonProperty("token_type") @SerialName("token_type") val tokenType: String, - @JsonProperty("expires_in") @SerialName("expires_in") val expiresIn: Int, - @JsonProperty("access_token") @SerialName("access_token") val accessToken: String, - @JsonProperty("refresh_token") @SerialName("refresh_token") val refreshToken: String, + @SerialName("token_type") val tokenType: String, + @SerialName("expires_in") val expiresIn: Int, + @SerialName("access_token") val accessToken: String, + @SerialName("refresh_token") val refreshToken: String, ) @Serializable data class KitsuNode( - @JsonProperty("id") @SerialName("id") val id: String, - @JsonProperty("attributes") @SerialName("attributes") val attributes: KitsuNodeAttributes, + @SerialName("id") val id: String, + @SerialName("attributes") val attributes: KitsuNodeAttributes, /* User list anime node */ - @JsonProperty("relationships") @SerialName("relationships") val relationships: KitsuRelationships?, - @JsonProperty("anime") @SerialName("anime") var anime: KitsuAnimeData?, + @SerialName("relationships") val relationships: KitsuRelationships?, + @SerialName("anime") var anime: KitsuAnimeData?, ) { fun toLibraryItem(): LibraryItem { val animeItem = this.anime @@ -522,88 +521,88 @@ class KitsuApi: SyncAPI() { @Serializable data class KitsuAnimeAttributes( - @JsonProperty("titles") @SerialName("titles") val titles: KitsuTitles?, - @JsonProperty("canonicalTitle") @SerialName("canonicalTitle") val canonicalTitle: String?, - @JsonProperty("posterImage") @SerialName("posterImage") val posterImage: KitsuPosterImage?, - @JsonProperty("synopsis") @SerialName("synopsis") val synopsis: String?, - @JsonProperty("startDate") @SerialName("startDate") val startDate: String?, - @JsonProperty("endDate") @SerialName("endDate") val endDate: String?, - @JsonProperty("episodeCount") @SerialName("episodeCount") val episodeCount: Int?, - @JsonProperty("episodeLength") @SerialName("episodeLength") val episodeLength: Int?, + @SerialName("titles") val titles: KitsuTitles?, + @SerialName("canonicalTitle") val canonicalTitle: String?, + @SerialName("posterImage") val posterImage: KitsuPosterImage?, + @SerialName("synopsis") val synopsis: String?, + @SerialName("startDate") val startDate: String?, + @SerialName("endDate") val endDate: String?, + @SerialName("episodeCount") val episodeCount: Int?, + @SerialName("episodeLength") val episodeLength: Int?, ) @Serializable data class KitsuAnimeData( - @JsonProperty("id") @SerialName("id") val id: String, - @JsonProperty("attributes") @SerialName("attributes") val attributes: KitsuAnimeAttributes, + @SerialName("id") val id: String, + @SerialName("attributes") val attributes: KitsuAnimeAttributes, ) @Serializable data class KitsuNodeAttributes( /* General attributes */ - @JsonProperty("titles") @SerialName("titles") val titles: KitsuTitles?, - @JsonProperty("canonicalTitle") @SerialName("canonicalTitle") val canonicalTitle: String?, - @JsonProperty("posterImage") @SerialName("posterImage") val posterImage: KitsuPosterImage?, - @JsonProperty("synopsis") @SerialName("synopsis") val synopsis: String?, - @JsonProperty("startDate") @SerialName("startDate") val startDate: String?, - @JsonProperty("endDate") @SerialName("endDate") val endDate: String?, - @JsonProperty("episodeCount") @SerialName("episodeCount") val episodeCount: Int?, - @JsonProperty("episodeLength") @SerialName("episodeLength") val episodeLength: Int?, + @SerialName("titles") val titles: KitsuTitles?, + @SerialName("canonicalTitle") val canonicalTitle: String?, + @SerialName("posterImage") val posterImage: KitsuPosterImage?, + @SerialName("synopsis") val synopsis: String?, + @SerialName("startDate") val startDate: String?, + @SerialName("endDate") val endDate: String?, + @SerialName("episodeCount") val episodeCount: Int?, + @SerialName("episodeLength") val episodeLength: Int?, /* User attributes */ - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("location") @SerialName("location") val location: String?, - @JsonProperty("createdAt") @SerialName("createdAt") val createdAt: String?, - @JsonProperty("avatar") @SerialName("avatar") val avatar: KitsuUserAvatar?, + @SerialName("name") val name: String?, + @SerialName("location") val location: String?, + @SerialName("createdAt") val createdAt: String?, + @SerialName("avatar") val avatar: KitsuUserAvatar?, /* User list anime attributes */ - @JsonProperty("progress") @SerialName("progress") val progress: Int?, - @JsonProperty("ratingTwenty") @SerialName("ratingTwenty") val ratingTwenty: Int?, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: String?, - @JsonProperty("status") @SerialName("status") val status: String?, + @SerialName("progress") val progress: Int?, + @SerialName("ratingTwenty") val ratingTwenty: Int?, + @SerialName("updatedAt") val updatedAt: String?, + @SerialName("status") val status: String?, ) @Serializable data class KitsuRelationships( - @JsonProperty("anime") @SerialName("anime") val anime: KitsuRelationshipsAnime?, + @SerialName("anime") val anime: KitsuRelationshipsAnime?, ) @Serializable data class KitsuRelationshipsAnime( - @JsonProperty("links") @SerialName("links") val links: KitsuLinks?, + @SerialName("links") val links: KitsuLinks?, ) @Serializable data class KitsuPosterImage( - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("medium") @SerialName("medium") val medium: String?, + @SerialName("large") val large: String?, + @SerialName("medium") val medium: String?, ) @Serializable data class KitsuTitles( - @JsonProperty("en_jp") @SerialName("en_jp") val enJp: String?, - @JsonProperty("ja_jp") @SerialName("ja_jp") val jaJp: String?, + @SerialName("en_jp") val enJp: String?, + @SerialName("ja_jp") val jaJp: String?, ) @Serializable data class KitsuUserAvatar( - @JsonProperty("original") @SerialName("original") val original: String?, + @SerialName("original") val original: String?, ) @Serializable data class KitsuLinks( /* Pagination */ - @JsonProperty("first") @SerialName("first") val first: String?, - @JsonProperty("next") @SerialName("next") val next: String?, - @JsonProperty("last") @SerialName("last") val last: String?, + @SerialName("first") val first: String?, + @SerialName("next") val next: String?, + @SerialName("last") val last: String?, /* Relationships */ - @JsonProperty("related") @SerialName("related") val related: String?, + @SerialName("related") val related: String?, ) @Serializable data class KitsuResponse( - @JsonProperty("links") @SerialName("links") val links: KitsuLinks?, - @JsonProperty("data") @SerialName("data") val data: List, + @SerialName("links") val links: KitsuLinks?, + @SerialName("data") val data: List, /* When requesting related info (User library entry -> anime) */ - @JsonProperty("included") @SerialName("included") val included: List?, + @SerialName("included") val included: List?, ) companion object { @@ -754,50 +753,50 @@ query { @Serializable data class KitsuResponse( - @JsonProperty("data") @SerialName("data") val data: Data? = null, + @SerialName("data") val data: Data? = null, ) { @Serializable data class Data( - @JsonProperty("lookupMapping") @SerialName("lookupMapping") val lookupMapping: LookupMapping? = null, + @SerialName("lookupMapping") val lookupMapping: LookupMapping? = null, ) @Serializable data class LookupMapping( - @JsonProperty("id") @SerialName("id") val id: String? = null, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Episodes? = null, + @SerialName("id") val id: String? = null, + @SerialName("episodes") val episodes: Episodes? = null, ) @Serializable data class Episodes( - @JsonProperty("nodes") @SerialName("nodes") val nodes: List? = null, + @SerialName("nodes") val nodes: List? = null, ) @Serializable data class Node( - @JsonProperty("number") @SerialName("number") val num: Int? = null, - @JsonProperty("titles") @SerialName("titles") val titles: Titles? = null, - @JsonProperty("description") @SerialName("description") val description: Description? = null, - @JsonProperty("thumbnail") @SerialName("thumbnail") val thumbnail: Thumbnail? = null, + @SerialName("number") val num: Int? = null, + @SerialName("titles") val titles: Titles? = null, + @SerialName("description") val description: Description? = null, + @SerialName("thumbnail") val thumbnail: Thumbnail? = null, ) @Serializable data class Description( - @JsonProperty("en") @SerialName("en") val en: String? = null, + @SerialName("en") val en: String? = null, ) @Serializable data class Thumbnail( - @JsonProperty("original") @SerialName("original") val original: Original? = null, + @SerialName("original") val original: Original? = null, ) @Serializable data class Original( - @JsonProperty("url") @SerialName("url") val url: String? = null, + @SerialName("url") val url: String? = null, ) @Serializable data class Titles( - @JsonProperty("canonical") @SerialName("canonical") val canonical: String? = null, + @SerialName("canonical") val canonical: String? = null, ) } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt index 42e489eda15..1b046a2a25b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import androidx.annotation.StringRes -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.BuildConfig import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -57,8 +56,8 @@ class MALApi : SyncAPI() { @Serializable data class Payload( - @JsonProperty("requestId") @SerialName("requestId") val requestId: Int, - @JsonProperty("codeVerifier") @SerialName("codeVerifier") val codeVerifier: String, + @SerialName("requestId") val requestId: Int, + @SerialName("codeVerifier") val codeVerifier: String, ) override suspend fun login(redirectUrl: String, payload: String?): AuthToken? { @@ -141,81 +140,81 @@ class MALApi : SyncAPI() { @Serializable data class MalAnime( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("main_picture") @SerialName("main_picture") val mainPicture: MainPicture?, - @JsonProperty("alternative_titles") @SerialName("alternative_titles") val alternativeTitles: AlternativeTitles?, - @JsonProperty("start_date") @SerialName("start_date") val startDate: String?, - @JsonProperty("end_date") @SerialName("end_date") val endDate: String?, - @JsonProperty("synopsis") @SerialName("synopsis") val synopsis: String?, - @JsonProperty("mean") @SerialName("mean") val mean: Double?, - @JsonProperty("rank") @SerialName("rank") val rank: Int?, - @JsonProperty("popularity") @SerialName("popularity") val popularity: Int?, - @JsonProperty("num_list_users") @SerialName("num_list_users") val numListUsers: Int?, - @JsonProperty("num_scoring_users") @SerialName("num_scoring_users") val numScoringUsers: Int?, - @JsonProperty("nsfw") @SerialName("nsfw") val nsfw: String?, - @JsonProperty("created_at") @SerialName("created_at") val createdAt: String?, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String?, - @JsonProperty("media_type") @SerialName("media_type") val mediaType: String?, - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("genres") @SerialName("genres") val genres: ArrayList?, - @JsonProperty("my_list_status") @SerialName("my_list_status") val myListStatus: MyListStatus?, - @JsonProperty("num_episodes") @SerialName("num_episodes") val numEpisodes: Int?, - @JsonProperty("start_season") @SerialName("start_season") val startSeason: StartSeason?, - @JsonProperty("broadcast") @SerialName("broadcast") val broadcast: Broadcast?, - @JsonProperty("source") @SerialName("source") val source: String?, - @JsonProperty("average_episode_duration") @SerialName("average_episode_duration") val averageEpisodeDuration: Int?, - @JsonProperty("rating") @SerialName("rating") val rating: String?, - @JsonProperty("pictures") @SerialName("pictures") val pictures: ArrayList?, - @JsonProperty("background") @SerialName("background") val background: String?, - @JsonProperty("related_anime") @SerialName("related_anime") val relatedAnime: ArrayList?, - @JsonProperty("related_manga") @SerialName("related_manga") val relatedManga: ArrayList?, - @JsonProperty("recommendations") @SerialName("recommendations") val recommendations: ArrayList?, - @JsonProperty("studios") @SerialName("studios") val studios: ArrayList?, - @JsonProperty("statistics") @SerialName("statistics") val statistics: Statistics?, + @SerialName("id") val id: Int?, + @SerialName("title") val title: String?, + @SerialName("main_picture") val mainPicture: MainPicture?, + @SerialName("alternative_titles") val alternativeTitles: AlternativeTitles?, + @SerialName("start_date") val startDate: String?, + @SerialName("end_date") val endDate: String?, + @SerialName("synopsis") val synopsis: String?, + @SerialName("mean") val mean: Double?, + @SerialName("rank") val rank: Int?, + @SerialName("popularity") val popularity: Int?, + @SerialName("num_list_users") val numListUsers: Int?, + @SerialName("num_scoring_users") val numScoringUsers: Int?, + @SerialName("nsfw") val nsfw: String?, + @SerialName("created_at") val createdAt: String?, + @SerialName("updated_at") val updatedAt: String?, + @SerialName("media_type") val mediaType: String?, + @SerialName("status") val status: String?, + @SerialName("genres") val genres: ArrayList?, + @SerialName("my_list_status") val myListStatus: MyListStatus?, + @SerialName("num_episodes") val numEpisodes: Int?, + @SerialName("start_season") val startSeason: StartSeason?, + @SerialName("broadcast") val broadcast: Broadcast?, + @SerialName("source") val source: String?, + @SerialName("average_episode_duration") val averageEpisodeDuration: Int?, + @SerialName("rating") val rating: String?, + @SerialName("pictures") val pictures: ArrayList?, + @SerialName("background") val background: String?, + @SerialName("related_anime") val relatedAnime: ArrayList?, + @SerialName("related_manga") val relatedManga: ArrayList?, + @SerialName("recommendations") val recommendations: ArrayList?, + @SerialName("studios") val studios: ArrayList?, + @SerialName("statistics") val statistics: Statistics?, ) @Serializable data class Recommendations( - @JsonProperty("node") @SerialName("node") val node: Node? = null, - @JsonProperty("num_recommendations") @SerialName("num_recommendations") val numRecommendations: Int? = null, + @SerialName("node") val node: Node? = null, + @SerialName("num_recommendations") val numRecommendations: Int? = null, ) @Serializable data class Studios( - @JsonProperty("id") @SerialName("id") val id: Int? = null, - @JsonProperty("name") @SerialName("name") val name: String? = null, + @SerialName("id") val id: Int? = null, + @SerialName("name") val name: String? = null, ) @Serializable data class MyListStatus( - @JsonProperty("status") @SerialName("status") val status: String? = null, - @JsonProperty("score") @SerialName("score") val score: Int? = null, - @JsonProperty("num_episodes_watched") @SerialName("num_episodes_watched") val numEpisodesWatched: Int? = null, - @JsonProperty("is_rewatching") @SerialName("is_rewatching") val isRewatching: Boolean? = null, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String? = null, + @SerialName("status") val status: String? = null, + @SerialName("score") val score: Int? = null, + @SerialName("num_episodes_watched") val numEpisodesWatched: Int? = null, + @SerialName("is_rewatching") val isRewatching: Boolean? = null, + @SerialName("updated_at") val updatedAt: String? = null, ) @Serializable data class RelatedAnime( - @JsonProperty("node") @SerialName("node") val node: Node? = null, - @JsonProperty("relation_type") @SerialName("relation_type") val relationType: String? = null, - @JsonProperty("relation_type_formatted") @SerialName("relation_type_formatted") val relationTypeFormatted: String? = null, + @SerialName("node") val node: Node? = null, + @SerialName("relation_type") val relationType: String? = null, + @SerialName("relation_type_formatted") val relationTypeFormatted: String? = null, ) @Serializable data class Status( - @JsonProperty("watching") @SerialName("watching") val watching: String? = null, - @JsonProperty("completed") @SerialName("completed") val completed: String? = null, - @JsonProperty("on_hold") @SerialName("on_hold") val onHold: String? = null, - @JsonProperty("dropped") @SerialName("dropped") val dropped: String? = null, - @JsonProperty("plan_to_watch") @SerialName("plan_to_watch") val planToWatch: String? = null, + @SerialName("watching") val watching: String? = null, + @SerialName("completed") val completed: String? = null, + @SerialName("on_hold") val onHold: String? = null, + @SerialName("dropped") val dropped: String? = null, + @SerialName("plan_to_watch") val planToWatch: String? = null, ) @Serializable data class Statistics( - @JsonProperty("status") @SerialName("status") val status: Status? = null, - @JsonProperty("num_list_users") @SerialName("num_list_users") val numListUsers: Int? = null, + @SerialName("status") val status: Status? = null, + @SerialName("num_list_users") val numListUsers: Int? = null, ) private fun parseDate(string: String?): Long? { @@ -383,56 +382,56 @@ class MALApi : SyncAPI() { @Serializable data class MalList( - @JsonProperty("data") @SerialName("data") val data: List, - @JsonProperty("paging") @SerialName("paging") val paging: Paging, + @SerialName("data") val data: List, + @SerialName("paging") val paging: Paging, ) @Serializable data class MainPicture( - @JsonProperty("medium") @SerialName("medium") val medium: String, - @JsonProperty("large") @SerialName("large") val large: String, + @SerialName("medium") val medium: String, + @SerialName("large") val large: String, ) @Serializable data class Node( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("main_picture") @SerialName("main_picture") val mainPicture: MainPicture?, - @JsonProperty("alternative_titles") @SerialName("alternative_titles") val alternativeTitles: AlternativeTitles?, - @JsonProperty("media_type") @SerialName("media_type") val mediaType: String?, - @JsonProperty("num_episodes") @SerialName("num_episodes") val numEpisodes: Int?, - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("start_date") @SerialName("start_date") val startDate: String?, - @JsonProperty("end_date") @SerialName("end_date") val endDate: String?, - @JsonProperty("average_episode_duration") @SerialName("average_episode_duration") val averageEpisodeDuration: Int?, - @JsonProperty("synopsis") @SerialName("synopsis") val synopsis: String?, - @JsonProperty("mean") @SerialName("mean") val mean: Double?, - @JsonProperty("genres") @SerialName("genres") val genres: List?, - @JsonProperty("rank") @SerialName("rank") val rank: Int?, - @JsonProperty("popularity") @SerialName("popularity") val popularity: Int?, - @JsonProperty("num_list_users") @SerialName("num_list_users") val numListUsers: Int?, - @JsonProperty("num_favorites") @SerialName("num_favorites") val numFavorites: Int?, - @JsonProperty("num_scoring_users") @SerialName("num_scoring_users") val numScoringUsers: Int?, - @JsonProperty("start_season") @SerialName("start_season") val startSeason: StartSeason?, - @JsonProperty("broadcast") @SerialName("broadcast") val broadcast: Broadcast?, - @JsonProperty("nsfw") @SerialName("nsfw") val nsfw: String?, - @JsonProperty("created_at") @SerialName("created_at") val createdAt: String?, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String?, + @SerialName("id") val id: Int, + @SerialName("title") val title: String, + @SerialName("main_picture") val mainPicture: MainPicture?, + @SerialName("alternative_titles") val alternativeTitles: AlternativeTitles?, + @SerialName("media_type") val mediaType: String?, + @SerialName("num_episodes") val numEpisodes: Int?, + @SerialName("status") val status: String?, + @SerialName("start_date") val startDate: String?, + @SerialName("end_date") val endDate: String?, + @SerialName("average_episode_duration") val averageEpisodeDuration: Int?, + @SerialName("synopsis") val synopsis: String?, + @SerialName("mean") val mean: Double?, + @SerialName("genres") val genres: List?, + @SerialName("rank") val rank: Int?, + @SerialName("popularity") val popularity: Int?, + @SerialName("num_list_users") val numListUsers: Int?, + @SerialName("num_favorites") val numFavorites: Int?, + @SerialName("num_scoring_users") val numScoringUsers: Int?, + @SerialName("start_season") val startSeason: StartSeason?, + @SerialName("broadcast") val broadcast: Broadcast?, + @SerialName("nsfw") val nsfw: String?, + @SerialName("created_at") val createdAt: String?, + @SerialName("updated_at") val updatedAt: String?, ) @Serializable data class ListStatus( - @JsonProperty("status") @SerialName("status") val status: String?, - @JsonProperty("score") @SerialName("score") val score: Int, - @JsonProperty("num_episodes_watched") @SerialName("num_episodes_watched") val numEpisodesWatched: Int, - @JsonProperty("is_rewatching") @SerialName("is_rewatching") val isRewatching: Boolean, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String, + @SerialName("status") val status: String?, + @SerialName("score") val score: Int, + @SerialName("num_episodes_watched") val numEpisodesWatched: Int, + @SerialName("is_rewatching") val isRewatching: Boolean, + @SerialName("updated_at") val updatedAt: String, ) @Serializable data class Data( - @JsonProperty("node") @SerialName("node") val node: Node, - @JsonProperty("list_status") @SerialName("list_status") val listStatus: ListStatus?, + @SerialName("node") val node: Node, + @SerialName("list_status") val listStatus: ListStatus?, ) { fun toLibraryItem(): SyncAPI.LibraryItem { return SyncAPI.LibraryItem( @@ -465,32 +464,32 @@ class MALApi : SyncAPI() { @Serializable data class Paging( - @JsonProperty("next") @SerialName("next") val next: String?, + @SerialName("next") val next: String?, ) @Serializable data class AlternativeTitles( - @JsonProperty("synonyms") @SerialName("synonyms") val synonyms: List, - @JsonProperty("en") @SerialName("en") val en: String, - @JsonProperty("ja") @SerialName("ja") val ja: String, + @SerialName("synonyms") val synonyms: List, + @SerialName("en") val en: String, + @SerialName("ja") val ja: String, ) @Serializable data class Genres( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("name") @SerialName("name") val name: String, + @SerialName("id") val id: Int, + @SerialName("name") val name: String, ) @Serializable data class StartSeason( - @JsonProperty("year") @SerialName("year") val year: Int, - @JsonProperty("season") @SerialName("season") val season: String, + @SerialName("year") val year: Int, + @SerialName("season") val season: String, ) @Serializable data class Broadcast( - @JsonProperty("day_of_the_week") @SerialName("day_of_the_week") val dayOfTheWeek: String?, - @JsonProperty("start_time") @SerialName("start_time") val startTime: String?, + @SerialName("day_of_the_week") val dayOfTheWeek: String?, + @SerialName("start_time") val startTime: String?, ) override suspend fun library(auth: AuthData?): LibraryMetadata? { @@ -612,71 +611,71 @@ class MALApi : SyncAPI() { @Serializable data class ResponseToken( - @JsonProperty("token_type") @SerialName("token_type") val tokenType: String, - @JsonProperty("expires_in") @SerialName("expires_in") val expiresIn: Int, - @JsonProperty("access_token") @SerialName("access_token") val accessToken: String, - @JsonProperty("refresh_token") @SerialName("refresh_token") val refreshToken: String, + @SerialName("token_type") val tokenType: String, + @SerialName("expires_in") val expiresIn: Int, + @SerialName("access_token") val accessToken: String, + @SerialName("refresh_token") val refreshToken: String, ) @Serializable data class MalRoot( - @JsonProperty("data") @SerialName("data") val data: List, + @SerialName("data") val data: List, ) @Serializable data class MalDatum( - @JsonProperty("node") @SerialName("node") val node: MalNode, - @JsonProperty("list_status") @SerialName("list_status") val listStatus: MalStatus, + @SerialName("node") val node: MalNode, + @SerialName("list_status") val listStatus: MalStatus, ) @Serializable data class MalNode( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("title") @SerialName("title") val title: String, + @SerialName("id") val id: Int, + @SerialName("title") val title: String, ) @Serializable data class MalStatus( - @JsonProperty("status") @SerialName("status") val status: String, - @JsonProperty("score") @SerialName("score") val score: Int, - @JsonProperty("num_episodes_watched") @SerialName("num_episodes_watched") val numEpisodesWatched: Int, - @JsonProperty("is_rewatching") @SerialName("is_rewatching") val isRewatching: Boolean, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String, + @SerialName("status") val status: String, + @SerialName("score") val score: Int, + @SerialName("num_episodes_watched") val numEpisodesWatched: Int, + @SerialName("is_rewatching") val isRewatching: Boolean, + @SerialName("updated_at") val updatedAt: String, ) @Serializable data class MalUser( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("location") @SerialName("location") val location: String, - @JsonProperty("joined_at") @SerialName("joined_at") val joinedAt: String, - @JsonProperty("picture") @SerialName("picture") val picture: String?, + @SerialName("id") val id: Int, + @SerialName("name") val name: String, + @SerialName("location") val location: String, + @SerialName("joined_at") val joinedAt: String, + @SerialName("picture") val picture: String?, ) @Serializable data class MalMainPicture( - @JsonProperty("large") @SerialName("large") val large: String?, - @JsonProperty("medium") @SerialName("medium") val medium: String?, + @SerialName("large") val large: String?, + @SerialName("medium") val medium: String?, ) // Used for getDataAboutId() @Serializable data class SmallMalAnime( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("num_episodes") @SerialName("num_episodes") val numEpisodes: Int, - @JsonProperty("my_list_status") @SerialName("my_list_status") val myListStatus: MalStatus?, - @JsonProperty("main_picture") @SerialName("main_picture") val mainPicture: MalMainPicture?, + @SerialName("id") val id: Int, + @SerialName("title") val title: String?, + @SerialName("num_episodes") val numEpisodes: Int, + @SerialName("my_list_status") val myListStatus: MalStatus?, + @SerialName("main_picture") val mainPicture: MalMainPicture?, ) @Serializable data class MalSearchNode( - @JsonProperty("node") @SerialName("node") val node: Node, + @SerialName("node") val node: Node, ) @Serializable data class MalSearch( - @JsonProperty("data") @SerialName("data") val data: List, + @SerialName("data") val data: List, // paging ) diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/OpenSubtitlesApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/OpenSubtitlesApi.kt index fca3e5df8d5..663ec706b77 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/OpenSubtitlesApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/OpenSubtitlesApi.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import android.util.Log -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.ErrorLoadingException @@ -223,62 +222,62 @@ class OpenSubtitlesApi : SubtitleAPI() { @Serializable data class OAuthToken( - @JsonProperty("token") @SerialName("token") var token: String? = null, - @JsonProperty("status") @SerialName("status") var status: Int? = null, + @SerialName("token") var token: String? = null, + @SerialName("status") var status: Int? = null, ) @Serializable data class Results( - @JsonProperty("data") @SerialName("data") var data: List? = listOf(), + @SerialName("data") var data: List? = listOf(), ) @Serializable data class ResultData( - @JsonProperty("id") @SerialName("id") var id: String? = null, - @JsonProperty("type") @SerialName("type") var type: String? = null, - @JsonProperty("attributes") @SerialName("attributes") var attributes: ResultAttributes? = ResultAttributes(), + @SerialName("id") var id: String? = null, + @SerialName("type") var type: String? = null, + @SerialName("attributes") var attributes: ResultAttributes? = ResultAttributes(), ) @Serializable data class ResultAttributes( - @JsonProperty("subtitle_id") @SerialName("subtitle_id") var subtitleId: String? = null, - @JsonProperty("language") @SerialName("language") var language: String? = null, - @JsonProperty("release") @SerialName("release") var release: String? = null, - @JsonProperty("url") @SerialName("url") var url: String? = null, - @JsonProperty("files") @SerialName("files") var files: List? = listOf(), - @JsonProperty("feature_details") @SerialName("feature_details") var featDetails: ResultFeatureDetails? = ResultFeatureDetails(), - @JsonProperty("hearing_impaired") @SerialName("hearing_impaired") var hearingImpaired: Boolean? = null, + @SerialName("subtitle_id") var subtitleId: String? = null, + @SerialName("language") var language: String? = null, + @SerialName("release") var release: String? = null, + @SerialName("url") var url: String? = null, + @SerialName("files") var files: List? = listOf(), + @SerialName("feature_details") var featDetails: ResultFeatureDetails? = ResultFeatureDetails(), + @SerialName("hearing_impaired") var hearingImpaired: Boolean? = null, ) @Serializable data class ResultFiles( - @JsonProperty("file_id") @SerialName("file_id") var fileId: Int? = null, - @JsonProperty("file_name") @SerialName("file_name") var fileName: String? = null, + @SerialName("file_id") var fileId: Int? = null, + @SerialName("file_name") var fileName: String? = null, ) @Serializable data class ResultDownloadLink( - @JsonProperty("link") @SerialName("link") var link: String? = null, - @JsonProperty("file_name") @SerialName("file_name") var fileName: String? = null, - @JsonProperty("requests") @SerialName("requests") var requests: Int? = null, - @JsonProperty("remaining") @SerialName("remaining") var remaining: Int? = null, - @JsonProperty("message") @SerialName("message") var message: String? = null, - @JsonProperty("reset_time") @SerialName("reset_time") var resetTime: String? = null, - @JsonProperty("reset_time_utc") @SerialName("reset_time_utc") var resetTimeUtc: String? = null, + @SerialName("link") var link: String? = null, + @SerialName("file_name") var fileName: String? = null, + @SerialName("requests") var requests: Int? = null, + @SerialName("remaining") var remaining: Int? = null, + @SerialName("message") var message: String? = null, + @SerialName("reset_time") var resetTime: String? = null, + @SerialName("reset_time_utc") var resetTimeUtc: String? = null, ) @Serializable data class ResultFeatureDetails( - @JsonProperty("year") @SerialName("year") var year: Int? = null, - @JsonProperty("title") @SerialName("title") var title: String? = null, - @JsonProperty("movie_name") @SerialName("movie_name") var movieName: String? = null, - @JsonProperty("imdb_id") @SerialName("imdb_id") var imdbId: Int? = null, - @JsonProperty("tmdb_id") @SerialName("tmdb_id") var tmdbId: Int? = null, - @JsonProperty("season_number") @SerialName("season_number") var seasonNumber: Int? = null, - @JsonProperty("episode_number") @SerialName("episode_number") var episodeNumber: Int? = null, - @JsonProperty("parent_imdb_id") @SerialName("parent_imdb_id") var parentImdbId: Int? = null, - @JsonProperty("parent_title") @SerialName("parent_title") var parentTitle: String? = null, - @JsonProperty("parent_tmdb_id") @SerialName("parent_tmdb_id") var parentTmdbId: Int? = null, - @JsonProperty("parent_feature_id") @SerialName("parent_feature_id") var parentFeatureId: Int? = null, + @SerialName("year") var year: Int? = null, + @SerialName("title") var title: String? = null, + @SerialName("movie_name") var movieName: String? = null, + @SerialName("imdb_id") var imdbId: Int? = null, + @SerialName("tmdb_id") var tmdbId: Int? = null, + @SerialName("season_number") var seasonNumber: Int? = null, + @SerialName("episode_number") var episodeNumber: Int? = null, + @SerialName("parent_imdb_id") var parentImdbId: Int? = null, + @SerialName("parent_title") var parentTitle: String? = null, + @SerialName("parent_tmdb_id") var parentTmdbId: Int? = null, + @SerialName("parent_feature_id") var parentFeatureId: Int? = null, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SimklApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SimklApi.kt index db12c9355d8..0ad3a9a454a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SimklApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SimklApi.kt @@ -2,9 +2,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import androidx.annotation.StringRes import androidx.core.net.toUri -import com.fasterxml.jackson.annotation.JsonIgnore -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.BuildConfig import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -77,16 +74,16 @@ class SimklApi : SyncAPI() { @Serializable private data class MediaObjectCacheEntry( - @JsonProperty("obj") @SerialName("obj") val obj: MediaObject?, - @JsonProperty("validUntil") @SerialName("validUntil") val validUntil: Long, - @JsonProperty("cacheTime") @SerialName("cacheTime") val cacheTime: Long = APIHolder.unixTime, + @SerialName("obj") val obj: MediaObject?, + @SerialName("validUntil") val validUntil: Long, + @SerialName("cacheTime") val cacheTime: Long = APIHolder.unixTime, ) @Serializable private data class EpisodesCacheEntry( - @JsonProperty("obj") @SerialName("obj") val obj: Array?, - @JsonProperty("validUntil") @SerialName("validUntil") val validUntil: Long, - @JsonProperty("cacheTime") @SerialName("cacheTime") val cacheTime: Long = APIHolder.unixTime, + @SerialName("obj") val obj: Array?, + @SerialName("validUntil") val validUntil: Long, + @SerialName("cacheTime") val cacheTime: Long = APIHolder.unixTime, ) /** @@ -95,7 +92,7 @@ class SimklApi : SyncAPI() { */ @Serializable private data class CacheFreshness( - @JsonProperty("validUntil") @SerialName("validUntil") val validUntil: Long, + @SerialName("validUntil") val validUntil: Long, ) private fun Long.isFresh(): Boolean = this > APIHolder.unixTime @@ -239,16 +236,15 @@ class SimklApi : SyncAPI() { } } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = TokenRequest.Serializer::class) data class TokenRequest( - @JsonProperty("code") @SerialName("code") val code: String, - @JsonProperty("client_id") @SerialName("client_id") val clientId: String = CLIENT_ID, - @JsonProperty("client_secret") @SerialName("client_secret") val clientSecret: String = CLIENT_SECRET, - @JsonProperty("redirect_uri") @SerialName("redirect_uri") val redirectUri: String = "$APP_STRING://simkl", - @JsonProperty("grant_type") @SerialName("grant_type") val grantType: String = "authorization_code", + @SerialName("code") val code: String, + @SerialName("client_id") val clientId: String = CLIENT_ID, + @SerialName("client_secret") val clientSecret: String = CLIENT_SECRET, + @SerialName("redirect_uri") val redirectUri: String = "$APP_STRING://simkl", + @SerialName("grant_type") val grantType: String = "authorization_code", ) { object Serializer : NonEmptySerializer(TokenRequest.generatedSerializer()) } @@ -256,72 +252,71 @@ class SimklApi : SyncAPI() { @Serializable data class TokenResponse( /** No expiration date */ - @JsonProperty("access_token") @SerialName("access_token") val accessToken: String, - @JsonProperty("token_type") @SerialName("token_type") val tokenType: String, - @JsonProperty("scope") @SerialName("scope") val scope: String, + @SerialName("access_token") val accessToken: String, + @SerialName("token_type") val tokenType: String, + @SerialName("scope") val scope: String, ) /** https://simkl.docs.apiary.io/#reference/users/settings/receive-settings */ @Serializable data class SettingsResponse( - @JsonProperty("user") @SerialName("user") val user: User, - @JsonProperty("account") @SerialName("account") val account: Account, + @SerialName("user") val user: User, + @SerialName("account") val account: Account, ) { @Serializable data class User( - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("avatar") @SerialName("avatar") val avatar: String, // Url + @SerialName("name") val name: String, + @SerialName("avatar") val avatar: String, // Url ) @Serializable data class Account( - @JsonProperty("id") @SerialName("id") val id: Int, + @SerialName("id") val id: Int, ) } @Serializable data class PinAuthResponse( - @JsonProperty("result") @SerialName("result") val result: String, - @JsonProperty("device_code") @SerialName("device_code") val deviceCode: String, - @JsonProperty("user_code") @SerialName("user_code") val userCode: String, - @JsonProperty("verification_url") @SerialName("verification_url") val verificationUrl: String, - @JsonProperty("expires_in") @SerialName("expires_in") val expiresIn: Int, - @JsonProperty("interval") @SerialName("interval") val interval: Int, + @SerialName("result") val result: String, + @SerialName("device_code") val deviceCode: String, + @SerialName("user_code") val userCode: String, + @SerialName("verification_url") val verificationUrl: String, + @SerialName("expires_in") val expiresIn: Int, + @SerialName("interval") val interval: Int, ) @Serializable data class PinExchangeResponse( - @JsonProperty("result") @SerialName("result") val result: String, - @JsonProperty("message") @SerialName("message") val message: String? = null, - @JsonProperty("access_token") @SerialName("access_token") val accessToken: String? = null, + @SerialName("result") val result: String, + @SerialName("message") val message: String? = null, + @SerialName("access_token") val accessToken: String? = null, ) @Serializable data class ActivitiesResponse( - @JsonProperty("all") @SerialName("all") val all: String?, - @JsonProperty("tv_shows") @SerialName("tv_shows") val tvShows: UpdatedAt, - @JsonProperty("anime") @SerialName("anime") val anime: UpdatedAt, - @JsonProperty("movies") @SerialName("movies") val movies: UpdatedAt, + @SerialName("all") val all: String?, + @SerialName("tv_shows") val tvShows: UpdatedAt, + @SerialName("anime") val anime: UpdatedAt, + @SerialName("movies") val movies: UpdatedAt, ) { @Serializable data class UpdatedAt( - @JsonProperty("all") @SerialName("all") val all: String?, - @JsonProperty("removed_from_list") @SerialName("removed_from_list") val removedFromList: String?, - @JsonProperty("rated_at") @SerialName("rated_at") val ratedAt: String?, + @SerialName("all") val all: String?, + @SerialName("removed_from_list") val removedFromList: String?, + @SerialName("rated_at") val ratedAt: String?, ) } /** https://simkl.docs.apiary.io/#reference/tv/episodes/get-tv-show-episodes */ - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = EpisodeMetadata.Serializer::class) data class EpisodeMetadata( - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("description") @SerialName("description") val description: String?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int, - @JsonProperty("img") @SerialName("img") val img: String?, + @SerialName("title") val title: String?, + @SerialName("description") val description: String?, + @SerialName("season") val season: Int?, + @SerialName("episode") val episode: Int, + @SerialName("img") val img: String?, ) { object Serializer : NonEmptySerializer(EpisodeMetadata.generatedSerializer()) @@ -346,20 +341,19 @@ class SimklApi : SyncAPI() { * https://simkl.docs.apiary.io/#introduction/about-simkl-api/standard-media-objects * Useful for finding shows from metadata. */ - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = MediaObject.Serializer::class) data class MediaObject( - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("year") @SerialName("year") val year: Int?, - @JsonProperty("ids") @SerialName("ids") val ids: Ids?, - @JsonProperty("total_episodes") @SerialName("total_episodes") val totalEpisodes: Int? = null, - @JsonProperty("status") @SerialName("status") val status: String? = null, - @JsonProperty("poster") @SerialName("poster") val poster: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("seasons") @SerialName("seasons") val seasons: List? = null, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List? = null, + @SerialName("title") val title: String?, + @SerialName("year") val year: Int?, + @SerialName("ids") val ids: Ids?, + @SerialName("total_episodes") val totalEpisodes: Int? = null, + @SerialName("status") val status: String? = null, + @SerialName("poster") val poster: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("seasons") val seasons: List? = null, + @SerialName("episodes") val episodes: List? = null, ) { object Serializer : NonEmptySerializer(MediaObject.generatedSerializer()) @@ -367,32 +361,30 @@ class SimklApi : SyncAPI() { return status == "released" || status == "ended" } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = Season.Serializer::class) data class Season( - @JsonProperty("number") @SerialName("number") val number: Int, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List, + @SerialName("number") val number: Int, + @SerialName("episodes") val episodes: List, ) { object Serializer : NonEmptySerializer(Season.generatedSerializer()) @Serializable data class Episode( - @JsonProperty("number") @SerialName("number") val number: Int, + @SerialName("number") val number: Int, ) } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = Ids.Serializer::class) data class Ids( - @JsonProperty("simkl") @SerialName("simkl") val simkl: Int?, - @JsonProperty("imdb") @SerialName("imdb") val imdb: String? = null, - @JsonProperty("tmdb") @SerialName("tmdb") val tmdb: String? = null, - @JsonProperty("mal") @SerialName("mal") val mal: String? = null, - @JsonProperty("anilist") @SerialName("anilist") val anilist: String? = null, + @SerialName("simkl") val simkl: Int?, + @SerialName("imdb") val imdb: String? = null, + @SerialName("tmdb") val tmdb: String? = null, + @SerialName("mal") val mal: String? = null, + @SerialName("anilist") val anilist: String? = null, ) { object Serializer : NonEmptySerializer(Ids.generatedSerializer()) @@ -607,69 +599,64 @@ class SimklApi : SyncAPI() { } } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = HistoryMediaObject.Serializer::class) data class HistoryMediaObject( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("ids") @SerialName("ids") val ids: MediaObject.Ids? = null, - @JsonProperty("seasons") @SerialName("seasons") val seasons: List? = null, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Int? = null, - @JsonProperty("rated_at") @SerialName("rated_at") val ratedAt: String? = null, + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("ids") val ids: MediaObject.Ids? = null, + @SerialName("seasons") val seasons: List? = null, + @SerialName("episodes") val episodes: List? = null, + @SerialName("rating") val rating: Int? = null, + @SerialName("rated_at") val ratedAt: String? = null, ) { object Serializer : NonEmptySerializer(HistoryMediaObject.generatedSerializer()) } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = RatingMediaObject.Serializer::class) data class RatingMediaObject( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("ids") @SerialName("ids") val ids: MediaObject.Ids? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Int, - @JsonProperty("rated_at") @SerialName("rated_at") val ratedAt: String? = getDateTime(APIHolder.unixTime), + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("ids") val ids: MediaObject.Ids? = null, + @SerialName("rating") val rating: Int, + @SerialName("rated_at") val ratedAt: String? = getDateTime(APIHolder.unixTime), ) { object Serializer : NonEmptySerializer(RatingMediaObject.generatedSerializer()) } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = StatusMediaObject.Serializer::class) data class StatusMediaObject( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("ids") @SerialName("ids") val ids: MediaObject.Ids? = null, - @JsonProperty("to") @SerialName("to") val to: String, - @JsonProperty("watched_at") @SerialName("watched_at") val watchedAt: String? = getDateTime(APIHolder.unixTime), + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("ids") val ids: MediaObject.Ids? = null, + @SerialName("to") val to: String, + @SerialName("watched_at") val watchedAt: String? = getDateTime(APIHolder.unixTime), ) { object Serializer : NonEmptySerializer(StatusMediaObject.generatedSerializer()) } - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = StatusRequest.Serializer::class) data class StatusRequest( - @JsonProperty("movies") @SerialName("movies") val movies: List, - @JsonProperty("shows") @SerialName("shows") val shows: List, + @SerialName("movies") val movies: List, + @SerialName("shows") val shows: List, ) { object Serializer : NonEmptySerializer(StatusRequest.generatedSerializer()) } /** Same shape as [StatusRequest], for the endpoints that post [HistoryMediaObject]s instead. */ - @JsonInclude(JsonInclude.Include.NON_EMPTY) @OptIn(ExperimentalSerializationApi::class) // KeepGeneratedSerializer is an experimental annotation for now @KeepGeneratedSerializer @Serializable(with = HistoryRequest.Serializer::class) data class HistoryRequest( - @JsonProperty("movies") @SerialName("movies") val movies: List, - @JsonProperty("shows") @SerialName("shows") val shows: List, + @SerialName("movies") val movies: List, + @SerialName("shows") val shows: List, ) { object Serializer : NonEmptySerializer(HistoryRequest.generatedSerializer()) } @@ -677,9 +664,9 @@ class SimklApi : SyncAPI() { /** https://simkl.docs.apiary.io/#reference/sync/get-all-items/get-all-items-in-the-user's-watchlist */ @Serializable data class AllItemsResponse( - @JsonProperty("shows") @SerialName("shows") val shows: List = emptyList(), - @JsonProperty("anime") @SerialName("anime") val anime: List = emptyList(), - @JsonProperty("movies") @SerialName("movies") val movies: List = emptyList(), + @SerialName("shows") val shows: List = emptyList(), + @SerialName("anime") val anime: List = emptyList(), + @SerialName("movies") val movies: List = emptyList(), ) { companion object { fun merge(first: AllItemsResponse?, second: AllItemsResponse?): AllItemsResponse { @@ -729,15 +716,14 @@ class SimklApi : SyncAPI() { @Serializable data class MovieMetadata( - @JsonProperty("last_watched_at") @SerialName("last_watched_at") override val lastWatchedAt: String?, - @JsonProperty("status") @SerialName("status") override val status: String, - @JsonProperty("user_rating") @SerialName("user_rating") override val userRating: Int?, - @JsonProperty("last_watched") @SerialName("last_watched") override val lastWatched: String?, - @JsonProperty("watched_episodes_count") @SerialName("watched_episodes_count") override val watchedEpisodesCount: Int?, - @JsonProperty("total_episodes_count") @SerialName("total_episodes_count") override val totalEpisodesCount: Int?, - @JsonProperty("movie") @SerialName("movie") val movie: ShowMetadata.Show, + @SerialName("last_watched_at") override val lastWatchedAt: String?, + @SerialName("status") override val status: String, + @SerialName("user_rating") override val userRating: Int?, + @SerialName("last_watched") override val lastWatched: String?, + @SerialName("watched_episodes_count") override val watchedEpisodesCount: Int?, + @SerialName("total_episodes_count") override val totalEpisodesCount: Int?, + @SerialName("movie") val movie: ShowMetadata.Show, ) : Metadata { - @JsonIgnore override fun getIds(): ShowMetadata.Show.Ids { return this.movie.ids } @@ -764,15 +750,14 @@ class SimklApi : SyncAPI() { @Serializable data class ShowMetadata( - @JsonProperty("last_watched_at") @SerialName("last_watched_at") override val lastWatchedAt: String?, - @JsonProperty("status") @SerialName("status") override val status: String, - @JsonProperty("user_rating") @SerialName("user_rating") override val userRating: Int?, - @JsonProperty("last_watched") @SerialName("last_watched") override val lastWatched: String?, - @JsonProperty("watched_episodes_count") @SerialName("watched_episodes_count") override val watchedEpisodesCount: Int?, - @JsonProperty("total_episodes_count") @SerialName("total_episodes_count") override val totalEpisodesCount: Int?, - @JsonProperty("show") @SerialName("show") val show: Show, + @SerialName("last_watched_at") override val lastWatchedAt: String?, + @SerialName("status") override val status: String, + @SerialName("user_rating") override val userRating: Int?, + @SerialName("last_watched") override val lastWatched: String?, + @SerialName("watched_episodes_count") override val watchedEpisodesCount: Int?, + @SerialName("total_episodes_count") override val totalEpisodesCount: Int?, + @SerialName("show") val show: Show, ) : Metadata { - @JsonIgnore override fun getIds(): Show.Ids { return this.show.ids } @@ -798,24 +783,24 @@ class SimklApi : SyncAPI() { @Serializable data class Show( - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("poster") @SerialName("poster") val poster: String?, - @JsonProperty("year") @SerialName("year") val year: Int?, - @JsonProperty("ids") @SerialName("ids") val ids: Ids, + @SerialName("title") val title: String, + @SerialName("poster") val poster: String?, + @SerialName("year") val year: Int?, + @SerialName("ids") val ids: Ids, ) { @Serializable data class Ids( - @JsonProperty("simkl") @SerialName("simkl") val simkl: Int, - @JsonProperty("slug") @SerialName("slug") val slug: String?, - @JsonProperty("imdb") @SerialName("imdb") val imdb: String?, - @JsonProperty("zap2it") @SerialName("zap2it") val zap2it: String?, - @JsonProperty("tmdb") @SerialName("tmdb") val tmdb: String?, - @JsonProperty("offen") @SerialName("offen") val offen: String?, - @JsonProperty("tvdb") @SerialName("tvdb") val tvdb: String?, - @JsonProperty("mal") @SerialName("mal") val mal: String?, - @JsonProperty("anidb") @SerialName("anidb") val anidb: String?, - @JsonProperty("anilist") @SerialName("anilist") val anilist: String?, - @JsonProperty("traktslug") @SerialName("traktslug") val traktslug: String?, + @SerialName("simkl") val simkl: Int, + @SerialName("slug") val slug: String?, + @SerialName("imdb") val imdb: String?, + @SerialName("zap2it") val zap2it: String?, + @SerialName("tmdb") val tmdb: String?, + @SerialName("offen") val offen: String?, + @SerialName("tvdb") val tvdb: String?, + @SerialName("mal") val mal: String?, + @SerialName("anidb") val anidb: String?, + @SerialName("anilist") val anilist: String?, + @SerialName("traktslug") val traktslug: String?, ) { fun matchesId(database: SimklSyncServices, id: String): Boolean { return when (database) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SubSource.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SubSource.kt index fb463ebee77..6e7a3545239 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SubSource.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/SubSource.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.syncproviders.providers -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.TvType import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities @@ -119,59 +118,59 @@ class SubSourceApi : SubtitleAPI() { @Serializable data class ApiSearch( - @JsonProperty("success") @SerialName("success") val success: Boolean, - @JsonProperty("found") @SerialName("found") val found: List, + @SerialName("success") val success: Boolean, + @SerialName("found") val found: List, ) @Serializable data class Found( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("seasons") @SerialName("seasons") val seasons: Long, - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("releaseYear") @SerialName("releaseYear") val releaseYear: Long, - @JsonProperty("linkName") @SerialName("linkName") val linkName: String, + @SerialName("id") val id: Long, + @SerialName("title") val title: String, + @SerialName("seasons") val seasons: Long, + @SerialName("type") val type: String, + @SerialName("releaseYear") val releaseYear: Long, + @SerialName("linkName") val linkName: String, ) @Serializable data class ApiResponse( - @JsonProperty("success") @SerialName("success") val success: Boolean, - @JsonProperty("movie") @SerialName("movie") val movie: Movie, - @JsonProperty("subs") @SerialName("subs") val subs: List, + @SerialName("success") val success: Boolean, + @SerialName("movie") val movie: Movie, + @SerialName("subs") val subs: List, ) @Serializable data class Movie( - @JsonProperty("id") @SerialName("id") val id: Long? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("year") @SerialName("year") val year: Long? = null, - @JsonProperty("fullName") @SerialName("fullName") val fullName: String? = null, + @SerialName("id") val id: Long? = null, + @SerialName("type") val type: String? = null, + @SerialName("year") val year: Long? = null, + @SerialName("fullName") val fullName: String? = null, ) @Serializable data class Sub( - @JsonProperty("hi") @SerialName("hi") val hi: Int? = null, - @JsonProperty("fullLink") @SerialName("fullLink") val fullLink: String? = null, - @JsonProperty("linkName") @SerialName("linkName") val linkName: String? = null, - @JsonProperty("lang") @SerialName("lang") val lang: String? = null, - @JsonProperty("releaseName") @SerialName("releaseName") val releaseName: String? = null, - @JsonProperty("subId") @SerialName("subId") val subId: Long? = null, + @SerialName("hi") val hi: Int? = null, + @SerialName("fullLink") val fullLink: String? = null, + @SerialName("linkName") val linkName: String? = null, + @SerialName("lang") val lang: String? = null, + @SerialName("releaseName") val releaseName: String? = null, + @SerialName("subId") val subId: Long? = null, ) @Serializable data class SubData( - @JsonProperty("movie") @SerialName("movie") val movie: String, - @JsonProperty("lang") @SerialName("lang") val lang: String, - @JsonProperty("id") @SerialName("id") val id: String, + @SerialName("movie") val movie: String, + @SerialName("lang") val lang: String, + @SerialName("id") val id: String, ) @Serializable data class SubTitleLink( - @JsonProperty("sub") @SerialName("sub") val sub: SubToken, + @SerialName("sub") val sub: SubToken, ) @Serializable data class SubToken( - @JsonProperty("downloadToken") @SerialName("downloadToken") val downloadToken: String, + @SerialName("downloadToken") val downloadToken: String, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Subdl.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Subdl.kt index 19bd3b1a710..7c4440e9787 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Subdl.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Subdl.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.syncproviders.providers -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities @@ -126,75 +125,75 @@ class SubDlApi : SubtitleAPI() { @Serializable data class SubtitleOAuthEntity( - @JsonProperty("userEmail") @SerialName("userEmail") var userEmail: String, - @JsonProperty("pass") @SerialName("pass") var pass: String, - @JsonProperty("name") @SerialName("name") var name: String? = null, - @JsonProperty("accessToken") @SerialName("accessToken") var accessToken: String? = null, - @JsonProperty("apiKey") @SerialName("apiKey") var apiKey: String? = null, + @SerialName("userEmail") var userEmail: String, + @SerialName("pass") var pass: String, + @SerialName("name") var name: String? = null, + @SerialName("accessToken") var accessToken: String? = null, + @SerialName("apiKey") var apiKey: String? = null, ) @Serializable data class OAuthTokenResponse( - @JsonProperty("token") @SerialName("token") val token: String, - @JsonProperty("userData") @SerialName("userData") val userData: UserData? = null, - @JsonProperty("status") @SerialName("status") val status: Boolean? = null, - @JsonProperty("message") @SerialName("message") val message: String? = null, + @SerialName("token") val token: String, + @SerialName("userData") val userData: UserData? = null, + @SerialName("status") val status: Boolean? = null, + @SerialName("message") val message: String? = null, ) @Serializable data class UserData( - @JsonProperty("email") @SerialName("email") val email: String, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("country") @SerialName("country") val country: String, - @JsonProperty("scStepCode") @SerialName("scStepCode") val scStepCode: String, - @JsonProperty("scVerified") @SerialName("scVerified") val scVerified: Boolean, - @JsonProperty("username") @SerialName("username") val username: String? = null, - @JsonProperty("scUsername") @SerialName("scUsername") val scUsername: String, + @SerialName("email") val email: String, + @SerialName("name") val name: String, + @SerialName("country") val country: String, + @SerialName("scStepCode") val scStepCode: String, + @SerialName("scVerified") val scVerified: Boolean, + @SerialName("username") val username: String? = null, + @SerialName("scUsername") val scUsername: String, ) @Serializable data class ApiKeyResponse( - @JsonProperty("ok") @SerialName("ok") val ok: Boolean? = false, - @JsonProperty("api_key") @SerialName("api_key") val apiKey: String, - @JsonProperty("usage") @SerialName("usage") val usage: Usage? = null, + @SerialName("ok") val ok: Boolean? = false, + @SerialName("api_key") val apiKey: String, + @SerialName("usage") val usage: Usage? = null, ) @Serializable data class Usage( - @JsonProperty("total") @SerialName("total") val total: Long? = 0, - @JsonProperty("today") @SerialName("today") val today: Long? = 0, + @SerialName("total") val total: Long? = 0, + @SerialName("today") val today: Long? = 0, ) @Serializable data class ApiResponse( - @JsonProperty("status") @SerialName("status") val status: Boolean? = null, - @JsonProperty("results") @SerialName("results") val results: List? = null, - @JsonProperty("subtitles") @SerialName("subtitles") val subtitles: List? = null, + @SerialName("status") val status: Boolean? = null, + @SerialName("results") val results: List? = null, + @SerialName("subtitles") val subtitles: List? = null, ) @Serializable data class Result( - @JsonProperty("sd_id") @SerialName("sd_id") val sdId: Int? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("name") @SerialName("name") val name: String? = null, - @JsonProperty("imdb_id") @SerialName("imdb_id") val imdbId: String? = null, - @JsonProperty("tmdb_id") @SerialName("tmdb_id") val tmdbId: Long? = null, - @JsonProperty("first_air_date") @SerialName("first_air_date") val firstAirDate: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, + @SerialName("sd_id") val sdId: Int? = null, + @SerialName("type") val type: String? = null, + @SerialName("name") val name: String? = null, + @SerialName("imdb_id") val imdbId: String? = null, + @SerialName("tmdb_id") val tmdbId: Long? = null, + @SerialName("first_air_date") val firstAirDate: String? = null, + @SerialName("year") val year: Int? = null, ) @Serializable data class Subtitle( - @JsonProperty("release_name") @SerialName("release_name") val releaseName: String, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("lang") @SerialName("lang") val lang: String, // subdl language code - @JsonProperty("author") @SerialName("author") val author: String? = null, - @JsonProperty("url") @SerialName("url") val url: String? = null, - @JsonProperty("subtitlePage") @SerialName("subtitlePage") val subtitlePage: String? = null, - @JsonProperty("season") @SerialName("season") val season: Int? = null, - @JsonProperty("episode") @SerialName("episode") val episode: Int? = null, - @JsonProperty("language") @SerialName("language") val language: String? = null, // full language name - @JsonProperty("hi") @SerialName("hi") val hearingImpaired: Boolean? = null, + @SerialName("release_name") val releaseName: String, + @SerialName("name") val name: String, + @SerialName("lang") val lang: String, // subdl language code + @SerialName("author") val author: String? = null, + @SerialName("url") val url: String? = null, + @SerialName("subtitlePage") val subtitlePage: String? = null, + @SerialName("season") val season: Int? = null, + @SerialName("episode") val episode: Int? = null, + @SerialName("language") val language: String? = null, // full language name + @SerialName("hi") val hearingImpaired: Boolean? = null, ) // https://subdl.com/api-files/language_list.json diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/ControllerActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/ControllerActivity.kt index f00fd803150..363c5988edc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/ControllerActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/ControllerActivity.kt @@ -12,7 +12,6 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.ListView import androidx.appcompat.app.AlertDialog -import com.fasterxml.jackson.annotation.JsonProperty import com.google.android.gms.cast.MediaLoadOptions import com.google.android.gms.cast.MediaQueueItem import com.google.android.gms.cast.MediaSeekOptions @@ -81,14 +80,14 @@ class SkipNextEpisodeController(val view: ImageView) : UIController() { @Serializable data class MetadataHolder( - @JsonProperty("apiName") @SerialName("apiName") val apiName: String, - @JsonProperty("isMovie") @SerialName("isMovie") val isMovie: Boolean, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("poster") @SerialName("poster") val poster: String?, - @JsonProperty("currentEpisodeIndex") @SerialName("currentEpisodeIndex") val currentEpisodeIndex: Int, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List, - @JsonProperty("currentLinks") @SerialName("currentLinks") val currentLinks: List, - @JsonProperty("currentSubtitles") @SerialName("currentSubtitles") val currentSubtitles: List, + @SerialName("apiName") val apiName: String, + @SerialName("isMovie") val isMovie: Boolean, + @SerialName("title") val title: String?, + @SerialName("poster") val poster: String?, + @SerialName("currentEpisodeIndex") val currentEpisodeIndex: Int, + @SerialName("episodes") val episodes: List, + @SerialName("currentLinks") val currentLinks: List, + @SerialName("currentSubtitles") val currentSubtitles: List, ) class SelectSourceController(val view: ImageView, val activity: ControllerActivity) : UIController() { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt index f62bad58d91..62e9e09e1e8 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt @@ -8,7 +8,6 @@ import androidx.annotation.OptIn import androidx.media3.common.MimeTypes import androidx.media3.common.util.UnstableApi import androidx.media3.ui.SubtitleView -import com.fasterxml.jackson.annotation.JsonIgnore import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.ui.subtitles.SaveCaptionStyle import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment.Companion.setSubtitleViewStyle @@ -47,7 +46,6 @@ data class SubtitleData( @SerialName("languageCode") val languageCode: String?, ) { /** Internal ID for media3, unique for each link. */ - @JsonIgnore fun getId(): String { return if (origin == SubtitleOrigin.EMBEDDED_IN_VIDEO) url else "$url|$name" @@ -59,7 +57,6 @@ data class SubtitleData( } /** Tries hard to figure out a valid IETF tag based on language code and name. Will return null if not found. */ - @JsonIgnore fun getIETF_tag(): String? { return fromLanguageToTagIETF(this.languageCode) ?: fromLanguageToTagIETF(this.originalName, halfMatch = true) } @@ -69,7 +66,6 @@ data class SubtitleData( /** * Gets the URL, but tries to fix it if it is malformed. */ - @JsonIgnore fun getFixedUrl(): String { // Some extensions fail to include the protocol, this helps with that. val fixedSubUrl = if (this.url.startsWith("//")) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt index 7e5d04eb0c7..af30014e846 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.ui.player -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.CommonActivity import com.lagradost.cloudstream3.ErrorLoadingException @@ -280,53 +279,53 @@ object Torrent { // https://github.com/Diegopyl1209/torrentserver-aniyomi/blob/main/web/api/route.go#L7 @Serializable data class TorrentRequest( - @JsonProperty("action") @SerialName("action") val action: String, - @JsonProperty("hash") @SerialName("hash") val hash: String = "", - @JsonProperty("link") @SerialName("link") val link: String = "", - @JsonProperty("title") @SerialName("title") val title: String = "", - @JsonProperty("poster") @SerialName("poster") val poster: String = "", - @JsonProperty("data") @SerialName("data") val data: String = "", - @JsonProperty("save_to_db") @SerialName("save_to_db") val saveToDB: Boolean = false, + @SerialName("action") val action: String, + @SerialName("hash") val hash: String = "", + @SerialName("link") val link: String = "", + @SerialName("title") val title: String = "", + @SerialName("poster") val poster: String = "", + @SerialName("data") val data: String = "", + @SerialName("save_to_db") val saveToDB: Boolean = false, ) // https://github.com/Diegopyl1209/torrentserver-aniyomi/blob/c18f58e51b6738f053261bc863177078aa9c1c98/torr/state/state.go#L33 // omitempty = nullable @Serializable data class TorrentStatus( - @JsonProperty("title") @SerialName("title") var title: String, - @JsonProperty("poster") @SerialName("poster") var poster: String, - @JsonProperty("data") @SerialName("data") var data: String?, - @JsonProperty("timestamp") @SerialName("timestamp") var timestamp: Long, - @JsonProperty("name") @SerialName("name") var name: String?, - @JsonProperty("hash") @SerialName("hash") var hash: String?, - @JsonProperty("stat") @SerialName("stat") var stat: Int, - @JsonProperty("stat_string") @SerialName("stat_string") var statString: String, - @JsonProperty("loaded_size") @SerialName("loaded_size") var loadedSize: Long?, - @JsonProperty("torrent_size") @SerialName("torrent_size") var torrentSize: Long?, - @JsonProperty("preloaded_bytes") @SerialName("preloaded_bytes") var preloadedBytes: Long?, - @JsonProperty("preload_size") @SerialName("preload_size") var preloadSize: Long?, - @JsonProperty("download_speed") @SerialName("download_speed") var downloadSpeed: Double?, - @JsonProperty("upload_speed") @SerialName("upload_speed") var uploadSpeed: Double?, - @JsonProperty("total_peers") @SerialName("total_peers") var totalPeers: Int?, - @JsonProperty("pending_peers") @SerialName("pending_peers") var pendingPeers: Int?, - @JsonProperty("active_peers") @SerialName("active_peers") var activePeers: Int?, - @JsonProperty("connected_seeders") @SerialName("connected_seeders") var connectedSeeders: Int?, - @JsonProperty("half_open_peers") @SerialName("half_open_peers") var halfOpenPeers: Int?, - @JsonProperty("bytes_written") @SerialName("bytes_written") var bytesWritten: Long?, - @JsonProperty("bytes_written_data") @SerialName("bytes_written_data") var bytesWrittenData: Long?, - @JsonProperty("bytes_read") @SerialName("bytes_read") var bytesRead: Long?, - @JsonProperty("bytes_read_data") @SerialName("bytes_read_data") var bytesReadData: Long?, - @JsonProperty("bytes_read_useful_data") @SerialName("bytes_read_useful_data") var bytesReadUsefulData: Long?, - @JsonProperty("chunks_written") @SerialName("chunks_written") var chunksWritten: Long?, - @JsonProperty("chunks_read") @SerialName("chunks_read") var chunksRead: Long?, - @JsonProperty("chunks_read_useful") @SerialName("chunks_read_useful") var chunksReadUseful: Long?, - @JsonProperty("chunks_read_wasted") @SerialName("chunks_read_wasted") var chunksReadWasted: Long?, - @JsonProperty("pieces_dirtied_good") @SerialName("pieces_dirtied_good") var piecesDirtiedGood: Long?, - @JsonProperty("pieces_dirtied_bad") @SerialName("pieces_dirtied_bad") var piecesDirtiedBad: Long?, - @JsonProperty("duration_seconds") @SerialName("duration_seconds") var durationSeconds: Double?, - @JsonProperty("bit_rate") @SerialName("bit_rate") var bitRate: String?, - @JsonProperty("file_stats") @SerialName("file_stats") var fileStats: List?, - @JsonProperty("trackers") @SerialName("trackers") var trackers: List?, + @SerialName("title") var title: String, + @SerialName("poster") var poster: String, + @SerialName("data") var data: String?, + @SerialName("timestamp") var timestamp: Long, + @SerialName("name") var name: String?, + @SerialName("hash") var hash: String?, + @SerialName("stat") var stat: Int, + @SerialName("stat_string") var statString: String, + @SerialName("loaded_size") var loadedSize: Long?, + @SerialName("torrent_size") var torrentSize: Long?, + @SerialName("preloaded_bytes") var preloadedBytes: Long?, + @SerialName("preload_size") var preloadSize: Long?, + @SerialName("download_speed") var downloadSpeed: Double?, + @SerialName("upload_speed") var uploadSpeed: Double?, + @SerialName("total_peers") var totalPeers: Int?, + @SerialName("pending_peers") var pendingPeers: Int?, + @SerialName("active_peers") var activePeers: Int?, + @SerialName("connected_seeders") var connectedSeeders: Int?, + @SerialName("half_open_peers") var halfOpenPeers: Int?, + @SerialName("bytes_written") var bytesWritten: Long?, + @SerialName("bytes_written_data") var bytesWrittenData: Long?, + @SerialName("bytes_read") var bytesRead: Long?, + @SerialName("bytes_read_data") var bytesReadData: Long?, + @SerialName("bytes_read_useful_data") var bytesReadUsefulData: Long?, + @SerialName("chunks_written") var chunksWritten: Long?, + @SerialName("chunks_read") var chunksRead: Long?, + @SerialName("chunks_read_useful") var chunksReadUseful: Long?, + @SerialName("chunks_read_wasted") var chunksReadWasted: Long?, + @SerialName("pieces_dirtied_good") var piecesDirtiedGood: Long?, + @SerialName("pieces_dirtied_bad") var piecesDirtiedBad: Long?, + @SerialName("duration_seconds") var durationSeconds: Double?, + @SerialName("bit_rate") var bitRate: String?, + @SerialName("file_stats") var fileStats: List?, + @SerialName("trackers") var trackers: List?, ) { fun streamUrl(url: String): String { val fileName = @@ -344,8 +343,8 @@ object Torrent { @Serializable data class TorrentFileStat( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("path") @SerialName("path") val path: String?, - @JsonProperty("length") @SerialName("length") val length: Long?, + @SerialName("id") val id: Int?, + @SerialName("path") val path: String?, + @SerialName("length") val length: Long?, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHistoryAdaptor.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHistoryAdaptor.kt index 793d967347b..a9625a39060 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHistoryAdaptor.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHistoryAdaptor.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.ui.search import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.view.isGone -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.TvType import com.lagradost.cloudstream3.databinding.SearchHistoryFooterBinding import com.lagradost.cloudstream3.databinding.SearchHistoryItemBinding @@ -18,10 +17,10 @@ import kotlinx.serialization.Serializable @Serializable data class SearchHistoryItem( - @JsonProperty("searchedAt") @SerialName("searchedAt") val searchedAt: Long, - @JsonProperty("searchText") @SerialName("searchText") val searchText: String, - @JsonProperty("type") @SerialName("type") val type: List, - @JsonProperty("key") @SerialName("key") val key: String, + @SerialName("searchedAt") val searchedAt: Long, + @SerialName("searchText") val searchText: String, + @SerialName("type") val type: List, + @SerialName("key") val key: String, ) data class SearchHistoryCallback( diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchSuggestionApi.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchSuggestionApi.kt index a22c2fcef3a..26f38d107d6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchSuggestionApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchSuggestionApi.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.ui.search -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.nicehttp.NiceResponse @@ -17,16 +16,16 @@ object SearchSuggestionApi { @Serializable data class TmdbSearchResult( - @JsonProperty("results") @SerialName("results") val results: List?, + @SerialName("results") val results: List?, ) @Serializable data class TmdbSearchItem( - @JsonProperty("media_type") @SerialName("media_type") val mediaType: String?, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("original_title") @SerialName("original_title") val originalTitle: String?, - @JsonProperty("original_name") @SerialName("original_name") val originalName: String?, + @SerialName("media_type") val mediaType: String?, + @SerialName("title") val title: String?, + @SerialName("name") val name: String?, + @SerialName("original_title") val originalTitle: String?, + @SerialName("original_name") val originalName: String?, ) /** diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt index 4621a7b1f58..61a33531124 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt @@ -10,7 +10,6 @@ import androidx.core.content.edit import androidx.core.os.ConfigurationCompat import androidx.fragment.app.Fragment import androidx.preference.PreferenceManager -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.allProviders import com.lagradost.cloudstream3.CloudStreamApp import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -149,10 +148,10 @@ class SettingsGeneral : BasePreferenceFragmentCompat() { @Serializable data class CustomSite( - @JsonProperty("parentJavaClass") @SerialName("parentJavaClass") val parentJavaClass: String, // javaClass.simpleName - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("lang") @SerialName("lang") val lang: String, + @SerialName("parentJavaClass") val parentJavaClass: String, // javaClass.simpleName + @SerialName("name") val name: String, + @SerialName("url") val url: String, + @SerialName("lang") val lang: String, ) companion object { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt index d3096259833..e8177153f86 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.ui.settings.extensions import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.amap @@ -20,9 +19,9 @@ import kotlinx.serialization.Serializable @Serializable data class RepositoryData( - @JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("url") @SerialName("url") val url: String, + @SerialName("iconUrl") val iconUrl: String?, + @SerialName("name") val name: String, + @SerialName("url") val url: String, ) { constructor(name: String, url: String): this(null, name, url) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt index 95ef264f879..da3665b9474 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt @@ -13,7 +13,6 @@ import android.widget.Toast import androidx.annotation.OptIn import androidx.media3.common.text.Cue import androidx.media3.common.util.UnstableApi -import com.fasterxml.jackson.annotation.JsonProperty import com.google.android.gms.cast.TextTrackStyle.EDGE_TYPE_DEPRESSED import com.google.android.gms.cast.TextTrackStyle.EDGE_TYPE_DROP_SHADOW import com.google.android.gms.cast.TextTrackStyle.EDGE_TYPE_NONE @@ -45,14 +44,14 @@ const val CHROME_SUBTITLE_KEY = "chome_subtitle_settings" @Serializable data class SaveChromeCaptionStyle( - @JsonProperty("fontFamily") @SerialName("fontFamily") var fontFamily: String? = null, - @JsonProperty("fontGenericFamily") @SerialName("fontGenericFamily") var fontGenericFamily: Int? = null, - @JsonProperty("backgroundColor") @SerialName("backgroundColor") var backgroundColor: Int = 0x00FFFFFF, // transparent - @JsonProperty("edgeColor") @SerialName("edgeColor") var edgeColor: Int = Color.BLACK, // BLACK - @JsonProperty("edgeType") @SerialName("edgeType") var edgeType: Int = EDGE_TYPE_OUTLINE, - @JsonProperty("foregroundColor") @SerialName("foregroundColor") var foregroundColor: Int = Color.WHITE, - @JsonProperty("fontScale") @SerialName("fontScale") var fontScale: Float = 1.05f, - @JsonProperty("windowColor") @SerialName("windowColor") var windowColor: Int = Color.TRANSPARENT, + @SerialName("fontFamily") var fontFamily: String? = null, + @SerialName("fontGenericFamily") var fontGenericFamily: Int? = null, + @SerialName("backgroundColor") var backgroundColor: Int = 0x00FFFFFF, // transparent + @SerialName("edgeColor") var edgeColor: Int = Color.BLACK, // BLACK + @SerialName("edgeType") var edgeType: Int = EDGE_TYPE_OUTLINE, + @SerialName("foregroundColor") var foregroundColor: Int = Color.WHITE, + @SerialName("fontScale") var fontScale: Float = 1.05f, + @SerialName("windowColor") var windowColor: Int = Color.TRANSPARENT, ) class ChromecastSubtitlesFragment : BaseFragment( diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt index 860cb4fcbe0..f07b2731cfc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt @@ -25,7 +25,6 @@ import androidx.media3.common.util.UnstableApi import androidx.media3.ui.CaptionStyleCompat import androidx.media3.ui.SubtitleView import androidx.preference.PreferenceManager -import com.fasterxml.jackson.annotation.JsonProperty import com.jaredrummler.android.colorpicker.ColorPickerDialog import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey @@ -64,29 +63,29 @@ const val SUBTITLE_DOWNLOAD_KEY = "subs_auto_download" @Serializable data class SaveCaptionStyle( - @JsonProperty("foregroundColor") @SerialName("foregroundColor") var foregroundColor: Int, - @JsonProperty("backgroundColor") @SerialName("backgroundColor") var backgroundColor: Int, - @JsonProperty("windowColor") @SerialName("windowColor") var windowColor: Int, + @SerialName("foregroundColor") var foregroundColor: Int, + @SerialName("backgroundColor") var backgroundColor: Int, + @SerialName("windowColor") var windowColor: Int, @OptIn(UnstableApi::class) - @JsonProperty("edgeType") @SerialName("edgeType") var edgeType: @CaptionStyleCompat.EdgeType Int, - @JsonProperty("edgeColor") @SerialName("edgeColor") var edgeColor: Int, - @FontRes @JsonProperty("typeface") @SerialName("typeface") var typeface: Int?, - @JsonProperty("typefaceFilePath") @SerialName("typefaceFilePath") var typefaceFilePath: String?, - @JsonProperty("elevation") @SerialName("elevation") var elevation: Int, // in dp - @JsonProperty("fixedTextSize") @SerialName("fixedTextSize") var fixedTextSize: Float?, // in sp - @Px @JsonProperty("edgeSize") @SerialName("edgeSize") var edgeSize: Float? = null, - @JsonProperty("removeCaptions") @SerialName("removeCaptions") var removeCaptions: Boolean = false, - @JsonProperty("removeBloat") @SerialName("removeBloat") var removeBloat: Boolean = true, + @SerialName("edgeType") var edgeType: @CaptionStyleCompat.EdgeType Int, + @SerialName("edgeColor") var edgeColor: Int, + @FontRes @SerialName("typeface") var typeface: Int?, + @SerialName("typefaceFilePath") var typefaceFilePath: String?, + @SerialName("elevation") var elevation: Int, // in dp + @SerialName("fixedTextSize") var fixedTextSize: Float?, // in sp + @Px @SerialName("edgeSize") var edgeSize: Float? = null, + @SerialName("removeCaptions") var removeCaptions: Boolean = false, + @SerialName("removeBloat") var removeBloat: Boolean = true, /** Apply caps lock to the text */ - @JsonProperty("upperCase") @SerialName("upperCase") var upperCase: Boolean = false, + @SerialName("upperCase") var upperCase: Boolean = false, /** Apply bold to the text */ - @JsonProperty("bold") @SerialName("bold") var bold: Boolean = false, + @SerialName("bold") var bold: Boolean = false, /** Apply italic to the text */ - @JsonProperty("italic") @SerialName("italic") var italic: Boolean = false, + @SerialName("italic") var italic: Boolean = false, /** in px, background radius, aka how round the background (backgroundColor) on each row is */ - @JsonProperty("backgroundRadius") @SerialName("backgroundRadius") var backgroundRadius: Float? = null, + @SerialName("backgroundRadius") var backgroundRadius: Float? = null, /** The SSA_ALIGNMENT */ - @JsonProperty("alignment") @SerialName("alignment") var alignment: Int? = null, + @SerialName("alignment") var alignment: Int? = null, ) const val DEF_SUBS_ELEVATION = 20 diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt index 0a561b4712a..b79c9d58f4a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt @@ -9,7 +9,6 @@ import androidx.annotation.WorkerThread import androidx.core.net.toUri import androidx.fragment.app.FragmentActivity import androidx.preference.PreferenceManager -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.getActivity import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.R @@ -122,18 +121,18 @@ object BackupUtils { // Kinda hack, but I couldn't think of a better way @Serializable data class BackupVars( - @JsonProperty("_Bool") @SerialName("_Bool") val bool: Map?, - @JsonProperty("_Int") @SerialName("_Int") val int: Map?, - @JsonProperty("_String") @SerialName("_String") val string: Map?, - @JsonProperty("_Float") @SerialName("_Float") val float: Map?, - @JsonProperty("_Long") @SerialName("_Long") val long: Map?, - @JsonProperty("_StringSet") @SerialName("_StringSet") val stringSet: Map?>?, + @SerialName("_Bool") val bool: Map?, + @SerialName("_Int") val int: Map?, + @SerialName("_String") val string: Map?, + @SerialName("_Float") val float: Map?, + @SerialName("_Long") val long: Map?, + @SerialName("_StringSet") val stringSet: Map?>?, ) @Serializable data class BackupFile( - @JsonProperty("datastore") @SerialName("datastore") val datastore: BackupVars, - @JsonProperty("settings") @SerialName("settings") val settings: BackupVars, + @SerialName("datastore") val datastore: BackupVars, + @SerialName("settings") val settings: BackupVars, ) @Suppress("UNCHECKED_CAST") diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/DataStore.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/DataStore.kt index 9510c31b7c5..1399baef330 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/DataStore.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/DataStore.kt @@ -88,18 +88,6 @@ data class Editor( } object DataStore { - // Extensions shouldn't have really been using this version of it, but it seems - // some have. Since there has always been a very easy alternative, we won't - // need to deprecate it that long, and should be able to fully remove it - // once extensions at least use the other version. - @Deprecated( - "Please do not use the mapper version from DataStore. Preferably use methods from AppUtils " + - "to parse JSON. However, you can use the stable-API version of the mapper at " + - "com.lagradost.cloudstream3.mapper to access the mapper directly if necessary.", - level = DeprecationLevel.ERROR, - replaceWith = ReplaceWith("com.lagradost.cloudstream3.mapper"), - ) - val mapper = com.lagradost.cloudstream3.mapper private fun getPreferences(context: Context): SharedPreferences { return context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/DataStoreHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/DataStoreHelper.kt index c89182d3735..424c8c83454 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/DataStoreHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/DataStoreHelper.kt @@ -1,8 +1,6 @@ package com.lagradost.cloudstream3.utils import android.content.Context -import com.fasterxml.jackson.annotation.JsonIgnore -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.CloudStreamApp.Companion.context import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -160,13 +158,12 @@ object DataStoreHelper { @Serializable data class Account( - @JsonProperty("keyIndex") @SerialName("keyIndex") val keyIndex: Int, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("customImage") @SerialName("customImage") val customImage: String? = null, - @JsonProperty("defaultImageIndex") @SerialName("defaultImageIndex") val defaultImageIndex: Int, - @JsonProperty("lockPin") @SerialName("lockPin") val lockPin: String? = null, + @SerialName("keyIndex") val keyIndex: Int, + @SerialName("name") val name: String, + @SerialName("customImage") val customImage: String? = null, + @SerialName("defaultImageIndex") val defaultImageIndex: Int, + @SerialName("lockPin") val lockPin: String? = null, ) { - @get:JsonIgnore val image get() = customImage?.let { UiImage.Image(it) } ?: profileImages.getOrNull(defaultImageIndex)?.let { UiImage.Drawable(it) @@ -236,8 +233,8 @@ object DataStoreHelper { @Serializable data class PosDur( - @JsonProperty("position") @SerialName("position") val position: Long, - @JsonProperty("duration") @SerialName("duration") val duration: Long, + @SerialName("position") val position: Long, + @SerialName("duration") val duration: Long, ) fun PosDur.fixVisual(): PosDur { @@ -274,7 +271,6 @@ object DataStoreHelper { @Transient override var score: Score? = null, @Transient open val tags: List? = null, ) : SearchResponse { - @JsonProperty("rating", access = JsonProperty.Access.WRITE_ONLY) @SerialName("rating") @Deprecated( "`rating` is the old scoring system, use score instead", @@ -294,22 +290,22 @@ object DataStoreHelper { @KeepGeneratedSerializer @Serializable(with = SubscribedData.Serializer::class) data class SubscribedData( - @JsonProperty("subscribedTime") @SerialName("subscribedTime") val subscribedTime: Long, - @JsonProperty("lastSeenEpisodeCount") @SerialName("lastSeenEpisodeCount") val lastSeenEpisodeCount: Map, - @JsonProperty("id") @SerialName("id") override var id: Int?, - @JsonProperty("latestUpdatedTime") @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, - @JsonProperty("name") @SerialName("name") override val name: String, - @JsonProperty("url") @SerialName("url") override val url: String, - @JsonProperty("apiName") @SerialName("apiName") override val apiName: String, - @JsonProperty("type") @SerialName("type") override var type: TvType?, - @JsonProperty("posterUrl") @SerialName("posterUrl") override var posterUrl: String?, - @JsonProperty("year") @SerialName("year") override val year: Int?, - @JsonProperty("syncData") @SerialName("syncData") override val syncData: Map? = null, - @JsonProperty("quality") @SerialName("quality") override var quality: SearchQuality? = null, - @JsonProperty("posterHeaders") @SerialName("posterHeaders") override var posterHeaders: Map? = null, - @JsonProperty("plot") @SerialName("plot") override val plot: String? = null, - @JsonProperty("score") @SerialName("score") override var score: Score? = null, - @JsonProperty("tags") @SerialName("tags") override val tags: List? = null, + @SerialName("subscribedTime") val subscribedTime: Long, + @SerialName("lastSeenEpisodeCount") val lastSeenEpisodeCount: Map, + @SerialName("id") override var id: Int?, + @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, + @SerialName("name") override val name: String, + @SerialName("url") override val url: String, + @SerialName("apiName") override val apiName: String, + @SerialName("type") override var type: TvType?, + @SerialName("posterUrl") override var posterUrl: String?, + @SerialName("year") override val year: Int?, + @SerialName("syncData") override val syncData: Map? = null, + @SerialName("quality") override var quality: SearchQuality? = null, + @SerialName("posterHeaders") override var posterHeaders: Map? = null, + @SerialName("plot") override val plot: String? = null, + @SerialName("score") override var score: Score? = null, + @SerialName("tags") override val tags: List? = null, ) : LibrarySearchResponse( id, latestUpdatedTime, @@ -358,21 +354,21 @@ object DataStoreHelper { @KeepGeneratedSerializer @Serializable(with = BookmarkedData.Serializer::class) data class BookmarkedData( - @JsonProperty("bookmarkedTime") @SerialName("bookmarkedTime") val bookmarkedTime: Long, - @JsonProperty("id") @SerialName("id") override var id: Int?, - @JsonProperty("latestUpdatedTime") @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, - @JsonProperty("name") @SerialName("name") override val name: String, - @JsonProperty("url") @SerialName("url") override val url: String, - @JsonProperty("apiName") @SerialName("apiName") override val apiName: String, - @JsonProperty("type") @SerialName("type") override var type: TvType?, - @JsonProperty("posterUrl") @SerialName("posterUrl") override var posterUrl: String?, - @JsonProperty("year") @SerialName("year") override val year: Int?, - @JsonProperty("syncData") @SerialName("syncData") override val syncData: Map? = null, - @JsonProperty("quality") @SerialName("quality") override var quality: SearchQuality? = null, - @JsonProperty("posterHeaders") @SerialName("posterHeaders") override var posterHeaders: Map? = null, - @JsonProperty("plot") @SerialName("plot") override val plot: String? = null, - @JsonProperty("score") @SerialName("score") override var score: Score? = null, - @JsonProperty("tags") @SerialName("tags") override val tags: List? = null, + @SerialName("bookmarkedTime") val bookmarkedTime: Long, + @SerialName("id") override var id: Int?, + @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, + @SerialName("name") override val name: String, + @SerialName("url") override val url: String, + @SerialName("apiName") override val apiName: String, + @SerialName("type") override var type: TvType?, + @SerialName("posterUrl") override var posterUrl: String?, + @SerialName("year") override val year: Int?, + @SerialName("syncData") override val syncData: Map? = null, + @SerialName("quality") override var quality: SearchQuality? = null, + @SerialName("posterHeaders") override var posterHeaders: Map? = null, + @SerialName("plot") override val plot: String? = null, + @SerialName("score") override var score: Score? = null, + @SerialName("tags") override val tags: List? = null, ) : LibrarySearchResponse( id, latestUpdatedTime, @@ -419,21 +415,21 @@ object DataStoreHelper { @KeepGeneratedSerializer @Serializable(with = FavoritesData.Serializer::class) data class FavoritesData( - @JsonProperty("favoritesTime") @SerialName("favoritesTime") val favoritesTime: Long, - @JsonProperty("id") @SerialName("id") override var id: Int?, - @JsonProperty("latestUpdatedTime") @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, - @JsonProperty("name") @SerialName("name") override val name: String, - @JsonProperty("url") @SerialName("url") override val url: String, - @JsonProperty("apiName") @SerialName("apiName") override val apiName: String, - @JsonProperty("type") @SerialName("type") override var type: TvType?, - @JsonProperty("posterUrl") @SerialName("posterUrl") override var posterUrl: String?, - @JsonProperty("year") @SerialName("year") override val year: Int?, - @JsonProperty("syncData") @SerialName("syncData") override val syncData: Map? = null, - @JsonProperty("quality") @SerialName("quality") override var quality: SearchQuality? = null, - @JsonProperty("posterHeaders") @SerialName("posterHeaders") override var posterHeaders: Map? = null, - @JsonProperty("plot") @SerialName("plot") override val plot: String? = null, - @JsonProperty("score") @SerialName("score") override var score: Score? = null, - @JsonProperty("tags") @SerialName("tags") override val tags: List? = null, + @SerialName("favoritesTime") val favoritesTime: Long, + @SerialName("id") override var id: Int?, + @SerialName("latestUpdatedTime") override val latestUpdatedTime: Long, + @SerialName("name") override val name: String, + @SerialName("url") override val url: String, + @SerialName("apiName") override val apiName: String, + @SerialName("type") override var type: TvType?, + @SerialName("posterUrl") override var posterUrl: String?, + @SerialName("year") override val year: Int?, + @SerialName("syncData") override val syncData: Map? = null, + @SerialName("quality") override var quality: SearchQuality? = null, + @SerialName("posterHeaders") override var posterHeaders: Map? = null, + @SerialName("plot") override val plot: String? = null, + @SerialName("score") override var score: Score? = null, + @SerialName("tags") override val tags: List? = null, ) : LibrarySearchResponse( id, latestUpdatedTime, @@ -478,20 +474,20 @@ object DataStoreHelper { @Serializable data class ResumeWatchingResult( - @JsonProperty("name") @SerialName("name") override val name: String, - @JsonProperty("url") @SerialName("url") override val url: String, - @JsonProperty("apiName") @SerialName("apiName") override val apiName: String, - @JsonProperty("type") @SerialName("type") override var type: TvType? = null, - @JsonProperty("posterUrl") @SerialName("posterUrl") override var posterUrl: String?, - @JsonProperty("watchPos") @SerialName("watchPos") val watchPos: PosDur?, - @JsonProperty("id") @SerialName("id") override var id: Int?, - @JsonProperty("parentId") @SerialName("parentId") val parentId: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("isFromDownload") @SerialName("isFromDownload") val isFromDownload: Boolean, - @JsonProperty("quality") @SerialName("quality") override var quality: SearchQuality? = null, - @JsonProperty("posterHeaders") @SerialName("posterHeaders") override var posterHeaders: Map? = null, - @JsonProperty("score") @SerialName("score") override var score: Score? = null, + @SerialName("name") override val name: String, + @SerialName("url") override val url: String, + @SerialName("apiName") override val apiName: String, + @SerialName("type") override var type: TvType? = null, + @SerialName("posterUrl") override var posterUrl: String?, + @SerialName("watchPos") val watchPos: PosDur?, + @SerialName("id") override var id: Int?, + @SerialName("parentId") val parentId: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("season") val season: Int?, + @SerialName("isFromDownload") val isFromDownload: Boolean, + @SerialName("quality") override var quality: SearchQuality? = null, + @SerialName("posterHeaders") override var posterHeaders: Map? = null, + @SerialName("score") override var score: Score? = null, ) : SearchResponse /** diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/FillerEpisodeCheck.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/FillerEpisodeCheck.kt index 8ec46cbe58a..6c406030286 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/FillerEpisodeCheck.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/FillerEpisodeCheck.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.utils import androidx.annotation.WorkerThread -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.LoadResponse.Companion.getAniListId import com.lagradost.cloudstream3.LoadResponse.Companion.getImdbId @@ -29,43 +28,43 @@ object FillerEpisodeCheck { @Serializable data class Show( - @JsonProperty("slug") @SerialName("slug") val slug: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("filler") @SerialName("filler") val filler: ArrayList, - @JsonProperty("mixedCanon") @SerialName("mixedCanon") val mixedCanon: ArrayList, - @JsonProperty("mangaCanon") @SerialName("mangaCanon") val mangaCanon: ArrayList, - @JsonProperty("animeCanon") @SerialName("animeCanon") val animeCanon: ArrayList, + @SerialName("slug") val slug: String, + @SerialName("title") val title: String, + @SerialName("filler") val filler: ArrayList, + @SerialName("mixedCanon") val mixedCanon: ArrayList, + @SerialName("mangaCanon") val mangaCanon: ArrayList, + @SerialName("animeCanon") val animeCanon: ArrayList, ) @Serializable data class MappingRoot( - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("anidb_id") @SerialName("anidb_id") val anidbId: Long?, - @JsonProperty("anilist_id") @SerialName("anilist_id") val anilistId: Long?, - @JsonProperty("animecountdown_id") @SerialName("animecountdown_id") val animecountdownId: Long?, - @JsonProperty("animenewsnetwork_id") @SerialName("animenewsnetwork_id") val animenewsnetworkId: Long?, - @JsonProperty("anime-planet_id") @SerialName("anime-planet_id") val animePlanetId: String?, - @JsonProperty("anisearch_id") @SerialName("anisearch_id") val anisearchId: Long?, - @JsonProperty("imdb_id") @SerialName("imdb_id") val imdbId: String?, - @JsonProperty("kitsu_id") @SerialName("kitsu_id") val kitsuId: Long?, - @JsonProperty("livechart_id") @SerialName("livechart_id") val livechartId: Long?, - @JsonProperty("mal_id") @SerialName("mal_id") val malId: Long?, - @JsonProperty("simkl_id") @SerialName("simkl_id") val simklId: Long?, - @JsonProperty("themoviedb_id") @SerialName("themoviedb_id") val themoviedbId: Long?, - @JsonProperty("tvdb_id") @SerialName("tvdb_id") val tvdbId: Long?, - @JsonProperty("season") @SerialName("season") val season: Season?, + @SerialName("type") val type: String?, + @SerialName("anidb_id") val anidbId: Long?, + @SerialName("anilist_id") val anilistId: Long?, + @SerialName("animecountdown_id") val animecountdownId: Long?, + @SerialName("animenewsnetwork_id") val animenewsnetworkId: Long?, + @SerialName("anime-planet_id") val animePlanetId: String?, + @SerialName("anisearch_id") val anisearchId: Long?, + @SerialName("imdb_id") val imdbId: String?, + @SerialName("kitsu_id") val kitsuId: Long?, + @SerialName("livechart_id") val livechartId: Long?, + @SerialName("mal_id") val malId: Long?, + @SerialName("simkl_id") val simklId: Long?, + @SerialName("themoviedb_id") val themoviedbId: Long?, + @SerialName("tvdb_id") val tvdbId: Long?, + @SerialName("season") val season: Season?, ) @Serializable data class Season( - @JsonProperty("tvdb") @SerialName("tvdb") val tvdb: Long?, - @JsonProperty("tmdb") @SerialName("tmdb") val tmdb: Long?, + @SerialName("tvdb") val tvdb: Long?, + @SerialName("tmdb") val tmdb: Long?, ) @Serializable data class CombinedMedia( - @JsonProperty("mapping") @SerialName("mapping") val mapping: MappingRoot?, - @JsonProperty("show") @SerialName("show") val show: Show, + @SerialName("mapping") val mapping: MappingRoot?, + @SerialName("show") val show: Show, ) data class Database( diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index e6b2b59b947..0b82a77c74d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -12,7 +12,6 @@ import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.core.content.edit import androidx.preference.PreferenceManager -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.BuildConfig import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.MainActivity.Companion.deleteFileOnExit @@ -46,41 +45,41 @@ object InAppUpdater { @Serializable private data class GithubAsset( - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("size") @SerialName("size") val size: Int, // Size in bytes - @JsonProperty("browser_download_url") @SerialName("browser_download_url") val browserDownloadUrl: String, - @JsonProperty("content_type") @SerialName("content_type") val contentType: String, // application/vnd.android.package-archive + @SerialName("name") val name: String, + @SerialName("size") val size: Int, // Size in bytes + @SerialName("browser_download_url") val browserDownloadUrl: String, + @SerialName("content_type") val contentType: String, // application/vnd.android.package-archive ) @Serializable private data class GithubRelease( - @JsonProperty("tag_name") @SerialName("tag_name") val tagName: String, // Version code - @JsonProperty("body") @SerialName("body") val body: String, // Description - @JsonProperty("assets") @SerialName("assets") val assets: List, - @JsonProperty("target_commitish") @SerialName("target_commitish") val targetCommitish: String, // Branch - @JsonProperty("prerelease") @SerialName("prerelease") val prerelease: Boolean, - @JsonProperty("node_id") @SerialName("node_id") val nodeId: String, + @SerialName("tag_name") val tagName: String, // Version code + @SerialName("body") val body: String, // Description + @SerialName("assets") val assets: List, + @SerialName("target_commitish") val targetCommitish: String, // Branch + @SerialName("prerelease") val prerelease: Boolean, + @SerialName("node_id") val nodeId: String, ) @Serializable private data class GithubObject( - @JsonProperty("sha") @SerialName("sha") val sha: String, // SHA-256 hash - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("url") @SerialName("url") val url: String, + @SerialName("sha") val sha: String, // SHA-256 hash + @SerialName("type") val type: String, + @SerialName("url") val url: String, ) @Serializable private data class GithubTag( - @JsonProperty("object") @SerialName("object") val githubObject: GithubObject, + @SerialName("object") val githubObject: GithubObject, ) @Serializable private data class Update( - @JsonProperty("shouldUpdate") @SerialName("shouldUpdate") val shouldUpdate: Boolean, - @JsonProperty("updateURL") @SerialName("updateURL") val updateURL: String?, - @JsonProperty("updateVersion") @SerialName("updateVersion") val updateVersion: String?, - @JsonProperty("changelog") @SerialName("changelog") val changelog: String?, - @JsonProperty("updateNodeId") @SerialName("updateNodeId") val updateNodeId: String?, + @SerialName("shouldUpdate") val shouldUpdate: Boolean, + @SerialName("updateURL") val updateURL: String?, + @SerialName("updateVersion") val updateVersion: String?, + @SerialName("changelog") val changelog: String?, + @SerialName("updateNodeId") val updateNodeId: String?, ) private suspend fun Activity.getAppUpdate(installPrerelease: Boolean): Update { diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt index 517528e3d10..8127ed5f61c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.utils // TODO: FIX import android.util.Log -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.apis import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.mvvm.logError @@ -106,69 +105,69 @@ object SyncUtil { @Serializable data class SyncPage( - @JsonProperty("Pages") @SerialName("Pages") val pages: SyncPages?, + @SerialName("Pages") val pages: SyncPages?, ) @Serializable data class SyncPages( - @JsonProperty("9anime") @SerialName("9anime") val nineanime: Map = emptyMap(), - @JsonProperty("Gogoanime") @SerialName("Gogoanime") val gogoanime: Map = emptyMap(), - @JsonProperty("Twistmoe") @SerialName("Twistmoe") val twistmoe: Map = emptyMap(), + @SerialName("9anime") val nineanime: Map = emptyMap(), + @SerialName("Gogoanime") val gogoanime: Map = emptyMap(), + @SerialName("Twistmoe") val twistmoe: Map = emptyMap(), ) @Serializable data class ProviderPage( - @JsonProperty("url") @SerialName("url") val url: String?, + @SerialName("url") val url: String?, ) @Serializable data class MalSyncPage( - @JsonProperty("identifier") @SerialName("identifier") val identifier: String?, - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("page") @SerialName("page") val page: String?, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("url") @SerialName("url") val url: String?, - @JsonProperty("image") @SerialName("image") val image: String?, - @JsonProperty("hentai") @SerialName("hentai") val hentai: Boolean?, - @JsonProperty("sticky") @SerialName("sticky") val sticky: Boolean?, - @JsonProperty("active") @SerialName("active") val active: Boolean?, - @JsonProperty("actor") @SerialName("actor") val actor: String?, - @JsonProperty("malId") @SerialName("malId") val malId: Int?, - @JsonProperty("aniId") @SerialName("aniId") val aniId: Int?, - @JsonProperty("createdAt") @SerialName("createdAt") val createdAt: String?, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: String?, - @JsonProperty("deletedAt") @SerialName("deletedAt") val deletedAt: String?, - @JsonProperty("Mal") @SerialName("Mal") val mal: Mal?, - @JsonProperty("Anilist") @SerialName("Anilist") val anilist: Anilist?, - @JsonProperty("malUrl") @SerialName("malUrl") val malUrl: String?, + @SerialName("identifier") val identifier: String?, + @SerialName("type") val type: String?, + @SerialName("page") val page: String?, + @SerialName("title") val title: String?, + @SerialName("url") val url: String?, + @SerialName("image") val image: String?, + @SerialName("hentai") val hentai: Boolean?, + @SerialName("sticky") val sticky: Boolean?, + @SerialName("active") val active: Boolean?, + @SerialName("actor") val actor: String?, + @SerialName("malId") val malId: Int?, + @SerialName("aniId") val aniId: Int?, + @SerialName("createdAt") val createdAt: String?, + @SerialName("updatedAt") val updatedAt: String?, + @SerialName("deletedAt") val deletedAt: String?, + @SerialName("Mal") val mal: Mal?, + @SerialName("Anilist") val anilist: Anilist?, + @SerialName("malUrl") val malUrl: String?, ) @Serializable data class Anilist( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("malId") @SerialName("malId") val malId: Int?, - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("url") @SerialName("url") val url: String?, - @JsonProperty("image") @SerialName("image") val image: String?, - @JsonProperty("category") @SerialName("category") val category: String?, - @JsonProperty("hentai") @SerialName("hentai") val hentai: Boolean?, - @JsonProperty("createdAt") @SerialName("createdAt") val createdAt: String?, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: String?, - @JsonProperty("deletedAt") @SerialName("deletedAt") val deletedAt: String?, + @SerialName("id") val id: Int?, + @SerialName("malId") val malId: Int?, + @SerialName("type") val type: String?, + @SerialName("title") val title: String?, + @SerialName("url") val url: String?, + @SerialName("image") val image: String?, + @SerialName("category") val category: String?, + @SerialName("hentai") val hentai: Boolean?, + @SerialName("createdAt") val createdAt: String?, + @SerialName("updatedAt") val updatedAt: String?, + @SerialName("deletedAt") val deletedAt: String?, ) @Serializable data class Mal( - @JsonProperty("id") @SerialName("id") val id: Int?, - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("title") @SerialName("title") val title: String?, - @JsonProperty("url") @SerialName("url") val url: String?, - @JsonProperty("image") @SerialName("image") val image: String?, - @JsonProperty("category") @SerialName("category") val category: String?, - @JsonProperty("hentai") @SerialName("hentai") val hentai: Boolean?, - @JsonProperty("createdAt") @SerialName("createdAt") val createdAt: String?, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: String?, - @JsonProperty("deletedAt") @SerialName("deletedAt") val deletedAt: String?, + @SerialName("id") val id: Int?, + @SerialName("type") val type: String?, + @SerialName("title") val title: String?, + @SerialName("url") val url: String?, + @SerialName("image") val image: String?, + @SerialName("category") val category: String?, + @SerialName("hentai") val hentai: Boolean?, + @SerialName("createdAt") val createdAt: String?, + @SerialName("updatedAt") val updatedAt: String?, + @SerialName("deletedAt") val deletedAt: String?, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadObjects.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadObjects.kt index efd6c6b7e1e..9f96f3bda57 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadObjects.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadObjects.kt @@ -1,8 +1,6 @@ package com.lagradost.cloudstream3.utils.downloader import android.net.Uri -import com.fasterxml.jackson.annotation.JsonIgnore -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.Score import com.lagradost.cloudstream3.SkipSerializationTest import com.lagradost.cloudstream3.TvType @@ -26,8 +24,8 @@ object DownloadObjects { /** An item can either be something to resume or something new to start */ @Serializable data class DownloadQueueWrapper( - @JsonProperty("resumePackage") @SerialName("resumePackage") val resumePackage: DownloadResumePackage?, - @JsonProperty("downloadItem") @SerialName("downloadItem") val downloadItem: DownloadQueueItem?, + @SerialName("resumePackage") val resumePackage: DownloadResumePackage?, + @SerialName("downloadItem") val downloadItem: DownloadQueueItem?, ) { init { assert(resumePackage != null || downloadItem != null) { @@ -36,31 +34,30 @@ object DownloadObjects { } /** Loop through the current download instances to see if it is currently downloading. Also includes link loading. */ - @JsonIgnore fun isCurrentlyDownloading(): Boolean { return DownloadQueueService.downloadInstances.value.any { it.downloadQueueWrapper.id == this.id } } - @JsonProperty("id") @SerialName("id") + @SerialName("id") val id = resumePackage?.item?.ep?.id ?: downloadItem!!.episode.id - @JsonProperty("parentId") @SerialName("parentId") + @SerialName("parentId") val parentId = resumePackage?.item?.ep?.parentId ?: downloadItem!!.episode.parentId } /** General data about the episode and show to start a download from. */ @Serializable data class DownloadQueueItem( - @JsonProperty("episode") @SerialName("episode") val episode: ResultEpisode, - @JsonProperty("isMovie") @SerialName("isMovie") val isMovie: Boolean, - @JsonProperty("resultName") @SerialName("resultName") val resultName: String, - @JsonProperty("resultType") @SerialName("resultType") val resultType: TvType, - @JsonProperty("resultPoster") @SerialName("resultPoster") val resultPoster: String?, - @JsonProperty("apiName") @SerialName("apiName") val apiName: String, - @JsonProperty("resultId") @SerialName("resultId") val resultId: Int, - @JsonProperty("resultUrl") @SerialName("resultUrl") val resultUrl: String, - @JsonProperty("links") @SerialName("links") val links: List? = null, - @JsonProperty("subs") @SerialName("subs") val subs: List? = null, + @SerialName("episode") val episode: ResultEpisode, + @SerialName("isMovie") val isMovie: Boolean, + @SerialName("resultName") val resultName: String, + @SerialName("resultType") val resultType: TvType, + @SerialName("resultPoster") val resultPoster: String?, + @SerialName("apiName") val apiName: String, + @SerialName("resultId") val resultId: Int, + @SerialName("resultUrl") val resultUrl: String, + @SerialName("links") val links: List? = null, + @SerialName("subs") val subs: List? = null, ) { fun toWrapper(): DownloadQueueWrapper { return DownloadQueueWrapper(null, this) @@ -76,22 +73,21 @@ object DownloadObjects { @KeepGeneratedSerializer @Serializable(with = DownloadEpisodeCached.Serializer::class) data class DownloadEpisodeCached( - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("poster") @SerialName("poster") val poster: String?, - @JsonProperty("episode") @SerialName("episode") val episode: Int, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("parentId") @SerialName("parentId") val parentId: Int, - @JsonProperty("score") @SerialName("score") var score: Score? = null, - @JsonProperty("description") @SerialName("description") val description: String?, - @JsonProperty("cacheTime") @SerialName("cacheTime") val cacheTime: Long, - @JsonProperty("id") @SerialName("id") override val id: Int, + @SerialName("name") val name: String?, + @SerialName("poster") val poster: String?, + @SerialName("episode") val episode: Int, + @SerialName("season") val season: Int?, + @SerialName("parentId") val parentId: Int, + @SerialName("score") var score: Score? = null, + @SerialName("description") val description: String?, + @SerialName("cacheTime") val cacheTime: Long, + @SerialName("id") override val id: Int, ) : DownloadCached(id) { object Serializer : WriteOnlySerializer( DownloadEpisodeCached.generatedSerializer(), setOf("rating"), ) - @JsonProperty("rating", access = JsonProperty.Access.WRITE_ONLY) @SerialName("rating") @Deprecated( "`rating` is the old scoring system, use score instead", @@ -110,20 +106,20 @@ object DownloadObjects { /** What to display to the user for a downloaded show/movie. Includes info such as name, poster and url */ @Serializable data class DownloadHeaderCached( - @JsonProperty("apiName") @SerialName("apiName") val apiName: String, - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("type") @SerialName("type") val type: TvType, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("poster") @SerialName("poster") val poster: String?, - @JsonProperty("cacheTime") @SerialName("cacheTime") val cacheTime: Long, - @JsonProperty("id") @SerialName("id") override val id: Int, + @SerialName("apiName") val apiName: String, + @SerialName("url") val url: String, + @SerialName("type") val type: TvType, + @SerialName("name") val name: String, + @SerialName("poster") val poster: String?, + @SerialName("cacheTime") val cacheTime: Long, + @SerialName("id") override val id: Int, ) : DownloadCached(id) @Serializable data class DownloadResumePackage( - @JsonProperty("item") @SerialName("item") val item: DownloadItem, + @SerialName("item") val item: DownloadItem, /** Tills which link should get resumed */ - @JsonProperty("linkIndex") @SerialName("linkIndex") val linkIndex: Int?, + @SerialName("linkIndex") val linkIndex: Int?, ) { fun toWrapper(): DownloadQueueWrapper { return DownloadQueueWrapper(this, null) @@ -132,55 +128,55 @@ object DownloadObjects { @Serializable data class DownloadItem( - @JsonProperty("source") @SerialName("source") val source: String?, - @JsonProperty("folder") @SerialName("folder") val folder: String?, - @JsonProperty("ep") @SerialName("ep") val ep: DownloadEpisodeMetadata, - @JsonProperty("links") @SerialName("links") val links: List, + @SerialName("source") val source: String?, + @SerialName("folder") val folder: String?, + @SerialName("ep") val ep: DownloadEpisodeMetadata, + @SerialName("links") val links: List, ) /** Metadata for a specific episode and how to display it. */ @Serializable data class DownloadEpisodeMetadata( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("parentId") @SerialName("parentId") val parentId: Int, - @JsonProperty("mainName") @SerialName("mainName") val mainName: String, - @JsonProperty("sourceApiName") @SerialName("sourceApiName") val sourceApiName: String?, - @JsonProperty("poster") @SerialName("poster") val poster: String?, - @JsonProperty("name") @SerialName("name") val name: String?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("type") @SerialName("type") val type: TvType?, + @SerialName("id") val id: Int, + @SerialName("parentId") val parentId: Int, + @SerialName("mainName") val mainName: String, + @SerialName("sourceApiName") val sourceApiName: String?, + @SerialName("poster") val poster: String?, + @SerialName("name") val name: String?, + @SerialName("season") val season: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("type") val type: TvType?, ) @Serializable data class DownloadedFileInfo( - @JsonProperty("totalBytes") @SerialName("totalBytes") val totalBytes: Long, - @JsonProperty("relativePath") @SerialName("relativePath") val relativePath: String, - @JsonProperty("displayName") @SerialName("displayName") val displayName: String, - @JsonProperty("extraInfo") @SerialName("extraInfo") val extraInfo: String? = null, - @JsonProperty("basePath") @SerialName("basePath") val basePath: String? = null, // null is for legacy downloads. See getBasePath() + @SerialName("totalBytes") val totalBytes: Long, + @SerialName("relativePath") val relativePath: String, + @SerialName("displayName") val displayName: String, + @SerialName("extraInfo") val extraInfo: String? = null, + @SerialName("basePath") val basePath: String? = null, // null is for legacy downloads. See getBasePath() // Hash of the link associated with this DownloadFile, used so not override old data in the DownloadedFileInfo - @JsonProperty("linkHash") @SerialName("linkHash") val linkHash : Int? = null, + @SerialName("linkHash") val linkHash : Int? = null, ) @Serializable @SkipSerializationTest // Uri has issues with Jackson data class DownloadedFileInfoResult( - @JsonProperty("fileLength") @SerialName("fileLength") val fileLength: Long, - @JsonProperty("totalBytes") @SerialName("totalBytes") val totalBytes: Long, - @JsonProperty("path") @SerialName("path") + @SerialName("fileLength") val fileLength: Long, + @SerialName("totalBytes") val totalBytes: Long, + @SerialName("path") @Serializable(with = UriSerializer::class) val path: Uri, ) @Serializable data class ResumeWatching( - @JsonProperty("parentId") @SerialName("parentId") val parentId: Int, - @JsonProperty("episodeId") @SerialName("episodeId") val episodeId: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("updateTime") @SerialName("updateTime") val updateTime: Long, - @JsonProperty("isFromDownload") @SerialName("isFromDownload") val isFromDownload: Boolean, + @SerialName("parentId") val parentId: Int, + @SerialName("episodeId") val episodeId: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("season") val season: Int?, + @SerialName("updateTime") val updateTime: Long, + @SerialName("isFromDownload") val isFromDownload: Boolean, ) data class DownloadStatus( diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AniSkip.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AniSkip.kt index 4bb78a1b0e8..220b1cc6831 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AniSkip.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AniSkip.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.utils.videoskip -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.AnimeLoadResponse import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.LoadResponse.Companion.getMalId @@ -51,23 +50,23 @@ class AniSkip : SkipAPI() { @Serializable data class AniSkipResponse( - @JsonProperty("found") @SerialName("found") val found: Boolean, - @JsonProperty("results") @SerialName("results") val results: List?, - @JsonProperty("message") @SerialName("message") val message: String?, - @JsonProperty("statusCode") @SerialName("statusCode") val statusCode: Int, + @SerialName("found") val found: Boolean, + @SerialName("results") val results: List?, + @SerialName("message") val message: String?, + @SerialName("statusCode") val statusCode: Int, ) @Serializable data class Stamp( - @JsonProperty("interval") @SerialName("interval") val interval: AniSkipInterval, - @JsonProperty("skipType") @SerialName("skipType") val skipType: String, - @JsonProperty("skipId") @SerialName("skipId") val skipId: String, - @JsonProperty("episodeLength") @SerialName("episodeLength") val episodeLength: Double, + @SerialName("interval") val interval: AniSkipInterval, + @SerialName("skipType") val skipType: String, + @SerialName("skipId") val skipId: String, + @SerialName("episodeLength") val episodeLength: Double, ) @Serializable data class AniSkipInterval( - @JsonProperty("startTime") @SerialName("startTime") val startTime: Double, - @JsonProperty("endTime") @SerialName("endTime") val endTime: Double, + @SerialName("startTime") val startTime: Double, + @SerialName("endTime") val endTime: Double, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AnimeSkip.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AnimeSkip.kt index df9d56217fd..44713f673c2 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AnimeSkip.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/AnimeSkip.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.utils.videoskip -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.AnimeLoadResponse import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.LoadResponse @@ -38,49 +37,49 @@ class AnimeSkipAuth : AuthAPI() { @Serializable data class LoginRoot( - @JsonProperty("data") @SerialName("data") val data: LoginData, + @SerialName("data") val data: LoginData, ) @Serializable data class LoginData( - @JsonProperty("login") @SerialName("login") val login: Login, + @SerialName("login") val login: Login, ) @Serializable data class Login( - @JsonProperty("authToken") @SerialName("authToken") val authToken: String, - @JsonProperty("refreshToken") @SerialName("refreshToken") val refreshToken: String, - @JsonProperty("account") @SerialName("account") val account: Account, + @SerialName("authToken") val authToken: String, + @SerialName("refreshToken") val refreshToken: String, + @SerialName("account") val account: Account, ) @Serializable data class ApiRoot( - @JsonProperty("data") @SerialName("data") val data: ApiData, + @SerialName("data") val data: ApiData, ) @Serializable data class ApiData( - @JsonProperty("myApiClients") @SerialName("myApiClients") val myApiClients: List, + @SerialName("myApiClients") val myApiClients: List, ) @Serializable data class MyApiClient( - @JsonProperty("id") @SerialName("id") val id: String, + @SerialName("id") val id: String, ) @Serializable data class Account( - @JsonProperty("profileUrl") @SerialName("profileUrl") val profileUrl: String, - @JsonProperty("username") @SerialName("username") val username: String, - @JsonProperty("email") @SerialName("email") val email: String, + @SerialName("profileUrl") val profileUrl: String, + @SerialName("username") val username: String, + @SerialName("email") val email: String, ) @Serializable data class Payload( - @JsonProperty("profileUrl") @SerialName("profileUrl") val profileUrl: String, - @JsonProperty("username") @SerialName("username") val username: String, - @JsonProperty("email") @SerialName("email") val email: String, - @JsonProperty("clientId") @SerialName("clientId") val clientId: String, + @SerialName("profileUrl") val profileUrl: String, + @SerialName("username") val username: String, + @SerialName("email") val email: String, + @SerialName("clientId") val clientId: String, ) override suspend fun user(token: AuthToken?): AuthUser? { @@ -184,41 +183,41 @@ class AnimeSkip : SkipAPI() { @Serializable data class Root( - @JsonProperty("data") @SerialName("data") val data: Data, + @SerialName("data") val data: Data, ) @Serializable data class Data( - @JsonProperty("searchShows") @SerialName("searchShows") val searchShows: List, + @SerialName("searchShows") val searchShows: List, ) @Serializable data class SearchShow( - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("originalName") @SerialName("originalName") val originalName: String?, - @JsonProperty("seasonCount") @SerialName("seasonCount") val seasonCount: Long, - @JsonProperty("episodeCount") @SerialName("episodeCount") val episodeCount: Long, - @JsonProperty("baseDuration") @SerialName("baseDuration") val baseDuration: Double, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List, + @SerialName("name") val name: String, + @SerialName("originalName") val originalName: String?, + @SerialName("seasonCount") val seasonCount: Long, + @SerialName("episodeCount") val episodeCount: Long, + @SerialName("baseDuration") val baseDuration: Double, + @SerialName("episodes") val episodes: List, ) @Serializable data class Episode( - @JsonProperty("number") @SerialName("number") val number: String?, - @JsonProperty("absoluteNumber") @SerialName("absoluteNumber") val absoluteNumber: String?, - @JsonProperty("season") @SerialName("season") val season: String?, - @JsonProperty("timestamps") @SerialName("timestamps") val timestamps: List, + @SerialName("number") val number: String?, + @SerialName("absoluteNumber") val absoluteNumber: String?, + @SerialName("season") val season: String?, + @SerialName("timestamps") val timestamps: List, ) @Serializable data class Timestamp( - @JsonProperty("at") @SerialName("at") val at: Double, - @JsonProperty("type") @SerialName("type") val type: Type, + @SerialName("at") val at: Double, + @SerialName("type") val type: Type, ) @Serializable data class Type( - @JsonProperty("name") @SerialName("name") val name: String, + @SerialName("name") val name: String, ) val cache: ConcurrentHashMap = ConcurrentHashMap() diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/IntroDbSkip.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/IntroDbSkip.kt index 75e22a15f16..6b4892060f0 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/IntroDbSkip.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/IntroDbSkip.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.utils.videoskip -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.LoadResponse.Companion.getImdbId import com.lagradost.cloudstream3.TvType @@ -59,22 +58,22 @@ class IntroDbSkip : SkipAPI() { @Serializable data class IntroDbResponse( - @JsonProperty("imdb_id") @SerialName("imdb_id") val imdbId: String?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("intro") @SerialName("intro") val intro: Segment?, - @JsonProperty("recap") @SerialName("recap") val recap: Segment?, - @JsonProperty("outro") @SerialName("outro") val outro: Segment?, + @SerialName("imdb_id") val imdbId: String?, + @SerialName("season") val season: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("intro") val intro: Segment?, + @SerialName("recap") val recap: Segment?, + @SerialName("outro") val outro: Segment?, ) @Serializable data class Segment( - @JsonProperty("start_sec") @SerialName("start_sec") val startSec: Double?, - @JsonProperty("end_sec") @SerialName("end_sec") val endSec: Double?, - @JsonProperty("start_ms") @SerialName("start_ms") val startMs: Long?, - @JsonProperty("end_ms") @SerialName("end_ms") val endMs: Long?, - @JsonProperty("confidence") @SerialName("confidence") val confidence: Double?, - @JsonProperty("submission_count") @SerialName("submission_count") val submissionCount: Int?, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String?, + @SerialName("start_sec") val startSec: Double?, + @SerialName("end_sec") val endSec: Double?, + @SerialName("start_ms") val startMs: Long?, + @SerialName("end_ms") val endMs: Long?, + @SerialName("confidence") val confidence: Double?, + @SerialName("submission_count") val submissionCount: Int?, + @SerialName("updated_at") val updatedAt: String?, ) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/TheIntroDBSkip.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/TheIntroDBSkip.kt index 3fd050f1a5f..a717d4b2f6a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/TheIntroDBSkip.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/videoskip/TheIntroDBSkip.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.utils.videoskip -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.LoadResponse.Companion.getImdbId import com.lagradost.cloudstream3.LoadResponse.Companion.getTMDbId @@ -56,17 +55,17 @@ class TheIntroDBSkip : SkipAPI() { @Serializable data class Root( - @JsonProperty("tmdb_id") @SerialName("tmdb_id") val tmdbId: Long, - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("intro") @SerialName("intro") val intro: List = emptyList(), - @JsonProperty("recap") @SerialName("recap") val recap: List = emptyList(), - @JsonProperty("credits") @SerialName("credits") val credits: List = emptyList(), - @JsonProperty("preview") @SerialName("preview") val preview: List = emptyList(), + @SerialName("tmdb_id") val tmdbId: Long, + @SerialName("type") val type: String, + @SerialName("intro") val intro: List = emptyList(), + @SerialName("recap") val recap: List = emptyList(), + @SerialName("credits") val credits: List = emptyList(), + @SerialName("preview") val preview: List = emptyList(), ) @Serializable data class Stamp( - @JsonProperty("start_ms") @SerialName("start_ms") val startMs: Long?, - @JsonProperty("end_ms") @SerialName("end_ms") val endMs: Long?, + @SerialName("start_ms") val startMs: Long?, + @SerialName("end_ms") val endMs: Long?, ) } diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 4b713656e35..c158cad5013 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -57,8 +57,6 @@ kotlin { commonMain.dependencies { implementation(libs.annotation) // Annotations - implementation(libs.jackson.module.kotlin) // JSON Parser - implementation(libs.jsoup) // HTML Parser implementation(libs.kotlinx.atomicfu) implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.datetime) @@ -66,12 +64,7 @@ kotlin { implementation(libs.ksoup) // HTML Parser implementation(libs.ktor.http) implementation(libs.nicehttp) // HTTP Library - implementation(libs.rhino) // Run JavaScript - implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit implementation(libs.bundles.cryptography) // Cryptography - - // Deprecated; will be removed once extensions have time to migrate from using it - implementation("me.xdrop:fuzzywuzzy:1.4.0") } commonTest.dependencies { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt index 4d977323aa7..0b27941e9ca 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt @@ -6,11 +6,6 @@ package com.lagradost.cloudstream3 -import com.fasterxml.jackson.annotation.JsonAutoDetect -import com.fasterxml.jackson.annotation.JsonProperty -import com.fasterxml.jackson.databind.DeserializationFeature -import com.fasterxml.jackson.databind.json.JsonMapper -import com.fasterxml.jackson.module.kotlin.kotlinModule import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.mvvm.safe import com.lagradost.cloudstream3.syncproviders.SyncIdName @@ -103,9 +98,6 @@ val json = Json { ignoreUnknownKeys = true } -val mapper = JsonMapper.builder().addModule(kotlinModule()) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).build()!! - object APIHolder { val unixTimeMS: Long get() = Clock.System.now().toEpochMilliseconds() @@ -396,15 +388,15 @@ const val PROVIDER_STATUS_DOWN = 0 @Serializable data class ProvidersInfoJson( - @JsonProperty("name") @SerialName("name") var name: String, - @JsonProperty("url") @SerialName("url") var url: String, - @JsonProperty("credentials") @SerialName("credentials") var credentials: String? = null, - @JsonProperty("status") @SerialName("status") var status: Int, + @SerialName("name") var name: String, + @SerialName("url") var url: String, + @SerialName("credentials") var credentials: String? = null, + @SerialName("status") var status: Int, ) @Serializable data class SettingsJson( - @JsonProperty("enableAdult") @SerialName("enableAdult") var enableAdult: Boolean = false, + @SerialName("enableAdult") var enableAdult: Boolean = false, ) data class MainPageData( @@ -871,11 +863,10 @@ enum class DubStatus(val id: Int) { * Internally it stores it as an int up to 10^9 to represent up to 10 significant digits. So think * of this as a decimal class specifically for ratings. * */ -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) @Serializable class Score private constructor( /** Decimal between [0, 10^9] representing the min score and max score respectively */ - @JsonProperty("data") @SerialName("data") private val data: Int, + @SerialName("data") private val data: Int, ) { override fun hashCode(): Int = this.data.hashCode() override fun equals(other: Any?): Boolean = other is Score && this.data == other.data @@ -1203,8 +1194,8 @@ suspend fun newSubtitleFile( @ConsistentCopyVisibility @Serializable data class AudioFile internal constructor( - @JsonProperty("url") @SerialName("url") var url: String, - @JsonProperty("headers") @SerialName("headers") var headers: Map? = null, + @SerialName("url") var url: String, + @SerialName("headers") var headers: Map? = null, ) /** Creates an AudioFile with optional initializer for setting additional properties. @@ -2183,9 +2174,9 @@ data class NextAiring( * */ @Serializable data class SeasonData( - @JsonProperty("season") @SerialName("season") val season: Int, - @JsonProperty("name") @SerialName("name") val name: String? = null, - @JsonProperty("displaySeason") @SerialName("displaySeason") val displaySeason: Int? = null, // will use season if null + @SerialName("season") val season: Int, + @SerialName("name") val name: String? = null, + @SerialName("displaySeason") val displaySeason: Int? = null, // will use season if null ) /** Abstract interface of EpisodeResponse */ @@ -2565,15 +2556,6 @@ fun Episode.addDate(date: Instant?) { this.date = date?.toEpochMilliseconds() } -// Deprecate after next stable -/* @Deprecated( - message = "Use addDate with LocalDate, Instant, or String instead.", - level = DeprecationLevel.WARNING, -) */ -fun Episode.addDate(date: java.util.Date?) { - this.date = date?.time -} - fun MainAPI.newEpisode( url: String, initializer: Episode.() -> Unit = { }, @@ -2745,36 +2727,36 @@ data class Tracker( @Serializable data class AniSearch( - @JsonProperty("data") @SerialName("data") var data: Data? = Data(), + @SerialName("data") var data: Data? = Data(), ) { @Serializable data class Data( - @JsonProperty("Page") @SerialName("Page") var page: Page? = Page(), + @SerialName("Page") var page: Page? = Page(), ) { @Serializable data class Page( - @JsonProperty("media") @SerialName("media") var media: ArrayList = arrayListOf(), + @SerialName("media") var media: ArrayList = arrayListOf(), ) { @Serializable data class Media( - @JsonProperty("title") @SerialName("title") var title: Title? = null, - @JsonProperty("id") @SerialName("id") var id: Int? = null, - @JsonProperty("idMal") @SerialName("idMal") var idMal: Int? = null, - @JsonProperty("seasonYear") @SerialName("seasonYear") var seasonYear: Int? = null, - @JsonProperty("format") @SerialName("format") var format: String? = null, - @JsonProperty("coverImage") @SerialName("coverImage") var coverImage: CoverImage? = null, - @JsonProperty("bannerImage") @SerialName("bannerImage") var bannerImage: String? = null, + @SerialName("title") var title: Title? = null, + @SerialName("id") var id: Int? = null, + @SerialName("idMal") var idMal: Int? = null, + @SerialName("seasonYear") var seasonYear: Int? = null, + @SerialName("format") var format: String? = null, + @SerialName("coverImage") var coverImage: CoverImage? = null, + @SerialName("bannerImage") var bannerImage: String? = null, ) { @Serializable data class CoverImage( - @JsonProperty("extraLarge") @SerialName("extraLarge") var extraLarge: String? = null, - @JsonProperty("large") @SerialName("large") var large: String? = null, + @SerialName("extraLarge") var extraLarge: String? = null, + @SerialName("large") var large: String? = null, ) @Serializable data class Title( - @JsonProperty("romaji") @SerialName("romaji") var romaji: String? = null, - @JsonProperty("english") @SerialName("english") var english: String? = null, + @SerialName("romaji") var romaji: String? = null, + @SerialName("english") var english: String? = null, ) { fun isMatchingTitles(title: String?): Boolean { if (title == null) return false diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt index 22527bcfb01..0934d0073c9 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors.helper -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.Prerelease import com.lagradost.cloudstream3.base64DecodeArray import com.lagradost.cloudstream3.base64Encode @@ -116,8 +115,8 @@ object AesHelper { @Serializable private data class AesData( - @JsonProperty("ct") @SerialName("ct") val ct: String, - @JsonProperty("iv") @SerialName("iv") val iv: String, - @JsonProperty("s") @SerialName("s") val s: String, + @SerialName("ct") val ct: String, + @SerialName("iv") val iv: String, + @SerialName("s") val s: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt index 22ce5bb4b26..89a4f6982e6 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors.helper -import com.fasterxml.jackson.annotation.JsonProperty import com.fleeksoft.ksoup.nodes.Document import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode @@ -145,20 +144,20 @@ object GogoHelper { @Serializable data class GogoSources( - @JsonProperty("source") @SerialName("source") val source: List?, - @JsonProperty("sourceBk") @SerialName("sourceBk") val sourceBk: List?, + @SerialName("source") val source: List?, + @SerialName("sourceBk") val sourceBk: List?, ) @Serializable data class GogoSource( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("label") @SerialName("label") val label: String?, - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("default") @SerialName("default") val default: String? = null, + @SerialName("file") val file: String, + @SerialName("label") val label: String?, + @SerialName("type") val type: String?, + @SerialName("default") val default: String? = null, ) @Serializable data class GogoJsonData( - @JsonProperty("data") @SerialName("data") val data: String? = null, + @SerialName("data") val data: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/JWPlayerHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/JWPlayerHelper.kt index c9ba4a624ee..82069d28b84 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/JWPlayerHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/JWPlayerHelper.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors.helper -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.Prerelease import com.lagradost.cloudstream3.SubtitleFile @@ -151,15 +150,15 @@ object JwPlayerHelper { @Serializable private data class Source( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("label") @SerialName("label") val label: String?, - @JsonProperty("type") @SerialName("type") val type: String?, + @SerialName("file") val file: String, + @SerialName("label") val label: String?, + @SerialName("type") val type: String?, ) @Serializable data class Track( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, - @JsonProperty("kind") @SerialName("kind") val kind: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("label") val label: String? = null, + @SerialName("kind") val kind: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/WcoHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/WcoHelper.kt index 3075edcca00..ee3646582ae 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/WcoHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/WcoHelper.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors.helper -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -11,15 +10,15 @@ class WcoHelper { @Serializable data class ExternalKeys( - @JsonProperty("wco_key") @SerialName("wco_key") val wcoKey: String? = null, - @JsonProperty("wco_cipher_key") @SerialName("wco_cipher_key") val wcocipher: String? = null, + @SerialName("wco_key") val wcoKey: String? = null, + @SerialName("wco_cipher_key") val wcocipher: String? = null, ) @Serializable data class NewExternalKeys( - @JsonProperty("cipherKey") @SerialName("cipherKey") val cipherkey: String? = null, - @JsonProperty("encryptKey") @SerialName("encryptKey") val encryptKey: String? = null, - @JsonProperty("mainKey") @SerialName("mainKey") val mainKey: String? = null, + @SerialName("cipherKey") val cipherkey: String? = null, + @SerialName("encryptKey") val encryptKey: String? = null, + @SerialName("mainKey") val mainKey: String? = null, ) private var keys: ExternalKeys? = null diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt index 749b03eafd1..888117aff0a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.metaproviders -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.apis import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull import com.lagradost.cloudstream3.ErrorLoadingException @@ -37,8 +36,8 @@ class CrossTmdbProvider : TmdbProvider() { @Serializable data class CrossMetaData( - @JsonProperty("isSuccess") @SerialName("isSuccess") val isSuccess: Boolean, - @JsonProperty("movies") @SerialName("movies") val movies: List>? = null, + @SerialName("isSuccess") val isSuccess: Boolean, + @SerialName("movies") val movies: List>? = null, ) override suspend fun loadLinks( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/MyDramaList.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/MyDramaList.kt index 9a0d68d542e..5556d48964a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/MyDramaList.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/MyDramaList.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.metaproviders -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.BuildConfig import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.Actor @@ -215,67 +214,67 @@ abstract class MyDramaListAPI : MainAPI() { @Serializable data class Data( - @JsonProperty("type") @SerialName("type") val type: TvType? = null, - @JsonProperty("media") @SerialName("media") val media: MediaSummary? = null, + @SerialName("type") val type: TvType? = null, + @SerialName("media") val media: MediaSummary? = null, ) @Serializable data class MediaSummary( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("original_title") @SerialName("original_title") val originalTitle: String, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Double? = null, - @JsonProperty("permalink") @SerialName("permalink") val permalink: String? = null, - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("media_type") @SerialName("media_type") val mediaType: String? = null, - @JsonProperty("country") @SerialName("country") val country: String? = null, - @JsonProperty("language") @SerialName("language") val language: String? = null, - @JsonProperty("images") @SerialName("images") val images: Images, + @SerialName("id") val id: Long, + @SerialName("title") val title: String, + @SerialName("original_title") val originalTitle: String, + @SerialName("year") val year: Int? = null, + @SerialName("rating") val rating: Double? = null, + @SerialName("permalink") val permalink: String? = null, + @SerialName("type") val type: String, + @SerialName("media_type") val mediaType: String? = null, + @SerialName("country") val country: String? = null, + @SerialName("language") val language: String? = null, + @SerialName("images") val images: Images, ) @Serializable data class Images( - @JsonProperty("thumb") @SerialName("thumb") val thumb: String? = null, - @JsonProperty("medium") @SerialName("medium") val medium: String? = null, - @JsonProperty("poster") @SerialName("poster") val poster: String? = null, + @SerialName("thumb") val thumb: String? = null, + @SerialName("medium") val medium: String? = null, + @SerialName("poster") val poster: String? = null, ) @Serializable data class Media( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("slug") @SerialName("slug") val slug: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("original_title") @SerialName("original_title") val originalTitle: String, - @JsonProperty("year") @SerialName("year") val mediaYear: Int, - @JsonProperty("episodes") @SerialName("episodes") val episodes: Long, - @JsonProperty("rating") @SerialName("rating") val mediaRating: Double, - @JsonProperty("permalink") @SerialName("permalink") val permalink: String? = null, - @JsonProperty("synopsis") @SerialName("synopsis") val synopsis: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("media_type") @SerialName("media_type") val mediaType: String? = null, - @JsonProperty("country") @SerialName("country") val country: String? = null, - @JsonProperty("language") @SerialName("language") val language: String? = null, - @JsonProperty("images") @SerialName("images") val images: Images, - @JsonProperty("alt_titles") @SerialName("alt_titles") val altTitles: List? = null, - @JsonProperty("votes") @SerialName("votes") val votes: Long? = null, - @JsonProperty("aired_start") @SerialName("aired_start") val airedStart: String? = null, - @JsonProperty("released") @SerialName("released") val released: String? = null, - @JsonProperty("release_dates_fmt") @SerialName("release_dates_fmt") val releaseDatesFmt: String, - @JsonProperty("genres") @SerialName("genres") val genres: List? = null, - @JsonProperty("trailer") @SerialName("trailer") val trailer: Trailer?, - @JsonProperty("watchers") @SerialName("watchers") val watchers: Long, - @JsonProperty("ranked") @SerialName("ranked") val ranked: Long, - @JsonProperty("popularity") @SerialName("popularity") val popularity: Long, - @JsonProperty("runtime") @SerialName("runtime") val runtime: Long, - @JsonProperty("reviews_count") @SerialName("reviews_count") val reviewsCount: Long, - @JsonProperty("recs_count") @SerialName("recs_count") val recsCount: Long, - @JsonProperty("comments_count") @SerialName("comments_count") val commentsCount: Long, - @JsonProperty("certification") @SerialName("certification") val certification: String, - @JsonProperty("status") @SerialName("status") val status: String, - @JsonProperty("enable_ads") @SerialName("enable_ads") val enableAds: Boolean, - @JsonProperty("sources") @SerialName("sources") val sources: List, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: Long, + @SerialName("id") val id: Long, + @SerialName("slug") val slug: String, + @SerialName("title") val title: String, + @SerialName("original_title") val originalTitle: String, + @SerialName("year") val mediaYear: Int, + @SerialName("episodes") val episodes: Long, + @SerialName("rating") val mediaRating: Double, + @SerialName("permalink") val permalink: String? = null, + @SerialName("synopsis") val synopsis: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("media_type") val mediaType: String? = null, + @SerialName("country") val country: String? = null, + @SerialName("language") val language: String? = null, + @SerialName("images") val images: Images, + @SerialName("alt_titles") val altTitles: List? = null, + @SerialName("votes") val votes: Long? = null, + @SerialName("aired_start") val airedStart: String? = null, + @SerialName("released") val released: String? = null, + @SerialName("release_dates_fmt") val releaseDatesFmt: String, + @SerialName("genres") val genres: List? = null, + @SerialName("trailer") val trailer: Trailer?, + @SerialName("watchers") val watchers: Long, + @SerialName("ranked") val ranked: Long, + @SerialName("popularity") val popularity: Long, + @SerialName("runtime") val runtime: Long, + @SerialName("reviews_count") val reviewsCount: Long, + @SerialName("recs_count") val recsCount: Long, + @SerialName("comments_count") val commentsCount: Long, + @SerialName("certification") val certification: String, + @SerialName("status") val status: String, + @SerialName("enable_ads") val enableAds: Boolean, + @SerialName("sources") val sources: List, + @SerialName("updated_at") val updatedAt: Long, ) { suspend fun fetchCredits(): List { val actors = app.get( @@ -353,104 +352,104 @@ abstract class MyDramaListAPI : MainAPI() { @Serializable data class Genre( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("slug") @SerialName("slug") val slug: String, + @SerialName("id") val id: Long, + @SerialName("name") val name: String, + @SerialName("slug") val slug: String, ) @Serializable data class Tag( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("slug") @SerialName("slug") val slug: String, + @SerialName("id") val id: Long, + @SerialName("name") val name: String, + @SerialName("slug") val slug: String, ) @Serializable data class Source( - @JsonProperty("xid") @SerialName("xid") val xid: String, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("source") @SerialName("source") val source: String, - @JsonProperty("source_type") @SerialName("source_type") val sourceType: String, - @JsonProperty("link") @SerialName("link") val link: String, - @JsonProperty("image") @SerialName("image") val image: String, + @SerialName("xid") val xid: String, + @SerialName("name") val name: String, + @SerialName("source") val source: String, + @SerialName("source_type") val sourceType: String, + @SerialName("link") val link: String, + @SerialName("image") val image: String, ) @Serializable data class Trailer( - @JsonProperty("id") @SerialName("id") val id: Long? = null, + @SerialName("id") val id: Long? = null, ) @Serializable data class Credits( - @JsonProperty("cast") @SerialName("cast") val cast: List, - @JsonProperty("crew") @SerialName("crew") val crew: List, + @SerialName("cast") val cast: List, + @SerialName("crew") val crew: List, ) @Serializable data class Cast( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("slug") @SerialName("slug") val slug: String, - @JsonProperty("images") @SerialName("images") val images: Images, - @JsonProperty("character_name") @SerialName("character_name") val characterName: String, - @JsonProperty("role") @SerialName("role") val role: String, + @SerialName("id") val id: Long, + @SerialName("name") val name: String, + @SerialName("url") val url: String, + @SerialName("slug") val slug: String, + @SerialName("images") val images: Images, + @SerialName("character_name") val characterName: String, + @SerialName("role") val role: String, ) @Serializable data class Crew( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("slug") @SerialName("slug") val slug: String, - @JsonProperty("images") @SerialName("images") val images: Images, - @JsonProperty("job") @SerialName("job") val job: String, + @SerialName("id") val id: Long, + @SerialName("name") val name: String, + @SerialName("slug") val slug: String, + @SerialName("images") val images: Images, + @SerialName("job") val job: String, ) @Serializable data class ShowEpisodesItem( - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("release_date") @SerialName("release_date") val releaseDate: String, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List, - @JsonProperty("timezone") @SerialName("timezone") val timezone: String, - @JsonProperty("total") @SerialName("total") val total: Int, + @SerialName("name") val name: String, + @SerialName("release_date") val releaseDate: String, + @SerialName("episodes") val episodes: List, + @SerialName("timezone") val timezone: String, + @SerialName("total") val total: Int, ) @Serializable data class ShowEpisode( - @JsonProperty("id") @SerialName("id") val id: Int, - @JsonProperty("episode_number") @SerialName("episode_number") val episodeNumber: Int, - @JsonProperty("rating") @SerialName("rating") val rating: Double, - @JsonProperty("votes") @SerialName("votes") val votes: Int, - @JsonProperty("released_at") @SerialName("released_at") val releasedAt: String, + @SerialName("id") val id: Int, + @SerialName("episode_number") val episodeNumber: Int, + @SerialName("rating") val rating: Double, + @SerialName("votes") val votes: Int, + @SerialName("released_at") val releasedAt: String, ) @Serializable data class TrailerRoot( - @JsonProperty("trailer") @SerialName("trailer") val trailer: TrailerNode, + @SerialName("trailer") val trailer: TrailerNode, ) @Serializable data class TrailerNode( - @JsonProperty("trailer") @SerialName("trailer") val trailerDetails: TrailerDetails, + @SerialName("trailer") val trailerDetails: TrailerDetails, ) @Serializable data class TrailerDetails( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("source") @SerialName("source") val source: String, + @SerialName("id") val id: Long, + @SerialName("source") val source: String, ) @Serializable data class LinkData( - @JsonProperty("id") @SerialName("id") val id: Long? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("season") @SerialName("season") val season: Int? = null, - @JsonProperty("episode") @SerialName("episode") val episode: Int? = null, - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("orgTitle") @SerialName("orgTitle") val orgTitle: String? = null, - @JsonProperty("lastSeason") @SerialName("lastSeason") val lastSeason: Int? = null, - @JsonProperty("date") @SerialName("date") val date: String? = null, - @JsonProperty("airedDate") @SerialName("airedDate") val airedDate: String? = null, + @SerialName("id") val id: Long? = null, + @SerialName("type") val type: String? = null, + @SerialName("season") val season: Int? = null, + @SerialName("episode") val episode: Int? = null, + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("orgTitle") val orgTitle: String? = null, + @SerialName("lastSeason") val lastSeason: Int? = null, + @SerialName("date") val date: String? = null, + @SerialName("airedDate") val airedDate: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt index 6011e14ea1d..c9cab332d1a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt @@ -1,7 +1,5 @@ package com.lagradost.cloudstream3.metaproviders -import com.fasterxml.jackson.annotation.JsonAlias -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.BuildConfig import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.Actor @@ -306,162 +304,162 @@ open class TraktProvider : MainAPI() { @Serializable data class Data( - @JsonProperty("type") @SerialName("type") val type: TvType? = null, - @JsonProperty("mediaDetails") @SerialName("mediaDetails") val mediaDetails: MediaDetails? = null, + @SerialName("type") val type: TvType? = null, + @SerialName("mediaDetails") val mediaDetails: MediaDetails? = null, ) @Serializable data class MediaSummary( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("ids") @SerialName("ids") val ids: Ids? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Double? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("ids") val ids: Ids? = null, + @SerialName("rating") val rating: Double? = null, + @SerialName("images") val images: Images? = null, ) @OptIn(ExperimentalSerializationApi::class) // JsonNames is an experimental annotation for now @Serializable data class MediaDetails( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("ids") @SerialName("ids") val ids: Ids? = null, - @JsonProperty("tagline") @SerialName("tagline") val tagline: String? = null, - @JsonProperty("overview") @SerialName("overview") val overview: String? = null, - @JsonProperty("released") @SerialName("released") val released: String? = null, - @JsonProperty("runtime") @SerialName("runtime") val runtime: Int? = null, - @JsonProperty("country") @SerialName("country") val country: String? = null, - @JsonProperty("updatedAt") @SerialName("updatedAt") val updatedAt: String? = null, - @JsonProperty("trailer") @SerialName("trailer") val trailer: String? = null, - @JsonProperty("homepage") @SerialName("homepage") val homepage: String? = null, - @JsonProperty("status") @SerialName("status") val status: String? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Double? = null, - @JsonProperty("votes") @SerialName("votes") val votes: Long? = null, - @JsonProperty("comment_count") @SerialName("comment_count") val commentCount: Long? = null, - @JsonProperty("language") @SerialName("language") val language: String? = null, - @JsonProperty("languages") @SerialName("languages") val languages: List? = null, - @JsonProperty("available_translations") @SerialName("available_translations") val availableTranslations: List? = null, - @JsonProperty("genres") @SerialName("genres") val genres: List? = null, - @JsonProperty("certification") @SerialName("certification") val certification: String? = null, - @JsonProperty("aired_episodes") @SerialName("aired_episodes") val airedEpisodes: Int? = null, - @JsonProperty("first_aired") @SerialName("first_aired") val firstAired: String? = null, - @JsonProperty("airs") @SerialName("airs") val airs: Airs? = null, - @JsonProperty("network") @SerialName("network") val network: String? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, - @JsonProperty("media") @JsonAlias("movie", "show") @SerialName("media") @JsonNames("movie", "show") val media: MediaSummary? = null, + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("ids") val ids: Ids? = null, + @SerialName("tagline") val tagline: String? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("released") val released: String? = null, + @SerialName("runtime") val runtime: Int? = null, + @SerialName("country") val country: String? = null, + @SerialName("updatedAt") val updatedAt: String? = null, + @SerialName("trailer") val trailer: String? = null, + @SerialName("homepage") val homepage: String? = null, + @SerialName("status") val status: String? = null, + @SerialName("rating") val rating: Double? = null, + @SerialName("votes") val votes: Long? = null, + @SerialName("comment_count") val commentCount: Long? = null, + @SerialName("language") val language: String? = null, + @SerialName("languages") val languages: List? = null, + @SerialName("available_translations") val availableTranslations: List? = null, + @SerialName("genres") val genres: List? = null, + @SerialName("certification") val certification: String? = null, + @SerialName("aired_episodes") val airedEpisodes: Int? = null, + @SerialName("first_aired") val firstAired: String? = null, + @SerialName("airs") val airs: Airs? = null, + @SerialName("network") val network: String? = null, + @SerialName("images") val images: Images? = null, + @JsonNames("movie", "show") val media: MediaSummary? = null, ) @Serializable data class Airs( - @JsonProperty("day") @SerialName("day") val day: String? = null, - @JsonProperty("time") @SerialName("time") val time: String? = null, - @JsonProperty("timezone") @SerialName("timezone") val timezone: String? = null, + @SerialName("day") val day: String? = null, + @SerialName("time") val time: String? = null, + @SerialName("timezone") val timezone: String? = null, ) @Serializable data class Ids( - @JsonProperty("trakt") @SerialName("trakt") val trakt: Int? = null, - @JsonProperty("slug") @SerialName("slug") val slug: String? = null, - @JsonProperty("tvdb") @SerialName("tvdb") val tvdb: Int? = null, - @JsonProperty("imdb") @SerialName("imdb") val imdb: String? = null, - @JsonProperty("tmdb") @SerialName("tmdb") val tmdb: Int? = null, - @JsonProperty("tvrage") @SerialName("tvrage") val tvrage: String? = null, + @SerialName("trakt") val trakt: Int? = null, + @SerialName("slug") val slug: String? = null, + @SerialName("tvdb") val tvdb: Int? = null, + @SerialName("imdb") val imdb: String? = null, + @SerialName("tmdb") val tmdb: Int? = null, + @SerialName("tvrage") val tvrage: String? = null, ) @Serializable data class Images( - @JsonProperty("poster") @SerialName("poster") val poster: List? = null, - @JsonProperty("fanart") @SerialName("fanart") val fanart: List? = null, - @JsonProperty("logo") @SerialName("logo") val logo: List? = null, - @JsonProperty("clearart") @SerialName("clearart") val clearArt: List? = null, - @JsonProperty("banner") @SerialName("banner") val banner: List? = null, - @JsonProperty("thumb") @SerialName("thumb") val thumb: List? = null, - @JsonProperty("screenshot") @SerialName("screenshot") val screenshot: List? = null, - @JsonProperty("headshot") @SerialName("headshot") val headshot: List? = null, + @SerialName("poster") val poster: List? = null, + @SerialName("fanart") val fanart: List? = null, + @SerialName("logo") val logo: List? = null, + @SerialName("clearart") val clearArt: List? = null, + @SerialName("banner") val banner: List? = null, + @SerialName("thumb") val thumb: List? = null, + @SerialName("screenshot") val screenshot: List? = null, + @SerialName("headshot") val headshot: List? = null, ) @Serializable data class People( - @JsonProperty("cast") @SerialName("cast") val cast: List? = null, + @SerialName("cast") val cast: List? = null, ) @Serializable data class Cast( - @JsonProperty("character") @SerialName("character") val character: String? = null, - @JsonProperty("characters") @SerialName("characters") val characters: List? = null, - @JsonProperty("episode_count") @SerialName("episode_count") val episodeCount: Long? = null, - @JsonProperty("person") @SerialName("person") val person: Person? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, + @SerialName("character") val character: String? = null, + @SerialName("characters") val characters: List? = null, + @SerialName("episode_count") val episodeCount: Long? = null, + @SerialName("person") val person: Person? = null, + @SerialName("images") val images: Images? = null, ) @Serializable data class Person( - @JsonProperty("name") @SerialName("name") val name: String? = null, - @JsonProperty("ids") @SerialName("ids") val ids: Ids? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, + @SerialName("name") val name: String? = null, + @SerialName("ids") val ids: Ids? = null, + @SerialName("images") val images: Images? = null, ) @Serializable data class Seasons( - @JsonProperty("aired_episodes") @SerialName("aired_episodes") val airedEpisodes: Int? = null, - @JsonProperty("episode_count") @SerialName("episode_count") val episodeCount: Int? = null, - @JsonProperty("episodes") @SerialName("episodes") val episodes: List? = null, - @JsonProperty("first_aired") @SerialName("first_aired") val firstAired: String? = null, - @JsonProperty("ids") @SerialName("ids") val ids: Ids? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, - @JsonProperty("network") @SerialName("network") val network: String? = null, - @JsonProperty("number") @SerialName("number") val number: Int? = null, - @JsonProperty("overview") @SerialName("overview") val overview: String? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Double? = null, - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String? = null, - @JsonProperty("votes") @SerialName("votes") val votes: Int? = null, + @SerialName("aired_episodes") val airedEpisodes: Int? = null, + @SerialName("episode_count") val episodeCount: Int? = null, + @SerialName("episodes") val episodes: List? = null, + @SerialName("first_aired") val firstAired: String? = null, + @SerialName("ids") val ids: Ids? = null, + @SerialName("images") val images: Images? = null, + @SerialName("network") val network: String? = null, + @SerialName("number") val number: Int? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("rating") val rating: Double? = null, + @SerialName("title") val title: String? = null, + @SerialName("updated_at") val updatedAt: String? = null, + @SerialName("votes") val votes: Int? = null, ) @Serializable data class TraktEpisode( - @JsonProperty("available_translations") @SerialName("available_translations") val availableTranslations: List? = null, - @JsonProperty("comment_count") @SerialName("comment_count") val commentCount: Int? = null, - @JsonProperty("episode_type") @SerialName("episode_type") val episodeType: String? = null, - @JsonProperty("first_aired") @SerialName("first_aired") val firstAired: String? = null, - @JsonProperty("ids") @SerialName("ids") val ids: Ids? = null, - @JsonProperty("images") @SerialName("images") val images: Images? = null, - @JsonProperty("number") @SerialName("number") val number: Int? = null, - @JsonProperty("number_abs") @SerialName("number_abs") val numberAbs: Int? = null, - @JsonProperty("overview") @SerialName("overview") val overview: String? = null, - @JsonProperty("rating") @SerialName("rating") val rating: Double? = null, - @JsonProperty("runtime") @SerialName("runtime") val runtime: Int? = null, - @JsonProperty("season") @SerialName("season") val season: Int? = null, - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("updated_at") @SerialName("updated_at") val updatedAt: String? = null, - @JsonProperty("votes") @SerialName("votes") val votes: Int? = null, + @SerialName("available_translations") val availableTranslations: List? = null, + @SerialName("comment_count") val commentCount: Int? = null, + @SerialName("episode_type") val episodeType: String? = null, + @SerialName("first_aired") val firstAired: String? = null, + @SerialName("ids") val ids: Ids? = null, + @SerialName("images") val images: Images? = null, + @SerialName("number") val number: Int? = null, + @SerialName("number_abs") val numberAbs: Int? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("rating") val rating: Double? = null, + @SerialName("runtime") val runtime: Int? = null, + @SerialName("season") val season: Int? = null, + @SerialName("title") val title: String? = null, + @SerialName("updated_at") val updatedAt: String? = null, + @SerialName("votes") val votes: Int? = null, ) @Serializable data class LinkData( - @JsonProperty("id") @SerialName("id") val id: Int? = null, - @JsonProperty("trakt_id") @SerialName("trakt_id") val traktId: Int? = null, - @JsonProperty("trakt_slug") @SerialName("trakt_slug") val traktSlug: String? = null, - @JsonProperty("tmdb_id") @SerialName("tmdb_id") val tmdbId: Int? = null, - @JsonProperty("imdb_id") @SerialName("imdb_id") val imdbId: String? = null, - @JsonProperty("tvdb_id") @SerialName("tvdb_id") val tvdbId: Int? = null, - @JsonProperty("tvrage_id") @SerialName("tvrage_id") val tvrageId: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("season") @SerialName("season") val season: Int? = null, - @JsonProperty("episode") @SerialName("episode") val episode: Int? = null, - @JsonProperty("ani_id") @SerialName("ani_id") val aniId: String? = null, - @JsonProperty("anime_id") @SerialName("anime_id") val animeId: String? = null, - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("year") @SerialName("year") val year: Int? = null, - @JsonProperty("org_title") @SerialName("org_title") val orgTitle: String? = null, - @JsonProperty("is_anime") @SerialName("is_anime") val isAnime: Boolean = false, - @JsonProperty("aired_year") @SerialName("aired_year") val airedYear: Int? = null, - @JsonProperty("last_season") @SerialName("last_season") val lastSeason: Int? = null, - @JsonProperty("eps_title") @SerialName("eps_title") val epsTitle: String? = null, - @JsonProperty("jp_title") @SerialName("jp_title") val jpTitle: String? = null, - @JsonProperty("date") @SerialName("date") val date: String? = null, - @JsonProperty("aired_date") @SerialName("aired_date") val airedDate: String? = null, - @JsonProperty("is_asian") @SerialName("is_asian") val isAsian: Boolean = false, - @JsonProperty("is_bollywood") @SerialName("is_bollywood") val isBollywood: Boolean = false, - @JsonProperty("is_cartoon") @SerialName("is_cartoon") val isCartoon: Boolean = false, + @SerialName("id") val id: Int? = null, + @SerialName("trakt_id") val traktId: Int? = null, + @SerialName("trakt_slug") val traktSlug: String? = null, + @SerialName("tmdb_id") val tmdbId: Int? = null, + @SerialName("imdb_id") val imdbId: String? = null, + @SerialName("tvdb_id") val tvdbId: Int? = null, + @SerialName("tvrage_id") val tvrageId: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("season") val season: Int? = null, + @SerialName("episode") val episode: Int? = null, + @SerialName("ani_id") val aniId: String? = null, + @SerialName("anime_id") val animeId: String? = null, + @SerialName("title") val title: String? = null, + @SerialName("year") val year: Int? = null, + @SerialName("org_title") val orgTitle: String? = null, + @SerialName("is_anime") val isAnime: Boolean = false, + @SerialName("aired_year") val airedYear: Int? = null, + @SerialName("last_season") val lastSeason: Int? = null, + @SerialName("eps_title") val epsTitle: String? = null, + @SerialName("jp_title") val jpTitle: String? = null, + @SerialName("date") val date: String? = null, + @SerialName("aired_date") val airedDate: String? = null, + @SerialName("is_asian") val isAsian: Boolean = false, + @SerialName("is_bollywood") val isBollywood: Boolean = false, + @SerialName("is_cartoon") val isCartoon: Boolean = false, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/plugins/BasePlugin.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/plugins/BasePlugin.kt index 6102f6c56a8..ede5033e2c2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/plugins/BasePlugin.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/plugins/BasePlugin.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.plugins -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.MainAPI import com.lagradost.cloudstream3.utils.ExtractorApi @@ -63,16 +62,16 @@ abstract class BasePlugin { @Serializable class Manifest { - @JsonProperty("name") @SerialName("name") + @SerialName("name") var name: String? = null - @JsonProperty("pluginClassName") @SerialName("pluginClassName") + @SerialName("pluginClassName") var pluginClassName: String? = null - @JsonProperty("requiresResources") @SerialName("requiresResources") + @SerialName("requiresResources") var requiresResources: Boolean = false - @JsonProperty("version") @SerialName("version") + @SerialName("version") var version: Int? = null } } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index 4ee6b217c12..fd84b65111f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.utils -import com.fasterxml.jackson.annotation.JsonIgnore import com.fleeksoft.ksoup.Ksoup import com.lagradost.cloudstream3.AudioFile import com.lagradost.cloudstream3.IDownloadableMinimum @@ -696,8 +695,8 @@ constructor( /** List of separate audio tracks that can be merged with this video */ @SerialName("audioTracks") open var audioTracks: List = emptyList(), ) : IDownloadableMinimum { - @get:JsonIgnore val isM3u8: Boolean get() = type == ExtractorLinkType.M3U8 - @get:JsonIgnore val isDash: Boolean get() = type == ExtractorLinkType.DASH + val isM3u8: Boolean get() = type == ExtractorLinkType.M3U8 + val isDash: Boolean get() = type == ExtractorLinkType.DASH // Cached video size @Transient private var videoSize: Long? = null @@ -719,7 +718,6 @@ constructor( return videoSize } - @JsonIgnore fun getAllHeaders(): Map { if (referer.isBlank()) { return headers From d397273a2914d8035a3587281a6f5b9f61789b56 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:49:48 -0600 Subject: [PATCH 002/114] - --- .../lagradost/cloudstream3/utils/AppUtils.kt | 75 +++++-------------- 1 file changed, 19 insertions(+), 56 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt index 26d5daa6ffc..c61787c6da1 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt @@ -1,9 +1,7 @@ package com.lagradost.cloudstream3.utils -import com.fasterxml.jackson.module.kotlin.readValue import com.lagradost.cloudstream3.InternalAPI import com.lagradost.cloudstream3.json -import com.lagradost.cloudstream3.mapper import com.lagradost.cloudstream3.mvvm.debugPrint import com.lagradost.cloudstream3.mvvm.logError import kotlinx.serialization.ExperimentalSerializationApi @@ -24,21 +22,13 @@ object AppUtils { @InternalAPI fun Any.toJsonLiteralImpl(serializer: KSerializer?): String { - var fallbackTrace: String? = null - if (serializer != null) { - try { - debugPrint { "AppUtils/toJsonLiteral: using kotlinx serialization for ${this::class.qualifiedName}" } - return json.encodeToString(serializer, this) - } catch (e: SerializationException) { - logError(e) - fallbackTrace = e.stackTraceToString() - debugPrint { "AppUtils/toJsonLiteral: kotlinx failed, falling back to Jackson for ${this::class.qualifiedName}" } - } - } else { - fallbackTrace = Exception().stackTraceToString() + if (serializer == null) { + val e = Exception("No serializer found for ${this::class.qualifiedName}") + logError(e) + throw e } - debugPrint { "AppUtils/toJsonLiteral: using Jackson for ${this::class.qualifiedName}\n$fallbackTrace" } - return mapper.writeValueAsString(this) + debugPrint { "AppUtils/toJsonLiteral: using kotlinx serialization for ${this::class.qualifiedName}" } + return json.encodeToString(serializer, this) } /** Runtime lookup version, subject to type erasure for generic types. */ @@ -64,21 +54,14 @@ object AppUtils { @InternalAPI fun parseJson(value: String, kClass: KClass): T { val serializer = kClass.serializerOrNull() ?: json.serializersModule.getContextual(kClass) - var fallbackTrace: String? = null - if (serializer != null) { - try { - debugPrint { "AppUtils/parseJson(kClass): using kotlinx serialization for ${kClass.qualifiedName}" } - return json.decodeFromString(serializer, value) - } catch (e: SerializationException) { - logError(e) - fallbackTrace = e.stackTraceToString() - debugPrint { "AppUtils/parseJson(kClass): kotlinx failed, falling back to Jackson for ${kClass.qualifiedName}" } - } - } else { - fallbackTrace = Exception().stackTraceToString() + if (serializer == null) { + val e = Exception("No serializer found for ${kClass.qualifiedName}") + logError(e) + throw e } - debugPrint { "AppUtils/parseJson(kClass): using Jackson for ${kClass.qualifiedName}\n$fallbackTrace" } - return mapper.readValue(value, kClass.java) + debugPrint { "AppUtils/parseJson(kClass): using kotlinx serialization for ${kClass.qualifiedName}" } + @Suppress("UNCHECKED_CAST") + return json.decodeFromString(serializer, value) as T } // This is inlined code and can easily cause breakage in extensions! @@ -88,34 +71,14 @@ object AppUtils { .recoverCatching { json.serializersModule.getContextual(T::class) } .getOrNull() - var fallbackTrace: String? = null - if (serializer != null) { - try { - debugPrint { "AppUtils/parseJson: using kotlinx serialization for ${T::class.qualifiedName}" } - return json.decodeFromString(serializer, value) - } catch (e: SerializationException) { - logError(e) - fallbackTrace = e.stackTraceToString() - debugPrint { "AppUtils/parseJson: kotlinx failed, falling back to Jackson for ${T::class.qualifiedName}" } - } catch (e: Throwable) { - fallbackTrace = e.stackTraceToString() - debugPrint { "AppUtils/parseJson: unexpected error for ${T::class.qualifiedName}, falling back to Jackson" } - } - } else { - fallbackTrace = Exception().stackTraceToString() + if (serializer == null) { + val e = Exception("No serializer found for ${T::class.qualifiedName}") + logError(e) + throw e } - debugPrint { "AppUtils/parseJson: using Jackson for ${T::class.qualifiedName}\n$fallbackTrace" } - return mapper.readValue(value) - } - @Deprecated( - "This overload was only ever used for BasePlugin.Manifest which has since been migrated. " + - "No other code should be using this. Use reader.readText() and call parseJson(String) instead.", - level = DeprecationLevel.ERROR, - replaceWith = ReplaceWith("parseJson(reader.readText())") - ) - inline fun parseJson(reader: java.io.Reader, valueType: Class): T { - return mapper.readValue(reader, valueType) + debugPrint { "AppUtils/parseJson: using kotlinx serialization for ${T::class.qualifiedName}" } + return json.decodeFromString(serializer, value) } inline fun tryParseJson(value: String?): T? { From d234902eceb276d21098e644795e82e32d3b1d72 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:51:39 -0600 Subject: [PATCH 003/114] Hlsplaylistparser kotlin --- gradle/libs.versions.toml | 2 + library/build.gradle.kts | 1 + .../cloudstream3/utils/HlsPlaylistParser.kt | 60 +++++++++++-------- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f6141942aa0..6efb34a5262 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -31,6 +31,7 @@ kotlinxAtomicfu = "0.33.0" kotlinxCollectionsImmutable = "0.4.0" kotlinxCoroutinesCore = "1.11.0" kotlinxDatetime = "0.8.0" +kotlinxIOCore = "0.9.1" kotlinxSerializationJson = "1.11.0" ksoup = "0.2.6" ktor = "3.5.0" @@ -97,6 +98,7 @@ kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "k kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" } kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" } kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } +kotlinx-io-core = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.ref = "kotlinxIOCore" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } ksoup = { module = "com.fleeksoft.ksoup:ksoup", version.ref = "ksoup" } ktor-http = { module = "io.ktor:ktor-http", version.ref = "ktor" } diff --git a/library/build.gradle.kts b/library/build.gradle.kts index c158cad5013..e9173ac7390 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -60,6 +60,7 @@ kotlin { implementation(libs.kotlinx.atomicfu) implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.datetime) + implementation(libs.kotlinx.io.core) implementation(libs.kotlinx.serialization.json) // JSON Parser implementation(libs.ksoup) // HTML Parser implementation(libs.ktor.http) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt index cd5d752b3ab..760f6090959 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalUuidApi::class) + /* * Copyright (C) 2016 The Android Open Source Project * @@ -21,9 +23,11 @@ package com.lagradost.cloudstream3.utils import com.lagradost.cloudstream3.base64DecodeArray import io.ktor.http.Url -import java.io.IOException -import java.nio.ByteBuffer -import java.util.UUID +import kotlinx.io.Buffer +import kotlinx.io.IOException +import kotlinx.io.readByteArray +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid @Suppress("unused") object HlsPlaylistParser { @@ -186,13 +190,13 @@ object HlsPlaylistParser { data class SchemeData( /** - * The {@link UUID} of the DRM scheme, or {@link C#UUID_NIL} if the data is universal (i.e. + * The [Uuid] of the DRM scheme, or [C.UUID_NIL] if the data is universal (i.e. * applies to all schemes). */ - val uuid: UUID, + val uuid: Uuid, /** The URL of the server to which license requests should be made. May be null if unknown. */ val licenseServerUrl: String? = null, - /** The mimeType of {@link #data}. */ + /** The mimeType of [data]. */ val mimeType: String, /** The initialization data. May be null for scheme support checks only. */ val data: ByteArray @@ -534,29 +538,29 @@ object HlsPlaylistParser { object C { /** - * UUID for the ClearKey DRM scheme. + * [Uuid] for the ClearKey DRM scheme. * * * ClearKey is supported on Android devices running Android 5.0 (API Level 21) and up. */ - val CLEARKEY_UUID = UUID(-0x1d8e62a7567a4c37L, 0x781AB030AF78D30EL) + val CLEARKEY_UUID = Uuid.fromLongs(-0x1d8e62a7567a4c37L, 0x781AB030AF78D30EL) /** - * UUID for the Widevine DRM scheme. + * [Uuid] for the Widevine DRM scheme. * * * Widevine is supported on Android devices running Android 4.3 (API Level 18) and up. */ - val WIDEVINE_UUID = UUID(-0x121074568629b532L, -0x5c37d8232ae2de13L) + val WIDEVINE_UUID = Uuid.fromLongs(-0x121074568629b532L, -0x5c37d8232ae2de13L) /** - * UUID for the PlayReady DRM scheme. + * [Uuid] for the PlayReady DRM scheme. * * * PlayReady is supported on all AndroidTV devices. Note that most other Android devices do not * provide PlayReady support. */ - val PLAYREADY_UUID = UUID(-0x65fb0f8667bfbd7aL, -0x546d19a41f77a06bL) + val PLAYREADY_UUID = Uuid.fromLongs(-0x65fb0f8667bfbd7aL, -0x546d19a41f77a06bL) /** "cenc" scheme type name as defined in ISO/IEC 23001-7:2016. */ @@ -1066,7 +1070,7 @@ object HlsPlaylistParser { object PsshAtomUtil { fun buildPsshAtom( - systemId: UUID, keyIds: Array?, data: ByteArray? + systemId: Uuid, keyIds: Array?, data: ByteArray? ): ByteArray { val dataLength = data?.size ?: 0 var psshBoxLength: Int = @@ -1074,26 +1078,30 @@ object HlsPlaylistParser { if (keyIds != null) { psshBoxLength += 4 /* KID_count */ + (keyIds.size * 16) /* KIDs */ } - val psshBox: ByteBuffer = ByteBuffer.allocate(psshBoxLength) - psshBox.putInt(psshBoxLength) - psshBox.putInt(Mp4Box.TYPE_pssh) - psshBox.putInt(if (keyIds != null) 0x01000000 else 0 /* version=(buildV1Atom ? 1 : 0), flags=0 */) - psshBox.putLong(systemId.mostSignificantBits) - psshBox.putLong(systemId.leastSignificantBits) + val buffer = Buffer() + buffer.writeInt(psshBoxLength) + buffer.writeInt(Mp4Box.TYPE_pssh) + buffer.writeInt(if (keyIds != null) 0x01000000 else 0 /* version=(buildV1Atom ? 1 : 0), flags=0 */) + systemId.toLongs { mostSignificantBits, leastSignificantBits -> + buffer.writeLong(mostSignificantBits) + buffer.writeLong(leastSignificantBits) + } if (keyIds != null) { - psshBox.putInt(keyIds.size) + buffer.writeInt(keyIds.size) for (keyId in keyIds) { - psshBox.putLong(keyId.mostSignificantBits) - psshBox.putLong(keyId.leastSignificantBits) + keyId.toLongs { mostSignificantBits, leastSignificantBits -> + buffer.writeLong(mostSignificantBits) + buffer.writeLong(leastSignificantBits) + } } } if (data != null && data.size != 0) { - psshBox.putInt(data.size) - psshBox.put(data) + buffer.writeInt(data.size) + buffer.write(data) } else { - psshBox.putInt(0) + buffer.writeInt(0) } - return psshBox.array() + return buffer.readByteArray() } } From 90f9ad9f15aa28e1295085645bf60ccb4b287d82 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:55:37 -0600 Subject: [PATCH 004/114] Refactor Dailymotion extractor to use kotlinx.serialization --- .../cloudstream3/extractors/Dailymotion.kt | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt index 6089021a97d..78c506d07cd 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt @@ -1,15 +1,17 @@ package com.lagradost.cloudstream3.extractors -import com.google.gson.Gson import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.newSubtitleFile +import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.newExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLinkType import io.ktor.http.Url import io.ktor.http.decodeURLPart +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable class Geodailymotion : Dailymotion() { override val name = "GeoDailymotion" @@ -28,25 +30,25 @@ open class Dailymotion : ExtractorApi() { url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, - callback: (ExtractorLink) -> Unit + callback: (ExtractorLink) -> Unit, ) { val embedUrl = getEmbedUrl(url) ?: return val id = getVideoId(embedUrl) ?: return - val metaDataUrl = "$baseUrl/player/metadata/video/$id" - - val response = app.get(metaDataUrl, referer = embedUrl).text() - val gson = Gson() - val meta = gson.fromJson(response, MetaData::class.java) + val metadataUrl = "$baseUrl/player/metadata/video/$id" + val response = app.get(metadataUrl, referer = embedUrl).text + val meta = parseJson(response) meta.qualities?.get("auto")?.forEach { quality -> val videoUrl = quality.url if (!videoUrl.isNullOrEmpty() && videoUrl.contains(".m3u8")) { - callback.invoke(newExtractorLink( - name, - name, - videoUrl, - ExtractorLinkType.M3U8 - )) + callback.invoke( + newExtractorLink( + name, + name, + videoUrl, + ExtractorLinkType.M3U8, + ) + ) } } @@ -55,7 +57,7 @@ open class Dailymotion : ExtractorApi() { subtitleCallback( newSubtitleFile( subData.label, - subUrl + subUrl, ) ) } @@ -68,6 +70,7 @@ open class Dailymotion : ExtractorApi() { val videoId = url.substringAfter("video=") return "$baseUrl/embed/video/$videoId" } + return null } @@ -77,23 +80,27 @@ open class Dailymotion : ExtractorApi() { return if (id.matches(videoIdRegex)) id else null } - data class MetaData( - val qualities: Map>?, - val subtitles: SubtitlesWrapper? + @Serializable + data class Metadata( + @SerialName("qualities") val qualities: Map>?, + @SerialName("subtitles") val subtitles: SubtitlesWrapper?, ) + @Serializable data class Quality( - val type: String?, - val url: String? + @SerialName("type") val type: String?, + @SerialName("url") val url: String?, ) + @Serializable data class SubtitlesWrapper( - val enable: Boolean, - val data: Map? + @SerialName("enable") val enable: Boolean, + @SerialName("data") val data: Map?, ) + @Serializable data class SubtitleData( - val label: String, - val urls: List + @SerialName("label") val label: String, + @SerialName("urls") val urls: List, ) -} \ No newline at end of file +} From e9307b66d04f32738711001c4032ca52ad01d073 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:56:40 -0600 Subject: [PATCH 005/114] Update GDMirrorbot.kt --- .../cloudstream3/extractors/GDMirrorbot.kt | 108 ++++++++++-------- 1 file changed, 60 insertions(+), 48 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt index abffcc8797f..14a59fe89de 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt @@ -1,98 +1,95 @@ package com.lagradost.cloudstream3.extractors -import com.google.gson.JsonParser import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode +import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.loadExtractor import io.ktor.http.Url +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable -class Techinmind: GDMirrorbot() { - override var name = "Techinmind Cloud AIO" - override var mainUrl = "https://stream.techinmind.space" - override var requiresReferer = true +class Techinmind : GDMirrorbot() { + override val name = "Techinmind Cloud AIO" + override val mainUrl = "https://stream.techinmind.space" + override val requiresReferer = true } open class GDMirrorbot : ExtractorApi() { - override var name = "GDMirrorbot" - override var mainUrl = "https://gdmirrorbot.nl" + override val name = "GDMirrorbot" + override val mainUrl = "https://gdmirrorbot.nl" override val requiresReferer = true override suspend fun getUrl( url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, - callback: (ExtractorLink) -> Unit + callback: (ExtractorLink) -> Unit, ) { val (sid, host) = if (!url.contains("key=")) { Pair(url.substringAfterLast("embed/"), getBaseUrl(app.get(url).url)) } else { - var pageText = app.get(url).text() + var pageText = app.get(url).text val finalId = Regex("""FinalID\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) val myKey = Regex("""myKey\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) val idType = Regex("""idType\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) ?: "imdbid" val baseUrl = Regex("""let\s+baseUrl\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) val hostUrl = baseUrl?.let { getBaseUrl(it) } - if (finalId != null && myKey != null) { val apiUrl = if (url.contains("/tv/")) { val season = Regex("""/tv/\d+/(\d+)/""").find(url)?.groupValues?.get(1) ?: "1" val episode = Regex("""/tv/\d+/\d+/(\d+)""").find(url)?.groupValues?.get(1) ?: "1" "$mainUrl/myseriesapi?tmdbid=$finalId&season=$season&epname=$episode&key=$myKey" - } else { - "$mainUrl/mymovieapi?$idType=$finalId&key=$myKey" - } - pageText = app.get(apiUrl).text() + } else "$mainUrl/mymovieapi?$idType=$finalId&key=$myKey" + pageText = app.get(apiUrl).text } - val jsonElement = JsonParser.parseString(pageText) - if (!jsonElement.isJsonObject) return - val jsonObject = jsonElement.asJsonObject - + val embedData = tryParseJson(pageText) val embedId = url.substringAfterLast("/") - val sidValue = jsonObject["data"]?.asJsonArray - ?.takeIf { it.size() > 0 } - ?.get(0)?.asJsonObject - ?.get("fileslug")?.asString + val sidValue = embedData?.data?.firstOrNull()?.fileSlug ?.takeIf { it.isNotBlank() } ?: embedId - Pair(sidValue, hostUrl) } val postData = mapOf("sid" to sid) - val responseText = app.post("$host/embedhelper.php", data = postData).text() - - val rootElement = JsonParser.parseString(responseText) - if (!rootElement.isJsonObject) return - val root = rootElement.asJsonObject - - val siteUrls = root["siteUrls"]?.asJsonObject ?: return - val siteFriendlyNames = root["siteFriendlyNames"]?.asJsonObject - - val decodedMresult = when { - root["mresult"]?.isJsonObject == true -> root["mresult"]!!.asJsonObject - root["mresult"]?.isJsonPrimitive == true -> try { - base64Decode(root["mresult"]!!.asString) - .let { JsonParser.parseString(it).asJsonObject } - } catch (e: Exception) { - Log.e("GDMirrorbot", "Failed to decode mresult: $e") - return + val responseText = app.post("$host/embedhelper.php", data = postData).text + + val root = tryParseJson(responseText) ?: return + val siteUrls = root.siteUrls ?: return + val siteFriendlyNames = root.siteFriendlyNames + + // mresult can arrive as a JSON object or a base64-encoded string + val mresult: Map? = run { + val raw = responseText + .substringAfter("\"mresult\":") + .trimStart() + when { + raw.startsWith("\"") -> { + // base64-encoded string + tryParseJson>( + try { base64Decode(raw.trim('"')) } catch (_: Exception) { return } + ) + } + raw.startsWith("{") -> tryParseJson>( + raw.substringBefore("\n}").substringBefore(",\n\"").let { "$it" } + .let { responseText.substringAfter("\"mresult\":").trimStart() } + ) + else -> null } - else -> return } - siteUrls.keySet().intersect(decodedMresult.keySet()).forEach { key -> - val base = siteUrls[key]?.asString?.trimEnd('/') ?: return@forEach - val path = decodedMresult[key]?.asString?.trimStart('/') ?: return@forEach + if (mresult == null) return + siteUrls.keys.intersect(mresult.keys).forEach { key -> + val base = siteUrls[key]?.trimEnd('/') ?: return@forEach + val path = mresult[key]?.trimStart('/') ?: return@forEach val fullUrl = "$base/$path" - val friendlyName = siteFriendlyNames?.get(key)?.asString ?: key - + val friendlyName = siteFriendlyNames?.get(key) ?: key try { when (friendlyName) { - "StreamHG","EarnVids" -> VidHidePro().getUrl(fullUrl, referer, subtitleCallback, callback) + "StreamHG", "EarnVids" -> VidHidePro().getUrl(fullUrl, referer, subtitleCallback, callback) "RpmShare", "UpnShare", "StreamP2p" -> VidStack().getUrl(fullUrl, referer, subtitleCallback, callback) else -> loadExtractor(fullUrl, referer ?: mainUrl, subtitleCallback, callback) } @@ -105,5 +102,20 @@ open class GDMirrorbot : ExtractorApi() { private fun getBaseUrl(url: String): String { return Url(url).let { "${it.protocol.name}://${it.host}" } } -} + @Serializable + private data class EmbedData( + @SerialName("data") val data: List? = null, + ) + + @Serializable + private data class FileSlug( + @SerialName("fileslug") val fileSlug: String? = null, + ) + + @Serializable + private data class EmbedHelper( + @SerialName("siteUrls") val siteUrls: Map? = null, + @SerialName("siteFriendlyNames") val siteFriendlyNames: Map? = null, + ) +} From 016bce00f688950436aaaeecd195bba8cb6f3c07 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:57:40 -0600 Subject: [PATCH 006/114] Update --- .../lagradost/cloudstream3/extractors/Voe.kt | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt index 00ca90dc19f..3aa71e702a4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt @@ -1,16 +1,17 @@ package com.lagradost.cloudstream3.extractors -import com.google.gson.JsonObject -import com.google.gson.JsonParser import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode +import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.INFER_TYPE import com.lagradost.cloudstream3.utils.M3u8Helper import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.newExtractorLink +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable class Tubeless : Voe() { override val name = "Tubeless" @@ -19,12 +20,12 @@ class Tubeless : Voe() { class Simpulumlamerop : Voe() { override val name = "Simplum" - override var mainUrl = "https://simpulumlamerop.com" + override val mainUrl = "https://simpulumlamerop.com" } class Urochsunloath : Voe() { override val name = "Uroch" - override var mainUrl = "https://urochsunloath.com" + override val mainUrl = "https://urochsunloath.com" } class NathanFromSubject : Voe() { @@ -33,7 +34,7 @@ class NathanFromSubject : Voe() { class Yipsu : Voe() { override val name = "Yipsu" - override var mainUrl = "https://yip.su" + override val mainUrl = "https://yip.su" } class MetaGnathTuggers : Voe() { @@ -59,38 +60,43 @@ open class Voe : ExtractorApi() { url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, - callback: (ExtractorLink) -> Unit + callback: (ExtractorLink) -> Unit, ) { var res = app.get(url, referer = referer) - val redirectUrl = redirectRegex.find(res.document().data())?.groupValues?.get(1) + val redirectUrl = redirectRegex.find(res.document.data())?.groupValues?.get(1) if (redirectUrl != null) { res = app.get(redirectUrl, referer = referer) } - val encodedString = res.document().selectFirst("script[type=application/json]")?.data()?.trim()?.substringAfter("[\"")?.substringBeforeLast("\"]") + + val encodedString = res.document.selectFirst("script[type=application/json]") + ?.data()?.trim() + ?.substringAfter("[\"") + ?.substringBeforeLast("\"]") + if (encodedString == null) { println("encoded string not found.") return } - val decryptedJson = decryptF7(encodedString) - val m3u8 = decryptedJson.get("source")?.asString - val mp4 = decryptedJson.get("direct_access_url")?.asString + val decryptedJson = decryptF7(encodedString) + val m3u8 = decryptedJson?.source + val mp4 = decryptedJson?.directAccessUrl if (m3u8 != null) { M3u8Helper.generateM3u8( name, m3u8, "$mainUrl/", - headers = mapOf("Origin" to "$mainUrl/") + headers = mapOf("Origin" to "$mainUrl/"), ).forEach(callback) } - if (mp4!=null) - { + + if (mp4 != null) { callback.invoke( newExtractorLink( source = "$name MP4", name = "$name MP4", url = mp4, - INFER_TYPE + INFER_TYPE, ) { this.referer = url this.quality = Qualities.Unknown.value @@ -99,20 +105,19 @@ open class Voe : ExtractorApi() { } } - private fun decryptF7(p8: String): JsonObject { + private fun decryptF7(p8: String): VoeDecrypted? { return try { val vF = rot13(p8) val vF2 = replacePatterns(vF) val vF3 = removeUnderscores(vF2) val vF4 = base64Decode(vF3) val vF5 = charShift(vF4, 3) - val vF6 = reverse(vF5) + val vF6 = vF5.reversed() val vAtob = base64Decode(vF6) - - JsonParser.parseString(vAtob).asJsonObject + parseJson(vAtob) } catch (e: Exception) { println("Decryption error: ${e.message}") - JsonObject() + null } } @@ -139,6 +144,9 @@ open class Voe : ExtractorApi() { return input.map { (it.code - shift).toChar() }.joinToString("") } - private fun reverse(input: String): String = input.reversed() - + @Serializable + private data class VoeDecrypted( + @SerialName("source") val source: String? = null, + @SerialName("direct_access_url") val directAccessUrl: String? = null, + ) } From aa84acddeb2a7ee95e4240efa7be6fd3458bf3e9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:01:21 -0600 Subject: [PATCH 007/114] Update --- .../cloudstream3/utils/ExtractorApi.kt | 48 ------------------- 1 file changed, 48 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index fd84b65111f..ef4e8ff6747 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -324,8 +324,6 @@ import kotlinx.serialization.Transient import kotlin.coroutines.cancellation.CancellationException import kotlin.uuid.ExperimentalUuidApi import kotlin.uuid.Uuid -import kotlin.uuid.toJavaUuid -import kotlin.uuid.toKotlinUuid /** * For use in the ConcatenatingMediaSource. @@ -469,17 +467,6 @@ val WIDEVINE_DRM_UUID = Uuid.fromLongs(-0x121074568629b532L, -0x5c37d8232ae2de13 @Prerelease val PLAYREADY_DRM_UUID = Uuid.fromLongs(-0x65fb0f8667bfbd7aL, -0x546d19a41f77a06bL) -// Deprecate after next stable - -// @Deprecated("Use CLEARKEY_DRM_UUID", ReplaceWith("CLEARKEY_DRM_UUID"), level = DeprecationLevel.WARNING) -val CLEARKEY_UUID = CLEARKEY_DRM_UUID.toJavaUuid() - -// @Deprecated("Use WIDEVINE_DRM_UUID", ReplaceWith("WIDEVINE_DRM_UUID"), level = DeprecationLevel.WARNING) -val WIDEVINE_UUID = WIDEVINE_DRM_UUID.toJavaUuid() - -// @Deprecated("Use PLAYREADY_DRM_UUID", ReplaceWith("PLAYREADY_DRM_UUID"), level = DeprecationLevel.WARNING) -val PLAYREADY_UUID = PLAYREADY_DRM_UUID.toJavaUuid() - suspend fun newExtractorLink( source: String, name: String, @@ -501,33 +488,6 @@ suspend fun newExtractorLink( return builder } -// Deprecate after next stable -/* @Deprecated( - message = "Use Kotlin Uuid (kotlin.uuid.Uuid) instead of Java UUID.", - level = DeprecationLevel.WARNING, -) */ -suspend fun newDrmExtractorLink( - source: String, - name: String, - url: String, - type: ExtractorLinkType? = null, - uuid: java.util.UUID, - initializer: suspend DrmExtractorLink.() -> Unit = { } -): DrmExtractorLink { - @Suppress("DEPRECATION_ERROR") - val builder = - DrmExtractorLink( - source = source, - name = name, - url = url, - uuid = uuid.toKotlinUuid(), - type = type ?: INFER_TYPE - ) - - builder.initializer() - return builder -} - @Prerelease suspend fun newDrmExtractorLink( source: String, @@ -657,14 +617,6 @@ open class DrmExtractorLink private constructor( kty = kty, licenseUrl = licenseUrl, ) - - @Deprecated(message = "Use Kotlin Uuid", level = DeprecationLevel.HIDDEN) - fun setUuid(uuid: java.util.UUID) { - this.uuid = uuid.toKotlinUuid() - } - - @Deprecated(message = "Use Kotlin Uuid", level = DeprecationLevel.HIDDEN) - fun getUuid(): java.util.UUID = this.uuid.toJavaUuid() } /** Class holds extracted media info to be passed to the player. From ea403002648e29c41eafb5223c2416db60de47ee Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:02:21 -0600 Subject: [PATCH 008/114] Update --- .../metaproviders/TmdbProvider.kt | 595 ++++++++++-------- 1 file changed, 345 insertions(+), 250 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt index 77416fe8aa5..14b47e0899b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt @@ -1,8 +1,7 @@ package com.lagradost.cloudstream3.metaproviders -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable import com.lagradost.cloudstream3.Actor +import com.lagradost.cloudstream3.ActorData import com.lagradost.cloudstream3.Episode import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.HomePageList @@ -21,6 +20,8 @@ import com.lagradost.cloudstream3.SearchResponseList import com.lagradost.cloudstream3.TvSeriesLoadResponse import com.lagradost.cloudstream3.TvSeriesSearchResponse import com.lagradost.cloudstream3.TvType +import com.lagradost.cloudstream3.addDate +import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.newEpisode import com.lagradost.cloudstream3.newHomePageResponse import com.lagradost.cloudstream3.newMovieLoadResponse @@ -29,29 +30,15 @@ import com.lagradost.cloudstream3.newTvSeriesLoadResponse import com.lagradost.cloudstream3.newTvSeriesSearchResponse import com.lagradost.cloudstream3.runAllAsync import com.lagradost.cloudstream3.toNewSearchResponseList +import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.toJson -import com.uwetrottmann.tmdb2.Tmdb -import com.uwetrottmann.tmdb2.entities.AppendToResponse -import com.uwetrottmann.tmdb2.entities.BaseMovie -import com.uwetrottmann.tmdb2.entities.BaseTvShow -import com.uwetrottmann.tmdb2.entities.CastMember -import com.uwetrottmann.tmdb2.entities.ContentRating -import com.uwetrottmann.tmdb2.entities.Movie -import com.uwetrottmann.tmdb2.entities.ReleaseDate -import com.uwetrottmann.tmdb2.entities.ReleaseDatesResult -import com.uwetrottmann.tmdb2.entities.TvSeason -import com.uwetrottmann.tmdb2.entities.TvShow -import com.uwetrottmann.tmdb2.entities.Videos -import com.uwetrottmann.tmdb2.enumerations.AppendToResponseItem -import com.uwetrottmann.tmdb2.enumerations.VideoType -import retrofit2.awaitResponse -import retrofit2.Response -import java.util.Calendar +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable /** * episode and season starting from 1 * they are null if movie - * */ + */ @Serializable data class TmdbLink( @SerialName("imdbID") val imdbID: String?, @@ -69,19 +56,184 @@ open class TmdbProvider : MainAPI() { open val useMetaLoadResponse = false open val apiName = "TMDB" - // As some sites doesn't support s0 + // As some sites don't support s0 open val disableSeasonZero = true override val hasMainPage = true override val providerType = ProviderType.MetaProvider - // Fuck it, public private api key because github actions won't co-operate. - // Please no stealy. - private val tmdb = Tmdb("e6333b32409e02a4a6eba6fb7ff866bb") + private val tmdbApiKey = "e6333b32409e02a4a6eba6fb7ff866bb" + private val tmdbApiUrl = "https://api.themoviedb.org/3" + + @Serializable + data class TmdbIds( + @SerialName("imdb_id") val imdbId: String? = null, + @SerialName("tvdb_id") val tvdbId: Int? = null, + ) + + @Serializable + data class TmdbGenre( + @SerialName("id") val id: Int? = null, + @SerialName("name") val name: String? = null, + ) + + @Serializable + data class TmdbCastMember( + @SerialName("name") val name: String? = null, + @SerialName("character") val character: String? = null, + @SerialName("profile_path") val profilePath: String? = null, + ) + + @Serializable + data class TmdbCredits( + @SerialName("cast") val cast: List? = null, + ) + + @Serializable + data class TmdbVideo( + @SerialName("key") val key: String? = null, + @SerialName("site") val site: String? = null, + @SerialName("type") val type: String? = null, + ) + + @Serializable + data class TmdbVideos( + @SerialName("results") val results: List? = null, + ) + + // Shared between movie and tv search results + @Serializable + data class TmdbSearchResult( + @SerialName("id") val id: Int? = null, + @SerialName("title") val title: String? = null, // movies + @SerialName("original_title") val originalTitle: String? = null, + @SerialName("name") val name: String? = null, // tv + @SerialName("original_name") val originalName: String? = null, + @SerialName("poster_path") val posterPath: String? = null, + @SerialName("vote_average") val voteAverage: Double? = null, + @SerialName("release_date") val releaseDate: String? = null, + @SerialName("first_air_date") val firstAirDate: String? = null, + @SerialName("media_type") val mediaType: String? = null, // for multi-search + ) { + val isTv get() = name != null || mediaType == "tv" + val displayTitle get() = title ?: originalTitle ?: name ?: originalName ?: "" + val year get() = (releaseDate ?: firstAirDate)?.take(4)?.toIntOrNull() + } + + @Serializable + data class TmdbPageResult( + @SerialName("results") val results: List? = null, + @SerialName("total_pages") val totalPages: Int? = null, + @SerialName("total_results") val totalResults: Int? = null, + ) + + @Serializable + data class TmdbMultiResult( + @SerialName("results") val results: List? = null, + ) + + @Serializable + data class TmdbEpisode( + @SerialName("id") val id: Int? = null, + @SerialName("name") val name: String? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("episode_number") val episodeNumber: Int? = null, + @SerialName("season_number") val seasonNumber: Int? = null, + @SerialName("still_path") val stillPath: String? = null, + @SerialName("air_date") val airDate: String? = null, + @SerialName("vote_average") val voteAverage: Double? = null, + @SerialName("external_ids") val externalIds: TmdbIds? = null, + ) + + @Serializable + data class TmdbSeasonDetail( + @SerialName("season_number") val seasonNumber: Int? = null, + @SerialName("episodes") val episodes: List? = null, + ) + + @Serializable + data class TmdbSeasonSummary( + @SerialName("season_number") val seasonNumber: Int? = null, + @SerialName("episode_count") val episodeCount: Int? = null, + ) + + @Serializable + data class TmdbContentRating( + @SerialName("iso_3166_1") val country: String? = null, + @SerialName("rating") val rating: String? = null, + ) + + @Serializable + data class TmdbContentRatings( + @SerialName("results") val results: List? = null, + ) + + @Serializable + data class TmdbReleaseDateEntry( + @SerialName("certification") val certification: String? = null, + @SerialName("type") val type: Int? = null, + ) + + @Serializable + data class TmdbReleaseDateResult( + @SerialName("iso_3166_1") val country: String? = null, + @SerialName("release_dates") val releaseDates: List? = null, + ) + + @Serializable + data class TmdbReleaseDates( + @SerialName("results") val results: List? = null, + ) + + @Serializable + data class TmdbTvDetail( + @SerialName("id") val id: Int? = null, + @SerialName("name") val name: String? = null, + @SerialName("original_name") val originalName: String? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("poster_path") val posterPath: String? = null, + @SerialName("first_air_date") val firstAirDate: String? = null, + @SerialName("vote_average") val voteAverage: Double? = null, + @SerialName("genres") val genres: List? = null, + @SerialName("episode_run_time") val episodeRunTime: List? = null, + @SerialName("seasons") val seasons: List? = null, + @SerialName("external_ids") val externalIds: TmdbIds? = null, + @SerialName("videos") val videos: TmdbVideos? = null, + @SerialName("credits") val credits: TmdbCredits? = null, + @SerialName("recommendations") val recommendations: TmdbPageResult? = null, + @SerialName("similar") val similar: TmdbPageResult? = null, + @SerialName("content_ratings") val contentRatings: TmdbContentRatings? = null, + ) { + val displayTitle get() = name ?: originalName ?: "" + val year get() = firstAirDate?.take(4)?.toIntOrNull() + } + + @Serializable + data class TmdbMovieDetail( + @SerialName("id") val id: Int? = null, + @SerialName("title") val title: String? = null, + @SerialName("original_title") val originalTitle: String? = null, + @SerialName("overview") val overview: String? = null, + @SerialName("poster_path") val posterPath: String? = null, + @SerialName("release_date") val releaseDate: String? = null, + @SerialName("vote_average") val voteAverage: Double? = null, + @SerialName("genres") val genres: List? = null, + @SerialName("runtime") val runtime: Int? = null, + @SerialName("imdb_id") val imdbId: String? = null, + @SerialName("external_ids") val externalIds: TmdbIds? = null, + @SerialName("videos") val videos: TmdbVideos? = null, + @SerialName("credits") val credits: TmdbCredits? = null, + @SerialName("recommendations") val recommendations: TmdbPageResult? = null, + @SerialName("similar") val similar: TmdbPageResult? = null, + @SerialName("release_dates") val releaseDates: TmdbReleaseDates? = null, + ) { + val displayTitle get() = title ?: originalTitle ?: "" + val year get() = releaseDate?.take(4)?.toIntOrNull() + } private fun getImageUrl(link: String?): String? { - if (link == null) return null - return if (link.startsWith("/")) "https://image.tmdb.org/t/p/w500/$link" else link + link ?: return null + return if (link.startsWith("/")) "https://image.tmdb.org/t/p/w500$link" else link } private fun getUrl(id: Int?, tvShow: Boolean): String { @@ -89,199 +241,197 @@ open class TmdbProvider : MainAPI() { else "https://www.themoviedb.org/movie/${id ?: -1}" } - private fun BaseTvShow.toSearchResponse(): TvSeriesSearchResponse { - return newTvSeriesSearchResponse( - name = this.name ?: this.original_name, + private suspend fun getApi(path: String, extraParams: Map = emptyMap()): String { + val params = buildMap { + put("api_key", tmdbApiKey) + putAll(extraParams) + } + return app.get( + url = "$tmdbApiUrl$path", + params = params, + ).text + } + + private fun TmdbSearchResult.toSearchResponse() = if (isTv) { + newTvSeriesSearchResponse( + name = displayTitle, url = getUrl(id, true), type = TvType.TvSeries, - fix = false + fix = false, ) { this.id = this@toSearchResponse.id - this.posterUrl = getImageUrl(poster_path) - this.score = Score.from10(vote_average) - this.year = first_air_date?.let { - Calendar.getInstance().apply { - time = it - }.get(Calendar.YEAR) - } + this.posterUrl = getImageUrl(posterPath) + this.score = Score.from10(voteAverage) + this.year = this@toSearchResponse.year } - } - - private fun BaseMovie.toSearchResponse(): MovieSearchResponse { - return newMovieSearchResponse( - name = this.title ?: this.original_title, + } else { + newMovieSearchResponse( + name = displayTitle, url = getUrl(id, false), type = TvType.Movie, - fix = false + fix = false, ) { this.id = this@toSearchResponse.id - this.posterUrl = getImageUrl(poster_path) - this.score = Score.from10(vote_average) - this.year = release_date?.let { - Calendar.getInstance().apply { - time = it - }.get(Calendar.YEAR) - } + this.posterUrl = getImageUrl(posterPath) + this.score = Score.from10(voteAverage) + this.year = this@toSearchResponse.year } } - private fun List?.toActors(): List>? { + private fun List?.toActors(): List>? { return this?.mapNotNull { + it ?: return@mapNotNull null Pair( - Actor(it?.name ?: return@mapNotNull null, getImageUrl(it.profile_path)), - it.character + Actor(it.name ?: return@mapNotNull null, getImageUrl(it.profilePath)), + it.character, ) } } - private suspend fun TvShow.toLoadResponse(): TvSeriesLoadResponse { - val tvSeasonsService = tmdb.tvSeasonsService() - val episodes = mutableListOf() + private fun TmdbVideos?.toTrailers(): List? { + val skipTypes = setOf("Opening Credits", "Featurette") + return this?.results + ?.filter { it.type !in skipTypes } + ?.sortedBy { it.type } + ?.mapNotNull { + when (it.site?.trim()?.lowercase()) { + "youtube" -> "https://www.youtube.com/watch?v=${it.key}" + else -> null + } + } + } - val validSeasons = this.seasons?.filter { !disableSeasonZero || (it.season_number ?: 0) != 0 } ?: emptyList() - for (season in validSeasons) { - val seasonNumber = season.season_number ?: continue + open suspend fun fetchContentRating(id: Int?, country: String): String? { + id ?: return null + // Try TV content ratings first + val tvRating = parseJson( + getApi("/tv/$id/content_ratings") + ).results?.firstOrNull { it.country == country }?.rating + if (tvRating != null) return tvRating + + // Fall back to movie release dates + return parseJson( + getApi("/movie/$id/release_dates") + ).results?.firstOrNull { it.country == country } + ?.releaseDates?.firstOrNull { !it.certification.isNullOrBlank() } + ?.certification + } - val response: Response = tmdb.tvSeasonsService() - .season(this.id, seasonNumber, "external_ids,images,episodes") - .awaitResponse() + private suspend fun TmdbTvDetail.toLoadResponse(): TvSeriesLoadResponse { + val episodes = mutableListOf() + val validSeasons = seasons?.filter { !disableSeasonZero || (it.seasonNumber ?: 0) != 0 } + ?: emptyList() - val fullSeason = response.body() ?: continue + for (season in validSeasons) { + val seasonNum = season.seasonNumber ?: continue + val fullSeason = parseJson( + getApi("/tv/$id/season/$seasonNum", mapOf("append_to_response" to "external_ids")) + ) fullSeason.episodes?.forEach { episode -> episodes += newEpisode( TmdbLink( - episode.external_ids?.imdb_id ?: this.external_ids?.imdb_id, - this.id, - episode.episode_number, - episode.season_number, - this.name ?: this.original_name + episode.externalIds?.imdbId ?: externalIds?.imdbId, + id, + episode.episodeNumber, + episode.seasonNumber, + displayTitle, ).toJson() ) { this.name = episode.name - this.season = episode.season_number - this.episode = episode.episode_number - this.score = Score.from10(episode.vote_average) + this.season = episode.seasonNumber + this.episode = episode.episodeNumber + this.score = Score.from10(episode.voteAverage) this.description = episode.overview - this.date = episode.air_date?.time - this.posterUrl = getImageUrl(episode.still_path) + this.posterUrl = getImageUrl(episode.stillPath) + this.addDate(episode.airDate) } } } return newTvSeriesLoadResponse( - this.name ?: this.original_name, + displayTitle, getUrl(id, true), TvType.TvSeries, - episodes + episodes, ) { - posterUrl = getImageUrl(poster_path) - year = first_air_date?.let { - Calendar.getInstance().apply { - time = it - }.get(Calendar.YEAR) - } + posterUrl = getImageUrl(posterPath) + this.year = this@toLoadResponse.year plot = overview - addImdbId(external_ids?.imdb_id) + addImdbId(externalIds?.imdbId) tags = genres?.mapNotNull { it.name } - duration = episode_run_time?.average()?.toInt() - score = Score.from10(vote_average) + duration = episodeRunTime?.average()?.toInt() + score = Score.from10(voteAverage) addTrailer(videos.toTrailers()) recommendations = (this@toLoadResponse.recommendations ?: this@toLoadResponse.similar)?.results?.map { it.toSearchResponse() } addActors(credits?.cast?.toList().toActors()) - contentRating = fetchContentRating(id, "US") + contentRating = contentRatings?.results?.firstOrNull { it.country == "US" }?.rating + ?: fetchContentRating(id, "US") } } - private fun Videos?.toTrailers(): List? { - return this?.results?.filter { it.type != VideoType.OPENING_CREDITS && it.type != VideoType.FEATURETTE } - ?.sortedBy { it.type?.ordinal ?: 10000 } - ?.mapNotNull { - when (it.site?.trim()?.lowercase()) { - "youtube" -> { // TODO FILL SITES - "https://www.youtube.com/watch?v=${it.key}" - } - else -> null - } - } - } - - private suspend fun Movie.toLoadResponse(): MovieLoadResponse { + private suspend fun TmdbMovieDetail.toLoadResponse(): MovieLoadResponse { return newMovieLoadResponse( - this.title ?: this.original_title, getUrl(id, false), TvType.Movie, TmdbLink( - this.imdb_id, - this.id, + displayTitle, + getUrl(id, false), + TvType.Movie, + TmdbLink( + imdbId ?: externalIds?.imdbId, + id, null, null, - this.title ?: this.original_title, + displayTitle, ).toJson() ) { - posterUrl = getImageUrl(poster_path) - year = release_date?.let { - Calendar.getInstance().apply { - time = it - }.get(Calendar.YEAR) - } + posterUrl = getImageUrl(posterPath) + this.year = this@toLoadResponse.year plot = overview - addImdbId(external_ids?.imdb_id) + addImdbId(imdbId ?: externalIds?.imdbId) tags = genres?.mapNotNull { it.name } duration = runtime - score = Score.from10(vote_average) + score = Score.from10(voteAverage) addTrailer(videos.toTrailers()) - recommendations = (this@toLoadResponse.recommendations ?: this@toLoadResponse.similar)?.results?.map { it.toSearchResponse() } addActors(credits?.cast?.toList().toActors()) - - contentRating = fetchContentRating(id, "US") + contentRating = releaseDates?.results + ?.firstOrNull { it.country == "US" } + ?.releaseDates?.firstOrNull { !it.certification.isNullOrBlank() } + ?.certification } } override suspend fun getMainPage(page: Int, request: MainPageRequest): HomePageResponse { - - // SAME AS DISCOVER IT SEEMS -// val popularSeries = tmdb.tvService().popular(page, "en-US").execute().body()?.results?.map { -// it.toSearchResponse() -// } ?: listOf() -// -// val popularMovies = -// tmdb.moviesService().popular(page, "en-US", "840").execute().body()?.results?.map { -// it.toSearchResponse() -// } ?: listOf() - var discoverMovies: List = listOf() var discoverSeries: List = listOf() var topMovies: List = listOf() var topSeries: List = listOf() runAllAsync( { - discoverMovies = tmdb.discoverMovie().page(page).build().awaitResponse().body()?.results?.map { - it.toSearchResponse() - } ?: listOf() - }, { - discoverSeries = tmdb.discoverTv().page(page).build().awaitResponse().body()?.results?.map { - it.toSearchResponse() - } ?: listOf() - }, { - // https://en.wikipedia.org/wiki/ISO_3166-1 - topMovies = - tmdb.moviesService().topRated(page, "en-US", "US").awaitResponse() - .body()?.results?.map { - it.toSearchResponse() - } ?: listOf() - }, { - topSeries = - tmdb.tvService().topRated(page, "en-US").awaitResponse().body()?.results?.map { - it.toSearchResponse() - } ?: listOf() - } + discoverMovies = parseJson( + getApi("/discover/movie", mapOf("page" to "$page")) + ).results?.map { it.toSearchResponse() as MovieSearchResponse } ?: listOf() + }, + { + discoverSeries = parseJson( + getApi("/discover/tv", mapOf("page" to "$page")) + ).results?.map { it.toSearchResponse() as TvSeriesSearchResponse } ?: listOf() + }, + { + topMovies = parseJson( + getApi("/movie/top_rated", mapOf("page" to "$page", "language" to "en-US", "region" to "US")) + ).results?.map { it.toSearchResponse() as MovieSearchResponse } ?: listOf() + }, + { + topSeries = parseJson( + getApi("/tv/top_rated", mapOf("page" to "$page", "language" to "en-US")) + ).results?.map { it.toSearchResponse() as TvSeriesSearchResponse } ?: listOf() + }, ) return newHomePageResponse( listOf( -// HomePageList("Popular Series", popularSeries), -// HomePageList("Popular Movies", popularMovies), HomePageList("Popular Movies", discoverMovies), HomePageList("Popular Series", discoverSeries), HomePageList("Top Movies", topMovies), @@ -290,47 +440,14 @@ open class TmdbProvider : MainAPI() { ) } - open fun loadFromImdb(imdb: String, seasons: List): LoadResponse? { - return null - } + open fun loadFromImdb(imdb: String, seasons: List): LoadResponse? = null + open fun loadFromTmdb(tmdbId: Int, seasons: List): LoadResponse? = null + open fun loadFromImdb(imdb: String): LoadResponse? = null + open fun loadFromTmdb(tmdbId: Int): LoadResponse? = null - open fun loadFromTmdb(tmdb: Int, seasons: List): LoadResponse? { - return null - } - - open fun loadFromImdb(imdb: String): LoadResponse? { - return null - } - - open fun loadFromTmdb(tmdb: Int): LoadResponse? { - return null - } - - open suspend fun fetchContentRating(id: Int?, country: String): String? { - id ?: return null - - val contentRatings = tmdb.tvService().content_ratings(id).awaitResponse().body()?.results - return if (!contentRatings.isNullOrEmpty()) { - contentRatings.firstOrNull { it: ContentRating -> - it.iso_3166_1 == country - }?.rating - } else { - val releaseDates = tmdb.moviesService().releaseDates(id).awaitResponse().body()?.results - val certification = releaseDates?.firstOrNull { it: ReleaseDatesResult -> - it.iso_3166_1 == country - }?.release_dates?.firstOrNull { it: ReleaseDate -> - !it.certification.isNullOrBlank() - }?.certification - - certification - } - } - - // Possible to add recommendations and such here. override suspend fun load(url: String): LoadResponse? { // https://www.themoviedb.org/movie/7445-brothers // https://www.themoviedb.org/tv/71914-the-wheel-of-time - val idRegex = Regex("""themoviedb\.org/(.*)/(\d+)""") val found = idRegex.find(url) @@ -339,86 +456,64 @@ open class TmdbProvider : MainAPI() { ?: throw ErrorLoadingException("No id found") return if (useMetaLoadResponse) { - return if (isTvSeries) { - val body = tmdb.tvService() - .tv( - id, - "en-US", - AppendToResponse( - AppendToResponseItem.EXTERNAL_IDS, - AppendToResponseItem.VIDEOS + if (isTvSeries) { + val detail = parseJson( + getApi( + "/tv/$id", + mapOf( + "language" to "en-US", + "append_to_response" to "external_ids,videos,credits,recommendations,similar,content_ratings", ) ) - .awaitResponse().body() - val response = body?.toLoadResponse() - if (response != null) { - if (response.recommendations.isNullOrEmpty()) - tmdb.tvService().recommendations(id, 1, "en-US").awaitResponse().body() - ?.let { - it.results?.map { res -> res.toSearchResponse() } - }?.let { list -> - response.recommendations = list - } - - if (response.actors.isNullOrEmpty()) - tmdb.tvService().credits(id, "en-US").awaitResponse().body()?.let { - response.addActors(it.cast?.toActors()) - } - } - - response + ) + detail.toLoadResponse() } else { - val body = tmdb.moviesService() - .summary( - id, - "en-US", - AppendToResponse( - AppendToResponseItem.EXTERNAL_IDS, - AppendToResponseItem.VIDEOS + val detail = parseJson( + getApi( + "/movie/$id", + mapOf( + "language" to "en-US", + "append_to_response" to "external_ids,videos,credits,recommendations,similar,release_dates", ) ) - .awaitResponse().body() - val response = body?.toLoadResponse() - if (response != null) { - if (response.recommendations.isNullOrEmpty()) - tmdb.moviesService().recommendations(id, 1, "en-US").awaitResponse().body() - ?.let { - it.results?.map { res -> res.toSearchResponse() } - }?.let { list -> - response.recommendations = list - } - - if (response.actors.isNullOrEmpty()) - tmdb.moviesService().credits(id).awaitResponse().body()?.let { - response.addActors(it.cast?.toActors()) - } - } - response + ) + detail.toLoadResponse() } } else { loadFromTmdb(id)?.let { return it } if (isTvSeries) { - tmdb.tvService().externalIds(id).awaitResponse().body()?.imdb_id?.let { - val fromImdb = loadFromImdb(it) - val result = if (fromImdb == null) { - val details = tmdb.tvService().tv(id, "en-US").awaitResponse().body() - loadFromImdb(it, details?.seasons ?: listOf()) - ?: loadFromTmdb(id, details?.seasons ?: listOf()) - } else fromImdb - - result + val externalIds = parseJson(getApi("/tv/$id/external_ids")) + val imdbId = externalIds.imdbId + if (imdbId != null) { + val fromImdb = loadFromImdb(imdbId) + if (fromImdb != null) return fromImdb + } + val seasons = parseJson(getApi("/tv/$id")).seasons ?: listOf() + if (imdbId != null) { + loadFromImdb(imdbId, seasons) ?: loadFromTmdb(id, seasons) + } else { + loadFromTmdb(id, seasons) } } else { - tmdb.moviesService().externalIds(id).awaitResponse() - .body()?.imdb_id?.let { loadFromImdb(it) } + val imdbId = parseJson(getApi("/movie/$id")).imdbId + if (imdbId != null) loadFromImdb(imdbId) else null } } } override suspend fun search(query: String, page: Int): SearchResponseList? { - return tmdb.searchService().multi(query, page, "en-US", "US", includeAdult).awaitResponse() - .body()?.results?.mapNotNull { - it.movie?.toSearchResponse() ?: it.tvShow?.toSearchResponse() - }?.toNewSearchResponseList() + return parseJson( + getApi( + "/search/multi", + mapOf( + "query" to query, + "page" to "$page", + "language" to "en-US", + "include_adult" to "$includeAdult", + ) + ) + ).results?.mapNotNull { + if (it.mediaType == "person") null else it.toSearchResponse() + }?.toNewSearchResponseList() } -} \ No newline at end of file +} From d02a7be979553425f352ef22722ad37e24b2ea82 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:03:41 -0600 Subject: [PATCH 009/114] Add --- .../cloudstream3/utils/JsInterpreter.kt | 1581 +++++++++++++++++ 1 file changed, 1581 insertions(+) create mode 100644 library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt new file mode 100644 index 00000000000..44daa49e3ff --- /dev/null +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt @@ -0,0 +1,1581 @@ +package com.lagradost.cloudstream3.utils + +import com.lagradost.cloudstream3.Prerelease +import com.lagradost.cloudstream3.mvvm.logError +import com.lagradost.cloudstream3.utils.StringUtils.decodeUrl +import com.lagradost.cloudstream3.utils.StringUtils.encodeUrl +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.isActive +import kotlin.math.E +import kotlin.math.PI +import kotlin.math.abs +import kotlin.math.ceil +import kotlin.math.cos +import kotlin.math.floor +import kotlin.math.ln +import kotlin.math.log10 +import kotlin.math.log2 +import kotlin.math.pow +import kotlin.math.round +import kotlin.math.sin +import kotlin.math.sqrt +import kotlin.math.tan +import kotlin.math.truncate +import kotlin.random.Random +import kotlin.time.Duration +import kotlin.time.Duration.Companion.seconds +import kotlin.time.TimeMark +import kotlin.time.TimeSource + +/** + * Lightweight pure-Kotlin JavaScript interpreter designed to replace Rhino for + * our own deobfuscation use-cases. + * + * Supports the subset of JS that appears in obfuscated video-hosting scripts: + * - Variable declarations (var / let / const) + * - String, number (including hex `0x..` and legacy octal `0..`) and boolean literals + * - Arithmetic / bitwise / comparison / logical operators + * - String concatenation with + + * - String methods: split, join, reverse, replace, charAt, charCodeAt, + * fromCharCode, substr, substring, slice, indexOf, + * trim, toLowerCase, toUpperCase, toString, length + * - Array literals and methods: join, reverse, split, push, pop, + * map, filter, forEach, length + * - parseInt / parseFloat / isNaN / isFinite + * - Math.* (sin, cos, floor, ceil, round, abs, pow, sqrt, log, max, min, random) + * - String.fromCharCode + * - Ternary operator (a ? b : c) + * - if / else / while / for statements + * - Function declarations and calls (named and anonymous) + * - return / break / continue + * - Template literals (back-tick strings) + * - instanceof + * - typeof + * + * Every evaluation is bounded by an execution budget (wall-clock time and/or instruction + * count, see [JS_DEFAULT_MAX_EXECUTION_TIME] / [JS_DEFAULT_MAX_INSTRUCTIONS]) so that + * untrusted/obfuscated scripts containing an infinite loop (such as `while(true){}`) + * cannot hang the calling thread forever. Note that since evaluation is synchronous, wrapping a call + * in `withTimeout` will not pre-empt it mid-flight (there's no suspension point for the + * coroutine machinery to act on) so the budget below is what actually guarantees the call + * returns. + * + * Usage: + * val result = evalJs("var x = 1+2; x") + * // result == 3.0 (numbers are always Double internally) + * + * // Drop-in replacement for the old Rhino-based evaluateString pattern: + * val ctx = JsContext() + * ctx.eval("var url = 'https:' + computeSuffix()") + * val url = ctx["url"] // retrieves the variable as a String + * + * // Or simpler: + * val url = evalJs("var url = 'https:' + computeSuffix()", "url") + */ + +/** Default wall-clock budget for a single [evalJs] / [JsContext.eval] call before it's aborted. */ +private val JS_DEFAULT_MAX_EXECUTION_TIME: Duration = 5.seconds + +/** Hard backstop on statements/expressions executed, independent of wall-clock time. */ +private const val JS_DEFAULT_MAX_INSTRUCTIONS: Long = 50_000_000L + +/** + * Convert any JS runtime value to its JavaScript string representation. + * Mirrors what JS `String(value)` would produce. + */ +@Prerelease +fun jsValueToString(v: Any?): String = toJsString(v) + +/** + * Stateful JS execution context. Keeps variables alive between [eval] calls, + * mimicking the Rhino "scope" object that extensions used to hold on to. + * + * @param maxExecutionTime wall-clock budget given to each [eval] call. + * @param maxInstructions hard cap on statements/expressions executed per [eval] call, + * independent of wall-clock time. + */ +@Prerelease +class JsContext( + maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, + maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, +) { + private val interpreter = JsInterpreter(maxExecutionTime, maxInstructions) + + /** Evaluate [code] in this context. Returns the last expression value. */ + fun eval(code: String): Any? = interpreter.eval(code) + + /** Retrieve a variable set by previously evaluated code. */ + operator fun get(name: String): Any? = interpreter.getVar(name) + + /** Expose a Kotlin value to subsequently evaluated JS code. */ + operator fun set(name: String, value: Any?) = interpreter.setVar(name, value) +} + +/** + * Evaluate [js] and return its last value, or the value of [variable] if specified. + * Convenience wrapper for one-shot evaluations, equivalent to the old + * `rhino.evaluateString(scope, js, ...)`. + * + * @param js The JavaScript code to evaluate. + * @param variable Optional variable name to retrieve from the scope after evaluation. + * @param maxExecutionTime wall-clock budget before the script is forcibly aborted. + * Defaults to [JS_DEFAULT_MAX_EXECUTION_TIME]; pass a smaller value for time-sensitive + * call sites (e.g. inside a `withTimeout`, which cannot itself interrupt this call). + * @param maxInstructions hard cap on statements/expressions executed, independent of + * wall-clock time. Defaults to [JS_DEFAULT_MAX_INSTRUCTIONS]. + * @return The last expression value, or the named variable value if [variable] is specified. + * Returns [Unit] on evaluation failure, timeout, or when the result is JS undefined. + * JS null is represented as Kotlin null. Use [jsValueToString] to convert to a JS string. + */ +@Prerelease +fun evalJs( + js: String, + variable: String? = null, + maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, + maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, +): Any? { + val interpreter = JsInterpreter(maxExecutionTime, maxInstructions) + val result = interpreter.eval(js) + return if (variable != null) interpreter.getVar(variable) else result +} + +/** + * Scope-aware variant of [evalJs]. The interpreter checks [CoroutineScope.isActive] every + * 1024 instructions and aborts (returning [Unit]) if the scope has been cancelled. + * + * There is no thread dispatch or suspension. This function runs synchronously on the + * calling thread, so it carries zero coroutine overhead for normal (non-cancelled) scripts. + * Cancellation latency is bounded to one check window (~1024 interpreter instructions). + * + * Typical usage inside a coroutine: + * val result = coroutineScope { evalJs("...") } + */ +@Prerelease +@Throws(CancellationException::class) +fun CoroutineScope.evalJs( + js: String, + variable: String? = null, + maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, + maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, +): Any? { + val interpreter = JsInterpreter(maxExecutionTime, maxInstructions, this) + val result = interpreter.eval(js) + return if (variable != null) interpreter.getVar(variable) else result +} + +private enum class TT { + NUMBER, STRING, IDENT, PLUS, MINUS, STAR, SLASH, PERCENT, POW, EQ, EQEQ, EQEQEQ, + NEQ, NEQEQ, LT, LTEQ, GT, GTEQ, AND, OR, NOT, AMP, PIPE, CARET, TILDE, + LSHIFT, RSHIFT, URSHIFT, PLUSEQ, MINUSEQ, STAREQ, SLASHEQ, PERCENTEQ, POWEQ, + PLUSPLUS, MINUSMINUS, DOT, COMMA, SEMI, COLON, QUESTION, LPAREN, RPAREN, + LBRACE, RBRACE, LBRACKET, RBRACKET, EOF +} + +private data class Token(val type: TT, val raw: String, val pos: Int) + +private class Lexer(private val src: String) { + var pos = 0 + private val tokens = mutableListOf() + private var idx = 0 + + init { tokenize() } + + private fun tokenize() { + while (pos < src.length) { + skipWhitespaceAndComments() + if (pos >= src.length) break + val c = src[pos] + when { + c.isDigit() || (c == '.' && pos + 1 < src.length && src[pos + 1].isDigit()) -> readNumber() + c == '"' || c == '\'' || c == '`' -> readString(c) + c.isLetter() || c == '_' || c == '$' -> readIdent() + else -> readOp() + } + } + tokens.add(Token(TT.EOF, "", pos)) + } + + private fun skipWhitespaceAndComments() { + while (pos < src.length) { + val c = src[pos] + if (c.isWhitespace()) { pos++; continue } + if (c == '/' && pos + 1 < src.length) { + when (src[pos + 1]) { + '/' -> { pos = src.indexOf('\n', pos).let { if (it < 0) src.length else it + 1 }; continue } + '*' -> { + val end = src.indexOf("*/", pos + 2) + pos = if (end < 0) src.length else end + 2; continue + } + else -> {} + } + } + break + } + } + + private fun readNumber() { + val start = pos + if (pos + 1 < src.length && src[pos] == '0' && + (src[pos + 1] == 'x' || src[pos + 1] == 'X') + ) { + pos += 2 + while (pos < src.length && src[pos].isLetterOrDigit()) pos++ + } else { + while (pos < src.length && (src[pos].isDigit() || src[pos] == '.')) pos++ + if (pos < src.length && (src[pos] == 'e' || src[pos] == 'E')) { + pos++ + if (pos < src.length && (src[pos] == '+' || src[pos] == '-')) pos++ + while (pos < src.length && src[pos].isDigit()) pos++ + } + } + tokens.add(Token(TT.NUMBER, src.substring(start, pos), start)) + } + + private fun readString(quote: Char) { + val start = pos++ + val sb = StringBuilder() + if (quote == '`') { + // template literal. We flatten it to a plain string (no interpolation yet) + while (pos < src.length && src[pos] != '`') { + if (src[pos] == '\\' && pos + 1 < src.length) { + sb.append(unescape(src[++pos])); pos++ + } else sb.append(src[pos++]) + } + if (pos < src.length) pos++ // consume closing ` + } else { + while (pos < src.length && src[pos] != quote) { + if (src[pos] == '\\' && pos + 1 < src.length) { + sb.append(unescape(src[++pos])); pos++ + } else sb.append(src[pos++]) + } + if (pos < src.length) pos++ + } + tokens.add(Token(TT.STRING, sb.toString(), start)) + } + + private fun unescape(c: Char): Char = when (c) { + 'n' -> '\n'; 'r' -> '\r'; 't' -> '\t'; 'b' -> '\b' + '\'' -> '\''; '"' -> '"'; '\\' -> '\\'; '`' -> '`' + else -> c + } + + private fun readIdent() { + val start = pos + while (pos < src.length && (src[pos].isLetterOrDigit() || src[pos] == '_' || src[pos] == '$')) pos++ + tokens.add(Token(TT.IDENT, src.substring(start, pos), start)) + } + + private fun readOp() { + val start = pos + val c = src[pos++] + val next = if (pos < src.length) src[pos] else '\u0000' + val nn = if (pos + 1 < src.length) src[pos + 1] else '\u0000' + fun adv(t: TT, n: Int = 0): Token { pos += n; return Token(t, "", start) } + val tok = when (c) { + '+' -> when (next) { '+' -> adv(TT.PLUSPLUS, 1); '=' -> adv(TT.PLUSEQ, 1); else -> Token(TT.PLUS, "+", start) } + '-' -> when (next) { '-' -> adv(TT.MINUSMINUS, 1); '=' -> adv(TT.MINUSEQ, 1); else -> Token(TT.MINUS, "-", start) } + '*' -> when { + next == '*' && nn == '=' -> adv(TT.POWEQ, 2) + next == '*' -> adv(TT.POW, 1) + next == '=' -> adv(TT.STAREQ, 1) + else -> Token(TT.STAR, "*", start) + } + '/' -> if (next == '=') adv(TT.SLASHEQ, 1) else Token(TT.SLASH, "/", start) + '%' -> if (next == '=') adv(TT.PERCENTEQ, 1) else Token(TT.PERCENT, "%", start) + '=' -> when { next == '=' && nn == '=' -> adv(TT.EQEQEQ, 2); next == '=' -> adv(TT.EQEQ, 1); else -> Token(TT.EQ, "=", start) } + '!' -> when { next == '=' && nn == '=' -> adv(TT.NEQEQ, 2); next == '=' -> adv(TT.NEQ, 1); else -> Token(TT.NOT, "!", start) } + '<' -> when { next == '<' -> adv(TT.LSHIFT, 1); next == '=' -> adv(TT.LTEQ, 1); else -> Token(TT.LT, "<", start) } + '>' -> when { next == '>' && nn == '>' -> adv(TT.URSHIFT, 2); next == '>' -> adv(TT.RSHIFT, 1); next == '=' -> adv(TT.GTEQ, 1); else -> Token(TT.GT, ">", start) } + '&' -> if (next == '&') adv(TT.AND, 1) else Token(TT.AMP, "&", start) + '|' -> if (next == '|') adv(TT.OR, 1) else Token(TT.PIPE, "|", start) + '^' -> Token(TT.CARET, "^", start) + '~' -> Token(TT.TILDE, "~", start) + '.' -> Token(TT.DOT, ".", start) + ',' -> Token(TT.COMMA, ",", start) + ';' -> Token(TT.SEMI, ";", start) + ':' -> Token(TT.COLON, ":", start) + '?' -> Token(TT.QUESTION, "?", start) + '(' -> Token(TT.LPAREN, "(", start) + ')' -> Token(TT.RPAREN, ")", start) + '{' -> Token(TT.LBRACE, "{", start) + '}' -> Token(TT.RBRACE, "}", start) + '[' -> Token(TT.LBRACKET, "[", start) + ']' -> Token(TT.RBRACKET, "]", start) + else -> Token(TT.SEMI, "", start) // swallow unknown + } + tokens.add(tok) + } + + fun peek(offset: Int = 0): Token = tokens.getOrElse(idx + offset) { tokens.last() } + fun consume(): Token = tokens[idx++] + fun expect(t: TT): Token { + val tok = consume() + if (tok.type != t) throw RuntimeException("Expected $t got ${tok.type} ('${tok.raw}') at ${tok.pos}") + return tok + } + fun matchIf(t: TT): Boolean = if (peek().type == t) { consume(); true } else false +} + +private sealed class Node +private data class NumLit(val v: Double) : Node() +private data class StrLit(val v: String) : Node() +private data class BoolLit(val v: Boolean) : Node() +private object NullLit : Node() +private object UndefinedLit : Node() +private data class Ident(val name: String) : Node() +private data class ArrayLit(val elems: List) : Node() +private data class ObjLit(val pairs: List>) : Node() +private data class MemberExpr(val obj: Node, val prop: Node, val computed: Boolean) : Node() +private data class CallExpr(val callee: Node, val args: List) : Node() +private data class NewExpr(val callee: Node, val args: List) : Node() +private data class UnaryExpr(val op: String, val expr: Node, val prefix: Boolean) : Node() +private data class BinExpr(val op: String, val left: Node, val right: Node) : Node() +private data class AssignExpr(val op: String, val left: Node, val right: Node) : Node() +private data class CondExpr(val test: Node, val cons: Node, val alt: Node) : Node() +private data class TypeofExpr(val expr: Node) : Node() +private data class SeqExpr(val exprs: List) : Node() +private data class FuncExpr(val name: String?, val params: List, val body: List) : Node() +private data class VarDecl(val decls: List>) : Node() +private data class ExprStmt(val expr: Node) : Node() +private data class BlockStmt(val stmts: List) : Node() +private data class ReturnStmt(val expr: Node?) : Node() +private data class IfStmt(val test: Node, val cons: Node, val alt: Node?) : Node() +private data class WhileStmt(val test: Node, val body: Node) : Node() +private data class ForStmt(val init: Node?, val test: Node?, val update: Node?, val body: Node) : Node() +private data class ForInStmt(val decl: String, val obj: Node, val body: Node) : Node() +private object BreakStmt : Node() +private object ContinueStmt : Node() +private data class TryCatch(val body: List, val catchParam: String?, val catchBody: List?, val finallyBody: List?) : Node() +private data class ThrowStmt(val expr: Node) : Node() + +private class Parser(private val lex: Lexer) { + + fun parseProgram(): List { + val stmts = mutableListOf() + while (lex.peek().type != TT.EOF) stmts.add(parseStatement()) + return stmts + } + + private fun parseStatement(): Node { + return when (lex.peek().type) { + TT.LBRACE -> parseBlock() + TT.SEMI -> { lex.consume(); BlockStmt(emptyList()) } + TT.IDENT -> when (lex.peek().raw) { + "var", "let", "const" -> parseVarDecl() + "function" -> parseFunctionDecl() + "return" -> parseReturn() + "if" -> parseIf() + "while" -> parseWhile() + "for" -> parseFor() + "break" -> { lex.consume(); lex.matchIf(TT.SEMI); BreakStmt } + "continue" -> { lex.consume(); lex.matchIf(TT.SEMI); ContinueStmt } + "try" -> parseTryCatch() + "throw" -> parseThrow() + "typeof" -> parseExprStmt() + else -> parseExprStmt() + } + else -> parseExprStmt() + } + } + + private fun parseBlock(): BlockStmt { + lex.expect(TT.LBRACE) + val stmts = mutableListOf() + while (lex.peek().type != TT.RBRACE && lex.peek().type != TT.EOF) stmts.add(parseStatement()) + lex.expect(TT.RBRACE) + return BlockStmt(stmts) + } + + private fun parseVarDecl(): VarDecl { + lex.consume() // var / let / const + val decls = mutableListOf>() + do { + val name = lex.expect(TT.IDENT).raw + val init = if (lex.matchIf(TT.EQ)) parseAssign() else null + decls.add(name to init) + } while (lex.matchIf(TT.COMMA)) + lex.matchIf(TT.SEMI) + return VarDecl(decls) + } + + private fun parseFunctionDecl(): Node { + lex.consume() // "function" + val name = if (lex.peek().type == TT.IDENT) lex.consume().raw else null + val params = parseParams() + val body = parseBlock().stmts + return if (name != null) VarDecl(listOf(name to FuncExpr(name, params, body))) else FuncExpr(name, params, body) + } + + private fun parseParams(): List { + lex.expect(TT.LPAREN) + val params = mutableListOf() + while (lex.peek().type != TT.RPAREN && lex.peek().type != TT.EOF) { + params.add(lex.expect(TT.IDENT).raw) + if (!lex.matchIf(TT.COMMA)) break + } + lex.expect(TT.RPAREN) + return params + } + + private fun parseReturn(): ReturnStmt { + lex.consume() + val expr = if (lex.peek().type == TT.SEMI || lex.peek().type == TT.RBRACE || lex.peek().type == TT.EOF) null else parseAssign() + lex.matchIf(TT.SEMI) + return ReturnStmt(expr) + } + + private fun parseIf(): IfStmt { + lex.consume() + lex.expect(TT.LPAREN) + val test = parseAssign() + lex.expect(TT.RPAREN) + val cons = parseStatement() + val alt = if (lex.peek().type == TT.IDENT && lex.peek().raw == "else") { lex.consume(); parseStatement() } else null + return IfStmt(test, cons, alt) + } + + private fun parseWhile(): WhileStmt { + lex.consume() + lex.expect(TT.LPAREN) + val test = parseAssign() + lex.expect(TT.RPAREN) + return WhileStmt(test, parseStatement()) + } + + private fun parseFor(): Node { + lex.consume() + lex.expect(TT.LPAREN) + // for..in check + if (lex.peek().type == TT.IDENT && (lex.peek().raw == "var" || lex.peek().raw == "let" || lex.peek().raw == "const")) { + val savedIdx = lex.peek() + lex.consume() + val varName = lex.expect(TT.IDENT).raw + if (lex.peek().type == TT.IDENT && lex.peek().raw == "in") { + lex.consume() + val obj = parseAssign() + lex.expect(TT.RPAREN) + return ForInStmt(varName, obj, parseStatement()) + } + // backtrack is hard so we just reconstruct as normal for + val init: Node? = if (lex.peek().type != TT.SEMI) { + val initExpr = if (lex.matchIf(TT.EQ)) parseAssign() else null + VarDecl(listOf(varName to initExpr)) + } else VarDecl(listOf(varName to null)) + lex.matchIf(TT.SEMI) + val test = if (lex.peek().type != TT.SEMI) parseAssign() else null + lex.matchIf(TT.SEMI) + val update = if (lex.peek().type != TT.RPAREN) parseAssign() else null + lex.expect(TT.RPAREN) + return ForStmt(init, test, update, parseStatement()) + } + val init = if (lex.peek().type != TT.SEMI) parseAssign() else null + lex.matchIf(TT.SEMI) + val test = if (lex.peek().type != TT.SEMI) parseAssign() else null + lex.matchIf(TT.SEMI) + val update = if (lex.peek().type != TT.RPAREN) parseAssign() else null + lex.expect(TT.RPAREN) + return ForStmt(init, test, update, parseStatement()) + } + + private fun parseTryCatch(): TryCatch { + lex.consume() // "try" + val body = parseBlock().stmts + var catchParam: String? = null + var catchBody: List? = null + if (lex.peek().type == TT.IDENT && lex.peek().raw == "catch") { + lex.consume() + if (lex.matchIf(TT.LPAREN)) { + catchParam = lex.expect(TT.IDENT).raw + lex.expect(TT.RPAREN) + } + catchBody = parseBlock().stmts + } + val finallyBody = if (lex.peek().type == TT.IDENT && lex.peek().raw == "finally") { + lex.consume(); parseBlock().stmts + } else null + return TryCatch(body, catchParam, catchBody, finallyBody) + } + + private fun parseThrow(): ThrowStmt { + lex.consume() + val expr = parseAssign() + lex.matchIf(TT.SEMI) + return ThrowStmt(expr) + } + + private fun parseExprStmt(): Node { + val expr = parseSeq() + lex.matchIf(TT.SEMI) + return ExprStmt(expr) + } + + private fun parseSeq(): Node { + val first = parseAssign() + if (lex.peek().type != TT.COMMA) return first + val exprs = mutableListOf(first) + while (lex.matchIf(TT.COMMA)) exprs.add(parseAssign()) + return SeqExpr(exprs) + } + + private fun parseAssign(): Node { + val left = parseTernary() + val op = when (lex.peek().type) { + TT.EQ -> "="; TT.PLUSEQ -> "+="; TT.MINUSEQ -> "-="; TT.STAREQ -> "*="; TT.SLASHEQ -> "/="; TT.PERCENTEQ -> "%="; TT.POWEQ -> "**=" + else -> return left + } + lex.consume() + return AssignExpr(op, left, parseAssign()) + } + + private fun parseTernary(): Node { + val test = parseOr() + if (!lex.matchIf(TT.QUESTION)) return test + val cons = parseAssign() + lex.expect(TT.COLON) + return CondExpr(test, cons, parseAssign()) + } + + private fun parseOr(): Node = parseBin(::parseAnd, TT.OR to "||") + private fun parseAnd(): Node = parseBin(::parseBitor, TT.AND to "&&") + private fun parseBitor(): Node = parseBin(::parseBitxor, TT.PIPE to "|") + private fun parseBitxor(): Node = parseBin(::parseBitand, TT.CARET to "^") + private fun parseBitand(): Node = parseBin(::parseEq, TT.AMP to "&") + private fun parseEq(): Node = parseBin(::parseRel, TT.EQEQ to "==", TT.EQEQEQ to "===", TT.NEQ to "!=", TT.NEQEQ to "!==") + private fun parseRel(): Node { + var left = parseShift() + while (true) { + left = when { + lex.peek().type == TT.LT -> { lex.consume(); BinExpr("<", left, parseShift()) } + lex.peek().type == TT.LTEQ -> { lex.consume(); BinExpr("<=", left, parseShift()) } + lex.peek().type == TT.GT -> { lex.consume(); BinExpr(">", left, parseShift()) } + lex.peek().type == TT.GTEQ -> { lex.consume(); BinExpr(">=", left, parseShift()) } + lex.peek().type == TT.IDENT && lex.peek().raw == "in" -> { lex.consume(); BinExpr("in", left, parseShift()) } + lex.peek().type == TT.IDENT && lex.peek().raw == "instanceof" -> { lex.consume(); BinExpr("instanceof", left, parseShift()) } + else -> break + } + } + return left + } + private fun parseShift(): Node = parseBin(::parseAdd, TT.LSHIFT to "<<", TT.RSHIFT to ">>", TT.URSHIFT to ">>>") + private fun parseAdd(): Node = parseBin(::parseMul, TT.PLUS to "+", TT.MINUS to "-") + private fun parseMul(): Node = parseBin(::parsePow, TT.STAR to "*", TT.SLASH to "/", TT.PERCENT to "%") + + /** `**` binds tighter than `* / %` and is right-associative: `2 ** 3 ** 2 == 2 ** (3 ** 2)`. */ + private fun parsePow(): Node { + val base = parseUnary() + if (lex.peek().type == TT.POW) { + lex.consume() + return BinExpr("**", base, parsePow()) + } + return base + } + + private fun parseBin(next: () -> Node, vararg ops: Pair): Node { + var left = next() + while (true) { + val op = ops.firstOrNull { it.first == lex.peek().type } ?: break + lex.consume() + left = BinExpr(op.second, left, next()) + } + return left + } + + private fun parseUnary(): Node { + return when (lex.peek().type) { + TT.MINUS -> { lex.consume(); UnaryExpr("-", parseUnary(), true) } + TT.PLUS -> { lex.consume(); UnaryExpr("+", parseUnary(), true) } + TT.NOT -> { lex.consume(); UnaryExpr("!", parseUnary(), true) } + TT.TILDE -> { lex.consume(); UnaryExpr("~", parseUnary(), true) } + TT.PLUSPLUS -> { lex.consume(); UnaryExpr("++", parsePostfix(), true) } + TT.MINUSMINUS -> { lex.consume(); UnaryExpr("--", parsePostfix(), true) } + TT.IDENT -> when (lex.peek().raw) { + "typeof" -> { lex.consume(); TypeofExpr(parseUnary()) } + "void" -> { lex.consume(); parseUnary(); UndefinedLit } + "new" -> parseNew() + else -> parsePostfix() + } + else -> parsePostfix() + } + } + + private fun parseNew(): Node { + lex.consume() // "new" + val callee = parsePrimary() + val args = if (lex.peek().type == TT.LPAREN) parseArgs() else emptyList() + var expr: Node = NewExpr(callee, args) + // Allow member access and calls on the constructed object: new Foo().bar, new Foo()[0] + while (true) { + expr = when (lex.peek().type) { + TT.DOT -> { + lex.consume() + val prop = lex.expect(TT.IDENT).raw + MemberExpr(expr, StrLit(prop), false) + } + TT.LBRACKET -> { + lex.consume() + val prop = parseAssign() + lex.expect(TT.RBRACKET) + MemberExpr(expr, prop, true) + } + TT.LPAREN -> CallExpr(expr, parseArgs()) + else -> break + } + } + return expr + } + + private fun parsePostfix(): Node { + var expr = parseCall() + while (true) { + expr = when (lex.peek().type) { + TT.PLUSPLUS -> { lex.consume(); UnaryExpr("++", expr, false) } + TT.MINUSMINUS -> { lex.consume(); UnaryExpr("--", expr, false) } + else -> break + } + } + return expr + } + + private fun parseCall(): Node { + var expr = parsePrimary() + while (true) { + expr = when (lex.peek().type) { + TT.LPAREN -> CallExpr(expr, parseArgs()) + TT.DOT -> { + lex.consume() + val prop = lex.expect(TT.IDENT).raw + MemberExpr(expr, StrLit(prop), false) + } + TT.LBRACKET -> { + lex.consume() + val prop = parseAssign() + lex.expect(TT.RBRACKET) + MemberExpr(expr, prop, true) + } + else -> break + } + } + return expr + } + + private fun parseArgs(): List { + lex.expect(TT.LPAREN) + val args = mutableListOf() + while (lex.peek().type != TT.RPAREN && lex.peek().type != TT.EOF) { + args.add(parseAssign()) + if (!lex.matchIf(TT.COMMA)) break + } + lex.expect(TT.RPAREN) + return args + } + + private fun parsePrimary(): Node { + val tok = lex.peek() + return when (tok.type) { + TT.NUMBER -> { + lex.consume() + val raw = tok.raw + val value = when { + raw.startsWith("0x") || raw.startsWith("0X") -> + raw.drop(2).toLongOrNull(16)?.toDouble() ?: Double.NaN + // Legacy octal literal, a leading zero followed only by octal digits + // (0-7), e.g. "010" == 8. If any digit is 8/9 it's just decimal ("08" == 8). + raw.length > 1 && raw[0] == '0' && raw.all { it in '0'..'7' } -> + raw.toLongOrNull(8)?.toDouble() ?: Double.NaN + else -> raw.toDoubleOrNull() ?: Double.NaN + } + NumLit(value) + } + TT.STRING -> { lex.consume(); StrLit(tok.raw) } + TT.LPAREN -> { + lex.consume() + val expr = parseSeq() + lex.expect(TT.RPAREN) + expr + } + TT.LBRACKET -> { + lex.consume() + val elems = mutableListOf() + while (lex.peek().type != TT.RBRACKET && lex.peek().type != TT.EOF) { + if (lex.peek().type == TT.COMMA) { + // Elision, a "hole" in the array, e.g. the middle slot of [1,,3]. + // Reads back as undefined but still occupies a slot/length. + elems.add(UndefinedLit) + lex.consume() + } else { + elems.add(parseAssign()) + if (lex.peek().type == TT.COMMA) lex.consume() else break + } + } + lex.expect(TT.RBRACKET) + ArrayLit(elems) + } + TT.LBRACE -> { + lex.consume() + val pairs = mutableListOf>() + while (lex.peek().type != TT.RBRACE && lex.peek().type != TT.EOF) { + val key = when (lex.peek().type) { + TT.IDENT, TT.STRING -> lex.consume().raw + TT.NUMBER -> lex.consume().raw + else -> lex.consume().raw + } + lex.expect(TT.COLON) + pairs.add(key to parseAssign()) + lex.matchIf(TT.COMMA) + } + lex.expect(TT.RBRACE) + ObjLit(pairs) + } + TT.IDENT -> { + val name = tok.raw + lex.consume() + when (name) { + "true" -> BoolLit(true) + "false" -> BoolLit(false) + "null" -> NullLit + "undefined" -> UndefinedLit + "function" -> { + val fname = if (lex.peek().type == TT.IDENT) lex.consume().raw else null + val params = parseParams() + FuncExpr(fname, params, parseBlock().stmts) + } + else -> Ident(name) + } + } + else -> { lex.consume(); UndefinedLit } + } + } +} + +private class ReturnSignal(val value: Any?) : Throwable() +private object BreakSignal : Throwable() +private object ContinueSignal : Throwable() +private class ThrowSignal(val value: Any?) : Throwable() + +/** + * Thrown when the enclosing [CoroutineScope] is cancelled (e.g. by [withTimeout]). + * Extends [CancellationException] so coroutines recognize and handle it correctly. + * + * We use a dedicated subclass rather than [CancellationException] directly so that + * tests can use [assertFailsWith]<[JsCancellationException]> to verify that cancellation + * originated from the interpreter's scope check rather than some other source. The class + * is [internal] rather than private for the same reason. + * + * The [TryCatch] handler in [JsInterpreter.execNode] explicitly rethrows this before + * its generic `catch (Exception)` clause, so a JS script's own try/catch block cannot + * swallow it and keep a cancelled loop alive. + */ +internal class JsCancellationException(message: String) : CancellationException(message) + +/** + * Internal signal thrown once a script exceeds its execution budget (time or instruction + * count), or the enclosing [CoroutineScope] has been cancelled. + * + * Deliberately extends [Throwable] rather than [Exception]. The interpreter's own + * `try`/`catch` node handling (see [JsInterpreter.execNode]'s `TryCatch` branch) only catches + * `Exception`, so a JS script can't wrap an infinite loop in its own try/catch and swallow this, + * keeping the loop alive forever. + */ +private class JsExecutionLimitExceeded(message: String) : Throwable(message) + +private fun toNumber(v: Any?): Double = when (v) { + null -> 0.0 // In JS Number(null) === 0 + is Unit -> Double.NaN // In JS Number(undefined) === NaN + is Double -> v + is Boolean -> if (v) 1.0 else 0.0 + is String -> stringToNumber(v) + is JsList -> stringToNumber(toJsString(v)) + else -> Double.NaN +} + +/** + * Returns the numeric value of [c] in the given [radix] (2..36), or -1 if [c] isn't a valid + * digit for that radix. Only handles ASCII '0'-'9'/'a'-'z'/'A'-'Z', which is all JS + * number syntax (and parseInt) ever recognizes anyway. + */ +private fun digitValue(c: Char, radix: Int): Int { + val d = when (c) { + in '0'..'9' -> c - '0' + in 'a'..'z' -> c - 'a' + 10 + in 'A'..'Z' -> c - 'A' + 10 + else -> return -1 + } + return if (d < radix) d else -1 +} + +/** Mirrors the JS ToNumber(string) abstract operation closely enough for our use-cases. */ +private fun stringToNumber(s: String): Double { + val trimmed = s.trim() + if (trimmed.isEmpty()) return 0.0 // In JS Number("") === 0, Number(" ") === 0 + when (trimmed) { + "Infinity", "+Infinity" -> return Double.POSITIVE_INFINITY + "-Infinity" -> return Double.NEGATIVE_INFINITY + } + return when { + trimmed.startsWith("0x") || trimmed.startsWith("0X") -> trimmed.drop(2).toLongOrNull(16)?.toDouble() ?: Double.NaN + trimmed.startsWith("0o") || trimmed.startsWith("0O") -> trimmed.drop(2).toLongOrNull(8)?.toDouble() ?: Double.NaN + trimmed.startsWith("0b") || trimmed.startsWith("0B") -> trimmed.drop(2).toLongOrNull(2)?.toDouble() ?: Double.NaN + else -> trimmed.toDoubleOrNull() ?: Double.NaN + } +} + +private fun toBoolean(v: Any?): Boolean = when (v) { + null, is Unit -> false + is Boolean -> v + is Double -> v != 0.0 && !v.isNaN() + is String -> v.isNotEmpty() + is JsList -> true + is JsObject -> true + else -> true +} + +/** Array.prototype.join/toString treats holes/null/undefined elements as the empty string. */ +private fun joinElement(e: Any?): String = if (e == null || e is Unit) "" else toJsString(e) + +private fun toJsString(v: Any?): String = when (v) { + null -> "null" + is Unit -> "undefined" + is Boolean -> v.toString() + is Double -> if (v == floor(v) && !v.isInfinite()) v.toLong().toString() else v.toString() + is String -> v + is JsList -> v.elements.joinToString(",") { joinElement(it) } + is JsObject -> "[object Object]" + is NativeFn -> v.toString() + is JsFunction -> "function ${v.name ?: ""}() { [native code] }" + else -> v.toString() +} + +private fun strictEq(a: Any?, b: Any?): Boolean = when { + a is Double && b is Double -> a == b + a is String && b is String -> a == b + a is Boolean && b is Boolean -> a == b + a == null && b == null -> true + a is Unit && b is Unit -> true + else -> a === b +} + +private fun looseEq(a: Any?, b: Any?): Boolean { + if (strictEq(a, b)) return true + // null == undefined + val aNullish = a == null || a is Unit + val bNullish = b == null || b is Unit + if (aNullish || bNullish) return aNullish && bNullish + // number coercion + val an = a is Double || a is Boolean + val bn = b is Double || b is Boolean + if (an || bn) return toNumber(a) == toNumber(b) + if (a is String || b is String) return toJsString(a) == toJsString(b) + return false +} + +private class JsList(val elements: MutableList = mutableListOf()) { + var length: Int + get() = elements.size + set(v) { while (elements.size < v) elements.add(Unit); while (elements.size > v) elements.removeAt(elements.size - 1) } + + operator fun get(idx: Int): Any? = elements.getOrElse(idx) { Unit } + operator fun set(idx: Int, v: Any?) { while (elements.size <= idx) elements.add(Unit); elements[idx] = v } +} + +private class JsObject(val props: MutableMap = mutableMapOf(), var constructor: JsFunction? = null) + +private class JsFunction( + val name: String?, + val params: List, + val body: List, + val closure: Scope, +) + +private class Scope(val parent: Scope? = null) { + val vars = mutableMapOf() + + fun get(name: String): Any? { + if (vars.containsKey(name)) return vars[name] + return parent?.get(name) ?: Unit + } + + fun set(name: String, value: Any?) { + val scope = findOwner(name) + if (scope != null) scope.vars[name] = value else vars[name] = value + } + + fun define(name: String, value: Any?) { vars[name] = value } + + private fun findOwner(name: String): Scope? = + if (vars.containsKey(name)) this else parent?.findOwner(name) +} + +private class JsInterpreter( + private val maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, + private val maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, + private val scope: CoroutineScope? = null, +) { + private val globalScope = Scope() + + // Execution budget, reset at the start of every top-level eval() call. + private var instructionCount = 0L + private var startMark: TimeMark = TimeSource.Monotonic.markNow() + + init { installGlobals() } + + private fun installGlobals() { + val mathObj = JsObject(mutableMapOf( + "PI" to PI, "E" to E, + "floor" to nativeFn("floor") { args -> floor(toNumber(args.getOrNull(0))) }, + "ceil" to nativeFn("ceil") { args -> ceil(toNumber(args.getOrNull(0))) }, + "round" to nativeFn("round") { args -> round(toNumber(args.getOrNull(0))) }, + "abs" to nativeFn("abs") { args -> abs(toNumber(args.getOrNull(0))) }, + "sqrt" to nativeFn("sqrt") { args -> sqrt(toNumber(args.getOrNull(0))) }, + "pow" to nativeFn("pow") { args -> toNumber(args.getOrNull(0)).pow(toNumber(args.getOrNull(1))) }, + "log" to nativeFn("log") { args -> ln(toNumber(args.getOrNull(0))) }, + "sin" to nativeFn("sin") { args -> sin(toNumber(args.getOrNull(0))) }, + "cos" to nativeFn("cos") { args -> cos(toNumber(args.getOrNull(0))) }, + "tan" to nativeFn("tan") { args -> tan(toNumber(args.getOrNull(0))) }, + "max" to nativeFn("max") { args -> args.maxOfOrNull { toNumber(it) } ?: Double.NEGATIVE_INFINITY }, + "min" to nativeFn("min") { args -> args.minOfOrNull { toNumber(it) } ?: Double.POSITIVE_INFINITY }, + "random" to nativeFn("random") { _ -> Random.nextDouble() }, + "trunc" to nativeFn("trunc") { args -> truncate(toNumber(args.getOrNull(0))) }, + "log2" to nativeFn("log2") { args -> log2(toNumber(args.getOrNull(0))) }, + "log10" to nativeFn("log10") { args -> log10(toNumber(args.getOrNull(0))) }, + )) + globalScope.define("Math", mathObj) + + // For String.fromCharCode + val stringObj = JsObject(mutableMapOf( + "fromCharCode" to nativeFn("fromCharCode") { args -> args.joinToString("") { toNumber(it).toInt().toChar().toString() } } + )) + globalScope.define("String", stringObj) + + globalScope.define("parseInt", nativeFn("parseInt") { args -> + val s = toJsString(args.getOrNull(0)).trim() + var i = 0 + var negative = false + if (i < s.length && (s[i] == '+' || s[i] == '-')) { + negative = s[i] == '-' + i++ + } + var radix = args.getOrNull(1)?.let { toNumber(it).toInt() } ?: 0 + if (radix != 0 && (radix < 2 || radix > 36)) { + Double.NaN + } else { + val stripHexPrefix = radix == 0 || radix == 16 + if (radix == 0) radix = 10 + if (stripHexPrefix && i + 1 < s.length && s[i] == '0' && (s[i + 1] == 'x' || s[i + 1] == 'X')) { + radix = 16 + i += 2 + } + val start = i + while (i < s.length && digitValue(s[i], radix) != -1) i++ + if (i == start) { + Double.NaN + } else { + var value = 0.0 + for (idx in start until i) value = value * radix + digitValue(s[idx], radix) + if (negative) -value else value + } + } + }) + globalScope.define("parseFloat", nativeFn("parseFloat") { args -> toNumber(args.getOrNull(0)) }) + globalScope.define("isNaN", nativeFn("isNaN") { args -> toNumber(args.getOrNull(0)).isNaN() }) + globalScope.define("isFinite", nativeFn("isFinite") { args -> toNumber(args.getOrNull(0)).isFinite() }) + globalScope.define("decodeURIComponent", nativeFn("decodeURIComponent") { args -> toJsString(args.getOrNull(0)).decodeUrl() }) + globalScope.define("encodeURIComponent", nativeFn("encodeURIComponent") { args -> toJsString(args.getOrNull(0)).encodeUrl() }) + globalScope.define("escape", nativeFn("escape") { args -> toJsString(args.getOrNull(0)).encodeUrl() }) + globalScope.define("unescape", nativeFn("unescape") { args -> toJsString(args.getOrNull(0)).decodeUrl() }) + // Nested eval() reuses the current budget rather than resetting it, otherwise a + // script could keep itself alive forever via `while(true){ eval("1") }`. + globalScope.define("eval", nativeFn("eval") { args -> evalInternal(toJsString(args.getOrNull(0))) }) + globalScope.define("undefined", Unit) + globalScope.define("NaN", Double.NaN) + globalScope.define("Infinity", Double.POSITIVE_INFINITY) + + globalScope.define("Array", nativeFn("Array") { args -> + if (args.size == 1 && args[0] is Double) JsList(MutableList((args[0] as Double).toInt()) { Unit }) + else JsList(args.toMutableList()) + }) + + globalScope.define("Object", NativeFn({ args -> + // Object() called as a function, wrap primitive or return object as-is + when (val v = args.getOrNull(0)) { + null, is Unit -> JsObject() + is JsObject -> v + is JsList -> v + else -> JsObject() + } + }, "Object", mutableMapOf( + "keys" to nativeFn("keys") { args -> + when (val o = args.getOrNull(0)) { + is JsObject -> JsList(o.props.keys.map { it as Any? }.toMutableList()) + else -> JsList() + } + }, + "values" to nativeFn("values") { args -> + when (val o = args.getOrNull(0)) { + is JsObject -> JsList(o.props.values.toMutableList()) + else -> JsList() + } + } + ))) + + globalScope.define("Function", nativeFn("Function") { _ -> nativeFn("anonymous") { Unit } }) + globalScope.define("Number", nativeFn("Number") { args -> toNumber(args.getOrNull(0)) }) + globalScope.define("Boolean", nativeFn("Boolean") { args -> toBoolean(args.getOrNull(0)) }) + + // console.log (no-op for silence, but avoids errors) + val consoleObj = JsObject(mutableMapOf( + "log" to nativeFn("log") { _ -> Unit }, + "error" to nativeFn("error") { _ -> Unit }, + "warn" to nativeFn("warn") { _ -> Unit }, + )) + globalScope.define("console", consoleObj) + } + + private fun nativeFn(name: String, fn: (List) -> Any?): Any? = NativeFn(fn, name) + + fun eval(code: String): Any? { + instructionCount = 0 + startMark = TimeSource.Monotonic.markNow() + return evalInternal(code) + } + + /** Runs [code] against the current budget, without resetting it. */ + private fun evalInternal(code: String): Any? { + return try { + val lexer = Lexer(code) + val parser = Parser(lexer) + val stmts = parser.parseProgram() + var last: Any? = Unit + for (stmt in stmts) last = execNode(stmt, globalScope) + last + } catch (r: ReturnSignal) { + r.value + } catch (e: JsCancellationException) { + // CancellationException must never be swallowed. It signals that the + // enclosing coroutine has been cancelled and must propagate so that the + // coroutine can clean up correctly. + throw e + } catch (t: Throwable) { + logError(t) + Unit + } + } + + /** + * Called on every statement execution. Throws [JsExecutionLimitExceeded] once the + * script has used up its time or instruction budget, or the enclosing [CoroutineScope] + * has been cancelled. This is what lets something like `evalJs("while(true){}")` + * return instead of burning the CPU forever. + * + * [JsExecutionLimitExceeded] extends [Throwable] rather than [Exception], so a JS + * script cannot catch it with its own try/catch block (the [TryCatch] handler in + * [execNode] only catches [Exception]). + */ + private fun checkBudget() { + instructionCount++ + if (instructionCount >= maxInstructions) { + throw JsExecutionLimitExceeded("script exceeded max instruction count of $maxInstructions") + } + if (scope != null && !scope.isActive) { + throw JsCancellationException("script cancelled: coroutine scope is no longer active") + } + // Only sample the clock every 1024 ticks. Calling elapsedNow() on every single + // statement would add measurable overhead to normal (non-runaway) scripts. + if (instructionCount and 0x3FFL == 0L && startMark.elapsedNow() >= maxExecutionTime) { + throw JsExecutionLimitExceeded("script exceeded max execution time of $maxExecutionTime") + } + } + + fun getVar(name: String): Any? = globalScope.get(name).let { if (it is Unit) null else it } + fun setVar(name: String, value: Any?) = globalScope.define(name, value) + + private fun execNode(node: Node, scope: Scope): Any? { + checkBudget() + return when (node) { + is VarDecl -> { + for ((name, init) in node.decls) scope.define(name, init?.let { evalExpr(it, scope) }) + Unit + } + is ExprStmt -> evalExpr(node.expr, scope) + is BlockStmt -> { + val inner = Scope(scope) + var last: Any? = Unit + for (s in node.stmts) last = execNode(s, inner) + last + } + is ReturnStmt -> throw ReturnSignal(node.expr?.let { evalExpr(it, scope) }) + is IfStmt -> { + if (toBoolean(evalExpr(node.test, scope))) execNode(node.cons, scope) + else node.alt?.let { execNode(it, scope) } + } + is WhileStmt -> { + try { + while (toBoolean(evalExpr(node.test, scope))) { + try { execNode(node.body, scope) } catch (_: ContinueSignal) {} + } + } catch (_: BreakSignal) {} + Unit + } + is ForStmt -> { + val inner = Scope(scope) + node.init?.let { execNode(it, inner) } + try { + while (node.test == null || toBoolean(evalExpr(node.test, inner))) { + try { execNode(node.body, inner) } catch (_: ContinueSignal) {} + node.update?.let { evalExpr(it, inner) } + } + } catch (_: BreakSignal) {} + Unit + } + is ForInStmt -> { + val obj = evalExpr(node.obj, scope) + val inner = Scope(scope) + try { + when (obj) { + is JsObject -> for (key in obj.props.keys) { + inner.define(node.decl, key) + try { execNode(node.body, inner) } catch (_: ContinueSignal) {} + } + is JsList -> for (i in obj.elements.indices) { + inner.define(node.decl, i.toDouble()) + try { execNode(node.body, inner) } catch (_: ContinueSignal) {} + } + else -> {} + } + } catch (_: BreakSignal) {} + Unit + } + is TryCatch -> { + try { + for (s in node.body) execNode(s, scope) + } catch (ts: ThrowSignal) { + if (node.catchBody != null) { + val inner = Scope(scope) + if (node.catchParam != null) inner.define(node.catchParam, ts.value) + for (s in node.catchBody) execNode(s, inner) + } + } catch (e: JsCancellationException) { + // CancellationException must never be swallowed by a JS try/catch. + // It must propagate so withTimeout and structured concurrency + // work correctly. + throw e + } catch (_: Exception) { + // swallow other exceptions inside try (e.g. runtime errors) + } finally { + node.finallyBody?.forEach { execNode(it, scope) } + } + Unit + } + is ThrowStmt -> throw ThrowSignal(evalExpr(node.expr, scope)) + is BreakStmt -> throw BreakSignal + is ContinueStmt -> throw ContinueSignal + else -> evalExpr(node, scope) + } + } + + private fun evalExpr(node: Node, scope: Scope): Any? = when (node) { + is NumLit -> node.v + is StrLit -> node.v + is BoolLit -> node.v + NullLit -> null + UndefinedLit -> Unit + is Ident -> scope.get(node.name) + is ArrayLit -> JsList(node.elems.map { evalExpr(it, scope) }.toMutableList()) + is ObjLit -> JsObject(node.pairs.associate { (k, v) -> k to evalExpr(v, scope) }.toMutableMap()) + is FuncExpr -> { + val fn = JsFunction(node.name, node.params, node.body, scope) + if (node.name != null) scope.define(node.name, fn) + fn + } + is SeqExpr -> node.exprs.fold(Unit as Any?) { _, e -> evalExpr(e, scope) } + is TypeofExpr -> { + val v = try { evalExpr(node.expr, scope) } catch (_: Exception) { Unit } + when (v) { + is Unit -> "undefined" + null -> "object" + is Double -> "number" + is Boolean -> "boolean" + is String -> "string" + is JsFunction, is NativeFn -> "function" + else -> "object" + } + } + is UnaryExpr -> evalUnary(node, scope) + is BinExpr -> evalBinary(node, scope) + is AssignExpr -> evalAssign(node, scope) + is CondExpr -> if (toBoolean(evalExpr(node.test, scope))) evalExpr(node.cons, scope) else evalExpr(node.alt, scope) + is MemberExpr -> evalMember(node, scope) + is CallExpr -> evalCall(node, scope) + is NewExpr -> evalNew(node, scope) + else -> Unit + } + + private fun evalUnary(node: UnaryExpr, scope: Scope): Any? { + if (node.op == "++" || node.op == "--") { + val delta = if (node.op == "++") 1.0 else -1.0 + val old = toNumber(evalExpr(node.expr, scope)) + val newVal = old + delta + assignTo(node.expr, newVal, scope) + return if (node.prefix) newVal else old + } + val v = evalExpr(node.expr, scope) + return when (node.op) { + "-" -> -toNumber(v) + "+" -> toNumber(v) + "!" -> !toBoolean(v) + "~" -> toNumber(v).toLong().inv().toDouble() + else -> Unit + } + } + + private fun evalBinary(node: BinExpr, scope: Scope): Any? { + // Short-circuit + if (node.op == "&&") { + val l = evalExpr(node.left, scope) + return if (!toBoolean(l)) l else evalExpr(node.right, scope) + } + if (node.op == "||") { + val l = evalExpr(node.left, scope) + return if (toBoolean(l)) l else evalExpr(node.right, scope) + } + val l = evalExpr(node.left, scope) + val r = evalExpr(node.right, scope) + return when (node.op) { + "+" -> { + val lp = if (l is JsList || l is JsObject || l is NativeFn || l is JsFunction) toJsString(l) else l + val rp = if (r is JsList || r is JsObject || r is NativeFn || r is JsFunction) toJsString(r) else r + if (lp is String || rp is String) toJsString(lp) + toJsString(rp) + else toNumber(lp) + toNumber(rp) + } + "-" -> toNumber(l) - toNumber(r) + "*" -> toNumber(l) * toNumber(r) + "/" -> toNumber(l) / toNumber(r) + "%" -> toNumber(l) % toNumber(r) + "**" -> toNumber(l).pow(toNumber(r)) + "<" -> toNumber(l) < toNumber(r) + "<=" -> toNumber(l) <= toNumber(r) + ">" -> toNumber(l) > toNumber(r) + ">=" -> toNumber(l) >= toNumber(r) + "==" -> looseEq(l, r) + "!=" -> !looseEq(l, r) + "===" -> strictEq(l, r) + "!==" -> !strictEq(l, r) + "&" -> (toNumber(l).toLong() and toNumber(r).toLong()).toDouble() + "|" -> (toNumber(l).toLong() or toNumber(r).toLong()).toDouble() + "^" -> (toNumber(l).toLong() xor toNumber(r).toLong()).toDouble() + "<<" -> (toNumber(l).toLong() shl toNumber(r).toInt()).toDouble() + ">>" -> (toNumber(l).toLong() shr toNumber(r).toInt()).toDouble() + ">>>" -> (toNumber(l).toInt().toLong() and 0xFFFFFFFFL ushr toNumber(r).toInt()).toDouble() + "instanceof" -> when (r) { + is NativeFn -> when (r.name) { + "Array" -> l is JsList + "Object" -> l is JsObject || l is JsList + "Function" -> l is JsFunction || l is NativeFn + "String" -> l is String + "Number" -> l is Double + "Boolean" -> l is Boolean + else -> false + } + is JsFunction -> l is JsObject && l.constructor === r + else -> false + } + "in" -> when (r) { + is JsObject -> toJsString(l) in r.props + is JsList -> toNumber(l).toInt().let { it >= 0 && it < r.elements.size } + else -> false + } + else -> Unit + } + } + + private fun evalAssign(node: AssignExpr, scope: Scope): Any? { + val right = evalExpr(node.right, scope) + val value = if (node.op == "=") right else { + val left = evalExpr(node.left, scope) + when (node.op) { + "+=" -> if (left is String || right is String) toJsString(left) + toJsString(right) else toNumber(left) + toNumber(right) + "-=" -> toNumber(left) - toNumber(right) + "*=" -> toNumber(left) * toNumber(right) + "/=" -> toNumber(left) / toNumber(right) + "%=" -> toNumber(left) % toNumber(right) + "**=" -> toNumber(left).pow(toNumber(right)) + else -> right + } + } + assignTo(node.left, value, scope) + return value + } + + private fun assignTo(target: Node, value: Any?, scope: Scope) { + when (target) { + is Ident -> scope.set(target.name, value) + is MemberExpr -> { + val obj = evalExpr(target.obj, scope) + val key = propKey(target.prop, target.computed, scope) + when (obj) { + is JsObject -> obj.props[key] = value + is JsList -> { + val idx = key.toIntOrNull() + if (idx != null) obj[idx] = value + else if (key == "length") obj.length = toNumber(value).toInt() + } + else -> {} + } + } + // Anything else (e.g. `true++` or `5 = 3`) is not a valid assignment target in + // JS. This would be a SyntaxError/ReferenceError there, so we fail the same way + // here rather than silently doing nothing. + else -> throw RuntimeException("Invalid assignment target: $target") + } + } + + /** Resolves a MemberExpr property node to its string key without unsafe casts. */ + private fun propKey(prop: Node, computed: Boolean, scope: Scope): String = + if (computed) toJsString(evalExpr(prop, scope)) + else (prop as? StrLit)?.v ?: toJsString(evalExpr(prop, scope)) + + private fun evalMember(node: MemberExpr, scope: Scope): Any? { + val obj = evalExpr(node.obj, scope) + val key = propKey(node.prop, node.computed, scope) + return getMember(obj, key) + } + + private fun getMember(obj: Any?, key: String): Any? = when (obj) { + is NativeFn -> obj.props[key] ?: Unit + is JsObject -> obj.props[key] ?: Unit + is JsList -> when (key) { + "length" -> obj.length.toDouble() + "join" -> nativeFn("join") { args -> + val sep = args.getOrNull(0)?.let { toJsString(it) } ?: "," + obj.elements.joinToString(sep) { joinElement(it) } + } + "reverse" -> nativeFn("reverse") { _ -> obj.elements.reverse(); obj } + "push" -> nativeFn("push") { args -> args.forEach { obj.elements.add(it) }; obj.elements.size.toDouble() } + "pop" -> nativeFn("pop") { _ -> if (obj.elements.isEmpty()) Unit else obj.elements.removeAt(obj.elements.size - 1) } + "shift" -> nativeFn("shift") { _ -> if (obj.elements.isEmpty()) Unit else obj.elements.removeAt(0) } + "unshift" -> nativeFn("unshift") { args -> args.reversed().forEach { obj.elements.add(0, it) }; obj.elements.size.toDouble() } + "slice" -> nativeFn("slice") { args -> + val start = args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 0 + val end = args.getOrNull(1)?.let { toNumber(it).toInt() } ?: obj.elements.size + val s = if (start < 0) maxOf(0, obj.elements.size + start) else minOf(start, obj.elements.size) + val e = if (end < 0) maxOf(0, obj.elements.size + end) else minOf(end, obj.elements.size) + JsList(obj.elements.subList(maxOf(0, s), maxOf(s, e)).toMutableList()) + } + "splice" -> nativeFn("splice") { args -> + val start = args.getOrNull(0)?.let { toNumber(it).toInt() }?.let { if (it < 0) maxOf(0, obj.elements.size + it) else minOf(it, obj.elements.size) } ?: 0 + val deleteCount = args.getOrNull(1)?.let { toNumber(it).toInt() }?.coerceIn(0, obj.elements.size - start) ?: (obj.elements.size - start) + val removed = JsList(obj.elements.subList(start, start + deleteCount).toMutableList()) + repeat(deleteCount) { obj.elements.removeAt(start) } + args.drop(2).forEachIndexed { i, v -> obj.elements.add(start + i, v) } + removed + } + "indexOf" -> nativeFn("indexOf") { args -> + val v = args.getOrNull(0); val start = args.getOrNull(1)?.let { toNumber(it).toInt() } ?: 0 + obj.elements.indexOfFirst { strictEq(it, v) }.let { if (it < start) -1.0 else it.toDouble() } + } + "map" -> nativeFn("map") { args -> + val fn = args.getOrNull(0) + JsList(obj.elements.mapIndexed { i, v -> callAny(fn, listOf(v, i.toDouble(), obj), null) }.toMutableList()) + } + "filter" -> nativeFn("filter") { args -> + val fn = args.getOrNull(0) + JsList(obj.elements.filterIndexed { i, v -> toBoolean(callAny(fn, listOf(v, i.toDouble(), obj), null)) }.toMutableList()) + } + "forEach" -> nativeFn("forEach") { args -> + val fn = args.getOrNull(0) + obj.elements.forEachIndexed { i, v -> callAny(fn, listOf(v, i.toDouble(), obj), null) } + Unit + } + "reduce" -> nativeFn("reduce") { args -> + val fn = args.getOrNull(0) + var acc: Any? = if (args.size > 1) args[1] else obj.elements.firstOrNull() ?: Unit + val startIdx = if (args.size > 1) 0 else 1 + for (i in startIdx until obj.elements.size) acc = callAny(fn, listOf(acc, obj.elements[i], i.toDouble(), obj), null) + acc + } + "concat" -> nativeFn("concat") { args -> + val result = JsList(obj.elements.toMutableList()) + args.forEach { a -> when (a) { is JsList -> result.elements.addAll(a.elements); else -> result.elements.add(a) } } + result + } + "find" -> nativeFn("find") { args -> + val fn = args.getOrNull(0) + obj.elements.firstOrNull { toBoolean(callAny(fn, listOf(it), null)) } ?: Unit + } + "some" -> nativeFn("some") { args -> + val fn = args.getOrNull(0) + obj.elements.any { toBoolean(callAny(fn, listOf(it), null)) } + } + "every" -> nativeFn("every") { args -> + val fn = args.getOrNull(0) + obj.elements.all { toBoolean(callAny(fn, listOf(it), null)) } + } + "sort" -> nativeFn("sort") { args -> + val fn = args.getOrNull(0) + if (fn == null) obj.elements.sortWith { a, b -> toJsString(a).compareTo(toJsString(b)) } + else obj.elements.sortWith { a, b -> toNumber(callAny(fn, listOf(a, b), null)).toInt() } + obj + } + "includes" -> nativeFn("includes") { args -> obj.elements.any { looseEq(it, args.getOrNull(0)) } } + "toString" -> nativeFn("toString") { _ -> obj.elements.joinToString(",") { joinElement(it) } } + "flat" -> nativeFn("flat") { _ -> + val result = JsList() + obj.elements.forEach { if (it is JsList) result.elements.addAll(it.elements) else result.elements.add(it) } + result + } + else -> key.toIntOrNull()?.let { obj[it] } ?: Unit + } + is String -> when (key) { + "length" -> obj.length.toDouble() + "split" -> nativeFn("split") { args -> + val sep = args.getOrNull(0) + when { + sep == null || sep is Unit -> JsList(mutableListOf(obj)) + sep is String && sep.isEmpty() -> JsList(obj.map { it.toString() as Any? }.toMutableList()) + sep is String -> JsList(obj.split(sep).map { it as Any? }.toMutableList()) + else -> JsList(obj.split(toJsString(sep)).map { it as Any? }.toMutableList()) + } + } + "join" -> nativeFn("join") { args -> obj } // strings don't have join but just in case + "replace" -> nativeFn("replace") { args -> + val from = args.getOrNull(0); val to = toJsString(args.getOrNull(1)) + when (from) { + is String -> obj.replaceFirst(from, to) + else -> obj.replace(toJsString(from), to) + } + } + "replaceAll" -> nativeFn("replaceAll") { args -> + val from = args.getOrNull(0); val to = toJsString(args.getOrNull(1)) + obj.replace(toJsString(from), to) + } + "indexOf" -> nativeFn("indexOf") { args -> obj.indexOf(toJsString(args.getOrNull(0))).toDouble() } + "lastIndexOf" -> nativeFn("lastIndexOf") { args -> obj.lastIndexOf(toJsString(args.getOrNull(0))).toDouble() } + "includes" -> nativeFn("includes") { args -> obj.contains(toJsString(args.getOrNull(0))) } + "startsWith" -> nativeFn("startsWith") { args -> obj.startsWith(toJsString(args.getOrNull(0))) } + "endsWith" -> nativeFn("endsWith") { args -> obj.endsWith(toJsString(args.getOrNull(0))) } + "slice" -> nativeFn("slice") { args -> + val start = args.getOrNull(0)?.let { toNumber(it).toInt() }?.let { if (it < 0) maxOf(0, obj.length + it) else minOf(it, obj.length) } ?: 0 + val end = args.getOrNull(1)?.let { toNumber(it).toInt() }?.let { if (it < 0) maxOf(0, obj.length + it) else minOf(it, obj.length) } ?: obj.length + if (end <= start) "" else obj.substring(start, end) + } + "substr" -> nativeFn("substr") { args -> + val start = args.getOrNull(0)?.let { toNumber(it).toInt() }?.let { if (it < 0) maxOf(0, obj.length + it) else minOf(it, obj.length) } ?: 0 + val len = args.getOrNull(1)?.let { toNumber(it).toInt() } ?: (obj.length - start) + if (len <= 0) "" else obj.substring(start, minOf(start + len, obj.length)) + } + "substring" -> nativeFn("substring") { args -> + val a = args.getOrNull(0)?.let { toNumber(it).toInt().coerceIn(0, obj.length) } ?: 0 + val b = args.getOrNull(1)?.let { toNumber(it).toInt().coerceIn(0, obj.length) } ?: obj.length + obj.substring(minOf(a, b), maxOf(a, b)) + } + "charAt" -> nativeFn("charAt") { args -> + val i = args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 0 + if (i < 0 || i >= obj.length) "" else obj[i].toString() + } + "charCodeAt" -> nativeFn("charCodeAt") { args -> + val i = args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 0 + if (i < 0 || i >= obj.length) Double.NaN else obj[i].code.toDouble() + } + "codePointAt" -> nativeFn("codePointAt") { args -> + val i = args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 0 + if (i < 0 || i >= obj.length) Double.NaN else obj[i].code.toDouble() + } + "toUpperCase", "toLocaleUpperCase" -> nativeFn("toUpperCase") { _ -> obj.uppercase() } + "toLowerCase", "toLocaleLowerCase" -> nativeFn("toLowerCase") { _ -> obj.lowercase() } + "trim" -> nativeFn("trim") { _ -> obj.trim() } + "trimStart", "trimLeft" -> nativeFn("trimStart") { _ -> obj.trimStart() } + "trimEnd", "trimRight" -> nativeFn("trimEnd") { _ -> obj.trimEnd() } + "repeat" -> nativeFn("repeat") { args -> obj.repeat(toNumber(args.getOrNull(0)).toInt().coerceAtLeast(0)) } + "padStart" -> nativeFn("padStart") { args -> + val len = toNumber(args.getOrNull(0)).toInt(); val pad = args.getOrNull(1)?.let { toJsString(it) } ?: " " + if (obj.length >= len) obj else (pad.repeat(len) + obj).takeLast(len) + } + "padEnd" -> nativeFn("padEnd") { args -> + val len = toNumber(args.getOrNull(0)).toInt(); val pad = args.getOrNull(1)?.let { toJsString(it) } ?: " " + if (obj.length >= len) obj else (obj + pad.repeat(len)).take(len) + } + "toString" -> nativeFn("toString") { _ -> obj } + "valueOf" -> nativeFn("valueOf") { _ -> obj } + "match" -> nativeFn("match") { args -> + val pattern = toJsString(args.getOrNull(0)) + try { + val result = Regex(pattern).find(obj) + if (result == null) null + else JsList(result.groupValues.map { it as Any? }.toMutableList()) + } catch (_: Exception) { null } + } + else -> key.toIntOrNull()?.let { + if (it >= 0 && it < obj.length) obj[it].toString() else Unit + } ?: Unit + } + is Double -> when (key) { + "toString" -> nativeFn("toString") { args -> + val radix = args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 10 + if (radix == 10) toJsString(obj) else obj.toLong().toString(radix) + } + "toFixed" -> nativeFn("toFixed") { args -> + val digits = (args.getOrNull(0)?.let { toNumber(it).toInt() } ?: 0).coerceIn(0, 20) + val factor = 10.0.pow(digits) + val rounded = round(obj * factor) / factor + val sign = if (rounded < 0) "-" else "" + val absVal = abs(rounded) + val intPart = absVal.toLong() + val fracPart = round((absVal - intPart) * factor).toLong() + val fracStr = fracPart.toString().padStart(digits, '0') + if (digits == 0) "$sign$intPart" else "$sign$intPart.$fracStr" + } + else -> Unit + } + else -> Unit + } + + private fun evalCall(node: CallExpr, scope: Scope): Any? { + val (callee, thisVal) = resolveCallee(node.callee, scope) + val args = node.args.map { evalExpr(it, scope) } + return callAny(callee, args, thisVal) + } + + private fun resolveCallee(calleeNode: Node, scope: Scope): Pair { + return if (calleeNode is MemberExpr) { + val obj = evalExpr(calleeNode.obj, scope) + val key = propKey(calleeNode.prop, calleeNode.computed, scope) + getMember(obj, key) to obj + } else { + evalExpr(calleeNode, scope) to null + } + } + + private fun evalNew(node: NewExpr, scope: Scope): Any? { + val callee = evalExpr(node.callee, scope) + val args = node.args.map { evalExpr(it, scope) } + // NativeFn constructors (e.g. Array) return their value directly + if (callee is NativeFn) return callee.fn(args) + val thisVal = JsObject(constructor = callee as? JsFunction) + val result = callAny(callee, args, thisVal) + // JS 'new' returns the constructed object unless the constructor explicitly returns an object + return if (result is JsObject) result else thisVal + } + + private fun callAny(callee: Any?, args: List, thisVal: Any?): Any? = when (callee) { + is NativeFn -> callee.fn(args) + is JsFunction -> { + val fnScope = Scope(callee.closure) + fnScope.define("this", thisVal) + fnScope.define("arguments", JsList(args.toMutableList())) + callee.params.forEachIndexed { i, p -> fnScope.define(p, args.getOrElse(i) { Unit }) } + try { + var last: Any? = Unit + for (s in callee.body) last = execNode(s, fnScope) + last + } catch (r: ReturnSignal) { + r.value + } + } + else -> Unit + } +} + +// Wrapper so we can store Kotlin lambdas as "callable" values +private class NativeFn(val fn: (List) -> Any?, val name: String, val props: MutableMap = mutableMapOf()) { + override fun toString(): String = "function $name() { [native code] }" +} From d26df141ae96f69f7f5c0c4c27674632c73522ad Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:04:27 -0600 Subject: [PATCH 010/114] - --- .../kotlin/com/lagradost/cloudstream3/MainAPI.kt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt index 0b27941e9ca..5b04318c4d4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt @@ -791,22 +791,6 @@ fun fixTitle(str: String): String { } } -/** - * Get rhino context in a safe way as it needs to be initialized on the main thread. - * - * Make sure you get the scope using: val scope: Scriptable = rhino.initSafeStandardObjects() - * - * Use like the following: rhino.evaluateString(scope, js, "JavaScript", 1, null) - **/ -suspend fun getRhinoContext(): org.mozilla.javascript.Context { - return Coroutines.mainWork { - val rhino = org.mozilla.javascript.Context.enter() - rhino.initSafeStandardObjects() - rhino.setInterpretedMode(true) - rhino - } -} - /** https://www.imdb.com/title/tt2861424/ -> tt2861424 * @param url Imdb Url you need to get the Id from. * @return imdb id formatted string From 0be0d3a1ba9efb325964225052589a2912df989f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:05:04 -0600 Subject: [PATCH 011/114] Update --- .../lagradost/cloudstream3/extractors/Userload.kt | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt index 0b9ed9ab644..48d833bdce4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt @@ -32,17 +32,8 @@ open class Userload : ExtractorApi() { return array } - private fun evaluateMath(mathExpression : String): String { - val rhino = Context.enter() - rhino.initStandardObjects() - rhino.setInterpretedMode(true) - val scope: Scriptable = rhino.initStandardObjects() - return try { - rhino.evaluateString(scope, "eval($mathExpression)", "JavaScript", 1, null).toString() - } - catch (e: EvaluatorException){ - "" - } + private fun evaluateMath(mathExpression: String): String { + return jsValueToString(evalJs("eval($mathExpression)")) } private fun decodeVideoJs(text: String): List { @@ -113,4 +104,4 @@ open class Userload : ExtractorApi() { return extractedLinksList } -} \ No newline at end of file +} From e789b1a7fb29483cab1c5a011dfc68d810868257 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:05:24 -0600 Subject: [PATCH 012/114] - --- .../kotlin/com/lagradost/cloudstream3/extractors/Userload.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt index 48d833bdce4..d6c3757e5e2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt @@ -3,9 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* -import org.mozilla.javascript.Context -import org.mozilla.javascript.EvaluatorException -import org.mozilla.javascript.Scriptable open class Userload : ExtractorApi() { override var name = "Userload" From 157799472acf52a04fff549fef6ada5b6493b22e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:06:00 -0600 Subject: [PATCH 013/114] - --- .../cloudstream3/extractors/StreamTape.kt | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt index 2da73553e2f..97967486372 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt @@ -4,8 +4,8 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities +import com.lagradost.cloudstream3.utils.evalJs import com.lagradost.cloudstream3.utils.newExtractorLink -import org.mozilla.javascript.Context class Watchadsontape : StreamTape() { override var mainUrl = "https://watchadsontape.com" @@ -30,24 +30,14 @@ open class StreamTape : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List? { with(app.get(url)) { - var result = - this.document().select("script").firstOrNull { it.html().contains("botlink').innerHTML") } - ?.html()?.lines()?.firstOrNull{ it.contains("botlink').innerHTML") }?.let { - val scriptContent = - it.substringAfter(").innerHTML").replaceFirst("=", "var url =") - val rhino = Context.enter() - rhino.setInterpretedMode(true) - val scope = rhino.initStandardObjects() - var result = "" - try { - rhino.evaluateString(scope, scriptContent, "url", 1, null) - result = scope.get("url", scope).toString() - }finally { - rhino.close() - } - result + val result = + this.document.select("script").firstOrNull { it.html().contains("botlink').innerHTML") } + ?.html()?.lines()?.firstOrNull { it.contains("botlink').innerHTML") }?.let { + val scriptContent = it.substringAfter(").innerHTML").replaceFirst("=", "var url =") + evalJs(scriptContent, "url")?.toString() } - if(!result.isNullOrEmpty()){ + + if (!result.isNullOrEmpty()) { val extractedUrl = "https:${result}&stream=1" return listOf( newExtractorLink( From 44c3379d34bbc3b601105417944a048333a7b14d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:07:49 -0600 Subject: [PATCH 014/114] - --- .../kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index ef4e8ff6747..99284605d4e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -409,7 +409,6 @@ enum class ExtractorLinkType { MAGNET; // See https://www.iana.org/assignments/media-types/media-types.xhtml - @JsonIgnore fun getMimeType(): String { return when (this) { VIDEO -> "video/mp4" From 66070cf3c6bc0c77bd3b6caf9c600a5cb53a9670 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:38:02 -0600 Subject: [PATCH 015/114] - --- .../lagradost/cloudstream3/ParCollections.kt | 68 +------------------ 1 file changed, 1 insertion(+), 67 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/ParCollections.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/ParCollections.kt index 9e6cb99e5be..df55a804e67 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/ParCollections.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/ParCollections.kt @@ -15,19 +15,6 @@ suspend fun Map.amap(f: suspend (Map.Entry) -> R): Lis map { async { f(it) } }.map { it.await() } } -/** - * Short for "Asynchronous Parallel Map", but is not really parallel, only concurrent. - */ -@Deprecated( - "This blocks with runBlocking, and should not be used inside a suspended context", - replaceWith = ReplaceWith("amap(f)", "com.lagradost.cloudstream3.amap"), - level = DeprecationLevel.ERROR -) -@Throws(CancellationException::class) -fun Map.apmap(f: suspend (Map.Entry) -> R): List = runBlocking { - map { async { f(it) } }.map { it.await() } -} - /** * Short for "Asynchronous Map", runs on all values concurrently, * this means that if you are not doing networking, you should use a regular map @@ -39,32 +26,6 @@ suspend fun List.amap(f: suspend (A) -> B): List = map { async { f(it) } }.map { it.await() } } -/** - * Short for "Asynchronous Parallel Map", but is not really parallel, only concurrent. - */ -@Deprecated( - "This blocks with runBlocking, and should not be used inside a suspended context", - replaceWith = ReplaceWith("amap(f)", "com.lagradost.cloudstream3.amap"), - level = DeprecationLevel.ERROR -) -@Throws(CancellationException::class) -fun List.apmap(f: suspend (A) -> B): List = runBlocking { - map { async { f(it) } }.map { it.await() } -} - -/** - * Short for "Asynchronous Parallel Map" with an Index, but is not really parallel, only concurrent. - */ -@Deprecated( - "This blocks with runBlocking, and should not be used inside a suspended context", - replaceWith = ReplaceWith("amapIndexed(f)", "com.lagradost.cloudstream3.amapIndexed"), - level = DeprecationLevel.ERROR -) -@Throws(CancellationException::class) -fun List.apmapIndexed(f: suspend (index: Int, A) -> B): List = runBlocking { - mapIndexed { index, a -> async { f(index, a) } }.map { it.await() } -} - /** * Short for "Asynchronous Map" with an Index, runs on all values concurrently, * this means that if you are not doing networking, you should use a regular mapIndexed @@ -76,33 +37,6 @@ suspend fun List.amapIndexed(f: suspend (index: Int, A) -> B): List mapIndexed { index, a -> async { f(index, a) } }.map { it.await() } } -/** - * Short for "Argument Asynchronous Map" because it allows for a variadic number of paramaters. - * - * Runs all different functions at the same time and awaits for all to be finished, then returns - * a list of all those items or null if they fail. However Unit is often used. - */ -@Deprecated( - "This blocks with runBlocking, and should not be used inside a suspended context", - replaceWith = ReplaceWith("runAllAsync(transforms)", "com.lagradost.cloudstream3.runAllAsync"), - level = DeprecationLevel.ERROR -) -@Throws(CancellationException::class) -fun argamap( - vararg transforms: suspend () -> R, -) : List = runBlocking { - transforms.map { - async { - try { - it.invoke() - } catch (e: Exception) { - logError(e) - null - } - } - }.map { it.await() } -} - /** * Runs all different functions at the same time and awaits for all to be finished, then returns * a list of all those items or null if they fail. However Unit is often used. @@ -122,4 +56,4 @@ suspend fun runAllAsync( } } }.map { it.await() } -} \ No newline at end of file +} From 6f879c9c41c1ac8e3fd7998e2abd010147f59f1a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:39:18 -0600 Subject: [PATCH 016/114] Coroutines api --- .../cloudstream3/mvvm/ArchComponentExt.kt | 88 ++++++------------- .../cloudstream3/utils/Coroutines.kt | 9 +- .../mvvm/ArchComponentExt.jvmCommon.kt | 37 ++++++++ .../utils/Coroutines.jvmCommon.kt | 6 ++ 4 files changed, 77 insertions(+), 63 deletions(-) create mode 100644 library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.jvmCommon.kt create mode 100644 library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt index e13bcf5ec65..aee776456fc 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt @@ -1,16 +1,14 @@ package com.lagradost.cloudstream3.mvvm +import androidx.annotation.AnyThread +import androidx.annotation.WorkerThread import com.lagradost.api.Log import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.utils.AppDebug +import com.lagradost.cloudstream3.utils.Coroutines.ioWork import kotlinx.coroutines.* -import java.io.InterruptedIOException -import java.net.SocketTimeoutException -import java.net.UnknownHostException -import javax.net.ssl.SSLHandshakeException import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext -import kotlin.reflect.full.NoSuchPropertyException const val DEBUG_EXCEPTION = "THIS IS A DEBUG EXCEPTION!" const val DEBUG_PRINT = "DEBUG PRINT" @@ -59,7 +57,7 @@ sealed class Resource { companion object { fun fromResult(result: Result) : Resource { val value = result.getOrNull() - return if(value != null) { + return if (value != null) { Success(value) } else { throwAbleToResource(result.exceptionOrNull() ?: Exception("this should not be possible")) @@ -70,7 +68,6 @@ sealed class Resource { fun logError(throwable: Throwable) { Log.d("ApiError", "-------------------------------------------------------------------") - Log.d("ApiError", "safeApiCall: " + throwable.localizedMessage) Log.d("ApiError", "safeApiCall: " + throwable.message) throwable.printStackTrace() Log.d("ApiError", "-------------------------------------------------------------------") @@ -127,16 +124,18 @@ suspend fun suspendSafeApiCall(apiCall: suspend () -> T): T? { } fun Throwable.getAllMessages(): String { - return (this.localizedMessage ?: "") + (this.cause?.getAllMessages()?.let { "\n$it" } ?: "") + return (this.message ?: "") + (this.cause?.getAllMessages()?.let { "\n$it" } ?: "") } fun Throwable.getStackTracePretty(showMessage: Boolean = true): String { - val prefix = if (showMessage) this.localizedMessage?.let { "\n$it" } ?: "" else "" - return prefix + this.stackTrace.joinToString( - separator = "\n" - ) { - "${it.fileName} ${it.lineNumber}" - } + val prefix = if (showMessage) this.message?.let { "\n$it" } ?: "" else "" + return prefix + this.stackTraceToString() + .lines() + .mapNotNull { line -> + val trimmed = line.trim() + if (trimmed.startsWith("at ")) trimmed.removePrefix("at ") else null + } + .joinToString("\n") } fun safeFail(throwable: Throwable): Resource { @@ -160,50 +159,25 @@ fun CoroutineScope.launchSafe( return this.launch(context, start, obj) } +expect fun platformThrowAbleToResource(throwable: Throwable): Resource + fun throwAbleToResource( throwable: Throwable ): Resource { return when (throwable) { - is NoSuchMethodException, is NoSuchFieldException, is NoSuchMethodError, is NoSuchFieldError, is NoSuchPropertyException -> { - Resource.Failure( - false, - "App or extension is outdated, update the app or try pre-release.\n${throwable.message}" // todo add exact version? - ) - } - is NullPointerException -> { - for (line in throwable.stackTrace) { - if (line?.fileName?.endsWith("provider.kt", ignoreCase = true) == true) { - return Resource.Failure( - false, - "NullPointerException at ${line.fileName} ${line.lineNumber}\nSite might have updated or added Cloudflare/DDOS protection" - ) - } + val traceLine = throwable.stackTraceToString() + .lines() + .firstOrNull { it.contains("provider.kt", ignoreCase = true) } + if (traceLine != null) { + return Resource.Failure( + false, + "NullPointerException at $traceLine\nSite might have updated or added Cloudflare/DDOS protection" + ) } safeFail(throwable) } - is SocketTimeoutException, is InterruptedIOException -> { - Resource.Failure( - true, - "Connection Timeout\nPlease try again later." - ) - } -// is HttpException -> { -// Resource.Failure( -// false, -// throwable.statusCode, -// null, -// throwable.message ?: "HttpException" -// ) -// } - is UnknownHostException -> { - Resource.Failure( - true, - "Cannot connect to server, try again later.\n${throwable.message}" - ) - } - is ErrorLoadingException -> { Resource.Failure( true, @@ -215,29 +189,23 @@ fun throwAbleToResource( Resource.Failure(false, "This operation is not implemented.") } - is SSLHandshakeException -> { - Resource.Failure( - true, - (throwable.message ?: "SSLHandshakeException") + "\nTry a VPN or DNS." - ) - } - is CancellationException -> { throwable.cause?.let { throwAbleToResource(it) } ?: safeFail(throwable) } - else -> safeFail(throwable) + else -> platformThrowAbleToResource(throwable) } } +@AnyThread suspend fun safeApiCall( - apiCall: suspend () -> T, + @WorkerThread apiCall: suspend () -> T, ): Resource { - return withContext(Dispatchers.IO) { + return apiCall.ioWork { try { - Resource.Success(apiCall.invoke()) + Resource.Success(it()) } catch (throwable: Throwable) { logError(throwable) throwAbleToResource(throwable) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt index d15ea129c29..baa2dce8fbc 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt @@ -10,6 +10,9 @@ import kotlinx.coroutines.* @AnyThread expect fun runOnMainThreadNative(@MainThread work: (() -> Unit)) + +expect val workerDispatcher: CoroutineDispatcher + object Coroutines { @AnyThread fun T.main(@MainThread work: suspend ((T) -> Unit)): Job { @@ -22,7 +25,7 @@ object Coroutines { @AnyThread fun T.ioSafe(@WorkerThread work: suspend (CoroutineScope.(T) -> Unit)): Job { val value = this - return CoroutineScope(Dispatchers.IO).launchSafe { + return CoroutineScope(workerDispatcher).launchSafe { work(value) } } @@ -30,7 +33,7 @@ object Coroutines { @AnyThread suspend fun V.ioWorkSafe(@WorkerThread work: suspend (CoroutineScope.(V) -> T)): T? { val value = this - return withContext(Dispatchers.IO) { + return withContext(workerDispatcher) { try { work(value) } catch (e: Exception) { @@ -43,7 +46,7 @@ object Coroutines { @AnyThread suspend fun V.ioWork(@WorkerThread work: suspend (CoroutineScope.(V) -> T)): T { val value = this - return withContext(Dispatchers.IO) { + return withContext(workerDispatcher) { work(value) } } diff --git a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.jvmCommon.kt b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.jvmCommon.kt new file mode 100644 index 00000000000..f2ff5e3acb0 --- /dev/null +++ b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.jvmCommon.kt @@ -0,0 +1,37 @@ +package com.lagradost.cloudstream3.mvvm + +import java.io.InterruptedIOException +import java.net.SocketTimeoutException +import java.net.UnknownHostException +import javax.net.ssl.SSLHandshakeException +import kotlin.reflect.full.NoSuchPropertyException + +actual fun platformThrowAbleToResource(throwable: Throwable): Resource { + return when (throwable) { + is NoSuchMethodException, is NoSuchFieldException, is NoSuchMethodError, is NoSuchFieldError, is NoSuchPropertyException -> { + Resource.Failure( + false, + "App or extension is outdated, update the app or try pre-release.\n${throwable.message}" // todo add exact version? + ) + } + is SocketTimeoutException, is InterruptedIOException -> { + Resource.Failure( + true, + "Connection Timeout\nPlease try again later." + ) + } + is UnknownHostException -> { + Resource.Failure( + true, + "Cannot connect to server, try again later.\n${throwable.message}" + ) + } + is SSLHandshakeException -> { + Resource.Failure( + true, + (throwable.message ?: "SSLHandshakeException") + "\nTry a VPN or DNS." + ) + } + else -> safeFail(throwable) + } +} diff --git a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt new file mode 100644 index 00000000000..697df909381 --- /dev/null +++ b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt @@ -0,0 +1,6 @@ +package com.lagradost.cloudstream3.utils + +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers + +actual val workerDispatcher: CoroutineDispatcher = Dispatchers.IO From 1b5b69ee1f905c4bcc7543234ac54d76387238ab Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:39:54 -0600 Subject: [PATCH 017/114] Improve ContextHelper API for KMP --- .../com/lagradost/api/ContextHelper.android.kt | 15 +++++---------- .../kotlin/com/lagradost/api/ContextHelper.kt | 11 +++++------ .../kotlin/com/lagradost/api/ContextHelper.jvm.kt | 10 ++-------- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/library/src/androidMain/kotlin/com/lagradost/api/ContextHelper.android.kt b/library/src/androidMain/kotlin/com/lagradost/api/ContextHelper.android.kt index 5e5897deb2d..6ace780ecb6 100644 --- a/library/src/androidMain/kotlin/com/lagradost/api/ContextHelper.android.kt +++ b/library/src/androidMain/kotlin/com/lagradost/api/ContextHelper.android.kt @@ -3,19 +3,14 @@ package com.lagradost.api import android.content.Context import java.lang.ref.WeakReference -var ctx: WeakReference? = null +private var contextRef: WeakReference? = null /** * Helper function for Android specific context. Not usable in JVM. * Do not use this unless absolutely necessary. */ -actual fun getContext(): Any? { - return ctx?.get() -} +actual fun getContext(): Any? = contextRef?.get() -actual fun setContext(context: WeakReference) { - val actualContext = context.get() as? Context - if (actualContext != null) { - ctx = WeakReference(actualContext) - } -} \ No newline at end of file +actual fun setContext(context: Any?) { + contextRef = (context as? Context)?.let { WeakReference(it) } +} diff --git a/library/src/commonMain/kotlin/com/lagradost/api/ContextHelper.kt b/library/src/commonMain/kotlin/com/lagradost/api/ContextHelper.kt index fb54e3ca944..451ec80e841 100644 --- a/library/src/commonMain/kotlin/com/lagradost/api/ContextHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/api/ContextHelper.kt @@ -1,16 +1,15 @@ package com.lagradost.api -import java.lang.ref.WeakReference - /** - * Set context for android specific code such as webview. - * Does nothing on JVM. + * Set context for Android-specific code such as webview. + * Does nothing on non-Android platforms. */ -expect fun setContext(context: WeakReference) +expect fun setContext(context: Any?) + /** * Helper function for Android specific context. * Do not use this unless absolutely necessary. * setContext() must be called before this is called. - * @return Context if on android, null if not. + * @return Context if on Android, null if not. */ expect fun getContext(): Any? diff --git a/library/src/jvmMain/kotlin/com/lagradost/api/ContextHelper.jvm.kt b/library/src/jvmMain/kotlin/com/lagradost/api/ContextHelper.jvm.kt index a30810b89a4..83cae11a5c6 100644 --- a/library/src/jvmMain/kotlin/com/lagradost/api/ContextHelper.jvm.kt +++ b/library/src/jvmMain/kotlin/com/lagradost/api/ContextHelper.jvm.kt @@ -1,10 +1,4 @@ package com.lagradost.api -import java.lang.ref.WeakReference - -actual fun getContext(): Any? { - return null -} - -actual fun setContext(context: WeakReference) { -} \ No newline at end of file +actual fun getContext(): Any? = null +actual fun setContext(context: Any?) = Unit From 77a0423ebfbb411ace3c1afcdd4d727102aa9ba3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:40:39 -0600 Subject: [PATCH 018/114] Locale --- .../utils/SubtitleHelperPlatform.android.kt | 24 ++++++++++++++ .../cloudstream3/utils/SubtitleHelper.kt | 27 ++-------------- .../utils/SubtitleHelperPlatform.kt | 13 ++++++++ .../utils/SubtitleHelperPlatform.jvm.kt | 21 +++++++++++++ .../utils/SubtitleHelperPlatform.web.kt | 31 +++++++++++++++++++ 5 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 library/src/androidMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.android.kt create mode 100644 library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.kt create mode 100644 library/src/jvmMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.jvm.kt create mode 100644 library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.web.kt diff --git a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.android.kt b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.android.kt new file mode 100644 index 00000000000..1a87b512db9 --- /dev/null +++ b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.android.kt @@ -0,0 +1,24 @@ +package com.lagradost.cloudstream3.utils + +import java.util.Locale + +// TODO: add androidMain actual using LocaleListCompat.getAdjustedDefault() to respect +// per-app language preferences set via AppCompatDelegate.setApplicationLocales() + +actual fun getCurrentLocale(): String = + Locale.getDefault().toLanguageTag() + +actual fun localizedLanguageName(ietfTag: String, localizedTo: String): String? { + val localeOfLangCode = Locale.forLanguageTag(ietfTag) + val localeOfLocalizeTo = Locale.forLanguageTag(localizedTo) + val displayName = localeOfLangCode.getDisplayName(localeOfLocalizeTo) + + // Locale.getDisplayName() falls back to the raw tag or "language (country)" form + // when it doesn't know how to render the name. + val langCodeWithCountry = "${localeOfLangCode.language} (" + val failed = + displayName.equals(ietfTag, ignoreCase = true) || + displayName.contains(langCodeWithCountry, ignoreCase = true) + + return if (failed) null else displayName +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelper.kt index a6362efd0fb..497e129a0b3 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelper.kt @@ -1,13 +1,5 @@ package com.lagradost.cloudstream3.utils -import java.util.Locale - -// If you find a way to use SettingsGeneral getCurrentLocale() -// instead of this function do it. -fun getCurrentLocale(): String { - return Locale.getDefault().toLanguageTag() -} - @Suppress( "unused", "MemberVisibilityCanBePrivate" @@ -47,23 +39,10 @@ object SubtitleHelper { val ISO_639_3: String, // ISO 639-6 missing as it's intended to differentiate specific dialects and variants val openSubtitles: String, // inconsistent codes that do not conform ISO 639 ) { - fun localizedName(localizedTo: String? = null): String { - // Use system locale to localize language name - val localeOfLangCode = Locale.forLanguageTag(this.IETF_tag) - val localeOfLocalizeTo = Locale.forLanguageTag(localizedTo ?: getCurrentLocale()) - val sysLocalizedName = localeOfLangCode.getDisplayName(localeOfLocalizeTo) - - val langCodeWithCountry = "${localeOfLangCode.language} (" // ${localeOfLangCode.country})" - val failedToLocalize = - sysLocalizedName.equals(this.IETF_tag, ignoreCase = true) || - sysLocalizedName.contains(langCodeWithCountry, ignoreCase = true) - - return if (failedToLocalize) + fun localizedName(localizedTo: String? = null): String = + localizedLanguageName(this.IETF_tag, localizedTo ?: getCurrentLocale()) // fallback to native language name - this.nativeName - else - sysLocalizedName - } + ?: this.nativeName fun nameNextToFlagEmoji(localizedTo: String? = null): String { // fallback to [A][A] -> [?] question mak flag diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.kt new file mode 100644 index 00000000000..38a254da8c9 --- /dev/null +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.kt @@ -0,0 +1,13 @@ +package com.lagradost.cloudstream3.utils + +/** + * Returns the current locale as an IETF BCP 47 language tag. + */ +expect fun getCurrentLocale(): String + +/** + * Returns the display name of [ietfTag] localized into [localizedTo]. + * Returns null if the platform couldn't produce a meaningful name + * (i.e. it just echoed back the tag or contained a bare language code with parentheses). + */ +expect fun localizedLanguageName(ietfTag: String, localizedTo: String): String? \ No newline at end of file diff --git a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.jvm.kt b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.jvm.kt new file mode 100644 index 00000000000..a43358ccb65 --- /dev/null +++ b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.jvm.kt @@ -0,0 +1,21 @@ +package com.lagradost.cloudstream3.utils + +import java.util.Locale + +actual fun getCurrentLocale(): String = + Locale.getDefault().toLanguageTag() + +actual fun localizedLanguageName(ietfTag: String, localizedTo: String): String? { + val localeOfLangCode = Locale.forLanguageTag(ietfTag) + val localeOfLocalizeTo = Locale.forLanguageTag(localizedTo) + val displayName = localeOfLangCode.getDisplayName(localeOfLocalizeTo) + + // Locale.getDisplayName() falls back to the raw tag or "language (country)" form + // when it doesn't know how to render the name. + val langCodeWithCountry = "${localeOfLangCode.language} (" + val failed = + displayName.equals(ietfTag, ignoreCase = true) || + displayName.contains(langCodeWithCountry, ignoreCase = true) + + return if (failed) null else displayName +} \ No newline at end of file diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.web.kt new file mode 100644 index 00000000000..33e293f3124 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/SubtitleHelperPlatform.web.kt @@ -0,0 +1,31 @@ +package com.lagradost.cloudstream3.utils + +@OptIn(ExperimentalWasmJsInterop::class) +external class IntlDisplayNames(locale: String, options: JsAny) : JsAny { + fun of(code: String): String? +} + +@OptIn(ExperimentalWasmJsInterop::class) +private fun navigatorLanguage(): String = + js("navigator.language") + +actual fun getCurrentLocale(): String = + try { navigatorLanguage() } catch (_: Throwable) { "en" } + +@OptIn(ExperimentalWasmJsInterop::class) +private fun buildOptions(): JsAny = + js("({ type: 'language' })") + +@OptIn(ExperimentalWasmJsInterop::class) +private fun makeDisplayNames(locale: String, options: JsAny): IntlDisplayNames = + js("new Intl.DisplayNames([locale], options)") + +@OptIn(ExperimentalWasmJsInterop::class) +actual fun localizedLanguageName(ietfTag: String, localizedTo: String): String? = + try { + val dn = makeDisplayNames(localizedTo, buildOptions()) + val name = dn.of(ietfTag) + if (name.isNullOrBlank() || name.equals(ietfTag, ignoreCase = true)) null else name + } catch (_: Throwable) { + null + } From a667c15b06086cf75f8e91b80b409dd218c2007e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:19:29 -0600 Subject: [PATCH 019/114] Add reflect --- gradle/libs.versions.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6efb34a5262..3f49d02603b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -93,6 +93,7 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "junitKtx" } juniversalchardet = { module = "com.github.albfernandez:juniversalchardet", version.ref = "juniversalchardet" } +kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinGradlePlugin" } kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlinGradlePlugin" } kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinxAtomicfu" } kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" } From dd7b4fecb55f4125547ede964fe06fc4d0bcb0de Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:20:18 -0600 Subject: [PATCH 020/114] Add --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index e9173ac7390..239da0ef738 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -75,6 +75,7 @@ kotlin { val jvmCommonMain by creating { dependsOn(commonMain.get()) dependencies { + implementation(libs.kotlin.reflect) implementation(libs.newpipeextractor) } } From e4f5814999d5a5663169041640fc4a0f684a19e7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:25:33 -0600 Subject: [PATCH 021/114] add YT web --- .../extractors/YoutubeExtractor.web.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/cloudstream3/extractors/YoutubeExtractor.web.kt diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/extractors/YoutubeExtractor.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/extractors/YoutubeExtractor.web.kt new file mode 100644 index 00000000000..07463bd56e5 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/extractors/YoutubeExtractor.web.kt @@ -0,0 +1,32 @@ +package com.lagradost.cloudstream3.extractors + +import com.lagradost.cloudstream3.SubtitleFile +import com.lagradost.cloudstream3.utils.ExtractorApi +import com.lagradost.cloudstream3.utils.ExtractorLink + +/** + * Web/JS target shim. + * + * NewPipeExtractor is JVM-only, so the full extraction logic used on + * Android/desktop can't run here. This stub keeps the multiplatform + * source set compiling; it performs no extraction and simply reports + * that no links were found on this target. + * + * If/when a JS-compatible YouTube extraction path exists, replace the + * body of getUrl() with that implementation. + */ +actual open class YoutubeExtractor actual constructor() : ExtractorApi() { + + actual override val mainUrl = "https://www.youtube.com" + actual override val name = "YouTube" + actual override val requiresReferer = false + + actual override suspend fun getUrl( + url: String, + referer: String?, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit, + ) { + // No-op on web target: NewPipeExtractor is unavailable here. + } +} From 8849570af48061cb4d2c3210630da7e98e6d7049 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:27:39 -0600 Subject: [PATCH 022/114] add arch webmain --- .../cloudstream3/mvvm/ArchComponentExt.web.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.web.kt diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.web.kt new file mode 100644 index 00000000000..f111662cb62 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.web.kt @@ -0,0 +1,33 @@ +package com.lagradost.cloudstream3.mvvm + +actual fun platformThrowAbleToResource(throwable: Throwable): Resource { + val message = throwable.message.orEmpty() + + return when { + message.contains("timeout", ignoreCase = true) -> { + Resource.Failure( + true, + "Connection Timeout\nPlease try again later." + ) + } + + message.contains("NetworkError", ignoreCase = true) + || message.contains("Failed to fetch", ignoreCase = true) + || message.contains("ERR_NAME_NOT_RESOLVED", ignoreCase = true) -> { + Resource.Failure( + true, + "Cannot connect to server, try again later.\n${throwable.message}" + ) + } + + message.contains("SSL", ignoreCase = true) + || message.contains("certificate", ignoreCase = true) -> { + Resource.Failure( + true, + (throwable.message ?: "SSL error") + "\nTry a VPN or DNS." + ) + } + + else -> safeFail(throwable) + } +} From 68247e1cac760dd24e2f779559170d94d62e40a6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:31:56 -0600 Subject: [PATCH 023/114] Coroutines webmain --- .../com/lagradost/cloudstream3/utils/Coroutines.web.kt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt new file mode 100644 index 00000000000..2700ae70515 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt @@ -0,0 +1,6 @@ +package com.lagradost.cloudstream3.utils + +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers + +actual val workerDispatcher: CoroutineDispatcher = Dispatchers.Default From 7a018a1a4849381b193adfe0b6418b950fdf0385 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:34:35 -0600 Subject: [PATCH 024/114] Add js --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 239da0ef738..ee3a143b585 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -39,6 +39,7 @@ kotlin { } jvm() + js() compilerOptions { freeCompilerArgs.addAll( From bbaf5974f725b63e22383990d613fe13a4fea839 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:41:45 -0600 Subject: [PATCH 025/114] Update --- library/build.gradle.kts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index ee3a143b585..7fd06969489 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -39,7 +39,10 @@ kotlin { } jvm() - js() + js { + browser() + nodejs() + } compilerOptions { freeCompilerArgs.addAll( From 31939e61a0e6f2b8640611d035124a9b35529286 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:44:30 -0600 Subject: [PATCH 026/114] - --- library/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 7fd06969489..da2de28f402 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -41,7 +41,6 @@ kotlin { jvm() js { browser() - nodejs() } compilerOptions { From f24187dc6c5faff8ded0ea64d1b326eb2e73c4bf Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:46:19 -0600 Subject: [PATCH 027/114] ContextHelper webmain --- .../src/webMain/kotlin/com/lagradost/api/ContextHelper.web.kt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/api/ContextHelper.web.kt diff --git a/library/src/webMain/kotlin/com/lagradost/api/ContextHelper.web.kt b/library/src/webMain/kotlin/com/lagradost/api/ContextHelper.web.kt new file mode 100644 index 00000000000..83cae11a5c6 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/api/ContextHelper.web.kt @@ -0,0 +1,4 @@ +package com.lagradost.api + +actual fun getContext(): Any? = null +actual fun setContext(context: Any?) = Unit From de69e034ed538f006e4463da6a7a6efc728cc655 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:49:13 -0600 Subject: [PATCH 028/114] Log webMain --- .../webMain/kotlin/com/lagradost/api/Log.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/api/Log.kt diff --git a/library/src/webMain/kotlin/com/lagradost/api/Log.kt b/library/src/webMain/kotlin/com/lagradost/api/Log.kt new file mode 100644 index 00000000000..8062526d417 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/api/Log.kt @@ -0,0 +1,19 @@ +package com.lagradost.api + +actual object Log { + actual fun d(tag: String, message: String) { + console.log("[$tag] $message") + } + + actual fun i(tag: String, message: String) { + console.info("[$tag] $message") + } + + actual fun w(tag: String, message: String) { + console.warn("[$tag] $message") + } + + actual fun e(tag: String, message: String) { + console.error("[$tag] $message") + } +} From a26f31494086d709e36f4eb9cc96617020367f3d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:51:26 -0600 Subject: [PATCH 029/114] add nodejs --- settings.gradle.kts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 73bf5a1958b..6e78faaf2d9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,6 +14,16 @@ dependencyResolutionManagement { mavenCentral() mavenLocal() maven("https://jitpack.io") + ivy("https://nodejs.org/dist") { + name = "Node Distributions at https://nodejs.org/dist" + patternLayout { + artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") + } + metadataSources { artifact() } + content { + includeModule("org.nodejs", "node") + } + } } } From a7850b3782ef9eaad7fadbbd097d3e503edab729 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:58:39 -0600 Subject: [PATCH 030/114] Try --- settings.gradle.kts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 6e78faaf2d9..15c987fc003 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,15 +14,19 @@ dependencyResolutionManagement { mavenCentral() mavenLocal() maven("https://jitpack.io") - ivy("https://nodejs.org/dist") { - name = "Node Distributions at https://nodejs.org/dist" - patternLayout { - artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") - } - metadataSources { artifact() } - content { - includeModule("org.nodejs", "node") + + exclusiveContent { + forRepository { + ivy("https://nodejs.org/dist/") { + name = "Node Distributions at $url" + patternLayout { + artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") + } + metadataSources { artifact() } + content { includeModule("org.nodejs", "node") } + } } + filter { includeGroup("org.nodejs") } } } } From 6b25f381d8e788dd602582283af55069292f3f06 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:00:58 -0600 Subject: [PATCH 031/114] Try --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 15c987fc003..09a2410d726 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,7 +8,7 @@ pluginManagement { } dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() From 250ff54948248b02b3eeddfc330b79ed5ab6842e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:02:36 -0600 Subject: [PATCH 032/114] - --- settings.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 09a2410d726..28da074b0cd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,7 +15,7 @@ dependencyResolutionManagement { mavenLocal() maven("https://jitpack.io") - exclusiveContent { + /*exclusiveContent { forRepository { ivy("https://nodejs.org/dist/") { name = "Node Distributions at $url" @@ -27,7 +27,7 @@ dependencyResolutionManagement { } } filter { includeGroup("org.nodejs") } - } + }*/ } } From 7f4696ea5b59cd99ad134c6bc924be90d0b98415 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:04:59 -0600 Subject: [PATCH 033/114] Add yarn --- settings.gradle.kts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 28da074b0cd..befe9e9cab5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,7 +15,8 @@ dependencyResolutionManagement { mavenLocal() maven("https://jitpack.io") - /*exclusiveContent { + // https://youtrack.jetbrains.com/issue/KT-55620/ + exclusiveContent { forRepository { ivy("https://nodejs.org/dist/") { name = "Node Distributions at $url" @@ -27,7 +28,21 @@ dependencyResolutionManagement { } } filter { includeGroup("org.nodejs") } - }*/ + } + + exclusiveContent { + forRepository { + ivy("https://github.com/yarnpkg/yarn/releases/download") { + name = "Yarn Distributions at $url" + patternLayout { + artifact("v[revision]/[artifact](-v[revision]).[ext]") + } + metadataSources { artifact() } + content { includeModule("com.yarnpkg", "yarn") } + } + } + filter { includeGroup("com.yarnpkg") } + } } } From 815b49c464117678a9e74ad95269920e73353474 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:20:56 -0600 Subject: [PATCH 034/114] Add import --- .../src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt index 5b04318c4d4..f723f7b4e26 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt @@ -38,6 +38,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlin.io.encoding.Base64 +import kotlin.jvm.JvmName import kotlin.math.absoluteValue import kotlin.math.roundToInt import kotlin.time.Clock From 3b64e6ae95600d806d4c4ffda496f2b138180d71 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:39:09 -0600 Subject: [PATCH 035/114] Fix dehunt --- .../kotlin/com/lagradost/cloudstream3/utils/JsHunter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsHunter.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsHunter.kt index 8aabeb1f17c..4de7a4c877d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsHunter.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsHunter.kt @@ -23,7 +23,7 @@ class JsHunter(private val hunterJS: String) { */ fun dehunt(): String? { try { - val regex = Regex("""\}\("([^"]+)",[^,]+,\s*"([^"]+)",\s*(\d+),\s*(\d+)""", RegexOption.DOT_MATCHES_ALL) + val regex = Regex("""(?s)\}\("([^"]+)",[^,]+,\s*"([^"]+)",\s*(\d+),\s*(\d+)""") val match = regex.find(hunterJS) if (match != null && match.groupValues.size == 5) { val h = match.groupValues[1] @@ -77,4 +77,4 @@ class JsHunter(private val hunterJS: String) { } return result } -} \ No newline at end of file +} From 50a11b19b2d28fefeec8ee719881c18b5840bef9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:42:33 -0600 Subject: [PATCH 036/114] Fix unpack --- .../kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt index 2dbbfddb0d8..50956058bb3 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt @@ -26,8 +26,7 @@ class JsUnpacker(packedJS: String?) { val js = packedJS ?: return null try { val match = Regex( - """\}\s*\('(.*)',\s*(.*?),\s*(\d+),\s*'(.*?)'\.split\('\|'\)""", - RegexOption.DOT_MATCHES_ALL + """(?s)\}\s*\('(.*)',\s*(.*?),\s*(\d+),\s*'(.*?)'\.split\('\|'\)""" ).find(js) if (match != null && match.groupValues.size == 5) { val payload = match.groupValues[1].replace("\\'", "'") @@ -150,4 +149,4 @@ class JsUnpacker(packedJS: String?) { } } } -} \ No newline at end of file +} From b16ea901c85c2318f3c7188224ebc33b39d3a579 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:48:15 -0600 Subject: [PATCH 037/114] deleteRange --- .../com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt index 760f6090959..dda31543ef7 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt @@ -458,14 +458,14 @@ object HlsPlaylistParser { // "." or "..", remove the appropriate segments of the path. if (i == segmentStart + 1 && url[segmentStart] == '.') { // Given "abc/def/./ghi", remove "./" to get "abc/def/ghi". - url.delete(segmentStart, nextSegmentStart) + url.deleteRange(segmentStart, nextSegmentStart) limit -= nextSegmentStart - segmentStart i = segmentStart } else if (i == segmentStart + 2 && url[segmentStart] == '.' && url[segmentStart + 1] == '.') { // Given "abc/def/../ghi", remove "def/../" to get "abc/ghi". val prevSegmentStart = url.lastIndexOf("/", segmentStart - 2) + 1 val removeFrom = if (prevSegmentStart > offset) prevSegmentStart else offset - url.delete(removeFrom, nextSegmentStart) + url.deleteRange(removeFrom, nextSegmentStart) limit -= nextSegmentStart - removeFrom segmentStart = prevSegmentStart i = prevSegmentStart From ee3c94ffc555cbcd6e8b4305323c9ccf090ec8d9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:53:15 -0600 Subject: [PATCH 038/114] import --- .../kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt index dda31543ef7..e435077bfa2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt @@ -26,6 +26,7 @@ import io.ktor.http.Url import kotlinx.io.Buffer import kotlinx.io.IOException import kotlinx.io.readByteArray +import kotlin.text.deleteRange import kotlin.uuid.ExperimentalUuidApi import kotlin.uuid.Uuid From 1f9aaee362ec1ec13af11ffa02341a2243fa1d27 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 15:01:42 -0600 Subject: [PATCH 039/114] setRange --- .../kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt index 50956058bb3..20256e1956b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt @@ -55,7 +55,7 @@ class JsUnpacker(packedJS: String?) { val x = unbase.unbase(word) val value = if (x in symtab.indices) symtab[x] else null if (!value.isNullOrEmpty()) { - decoded.replace( + decoded.setRange( wordMatch.range.first + replaceOffset, wordMatch.range.last + 1 + replaceOffset, value From 96b3e37e83d7045c2be6c6d1d73261a1b23ab97b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 15:10:16 -0600 Subject: [PATCH 040/114] simplename apputils --- .../com/lagradost/cloudstream3/utils/AppUtils.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt index c61787c6da1..a55bace3e21 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/AppUtils.kt @@ -10,6 +10,7 @@ import kotlinx.serialization.KSerializer import kotlinx.serialization.SerializationException import kotlinx.serialization.serializer import kotlinx.serialization.serializerOrNull +import kotlin.jvm.JvmName import kotlin.reflect.KClass @OptIn(ExperimentalSerializationApi::class, InternalSerializationApi::class) @@ -23,11 +24,11 @@ object AppUtils { @InternalAPI fun Any.toJsonLiteralImpl(serializer: KSerializer?): String { if (serializer == null) { - val e = Exception("No serializer found for ${this::class.qualifiedName}") + val e = Exception("No serializer found for ${this::class.simpleName}") logError(e) throw e } - debugPrint { "AppUtils/toJsonLiteral: using kotlinx serialization for ${this::class.qualifiedName}" } + debugPrint { "AppUtils/toJsonLiteral: using kotlinx serialization for ${this::class.simpleName}" } return json.encodeToString(serializer, this) } @@ -55,11 +56,11 @@ object AppUtils { fun parseJson(value: String, kClass: KClass): T { val serializer = kClass.serializerOrNull() ?: json.serializersModule.getContextual(kClass) if (serializer == null) { - val e = Exception("No serializer found for ${kClass.qualifiedName}") + val e = Exception("No serializer found for ${kClass.simpleName}") logError(e) throw e } - debugPrint { "AppUtils/parseJson(kClass): using kotlinx serialization for ${kClass.qualifiedName}" } + debugPrint { "AppUtils/parseJson(kClass): using kotlinx serialization for ${kClass.simpleName}" } @Suppress("UNCHECKED_CAST") return json.decodeFromString(serializer, value) as T } @@ -72,12 +73,12 @@ object AppUtils { .getOrNull() if (serializer == null) { - val e = Exception("No serializer found for ${T::class.qualifiedName}") + val e = Exception("No serializer found for ${T::class.simpleName}") logError(e) throw e } - debugPrint { "AppUtils/parseJson: using kotlinx serialization for ${T::class.qualifiedName}" } + debugPrint { "AppUtils/parseJson: using kotlinx serialization for ${T::class.simpleName}" } return json.decodeFromString(serializer, value) } From d894da4bc6a6aa9722bcd4738a0f427573bd1184 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 15:21:41 -0600 Subject: [PATCH 041/114] module --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3f49d02603b..2a6dd7aac03 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -93,7 +93,7 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "junitKtx" } juniversalchardet = { module = "com.github.albfernandez:juniversalchardet", version.ref = "juniversalchardet" } -kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinGradlePlugin" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlinGradlePlugin" } kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlinGradlePlugin" } kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinxAtomicfu" } kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" } From 822e8e96cc1775468e8aeb9eeed933c80000fce4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 16:18:24 -0600 Subject: [PATCH 042/114] update okhttp mainapi --- .../kotlin/com/lagradost/cloudstream3/MainAPI.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt index f723f7b4e26..5bc7570f9f3 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt @@ -16,14 +16,12 @@ import com.lagradost.cloudstream3.utils.Coroutines.atomicListOf import com.lagradost.cloudstream3.utils.Coroutines.mainWork import com.lagradost.cloudstream3.utils.SubtitleHelper.fromCodeToLangTagIETF import com.lagradost.cloudstream3.utils.SubtitleHelper.fromLanguageToTagIETF +import com.lagradost.nicehttp.NiceInterceptorCompat import com.lagradost.nicehttp.RequestBodyTypes import io.ktor.http.Url import io.ktor.http.URLBuilder import io.ktor.http.encodedPath import io.ktor.http.takeFrom -import okhttp3.Interceptor -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.RequestBody.Companion.toRequestBody import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalTime import kotlinx.datetime.TimeZone @@ -316,9 +314,9 @@ object APIHolder { "sort" to "SEARCH_MATCH", "type" to "ANIME", ) - ).toJson().toRequestBody(RequestBodyTypes.JSON.toMediaTypeOrNull()) + ).toJson() - return app.post("https://graphql.anilist.co", requestBody = data) + return app.post("https://graphql.anilist.co", json = data) .parsedSafe() } } @@ -692,7 +690,7 @@ abstract class MainAPI { } /** An okhttp interceptor for used in OkHttpDataSource */ - open fun getVideoInterceptor(extractorLink: ExtractorLink): Interceptor? { + open fun getVideoInterceptor(extractorLink: ExtractorLink): NiceInterceptorCompat? { return null } From 7ce4af66cef3953376b4013392f1f351c0e1da92 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 16:19:50 -0600 Subject: [PATCH 043/114] Update MainActivity --- .../kotlin/com/lagradost/cloudstream3/MainActivity.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt index 5576156b81d..e1878990352 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt @@ -4,8 +4,6 @@ import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.toJson import com.lagradost.nicehttp.Requests import com.lagradost.nicehttp.ResponseParser -import io.ktor.client.engine.okhttp.OkHttpEngine -import okhttp3.OkHttpClient import kotlin.reflect.KClass // Short name for requests client to make it nicer to use @@ -34,9 +32,9 @@ var app = Requests(responseParser = jsonResponseParser).apply { } // TODO: Remove usage of this by migrating interceptors and media3 to ktor -@InternalAPI +/* @InternalAPI val okHttpClient = (app.baseClient.engine as? OkHttpEngine) - ?.config?.preconfigured ?: OkHttpClient() + ?.config?.preconfigured ?: OkHttpClient() */ /** Same as the default app networking helper, but this instance ignores SSL certificates. * This should NEVER be used for sensitive networking operations such as logins. Only use this when required. */ From 52ce25ad9c043ed89df01d3b0d62f664b3122662 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:27:27 -0600 Subject: [PATCH 044/114] Update webviewresolver --- .../cloudstream3/network/WebViewResolver.kt | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.kt index c0a2d95250d..a7200f608a1 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.kt @@ -1,8 +1,10 @@ package com.lagradost.cloudstream3.network import com.lagradost.cloudstream3.USER_AGENT -import okhttp3.Interceptor -import okhttp3.Request +import com.lagradost.nicehttp.HttpSendInterceptorContext +import com.lagradost.nicehttp.Interceptor +import io.ktor.client.call.* +import io.ktor.client.request.* /** * When used as Interceptor additionalUrls cannot be returned, use WebViewResolver(...).resolveUsingWebView(...) @@ -13,7 +15,7 @@ import okhttp3.Request * @param script pass custom js to execute * @param scriptCallback will be called with the result from custom js * @param timeout close webview after timeout - * */ + */ expect class WebViewResolver( interceptUrl: Regex, additionalUrls: List = emptyList(), @@ -21,42 +23,44 @@ expect class WebViewResolver( useOkhttp: Boolean = true, script: String? = null, scriptCallback: ((String) -> Unit)? = null, - timeout: Long = DEFAULT_TIMEOUT + timeout: Long = DEFAULT_TIMEOUT, ) : Interceptor { companion object { val DEFAULT_TIMEOUT: Long var webViewUserAgent: String? } + override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall + /** * @param requestCallBack asynchronously return matched requests by either interceptUrl or additionalUrls. If true, destroy WebView. * @return the final request (by interceptUrl) and all the collected urls (by additionalUrls). - * */ + */ suspend fun resolveUsingWebView( url: String, referer: String? = null, method: String = "GET", - requestCallBack: (Request) -> Boolean = { false }, - ) : Pair> + requestCallBack: (HttpRequestBuilder) -> Boolean = { false }, + ): Pair> /** * @param requestCallBack asynchronously return matched requests by either interceptUrl or additionalUrls. If true, destroy WebView. * @return the final request (by interceptUrl) and all the collected urls (by additionalUrls). - * */ + */ suspend fun resolveUsingWebView( url: String, referer: String? = null, headers: Map = emptyMap(), method: String = "GET", - requestCallBack: (Request) -> Boolean = { false }, - ) : Pair> + requestCallBack: (HttpRequestBuilder) -> Boolean = { false }, + ): Pair> /** * @param requestCallBack asynchronously return matched requests by either interceptUrl or additionalUrls. If true, destroy WebView. * @return the final request (by interceptUrl) and all the collected urls (by additionalUrls). - * */ + */ suspend fun resolveUsingWebView( - request: Request, - requestCallBack: (Request) -> Boolean = { false } - ): Pair> + request: HttpRequestBuilder, + requestCallBack: (HttpRequestBuilder) -> Boolean = { false }, + ): Pair> } From fe04a3bc52d5b7b19eace849516da49df2b0d021 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:30:33 -0600 Subject: [PATCH 045/114] Update --- .../com/lagradost/cloudstream3/extractors/Streamlare.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt index d5455a28c76..b112d00190e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt @@ -10,8 +10,6 @@ import com.lagradost.cloudstream3.utils.INFER_TYPE import com.lagradost.cloudstream3.utils.newExtractorLink import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.nicehttp.RequestBodyTypes -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.RequestBody.Companion.toRequestBody class Streamlare : Slmaxed() { @@ -47,7 +45,7 @@ open class Slmaxed : ExtractorApi() { val id = embedRegex.find(url)!!.groupValues[1] val json = app.post( "${mainUrl}api/video/stream/get", - requestBody = """{"id":"$id"}""".toRequestBody(RequestBodyTypes.JSON.toMediaTypeOrNull()) + json = """{"id":"$id"}""" ).parsed() return json.result?.mapNotNull { it.value.let { result -> From 1d7e8731dd4bf98b19b18e6c96bca41123f2e73f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:33:57 -0600 Subject: [PATCH 046/114] Update webviewresolver jvm --- .../network/WebViewResolver.jvm.kt | 53 +++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt index 39e0d51f95e..1d1a1b4cbc6 100644 --- a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt +++ b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt @@ -2,10 +2,11 @@ package com.lagradost.cloudstream3.network import com.lagradost.cloudstream3.mvvm.debugException import com.lagradost.cloudstream3.mvvm.logError +import com.lagradost.nicehttp.HttpSendInterceptorContext +import com.lagradost.nicehttp.Interceptor import com.lagradost.nicehttp.requestCreator -import okhttp3.Interceptor -import okhttp3.Request -import okhttp3.Response +import io.ktor.client.call.* +import io.ktor.client.request.* /** * When used as Interceptor additionalUrls cannot be returned, use WebViewResolver(...).resolveUsingWebView(...) @@ -16,21 +17,19 @@ import okhttp3.Response * @param script pass custom js to execute * @param scriptCallback will be called with the result from custom js * @param timeout close webview after timeout - * */ + */ actual class WebViewResolver actual constructor( - interceptUrl: Regex, - additionalUrls: List, - userAgent: String?, - useOkhttp: Boolean, - script: String?, - scriptCallback: ((String) -> Unit)?, - timeout: Long -) : - Interceptor { + val interceptUrl: Regex, + val additionalUrls: List, + val userAgent: String?, + val useOkhttp: Boolean, + val script: String?, + val scriptCallback: ((String) -> Unit)?, + val timeout: Long, +) : Interceptor { - override fun intercept(chain: Interceptor.Chain): Response { - val request = chain.request() - return chain.proceed(request) + override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + return ctx.proceed() } actual companion object { @@ -42,8 +41,8 @@ actual class WebViewResolver actual constructor( url: String, referer: String?, method: String, - requestCallBack: (Request) -> Boolean, - ): Pair> = + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> = resolveUsingWebView(url, referer, emptyMap(), method, requestCallBack) actual suspend fun resolveUsingWebView( @@ -51,24 +50,24 @@ actual class WebViewResolver actual constructor( referer: String?, headers: Map, method: String, - requestCallBack: (Request) -> Boolean - ): Pair> { + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { return try { resolveUsingWebView( - requestCreator(method, url, referer = referer, headers = headers), requestCallBack + requestCreator(method, url, referer = referer, headers = headers), + requestCallBack, ) - } catch (e: java.lang.IllegalArgumentException) { + } catch (e: IllegalArgumentException) { logError(e) debugException { "ILLEGAL URL IN resolveUsingWebView!" } - return null to emptyList() + null to emptyList() } } actual suspend fun resolveUsingWebView( - request: Request, - requestCallBack: (Request) -> Boolean - ): Pair> { + request: HttpRequestBuilder, + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { TODO("Not yet implemented") } } - From a5bc54727e3e0746ad9a148bd084fbbd406c9194 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:38:52 -0600 Subject: [PATCH 047/114] Update webviewresolver android --- .../network/WebViewResolver.android.kt | 170 +++++++----------- 1 file changed, 61 insertions(+), 109 deletions(-) diff --git a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt index 299ba9cc9b3..cac2985edf1 100644 --- a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt +++ b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt @@ -14,15 +14,15 @@ import com.lagradost.cloudstream3.utils.Coroutines.atomicListOf import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.Coroutines.mainWork import com.lagradost.cloudstream3.utils.Coroutines.runOnMainThread -import com.lagradost.nicehttp.NiceResponse +import com.lagradost.nicehttp.HttpSendInterceptorContext +import com.lagradost.nicehttp.Interceptor import com.lagradost.nicehttp.requestCreator -import io.ktor.http.Url -import io.ktor.http.decodeURLPart +import io.ktor.client.call.* +import io.ktor.client.request.* +import io.ktor.client.statement.* +import io.ktor.http.* import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking -import okhttp3.Interceptor -import okhttp3.Request -import okhttp3.Response /** * When used as Interceptor additionalUrls cannot be returned, use WebViewResolver(...).resolveUsingWebView(...) @@ -33,7 +33,7 @@ import okhttp3.Response * @param script pass custom js to execute * @param scriptCallback will be called with the result from custom js * @param timeout close webview after timeout - * */ + */ actual class WebViewResolver actual constructor( val interceptUrl: Regex, val additionalUrls: List, @@ -41,9 +41,8 @@ actual class WebViewResolver actual constructor( val useOkhttp: Boolean, val script: String?, val scriptCallback: ((String) -> Unit)?, - val timeout: Long -) : - Interceptor { + val timeout: Long, +) : Interceptor { actual companion object { actual var webViewUserAgent: String? = null @@ -64,20 +63,18 @@ actual class WebViewResolver actual constructor( } } - override fun intercept(chain: Interceptor.Chain): Response { - val request = chain.request() - return runBlocking { - val fixedRequest = resolveUsingWebView(request).first - return@runBlocking chain.proceed(fixedRequest ?: request) - } + override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + val request = ctx.request + val fixedRequest = resolveUsingWebView(request).first + return ctx.proceed(fixedRequest ?: request) } actual suspend fun resolveUsingWebView( url: String, referer: String?, method: String, - requestCallBack: (Request) -> Boolean, - ): Pair> = + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> = resolveUsingWebView(url, referer, emptyMap(), method, requestCallBack) actual suspend fun resolveUsingWebView( @@ -85,29 +82,29 @@ actual class WebViewResolver actual constructor( referer: String?, headers: Map, method: String, - requestCallBack: (Request) -> Boolean, - ): Pair> { + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { return try { resolveUsingWebView( - requestCreator(method, url, referer = referer, headers = headers), requestCallBack + requestCreator(method, url, referer = referer, headers = headers), + requestCallBack, ) - } catch (e: java.lang.IllegalArgumentException) { + } catch (e: IllegalArgumentException) { logError(e) debugException { "ILLEGAL URL IN resolveUsingWebView!" } - return null to emptyList() + null to emptyList() } } @SuppressLint("SetJavaScriptEnabled") actual suspend fun resolveUsingWebView( - request: Request, - requestCallBack: (Request) -> Boolean - ): Pair> { - val url = request.url.toString() - val headers = request.headers + request: HttpRequestBuilder, + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { + val url = request.url.buildString() + val headers = request.headers.build() Log.i(TAG, "Initial web-view request: $url") var webView: WebView? = null - // Extra assurance it exits as it should. var shouldExit = false fun destroyWebView() { @@ -120,8 +117,8 @@ actual class WebViewResolver actual constructor( } } - var fixedRequest: Request? = null - val extraRequestList = atomicListOf() + var fixedRequest: HttpRequestBuilder? = null + val extraRequestList = atomicListOf() main { try { @@ -129,31 +126,26 @@ actual class WebViewResolver actual constructor( (getContext() as? Context) ?: throw RuntimeException("No base context in WebViewResolver") ).apply { - // Bare minimum to bypass captcha settings.javaScriptEnabled = true settings.domStorageEnabled = true webViewUserAgent = settings.userAgentString - // Don't set user agent, setting user agent will make cloudflare break. if (userAgent != null) { settings.userAgentString = userAgent } - // Blocks unnecessary images, remove if captcha fucks. -// settings.blockNetworkImage = true } webView?.webViewClient = object : WebViewClient() { override fun shouldInterceptRequest( view: WebView, - request: WebResourceRequest + request: WebResourceRequest, ): WebResourceResponse? = runBlocking { val webViewUrl = request.url.toString() Log.i(TAG, "Loading WebView URL: $webViewUrl") if (script != null) { runOnMainThread { - view.evaluateJavascript(script) - { scriptCallback?.invoke(it) } + view.evaluateJavascript(script) { scriptCallback?.invoke(it) } } } @@ -172,74 +164,40 @@ actual class WebViewResolver actual constructor( }?.let(extraRequestList::add) } - // Suppress image requests as we don't display them anywhere - // Less data, low chance of causing issues. - // blockNetworkImage also does this job but i will keep it for the future. val blacklistedFiles = listOf( - ".jpg", - ".png", - ".webp", - ".mpg", - ".mpeg", - ".jpeg", - ".webm", - ".mp4", - ".mp3", - ".gifv", - ".flv", - ".asf", - ".mov", - ".mng", - ".mkv", - ".ogg", - ".avi", - ".wav", - ".woff2", - ".woff", - ".ttf", - ".css", - ".vtt", - ".srt", - ".ts", - ".gif", + ".jpg", ".png", ".webp", ".mpg", ".mpeg", ".jpeg", ".webm", + ".mp4", ".mp3", ".gifv", ".flv", ".asf", ".mov", ".mng", + ".mkv", ".ogg", ".avi", ".wav", ".woff2", ".woff", ".ttf", + ".css", ".vtt", ".srt", ".ts", ".gif", // Warning, this might fuck some future sites, but it's used to make Sflix work. - "wss://" + "wss://", ) - /** NOTE! request.requestHeaders is not perfect! - * They don't contain all the headers the browser actually gives. - * Overriding with okhttp might fuck up otherwise working requests, - * e.g the recaptcha request. - * */ + /** NOTE! request.requestHeaders is not perfect! + * They don't contain all the headers the browser actually gives. + * Overriding with okhttp might fuck up otherwise working requests, + * e.g the recaptcha request. + */ return@runBlocking try { when { - blacklistedFiles.any { Url(webViewUrl).encodedPath.decodeURLPart().contains(it) } || webViewUrl.endsWith( - "/favicon.ico" - ) -> WebResourceResponse( - "image/png", - null, - null - ) + blacklistedFiles.any { + Url(webViewUrl).encodedPath.decodeURLPart().contains(it) + } || webViewUrl.endsWith("/favicon.ico") -> + WebResourceResponse("image/png", null, null) - webViewUrl.contains("recaptcha") || webViewUrl.contains("/cdn-cgi/") -> super.shouldInterceptRequest( - view, - request - ) + webViewUrl.contains("recaptcha") || + webViewUrl.contains("/cdn-cgi/") -> + super.shouldInterceptRequest(view, request) - useOkhttp && request.method == "GET" -> app.get( - webViewUrl, - headers = request.requestHeaders - ).toWebResourceResponse() + useOkhttp && request.method == "GET" -> + app.get(webViewUrl, headers = request.requestHeaders) + .okhttpResponse.toWebResourceResponse() - useOkhttp && request.method == "POST" -> app.post( - webViewUrl, - headers = request.requestHeaders - ).toWebResourceResponse() + useOkhttp && request.method == "POST" -> + app.post(webViewUrl, headers = request.requestHeaders) + .okhttpResponse.toWebResourceResponse() - else -> super.shouldInterceptRequest( - view, - request - ) + else -> super.shouldInterceptRequest(view, request) } } catch (_: Exception) { null @@ -250,11 +208,12 @@ actual class WebViewResolver actual constructor( override fun onReceivedSslError( view: WebView?, handler: SslErrorHandler?, - error: SslError? + error: SslError?, ) { handler?.proceed() // Ignore ssl issues } } + webView?.loadUrl(url, headers.toMap()) } catch (e: Exception) { logError(e) @@ -262,12 +221,9 @@ actual class WebViewResolver actual constructor( } var loop = 0 - // Timeouts after this amount, 60s val totalTime = timeout - val delayTime = 100L - // A bit sloppy, but couldn't find a better way while (loop < totalTime / delayTime && !shouldExit) { if (fixedRequest != null) return fixedRequest to extraRequestList delay(delayTime) @@ -280,12 +236,8 @@ actual class WebViewResolver actual constructor( } } -fun WebResourceRequest.toRequest(): Request? { +fun WebResourceRequest.toRequest(): HttpRequestBuilder? { val webViewUrl = this.url.toString() - - // If invalid url then it can crash with - // java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but was 'data' - // At Request.Builder().url(addParamsToUrl(url, params)) return safe { requestCreator( this.method, @@ -295,16 +247,16 @@ fun WebResourceRequest.toRequest(): Request? { } } -suspend fun NiceResponse.toWebResourceResponse(): WebResourceResponse { - val contentTypeValue = this.headers["Content-Type"] +suspend fun HttpResponse.toWebResourceResponse(): WebResourceResponse { + val contentTypeValue = headers["Content-Type"] // 1. contentType. 2. charset val typeRegex = Regex("""(.*);(?:.*charset=(.*)(?:|;)|)""") return if (contentTypeValue != null) { val found = typeRegex.find(contentTypeValue) val contentType = found?.groupValues?.getOrNull(1)?.ifBlank { null } ?: contentTypeValue val charset = found?.groupValues?.getOrNull(2)?.ifBlank { null } - WebResourceResponse(contentType, charset, this.body().byteStream()) + WebResourceResponse(contentType, charset, readRawBytes().inputStream()) } else { - WebResourceResponse("application/octet-stream", null, this.body().byteStream()) + WebResourceResponse("application/octet-stream", null, readRawBytes().inputStream()) } } From e795894536d0d3ecad622eb94ea23aeeabe54b0f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:40:43 -0600 Subject: [PATCH 048/114] add WebViewResolver webmain --- .../network/WebViewResolver.web.kt | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt new file mode 100644 index 00000000000..d2e90c516f2 --- /dev/null +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt @@ -0,0 +1,54 @@ +package com.lagradost.cloudstream3.network + +import com.lagradost.cloudstream3.USER_AGENT +import com.lagradost.nicehttp.HttpSendInterceptorContext +import com.lagradost.nicehttp.Interceptor +import io.ktor.client.call.* +import io.ktor.client.request.* + +actual class WebViewResolver actual constructor( + val interceptUrl: Regex, + val additionalUrls: List, + val userAgent: String?, + val useOkhttp: Boolean, + val script: String?, + val scriptCallback: ((String) -> Unit)?, + val timeout: Long, +) : Interceptor { + + actual companion object { + actual val DEFAULT_TIMEOUT = 60_000L + actual var webViewUserAgent: String? = null + } + + override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + // No WebView on JS/WASM, just proceed with the request as-is + return ctx.proceed() + } + + actual suspend fun resolveUsingWebView( + url: String, + referer: String?, + method: String, + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { + throw UnsupportedOperationException("WebViewResolver is not supported on JS/WASM targets.") + } + + actual suspend fun resolveUsingWebView( + url: String, + referer: String?, + headers: Map, + method: String, + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { + throw UnsupportedOperationException("WebViewResolver is not supported on JS/WASM targets.") + } + + actual suspend fun resolveUsingWebView( + request: HttpRequestBuilder, + requestCallBack: (HttpRequestBuilder) -> Boolean, + ): Pair> { + throw UnsupportedOperationException("WebViewResolver is not supported on JS/WASM targets.") + } +} From f25c958bd37740004043b63accc618371ff8126d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:42:51 -0600 Subject: [PATCH 049/114] Update --- .../com/lagradost/cloudstream3/network/WebViewResolver.web.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt index d2e90c516f2..7f0d6f0513c 100644 --- a/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.web.kt @@ -21,7 +21,7 @@ actual class WebViewResolver actual constructor( actual var webViewUserAgent: String? = null } - override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + actual override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { // No WebView on JS/WASM, just proceed with the request as-is return ctx.proceed() } From ed8a1cd57793f910333da76fc4ce7c9cee1e830c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:18:54 -0600 Subject: [PATCH 050/114] Update --- .../com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt index 1d1a1b4cbc6..e2a41f4e531 100644 --- a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt +++ b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt @@ -28,7 +28,7 @@ actual class WebViewResolver actual constructor( val timeout: Long, ) : Interceptor { - override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + actual override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { return ctx.proceed() } From 6821431d48d18d62ed3762fa648aeb058965c1d9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:19:24 -0600 Subject: [PATCH 051/114] Update --- .../lagradost/cloudstream3/network/WebViewResolver.android.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt index cac2985edf1..b71c9803cb5 100644 --- a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt +++ b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt @@ -63,7 +63,7 @@ actual class WebViewResolver actual constructor( } } - override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + actual override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { val request = ctx.request val fixedRequest = resolveUsingWebView(request).first return ctx.proceed(fixedRequest ?: request) From 71d4dc1f6ce162ffacc9ea4e740c46817f27a7d4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:28:44 -0600 Subject: [PATCH 052/114] Try fix --- .../network/WebViewResolver.android.kt | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt index b71c9803cb5..1ef862d8abc 100644 --- a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt +++ b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt @@ -16,7 +16,8 @@ import com.lagradost.cloudstream3.utils.Coroutines.mainWork import com.lagradost.cloudstream3.utils.Coroutines.runOnMainThread import com.lagradost.nicehttp.HttpSendInterceptorContext import com.lagradost.nicehttp.Interceptor -import com.lagradost.nicehttp.requestCreator +import com.lagradost.nicehttp.NiceResponse +import com.lagradost.nicehttp.buildHeaders import io.ktor.client.call.* import io.ktor.client.request.* import io.ktor.client.statement.* @@ -86,7 +87,13 @@ actual class WebViewResolver actual constructor( ): Pair> { return try { resolveUsingWebView( - requestCreator(method, url, referer = referer, headers = headers), + HttpRequestBuilder().apply { + this.method = HttpMethod(method.uppercase()) + url(url) + buildHeaders(headers, referer, emptyMap()).forEach { k, values -> + values.forEach { v -> header(k, v) } + } + }, requestCallBack, ) } catch (e: IllegalArgumentException) { @@ -102,7 +109,9 @@ actual class WebViewResolver actual constructor( requestCallBack: (HttpRequestBuilder) -> Boolean, ): Pair> { val url = request.url.buildString() - val headers = request.headers.build() + // Convert Ktor Headers to Map for WebView + val headersMap = request.headers.build().entries() + .associate { (key, values) -> key to values.last() } Log.i(TAG, "Initial web-view request: $url") var webView: WebView? = null var shouldExit = false @@ -190,12 +199,12 @@ actual class WebViewResolver actual constructor( super.shouldInterceptRequest(view, request) useOkhttp && request.method == "GET" -> - app.get(webViewUrl, headers = request.requestHeaders) - .okhttpResponse.toWebResourceResponse() + (app.get(webViewUrl, headers = request.requestHeaders) + as? NiceResponse)?.response?.toWebResourceResponse() useOkhttp && request.method == "POST" -> - app.post(webViewUrl, headers = request.requestHeaders) - .okhttpResponse.toWebResourceResponse() + (app.post(webViewUrl, headers = request.requestHeaders) + as? NiceResponse)?.response?.toWebResourceResponse() else -> super.shouldInterceptRequest(view, request) } @@ -214,7 +223,7 @@ actual class WebViewResolver actual constructor( } } - webView?.loadUrl(url, headers.toMap()) + webView?.loadUrl(url, headersMap) } catch (e: Exception) { logError(e) } @@ -239,11 +248,11 @@ actual class WebViewResolver actual constructor( fun WebResourceRequest.toRequest(): HttpRequestBuilder? { val webViewUrl = this.url.toString() return safe { - requestCreator( - this.method, - webViewUrl, - this.requestHeaders, - ) + HttpRequestBuilder().apply { + method = HttpMethod(this@toRequest.method.uppercase()) + url(webViewUrl) + this@toRequest.requestHeaders.forEach { (k, v) -> header(k, v) } + } } } From e6054c9dd9c578ef88a5df258a37280bc61b93ec Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:30:12 -0600 Subject: [PATCH 053/114] Fix jvm --- .../network/WebViewResolver.jvm.kt | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt index e2a41f4e531..8f5b2d1bf98 100644 --- a/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt +++ b/library/src/jvmMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.jvm.kt @@ -4,9 +4,10 @@ import com.lagradost.cloudstream3.mvvm.debugException import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.nicehttp.HttpSendInterceptorContext import com.lagradost.nicehttp.Interceptor -import com.lagradost.nicehttp.requestCreator +import com.lagradost.nicehttp.buildHeaders import io.ktor.client.call.* import io.ktor.client.request.* +import io.ktor.http.* /** * When used as Interceptor additionalUrls cannot be returned, use WebViewResolver(...).resolveUsingWebView(...) @@ -28,15 +29,15 @@ actual class WebViewResolver actual constructor( val timeout: Long, ) : Interceptor { - actual override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { - return ctx.proceed() - } - actual companion object { actual val DEFAULT_TIMEOUT = 60_000L actual var webViewUserAgent: String? = null } + actual override suspend fun intercept(ctx: HttpSendInterceptorContext): HttpClientCall { + return ctx.proceed() + } + actual suspend fun resolveUsingWebView( url: String, referer: String?, @@ -54,7 +55,13 @@ actual class WebViewResolver actual constructor( ): Pair> { return try { resolveUsingWebView( - requestCreator(method, url, referer = referer, headers = headers), + HttpRequestBuilder().apply { + this.method = HttpMethod(method.uppercase()) + url(url) + buildHeaders(headers, referer, emptyMap()).forEach { k, values -> + values.forEach { v -> header(k, v) } + } + }, requestCallBack, ) } catch (e: IllegalArgumentException) { @@ -68,6 +75,6 @@ actual class WebViewResolver actual constructor( request: HttpRequestBuilder, requestCallBack: (HttpRequestBuilder) -> Boolean, ): Pair> { - TODO("Not yet implemented") + throw UnsupportedOperationException("WebViewResolver is not supported on this platform.") } } From b8391f98a6d7d8db1d3189aa28f6d15054ee512b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:33:43 -0600 Subject: [PATCH 054/114] as? Interceptor --- .../com/lagradost/cloudstream3/extractors/GenericM3U8.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt index 65cf1be4f5b..e7da1d51879 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt @@ -16,7 +16,7 @@ open class GenericM3U8 : ExtractorApi() { val response = app.get( url, interceptor = WebViewResolver( Regex("""master\.m3u8""") - ) + ) as? Interceptor ) val sources = mutableListOf() if (response.url.contains("m3u8")) @@ -30,4 +30,4 @@ open class GenericM3U8 : ExtractorApi() { } return sources } -} \ No newline at end of file +} From d15263177efca9b11973aa50640cf33042a4f2bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:34:31 -0600 Subject: [PATCH 055/114] Update --- .../kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt index 338a2c38cb1..1df1c192b7a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt @@ -95,7 +95,7 @@ open class FilemoonV2 : ExtractorApi() { additionalUrls = listOf(Regex("""(m3u8|master\.txt)""")), useOkhttp = false, timeout = 15_000L - ) + ) as? Interceptor val interceptedUrl = app.get( iframeSrcUrl, From cfe3a47c0f9ac629bcf412d42362f9e5c6dcfc31 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:36:10 -0600 Subject: [PATCH 056/114] as? com.lagradost.nicehttp.Interceptor --- .../kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt index 4bdd92435f0..91192651f8e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt @@ -88,7 +88,7 @@ open class Filesim : ExtractorApi() { additionalUrls = listOf(Regex("""(m3u8|master\.txt)""")), useOkhttp = false, timeout = 15_000L - ) + ) as? com.lagradost.nicehttp.Interceptor val interceptedUrl = app.get( url = pageResponse.url, From 7f27f85c28ad105956ba0303a740c958f55273a5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:36:39 -0600 Subject: [PATCH 057/114] as? com.lagradost.nicehttp.Interceptor --- .../kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt index 1df1c192b7a..d988f11275b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt @@ -95,7 +95,7 @@ open class FilemoonV2 : ExtractorApi() { additionalUrls = listOf(Regex("""(m3u8|master\.txt)""")), useOkhttp = false, timeout = 15_000L - ) as? Interceptor + ) as? com.lagradost.nicehttp.Interceptor val interceptedUrl = app.get( iframeSrcUrl, From 51db3dc46df5ab34782d44e84542b3bda261270b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:37:05 -0600 Subject: [PATCH 058/114] as? com.lagradost.nicehttp.Interceptor --- .../kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt index e7da1d51879..6105be67b49 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt @@ -16,7 +16,7 @@ open class GenericM3U8 : ExtractorApi() { val response = app.get( url, interceptor = WebViewResolver( Regex("""master\.m3u8""") - ) as? Interceptor + ) as? com.lagradost.nicehttp.Interceptor ) val sources = mutableListOf() if (response.url.contains("m3u8")) From c87c1ccad03bd3e6c4f5af4725b235addfe39d52 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:37:49 -0600 Subject: [PATCH 059/114] as? com.lagradost.nicehttp.Interceptor --- .../lagradost/cloudstream3/extractors/StreamWishExtractor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt index 5ca3c7c438e..75d78eb9c3f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt @@ -194,7 +194,7 @@ open class StreamWishExtractor : ExtractorApi() { additionalUrls = listOf(Regex("""txt|m3u8""")), useOkhttp = false, timeout = 15_000L - ) + ) as? com.lagradost.nicehttp.Interceptor val interceptedStreamUrl = app.get( url, From 8121faeff47cfefcc50097d7c48417b2d3b72d7b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:38:24 -0600 Subject: [PATCH 060/114] as? com.lagradost.nicehttp.Interceptor --- .../kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt index 20f0a2b5e4d..bddb89d205b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt @@ -15,9 +15,9 @@ open class WatchSB : ExtractorApi() { val response = app.get( url, interceptor = WebViewResolver( Regex("""master\.m3u8""") - ) + ) as? com.lagradost.nicehttp.Interceptor ) return generateM3u8(name, response.url, url, headers = response.headers.toMap()) } -} \ No newline at end of file +} From 86754829c23e94df5f564972d324b18f96732285 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:40:04 -0600 Subject: [PATCH 061/114] - --- .../kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt index 20256e1956b..a1b5a703d87 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsUnpacker.kt @@ -114,7 +114,7 @@ class JsUnpacker(packedJS: String?) { this.packedJS = packedJS } - companion object { + /*companion object { val c = listOf( 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2e, 0x67, 0x6d, 0x73, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x4d, @@ -148,5 +148,5 @@ class JsUnpacker(packedJS: String?) { } } } - } + }*/ } From ed7acdf152e93fdd64f1bc19049c9ac05c59fb97 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:41:46 -0600 Subject: [PATCH 062/114] Try --- .../com/lagradost/cloudstream3/extractors/Filemoon.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt index d988f11275b..3933c166b29 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt @@ -95,13 +95,12 @@ open class FilemoonV2 : ExtractorApi() { additionalUrls = listOf(Regex("""(m3u8|master\.txt)""")), useOkhttp = false, timeout = 15_000L - ) as? com.lagradost.nicehttp.Interceptor + ) - val interceptedUrl = app.get( - iframeSrcUrl, - referer = referer, + val interceptedUrl = app.get(iframeSrcUrl) { + referer = referer interceptor = resolver - ).url + }.url if (interceptedUrl.isNotEmpty()) { M3u8Helper.generateM3u8( From 116ae177a753dd25272532ac6f5b5691c66a931c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:45:00 -0600 Subject: [PATCH 063/114] Fix --- .../kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt index 3933c166b29..41ca8cbd940 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt @@ -98,7 +98,7 @@ open class FilemoonV2 : ExtractorApi() { ) val interceptedUrl = app.get(iframeSrcUrl) { - referer = referer + this.referer = referer interceptor = resolver }.url From 390be509aadb4f76b83375b4ee5b5df9fe7e9ab8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:46:24 -0600 Subject: [PATCH 064/114] Fix --- .../com/lagradost/cloudstream3/extractors/GenericM3U8.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt index 6105be67b49..c32bf31383c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GenericM3U8.kt @@ -13,11 +13,11 @@ open class GenericM3U8 : ExtractorApi() { override val requiresReferer = false override suspend fun getUrl(url: String, referer: String?): List { - val response = app.get( - url, interceptor = WebViewResolver( + val response = app.get(url) { + interceptor = WebViewResolver( Regex("""master\.m3u8""") - ) as? com.lagradost.nicehttp.Interceptor - ) + ) + } val sources = mutableListOf() if (response.url.contains("m3u8")) M3u8Helper.generateM3u8( From da96c2b98138ed4b096da5b2d1d1ebe7ce3c4d9c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:47:48 -0600 Subject: [PATCH 065/114] Fix --- .../cloudstream3/extractors/StreamWishExtractor.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt index 75d78eb9c3f..e7e859c5084 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt @@ -194,13 +194,12 @@ open class StreamWishExtractor : ExtractorApi() { additionalUrls = listOf(Regex("""txt|m3u8""")), useOkhttp = false, timeout = 15_000L - ) as? com.lagradost.nicehttp.Interceptor + ) - val interceptedStreamUrl = app.get( - url, - referer = referer, + val interceptedStreamUrl = app.get(url) { + this.referer = referer interceptor = webViewM3u8Resolver - ).url + }.url if (interceptedStreamUrl.isNotEmpty()) { M3u8Helper.generateM3u8( From 451c2682c4424f56774e335189d22fc822ebb80d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:49:16 -0600 Subject: [PATCH 066/114] Fix --- .../com/lagradost/cloudstream3/extractors/Filesim.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt index 91192651f8e..c53cd0f155e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt @@ -88,13 +88,12 @@ open class Filesim : ExtractorApi() { additionalUrls = listOf(Regex("""(m3u8|master\.txt)""")), useOkhttp = false, timeout = 15_000L - ) as? com.lagradost.nicehttp.Interceptor + ) - val interceptedUrl = app.get( - url = pageResponse.url, - referer = referer, + val interceptedUrl = app.get(pageResponse.url) { + this.referer = referer interceptor = resolver - ).url + }.url if (interceptedUrl.isNotEmpty()) { M3u8Helper.generateM3u8( From 60820f67b16056a91302078c638de5186b366381 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:50:04 -0600 Subject: [PATCH 067/114] Fix --- .../com/lagradost/cloudstream3/extractors/WatchSB.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt index bddb89d205b..45fe07864dd 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/WatchSB.kt @@ -12,11 +12,11 @@ open class WatchSB : ExtractorApi() { override val requiresReferer = false override suspend fun getUrl(url: String, referer: String?): List { - val response = app.get( - url, interceptor = WebViewResolver( + val response = app.get(url) { + interceptor = WebViewResolver( Regex("""master\.m3u8""") - ) as? com.lagradost.nicehttp.Interceptor - ) + ) + } return generateM3u8(name, response.url, url, headers = response.headers.toMap()) } From a3fd32da90a1e25e825a8736277bc571845d7bb7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:54:26 -0600 Subject: [PATCH 068/114] Add expect WorkerThread --- .../kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt index baa2dce8fbc..7571948cbd6 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.utils import androidx.annotation.AnyThread import androidx.annotation.MainThread -import androidx.annotation.WorkerThread import com.lagradost.cloudstream3.Prerelease import com.lagradost.cloudstream3.mvvm.launchSafe import com.lagradost.cloudstream3.mvvm.logError @@ -12,6 +11,7 @@ import kotlinx.coroutines.* expect fun runOnMainThreadNative(@MainThread work: (() -> Unit)) expect val workerDispatcher: CoroutineDispatcher +expect annotation class WorkerThread() object Coroutines { @AnyThread From 9c7e8c4f1d8bdd21a3c994d71aab2938f6d1760a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:55:16 -0600 Subject: [PATCH 069/114] add actual --- .../com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt index 697df909381..a80d46a44bc 100644 --- a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt +++ b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.jvmCommon.kt @@ -4,3 +4,4 @@ import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers actual val workerDispatcher: CoroutineDispatcher = Dispatchers.IO +actual typealias WorkerThread = androidx.annotation.WorkerThread From 3d7ecf2733373ef694ec180a69b919f5c486f79f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:56:03 -0600 Subject: [PATCH 070/114] Add actual --- .../kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt index 2700ae70515..6b315fa6b66 100644 --- a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt @@ -4,3 +4,4 @@ import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers actual val workerDispatcher: CoroutineDispatcher = Dispatchers.Default +actual annotation class WorkerThread() From 89a25aac86f5474da04e1eaa87ae89756c7840bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 18:57:11 -0600 Subject: [PATCH 071/114] Use our WorkerThread --- .../kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt index aee776456fc..8a5455e2e8e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt @@ -1,11 +1,11 @@ package com.lagradost.cloudstream3.mvvm import androidx.annotation.AnyThread -import androidx.annotation.WorkerThread import com.lagradost.api.Log import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.utils.AppDebug import com.lagradost.cloudstream3.utils.Coroutines.ioWork +import com.lagradost.cloudstream3.utils.WorkerThread import kotlinx.coroutines.* import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext From 29670e9e1cdbc56822cfcfe74b2eb6d20cb4450e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:01:43 -0600 Subject: [PATCH 072/114] add runOnMainThreadNative webmain --- .../com/lagradost/cloudstream3/utils/Coroutines.web.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt index 6b315fa6b66..97dfe6dbdc5 100644 --- a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt @@ -1,7 +1,14 @@ package com.lagradost.cloudstream3.utils +import androidx.annotation.AnyThread +import androidx.annotation.MainThread import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers actual val workerDispatcher: CoroutineDispatcher = Dispatchers.Default actual annotation class WorkerThread() + +@AnyThread +actual fun runOnMainThreadNative(@MainThread work: () -> Unit) { + work.invoke() +} From 1a2eee428543c5f63eb2991c8f7379d2eb979291 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:06:27 -0600 Subject: [PATCH 073/114] Add --- .../kotlin/com/lagradost/cloudstream3/MainActivity.kt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt diff --git a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt new file mode 100644 index 00000000000..a44f80dd6c7 --- /dev/null +++ b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt @@ -0,0 +1,9 @@ +package com.lagradost.cloudstream3 + +import io.ktor.client.engine.okhttp.OkHttpEngine +import okhttp3.OkHttpClient + +// TODO: Remove usage of this by migrating interceptors and media3 to ktor +@InternalAPI +val okHttpClient = (app.baseClient.engine as? OkHttpEngine) + ?.config?.preconfigured ?: OkHttpClient() From d49a4eaa0d03b3d2fb38656ef653cfc9943305fe Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:07:54 -0600 Subject: [PATCH 074/114] - --- .../com/lagradost/cloudstream3/utils/AppContextUtils.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/AppContextUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/AppContextUtils.kt index 65519c0f1ce..8ea7089e12b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/AppContextUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/AppContextUtils.kt @@ -83,7 +83,7 @@ import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.DataStoreHelper.getAllResumeStateIds import com.lagradost.cloudstream3.utils.DataStoreHelper.getLastWatched import com.lagradost.cloudstream3.utils.FillerEpisodeCheck.toClassDir -import com.lagradost.cloudstream3.utils.JsUnpacker.Companion.load +// import com.lagradost.cloudstream3.utils.JsUnpacker.Companion.load import com.lagradost.cloudstream3.utils.UIHelper.navigate import com.lagradost.cloudstream3.utils.downloader.DownloadObjects import kotlinx.coroutines.sync.Mutex @@ -688,7 +688,7 @@ object AppContextUtils { fun Activity?.loadCache() { try { - cacheClass("android.net.NetworkCapabilities".load()) + // cacheClass("android.net.NetworkCapabilities".load()) } catch (_: Exception) { } } @@ -896,4 +896,4 @@ object AppContextUtils { } else null return currentAudioFocusRequest } -} \ No newline at end of file +} From be76eaaf2675c940ea05a0ec5bff83f564216531 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:09:07 -0600 Subject: [PATCH 075/114] Fix --- .../cloudstream3/{MainActivity.kt => MainActivity.jvmCommon.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/{MainActivity.kt => MainActivity.jvmCommon.kt} (100%) diff --git a/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt b/library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.jvmCommon.kt similarity index 100% rename from library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt rename to library/src/jvmCommonMain/kotlin/com/lagradost/cloudstream3/MainActivity.jvmCommon.kt From 780aa2333a371b5ce18f19ad5f8691a28d7273ab Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:13:06 -0600 Subject: [PATCH 076/114] Bump --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2a6dd7aac03..1a7754e4df9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20" +kotlinGradlePlugin = "2.3.21" kotlinxAtomicfu = "0.33.0" kotlinxCollectionsImmutable = "0.4.0" kotlinxCoroutinesCore = "1.11.0" From 5ab356b6f0d610146b75212ca0646c4363e7e1ca Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 12:37:25 -0600 Subject: [PATCH 077/114] Test --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8f5c6286636..a4b4bf32a20 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -33,4 +33,6 @@ jobs: uses: actions/upload-artifact@v7 with: name: pull-request-build - path: "app/build/outputs/apk/prerelease/debug/*.apk" + path: | + app/build/outputs/apk/prerelease/debug/*.apk + library/build/dist/js/productionExecutable/** From fc755a311c8042921aa2392a945bac0ae06acda2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 12:44:02 -0600 Subject: [PATCH 078/114] Fix --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a4b4bf32a20..c33160369c4 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,4 +35,4 @@ jobs: name: pull-request-build path: | app/build/outputs/apk/prerelease/debug/*.apk - library/build/dist/js/productionExecutable/** + library/build/distributions/** From f01b5f6c249fe27a730de4e4036225309cc421ee Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 12:47:36 -0600 Subject: [PATCH 079/114] Try --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c33160369c4..b88cd253f49 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,4 +35,4 @@ jobs: name: pull-request-build path: | app/build/outputs/apk/prerelease/debug/*.apk - library/build/distributions/** + library/build/** From d54baece24b574c5694a2fb27aecbddeca2caf9f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 13:15:33 -0600 Subject: [PATCH 080/114] - --- .../kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt index d74a1ccd61b..f1f87050734 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.newSubtitleFile @@ -80,7 +79,6 @@ open class Vidara : ExtractorApi() { val title: String, val thumbnail: String, @SerialName("streaming_url") - @JsonProperty("streaming_url") val streamingUrl: String, val subtitles: List? ) @@ -88,7 +86,6 @@ open class Vidara : ExtractorApi() { @Serializable private data class StreamUpSubtitle( @SerialName("file_path") - @JsonProperty("file_path") val filePath: String, val language: String, ) From 7a3c2bac5469aa88cb3b6bde1ad79de179c3ade7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 13:17:44 -0600 Subject: [PATCH 081/114] Update --- .../kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt index 97dfe6dbdc5..3ea59f6cc02 100644 --- a/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt +++ b/library/src/webMain/kotlin/com/lagradost/cloudstream3/utils/Coroutines.web.kt @@ -6,7 +6,7 @@ import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers actual val workerDispatcher: CoroutineDispatcher = Dispatchers.Default -actual annotation class WorkerThread() +internal actual annotation class WorkerThread() @AnyThread actual fun runOnMainThreadNative(@MainThread work: () -> Unit) { From 30fef28e51b4feb70ab84923522b264879a66b41 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 13:27:42 -0600 Subject: [PATCH 082/114] Test --- build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index f58fb584fc8..7ffef335ce2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,3 +8,9 @@ plugins { alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.serialization) apply false } + +plugins.withType { + rootProject.extensions.configure { + download = false + } +} From 48a37b83f56e6c1e9189c64b5e353a39a473b243 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 3 Jul 2026 13:33:33 -0600 Subject: [PATCH 083/114] - --- build.gradle.kts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7ffef335ce2..f58fb584fc8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,9 +8,3 @@ plugins { alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.serialization) apply false } - -plugins.withType { - rootProject.extensions.configure { - download = false - } -} From ecf3f1620b6dfb5a5708d85ad4656f6903cfe20e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 4 Jul 2026 11:31:10 -0600 Subject: [PATCH 084/114] Test --- library/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index da2de28f402..9edfd281342 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -40,7 +40,8 @@ kotlin { jvm() js { - browser() + nodejs() + binaries.library() } compilerOptions { From 5f482164da1d107a676b4c215d32ece96f73a9cd Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 4 Jul 2026 11:48:34 -0600 Subject: [PATCH 085/114] Test --- library/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 9edfd281342..9356ea90891 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -39,8 +39,9 @@ kotlin { } jvm() - js { + js(IR) { nodejs() + useCommonJs() binaries.library() } From 331a99adf725438e4a00e97636db8976d7b27958 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:03:50 -0600 Subject: [PATCH 086/114] Update --- .../cloudstream3/utils/JsInterpreter.kt | 110 +++++++++++++----- 1 file changed, 80 insertions(+), 30 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt index 44daa49e3ff..39d950ed1fa 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/JsInterpreter.kt @@ -1,11 +1,13 @@ package com.lagradost.cloudstream3.utils +import androidx.annotation.VisibleForTesting import com.lagradost.cloudstream3.Prerelease import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.utils.StringUtils.decodeUrl import com.lagradost.cloudstream3.utils.StringUtils.encodeUrl import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.isActive import kotlin.math.E import kotlin.math.PI @@ -88,35 +90,93 @@ private const val JS_DEFAULT_MAX_INSTRUCTIONS: Long = 50_000_000L fun jsValueToString(v: Any?): String = toJsString(v) /** - * Stateful JS execution context. Keeps variables alive between [eval] calls, + * Stateful JS execution context. Keeps variables alive between [eval] calls, * mimicking the Rhino "scope" object that extensions used to hold on to. * - * @param maxExecutionTime wall-clock budget given to each [eval] call. + * Instances are created via [newJsContext], not by calling this constructor directly. + * + * @param maxExecutionTime wall-clock budget given to each [eval] call. Can still be + * changed after construction (e.g. from within [newJsContext]'s initializer + * block) as long as it's set before the first [eval]/[get]/[set] call, since the + * underlying interpreter is built lazily from whatever values these hold at that + * point. Changes made afterward have no effect. * @param maxInstructions hard cap on statements/expressions executed per [eval] call, - * independent of wall-clock time. + * independent of wall-clock time. Same lazy-initialization caveat as + * [maxExecutionTime] applies. + * @param scope the [CoroutineScope] this context's cancellation is tied to. Supplied + * automatically by [newJsContext] from the caller's own coroutine context. */ @Prerelease -class JsContext( - maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, - maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, +class JsContext internal constructor( + var maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, + var maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, + private val scope: CoroutineScope, ) { - private val interpreter = JsInterpreter(maxExecutionTime, maxInstructions) + /** + * Built lazily so that any changes made to [maxExecutionTime]/[maxInstructions] inside + * [newJsContext]'s initializer block (before the first [eval]/[get]/[set] call) are + * still in effect when JsInterpreter is actually constructed. Once this has been + * accessed once, further changes to the two vars above have no effect. + */ + private val interpreter: JsInterpreter by lazy { + JsInterpreter(maxExecutionTime, maxInstructions, scope) + } - /** Evaluate [code] in this context. Returns the last expression value. */ - fun eval(code: String): Any? = interpreter.eval(code) + /** + * Evaluate [code] in this context. Returns the last expression value. + * + * @throws CancellationException if this context's underlying coroutine scope + * has been cancelled, e.g. by an enclosing `withTimeout`. + */ + @Throws(CancellationException::class) + suspend fun eval(code: String): Any? = interpreter.eval(code) - /** Retrieve a variable set by previously evaluated code. */ + /** + * Retrieve a variable set by previously evaluated code, or via [set]. + * Returns `null` if never set. + */ operator fun get(name: String): Any? = interpreter.getVar(name) - /** Expose a Kotlin value to subsequently evaluated JS code. */ + /** Expose a Kotlin value to subsequently evaluated JS code under the name [name]. */ operator fun set(name: String, value: Any?) = interpreter.setVar(name, value) } +/** + * Creates a new [JsContext], running [initializer] on it before returning. + * + * The context's cancellation is automatically tied to whichever coroutine calls this + * function. If that coroutine is later cancelled (e.g. an enclosing `withTimeout` + * expires), any in-flight or subsequent [JsContext.eval] call on the returned + * context will throw [CancellationException]. + * + * [JsContext.maxExecutionTime] / [JsContext.maxInstructions] can be changed from + * within [initializer] (via `this.maxExecutionTime = ...`) and will take effect, since + * the underlying interpreter isn't built until the context is first used. + * + * Usage: + * val ctx = newJsContext { + * maxInstructions = 10_000 + * set("x", 1.0) + * eval("x + 1") + * } + */ +@Prerelease +suspend fun newJsContext( + initializer: suspend JsContext.() -> Unit = {}, +): JsContext { + val scope = CoroutineScope(currentCoroutineContext()) + return JsContext(scope = scope).apply { initializer() } +} + /** * Evaluate [js] and return its last value, or the value of [variable] if specified. * Convenience wrapper for one-shot evaluations, equivalent to the old * `rhino.evaluateString(scope, js, ...)`. * + * Cancellation is automatically tied to whichever coroutine calls this function. If + * that coroutine is cancelled (e.g. an enclosing `withTimeout` expires), this call + * throws [CancellationException]. + * * @param js The JavaScript code to evaluate. * @param variable Optional variable name to retrieve from the scope after evaluation. * @param maxExecutionTime wall-clock budget before the script is forcibly aborted. @@ -129,37 +189,26 @@ class JsContext( * JS null is represented as Kotlin null. Use [jsValueToString] to convert to a JS string. */ @Prerelease -fun evalJs( +@Throws(CancellationException::class) +suspend fun evalJs( js: String, variable: String? = null, maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, ): Any? { - val interpreter = JsInterpreter(maxExecutionTime, maxInstructions) - val result = interpreter.eval(js) - return if (variable != null) interpreter.getVar(variable) else result + val scope = CoroutineScope(currentCoroutineContext()) + return evalJsInternal(js, variable, maxExecutionTime, maxInstructions, scope) } -/** - * Scope-aware variant of [evalJs]. The interpreter checks [CoroutineScope.isActive] every - * 1024 instructions and aborts (returning [Unit]) if the scope has been cancelled. - * - * There is no thread dispatch or suspension. This function runs synchronously on the - * calling thread, so it carries zero coroutine overhead for normal (non-cancelled) scripts. - * Cancellation latency is bounded to one check window (~1024 interpreter instructions). - * - * Typical usage inside a coroutine: - * val result = coroutineScope { evalJs("...") } - */ -@Prerelease -@Throws(CancellationException::class) -fun CoroutineScope.evalJs( +@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) +internal fun evalJsInternal( js: String, variable: String? = null, maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, + scope: CoroutineScope? = null, ): Any? { - val interpreter = JsInterpreter(maxExecutionTime, maxInstructions, this) + val interpreter = JsInterpreter(maxExecutionTime, maxInstructions, scope) val result = interpreter.eval(js) return if (variable != null) interpreter.getVar(variable) else result } @@ -766,6 +815,7 @@ private class ThrowSignal(val value: Any?) : Throwable() * its generic `catch (Exception)` clause, so a JS script's own try/catch block cannot * swallow it and keep a cancelled loop alive. */ +@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal class JsCancellationException(message: String) : CancellationException(message) /** From c0764311bc92d03b6eca744f2bb431803c766191 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:05:11 -0600 Subject: [PATCH 087/114] Add --- .../cloudstream3/utils/JsInterpreterTest.kt | 2410 +++++++++++++++++ 1 file changed, 2410 insertions(+) create mode 100644 library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt new file mode 100644 index 00000000000..182ea6c950c --- /dev/null +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt @@ -0,0 +1,2410 @@ +package com.lagradost.cloudstream3.utils + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.cancel +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.launch +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.withTimeout +import kotlinx.coroutines.withTimeoutOrNull +import kotlin.math.E +import kotlin.math.PI +import kotlin.math.abs +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNull +import kotlin.test.assertTrue +import kotlin.test.assertFailsWith +import kotlin.test.assertFalse +import kotlin.time.Duration +import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.seconds +import kotlin.time.TimeSource + +class JsInterpreterTest { + + private fun bool(code: String, variable: String? = null): Boolean = evalJsInternal(code, variable) as? Boolean ?: false + private fun num(code: String, variable: String? = null): Double = evalJsInternal(code, variable) as? Double ?: Double.NaN + private fun str(code: String, variable: String? = null): String = jsValueToString(evalJsInternal(code, variable)) + + private fun assertApprox(expected: Double, actual: Double, tol: Double = 1e-9) { + assertTrue(abs(actual - expected) <= tol, "Expected $expected ± $tol but was $actual") + } + + @Test + fun integerLiteral() { + assertEquals(42.0, num("42")) + } + + @Test + fun negativeLiteral() { + assertEquals(-7.0, num("-7")) + } + + @Test + fun floatLiteral() { + assertApprox(3.14, num("3.14")) + } + + @Test + fun hexLiteral() { + assertEquals(255.0, num("0xff")) + } + + @Test + fun stringLiteralDouble() { + assertEquals("hi", str("\"hi\"")) + } + + @Test + fun stringLiteralSingle() { + assertEquals("hi", str("'hi'")) + } + + @Test + fun templateLiteral() { + assertEquals("hi", str("`hi`")) + } + + @Test + fun booleanTrue() { + assertTrue(bool("true")) + } + + @Test + fun booleanFalse() { + assertFalse(bool("false")) + } + + @Test + fun nullLiteral() { + assertNull(evalJsInternal("null")) + } + + @Test + fun undefinedLiteral() { + assertEquals(Unit, evalJsInternal("undefined")) + } + + @Test + fun addition() { + assertEquals(5.0, num("2+3")) + } + + @Test + fun subtraction() { + assertEquals(1.0, num("3-2")) + } + + @Test + fun multiplication() { + assertEquals(6.0, num("2*3")) + } + + @Test + fun division() { + assertEquals(2.5, num("5/2")) + } + + @Test + fun modulo() { + assertEquals(1.0, num("7%3")) + } + + @Test + fun operatorPrecedence() { + assertEquals(7.0, num("1+2*3")) + } + + @Test + fun parenthesesOverride() { + assertEquals(9.0, num("(1+2)*3")) + } + + @Test + fun unaryMinus() { + assertEquals(-5.0, num("-(2+3)")) + } + + @Test + fun unaryPlusCoerces() { + assertEquals(3.0, num("+'3'")) + } + + @Test + fun stringMinusNumberCoercesToNumber() { + // "3" - 1 => 2 (JS coerces string to number for subtraction) + assertEquals(2.0, num("'3'-1")) + } + + @Test + fun stringTimesStringCoercesToNumber() { + // "3" * "4" => 12 + assertEquals(12.0, num("'3'*'4'")) + } + + @Test + fun nanArithmetic() { + // NaN + 1 => NaN + assertTrue(num("NaN+1").isNaN()) + } + + @Test + fun infinityPositive() { + assertTrue(num("Infinity").isInfinite() && num("Infinity") > 0) + } + + @Test + fun infinityArithmetic() { + assertTrue(num("Infinity+1").isInfinite()) + } + + @Test + fun divisionByZeroIsInfinity() { + assertTrue(num("1/0").isInfinite() && num("1/0") > 0) + } + + @Test + fun bitwiseAnd() { + assertEquals(2.0, num("6&3")) + } + + @Test + fun bitwiseOr() { + assertEquals(7.0, num("5|3")) + } + + @Test + fun bitwiseXor() { + assertEquals(6.0, num("5^3")) + } + + @Test + fun bitwiseNot() { + assertEquals(-6.0, num("~5")) + } + + @Test + fun bitwiseNotOnNegative() { + assertEquals(4.0, num("~(-5)")) + } + + @Test + fun bitwiseNotTruncatesFloat() { + // ~3.9 == ~3 == -4 + assertEquals(-4.0, num("~3.9")) + } + + @Test + fun leftShift() { + assertEquals(20.0, num("5<<2")) + } + + @Test + fun rightShift() { + assertEquals(1.0, num("5>>2")) + } + + @Test + fun unsignedRightShift() { + assertEquals(1.0, num("5>>>2")) + } + + @Test + fun unsignedRightShiftOnNegative() { + // (-1 >>> 0) in JS == 4294967295 (treats as unsigned 32-bit) + assertEquals(4294967295.0, num("-1>>>0")) + } + + @Test + fun bitwiseOrWithZeroTruncatesFloat() { + // 3.9|0 == 3 (common JS truncation idiom) + assertEquals(3.0, num("3.9|0")) + } + + @Test + fun lessThanTrue() { + assertTrue(bool("1<2")) + } + + @Test + fun lessThanFalse() { + assertFalse(bool("2<1")) + } + + @Test + fun greaterThanTrue() { + assertTrue(bool("2>1")) + } + + @Test + fun lessThanOrEqualEqual() { + assertTrue(bool("2<=2")) + } + + @Test + fun greaterThanOrEqualEqual() { + assertTrue(bool("2>=2")) + } + + @Test + fun looseEqNumberString() { + assertTrue(bool("1=='1'")) + } + + @Test + fun looseEqNullUndefined() { + // null == undefined is true in JS + assertTrue(bool("null==undefined")) + } + + @Test + fun looseEqNullNotZero() { + // null == 0 is false in JS + assertFalse(bool("null==0")) + } + + @Test + fun looseNeqWorks() { + assertTrue(bool("1!='2'")) + } + + @Test + fun strictEqSameType() { + assertTrue(bool("1===1")) + } + + @Test + fun strictEqDifferentType() { + assertFalse(bool("1==='1'")) + } + + @Test + fun strictNeq() { + assertTrue(bool("1!=='1'")) + } + + @Test + fun instanceofArrayTrue() { + assertTrue(bool("[] instanceof Array")) + } + + @Test + fun instanceofArrayFalseForObject() { + assertFalse(bool("({}) instanceof Array")) + } + + @Test + fun instanceofObjectTrueForPlainObject() { + assertTrue(bool("({}) instanceof Object")) + } + + @Test + fun instanceofObjectTrueForArray() { + // Arrays are objects in JS + assertTrue(bool("[] instanceof Object")) + } + + @Test + fun instanceofFunctionTrue() { + assertTrue(bool("(function(){}) instanceof Function")) + } + + @Test + fun instanceofFunctionFalseForArray() { + assertFalse(bool("[] instanceof Function")) + } + + @Test + fun instanceofUserDefinedConstructorTrue() { + assertTrue(bool("function Dog(){} var d = new Dog(); d instanceof Dog")) + } + + @Test + fun instanceofUserDefinedConstructorFalseForOtherClass() { + assertFalse(bool("function Cat(){} function Dog(){} var d = new Dog(); d instanceof Cat")) + } + + @Test + fun instanceofUserDefinedConstructorFalseForPlainObject() { + assertFalse(bool("function Dog(){} ({}) instanceof Dog")) + } + + @Test + fun instanceofUserDefinedConstructorWithProperties() { + val code = """ + function Point(x, y) { this.x = x; this.y = y; } + var p = new Point(1, 2); + (p instanceof Point) && p.x === 1 && p.y === 2 + """.trimIndent() + assertTrue(bool(code)) + } + + @Test + fun inOperatorOnObject() { + assertTrue(bool("'a' in {a:1}")) + } + + @Test + fun inOperatorOnObjectMissing() { + assertFalse(bool("'z' in {a:1}")) + } + + @Test + fun inOperatorOnArray() { + assertTrue(bool("0 in [10,20]")) + } + + @Test + fun logicalAndRightWhenLeftTruthy() { + assertEquals(2.0, num("1&&2")) + } + + @Test + fun logicalAndLeftWhenLeftFalsy() { + assertEquals(0.0, num("0&&2")) + } + + @Test + fun logicalOrLeftWhenTruthy() { + assertEquals(1.0, num("1||2")) + } + + @Test + fun logicalOrRightWhenLeftFalsy() { + assertEquals(2.0, num("0||2")) + } + + @Test + fun logicalNot() { + assertTrue(bool("!false")) + } + + @Test + fun logicalNotOnZero() { + assertTrue(bool("!0")) + } + + @Test + fun logicalNotOnEmptyString() { + assertTrue(bool("!''")) + } + + @Test + fun logicalNotOnNonEmptyString() { + assertFalse(bool("!'x'")) + } + + @Test + fun ternaryTrueBranch() { + assertEquals(1.0, num("true?1:2")) + } + + @Test + fun ternaryFalseBranch() { + assertEquals(2.0, num("false?1:2")) + } + + @Test + fun nestedTernary() { + // 1>2 ? 'a' : 3>2 ? 'b' : 'c' => 'b' + assertEquals("b", str("1>2?'a':3>2?'b':'c'")) + } + + @Test + fun varDeclarationAndRead() { + assertEquals(10.0, num("var x=10; x")) + } + + @Test + fun letDeclaration() { + assertEquals("hello", str("let s='hello'; s")) + } + + @Test + fun constDeclaration() { + assertApprox(3.14, num("const PI=3.14; PI")) + } + + @Test + fun multiVarDeclaration() { + assertEquals(3.0, num("var a=1, b=2; a+b")) + } + + @Test + fun assignmentPlusEquals() { + assertEquals(15.0, num("var x=10; x+=5; x")) + } + + @Test + fun assignmentMinusEquals() { + assertEquals(5.0, num("var x=10; x-=5; x")) + } + + @Test + fun assignmentTimesEquals() { + assertEquals(20.0, num("var x=4; x*=5; x")) + } + + @Test + fun assignmentDivideEquals() { + assertEquals(5.0, num("var x=10; x/=2; x")) + } + + @Test + fun assignmentModuloEquals() { + assertEquals(1.0, num("var x=7; x%=3; x")) + } + + @Test + fun prefixIncrement() { + assertEquals(6.0, num("var x=5; ++x")) + } + + @Test + fun postfixIncrementReturnsOldValue() { + assertEquals(5.0, num("var x=5; x++")) + } + + @Test + fun postfixIncrementMutatesVariable() { + assertEquals(6.0, num("var x=5; x++; x")) + } + + @Test + fun prefixDecrement() { + assertEquals(4.0, num("var x=5; --x")) + } + + @Test + fun postfixDecrement() { + assertEquals(5.0, num("var x=5; x--")) + } + + @Test + fun postfixDecrementMutates() { + assertEquals(4.0, num("var x=5; x--; x")) + } + + @Test + fun commaOperatorReturnsLast() { + // Sequence/comma expression: (1, 2, 3) => 3 + assertEquals(3.0, num("(1,2,3)")) + } + + @Test + fun typeofNumber() { + assertEquals("number", str("typeof 42")) + } + + @Test + fun typeofString() { + assertEquals("string", str("typeof 'x'")) + } + + @Test + fun typeofBoolean() { + assertEquals("boolean", str("typeof true")) + } + + @Test + fun typeofUndefined() { + assertEquals("undefined", str("typeof undefined")) + } + + @Test + fun typeofFunction() { + assertEquals("function", str("typeof function(){}")) + } + + @Test + fun typeofNull() { + // typeof null === "object" in JS + assertEquals("object", str("typeof null")) + } + + @Test + fun typeofObject() { + assertEquals("object", str("typeof {}")) + } + + @Test + fun typeofArray() { + assertEquals("object", str("typeof []")) + } + + @Test + fun typeofUndeclaredVariable() { + // typeof on an undeclared variable should not throw, returns "undefined" + assertEquals("undefined", str("typeof neverDeclaredXyz")) + } + + @Test + fun voidOperator() { + assertEquals(Unit, evalJsInternal("void 0")) + } + + @Test + fun voidOperatorOnExpression() { + assertEquals(Unit, evalJsInternal("void (1+2)")) + } + + @Test + fun stringConcatenation() { + assertEquals("ab", str("'a'+'b'")) + } + + @Test + fun numberPlusStringCoercesToString() { + assertEquals("1x", str("1+'x'")) + } + + @Test + fun stringLength() { + assertEquals(5.0, num("'hello'.length")) + } + + @Test + fun stringCharAt() { + assertEquals("e", str("'hello'.charAt(1)")) + } + + @Test + fun stringCharAtOutOfRange() { + assertEquals("", str("'hello'.charAt(99)")) + } + + @Test + fun stringCharCodeAt() { + assertEquals(104.0, num("'hello'.charCodeAt(0)")) + } + + @Test + fun stringCodePointAt() { + assertEquals(104.0, num("'hello'.codePointAt(0)")) + } + + @Test + fun stringBracketIndexing() { + // 'hello'[1] === 'e' + assertEquals("e", str("'hello'[1]")) + } + + @Test + fun stringBracketIndexingFirst() { + assertEquals("h", str("'hello'[0]")) + } + + @Test + fun stringIndexOfFound() { + assertEquals(1.0, num("'hello'.indexOf('e')")) + } + + @Test + fun stringIndexOfNotFound() { + assertEquals(-1.0, num("'hello'.indexOf('z')")) + } + + @Test + fun stringLastIndexOf() { + assertEquals(3.0, num("'abcabc'.lastIndexOf('a')")) + } + + @Test + fun stringLastIndexOfNotFound() { + assertEquals(-1.0, num("'hello'.lastIndexOf('z')")) + } + + @Test + fun stringSlice() { + assertEquals("ell", str("'hello'.slice(1,4)")) + } + + @Test + fun stringSliceNegativeIndex() { + assertEquals("lo", str("'hello'.slice(-2)")) + } + + @Test + fun stringSliceNegativeEnd() { + assertEquals("hel", str("'hello'.slice(0,-2)")) + } + + @Test + fun stringSubstr() { + assertEquals("ell", str("'hello'.substr(1,3)")) + } + + @Test + fun stringSubstring() { + assertEquals("ell", str("'hello'.substring(1,4)")) + } + + @Test + fun stringSubstringSwapsArgs() { + // substring swaps start/end if start > end + assertEquals("ell", str("'hello'.substring(4,1)")) + } + + @Test + fun stringSplitAndJoin() { + assertEquals("a-b-c", str("'a|b|c'.split('|').join('-')")) + } + + @Test + fun stringSplitEmptySepGivesChars() { + assertEquals("h,e,l,l,o", str("'hello'.split('').join(',')")) + } + + @Test + fun stringReplaceFirstOccurrence() { + assertEquals("xbc", str("'abc'.replace('a','x')")) + } + + @Test + fun stringReplaceAll() { + assertEquals("xbxbxb", str("'ababab'.replace('a','x').replace('a','x').replace('a','x')")) + } + + @Test + fun stringReplaceAllMethod() { + assertEquals("xbxbxb", str("'ababab'.replaceAll('a','x')")) + } + + @Test + fun stringToUpperCase() { + assertEquals("HELLO", str("'hello'.toUpperCase()")) + } + + @Test + fun stringToLowerCase() { + assertEquals("hello", str("'HELLO'.toLowerCase()")) + } + + @Test + fun stringTrim() { + assertEquals("hi", str("' hi '.trim()")) + } + + @Test + fun stringTrimStart() { + assertEquals("hi ", str("' hi '.trimStart()")) + } + + @Test + fun stringTrimEnd() { + assertEquals(" hi", str("' hi '.trimEnd()")) + } + + @Test + fun stringRepeat() { + assertEquals("aaa", str("'a'.repeat(3)")) + } + + @Test + fun stringRepeatZero() { + assertEquals("", str("'a'.repeat(0)")) + } + + @Test + fun stringPadStart() { + assertEquals("005", str("'5'.padStart(3,'0')")) + } + + @Test + fun stringPadEnd() { + assertEquals("500", str("'5'.padEnd(3,'0')")) + } + + @Test + fun stringPadStartNoOpWhenLongEnough() { + assertEquals("hello", str("'hello'.padStart(3,'0')")) + } + + @Test + fun stringIncludes() { + assertTrue(bool("'hello'.includes('ell')")) + } + + @Test + fun stringIncludesFalse() { + assertFalse(bool("'hello'.includes('xyz')")) + } + + @Test + fun stringStartsWith() { + assertTrue(bool("'hello'.startsWith('hel')")) + } + + @Test + fun stringEndsWith() { + assertTrue(bool("'hello'.endsWith('llo')")) + } + + @Test + fun stringFromCharCode() { + assertEquals("A", str("String.fromCharCode(65)")) + } + + @Test + fun stringFromCharCodeMultiple() { + assertEquals("Hi", str("String.fromCharCode(72,105)")) + } + + @Test + fun stringToString() { + assertEquals("hello", str("'hello'.toString()")) + } + + @Test + fun stringMatch() { + // match returns array of groups; [0] is the full match + assertEquals("ell", str("'hello'.match('ell')[0]")) + } + + @Test + fun stringMatchNoMatch() { + assertNull(evalJsInternal("'hello'.match('xyz')")) + } + + @Test + fun numberToStringRadix16() { + assertEquals("ff", str("(255).toString(16)")) + } + + @Test + fun numberToStringRadix2() { + assertEquals("1010", str("(10).toString(2)")) + } + + @Test + fun numberToFixed() { + assertEquals("3.14", str("(3.14159).toFixed(2)")) + } + + @Test + fun toFixedZeroDigits() { + assertEquals("4", str("(3.6).toFixed(0)")) + } + + @Test + fun toFixedTwoDigits() { + assertEquals("3.14", str("(3.14159).toFixed(2)")) + } + + @Test + fun toFixedPadsWithZeroes() { + assertEquals("3.10", str("(3.1).toFixed(2)")) + } + + @Test + fun toFixedNegativeNumber() { + assertEquals("-3.14", str("(-3.14159).toFixed(2)")) + } + + @Test + fun toFixedNegativeBetweenZeroAndMinusOne() { + assertEquals("-0.50", str("(-0.5).toFixed(2)")) + } + + @Test + fun toFixedWholeNumber() { + assertEquals("5.00", str("(5).toFixed(2)")) + } + + @Test + fun toFixedZeroValue() { + assertEquals("0.00", str("(0).toFixed(2)")) + } + + @Test + fun arrayLiteralAndLength() { + assertEquals(3.0, num("[1,2,3].length")) + } + + @Test + fun arrayIndexAccess() { + assertEquals(2.0, num("[1,2,3][1]")) + } + + @Test + fun arrayJoin() { + assertEquals("1,2,3", str("[1,2,3].join(',')")) + } + + @Test + fun arrayJoinDefaultSep() { + assertEquals("1,2,3", str("[1,2,3].join()")) + } + + @Test + fun arrayReverse() { + assertEquals("3,2,1", str("[1,2,3].reverse().join(',')")) + } + + @Test + fun arrayPushReturnsNewLength() { + assertEquals(4.0, num("var a=[1,2,3]; a.push(4)")) + } + + @Test + fun arrayPushMutates() { + assertEquals("1,2,3,4", str("var a=[1,2,3]; a.push(4); a.join(',')")) + } + + @Test + fun arrayPopRemovesLastElement() { + assertEquals(3.0, num("var a=[1,2,3]; a.pop()")) + } + + @Test + fun arrayPopMutates() { + assertEquals("1,2", str("var a=[1,2,3]; a.pop(); a.join(',')")) + } + + @Test + fun arrayShift() { + assertEquals(1.0, num("var a=[1,2,3]; a.shift()")) + } + + @Test + fun arrayShiftMutates() { + assertEquals("2,3", str("var a=[1,2,3]; a.shift(); a.join(',')")) + } + + @Test + fun arrayUnshift() { + assertEquals(4.0, num("var a=[2,3,4]; a.unshift(1)")) + } + + @Test + fun arrayUnshiftMutates() { + assertEquals("1,2,3,4", str("var a=[2,3,4]; a.unshift(1); a.join(',')")) + } + + @Test + fun arraySlice() { + assertEquals("2,3", str("[1,2,3,4].slice(1,3).join(',')")) + } + + @Test + fun arraySliceNegative() { + assertEquals("3,4", str("[1,2,3,4].slice(-2).join(',')")) + } + + @Test + fun arraySpliceRemove() { + assertEquals("2,3", str("var a=[1,2,3,4]; a.splice(1,2).join(',')")) + } + + @Test + fun arraySpliceMutates() { + assertEquals("1,4", str("var a=[1,2,3,4]; a.splice(1,2); a.join(',')")) + } + + @Test + fun arraySpliceInsert() { + assertEquals("1,9,8,4", str("var a=[1,2,3,4]; a.splice(1,2,9,8); a.join(',')")) + } + + @Test + fun arrayMap() { + assertEquals("2,4,6", str("[1,2,3].map(function(x){return x*2}).join(',')")) + } + + @Test + fun arrayFilter() { + assertEquals("2,4", str("[1,2,3,4].filter(function(x){return x%2===0}).join(',')")) + } + + @Test + fun arrayReduce() { + assertEquals(10.0, num("[1,2,3,4].reduce(function(acc,x){return acc+x},0)")) + } + + @Test + fun arrayReduceNoInitial() { + assertEquals(10.0, num("[1,2,3,4].reduce(function(acc,x){return acc+x})")) + } + + @Test + fun arrayForEachSideEffect() { + assertEquals(6.0, num("var s=0; [1,2,3].forEach(function(x){s+=x}); s")) + } + + @Test + fun arrayFind() { + assertEquals(3.0, num("[1,2,3,4].find(function(x){return x>2})")) + } + + @Test + fun arrayFindNotFound() { + assertEquals(Unit, evalJsInternal("[1,2,3].find(function(x){return x>9})")) + } + + @Test + fun arrayIndexOf() { + assertEquals(2.0, num("[10,20,30].indexOf(30)")) + } + + @Test + fun arrayIndexOfNotFound() { + assertEquals(-1.0, num("[10,20,30].indexOf(99)")) + } + + @Test + fun arrayIncludes() { + assertTrue(bool("[1,2,3].includes(2)")) + } + + @Test + fun arrayIncludesFalse() { + assertFalse(bool("[1,2,3].includes(9)")) + } + + @Test + fun arrayConcat() { + assertEquals("1,2,3,4", str("[1,2].concat([3,4]).join(',')")) + } + + @Test + fun arraySome() { + assertTrue(bool("[1,2,3].some(function(x){return x>2})")) + } + + @Test + fun arraySomeFalse() { + assertFalse(bool("[1,2,3].some(function(x){return x>9})")) + } + + @Test + fun arrayEvery() { + assertFalse(bool("[1,2,3].every(function(x){return x>2})")) + } + + @Test + fun arrayEveryTrue() { + assertTrue(bool("[3,4,5].every(function(x){return x>2})")) + } + + @Test + fun arraySortDefault() { + // Default sort is lexicographic: [10,9,2] => [10,2,9] + assertEquals("10,2,9", str("[10,9,2].sort().join(',')")) + } + + @Test + fun arraySortWithComparator() { + assertEquals("1,2,10", str("[10,1,2].sort(function(a,b){return a-b}).join(',')")) + } + + @Test + fun arrayFlat() { + assertEquals("1,2,3,4", str("[[1,2],[3,4]].flat().join(',')")) + } + + @Test + fun arrayToString() { + assertEquals("1,2,3", str("[1,2,3].toString()")) + } + + @Test + fun newArrayWithSize() { + assertEquals(5.0, num("new Array(5).length")) + } + + @Test + fun objectPropertyAccessWithDot() { + assertEquals(1.0, num("var o={a:1}; o.a")) + } + + @Test + fun objectPropertyAccessWithBracket() { + assertEquals(2.0, num("var o={b:2}; o['b']")) + } + + @Test + fun objectPropertyAssignment() { + assertEquals(99.0, num("var o={}; o.x=99; o.x")) + } + + @Test + fun objectKeys() { + assertEquals("a,b", str("Object.keys({a:1,b:2}).join(',')")) + } + + @Test + fun objectValues() { + assertEquals("1,2", str("Object.values({a:1,b:2}).join(',')")) + } + + @Test + fun objectToStringCoercion() { + // ({}) + "" => "[object Object]" + assertEquals("[object Object]", str("({})+''")) + + // []+{} => "[object Object]" + assertEquals("[object Object]", str("[]+{}")) + } + + @Test + fun ifTrueBranch() { + assertEquals(1.0, num("var r=0; if(true){r=1} r")) + } + + @Test + fun ifFalseUsesElse() { + assertEquals(2.0, num("var r=0; if(false){r=1}else{r=2} r")) + } + + @Test + fun ifElseIfChain() { + assertEquals(2.0, num("var x=5; var r=0; if(x<3){r=1}else if(x<7){r=2}else{r=3} r")) + } + + @Test + fun whileLoop() { + assertEquals(10.0, num("var i=0; while(i<10){i++} i")) + } + + @Test + fun whileBreak() { + assertEquals(5.0, num("var i=0; while(true){if(i===5)break; i++} i")) + } + + @Test + fun whileContinue() { + assertEquals(25.0, num("var i=0; var s=0; while(i<10){i++; if(i%2===0)continue; s+=i} s")) + } + + @Test + fun forLoop() { + assertEquals(10.0, num("var s=0; for(var i=1;i<=4;i++){s+=i} s")) + } + + @Test + fun forLoopWithBreak() { + assertEquals(3.0, num("var i; for(i=0;i<10;i++){if(i===3)break} i")) + } + + @Test + fun forLoopNoInitTestUpdate() { + // All three parts optional; behaves like while(true) with internal break + assertEquals(3.0, num("var i=0; for(;;){if(i>=3)break; i++} i")) + } + + @Test + fun forInOverObjectKeys() { + assertEquals("a,b,c", str("var o={a:1,b:2,c:3}; var keys=[]; for(var k in o){keys.push(k)} keys.sort().join(',')")) + } + + @Test + fun forInOverArrayGivesIndices() { + assertEquals("0,1,2", str("var a=[10,20,30]; var idx=[]; for(var i in a){idx.push(i)} idx.join(',')")) + } + + @Test + fun namedFunctionDeclarationAndCall() { + assertEquals(7.0, num("function add(a,b){return a+b} add(3,4)")) + } + + @Test + fun anonymousFunctionExpression() { + assertEquals(12.0, num("var mul=function(a,b){return a*b}; mul(3,4)")) + } + + @Test + fun recursiveFunction() { + assertEquals(120.0, num("function fact(n){if(n<=1)return 1; return n*fact(n-1)} fact(5)")) + } + + @Test + fun closureCapturesOuterVariable() { + assertEquals(3.0, num("var c=0; function inc(){c+=1} inc();inc();inc(); c")) + } + + @Test + fun immediatelyInvokedFunctionExpression() { + assertEquals(9.0, num("(function(x){return x*x})(3)")) + } + + @Test + fun functionAsArgument() { + assertEquals(6.0, num("function apply(f,x){return f(x)} apply(function(n){return n+1},5)")) + } + + @Test + fun nestedClosure() { + val code = """ + function makeAdder(n) { + return function(x) { return x + n; } + } + var add5 = makeAdder(5); + add5(3) + """.trimIndent() + assertEquals(8.0, num(code)) + } + + @Test + fun closureCounterFactory() { + val code = """ + function makeCounter() { + var count = 0; + return function() { count += 1; return count; } + } + var c = makeCounter(); + c(); c(); c() + """.trimIndent() + assertEquals(3.0, num(code)) + } + + @Test + fun argumentsObject() { + val code = """ + function sum() { + var total = 0; + for(var i=0; i= 0.0 && r < 1.0, "Math.random() should be in [0,1) but was $r") + } + + @Test + fun mathRandomProducesDifferentValues() { + val results = (1..20).map { num("Math.random()") }.toSet() + assertTrue(results.size > 1, "Math.random() produced identical values across 20 calls") + } + + @Test + fun parseIntDecimal() { + assertEquals(42.0, num("parseInt('42')")) + } + + @Test + fun parseIntHex() { + assertEquals(255.0, num("parseInt('ff',16)")) + } + + @Test + fun parseIntBinary() { + assertEquals(5.0, num("parseInt('101',2)")) + } + + @Test + fun parseIntInvalid() { + assertTrue(num("parseInt('abc')").isNaN()) + } + + @Test + fun parseIntLeadingWhitespace() { + assertEquals(42.0, num("parseInt(' 42 ')")) + } + + @Test + fun parseFloat() { + assertApprox(3.14, num("parseFloat('3.14')")) + } + + @Test + fun isNanTrue() { + assertTrue(bool("isNaN(NaN)")) + } + + @Test + fun isNanFalse() { + assertFalse(bool("isNaN(1)")) + } + + @Test + fun isFiniteFalse() { + assertFalse(bool("isFinite(Infinity)")) + } + + @Test + fun isFiniteTrue() { + assertTrue(bool("isFinite(1)")) + } + + @Test + fun consoleLogDoesNotThrow() { + // console.log is a no-op; just ensure it runs without exception + assertEquals(Unit, evalJsInternal("console.log('test', 1, 2)")) + } + + @Test + fun decodeURIComponentBasic() { + assertEquals("hello world", str("decodeURIComponent('hello%20world')")) + } + + @Test + fun encodeURIComponentBasic() { + assertTrue(str("encodeURIComponent('hello world')").contains("%")) + } + + @Test + fun tryCatchSwallowsThrownValue() { + assertEquals(42.0, num("var r=0; try{throw 42}catch(e){r=e} r")) + } + + @Test + fun finallyAlwaysRuns() { + assertEquals(99.0, num("var r=0; try{throw 1}catch(e){}finally{r=99} r")) + } + + @Test + fun tryWithoutThrowSkipsCatch() { + assertEquals(1.0, num("var r=0; try{r=1}catch(e){r=99} r")) + } + + @Test + fun tryCatchThrowString() { + assertEquals("oops", str("var r=''; try{throw 'oops'}catch(e){r=e} r")) + } + + @Test + fun tryCatchThrowObject() { + assertEquals(404.0, num("var r=0; try{throw {code:404}}catch(e){r=e.code} r")) + } + + @Test + fun evaluateMathSimpleAddition() { + assertEquals("5", jsValueToString(evalJsInternal("eval(2+3)"))) + } + + @Test + fun evaluateMathNestedParens() { + assertEquals("12", jsValueToString(evalJsInternal("eval((2+4)*2)"))) + } + + @Test + fun evaluateMathProducesCharCode() { + val code = "eval(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)" + assertEquals(65.0, (evalJsInternal(code) as? Double) ?: 0.0) + } + + @Test + fun evalJsWithVariableReturnsNamedVar() { + assertEquals(42.0, num("var x = 42", "x")) + } + + @Test + fun evalJsWithVariableAfterComputation() { + assertEquals(7.0, num("var x = 1 + 2 * 3", "x")) + } + + @Test + fun evalJsWithVariableStringValue() { + assertEquals("https://example.com", str("var url = 'https://example.com'", "url")) + } + + @Test + fun evalJsWithVariableNullValue() { + assertNull(evalJsInternal("var x = null", "x")) + } + + @Test + fun evalJsWithVariableReturnsNullForUndefined() { + assertNull(evalJsInternal("var x = 42", "y")) + } + + @Test + fun evalJsWithVariableUnitWhenNoVariable() { + assertEquals(Unit, evalJsInternal("var x = 42")) + } + + @Test + fun evalJsWithVariableAfterMultipleStatements() { + assertEquals(15.0, num("var x = 0; for(var i=1;i<=5;i++){x+=i}", "x")) + } + + @Test + fun emptyArrayPlusEmptyArrayIsEmptyString() { + // [] + [] => "" + assertEquals("", str("[]+[]")) + } + + @Test + fun unaryPlusEmptyArrayIsZero() { + // +[] => 0 + assertEquals(0.0, num("+[]")) + } + + @Test + fun notArrayIsFalse() { + // ![] => false (array is truthy, so ![] is false) + assertFalse(bool("![]")) + } + + @Test + fun doubleNotArrayIsTrue() { + // !![] => true + assertTrue(bool("!![]")) + } + + @Test + fun unaryPlusDoubleNotArrayIsOne() { + // +!![] => 1 + assertEquals(1.0, num("+!![]")) + } + + @Test + fun unaryPlusNotArrayIsZero() { + // +![] => 0 + assertEquals(0.0, num("+![]")) + } + + @Test + fun falseCoercedToString() { + // ![]+[] => "false" + assertEquals("false", str("![]+[]")) + } + + @Test + fun trueCoercedToString() { + // !![]+[] => "true" + assertEquals("true", str("!![]+[]")) + } + + @Test + fun falseStringViaStringConcat() { + // (![]+""): false + "" => "false" + assertEquals("false", str("![]+''")) + } + + @Test + fun trueStringViaStringConcat() { + // (!![]+""): true + "" => "true" + assertEquals("true", str("!![]+''")) + } + + @Test + fun undefinedCoercedToString() { + assertEquals("undefined", str("[][0]+[]")) + } + + @Test + fun charF() { + // (![]+[])[0] => "false"[0] => "f" + assertEquals("f", str("(![]+[])[0]")) + } + + @Test + fun charA() { + // (![]+[])[1] => "false"[1] => "a" + assertEquals("a", str("(![]+[])[1]")) + } + + @Test + fun charL() { + // (![]+[])[2] => "false"[2] => "l" + assertEquals("l", str("(![]+[])[2]")) + } + + @Test + fun charS() { + // (![]+[])[3] => "false"[3] => "s" + assertEquals("s", str("(![]+[])[3]")) + } + + @Test + fun charE() { + // (![]+[])[4] => "false"[4] => "e" + assertEquals("e", str("(![]+[])[4]")) + } + + @Test + fun charT() { + // (!![]+[])[0] => "true"[0] => "t" + assertEquals("t", str("(!![]+[])[0]")) + } + + @Test + fun charR() { + // (!![]+[])[1] => "true"[1] => "r" + assertEquals("r", str("(!![]+[])[1]")) + } + + @Test + fun charU() { + // (!![]+[])[2] => "true"[2] => "u" + assertEquals("u", str("(!![]+[])[2]")) + } + + @Test + fun indexViaArithmetic() { + // (![]+[])[+[]] => "false"[0] => "f" (index built from +[]) + assertEquals("f", str("(![]+[])[+[]]")) + } + + @Test + fun indexOneViaArithmetic() { + // (![]+[])[+!![]] => "false"[1] => "a" + assertEquals("a", str("(![]+[])[+!![]]")) + } + + @Test + fun arrayToStringCoercion() { + // [1,2,3]+[] => "1,2,3" + assertEquals("1,2,3", str("[1,2,3]+[]")) + } + + @Test + fun objectStringCharO() { + // ([]+{})[1] => "[object Object]"[1] => "o" + assertEquals("o", str("([]+{})[1]")) + } + + @Test + fun objectStringCharB() { + // ([]+{})[2] => "[object Object]"[2] => "b" + assertEquals("b", str("([]+{})[2]")) + } + + @Test + fun filterFunctionToString() { + // []["filter"]+"" => "function filter() { [native code] }" + assertEquals("function filter() { [native code] }", str("[]['filter']+''")) + } + + @Test + fun filterStringCharF() { + // ([]["filter"]+[])[0] => "function filter() { [native code] }"[0] => "f" + assertEquals("f", str("([]['filter']+[])[0]")) + } + + @Test + fun filterStringCharU() { + // ([]["filter"]+[])[1] => "u" + assertEquals("u", str("([]['filter']+[])[1]")) + } + + @Test + fun filterStringCharN() { + // ([]["filter"]+[])[2] => "n" + assertEquals("n", str("([]['filter']+[])[2]")) + } + + @Test + fun filterStringCharC() { + // ([]["filter"]+[])[3] => "c" + assertEquals("c", str("([]['filter']+[])[3]")) + } + + @Test + fun filterStringCharI() { + assertEquals("i", str("([]['filter']+[])[5]")) + } + + @Test + fun nativeCodeBracketChar() { + // "function filter() { [native code] }" contains '[' at index 20 + val s = "function filter() { [native code] }" + val idx = s.indexOf('[') + assertEquals("[", str("([]['filter']+[])[$idx]")) + } + + @Test + fun nativeCodeSpaceChar() { + // space at index 8 + assertEquals(" ", str("([]['filter']+[])[8]")) + } + + @Test + fun buildsNumberViaAddition() { + // +!![] + +!![] + +!![] => 3 + assertEquals(3.0, num("+!![]+!![]+!![]")) + } + + @Test + fun buildsNumberTen() { + assertEquals("10", str("(+!![])+[+[]]")) + } + + @Test + fun stringFromCharCodeViaNativeExtraction() { + assertEquals("A", str("String['fromCharCode'](65)")) + } + + @Test + fun fullAlphaFromFalseTrue() { + assertEquals("ftaseru", str(""" + var f = ![]+[]; + var t = !![]+[]; + f[0]+t[0]+f[1]+f[3]+f[4]+t[1]+t[2] + """.trimIndent())) + } + + @Test + fun functionToStringContainsNativeCode() { + // Any array method coerced to string should contain "native code" + assertTrue(str("[]['map']+''").contains("native code")) + } + + @Test + fun functionToStringContainsFunctionKeyword() { + assertTrue(str("[]['join']+''").startsWith("function")) + } + + @Test + fun typeofCoercion() { + // typeof([]) + [] => "object" + assertEquals("object", str("typeof([])+[]")) + } + + @Test + fun typeofFunctionCoercion() { + // typeof([]['filter']) => "function" + assertEquals("function", str("typeof([]['filter'])")) + } + + @Test + fun hexEncodedStringDecoding() { + val code = """ + var encoded = '48|65|6c|6c|6f'; + var decoded = encoded.split('|').map(function(h){ + return String.fromCharCode(parseInt(h, 16)); + }).join(''); + decoded + """.trimIndent() + assertEquals("Hello", str(code)) + } + + @Test + fun charCodeArrayToString() { + val code = """ + var codes = [72, 101, 108, 108, 111]; + var s = ''; + for(var i=0; i 0) { + r = alpha[n % 16] + r; + n = Math.floor(n / 16); + } + return r || '0'; + } + toBase16(255) + """.trimIndent() + assertEquals("ff", str(code)) + } + + @Test + fun xorDeobfuscation() { + val code = """ + var _0x1 = function(s) { + return s.split('').map(function(c) { + return String.fromCharCode(c.charCodeAt(0) ^ 1); + }).join(''); + }; + _0x1('ifmmp') + """.trimIndent() + val expected = "ifmmp".map { (it.code xor 1).toChar() }.joinToString("") + assertEquals(expected, str(code)) + } + + @Test + fun symtabLookupPattern() { + val code = """ + var symtab = ['hello', '', 'world', 'foo']; + var tokens = '0 2'.split(' '); + var result = tokens.map(function(w){ + var idx = parseInt(w,10); + var v = symtab[idx]; + return (v !== undefined && v !== '') ? v : w; + }).join(' '); + result + """.trimIndent() + assertEquals("hello world", str(code)) + } + + @Test + fun hunterDecoderDufHelper() { + val code = """ + function duf(d, e) { + var str = '0123456789abcdefghijklmnopqrstuvwxyz'; + var h = str.substring(0, e); + var j = 0.0; + var rev = d.split('').reverse().join(''); + for(var c=0; c= 0) j += idx * Math.pow(e, c); + } + return Math.floor(j); + } + duf('z', 36) + """.trimIndent() + assertEquals(35.0, num(code)) + } + + @Test + fun chainedStringMethods() { + assertEquals("OLLEH", str("'hello'.split('').reverse().join('').toUpperCase()")) + } + + @Test + fun deeplyNestedArithmetic() { + assertEquals(39.0, num("((((1+1)*3)+((2*3)+1))*3)")) + } + + @Test + fun closureOverLoopVariable() { + val code = """ + var fns = []; + for(var i=0; i<3; i++){ + (function(j){ fns.push(function(){return j;}); })(i); + } + fns[0]()+fns[1]()+fns[2]() + """.trimIndent() + assertEquals(3.0, num(code)) + } + + @Test + fun multilineStringConcatenation() { + val code = """ + var a = 'foo'; + var b = 'bar'; + var c = a + b; + c + """.trimIndent() + assertEquals("foobar", str(code)) + } + + @Test + fun bitwiseTruncationPattern() { + assertEquals(5.0, num("(11/2)|0")) + } + + @Test + fun infiniteLoopIsAbortedByExecutionBudget() { + assertEquals(Unit, evalJsInternal("while(true){}")) + } + + @Test + fun infiniteLoopIsAbortedByTimeBudget() { + val mark = TimeSource.Monotonic.markNow() + val result = evalJsInternal("while(true){}", maxExecutionTime = 200.milliseconds) + assertEquals(Unit, result) + // Generous upper bound just to avoid flakiness on slow machines. + assertTrue(mark.elapsedNow() < 2.seconds) + } + + @Test + fun infiniteLoopIsAbortedByTinyInstructionBudget() { + // A tiny instruction cap but a generous time budget, the instruction count is what + // should abort this, not the clock. + assertEquals(Unit, evalJsInternal("while(true){}", maxExecutionTime = 60.seconds, maxInstructions = 1000)) + } + + @Test + fun finiteLoopCompletesNormally() { + assertEquals(45.0, num("var s=0; for (var i=0;i<10;i++){ s+=i; }", "s")) + } + + @Test + fun exponentiation() { + assertEquals(1024.0, num("2**10")) + } + + @Test + fun exponentiationIsRightAssociative() { + // 2 ** (3 ** 2) == 2 ** 9 == 512, NOT (2 ** 3) ** 2 == 64 + assertEquals(512.0, num("2**3**2")) + } + + @Test + fun exponentiationWithNegativeExponent() { + assertEquals(0.5, num("2**-1")) + } + + @Test + fun exponentiationOverflowsToInfinity() { + assertTrue(num("10**1000").isInfinite()) + } + + @Test + fun assignmentPowEquals() { + assertEquals(8.0, num("var x=2; x**=3", "x")) + } + + @Test + fun legacyOctalLiteral() { + // 010 (octal) == 8 + assertEquals(8.0, num("010")) + } + + @Test + fun legacyOctalLiteralArithmetic() { + // 010 (octal, 8) - 03 (octal, 3) == 5 + assertEquals(5.0, num("010 - 03")) + } + + @Test + fun octalLikeLiteralWithNonOctalDigitIsDecimal() { + // "08" contains a non-octal digit (8), so JS treats it as plain decimal 8. + assertEquals(8.0, num("08")) + } + + @Test + fun arrayElisionsCountTowardLength() { + assertEquals(3.0, num("[,,,].length")) + } + + @Test + fun arrayTrailingCommaDoesNotAddElement() { + assertEquals(2.0, num("[1,2,].length")) + } + + @Test + fun arrayTrailingElisionAfterCommaAddsAHole() { + assertEquals(3.0, num("[1,2,,].length")) + } + + @Test + fun arrayHoleJoinsAsEmptyString() { + // Array.prototype.join treats holes/undefined/null as "", not the literal "undefined". + assertEquals("1,,3", str("[1,,3].join(',')")) + } + + @Test + fun parseIntStopsAtExponentNotation() { + // 0.0000005 stringifies to "5e-7"; parseInt reads the leading "5" and stops at "e". + assertEquals(5.0, num("parseInt(0.0000005)")) + } + + @Test + fun parseIntWithExplicitRadix() { + assertEquals(255.0, num("parseInt('ff', 16)")) + } + + @Test + fun parseIntStopsAtFirstNonDigit() { + assertEquals(42.0, num("parseInt('42px')")) + } + + @Test + fun parseIntInvalidInputIsNaN() { + assertTrue(num("parseInt('xyz')").isNaN()) + } + + @Test + fun emptyStringCoercesToZero() { + assertEquals(0.0, num("\"\" - 0")) + } + + @Test + fun emptyStringMinusNegatedEmptyStringIsZero() { + assertEquals(0.0, evalJsInternal("\"\" - - \"\"")) + } + + @Test + fun emptyStringMinusNumber() { + assertEquals(-1.0, evalJsInternal("\"\" - 1")) + } + + @Test + fun nullCoercesToZeroNotNaN() { + assertEquals(1.0, num("null + 1")) + } + + @Test + fun undefinedCoercesToNaNNotZero() { + // Unlike null, undefined coerces to NaN, not 0. + assertTrue(num("undefined + 1").isNaN()) + } + + @Test + fun postfixIncrementOnNonLvalueFailsGracefully() { + assertEquals(2.0, evalJsInternal("true+1")) + // `true++` has no valid assignment target (a SyntaxError in real JS); evalJs falls + // back to Unit instead of returning a bogus number. + assertEquals(Unit, evalJsInternal("true++")) + } + + @Test + fun booleanAdditionCoercesToNumber() { + assertEquals(1.0, num("true + false")) + } + + @Test + fun arrayPlusArrayConcatenatesAsStrings() { + assertEquals("1,2,34,5,6", str("[1, 2, 3] + [4, 5, 6]")) + } + + @Test + fun commaOperatorWithTwoOperands() { + assertEquals(2.0, num("10,2")) + } + + @Test + fun doubleNegationOfEmptyStringIsFalse() { + assertFalse(bool("!!\"\"")) + } + + @Test + fun looseEqualityBooleanVsNonNumericStringIsFalse() { + assertFalse(bool("true == \"true\"")) + } + + @Test + fun nullPlusZeroIsZero() { + assertEquals(0.0, num("null + 0")) + } + + @Test + fun zeroDividedByZeroIsNaN() { + assertTrue(num("0/0").isNaN()) + } + + @Test + fun exponentiationInfinityComparisonIsFalse() { + assertFalse(bool("1/0 > 10 ** 1000")) + } + + @Test + fun nullMinusZeroThenStringConcat() { + assertEquals("00", str("(null - 0) + \"0\"")) + } + + @Test + fun nonNumericStringMinusNumberThenAddBoolean() { + assertTrue(num("true + (\"true\" - 0) ").isNaN()) + } + + @Test + fun negatedTruthyNumbersSumToZero() { + assertEquals(0.0, num("!5 + !5")) + } + + @Test + fun numberAdditionThenStringConcatenation() { + assertEquals("33", str("1 + 2 + \"3\"")) + } + + @Test + fun typeofNaNIsNumber() { + assertEquals("number", str("typeof NaN")) + } + + @Test + fun undefinedPlusFalseIsNaN() { + assertTrue(num("undefined + false").isNaN()) + } + + @Test + fun logicalAndShortCircuitsOnFalsyEmptyString() { + assertEquals("", str("\"\" && -0")) + } + + @Test + fun combinedCoercionOfNaNEmptyStringAndArrayHoleIsZero() { + assertEquals(0.0, evalJsInternal("+!!NaN * \"\" - - [,]")) + } + + /** Returns a [CoroutineScope] backed by a plain [Job] with no dispatcher attached. */ + private fun activeScope(): CoroutineScope = CoroutineScope(Job()) + + @Test + fun scopeEvalJsFiniteScriptReturnsCorrectResult() { + // Normal script with an active scope should behave identically to plain evalJs. + val scope = activeScope() + val result = evalJsInternal("var s=0; for(var i=1;i<=10;i++){s+=i}", "s", scope = scope) + assertEquals(55.0, result as? Double ?: 0.0) + scope.cancel() + } + + @Test + fun scopeEvalJsStringResultWithActiveScope() { + val scope = activeScope() + val result = jsValueToString(evalJsInternal("'hello'.split('').reverse().join('')", scope = scope)) + assertEquals("olleh", result) + scope.cancel() + } + + @Test + fun scopeEvalJsVariableLookupWithActiveScope() { + val scope = activeScope() + val result = evalJsInternal("var x = 21 * 2", "x", scope = scope) + assertEquals(42.0, result as? Double ?: 0.0) + scope.cancel() + } + + @Test + fun scopeEvalJsCancelledBeforeCallThrowsJsCancellationException() { + // Cancel the scope before calling evalJs. The very first budget check sees + // isActive==false and throws JsCancellationException immediately. + val scope = activeScope() + scope.cancel() + assertFailsWith { + evalJsInternal("var x = 1 + 2", "x", scope = scope) + } + } + + @Test + fun scopeEvalJsInfiniteLoopAbortedWhenScopeCancelled() { + // Pre-cancel the scope and confirm an infinite loop aborts well within the + // time budget. A sub-1s return against a 5s budget proves it was + // scope cancellation, not the clock, that stopped the script. + val scope = activeScope() + scope.cancel() + val mark = TimeSource.Monotonic.markNow() + assertFailsWith { + evalJsInternal("while(true){}", scope = scope) + } + assertTrue( + mark.elapsedNow() < 1.seconds, + "Expected abort well before 5s time budget; elapsed: ${mark.elapsedNow()}", + ) + } + + @Test + fun scopeEvalJsInfiniteLoopAbortedByOwnBudgetEvenWithActiveScope() { + // Even with an active (never-cancelled) scope the internal budget still fires. + val scope = activeScope() + val mark = TimeSource.Monotonic.markNow() + val result = evalJsInternal("while(true){}", maxExecutionTime = 200.milliseconds, scope = scope) + assertEquals(Unit, result) + assertTrue(mark.elapsedNow() < 2.seconds) + scope.cancel() + } + + @Test + fun scopeEvalJsJsTryCatchCannotSwallowCancellation() { + // A JS try/catch must not be able to intercept the cancellation signal and keep + // the infinite loop alive. JsCancellationException extends CancellationException + // which the TryCatch node handler explicitly rethrows before catch(_: Exception). + val scope = activeScope() + scope.cancel() + val mark = TimeSource.Monotonic.markNow() + assertFailsWith { + evalJsInternal("while(true){ try{ throw 1; }catch(e){} }", scope = scope) + } + assertTrue( + mark.elapsedNow() < 1.seconds, + "JS try/catch appears to have swallowed the cancellation; elapsed: ${mark.elapsedNow()}", + ) + } + + @Test + fun scopeEvalJsCancelledScopeThrowsJsCancellationException() { + // A cancelled scope must propagate CancellationException so that withTimeout + // and structured concurrency see the cancellation correctly. Swallowing it + // silently as Unit would break withTimeout. + val scope = activeScope() + scope.cancel() + assertFailsWith { + evalJsInternal("1+1", scope = scope) + } + } + + @Test + fun suspendEvalJsWithTimeoutCancelsInfiniteLoop() = runTest { + /** + * activeScope() provides a real CoroutineScope with a real Job, so withTimeout + * fires after a genuine 300ms rather than instantly via the virtual clock. + * The test coroutine suspends at done.receive(), keeping runTest alive until + * the background coroutine finishes. + * + * We measure elapsed time inside the coroutine. If withTimeout fired before + * evalJs started, elapsed would be ~0ms. ~300ms proves evalJs was genuinely + * running and cancelled mid-execution, not trivially before it began. + */ + var elapsed = Duration.ZERO + val done = Channel() + activeScope().launch { + assertFailsWith { + withTimeout(300.milliseconds) { + val mark = TimeSource.Monotonic.markNow() + try { + evalJs("while(true){}") + } finally { + elapsed = mark.elapsedNow() + } + } + } + + done.send(Unit) + } + + done.receive() + assertTrue(elapsed > 200.milliseconds, "evalJs should have run for ~300ms but elapsed: $elapsed") + assertTrue(elapsed < 1.seconds, "evalJs ran too long: $elapsed") + } + + @Test + fun newJsContextWithNoInitializerIsUsable() = runTest { + val ctx = newJsContext() + assertEquals(3.0, ctx.eval("1+2") as? Double ?: 0.0) + } + + @Test + fun newJsContextInitializerRunsBeforeReturning() = runTest { + val ctx = newJsContext { + set("x", 10.0) + eval("var y = x + 1") + } + + assertEquals(11.0, ctx["y"] as? Double ?: 0.0) + } + + @Test + fun jsContextGetReturnsNullForNeverSetVariable() = runTest { + val ctx = newJsContext() + assertNull(ctx["neverSet"]) + } + + @Test + fun jsContextSetThenGetRoundTripsSameValue() = runTest { + val ctx = newJsContext() + ctx["greeting"] = "hello" + assertEquals("hello", ctx["greeting"]) + } + + @Test + fun jsContextSetOverwritesPreviousValue() = runTest { + val ctx = newJsContext() + ctx["x"] = 1.0 + ctx["x"] = 2.0 + assertEquals(2.0, ctx["x"] as? Double ?: 0.0) + } + + @Test + fun jsContextSetNullIsRetrievedAsNull() = runTest { + val ctx = newJsContext() + ctx["x"] = null + assertNull(ctx["x"]) + } + + @Test + fun jsContextGetAfterEvalSetsVariable() = runTest { + val ctx = newJsContext() + ctx.eval("var fromJs = 42") + assertEquals(42.0, ctx["fromJs"] as? Double ?: 0.0) + } + + @Test + fun jsContextPersistsVariablesAcrossManyEvalCalls() = runTest { + val ctx = newJsContext() + ctx.eval("var total = 0") + repeat(5) { ctx.eval("total += 1") } + assertEquals(5.0, ctx["total"] as? Double ?: 0.0) + } + + @Test + fun jsContextFunctionDeclaredInOneEvalUsableInAnother() = runTest { + val ctx = newJsContext() + ctx.eval("function double(n) { return n * 2; }") + val result = ctx.eval("double(21)") + assertEquals(42.0, result as? Double ?: 0.0) + } + + @Test + fun jsContextArrayMutatedAcrossEvalsPersists() = runTest { + val ctx = newJsContext() + ctx.eval("var arr = [1,2,3]") + ctx.eval("arr.push(4)") + assertEquals("1,2,3,4", ctx.eval("arr.join(',')") as? String) + } + + @Test + fun jsContextEvalReturnsLastStatementValue() = runTest { + val ctx = newJsContext() + assertEquals(9.0, ctx.eval("var a = 3; a * a") as? Double ?: 0.0) + } + + @Test + fun jsContextEvalReturnsUnitForDeclarationOnlyStatement() = runTest { + val ctx = newJsContext() + assertEquals(Unit, ctx.eval("var a = 3")) + } + + @Test + fun jsContextEvalReturnsStringValue() = runTest { + val ctx = newJsContext() + assertEquals("ab", ctx.eval("'a' + 'b'")) + } + + @Test + fun separateJsContextsDoNotShareVariables() = runTest { + val ctx1 = newJsContext { set("x", 1.0) } + val ctx2 = newJsContext { set("x", 2.0) } + assertEquals(1.0, ctx1["x"] as? Double ?: 0.0) + assertEquals(2.0, ctx2["x"] as? Double ?: 0.0) + } + + @Test + fun separateJsContextsDoNotShareFunctions() = runTest { + val ctx1 = newJsContext { eval("function f(){ return 1; }") } + val ctx2 = newJsContext() + assertEquals(1.0, ctx1.eval("f()") as? Double ?: 0.0) + // f was never declared in ctx2, so calling it should not crash and yields Unit. + assertEquals(Unit, ctx2.eval("typeof f === 'function' ? f() : undefined")) + } + + @Test + fun jsContextEvalDefaultBudgetHandlesNormalScript() = runTest { + val ctx = newJsContext() + val result = ctx.eval("var s=0; for(var i=1;i<=1000;i++){s+=i} s") + assertEquals(500500.0, result as? Double ?: 0.0) + } + + @Test + fun jsContextEvalInfiniteLoopAbortedByDefaultInstructionBudget() = runTest { + val ctx = newJsContext() + assertEquals(Unit, ctx.eval("while(true){}")) + } + + @Test + fun jsContextEvalInfiniteLoopAbortedByCustomTimeBudget() = runTest { + val ctx = newJsContext() + ctx.maxExecutionTime = 200.milliseconds + val mark = TimeSource.Monotonic.markNow() + val result = ctx.eval("while(true){}") + assertEquals(Unit, result) + assertTrue(mark.elapsedNow() < 2.seconds) + } + + @Test + fun jsContextEvalInfiniteLoopAbortedByTinyInstructionBudget() = runTest { + val ctx = newJsContext() + ctx.maxExecutionTime = 60.seconds + ctx.maxInstructions = 1000 + // High time budget; instruction cap should be what stops it. + val result = ctx.eval("while(true){}") + assertEquals(Unit, result) + } + + @Test + fun jsContextEvalCustomBudgetAppliesOnlyToThatCall() = runTest { + val ctx = newJsContext() + ctx.maxInstructions = 100 + // Abort this call + assertEquals(Unit, ctx.eval("while(true){}")) + // The next call, using the defaults again, runs a normal script fine. + val result = ctx.eval("1+1") + assertEquals(2.0, result as? Double ?: 0.0) + } + + @Test + fun jsContextEvalVariablesSurviveAnAbortedPriorCall() = runTest { + val ctx = newJsContext() + ctx.maxInstructions = 100 + ctx.eval("var x = 5") + ctx.eval("while(true){}") + assertEquals(5.0, ctx["x"] as? Double ?: 0.0) + } + + @Test + fun jsContextEvalCancelledWhenEnclosingCoroutineCancelledViaWithTimeout() = runTest { + val done = Channel() + var elapsed = Duration.ZERO + activeScope().launch { + assertFailsWith { + withTimeout(300.milliseconds) { + val ctx = newJsContext() + val mark = TimeSource.Monotonic.markNow() + try { + ctx.eval("while(true){}") + } finally { + elapsed = mark.elapsedNow() + } + } + } + + done.send(Unit) + } + + done.receive() + assertTrue(elapsed > 200.milliseconds, "expected genuine ~300ms run, was $elapsed") + assertTrue(elapsed < 1.seconds, "expected prompt cancellation, was $elapsed") + } + + @Test + fun jsContextEvalNotCancelledWhenWithTimeoutDoesNotExpire() = runTest { + val ctx = newJsContext() + val result = withTimeoutOrNull(5.seconds) { + ctx.eval("var s=0; for(var i=0;i<100;i++){s+=i} s") + } + + assertEquals(4950.0, result as? Double ?: 0.0) + } + + @Test + fun jsContextJsTryCatchCannotSwallowEnclosingCancellation() = runTest { + val done = Channel() + var elapsed = Duration.ZERO + activeScope().launch { + assertFailsWith { + withTimeout(300.milliseconds) { + val ctx = newJsContext() + val mark = TimeSource.Monotonic.markNow() + try { + ctx.eval("while(true){ try{ throw 1; }catch(e){} }") + } finally { + elapsed = mark.elapsedNow() + } + } + } + done.send(Unit) + } + + done.receive() + assertTrue(elapsed < 1.seconds, "JS try/catch appears to have swallowed cancellation; elapsed: $elapsed") + } + + @Test + fun jsContextUrlExtractionPattern() = runTest { + val ctx = newJsContext() + ctx.eval("var url = '/e/abc123?t=' + (1000+337) + '&s=xyz'") + assertEquals("/e/abc123?t=1337&s=xyz", ctx["url"]?.toString()) + } + + @Test + fun jsContextInitializerCanReadBackItsOwnEvalResult() = runTest { + var capturedDuringInit: Any? = null + newJsContext { + capturedDuringInit = eval("2 * 21") + } + + assertEquals(42.0, capturedDuringInit as? Double ?: 0.0) + } + + @Test + fun jsContextSequentialIndependentComputations() = runTest { + val ctx = newJsContext() + assertEquals(4.0, ctx.eval("2+2") as? Double ?: 0.0) + assertEquals("hi", ctx.eval("'h'+'i'") as? String) + assertFalse(ctx.eval("1 > 2") as? Boolean ?: true) + } +} From 0381cd96d169dde4b19b782d7cc21134f64036c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:06:10 -0600 Subject: [PATCH 088/114] Add --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 9356ea90891..b2041a7152b 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -75,6 +75,7 @@ kotlin { commonTest.dependencies { implementation(libs.kotlin.test) + implementation(libs.kotlinx.coroutines.test) } val jvmCommonMain by creating { From 186eabaa716ebecc555c7a45f6274978d06abb1e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:07:28 -0600 Subject: [PATCH 089/114] Update --- gradle/libs.versions.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 20497298d9e..f2bac3187a8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,7 +29,7 @@ juniversalchardet = "2.5.0" kotlinGradlePlugin = "2.4.0" kotlinxAtomicfu = "0.33.0" kotlinxCollectionsImmutable = "0.4.0" -kotlinxCoroutinesCore = "1.11.0" +kotlinxCoroutines = "1.11.0" kotlinxDatetime = "0.8.0" kotlinxIOCore = "0.9.1" kotlinxSerializationJson = "1.11.0" @@ -97,7 +97,8 @@ kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlinGradlePlugin" } kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinxAtomicfu" } kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" } -kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } kotlinx-io-core = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.ref = "kotlinxIOCore" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } From c9b31304c274817e67ae2d41083e6da9a0dc39af Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:10:55 -0600 Subject: [PATCH 090/114] suspend --- .../kotlin/com/lagradost/cloudstream3/extractors/Userload.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt index d6c3757e5e2..324e3aa703f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt @@ -29,11 +29,11 @@ open class Userload : ExtractorApi() { return array } - private fun evaluateMath(mathExpression: String): String { + private suspend fun evaluateMath(mathExpression: String): String { return jsValueToString(evalJs("eval($mathExpression)")) } - private fun decodeVideoJs(text: String): List { + private suspend fun decodeVideoJs(text: String): List { text.replace("""\s+|/\*.*?\*/""".toRegex(), "") val data = text.split("""+(゚Д゚)[゚o゚]""")[1] val chars = data.split("""+ (゚Д゚)[゚ε゚]+""").drop(1) From a813554b5289530983c1e2c939f281af39946506 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:26:25 -0600 Subject: [PATCH 091/114] longer timeout --- library/build.gradle.kts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index b2041a7152b..b9e227c9853 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -40,7 +40,13 @@ kotlin { jvm() js(IR) { - nodejs() + nodejs { + testTask { + useMocha { + timeout = "10s" + } + } + } useCommonJs() binaries.library() } From 0a99309b9dbacc9be221182f7b010f19326bb3f6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:43:17 -0600 Subject: [PATCH 092/114] Add --- .../kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt new file mode 100644 index 00000000000..3eb471b584a --- /dev/null +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt @@ -0,0 +1,4 @@ +package com.lagradost.cloudstream3 + +@OptionalExpectation +expect annotation class IgnoreOnJs() From d8091d3eb8e0a25d52c60a042ee4e0ea57e61a54 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:44:57 -0600 Subject: [PATCH 093/114] Update --- .../kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt diff --git a/library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt b/library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt new file mode 100644 index 00000000000..d03af9b78c6 --- /dev/null +++ b/library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt @@ -0,0 +1,5 @@ +package com.lagradost.cloudstream3 + +import kotlin.test.Ignore + +actual typealias IgnoreOnJs = Ignore From 33edb5e6166552a3d58c431a4e50d4078b32cb84 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:47:47 -0600 Subject: [PATCH 094/114] Update --- .../lagradost/cloudstream3/{IgnoreOnJs.web.kt => Ignore.web.kt} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename library/src/webTest/kotlin/com/lagradost/cloudstream3/{IgnoreOnJs.web.kt => Ignore.web.kt} (62%) diff --git a/library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt b/library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt similarity index 62% rename from library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt rename to library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt index d03af9b78c6..a844fd60d00 100644 --- a/library/src/webTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.web.kt +++ b/library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt @@ -2,4 +2,4 @@ package com.lagradost.cloudstream3 import kotlin.test.Ignore -actual typealias IgnoreOnJs = Ignore +actual typealias IgnoreOnWeb = Ignore From a803926a05a868627bf61b59acfaec807d558579 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:49:15 -0600 Subject: [PATCH 095/114] Update --- .../commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt | 5 +++++ .../kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt delete mode 100644 library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt new file mode 100644 index 00000000000..ef610d9f196 --- /dev/null +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt @@ -0,0 +1,5 @@ +package com.lagradost.cloudstream3 + +@OptionalExpectation +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) +expect annotation class IgnoreOnWeb() diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt deleted file mode 100644 index 3eb471b584a..00000000000 --- a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/IgnoreOnJs.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.lagradost.cloudstream3 - -@OptionalExpectation -expect annotation class IgnoreOnJs() From dc60549323262e5a8d160424f5788a12e031bf6a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:51:01 -0600 Subject: [PATCH 096/114] move --- .../kotlin/com/lagradost/cloudstream3/{ => utils}/Ignore.web.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename library/src/webTest/kotlin/com/lagradost/cloudstream3/{ => utils}/Ignore.web.kt (61%) diff --git a/library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt b/library/src/webTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.web.kt similarity index 61% rename from library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt rename to library/src/webTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.web.kt index a844fd60d00..0381a19448a 100644 --- a/library/src/webTest/kotlin/com/lagradost/cloudstream3/Ignore.web.kt +++ b/library/src/webTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.web.kt @@ -1,4 +1,4 @@ -package com.lagradost.cloudstream3 +package com.lagradost.cloudstream3.utils import kotlin.test.Ignore From 6f318e029979de581cf7474a73b27f236c03c34e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:51:27 -0600 Subject: [PATCH 097/114] Move --- .../kotlin/com/lagradost/cloudstream3/{ => utils}/Ignore.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename library/src/commonTest/kotlin/com/lagradost/cloudstream3/{ => utils}/Ignore.kt (74%) diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt similarity index 74% rename from library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt rename to library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt index ef610d9f196..a430501b102 100644 --- a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/Ignore.kt +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt @@ -1,4 +1,4 @@ -package com.lagradost.cloudstream3 +package com.lagradost.cloudstream3.utils @OptionalExpectation @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) From d07dfbdd88db90c4ee19e37fe6f2d5d646cf2b6d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:52:48 -0600 Subject: [PATCH 098/114] Add --- .../com/lagradost/cloudstream3/utils/JsInterpreterTest.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt index 182ea6c950c..1d4626e0f94 100644 --- a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/JsInterpreterTest.kt @@ -2129,6 +2129,7 @@ class JsInterpreterTest { } @Test + @IgnoreOnWeb fun suspendEvalJsWithTimeoutCancelsInfiniteLoop() = runTest { /** * activeScope() provides a real CoroutineScope with a real Job, so withTimeout @@ -2326,6 +2327,7 @@ class JsInterpreterTest { } @Test + @IgnoreOnWeb fun jsContextEvalCancelledWhenEnclosingCoroutineCancelledViaWithTimeout() = runTest { val done = Channel() var elapsed = Duration.ZERO @@ -2361,6 +2363,7 @@ class JsInterpreterTest { } @Test + @IgnoreOnWeb fun jsContextJsTryCatchCannotSwallowEnclosingCancellation() = runTest { val done = Channel() var elapsed = Duration.ZERO From cf3421f59dcbf3af8a049df0a002a08e8ee818de Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:55:31 -0600 Subject: [PATCH 099/114] Optin --- .../commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt index a430501b102..f815258a336 100644 --- a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/utils/Ignore.kt @@ -1,5 +1,6 @@ package com.lagradost.cloudstream3.utils +@OptIn(ExperimentalMultiplatform::class) // OptionalExpectation is an experimental annotation for now @OptionalExpectation @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) expect annotation class IgnoreOnWeb() From 56fd7843c995b33b439aee5a0004cf936cf01293 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 10 Jul 2026 10:49:52 -0600 Subject: [PATCH 100/114] - --- .../extractors/helper/AesHelper.kt | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt index 72efc2c4a47..dd002356c77 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AesHelper.kt @@ -8,7 +8,6 @@ import dev.whyoleg.cryptography.CryptographyProvider import dev.whyoleg.cryptography.DelicateCryptographyApi import dev.whyoleg.cryptography.algorithms.AES import dev.whyoleg.cryptography.algorithms.MD5 -import kotlinx.coroutines.runBlocking import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -46,23 +45,6 @@ object AesHelper { } } - // Deprecate after next stable - /* @Deprecated( - message = "Set padding = false for no padding", - level = DeprecationLevel.WARNING, - ) */ - fun cryptoAESHandler( - data: String, - pass: ByteArray, - encrypt: Boolean = true, - padding: String, - ): String? { - // If it ends with NoPadding (e.g. "AES/CBC/NoPadding"), then it - // doesn't have padding, otherwise we treat as if it does. - val hasPadding = !padding.endsWith("NoPadding") - return runBlocking { cryptoAESHandler(data, pass, encrypt, hasPadding) } - } - // https://stackoverflow.com/a/41434590/8166854 fun generateKeyAndIv( password: ByteArray, From 31b0b9b4ae7a76820c0b1a52c6caea8a3062a411 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:48:37 +0000 Subject: [PATCH 101/114] ABI --- library/api/jvm/library.api | 2035 ++++++- library/api/library.klib.api | 10830 +++++++++++++++++++++++++++++++++ library/build.gradle.kts | 3 +- 3 files changed, 12704 insertions(+), 164 deletions(-) create mode 100644 library/api/library.klib.api diff --git a/library/api/jvm/library.api b/library/api/jvm/library.api index 025ebc39199..f80e4c482b9 100644 --- a/library/api/jvm/library.api +++ b/library/api/jvm/library.api @@ -6,7 +6,7 @@ public final class com/lagradost/api/BuildConfig { public final class com/lagradost/api/ContextHelper_jvmKt { public static final fun getContext ()Ljava/lang/Object; - public static final fun setContext (Ljava/lang/ref/WeakReference;)V + public static final fun setContext (Ljava/lang/Object;)V } public final class com/lagradost/api/Log { @@ -854,7 +854,6 @@ public final class com/lagradost/cloudstream3/MainAPIKt { public static final field PROVIDER_STATUS_SLOW I public static final field USER_AGENT Ljava/lang/String; public static final fun addDate (Lcom/lagradost/cloudstream3/Episode;Ljava/lang/String;Ljava/lang/String;)V - public static final fun addDate (Lcom/lagradost/cloudstream3/Episode;Ljava/util/Date;)V public static final fun addDate (Lcom/lagradost/cloudstream3/Episode;Lkotlin/time/Instant;)V public static final fun addDate (Lcom/lagradost/cloudstream3/Episode;Lkotlinx/datetime/LocalDate;)V public static synthetic fun addDate$default (Lcom/lagradost/cloudstream3/Episode;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V @@ -888,9 +887,7 @@ public final class com/lagradost/cloudstream3/MainAPIKt { public static final fun getDurationFromString (Ljava/lang/String;)Ljava/lang/Integer; public static final fun getFolderPrefix (Lcom/lagradost/cloudstream3/TvType;)Ljava/lang/String; public static final fun getJson ()Lkotlinx/serialization/json/Json; - public static final fun getMapper ()Lcom/fasterxml/jackson/databind/json/JsonMapper; public static final fun getQualityFromString (Ljava/lang/String;)Lcom/lagradost/cloudstream3/SearchQuality; - public static final fun getRhinoContext (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun imdbUrlToId (Ljava/lang/String;)Ljava/lang/String; public static final fun imdbUrlToIdNullable (Ljava/lang/String;)Ljava/lang/String; public static final fun isAnimeBased (Lcom/lagradost/cloudstream3/LoadResponse;)Z @@ -1124,10 +1121,6 @@ public final class com/lagradost/cloudstream3/ParCollectionsKt { public static final fun amap (Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun amap (Ljava/util/Map;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun amapIndexed (Ljava/util/List;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun apmap (Ljava/util/List;Lkotlin/jvm/functions/Function2;)Ljava/util/List; - public static final fun apmap (Ljava/util/Map;Lkotlin/jvm/functions/Function2;)Ljava/util/List; - public static final fun apmapIndexed (Ljava/util/List;Lkotlin/jvm/functions/Function3;)Ljava/util/List; - public static final fun argamap ([Lkotlin/jvm/functions/Function1;)Ljava/util/List; public static final fun runAllAsync ([Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -1185,7 +1178,6 @@ public final class com/lagradost/cloudstream3/Score { public static final field MAX I public static final field MAX_ZEROS I public static final field MIN I - public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V public fun equals (Ljava/lang/Object;)Z public fun hashCode ()I public final fun toByte (I)B @@ -1968,12 +1960,13 @@ public class com/lagradost/cloudstream3/extractors/Dailymotion : com/lagradost/c public fun getUrl (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } -public final class com/lagradost/cloudstream3/extractors/Dailymotion$MetaData { +public final class com/lagradost/cloudstream3/extractors/Dailymotion$Metadata { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata$Companion; public fun (Ljava/util/Map;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;)V public final fun component1 ()Ljava/util/Map; public final fun component2 ()Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper; - public final fun copy (Ljava/util/Map;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$MetaData; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/Dailymotion$MetaData;Ljava/util/Map;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$MetaData; + public final fun copy (Ljava/util/Map;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata;Ljava/util/Map;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata; public fun equals (Ljava/lang/Object;)Z public final fun getQualities ()Ljava/util/Map; public final fun getSubtitles ()Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper; @@ -1981,7 +1974,23 @@ public final class com/lagradost/cloudstream3/extractors/Dailymotion$MetaData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Dailymotion$Metadata$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Dailymotion$Metadata;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Dailymotion$Metadata$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Dailymotion$Quality { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Dailymotion$Quality$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -1994,7 +2003,23 @@ public final class com/lagradost/cloudstream3/extractors/Dailymotion$Quality { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Dailymotion$Quality$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Dailymotion$Quality$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$Quality; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Dailymotion$Quality;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Dailymotion$Quality$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData$Companion; public fun (Ljava/lang/String;Ljava/util/List;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/util/List; @@ -2007,7 +2032,23 @@ public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitleDat public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitleData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper$Companion; public fun (ZLjava/util/Map;)V public final fun component1 ()Z public final fun component2 ()Ljava/util/Map; @@ -2020,6 +2061,21 @@ public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWr public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Dailymotion$SubtitlesWrapper$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/DatabaseGdrive : com/lagradost/cloudstream3/extractors/Gdriveplayer { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2033,6 +2089,7 @@ public final class com/lagradost/cloudstream3/extractors/DatabaseGdrive2 : com/l } public final class com/lagradost/cloudstream3/extractors/DecryptKeys { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/DecryptKeys$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -2047,6 +2104,21 @@ public final class com/lagradost/cloudstream3/extractors/DecryptKeys { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/DecryptKeys$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/DecryptKeys$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/DecryptKeys; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/DecryptKeys;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/DecryptKeys$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/DesuArcg : com/lagradost/cloudstream3/extractors/JWPlayer { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2072,6 +2144,7 @@ public final class com/lagradost/cloudstream3/extractors/DesuOdvip : com/lagrado } public final class com/lagradost/cloudstream3/extractors/DetailsRoot { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/DetailsRoot$Companion; public fun (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V public final fun component1 ()J public final fun component2 ()Ljava/lang/String; @@ -2096,6 +2169,21 @@ public final class com/lagradost/cloudstream3/extractors/DetailsRoot { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/DetailsRoot$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/DetailsRoot$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/DetailsRoot; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/DetailsRoot;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/DetailsRoot$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Dhcplay : com/lagradost/cloudstream3/extractors/CineMMRedirect { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2435,8 +2523,6 @@ public class com/lagradost/cloudstream3/extractors/GDMirrorbot : com/lagradost/c public fun getName ()Ljava/lang/String; public fun getRequiresReferer ()Z public fun getUrl (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public fun setMainUrl (Ljava/lang/String;)V - public fun setName (Ljava/lang/String;)V } public class com/lagradost/cloudstream3/extractors/GUpload : com/lagradost/cloudstream3/utils/ExtractorApi { @@ -2464,6 +2550,7 @@ public class com/lagradost/cloudstream3/extractors/Gdriveplayer : com/lagradost/ } public final class com/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -2478,6 +2565,21 @@ public final class com/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gdriveplayer$Tracks$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Gdriveplayerapi : com/lagradost/cloudstream3/extractors/Gdriveplayer { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2548,6 +2650,7 @@ public class com/lagradost/cloudstream3/extractors/Gofile : com/lagradost/clouds } public final class com/lagradost/cloudstream3/extractors/Gofile$AccountData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData$Companion; public fun ()V public fun (Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2560,7 +2663,23 @@ public final class com/lagradost/cloudstream3/extractors/Gofile$AccountData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gofile$AccountData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gofile$AccountData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Gofile$AccountResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gofile$AccountResponse$Companion; public fun ()V public fun (Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData;)V public synthetic fun (Lcom/lagradost/cloudstream3/extractors/Gofile$AccountData;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2573,7 +2692,23 @@ public final class com/lagradost/cloudstream3/extractors/Gofile$AccountResponse public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gofile$AccountResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gofile$AccountResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gofile$AccountResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gofile$AccountResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gofile$AccountResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Gofile$GofileData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData$Companion; public fun ()V public fun (Ljava/util/Map;)V public synthetic fun (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2586,7 +2721,23 @@ public final class com/lagradost/cloudstream3/extractors/Gofile$GofileData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gofile$GofileData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gofile$GofileData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Gofile$GofileFile { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gofile$GofileFile$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2605,7 +2756,23 @@ public final class com/lagradost/cloudstream3/extractors/Gofile$GofileFile { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gofile$GofileFile$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gofile$GofileFile$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gofile$GofileFile; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gofile$GofileFile;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gofile$GofileFile$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Gofile$GofileResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Gofile$GofileResponse$Companion; public fun ()V public fun (Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData;)V public synthetic fun (Lcom/lagradost/cloudstream3/extractors/Gofile$GofileData;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2618,6 +2785,21 @@ public final class com/lagradost/cloudstream3/extractors/Gofile$GofileResponse { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Gofile$GofileResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Gofile$GofileResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Gofile$GofileResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Gofile$GofileResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Gofile$GofileResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/GoodstreamExtractor : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2649,6 +2831,7 @@ public class com/lagradost/cloudstream3/extractors/HDMomPlayer : com/lagradost/c } public final class com/lagradost/cloudstream3/extractors/HDMomPlayer$Track { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/HDMomPlayer$Track$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -2667,6 +2850,21 @@ public final class com/lagradost/cloudstream3/extractors/HDMomPlayer$Track { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/HDMomPlayer$Track$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/HDMomPlayer$Track$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/HDMomPlayer$Track; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/HDMomPlayer$Track;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/HDMomPlayer$Track$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/HDPlayerSystem : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2676,6 +2874,7 @@ public class com/lagradost/cloudstream3/extractors/HDPlayerSystem : com/lagrados } public final class com/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; @@ -2693,6 +2892,21 @@ public final class com/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemRe public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/HDPlayerSystem$SystemResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/HDStreamAble : com/lagradost/cloudstream3/extractors/PeaceMakerst { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2792,6 +3006,7 @@ public class com/lagradost/cloudstream3/extractors/Jeniusplay : com/lagradost/cl } public final class com/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource$Companion; public fun (ZLjava/lang/String;Ljava/lang/String;)V public final fun component1 ()Z public final fun component2 ()Ljava/lang/String; @@ -2806,6 +3021,21 @@ public final class com/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSour public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Jeniusplay$ResponseSource$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Jodwish : com/lagradost/cloudstream3/extractors/StreamWishExtractor { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2862,6 +3092,7 @@ public class com/lagradost/cloudstream3/extractors/Linkbox : com/lagradost/cloud } public final class com/lagradost/cloudstream3/extractors/Linkbox$Data { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Linkbox$Data$Companion; public fun ()V public fun (Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo;Ljava/lang/String;)V public synthetic fun (Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2876,7 +3107,23 @@ public final class com/lagradost/cloudstream3/extractors/Linkbox$Data { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Linkbox$Data$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Linkbox$Data$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Linkbox$Data; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Linkbox$Data;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Linkbox$Data$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Linkbox$ItemInfo { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo$Companion; public fun ()V public fun (Ljava/util/ArrayList;)V public synthetic fun (Ljava/util/ArrayList;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2889,7 +3136,23 @@ public final class com/lagradost/cloudstream3/extractors/Linkbox$ItemInfo { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Linkbox$ItemInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Linkbox$ItemInfo;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Linkbox$ItemInfo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Linkbox$Resolutions { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Linkbox$Resolutions$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2904,7 +3167,23 @@ public final class com/lagradost/cloudstream3/extractors/Linkbox$Resolutions { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Linkbox$Resolutions$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Linkbox$Resolutions$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Linkbox$Resolutions; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Linkbox$Resolutions;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Linkbox$Resolutions$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Linkbox$Responses { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Linkbox$Responses$Companion; public fun ()V public fun (Lcom/lagradost/cloudstream3/extractors/Linkbox$Data;)V public synthetic fun (Lcom/lagradost/cloudstream3/extractors/Linkbox$Data;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -2917,6 +3196,21 @@ public final class com/lagradost/cloudstream3/extractors/Linkbox$Responses { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Linkbox$Responses$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Linkbox$Responses$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Linkbox$Responses; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Linkbox$Responses;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Linkbox$Responses$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/LuluStream : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -2971,6 +3265,7 @@ public class com/lagradost/cloudstream3/extractors/MailRu : com/lagradost/clouds } public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuData$Companion; public fun (Ljava/lang/String;Ljava/util/List;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/util/List; @@ -2983,7 +3278,23 @@ public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/MailRu$MailRuData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -2996,6 +3307,21 @@ public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/MailRu$MailRuVideoData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/Maxstream : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3211,6 +3537,7 @@ public class com/lagradost/cloudstream3/extractors/Odnoklassniki : com/lagradost } public final class com/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -3223,6 +3550,21 @@ public final class com/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Odnoklassniki$OkRuVideo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/OkRuHTTP : com/lagradost/cloudstream3/extractors/Odnoklassniki { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3260,6 +3602,7 @@ public class com/lagradost/cloudstream3/extractors/PeaceMakerst : com/lagradost/ } public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse$Companion; public fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/util/List; @@ -3276,7 +3619,23 @@ public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceRespo public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$PeaceResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse$Companion; public fun (Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media;)V public final fun component1 ()Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media; public final fun copy (Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse; @@ -3287,7 +3646,23 @@ public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiRe public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2ApiResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -3300,7 +3675,23 @@ public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media$Companion; public fun (Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link;)V public final fun component1 ()Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link; public final fun copy (Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Link;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media; @@ -3311,10 +3702,26 @@ public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media public fun toString ()Ljava/lang/String; } -public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; +public final synthetic class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$Teve2Media$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource; public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource; @@ -3326,6 +3733,21 @@ public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSourc public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PeaceMakerst$VideoSource$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Peytonepre : com/lagradost/cloudstream3/extractors/VidHidePro { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3373,6 +3795,7 @@ public final class com/lagradost/cloudstream3/extractors/PlayRu : com/lagradost/ } public final class com/lagradost/cloudstream3/extractors/Playback { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Playback$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/lagradost/cloudstream3/extractors/DecryptKeys;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -3397,7 +3820,23 @@ public final class com/lagradost/cloudstream3/extractors/Playback { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Playback$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Playback$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Playback; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Playback;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Playback$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PlaybackDecrypt { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PlaybackDecrypt$Companion; public fun (Ljava/util/List;)V public final fun component1 ()Ljava/util/List; public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecrypt; @@ -3408,19 +3847,35 @@ public final class com/lagradost/cloudstream3/extractors/PlaybackDecrypt { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PlaybackDecrypt$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PlaybackDecrypt$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecrypt; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PlaybackDecrypt;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PlaybackDecrypt$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PlaybackDecryptSource { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Object;)V + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLkotlinx/serialization/json/JsonElement;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; public final fun component5 ()J - public final fun component6 ()Ljava/lang/Object; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/Object;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource; + public final fun component6 ()Lkotlinx/serialization/json/JsonElement; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLkotlinx/serialization/json/JsonElement;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource; public fun equals (Ljava/lang/Object;)Z public final fun getBitrateKbps ()J - public final fun getHeight ()Ljava/lang/Object; + public final fun getHeight ()Lkotlinx/serialization/json/JsonElement; public final fun getLabel ()Ljava/lang/String; public final fun getMimeType ()Ljava/lang/String; public final fun getQuality ()Ljava/lang/String; @@ -3429,7 +3884,23 @@ public final class com/lagradost/cloudstream3/extractors/PlaybackDecryptSource { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PlaybackDecryptSource$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PlaybackDecryptSource;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PlaybackDecryptSource$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/PlaybackRoot { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/PlaybackRoot$Companion; public fun (Lcom/lagradost/cloudstream3/extractors/Playback;)V public final fun component1 ()Lcom/lagradost/cloudstream3/extractors/Playback; public final fun copy (Lcom/lagradost/cloudstream3/extractors/Playback;)Lcom/lagradost/cloudstream3/extractors/PlaybackRoot; @@ -3440,6 +3911,21 @@ public final class com/lagradost/cloudstream3/extractors/PlaybackRoot { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/PlaybackRoot$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/PlaybackRoot$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/PlaybackRoot; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/PlaybackRoot;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/PlaybackRoot$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/PlayerVoxzer : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3474,6 +3960,7 @@ public class com/lagradost/cloudstream3/extractors/Rabbitstream : com/lagradost/ } public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Sources { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Sources$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3490,7 +3977,23 @@ public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Sources { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Rabbitstream$Sources$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Sources$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Sources; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Sources;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Sources$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/util/List;)V public synthetic fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3507,7 +4010,23 @@ public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEnc public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesEncrypted$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses$Companion; public fun ()V public fun (Ljava/util/List;Ljava/util/List;)V public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3522,7 +4041,23 @@ public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesRes public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Rabbitstream$SourcesResponses$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Tracks { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Tracks$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3539,6 +4074,21 @@ public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Tracks { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Rabbitstream$Tracks$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Tracks$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Tracks; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Rabbitstream$Tracks;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Rabbitstream$Tracks$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/RapidVid : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3701,7 +4251,6 @@ public final class com/lagradost/cloudstream3/extractors/Simpulumlamerop : com/l public fun ()V public fun getMainUrl ()Ljava/lang/String; public fun getName ()Ljava/lang/String; - public fun setMainUrl (Ljava/lang/String;)V } public class com/lagradost/cloudstream3/extractors/Slmaxed : com/lagradost/cloudstream3/utils/ExtractorApi { @@ -3714,6 +4263,7 @@ public class com/lagradost/cloudstream3/extractors/Slmaxed : com/lagradost/cloud } public final class com/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3734,7 +4284,23 @@ public final class com/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Slmaxed$JsonResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Slmaxed$Result { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Slmaxed$Result$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3751,6 +4317,21 @@ public final class com/lagradost/cloudstream3/extractors/Slmaxed$Result { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Slmaxed$Result$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Slmaxed$Result$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Slmaxed$Result; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Slmaxed$Result;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Slmaxed$Result$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Smoothpre : com/lagradost/cloudstream3/extractors/VidHidePro { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3768,6 +4349,7 @@ public class com/lagradost/cloudstream3/extractors/Sobreatsesuyp : com/lagradost } public final class com/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3782,6 +4364,21 @@ public final class com/lagradost/cloudstream3/extractors/Sobreatsesuyp$Sobreatse public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Sobreatsesuyp$SobreatsesuypVideoData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Ssbstream : com/lagradost/cloudstream3/extractors/StreamSB { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -3821,6 +4418,7 @@ public class com/lagradost/cloudstream3/extractors/StreamSB : com/lagradost/clou } public final class com/lagradost/cloudstream3/extractors/StreamSB$Main { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/StreamSB$Main$Companion; public fun (Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData;I)V public final fun component1 ()Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData; public final fun component2 ()I @@ -3833,7 +4431,23 @@ public final class com/lagradost/cloudstream3/extractors/StreamSB$Main { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/StreamSB$Main$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/StreamSB$Main$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/StreamSB$Main; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/StreamSB$Main;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/StreamSB$Main$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/StreamSB$StreamData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; @@ -3859,7 +4473,23 @@ public final class com/lagradost/cloudstream3/extractors/StreamSB$StreamData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/StreamSB$StreamData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/StreamSB$StreamData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/StreamSB$StreamData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/StreamSB$Subs { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/StreamSB$Subs$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3874,6 +4504,21 @@ public final class com/lagradost/cloudstream3/extractors/StreamSB$Subs { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/StreamSB$Subs$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/StreamSB$Subs$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/StreamSB$Subs; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/StreamSB$Subs;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/StreamSB$Subs$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/StreamSB1 : com/lagradost/cloudstream3/extractors/StreamSB { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4042,6 +4687,7 @@ public class com/lagradost/cloudstream3/extractors/Streamplay : com/lagradost/cl } public final class com/lagradost/cloudstream3/extractors/Streamplay$Source { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Streamplay$Source$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -4056,6 +4702,21 @@ public final class com/lagradost/cloudstream3/extractors/Streamplay$Source { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Streamplay$Source$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Streamplay$Source$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Streamplay$Source; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Streamplay$Source;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Streamplay$Source$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Streamsss : com/lagradost/cloudstream3/extractors/StreamSB { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4110,6 +4771,7 @@ public class com/lagradost/cloudstream3/extractors/TRsTX : com/lagradost/cloudst } public final class com/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -4124,6 +4786,21 @@ public final class com/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/TRsTX$TrstxVideoData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/Tantifilm : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4135,6 +4812,7 @@ public class com/lagradost/cloudstream3/extractors/Tantifilm : com/lagradost/clo } public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -4149,7 +4827,23 @@ public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData$Companion; public fun (ZLjava/util/List;Ljava/util/List;Z)V public final fun component1 ()Z public final fun component2 ()Ljava/util/List; @@ -4166,6 +4860,21 @@ public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJson public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Tantifilm$TantifilmJsonData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/TauVideo : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4175,6 +4884,7 @@ public class com/lagradost/cloudstream3/extractors/TauVideo : com/lagradost/clou } public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoData { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoData$Companion; public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -4187,7 +4897,23 @@ public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoData { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls$Companion; public fun (Ljava/util/List;)V public final fun component1 ()Ljava/util/List; public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls; @@ -4198,14 +4924,26 @@ public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/TauVideo$TauVideoUrls$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Techinmind : com/lagradost/cloudstream3/extractors/GDMirrorbot { public fun ()V public fun getMainUrl ()Ljava/lang/String; public fun getName ()Ljava/lang/String; public fun getRequiresReferer ()Z - public fun setMainUrl (Ljava/lang/String;)V - public fun setName (Ljava/lang/String;)V - public fun setRequiresReferer (Z)V } public final class com/lagradost/cloudstream3/extractors/Tubeless : com/lagradost/cloudstream3/extractors/Voe { @@ -4296,7 +5034,6 @@ public final class com/lagradost/cloudstream3/extractors/Urochsunloath : com/lag public fun ()V public fun getMainUrl ()Ljava/lang/String; public fun getName ()Ljava/lang/String; - public fun setMainUrl (Ljava/lang/String;)V } public class com/lagradost/cloudstream3/extractors/Userload : com/lagradost/cloudstream3/utils/ExtractorApi { @@ -4326,6 +5063,7 @@ public class com/lagradost/cloudstream3/extractors/Uservideo : com/lagradost/clo } public final class com/lagradost/cloudstream3/extractors/Uservideo$Sources { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/Uservideo$Sources$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -4342,6 +5080,21 @@ public final class com/lagradost/cloudstream3/extractors/Uservideo$Sources { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/Uservideo$Sources$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/Uservideo$Sources$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/Uservideo$Sources; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/Uservideo$Sources;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/Uservideo$Sources$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public class com/lagradost/cloudstream3/extractors/Vicloud : com/lagradost/cloudstream3/utils/ExtractorApi { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4494,6 +5247,7 @@ public class com/lagradost/cloudstream3/extractors/VideoSeyred : com/lagradost/c } public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSSource { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSSource$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; @@ -4508,7 +5262,23 @@ public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSSource { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/VideoSeyred$VSSource$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSSource$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSSource; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSSource;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSSource$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; @@ -4528,13 +5298,29 @@ public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack { public fun toString ()Ljava/lang/String; } -public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource; +public final synthetic class com/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VSTrack$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource { + public static final field Companion Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource; public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource; public fun equals (Ljava/lang/Object;)Z public final fun getImage ()Ljava/lang/String; @@ -4545,6 +5331,21 @@ public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyred public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/extractors/VideoSeyred$VideoSeyredSource$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/extractors/Videzz : com/lagradost/cloudstream3/extractors/Vidoza { public fun ()V public fun getMainUrl ()Ljava/lang/String; @@ -4743,7 +5544,6 @@ public final class com/lagradost/cloudstream3/extractors/Yipsu : com/lagradost/c public fun ()V public fun getMainUrl ()Ljava/lang/String; public fun getName ()Ljava/lang/String; - public fun setMainUrl (Ljava/lang/String;)V } public class com/lagradost/cloudstream3/extractors/YourUpload : com/lagradost/cloudstream3/utils/ExtractorApi { @@ -4815,9 +5615,7 @@ public final class com/lagradost/cloudstream3/extractors/Ztreamhub : com/lagrado public final class com/lagradost/cloudstream3/extractors/helper/AesHelper { public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/helper/AesHelper; - public final fun cryptoAESHandler (Ljava/lang/String;[BZLjava/lang/String;)Ljava/lang/String; public final fun cryptoAESHandler (Ljava/lang/String;[BZZLkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun cryptoAESHandler$default (Lcom/lagradost/cloudstream3/extractors/helper/AesHelper;Ljava/lang/String;[BZLjava/lang/String;ILjava/lang/Object;)Ljava/lang/String; public static synthetic fun cryptoAESHandler$default (Lcom/lagradost/cloudstream3/extractors/helper/AesHelper;Ljava/lang/String;[BZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun generateKeyAndIv ([B[BIIII)Lkotlin/Pair; public static synthetic fun generateKeyAndIv$default (Lcom/lagradost/cloudstream3/extractors/helper/AesHelper;[B[BIIIIILjava/lang/Object;)Lkotlin/Pair; @@ -4841,8 +5639,8 @@ public final class com/lagradost/cloudstream3/extractors/helper/CryptoJS { public final class com/lagradost/cloudstream3/extractors/helper/GogoHelper { public static final field INSTANCE Lcom/lagradost/cloudstream3/extractors/helper/GogoHelper; - public final fun extractVidstream (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLorg/jsoup/nodes/Document;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun extractVidstream$default (Lcom/lagradost/cloudstream3/extractors/helper/GogoHelper;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLorg/jsoup/nodes/Document;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public final fun extractVidstream (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLcom/fleeksoft/ksoup/nodes/Document;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun extractVidstream$default (Lcom/lagradost/cloudstream3/extractors/helper/GogoHelper;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLcom/fleeksoft/ksoup/nodes/Document;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } public final class com/lagradost/cloudstream3/extractors/helper/GogoHelper$GogoJsonData { @@ -5671,152 +6469,846 @@ public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trail public final fun copy (Ljava/lang/Long;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer; public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer;Ljava/lang/Long;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer; public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/Long; + public final fun getId ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$Companion; + public fun (JLjava/lang/String;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy (JLjava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;JLjava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()J + public final fun getSource ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$Companion; + public fun (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)V + public final fun component1 ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public final fun copy (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public fun equals (Ljava/lang/Object;)Z + public final fun getTrailerDetails ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$Companion; + public fun (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)V + public final fun component1 ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public final fun copy (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; + public fun equals (Ljava/lang/Object;)Z + public final fun getTrailer ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/SyncRedirector { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/SyncRedirector; + public final fun redirect (Ljava/lang/String;Lcom/lagradost/cloudstream3/MainAPI;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbLink { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbLink$Companion; + public fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ljava/lang/Integer; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbLink; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbLink;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbLink; + public fun equals (Ljava/lang/Object;)Z + public final fun getEpisode ()Ljava/lang/Integer; + public final fun getImdbID ()Ljava/lang/String; + public final fun getMovieName ()Ljava/lang/String; + public final fun getSeason ()Ljava/lang/Integer; + public final fun getTmdbID ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbLink$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbLink$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbLink; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbLink;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbLink$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public class com/lagradost/cloudstream3/metaproviders/TmdbProvider : com/lagradost/cloudstream3/MainAPI { + public fun ()V + public fun fetchContentRating (Ljava/lang/Integer;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getApiName ()Ljava/lang/String; + public fun getDisableSeasonZero ()Z + public fun getHasMainPage ()Z + public fun getIncludeAdult ()Z + public fun getMainPage (ILcom/lagradost/cloudstream3/MainPageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getProviderType ()Lcom/lagradost/cloudstream3/ProviderType; + public fun getUseMetaLoadResponse ()Z + public fun load (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun loadFromImdb (Ljava/lang/String;)Lcom/lagradost/cloudstream3/LoadResponse; + public fun loadFromImdb (Ljava/lang/String;Ljava/util/List;)Lcom/lagradost/cloudstream3/LoadResponse; + public fun loadFromTmdb (I)Lcom/lagradost/cloudstream3/LoadResponse; + public fun loadFromTmdb (ILjava/util/List;)Lcom/lagradost/cloudstream3/LoadResponse; + public fun search (Ljava/lang/String;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember; + public fun equals (Ljava/lang/Object;)Z + public final fun getCharacter ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getProfilePath ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCastMember$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating; + public fun equals (Ljava/lang/Object;)Z + public final fun getCountry ()Ljava/lang/String; + public final fun getRating ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRating$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings; + public fun equals (Ljava/lang/Object;)Z + public final fun getResults ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public fun equals (Ljava/lang/Object;)Z + public final fun getCast ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Ljava/lang/Integer; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Double; + public final fun component9 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode; + public fun equals (Ljava/lang/Object;)Z + public final fun getAirDate ()Ljava/lang/String; + public final fun getEpisodeNumber ()Ljava/lang/Integer; + public final fun getExternalIds ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun getId ()Ljava/lang/Integer; + public final fun getName ()Ljava/lang/String; + public final fun getOverview ()Ljava/lang/String; + public final fun getSeasonNumber ()Ljava/lang/Integer; + public final fun getStillPath ()Ljava/lang/String; + public final fun getVoteAverage ()Ljava/lang/Double; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbEpisode$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/Integer; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbGenre$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Ljava/lang/String;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public fun equals (Ljava/lang/Object;)Z + public final fun getImdbId ()Ljava/lang/String; + public final fun getTvdbId ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun component12 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; + public final fun component13 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public final fun component14 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun component15 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun component16 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Double; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail; + public fun equals (Ljava/lang/Object;)Z + public final fun getCredits ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public final fun getDisplayTitle ()Ljava/lang/String; + public final fun getExternalIds ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun getGenres ()Ljava/util/List; + public final fun getId ()Ljava/lang/Integer; + public final fun getImdbId ()Ljava/lang/String; + public final fun getOriginalTitle ()Ljava/lang/String; + public final fun getOverview ()Ljava/lang/String; + public final fun getPosterPath ()Ljava/lang/String; + public final fun getRecommendations ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun getReleaseDate ()Ljava/lang/String; + public final fun getReleaseDates ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates; + public final fun getRuntime ()Ljava/lang/Integer; + public final fun getSimilar ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun getTitle ()Ljava/lang/String; + public final fun getVideos ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; + public final fun getVoteAverage ()Ljava/lang/Double; + public final fun getYear ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMovieDetail$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getResults ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbMultiResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;)V + public synthetic fun (Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ljava/lang/Integer; + public final fun copy (Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getResults ()Ljava/util/List; + public final fun getTotalPages ()Ljava/lang/Integer; + public final fun getTotalResults ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry;Ljava/lang/String;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry; + public fun equals (Ljava/lang/Object;)Z + public final fun getCertification ()Ljava/lang/String; + public final fun getType ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateEntry$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getCountry ()Ljava/lang/String; + public final fun getReleaseDates ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDateResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates; + public fun equals (Ljava/lang/Object;)Z + public final fun getResults ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbReleaseDates$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component10 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Double; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getDisplayTitle ()Ljava/lang/String; + public final fun getFirstAirDate ()Ljava/lang/String; + public final fun getId ()Ljava/lang/Integer; + public final fun getMediaType ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getOriginalName ()Ljava/lang/String; + public final fun getOriginalTitle ()Ljava/lang/String; + public final fun getPosterPath ()Ljava/lang/String; + public final fun getReleaseDate ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public final fun getVoteAverage ()Ljava/lang/Double; + public final fun getYear ()Ljava/lang/Integer; + public fun hashCode ()I + public final fun isTv ()Z + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSearchResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/util/List;)V + public synthetic fun (Ljava/lang/Integer;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/Integer;Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail;Ljava/lang/Integer;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail; + public fun equals (Ljava/lang/Object;)Z + public final fun getEpisodes ()Ljava/util/List; + public final fun getSeasonNumber ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonDetail$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary; + public fun equals (Ljava/lang/Object;)Z + public final fun getEpisodeCount ()Ljava/lang/Integer; + public final fun getSeasonNumber ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$$serializer; +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary$$serializer; public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer;)V + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$Trailer$Companion { +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbSeasonSummary$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails { - public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$Companion; - public fun (JLjava/lang/String;)V - public final fun component1 ()J +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun component12 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; + public final fun component13 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public final fun component14 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun component15 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun component16 ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings; public final fun component2 ()Ljava/lang/String; - public final fun copy (JLjava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;JLjava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()J - public final fun getSource ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Double; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/List; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail; + public fun equals (Ljava/lang/Object;)Z + public final fun getContentRatings ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbContentRatings; + public final fun getCredits ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbCredits; + public final fun getDisplayTitle ()Ljava/lang/String; + public final fun getEpisodeRunTime ()Ljava/util/List; + public final fun getExternalIds ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbIds; + public final fun getFirstAirDate ()Ljava/lang/String; + public final fun getGenres ()Ljava/util/List; + public final fun getId ()Ljava/lang/Integer; + public final fun getName ()Ljava/lang/String; + public final fun getOriginalName ()Ljava/lang/String; + public final fun getOverview ()Ljava/lang/String; + public final fun getPosterPath ()Ljava/lang/String; + public final fun getRecommendations ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun getSeasons ()Ljava/util/List; + public final fun getSimilar ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbPageResult; + public final fun getVideos ()Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; + public final fun getVoteAverage ()Ljava/lang/Double; + public final fun getYear ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$$serializer; +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail$$serializer; public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)V + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails$Companion { +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbTvDetail$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode { - public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$Companion; - public fun (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)V - public final fun component1 ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; - public final fun copy (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo; public fun equals (Ljava/lang/Object;)Z - public final fun getTrailerDetails ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerDetails; + public final fun getKey ()Ljava/lang/String; + public final fun getSite ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$$serializer; +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo$$serializer; public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)V + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode$Companion { +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideo$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot { - public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$Companion; - public fun (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)V - public final fun component1 ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; - public final fun copy (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;Ljava/util/List;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; public fun equals (Ljava/lang/Object;)Z - public final fun getTrailer ()Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerNode; + public final fun getResults ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final synthetic class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$$serializer; +public final synthetic class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos$$serializer; public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot;)V + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/MyDramaListAPI$TrailerRoot$Companion { +public final class com/lagradost/cloudstream3/metaproviders/TmdbProvider$TmdbVideos$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class com/lagradost/cloudstream3/metaproviders/SyncRedirector { - public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/SyncRedirector; - public final fun redirect (Ljava/lang/String;Lcom/lagradost/cloudstream3/MainAPI;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -} - -public final class com/lagradost/cloudstream3/metaproviders/TmdbLink { - public fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/Integer; - public final fun component3 ()Ljava/lang/Integer; - public final fun component4 ()Ljava/lang/Integer; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)Lcom/lagradost/cloudstream3/metaproviders/TmdbLink; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TmdbLink;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TmdbLink; - public fun equals (Ljava/lang/Object;)Z - public final fun getEpisode ()Ljava/lang/Integer; - public final fun getImdbID ()Ljava/lang/String; - public final fun getMovieName ()Ljava/lang/String; - public final fun getSeason ()Ljava/lang/Integer; - public final fun getTmdbID ()Ljava/lang/Integer; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public class com/lagradost/cloudstream3/metaproviders/TmdbProvider : com/lagradost/cloudstream3/MainAPI { - public fun ()V - public fun fetchContentRating (Ljava/lang/Integer;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public fun getApiName ()Ljava/lang/String; - public fun getDisableSeasonZero ()Z - public fun getHasMainPage ()Z - public fun getIncludeAdult ()Z - public fun getMainPage (ILcom/lagradost/cloudstream3/MainPageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public fun getProviderType ()Lcom/lagradost/cloudstream3/ProviderType; - public fun getUseMetaLoadResponse ()Z - public fun load (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public fun loadFromImdb (Ljava/lang/String;)Lcom/lagradost/cloudstream3/LoadResponse; - public fun loadFromImdb (Ljava/lang/String;Ljava/util/List;)Lcom/lagradost/cloudstream3/LoadResponse; - public fun loadFromTmdb (I)Lcom/lagradost/cloudstream3/LoadResponse; - public fun loadFromTmdb (ILjava/util/List;)Lcom/lagradost/cloudstream3/LoadResponse; - public fun search (Ljava/lang/String;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; -} - public class com/lagradost/cloudstream3/metaproviders/TraktProvider : com/lagradost/cloudstream3/MainAPI { public fun ()V public fun getHasMainPage ()Z @@ -5831,6 +7323,7 @@ public class com/lagradost/cloudstream3/metaproviders/TraktProvider : com/lagrad } public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Airs { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5847,7 +7340,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Airs { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Airs$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Airs$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Cast { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Cast$Companion; public fun ()V public fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;)V public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5868,7 +7377,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Cast { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Cast$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Cast$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Cast; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Cast;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Cast$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Data { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Data$Companion; public fun ()V public fun (Lcom/lagradost/cloudstream3/TvType;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;)V public synthetic fun (Lcom/lagradost/cloudstream3/TvType;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5883,7 +7408,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Data { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Data$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Data$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Data; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Data;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Data$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Ids { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids$Companion; public fun ()V public fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5906,7 +7447,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Ids { public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Ids$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Ids$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Images { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images$Companion; public fun ()V public fun (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V public synthetic fun (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5933,7 +7490,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Images public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Images$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Images$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData$Companion; public fun ()V public fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;ZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;ZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -5994,10 +7567,26 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$LinkDa public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$LinkData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails$Companion; public fun ()V - public fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component10 ()Ljava/lang/String; public final fun component11 ()Ljava/lang/String; @@ -6016,7 +7605,7 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaD public final fun component23 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs; public final fun component24 ()Ljava/lang/String; public final fun component25 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images; - public final fun component26 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; + public final fun component26 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary; public final fun component3 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids; public final fun component4 ()Ljava/lang/String; public final fun component5 ()Ljava/lang/String; @@ -6024,8 +7613,8 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaD public final fun component7 ()Ljava/lang/Integer; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; public fun equals (Ljava/lang/Object;)Z public final fun getAiredEpisodes ()Ljava/lang/Integer; public final fun getAirs ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Airs; @@ -6040,7 +7629,7 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaD public final fun getImages ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images; public final fun getLanguage ()Ljava/lang/String; public final fun getLanguages ()Ljava/util/List; - public final fun getMedia ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; + public final fun getMedia ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary; public final fun getNetwork ()Ljava/lang/String; public final fun getOverview ()Ljava/lang/String; public final fun getRating ()Ljava/lang/Double; @@ -6057,7 +7646,60 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaD public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaDetails$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids; + public final fun component4 ()Ljava/lang/Double; + public final fun component5 ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;Ljava/lang/String;Ljava/lang/Integer;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Ljava/lang/Double;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;ILjava/lang/Object;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary; + public fun equals (Ljava/lang/Object;)Z + public final fun getIds ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids; + public final fun getImages ()Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images; + public final fun getRating ()Ljava/lang/Double; + public final fun getTitle ()Ljava/lang/String; + public final fun getYear ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$MediaSummary$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$People { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$People$Companion; public fun ()V public fun (Ljava/util/List;)V public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6070,7 +7712,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$People public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$People$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$People$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$People; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$People;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$People$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Person { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person$Companion; public fun ()V public fun (Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;)V public synthetic fun (Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6087,7 +7745,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Person public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Person$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Person;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Person$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons$Companion; public fun ()V public fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6124,7 +7798,23 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Season public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$Seasons$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode { + public static final field Companion Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode$Companion; public fun ()V public fun (Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V public synthetic fun (Ljava/util/List;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Ids;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$Images;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6165,6 +7855,21 @@ public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$TraktE public fun toString ()Ljava/lang/String; } +public final synthetic class com/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/lagradost/cloudstream3/metaproviders/TraktProvider$TraktEpisode$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class com/lagradost/cloudstream3/mvvm/ArchComponentExtKt { public static final field DEBUG_EXCEPTION Ljava/lang/String; public static final field DEBUG_PRINT Ljava/lang/String; @@ -6189,6 +7894,10 @@ public final class com/lagradost/cloudstream3/mvvm/ArchComponentExtKt { public static final fun throwAbleToResource (Ljava/lang/Throwable;)Lcom/lagradost/cloudstream3/mvvm/Resource; } +public final class com/lagradost/cloudstream3/mvvm/ArchComponentExt_jvmCommonKt { + public static final fun platformThrowAbleToResource (Ljava/lang/Throwable;)Lcom/lagradost/cloudstream3/mvvm/Resource; +} + public final class com/lagradost/cloudstream3/mvvm/DebugException : java/lang/Exception { public fun (Ljava/lang/String;)V } @@ -6238,17 +7947,24 @@ public final class com/lagradost/cloudstream3/mvvm/Resource$Success : com/lagrad public fun toString ()Ljava/lang/String; } -public final class com/lagradost/cloudstream3/network/WebViewResolver : okhttp3/Interceptor { +public final class com/lagradost/cloudstream3/network/WebViewResolver : com/lagradost/nicehttp/Interceptor { public static final field Companion Lcom/lagradost/cloudstream3/network/WebViewResolver$Companion; public fun (Lkotlin/text/Regex;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;J)V public synthetic fun (Lkotlin/text/Regex;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Lkotlin/jvm/functions/Function1;JILkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun intercept (Lokhttp3/Interceptor$Chain;)Lokhttp3/Response; + public final fun getAdditionalUrls ()Ljava/util/List; + public final fun getInterceptUrl ()Lkotlin/text/Regex; + public final fun getScript ()Ljava/lang/String; + public final fun getScriptCallback ()Lkotlin/jvm/functions/Function1; + public final fun getTimeout ()J + public final fun getUseOkhttp ()Z + public final fun getUserAgent ()Ljava/lang/String; + public fun intercept (Lcom/lagradost/nicehttp/HttpSendInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun resolveUsingWebView (Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun resolveUsingWebView (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun resolveUsingWebView (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public final fun resolveUsingWebView (Lokhttp3/Request;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun resolveUsingWebView$default (Lcom/lagradost/cloudstream3/network/WebViewResolver;Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun resolveUsingWebView$default (Lcom/lagradost/cloudstream3/network/WebViewResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun resolveUsingWebView$default (Lcom/lagradost/cloudstream3/network/WebViewResolver;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun resolveUsingWebView$default (Lcom/lagradost/cloudstream3/network/WebViewResolver;Lokhttp3/Request;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } public final class com/lagradost/cloudstream3/network/WebViewResolver$Companion { @@ -6330,6 +8046,8 @@ public class com/lagradost/cloudstream3/utils/AtomicList : java/util/List, kotli public fun add (Ljava/lang/Object;)Z public fun addAll (ILjava/util/Collection;)Z public fun addAll (Ljava/util/Collection;)Z + public fun addFirst (Ljava/lang/Object;)V + public fun addLast (Ljava/lang/Object;)V public fun clear ()V public fun contains (Ljava/lang/Object;)Z public fun containsAll (Ljava/util/Collection;)Z @@ -6348,6 +8066,8 @@ public class com/lagradost/cloudstream3/utils/AtomicList : java/util/List, kotli public fun remove (I)Ljava/lang/Object; public fun remove (Ljava/lang/Object;)Z public fun removeAll (Ljava/util/Collection;)Z + public fun removeFirst ()Ljava/lang/Object; + public fun removeLast ()Ljava/lang/Object; public fun replaceAll (Ljava/util/function/UnaryOperator;)V public fun retainAll (Ljava/util/Collection;)Z public fun set (ILjava/lang/Object;)Ljava/lang/Object; @@ -6392,6 +8112,10 @@ public final class com/lagradost/cloudstream3/utils/Coroutines { public final fun threadSafeListOf ([Ljava/lang/Object;)Ljava/util/List; } +public final class com/lagradost/cloudstream3/utils/Coroutines_jvmCommonKt { + public static final fun getWorkerDispatcher ()Lkotlinx/coroutines/CoroutineDispatcher; +} + public final class com/lagradost/cloudstream3/utils/Coroutines_jvmKt { public static final fun runOnMainThreadNative (Lkotlin/jvm/functions/Function0;)V } @@ -6415,7 +8139,6 @@ public class com/lagradost/cloudstream3/utils/DrmExtractorLink : com/lagradost/c public fun getSource ()Ljava/lang/String; public fun getType ()Lcom/lagradost/cloudstream3/utils/ExtractorLinkType; public fun getUrl ()Ljava/lang/String; - public final synthetic fun getUuid ()Ljava/util/UUID; public fun getUuid ()Lkotlin/uuid/Uuid; public fun setAudioTracks (Ljava/util/List;)V public fun setExtractorData (Ljava/lang/String;)V @@ -6428,7 +8151,6 @@ public class com/lagradost/cloudstream3/utils/DrmExtractorLink : com/lagradost/c public fun setQuality (I)V public fun setReferer (Ljava/lang/String;)V public fun setType (Lcom/lagradost/cloudstream3/utils/ExtractorLinkType;)V - public final synthetic fun setUuid (Ljava/util/UUID;)V public fun setUuid (Lkotlin/uuid/Uuid;)V } @@ -6451,22 +8173,17 @@ public abstract class com/lagradost/cloudstream3/utils/ExtractorApi { public final class com/lagradost/cloudstream3/utils/ExtractorApiKt { public static final fun fixUrl (Lcom/lagradost/cloudstream3/utils/ExtractorApi;Ljava/lang/String;)Ljava/lang/String; public static final fun getAndUnpack (Ljava/lang/String;)Ljava/lang/String; - public static final fun getCLEARKEY_UUID ()Ljava/util/UUID; public static final fun getExtractorApiFromName (Ljava/lang/String;)Lcom/lagradost/cloudstream3/utils/ExtractorApi; public static final fun getExtractorApis ()Lcom/lagradost/cloudstream3/utils/AtomicMutableList; public static final fun getINFER_TYPE ()Lcom/lagradost/cloudstream3/utils/ExtractorLinkType; - public static final fun getPLAYREADY_UUID ()Ljava/util/UUID; public static final fun getPacked (Ljava/lang/String;)Ljava/lang/String; public static final fun getPostForm (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getQualityFromName (Ljava/lang/String;)I public static final fun getSchemaStripRegex ()Lkotlin/text/Regex; - public static final fun getWIDEVINE_UUID ()Ljava/util/UUID; public static final fun httpsify (Ljava/lang/String;)Ljava/lang/String; public static final fun loadExtractor (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun loadExtractor (Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun loadExtractor$default (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun newDrmExtractorLink (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/utils/ExtractorLinkType;Ljava/util/UUID;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun newDrmExtractorLink$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/utils/ExtractorLinkType;Ljava/util/UUID;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun newExtractorLink (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/utils/ExtractorLinkType;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun newExtractorLink$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/lagradost/cloudstream3/utils/ExtractorLinkType;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun requireReferer (Ljava/lang/String;)Z @@ -6612,9 +8329,9 @@ public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$C { public static final field TRACK_TYPE_TEXT I public static final field TRACK_TYPE_UNKNOWN I public static final field TRACK_TYPE_VIDEO I - public final fun getCLEARKEY_UUID ()Ljava/util/UUID; - public final fun getPLAYREADY_UUID ()Ljava/util/UUID; - public final fun getWIDEVINE_UUID ()Ljava/util/UUID; + public final fun getCLEARKEY_UUID ()Lkotlin/uuid/Uuid; + public final fun getPLAYREADY_UUID ()Lkotlin/uuid/Uuid; + public final fun getWIDEVINE_UUID ()Lkotlin/uuid/Uuid; } public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$DrmInitData { @@ -6882,7 +8599,7 @@ public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$ParserExce public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$PsshAtomUtil { public static final field INSTANCE Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$PsshAtomUtil; - public final fun buildPsshAtom (Ljava/util/UUID;[Ljava/util/UUID;[B)[B + public final fun buildPsshAtom (Lkotlin/uuid/Uuid;[Lkotlin/uuid/Uuid;[B)[B } public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$Rendition { @@ -6903,19 +8620,19 @@ public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$Rendition } public final class com/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData { - public fun (Ljava/util/UUID;Ljava/lang/String;Ljava/lang/String;[B)V - public synthetic fun (Ljava/util/UUID;Ljava/lang/String;Ljava/lang/String;[BILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/UUID; + public fun (Lkotlin/uuid/Uuid;Ljava/lang/String;Ljava/lang/String;[B)V + public synthetic fun (Lkotlin/uuid/Uuid;Ljava/lang/String;Ljava/lang/String;[BILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlin/uuid/Uuid; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()[B - public final fun copy (Ljava/util/UUID;Ljava/lang/String;Ljava/lang/String;[B)Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData; - public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData;Ljava/util/UUID;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/Object;)Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData; + public final fun copy (Lkotlin/uuid/Uuid;Ljava/lang/String;Ljava/lang/String;[B)Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData; + public static synthetic fun copy$default (Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData;Lkotlin/uuid/Uuid;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/Object;)Lcom/lagradost/cloudstream3/utils/HlsPlaylistParser$SchemeData; public fun equals (Ljava/lang/Object;)Z public final fun getData ()[B public final fun getLicenseServerUrl ()Ljava/lang/String; public final fun getMimeType ()Ljava/lang/String; - public final fun getUuid ()Ljava/util/UUID; + public final fun getUuid ()Lkotlin/uuid/Uuid; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -7006,18 +8723,11 @@ public final class com/lagradost/cloudstream3/utils/JsInterpreterKt { } public final class com/lagradost/cloudstream3/utils/JsUnpacker { - public static final field Companion Lcom/lagradost/cloudstream3/utils/JsUnpacker$Companion; public fun (Ljava/lang/String;)V public final fun detect ()Z public final fun unpack ()Ljava/lang/String; } -public final class com/lagradost/cloudstream3/utils/JsUnpacker$Companion { - public final fun getC ()Ljava/util/List; - public final fun getZ ()Ljava/util/List; - public final fun load (Ljava/lang/String;)Ljava/lang/String; -} - public final class com/lagradost/cloudstream3/utils/Levenshtein { public static final field INSTANCE Lcom/lagradost/cloudstream3/utils/Levenshtein; public final fun partialRatio (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)I @@ -7255,8 +8965,9 @@ public final class com/lagradost/cloudstream3/utils/SubtitleHelper$LanguageMetad public fun toString ()Ljava/lang/String; } -public final class com/lagradost/cloudstream3/utils/SubtitleHelperKt { +public final class com/lagradost/cloudstream3/utils/SubtitleHelperPlatform_jvmKt { public static final fun getCurrentLocale ()Ljava/lang/String; + public static final fun localizedLanguageName (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; } public abstract class com/lagradost/cloudstream3/utils/serializers/NonEmptySerializer : kotlinx/serialization/json/JsonTransformingSerializer { diff --git a/library/api/library.klib.api b/library/api/library.klib.api new file mode 100644 index 00000000000..f3620b8aadf --- /dev/null +++ b/library/api/library.klib.api @@ -0,0 +1,10830 @@ +// Klib ABI Dump +// Targets: [js] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.lagradost.cloudstream3.plugins/CloudstreamPlugin : kotlin/Annotation { // com.lagradost.cloudstream3.plugins/CloudstreamPlugin|null[0] + constructor () // com.lagradost.cloudstream3.plugins/CloudstreamPlugin.|(){}[0] +} + +open annotation class com.lagradost.cloudstream3/InternalAPI : kotlin/Annotation { // com.lagradost.cloudstream3/InternalAPI|null[0] + constructor () // com.lagradost.cloudstream3/InternalAPI.|(){}[0] +} + +open annotation class com.lagradost.cloudstream3/Prerelease : kotlin/Annotation { // com.lagradost.cloudstream3/Prerelease|null[0] + constructor () // com.lagradost.cloudstream3/Prerelease.|(){}[0] +} + +open annotation class com.lagradost.cloudstream3/UnsafeSSL : kotlin/Annotation { // com.lagradost.cloudstream3/UnsafeSSL|null[0] + constructor () // com.lagradost.cloudstream3/UnsafeSSL.|(){}[0] +} + +final enum class com.lagradost.cloudstream3.syncproviders/SyncIdName : kotlin/Enum { // com.lagradost.cloudstream3.syncproviders/SyncIdName|null[0] + enum entry Anilist // com.lagradost.cloudstream3.syncproviders/SyncIdName.Anilist|null[0] + enum entry Imdb // com.lagradost.cloudstream3.syncproviders/SyncIdName.Imdb|null[0] + enum entry Kitsu // com.lagradost.cloudstream3.syncproviders/SyncIdName.Kitsu|null[0] + enum entry LocalList // com.lagradost.cloudstream3.syncproviders/SyncIdName.LocalList|null[0] + enum entry MyAnimeList // com.lagradost.cloudstream3.syncproviders/SyncIdName.MyAnimeList|null[0] + enum entry Simkl // com.lagradost.cloudstream3.syncproviders/SyncIdName.Simkl|null[0] + enum entry Trakt // com.lagradost.cloudstream3.syncproviders/SyncIdName.Trakt|null[0] + + final val entries // com.lagradost.cloudstream3.syncproviders/SyncIdName.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3.syncproviders/SyncIdName.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3.syncproviders/SyncIdName // com.lagradost.cloudstream3.syncproviders/SyncIdName.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3.syncproviders/SyncIdName.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3.utils/ExtractorLinkType : kotlin/Enum { // com.lagradost.cloudstream3.utils/ExtractorLinkType|null[0] + enum entry DASH // com.lagradost.cloudstream3.utils/ExtractorLinkType.DASH|null[0] + enum entry M3U8 // com.lagradost.cloudstream3.utils/ExtractorLinkType.M3U8|null[0] + enum entry MAGNET // com.lagradost.cloudstream3.utils/ExtractorLinkType.MAGNET|null[0] + enum entry TORRENT // com.lagradost.cloudstream3.utils/ExtractorLinkType.TORRENT|null[0] + enum entry VIDEO // com.lagradost.cloudstream3.utils/ExtractorLinkType.VIDEO|null[0] + + final val entries // com.lagradost.cloudstream3.utils/ExtractorLinkType.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3.utils/ExtractorLinkType.entries.|#static(){}[0] + + final fun getMimeType(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkType.getMimeType|getMimeType(){}[0] + final fun valueOf(kotlin/String): com.lagradost.cloudstream3.utils/ExtractorLinkType // com.lagradost.cloudstream3.utils/ExtractorLinkType.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3.utils/ExtractorLinkType.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3.utils/Qualities : kotlin/Enum { // com.lagradost.cloudstream3.utils/Qualities|null[0] + enum entry P1080 // com.lagradost.cloudstream3.utils/Qualities.P1080|null[0] + enum entry P144 // com.lagradost.cloudstream3.utils/Qualities.P144|null[0] + enum entry P1440 // com.lagradost.cloudstream3.utils/Qualities.P1440|null[0] + enum entry P2160 // com.lagradost.cloudstream3.utils/Qualities.P2160|null[0] + enum entry P240 // com.lagradost.cloudstream3.utils/Qualities.P240|null[0] + enum entry P360 // com.lagradost.cloudstream3.utils/Qualities.P360|null[0] + enum entry P480 // com.lagradost.cloudstream3.utils/Qualities.P480|null[0] + enum entry P720 // com.lagradost.cloudstream3.utils/Qualities.P720|null[0] + enum entry Unknown // com.lagradost.cloudstream3.utils/Qualities.Unknown|null[0] + + final val defaultPriority // com.lagradost.cloudstream3.utils/Qualities.defaultPriority|{}defaultPriority[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/Qualities.defaultPriority.|(){}[0] + final val entries // com.lagradost.cloudstream3.utils/Qualities.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3.utils/Qualities.entries.|#static(){}[0] + + final var value // com.lagradost.cloudstream3.utils/Qualities.value|{}value[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/Qualities.value.|(){}[0] + final fun (kotlin/Int) // com.lagradost.cloudstream3.utils/Qualities.value.|(kotlin.Int){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3.utils/Qualities // com.lagradost.cloudstream3.utils/Qualities.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3.utils/Qualities.values|values#static(){}[0] + + final object Companion { // com.lagradost.cloudstream3.utils/Qualities.Companion|null[0] + final fun getStringByInt(kotlin/Int?): kotlin/String // com.lagradost.cloudstream3.utils/Qualities.Companion.getStringByInt|getStringByInt(kotlin.Int?){}[0] + final fun getStringByIntFull(kotlin/Int): kotlin/String // com.lagradost.cloudstream3.utils/Qualities.Companion.getStringByIntFull|getStringByIntFull(kotlin.Int){}[0] + } +} + +final enum class com.lagradost.cloudstream3/ActorRole : kotlin/Enum { // com.lagradost.cloudstream3/ActorRole|null[0] + enum entry Background // com.lagradost.cloudstream3/ActorRole.Background|null[0] + enum entry Main // com.lagradost.cloudstream3/ActorRole.Main|null[0] + enum entry Supporting // com.lagradost.cloudstream3/ActorRole.Supporting|null[0] + + final val entries // com.lagradost.cloudstream3/ActorRole.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/ActorRole.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/ActorRole // com.lagradost.cloudstream3/ActorRole.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/ActorRole.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/AutoDownloadMode : kotlin/Enum { // com.lagradost.cloudstream3/AutoDownloadMode|null[0] + enum entry All // com.lagradost.cloudstream3/AutoDownloadMode.All|null[0] + enum entry Disable // com.lagradost.cloudstream3/AutoDownloadMode.Disable|null[0] + enum entry FilterByLang // com.lagradost.cloudstream3/AutoDownloadMode.FilterByLang|null[0] + enum entry NsfwOnly // com.lagradost.cloudstream3/AutoDownloadMode.NsfwOnly|null[0] + + final val entries // com.lagradost.cloudstream3/AutoDownloadMode.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/AutoDownloadMode.entries.|#static(){}[0] + final val value // com.lagradost.cloudstream3/AutoDownloadMode.value|{}value[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/AutoDownloadMode.value.|(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/AutoDownloadMode // com.lagradost.cloudstream3/AutoDownloadMode.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/AutoDownloadMode.values|values#static(){}[0] + + final object Companion { // com.lagradost.cloudstream3/AutoDownloadMode.Companion|null[0] + final fun getEnum(kotlin/Int): com.lagradost.cloudstream3/AutoDownloadMode? // com.lagradost.cloudstream3/AutoDownloadMode.Companion.getEnum|getEnum(kotlin.Int){}[0] + } +} + +final enum class com.lagradost.cloudstream3/DubStatus : kotlin/Enum { // com.lagradost.cloudstream3/DubStatus|null[0] + enum entry Dubbed // com.lagradost.cloudstream3/DubStatus.Dubbed|null[0] + enum entry None // com.lagradost.cloudstream3/DubStatus.None|null[0] + enum entry Subbed // com.lagradost.cloudstream3/DubStatus.Subbed|null[0] + + final val entries // com.lagradost.cloudstream3/DubStatus.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/DubStatus.entries.|#static(){}[0] + final val id // com.lagradost.cloudstream3/DubStatus.id|{}id[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/DubStatus.id.|(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/DubStatus // com.lagradost.cloudstream3/DubStatus.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/DubStatus.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/ProviderType : kotlin/Enum { // com.lagradost.cloudstream3/ProviderType|null[0] + enum entry DirectProvider // com.lagradost.cloudstream3/ProviderType.DirectProvider|null[0] + enum entry MetaProvider // com.lagradost.cloudstream3/ProviderType.MetaProvider|null[0] + + final val entries // com.lagradost.cloudstream3/ProviderType.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/ProviderType.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/ProviderType // com.lagradost.cloudstream3/ProviderType.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/ProviderType.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/SearchQuality : kotlin/Enum { // com.lagradost.cloudstream3/SearchQuality|null[0] + enum entry BlueRay // com.lagradost.cloudstream3/SearchQuality.BlueRay|null[0] + enum entry Cam // com.lagradost.cloudstream3/SearchQuality.Cam|null[0] + enum entry CamRip // com.lagradost.cloudstream3/SearchQuality.CamRip|null[0] + enum entry DVD // com.lagradost.cloudstream3/SearchQuality.DVD|null[0] + enum entry FourK // com.lagradost.cloudstream3/SearchQuality.FourK|null[0] + enum entry HD // com.lagradost.cloudstream3/SearchQuality.HD|null[0] + enum entry HDR // com.lagradost.cloudstream3/SearchQuality.HDR|null[0] + enum entry HQ // com.lagradost.cloudstream3/SearchQuality.HQ|null[0] + enum entry HdCam // com.lagradost.cloudstream3/SearchQuality.HdCam|null[0] + enum entry SD // com.lagradost.cloudstream3/SearchQuality.SD|null[0] + enum entry SDR // com.lagradost.cloudstream3/SearchQuality.SDR|null[0] + enum entry Telecine // com.lagradost.cloudstream3/SearchQuality.Telecine|null[0] + enum entry Telesync // com.lagradost.cloudstream3/SearchQuality.Telesync|null[0] + enum entry UHD // com.lagradost.cloudstream3/SearchQuality.UHD|null[0] + enum entry WebRip // com.lagradost.cloudstream3/SearchQuality.WebRip|null[0] + enum entry WorkPrint // com.lagradost.cloudstream3/SearchQuality.WorkPrint|null[0] + + final val entries // com.lagradost.cloudstream3/SearchQuality.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/SearchQuality.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/SearchQuality // com.lagradost.cloudstream3/SearchQuality.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/SearchQuality.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/ShowStatus : kotlin/Enum { // com.lagradost.cloudstream3/ShowStatus|null[0] + enum entry Completed // com.lagradost.cloudstream3/ShowStatus.Completed|null[0] + enum entry Ongoing // com.lagradost.cloudstream3/ShowStatus.Ongoing|null[0] + + final val entries // com.lagradost.cloudstream3/ShowStatus.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/ShowStatus.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/ShowStatus // com.lagradost.cloudstream3/ShowStatus.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/ShowStatus.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/SimklSyncServices : kotlin/Enum { // com.lagradost.cloudstream3/SimklSyncServices|null[0] + enum entry AniList // com.lagradost.cloudstream3/SimklSyncServices.AniList|null[0] + enum entry Imdb // com.lagradost.cloudstream3/SimklSyncServices.Imdb|null[0] + enum entry Mal // com.lagradost.cloudstream3/SimklSyncServices.Mal|null[0] + enum entry Simkl // com.lagradost.cloudstream3/SimklSyncServices.Simkl|null[0] + enum entry Tmdb // com.lagradost.cloudstream3/SimklSyncServices.Tmdb|null[0] + + final val entries // com.lagradost.cloudstream3/SimklSyncServices.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/SimklSyncServices.entries.|#static(){}[0] + final val originalName // com.lagradost.cloudstream3/SimklSyncServices.originalName|{}originalName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/SimklSyncServices.originalName.|(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/SimklSyncServices // com.lagradost.cloudstream3/SimklSyncServices.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/SimklSyncServices.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/TrackerType : kotlin/Enum { // com.lagradost.cloudstream3/TrackerType|null[0] + enum entry MOVIE // com.lagradost.cloudstream3/TrackerType.MOVIE|null[0] + enum entry MUSIC // com.lagradost.cloudstream3/TrackerType.MUSIC|null[0] + enum entry ONA // com.lagradost.cloudstream3/TrackerType.ONA|null[0] + enum entry OVA // com.lagradost.cloudstream3/TrackerType.OVA|null[0] + enum entry SPECIAL // com.lagradost.cloudstream3/TrackerType.SPECIAL|null[0] + enum entry TV // com.lagradost.cloudstream3/TrackerType.TV|null[0] + enum entry TV_SHORT // com.lagradost.cloudstream3/TrackerType.TV_SHORT|null[0] + + final val entries // com.lagradost.cloudstream3/TrackerType.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/TrackerType.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/TrackerType // com.lagradost.cloudstream3/TrackerType.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/TrackerType.values|values#static(){}[0] + + final object Companion { // com.lagradost.cloudstream3/TrackerType.Companion|null[0] + final fun getTypes(com.lagradost.cloudstream3/TvType): kotlin.collections/Set // com.lagradost.cloudstream3/TrackerType.Companion.getTypes|getTypes(com.lagradost.cloudstream3.TvType){}[0] + } +} + +final enum class com.lagradost.cloudstream3/TvType : kotlin/Enum { // com.lagradost.cloudstream3/TvType|null[0] + enum entry Anime // com.lagradost.cloudstream3/TvType.Anime|null[0] + enum entry AnimeMovie // com.lagradost.cloudstream3/TvType.AnimeMovie|null[0] + enum entry AsianDrama // com.lagradost.cloudstream3/TvType.AsianDrama|null[0] + enum entry Audio // com.lagradost.cloudstream3/TvType.Audio|null[0] + enum entry AudioBook // com.lagradost.cloudstream3/TvType.AudioBook|null[0] + enum entry Cartoon // com.lagradost.cloudstream3/TvType.Cartoon|null[0] + enum entry CustomMedia // com.lagradost.cloudstream3/TvType.CustomMedia|null[0] + enum entry Documentary // com.lagradost.cloudstream3/TvType.Documentary|null[0] + enum entry Live // com.lagradost.cloudstream3/TvType.Live|null[0] + enum entry Movie // com.lagradost.cloudstream3/TvType.Movie|null[0] + enum entry Music // com.lagradost.cloudstream3/TvType.Music|null[0] + enum entry NSFW // com.lagradost.cloudstream3/TvType.NSFW|null[0] + enum entry OVA // com.lagradost.cloudstream3/TvType.OVA|null[0] + enum entry Others // com.lagradost.cloudstream3/TvType.Others|null[0] + enum entry Podcast // com.lagradost.cloudstream3/TvType.Podcast|null[0] + enum entry Torrent // com.lagradost.cloudstream3/TvType.Torrent|null[0] + enum entry TvSeries // com.lagradost.cloudstream3/TvType.TvSeries|null[0] + enum entry Video // com.lagradost.cloudstream3/TvType.Video|null[0] + + final val entries // com.lagradost.cloudstream3/TvType.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/TvType.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/TvType.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/TvType.values|values#static(){}[0] +} + +final enum class com.lagradost.cloudstream3/VPNStatus : kotlin/Enum { // com.lagradost.cloudstream3/VPNStatus|null[0] + enum entry MightBeNeeded // com.lagradost.cloudstream3/VPNStatus.MightBeNeeded|null[0] + enum entry None // com.lagradost.cloudstream3/VPNStatus.None|null[0] + enum entry Torrent // com.lagradost.cloudstream3/VPNStatus.Torrent|null[0] + + final val entries // com.lagradost.cloudstream3/VPNStatus.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.lagradost.cloudstream3/VPNStatus.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.lagradost.cloudstream3/VPNStatus // com.lagradost.cloudstream3/VPNStatus.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.lagradost.cloudstream3/VPNStatus.values|values#static(){}[0] +} + +abstract interface com.lagradost.cloudstream3/EpisodeResponse { // com.lagradost.cloudstream3/EpisodeResponse|null[0] + abstract var nextAiring // com.lagradost.cloudstream3/EpisodeResponse.nextAiring|{}nextAiring[0] + abstract fun (): com.lagradost.cloudstream3/NextAiring? // com.lagradost.cloudstream3/EpisodeResponse.nextAiring.|(){}[0] + abstract fun (com.lagradost.cloudstream3/NextAiring?) // com.lagradost.cloudstream3/EpisodeResponse.nextAiring.|(com.lagradost.cloudstream3.NextAiring?){}[0] + abstract var seasonNames // com.lagradost.cloudstream3/EpisodeResponse.seasonNames|{}seasonNames[0] + abstract fun (): kotlin.collections/List? // com.lagradost.cloudstream3/EpisodeResponse.seasonNames.|(){}[0] + abstract fun (kotlin.collections/List?) // com.lagradost.cloudstream3/EpisodeResponse.seasonNames.|(kotlin.collections.List?){}[0] + abstract var showStatus // com.lagradost.cloudstream3/EpisodeResponse.showStatus|{}showStatus[0] + abstract fun (): com.lagradost.cloudstream3/ShowStatus? // com.lagradost.cloudstream3/EpisodeResponse.showStatus.|(){}[0] + abstract fun (com.lagradost.cloudstream3/ShowStatus?) // com.lagradost.cloudstream3/EpisodeResponse.showStatus.|(com.lagradost.cloudstream3.ShowStatus?){}[0] + + abstract fun getLatestEpisodes(): kotlin.collections/Map // com.lagradost.cloudstream3/EpisodeResponse.getLatestEpisodes|getLatestEpisodes(){}[0] + abstract fun getTotalEpisodeIndex(kotlin/Int, kotlin/Int): kotlin/Int // com.lagradost.cloudstream3/EpisodeResponse.getTotalEpisodeIndex|getTotalEpisodeIndex(kotlin.Int;kotlin.Int){}[0] +} + +abstract interface com.lagradost.cloudstream3/IDownloadableMinimum { // com.lagradost.cloudstream3/IDownloadableMinimum|null[0] + abstract val headers // com.lagradost.cloudstream3/IDownloadableMinimum.headers|{}headers[0] + abstract fun (): kotlin.collections/Map // com.lagradost.cloudstream3/IDownloadableMinimum.headers.|(){}[0] + abstract val referer // com.lagradost.cloudstream3/IDownloadableMinimum.referer|{}referer[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/IDownloadableMinimum.referer.|(){}[0] + abstract val url // com.lagradost.cloudstream3/IDownloadableMinimum.url|{}url[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/IDownloadableMinimum.url.|(){}[0] +} + +abstract interface com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/LoadResponse|null[0] + abstract var actors // com.lagradost.cloudstream3/LoadResponse.actors|{}actors[0] + abstract fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LoadResponse.actors.|(){}[0] + abstract fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LoadResponse.actors.|(kotlin.collections.List?){}[0] + abstract var apiName // com.lagradost.cloudstream3/LoadResponse.apiName|{}apiName[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.apiName.|(){}[0] + abstract fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.apiName.|(kotlin.String){}[0] + abstract var backgroundPosterUrl // com.lagradost.cloudstream3/LoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.backgroundPosterUrl.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + abstract var comingSoon // com.lagradost.cloudstream3/LoadResponse.comingSoon|{}comingSoon[0] + abstract fun (): kotlin/Boolean // com.lagradost.cloudstream3/LoadResponse.comingSoon.|(){}[0] + abstract fun (kotlin/Boolean) // com.lagradost.cloudstream3/LoadResponse.comingSoon.|(kotlin.Boolean){}[0] + abstract var contentRating // com.lagradost.cloudstream3/LoadResponse.contentRating|{}contentRating[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.contentRating.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.contentRating.|(kotlin.String?){}[0] + abstract var duration // com.lagradost.cloudstream3/LoadResponse.duration|{}duration[0] + abstract fun (): kotlin/Int? // com.lagradost.cloudstream3/LoadResponse.duration.|(){}[0] + abstract fun (kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.duration.|(kotlin.Int?){}[0] + abstract var logoUrl // com.lagradost.cloudstream3/LoadResponse.logoUrl|{}logoUrl[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.logoUrl.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.logoUrl.|(kotlin.String?){}[0] + abstract var name // com.lagradost.cloudstream3/LoadResponse.name|{}name[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.name.|(){}[0] + abstract fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.name.|(kotlin.String){}[0] + abstract var plot // com.lagradost.cloudstream3/LoadResponse.plot|{}plot[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.plot.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.plot.|(kotlin.String?){}[0] + abstract var posterHeaders // com.lagradost.cloudstream3/LoadResponse.posterHeaders|{}posterHeaders[0] + abstract fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/LoadResponse.posterHeaders.|(){}[0] + abstract fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/LoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + abstract var posterUrl // com.lagradost.cloudstream3/LoadResponse.posterUrl|{}posterUrl[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.posterUrl.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.posterUrl.|(kotlin.String?){}[0] + abstract var recommendations // com.lagradost.cloudstream3/LoadResponse.recommendations|{}recommendations[0] + abstract fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LoadResponse.recommendations.|(){}[0] + abstract fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LoadResponse.recommendations.|(kotlin.collections.List?){}[0] + abstract var score // com.lagradost.cloudstream3/LoadResponse.score|{}score[0] + abstract fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/LoadResponse.score.|(){}[0] + abstract fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/LoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + abstract var syncData // com.lagradost.cloudstream3/LoadResponse.syncData|{}syncData[0] + abstract fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/LoadResponse.syncData.|(){}[0] + abstract fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/LoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + abstract var tags // com.lagradost.cloudstream3/LoadResponse.tags|{}tags[0] + abstract fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LoadResponse.tags.|(){}[0] + abstract fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LoadResponse.tags.|(kotlin.collections.List?){}[0] + abstract var trailers // com.lagradost.cloudstream3/LoadResponse.trailers|{}trailers[0] + abstract fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/LoadResponse.trailers.|(){}[0] + abstract fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/LoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + abstract var type // com.lagradost.cloudstream3/LoadResponse.type|{}type[0] + abstract fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/LoadResponse.type.|(){}[0] + abstract fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/LoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + abstract var uniqueUrl // com.lagradost.cloudstream3/LoadResponse.uniqueUrl|{}uniqueUrl[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.uniqueUrl.|(){}[0] + abstract fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.uniqueUrl.|(kotlin.String){}[0] + abstract var url // com.lagradost.cloudstream3/LoadResponse.url|{}url[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.url.|(){}[0] + abstract fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.url.|(kotlin.String){}[0] + abstract var year // com.lagradost.cloudstream3/LoadResponse.year|{}year[0] + abstract fun (): kotlin/Int? // com.lagradost.cloudstream3/LoadResponse.year.|(){}[0] + abstract fun (kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.year.|(kotlin.Int?){}[0] + open var rating // com.lagradost.cloudstream3/LoadResponse.rating|{}rating[0] + open fun (): kotlin/Int? // com.lagradost.cloudstream3/LoadResponse.rating.|(){}[0] + open fun (kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.rating.|(kotlin.Int?){}[0] + + final object Companion { // com.lagradost.cloudstream3/LoadResponse.Companion|null[0] + final var aniListIdPrefix // com.lagradost.cloudstream3/LoadResponse.Companion.aniListIdPrefix|{}aniListIdPrefix[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.Companion.aniListIdPrefix.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.Companion.aniListIdPrefix.|(kotlin.String){}[0] + final var isTrailersEnabled // com.lagradost.cloudstream3/LoadResponse.Companion.isTrailersEnabled|{}isTrailersEnabled[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/LoadResponse.Companion.isTrailersEnabled.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/LoadResponse.Companion.isTrailersEnabled.|(kotlin.Boolean){}[0] + final var kitsuIdPrefix // com.lagradost.cloudstream3/LoadResponse.Companion.kitsuIdPrefix|{}kitsuIdPrefix[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.Companion.kitsuIdPrefix.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.Companion.kitsuIdPrefix.|(kotlin.String){}[0] + final var malIdPrefix // com.lagradost.cloudstream3/LoadResponse.Companion.malIdPrefix|{}malIdPrefix[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.Companion.malIdPrefix.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.Companion.malIdPrefix.|(kotlin.String){}[0] + final var simklIdPrefix // com.lagradost.cloudstream3/LoadResponse.Companion.simklIdPrefix|{}simklIdPrefix[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LoadResponse.Companion.simklIdPrefix.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LoadResponse.Companion.simklIdPrefix.|(kotlin.String){}[0] + + final fun (com.lagradost.cloudstream3/LoadResponse).addActors(kotlin.collections/List?) // com.lagradost.cloudstream3/LoadResponse.Companion.addActors|addActors@com.lagradost.cloudstream3.LoadResponse(kotlin.collections.List?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addActors(kotlin.collections/List>?) // com.lagradost.cloudstream3/LoadResponse.Companion.addActors|addActors@com.lagradost.cloudstream3.LoadResponse(kotlin.collections.List>?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addActors(kotlin.collections/List>?) // com.lagradost.cloudstream3/LoadResponse.Companion.addActors|addActors@com.lagradost.cloudstream3.LoadResponse(kotlin.collections.List>?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addActors(kotlin.collections/List?) // com.lagradost.cloudstream3/LoadResponse.Companion.addActors|addActors@com.lagradost.cloudstream3.LoadResponse(kotlin.collections.List?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addAniListId(kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.Companion.addAniListId|addAniListId@com.lagradost.cloudstream3.LoadResponse(kotlin.Int?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addDuration(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addDuration|addDuration@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addImdbId(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addImdbId|addImdbId@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addImdbUrl(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addImdbUrl|addImdbUrl@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addKitsuId(kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.Companion.addKitsuId|addKitsuId@com.lagradost.cloudstream3.LoadResponse(kotlin.Int?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addKitsuId(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addKitsuId|addKitsuId@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addMalId(kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.Companion.addMalId|addMalId@com.lagradost.cloudstream3.LoadResponse(kotlin.Int?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addRating(kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.Companion.addRating|addRating@com.lagradost.cloudstream3.LoadResponse(kotlin.Int?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addRating(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addRating|addRating@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addScore(com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/LoadResponse.Companion.addScore|addScore@com.lagradost.cloudstream3.LoadResponse(com.lagradost.cloudstream3.Score?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addScore(kotlin/String?, kotlin/Int = ...) // com.lagradost.cloudstream3/LoadResponse.Companion.addScore|addScore@com.lagradost.cloudstream3.LoadResponse(kotlin.String?;kotlin.Int){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addSimklId(kotlin/Int?) // com.lagradost.cloudstream3/LoadResponse.Companion.addSimklId|addSimklId@com.lagradost.cloudstream3.LoadResponse(kotlin.Int?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addTMDbId(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addTMDbId|addTMDbId@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).addTraktId(kotlin/String?) // com.lagradost.cloudstream3/LoadResponse.Companion.addTraktId|addTraktId@com.lagradost.cloudstream3.LoadResponse(kotlin.String?){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).getAniListId(): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.getAniListId|getAniListId@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).getImdbId(): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.getImdbId|getImdbId@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).getKitsuId(): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.getKitsuId|getKitsuId@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).getMalId(): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.getMalId|getMalId@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).getTMDbId(): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.getTMDbId|getTMDbId@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun (com.lagradost.cloudstream3/LoadResponse).isMovie(): kotlin/Boolean // com.lagradost.cloudstream3/LoadResponse.Companion.isMovie|isMovie@com.lagradost.cloudstream3.LoadResponse(){}[0] + final fun addIdToString(kotlin/String?, com.lagradost.cloudstream3/SimklSyncServices, kotlin/String?): kotlin/String? // com.lagradost.cloudstream3/LoadResponse.Companion.addIdToString|addIdToString(kotlin.String?;com.lagradost.cloudstream3.SimklSyncServices;kotlin.String?){}[0] + final fun readIdFromString(kotlin/String?): kotlin.collections/Map // com.lagradost.cloudstream3/LoadResponse.Companion.readIdFromString|readIdFromString(kotlin.String?){}[0] + final suspend fun (com.lagradost.cloudstream3/LoadResponse).addTrailer(kotlin.collections/List?, kotlin/String? = ..., kotlin/Boolean = ...) // com.lagradost.cloudstream3/LoadResponse.Companion.addTrailer|addTrailer@com.lagradost.cloudstream3.LoadResponse(kotlin.collections.List?;kotlin.String?;kotlin.Boolean){}[0] + final suspend fun (com.lagradost.cloudstream3/LoadResponse).addTrailer(kotlin/String?, kotlin/String? = ..., kotlin/Boolean = ...) // com.lagradost.cloudstream3/LoadResponse.Companion.addTrailer|addTrailer@com.lagradost.cloudstream3.LoadResponse(kotlin.String?;kotlin.String?;kotlin.Boolean){}[0] + final suspend fun (com.lagradost.cloudstream3/LoadResponse).addTrailer(kotlin/String?, kotlin/String? = ..., kotlin/Boolean = ..., kotlin.collections/Map = ...) // com.lagradost.cloudstream3/LoadResponse.Companion.addTrailer|addTrailer@com.lagradost.cloudstream3.LoadResponse(kotlin.String?;kotlin.String?;kotlin.Boolean;kotlin.collections.Map){}[0] + } +} + +abstract interface com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/SearchResponse|null[0] + abstract val apiName // com.lagradost.cloudstream3/SearchResponse.apiName|{}apiName[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/SearchResponse.apiName.|(){}[0] + abstract val name // com.lagradost.cloudstream3/SearchResponse.name|{}name[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/SearchResponse.name.|(){}[0] + abstract val url // com.lagradost.cloudstream3/SearchResponse.url|{}url[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3/SearchResponse.url.|(){}[0] + + abstract var id // com.lagradost.cloudstream3/SearchResponse.id|{}id[0] + abstract fun (): kotlin/Int? // com.lagradost.cloudstream3/SearchResponse.id.|(){}[0] + abstract fun (kotlin/Int?) // com.lagradost.cloudstream3/SearchResponse.id.|(kotlin.Int?){}[0] + abstract var posterHeaders // com.lagradost.cloudstream3/SearchResponse.posterHeaders|{}posterHeaders[0] + abstract fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/SearchResponse.posterHeaders.|(){}[0] + abstract fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/SearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + abstract var posterUrl // com.lagradost.cloudstream3/SearchResponse.posterUrl|{}posterUrl[0] + abstract fun (): kotlin/String? // com.lagradost.cloudstream3/SearchResponse.posterUrl.|(){}[0] + abstract fun (kotlin/String?) // com.lagradost.cloudstream3/SearchResponse.posterUrl.|(kotlin.String?){}[0] + abstract var quality // com.lagradost.cloudstream3/SearchResponse.quality|{}quality[0] + abstract fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/SearchResponse.quality.|(){}[0] + abstract fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/SearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + abstract var score // com.lagradost.cloudstream3/SearchResponse.score|{}score[0] + abstract fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/SearchResponse.score.|(){}[0] + abstract fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/SearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + abstract var type // com.lagradost.cloudstream3/SearchResponse.type|{}type[0] + abstract fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/SearchResponse.type.|(){}[0] + abstract fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/SearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] +} + +abstract class <#A: kotlin/Any> com.lagradost.cloudstream3.utils.serializers/NonEmptySerializer : kotlinx.serialization.json/JsonTransformingSerializer<#A> { // com.lagradost.cloudstream3.utils.serializers/NonEmptySerializer|null[0] + constructor (kotlinx.serialization/KSerializer<#A>) // com.lagradost.cloudstream3.utils.serializers/NonEmptySerializer.|(kotlinx.serialization.KSerializer<1:0>){}[0] + + open fun transformSerialize(kotlinx.serialization.json/JsonElement): kotlinx.serialization.json/JsonElement // com.lagradost.cloudstream3.utils.serializers/NonEmptySerializer.transformSerialize|transformSerialize(kotlinx.serialization.json.JsonElement){}[0] +} + +abstract class <#A: kotlin/Any> com.lagradost.cloudstream3.utils.serializers/WriteOnlySerializer : kotlinx.serialization.json/JsonTransformingSerializer<#A> { // com.lagradost.cloudstream3.utils.serializers/WriteOnlySerializer|null[0] + constructor (kotlinx.serialization/KSerializer<#A>, kotlin.collections/Set) // com.lagradost.cloudstream3.utils.serializers/WriteOnlySerializer.|(kotlinx.serialization.KSerializer<1:0>;kotlin.collections.Set){}[0] + + open fun transformSerialize(kotlinx.serialization.json/JsonElement): kotlinx.serialization.json/JsonElement // com.lagradost.cloudstream3.utils.serializers/WriteOnlySerializer.transformSerialize|transformSerialize(kotlinx.serialization.json.JsonElement){}[0] +} + +abstract class com.lagradost.cloudstream3.extractors/CineMMRedirect : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/CineMMRedirect|null[0] + constructor () // com.lagradost.cloudstream3.extractors/CineMMRedirect.|(){}[0] + + open val name // com.lagradost.cloudstream3.extractors/CineMMRedirect.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CineMMRedirect.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/CineMMRedirect.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/CineMMRedirect.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/CineMMRedirect.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +abstract class com.lagradost.cloudstream3.metaproviders/MyDramaListAPI : com.lagradost.cloudstream3/MainAPI { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI|null[0] + constructor () // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.|(){}[0] + + open val hasMainPage // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.hasMainPage|{}hasMainPage[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.hasMainPage.|(){}[0] + open val mainPage // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.mainPage|{}mainPage[0] + open fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.mainPage.|(){}[0] + open val providerType // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.providerType|{}providerType[0] + open fun (): com.lagradost.cloudstream3/ProviderType // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.providerType.|(){}[0] + open val supportedTypes // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.supportedTypes|{}supportedTypes[0] + open fun (): kotlin.collections/Set // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.supportedTypes.|(){}[0] + + open var name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.name.|(kotlin.String){}[0] + + open suspend fun getMainPage(kotlin/Int, com.lagradost.cloudstream3/MainPageRequest): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.getMainPage|getMainPage(kotlin.Int;com.lagradost.cloudstream3.MainPageRequest){}[0] + open suspend fun load(kotlin/String): com.lagradost.cloudstream3/LoadResponse // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.load|load(kotlin.String){}[0] + open suspend fun search(kotlin/String): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.search|search(kotlin.String){}[0] + + final class Cast { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.|(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.String;kotlin.String){}[0] + + final val characterName // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.characterName|{}characterName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.characterName.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.id.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.images.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.name.|(){}[0] + final val role // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.role|{}role[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.role.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.slug|{}slug[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.slug.|(){}[0] + final val url // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.url.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component4|component4(){}[0] + final fun component5(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.component7|component7(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.copy|copy(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Cast){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Cast.Companion.serializer|serializer(){}[0] + } + } + + final class Credits { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits|null[0] + constructor (kotlin.collections/List, kotlin.collections/List) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.|(kotlin.collections.List;kotlin.collections.List){}[0] + + final val cast // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.cast|{}cast[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.cast.|(){}[0] + final val crew // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.crew|{}crew[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.crew.|(){}[0] + + final fun component1(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.component2|component2(){}[0] + final fun copy(kotlin.collections/List = ..., kotlin.collections/List = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.copy|copy(kotlin.collections.List;kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Credits){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Credits.Companion.serializer|serializer(){}[0] + } + } + + final class Crew { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.|(kotlin.Long;kotlin.String;kotlin.String;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.String){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.id.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.images.|(){}[0] + final val job // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.job|{}job[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.job.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.name.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.slug|{}slug[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.slug.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.component5|component5(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.copy|copy(kotlin.Long;kotlin.String;kotlin.String;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Crew){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Crew.Companion.serializer|serializer(){}[0] + } + } + + final class Data { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data|null[0] + constructor (com.lagradost.cloudstream3/TvType? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary? = ...) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.|(com.lagradost.cloudstream3.TvType?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.MediaSummary?){}[0] + + final val media // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.media|{}media[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.media.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.type.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.component2|component2(){}[0] + final fun copy(com.lagradost.cloudstream3/TvType? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary? = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.copy|copy(com.lagradost.cloudstream3.TvType?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.MediaSummary?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Data){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Data.Companion.serializer|serializer(){}[0] + } + } + + final class Genre { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.|(kotlin.Long;kotlin.String;kotlin.String){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.id.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.name.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.slug|{}slug[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.slug.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.component3|component3(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.copy|copy(kotlin.Long;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Genre){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Genre.Companion.serializer|serializer(){}[0] + } + } + + final class Images { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val medium // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.medium|{}medium[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.medium.|(){}[0] + final val poster // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.poster|{}poster[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.poster.|(){}[0] + final val thumb // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.thumb|{}thumb[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.thumb.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images.Companion.serializer|serializer(){}[0] + } + } + + final class LinkData { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData|null[0] + constructor (kotlin/Long? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.|(kotlin.Long?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?){}[0] + + final val airedDate // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.airedDate|{}airedDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.airedDate.|(){}[0] + final val date // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.date|{}date[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.date.|(){}[0] + final val episode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.episode|{}episode[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.episode.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.id|{}id[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.id.|(){}[0] + final val lastSeason // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.lastSeason|{}lastSeason[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.lastSeason.|(){}[0] + final val orgTitle // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.orgTitle|{}orgTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.orgTitle.|(){}[0] + final val season // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.season.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.title.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.type.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.year.|(){}[0] + + final fun component1(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component10|component10(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component7|component7(){}[0] + final fun component8(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.component9|component9(){}[0] + final fun copy(kotlin/Long? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.copy|copy(kotlin.Long?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.LinkData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.LinkData.Companion.serializer|serializer(){}[0] + } + } + + final class Media { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, kotlin/Long, kotlin/Double, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images, kotlin.collections/List? = ..., kotlin/Long? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String, kotlin.collections/List? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer?, kotlin/Long, kotlin/Long, kotlin/Long, kotlin/Long, kotlin/Long, kotlin/Long, kotlin/Long, kotlin/String, kotlin/String, kotlin/Boolean, kotlin.collections/List, kotlin/Long) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.|(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.Long;kotlin.Double;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.collections.List?;kotlin.Long?;kotlin.String?;kotlin.String?;kotlin.String;kotlin.collections.List?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Trailer?;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.String;kotlin.String;kotlin.Boolean;kotlin.collections.List;kotlin.Long){}[0] + + final val airedStart // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.airedStart|{}airedStart[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.airedStart.|(){}[0] + final val altTitles // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.altTitles|{}altTitles[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.altTitles.|(){}[0] + final val certification // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.certification|{}certification[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.certification.|(){}[0] + final val commentsCount // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.commentsCount|{}commentsCount[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.commentsCount.|(){}[0] + final val country // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.country|{}country[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.country.|(){}[0] + final val enableAds // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.enableAds|{}enableAds[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.enableAds.|(){}[0] + final val episodes // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.episodes|{}episodes[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.episodes.|(){}[0] + final val genres // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.genres|{}genres[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.genres.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.id.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.images.|(){}[0] + final val language // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.language.|(){}[0] + final val mediaRating // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaRating|{}mediaRating[0] + final fun (): kotlin/Double // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaRating.|(){}[0] + final val mediaType // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaType|{}mediaType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaType.|(){}[0] + final val mediaYear // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaYear|{}mediaYear[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.mediaYear.|(){}[0] + final val originalTitle // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.originalTitle|{}originalTitle[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.originalTitle.|(){}[0] + final val permalink // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.permalink|{}permalink[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.permalink.|(){}[0] + final val popularity // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.popularity|{}popularity[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.popularity.|(){}[0] + final val ranked // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.ranked|{}ranked[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.ranked.|(){}[0] + final val recsCount // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.recsCount|{}recsCount[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.recsCount.|(){}[0] + final val releaseDatesFmt // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.releaseDatesFmt|{}releaseDatesFmt[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.releaseDatesFmt.|(){}[0] + final val released // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.released|{}released[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.released.|(){}[0] + final val reviewsCount // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.reviewsCount|{}reviewsCount[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.reviewsCount.|(){}[0] + final val runtime // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.runtime|{}runtime[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.runtime.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.slug|{}slug[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.slug.|(){}[0] + final val sources // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.sources|{}sources[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.sources.|(){}[0] + final val status // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.status|{}status[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.status.|(){}[0] + final val synopsis // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.synopsis|{}synopsis[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.synopsis.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.title|{}title[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.title.|(){}[0] + final val trailer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.trailer|{}trailer[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.trailer.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.type.|(){}[0] + final val updatedAt // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.updatedAt|{}updatedAt[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.updatedAt.|(){}[0] + final val votes // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.votes|{}votes[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.votes.|(){}[0] + final val watchers // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.watchers|{}watchers[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.watchers.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component11|component11(){}[0] + final fun component12(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component12|component12(){}[0] + final fun component13(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component13|component13(){}[0] + final fun component14(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component14|component14(){}[0] + final fun component15(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component15|component15(){}[0] + final fun component16(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component16|component16(){}[0] + final fun component17(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component17|component17(){}[0] + final fun component18(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component18|component18(){}[0] + final fun component19(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component19|component19(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component2|component2(){}[0] + final fun component20(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component20|component20(){}[0] + final fun component21(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component21|component21(){}[0] + final fun component22(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component22|component22(){}[0] + final fun component23(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component23|component23(){}[0] + final fun component24(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component24|component24(){}[0] + final fun component25(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component25|component25(){}[0] + final fun component26(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component26|component26(){}[0] + final fun component27(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component27|component27(){}[0] + final fun component28(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component28|component28(){}[0] + final fun component29(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component29|component29(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component3|component3(){}[0] + final fun component30(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component30|component30(){}[0] + final fun component31(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component31|component31(){}[0] + final fun component32(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component32|component32(){}[0] + final fun component33(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component33|component33(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component4|component4(){}[0] + final fun component5(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component5|component5(){}[0] + final fun component6(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component6|component6(){}[0] + final fun component7(): kotlin/Double // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.component9|component9(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Int = ..., kotlin/Long = ..., kotlin/Double = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images = ..., kotlin.collections/List? = ..., kotlin/Long? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ..., kotlin.collections/List? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer? = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Boolean = ..., kotlin.collections/List = ..., kotlin/Long = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.copy|copy(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.Long;kotlin.Double;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images;kotlin.collections.List?;kotlin.Long?;kotlin.String?;kotlin.String?;kotlin.String;kotlin.collections.List?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Trailer?;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.Long;kotlin.String;kotlin.String;kotlin.Boolean;kotlin.collections.List;kotlin.Long){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.equals|equals(kotlin.Any?){}[0] + final fun fixGenres(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.fixGenres|fixGenres(){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.toString|toString(){}[0] + final suspend fun fetchCredits(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.fetchCredits|fetchCredits(){}[0] + final suspend fun fetchRecommendations(): kotlin.collections/ArrayList // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.fetchRecommendations|fetchRecommendations(){}[0] + final suspend fun fetchTrailer(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.fetchTrailer|fetchTrailer(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Media){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Media.Companion.serializer|serializer(){}[0] + } + } + + final class MediaSummary { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.|(kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Double?;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images){}[0] + + final val country // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.country|{}country[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.country.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.id.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.images.|(){}[0] + final val language // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.language.|(){}[0] + final val mediaType // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.mediaType|{}mediaType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.mediaType.|(){}[0] + final val originalTitle // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.originalTitle|{}originalTitle[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.originalTitle.|(){}[0] + final val permalink // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.permalink|{}permalink[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.permalink.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.rating|{}rating[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.rating.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.title|{}title[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.title.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.type|{}type[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.type.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.year.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component10|component10(){}[0] + final fun component11(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component11|component11(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component4|component4(){}[0] + final fun component5(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.component9|component9(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Int? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Images = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.copy|copy(kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Double?;kotlin.String?;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Images){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.MediaSummary){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.MediaSummary.Companion.serializer|serializer(){}[0] + } + } + + final class ShowEpisode { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode|null[0] + constructor (kotlin/Int, kotlin/Int, kotlin/Double, kotlin/Int, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.|(kotlin.Int;kotlin.Int;kotlin.Double;kotlin.Int;kotlin.String){}[0] + + final val episodeNumber // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.episodeNumber|{}episodeNumber[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.episodeNumber.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.id|{}id[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.id.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.rating|{}rating[0] + final fun (): kotlin/Double // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.rating.|(){}[0] + final val releasedAt // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.releasedAt|{}releasedAt[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.releasedAt.|(){}[0] + final val votes // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.votes|{}votes[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.votes.|(){}[0] + + final fun component1(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.component1|component1(){}[0] + final fun component2(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.component2|component2(){}[0] + final fun component3(): kotlin/Double // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.component3|component3(){}[0] + final fun component4(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.component5|component5(){}[0] + final fun copy(kotlin/Int = ..., kotlin/Int = ..., kotlin/Double = ..., kotlin/Int = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.copy|copy(kotlin.Int;kotlin.Int;kotlin.Double;kotlin.Int;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.ShowEpisode){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisode.Companion.serializer|serializer(){}[0] + } + } + + final class ShowEpisodesItem { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem|null[0] + constructor (kotlin/String, kotlin/String, kotlin.collections/List, kotlin/String, kotlin/Int) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.|(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;kotlin.Int){}[0] + + final val episodes // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.episodes|{}episodes[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.episodes.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.name.|(){}[0] + final val releaseDate // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.releaseDate|{}releaseDate[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.releaseDate.|(){}[0] + final val timezone // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.timezone|{}timezone[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.timezone.|(){}[0] + final val total // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.total|{}total[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.total.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.component4|component4(){}[0] + final fun component5(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.component5|component5(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin.collections/List = ..., kotlin/String = ..., kotlin/Int = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.copy|copy(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.ShowEpisodesItem){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.ShowEpisodesItem.Companion.serializer|serializer(){}[0] + } + } + + final class Source { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + + final val image // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.image|{}image[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.image.|(){}[0] + final val link // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.link|{}link[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.link.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.name.|(){}[0] + final val source // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.source|{}source[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.source.|(){}[0] + final val sourceType // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.sourceType|{}sourceType[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.sourceType.|(){}[0] + final val xid // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.xid|{}xid[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.xid.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.component6|component6(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Source){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Source.Companion.serializer|serializer(){}[0] + } + } + + final class Tag { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.|(kotlin.Long;kotlin.String;kotlin.String){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.id.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.name.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.slug|{}slug[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.slug.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.component3|component3(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.copy|copy(kotlin.Long;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Tag){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Tag.Companion.serializer|serializer(){}[0] + } + } + + final class Trailer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer|null[0] + constructor (kotlin/Long? = ...) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.|(kotlin.Long?){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.id|{}id[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.id.|(){}[0] + + final fun component1(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.component1|component1(){}[0] + final fun copy(kotlin/Long? = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.copy|copy(kotlin.Long?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.Trailer){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Trailer.Companion.serializer|serializer(){}[0] + } + } + + final class TrailerDetails { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails|null[0] + constructor (kotlin/Long, kotlin/String) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.|(kotlin.Long;kotlin.String){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.id.|(){}[0] + final val source // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.source|{}source[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.source.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.component2|component2(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.copy|copy(kotlin.Long;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerDetails){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails.Companion.serializer|serializer(){}[0] + } + } + + final class TrailerNode { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode|null[0] + constructor (com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.|(com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerDetails){}[0] + + final val trailerDetails // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.trailerDetails|{}trailerDetails[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.trailerDetails.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerDetails = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.copy|copy(com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerDetails){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerNode){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode.Companion.serializer|serializer(){}[0] + } + } + + final class TrailerRoot { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot|null[0] + constructor (com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.|(com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerNode){}[0] + + final val trailer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.trailer|{}trailer[0] + final fun (): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.trailer.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerNode = ...): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.copy|copy(com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerNode){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot) // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.MyDramaListAPI.TrailerRoot){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.TrailerRoot.Companion.serializer|serializer(){}[0] + } + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion|null[0] + final const val API_HOST // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.API_HOST|{}API_HOST[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.API_HOST.|(){}[0] + final const val SITE_HOST // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.SITE_HOST|{}SITE_HOST[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.SITE_HOST.|(){}[0] + final const val TAG // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.TAG|{}TAG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.TAG.|(){}[0] + + final val API_KEY // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.API_KEY|{}API_KEY[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/MyDramaListAPI.Companion.API_KEY.|(){}[0] + } +} + +abstract class com.lagradost.cloudstream3.plugins/BasePlugin { // com.lagradost.cloudstream3.plugins/BasePlugin|null[0] + constructor () // com.lagradost.cloudstream3.plugins/BasePlugin.|(){}[0] + + final var __filename // com.lagradost.cloudstream3.plugins/BasePlugin.__filename|{}__filename[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.plugins/BasePlugin.__filename.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.plugins/BasePlugin.__filename.|(kotlin.String?){}[0] + final var filename // com.lagradost.cloudstream3.plugins/BasePlugin.filename|{}filename[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.plugins/BasePlugin.filename.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.plugins/BasePlugin.filename.|(kotlin.String?){}[0] + + final fun registerExtractorAPI(com.lagradost.cloudstream3.utils/ExtractorApi) // com.lagradost.cloudstream3.plugins/BasePlugin.registerExtractorAPI|registerExtractorAPI(com.lagradost.cloudstream3.utils.ExtractorApi){}[0] + final fun registerMainAPI(com.lagradost.cloudstream3/MainAPI) // com.lagradost.cloudstream3.plugins/BasePlugin.registerMainAPI|registerMainAPI(com.lagradost.cloudstream3.MainAPI){}[0] + open fun beforeUnload() // com.lagradost.cloudstream3.plugins/BasePlugin.beforeUnload|beforeUnload(){}[0] + open fun load() // com.lagradost.cloudstream3.plugins/BasePlugin.load|load(){}[0] + + final class Manifest { // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest|null[0] + constructor () // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.|(){}[0] + + final var name // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.name.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.name.|(kotlin.String?){}[0] + final var pluginClassName // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.pluginClassName|{}pluginClassName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.pluginClassName.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.pluginClassName.|(kotlin.String?){}[0] + final var requiresResources // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.requiresResources|{}requiresResources[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.requiresResources.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.requiresResources.|(kotlin.Boolean){}[0] + final var version // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.version|{}version[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.version.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.version.|(kotlin.Int?){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.plugins/BasePlugin.Manifest // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.plugins/BasePlugin.Manifest) // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.plugins.BasePlugin.Manifest){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.plugins/BasePlugin.Manifest.Companion.serializer|serializer(){}[0] + } + } +} + +abstract class com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.utils/ExtractorApi|null[0] + constructor () // com.lagradost.cloudstream3.utils/ExtractorApi.|(){}[0] + + abstract val mainUrl // com.lagradost.cloudstream3.utils/ExtractorApi.mainUrl|{}mainUrl[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorApi.mainUrl.|(){}[0] + abstract val name // com.lagradost.cloudstream3.utils/ExtractorApi.name|{}name[0] + abstract fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorApi.name.|(){}[0] + abstract val requiresReferer // com.lagradost.cloudstream3.utils/ExtractorApi.requiresReferer|{}requiresReferer[0] + abstract fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/ExtractorApi.requiresReferer.|(){}[0] + + final var sourcePlugin // com.lagradost.cloudstream3.utils/ExtractorApi.sourcePlugin|{}sourcePlugin[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/ExtractorApi.sourcePlugin.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.utils/ExtractorApi.sourcePlugin.|(kotlin.String?){}[0] + + final suspend fun getSafeUrl(kotlin/String, kotlin/String? = ..., kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.utils/ExtractorApi.getSafeUrl|getSafeUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + open fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorApi.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String? = ...): kotlin.collections/List? // com.lagradost.cloudstream3.utils/ExtractorApi.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String? = ..., kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.utils/ExtractorApi.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +abstract class com.lagradost.cloudstream3/MainAPI { // com.lagradost.cloudstream3/MainAPI|null[0] + constructor () // com.lagradost.cloudstream3/MainAPI.|(){}[0] + + open val getMainPageTimeoutMs // com.lagradost.cloudstream3/MainAPI.getMainPageTimeoutMs|{}getMainPageTimeoutMs[0] + open fun (): kotlin/Long? // com.lagradost.cloudstream3/MainAPI.getMainPageTimeoutMs.|(){}[0] + open val hasChromecastSupport // com.lagradost.cloudstream3/MainAPI.hasChromecastSupport|{}hasChromecastSupport[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.hasChromecastSupport.|(){}[0] + open val hasDownloadSupport // com.lagradost.cloudstream3/MainAPI.hasDownloadSupport|{}hasDownloadSupport[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.hasDownloadSupport.|(){}[0] + open val hasMainPage // com.lagradost.cloudstream3/MainAPI.hasMainPage|{}hasMainPage[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.hasMainPage.|(){}[0] + open val hasQuickSearch // com.lagradost.cloudstream3/MainAPI.hasQuickSearch|{}hasQuickSearch[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.hasQuickSearch.|(){}[0] + open val instantLinkLoading // com.lagradost.cloudstream3/MainAPI.instantLinkLoading|{}instantLinkLoading[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.instantLinkLoading.|(){}[0] + open val loadLinksTimeoutMs // com.lagradost.cloudstream3/MainAPI.loadLinksTimeoutMs|{}loadLinksTimeoutMs[0] + open fun (): kotlin/Long? // com.lagradost.cloudstream3/MainAPI.loadLinksTimeoutMs.|(){}[0] + open val loadTimeoutMs // com.lagradost.cloudstream3/MainAPI.loadTimeoutMs|{}loadTimeoutMs[0] + open fun (): kotlin/Long? // com.lagradost.cloudstream3/MainAPI.loadTimeoutMs.|(){}[0] + open val mainPage // com.lagradost.cloudstream3/MainAPI.mainPage|{}mainPage[0] + open fun (): kotlin.collections/List // com.lagradost.cloudstream3/MainAPI.mainPage.|(){}[0] + open val providerType // com.lagradost.cloudstream3/MainAPI.providerType|{}providerType[0] + open fun (): com.lagradost.cloudstream3/ProviderType // com.lagradost.cloudstream3/MainAPI.providerType.|(){}[0] + open val quickSearchTimeoutMs // com.lagradost.cloudstream3/MainAPI.quickSearchTimeoutMs|{}quickSearchTimeoutMs[0] + open fun (): kotlin/Long? // com.lagradost.cloudstream3/MainAPI.quickSearchTimeoutMs.|(){}[0] + open val searchTimeoutMs // com.lagradost.cloudstream3/MainAPI.searchTimeoutMs|{}searchTimeoutMs[0] + open fun (): kotlin/Long? // com.lagradost.cloudstream3/MainAPI.searchTimeoutMs.|(){}[0] + open val supportedSyncNames // com.lagradost.cloudstream3/MainAPI.supportedSyncNames|{}supportedSyncNames[0] + open fun (): kotlin.collections/Set // com.lagradost.cloudstream3/MainAPI.supportedSyncNames.|(){}[0] + open val supportedTypes // com.lagradost.cloudstream3/MainAPI.supportedTypes|{}supportedTypes[0] + open fun (): kotlin.collections/Set // com.lagradost.cloudstream3/MainAPI.supportedTypes.|(){}[0] + open val usesWebView // com.lagradost.cloudstream3/MainAPI.usesWebView|{}usesWebView[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.usesWebView.|(){}[0] + open val vpnStatus // com.lagradost.cloudstream3/MainAPI.vpnStatus|{}vpnStatus[0] + open fun (): com.lagradost.cloudstream3/VPNStatus // com.lagradost.cloudstream3/MainAPI.vpnStatus.|(){}[0] + + final var lastHomepageRequest // com.lagradost.cloudstream3/MainAPI.lastHomepageRequest|{}lastHomepageRequest[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3/MainAPI.lastHomepageRequest.|(){}[0] + final fun (kotlin/Long) // com.lagradost.cloudstream3/MainAPI.lastHomepageRequest.|(kotlin.Long){}[0] + final var sourcePlugin // com.lagradost.cloudstream3/MainAPI.sourcePlugin|{}sourcePlugin[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MainAPI.sourcePlugin.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MainAPI.sourcePlugin.|(kotlin.String?){}[0] + open var canBeOverridden // com.lagradost.cloudstream3/MainAPI.canBeOverridden|{}canBeOverridden[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.canBeOverridden.|(){}[0] + open fun (kotlin/Boolean) // com.lagradost.cloudstream3/MainAPI.canBeOverridden.|(kotlin.Boolean){}[0] + open var lang // com.lagradost.cloudstream3/MainAPI.lang|{}lang[0] + open fun (): kotlin/String // com.lagradost.cloudstream3/MainAPI.lang.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3/MainAPI.lang.|(kotlin.String){}[0] + open var mainUrl // com.lagradost.cloudstream3/MainAPI.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3/MainAPI.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3/MainAPI.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3/MainAPI.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3/MainAPI.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3/MainAPI.name.|(kotlin.String){}[0] + open var sequentialMainPage // com.lagradost.cloudstream3/MainAPI.sequentialMainPage|{}sequentialMainPage[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.sequentialMainPage.|(){}[0] + open fun (kotlin/Boolean) // com.lagradost.cloudstream3/MainAPI.sequentialMainPage.|(kotlin.Boolean){}[0] + open var sequentialMainPageDelay // com.lagradost.cloudstream3/MainAPI.sequentialMainPageDelay|{}sequentialMainPageDelay[0] + open fun (): kotlin/Long // com.lagradost.cloudstream3/MainAPI.sequentialMainPageDelay.|(){}[0] + open fun (kotlin/Long) // com.lagradost.cloudstream3/MainAPI.sequentialMainPageDelay.|(kotlin.Long){}[0] + open var sequentialMainPageScrollDelay // com.lagradost.cloudstream3/MainAPI.sequentialMainPageScrollDelay|{}sequentialMainPageScrollDelay[0] + open fun (): kotlin/Long // com.lagradost.cloudstream3/MainAPI.sequentialMainPageScrollDelay.|(){}[0] + open fun (kotlin/Long) // com.lagradost.cloudstream3/MainAPI.sequentialMainPageScrollDelay.|(kotlin.Long){}[0] + open var storedCredentials // com.lagradost.cloudstream3/MainAPI.storedCredentials|{}storedCredentials[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3/MainAPI.storedCredentials.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3/MainAPI.storedCredentials.|(kotlin.String?){}[0] + + final fun init() // com.lagradost.cloudstream3/MainAPI.init|init(){}[0] + final fun overrideWithNewData(com.lagradost.cloudstream3/ProvidersInfoJson) // com.lagradost.cloudstream3/MainAPI.overrideWithNewData|overrideWithNewData(com.lagradost.cloudstream3.ProvidersInfoJson){}[0] + open fun getVideoInterceptor(com.lagradost.cloudstream3.utils/ExtractorLink): com.lagradost.nicehttp/Interceptor? // com.lagradost.cloudstream3/MainAPI.getVideoInterceptor|getVideoInterceptor(com.lagradost.cloudstream3.utils.ExtractorLink){}[0] + open suspend fun extractorVerifierJob(kotlin/String?) // com.lagradost.cloudstream3/MainAPI.extractorVerifierJob|extractorVerifierJob(kotlin.String?){}[0] + open suspend fun getLoadUrl(com.lagradost.cloudstream3.syncproviders/SyncIdName, kotlin/String): kotlin/String? // com.lagradost.cloudstream3/MainAPI.getLoadUrl|getLoadUrl(com.lagradost.cloudstream3.syncproviders.SyncIdName;kotlin.String){}[0] + open suspend fun getMainPage(kotlin/Int, com.lagradost.cloudstream3/MainPageRequest): com.lagradost.cloudstream3/HomePageResponse? // com.lagradost.cloudstream3/MainAPI.getMainPage|getMainPage(kotlin.Int;com.lagradost.cloudstream3.MainPageRequest){}[0] + open suspend fun load(kotlin/String): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3/MainAPI.load|load(kotlin.String){}[0] + open suspend fun loadLinks(kotlin/String, kotlin/Boolean, kotlin/Function1, kotlin/Function1): kotlin/Boolean // com.lagradost.cloudstream3/MainAPI.loadLinks|loadLinks(kotlin.String;kotlin.Boolean;kotlin.Function1;kotlin.Function1){}[0] + open suspend fun quickSearch(kotlin/String): kotlin.collections/List? // com.lagradost.cloudstream3/MainAPI.quickSearch|quickSearch(kotlin.String){}[0] + open suspend fun search(kotlin/String): kotlin.collections/List? // com.lagradost.cloudstream3/MainAPI.search|search(kotlin.String){}[0] + open suspend fun search(kotlin/String, kotlin/Int): com.lagradost.cloudstream3/SearchResponseList? // com.lagradost.cloudstream3/MainAPI.search|search(kotlin.String;kotlin.Int){}[0] + + final object Companion { // com.lagradost.cloudstream3/MainAPI.Companion|null[0] + final var overrideData // com.lagradost.cloudstream3/MainAPI.Companion.overrideData|{}overrideData[0] + final fun (): kotlin.collections/HashMap? // com.lagradost.cloudstream3/MainAPI.Companion.overrideData.|(){}[0] + final fun (kotlin.collections/HashMap?) // com.lagradost.cloudstream3/MainAPI.Companion.overrideData.|(kotlin.collections.HashMap?){}[0] + final var settingsForProvider // com.lagradost.cloudstream3/MainAPI.Companion.settingsForProvider|{}settingsForProvider[0] + final fun (): com.lagradost.cloudstream3/SettingsJson // com.lagradost.cloudstream3/MainAPI.Companion.settingsForProvider.|(){}[0] + final fun (com.lagradost.cloudstream3/SettingsJson) // com.lagradost.cloudstream3/MainAPI.Companion.settingsForProvider.|(com.lagradost.cloudstream3.SettingsJson){}[0] + } +} + +final class <#A: kotlin/Any?> com.lagradost.cloudstream3.utils/AtomicMutableList : com.lagradost.cloudstream3.utils/AtomicList<#A>, kotlin.collections/MutableList<#A> { // com.lagradost.cloudstream3.utils/AtomicMutableList|null[0] + constructor (kotlin.collections/MutableList<#A> = ...) // com.lagradost.cloudstream3.utils/AtomicMutableList.|(kotlin.collections.MutableList<1:0>){}[0] + + final fun add(#A): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.add|add(1:0){}[0] + final fun add(kotlin/Int, #A) // com.lagradost.cloudstream3.utils/AtomicMutableList.add|add(kotlin.Int;1:0){}[0] + final fun addAll(kotlin.collections/Collection<#A>): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.addAll|addAll(kotlin.collections.Collection<1:0>){}[0] + final fun addAll(kotlin/Int, kotlin.collections/Collection<#A>): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.addAll|addAll(kotlin.Int;kotlin.collections.Collection<1:0>){}[0] + final fun clear() // com.lagradost.cloudstream3.utils/AtomicMutableList.clear|clear(){}[0] + final fun iterator(): kotlin.collections/MutableIterator<#A> // com.lagradost.cloudstream3.utils/AtomicMutableList.iterator|iterator(){}[0] + final fun listIterator(): kotlin.collections/MutableListIterator<#A> // com.lagradost.cloudstream3.utils/AtomicMutableList.listIterator|listIterator(){}[0] + final fun listIterator(kotlin/Int): kotlin.collections/MutableListIterator<#A> // com.lagradost.cloudstream3.utils/AtomicMutableList.listIterator|listIterator(kotlin.Int){}[0] + final fun remove(#A): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.remove|remove(1:0){}[0] + final fun removeAll(kotlin.collections/Collection<#A>): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.removeAll|removeAll(kotlin.collections.Collection<1:0>){}[0] + final fun removeAt(kotlin/Int): #A // com.lagradost.cloudstream3.utils/AtomicMutableList.removeAt|removeAt(kotlin.Int){}[0] + final fun retainAll(kotlin.collections/Collection<#A>): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicMutableList.retainAll|retainAll(kotlin.collections.Collection<1:0>){}[0] + final fun set(kotlin/Int, #A): #A // com.lagradost.cloudstream3.utils/AtomicMutableList.set|set(kotlin.Int;1:0){}[0] + final fun subList(kotlin/Int, kotlin/Int): kotlin.collections/MutableList<#A> // com.lagradost.cloudstream3.utils/AtomicMutableList.subList|subList(kotlin.Int;kotlin.Int){}[0] +} + +final class com.lagradost.cloudstream3.extractors.helper/AsianEmbedHelper { // com.lagradost.cloudstream3.extractors.helper/AsianEmbedHelper|null[0] + constructor () // com.lagradost.cloudstream3.extractors.helper/AsianEmbedHelper.|(){}[0] + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/AsianEmbedHelper.Companion|null[0] + final suspend fun getUrls(kotlin/String, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors.helper/AsianEmbedHelper.Companion.getUrls|getUrls(kotlin.String;kotlin.Function1;kotlin.Function1){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors.helper/VstreamhubHelper { // com.lagradost.cloudstream3.extractors.helper/VstreamhubHelper|null[0] + constructor () // com.lagradost.cloudstream3.extractors.helper/VstreamhubHelper.|(){}[0] + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/VstreamhubHelper.Companion|null[0] + final suspend fun getUrls(kotlin/String, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors.helper/VstreamhubHelper.Companion.getUrls|getUrls(kotlin.String;kotlin.Function1;kotlin.Function1){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors.helper/WcoHelper { // com.lagradost.cloudstream3.extractors.helper/WcoHelper|null[0] + constructor () // com.lagradost.cloudstream3.extractors.helper/WcoHelper.|(){}[0] + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion|null[0] + final suspend fun getNewWcoKey(): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.getNewWcoKey|getNewWcoKey(){}[0] + final suspend fun getWcoKey(): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.getWcoKey|getWcoKey(){}[0] + + final class ExternalKeys { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.|(kotlin.String?;kotlin.String?){}[0] + + final val wcoKey // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.wcoKey|{}wcoKey[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.wcoKey.|(){}[0] + final val wcocipher // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.wcocipher|{}wcocipher[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.wcocipher.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys) // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.WcoHelper.Companion.ExternalKeys){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.ExternalKeys.Companion.serializer|serializer(){}[0] + } + } + + final class NewExternalKeys { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val cipherkey // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.cipherkey|{}cipherkey[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.cipherkey.|(){}[0] + final val encryptKey // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.encryptKey|{}encryptKey[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.encryptKey.|(){}[0] + final val mainKey // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.mainKey|{}mainKey[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.mainKey.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys) // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.WcoHelper.Companion.NewExternalKeys){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/WcoHelper.Companion.NewExternalKeys.Companion.serializer|serializer(){}[0] + } + } + } +} + +final class com.lagradost.cloudstream3.extractors/Ahvsh : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Ahvsh|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ahvsh.|(){}[0] + + final val name // com.lagradost.cloudstream3.extractors/Ahvsh.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ahvsh.name.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Ahvsh.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ahvsh.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Ahvsh.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Aico : com.lagradost.cloudstream3.extractors/Hxfile { // com.lagradost.cloudstream3.extractors/Aico|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Aico.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Aico.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Aico.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Aico.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Aico.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Asnwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Asnwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Asnwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Asnwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Asnwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Asnwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Asnwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Auvexiug : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Auvexiug|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Auvexiug.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Auvexiug.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Auvexiug.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Auvexiug.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Auvexiug.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Awish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Awish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Awish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Awish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Awish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Awish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Awish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/BgwpCC : com.lagradost.cloudstream3.extractors/BigwarpIO { // com.lagradost.cloudstream3.extractors/BgwpCC|null[0] + constructor () // com.lagradost.cloudstream3.extractors/BgwpCC.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/BgwpCC.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/BgwpCC.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/BgwpCC.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/BigwarpArt : com.lagradost.cloudstream3.extractors/BigwarpIO { // com.lagradost.cloudstream3.extractors/BigwarpArt|null[0] + constructor () // com.lagradost.cloudstream3.extractors/BigwarpArt.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/BigwarpArt.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/BigwarpArt.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/BigwarpArt.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/ByseBuho : com.lagradost.cloudstream3.extractors/ByseSX { // com.lagradost.cloudstream3.extractors/ByseBuho|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ByseBuho.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/ByseBuho.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseBuho.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseBuho.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/ByseBuho.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseBuho.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseBuho.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/ByseQekaho : com.lagradost.cloudstream3.extractors/ByseSX { // com.lagradost.cloudstream3.extractors/ByseQekaho|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ByseQekaho.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/ByseQekaho.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseQekaho.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseQekaho.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/ByseQekaho.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseQekaho.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseQekaho.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/ByseVepoin : com.lagradost.cloudstream3.extractors/ByseSX { // com.lagradost.cloudstream3.extractors/ByseVepoin|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ByseVepoin.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/ByseVepoin.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseVepoin.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseVepoin.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/ByseVepoin.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseVepoin.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseVepoin.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Bysezejataos : com.lagradost.cloudstream3.extractors/ByseSX { // com.lagradost.cloudstream3.extractors/Bysezejataos|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Bysezejataos.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Bysezejataos.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Bysezejataos.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Bysezejataos.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Bysezejataos.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Bysezejataos.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Bysezejataos.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Cavanhabg : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Cavanhabg|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Cavanhabg.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Cavanhabg.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cavanhabg.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Cavanhabg.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cavanhabg.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Cdnplayer : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Cdnplayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Cdnplayer.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Cdnplayer.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cdnplayer.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Cdnplayer.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cdnplayer.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/CdnwishCom : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/CdnwishCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/CdnwishCom.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/CdnwishCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CdnwishCom.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/CdnwishCom.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CdnwishCom.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/CsstOnline : com.lagradost.cloudstream3.extractors/SecvideoOnline { // com.lagradost.cloudstream3.extractors/CsstOnline|null[0] + constructor () // com.lagradost.cloudstream3.extractors/CsstOnline.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/CsstOnline.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CsstOnline.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/CsstOnline.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CsstOnline.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/D0000d : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/D0000d|null[0] + constructor () // com.lagradost.cloudstream3.extractors/D0000d.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/D0000d.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/D0000d.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/D0000d.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/D000dCom : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/D000dCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/D000dCom.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/D000dCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/D000dCom.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/D000dCom.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DBfilm : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/DBfilm|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DBfilm.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DBfilm.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DBfilm.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DBfilm.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DBfilm.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DatabaseGdrive : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/DatabaseGdrive|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DatabaseGdrive.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DatabaseGdrive.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DatabaseGdrive.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DatabaseGdrive.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DatabaseGdrive2 : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/DatabaseGdrive2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DatabaseGdrive2.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DatabaseGdrive2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DatabaseGdrive2.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DatabaseGdrive2.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DecryptKeys { // com.lagradost.cloudstream3.extractors/DecryptKeys|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/DecryptKeys.|(kotlin.String;kotlin.String;kotlin.String){}[0] + + final val edge1 // com.lagradost.cloudstream3.extractors/DecryptKeys.edge1|{}edge1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.edge1.|(){}[0] + final val edge2 // com.lagradost.cloudstream3.extractors/DecryptKeys.edge2|{}edge2[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.edge2.|(){}[0] + final val legacyFallback // com.lagradost.cloudstream3.extractors/DecryptKeys.legacyFallback|{}legacyFallback[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.legacyFallback.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/DecryptKeys // com.lagradost.cloudstream3.extractors/DecryptKeys.copy|copy(kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/DecryptKeys.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/DecryptKeys.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/DecryptKeys.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/DecryptKeys // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/DecryptKeys) // com.lagradost.cloudstream3.extractors/DecryptKeys.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.DecryptKeys){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/DecryptKeys.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/DecryptKeys.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/DesuArcg : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/DesuArcg|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DesuArcg.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DesuArcg.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuArcg.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DesuArcg.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuArcg.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DesuDrive : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/DesuDrive|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DesuDrive.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DesuDrive.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuDrive.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DesuDrive.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuDrive.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DesuOdchan : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/DesuOdchan|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DesuOdchan.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DesuOdchan.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuOdchan.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DesuOdchan.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuOdchan.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DesuOdvip : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/DesuOdvip|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DesuOdvip.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DesuOdvip.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuOdvip.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DesuOdvip.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DesuOdvip.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DetailsRoot { // com.lagradost.cloudstream3.extractors/DetailsRoot|null[0] + constructor (kotlin/Long, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Boolean, kotlin/String) // com.lagradost.cloudstream3.extractors/DetailsRoot.|(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Boolean;kotlin.String){}[0] + + final val code // com.lagradost.cloudstream3.extractors/DetailsRoot.code|{}code[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.code.|(){}[0] + final val createdAt // com.lagradost.cloudstream3.extractors/DetailsRoot.createdAt|{}createdAt[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.createdAt.|(){}[0] + final val description // com.lagradost.cloudstream3.extractors/DetailsRoot.description|{}description[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.description.|(){}[0] + final val embedFrameUrl // com.lagradost.cloudstream3.extractors/DetailsRoot.embedFrameUrl|{}embedFrameUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.embedFrameUrl.|(){}[0] + final val id // com.lagradost.cloudstream3.extractors/DetailsRoot.id|{}id[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.extractors/DetailsRoot.id.|(){}[0] + final val ownerPrivate // com.lagradost.cloudstream3.extractors/DetailsRoot.ownerPrivate|{}ownerPrivate[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/DetailsRoot.ownerPrivate.|(){}[0] + final val posterUrl // com.lagradost.cloudstream3.extractors/DetailsRoot.posterUrl|{}posterUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.posterUrl.|(){}[0] + final val title // com.lagradost.cloudstream3.extractors/DetailsRoot.title|{}title[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.title.|(){}[0] + + final fun component1(): kotlin/Long // com.lagradost.cloudstream3.extractors/DetailsRoot.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component6|component6(){}[0] + final fun component7(): kotlin/Boolean // com.lagradost.cloudstream3.extractors/DetailsRoot.component7|component7(){}[0] + final fun component8(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.component8|component8(){}[0] + final fun copy(kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Boolean = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/DetailsRoot // com.lagradost.cloudstream3.extractors/DetailsRoot.copy|copy(kotlin.Long;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Boolean;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/DetailsRoot.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/DetailsRoot.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/DetailsRoot.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/DetailsRoot // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/DetailsRoot) // com.lagradost.cloudstream3.extractors/DetailsRoot.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.DetailsRoot){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/DetailsRoot.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/DetailsRoot.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/Dhcplay : com.lagradost.cloudstream3.extractors/CineMMRedirect { // com.lagradost.cloudstream3.extractors/Dhcplay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dhcplay.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Dhcplay.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dhcplay.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dhtpre : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Dhtpre|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dhtpre.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Dhtpre.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dhtpre.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Dhtpre.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Dhtpre.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dhtpre.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Dhtpre.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dokicloud : com.lagradost.cloudstream3.extractors/Rabbitstream { // com.lagradost.cloudstream3.extractors/Dokicloud|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dokicloud.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Dokicloud.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dokicloud.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Dokicloud.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dokicloud.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodCxExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodCxExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodCxExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodCxExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodCxExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodCxExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodLiExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodLiExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodLiExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodLiExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodLiExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodLiExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodPmExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodPmExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodPmExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodPmExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodPmExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodPmExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodShExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodShExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodShExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodShExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodShExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodShExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodSoExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodSoExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodSoExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodSoExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodSoExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodSoExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodToExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodToExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodToExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodToExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodToExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodToExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodWatchExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodWatchExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodWatchExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodWatchExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodWatchExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodWatchExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodWfExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodWfExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodWfExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodWfExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodWfExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodWfExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodWsExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodWsExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodWsExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodWsExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodWsExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodWsExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodYtExtractor : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodYtExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodYtExtractor.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodYtExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodYtExtractor.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodYtExtractor.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Doodporn : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Doodporn|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Doodporn.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Doodporn.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Doodporn.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Doodporn.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Doodporn.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Doodspro : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Doodspro|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Doodspro.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Doodspro.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Doodspro.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Doodspro.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DoodstreamCom : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/DoodstreamCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodstreamCom.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/DoodstreamCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodstreamCom.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodstreamCom.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dooood : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Dooood|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dooood.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Dooood.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dooood.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Dooood.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ds2play : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Ds2play|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ds2play.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Ds2play.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ds2play.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Ds2play.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ds2video : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Ds2video|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ds2video.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Ds2video.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ds2video.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Ds2video.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/DsstOnline : com.lagradost.cloudstream3.extractors/SecvideoOnline { // com.lagradost.cloudstream3.extractors/DsstOnline|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DsstOnline.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/DsstOnline.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DsstOnline.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/DsstOnline.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DsstOnline.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dsvplay : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Dsvplay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dsvplay.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Dsvplay.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dsvplay.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Dsvplay.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dumbalag : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Dumbalag|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dumbalag.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Dumbalag.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dumbalag.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Dumbalag.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dumbalag.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Dwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Dwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Dwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Dwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Evoload1 : com.lagradost.cloudstream3.extractors/Evoload { // com.lagradost.cloudstream3.extractors/Evoload1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Evoload1.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Evoload1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Evoload1.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Evoload1.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ewish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Ewish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ewish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Ewish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ewish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Ewish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ewish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FEmbed : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/FEmbed|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FEmbed.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/FEmbed.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FEmbed.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/FEmbed.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FEmbed.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FEnet : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/FEnet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FEnet.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/FEnet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FEnet.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/FEnet.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FEnet.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FeHD : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/FeHD|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FeHD.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/FeHD.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FeHD.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/FeHD.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FeHD.name.|(){}[0] + + final var domainUrl // com.lagradost.cloudstream3.extractors/FeHD.domainUrl|{}domainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FeHD.domainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FeHD.domainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Fembed9hd : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Fembed9hd|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Fembed9hd.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Fembed9hd.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fembed9hd.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Fembed9hd.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Fembed9hd.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fembed9hd.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Fembed9hd.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FileMoon : com.lagradost.cloudstream3.extractors/FilemoonV2 { // com.lagradost.cloudstream3.extractors/FileMoon|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FileMoon.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FileMoon.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoon.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoon.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FileMoon.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoon.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoon.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FileMoonIn : com.lagradost.cloudstream3.extractors/FilemoonV2 { // com.lagradost.cloudstream3.extractors/FileMoonIn|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FileMoonIn.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FileMoonIn.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoonIn.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoonIn.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FileMoonIn.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoonIn.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoonIn.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FileMoonSx : com.lagradost.cloudstream3.extractors/FilemoonV2 { // com.lagradost.cloudstream3.extractors/FileMoonSx|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FileMoonSx.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FileMoonSx.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoonSx.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoonSx.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FileMoonSx.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FileMoonSx.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FileMoonSx.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Firestream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Firestream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Firestream.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Firestream.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Firestream.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Firestream.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Firestream.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/Firestream.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Firestream.requiresReferer.|(){}[0] + + final fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/Firestream.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + final suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Firestream.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FlaswishCom : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/FlaswishCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FlaswishCom.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/FlaswishCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FlaswishCom.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/FlaswishCom.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FlaswishCom.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FourCX : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/FourCX|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FourCX.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FourCX.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourCX.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourCX.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FourCX.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourCX.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourCX.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FourPichive : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/FourPichive|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FourPichive.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FourPichive.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourPichive.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourPichive.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FourPichive.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourPichive.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourPichive.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FourPlayRu : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/FourPlayRu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FourPlayRu.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/FourPlayRu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourPlayRu.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourPlayRu.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/FourPlayRu.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FourPlayRu.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FourPlayRu.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Fplayer : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Fplayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Fplayer.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Fplayer.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fplayer.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Fplayer.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fplayer.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/FsstOnline : com.lagradost.cloudstream3.extractors/SecvideoOnline { // com.lagradost.cloudstream3.extractors/FsstOnline|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FsstOnline.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/FsstOnline.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FsstOnline.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/FsstOnline.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FsstOnline.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerapi : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerapi|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerapi.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerapi.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerapi.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerapp : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerapp|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerapp.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerapp.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerapp.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerbiz : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerbiz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerbiz.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerbiz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerbiz.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerco : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerco|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerco.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerco.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerco.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerfun : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerfun|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerfun.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerfun.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerfun.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerio : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerio|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerio.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerio.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerio.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerme : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerme|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerme.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerme.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerme.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerorg : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerorg|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerorg.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerorg.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerorg.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Gdriveplayerus : com.lagradost.cloudstream3.extractors/Gdriveplayer { // com.lagradost.cloudstream3.extractors/Gdriveplayerus|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayerus.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayerus.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayerus.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Geodailymotion : com.lagradost.cloudstream3.extractors/Dailymotion { // com.lagradost.cloudstream3.extractors/Geodailymotion|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Geodailymotion.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Geodailymotion.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Geodailymotion.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Geodailymotion.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Geodailymotion.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/GoodstreamExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/GoodstreamExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.mainUrl.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.requiresReferer.|(){}[0] + + final var name // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.name.|(kotlin.String){}[0] + + final suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/GoodstreamExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Guccihide : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Guccihide|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Guccihide.|(){}[0] + + final val name // com.lagradost.cloudstream3.extractors/Guccihide.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Guccihide.name.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Guccihide.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Guccihide.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Guccihide.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Guxhag : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Guxhag|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Guxhag.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Guxhag.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Guxhag.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Guxhag.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Guxhag.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/HDStreamAble : com.lagradost.cloudstream3.extractors/PeaceMakerst { // com.lagradost.cloudstream3.extractors/HDStreamAble|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HDStreamAble.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/HDStreamAble.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDStreamAble.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/HDStreamAble.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/HDStreamAble.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDStreamAble.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/HDStreamAble.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Habetar : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Habetar|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Habetar.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Habetar.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Habetar.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Habetar.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Habetar.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Haxloppd : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Haxloppd|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Haxloppd.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Haxloppd.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Haxloppd.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Haxloppd.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Haxloppd.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Hgcloudto : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Hgcloudto|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Hgcloudto.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Hgcloudto.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hgcloudto.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Hgcloudto.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hgcloudto.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/HglinkTo : com.lagradost.cloudstream3.extractors/CineMMRedirect { // com.lagradost.cloudstream3.extractors/HglinkTo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HglinkTo.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/HglinkTo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HglinkTo.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/HgplayCDN : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/HgplayCDN|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HgplayCDN.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/HgplayCDN.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HgplayCDN.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/HgplayCDN.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HgplayCDN.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/HlsWish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/HlsWish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HlsWish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/HlsWish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HlsWish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/HlsWish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HlsWish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Hotlinger : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/Hotlinger|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Hotlinger.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Hotlinger.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hotlinger.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Hotlinger.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Hotlinger.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hotlinger.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Hotlinger.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/HubCloud : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/HubCloud|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HubCloud.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/HubCloud.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HubCloud.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/HubCloud.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HubCloud.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/HubCloud.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/HubCloud.requiresReferer.|(){}[0] + + final fun cleanTitle(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/HubCloud.cleanTitle|cleanTitle(kotlin.String){}[0] + final suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/HubCloud.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Jodwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Jodwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Jodwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Jodwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Jodwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Jodwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Jodwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Keephealth : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Keephealth|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Keephealth.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Keephealth.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Keephealth.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Keephealth.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Keephealth.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Keephealth.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Keephealth.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/KotakAnimeid : com.lagradost.cloudstream3.extractors/Hxfile { // com.lagradost.cloudstream3.extractors/KotakAnimeid|null[0] + constructor () // com.lagradost.cloudstream3.extractors/KotakAnimeid.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/KotakAnimeid.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/KotakAnimeid.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/KotakAnimeid.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/KotakAnimeid.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/KotakAnimeid.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/KotakAnimeid.requiresReferer.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Kotakajair : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Kotakajair|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Kotakajair.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Kotakajair.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Kotakajair.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Kotakajair.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Kotakajair.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Kswplayer : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Kswplayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Kswplayer.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Kswplayer.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Kswplayer.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Kswplayer.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Kswplayer.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/LayarKaca : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/LayarKaca|null[0] + constructor () // com.lagradost.cloudstream3.extractors/LayarKaca.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/LayarKaca.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/LayarKaca.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/LayarKaca.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/LayarKaca.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Lulustream1 : com.lagradost.cloudstream3.extractors/LuluStream { // com.lagradost.cloudstream3.extractors/Lulustream1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Lulustream1.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Lulustream1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lulustream1.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Lulustream1.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lulustream1.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Lulustream2 : com.lagradost.cloudstream3.extractors/LuluStream { // com.lagradost.cloudstream3.extractors/Lulustream2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Lulustream2.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Lulustream2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lulustream2.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Lulustream2.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lulustream2.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Luluvdoo : com.lagradost.cloudstream3.extractors/LuluStream { // com.lagradost.cloudstream3.extractors/Luluvdoo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Luluvdoo.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Luluvdoo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Luluvdoo.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Luluvdoo.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Luxubu : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Luxubu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Luxubu.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Luxubu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Luxubu.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Luxubu.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Luxubu.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Lvturbo : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Lvturbo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Lvturbo.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Lvturbo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lvturbo.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Lvturbo.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Lvturbo.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Lvturbo.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Lvturbo.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Mdy : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/Mdy|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Mdy.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Mdy.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mdy.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Mdy.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Megacloud : com.lagradost.cloudstream3.extractors/Rabbitstream { // com.lagradost.cloudstream3.extractors/Megacloud|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Megacloud.|(){}[0] + + final val embed // com.lagradost.cloudstream3.extractors/Megacloud.embed|{}embed[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Megacloud.embed.|(){}[0] + final val mainUrl // com.lagradost.cloudstream3.extractors/Megacloud.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Megacloud.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Megacloud.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Megacloud.name.|(){}[0] + + final suspend fun extractRealKey(kotlin/String): kotlin/Pair // com.lagradost.cloudstream3.extractors/Megacloud.extractRealKey|extractRealKey(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Meownime : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/Meownime|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Meownime.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Meownime.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Meownime.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Meownime.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Meownime.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MetaGnathTuggers : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/MetaGnathTuggers|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MetaGnathTuggers.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/MetaGnathTuggers.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MetaGnathTuggers.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/MetaGnathTuggers.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MetaGnathTuggers.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropAg : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropAg|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropAg.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropAg.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropAg.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropAg.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropBz : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropBz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropBz.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropBz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropBz.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropBz.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropCh : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropCh|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropCh.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropCh.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropCh.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropCh.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropPs : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropPs|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropPs.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropPs.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropPs.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropPs.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropSi : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropSi|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropSi.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropSi.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropSi.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropSi.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MixDropTo : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MixDropTo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDropTo.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MixDropTo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDropTo.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDropTo.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Movhide : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Movhide|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Movhide.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Movhide.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Movhide.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Movhide.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Movhide.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Movhide.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Movhide.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MoviehabNet : com.lagradost.cloudstream3.extractors/Moviehab { // com.lagradost.cloudstream3.extractors/MoviehabNet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MoviehabNet.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MoviehabNet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MoviehabNet.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MoviehabNet.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Moviesm4u : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Moviesm4u|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Moviesm4u.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Moviesm4u.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Moviesm4u.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Moviesm4u.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Moviesm4u.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Multimovies : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Multimovies|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Multimovies.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Multimovies.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Multimovies.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Multimovies.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Multimovies.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Multimoviesshg : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Multimoviesshg|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Multimoviesshg.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Multimoviesshg.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Multimoviesshg.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Multimoviesshg.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Mwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Mwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Mwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Mwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Mwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MxDropTo : com.lagradost.cloudstream3.extractors/MixDrop { // com.lagradost.cloudstream3.extractors/MxDropTo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MxDropTo.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MxDropTo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MxDropTo.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MxDropTo.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/MyVidPlay : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/MyVidPlay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MyVidPlay.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/MyVidPlay.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MyVidPlay.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MyVidPlay.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/NathanFromSubject : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/NathanFromSubject|null[0] + constructor () // com.lagradost.cloudstream3.extractors/NathanFromSubject.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/NathanFromSubject.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/NathanFromSubject.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Nekostream : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Nekostream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Nekostream.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Nekostream.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Nekostream.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Nekostream.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Nekostream.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Nekowish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Nekowish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Nekowish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Nekowish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Nekowish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Nekowish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Nekowish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Neonime7n : com.lagradost.cloudstream3.extractors/Hxfile { // com.lagradost.cloudstream3.extractors/Neonime7n|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Neonime7n.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Neonime7n.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Neonime7n.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Neonime7n.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Neonime7n.name.|(){}[0] + final val redirect // com.lagradost.cloudstream3.extractors/Neonime7n.redirect|{}redirect[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Neonime7n.redirect.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Neonime8n : com.lagradost.cloudstream3.extractors/Hxfile { // com.lagradost.cloudstream3.extractors/Neonime8n|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Neonime8n.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Neonime8n.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Neonime8n.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Neonime8n.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Neonime8n.name.|(){}[0] + final val redirect // com.lagradost.cloudstream3.extractors/Neonime8n.redirect|{}redirect[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Neonime8n.redirect.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Obeywish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Obeywish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Obeywish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Obeywish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Obeywish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Obeywish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Obeywish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/OkRuHTTPMobile : com.lagradost.cloudstream3.extractors/OkRuHTTP { // com.lagradost.cloudstream3.extractors/OkRuHTTPMobile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/OkRuHTTPMobile.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/OkRuHTTPMobile.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuHTTPMobile.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuHTTPMobile.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/OkRuSSLMobile : com.lagradost.cloudstream3.extractors/OkRuSSL { // com.lagradost.cloudstream3.extractors/OkRuSSLMobile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/OkRuSSLMobile.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/OkRuSSLMobile.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuSSLMobile.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuSSLMobile.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Peytonepre : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Peytonepre|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Peytonepre.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Peytonepre.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Peytonepre.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Peytonepre.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Peytonepre.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Peytonepre.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Peytonepre.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Pichive : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/Pichive|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Pichive.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Pichive.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Pichive.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Pichive.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Pichive.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Pichive.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Pichive.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/PixelDrainDev : com.lagradost.cloudstream3.extractors/PixelDrain { // com.lagradost.cloudstream3.extractors/PixelDrainDev|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PixelDrainDev.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/PixelDrainDev.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PixelDrainDev.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/PixelDrainDev.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/PlayRu : com.lagradost.cloudstream3.extractors/ContentX { // com.lagradost.cloudstream3.extractors/PlayRu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PlayRu.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/PlayRu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayRu.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/PlayRu.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/PlayRu.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayRu.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/PlayRu.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Playback { // com.lagradost.cloudstream3.extractors/Playback|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin.collections/List, kotlin/String, com.lagradost.cloudstream3.extractors/DecryptKeys, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/Playback.|(kotlin.String;kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;com.lagradost.cloudstream3.extractors.DecryptKeys;kotlin.String;kotlin.String){}[0] + + final val algorithm // com.lagradost.cloudstream3.extractors/Playback.algorithm|{}algorithm[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.algorithm.|(){}[0] + final val decryptKeys // com.lagradost.cloudstream3.extractors/Playback.decryptKeys|{}decryptKeys[0] + final fun (): com.lagradost.cloudstream3.extractors/DecryptKeys // com.lagradost.cloudstream3.extractors/Playback.decryptKeys.|(){}[0] + final val expiresAt // com.lagradost.cloudstream3.extractors/Playback.expiresAt|{}expiresAt[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.expiresAt.|(){}[0] + final val iv // com.lagradost.cloudstream3.extractors/Playback.iv|{}iv[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.iv.|(){}[0] + final val iv2 // com.lagradost.cloudstream3.extractors/Playback.iv2|{}iv2[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.iv2.|(){}[0] + final val keyParts // com.lagradost.cloudstream3.extractors/Playback.keyParts|{}keyParts[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Playback.keyParts.|(){}[0] + final val payload // com.lagradost.cloudstream3.extractors/Playback.payload|{}payload[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.payload.|(){}[0] + final val payload2 // com.lagradost.cloudstream3.extractors/Playback.payload2|{}payload2[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.payload2.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Playback.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3.extractors/DecryptKeys // com.lagradost.cloudstream3.extractors/Playback.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component7|component7(){}[0] + final fun component8(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.component8|component8(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin.collections/List = ..., kotlin/String = ..., com.lagradost.cloudstream3.extractors/DecryptKeys = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/Playback // com.lagradost.cloudstream3.extractors/Playback.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;com.lagradost.cloudstream3.extractors.DecryptKeys;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Playback.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Playback.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Playback.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Playback.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Playback.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Playback.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Playback.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Playback // com.lagradost.cloudstream3.extractors/Playback.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Playback) // com.lagradost.cloudstream3.extractors/Playback.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Playback){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Playback.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Playback.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Playback.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/PlaybackDecrypt { // com.lagradost.cloudstream3.extractors/PlaybackDecrypt|null[0] + constructor (kotlin.collections/List) // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.|(kotlin.collections.List){}[0] + + final val sources // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.sources|{}sources[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.sources.|(){}[0] + + final fun component1(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.component1|component1(){}[0] + final fun copy(kotlin.collections/List = ...): com.lagradost.cloudstream3.extractors/PlaybackDecrypt // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.copy|copy(kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PlaybackDecrypt // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PlaybackDecrypt) // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PlaybackDecrypt){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PlaybackDecrypt.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/PlaybackDecryptSource { // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Long, kotlinx.serialization.json/JsonElement?) // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Long;kotlinx.serialization.json.JsonElement?){}[0] + + final val bitrateKbps // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.bitrateKbps|{}bitrateKbps[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.bitrateKbps.|(){}[0] + final val height // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.height|{}height[0] + final fun (): kotlinx.serialization.json/JsonElement? // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.height.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.label.|(){}[0] + final val mimeType // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.mimeType|{}mimeType[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.mimeType.|(){}[0] + final val quality // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.quality|{}quality[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.quality.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component4|component4(){}[0] + final fun component5(): kotlin/Long // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component5|component5(){}[0] + final fun component6(): kotlinx.serialization.json/JsonElement? // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.component6|component6(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Long = ..., kotlinx.serialization.json/JsonElement? = ...): com.lagradost.cloudstream3.extractors/PlaybackDecryptSource // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Long;kotlinx.serialization.json.JsonElement?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PlaybackDecryptSource // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PlaybackDecryptSource) // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PlaybackDecryptSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PlaybackDecryptSource.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/PlaybackRoot { // com.lagradost.cloudstream3.extractors/PlaybackRoot|null[0] + constructor (com.lagradost.cloudstream3.extractors/Playback) // com.lagradost.cloudstream3.extractors/PlaybackRoot.|(com.lagradost.cloudstream3.extractors.Playback){}[0] + + final val playback // com.lagradost.cloudstream3.extractors/PlaybackRoot.playback|{}playback[0] + final fun (): com.lagradost.cloudstream3.extractors/Playback // com.lagradost.cloudstream3.extractors/PlaybackRoot.playback.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Playback // com.lagradost.cloudstream3.extractors/PlaybackRoot.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Playback = ...): com.lagradost.cloudstream3.extractors/PlaybackRoot // com.lagradost.cloudstream3.extractors/PlaybackRoot.copy|copy(com.lagradost.cloudstream3.extractors.Playback){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PlaybackRoot.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PlaybackRoot.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PlaybackRoot.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PlaybackRoot // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PlaybackRoot) // com.lagradost.cloudstream3.extractors/PlaybackRoot.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PlaybackRoot){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PlaybackRoot.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PlaybackRoot.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.extractors/Playerwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Playerwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Playerwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Playerwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playerwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Playerwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playerwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Playmogo : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Playmogo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Playmogo.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Playmogo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Playmogo.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Playmogo.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Rasacintaku : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/Rasacintaku|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Rasacintaku.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Rasacintaku.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Rasacintaku.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ryderjet : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Ryderjet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ryderjet.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Ryderjet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ryderjet.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Ryderjet.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/SBfull : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/SBfull|null[0] + constructor () // com.lagradost.cloudstream3.extractors/SBfull.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/SBfull.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SBfull.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/SBfull.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbasian : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbasian|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbasian.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbasian.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbasian.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbasian.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbasian.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbasian.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbasian.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbface : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbface|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbface.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbface.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbface.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbface.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbface.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbface.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbface.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbflix : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbflix|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbflix.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbflix.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbflix.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbflix.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbflix.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbflix.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbflix.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sblona : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sblona|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sblona.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sblona.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sblona.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sblona.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sblona.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sblona.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sblona.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sblongvu : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sblongvu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sblongvu.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sblongvu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sblongvu.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sblongvu.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbnet : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbnet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbnet.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbnet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbnet.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbnet.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbnet.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbnet.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbnet.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbrapid : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbrapid|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbrapid.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbrapid.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbrapid.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbrapid.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbrapid.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbrapid.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbrapid.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbsonic : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbsonic|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbsonic.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbsonic.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbsonic.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbsonic.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbsonic.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbsonic.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbsonic.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbspeed : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbspeed|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbspeed.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbspeed.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbspeed.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbspeed.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Sbspeed.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbspeed.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbspeed.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Sbthe : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Sbthe|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sbthe.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Sbthe.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sbthe.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sbthe.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Server1uns : com.lagradost.cloudstream3.extractors/VidStack { // com.lagradost.cloudstream3.extractors/Server1uns|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Server1uns.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Server1uns.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Server1uns.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Server1uns.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Server1uns.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Server1uns.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Server1uns.name.|(kotlin.String){}[0] + final var requiresReferer // com.lagradost.cloudstream3.extractors/Server1uns.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Server1uns.requiresReferer.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3.extractors/Server1uns.requiresReferer.|(kotlin.Boolean){}[0] +} + +final class com.lagradost.cloudstream3.extractors/SfastwishCom : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/SfastwishCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/SfastwishCom.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/SfastwishCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SfastwishCom.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/SfastwishCom.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SfastwishCom.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/ShaveTape : com.lagradost.cloudstream3.extractors/StreamTape { // com.lagradost.cloudstream3.extractors/ShaveTape|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ShaveTape.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/ShaveTape.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ShaveTape.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ShaveTape.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Simpulumlamerop : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Simpulumlamerop|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Simpulumlamerop.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Simpulumlamerop.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Simpulumlamerop.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Simpulumlamerop.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Simpulumlamerop.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Smoothpre : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Smoothpre|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Smoothpre.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Smoothpre.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Smoothpre.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Smoothpre.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Smoothpre.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Smoothpre.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Smoothpre.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ssbstream : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Ssbstream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ssbstream.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Ssbstream.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ssbstream.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Ssbstream.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamHLS : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/StreamHLS|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamHLS.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/StreamHLS.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamHLS.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/StreamHLS.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamHLS.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamM4u : com.lagradost.cloudstream3.extractors/XStreamCdn { // com.lagradost.cloudstream3.extractors/StreamM4u|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamM4u.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/StreamM4u.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamM4u.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/StreamM4u.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamM4u.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB1 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB1.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB1.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB1.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB10 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB10|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB10.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB10.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB10.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB10.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB11 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB11|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB11.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB11.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB11.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB11.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB2 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB2.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB2.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB2.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB3 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB3|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB3.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB3.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB3.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB3.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB4 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB4|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB4.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB4.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB4.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB4.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB5 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB5|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB5.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB5.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB5.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB5.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB6 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB6|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB6.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB6.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB6.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB6.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB7 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB7|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB7.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB7.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB7.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB7.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB8 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB8|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB8.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB8.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB8.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB8.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamSB9 : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/StreamSB9|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB9.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB9.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB9.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB9.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamTapeNet : com.lagradost.cloudstream3.extractors/StreamTape { // com.lagradost.cloudstream3.extractors/StreamTapeNet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamTapeNet.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamTapeNet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamTapeNet.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamTapeNet.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamTapeXyz : com.lagradost.cloudstream3.extractors/StreamTape { // com.lagradost.cloudstream3.extractors/StreamTapeXyz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamTapeXyz.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamTapeXyz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamTapeXyz.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamTapeXyz.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamhideCom : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/StreamhideCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamhideCom.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/StreamhideCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamhideCom.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamhideCom.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/StreamhideCom.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamhideCom.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamhideCom.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/StreamhideTo : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/StreamhideTo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamhideTo.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/StreamhideTo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamhideTo.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/StreamhideTo.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamhideTo.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Streamhub2 : com.lagradost.cloudstream3.extractors/ZplayerV2 { // com.lagradost.cloudstream3.extractors/Streamhub2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamhub2.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Streamhub2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamhub2.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Streamhub2.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Streamhub2.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamhub2.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Streamhub2.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Streamlare : com.lagradost.cloudstream3.extractors/Slmaxed { // com.lagradost.cloudstream3.extractors/Streamlare|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamlare.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Streamlare.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamlare.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Streamsss : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Streamsss|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamsss.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Streamsss.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamsss.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Streamsss.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Streamwish2 : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Streamwish2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamwish2.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Streamwish2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamwish2.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Strwish : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Strwish|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Strwish.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Strwish.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Strwish.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Strwish.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Strwish.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Strwish2 : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Strwish2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Strwish2.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Strwish2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Strwish2.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Strwish2.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Strwish2.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Swdyu : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Swdyu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Swdyu.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Swdyu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Swdyu.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Swdyu.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Swdyu.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Swhoi : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Swhoi|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Swhoi.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Swhoi.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Swhoi.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Swhoi.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Swhoi.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Techinmind : com.lagradost.cloudstream3.extractors/GDMirrorbot { // com.lagradost.cloudstream3.extractors/Techinmind|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Techinmind.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Techinmind.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Techinmind.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Techinmind.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Techinmind.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/Techinmind.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Techinmind.requiresReferer.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Tubeless : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Tubeless|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Tubeless.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Tubeless.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tubeless.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Tubeless.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tubeless.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Uasopt : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Uasopt|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uasopt.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Uasopt.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uasopt.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Uasopt.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uasopt.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Up4FunTop : com.lagradost.cloudstream3.extractors/Up4Stream { // com.lagradost.cloudstream3.extractors/Up4FunTop|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Up4FunTop.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Up4FunTop.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Up4FunTop.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Up4FunTop.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Upstream : com.lagradost.cloudstream3.extractors/ZplayerV2 { // com.lagradost.cloudstream3.extractors/Upstream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Upstream.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Upstream.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Upstream.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Upstream.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Upstream.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Upstream.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Upstream.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Uqload1 : com.lagradost.cloudstream3.extractors/Uqload { // com.lagradost.cloudstream3.extractors/Uqload1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uqload1.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Uqload1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqload1.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqload1.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Uqload2 : com.lagradost.cloudstream3.extractors/Uqload { // com.lagradost.cloudstream3.extractors/Uqload2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uqload2.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Uqload2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqload2.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqload2.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Uqloadbz : com.lagradost.cloudstream3.extractors/Uqload { // com.lagradost.cloudstream3.extractors/Uqloadbz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uqloadbz.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Uqloadbz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqloadbz.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqloadbz.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Uqloadcx : com.lagradost.cloudstream3.extractors/Uqload { // com.lagradost.cloudstream3.extractors/Uqloadcx|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uqloadcx.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Uqloadcx.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqloadcx.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqloadcx.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/UqloadsXyz : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/UqloadsXyz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/UqloadsXyz.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/UqloadsXyz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/UqloadsXyz.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/UqloadsXyz.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/UqloadsXyz.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Urochsunloath : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Urochsunloath|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Urochsunloath.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Urochsunloath.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Urochsunloath.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Urochsunloath.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Urochsunloath.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHideHub : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHideHub|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHideHub.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VidHideHub.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHideHub.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidHideHub.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro1 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro1.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro1.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidHidePro1.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro2 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro2.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro2.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidHidePro2.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro3 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro3|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro3.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro3.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro3.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidHidePro3.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro4 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro4|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro4.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro4.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro4.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro5 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro5|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro5.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro5.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro5.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidHidePro6 : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidHidePro6|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro6.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro6.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro6.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidNest : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/VidNest|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidNest.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VidNest.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidNest.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidNest.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/VidNest.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidNest.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidNest.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidaaraxCom : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/VidaaraxCom|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidaaraxCom.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidaaraxCom.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidaaraxCom.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidaaraxNet : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/VidaaraxNet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidaaraxNet.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidaaraxNet.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidaaraxNet.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VidaraSo : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/VidaraSo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidaraSo.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/VidaraSo.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidaraSo.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidaraa : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/Vidaraa|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidaraa.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidaraa.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidaraa.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidaratem : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/Vidaratem|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidaratem.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidaratem.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidaratem.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidaraw : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/Vidaraw|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidaraw.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidaraw.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidaraw.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidarax : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/Vidarax|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidarax.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidarax.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidarax.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidavaca : com.lagradost.cloudstream3.extractors/Vidara { // com.lagradost.cloudstream3.extractors/Vidavaca|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidavaca.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidavaca.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidavaca.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vide0Net : com.lagradost.cloudstream3.extractors/DoodLaExtractor { // com.lagradost.cloudstream3.extractors/Vide0Net|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vide0Net.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Vide0Net.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vide0Net.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vide0Net.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Videa : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Videa|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Videa.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Videa.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Videa.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Videa.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Videa.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/Videa.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Videa.requiresReferer.|(){}[0] + + final suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Videa.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Videzz : com.lagradost.cloudstream3.extractors/Vidoza { // com.lagradost.cloudstream3.extractors/Videzz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Videzz.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Videzz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Videzz.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidgomunime : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Vidgomunime|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidgomunime.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Vidgomunime.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidgomunime.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vidgomunime.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidgomunimesb : com.lagradost.cloudstream3.extractors/StreamSB { // com.lagradost.cloudstream3.extractors/Vidgomunimesb|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidgomunimesb.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Vidgomunimesb.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidgomunimesb.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vidgomunimesb.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidmolybiz : com.lagradost.cloudstream3.extractors/Vidmoly { // com.lagradost.cloudstream3.extractors/Vidmolybiz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidmolybiz.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidmolybiz.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidmolybiz.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidmolyme : com.lagradost.cloudstream3.extractors/Vidmoly { // com.lagradost.cloudstream3.extractors/Vidmolyme|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidmolyme.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidmolyme.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidmolyme.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidmolyto : com.lagradost.cloudstream3.extractors/Vidmoly { // com.lagradost.cloudstream3.extractors/Vidmolyto|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidmolyto.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidmolyto.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidmolyto.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vido : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vido|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vido.|(){}[0] + + final val requiresReferer // com.lagradost.cloudstream3.extractors/Vido.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vido.requiresReferer.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Vido.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vido.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vido.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Vido.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vido.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vido.name.|(kotlin.String){}[0] + + final suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Vido.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Vidsonic : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vidsonic|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidsonic.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Vidsonic.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidsonic.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Vidsonic.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidsonic.name.|(){}[0] + final val requiresReferer // com.lagradost.cloudstream3.extractors/Vidsonic.requiresReferer|{}requiresReferer[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vidsonic.requiresReferer.|(){}[0] + + final suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vidsonic.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +final class com.lagradost.cloudstream3.extractors/VinovoSi : com.lagradost.cloudstream3.extractors/VinovoTo { // com.lagradost.cloudstream3.extractors/VinovoSi|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VinovoSi.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/VinovoSi.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VinovoSi.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VinovoSi.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/VinovoSi.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VinovoSi.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VinovoSi.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Voe1 : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Voe1|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Voe1.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Voe1.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Voe1.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Voe2 : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Voe2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Voe2.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Voe2.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Voe2.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Watchadsontape : com.lagradost.cloudstream3.extractors/StreamTape { // com.lagradost.cloudstream3.extractors/Watchadsontape|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Watchadsontape.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Watchadsontape.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Watchadsontape.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Watchadsontape.mainUrl.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/WishembedPro : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/WishembedPro|null[0] + constructor () // com.lagradost.cloudstream3.extractors/WishembedPro.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/WishembedPro.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/WishembedPro.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/WishembedPro.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/WishembedPro.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Wishfast : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Wishfast|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Wishfast.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Wishfast.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wishfast.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Wishfast.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wishfast.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Wishonly : com.lagradost.cloudstream3.extractors/StreamWishExtractor { // com.lagradost.cloudstream3.extractors/Wishonly|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Wishonly.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Wishonly.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wishonly.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Wishonly.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wishonly.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Xenolyzb : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Xenolyzb|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Xenolyzb.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Xenolyzb.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Xenolyzb.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Xenolyzb.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Xenolyzb.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Yipsu : com.lagradost.cloudstream3.extractors/Voe { // com.lagradost.cloudstream3.extractors/Yipsu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Yipsu.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Yipsu.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yipsu.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Yipsu.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yipsu.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/YoutubeMobileExtractor : com.lagradost.cloudstream3.extractors/YoutubeExtractor { // com.lagradost.cloudstream3.extractors/YoutubeMobileExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/YoutubeMobileExtractor.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/YoutubeMobileExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YoutubeMobileExtractor.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/YoutubeNoCookieExtractor : com.lagradost.cloudstream3.extractors/YoutubeExtractor { // com.lagradost.cloudstream3.extractors/YoutubeNoCookieExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/YoutubeNoCookieExtractor.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/YoutubeNoCookieExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YoutubeNoCookieExtractor.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/YoutubeShortLinkExtractor : com.lagradost.cloudstream3.extractors/YoutubeExtractor { // com.lagradost.cloudstream3.extractors/YoutubeShortLinkExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/YoutubeShortLinkExtractor.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/YoutubeShortLinkExtractor.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YoutubeShortLinkExtractor.mainUrl.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Yufiles : com.lagradost.cloudstream3.extractors/Hxfile { // com.lagradost.cloudstream3.extractors/Yufiles|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Yufiles.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Yufiles.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yufiles.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Yufiles.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yufiles.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Yuguaab : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/Yuguaab|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Yuguaab.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Yuguaab.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yuguaab.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Yuguaab.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Yuguaab.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Zplayer : com.lagradost.cloudstream3.extractors/ZplayerV2 { // com.lagradost.cloudstream3.extractors/Zplayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Zplayer.|(){}[0] + + final var mainUrl // com.lagradost.cloudstream3.extractors/Zplayer.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Zplayer.mainUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Zplayer.mainUrl.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.extractors/Zplayer.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Zplayer.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Zplayer.name.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.extractors/Ztreamhub : com.lagradost.cloudstream3.extractors/Filesim { // com.lagradost.cloudstream3.extractors/Ztreamhub|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Ztreamhub.|(){}[0] + + final val mainUrl // com.lagradost.cloudstream3.extractors/Ztreamhub.mainUrl|{}mainUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ztreamhub.mainUrl.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Ztreamhub.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Ztreamhub.name.|(){}[0] +} + +final class com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider : com.lagradost.cloudstream3.metaproviders/TmdbProvider { // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider|null[0] + constructor () // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.|(){}[0] + + final val apiName // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.apiName.|(){}[0] + final val supportedTypes // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.supportedTypes|{}supportedTypes[0] + final fun (): kotlin.collections/Set // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.supportedTypes.|(){}[0] + final val useMetaLoadResponse // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.useMetaLoadResponse|{}useMetaLoadResponse[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.useMetaLoadResponse.|(){}[0] + final val usesWebView // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.usesWebView|{}usesWebView[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.usesWebView.|(){}[0] + + final var lang // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.lang|{}lang[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.lang.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.lang.|(kotlin.String){}[0] + final var name // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.name.|(kotlin.String){}[0] + + final suspend fun load(kotlin/String): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.load|load(kotlin.String){}[0] + final suspend fun loadLinks(kotlin/String, kotlin/Boolean, kotlin/Function1, kotlin/Function1): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.loadLinks|loadLinks(kotlin.String;kotlin.Boolean;kotlin.Function1;kotlin.Function1){}[0] + final suspend fun search(kotlin/String, kotlin/Int): com.lagradost.cloudstream3/SearchResponseList? // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.search|search(kotlin.String;kotlin.Int){}[0] + + final class CrossMetaData { // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData|null[0] + constructor (kotlin/Boolean, kotlin.collections/List>? = ...) // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.|(kotlin.Boolean;kotlin.collections.List>?){}[0] + + final val isSuccess // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.isSuccess|{}isSuccess[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.isSuccess.|(){}[0] + final val movies // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.movies|{}movies[0] + final fun (): kotlin.collections/List>? // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.movies.|(){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.component1|component1(){}[0] + final fun component2(): kotlin.collections/List>? // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.component2|component2(){}[0] + final fun copy(kotlin/Boolean = ..., kotlin.collections/List>? = ...): com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.copy|copy(kotlin.Boolean;kotlin.collections.List>?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData) // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.CrossTmdbProvider.CrossMetaData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/CrossTmdbProvider.CrossMetaData.Companion.serializer|serializer(){}[0] + } + } +} + +final class com.lagradost.cloudstream3.metaproviders/TmdbLink { // com.lagradost.cloudstream3.metaproviders/TmdbLink|null[0] + constructor (kotlin/String?, kotlin/Int?, kotlin/Int?, kotlin/Int?, kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbLink.|(kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.Int?;kotlin.String?){}[0] + + final val episode // com.lagradost.cloudstream3.metaproviders/TmdbLink.episode|{}episode[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.episode.|(){}[0] + final val imdbID // com.lagradost.cloudstream3.metaproviders/TmdbLink.imdbID|{}imdbID[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbLink.imdbID.|(){}[0] + final val movieName // com.lagradost.cloudstream3.metaproviders/TmdbLink.movieName|{}movieName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbLink.movieName.|(){}[0] + final val season // com.lagradost.cloudstream3.metaproviders/TmdbLink.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.season.|(){}[0] + final val tmdbID // com.lagradost.cloudstream3.metaproviders/TmdbLink.tmdbID|{}tmdbID[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.tmdbID.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbLink.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbLink.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbLink.component5|component5(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbLink // com.lagradost.cloudstream3.metaproviders/TmdbLink.copy|copy(kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.Int?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbLink.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbLink.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbLink.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbLink // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbLink) // com.lagradost.cloudstream3.metaproviders/TmdbLink.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbLink){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbLink.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbLink.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3.mvvm/DebugException : kotlin/Exception { // com.lagradost.cloudstream3.mvvm/DebugException|null[0] + constructor (kotlin/String) // com.lagradost.cloudstream3.mvvm/DebugException.|(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.network/WebViewResolver : com.lagradost.nicehttp/Interceptor { // com.lagradost.cloudstream3.network/WebViewResolver|null[0] + constructor (kotlin.text/Regex, kotlin.collections/List = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin/String? = ..., kotlin/Function1? = ..., kotlin/Long = ...) // com.lagradost.cloudstream3.network/WebViewResolver.|(kotlin.text.Regex;kotlin.collections.List;kotlin.String?;kotlin.Boolean;kotlin.String?;kotlin.Function1?;kotlin.Long){}[0] + + final val additionalUrls // com.lagradost.cloudstream3.network/WebViewResolver.additionalUrls|{}additionalUrls[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.network/WebViewResolver.additionalUrls.|(){}[0] + final val interceptUrl // com.lagradost.cloudstream3.network/WebViewResolver.interceptUrl|{}interceptUrl[0] + final fun (): kotlin.text/Regex // com.lagradost.cloudstream3.network/WebViewResolver.interceptUrl.|(){}[0] + final val script // com.lagradost.cloudstream3.network/WebViewResolver.script|{}script[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.network/WebViewResolver.script.|(){}[0] + final val scriptCallback // com.lagradost.cloudstream3.network/WebViewResolver.scriptCallback|{}scriptCallback[0] + final fun (): kotlin/Function1? // com.lagradost.cloudstream3.network/WebViewResolver.scriptCallback.|(){}[0] + final val timeout // com.lagradost.cloudstream3.network/WebViewResolver.timeout|{}timeout[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.network/WebViewResolver.timeout.|(){}[0] + final val useOkhttp // com.lagradost.cloudstream3.network/WebViewResolver.useOkhttp|{}useOkhttp[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.network/WebViewResolver.useOkhttp.|(){}[0] + final val userAgent // com.lagradost.cloudstream3.network/WebViewResolver.userAgent|{}userAgent[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.network/WebViewResolver.userAgent.|(){}[0] + + final suspend fun intercept(com.lagradost.nicehttp/HttpSendInterceptorContext): io.ktor.client.call/HttpClientCall // com.lagradost.cloudstream3.network/WebViewResolver.intercept|intercept(com.lagradost.nicehttp.HttpSendInterceptorContext){}[0] + final suspend fun resolveUsingWebView(io.ktor.client.request/HttpRequestBuilder, kotlin/Function1 = ...): kotlin/Pair> // com.lagradost.cloudstream3.network/WebViewResolver.resolveUsingWebView|resolveUsingWebView(io.ktor.client.request.HttpRequestBuilder;kotlin.Function1){}[0] + final suspend fun resolveUsingWebView(kotlin/String, kotlin/String? = ..., kotlin.collections/Map = ..., kotlin/String = ..., kotlin/Function1 = ...): kotlin/Pair> // com.lagradost.cloudstream3.network/WebViewResolver.resolveUsingWebView|resolveUsingWebView(kotlin.String;kotlin.String?;kotlin.collections.Map;kotlin.String;kotlin.Function1){}[0] + final suspend fun resolveUsingWebView(kotlin/String, kotlin/String? = ..., kotlin/String = ..., kotlin/Function1 = ...): kotlin/Pair> // com.lagradost.cloudstream3.network/WebViewResolver.resolveUsingWebView|resolveUsingWebView(kotlin.String;kotlin.String?;kotlin.String;kotlin.Function1){}[0] + + final object Companion { // com.lagradost.cloudstream3.network/WebViewResolver.Companion|null[0] + final val DEFAULT_TIMEOUT // com.lagradost.cloudstream3.network/WebViewResolver.Companion.DEFAULT_TIMEOUT|{}DEFAULT_TIMEOUT[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.network/WebViewResolver.Companion.DEFAULT_TIMEOUT.|(){}[0] + + final var webViewUserAgent // com.lagradost.cloudstream3.network/WebViewResolver.Companion.webViewUserAgent|{}webViewUserAgent[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.network/WebViewResolver.Companion.webViewUserAgent.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.network/WebViewResolver.Companion.webViewUserAgent.|(kotlin.String?){}[0] + } +} + +final class com.lagradost.cloudstream3.utils/ExtractorLinkPlayList : com.lagradost.cloudstream3.utils/ExtractorLink { // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList|null[0] + constructor (kotlin/String, kotlin/String, kotlin.collections/List, kotlin/String, kotlin/Int, kotlin.collections/Map = ..., kotlin/String? = ..., com.lagradost.cloudstream3.utils/ExtractorLinkType, kotlin.collections/List = ...) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.|(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;kotlin.Int;kotlin.collections.Map;kotlin.String?;com.lagradost.cloudstream3.utils.ExtractorLinkType;kotlin.collections.List){}[0] + constructor (kotlin/String, kotlin/String, kotlin.collections/List, kotlin/String, kotlin/Int, kotlin/Boolean = ..., kotlin.collections/Map = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.|(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.collections.Map;kotlin.String?){}[0] + + final val name // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.name.|(){}[0] + final val playlist // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.playlist|{}playlist[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.playlist.|(){}[0] + final val source // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.source|{}source[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.source.|(){}[0] + + final var audioTracks // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.audioTracks|{}audioTracks[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.audioTracks.|(){}[0] + final fun (kotlin.collections/List) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.audioTracks.|(kotlin.collections.List){}[0] + final var extractorData // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.extractorData|{}extractorData[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.extractorData.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.extractorData.|(kotlin.String?){}[0] + final var headers // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.headers|{}headers[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.headers.|(){}[0] + final fun (kotlin.collections/Map) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.headers.|(kotlin.collections.Map){}[0] + final var quality // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.quality|{}quality[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.quality.|(){}[0] + final fun (kotlin/Int) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.quality.|(kotlin.Int){}[0] + final var referer // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.referer|{}referer[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.referer.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.referer.|(kotlin.String){}[0] + final var type // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.type|{}type[0] + final fun (): com.lagradost.cloudstream3.utils/ExtractorLinkType // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.type.|(){}[0] + final fun (com.lagradost.cloudstream3.utils/ExtractorLinkType) // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.type.|(com.lagradost.cloudstream3.utils.ExtractorLinkType){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component4|component4(){}[0] + final fun component5(): kotlin/Int // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component5|component5(){}[0] + final fun component6(): kotlin.collections/Map // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component7|component7(){}[0] + final fun component8(): com.lagradost.cloudstream3.utils/ExtractorLinkType // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component8|component8(){}[0] + final fun component9(): kotlin.collections/List // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin.collections/List = ..., kotlin/String = ..., kotlin/Int = ..., kotlin.collections/Map = ..., kotlin/String? = ..., com.lagradost.cloudstream3.utils/ExtractorLinkType = ..., kotlin.collections/List = ...): com.lagradost.cloudstream3.utils/ExtractorLinkPlayList // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.copy|copy(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.String;kotlin.Int;kotlin.collections.Map;kotlin.String?;com.lagradost.cloudstream3.utils.ExtractorLinkType;kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLinkPlayList.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3.utils/IntlDisplayNames { // com.lagradost.cloudstream3.utils/IntlDisplayNames|null[0] + constructor (kotlin/String, kotlin/Any) // com.lagradost.cloudstream3.utils/IntlDisplayNames.|(kotlin.String;kotlin.Any){}[0] + + final fun of(kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/IntlDisplayNames.of|of(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.utils/JsContext { // com.lagradost.cloudstream3.utils/JsContext|null[0] + final var maxExecutionTime // com.lagradost.cloudstream3.utils/JsContext.maxExecutionTime|{}maxExecutionTime[0] + final fun (): kotlin.time/Duration // com.lagradost.cloudstream3.utils/JsContext.maxExecutionTime.|(){}[0] + final fun (kotlin.time/Duration) // com.lagradost.cloudstream3.utils/JsContext.maxExecutionTime.|(kotlin.time.Duration){}[0] + final var maxInstructions // com.lagradost.cloudstream3.utils/JsContext.maxInstructions|{}maxInstructions[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.utils/JsContext.maxInstructions.|(){}[0] + final fun (kotlin/Long) // com.lagradost.cloudstream3.utils/JsContext.maxInstructions.|(kotlin.Long){}[0] + + final fun get(kotlin/String): kotlin/Any? // com.lagradost.cloudstream3.utils/JsContext.get|get(kotlin.String){}[0] + final fun set(kotlin/String, kotlin/Any?) // com.lagradost.cloudstream3.utils/JsContext.set|set(kotlin.String;kotlin.Any?){}[0] + final suspend fun eval(kotlin/String): kotlin/Any? // com.lagradost.cloudstream3.utils/JsContext.eval|eval(kotlin.String){}[0] +} + +final class com.lagradost.cloudstream3.utils/JsHunter { // com.lagradost.cloudstream3.utils/JsHunter|null[0] + constructor (kotlin/String) // com.lagradost.cloudstream3.utils/JsHunter.|(kotlin.String){}[0] + + final fun dehunt(): kotlin/String? // com.lagradost.cloudstream3.utils/JsHunter.dehunt|dehunt(){}[0] + final fun detect(): kotlin/Boolean // com.lagradost.cloudstream3.utils/JsHunter.detect|detect(){}[0] +} + +final class com.lagradost.cloudstream3.utils/JsUnpacker { // com.lagradost.cloudstream3.utils/JsUnpacker|null[0] + constructor (kotlin/String?) // com.lagradost.cloudstream3.utils/JsUnpacker.|(kotlin.String?){}[0] + + final fun detect(): kotlin/Boolean // com.lagradost.cloudstream3.utils/JsUnpacker.detect|detect(){}[0] + final fun unpack(): kotlin/String? // com.lagradost.cloudstream3.utils/JsUnpacker.unpack|unpack(){}[0] +} + +final class com.lagradost.cloudstream3.utils/M3u8Helper { // com.lagradost.cloudstream3.utils/M3u8Helper|null[0] + constructor () // com.lagradost.cloudstream3.utils/M3u8Helper.|(){}[0] + + final suspend fun m3u8Generation(com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream, kotlin/Boolean? = ...): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper.m3u8Generation|m3u8Generation(com.lagradost.cloudstream3.utils.M3u8Helper.M3u8Stream;kotlin.Boolean?){}[0] + + final class M3u8Stream { // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream|null[0] + constructor (kotlin/String, kotlin/Int? = ..., kotlin.collections/Map = ...) // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.|(kotlin.String;kotlin.Int?;kotlin.collections.Map){}[0] + + final val headers // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.headers|{}headers[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.headers.|(){}[0] + final val quality // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.quality|{}quality[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.quality.|(){}[0] + final val streamUrl // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.streamUrl|{}streamUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.streamUrl.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.component2|component2(){}[0] + final fun component3(): kotlin.collections/Map // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/Int? = ..., kotlin.collections/Map = ...): com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.copy|copy(kotlin.String;kotlin.Int?;kotlin.collections.Map){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream.toString|toString(){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.utils/M3u8Helper.Companion|null[0] + final suspend fun generateM3u8(kotlin/String, kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin.collections/Map = ..., kotlin/String = ...): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper.Companion.generateM3u8|generateM3u8(kotlin.String;kotlin.String;kotlin.String;kotlin.Int?;kotlin.collections.Map;kotlin.String){}[0] + } +} + +final class com.lagradost.cloudstream3.utils/PlayListItem { // com.lagradost.cloudstream3.utils/PlayListItem|null[0] + constructor (kotlin/String, kotlin/Long) // com.lagradost.cloudstream3.utils/PlayListItem.|(kotlin.String;kotlin.Long){}[0] + + final val durationUs // com.lagradost.cloudstream3.utils/PlayListItem.durationUs|{}durationUs[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3.utils/PlayListItem.durationUs.|(){}[0] + final val url // com.lagradost.cloudstream3.utils/PlayListItem.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/PlayListItem.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/PlayListItem.component1|component1(){}[0] + final fun component2(): kotlin/Long // com.lagradost.cloudstream3.utils/PlayListItem.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ...): com.lagradost.cloudstream3.utils/PlayListItem // com.lagradost.cloudstream3.utils/PlayListItem.copy|copy(kotlin.String;kotlin.Long){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/PlayListItem.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/PlayListItem.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/PlayListItem.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/Actor { // com.lagradost.cloudstream3/Actor|null[0] + constructor (kotlin/String, kotlin/String? = ...) // com.lagradost.cloudstream3/Actor.|(kotlin.String;kotlin.String?){}[0] + + final val image // com.lagradost.cloudstream3/Actor.image|{}image[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Actor.image.|(){}[0] + final val name // com.lagradost.cloudstream3/Actor.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/Actor.name.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/Actor.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/Actor.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/String? = ...): com.lagradost.cloudstream3/Actor // com.lagradost.cloudstream3/Actor.copy|copy(kotlin.String;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/Actor.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/Actor.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/Actor.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/ActorData { // com.lagradost.cloudstream3/ActorData|null[0] + constructor (com.lagradost.cloudstream3/Actor, com.lagradost.cloudstream3/ActorRole? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Actor? = ...) // com.lagradost.cloudstream3/ActorData.|(com.lagradost.cloudstream3.Actor;com.lagradost.cloudstream3.ActorRole?;kotlin.String?;com.lagradost.cloudstream3.Actor?){}[0] + + final val actor // com.lagradost.cloudstream3/ActorData.actor|{}actor[0] + final fun (): com.lagradost.cloudstream3/Actor // com.lagradost.cloudstream3/ActorData.actor.|(){}[0] + final val role // com.lagradost.cloudstream3/ActorData.role|{}role[0] + final fun (): com.lagradost.cloudstream3/ActorRole? // com.lagradost.cloudstream3/ActorData.role.|(){}[0] + final val roleString // com.lagradost.cloudstream3/ActorData.roleString|{}roleString[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/ActorData.roleString.|(){}[0] + final val voiceActor // com.lagradost.cloudstream3/ActorData.voiceActor|{}voiceActor[0] + final fun (): com.lagradost.cloudstream3/Actor? // com.lagradost.cloudstream3/ActorData.voiceActor.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3/Actor // com.lagradost.cloudstream3/ActorData.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3/ActorRole? // com.lagradost.cloudstream3/ActorData.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3/ActorData.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/Actor? // com.lagradost.cloudstream3/ActorData.component4|component4(){}[0] + final fun copy(com.lagradost.cloudstream3/Actor = ..., com.lagradost.cloudstream3/ActorRole? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Actor? = ...): com.lagradost.cloudstream3/ActorData // com.lagradost.cloudstream3/ActorData.copy|copy(com.lagradost.cloudstream3.Actor;com.lagradost.cloudstream3.ActorRole?;kotlin.String?;com.lagradost.cloudstream3.Actor?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/ActorData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/ActorData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/ActorData.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/AniSearch { // com.lagradost.cloudstream3/AniSearch|null[0] + constructor (com.lagradost.cloudstream3/AniSearch.Data? = ...) // com.lagradost.cloudstream3/AniSearch.|(com.lagradost.cloudstream3.AniSearch.Data?){}[0] + + final var data // com.lagradost.cloudstream3/AniSearch.data|{}data[0] + final fun (): com.lagradost.cloudstream3/AniSearch.Data? // com.lagradost.cloudstream3/AniSearch.data.|(){}[0] + final fun (com.lagradost.cloudstream3/AniSearch.Data?) // com.lagradost.cloudstream3/AniSearch.data.|(com.lagradost.cloudstream3.AniSearch.Data?){}[0] + + final fun component1(): com.lagradost.cloudstream3/AniSearch.Data? // com.lagradost.cloudstream3/AniSearch.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3/AniSearch.Data? = ...): com.lagradost.cloudstream3/AniSearch // com.lagradost.cloudstream3/AniSearch.copy|copy(com.lagradost.cloudstream3.AniSearch.Data?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.toString|toString(){}[0] + + final class Data { // com.lagradost.cloudstream3/AniSearch.Data|null[0] + constructor (com.lagradost.cloudstream3/AniSearch.Data.Page? = ...) // com.lagradost.cloudstream3/AniSearch.Data.|(com.lagradost.cloudstream3.AniSearch.Data.Page?){}[0] + + final var page // com.lagradost.cloudstream3/AniSearch.Data.page|{}page[0] + final fun (): com.lagradost.cloudstream3/AniSearch.Data.Page? // com.lagradost.cloudstream3/AniSearch.Data.page.|(){}[0] + final fun (com.lagradost.cloudstream3/AniSearch.Data.Page?) // com.lagradost.cloudstream3/AniSearch.Data.page.|(com.lagradost.cloudstream3.AniSearch.Data.Page?){}[0] + + final fun component1(): com.lagradost.cloudstream3/AniSearch.Data.Page? // com.lagradost.cloudstream3/AniSearch.Data.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3/AniSearch.Data.Page? = ...): com.lagradost.cloudstream3/AniSearch.Data // com.lagradost.cloudstream3/AniSearch.Data.copy|copy(com.lagradost.cloudstream3.AniSearch.Data.Page?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.Data.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.Data.toString|toString(){}[0] + + final class Page { // com.lagradost.cloudstream3/AniSearch.Data.Page|null[0] + constructor (kotlin.collections/ArrayList = ...) // com.lagradost.cloudstream3/AniSearch.Data.Page.|(kotlin.collections.ArrayList){}[0] + + final var media // com.lagradost.cloudstream3/AniSearch.Data.Page.media|{}media[0] + final fun (): kotlin.collections/ArrayList // com.lagradost.cloudstream3/AniSearch.Data.Page.media.|(){}[0] + final fun (kotlin.collections/ArrayList) // com.lagradost.cloudstream3/AniSearch.Data.Page.media.|(kotlin.collections.ArrayList){}[0] + + final fun component1(): kotlin.collections/ArrayList // com.lagradost.cloudstream3/AniSearch.Data.Page.component1|component1(){}[0] + final fun copy(kotlin.collections/ArrayList = ...): com.lagradost.cloudstream3/AniSearch.Data.Page // com.lagradost.cloudstream3/AniSearch.Data.Page.copy|copy(kotlin.collections.ArrayList){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.Page.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.Data.Page.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.Data.Page.toString|toString(){}[0] + + final class Media { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media|null[0] + constructor (com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.|(com.lagradost.cloudstream3.AniSearch.Data.Page.Media.Title?;kotlin.Int?;kotlin.Int?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.AniSearch.Data.Page.Media.CoverImage?;kotlin.String?){}[0] + + final var bannerImage // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.bannerImage|{}bannerImage[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.bannerImage.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.bannerImage.|(kotlin.String?){}[0] + final var coverImage // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.coverImage|{}coverImage[0] + final fun (): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.coverImage.|(){}[0] + final fun (com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.coverImage.|(com.lagradost.cloudstream3.AniSearch.Data.Page.Media.CoverImage?){}[0] + final var format // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.format|{}format[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.format.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.format.|(kotlin.String?){}[0] + final var id // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.id.|(kotlin.Int?){}[0] + final var idMal // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.idMal|{}idMal[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.idMal.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.idMal.|(kotlin.Int?){}[0] + final var seasonYear // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.seasonYear|{}seasonYear[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.seasonYear.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.seasonYear.|(kotlin.Int?){}[0] + final var title // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.title|{}title[0] + final fun (): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.title.|(){}[0] + final fun (com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.title.|(com.lagradost.cloudstream3.AniSearch.Data.Page.Media.Title?){}[0] + + final fun component1(): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.component7|component7(){}[0] + final fun copy(com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage? = ..., kotlin/String? = ...): com.lagradost.cloudstream3/AniSearch.Data.Page.Media // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.copy|copy(com.lagradost.cloudstream3.AniSearch.Data.Page.Media.Title?;kotlin.Int?;kotlin.Int?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.AniSearch.Data.Page.Media.CoverImage?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.toString|toString(){}[0] + + final class CoverImage { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.|(kotlin.String?;kotlin.String?){}[0] + + final var extraLarge // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.extraLarge|{}extraLarge[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.extraLarge.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.extraLarge.|(kotlin.String?){}[0] + final var large // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.large|{}large[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.large.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.large.|(kotlin.String?){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch.Data.Page.Media.CoverImage){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.CoverImage.Companion.serializer|serializer(){}[0] + } + } + + final class Title { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.|(kotlin.String?;kotlin.String?){}[0] + + final var english // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.english|{}english[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.english.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.english.|(kotlin.String?){}[0] + final var romaji // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.romaji|{}romaji[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.romaji.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.romaji.|(kotlin.String?){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.hashCode|hashCode(){}[0] + final fun isMatchingTitles(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.isMatchingTitles|isMatchingTitles(kotlin.String?){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch.Data.Page.Media.Title){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Title.Companion.serializer|serializer(){}[0] + } + } + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch.Data.Page.Media // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch.Data.Page.Media) // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch.Data.Page.Media){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Data.Page.Media.Companion.serializer|serializer(){}[0] + } + } + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch.Data.Page // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch.Data.Page) // com.lagradost.cloudstream3/AniSearch.Data.Page.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch.Data.Page){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Data.Page.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3/AniSearch.Data.Page.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Data.Page.Companion.serializer|serializer(){}[0] + } + } + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.Data.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.Data.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.Data.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.Data.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch.Data // com.lagradost.cloudstream3/AniSearch.Data.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch.Data) // com.lagradost.cloudstream3/AniSearch.Data.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch.Data){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Data.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Data.Companion.serializer|serializer(){}[0] + } + } + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AniSearch.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AniSearch.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AniSearch.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AniSearch.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AniSearch // com.lagradost.cloudstream3/AniSearch.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AniSearch) // com.lagradost.cloudstream3/AniSearch.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AniSearch){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AniSearch.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AniSearch.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/AnimeLoadResponse : com.lagradost.cloudstream3/EpisodeResponse, com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/AnimeLoadResponse|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/MutableMap> = ..., com.lagradost.cloudstream3/ShowStatus? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/NextAiring? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...) // com.lagradost.cloudstream3/AnimeLoadResponse.|(kotlin.String?;kotlin.String?;kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.String?;kotlin.Int?;kotlin.collections.MutableMap>;com.lagradost.cloudstream3.ShowStatus?;kotlin.String?;kotlin.collections.List?;kotlin.collections.List?;com.lagradost.cloudstream3.Score?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;com.lagradost.cloudstream3.NextAiring?;kotlin.collections.List?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + + final var actors // com.lagradost.cloudstream3/AnimeLoadResponse.actors|{}actors[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.actors.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/AnimeLoadResponse.actors.|(kotlin.collections.List?){}[0] + final var apiName // com.lagradost.cloudstream3/AnimeLoadResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.apiName.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/AnimeLoadResponse.apiName.|(kotlin.String){}[0] + final var backgroundPosterUrl // com.lagradost.cloudstream3/AnimeLoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.backgroundPosterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + final var comingSoon // com.lagradost.cloudstream3/AnimeLoadResponse.comingSoon|{}comingSoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/AnimeLoadResponse.comingSoon.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/AnimeLoadResponse.comingSoon.|(kotlin.Boolean){}[0] + final var contentRating // com.lagradost.cloudstream3/AnimeLoadResponse.contentRating|{}contentRating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.contentRating.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.contentRating.|(kotlin.String?){}[0] + final var duration // com.lagradost.cloudstream3/AnimeLoadResponse.duration|{}duration[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AnimeLoadResponse.duration.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AnimeLoadResponse.duration.|(kotlin.Int?){}[0] + final var engName // com.lagradost.cloudstream3/AnimeLoadResponse.engName|{}engName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.engName.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.engName.|(kotlin.String?){}[0] + final var episodes // com.lagradost.cloudstream3/AnimeLoadResponse.episodes|{}episodes[0] + final fun (): kotlin.collections/MutableMap> // com.lagradost.cloudstream3/AnimeLoadResponse.episodes.|(){}[0] + final fun (kotlin.collections/MutableMap>) // com.lagradost.cloudstream3/AnimeLoadResponse.episodes.|(kotlin.collections.MutableMap>){}[0] + final var japName // com.lagradost.cloudstream3/AnimeLoadResponse.japName|{}japName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.japName.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.japName.|(kotlin.String?){}[0] + final var logoUrl // com.lagradost.cloudstream3/AnimeLoadResponse.logoUrl|{}logoUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.logoUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.logoUrl.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/AnimeLoadResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/AnimeLoadResponse.name.|(kotlin.String){}[0] + final var nextAiring // com.lagradost.cloudstream3/AnimeLoadResponse.nextAiring|{}nextAiring[0] + final fun (): com.lagradost.cloudstream3/NextAiring? // com.lagradost.cloudstream3/AnimeLoadResponse.nextAiring.|(){}[0] + final fun (com.lagradost.cloudstream3/NextAiring?) // com.lagradost.cloudstream3/AnimeLoadResponse.nextAiring.|(com.lagradost.cloudstream3.NextAiring?){}[0] + final var plot // com.lagradost.cloudstream3/AnimeLoadResponse.plot|{}plot[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.plot.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.plot.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/AnimeLoadResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/AnimeLoadResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/AnimeLoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/AnimeLoadResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeLoadResponse.posterUrl.|(kotlin.String?){}[0] + final var recommendations // com.lagradost.cloudstream3/AnimeLoadResponse.recommendations|{}recommendations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.recommendations.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/AnimeLoadResponse.recommendations.|(kotlin.collections.List?){}[0] + final var score // com.lagradost.cloudstream3/AnimeLoadResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/AnimeLoadResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/AnimeLoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var seasonNames // com.lagradost.cloudstream3/AnimeLoadResponse.seasonNames|{}seasonNames[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.seasonNames.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/AnimeLoadResponse.seasonNames.|(kotlin.collections.List?){}[0] + final var showStatus // com.lagradost.cloudstream3/AnimeLoadResponse.showStatus|{}showStatus[0] + final fun (): com.lagradost.cloudstream3/ShowStatus? // com.lagradost.cloudstream3/AnimeLoadResponse.showStatus.|(){}[0] + final fun (com.lagradost.cloudstream3/ShowStatus?) // com.lagradost.cloudstream3/AnimeLoadResponse.showStatus.|(com.lagradost.cloudstream3.ShowStatus?){}[0] + final var syncData // com.lagradost.cloudstream3/AnimeLoadResponse.syncData|{}syncData[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/AnimeLoadResponse.syncData.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/AnimeLoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + final var synonyms // com.lagradost.cloudstream3/AnimeLoadResponse.synonyms|{}synonyms[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.synonyms.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/AnimeLoadResponse.synonyms.|(kotlin.collections.List?){}[0] + final var tags // com.lagradost.cloudstream3/AnimeLoadResponse.tags|{}tags[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.tags.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/AnimeLoadResponse.tags.|(kotlin.collections.List?){}[0] + final var trailers // com.lagradost.cloudstream3/AnimeLoadResponse.trailers|{}trailers[0] + final fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/AnimeLoadResponse.trailers.|(){}[0] + final fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/AnimeLoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + final var type // com.lagradost.cloudstream3/AnimeLoadResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/AnimeLoadResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/AnimeLoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + final var uniqueUrl // com.lagradost.cloudstream3/AnimeLoadResponse.uniqueUrl|{}uniqueUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.uniqueUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/AnimeLoadResponse.uniqueUrl.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/AnimeLoadResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/AnimeLoadResponse.url.|(kotlin.String){}[0] + final var year // com.lagradost.cloudstream3/AnimeLoadResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AnimeLoadResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AnimeLoadResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component1|component1(){}[0] + final fun component10(): com.lagradost.cloudstream3/ShowStatus? // com.lagradost.cloudstream3/AnimeLoadResponse.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component11|component11(){}[0] + final fun component12(): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.component12|component12(){}[0] + final fun component13(): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.component13|component13(){}[0] + final fun component14(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/AnimeLoadResponse.component14|component14(){}[0] + final fun component15(): kotlin/Int? // com.lagradost.cloudstream3/AnimeLoadResponse.component15|component15(){}[0] + final fun component16(): kotlin.collections/MutableList // com.lagradost.cloudstream3/AnimeLoadResponse.component16|component16(){}[0] + final fun component17(): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.component17|component17(){}[0] + final fun component18(): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.component18|component18(){}[0] + final fun component19(): kotlin/Boolean // com.lagradost.cloudstream3/AnimeLoadResponse.component19|component19(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component2|component2(){}[0] + final fun component20(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/AnimeLoadResponse.component20|component20(){}[0] + final fun component21(): kotlin.collections/Map? // com.lagradost.cloudstream3/AnimeLoadResponse.component21|component21(){}[0] + final fun component22(): com.lagradost.cloudstream3/NextAiring? // com.lagradost.cloudstream3/AnimeLoadResponse.component22|component22(){}[0] + final fun component23(): kotlin.collections/List? // com.lagradost.cloudstream3/AnimeLoadResponse.component23|component23(){}[0] + final fun component24(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component24|component24(){}[0] + final fun component25(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component25|component25(){}[0] + final fun component26(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component26|component26(){}[0] + final fun component27(): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.component27|component27(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/AnimeLoadResponse.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3/AnimeLoadResponse.component7|component7(){}[0] + final fun component8(): kotlin/Int? // com.lagradost.cloudstream3/AnimeLoadResponse.component8|component8(){}[0] + final fun component9(): kotlin.collections/MutableMap> // com.lagradost.cloudstream3/AnimeLoadResponse.component9|component9(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/MutableMap> = ..., com.lagradost.cloudstream3/ShowStatus? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/NextAiring? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...): com.lagradost.cloudstream3/AnimeLoadResponse // com.lagradost.cloudstream3/AnimeLoadResponse.copy|copy(kotlin.String?;kotlin.String?;kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.String?;kotlin.Int?;kotlin.collections.MutableMap>;com.lagradost.cloudstream3.ShowStatus?;kotlin.String?;kotlin.collections.List?;kotlin.collections.List?;com.lagradost.cloudstream3.Score?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;com.lagradost.cloudstream3.NextAiring?;kotlin.collections.List?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AnimeLoadResponse.equals|equals(kotlin.Any?){}[0] + final fun getLatestEpisodes(): kotlin.collections/Map // com.lagradost.cloudstream3/AnimeLoadResponse.getLatestEpisodes|getLatestEpisodes(){}[0] + final fun getTotalEpisodeIndex(kotlin/Int, kotlin/Int): kotlin/Int // com.lagradost.cloudstream3/AnimeLoadResponse.getTotalEpisodeIndex|getTotalEpisodeIndex(kotlin.Int;kotlin.Int){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AnimeLoadResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AnimeLoadResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/AnimeSearchResponse : com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/AnimeSearchResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/MutableSet? = ..., kotlin/String? = ..., kotlin.collections/MutableMap = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...) // com.lagradost.cloudstream3/AnimeSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.collections.MutableSet?;kotlin.String?;kotlin.collections.MutableMap;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + + final val apiName // com.lagradost.cloudstream3/AnimeSearchResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.apiName.|(){}[0] + final val name // com.lagradost.cloudstream3/AnimeSearchResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.name.|(){}[0] + final val url // com.lagradost.cloudstream3/AnimeSearchResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.url.|(){}[0] + + final var dubStatus // com.lagradost.cloudstream3/AnimeSearchResponse.dubStatus|{}dubStatus[0] + final fun (): kotlin.collections/MutableSet? // com.lagradost.cloudstream3/AnimeSearchResponse.dubStatus.|(){}[0] + final fun (kotlin.collections/MutableSet?) // com.lagradost.cloudstream3/AnimeSearchResponse.dubStatus.|(kotlin.collections.MutableSet?){}[0] + final var episodes // com.lagradost.cloudstream3/AnimeSearchResponse.episodes|{}episodes[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/AnimeSearchResponse.episodes.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/AnimeSearchResponse.episodes.|(kotlin.collections.MutableMap){}[0] + final var id // com.lagradost.cloudstream3/AnimeSearchResponse.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AnimeSearchResponse.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AnimeSearchResponse.id.|(kotlin.Int?){}[0] + final var otherName // com.lagradost.cloudstream3/AnimeSearchResponse.otherName|{}otherName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeSearchResponse.otherName.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeSearchResponse.otherName.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/AnimeSearchResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/AnimeSearchResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/AnimeSearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/AnimeSearchResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/AnimeSearchResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/AnimeSearchResponse.posterUrl.|(kotlin.String?){}[0] + final var quality // com.lagradost.cloudstream3/AnimeSearchResponse.quality|{}quality[0] + final fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/AnimeSearchResponse.quality.|(){}[0] + final fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/AnimeSearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + final var score // com.lagradost.cloudstream3/AnimeSearchResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/AnimeSearchResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/AnimeSearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var type // com.lagradost.cloudstream3/AnimeSearchResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/AnimeSearchResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/AnimeSearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] + final var year // com.lagradost.cloudstream3/AnimeSearchResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/AnimeSearchResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/AnimeSearchResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.component1|component1(){}[0] + final fun component10(): kotlin/Int? // com.lagradost.cloudstream3/AnimeSearchResponse.component10|component10(){}[0] + final fun component11(): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/AnimeSearchResponse.component11|component11(){}[0] + final fun component12(): kotlin.collections/Map? // com.lagradost.cloudstream3/AnimeSearchResponse.component12|component12(){}[0] + final fun component13(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/AnimeSearchResponse.component13|component13(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/AnimeSearchResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/AnimeSearchResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/AnimeSearchResponse.component6|component6(){}[0] + final fun component7(): kotlin.collections/MutableSet? // com.lagradost.cloudstream3/AnimeSearchResponse.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3/AnimeSearchResponse.component8|component8(){}[0] + final fun component9(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/AnimeSearchResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/MutableSet? = ..., kotlin/String? = ..., kotlin.collections/MutableMap = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...): com.lagradost.cloudstream3/AnimeSearchResponse // com.lagradost.cloudstream3/AnimeSearchResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.collections.MutableSet?;kotlin.String?;kotlin.collections.MutableMap;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AnimeSearchResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AnimeSearchResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AnimeSearchResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/AudioFile { // com.lagradost.cloudstream3/AudioFile|null[0] + final var headers // com.lagradost.cloudstream3/AudioFile.headers|{}headers[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/AudioFile.headers.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/AudioFile.headers.|(kotlin.collections.Map?){}[0] + final var url // com.lagradost.cloudstream3/AudioFile.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AudioFile.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/AudioFile.url.|(kotlin.String){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/AudioFile.component1|component1(){}[0] + final fun component2(): kotlin.collections/Map? // com.lagradost.cloudstream3/AudioFile.component2|component2(){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/AudioFile.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/AudioFile.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/AudioFile.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/AudioFile.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/AudioFile.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/AudioFile.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/AudioFile.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/AudioFile // com.lagradost.cloudstream3/AudioFile.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/AudioFile) // com.lagradost.cloudstream3/AudioFile.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.AudioFile){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/AudioFile.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3/AudioFile.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/AudioFile.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/Episode { // com.lagradost.cloudstream3/Episode|null[0] + constructor (kotlin/String, kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3/Episode.|(kotlin.String;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.Score?;kotlin.String?;kotlin.Long?;kotlin.Int?){}[0] + + final var data // com.lagradost.cloudstream3/Episode.data|{}data[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/Episode.data.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/Episode.data.|(kotlin.String){}[0] + final var date // com.lagradost.cloudstream3/Episode.date|{}date[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3/Episode.date.|(){}[0] + final fun (kotlin/Long?) // com.lagradost.cloudstream3/Episode.date.|(kotlin.Long?){}[0] + final var description // com.lagradost.cloudstream3/Episode.description|{}description[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Episode.description.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/Episode.description.|(kotlin.String?){}[0] + final var episode // com.lagradost.cloudstream3/Episode.episode|{}episode[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/Episode.episode.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/Episode.episode.|(kotlin.Int?){}[0] + final var name // com.lagradost.cloudstream3/Episode.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Episode.name.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/Episode.name.|(kotlin.String?){}[0] + final var posterUrl // com.lagradost.cloudstream3/Episode.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Episode.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/Episode.posterUrl.|(kotlin.String?){}[0] + final var rating // com.lagradost.cloudstream3/Episode.rating|{}rating[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/Episode.rating.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/Episode.rating.|(kotlin.Int?){}[0] + final var runTime // com.lagradost.cloudstream3/Episode.runTime|{}runTime[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/Episode.runTime.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/Episode.runTime.|(kotlin.Int?){}[0] + final var score // com.lagradost.cloudstream3/Episode.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Episode.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/Episode.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var season // com.lagradost.cloudstream3/Episode.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/Episode.season.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/Episode.season.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/Episode.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/Episode.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3/Episode.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3/Episode.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/Episode.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Episode.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3/Episode.component7|component7(){}[0] + final fun component8(): kotlin/Long? // com.lagradost.cloudstream3/Episode.component8|component8(){}[0] + final fun component9(): kotlin/Int? // com.lagradost.cloudstream3/Episode.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3/Episode // com.lagradost.cloudstream3/Episode.copy|copy(kotlin.String;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.Score?;kotlin.String?;kotlin.Long?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/Episode.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/Episode.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/Episode.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/ErrorLoadingException : kotlin/Exception { // com.lagradost.cloudstream3/ErrorLoadingException|null[0] + constructor (kotlin/String? = ...) // com.lagradost.cloudstream3/ErrorLoadingException.|(kotlin.String?){}[0] +} + +final class com.lagradost.cloudstream3/HomePageList { // com.lagradost.cloudstream3/HomePageList|null[0] + constructor (kotlin/String, kotlin.collections/List, kotlin/Boolean = ...) // com.lagradost.cloudstream3/HomePageList.|(kotlin.String;kotlin.collections.List;kotlin.Boolean){}[0] + + final val isHorizontalImages // com.lagradost.cloudstream3/HomePageList.isHorizontalImages|{}isHorizontalImages[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/HomePageList.isHorizontalImages.|(){}[0] + final val name // com.lagradost.cloudstream3/HomePageList.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/HomePageList.name.|(){}[0] + + final var list // com.lagradost.cloudstream3/HomePageList.list|{}list[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3/HomePageList.list.|(){}[0] + final fun (kotlin.collections/List) // com.lagradost.cloudstream3/HomePageList.list.|(kotlin.collections.List){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/HomePageList.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3/HomePageList.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3/HomePageList.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin.collections/List = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/HomePageList // com.lagradost.cloudstream3/HomePageList.copy|copy(kotlin.String;kotlin.collections.List;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/HomePageList.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/HomePageList.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/HomePageList.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/HomePageResponse { // com.lagradost.cloudstream3/HomePageResponse|null[0] + constructor (kotlin.collections/List, kotlin/Boolean = ...) // com.lagradost.cloudstream3/HomePageResponse.|(kotlin.collections.List;kotlin.Boolean){}[0] + + final val hasNext // com.lagradost.cloudstream3/HomePageResponse.hasNext|{}hasNext[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/HomePageResponse.hasNext.|(){}[0] + final val items // com.lagradost.cloudstream3/HomePageResponse.items|{}items[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3/HomePageResponse.items.|(){}[0] + + final fun component1(): kotlin.collections/List // com.lagradost.cloudstream3/HomePageResponse.component1|component1(){}[0] + final fun component2(): kotlin/Boolean // com.lagradost.cloudstream3/HomePageResponse.component2|component2(){}[0] + final fun copy(kotlin.collections/List = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3/HomePageResponse.copy|copy(kotlin.collections.List;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/HomePageResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/HomePageResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/HomePageResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/LiveSearchResponse : com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/LiveSearchResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ...) // com.lagradost.cloudstream3/LiveSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;kotlin.String?;com.lagradost.cloudstream3.Score?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType?, kotlin/String?, kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3/LiveSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;kotlin.String?){}[0] + + final val apiName // com.lagradost.cloudstream3/LiveSearchResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.apiName.|(){}[0] + final val name // com.lagradost.cloudstream3/LiveSearchResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.name.|(){}[0] + final val url // com.lagradost.cloudstream3/LiveSearchResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.url.|(){}[0] + + final var id // com.lagradost.cloudstream3/LiveSearchResponse.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/LiveSearchResponse.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/LiveSearchResponse.id.|(kotlin.Int?){}[0] + final var lang // com.lagradost.cloudstream3/LiveSearchResponse.lang|{}lang[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveSearchResponse.lang.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveSearchResponse.lang.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/LiveSearchResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/LiveSearchResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/LiveSearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/LiveSearchResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveSearchResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveSearchResponse.posterUrl.|(kotlin.String?){}[0] + final var quality // com.lagradost.cloudstream3/LiveSearchResponse.quality|{}quality[0] + final fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/LiveSearchResponse.quality.|(){}[0] + final fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/LiveSearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + final var score // com.lagradost.cloudstream3/LiveSearchResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/LiveSearchResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/LiveSearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var type // com.lagradost.cloudstream3/LiveSearchResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/LiveSearchResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/LiveSearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.component1|component1(){}[0] + final fun component10(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/LiveSearchResponse.component10|component10(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/LiveSearchResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/LiveSearchResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/LiveSearchResponse.component6|component6(){}[0] + final fun component7(): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/LiveSearchResponse.component7|component7(){}[0] + final fun component8(): kotlin.collections/Map? // com.lagradost.cloudstream3/LiveSearchResponse.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3/LiveSearchResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ...): com.lagradost.cloudstream3/LiveSearchResponse // com.lagradost.cloudstream3/LiveSearchResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;kotlin.String?;com.lagradost.cloudstream3.Score?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/LiveSearchResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/LiveSearchResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/LiveSearchResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/LiveStreamLoadResponse : com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/LiveStreamLoadResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/TvType = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...) // com.lagradost.cloudstream3/LiveStreamLoadResponse.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.TvType;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + + final var actors // com.lagradost.cloudstream3/LiveStreamLoadResponse.actors|{}actors[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.actors.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.actors.|(kotlin.collections.List?){}[0] + final var apiName // com.lagradost.cloudstream3/LiveStreamLoadResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.apiName.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LiveStreamLoadResponse.apiName.|(kotlin.String){}[0] + final var backgroundPosterUrl // com.lagradost.cloudstream3/LiveStreamLoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.backgroundPosterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + final var comingSoon // com.lagradost.cloudstream3/LiveStreamLoadResponse.comingSoon|{}comingSoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/LiveStreamLoadResponse.comingSoon.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/LiveStreamLoadResponse.comingSoon.|(kotlin.Boolean){}[0] + final var contentRating // com.lagradost.cloudstream3/LiveStreamLoadResponse.contentRating|{}contentRating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.contentRating.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.contentRating.|(kotlin.String?){}[0] + final var dataUrl // com.lagradost.cloudstream3/LiveStreamLoadResponse.dataUrl|{}dataUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.dataUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LiveStreamLoadResponse.dataUrl.|(kotlin.String){}[0] + final var duration // com.lagradost.cloudstream3/LiveStreamLoadResponse.duration|{}duration[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/LiveStreamLoadResponse.duration.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.duration.|(kotlin.Int?){}[0] + final var logoUrl // com.lagradost.cloudstream3/LiveStreamLoadResponse.logoUrl|{}logoUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.logoUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.logoUrl.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/LiveStreamLoadResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LiveStreamLoadResponse.name.|(kotlin.String){}[0] + final var plot // com.lagradost.cloudstream3/LiveStreamLoadResponse.plot|{}plot[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.plot.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.plot.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.posterUrl.|(kotlin.String?){}[0] + final var recommendations // com.lagradost.cloudstream3/LiveStreamLoadResponse.recommendations|{}recommendations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.recommendations.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.recommendations.|(kotlin.collections.List?){}[0] + final var score // com.lagradost.cloudstream3/LiveStreamLoadResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/LiveStreamLoadResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var syncData // com.lagradost.cloudstream3/LiveStreamLoadResponse.syncData|{}syncData[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/LiveStreamLoadResponse.syncData.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/LiveStreamLoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + final var tags // com.lagradost.cloudstream3/LiveStreamLoadResponse.tags|{}tags[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.tags.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.tags.|(kotlin.collections.List?){}[0] + final var trailers // com.lagradost.cloudstream3/LiveStreamLoadResponse.trailers|{}trailers[0] + final fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/LiveStreamLoadResponse.trailers.|(){}[0] + final fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/LiveStreamLoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + final var type // com.lagradost.cloudstream3/LiveStreamLoadResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/LiveStreamLoadResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/LiveStreamLoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + final var uniqueUrl // com.lagradost.cloudstream3/LiveStreamLoadResponse.uniqueUrl|{}uniqueUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.uniqueUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LiveStreamLoadResponse.uniqueUrl.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/LiveStreamLoadResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/LiveStreamLoadResponse.url.|(kotlin.String){}[0] + final var year // com.lagradost.cloudstream3/LiveStreamLoadResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/LiveStreamLoadResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/LiveStreamLoadResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.component1|component1(){}[0] + final fun component10(): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component10|component10(){}[0] + final fun component11(): kotlin/Int? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component11|component11(){}[0] + final fun component12(): kotlin.collections/MutableList // com.lagradost.cloudstream3/LiveStreamLoadResponse.component12|component12(){}[0] + final fun component13(): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component13|component13(){}[0] + final fun component14(): kotlin.collections/List? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component14|component14(){}[0] + final fun component15(): kotlin/Boolean // com.lagradost.cloudstream3/LiveStreamLoadResponse.component15|component15(){}[0] + final fun component16(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/LiveStreamLoadResponse.component16|component16(){}[0] + final fun component17(): kotlin.collections/Map? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component17|component17(){}[0] + final fun component18(): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component18|component18(){}[0] + final fun component19(): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component19|component19(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.component2|component2(){}[0] + final fun component20(): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component20|component20(){}[0] + final fun component21(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.component21|component21(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component7|component7(){}[0] + final fun component8(): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/LiveStreamLoadResponse.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/LiveStreamLoadResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/TvType = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...): com.lagradost.cloudstream3/LiveStreamLoadResponse // com.lagradost.cloudstream3/LiveStreamLoadResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.TvType;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/LiveStreamLoadResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/LiveStreamLoadResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/LiveStreamLoadResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/MainPageData { // com.lagradost.cloudstream3/MainPageData|null[0] + constructor (kotlin/String, kotlin/String, kotlin/Boolean = ...) // com.lagradost.cloudstream3/MainPageData.|(kotlin.String;kotlin.String;kotlin.Boolean){}[0] + + final val data // com.lagradost.cloudstream3/MainPageData.data|{}data[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MainPageData.data.|(){}[0] + final val horizontalImages // com.lagradost.cloudstream3/MainPageData.horizontalImages|{}horizontalImages[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainPageData.horizontalImages.|(){}[0] + final val name // com.lagradost.cloudstream3/MainPageData.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MainPageData.name.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/MainPageData.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/MainPageData.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3/MainPageData.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/MainPageData // com.lagradost.cloudstream3/MainPageData.copy|copy(kotlin.String;kotlin.String;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/MainPageData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/MainPageData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/MainPageData.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/MainPageRequest { // com.lagradost.cloudstream3/MainPageRequest|null[0] + constructor (kotlin/String, kotlin/String, kotlin/Boolean) // com.lagradost.cloudstream3/MainPageRequest.|(kotlin.String;kotlin.String;kotlin.Boolean){}[0] + + final val data // com.lagradost.cloudstream3/MainPageRequest.data|{}data[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MainPageRequest.data.|(){}[0] + final val horizontalImages // com.lagradost.cloudstream3/MainPageRequest.horizontalImages|{}horizontalImages[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/MainPageRequest.horizontalImages.|(){}[0] + final val name // com.lagradost.cloudstream3/MainPageRequest.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MainPageRequest.name.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/MainPageRequest.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/MainPageRequest.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3/MainPageRequest.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/MainPageRequest // com.lagradost.cloudstream3/MainPageRequest.copy|copy(kotlin.String;kotlin.String;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/MainPageRequest.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/MainPageRequest.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/MainPageRequest.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/MovieLoadResponse : com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/MovieLoadResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin/String, kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...) // com.lagradost.cloudstream3/MovieLoadResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.String;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + + final var actors // com.lagradost.cloudstream3/MovieLoadResponse.actors|{}actors[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.actors.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/MovieLoadResponse.actors.|(kotlin.collections.List?){}[0] + final var apiName // com.lagradost.cloudstream3/MovieLoadResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.apiName.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/MovieLoadResponse.apiName.|(kotlin.String){}[0] + final var backgroundPosterUrl // com.lagradost.cloudstream3/MovieLoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.backgroundPosterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieLoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + final var comingSoon // com.lagradost.cloudstream3/MovieLoadResponse.comingSoon|{}comingSoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/MovieLoadResponse.comingSoon.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/MovieLoadResponse.comingSoon.|(kotlin.Boolean){}[0] + final var contentRating // com.lagradost.cloudstream3/MovieLoadResponse.contentRating|{}contentRating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.contentRating.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieLoadResponse.contentRating.|(kotlin.String?){}[0] + final var dataUrl // com.lagradost.cloudstream3/MovieLoadResponse.dataUrl|{}dataUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.dataUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/MovieLoadResponse.dataUrl.|(kotlin.String){}[0] + final var duration // com.lagradost.cloudstream3/MovieLoadResponse.duration|{}duration[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/MovieLoadResponse.duration.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/MovieLoadResponse.duration.|(kotlin.Int?){}[0] + final var logoUrl // com.lagradost.cloudstream3/MovieLoadResponse.logoUrl|{}logoUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.logoUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieLoadResponse.logoUrl.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/MovieLoadResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/MovieLoadResponse.name.|(kotlin.String){}[0] + final var plot // com.lagradost.cloudstream3/MovieLoadResponse.plot|{}plot[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.plot.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieLoadResponse.plot.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/MovieLoadResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/MovieLoadResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/MovieLoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/MovieLoadResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieLoadResponse.posterUrl.|(kotlin.String?){}[0] + final var recommendations // com.lagradost.cloudstream3/MovieLoadResponse.recommendations|{}recommendations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.recommendations.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/MovieLoadResponse.recommendations.|(kotlin.collections.List?){}[0] + final var score // com.lagradost.cloudstream3/MovieLoadResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/MovieLoadResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/MovieLoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var syncData // com.lagradost.cloudstream3/MovieLoadResponse.syncData|{}syncData[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/MovieLoadResponse.syncData.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/MovieLoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + final var tags // com.lagradost.cloudstream3/MovieLoadResponse.tags|{}tags[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.tags.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/MovieLoadResponse.tags.|(kotlin.collections.List?){}[0] + final var trailers // com.lagradost.cloudstream3/MovieLoadResponse.trailers|{}trailers[0] + final fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/MovieLoadResponse.trailers.|(){}[0] + final fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/MovieLoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + final var type // com.lagradost.cloudstream3/MovieLoadResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/MovieLoadResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/MovieLoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + final var uniqueUrl // com.lagradost.cloudstream3/MovieLoadResponse.uniqueUrl|{}uniqueUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.uniqueUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/MovieLoadResponse.uniqueUrl.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/MovieLoadResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/MovieLoadResponse.url.|(kotlin.String){}[0] + final var year // com.lagradost.cloudstream3/MovieLoadResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/MovieLoadResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/MovieLoadResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.component1|component1(){}[0] + final fun component10(): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.component10|component10(){}[0] + final fun component11(): kotlin/Int? // com.lagradost.cloudstream3/MovieLoadResponse.component11|component11(){}[0] + final fun component12(): kotlin.collections/MutableList // com.lagradost.cloudstream3/MovieLoadResponse.component12|component12(){}[0] + final fun component13(): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.component13|component13(){}[0] + final fun component14(): kotlin.collections/List? // com.lagradost.cloudstream3/MovieLoadResponse.component14|component14(){}[0] + final fun component15(): kotlin/Boolean // com.lagradost.cloudstream3/MovieLoadResponse.component15|component15(){}[0] + final fun component16(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/MovieLoadResponse.component16|component16(){}[0] + final fun component17(): kotlin.collections/Map? // com.lagradost.cloudstream3/MovieLoadResponse.component17|component17(){}[0] + final fun component18(): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.component18|component18(){}[0] + final fun component19(): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.component19|component19(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.component2|component2(){}[0] + final fun component20(): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.component20|component20(){}[0] + final fun component21(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.component21|component21(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/MovieLoadResponse.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3/MovieLoadResponse.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3/MovieLoadResponse.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/MovieLoadResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...): com.lagradost.cloudstream3/MovieLoadResponse // com.lagradost.cloudstream3/MovieLoadResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.String;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/MovieLoadResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/MovieLoadResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/MovieLoadResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/MovieSearchResponse : com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/MovieSearchResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...) // com.lagradost.cloudstream3/MovieSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType?, kotlin/String?, kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ...) // com.lagradost.cloudstream3/MovieSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?){}[0] + + final val apiName // com.lagradost.cloudstream3/MovieSearchResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.apiName.|(){}[0] + final val name // com.lagradost.cloudstream3/MovieSearchResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.name.|(){}[0] + final val url // com.lagradost.cloudstream3/MovieSearchResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.url.|(){}[0] + + final var id // com.lagradost.cloudstream3/MovieSearchResponse.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/MovieSearchResponse.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/MovieSearchResponse.id.|(kotlin.Int?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/MovieSearchResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/MovieSearchResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/MovieSearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/MovieSearchResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/MovieSearchResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/MovieSearchResponse.posterUrl.|(kotlin.String?){}[0] + final var quality // com.lagradost.cloudstream3/MovieSearchResponse.quality|{}quality[0] + final fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/MovieSearchResponse.quality.|(){}[0] + final fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/MovieSearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + final var score // com.lagradost.cloudstream3/MovieSearchResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/MovieSearchResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/MovieSearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var type // com.lagradost.cloudstream3/MovieSearchResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/MovieSearchResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/MovieSearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] + final var year // com.lagradost.cloudstream3/MovieSearchResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/MovieSearchResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/MovieSearchResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.component1|component1(){}[0] + final fun component10(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/MovieSearchResponse.component10|component10(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/MovieSearchResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/MovieSearchResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/MovieSearchResponse.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3/MovieSearchResponse.component7|component7(){}[0] + final fun component8(): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/MovieSearchResponse.component8|component8(){}[0] + final fun component9(): kotlin.collections/Map? // com.lagradost.cloudstream3/MovieSearchResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...): com.lagradost.cloudstream3/MovieSearchResponse // com.lagradost.cloudstream3/MovieSearchResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/MovieSearchResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/MovieSearchResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/MovieSearchResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/NextAiring { // com.lagradost.cloudstream3/NextAiring|null[0] + constructor (kotlin/Int, kotlin/Long, kotlin/Int? = ...) // com.lagradost.cloudstream3/NextAiring.|(kotlin.Int;kotlin.Long;kotlin.Int?){}[0] + + final val episode // com.lagradost.cloudstream3/NextAiring.episode|{}episode[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/NextAiring.episode.|(){}[0] + final val season // com.lagradost.cloudstream3/NextAiring.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/NextAiring.season.|(){}[0] + final val unixTime // com.lagradost.cloudstream3/NextAiring.unixTime|{}unixTime[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3/NextAiring.unixTime.|(){}[0] + + final fun component1(): kotlin/Int // com.lagradost.cloudstream3/NextAiring.component1|component1(){}[0] + final fun component2(): kotlin/Long // com.lagradost.cloudstream3/NextAiring.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3/NextAiring.component3|component3(){}[0] + final fun copy(kotlin/Int = ..., kotlin/Long = ..., kotlin/Int? = ...): com.lagradost.cloudstream3/NextAiring // com.lagradost.cloudstream3/NextAiring.copy|copy(kotlin.Int;kotlin.Long;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/NextAiring.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/NextAiring.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/NextAiring.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/ProvidersInfoJson { // com.lagradost.cloudstream3/ProvidersInfoJson|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/Int) // com.lagradost.cloudstream3/ProvidersInfoJson.|(kotlin.String;kotlin.String;kotlin.String?;kotlin.Int){}[0] + + final var credentials // com.lagradost.cloudstream3/ProvidersInfoJson.credentials|{}credentials[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/ProvidersInfoJson.credentials.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/ProvidersInfoJson.credentials.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/ProvidersInfoJson.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/ProvidersInfoJson.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/ProvidersInfoJson.name.|(kotlin.String){}[0] + final var status // com.lagradost.cloudstream3/ProvidersInfoJson.status|{}status[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/ProvidersInfoJson.status.|(){}[0] + final fun (kotlin/Int) // com.lagradost.cloudstream3/ProvidersInfoJson.status.|(kotlin.Int){}[0] + final var url // com.lagradost.cloudstream3/ProvidersInfoJson.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/ProvidersInfoJson.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/ProvidersInfoJson.url.|(kotlin.String){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/ProvidersInfoJson.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/ProvidersInfoJson.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3/ProvidersInfoJson.component3|component3(){}[0] + final fun component4(): kotlin/Int // com.lagradost.cloudstream3/ProvidersInfoJson.component4|component4(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/Int = ...): com.lagradost.cloudstream3/ProvidersInfoJson // com.lagradost.cloudstream3/ProvidersInfoJson.copy|copy(kotlin.String;kotlin.String;kotlin.String?;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/ProvidersInfoJson.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/ProvidersInfoJson.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/ProvidersInfoJson.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/ProvidersInfoJson // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/ProvidersInfoJson) // com.lagradost.cloudstream3/ProvidersInfoJson.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.ProvidersInfoJson){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/ProvidersInfoJson.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/ProvidersInfoJson.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/Score { // com.lagradost.cloudstream3/Score|null[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/Score.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/Score.hashCode|hashCode(){}[0] + final fun toByte(kotlin/Int): kotlin/Byte // com.lagradost.cloudstream3/Score.toByte|toByte(kotlin.Int){}[0] + final fun toDouble(kotlin/Int = ...): kotlin/Double // com.lagradost.cloudstream3/Score.toDouble|toDouble(kotlin.Int){}[0] + final fun toFloat(kotlin/Int = ...): kotlin/Float // com.lagradost.cloudstream3/Score.toFloat|toFloat(kotlin.Int){}[0] + final fun toInt(kotlin/Int = ...): kotlin/Int // com.lagradost.cloudstream3/Score.toInt|toInt(kotlin.Int){}[0] + final fun toLong(kotlin/Int = ...): kotlin/Long // com.lagradost.cloudstream3/Score.toLong|toLong(kotlin.Int){}[0] + final fun toOld(): kotlin/Int // com.lagradost.cloudstream3/Score.toOld|toOld(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/Score.toString|toString(){}[0] + final fun toString(kotlin/Int, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/Char = ...): kotlin/String // com.lagradost.cloudstream3/Score.toString|toString(kotlin.Int;kotlin.Int;kotlin.Boolean;kotlin.Char){}[0] + final fun toStringNull(kotlin/Double, kotlin/Int, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/Char = ...): kotlin/String? // com.lagradost.cloudstream3/Score.toStringNull|toStringNull(kotlin.Double;kotlin.Int;kotlin.Int;kotlin.Boolean;kotlin.Char){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/Score.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/Score.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/Score.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/Score.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/Score // com.lagradost.cloudstream3/Score.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/Score) // com.lagradost.cloudstream3/Score.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.Score){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/Score.Companion|null[0] + final const val MAX // com.lagradost.cloudstream3/Score.Companion.MAX|{}MAX[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/Score.Companion.MAX.|(){}[0] + final const val MAX_ZEROS // com.lagradost.cloudstream3/Score.Companion.MAX_ZEROS|{}MAX_ZEROS[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/Score.Companion.MAX_ZEROS.|(){}[0] + final const val MIN // com.lagradost.cloudstream3/Score.Companion.MIN|{}MIN[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/Score.Companion.MIN.|(){}[0] + + final fun from(kotlin/Double?, kotlin/Int): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from|from(kotlin.Double?;kotlin.Int){}[0] + final fun from(kotlin/Float?, kotlin/Int): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from|from(kotlin.Float?;kotlin.Int){}[0] + final fun from(kotlin/Int?, kotlin/Int): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from|from(kotlin.Int?;kotlin.Int){}[0] + final fun from(kotlin/String?, kotlin/Int): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from|from(kotlin.String?;kotlin.Int){}[0] + final fun from10(kotlin/Double?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from10|from10(kotlin.Double?){}[0] + final fun from10(kotlin/Float?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from10|from10(kotlin.Float?){}[0] + final fun from10(kotlin/Int?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from10|from10(kotlin.Int?){}[0] + final fun from10(kotlin/String?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from10|from10(kotlin.String?){}[0] + final fun from100(kotlin/Double?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from100|from100(kotlin.Double?){}[0] + final fun from100(kotlin/Float?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from100|from100(kotlin.Float?){}[0] + final fun from100(kotlin/Int?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from100|from100(kotlin.Int?){}[0] + final fun from100(kotlin/String?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from100|from100(kotlin.String?){}[0] + final fun from5(kotlin/Double?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from5|from5(kotlin.Double?){}[0] + final fun from5(kotlin/Float?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from5|from5(kotlin.Float?){}[0] + final fun from5(kotlin/Int?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from5|from5(kotlin.Int?){}[0] + final fun from5(kotlin/String?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.from5|from5(kotlin.String?){}[0] + final fun fromOld(kotlin/Int?): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/Score.Companion.fromOld|fromOld(kotlin.Int?){}[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/Score.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/SearchResponseList { // com.lagradost.cloudstream3/SearchResponseList|null[0] + constructor (kotlin.collections/List, kotlin/Boolean = ...) // com.lagradost.cloudstream3/SearchResponseList.|(kotlin.collections.List;kotlin.Boolean){}[0] + + final val hasNext // com.lagradost.cloudstream3/SearchResponseList.hasNext|{}hasNext[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/SearchResponseList.hasNext.|(){}[0] + final val items // com.lagradost.cloudstream3/SearchResponseList.items|{}items[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3/SearchResponseList.items.|(){}[0] + + final fun component1(): kotlin.collections/List // com.lagradost.cloudstream3/SearchResponseList.component1|component1(){}[0] + final fun component2(): kotlin/Boolean // com.lagradost.cloudstream3/SearchResponseList.component2|component2(){}[0] + final fun copy(kotlin.collections/List = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/SearchResponseList // com.lagradost.cloudstream3/SearchResponseList.copy|copy(kotlin.collections.List;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/SearchResponseList.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/SearchResponseList.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/SearchResponseList.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/SeasonData { // com.lagradost.cloudstream3/SeasonData|null[0] + constructor (kotlin/Int, kotlin/String? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3/SeasonData.|(kotlin.Int;kotlin.String?;kotlin.Int?){}[0] + + final val displaySeason // com.lagradost.cloudstream3/SeasonData.displaySeason|{}displaySeason[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/SeasonData.displaySeason.|(){}[0] + final val name // com.lagradost.cloudstream3/SeasonData.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/SeasonData.name.|(){}[0] + final val season // com.lagradost.cloudstream3/SeasonData.season|{}season[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/SeasonData.season.|(){}[0] + + final fun component1(): kotlin/Int // com.lagradost.cloudstream3/SeasonData.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/SeasonData.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3/SeasonData.component3|component3(){}[0] + final fun copy(kotlin/Int = ..., kotlin/String? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3/SeasonData // com.lagradost.cloudstream3/SeasonData.copy|copy(kotlin.Int;kotlin.String?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/SeasonData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/SeasonData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/SeasonData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/SeasonData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/SeasonData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/SeasonData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/SeasonData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/SeasonData // com.lagradost.cloudstream3/SeasonData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/SeasonData) // com.lagradost.cloudstream3/SeasonData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.SeasonData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/SeasonData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/SeasonData.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/SettingsJson { // com.lagradost.cloudstream3/SettingsJson|null[0] + constructor (kotlin/Boolean = ...) // com.lagradost.cloudstream3/SettingsJson.|(kotlin.Boolean){}[0] + + final var enableAdult // com.lagradost.cloudstream3/SettingsJson.enableAdult|{}enableAdult[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/SettingsJson.enableAdult.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/SettingsJson.enableAdult.|(kotlin.Boolean){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3/SettingsJson.component1|component1(){}[0] + final fun copy(kotlin/Boolean = ...): com.lagradost.cloudstream3/SettingsJson // com.lagradost.cloudstream3/SettingsJson.copy|copy(kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/SettingsJson.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/SettingsJson.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/SettingsJson.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3/SettingsJson.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3/SettingsJson.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3/SettingsJson.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3/SettingsJson.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3/SettingsJson // com.lagradost.cloudstream3/SettingsJson.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3/SettingsJson) // com.lagradost.cloudstream3/SettingsJson.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.SettingsJson){}[0] + } + + final object Companion { // com.lagradost.cloudstream3/SettingsJson.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3/SettingsJson.Companion.serializer|serializer(){}[0] + } +} + +final class com.lagradost.cloudstream3/SubtitleFile { // com.lagradost.cloudstream3/SubtitleFile|null[0] + constructor (kotlin/String, kotlin/String) // com.lagradost.cloudstream3/SubtitleFile.|(kotlin.String;kotlin.String){}[0] + + final val langTag // com.lagradost.cloudstream3/SubtitleFile.langTag|{}langTag[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/SubtitleFile.langTag.|(){}[0] + + final var headers // com.lagradost.cloudstream3/SubtitleFile.headers|{}headers[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/SubtitleFile.headers.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/SubtitleFile.headers.|(kotlin.collections.Map?){}[0] + final var lang // com.lagradost.cloudstream3/SubtitleFile.lang|{}lang[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/SubtitleFile.lang.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/SubtitleFile.lang.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/SubtitleFile.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/SubtitleFile.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/SubtitleFile.url.|(kotlin.String){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/SubtitleFile.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/SubtitleFile.component2|component2(){}[0] + final fun component3(): kotlin.collections/Map? // com.lagradost.cloudstream3/SubtitleFile.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3/SubtitleFile // com.lagradost.cloudstream3/SubtitleFile.copy|copy(kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/SubtitleFile.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/SubtitleFile.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/SubtitleFile.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/TorrentLoadResponse : com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/TorrentLoadResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String?, kotlin/String?, kotlin/String?, com.lagradost.cloudstream3/TvType = ..., kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...) // com.lagradost.cloudstream3/TorrentLoadResponse.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.TvType;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + + final var actors // com.lagradost.cloudstream3/TorrentLoadResponse.actors|{}actors[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.actors.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TorrentLoadResponse.actors.|(kotlin.collections.List?){}[0] + final var apiName // com.lagradost.cloudstream3/TorrentLoadResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.apiName.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TorrentLoadResponse.apiName.|(kotlin.String){}[0] + final var backgroundPosterUrl // com.lagradost.cloudstream3/TorrentLoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.backgroundPosterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + final var comingSoon // com.lagradost.cloudstream3/TorrentLoadResponse.comingSoon|{}comingSoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/TorrentLoadResponse.comingSoon.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/TorrentLoadResponse.comingSoon.|(kotlin.Boolean){}[0] + final var contentRating // com.lagradost.cloudstream3/TorrentLoadResponse.contentRating|{}contentRating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.contentRating.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.contentRating.|(kotlin.String?){}[0] + final var duration // com.lagradost.cloudstream3/TorrentLoadResponse.duration|{}duration[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TorrentLoadResponse.duration.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TorrentLoadResponse.duration.|(kotlin.Int?){}[0] + final var logoUrl // com.lagradost.cloudstream3/TorrentLoadResponse.logoUrl|{}logoUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.logoUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.logoUrl.|(kotlin.String?){}[0] + final var magnet // com.lagradost.cloudstream3/TorrentLoadResponse.magnet|{}magnet[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.magnet.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.magnet.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/TorrentLoadResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TorrentLoadResponse.name.|(kotlin.String){}[0] + final var plot // com.lagradost.cloudstream3/TorrentLoadResponse.plot|{}plot[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.plot.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.plot.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/TorrentLoadResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/TorrentLoadResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/TorrentLoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/TorrentLoadResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.posterUrl.|(kotlin.String?){}[0] + final var recommendations // com.lagradost.cloudstream3/TorrentLoadResponse.recommendations|{}recommendations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.recommendations.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TorrentLoadResponse.recommendations.|(kotlin.collections.List?){}[0] + final var score // com.lagradost.cloudstream3/TorrentLoadResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TorrentLoadResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/TorrentLoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var syncData // com.lagradost.cloudstream3/TorrentLoadResponse.syncData|{}syncData[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/TorrentLoadResponse.syncData.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/TorrentLoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + final var tags // com.lagradost.cloudstream3/TorrentLoadResponse.tags|{}tags[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.tags.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TorrentLoadResponse.tags.|(kotlin.collections.List?){}[0] + final var torrent // com.lagradost.cloudstream3/TorrentLoadResponse.torrent|{}torrent[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.torrent.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentLoadResponse.torrent.|(kotlin.String?){}[0] + final var trailers // com.lagradost.cloudstream3/TorrentLoadResponse.trailers|{}trailers[0] + final fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/TorrentLoadResponse.trailers.|(){}[0] + final fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/TorrentLoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + final var type // com.lagradost.cloudstream3/TorrentLoadResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/TorrentLoadResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/TorrentLoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + final var uniqueUrl // com.lagradost.cloudstream3/TorrentLoadResponse.uniqueUrl|{}uniqueUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.uniqueUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TorrentLoadResponse.uniqueUrl.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/TorrentLoadResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TorrentLoadResponse.url.|(kotlin.String){}[0] + final var year // com.lagradost.cloudstream3/TorrentLoadResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TorrentLoadResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TorrentLoadResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.component1|component1(){}[0] + final fun component10(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TorrentLoadResponse.component10|component10(){}[0] + final fun component11(): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.component11|component11(){}[0] + final fun component12(): kotlin/Int? // com.lagradost.cloudstream3/TorrentLoadResponse.component12|component12(){}[0] + final fun component13(): kotlin.collections/MutableList // com.lagradost.cloudstream3/TorrentLoadResponse.component13|component13(){}[0] + final fun component14(): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.component14|component14(){}[0] + final fun component15(): kotlin.collections/List? // com.lagradost.cloudstream3/TorrentLoadResponse.component15|component15(){}[0] + final fun component16(): kotlin/Boolean // com.lagradost.cloudstream3/TorrentLoadResponse.component16|component16(){}[0] + final fun component17(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/TorrentLoadResponse.component17|component17(){}[0] + final fun component18(): kotlin.collections/Map? // com.lagradost.cloudstream3/TorrentLoadResponse.component18|component18(){}[0] + final fun component19(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component19|component19(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.component2|component2(){}[0] + final fun component20(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component20|component20(){}[0] + final fun component21(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component21|component21(){}[0] + final fun component22(): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.component22|component22(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component6|component6(){}[0] + final fun component7(): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/TorrentLoadResponse.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3/TorrentLoadResponse.component8|component8(){}[0] + final fun component9(): kotlin/Int? // com.lagradost.cloudstream3/TorrentLoadResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/TvType = ..., kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...): com.lagradost.cloudstream3/TorrentLoadResponse // com.lagradost.cloudstream3/TorrentLoadResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.TvType;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/TorrentLoadResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/TorrentLoadResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/TorrentLoadResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/TorrentSearchResponse : com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/TorrentSearchResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType?, kotlin/String?, kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ...) // com.lagradost.cloudstream3/TorrentSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType?, kotlin/String?, kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...) // com.lagradost.cloudstream3/TorrentSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + + final val apiName // com.lagradost.cloudstream3/TorrentSearchResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.apiName.|(){}[0] + final val name // com.lagradost.cloudstream3/TorrentSearchResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.name.|(){}[0] + final val url // com.lagradost.cloudstream3/TorrentSearchResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.url.|(){}[0] + + final var id // com.lagradost.cloudstream3/TorrentSearchResponse.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TorrentSearchResponse.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TorrentSearchResponse.id.|(kotlin.Int?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/TorrentSearchResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/TorrentSearchResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/TorrentSearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/TorrentSearchResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TorrentSearchResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TorrentSearchResponse.posterUrl.|(kotlin.String?){}[0] + final var quality // com.lagradost.cloudstream3/TorrentSearchResponse.quality|{}quality[0] + final fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/TorrentSearchResponse.quality.|(){}[0] + final fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/TorrentSearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + final var score // com.lagradost.cloudstream3/TorrentSearchResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TorrentSearchResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/TorrentSearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var type // com.lagradost.cloudstream3/TorrentSearchResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/TorrentSearchResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/TorrentSearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/TorrentSearchResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/TorrentSearchResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/TorrentSearchResponse.component6|component6(){}[0] + final fun component7(): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/TorrentSearchResponse.component7|component7(){}[0] + final fun component8(): kotlin.collections/Map? // com.lagradost.cloudstream3/TorrentSearchResponse.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TorrentSearchResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...): com.lagradost.cloudstream3/TorrentSearchResponse // com.lagradost.cloudstream3/TorrentSearchResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/TorrentSearchResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/TorrentSearchResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/TorrentSearchResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/Tracker { // com.lagradost.cloudstream3/Tracker|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3/Tracker.|(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val aniId // com.lagradost.cloudstream3/Tracker.aniId|{}aniId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Tracker.aniId.|(){}[0] + final val cover // com.lagradost.cloudstream3/Tracker.cover|{}cover[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Tracker.cover.|(){}[0] + final val image // com.lagradost.cloudstream3/Tracker.image|{}image[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Tracker.image.|(){}[0] + final val kitsuId // com.lagradost.cloudstream3/Tracker.kitsuId|{}kitsuId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/Tracker.kitsuId.|(){}[0] + final val malId // com.lagradost.cloudstream3/Tracker.malId|{}malId[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/Tracker.malId.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3/Tracker.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/Tracker.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3/Tracker.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3/Tracker.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/Tracker.component5|component5(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3/Tracker // com.lagradost.cloudstream3/Tracker.copy|copy(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/Tracker.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/Tracker.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/Tracker.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/TrailerData { // com.lagradost.cloudstream3/TrailerData|null[0] + constructor (kotlin/String, kotlin/String?, kotlin/Boolean, kotlin.collections/Map = ...) // com.lagradost.cloudstream3/TrailerData.|(kotlin.String;kotlin.String?;kotlin.Boolean;kotlin.collections.Map){}[0] + + final val extractorUrl // com.lagradost.cloudstream3/TrailerData.extractorUrl|{}extractorUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TrailerData.extractorUrl.|(){}[0] + final val headers // com.lagradost.cloudstream3/TrailerData.headers|{}headers[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3/TrailerData.headers.|(){}[0] + final val raw // com.lagradost.cloudstream3/TrailerData.raw|{}raw[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/TrailerData.raw.|(){}[0] + final val referer // com.lagradost.cloudstream3/TrailerData.referer|{}referer[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TrailerData.referer.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/TrailerData.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3/TrailerData.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3/TrailerData.component3|component3(){}[0] + final fun component4(): kotlin.collections/Map // com.lagradost.cloudstream3/TrailerData.component4|component4(){}[0] + final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin.collections/Map = ...): com.lagradost.cloudstream3/TrailerData // com.lagradost.cloudstream3/TrailerData.copy|copy(kotlin.String;kotlin.String?;kotlin.Boolean;kotlin.collections.Map){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/TrailerData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/TrailerData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/TrailerData.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/TvSeriesLoadResponse : com.lagradost.cloudstream3/EpisodeResponse, com.lagradost.cloudstream3/LoadResponse { // com.lagradost.cloudstream3/TvSeriesLoadResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin.collections/List, kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/ShowStatus? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/NextAiring? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...) // com.lagradost.cloudstream3/TvSeriesLoadResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.collections.List;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.ShowStatus?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;com.lagradost.cloudstream3.NextAiring?;kotlin.collections.List?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + + final var actors // com.lagradost.cloudstream3/TvSeriesLoadResponse.actors|{}actors[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.actors.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.actors.|(kotlin.collections.List?){}[0] + final var apiName // com.lagradost.cloudstream3/TvSeriesLoadResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.apiName.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TvSeriesLoadResponse.apiName.|(kotlin.String){}[0] + final var backgroundPosterUrl // com.lagradost.cloudstream3/TvSeriesLoadResponse.backgroundPosterUrl|{}backgroundPosterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.backgroundPosterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.backgroundPosterUrl.|(kotlin.String?){}[0] + final var comingSoon // com.lagradost.cloudstream3/TvSeriesLoadResponse.comingSoon|{}comingSoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3/TvSeriesLoadResponse.comingSoon.|(){}[0] + final fun (kotlin/Boolean) // com.lagradost.cloudstream3/TvSeriesLoadResponse.comingSoon.|(kotlin.Boolean){}[0] + final var contentRating // com.lagradost.cloudstream3/TvSeriesLoadResponse.contentRating|{}contentRating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.contentRating.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.contentRating.|(kotlin.String?){}[0] + final var duration // com.lagradost.cloudstream3/TvSeriesLoadResponse.duration|{}duration[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesLoadResponse.duration.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.duration.|(kotlin.Int?){}[0] + final var episodes // com.lagradost.cloudstream3/TvSeriesLoadResponse.episodes|{}episodes[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3/TvSeriesLoadResponse.episodes.|(){}[0] + final fun (kotlin.collections/List) // com.lagradost.cloudstream3/TvSeriesLoadResponse.episodes.|(kotlin.collections.List){}[0] + final var logoUrl // com.lagradost.cloudstream3/TvSeriesLoadResponse.logoUrl|{}logoUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.logoUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.logoUrl.|(kotlin.String?){}[0] + final var name // com.lagradost.cloudstream3/TvSeriesLoadResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.name.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TvSeriesLoadResponse.name.|(kotlin.String){}[0] + final var nextAiring // com.lagradost.cloudstream3/TvSeriesLoadResponse.nextAiring|{}nextAiring[0] + final fun (): com.lagradost.cloudstream3/NextAiring? // com.lagradost.cloudstream3/TvSeriesLoadResponse.nextAiring.|(){}[0] + final fun (com.lagradost.cloudstream3/NextAiring?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.nextAiring.|(com.lagradost.cloudstream3.NextAiring?){}[0] + final var plot // com.lagradost.cloudstream3/TvSeriesLoadResponse.plot|{}plot[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.plot.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.plot.|(kotlin.String?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.posterUrl.|(kotlin.String?){}[0] + final var recommendations // com.lagradost.cloudstream3/TvSeriesLoadResponse.recommendations|{}recommendations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.recommendations.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.recommendations.|(kotlin.collections.List?){}[0] + final var score // com.lagradost.cloudstream3/TvSeriesLoadResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TvSeriesLoadResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var seasonNames // com.lagradost.cloudstream3/TvSeriesLoadResponse.seasonNames|{}seasonNames[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.seasonNames.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.seasonNames.|(kotlin.collections.List?){}[0] + final var showStatus // com.lagradost.cloudstream3/TvSeriesLoadResponse.showStatus|{}showStatus[0] + final fun (): com.lagradost.cloudstream3/ShowStatus? // com.lagradost.cloudstream3/TvSeriesLoadResponse.showStatus.|(){}[0] + final fun (com.lagradost.cloudstream3/ShowStatus?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.showStatus.|(com.lagradost.cloudstream3.ShowStatus?){}[0] + final var syncData // com.lagradost.cloudstream3/TvSeriesLoadResponse.syncData|{}syncData[0] + final fun (): kotlin.collections/MutableMap // com.lagradost.cloudstream3/TvSeriesLoadResponse.syncData.|(){}[0] + final fun (kotlin.collections/MutableMap) // com.lagradost.cloudstream3/TvSeriesLoadResponse.syncData.|(kotlin.collections.MutableMap){}[0] + final var tags // com.lagradost.cloudstream3/TvSeriesLoadResponse.tags|{}tags[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.tags.|(){}[0] + final fun (kotlin.collections/List?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.tags.|(kotlin.collections.List?){}[0] + final var trailers // com.lagradost.cloudstream3/TvSeriesLoadResponse.trailers|{}trailers[0] + final fun (): kotlin.collections/MutableList // com.lagradost.cloudstream3/TvSeriesLoadResponse.trailers.|(){}[0] + final fun (kotlin.collections/MutableList) // com.lagradost.cloudstream3/TvSeriesLoadResponse.trailers.|(kotlin.collections.MutableList){}[0] + final var type // com.lagradost.cloudstream3/TvSeriesLoadResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/TvSeriesLoadResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType) // com.lagradost.cloudstream3/TvSeriesLoadResponse.type.|(com.lagradost.cloudstream3.TvType){}[0] + final var uniqueUrl // com.lagradost.cloudstream3/TvSeriesLoadResponse.uniqueUrl|{}uniqueUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.uniqueUrl.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TvSeriesLoadResponse.uniqueUrl.|(kotlin.String){}[0] + final var url // com.lagradost.cloudstream3/TvSeriesLoadResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.url.|(){}[0] + final fun (kotlin/String) // com.lagradost.cloudstream3/TvSeriesLoadResponse.url.|(kotlin.String){}[0] + final var year // com.lagradost.cloudstream3/TvSeriesLoadResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesLoadResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TvSeriesLoadResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.component1|component1(){}[0] + final fun component10(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component10|component10(){}[0] + final fun component11(): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component11|component11(){}[0] + final fun component12(): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component12|component12(){}[0] + final fun component13(): kotlin.collections/MutableList // com.lagradost.cloudstream3/TvSeriesLoadResponse.component13|component13(){}[0] + final fun component14(): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component14|component14(){}[0] + final fun component15(): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component15|component15(){}[0] + final fun component16(): kotlin/Boolean // com.lagradost.cloudstream3/TvSeriesLoadResponse.component16|component16(){}[0] + final fun component17(): kotlin.collections/MutableMap // com.lagradost.cloudstream3/TvSeriesLoadResponse.component17|component17(){}[0] + final fun component18(): kotlin.collections/Map? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component18|component18(){}[0] + final fun component19(): com.lagradost.cloudstream3/NextAiring? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component19|component19(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.component2|component2(){}[0] + final fun component20(): kotlin.collections/List? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component20|component20(){}[0] + final fun component21(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component21|component21(){}[0] + final fun component22(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component22|component22(){}[0] + final fun component23(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component23|component23(){}[0] + final fun component24(): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.component24|component24(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType // com.lagradost.cloudstream3/TvSeriesLoadResponse.component4|component4(){}[0] + final fun component5(): kotlin.collections/List // com.lagradost.cloudstream3/TvSeriesLoadResponse.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3/ShowStatus? // com.lagradost.cloudstream3/TvSeriesLoadResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType = ..., kotlin.collections/List = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3/ShowStatus? = ..., com.lagradost.cloudstream3/Score? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin.collections/MutableList = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/Boolean = ..., kotlin.collections/MutableMap = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/NextAiring? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String = ...): com.lagradost.cloudstream3/TvSeriesLoadResponse // com.lagradost.cloudstream3/TvSeriesLoadResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.collections.List;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.ShowStatus?;com.lagradost.cloudstream3.Score?;kotlin.collections.List?;kotlin.Int?;kotlin.collections.MutableList;kotlin.collections.List?;kotlin.collections.List?;kotlin.Boolean;kotlin.collections.MutableMap;kotlin.collections.Map?;com.lagradost.cloudstream3.NextAiring?;kotlin.collections.List?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/TvSeriesLoadResponse.equals|equals(kotlin.Any?){}[0] + final fun getLatestEpisodes(): kotlin.collections/Map // com.lagradost.cloudstream3/TvSeriesLoadResponse.getLatestEpisodes|getLatestEpisodes(){}[0] + final fun getTotalEpisodeIndex(kotlin/Int, kotlin/Int): kotlin/Int // com.lagradost.cloudstream3/TvSeriesLoadResponse.getTotalEpisodeIndex|getTotalEpisodeIndex(kotlin.Int;kotlin.Int){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/TvSeriesLoadResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/TvSeriesLoadResponse.toString|toString(){}[0] +} + +final class com.lagradost.cloudstream3/TvSeriesSearchResponse : com.lagradost.cloudstream3/SearchResponse { // com.lagradost.cloudstream3/TvSeriesSearchResponse|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...) // com.lagradost.cloudstream3/TvSeriesSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType?, kotlin/String?, kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ...) // com.lagradost.cloudstream3/TvSeriesSearchResponse.|(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?){}[0] + + final val apiName // com.lagradost.cloudstream3/TvSeriesSearchResponse.apiName|{}apiName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.apiName.|(){}[0] + final val name // com.lagradost.cloudstream3/TvSeriesSearchResponse.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.name.|(){}[0] + final val url // com.lagradost.cloudstream3/TvSeriesSearchResponse.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.url.|(){}[0] + + final var episodes // com.lagradost.cloudstream3/TvSeriesSearchResponse.episodes|{}episodes[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.episodes.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.episodes.|(kotlin.Int?){}[0] + final var id // com.lagradost.cloudstream3/TvSeriesSearchResponse.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.id.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.id.|(kotlin.Int?){}[0] + final var posterHeaders // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterHeaders|{}posterHeaders[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterHeaders.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterHeaders.|(kotlin.collections.Map?){}[0] + final var posterUrl // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterUrl|{}posterUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterUrl.|(){}[0] + final fun (kotlin/String?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.posterUrl.|(kotlin.String?){}[0] + final var quality // com.lagradost.cloudstream3/TvSeriesSearchResponse.quality|{}quality[0] + final fun (): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/TvSeriesSearchResponse.quality.|(){}[0] + final fun (com.lagradost.cloudstream3/SearchQuality?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.quality.|(com.lagradost.cloudstream3.SearchQuality?){}[0] + final var score // com.lagradost.cloudstream3/TvSeriesSearchResponse.score|{}score[0] + final fun (): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TvSeriesSearchResponse.score.|(){}[0] + final fun (com.lagradost.cloudstream3/Score?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.score.|(com.lagradost.cloudstream3.Score?){}[0] + final var type // com.lagradost.cloudstream3/TvSeriesSearchResponse.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/TvSeriesSearchResponse.type.|(){}[0] + final fun (com.lagradost.cloudstream3/TvType?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.type.|(com.lagradost.cloudstream3.TvType?){}[0] + final var year // com.lagradost.cloudstream3/TvSeriesSearchResponse.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.year.|(){}[0] + final fun (kotlin/Int?) // com.lagradost.cloudstream3/TvSeriesSearchResponse.year.|(kotlin.Int?){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.component1|component1(){}[0] + final fun component10(): kotlin.collections/Map? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component10|component10(){}[0] + final fun component11(): com.lagradost.cloudstream3/Score? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component11|component11(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component7|component7(){}[0] + final fun component8(): kotlin/Int? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/TvSeriesSearchResponse.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., com.lagradost.cloudstream3/TvType? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3/SearchQuality? = ..., kotlin.collections/Map? = ..., com.lagradost.cloudstream3/Score? = ...): com.lagradost.cloudstream3/TvSeriesSearchResponse // com.lagradost.cloudstream3/TvSeriesSearchResponse.copy|copy(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.Int?;com.lagradost.cloudstream3.SearchQuality?;kotlin.collections.Map?;com.lagradost.cloudstream3.Score?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3/TvSeriesSearchResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3/TvSeriesSearchResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3/TvSeriesSearchResponse.toString|toString(){}[0] +} + +open class <#A: kotlin/Any?> com.lagradost.cloudstream3.utils/AtomicList : kotlin.collections/List<#A> { // com.lagradost.cloudstream3.utils/AtomicList|null[0] + constructor (kotlin.collections/List<#A> = ...) // com.lagradost.cloudstream3.utils/AtomicList.|(kotlin.collections.List<1:0>){}[0] + + open val size // com.lagradost.cloudstream3.utils/AtomicList.size|{}size[0] + open fun (): kotlin/Int // com.lagradost.cloudstream3.utils/AtomicList.size.|(){}[0] + + final fun <#A1: kotlin/Any?> withLock(kotlin/Function0<#A1>): #A1 // com.lagradost.cloudstream3.utils/AtomicList.withLock|withLock(kotlin.Function0<0:0>){0§}[0] + final fun distinctBy(kotlin/Function1<#A, kotlin/Any?>): com.lagradost.cloudstream3.utils/AtomicList<#A> // com.lagradost.cloudstream3.utils/AtomicList.distinctBy|distinctBy(kotlin.Function1<1:0,kotlin.Any?>){}[0] + final fun filter(kotlin/Function1<#A, kotlin/Boolean>): com.lagradost.cloudstream3.utils/AtomicList<#A> // com.lagradost.cloudstream3.utils/AtomicList.filter|filter(kotlin.Function1<1:0,kotlin.Boolean>){}[0] + final fun plus(#A): com.lagradost.cloudstream3.utils/AtomicList<#A> // com.lagradost.cloudstream3.utils/AtomicList.plus|plus(1:0){}[0] + final fun plus(kotlin.collections/Collection<#A>): com.lagradost.cloudstream3.utils/AtomicList<#A> // com.lagradost.cloudstream3.utils/AtomicList.plus|plus(kotlin.collections.Collection<1:0>){}[0] + open fun contains(#A): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicList.contains|contains(1:0){}[0] + open fun containsAll(kotlin.collections/Collection<#A>): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicList.containsAll|containsAll(kotlin.collections.Collection<1:0>){}[0] + open fun get(kotlin/Int): #A // com.lagradost.cloudstream3.utils/AtomicList.get|get(kotlin.Int){}[0] + open fun indexOf(#A): kotlin/Int // com.lagradost.cloudstream3.utils/AtomicList.indexOf|indexOf(1:0){}[0] + open fun isEmpty(): kotlin/Boolean // com.lagradost.cloudstream3.utils/AtomicList.isEmpty|isEmpty(){}[0] + open fun iterator(): kotlin.collections/Iterator<#A> // com.lagradost.cloudstream3.utils/AtomicList.iterator|iterator(){}[0] + open fun lastIndexOf(#A): kotlin/Int // com.lagradost.cloudstream3.utils/AtomicList.lastIndexOf|lastIndexOf(1:0){}[0] + open fun listIterator(): kotlin.collections/ListIterator<#A> // com.lagradost.cloudstream3.utils/AtomicList.listIterator|listIterator(){}[0] + open fun listIterator(kotlin/Int): kotlin.collections/ListIterator<#A> // com.lagradost.cloudstream3.utils/AtomicList.listIterator|listIterator(kotlin.Int){}[0] + open fun subList(kotlin/Int, kotlin/Int): kotlin.collections/List<#A> // com.lagradost.cloudstream3.utils/AtomicList.subList|subList(kotlin.Int;kotlin.Int){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Acefile : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Acefile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Acefile.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Acefile.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Acefile.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Acefile.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Acefile.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Acefile.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Acefile.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Acefile.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Source { // com.lagradost.cloudstream3.extractors/Acefile.Source|null[0] + constructor (kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Acefile.Source.|(kotlin.String?){}[0] + + final val data // com.lagradost.cloudstream3.extractors/Acefile.Source.data|{}data[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Acefile.Source.data.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Acefile.Source.component1|component1(){}[0] + final fun copy(kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Acefile.Source // com.lagradost.cloudstream3.extractors/Acefile.Source.copy|copy(kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Acefile.Source.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Acefile.Source.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Acefile.Source.toString|toString(){}[0] + } +} + +open class com.lagradost.cloudstream3.extractors/BigwarpIO : com.lagradost.cloudstream3.extractors/JWPlayer { // com.lagradost.cloudstream3.extractors/BigwarpIO|null[0] + constructor () // com.lagradost.cloudstream3.extractors/BigwarpIO.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/BigwarpIO.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/BigwarpIO.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/BigwarpIO.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/BigwarpIO.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/BigwarpIO.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/BigwarpIO.name.|(kotlin.String){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Blogger : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Blogger|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Blogger.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Blogger.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Blogger.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Blogger.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Blogger.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Blogger.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Blogger.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Blogger.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/ByseSX : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/ByseSX|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ByseSX.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/ByseSX.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/ByseSX.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/ByseSX.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseSX.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseSX.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/ByseSX.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ByseSX.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ByseSX.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/ByseSX.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Cda : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Cda|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Cda.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Cda.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Cda.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Cda.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Cda.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Cda.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Cda.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Cda.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] + + final class PlayerData { // com.lagradost.cloudstream3.extractors/Cda.PlayerData|null[0] + constructor (com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData) // com.lagradost.cloudstream3.extractors/Cda.PlayerData.|(com.lagradost.cloudstream3.extractors.Cda.VideoPlayerData){}[0] + + final val video // com.lagradost.cloudstream3.extractors/Cda.PlayerData.video|{}video[0] + final fun (): com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData // com.lagradost.cloudstream3.extractors/Cda.PlayerData.video.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData // com.lagradost.cloudstream3.extractors/Cda.PlayerData.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData = ...): com.lagradost.cloudstream3.extractors/Cda.PlayerData // com.lagradost.cloudstream3.extractors/Cda.PlayerData.copy|copy(com.lagradost.cloudstream3.extractors.Cda.VideoPlayerData){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Cda.PlayerData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Cda.PlayerData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.PlayerData.toString|toString(){}[0] + } + + final class VideoPlayerData { // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData|null[0] + constructor (kotlin/String, kotlin.collections/Map = ..., kotlin/String?, kotlin/Int?, kotlin/String?) // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.|(kotlin.String;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.file.|(){}[0] + final val hash2 // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.hash2|{}hash2[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.hash2.|(){}[0] + final val qualities // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.qualities|{}qualities[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.qualities.|(){}[0] + final val quality // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.quality|{}quality[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.quality.|(){}[0] + final val ts // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.ts|{}ts[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.ts.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.component1|component1(){}[0] + final fun component2(): kotlin.collections/Map // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.component5|component5(){}[0] + final fun copy(kotlin/String = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.copy|copy(kotlin.String;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Cda.VideoPlayerData.toString|toString(){}[0] + } +} + +open class com.lagradost.cloudstream3.extractors/CloudMailRu : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/CloudMailRu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/CloudMailRu.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/CloudMailRu.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CloudMailRu.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/CloudMailRu.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/CloudMailRu.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/CloudMailRu.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/CloudMailRu.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/CloudMailRu.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/ContentX : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/ContentX|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ContentX.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/ContentX.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ContentX.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/ContentX.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ContentX.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/ContentX.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/ContentX.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/ContentX.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Dailymotion : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Dailymotion|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Dailymotion.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Dailymotion.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Dailymotion.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Dailymotion.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Dailymotion.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Metadata { // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata|null[0] + constructor (kotlin.collections/Map>?, com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper?) // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.|(kotlin.collections.Map>?;com.lagradost.cloudstream3.extractors.Dailymotion.SubtitlesWrapper?){}[0] + + final val qualities // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.qualities|{}qualities[0] + final fun (): kotlin.collections/Map>? // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.qualities.|(){}[0] + final val subtitles // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.subtitles|{}subtitles[0] + final fun (): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper? // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.subtitles.|(){}[0] + + final fun component1(): kotlin.collections/Map>? // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper? // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.component2|component2(){}[0] + final fun copy(kotlin.collections/Map>? = ..., com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper? = ...): com.lagradost.cloudstream3.extractors/Dailymotion.Metadata // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.copy|copy(kotlin.collections.Map>?;com.lagradost.cloudstream3.extractors.Dailymotion.SubtitlesWrapper?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Dailymotion.Metadata // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Dailymotion.Metadata) // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Dailymotion.Metadata){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Dailymotion.Metadata.Companion.serializer|serializer(){}[0] + } + } + + final class Quality { // com.lagradost.cloudstream3.extractors/Dailymotion.Quality|null[0] + constructor (kotlin/String?, kotlin/String?) // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.|(kotlin.String?;kotlin.String?){}[0] + + final val type // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.type.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.url|{}url[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.url.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Dailymotion.Quality // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Dailymotion.Quality // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Dailymotion.Quality) // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Dailymotion.Quality){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Dailymotion.Quality.Companion.serializer|serializer(){}[0] + } + } + + final class SubtitleData { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData|null[0] + constructor (kotlin/String, kotlin.collections/List) // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.|(kotlin.String;kotlin.collections.List){}[0] + + final val label // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.label.|(){}[0] + final val urls // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.urls|{}urls[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.urls.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin.collections/List = ...): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.copy|copy(kotlin.String;kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData) // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Dailymotion.SubtitleData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitleData.Companion.serializer|serializer(){}[0] + } + } + + final class SubtitlesWrapper { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper|null[0] + constructor (kotlin/Boolean, kotlin.collections/Map?) // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.|(kotlin.Boolean;kotlin.collections.Map?){}[0] + + final val data // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.data|{}data[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.data.|(){}[0] + final val enable // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.enable|{}enable[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.enable.|(){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.component1|component1(){}[0] + final fun component2(): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.component2|component2(){}[0] + final fun copy(kotlin/Boolean = ..., kotlin.collections/Map? = ...): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.copy|copy(kotlin.Boolean;kotlin.collections.Map?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper) // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Dailymotion.SubtitlesWrapper){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Dailymotion.SubtitlesWrapper.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/DoodLaExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/DoodLaExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/DoodLaExtractor.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/DoodLaExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/DoodLaExtractor.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/DoodLaExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodLaExtractor.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodLaExtractor.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/DoodLaExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/DoodLaExtractor.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/DoodLaExtractor.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/DoodLaExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Embedgram : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Embedgram|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Embedgram.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Embedgram.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Embedgram.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Embedgram.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Embedgram.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Embedgram.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Embedgram.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Embedgram.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/EmturbovidExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/EmturbovidExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/EmturbovidExtractor.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Evoload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Evoload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Evoload.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Evoload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Evoload.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Evoload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Evoload.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Evoload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Evoload.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Evoload.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Fastream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Fastream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Fastream.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Fastream.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Fastream.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Fastream.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fastream.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Fastream.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Fastream.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Fastream.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Fastream.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Fastream.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Filegram : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Filegram|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Filegram.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Filegram.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Filegram.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Filegram.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Filegram.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Filegram.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Filegram.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Filegram.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/FilemoonV2 : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/FilemoonV2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/FilemoonV2.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/FilemoonV2.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/FilemoonV2.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/FilemoonV2.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FilemoonV2.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FilemoonV2.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/FilemoonV2.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/FilemoonV2.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/FilemoonV2.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/FilemoonV2.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Filesim : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Filesim|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Filesim.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Filesim.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Filesim.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Filesim.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Filesim.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Filesim.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Filesim.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Filesim.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Flyfile : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Flyfile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Flyfile.|(){}[0] + + open val apiUrl // com.lagradost.cloudstream3.extractors/Flyfile.apiUrl|{}apiUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Flyfile.apiUrl.|(){}[0] + open val mainUrl // com.lagradost.cloudstream3.extractors/Flyfile.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Flyfile.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Flyfile.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Flyfile.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Flyfile.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Flyfile.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Flyfile.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/GDMirrorbot : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/GDMirrorbot|null[0] + constructor () // com.lagradost.cloudstream3.extractors/GDMirrorbot.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/GDMirrorbot.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GDMirrorbot.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/GDMirrorbot.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GDMirrorbot.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/GDMirrorbot.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/GDMirrorbot.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/GDMirrorbot.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/GUpload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/GUpload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/GUpload.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/GUpload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GUpload.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/GUpload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GUpload.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/GUpload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/GUpload.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/GUpload.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/GamoVideo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/GamoVideo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/GamoVideo.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/GamoVideo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GamoVideo.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/GamoVideo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GamoVideo.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/GamoVideo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/GamoVideo.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/GamoVideo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Gdriveplayer : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Gdriveplayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gdriveplayer.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Gdriveplayer.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Gdriveplayer.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Gdriveplayer.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gdriveplayer.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Gdriveplayer.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Tracks { // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.|(kotlin.String;kotlin.String;kotlin.String){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.file.|(){}[0] + final val kind // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.kind|{}kind[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.kind.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.label.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.copy|copy(kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks) // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gdriveplayer.Tracks){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gdriveplayer.Tracks.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/GenericM3U8 : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/GenericM3U8|null[0] + constructor () // com.lagradost.cloudstream3.extractors/GenericM3U8.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/GenericM3U8.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/GenericM3U8.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/GenericM3U8.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GenericM3U8.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/GenericM3U8.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/GenericM3U8.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/GenericM3U8.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/GenericM3U8.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/GenericM3U8.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Gofile : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Gofile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Gofile.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Gofile.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Gofile.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Gofile.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Gofile.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class AccountData { // com.lagradost.cloudstream3.extractors/Gofile.AccountData|null[0] + constructor (kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Gofile.AccountData.|(kotlin.String?){}[0] + + final val token // com.lagradost.cloudstream3.extractors/Gofile.AccountData.token|{}token[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.AccountData.token.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.AccountData.component1|component1(){}[0] + final fun copy(kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Gofile.AccountData // com.lagradost.cloudstream3.extractors/Gofile.AccountData.copy|copy(kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.AccountData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gofile.AccountData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.AccountData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gofile.AccountData // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gofile.AccountData) // com.lagradost.cloudstream3.extractors/Gofile.AccountData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gofile.AccountData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gofile.AccountData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gofile.AccountData.Companion.serializer|serializer(){}[0] + } + } + + final class AccountResponse { // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse|null[0] + constructor (com.lagradost.cloudstream3.extractors/Gofile.AccountData? = ...) // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.|(com.lagradost.cloudstream3.extractors.Gofile.AccountData?){}[0] + + final val data // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.data|{}data[0] + final fun (): com.lagradost.cloudstream3.extractors/Gofile.AccountData? // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.data.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Gofile.AccountData? // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Gofile.AccountData? = ...): com.lagradost.cloudstream3.extractors/Gofile.AccountResponse // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.copy|copy(com.lagradost.cloudstream3.extractors.Gofile.AccountData?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gofile.AccountResponse // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gofile.AccountResponse) // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gofile.AccountResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gofile.AccountResponse.Companion.serializer|serializer(){}[0] + } + } + + final class GofileData { // com.lagradost.cloudstream3.extractors/Gofile.GofileData|null[0] + constructor (kotlin.collections/Map? = ...) // com.lagradost.cloudstream3.extractors/Gofile.GofileData.|(kotlin.collections.Map?){}[0] + + final val children // com.lagradost.cloudstream3.extractors/Gofile.GofileData.children|{}children[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Gofile.GofileData.children.|(){}[0] + + final fun component1(): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Gofile.GofileData.component1|component1(){}[0] + final fun copy(kotlin.collections/Map? = ...): com.lagradost.cloudstream3.extractors/Gofile.GofileData // com.lagradost.cloudstream3.extractors/Gofile.GofileData.copy|copy(kotlin.collections.Map?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.GofileData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gofile.GofileData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.GofileData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gofile.GofileData // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gofile.GofileData) // com.lagradost.cloudstream3.extractors/Gofile.GofileData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gofile.GofileData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gofile.GofileData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Gofile.GofileData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gofile.GofileData.Companion.serializer|serializer(){}[0] + } + } + + final class GofileFile { // com.lagradost.cloudstream3.extractors/Gofile.GofileFile|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ...) // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?){}[0] + + final val link // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.link|{}link[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.link.|(){}[0] + final val name // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.name.|(){}[0] + final val size // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.size|{}size[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.size.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.component3|component3(){}[0] + final fun component4(): kotlin/Long? // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.component4|component4(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ...): com.lagradost.cloudstream3.extractors/Gofile.GofileFile // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gofile.GofileFile // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gofile.GofileFile) // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gofile.GofileFile){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gofile.GofileFile.Companion.serializer|serializer(){}[0] + } + } + + final class GofileResponse { // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse|null[0] + constructor (com.lagradost.cloudstream3.extractors/Gofile.GofileData? = ...) // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.|(com.lagradost.cloudstream3.extractors.Gofile.GofileData?){}[0] + + final val data // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.data|{}data[0] + final fun (): com.lagradost.cloudstream3.extractors/Gofile.GofileData? // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.data.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Gofile.GofileData? // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Gofile.GofileData? = ...): com.lagradost.cloudstream3.extractors/Gofile.GofileResponse // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.copy|copy(com.lagradost.cloudstream3.extractors.Gofile.GofileData?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Gofile.GofileResponse // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Gofile.GofileResponse) // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Gofile.GofileResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Gofile.GofileResponse.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/HDMomPlayer : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/HDMomPlayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HDMomPlayer.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/HDMomPlayer.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDMomPlayer.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/HDMomPlayer.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDMomPlayer.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/HDMomPlayer.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/HDMomPlayer.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/HDMomPlayer.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Track { // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track|null[0] + constructor (kotlin/String?, kotlin/String?, kotlin/String?, kotlin/String?, kotlin/String?) // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val default // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.default|{}default[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.default.|(){}[0] + final val file // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.file.|(){}[0] + final val kind // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.kind|{}kind[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.kind.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.label.|(){}[0] + final val language // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.language.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.component5|component5(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/HDMomPlayer.Track // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/HDMomPlayer.Track // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/HDMomPlayer.Track) // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.HDMomPlayer.Track){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/HDMomPlayer.Track.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/HDPlayerSystem : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/HDPlayerSystem|null[0] + constructor () // com.lagradost.cloudstream3.extractors/HDPlayerSystem.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/HDPlayerSystem.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/HDPlayerSystem.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/HDPlayerSystem.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/HDPlayerSystem.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/HDPlayerSystem.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class SystemResponse { // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse|null[0] + constructor (kotlin/String, kotlin/String? = ..., kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.|(kotlin.String;kotlin.String?;kotlin.String;kotlin.String){}[0] + + final val hls // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.hls|{}hls[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.hls.|(){}[0] + final val securedLink // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.securedLink|{}securedLink[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.securedLink.|(){}[0] + final val videoImage // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.videoImage|{}videoImage[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.videoImage.|(){}[0] + final val videoSource // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.videoSource|{}videoSource[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.videoSource.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.component4|component4(){}[0] + final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.copy|copy(kotlin.String;kotlin.String?;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse) // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.HDPlayerSystem.SystemResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/HDPlayerSystem.SystemResponse.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Hxfile : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Hxfile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Hxfile.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Hxfile.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hxfile.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Hxfile.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Hxfile.name.|(){}[0] + open val redirect // com.lagradost.cloudstream3.extractors/Hxfile.redirect|{}redirect[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Hxfile.redirect.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Hxfile.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Hxfile.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Hxfile.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/InternetArchive : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/InternetArchive|null[0] + constructor () // com.lagradost.cloudstream3.extractors/InternetArchive.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/InternetArchive.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/InternetArchive.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/InternetArchive.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/InternetArchive.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/InternetArchive.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/InternetArchive.requiresReferer.|(){}[0] + + open fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/InternetArchive.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/InternetArchive.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final object Companion // com.lagradost.cloudstream3.extractors/InternetArchive.Companion|null[0] +} + +open class com.lagradost.cloudstream3.extractors/JWPlayer : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/JWPlayer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/JWPlayer.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/JWPlayer.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/JWPlayer.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/JWPlayer.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/JWPlayer.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/JWPlayer.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/JWPlayer.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/JWPlayer.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Jeniusplay : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Jeniusplay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Jeniusplay.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Jeniusplay.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Jeniusplay.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Jeniusplay.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Jeniusplay.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Jeniusplay.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Jeniusplay.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Jeniusplay.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class ResponseSource { // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource|null[0] + constructor (kotlin/Boolean, kotlin/String, kotlin/String?) // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.|(kotlin.Boolean;kotlin.String;kotlin.String?){}[0] + + final val hls // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.hls|{}hls[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.hls.|(){}[0] + final val securedLink // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.securedLink|{}securedLink[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.securedLink.|(){}[0] + final val videoSource // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.videoSource|{}videoSource[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.videoSource.|(){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.component3|component3(){}[0] + final fun copy(kotlin/Boolean = ..., kotlin/String = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.copy|copy(kotlin.Boolean;kotlin.String;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource) // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Jeniusplay.ResponseSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Jeniusplay.ResponseSource.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Krakenfiles : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Krakenfiles|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Krakenfiles.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Krakenfiles.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Krakenfiles.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Krakenfiles.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Krakenfiles.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Krakenfiles.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Krakenfiles.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Krakenfiles.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Linkbox : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Linkbox|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Linkbox.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Linkbox.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Linkbox.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Linkbox.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Linkbox.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Linkbox.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Data { // com.lagradost.cloudstream3.extractors/Linkbox.Data|null[0] + constructor (com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Linkbox.Data.|(com.lagradost.cloudstream3.extractors.Linkbox.ItemInfo?;kotlin.String?){}[0] + + final val itemId // com.lagradost.cloudstream3.extractors/Linkbox.Data.itemId|{}itemId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Data.itemId.|(){}[0] + final val itemInfo // com.lagradost.cloudstream3.extractors/Linkbox.Data.itemInfo|{}itemInfo[0] + final fun (): com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo? // com.lagradost.cloudstream3.extractors/Linkbox.Data.itemInfo.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo? // com.lagradost.cloudstream3.extractors/Linkbox.Data.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Data.component2|component2(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Linkbox.Data // com.lagradost.cloudstream3.extractors/Linkbox.Data.copy|copy(com.lagradost.cloudstream3.extractors.Linkbox.ItemInfo?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Linkbox.Data.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Linkbox.Data.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.Data.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Linkbox.Data // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Linkbox.Data) // com.lagradost.cloudstream3.extractors/Linkbox.Data.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Linkbox.Data){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Linkbox.Data.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Linkbox.Data.Companion.serializer|serializer(){}[0] + } + } + + final class ItemInfo { // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo|null[0] + constructor (kotlin.collections/ArrayList? = ...) // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.|(kotlin.collections.ArrayList?){}[0] + + final val resolutionList // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.resolutionList|{}resolutionList[0] + final fun (): kotlin.collections/ArrayList? // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.resolutionList.|(){}[0] + + final fun component1(): kotlin.collections/ArrayList? // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.component1|component1(){}[0] + final fun copy(kotlin.collections/ArrayList? = ...): com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.copy|copy(kotlin.collections.ArrayList?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo) // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Linkbox.ItemInfo){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Linkbox.ItemInfo.Companion.serializer|serializer(){}[0] + } + } + + final class Resolutions { // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.|(kotlin.String?;kotlin.String?){}[0] + + final val resolution // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.resolution|{}resolution[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.resolution.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.url|{}url[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.url.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Linkbox.Resolutions // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Linkbox.Resolutions // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Linkbox.Resolutions) // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Linkbox.Resolutions){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Linkbox.Resolutions.Companion.serializer|serializer(){}[0] + } + } + + final class Responses { // com.lagradost.cloudstream3.extractors/Linkbox.Responses|null[0] + constructor (com.lagradost.cloudstream3.extractors/Linkbox.Data? = ...) // com.lagradost.cloudstream3.extractors/Linkbox.Responses.|(com.lagradost.cloudstream3.extractors.Linkbox.Data?){}[0] + + final val data // com.lagradost.cloudstream3.extractors/Linkbox.Responses.data|{}data[0] + final fun (): com.lagradost.cloudstream3.extractors/Linkbox.Data? // com.lagradost.cloudstream3.extractors/Linkbox.Responses.data.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/Linkbox.Data? // com.lagradost.cloudstream3.extractors/Linkbox.Responses.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/Linkbox.Data? = ...): com.lagradost.cloudstream3.extractors/Linkbox.Responses // com.lagradost.cloudstream3.extractors/Linkbox.Responses.copy|copy(com.lagradost.cloudstream3.extractors.Linkbox.Data?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Linkbox.Responses.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Linkbox.Responses.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Linkbox.Responses.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Linkbox.Responses // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Linkbox.Responses) // com.lagradost.cloudstream3.extractors/Linkbox.Responses.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Linkbox.Responses){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Linkbox.Responses.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Linkbox.Responses.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/LuluStream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/LuluStream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/LuluStream.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/LuluStream.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/LuluStream.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/LuluStream.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/LuluStream.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/LuluStream.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/LuluStream.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/LuluStream.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/MailRu : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/MailRu|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MailRu.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/MailRu.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/MailRu.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/MailRu.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/MailRu.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/MailRu.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class MailRuData { // com.lagradost.cloudstream3.extractors/MailRu.MailRuData|null[0] + constructor (kotlin/String, kotlin.collections/List) // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.|(kotlin.String;kotlin.collections.List){}[0] + + final val provider // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.provider|{}provider[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.provider.|(){}[0] + final val videos // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.videos|{}videos[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.videos.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin.collections/List = ...): com.lagradost.cloudstream3.extractors/MailRu.MailRuData // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.copy|copy(kotlin.String;kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/MailRu.MailRuData // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/MailRu.MailRuData) // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.MailRu.MailRuData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/MailRu.MailRuData.Companion.serializer|serializer(){}[0] + } + } + + final class MailRuVideoData { // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData|null[0] + constructor (kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.|(kotlin.String;kotlin.String){}[0] + + final val key // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.key|{}key[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.key.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.copy|copy(kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData) // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.MailRu.MailRuVideoData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/MailRu.MailRuVideoData.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Maxstream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Maxstream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Maxstream.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Maxstream.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Maxstream.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Maxstream.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Maxstream.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Maxstream.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Maxstream.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Maxstream.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Maxstream.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Maxstream.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Mediafire : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Mediafire|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Mediafire.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Mediafire.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mediafire.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Mediafire.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mediafire.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Mediafire.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Mediafire.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Mediafire.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/MixDrop : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/MixDrop|null[0] + constructor () // com.lagradost.cloudstream3.extractors/MixDrop.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/MixDrop.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/MixDrop.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/MixDrop.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDrop.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDrop.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/MixDrop.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/MixDrop.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/MixDrop.name.|(kotlin.String){}[0] + + open fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/MixDrop.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/MixDrop.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Moviehab : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Moviehab|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Moviehab.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Moviehab.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Moviehab.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Moviehab.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Moviehab.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Moviehab.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Moviehab.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Moviehab.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Moviehab.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Moviehab.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Mp4Upload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Mp4Upload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Mp4Upload.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Mp4Upload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Mp4Upload.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Mp4Upload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mp4Upload.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Mp4Upload.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Mp4Upload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mp4Upload.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Mp4Upload.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Mp4Upload.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Mvidoo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Mvidoo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Mvidoo.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Mvidoo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mvidoo.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Mvidoo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Mvidoo.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Mvidoo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Mvidoo.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Mvidoo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Odnoklassniki : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Odnoklassniki|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Odnoklassniki.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Odnoklassniki.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Odnoklassniki.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Odnoklassniki.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Odnoklassniki.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Odnoklassniki.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class OkRuVideo { // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo|null[0] + constructor (kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.|(kotlin.String;kotlin.String){}[0] + + final val name // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.name.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.copy|copy(kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo) // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Odnoklassniki.OkRuVideo){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Odnoklassniki.OkRuVideo.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/OkRuHTTP : com.lagradost.cloudstream3.extractors/Odnoklassniki { // com.lagradost.cloudstream3.extractors/OkRuHTTP|null[0] + constructor () // com.lagradost.cloudstream3.extractors/OkRuHTTP.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/OkRuHTTP.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuHTTP.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuHTTP.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/OkRuHTTP.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuHTTP.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuHTTP.name.|(kotlin.String){}[0] +} + +open class com.lagradost.cloudstream3.extractors/OkRuSSL : com.lagradost.cloudstream3.extractors/Odnoklassniki { // com.lagradost.cloudstream3.extractors/OkRuSSL|null[0] + constructor () // com.lagradost.cloudstream3.extractors/OkRuSSL.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/OkRuSSL.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuSSL.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuSSL.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/OkRuSSL.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/OkRuSSL.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/OkRuSSL.name.|(kotlin.String){}[0] +} + +open class com.lagradost.cloudstream3.extractors/PeaceMakerst : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/PeaceMakerst|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PeaceMakerst.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/PeaceMakerst.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/PeaceMakerst.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/PeaceMakerst.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/PeaceMakerst.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class PeaceResponse { // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse|null[0] + constructor (kotlin/String?, kotlin.collections/List, kotlin/String, kotlin.collections/Map) // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.|(kotlin.String?;kotlin.collections.List;kotlin.String;kotlin.collections.Map){}[0] + + final val sIndex // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.sIndex|{}sIndex[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.sIndex.|(){}[0] + final val sourceList // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.sourceList|{}sourceList[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.sourceList.|(){}[0] + final val videoImage // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.videoImage|{}videoImage[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.videoImage.|(){}[0] + final val videoSources // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.videoSources|{}videoSources[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.videoSources.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.component3|component3(){}[0] + final fun component4(): kotlin.collections/Map // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.component4|component4(){}[0] + final fun copy(kotlin/String? = ..., kotlin.collections/List = ..., kotlin/String = ..., kotlin.collections/Map = ...): com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.copy|copy(kotlin.String?;kotlin.collections.List;kotlin.String;kotlin.collections.Map){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse) // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PeaceMakerst.PeaceResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PeaceMakerst.PeaceResponse.Companion.serializer|serializer(){}[0] + } + } + + final class Teve2ApiResponse { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse|null[0] + constructor (com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.|(com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Media){}[0] + + final val media // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.media|{}media[0] + final fun (): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.media.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media = ...): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.copy|copy(com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Media){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2ApiResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2ApiResponse.Companion.serializer|serializer(){}[0] + } + } + + final class Teve2Link { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link|null[0] + constructor (kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.|(kotlin.String;kotlin.String){}[0] + + final val securePath // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.securePath|{}securePath[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.securePath.|(){}[0] + final val serviceUrl // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.serviceUrl|{}serviceUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.serviceUrl.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.copy|copy(kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Link){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link.Companion.serializer|serializer(){}[0] + } + } + + final class Teve2Media { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media|null[0] + constructor (com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.|(com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Link){}[0] + + final val link // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.link|{}link[0] + final fun (): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.link.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.component1|component1(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Link = ...): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.copy|copy(com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Link){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media) // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PeaceMakerst.Teve2Media){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PeaceMakerst.Teve2Media.Companion.serializer|serializer(){}[0] + } + } + + final class VideoSource { // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.|(kotlin.String;kotlin.String;kotlin.String){}[0] + + final val file // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.label.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.type|{}type[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.type.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.copy|copy(kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource) // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.PeaceMakerst.VideoSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/PeaceMakerst.VideoSource.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/PixelDrain : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/PixelDrain|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PixelDrain.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/PixelDrain.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PixelDrain.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/PixelDrain.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PixelDrain.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/PixelDrain.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PixelDrain.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/PixelDrain.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/PlayLtXyz : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/PlayLtXyz|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PlayLtXyz.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/PlayLtXyz.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayLtXyz.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/PlayLtXyz.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayLtXyz.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/PlayLtXyz.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PlayLtXyz.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/PlayLtXyz.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/PlayerVoxzer : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/PlayerVoxzer|null[0] + constructor () // com.lagradost.cloudstream3.extractors/PlayerVoxzer.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/PlayerVoxzer.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/PlayerVoxzer.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/PlayerVoxzer.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayerVoxzer.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/PlayerVoxzer.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/PlayerVoxzer.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/PlayerVoxzer.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/PlayerVoxzer.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/PlayerVoxzer.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Rabbitstream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Rabbitstream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Rabbitstream.|(){}[0] + + open val embed // com.lagradost.cloudstream3.extractors/Rabbitstream.embed|{}embed[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.embed.|(){}[0] + open val key // com.lagradost.cloudstream3.extractors/Rabbitstream.key|{}key[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.key.|(){}[0] + open val mainUrl // com.lagradost.cloudstream3.extractors/Rabbitstream.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Rabbitstream.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Rabbitstream.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Rabbitstream.requiresReferer.|(){}[0] + + open suspend fun extractRealKey(kotlin/String): kotlin/Pair // com.lagradost.cloudstream3.extractors/Rabbitstream.extractRealKey|extractRealKey(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Rabbitstream.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Sources { // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.label.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Rabbitstream.Sources // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Rabbitstream.Sources // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Rabbitstream.Sources) // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Rabbitstream.Sources){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Rabbitstream.Sources.Companion.serializer|serializer(){}[0] + } + } + + final class SourcesEncrypted { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted|null[0] + constructor (kotlin/String? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ...) // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.|(kotlin.String?;kotlin.Boolean?;kotlin.collections.List?){}[0] + + final val encrypted // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.encrypted|{}encrypted[0] + final fun (): kotlin/Boolean? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.encrypted.|(){}[0] + final val sources // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.sources|{}sources[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.sources.|(){}[0] + final val tracks // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.tracks|{}tracks[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.tracks.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.component1|component1(){}[0] + final fun component2(): kotlin/Boolean? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.component2|component2(){}[0] + final fun component3(): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.copy|copy(kotlin.String?;kotlin.Boolean?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted) // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Rabbitstream.SourcesEncrypted){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesEncrypted.Companion.serializer|serializer(){}[0] + } + } + + final class SourcesResponses { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses|null[0] + constructor (kotlin.collections/List? = ..., kotlin.collections/List? = ...) // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.|(kotlin.collections.List?;kotlin.collections.List?){}[0] + + final val sources // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.sources|{}sources[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.sources.|(){}[0] + final val tracks // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.tracks|{}tracks[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.tracks.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.component2|component2(){}[0] + final fun copy(kotlin.collections/List? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.copy|copy(kotlin.collections.List?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses) // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Rabbitstream.SourcesResponses){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Rabbitstream.SourcesResponses.Companion.serializer|serializer(){}[0] + } + } + + final class Tracks { // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.file.|(){}[0] + final val kind // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.kind|{}kind[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.kind.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.label.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks) // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Rabbitstream.Tracks){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Rabbitstream.Tracks.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/RapidVid : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/RapidVid|null[0] + constructor () // com.lagradost.cloudstream3.extractors/RapidVid.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/RapidVid.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/RapidVid.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/RapidVid.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/RapidVid.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/RapidVid.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/RapidVid.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/RapidVid.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/SBPlay : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/SBPlay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/SBPlay.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/SBPlay.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/SBPlay.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/SBPlay.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SBPlay.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/SBPlay.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/SBPlay.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SBPlay.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/SBPlay.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/SBPlay.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/SecvideoOnline : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/SecvideoOnline|null[0] + constructor () // com.lagradost.cloudstream3.extractors/SecvideoOnline.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/SecvideoOnline.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SecvideoOnline.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/SecvideoOnline.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SecvideoOnline.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/SecvideoOnline.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/SecvideoOnline.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/SecvideoOnline.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Sendvid : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Sendvid|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sendvid.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Sendvid.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sendvid.mainUrl.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Sendvid.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Sendvid.requiresReferer.|(){}[0] + + open var name // com.lagradost.cloudstream3.extractors/Sendvid.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sendvid.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Sendvid.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Sendvid.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/SibNet : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/SibNet|null[0] + constructor () // com.lagradost.cloudstream3.extractors/SibNet.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/SibNet.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SibNet.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/SibNet.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/SibNet.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/SibNet.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/SibNet.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/SibNet.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Slmaxed : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Slmaxed|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Slmaxed.|(){}[0] + + final val embedRegex // com.lagradost.cloudstream3.extractors/Slmaxed.embedRegex|{}embedRegex[0] + final fun (): kotlin.text/Regex // com.lagradost.cloudstream3.extractors/Slmaxed.embedRegex.|(){}[0] + open val mainUrl // com.lagradost.cloudstream3.extractors/Slmaxed.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Slmaxed.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Slmaxed.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Slmaxed.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Slmaxed.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Slmaxed.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Slmaxed.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] + + final class JsonResponse { // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.collections/Map? = ...) // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.collections.Map?){}[0] + + final val message // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.message|{}message[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.message.|(){}[0] + final val result // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.result|{}result[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.result.|(){}[0] + final val status // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.status|{}status[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.status.|(){}[0] + final val token // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.token|{}token[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.token.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.component4|component4(){}[0] + final fun component5(): kotlin.collections/Map? // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.component5|component5(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.collections/Map? = ...): com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.collections.Map?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse) // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Slmaxed.JsonResponse){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Slmaxed.JsonResponse.Companion.serializer|serializer(){}[0] + } + } + + final class Result { // com.lagradost.cloudstream3.extractors/Slmaxed.Result|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Slmaxed.Result.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Slmaxed.Result.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Slmaxed.Result.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.label.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Slmaxed.Result.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Slmaxed.Result.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Slmaxed.Result // com.lagradost.cloudstream3.extractors/Slmaxed.Result.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Slmaxed.Result.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Slmaxed.Result.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Slmaxed.Result.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Slmaxed.Result // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Slmaxed.Result) // com.lagradost.cloudstream3.extractors/Slmaxed.Result.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Slmaxed.Result){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Slmaxed.Result.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Slmaxed.Result.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Sobreatsesuyp : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Sobreatsesuyp|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class SobreatsesuypVideoData { // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.|(kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.file.|(){}[0] + final val title // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.title.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData) // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Sobreatsesuyp.SobreatsesuypVideoData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Sobreatsesuyp.SobreatsesuypVideoData.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/StreamEmbed : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamEmbed|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamEmbed.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamEmbed.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamEmbed.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/StreamEmbed.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamEmbed.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamEmbed.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/StreamEmbed.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamEmbed.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamEmbed.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/StreamEmbed.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/StreamSB : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamSB|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSB.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamSB.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamSB.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/StreamSB.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/StreamSB.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/StreamSB.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Main { // com.lagradost.cloudstream3.extractors/StreamSB.Main|null[0] + constructor (com.lagradost.cloudstream3.extractors/StreamSB.StreamData, kotlin/Int) // com.lagradost.cloudstream3.extractors/StreamSB.Main.|(com.lagradost.cloudstream3.extractors.StreamSB.StreamData;kotlin.Int){}[0] + + final val statusCode // com.lagradost.cloudstream3.extractors/StreamSB.Main.statusCode|{}statusCode[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.extractors/StreamSB.Main.statusCode.|(){}[0] + final val streamData // com.lagradost.cloudstream3.extractors/StreamSB.Main.streamData|{}streamData[0] + final fun (): com.lagradost.cloudstream3.extractors/StreamSB.StreamData // com.lagradost.cloudstream3.extractors/StreamSB.Main.streamData.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3.extractors/StreamSB.StreamData // com.lagradost.cloudstream3.extractors/StreamSB.Main.component1|component1(){}[0] + final fun component2(): kotlin/Int // com.lagradost.cloudstream3.extractors/StreamSB.Main.component2|component2(){}[0] + final fun copy(com.lagradost.cloudstream3.extractors/StreamSB.StreamData = ..., kotlin/Int = ...): com.lagradost.cloudstream3.extractors/StreamSB.Main // com.lagradost.cloudstream3.extractors/StreamSB.Main.copy|copy(com.lagradost.cloudstream3.extractors.StreamSB.StreamData;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamSB.Main.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/StreamSB.Main.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.Main.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/StreamSB.Main // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/StreamSB.Main) // com.lagradost.cloudstream3.extractors/StreamSB.Main.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.StreamSB.Main){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/StreamSB.Main.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/StreamSB.Main.Companion.serializer|serializer(){}[0] + } + } + + final class StreamData { // com.lagradost.cloudstream3.extractors/StreamSB.StreamData|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin.collections/ArrayList? = ..., kotlin/String, kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.|(kotlin.String;kotlin.String;kotlin.String;kotlin.collections.ArrayList?;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + + final val backup // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.backup|{}backup[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.backup.|(){}[0] + final val cdnImg // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.cdnImg|{}cdnImg[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.cdnImg.|(){}[0] + final val file // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.file.|(){}[0] + final val hash // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.hash|{}hash[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.hash.|(){}[0] + final val id // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.id|{}id[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.id.|(){}[0] + final val length // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.length|{}length[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.length.|(){}[0] + final val subs // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.subs|{}subs[0] + final fun (): kotlin.collections/ArrayList? // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.subs.|(){}[0] + final val title // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.title|{}title[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.title.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component3|component3(){}[0] + final fun component4(): kotlin.collections/ArrayList? // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component7|component7(){}[0] + final fun component8(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.component8|component8(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin.collections/ArrayList? = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/StreamSB.StreamData // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.collections.ArrayList?;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/StreamSB.StreamData // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/StreamSB.StreamData) // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.StreamSB.StreamData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/StreamSB.StreamData.Companion.serializer|serializer(){}[0] + } + } + + final class Subs { // com.lagradost.cloudstream3.extractors/StreamSB.Subs|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/StreamSB.Subs.|(kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/StreamSB.Subs.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/StreamSB.Subs.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/StreamSB.Subs.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/StreamSB.Subs.label.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/StreamSB.Subs.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/StreamSB.Subs.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/StreamSB.Subs // com.lagradost.cloudstream3.extractors/StreamSB.Subs.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamSB.Subs.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/StreamSB.Subs.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSB.Subs.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/StreamSB.Subs // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/StreamSB.Subs) // com.lagradost.cloudstream3.extractors/StreamSB.Subs.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.StreamSB.Subs){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/StreamSB.Subs.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/StreamSB.Subs.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/StreamSilk : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamSilk|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamSilk.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/StreamSilk.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSilk.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/StreamSilk.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamSilk.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamSilk.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamSilk.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/StreamSilk.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/StreamTape : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamTape|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamTape.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamTape.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamTape.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/StreamTape.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamTape.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamTape.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/StreamTape.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamTape.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/StreamTape.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/StreamTape.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/StreamWishExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamWishExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamWishExtractor.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/StreamWishExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamWishExtractor.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/StreamWishExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamWishExtractor.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamWishExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamWishExtractor.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/StreamWishExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Streamcash : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Streamcash|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamcash.|(){}[0] + + open val cdnUrl // com.lagradost.cloudstream3.extractors/Streamcash.cdnUrl|{}cdnUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamcash.cdnUrl.|(){}[0] + open val mainUrl // com.lagradost.cloudstream3.extractors/Streamcash.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamcash.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Streamcash.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamcash.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Streamcash.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Streamcash.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Streamcash.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Streamhub : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Streamhub|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamhub.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Streamhub.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Streamhub.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Streamhub.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamhub.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Streamhub.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Streamhub.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamhub.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Streamhub.name.|(kotlin.String){}[0] + + open fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/Streamhub.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Streamhub.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/StreamoUpload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/StreamoUpload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/StreamoUpload.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/StreamoUpload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamoUpload.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/StreamoUpload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/StreamoUpload.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/StreamoUpload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/StreamoUpload.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/StreamoUpload.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Streamplay : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Streamplay|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Streamplay.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Streamplay.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamplay.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Streamplay.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Streamplay.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Streamplay.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Streamplay.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Streamplay.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Source { // com.lagradost.cloudstream3.extractors/Streamplay.Source|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Streamplay.Source.|(kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Streamplay.Source.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Streamplay.Source.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Streamplay.Source.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Streamplay.Source.label.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Streamplay.Source.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Streamplay.Source.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Streamplay.Source // com.lagradost.cloudstream3.extractors/Streamplay.Source.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Streamplay.Source.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Streamplay.Source.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Streamplay.Source.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Streamplay.Source // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Streamplay.Source) // com.lagradost.cloudstream3.extractors/Streamplay.Source.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Streamplay.Source){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Streamplay.Source.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Streamplay.Source.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Supervideo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Supervideo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Supervideo.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Supervideo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Supervideo.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Supervideo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Supervideo.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Supervideo.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Supervideo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Supervideo.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Supervideo.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Supervideo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/TRsTX : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/TRsTX|null[0] + constructor () // com.lagradost.cloudstream3.extractors/TRsTX.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/TRsTX.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TRsTX.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/TRsTX.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TRsTX.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/TRsTX.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/TRsTX.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/TRsTX.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class TrstxVideoData { // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.|(kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.file.|(){}[0] + final val title // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.title.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData) // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.TRsTX.TrstxVideoData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/TRsTX.TrstxVideoData.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Tantifilm : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Tantifilm|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Tantifilm.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Tantifilm.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Tantifilm.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Tantifilm.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Tantifilm.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Tantifilm.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Tantifilm.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] + + final class TantifilmData { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.|(kotlin.String;kotlin.String;kotlin.String){}[0] + + final val file // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.label.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.type|{}type[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.type.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.copy|copy(kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData) // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Tantifilm.TantifilmData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmData.Companion.serializer|serializer(){}[0] + } + } + + final class TantifilmJsonData { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData|null[0] + constructor (kotlin/Boolean, kotlin.collections/List, kotlin.collections/List, kotlin/Boolean) // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.|(kotlin.Boolean;kotlin.collections.List;kotlin.collections.List;kotlin.Boolean){}[0] + + final val captions // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.captions|{}captions[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.captions.|(){}[0] + final val data // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.data|{}data[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.data.|(){}[0] + final val is_vr // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.is_vr|{}is_vr[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.is_vr.|(){}[0] + final val success // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.success|{}success[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.success.|(){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.component1|component1(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.component3|component3(){}[0] + final fun component4(): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.component4|component4(){}[0] + final fun copy(kotlin/Boolean = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.copy|copy(kotlin.Boolean;kotlin.collections.List;kotlin.collections.List;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData) // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Tantifilm.TantifilmJsonData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Tantifilm.TantifilmJsonData.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/TauVideo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/TauVideo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/TauVideo.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/TauVideo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/TauVideo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/TauVideo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/TauVideo.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/TauVideo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class TauVideoData { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData|null[0] + constructor (kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.|(kotlin.String;kotlin.String){}[0] + + final val label // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.label|{}label[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.label.|(){}[0] + final val url // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.copy|copy(kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData) // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.TauVideo.TauVideoData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoData.Companion.serializer|serializer(){}[0] + } + } + + final class TauVideoUrls { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls|null[0] + constructor (kotlin.collections/List) // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.|(kotlin.collections.List){}[0] + + final val urls // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.urls|{}urls[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.urls.|(){}[0] + + final fun component1(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.component1|component1(){}[0] + final fun copy(kotlin.collections/List = ...): com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.copy|copy(kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls) // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.TauVideo.TauVideoUrls){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/TauVideo.TauVideoUrls.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Up4Stream : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Up4Stream|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Up4Stream.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Up4Stream.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Up4Stream.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Up4Stream.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Up4Stream.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Up4Stream.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Up4Stream.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Up4Stream.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Up4Stream.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Up4Stream.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/UpstreamExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/UpstreamExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/UpstreamExtractor.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/UpstreamExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/UpstreamExtractor.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/UpstreamExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/UpstreamExtractor.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/UpstreamExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/UpstreamExtractor.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/UpstreamExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Uqload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Uqload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uqload.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Uqload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Uqload.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Uqload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqload.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqload.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Uqload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uqload.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Uqload.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Uqload.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Userload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Userload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Userload.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Userload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Userload.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Userload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Userload.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Userload.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Userload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Userload.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Userload.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List? // com.lagradost.cloudstream3.extractors/Userload.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Userscloud : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Userscloud|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Userscloud.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Userscloud.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Userscloud.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Userscloud.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Userscloud.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Userscloud.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Userscloud.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Userscloud.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Uservideo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Uservideo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Uservideo.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Uservideo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uservideo.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Uservideo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Uservideo.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Uservideo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Uservideo.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Uservideo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class Sources { // com.lagradost.cloudstream3.extractors/Uservideo.Sources|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/Uservideo.Sources.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val label // com.lagradost.cloudstream3.extractors/Uservideo.Sources.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.label.|(){}[0] + final val src // com.lagradost.cloudstream3.extractors/Uservideo.Sources.src|{}src[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.src.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/Uservideo.Sources.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/Uservideo.Sources.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/Uservideo.Sources // com.lagradost.cloudstream3.extractors/Uservideo.Sources.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Uservideo.Sources.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/Uservideo.Sources.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/Uservideo.Sources.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/Uservideo.Sources // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/Uservideo.Sources) // com.lagradost.cloudstream3.extractors/Uservideo.Sources.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.Uservideo.Sources){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/Uservideo.Sources.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/Uservideo.Sources.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/Vicloud : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vicloud|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vicloud.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Vicloud.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vicloud.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Vicloud.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vicloud.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vicloud.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vicloud.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vicloud.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VidHidePro : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VidHidePro|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidHidePro.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/VidHidePro.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/VidHidePro.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidHidePro.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/VidHidePro.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VidHidePro.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VidHidePro.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VidMoxy : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VidMoxy|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidMoxy.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/VidMoxy.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidMoxy.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/VidMoxy.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidMoxy.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/VidMoxy.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VidMoxy.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VidMoxy.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VidStack : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VidStack|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidStack.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/VidStack.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VidStack.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/VidStack.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidStack.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidStack.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/VidStack.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidStack.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidStack.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VidStack.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Vidara : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vidara|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidara.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Vidara.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidara.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Vidara.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidara.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vidara.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vidara.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vidara.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VideoSeyred : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VideoSeyred|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VideoSeyred.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/VideoSeyred.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/VideoSeyred.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/VideoSeyred.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VideoSeyred.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VideoSeyred.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] + + final class VSSource { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.|(kotlin.String;kotlin.String;kotlin.String){}[0] + + final val default // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.default|{}default[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.default.|(){}[0] + final val file // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.file.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.type|{}type[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.type.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.component3|component3(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.copy|copy(kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource) // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.VideoSeyred.VSSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/VideoSeyred.VSSource.Companion.serializer|serializer(){}[0] + } + } + + final class VSTrack { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.|(kotlin.String;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val default // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.default|{}default[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.default.|(){}[0] + final val file // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.file.|(){}[0] + final val kind // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.kind|{}kind[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.kind.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.label.|(){}[0] + final val language // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.language.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.component5|component5(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.copy|copy(kotlin.String;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack) // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.VideoSeyred.VSTrack){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/VideoSeyred.VSTrack.Companion.serializer|serializer(){}[0] + } + } + + final class VideoSeyredSource { // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource|null[0] + constructor (kotlin/String, kotlin/String, kotlin.collections/List, kotlin.collections/List) // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.|(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.collections.List){}[0] + + final val image // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.image|{}image[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.image.|(){}[0] + final val sources // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.sources|{}sources[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.sources.|(){}[0] + final val title // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.title|{}title[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.title.|(){}[0] + final val tracks // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.tracks|{}tracks[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.tracks.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.component4|component4(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin.collections/List = ..., kotlin.collections/List = ...): com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.copy|copy(kotlin.String;kotlin.String;kotlin.collections.List;kotlin.collections.List){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource) // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.VideoSeyred.VideoSeyredSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors/VideoSeyred.VideoSeyredSource.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.extractors/VidhideExtractor : com.lagradost.cloudstream3.extractors/VidHidePro { // com.lagradost.cloudstream3.extractors/VidhideExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VidhideExtractor.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/VidhideExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VidhideExtractor.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/VidhideExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidhideExtractor.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidhideExtractor.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/VidhideExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VidhideExtractor.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/VidhideExtractor.name.|(kotlin.String){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Vidmoly : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vidmoly|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidmoly.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Vidmoly.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidmoly.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Vidmoly.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidmoly.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vidmoly.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vidmoly.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vidmoly.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Vidoza : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vidoza|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vidoza.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Vidoza.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidoza.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Vidoza.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vidoza.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vidoza.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vidoza.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vidoza.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Vids : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vids|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vids.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Vids.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vids.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Vids.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vids.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vids.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vids.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vids.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VinovoTo : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VinovoTo|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VinovoTo.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/VinovoTo.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VinovoTo.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/VinovoTo.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VinovoTo.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/VinovoTo.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VinovoTo.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VinovoTo.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/VkExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/VkExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/VkExtractor.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/VkExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VkExtractor.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/VkExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/VkExtractor.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/VkExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/VkExtractor.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/VkExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Voe : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Voe|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Voe.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Voe.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Voe.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Voe.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Voe.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Voe.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Voe.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Voe.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Vtbe : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Vtbe|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Vtbe.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/Vtbe.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Vtbe.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/Vtbe.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vtbe.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vtbe.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/Vtbe.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Vtbe.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/Vtbe.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Vtbe.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/WatchSB : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/WatchSB|null[0] + constructor () // com.lagradost.cloudstream3.extractors/WatchSB.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/WatchSB.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/WatchSB.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/WatchSB.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/WatchSB.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/WatchSB.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/WatchSB.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/WatchSB.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/WatchSB.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/WatchSB.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/Wibufile : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/Wibufile|null[0] + constructor () // com.lagradost.cloudstream3.extractors/Wibufile.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/Wibufile.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wibufile.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/Wibufile.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/Wibufile.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/Wibufile.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/Wibufile.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/Wibufile.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/XStreamCdn : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/XStreamCdn|null[0] + constructor () // com.lagradost.cloudstream3.extractors/XStreamCdn.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/XStreamCdn.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/XStreamCdn.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/XStreamCdn.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/XStreamCdn.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/XStreamCdn.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/XStreamCdn.requiresReferer.|(){}[0] + + open var domainUrl // com.lagradost.cloudstream3.extractors/XStreamCdn.domainUrl|{}domainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/XStreamCdn.domainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/XStreamCdn.domainUrl.|(kotlin.String){}[0] + + open fun getExtractorUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/XStreamCdn.getExtractorUrl|getExtractorUrl(kotlin.String){}[0] + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/XStreamCdn.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/YourUpload : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/YourUpload|null[0] + constructor () // com.lagradost.cloudstream3.extractors/YourUpload.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/YourUpload.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YourUpload.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/YourUpload.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YourUpload.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/YourUpload.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/YourUpload.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/YourUpload.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.extractors/YoutubeExtractor : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/YoutubeExtractor|null[0] + constructor () // com.lagradost.cloudstream3.extractors/YoutubeExtractor.|(){}[0] + + open val mainUrl // com.lagradost.cloudstream3.extractors/YoutubeExtractor.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YoutubeExtractor.mainUrl.|(){}[0] + open val name // com.lagradost.cloudstream3.extractors/YoutubeExtractor.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/YoutubeExtractor.name.|(){}[0] + open val requiresReferer // com.lagradost.cloudstream3.extractors/YoutubeExtractor.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/YoutubeExtractor.requiresReferer.|(){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?, kotlin/Function1, kotlin/Function1) // com.lagradost.cloudstream3.extractors/YoutubeExtractor.getUrl|getUrl(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +} + +open class com.lagradost.cloudstream3.extractors/ZplayerV2 : com.lagradost.cloudstream3.utils/ExtractorApi { // com.lagradost.cloudstream3.extractors/ZplayerV2|null[0] + constructor () // com.lagradost.cloudstream3.extractors/ZplayerV2.|(){}[0] + + open val requiresReferer // com.lagradost.cloudstream3.extractors/ZplayerV2.requiresReferer|{}requiresReferer[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.extractors/ZplayerV2.requiresReferer.|(){}[0] + + open var mainUrl // com.lagradost.cloudstream3.extractors/ZplayerV2.mainUrl|{}mainUrl[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ZplayerV2.mainUrl.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ZplayerV2.mainUrl.|(kotlin.String){}[0] + open var name // com.lagradost.cloudstream3.extractors/ZplayerV2.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.extractors/ZplayerV2.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.extractors/ZplayerV2.name.|(kotlin.String){}[0] + + open suspend fun getUrl(kotlin/String, kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3.extractors/ZplayerV2.getUrl|getUrl(kotlin.String;kotlin.String?){}[0] +} + +open class com.lagradost.cloudstream3.metaproviders/TmdbProvider : com.lagradost.cloudstream3/MainAPI { // com.lagradost.cloudstream3.metaproviders/TmdbProvider|null[0] + constructor () // com.lagradost.cloudstream3.metaproviders/TmdbProvider.|(){}[0] + + open val apiName // com.lagradost.cloudstream3.metaproviders/TmdbProvider.apiName|{}apiName[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.apiName.|(){}[0] + open val disableSeasonZero // com.lagradost.cloudstream3.metaproviders/TmdbProvider.disableSeasonZero|{}disableSeasonZero[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.disableSeasonZero.|(){}[0] + open val hasMainPage // com.lagradost.cloudstream3.metaproviders/TmdbProvider.hasMainPage|{}hasMainPage[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.hasMainPage.|(){}[0] + open val includeAdult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.includeAdult|{}includeAdult[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.includeAdult.|(){}[0] + open val providerType // com.lagradost.cloudstream3.metaproviders/TmdbProvider.providerType|{}providerType[0] + open fun (): com.lagradost.cloudstream3/ProviderType // com.lagradost.cloudstream3.metaproviders/TmdbProvider.providerType.|(){}[0] + open val useMetaLoadResponse // com.lagradost.cloudstream3.metaproviders/TmdbProvider.useMetaLoadResponse|{}useMetaLoadResponse[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.useMetaLoadResponse.|(){}[0] + + open fun loadFromImdb(kotlin/String): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.loadFromImdb|loadFromImdb(kotlin.String){}[0] + open fun loadFromImdb(kotlin/String, kotlin.collections/List): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.loadFromImdb|loadFromImdb(kotlin.String;kotlin.collections.List){}[0] + open fun loadFromTmdb(kotlin/Int): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.loadFromTmdb|loadFromTmdb(kotlin.Int){}[0] + open fun loadFromTmdb(kotlin/Int, kotlin.collections/List): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.loadFromTmdb|loadFromTmdb(kotlin.Int;kotlin.collections.List){}[0] + open suspend fun fetchContentRating(kotlin/Int?, kotlin/String): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.fetchContentRating|fetchContentRating(kotlin.Int?;kotlin.String){}[0] + open suspend fun getMainPage(kotlin/Int, com.lagradost.cloudstream3/MainPageRequest): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3.metaproviders/TmdbProvider.getMainPage|getMainPage(kotlin.Int;com.lagradost.cloudstream3.MainPageRequest){}[0] + open suspend fun load(kotlin/String): com.lagradost.cloudstream3/LoadResponse? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.load|load(kotlin.String){}[0] + open suspend fun search(kotlin/String, kotlin/Int): com.lagradost.cloudstream3/SearchResponseList? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.search|search(kotlin.String;kotlin.Int){}[0] + + final class TmdbCastMember { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val character // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.character|{}character[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.character.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.name.|(){}[0] + final val profilePath // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.profilePath|{}profilePath[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.profilePath.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCastMember){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCastMember.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbContentRating { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.|(kotlin.String?;kotlin.String?){}[0] + + final val country // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.country|{}country[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.country.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.rating|{}rating[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.rating.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.copy|copy(kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbContentRating){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRating.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbContentRatings { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.|(kotlin.collections.List?){}[0] + + final val results // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.results|{}results[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.results.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbContentRatings){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbCredits { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.|(kotlin.collections.List?){}[0] + + final val cast // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.cast|{}cast[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.cast.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCredits){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbEpisode { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.|(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Double?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?){}[0] + + final val airDate // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.airDate|{}airDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.airDate.|(){}[0] + final val episodeNumber // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.episodeNumber|{}episodeNumber[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.episodeNumber.|(){}[0] + final val externalIds // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.externalIds|{}externalIds[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.externalIds.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.id.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.name.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.overview.|(){}[0] + final val seasonNumber // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.seasonNumber|{}seasonNumber[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.seasonNumber.|(){}[0] + final val stillPath // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.stillPath|{}stillPath[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.stillPath.|(){}[0] + final val voteAverage // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.voteAverage|{}voteAverage[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.voteAverage.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component4|component4(){}[0] + final fun component5(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component7|component7(){}[0] + final fun component8(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component8|component8(){}[0] + final fun component9(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.copy|copy(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Double?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbEpisode){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbEpisode.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbGenre { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.|(kotlin.Int?;kotlin.String?){}[0] + + final val id // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.id.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.name.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.component2|component2(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.copy|copy(kotlin.Int?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbGenre){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbGenre.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbIds { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds|null[0] + constructor (kotlin/String? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.|(kotlin.String?;kotlin.Int?){}[0] + + final val imdbId // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.imdbId|{}imdbId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.imdbId.|(){}[0] + final val tvdbId // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.tvdbId|{}tvdbId[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.tvdbId.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.copy|copy(kotlin.String?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbMovieDetail { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.|(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.collections.List?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideos?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCredits?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbReleaseDates?){}[0] + + final val credits // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.credits|{}credits[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.credits.|(){}[0] + final val displayTitle // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.displayTitle|{}displayTitle[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.displayTitle.|(){}[0] + final val externalIds // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.externalIds|{}externalIds[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.externalIds.|(){}[0] + final val genres // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.genres|{}genres[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.genres.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.id.|(){}[0] + final val imdbId // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.imdbId|{}imdbId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.imdbId.|(){}[0] + final val originalTitle // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.originalTitle|{}originalTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.originalTitle.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.overview.|(){}[0] + final val posterPath // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.posterPath|{}posterPath[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.posterPath.|(){}[0] + final val recommendations // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.recommendations|{}recommendations[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.recommendations.|(){}[0] + final val releaseDate // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.releaseDate|{}releaseDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.releaseDate.|(){}[0] + final val releaseDates // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.releaseDates|{}releaseDates[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.releaseDates.|(){}[0] + final val runtime // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.runtime|{}runtime[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.runtime.|(){}[0] + final val similar // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.similar|{}similar[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.similar.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.title.|(){}[0] + final val videos // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.videos|{}videos[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.videos.|(){}[0] + final val voteAverage // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.voteAverage|{}voteAverage[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.voteAverage.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.year.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component10|component10(){}[0] + final fun component11(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component11|component11(){}[0] + final fun component12(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component12|component12(){}[0] + final fun component13(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component13|component13(){}[0] + final fun component14(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component14|component14(){}[0] + final fun component15(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component15|component15(){}[0] + final fun component16(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component16|component16(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component6|component6(){}[0] + final fun component7(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component7|component7(){}[0] + final fun component8(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component8|component8(){}[0] + final fun component9(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.copy|copy(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.collections.List?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideos?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCredits?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbReleaseDates?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbMovieDetail){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMovieDetail.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbMultiResult { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.|(kotlin.collections.List?){}[0] + + final val results // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.results|{}results[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.results.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbMultiResult){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbMultiResult.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbPageResult { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult|null[0] + constructor (kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.|(kotlin.collections.List?;kotlin.Int?;kotlin.Int?){}[0] + + final val results // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.results|{}results[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.results.|(){}[0] + final val totalPages // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.totalPages|{}totalPages[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.totalPages.|(){}[0] + final val totalResults // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.totalResults|{}totalResults[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.totalResults.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.component3|component3(){}[0] + final fun copy(kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.copy|copy(kotlin.collections.List?;kotlin.Int?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbReleaseDateEntry { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry|null[0] + constructor (kotlin/String? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.|(kotlin.String?;kotlin.Int?){}[0] + + final val certification // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.certification|{}certification[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.certification.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.type|{}type[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.copy|copy(kotlin.String?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbReleaseDateEntry){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateEntry.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbReleaseDateResult { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult|null[0] + constructor (kotlin/String? = ..., kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.|(kotlin.String?;kotlin.collections.List?){}[0] + + final val country // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.country|{}country[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.country.|(){}[0] + final val releaseDates // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.releaseDates|{}releaseDates[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.releaseDates.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.component2|component2(){}[0] + final fun copy(kotlin/String? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.copy|copy(kotlin.String?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbReleaseDateResult){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDateResult.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbReleaseDates { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.|(kotlin.collections.List?){}[0] + + final val results // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.results|{}results[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.results.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbReleaseDates){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbReleaseDates.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbSearchResult { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.|(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val displayTitle // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.displayTitle|{}displayTitle[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.displayTitle.|(){}[0] + final val firstAirDate // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.firstAirDate|{}firstAirDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.firstAirDate.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.id.|(){}[0] + final val isTv // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.isTv|{}isTv[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.isTv.|(){}[0] + final val mediaType // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.mediaType|{}mediaType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.mediaType.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.name.|(){}[0] + final val originalName // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.originalName|{}originalName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.originalName.|(){}[0] + final val originalTitle // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.originalTitle|{}originalTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.originalTitle.|(){}[0] + final val posterPath // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.posterPath|{}posterPath[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.posterPath.|(){}[0] + final val releaseDate // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.releaseDate|{}releaseDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.releaseDate.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.title.|(){}[0] + final val voteAverage // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.voteAverage|{}voteAverage[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.voteAverage.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.year.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component10|component10(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component6|component6(){}[0] + final fun component7(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.copy|copy(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbSearchResult){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSearchResult.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbSeasonDetail { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail|null[0] + constructor (kotlin/Int? = ..., kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.|(kotlin.Int?;kotlin.collections.List?){}[0] + + final val episodes // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.episodes|{}episodes[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.episodes.|(){}[0] + final val seasonNumber // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.seasonNumber|{}seasonNumber[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.seasonNumber.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.component2|component2(){}[0] + final fun copy(kotlin/Int? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.copy|copy(kotlin.Int?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbSeasonDetail){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonDetail.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbSeasonSummary { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary|null[0] + constructor (kotlin/Int? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.|(kotlin.Int?;kotlin.Int?){}[0] + + final val episodeCount // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.episodeCount|{}episodeCount[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.episodeCount.|(){}[0] + final val seasonNumber // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.seasonNumber|{}seasonNumber[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.seasonNumber.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.component2|component2(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.copy|copy(kotlin.Int?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbSeasonSummary){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbSeasonSummary.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbTvDetail { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.|(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideos?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCredits?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbContentRatings?){}[0] + + final val contentRatings // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.contentRatings|{}contentRatings[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.contentRatings.|(){}[0] + final val credits // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.credits|{}credits[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.credits.|(){}[0] + final val displayTitle // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.displayTitle|{}displayTitle[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.displayTitle.|(){}[0] + final val episodeRunTime // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.episodeRunTime|{}episodeRunTime[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.episodeRunTime.|(){}[0] + final val externalIds // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.externalIds|{}externalIds[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.externalIds.|(){}[0] + final val firstAirDate // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.firstAirDate|{}firstAirDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.firstAirDate.|(){}[0] + final val genres // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.genres|{}genres[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.genres.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.id.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.name.|(){}[0] + final val originalName // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.originalName|{}originalName[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.originalName.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.overview.|(){}[0] + final val posterPath // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.posterPath|{}posterPath[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.posterPath.|(){}[0] + final val recommendations // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.recommendations|{}recommendations[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.recommendations.|(){}[0] + final val seasons // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.seasons|{}seasons[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.seasons.|(){}[0] + final val similar // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.similar|{}similar[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.similar.|(){}[0] + final val videos // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.videos|{}videos[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.videos.|(){}[0] + final val voteAverage // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.voteAverage|{}voteAverage[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.voteAverage.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.year.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component1|component1(){}[0] + final fun component10(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component10|component10(){}[0] + final fun component11(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component11|component11(){}[0] + final fun component12(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component12|component12(){}[0] + final fun component13(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component13|component13(){}[0] + final fun component14(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component14|component14(){}[0] + final fun component15(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component15|component15(){}[0] + final fun component16(): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component16|component16(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component6|component6(){}[0] + final fun component7(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component7|component7(){}[0] + final fun component8(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component8|component8(){}[0] + final fun component9(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbIds? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbCredits? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbPageResult? = ..., com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbContentRatings? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.copy|copy(kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbIds?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideos?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbCredits?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbPageResult?;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbContentRatings?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbTvDetail){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbTvDetail.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbVideo { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val key // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.key|{}key[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.key.|(){}[0] + final val site // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.site|{}site[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.site.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.type.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideo){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideo.Companion.serializer|serializer(){}[0] + } + } + + final class TmdbVideos { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.|(kotlin.collections.List?){}[0] + + final val results // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.results|{}results[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.results.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos) // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TmdbProvider.TmdbVideos){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TmdbProvider.TmdbVideos.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.metaproviders/TraktProvider : com.lagradost.cloudstream3/MainAPI { // com.lagradost.cloudstream3.metaproviders/TraktProvider|null[0] + constructor () // com.lagradost.cloudstream3.metaproviders/TraktProvider.|(){}[0] + + open val hasMainPage // com.lagradost.cloudstream3.metaproviders/TraktProvider.hasMainPage|{}hasMainPage[0] + open fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.hasMainPage.|(){}[0] + open val mainPage // com.lagradost.cloudstream3.metaproviders/TraktProvider.mainPage|{}mainPage[0] + open fun (): kotlin.collections/List // com.lagradost.cloudstream3.metaproviders/TraktProvider.mainPage.|(){}[0] + open val providerType // com.lagradost.cloudstream3.metaproviders/TraktProvider.providerType|{}providerType[0] + open fun (): com.lagradost.cloudstream3/ProviderType // com.lagradost.cloudstream3.metaproviders/TraktProvider.providerType.|(){}[0] + open val supportedTypes // com.lagradost.cloudstream3.metaproviders/TraktProvider.supportedTypes|{}supportedTypes[0] + open fun (): kotlin.collections/Set // com.lagradost.cloudstream3.metaproviders/TraktProvider.supportedTypes.|(){}[0] + + open var name // com.lagradost.cloudstream3.metaproviders/TraktProvider.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.name.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.metaproviders/TraktProvider.name.|(kotlin.String){}[0] + + open suspend fun getMainPage(kotlin/Int, com.lagradost.cloudstream3/MainPageRequest): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3.metaproviders/TraktProvider.getMainPage|getMainPage(kotlin.Int;com.lagradost.cloudstream3.MainPageRequest){}[0] + open suspend fun load(kotlin/String): com.lagradost.cloudstream3/LoadResponse // com.lagradost.cloudstream3.metaproviders/TraktProvider.load|load(kotlin.String){}[0] + open suspend fun search(kotlin/String, kotlin/Int): com.lagradost.cloudstream3/SearchResponseList? // com.lagradost.cloudstream3.metaproviders/TraktProvider.search|search(kotlin.String;kotlin.Int){}[0] + + final class Airs { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val day // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.day|{}day[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.day.|(){}[0] + final val time // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.time|{}time[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.time.|(){}[0] + final val timezone // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.timezone|{}timezone[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.timezone.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Airs){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs.Companion.serializer|serializer(){}[0] + } + } + + final class Cast { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast|null[0] + constructor (kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Long? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Person? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.|(kotlin.String?;kotlin.collections.List?;kotlin.Long?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Person?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + + final val character // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.character|{}character[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.character.|(){}[0] + final val characters // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.characters|{}characters[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.characters.|(){}[0] + final val episodeCount // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.episodeCount|{}episodeCount[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.episodeCount.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.images.|(){}[0] + final val person // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.person|{}person[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Person? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.person.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.component2|component2(){}[0] + final fun component3(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.component3|component3(){}[0] + final fun component4(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Person? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.component4|component4(){}[0] + final fun component5(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.component5|component5(){}[0] + final fun copy(kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Long? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Person? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.copy|copy(kotlin.String?;kotlin.collections.List?;kotlin.Long?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Person?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Cast){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Cast.Companion.serializer|serializer(){}[0] + } + } + + final class Data { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data|null[0] + constructor (com.lagradost.cloudstream3/TvType? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.|(com.lagradost.cloudstream3.TvType?;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaDetails?){}[0] + + final val mediaDetails // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.mediaDetails|{}mediaDetails[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.mediaDetails.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.type|{}type[0] + final fun (): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.type.|(){}[0] + + final fun component1(): com.lagradost.cloudstream3/TvType? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.component2|component2(){}[0] + final fun copy(com.lagradost.cloudstream3/TvType? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Data // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.copy|copy(com.lagradost.cloudstream3.TvType?;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaDetails?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Data // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Data) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Data){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Data.Companion.serializer|serializer(){}[0] + } + } + + final class Ids { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids|null[0] + constructor (kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.|(kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?){}[0] + + final val imdb // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.imdb|{}imdb[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.imdb.|(){}[0] + final val slug // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.slug|{}slug[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.slug.|(){}[0] + final val tmdb // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tmdb|{}tmdb[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tmdb.|(){}[0] + final val trakt // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.trakt|{}trakt[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.trakt.|(){}[0] + final val tvdb // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tvdb|{}tvdb[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tvdb.|(){}[0] + final val tvrage // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tvrage|{}tvrage[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.tvrage.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component2|component2(){}[0] + final fun component3(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component4|component4(){}[0] + final fun component5(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.component6|component6(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.copy|copy(kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids.Companion.serializer|serializer(){}[0] + } + } + + final class Images { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images|null[0] + constructor (kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.|(kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?){}[0] + + final val banner // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.banner|{}banner[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.banner.|(){}[0] + final val clearArt // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.clearArt|{}clearArt[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.clearArt.|(){}[0] + final val fanart // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.fanart|{}fanart[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.fanart.|(){}[0] + final val headshot // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.headshot|{}headshot[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.headshot.|(){}[0] + final val logo // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.logo|{}logo[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.logo.|(){}[0] + final val poster // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.poster|{}poster[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.poster.|(){}[0] + final val screenshot // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.screenshot|{}screenshot[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.screenshot.|(){}[0] + final val thumb // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.thumb|{}thumb[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.thumb.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component2|component2(){}[0] + final fun component3(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component3|component3(){}[0] + final fun component4(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component4|component4(){}[0] + final fun component5(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component5|component5(){}[0] + final fun component6(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component6|component6(){}[0] + final fun component7(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component7|component7(){}[0] + final fun component8(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.component8|component8(){}[0] + final fun copy(kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.copy|copy(kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Images) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Images.Companion.serializer|serializer(){}[0] + } + } + + final class LinkData { // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData|null[0] + constructor (kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin/Boolean = ..., kotlin/Boolean = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.|(kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Boolean;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean;kotlin.Boolean;kotlin.Boolean){}[0] + + final val airedDate // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.airedDate|{}airedDate[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.airedDate.|(){}[0] + final val airedYear // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.airedYear|{}airedYear[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.airedYear.|(){}[0] + final val aniId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.aniId|{}aniId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.aniId.|(){}[0] + final val animeId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.animeId|{}animeId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.animeId.|(){}[0] + final val date // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.date|{}date[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.date.|(){}[0] + final val episode // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.episode|{}episode[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.episode.|(){}[0] + final val epsTitle // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.epsTitle|{}epsTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.epsTitle.|(){}[0] + final val id // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.id|{}id[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.id.|(){}[0] + final val imdbId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.imdbId|{}imdbId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.imdbId.|(){}[0] + final val isAnime // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isAnime|{}isAnime[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isAnime.|(){}[0] + final val isAsian // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isAsian|{}isAsian[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isAsian.|(){}[0] + final val isBollywood // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isBollywood|{}isBollywood[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isBollywood.|(){}[0] + final val isCartoon // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isCartoon|{}isCartoon[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.isCartoon.|(){}[0] + final val jpTitle // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.jpTitle|{}jpTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.jpTitle.|(){}[0] + final val lastSeason // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.lastSeason|{}lastSeason[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.lastSeason.|(){}[0] + final val orgTitle // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.orgTitle|{}orgTitle[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.orgTitle.|(){}[0] + final val season // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.season.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.title.|(){}[0] + final val tmdbId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tmdbId|{}tmdbId[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tmdbId.|(){}[0] + final val traktId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.traktId|{}traktId[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.traktId.|(){}[0] + final val traktSlug // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.traktSlug|{}traktSlug[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.traktSlug.|(){}[0] + final val tvdbId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tvdbId|{}tvdbId[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tvdbId.|(){}[0] + final val tvrageId // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tvrageId|{}tvrageId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.tvrageId.|(){}[0] + final val type // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.type.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.year.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component1|component1(){}[0] + final fun component10(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component11|component11(){}[0] + final fun component12(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component12|component12(){}[0] + final fun component13(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component13|component13(){}[0] + final fun component14(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component14|component14(){}[0] + final fun component15(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component15|component15(){}[0] + final fun component16(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component16|component16(){}[0] + final fun component17(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component17|component17(){}[0] + final fun component18(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component18|component18(){}[0] + final fun component19(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component19|component19(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component2|component2(){}[0] + final fun component20(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component20|component20(){}[0] + final fun component21(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component21|component21(){}[0] + final fun component22(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component22|component22(){}[0] + final fun component23(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component23|component23(){}[0] + final fun component24(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component24|component24(){}[0] + final fun component25(): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component25|component25(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component3|component3(){}[0] + final fun component4(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component5|component5(){}[0] + final fun component6(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component8|component8(){}[0] + final fun component9(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean = ..., kotlin/Boolean = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.copy|copy(kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Boolean;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean;kotlin.Boolean;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData) // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.LinkData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.LinkData.Companion.serializer|serializer(){}[0] + } + } + + final class MediaDetails { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails|null[0] + constructor (kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/Long? = ..., kotlin/Long? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.|(kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.Long?;kotlin.Long?;kotlin.String?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Airs?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaSummary?){}[0] + + final val airedEpisodes // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.airedEpisodes|{}airedEpisodes[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.airedEpisodes.|(){}[0] + final val airs // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.airs|{}airs[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.airs.|(){}[0] + final val availableTranslations // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.availableTranslations|{}availableTranslations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.availableTranslations.|(){}[0] + final val certification // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.certification|{}certification[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.certification.|(){}[0] + final val commentCount // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.commentCount|{}commentCount[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.commentCount.|(){}[0] + final val country // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.country|{}country[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.country.|(){}[0] + final val firstAired // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.firstAired|{}firstAired[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.firstAired.|(){}[0] + final val genres // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.genres|{}genres[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.genres.|(){}[0] + final val homepage // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.homepage|{}homepage[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.homepage.|(){}[0] + final val ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.ids|{}ids[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.ids.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.images.|(){}[0] + final val language // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.language.|(){}[0] + final val languages // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.languages|{}languages[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.languages.|(){}[0] + final val media // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.media|{}media[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.media.|(){}[0] + final val network // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.network|{}network[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.network.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.overview.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.rating|{}rating[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.rating.|(){}[0] + final val released // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.released|{}released[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.released.|(){}[0] + final val runtime // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.runtime|{}runtime[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.runtime.|(){}[0] + final val status // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.status|{}status[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.status.|(){}[0] + final val tagline // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.tagline|{}tagline[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.tagline.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.title.|(){}[0] + final val trailer // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.trailer|{}trailer[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.trailer.|(){}[0] + final val updatedAt // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.updatedAt|{}updatedAt[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.updatedAt.|(){}[0] + final val votes // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.votes|{}votes[0] + final fun (): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.votes.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.year.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component11|component11(){}[0] + final fun component12(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component12|component12(){}[0] + final fun component13(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component13|component13(){}[0] + final fun component14(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component14|component14(){}[0] + final fun component15(): kotlin/Long? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component15|component15(){}[0] + final fun component16(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component16|component16(){}[0] + final fun component17(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component17|component17(){}[0] + final fun component18(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component18|component18(){}[0] + final fun component19(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component19|component19(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component2|component2(){}[0] + final fun component20(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component20|component20(){}[0] + final fun component21(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component21|component21(){}[0] + final fun component22(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component22|component22(){}[0] + final fun component23(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component23|component23(){}[0] + final fun component24(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component24|component24(){}[0] + final fun component25(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component25|component25(){}[0] + final fun component26(): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component26|component26(){}[0] + final fun component3(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component7|component7(){}[0] + final fun component8(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.component9|component9(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/Long? = ..., kotlin/Long? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Airs? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.copy|copy(kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Double?;kotlin.Long?;kotlin.Long?;kotlin.String?;kotlin.collections.List?;kotlin.collections.List?;kotlin.collections.List?;kotlin.String?;kotlin.Int?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Airs?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaSummary?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails) // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaDetails){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaDetails.Companion.serializer|serializer(){}[0] + } + } + + final class MediaSummary { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary|null[0] + constructor (kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., kotlin/Double? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.|(kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;kotlin.Double?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + + final val ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.ids|{}ids[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.ids.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.images.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.rating|{}rating[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.rating.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.title.|(){}[0] + final val year // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.year|{}year[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.year.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.component1|component1(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.component2|component2(){}[0] + final fun component3(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.component3|component3(){}[0] + final fun component4(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.component4|component4(){}[0] + final fun component5(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.component5|component5(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., kotlin/Double? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.copy|copy(kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;kotlin.Double?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary) // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.MediaSummary){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.MediaSummary.Companion.serializer|serializer(){}[0] + } + } + + final class People { // com.lagradost.cloudstream3.metaproviders/TraktProvider.People|null[0] + constructor (kotlin.collections/List? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.|(kotlin.collections.List?){}[0] + + final val cast // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.cast|{}cast[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.cast.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.component1|component1(){}[0] + final fun copy(kotlin.collections/List? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.People // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.copy|copy(kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.People // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.People) // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.People){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.People.Companion.serializer|serializer(){}[0] + } + } + + final class Person { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person|null[0] + constructor (kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.|(kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + + final val ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.ids|{}ids[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.ids.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.images.|(){}[0] + final val name // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.name|{}name[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.name.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.component2|component2(){}[0] + final fun component3(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Person // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.copy|copy(kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Person // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Person) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Person){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Person.Companion.serializer|serializer(){}[0] + } + } + + final class Seasons { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons|null[0] + constructor (kotlin/Int? = ..., kotlin/Int? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.|(kotlin.Int?;kotlin.Int?;kotlin.collections.List?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Double?;kotlin.String?;kotlin.String?;kotlin.Int?){}[0] + + final val airedEpisodes // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.airedEpisodes|{}airedEpisodes[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.airedEpisodes.|(){}[0] + final val episodeCount // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.episodeCount|{}episodeCount[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.episodeCount.|(){}[0] + final val episodes // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.episodes|{}episodes[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.episodes.|(){}[0] + final val firstAired // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.firstAired|{}firstAired[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.firstAired.|(){}[0] + final val ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.ids|{}ids[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.ids.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.images.|(){}[0] + final val network // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.network|{}network[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.network.|(){}[0] + final val number // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.number|{}number[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.number.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.overview.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.rating|{}rating[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.rating.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.title.|(){}[0] + final val updatedAt // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.updatedAt|{}updatedAt[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.updatedAt.|(){}[0] + final val votes // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.votes|{}votes[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.votes.|(){}[0] + + final fun component1(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component1|component1(){}[0] + final fun component10(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component11|component11(){}[0] + final fun component12(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component12|component12(){}[0] + final fun component13(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component13|component13(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component2|component2(){}[0] + final fun component3(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component4|component4(){}[0] + final fun component5(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component6|component6(){}[0] + final fun component7(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component7|component7(){}[0] + final fun component8(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.component9|component9(){}[0] + final fun copy(kotlin/Int? = ..., kotlin/Int? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.copy|copy(kotlin.Int?;kotlin.Int?;kotlin.collections.List?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;kotlin.String?;kotlin.Int?;kotlin.String?;kotlin.Double?;kotlin.String?;kotlin.String?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons) // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.Seasons){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.Seasons.Companion.serializer|serializer(){}[0] + } + } + + final class TraktEpisode { // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode|null[0] + constructor (kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.|(kotlin.collections.List?;kotlin.Int?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Double?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?){}[0] + + final val availableTranslations // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.availableTranslations|{}availableTranslations[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.availableTranslations.|(){}[0] + final val commentCount // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.commentCount|{}commentCount[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.commentCount.|(){}[0] + final val episodeType // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.episodeType|{}episodeType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.episodeType.|(){}[0] + final val firstAired // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.firstAired|{}firstAired[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.firstAired.|(){}[0] + final val ids // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.ids|{}ids[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.ids.|(){}[0] + final val images // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.images|{}images[0] + final fun (): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.images.|(){}[0] + final val number // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.number|{}number[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.number.|(){}[0] + final val numberAbs // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.numberAbs|{}numberAbs[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.numberAbs.|(){}[0] + final val overview // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.overview|{}overview[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.overview.|(){}[0] + final val rating // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.rating|{}rating[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.rating.|(){}[0] + final val runtime // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.runtime|{}runtime[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.runtime.|(){}[0] + final val season // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.season|{}season[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.season.|(){}[0] + final val title // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.title|{}title[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.title.|(){}[0] + final val updatedAt // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.updatedAt|{}updatedAt[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.updatedAt.|(){}[0] + final val votes // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.votes|{}votes[0] + final fun (): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.votes.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component1|component1(){}[0] + final fun component10(): kotlin/Double? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component10|component10(){}[0] + final fun component11(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component11|component11(){}[0] + final fun component12(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component12|component12(){}[0] + final fun component13(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component13|component13(){}[0] + final fun component14(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component14|component14(){}[0] + final fun component15(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component15|component15(){}[0] + final fun component2(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component4|component4(){}[0] + final fun component5(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component5|component5(){}[0] + final fun component6(): com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component6|component6(){}[0] + final fun component7(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component7|component7(){}[0] + final fun component8(): kotlin/Int? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.component9|component9(){}[0] + final fun copy(kotlin.collections/List? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Ids? = ..., com.lagradost.cloudstream3.metaproviders/TraktProvider.Images? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/Double? = ..., kotlin/Int? = ..., kotlin/Int? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int? = ...): com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.copy|copy(kotlin.collections.List?;kotlin.Int?;kotlin.String?;kotlin.String?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Ids?;com.lagradost.cloudstream3.metaproviders.TraktProvider.Images?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.Double?;kotlin.Int?;kotlin.Int?;kotlin.String?;kotlin.String?;kotlin.Int?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode) // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.metaproviders.TraktProvider.TraktEpisode){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.metaproviders/TraktProvider.TraktEpisode.Companion.serializer|serializer(){}[0] + } + } +} + +open class com.lagradost.cloudstream3.utils/DrmExtractorLink : com.lagradost.cloudstream3.utils/ExtractorLink { // com.lagradost.cloudstream3.utils/DrmExtractorLink|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, com.lagradost.cloudstream3.utils/ExtractorLinkType?, kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.uuid/Uuid = ..., kotlin/String? = ..., kotlin.collections/HashMap = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/DrmExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.collections.Map;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.uuid.Uuid;kotlin.String?;kotlin.collections.HashMap;kotlin.String?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.utils/ExtractorLinkType? = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin.uuid/Uuid = ..., kotlin/String? = ..., kotlin.collections/HashMap = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/DrmExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.collections.Map;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.uuid.Uuid;kotlin.String?;kotlin.collections.HashMap;kotlin.String?){}[0] + + open val name // com.lagradost.cloudstream3.utils/DrmExtractorLink.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/DrmExtractorLink.name.|(){}[0] + open val source // com.lagradost.cloudstream3.utils/DrmExtractorLink.source|{}source[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/DrmExtractorLink.source.|(){}[0] + open val url // com.lagradost.cloudstream3.utils/DrmExtractorLink.url|{}url[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/DrmExtractorLink.url.|(){}[0] + + open var audioTracks // com.lagradost.cloudstream3.utils/DrmExtractorLink.audioTracks|{}audioTracks[0] + open fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/DrmExtractorLink.audioTracks.|(){}[0] + open fun (kotlin.collections/List) // com.lagradost.cloudstream3.utils/DrmExtractorLink.audioTracks.|(kotlin.collections.List){}[0] + open var extractorData // com.lagradost.cloudstream3.utils/DrmExtractorLink.extractorData|{}extractorData[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/DrmExtractorLink.extractorData.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/DrmExtractorLink.extractorData.|(kotlin.String?){}[0] + open var headers // com.lagradost.cloudstream3.utils/DrmExtractorLink.headers|{}headers[0] + open fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/DrmExtractorLink.headers.|(){}[0] + open fun (kotlin.collections/Map) // com.lagradost.cloudstream3.utils/DrmExtractorLink.headers.|(kotlin.collections.Map){}[0] + open var key // com.lagradost.cloudstream3.utils/DrmExtractorLink.key|{}key[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/DrmExtractorLink.key.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/DrmExtractorLink.key.|(kotlin.String?){}[0] + open var keyRequestParameters // com.lagradost.cloudstream3.utils/DrmExtractorLink.keyRequestParameters|{}keyRequestParameters[0] + open fun (): kotlin.collections/HashMap // com.lagradost.cloudstream3.utils/DrmExtractorLink.keyRequestParameters.|(){}[0] + open fun (kotlin.collections/HashMap) // com.lagradost.cloudstream3.utils/DrmExtractorLink.keyRequestParameters.|(kotlin.collections.HashMap){}[0] + open var kid // com.lagradost.cloudstream3.utils/DrmExtractorLink.kid|{}kid[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/DrmExtractorLink.kid.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/DrmExtractorLink.kid.|(kotlin.String?){}[0] + open var kty // com.lagradost.cloudstream3.utils/DrmExtractorLink.kty|{}kty[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/DrmExtractorLink.kty.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/DrmExtractorLink.kty.|(kotlin.String?){}[0] + open var licenseUrl // com.lagradost.cloudstream3.utils/DrmExtractorLink.licenseUrl|{}licenseUrl[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/DrmExtractorLink.licenseUrl.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/DrmExtractorLink.licenseUrl.|(kotlin.String?){}[0] + open var quality // com.lagradost.cloudstream3.utils/DrmExtractorLink.quality|{}quality[0] + open fun (): kotlin/Int // com.lagradost.cloudstream3.utils/DrmExtractorLink.quality.|(){}[0] + open fun (kotlin/Int) // com.lagradost.cloudstream3.utils/DrmExtractorLink.quality.|(kotlin.Int){}[0] + open var referer // com.lagradost.cloudstream3.utils/DrmExtractorLink.referer|{}referer[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/DrmExtractorLink.referer.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.utils/DrmExtractorLink.referer.|(kotlin.String){}[0] + open var type // com.lagradost.cloudstream3.utils/DrmExtractorLink.type|{}type[0] + open fun (): com.lagradost.cloudstream3.utils/ExtractorLinkType // com.lagradost.cloudstream3.utils/DrmExtractorLink.type.|(){}[0] + open fun (com.lagradost.cloudstream3.utils/ExtractorLinkType) // com.lagradost.cloudstream3.utils/DrmExtractorLink.type.|(com.lagradost.cloudstream3.utils.ExtractorLinkType){}[0] + open var uuid // com.lagradost.cloudstream3.utils/DrmExtractorLink.uuid|{}uuid[0] + open fun (): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/DrmExtractorLink.uuid.|(){}[0] + open fun (kotlin.uuid/Uuid) // com.lagradost.cloudstream3.utils/DrmExtractorLink.uuid.|(kotlin.uuid.Uuid){}[0] +} + +open class com.lagradost.cloudstream3.utils/ExtractorLink : com.lagradost.cloudstream3/IDownloadableMinimum { // com.lagradost.cloudstream3.utils/ExtractorLink|null[0] + constructor (kotlin/Int, kotlin/String?, kotlin/String?, kotlin/String?, kotlin/String?, kotlin/Int, kotlin.collections/Map?, kotlin/String?, com.lagradost.cloudstream3.utils/ExtractorLinkType?, kotlin.collections/List?, kotlinx.serialization.internal/SerializationConstructorMarker?) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.Int;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int;kotlin.collections.Map?;kotlin.String?;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.collections.List?;kotlinx.serialization.internal.SerializationConstructorMarker?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, com.lagradost.cloudstream3.utils/ExtractorLinkType?, kotlin.collections/Map = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.collections.Map;kotlin.String?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, kotlin.collections/Map = ..., kotlin/String? = ..., com.lagradost.cloudstream3.utils/ExtractorLinkType, kotlin.collections/List = ...) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.collections.Map;kotlin.String?;com.lagradost.cloudstream3.utils.ExtractorLinkType;kotlin.collections.List){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, kotlin/Boolean = ..., kotlin.collections/Map = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.collections.Map;kotlin.String?){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/Int, kotlin/Boolean = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Boolean) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.collections.Map;kotlin.String?;kotlin.Boolean){}[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/Int? = ..., com.lagradost.cloudstream3.utils/ExtractorLinkType? = ..., kotlin.collections/Map = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/ExtractorLink.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String?;kotlin.Int?;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.collections.Map;kotlin.String?){}[0] + + final val isDash // com.lagradost.cloudstream3.utils/ExtractorLink.isDash|{}isDash[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/ExtractorLink.isDash.|(){}[0] + final val isM3u8 // com.lagradost.cloudstream3.utils/ExtractorLink.isM3u8|{}isM3u8[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/ExtractorLink.isM3u8.|(){}[0] + open val name // com.lagradost.cloudstream3.utils/ExtractorLink.name|{}name[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLink.name.|(){}[0] + open val source // com.lagradost.cloudstream3.utils/ExtractorLink.source|{}source[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLink.source.|(){}[0] + open val url // com.lagradost.cloudstream3.utils/ExtractorLink.url|{}url[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLink.url.|(){}[0] + + open var audioTracks // com.lagradost.cloudstream3.utils/ExtractorLink.audioTracks|{}audioTracks[0] + open fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/ExtractorLink.audioTracks.|(){}[0] + open fun (kotlin.collections/List) // com.lagradost.cloudstream3.utils/ExtractorLink.audioTracks.|(kotlin.collections.List){}[0] + open var extractorData // com.lagradost.cloudstream3.utils/ExtractorLink.extractorData|{}extractorData[0] + open fun (): kotlin/String? // com.lagradost.cloudstream3.utils/ExtractorLink.extractorData.|(){}[0] + open fun (kotlin/String?) // com.lagradost.cloudstream3.utils/ExtractorLink.extractorData.|(kotlin.String?){}[0] + open var headers // com.lagradost.cloudstream3.utils/ExtractorLink.headers|{}headers[0] + open fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/ExtractorLink.headers.|(){}[0] + open fun (kotlin.collections/Map) // com.lagradost.cloudstream3.utils/ExtractorLink.headers.|(kotlin.collections.Map){}[0] + open var quality // com.lagradost.cloudstream3.utils/ExtractorLink.quality|{}quality[0] + open fun (): kotlin/Int // com.lagradost.cloudstream3.utils/ExtractorLink.quality.|(){}[0] + open fun (kotlin/Int) // com.lagradost.cloudstream3.utils/ExtractorLink.quality.|(kotlin.Int){}[0] + open var referer // com.lagradost.cloudstream3.utils/ExtractorLink.referer|{}referer[0] + open fun (): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLink.referer.|(){}[0] + open fun (kotlin/String) // com.lagradost.cloudstream3.utils/ExtractorLink.referer.|(kotlin.String){}[0] + open var type // com.lagradost.cloudstream3.utils/ExtractorLink.type|{}type[0] + open fun (): com.lagradost.cloudstream3.utils/ExtractorLinkType // com.lagradost.cloudstream3.utils/ExtractorLink.type.|(){}[0] + open fun (com.lagradost.cloudstream3.utils/ExtractorLinkType) // com.lagradost.cloudstream3.utils/ExtractorLink.type.|(com.lagradost.cloudstream3.utils.ExtractorLinkType){}[0] + + final fun getAllHeaders(): kotlin.collections/Map // com.lagradost.cloudstream3.utils/ExtractorLink.getAllHeaders|getAllHeaders(){}[0] + final suspend fun getVideoSize(kotlin/Long = ...): kotlin/Long? // com.lagradost.cloudstream3.utils/ExtractorLink.getVideoSize|getVideoSize(kotlin.Long){}[0] + open fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/ExtractorLink.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.utils/ExtractorLink // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.utils/ExtractorLink) // com.lagradost.cloudstream3.utils/ExtractorLink.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.utils.ExtractorLink){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.utils/ExtractorLink.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.utils/ExtractorLink.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.utils/ExtractorLink.Companion.serializer|serializer(){}[0] + } +} + +sealed class <#A: out kotlin/Any?> com.lagradost.cloudstream3.mvvm/Resource { // com.lagradost.cloudstream3.mvvm/Resource|null[0] + final class <#A1: out kotlin/Any?> Success : com.lagradost.cloudstream3.mvvm/Resource<#A1> { // com.lagradost.cloudstream3.mvvm/Resource.Success|null[0] + constructor (#A1) // com.lagradost.cloudstream3.mvvm/Resource.Success.|(1:0){}[0] + + final val value // com.lagradost.cloudstream3.mvvm/Resource.Success.value|{}value[0] + final fun (): #A1 // com.lagradost.cloudstream3.mvvm/Resource.Success.value.|(){}[0] + + final fun component1(): #A1 // com.lagradost.cloudstream3.mvvm/Resource.Success.component1|component1(){}[0] + final fun copy(#A1 = ...): com.lagradost.cloudstream3.mvvm/Resource.Success<#A1> // com.lagradost.cloudstream3.mvvm/Resource.Success.copy|copy(1:0){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.mvvm/Resource.Success.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.mvvm/Resource.Success.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.mvvm/Resource.Success.toString|toString(){}[0] + } + + final class Failure : com.lagradost.cloudstream3.mvvm/Resource { // com.lagradost.cloudstream3.mvvm/Resource.Failure|null[0] + constructor (kotlin/Boolean, kotlin/String) // com.lagradost.cloudstream3.mvvm/Resource.Failure.|(kotlin.Boolean;kotlin.String){}[0] + + final val errorString // com.lagradost.cloudstream3.mvvm/Resource.Failure.errorString|{}errorString[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.mvvm/Resource.Failure.errorString.|(){}[0] + final val isNetworkError // com.lagradost.cloudstream3.mvvm/Resource.Failure.isNetworkError|{}isNetworkError[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.mvvm/Resource.Failure.isNetworkError.|(){}[0] + + final fun component1(): kotlin/Boolean // com.lagradost.cloudstream3.mvvm/Resource.Failure.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.mvvm/Resource.Failure.component2|component2(){}[0] + final fun copy(kotlin/Boolean = ..., kotlin/String = ...): com.lagradost.cloudstream3.mvvm/Resource.Failure // com.lagradost.cloudstream3.mvvm/Resource.Failure.copy|copy(kotlin.Boolean;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.mvvm/Resource.Failure.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.mvvm/Resource.Failure.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.mvvm/Resource.Failure.toString|toString(){}[0] + } + + final class Loading : com.lagradost.cloudstream3.mvvm/Resource { // com.lagradost.cloudstream3.mvvm/Resource.Loading|null[0] + constructor (kotlin/String? = ...) // com.lagradost.cloudstream3.mvvm/Resource.Loading.|(kotlin.String?){}[0] + + final val url // com.lagradost.cloudstream3.mvvm/Resource.Loading.url|{}url[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.mvvm/Resource.Loading.url.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.mvvm/Resource.Loading.component1|component1(){}[0] + final fun copy(kotlin/String? = ...): com.lagradost.cloudstream3.mvvm/Resource.Loading // com.lagradost.cloudstream3.mvvm/Resource.Loading.copy|copy(kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.mvvm/Resource.Loading.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.mvvm/Resource.Loading.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.mvvm/Resource.Loading.toString|toString(){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.mvvm/Resource.Companion|null[0] + final fun <#A2: kotlin/Any?> fromResult(kotlin/Result<#A2>): com.lagradost.cloudstream3.mvvm/Resource<#A2> // com.lagradost.cloudstream3.mvvm/Resource.Companion.fromResult|fromResult(kotlin.Result<0:0>){0§}[0] + } +} + +final object com.lagradost.api/BuildConfig { // com.lagradost.api/BuildConfig|null[0] + final val MDL_API_KEY // com.lagradost.api/BuildConfig.MDL_API_KEY|{}MDL_API_KEY[0] + final fun (): kotlin/String // com.lagradost.api/BuildConfig.MDL_API_KEY.|(){}[0] + final val TRAKT_CLIENT_ID // com.lagradost.api/BuildConfig.TRAKT_CLIENT_ID|{}TRAKT_CLIENT_ID[0] + final fun (): kotlin/String // com.lagradost.api/BuildConfig.TRAKT_CLIENT_ID.|(){}[0] +} + +final object com.lagradost.api/Log { // com.lagradost.api/Log|null[0] + final fun d(kotlin/String, kotlin/String) // com.lagradost.api/Log.d|d(kotlin.String;kotlin.String){}[0] + final fun e(kotlin/String, kotlin/String) // com.lagradost.api/Log.e|e(kotlin.String;kotlin.String){}[0] + final fun i(kotlin/String, kotlin/String) // com.lagradost.api/Log.i|i(kotlin.String;kotlin.String){}[0] + final fun w(kotlin/String, kotlin/String) // com.lagradost.api/Log.w|w(kotlin.String;kotlin.String){}[0] +} + +final object com.lagradost.cloudstream3.extractors.helper/AesHelper { // com.lagradost.cloudstream3.extractors.helper/AesHelper|null[0] + final fun (kotlin/String).hexToByteArray(): kotlin/ByteArray // com.lagradost.cloudstream3.extractors.helper/AesHelper.hexToByteArray|hexToByteArray@kotlin.String(){}[0] + final fun generateKeyAndIv(kotlin/ByteArray, kotlin/ByteArray, kotlin/Int = ..., kotlin/Int, kotlin/Int, kotlin/Int = ...): kotlin/Pair? // com.lagradost.cloudstream3.extractors.helper/AesHelper.generateKeyAndIv|generateKeyAndIv(kotlin.ByteArray;kotlin.ByteArray;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] + final suspend fun cryptoAESHandler(kotlin/String, kotlin/ByteArray, kotlin/Boolean = ..., kotlin/Boolean = ...): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/AesHelper.cryptoAESHandler|cryptoAESHandler(kotlin.String;kotlin.ByteArray;kotlin.Boolean;kotlin.Boolean){}[0] +} + +final object com.lagradost.cloudstream3.extractors.helper/CryptoJS { // com.lagradost.cloudstream3.extractors.helper/CryptoJS|null[0] + final fun decrypt(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/CryptoJS.decrypt|decrypt(kotlin.String;kotlin.String){}[0] + final fun encrypt(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/CryptoJS.encrypt|encrypt(kotlin.String;kotlin.String){}[0] +} + +final object com.lagradost.cloudstream3.extractors.helper/GogoHelper { // com.lagradost.cloudstream3.extractors.helper/GogoHelper|null[0] + final suspend fun extractVidstream(kotlin/String, kotlin/String, kotlin/Function1, kotlin/String?, kotlin/String?, kotlin/String?, kotlin/Boolean, kotlin/Boolean, com.fleeksoft.ksoup.nodes/Document? = ...): com.lagradost.cloudstream3.mvvm/Resource // com.lagradost.cloudstream3.extractors.helper/GogoHelper.extractVidstream|extractVidstream(kotlin.String;kotlin.String;kotlin.Function1;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean;kotlin.Boolean;com.fleeksoft.ksoup.nodes.Document?){}[0] + + final class GogoJsonData { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData|null[0] + constructor (kotlin/String? = ...) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.|(kotlin.String?){}[0] + + final val data // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.data|{}data[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.data.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.component1|component1(){}[0] + final fun copy(kotlin/String? = ...): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.copy|copy(kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.GogoHelper.GogoJsonData){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoJsonData.Companion.serializer|serializer(){}[0] + } + } + + final class GogoSource { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource|null[0] + constructor (kotlin/String, kotlin/String?, kotlin/String?, kotlin/String? = ...) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.|(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val default // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.default|{}default[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.default.|(){}[0] + final val file // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.file|{}file[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.file.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.label.|(){}[0] + final val type // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.type|{}type[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.type.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.component4|component4(){}[0] + final fun copy(kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.copy|copy(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.GogoHelper.GogoSource){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSource.Companion.serializer|serializer(){}[0] + } + } + + final class GogoSources { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources|null[0] + constructor (kotlin.collections/List?, kotlin.collections/List?) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.|(kotlin.collections.List?;kotlin.collections.List?){}[0] + + final val source // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.source|{}source[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.source.|(){}[0] + final val sourceBk // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.sourceBk|{}sourceBk[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.sourceBk.|(){}[0] + + final fun component1(): kotlin.collections/List? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.component1|component1(){}[0] + final fun component2(): kotlin.collections/List? // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.component2|component2(){}[0] + final fun copy(kotlin.collections/List? = ..., kotlin.collections/List? = ...): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.copy|copy(kotlin.collections.List?;kotlin.collections.List?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources) // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.GogoHelper.GogoSources){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.Companion|null[0] + final val $childSerializers // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.Companion.$childSerializers|{}$childSerializers[0] + + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/GogoHelper.GogoSources.Companion.serializer|serializer(){}[0] + } + } +} + +final object com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper { // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper|null[0] + final fun canParseJwScript(kotlin/String): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.canParseJwScript|canParseJwScript(kotlin.String){}[0] + final suspend fun extractStreamLinks(kotlin/String, kotlin/String, kotlin/String, kotlin/Function1, kotlin/Function1, kotlin.collections/Map = ...): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.extractStreamLinks|extractStreamLinks(kotlin.String;kotlin.String;kotlin.String;kotlin.Function1;kotlin.Function1;kotlin.collections.Map){}[0] + + final class Track { // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.|(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val file // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.file|{}file[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.file.|(){}[0] + final val kind // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.kind|{}kind[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.kind.|(){}[0] + final val label // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.label.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.component3|component3(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.toString|toString(){}[0] + + final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer|null[0] + final val descriptor // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer.descriptor|{}descriptor[0] + final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer.descriptor.|(){}[0] + + final fun childSerializers(): kotlin/Array> // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer.childSerializers|childSerializers(){}[0] + final fun deserialize(kotlinx.serialization.encoding/Decoder): com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] + final fun serialize(kotlinx.serialization.encoding/Encoder, com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track) // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper.Track){}[0] + } + + final object Companion { // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.Companion|null[0] + final fun serializer(): kotlinx.serialization/KSerializer // com.lagradost.cloudstream3.extractors.helper/JwPlayerHelper.Track.Companion.serializer|serializer(){}[0] + } + } +} + +final object com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper { // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper|null[0] + final fun cipher(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper.cipher|cipher(kotlin.String;kotlin.String){}[0] + final fun decodeVrf(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper.decodeVrf|decodeVrf(kotlin.String;kotlin.String){}[0] + final fun encode(kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper.encode|encode(kotlin.String){}[0] + final fun encodeVrf(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper.encodeVrf|encodeVrf(kotlin.String;kotlin.String){}[0] + final fun encrypt(kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors.helper/NineAnimeHelper.encrypt|encrypt(kotlin.String;kotlin.String){}[0] +} + +final object com.lagradost.cloudstream3.extractors/AesHelper { // com.lagradost.cloudstream3.extractors/AesHelper|null[0] + final fun decryptAES(kotlin/String, kotlin/String, kotlin/String): kotlin/String // com.lagradost.cloudstream3.extractors/AesHelper.decryptAES|decryptAES(kotlin.String;kotlin.String;kotlin.String){}[0] +} + +final object com.lagradost.cloudstream3.extractors/M3u8Manifest { // com.lagradost.cloudstream3.extractors/M3u8Manifest|null[0] + final fun extractLinks(kotlin/String): kotlin.collections/ArrayList> // com.lagradost.cloudstream3.extractors/M3u8Manifest.extractLinks|extractLinks(kotlin.String){}[0] +} + +final object com.lagradost.cloudstream3.metaproviders/SyncRedirector { // com.lagradost.cloudstream3.metaproviders/SyncRedirector|null[0] + final suspend fun redirect(kotlin/String, com.lagradost.cloudstream3/MainAPI): kotlin/String // com.lagradost.cloudstream3.metaproviders/SyncRedirector.redirect|redirect(kotlin.String;com.lagradost.cloudstream3.MainAPI){}[0] +} + +final object com.lagradost.cloudstream3.utils/AppUtils { // com.lagradost.cloudstream3.utils/AppUtils|null[0] + final fun (kotlin/Any).toJson(): kotlin/String // com.lagradost.cloudstream3.utils/AppUtils.toJson|toJson@kotlin.Any(){}[0] + final inline fun <#A1: reified kotlin/Any> parseJson(kotlin/String): #A1 // com.lagradost.cloudstream3.utils/AppUtils.parseJson|parseJson(kotlin.String){0§}[0] + final inline fun <#A1: reified kotlin/Any?> tryParseJson(kotlin/String?): #A1? // com.lagradost.cloudstream3.utils/AppUtils.tryParseJson|tryParseJson(kotlin.String?){0§}[0] +} + +final object com.lagradost.cloudstream3.utils/Coroutines { // com.lagradost.cloudstream3.utils/Coroutines|null[0] + final fun <#A1: kotlin/Any?> (#A1).ioSafe(kotlin.coroutines/SuspendFunction2): kotlinx.coroutines/Job // com.lagradost.cloudstream3.utils/Coroutines.ioSafe|ioSafe@0:0(kotlin.coroutines.SuspendFunction2){0§}[0] + final fun <#A1: kotlin/Any?> (#A1).main(kotlin.coroutines/SuspendFunction1<#A1, kotlin/Unit>): kotlinx.coroutines/Job // com.lagradost.cloudstream3.utils/Coroutines.main|main@0:0(kotlin.coroutines.SuspendFunction1<0:0,kotlin.Unit>){0§}[0] + final fun <#A1: kotlin/Any?> atomicListOf(kotlin/Array...): com.lagradost.cloudstream3.utils/AtomicMutableList<#A1> // com.lagradost.cloudstream3.utils/Coroutines.atomicListOf|atomicListOf(kotlin.Array...){0§}[0] + final fun <#A1: kotlin/Any?> threadSafeListOf(kotlin/Array...): kotlin.collections/MutableList<#A1> // com.lagradost.cloudstream3.utils/Coroutines.threadSafeListOf|threadSafeListOf(kotlin.Array...){0§}[0] + final fun runOnMainThread(kotlin/Function0) // com.lagradost.cloudstream3.utils/Coroutines.runOnMainThread|runOnMainThread(kotlin.Function0){}[0] + final suspend fun <#A1: kotlin/Any?, #B1: kotlin/Any?> (#B1).ioWork(kotlin.coroutines/SuspendFunction2): #A1 // com.lagradost.cloudstream3.utils/Coroutines.ioWork|ioWork@0:1(kotlin.coroutines.SuspendFunction2){0§;1§}[0] + final suspend fun <#A1: kotlin/Any?, #B1: kotlin/Any?> (#B1).ioWorkSafe(kotlin.coroutines/SuspendFunction2): #A1? // com.lagradost.cloudstream3.utils/Coroutines.ioWorkSafe|ioWorkSafe@0:1(kotlin.coroutines.SuspendFunction2){0§;1§}[0] + final suspend fun <#A1: kotlin/Any?, #B1: kotlin/Any?> (#B1).mainWork(kotlin.coroutines/SuspendFunction2): #A1 // com.lagradost.cloudstream3.utils/Coroutines.mainWork|mainWork@0:1(kotlin.coroutines.SuspendFunction2){0§;1§}[0] +} + +final object com.lagradost.cloudstream3.utils/HlsPlaylistParser { // com.lagradost.cloudstream3.utils/HlsPlaylistParser|null[0] + final fun parse(kotlin/String, kotlin/String): com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.parse|parse(kotlin.String;kotlin.String){}[0] + + final class DrmInitData { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData|null[0] + constructor (kotlin/String, kotlin/Array) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.|(kotlin.String;kotlin.Array){}[0] + + final val schemeDatas // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.schemeDatas|{}schemeDatas[0] + final fun (): kotlin/Array // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.schemeDatas.|(){}[0] + final val schemeType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.schemeType|{}schemeType[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.schemeType.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.component1|component1(){}[0] + final fun component2(): kotlin/Array // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/Array = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.copy|copy(kotlin.String;kotlin.Array){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.DrmInitData.toString|toString(){}[0] + } + + final class Format { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format|null[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Float = ..., kotlin/Int = ..., kotlin/Float = ..., kotlin/Int = ..., kotlin/Int = ...) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int;kotlin.Int;kotlin.Float;kotlin.Int;kotlin.Float;kotlin.Int;kotlin.Int){}[0] + + final val accessibilityChannel // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.accessibilityChannel|{}accessibilityChannel[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.accessibilityChannel.|(){}[0] + final val averageBitrate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.averageBitrate|{}averageBitrate[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.averageBitrate.|(){}[0] + final val bitrate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.bitrate|{}bitrate[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.bitrate.|(){}[0] + final val channelCount // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.channelCount|{}channelCount[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.channelCount.|(){}[0] + final val codecs // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.codecs|{}codecs[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.codecs.|(){}[0] + final val containerMimeType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.containerMimeType|{}containerMimeType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.containerMimeType.|(){}[0] + final val frameRate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.frameRate|{}frameRate[0] + final fun (): kotlin/Float // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.frameRate.|(){}[0] + final val height // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.height|{}height[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.height.|(){}[0] + final val id // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.id|{}id[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.id.|(){}[0] + final val label // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.label|{}label[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.label.|(){}[0] + final val language // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.language|{}language[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.language.|(){}[0] + final val peakBitrate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.peakBitrate|{}peakBitrate[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.peakBitrate.|(){}[0] + final val pixelWidthHeightRatio // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.pixelWidthHeightRatio|{}pixelWidthHeightRatio[0] + final fun (): kotlin/Float // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.pixelWidthHeightRatio.|(){}[0] + final val roleFlags // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.roleFlags|{}roleFlags[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.roleFlags.|(){}[0] + final val rotationDegrees // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.rotationDegrees|{}rotationDegrees[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.rotationDegrees.|(){}[0] + final val sampleMimeType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.sampleMimeType|{}sampleMimeType[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.sampleMimeType.|(){}[0] + final val selectionFlags // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.selectionFlags|{}selectionFlags[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.selectionFlags.|(){}[0] + final val width // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.width|{}width[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.width.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component1|component1(){}[0] + final fun component10(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component10|component10(){}[0] + final fun component11(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component11|component11(){}[0] + final fun component12(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component12|component12(){}[0] + final fun component13(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component13|component13(){}[0] + final fun component14(): kotlin/Float // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component14|component14(){}[0] + final fun component15(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component15|component15(){}[0] + final fun component16(): kotlin/Float // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component16|component16(){}[0] + final fun component17(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component17|component17(){}[0] + final fun component18(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component18|component18(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component3|component3(){}[0] + final fun component4(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component4|component4(){}[0] + final fun component5(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component5|component5(){}[0] + final fun component6(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component6|component6(){}[0] + final fun component7(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component7|component7(){}[0] + final fun component8(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component8|component8(){}[0] + final fun component9(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.component9|component9(){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Float = ..., kotlin/Int = ..., kotlin/Float = ..., kotlin/Int = ..., kotlin/Int = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Int;kotlin.Int;kotlin.Float;kotlin.Int;kotlin.Float;kotlin.Int;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.toString|toString(){}[0] + + final object Companion { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.Companion|null[0] + final const val NO_VALUE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.Companion.NO_VALUE|{}NO_VALUE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format.Companion.NO_VALUE.|(){}[0] + } + } + + final class HlsMultivariantPlaylist { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist|null[0] + constructor (kotlin/String, kotlin.collections/List, kotlin.collections/List, kotlin.collections/List, kotlin.collections/List, kotlin.collections/List, kotlin.collections/List, com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format? = ..., kotlin.collections/List?, kotlin.collections/Map, kotlin.collections/List, kotlin/Boolean) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.|(kotlin.String;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format?;kotlin.collections.List?;kotlin.collections.Map;kotlin.collections.List;kotlin.Boolean){}[0] + + final val audios // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.audios|{}audios[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.audios.|(){}[0] + final val baseUri // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.baseUri|{}baseUri[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.baseUri.|(){}[0] + final val closedCaptions // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.closedCaptions|{}closedCaptions[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.closedCaptions.|(){}[0] + final val hasIndependentSegments // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.hasIndependentSegments|{}hasIndependentSegments[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.hasIndependentSegments.|(){}[0] + final val muxedAudioFormat // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.muxedAudioFormat|{}muxedAudioFormat[0] + final fun (): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.muxedAudioFormat.|(){}[0] + final val muxedCaptionFormats // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.muxedCaptionFormats|{}muxedCaptionFormats[0] + final fun (): kotlin.collections/List? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.muxedCaptionFormats.|(){}[0] + final val sessionKeyDrmInitData // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.sessionKeyDrmInitData|{}sessionKeyDrmInitData[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.sessionKeyDrmInitData.|(){}[0] + final val subtitles // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.subtitles|{}subtitles[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.subtitles.|(){}[0] + final val tags // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.tags|{}tags[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.tags.|(){}[0] + final val variableDefinitions // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.variableDefinitions|{}variableDefinitions[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.variableDefinitions.|(){}[0] + final val variants // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.variants|{}variants[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.variants.|(){}[0] + final val videos // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.videos|{}videos[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.videos.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component1|component1(){}[0] + final fun component10(): kotlin.collections/Map // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component10|component10(){}[0] + final fun component11(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component11|component11(){}[0] + final fun component12(): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component12|component12(){}[0] + final fun component2(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component2|component2(){}[0] + final fun component3(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component4|component4(){}[0] + final fun component5(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component5|component5(){}[0] + final fun component6(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component6|component6(){}[0] + final fun component7(): kotlin.collections/List // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component7|component7(){}[0] + final fun component8(): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component8|component8(){}[0] + final fun component9(): kotlin.collections/List? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., kotlin.collections/List = ..., com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format? = ..., kotlin.collections/List? = ..., kotlin.collections/Map = ..., kotlin.collections/List = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.copy|copy(kotlin.String;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;kotlin.collections.List;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format?;kotlin.collections.List?;kotlin.collections.Map;kotlin.collections.List;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist.toString|toString(){}[0] + } + + final class ParserException : kotlinx.io/IOException { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException|null[0] + constructor (kotlin/String?, kotlin/Throwable?, kotlin/Boolean, kotlin/Int) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.|(kotlin.String?;kotlin.Throwable?;kotlin.Boolean;kotlin.Int){}[0] + + final val cause // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.cause|{}cause[0] + final fun (): kotlin/Throwable? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.cause.|(){}[0] + final val contentIsMalformed // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.contentIsMalformed|{}contentIsMalformed[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.contentIsMalformed.|(){}[0] + final val dataType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.dataType|{}dataType[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.dataType.|(){}[0] + final val message // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.message|{}message[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.message.|(){}[0] + + final fun component1(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.component1|component1(){}[0] + final fun component2(): kotlin/Throwable? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.component3|component3(){}[0] + final fun component4(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.component4|component4(){}[0] + final fun copy(kotlin/String? = ..., kotlin/Throwable? = ..., kotlin/Boolean = ..., kotlin/Int = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.copy|copy(kotlin.String?;kotlin.Throwable?;kotlin.Boolean;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.toString|toString(){}[0] + + final object Companion { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.Companion|null[0] + final const val DATA_TYPE_MANIFEST // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.Companion.DATA_TYPE_MANIFEST|{}DATA_TYPE_MANIFEST[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.Companion.DATA_TYPE_MANIFEST.|(){}[0] + + final fun createForMalformedManifest(kotlin/String?, kotlin/Throwable?): com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException // com.lagradost.cloudstream3.utils/HlsPlaylistParser.ParserException.Companion.createForMalformedManifest|createForMalformedManifest(kotlin.String?;kotlin.Throwable?){}[0] + } + } + + final class Rendition { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition|null[0] + constructor (io.ktor.http/Url?, com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.|(io.ktor.http.Url?;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format;kotlin.String;kotlin.String){}[0] + + final val format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.format|{}format[0] + final fun (): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.format.|(){}[0] + final val groupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.groupId|{}groupId[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.groupId.|(){}[0] + final val name // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.name|{}name[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.name.|(){}[0] + final val url // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.url|{}url[0] + final fun (): io.ktor.http/Url? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.url.|(){}[0] + + final fun component1(): io.ktor.http/Url? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.component4|component4(){}[0] + final fun copy(io.ktor.http/Url? = ..., com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.copy|copy(io.ktor.http.Url?;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Rendition.toString|toString(){}[0] + } + + final class SchemeData { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData|null[0] + constructor (kotlin.uuid/Uuid, kotlin/String? = ..., kotlin/String, kotlin/ByteArray) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.|(kotlin.uuid.Uuid;kotlin.String?;kotlin.String;kotlin.ByteArray){}[0] + + final val data // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.data|{}data[0] + final fun (): kotlin/ByteArray // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.data.|(){}[0] + final val licenseServerUrl // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.licenseServerUrl|{}licenseServerUrl[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.licenseServerUrl.|(){}[0] + final val mimeType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.mimeType|{}mimeType[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.mimeType.|(){}[0] + final val uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.uuid|{}uuid[0] + final fun (): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.uuid.|(){}[0] + + final fun component1(): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.component1|component1(){}[0] + final fun component2(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.component3|component3(){}[0] + final fun component4(): kotlin/ByteArray // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.component4|component4(){}[0] + final fun copy(kotlin.uuid/Uuid = ..., kotlin/String? = ..., kotlin/String = ..., kotlin/ByteArray = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.copy|copy(kotlin.uuid.Uuid;kotlin.String?;kotlin.String;kotlin.ByteArray){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.SchemeData.toString|toString(){}[0] + } + + final class Variant { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant|null[0] + constructor (io.ktor.http/Url, com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format, kotlin/String?, kotlin/String?, kotlin/String?, kotlin/String?) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.|(io.ktor.http.Url;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val audioGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.audioGroupId|{}audioGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.audioGroupId.|(){}[0] + final val captionGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.captionGroupId|{}captionGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.captionGroupId.|(){}[0] + final val format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.format|{}format[0] + final fun (): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.format.|(){}[0] + final val subtitleGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.subtitleGroupId|{}subtitleGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.subtitleGroupId.|(){}[0] + final val url // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.url|{}url[0] + final fun (): io.ktor.http/Url // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.url.|(){}[0] + final val videoGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.videoGroupId|{}videoGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.videoGroupId.|(){}[0] + + final fun component1(): io.ktor.http/Url // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component1|component1(){}[0] + final fun component2(): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.component6|component6(){}[0] + final fun copy(io.ktor.http/Url = ..., com.lagradost.cloudstream3.utils/HlsPlaylistParser.Format = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.copy|copy(io.ktor.http.Url;com.lagradost.cloudstream3.utils.HlsPlaylistParser.Format;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.hashCode|hashCode(){}[0] + final fun isPlayableStandalone(com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.isPlayableStandalone|isPlayableStandalone(com.lagradost.cloudstream3.utils.HlsPlaylistParser.HlsMultivariantPlaylist){}[0] + final fun isTrickPlay(): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.isTrickPlay|isTrickPlay(){}[0] + final fun mustContainAudio(com.lagradost.cloudstream3.utils/HlsPlaylistParser.HlsMultivariantPlaylist): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.mustContainAudio|mustContainAudio(com.lagradost.cloudstream3.utils.HlsPlaylistParser.HlsMultivariantPlaylist){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Variant.toString|toString(){}[0] + } + + final class VariantInfo { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo|null[0] + constructor (kotlin/Int = ..., kotlin/Int, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.|(kotlin.Int;kotlin.Int;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + + final val audioGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.audioGroupId|{}audioGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.audioGroupId.|(){}[0] + final val averageBitrate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.averageBitrate|{}averageBitrate[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.averageBitrate.|(){}[0] + final val captionGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.captionGroupId|{}captionGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.captionGroupId.|(){}[0] + final val peakBitrate // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.peakBitrate|{}peakBitrate[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.peakBitrate.|(){}[0] + final val subtitleGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.subtitleGroupId|{}subtitleGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.subtitleGroupId.|(){}[0] + final val videoGroupId // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.videoGroupId|{}videoGroupId[0] + final fun (): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.videoGroupId.|(){}[0] + + final fun component1(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component1|component1(){}[0] + final fun component2(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component2|component2(){}[0] + final fun component3(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component3|component3(){}[0] + final fun component4(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component4|component4(){}[0] + final fun component5(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component5|component5(){}[0] + final fun component6(): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.component6|component6(){}[0] + final fun copy(kotlin/Int = ..., kotlin/Int = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.copy|copy(kotlin.Int;kotlin.Int;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.VariantInfo.toString|toString(){}[0] + } + + final object C { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C|null[0] + final const val CENC_TYPE_cbc1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cbc1|{}CENC_TYPE_cbc1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cbc1.|(){}[0] + final const val CENC_TYPE_cbcs // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cbcs|{}CENC_TYPE_cbcs[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cbcs.|(){}[0] + final const val CENC_TYPE_cenc // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cenc|{}CENC_TYPE_cenc[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cenc.|(){}[0] + final const val CENC_TYPE_cens // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cens|{}CENC_TYPE_cens[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CENC_TYPE_cens.|(){}[0] + final const val ROLE_FLAG_ALTERNATE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_ALTERNATE|{}ROLE_FLAG_ALTERNATE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_ALTERNATE.|(){}[0] + final const val ROLE_FLAG_CAPTION // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_CAPTION|{}ROLE_FLAG_CAPTION[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_CAPTION.|(){}[0] + final const val ROLE_FLAG_COMMENTARY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_COMMENTARY|{}ROLE_FLAG_COMMENTARY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_COMMENTARY.|(){}[0] + final const val ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND|{}ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND.|(){}[0] + final const val ROLE_FLAG_DESCRIBES_VIDEO // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DESCRIBES_VIDEO|{}ROLE_FLAG_DESCRIBES_VIDEO[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DESCRIBES_VIDEO.|(){}[0] + final const val ROLE_FLAG_DUB // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DUB|{}ROLE_FLAG_DUB[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_DUB.|(){}[0] + final const val ROLE_FLAG_EASY_TO_READ // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_EASY_TO_READ|{}ROLE_FLAG_EASY_TO_READ[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_EASY_TO_READ.|(){}[0] + final const val ROLE_FLAG_EMERGENCY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_EMERGENCY|{}ROLE_FLAG_EMERGENCY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_EMERGENCY.|(){}[0] + final const val ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY|{}ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY.|(){}[0] + final const val ROLE_FLAG_MAIN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_MAIN|{}ROLE_FLAG_MAIN[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_MAIN.|(){}[0] + final const val ROLE_FLAG_SIGN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SIGN|{}ROLE_FLAG_SIGN[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SIGN.|(){}[0] + final const val ROLE_FLAG_SUBTITLE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SUBTITLE|{}ROLE_FLAG_SUBTITLE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SUBTITLE.|(){}[0] + final const val ROLE_FLAG_SUPPLEMENTARY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SUPPLEMENTARY|{}ROLE_FLAG_SUPPLEMENTARY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_SUPPLEMENTARY.|(){}[0] + final const val ROLE_FLAG_TRANSCRIBES_DIALOG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_TRANSCRIBES_DIALOG|{}ROLE_FLAG_TRANSCRIBES_DIALOG[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_TRANSCRIBES_DIALOG.|(){}[0] + final const val ROLE_FLAG_TRICK_PLAY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_TRICK_PLAY|{}ROLE_FLAG_TRICK_PLAY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.ROLE_FLAG_TRICK_PLAY.|(){}[0] + final const val SELECTION_FLAG_AUTOSELECT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_AUTOSELECT|{}SELECTION_FLAG_AUTOSELECT[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_AUTOSELECT.|(){}[0] + final const val SELECTION_FLAG_DEFAULT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_DEFAULT|{}SELECTION_FLAG_DEFAULT[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_DEFAULT.|(){}[0] + final const val SELECTION_FLAG_FORCED // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_FORCED|{}SELECTION_FLAG_FORCED[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.SELECTION_FLAG_FORCED.|(){}[0] + final const val TRACK_TYPE_AUDIO // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_AUDIO|{}TRACK_TYPE_AUDIO[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_AUDIO.|(){}[0] + final const val TRACK_TYPE_CAMERA_MOTION // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_CAMERA_MOTION|{}TRACK_TYPE_CAMERA_MOTION[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_CAMERA_MOTION.|(){}[0] + final const val TRACK_TYPE_DEFAULT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_DEFAULT|{}TRACK_TYPE_DEFAULT[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_DEFAULT.|(){}[0] + final const val TRACK_TYPE_IMAGE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_IMAGE|{}TRACK_TYPE_IMAGE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_IMAGE.|(){}[0] + final const val TRACK_TYPE_METADATA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_METADATA|{}TRACK_TYPE_METADATA[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_METADATA.|(){}[0] + final const val TRACK_TYPE_NONE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_NONE|{}TRACK_TYPE_NONE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_NONE.|(){}[0] + final const val TRACK_TYPE_TEXT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_TEXT|{}TRACK_TYPE_TEXT[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_TEXT.|(){}[0] + final const val TRACK_TYPE_UNKNOWN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_UNKNOWN|{}TRACK_TYPE_UNKNOWN[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_UNKNOWN.|(){}[0] + final const val TRACK_TYPE_VIDEO // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_VIDEO|{}TRACK_TYPE_VIDEO[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.TRACK_TYPE_VIDEO.|(){}[0] + + final val CLEARKEY_UUID // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CLEARKEY_UUID|{}CLEARKEY_UUID[0] + final fun (): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.CLEARKEY_UUID.|(){}[0] + final val PLAYREADY_UUID // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.PLAYREADY_UUID|{}PLAYREADY_UUID[0] + final fun (): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.PLAYREADY_UUID.|(){}[0] + final val WIDEVINE_UUID // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.WIDEVINE_UUID|{}WIDEVINE_UUID[0] + final fun (): kotlin.uuid/Uuid // com.lagradost.cloudstream3.utils/HlsPlaylistParser.C.WIDEVINE_UUID.|(){}[0] + } + + final object MimeTypes { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes|null[0] + final const val APPLICATION_AIT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_AIT|{}APPLICATION_AIT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_AIT.|(){}[0] + final const val APPLICATION_CAMERA_MOTION // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CAMERA_MOTION|{}APPLICATION_CAMERA_MOTION[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CAMERA_MOTION.|(){}[0] + final const val APPLICATION_CEA608 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CEA608|{}APPLICATION_CEA608[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CEA608.|(){}[0] + final const val APPLICATION_CEA708 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CEA708|{}APPLICATION_CEA708[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_CEA708.|(){}[0] + final const val APPLICATION_DEPTH_METADATA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_DEPTH_METADATA|{}APPLICATION_DEPTH_METADATA[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_DEPTH_METADATA.|(){}[0] + final const val APPLICATION_DVBSUBS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_DVBSUBS|{}APPLICATION_DVBSUBS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_DVBSUBS.|(){}[0] + final const val APPLICATION_EMSG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EMSG|{}APPLICATION_EMSG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EMSG.|(){}[0] + final const val APPLICATION_EXIF // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EXIF|{}APPLICATION_EXIF[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EXIF.|(){}[0] + final const val APPLICATION_EXTERNALLY_LOADED_IMAGE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EXTERNALLY_LOADED_IMAGE|{}APPLICATION_EXTERNALLY_LOADED_IMAGE[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_EXTERNALLY_LOADED_IMAGE.|(){}[0] + final const val APPLICATION_ICY // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_ICY|{}APPLICATION_ICY[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_ICY.|(){}[0] + final const val APPLICATION_ID3 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_ID3|{}APPLICATION_ID3[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_ID3.|(){}[0] + final const val APPLICATION_M3U8 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_M3U8|{}APPLICATION_M3U8[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_M3U8.|(){}[0] + final const val APPLICATION_MATROSKA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MATROSKA|{}APPLICATION_MATROSKA[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MATROSKA.|(){}[0] + final const val APPLICATION_MEDIA3_CUES // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MEDIA3_CUES|{}APPLICATION_MEDIA3_CUES[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MEDIA3_CUES.|(){}[0] + final const val APPLICATION_MP4 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4|{}APPLICATION_MP4[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4.|(){}[0] + final const val APPLICATION_MP4CEA608 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4CEA608|{}APPLICATION_MP4CEA608[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4CEA608.|(){}[0] + final const val APPLICATION_MP4VTT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4VTT|{}APPLICATION_MP4VTT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MP4VTT.|(){}[0] + final const val APPLICATION_MPD // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MPD|{}APPLICATION_MPD[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_MPD.|(){}[0] + final const val APPLICATION_PGS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_PGS|{}APPLICATION_PGS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_PGS.|(){}[0] + final const val APPLICATION_RTSP // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_RTSP|{}APPLICATION_RTSP[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_RTSP.|(){}[0] + final const val APPLICATION_SCTE35 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SCTE35|{}APPLICATION_SCTE35[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SCTE35.|(){}[0] + final const val APPLICATION_SDP // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SDP|{}APPLICATION_SDP[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SDP.|(){}[0] + final const val APPLICATION_SS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SS|{}APPLICATION_SS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SS.|(){}[0] + final const val APPLICATION_SUBRIP // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SUBRIP|{}APPLICATION_SUBRIP[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_SUBRIP.|(){}[0] + final const val APPLICATION_TTML // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_TTML|{}APPLICATION_TTML[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_TTML.|(){}[0] + final const val APPLICATION_TX3G // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_TX3G|{}APPLICATION_TX3G[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_TX3G.|(){}[0] + final const val APPLICATION_VOBSUB // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_VOBSUB|{}APPLICATION_VOBSUB[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_VOBSUB.|(){}[0] + final const val APPLICATION_WEBM // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_WEBM|{}APPLICATION_WEBM[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.APPLICATION_WEBM.|(){}[0] + final const val AUDIO_AAC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AAC|{}AUDIO_AAC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AAC.|(){}[0] + final const val AUDIO_AC3 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AC3|{}AUDIO_AC3[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AC3.|(){}[0] + final const val AUDIO_AC4 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AC4|{}AUDIO_AC4[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AC4.|(){}[0] + final const val AUDIO_ALAC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_ALAC|{}AUDIO_ALAC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_ALAC.|(){}[0] + final const val AUDIO_ALAW // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_ALAW|{}AUDIO_ALAW[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_ALAW.|(){}[0] + final const val AUDIO_AMR // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR|{}AUDIO_AMR[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR.|(){}[0] + final const val AUDIO_AMR_NB // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR_NB|{}AUDIO_AMR_NB[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR_NB.|(){}[0] + final const val AUDIO_AMR_WB // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR_WB|{}AUDIO_AMR_WB[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_AMR_WB.|(){}[0] + final const val AUDIO_DTS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS|{}AUDIO_DTS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS.|(){}[0] + final const val AUDIO_DTS_EXPRESS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_EXPRESS|{}AUDIO_DTS_EXPRESS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_EXPRESS.|(){}[0] + final const val AUDIO_DTS_HD // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_HD|{}AUDIO_DTS_HD[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_HD.|(){}[0] + final const val AUDIO_DTS_X // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_X|{}AUDIO_DTS_X[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_DTS_X.|(){}[0] + final const val AUDIO_EXOPLAYER_MIDI // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_EXOPLAYER_MIDI|{}AUDIO_EXOPLAYER_MIDI[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_EXOPLAYER_MIDI.|(){}[0] + final const val AUDIO_E_AC3 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_E_AC3|{}AUDIO_E_AC3[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_E_AC3.|(){}[0] + final const val AUDIO_E_AC3_JOC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_E_AC3_JOC|{}AUDIO_E_AC3_JOC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_E_AC3_JOC.|(){}[0] + final const val AUDIO_FLAC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_FLAC|{}AUDIO_FLAC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_FLAC.|(){}[0] + final const val AUDIO_IAMF // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_IAMF|{}AUDIO_IAMF[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_IAMF.|(){}[0] + final const val AUDIO_MATROSKA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MATROSKA|{}AUDIO_MATROSKA[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MATROSKA.|(){}[0] + final const val AUDIO_MIDI // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MIDI|{}AUDIO_MIDI[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MIDI.|(){}[0] + final const val AUDIO_MLAW // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MLAW|{}AUDIO_MLAW[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MLAW.|(){}[0] + final const val AUDIO_MP4 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MP4|{}AUDIO_MP4[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MP4.|(){}[0] + final const val AUDIO_MPEG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG|{}AUDIO_MPEG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG.|(){}[0] + final const val AUDIO_MPEGH_MHA1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEGH_MHA1|{}AUDIO_MPEGH_MHA1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEGH_MHA1.|(){}[0] + final const val AUDIO_MPEGH_MHM1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEGH_MHM1|{}AUDIO_MPEGH_MHM1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEGH_MHM1.|(){}[0] + final const val AUDIO_MPEG_L1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG_L1|{}AUDIO_MPEG_L1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG_L1.|(){}[0] + final const val AUDIO_MPEG_L2 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG_L2|{}AUDIO_MPEG_L2[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MPEG_L2.|(){}[0] + final const val AUDIO_MSGSM // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MSGSM|{}AUDIO_MSGSM[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_MSGSM.|(){}[0] + final const val AUDIO_OGG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_OGG|{}AUDIO_OGG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_OGG.|(){}[0] + final const val AUDIO_OPUS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_OPUS|{}AUDIO_OPUS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_OPUS.|(){}[0] + final const val AUDIO_RAW // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_RAW|{}AUDIO_RAW[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_RAW.|(){}[0] + final const val AUDIO_TRUEHD // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_TRUEHD|{}AUDIO_TRUEHD[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_TRUEHD.|(){}[0] + final const val AUDIO_UNKNOWN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_UNKNOWN|{}AUDIO_UNKNOWN[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_UNKNOWN.|(){}[0] + final const val AUDIO_VORBIS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_VORBIS|{}AUDIO_VORBIS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_VORBIS.|(){}[0] + final const val AUDIO_WAV // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_WAV|{}AUDIO_WAV[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_WAV.|(){}[0] + final const val AUDIO_WEBM // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_WEBM|{}AUDIO_WEBM[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.AUDIO_WEBM.|(){}[0] + final const val BASE_TYPE_APPLICATION // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_APPLICATION|{}BASE_TYPE_APPLICATION[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_APPLICATION.|(){}[0] + final const val BASE_TYPE_AUDIO // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_AUDIO|{}BASE_TYPE_AUDIO[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_AUDIO.|(){}[0] + final const val BASE_TYPE_IMAGE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_IMAGE|{}BASE_TYPE_IMAGE[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_IMAGE.|(){}[0] + final const val BASE_TYPE_TEXT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_TEXT|{}BASE_TYPE_TEXT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_TEXT.|(){}[0] + final const val BASE_TYPE_VIDEO // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_VIDEO|{}BASE_TYPE_VIDEO[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.BASE_TYPE_VIDEO.|(){}[0] + final const val CODEC_E_AC3_JOC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.CODEC_E_AC3_JOC|{}CODEC_E_AC3_JOC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.CODEC_E_AC3_JOC.|(){}[0] + final const val IMAGE_AVIF // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_AVIF|{}IMAGE_AVIF[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_AVIF.|(){}[0] + final const val IMAGE_BMP // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_BMP|{}IMAGE_BMP[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_BMP.|(){}[0] + final const val IMAGE_HEIC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_HEIC|{}IMAGE_HEIC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_HEIC.|(){}[0] + final const val IMAGE_HEIF // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_HEIF|{}IMAGE_HEIF[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_HEIF.|(){}[0] + final const val IMAGE_JPEG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_JPEG|{}IMAGE_JPEG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_JPEG.|(){}[0] + final const val IMAGE_JPEG_R // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_JPEG_R|{}IMAGE_JPEG_R[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_JPEG_R.|(){}[0] + final const val IMAGE_PNG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_PNG|{}IMAGE_PNG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_PNG.|(){}[0] + final const val IMAGE_RAW // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_RAW|{}IMAGE_RAW[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_RAW.|(){}[0] + final const val IMAGE_WEBP // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_WEBP|{}IMAGE_WEBP[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.IMAGE_WEBP.|(){}[0] + final const val TEXT_SSA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_SSA|{}TEXT_SSA[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_SSA.|(){}[0] + final const val TEXT_UNKNOWN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_UNKNOWN|{}TEXT_UNKNOWN[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_UNKNOWN.|(){}[0] + final const val TEXT_VTT // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_VTT|{}TEXT_VTT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.TEXT_VTT.|(){}[0] + final const val VIDEO_APV // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_APV|{}VIDEO_APV[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_APV.|(){}[0] + final const val VIDEO_AV1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_AV1|{}VIDEO_AV1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_AV1.|(){}[0] + final const val VIDEO_AVI // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_AVI|{}VIDEO_AVI[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_AVI.|(){}[0] + final const val VIDEO_DIVX // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_DIVX|{}VIDEO_DIVX[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_DIVX.|(){}[0] + final const val VIDEO_DOLBY_VISION // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_DOLBY_VISION|{}VIDEO_DOLBY_VISION[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_DOLBY_VISION.|(){}[0] + final const val VIDEO_FLV // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_FLV|{}VIDEO_FLV[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_FLV.|(){}[0] + final const val VIDEO_H263 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H263|{}VIDEO_H263[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H263.|(){}[0] + final const val VIDEO_H264 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H264|{}VIDEO_H264[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H264.|(){}[0] + final const val VIDEO_H265 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H265|{}VIDEO_H265[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_H265.|(){}[0] + final const val VIDEO_MATROSKA // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MATROSKA|{}VIDEO_MATROSKA[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MATROSKA.|(){}[0] + final const val VIDEO_MJPEG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MJPEG|{}VIDEO_MJPEG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MJPEG.|(){}[0] + final const val VIDEO_MP2T // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP2T|{}VIDEO_MP2T[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP2T.|(){}[0] + final const val VIDEO_MP4 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP4|{}VIDEO_MP4[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP4.|(){}[0] + final const val VIDEO_MP42 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP42|{}VIDEO_MP42[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP42.|(){}[0] + final const val VIDEO_MP43 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP43|{}VIDEO_MP43[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP43.|(){}[0] + final const val VIDEO_MP4V // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP4V|{}VIDEO_MP4V[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MP4V.|(){}[0] + final const val VIDEO_MPEG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MPEG|{}VIDEO_MPEG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MPEG.|(){}[0] + final const val VIDEO_MPEG2 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MPEG2|{}VIDEO_MPEG2[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MPEG2.|(){}[0] + final const val VIDEO_MV_HEVC // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MV_HEVC|{}VIDEO_MV_HEVC[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_MV_HEVC.|(){}[0] + final const val VIDEO_OGG // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_OGG|{}VIDEO_OGG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_OGG.|(){}[0] + final const val VIDEO_PS // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_PS|{}VIDEO_PS[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_PS.|(){}[0] + final const val VIDEO_RAW // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_RAW|{}VIDEO_RAW[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_RAW.|(){}[0] + final const val VIDEO_UNKNOWN // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_UNKNOWN|{}VIDEO_UNKNOWN[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_UNKNOWN.|(){}[0] + final const val VIDEO_VC1 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VC1|{}VIDEO_VC1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VC1.|(){}[0] + final const val VIDEO_VP8 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VP8|{}VIDEO_VP8[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VP8.|(){}[0] + final const val VIDEO_VP9 // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VP9|{}VIDEO_VP9[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_VP9.|(){}[0] + final const val VIDEO_WEBM // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_WEBM|{}VIDEO_WEBM[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.VIDEO_WEBM.|(){}[0] + + final fun getMediaMimeType(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.getMediaMimeType|getMediaMimeType(kotlin.String?){}[0] + final fun getMimeTypeFromMp4ObjectType(kotlin/Int): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.getMimeTypeFromMp4ObjectType|getMimeTypeFromMp4ObjectType(kotlin.Int){}[0] + final fun getObjectTypeFromMp4aRFC6381CodecString(kotlin/String?): com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.getObjectTypeFromMp4aRFC6381CodecString|getObjectTypeFromMp4aRFC6381CodecString(kotlin.String?){}[0] + final fun getTrackType(kotlin/String?): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.getTrackType|getTrackType(kotlin.String?){}[0] + final fun getTrackTypeOfCodec(kotlin/String?): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.getTrackTypeOfCodec|getTrackTypeOfCodec(kotlin.String?){}[0] + final fun isAudio(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.isAudio|isAudio(kotlin.String?){}[0] + final fun isDolbyVisionCodec(kotlin/String?, kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.isDolbyVisionCodec|isDolbyVisionCodec(kotlin.String?;kotlin.String?){}[0] + final fun isImage(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.isImage|isImage(kotlin.String?){}[0] + final fun isText(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.isText|isText(kotlin.String?){}[0] + final fun isVideo(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.isVideo|isVideo(kotlin.String?){}[0] + + final class Mp4aObjectType { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType|null[0] + constructor (kotlin/Int, kotlin/Int) // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.|(kotlin.Int;kotlin.Int){}[0] + + final val audioObjectTypeIndication // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.audioObjectTypeIndication|{}audioObjectTypeIndication[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.audioObjectTypeIndication.|(){}[0] + final val objectTypeIndication // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.objectTypeIndication|{}objectTypeIndication[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.objectTypeIndication.|(){}[0] + + final fun component1(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.component1|component1(){}[0] + final fun component2(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.component2|component2(){}[0] + final fun copy(kotlin/Int = ..., kotlin/Int = ...): com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.copy|copy(kotlin.Int;kotlin.Int){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/HlsPlaylistParser.MimeTypes.Mp4aObjectType.toString|toString(){}[0] + } + } + + final object Mp4Box { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Mp4Box|null[0] + final const val FULL_HEADER_SIZE // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Mp4Box.FULL_HEADER_SIZE|{}FULL_HEADER_SIZE[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Mp4Box.FULL_HEADER_SIZE.|(){}[0] + final const val TYPE_pssh // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Mp4Box.TYPE_pssh|{}TYPE_pssh[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Mp4Box.TYPE_pssh.|(){}[0] + } + + final object PsshAtomUtil { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.PsshAtomUtil|null[0] + final fun buildPsshAtom(kotlin.uuid/Uuid, kotlin/Array?, kotlin/ByteArray?): kotlin/ByteArray // com.lagradost.cloudstream3.utils/HlsPlaylistParser.PsshAtomUtil.buildPsshAtom|buildPsshAtom(kotlin.uuid.Uuid;kotlin.Array?;kotlin.ByteArray?){}[0] + } + + final object UrlUtil { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.UrlUtil|null[0] + final fun resolveToUrl(kotlin/String?, kotlin/String?): io.ktor.http/Url // com.lagradost.cloudstream3.utils/HlsPlaylistParser.UrlUtil.resolveToUrl|resolveToUrl(kotlin.String?;kotlin.String?){}[0] + } + + final object Util { // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util|null[0] + final fun getCodecsOfType(kotlin/String?, kotlin/Int): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util.getCodecsOfType|getCodecsOfType(kotlin.String?;kotlin.Int){}[0] + final fun getCodecsWithoutType(kotlin/String?, kotlin/Int): kotlin/String? // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util.getCodecsWithoutType|getCodecsWithoutType(kotlin.String?;kotlin.Int){}[0] + final fun split(kotlin/String, kotlin/String): kotlin/Array // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util.split|split(kotlin.String;kotlin.String){}[0] + final fun splitAtFirst(kotlin/String, kotlin/String): kotlin/Array // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util.splitAtFirst|splitAtFirst(kotlin.String;kotlin.String){}[0] + final fun splitCodecs(kotlin/String?): kotlin/Array // com.lagradost.cloudstream3.utils/HlsPlaylistParser.Util.splitCodecs|splitCodecs(kotlin.String?){}[0] + } +} + +final object com.lagradost.cloudstream3.utils/Levenshtein { // com.lagradost.cloudstream3.utils/Levenshtein|null[0] + final fun partialRatio(kotlin/String, kotlin/String, kotlin/Function1 = ...): kotlin/Int // com.lagradost.cloudstream3.utils/Levenshtein.partialRatio|partialRatio(kotlin.String;kotlin.String;kotlin.Function1){}[0] + final fun ratio(kotlin/String, kotlin/String, kotlin/Function1 = ...): kotlin/Int // com.lagradost.cloudstream3.utils/Levenshtein.ratio|ratio(kotlin.String;kotlin.String;kotlin.Function1){}[0] +} + +final object com.lagradost.cloudstream3.utils/M3u8Helper2 { // com.lagradost.cloudstream3.utils/M3u8Helper2|null[0] + final fun getDecrypted(kotlin/ByteArray, kotlin/ByteArray, kotlin/ByteArray = ..., kotlin/Int): kotlin/ByteArray // com.lagradost.cloudstream3.utils/M3u8Helper2.getDecrypted|getDecrypted(kotlin.ByteArray;kotlin.ByteArray;kotlin.ByteArray;kotlin.Int){}[0] + final suspend fun generateM3u8(kotlin/String, kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin.collections/Map = ..., kotlin/String = ...): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper2.generateM3u8|generateM3u8(kotlin.String;kotlin.String;kotlin.String;kotlin.Int?;kotlin.collections.Map;kotlin.String){}[0] + final suspend fun hslLazy(com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream, kotlin/Boolean = ..., kotlin/Boolean, kotlin/Int = ...): com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData // com.lagradost.cloudstream3.utils/M3u8Helper2.hslLazy|hslLazy(com.lagradost.cloudstream3.utils.M3u8Helper.M3u8Stream;kotlin.Boolean;kotlin.Boolean;kotlin.Int){}[0] + final suspend fun m3u8Generation(com.lagradost.cloudstream3.utils/M3u8Helper.M3u8Stream, kotlin/Boolean = ...): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper2.m3u8Generation|m3u8Generation(com.lagradost.cloudstream3.utils.M3u8Helper.M3u8Stream;kotlin.Boolean){}[0] + + final class LazyHlsDownloadData { // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData|null[0] + constructor (kotlin/ByteArray, kotlin/ByteArray, kotlin/Boolean, kotlin.collections/List, kotlin/String, kotlin.collections/Map) // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.|(kotlin.ByteArray;kotlin.ByteArray;kotlin.Boolean;kotlin.collections.List;kotlin.String;kotlin.collections.Map){}[0] + + final val allTsLinks // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.allTsLinks|{}allTsLinks[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.allTsLinks.|(){}[0] + final val headers // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.headers|{}headers[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.headers.|(){}[0] + final val isEncrypted // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.isEncrypted|{}isEncrypted[0] + final fun (): kotlin/Boolean // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.isEncrypted.|(){}[0] + final val relativeUrl // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.relativeUrl|{}relativeUrl[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.relativeUrl.|(){}[0] + final val size // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.size|{}size[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.size.|(){}[0] + + final fun component3(): kotlin/Boolean // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.component3|component3(){}[0] + final fun component4(): kotlin.collections/List // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.component5|component5(){}[0] + final fun component6(): kotlin.collections/Map // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.component6|component6(){}[0] + final fun copy(kotlin/ByteArray = ..., kotlin/ByteArray = ..., kotlin/Boolean = ..., kotlin.collections/List = ..., kotlin/String = ..., kotlin.collections/Map = ...): com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.copy|copy(kotlin.ByteArray;kotlin.ByteArray;kotlin.Boolean;kotlin.collections.List;kotlin.String;kotlin.collections.Map){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.toString|toString(){}[0] + final suspend fun resolveLink(kotlin/Int): kotlin/ByteArray // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.resolveLink|resolveLink(kotlin.Int){}[0] + final suspend fun resolveLinkSafe(kotlin/Int, kotlin/Int = ..., kotlin/Long = ...): kotlin/ByteArray? // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.resolveLinkSafe|resolveLinkSafe(kotlin.Int;kotlin.Int;kotlin.Long){}[0] + final suspend fun resolveLinkWhileSafe(kotlin/Int, kotlin/Int = ..., kotlin/Long = ..., kotlin/Function0): kotlin/ByteArray? // com.lagradost.cloudstream3.utils/M3u8Helper2.LazyHlsDownloadData.resolveLinkWhileSafe|resolveLinkWhileSafe(kotlin.Int;kotlin.Int;kotlin.Long;kotlin.Function0){}[0] + } + + final class TsLink { // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink|null[0] + constructor (kotlin/String, kotlin/Double?) // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.|(kotlin.String;kotlin.Double?){}[0] + + final val time // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.time|{}time[0] + final fun (): kotlin/Double? // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.time.|(){}[0] + final val url // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.url|{}url[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.url.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.component1|component1(){}[0] + final fun component2(): kotlin/Double? // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/Double? = ...): com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.copy|copy(kotlin.String;kotlin.Double?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/M3u8Helper2.TsLink.toString|toString(){}[0] + } +} + +final object com.lagradost.cloudstream3.utils/ShortLink { // com.lagradost.cloudstream3.utils/ShortLink|null[0] + final fun isShortLink(kotlin/String): kotlin/Boolean // com.lagradost.cloudstream3.utils/ShortLink.isShortLink|isShortLink(kotlin.String){}[0] + final fun unshortenDavisonbarker(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenDavisonbarker|unshortenDavisonbarker(kotlin.String){}[0] + final fun unshortenLinksafe(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenLinksafe|unshortenLinksafe(kotlin.String){}[0] + final suspend fun unshorten(kotlin/String, kotlin/String? = ...): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshorten|unshorten(kotlin.String;kotlin.String?){}[0] + final suspend fun unshortenAdfly(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenAdfly|unshortenAdfly(kotlin.String){}[0] + final suspend fun unshortenIsecure(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenIsecure|unshortenIsecure(kotlin.String){}[0] + final suspend fun unshortenLinkup(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenLinkup|unshortenLinkup(kotlin.String){}[0] + final suspend fun unshortenNuovoIndirizzo(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenNuovoIndirizzo|unshortenNuovoIndirizzo(kotlin.String){}[0] + final suspend fun unshortenNuovoLink(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenNuovoLink|unshortenNuovoLink(kotlin.String){}[0] + final suspend fun unshortenUprot(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.unshortenUprot|unshortenUprot(kotlin.String){}[0] + + final class ShortUrl { // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl|null[0] + constructor (kotlin.text/Regex, kotlin/String, kotlin.coroutines/SuspendFunction1) // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.|(kotlin.text.Regex;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] + constructor (kotlin/String, kotlin/String, kotlin.coroutines/SuspendFunction1) // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.|(kotlin.String;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] + + final val function // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.function|{}function[0] + final fun (): kotlin.coroutines/SuspendFunction1 // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.function.|(){}[0] + final val regex // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.regex|{}regex[0] + final fun (): kotlin.text/Regex // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.regex.|(){}[0] + final val type // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.type|{}type[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.type.|(){}[0] + + final fun component1(): kotlin.text/Regex // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.component2|component2(){}[0] + final fun component3(): kotlin.coroutines/SuspendFunction1 // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.component3|component3(){}[0] + final fun copy(kotlin.text/Regex = ..., kotlin/String = ..., kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3.utils/ShortLink.ShortUrl // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.copy|copy(kotlin.text.Regex;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/ShortLink.ShortUrl.toString|toString(){}[0] + } +} + +final object com.lagradost.cloudstream3.utils/StringUtils { // com.lagradost.cloudstream3.utils/StringUtils|null[0] + final fun (kotlin/String).decodeUri(): kotlin/String // com.lagradost.cloudstream3.utils/StringUtils.decodeUri|decodeUri@kotlin.String(){}[0] + final fun (kotlin/String).decodeUrl(): kotlin/String // com.lagradost.cloudstream3.utils/StringUtils.decodeUrl|decodeUrl@kotlin.String(){}[0] + final fun (kotlin/String).encodeUri(): kotlin/String // com.lagradost.cloudstream3.utils/StringUtils.encodeUri|encodeUri@kotlin.String(){}[0] + final fun (kotlin/String).encodeUrl(): kotlin/String // com.lagradost.cloudstream3.utils/StringUtils.encodeUrl|encodeUrl@kotlin.String(){}[0] +} + +final object com.lagradost.cloudstream3.utils/SubtitleHelper { // com.lagradost.cloudstream3.utils/SubtitleHelper|null[0] + final val indexMapIETF_tag // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapIETF_tag|{}indexMapIETF_tag[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapIETF_tag.|(){}[0] + final val indexMapISO_639_1 // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_1|{}indexMapISO_639_1[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_1.|(){}[0] + final val indexMapISO_639_2_B // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_2_B|{}indexMapISO_639_2_B[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_2_B.|(){}[0] + final val indexMapISO_639_3 // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_3|{}indexMapISO_639_3[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapISO_639_3.|(){}[0] + final val indexMapLanguageName // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapLanguageName|{}indexMapLanguageName[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapLanguageName.|(){}[0] + final val indexMapNativeName // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapNativeName|{}indexMapNativeName[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapNativeName.|(){}[0] + final val indexMapOpenSubtitles // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapOpenSubtitles|{}indexMapOpenSubtitles[0] + final fun (): kotlin.collections/Map // com.lagradost.cloudstream3.utils/SubtitleHelper.indexMapOpenSubtitles.|(){}[0] + final val languages // com.lagradost.cloudstream3.utils/SubtitleHelper.languages|{}languages[0] + final fun (): kotlin.collections/List // com.lagradost.cloudstream3.utils/SubtitleHelper.languages.|(){}[0] + + final fun fromCodeToLangTagIETF(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromCodeToLangTagIETF|fromCodeToLangTagIETF(kotlin.String?){}[0] + final fun fromCodeToOpenSubtitlesTag(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromCodeToOpenSubtitlesTag|fromCodeToOpenSubtitlesTag(kotlin.String?){}[0] + final fun fromLanguageToTagIETF(kotlin/String?, kotlin/Boolean? = ...): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromLanguageToTagIETF|fromLanguageToTagIETF(kotlin.String?;kotlin.Boolean?){}[0] + final fun fromLanguageToThreeLetters(kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromLanguageToThreeLetters|fromLanguageToThreeLetters(kotlin.String){}[0] + final fun fromLanguageToTwoLetters(kotlin/String, kotlin/Boolean): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromLanguageToTwoLetters|fromLanguageToTwoLetters(kotlin.String;kotlin.Boolean){}[0] + final fun fromTagToEnglishLanguageName(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromTagToEnglishLanguageName|fromTagToEnglishLanguageName(kotlin.String?){}[0] + final fun fromTagToLanguageName(kotlin/String?, kotlin/String? = ...): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromTagToLanguageName|fromTagToLanguageName(kotlin.String?;kotlin.String?){}[0] + final fun fromThreeLettersToLanguage(kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromThreeLettersToLanguage|fromThreeLettersToLanguage(kotlin.String){}[0] + final fun fromTwoLettersToLanguage(kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.fromTwoLettersToLanguage|fromTwoLettersToLanguage(kotlin.String){}[0] + final fun getFlagFromIso(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.getFlagFromIso|getFlagFromIso(kotlin.String?){}[0] + final fun getNameNextToFlagEmoji(kotlin/String?, kotlin/String? = ...): kotlin/String? // com.lagradost.cloudstream3.utils/SubtitleHelper.getNameNextToFlagEmoji|getNameNextToFlagEmoji(kotlin.String?;kotlin.String?){}[0] + final fun isWellFormedTagIETF(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3.utils/SubtitleHelper.isWellFormedTagIETF|isWellFormedTagIETF(kotlin.String?){}[0] + + final class Language639 { // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + + final val ISO_639_1 // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_1|{}ISO_639_1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_1.|(){}[0] + final val ISO_639_2_B // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_2_B|{}ISO_639_2_B[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_2_B.|(){}[0] + final val ISO_639_2_T // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_2_T|{}ISO_639_2_T[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_2_T.|(){}[0] + final val ISO_639_3 // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_3|{}ISO_639_3[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_3.|(){}[0] + final val ISO_639_6 // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_6|{}ISO_639_6[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.ISO_639_6.|(){}[0] + final val languageName // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.languageName|{}languageName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.languageName.|(){}[0] + final val nativeName // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.nativeName|{}nativeName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.nativeName.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.component7|component7(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.utils/SubtitleHelper.Language639 // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.Language639.toString|toString(){}[0] + } + + final class LanguageMetadata { // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata|null[0] + constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String) // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.|(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + + final val IETF_tag // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.IETF_tag|{}IETF_tag[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.IETF_tag.|(){}[0] + final val ISO_639_1 // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_1|{}ISO_639_1[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_1.|(){}[0] + final val ISO_639_2_B // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_2_B|{}ISO_639_2_B[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_2_B.|(){}[0] + final val ISO_639_3 // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_3|{}ISO_639_3[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.ISO_639_3.|(){}[0] + final val languageName // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.languageName|{}languageName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.languageName.|(){}[0] + final val nativeName // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.nativeName|{}nativeName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.nativeName.|(){}[0] + final val openSubtitles // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.openSubtitles|{}openSubtitles[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.openSubtitles.|(){}[0] + + final fun component1(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component1|component1(){}[0] + final fun component2(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component2|component2(){}[0] + final fun component3(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component3|component3(){}[0] + final fun component4(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component4|component4(){}[0] + final fun component5(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component5|component5(){}[0] + final fun component6(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component6|component6(){}[0] + final fun component7(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.component7|component7(){}[0] + final fun copy(kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ..., kotlin/String = ...): com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.copy|copy(kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.hashCode|hashCode(){}[0] + final fun localizedName(kotlin/String? = ...): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.localizedName|localizedName(kotlin.String?){}[0] + final fun nameNextToFlagEmoji(kotlin/String? = ...): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.nameNextToFlagEmoji|nameNextToFlagEmoji(kotlin.String?){}[0] + final fun toString(): kotlin/String // com.lagradost.cloudstream3.utils/SubtitleHelper.LanguageMetadata.toString|toString(){}[0] + } +} + +final object com.lagradost.cloudstream3/APIHolder { // com.lagradost.cloudstream3/APIHolder|null[0] + final val allProviders // com.lagradost.cloudstream3/APIHolder.allProviders|{}allProviders[0] + final fun (): com.lagradost.cloudstream3.utils/AtomicMutableList // com.lagradost.cloudstream3/APIHolder.allProviders.|(){}[0] + final val unixTime // com.lagradost.cloudstream3/APIHolder.unixTime|{}unixTime[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3/APIHolder.unixTime.|(){}[0] + final val unixTimeMS // com.lagradost.cloudstream3/APIHolder.unixTimeMS|{}unixTimeMS[0] + final fun (): kotlin/Long // com.lagradost.cloudstream3/APIHolder.unixTimeMS.|(){}[0] + + final var apiMap // com.lagradost.cloudstream3/APIHolder.apiMap|{}apiMap[0] + final fun (): kotlin.collections/Map? // com.lagradost.cloudstream3/APIHolder.apiMap.|(){}[0] + final fun (kotlin.collections/Map?) // com.lagradost.cloudstream3/APIHolder.apiMap.|(kotlin.collections.Map?){}[0] + final var apis // com.lagradost.cloudstream3/APIHolder.apis|{}apis[0] + final fun (): com.lagradost.cloudstream3.utils/AtomicList // com.lagradost.cloudstream3/APIHolder.apis.|(){}[0] + final fun (com.lagradost.cloudstream3.utils/AtomicList) // com.lagradost.cloudstream3/APIHolder.apis.|(com.lagradost.cloudstream3.utils.AtomicList){}[0] + + final fun (kotlin/String).capitalize(): kotlin/String // com.lagradost.cloudstream3/APIHolder.capitalize|capitalize@kotlin.String(){}[0] + final fun addPluginMapping(com.lagradost.cloudstream3/MainAPI) // com.lagradost.cloudstream3/APIHolder.addPluginMapping|addPluginMapping(com.lagradost.cloudstream3.MainAPI){}[0] + final fun getApiFromNameNull(kotlin/String?): com.lagradost.cloudstream3/MainAPI? // com.lagradost.cloudstream3/APIHolder.getApiFromNameNull|getApiFromNameNull(kotlin.String?){}[0] + final fun getApiFromUrlNull(kotlin/String?): com.lagradost.cloudstream3/MainAPI? // com.lagradost.cloudstream3/APIHolder.getApiFromUrlNull|getApiFromUrlNull(kotlin.String?){}[0] + final fun initAll() // com.lagradost.cloudstream3/APIHolder.initAll|initAll(){}[0] + final fun removePluginMapping(com.lagradost.cloudstream3/MainAPI) // com.lagradost.cloudstream3/APIHolder.removePluginMapping|removePluginMapping(com.lagradost.cloudstream3.MainAPI){}[0] + final suspend fun getCaptchaToken(kotlin/String, kotlin/String, kotlin/String? = ...): kotlin/String? // com.lagradost.cloudstream3/APIHolder.getCaptchaToken|getCaptchaToken(kotlin.String;kotlin.String;kotlin.String?){}[0] + final suspend fun getTracker(kotlin.collections/List, kotlin.collections/Set?, kotlin/Int?): com.lagradost.cloudstream3/Tracker? // com.lagradost.cloudstream3/APIHolder.getTracker|getTracker(kotlin.collections.List;kotlin.collections.Set?;kotlin.Int?){}[0] + final suspend fun getTracker(kotlin.collections/List, kotlin.collections/Set?, kotlin/Int?, kotlin/Boolean): com.lagradost.cloudstream3/Tracker? // com.lagradost.cloudstream3/APIHolder.getTracker|getTracker(kotlin.collections.List;kotlin.collections.Set?;kotlin.Int?;kotlin.Boolean){}[0] +} + +final const val com.lagradost.cloudstream3.mvvm/DEBUG_EXCEPTION // com.lagradost.cloudstream3.mvvm/DEBUG_EXCEPTION|{}DEBUG_EXCEPTION[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.mvvm/DEBUG_EXCEPTION.|(){}[0] +final const val com.lagradost.cloudstream3.mvvm/DEBUG_PRINT // com.lagradost.cloudstream3.mvvm/DEBUG_PRINT|{}DEBUG_PRINT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.mvvm/DEBUG_PRINT.|(){}[0] +final const val com.lagradost.cloudstream3.plugins/PLUGIN_TAG // com.lagradost.cloudstream3.plugins/PLUGIN_TAG|{}PLUGIN_TAG[0] + final fun (): kotlin/String // com.lagradost.cloudstream3.plugins/PLUGIN_TAG.|(){}[0] +final const val com.lagradost.cloudstream3/AllLanguagesName // com.lagradost.cloudstream3/AllLanguagesName|{}AllLanguagesName[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/AllLanguagesName.|(){}[0] +final const val com.lagradost.cloudstream3/PROVIDER_STATUS_BETA_ONLY // com.lagradost.cloudstream3/PROVIDER_STATUS_BETA_ONLY|{}PROVIDER_STATUS_BETA_ONLY[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/PROVIDER_STATUS_BETA_ONLY.|(){}[0] +final const val com.lagradost.cloudstream3/PROVIDER_STATUS_DOWN // com.lagradost.cloudstream3/PROVIDER_STATUS_DOWN|{}PROVIDER_STATUS_DOWN[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/PROVIDER_STATUS_DOWN.|(){}[0] +final const val com.lagradost.cloudstream3/PROVIDER_STATUS_KEY // com.lagradost.cloudstream3/PROVIDER_STATUS_KEY|{}PROVIDER_STATUS_KEY[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/PROVIDER_STATUS_KEY.|(){}[0] +final const val com.lagradost.cloudstream3/PROVIDER_STATUS_OK // com.lagradost.cloudstream3/PROVIDER_STATUS_OK|{}PROVIDER_STATUS_OK[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/PROVIDER_STATUS_OK.|(){}[0] +final const val com.lagradost.cloudstream3/PROVIDER_STATUS_SLOW // com.lagradost.cloudstream3/PROVIDER_STATUS_SLOW|{}PROVIDER_STATUS_SLOW[0] + final fun (): kotlin/Int // com.lagradost.cloudstream3/PROVIDER_STATUS_SLOW.|(){}[0] +final const val com.lagradost.cloudstream3/USER_AGENT // com.lagradost.cloudstream3/USER_AGENT|{}USER_AGENT[0] + final fun (): kotlin/String // com.lagradost.cloudstream3/USER_AGENT.|(){}[0] + +final val com.lagradost.cloudstream3.utils/INFER_TYPE // com.lagradost.cloudstream3.utils/INFER_TYPE|{}INFER_TYPE[0] + final fun (): com.lagradost.cloudstream3.utils/ExtractorLinkType? // com.lagradost.cloudstream3.utils/INFER_TYPE.|(){}[0] +final val com.lagradost.cloudstream3.utils/extractorApis // com.lagradost.cloudstream3.utils/extractorApis|{}extractorApis[0] + final fun (): com.lagradost.cloudstream3.utils/AtomicMutableList // com.lagradost.cloudstream3.utils/extractorApis.|(){}[0] +final val com.lagradost.cloudstream3.utils/schemaStripRegex // com.lagradost.cloudstream3.utils/schemaStripRegex|{}schemaStripRegex[0] + final fun (): kotlin.text/Regex // com.lagradost.cloudstream3.utils/schemaStripRegex.|(){}[0] +final val com.lagradost.cloudstream3.utils/workerDispatcher // com.lagradost.cloudstream3.utils/workerDispatcher|{}workerDispatcher[0] + final fun (): kotlinx.coroutines/CoroutineDispatcher // com.lagradost.cloudstream3.utils/workerDispatcher.|(){}[0] +final val com.lagradost.cloudstream3/json // com.lagradost.cloudstream3/json|{}json[0] + final fun (): kotlinx.serialization.json/Json // com.lagradost.cloudstream3/json.|(){}[0] + +final var com.lagradost.cloudstream3/app // com.lagradost.cloudstream3/app|{}app[0] + final fun (): com.lagradost.nicehttp/Requests // com.lagradost.cloudstream3/app.|(){}[0] + final fun (com.lagradost.nicehttp/Requests) // com.lagradost.cloudstream3/app.|(com.lagradost.nicehttp.Requests){}[0] +final var com.lagradost.cloudstream3/insecureApp // com.lagradost.cloudstream3/insecureApp|{}insecureApp[0] + final fun (): com.lagradost.nicehttp/Requests // com.lagradost.cloudstream3/insecureApp.|(){}[0] + final fun (com.lagradost.nicehttp/Requests) // com.lagradost.cloudstream3/insecureApp.|(com.lagradost.nicehttp.Requests){}[0] + +final fun (com.lagradost.cloudstream3.utils/ExtractorApi).com.lagradost.cloudstream3.utils/fixUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/fixUrl|fixUrl@com.lagradost.cloudstream3.utils.ExtractorApi(kotlin.String){}[0] +final fun (com.lagradost.cloudstream3/AnimeLoadResponse).com.lagradost.cloudstream3/addEpisodes(com.lagradost.cloudstream3/DubStatus, kotlin.collections/List?) // com.lagradost.cloudstream3/addEpisodes|addEpisodes@com.lagradost.cloudstream3.AnimeLoadResponse(com.lagradost.cloudstream3.DubStatus;kotlin.collections.List?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addDub(kotlin/Int?) // com.lagradost.cloudstream3/addDub|addDub@com.lagradost.cloudstream3.AnimeSearchResponse(kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addDubStatus(com.lagradost.cloudstream3/DubStatus, kotlin/Int? = ...) // com.lagradost.cloudstream3/addDubStatus|addDubStatus@com.lagradost.cloudstream3.AnimeSearchResponse(com.lagradost.cloudstream3.DubStatus;kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addDubStatus(kotlin/Boolean, kotlin/Boolean, kotlin/Int? = ..., kotlin/Int? = ...) // com.lagradost.cloudstream3/addDubStatus|addDubStatus@com.lagradost.cloudstream3.AnimeSearchResponse(kotlin.Boolean;kotlin.Boolean;kotlin.Int?;kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addDubStatus(kotlin/Boolean, kotlin/Int? = ...) // com.lagradost.cloudstream3/addDubStatus|addDubStatus@com.lagradost.cloudstream3.AnimeSearchResponse(kotlin.Boolean;kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addDubStatus(kotlin/String, kotlin/Int? = ...) // com.lagradost.cloudstream3/addDubStatus|addDubStatus@com.lagradost.cloudstream3.AnimeSearchResponse(kotlin.String;kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/AnimeSearchResponse).com.lagradost.cloudstream3/addSub(kotlin/Int?) // com.lagradost.cloudstream3/addSub|addSub@com.lagradost.cloudstream3.AnimeSearchResponse(kotlin.Int?){}[0] +final fun (com.lagradost.cloudstream3/Episode).com.lagradost.cloudstream3/addDate(kotlin.time/Instant?) // com.lagradost.cloudstream3/addDate|addDate@com.lagradost.cloudstream3.Episode(kotlin.time.Instant?){}[0] +final fun (com.lagradost.cloudstream3/Episode).com.lagradost.cloudstream3/addDate(kotlin/String?, kotlin/String = ...) // com.lagradost.cloudstream3/addDate|addDate@com.lagradost.cloudstream3.Episode(kotlin.String?;kotlin.String){}[0] +final fun (com.lagradost.cloudstream3/Episode).com.lagradost.cloudstream3/addDate(kotlinx.datetime/LocalDate?) // com.lagradost.cloudstream3/addDate|addDate@com.lagradost.cloudstream3.Episode(kotlinx.datetime.LocalDate?){}[0] +final fun (com.lagradost.cloudstream3/EpisodeResponse).com.lagradost.cloudstream3/addSeasonNames(kotlin.collections/List) // com.lagradost.cloudstream3/addSeasonNames|addSeasonNames@com.lagradost.cloudstream3.EpisodeResponse(kotlin.collections.List){}[0] +final fun (com.lagradost.cloudstream3/EpisodeResponse).com.lagradost.cloudstream3/addSeasonNames(kotlin.collections/List) // com.lagradost.cloudstream3/addSeasonNames|addSeasonNames@com.lagradost.cloudstream3.EpisodeResponse(kotlin.collections.List){}[0] +final fun (com.lagradost.cloudstream3/LoadResponse).com.lagradost.cloudstream3/addPoster(kotlin/String?, kotlin.collections/Map? = ...) // com.lagradost.cloudstream3/addPoster|addPoster@com.lagradost.cloudstream3.LoadResponse(kotlin.String?;kotlin.collections.Map?){}[0] +final fun (com.lagradost.cloudstream3/LoadResponse?).com.lagradost.cloudstream3/isAnimeBased(): kotlin/Boolean // com.lagradost.cloudstream3/isAnimeBased|isAnimeBased@com.lagradost.cloudstream3.LoadResponse?(){}[0] +final fun (com.lagradost.cloudstream3/LoadResponse?).com.lagradost.cloudstream3/isEpisodeBased(): kotlin/Boolean // com.lagradost.cloudstream3/isEpisodeBased|isEpisodeBased@com.lagradost.cloudstream3.LoadResponse?(){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/fixUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3/fixUrl|fixUrl@com.lagradost.cloudstream3.MainAPI(kotlin.String){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/fixUrlNull(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3/fixUrlNull|fixUrlNull@com.lagradost.cloudstream3.MainAPI(kotlin.String?){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newAnimeSearchResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType = ..., kotlin/Boolean = ..., kotlin/Function1 = ...): com.lagradost.cloudstream3/AnimeSearchResponse // com.lagradost.cloudstream3/newAnimeSearchResponse|newAnimeSearchResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.Function1){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newEpisode(kotlin/String, kotlin/Function1 = ..., kotlin/Boolean = ...): com.lagradost.cloudstream3/Episode // com.lagradost.cloudstream3/newEpisode|newEpisode@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.Function1;kotlin.Boolean){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newLiveSearchResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType = ..., kotlin/Boolean = ..., kotlin/Function1 = ...): com.lagradost.cloudstream3/LiveSearchResponse // com.lagradost.cloudstream3/newLiveSearchResponse|newLiveSearchResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.Function1){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newMovieSearchResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType = ..., kotlin/Boolean = ..., kotlin/Function1 = ...): com.lagradost.cloudstream3/MovieSearchResponse // com.lagradost.cloudstream3/newMovieSearchResponse|newMovieSearchResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.Function1){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newTorrentSearchResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType = ..., kotlin/Boolean = ..., kotlin/Function1 = ...): com.lagradost.cloudstream3/TorrentSearchResponse // com.lagradost.cloudstream3/newTorrentSearchResponse|newTorrentSearchResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.Function1){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newTvSeriesSearchResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType = ..., kotlin/Boolean = ..., kotlin/Function1 = ...): com.lagradost.cloudstream3/TvSeriesSearchResponse // com.lagradost.cloudstream3/newTvSeriesSearchResponse|newTvSeriesSearchResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.Function1){}[0] +final fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/updateUrl(kotlin/String): kotlin/String // com.lagradost.cloudstream3/updateUrl|updateUrl@com.lagradost.cloudstream3.MainAPI(kotlin.String){}[0] +final fun (com.lagradost.cloudstream3/SearchResponse).com.lagradost.cloudstream3/addPoster(kotlin/String?, kotlin.collections/Map? = ...) // com.lagradost.cloudstream3/addPoster|addPoster@com.lagradost.cloudstream3.SearchResponse(kotlin.String?;kotlin.collections.Map?){}[0] +final fun (com.lagradost.cloudstream3/SearchResponse).com.lagradost.cloudstream3/addQuality(kotlin/String) // com.lagradost.cloudstream3/addQuality|addQuality@com.lagradost.cloudstream3.SearchResponse(kotlin.String){}[0] +final fun (com.lagradost.cloudstream3/TvType).com.lagradost.cloudstream3/getFolderPrefix(): kotlin/String // com.lagradost.cloudstream3/getFolderPrefix|getFolderPrefix@com.lagradost.cloudstream3.TvType(){}[0] +final fun (com.lagradost.cloudstream3/TvType).com.lagradost.cloudstream3/isAnimeOp(): kotlin/Boolean // com.lagradost.cloudstream3/isAnimeOp|isAnimeOp@com.lagradost.cloudstream3.TvType(){}[0] +final fun (com.lagradost.cloudstream3/TvType).com.lagradost.cloudstream3/isAudioType(): kotlin/Boolean // com.lagradost.cloudstream3/isAudioType|isAudioType@com.lagradost.cloudstream3.TvType(){}[0] +final fun (com.lagradost.cloudstream3/TvType).com.lagradost.cloudstream3/isLiveStream(): kotlin/Boolean // com.lagradost.cloudstream3/isLiveStream|isLiveStream@com.lagradost.cloudstream3.TvType(){}[0] +final fun (com.lagradost.cloudstream3/TvType).com.lagradost.cloudstream3/isMovieType(): kotlin/Boolean // com.lagradost.cloudstream3/isMovieType|isMovieType@com.lagradost.cloudstream3.TvType(){}[0] +final fun (com.lagradost.cloudstream3/TvType?).com.lagradost.cloudstream3/isEpisodeBased(): kotlin/Boolean // com.lagradost.cloudstream3/isEpisodeBased|isEpisodeBased@com.lagradost.cloudstream3.TvType?(){}[0] +final fun (kotlin.collections/List).com.lagradost.cloudstream3/toNewSearchResponseList(kotlin/Boolean? = ...): com.lagradost.cloudstream3/SearchResponseList // com.lagradost.cloudstream3/toNewSearchResponseList|toNewSearchResponseList@kotlin.collections.List(kotlin.Boolean?){}[0] +final fun (kotlin/Long).com.lagradost.cloudstream3.utils/toUs(): kotlin/Long // com.lagradost.cloudstream3.utils/toUs|toUs@kotlin.Long(){}[0] +final fun (kotlin/String?).com.lagradost.cloudstream3/toRatingInt(): kotlin/Int? // com.lagradost.cloudstream3/toRatingInt|toRatingInt@kotlin.String?(){}[0] +final fun (kotlin/Throwable).com.lagradost.cloudstream3.mvvm/getAllMessages(): kotlin/String // com.lagradost.cloudstream3.mvvm/getAllMessages|getAllMessages@kotlin.Throwable(){}[0] +final fun (kotlin/Throwable).com.lagradost.cloudstream3.mvvm/getStackTracePretty(kotlin/Boolean = ...): kotlin/String // com.lagradost.cloudstream3.mvvm/getStackTracePretty|getStackTracePretty@kotlin.Throwable(kotlin.Boolean){}[0] +final fun (kotlinx.coroutines/CoroutineScope).com.lagradost.cloudstream3.mvvm/launchSafe(kotlin.coroutines/CoroutineContext = ..., kotlinx.coroutines/CoroutineStart = ..., kotlin.coroutines/SuspendFunction1): kotlinx.coroutines/Job // com.lagradost.cloudstream3.mvvm/launchSafe|launchSafe@kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext;kotlinx.coroutines.CoroutineStart;kotlin.coroutines.SuspendFunction1){}[0] +final fun <#A: kotlin/Any?> (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newEpisode(#A, kotlin/Function1 = ...): com.lagradost.cloudstream3/Episode // com.lagradost.cloudstream3/newEpisode|newEpisode@com.lagradost.cloudstream3.MainAPI(0:0;kotlin.Function1){0§}[0] +final fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/normalSafeApiCall(kotlin/Function0<#A>): #A? // com.lagradost.cloudstream3.mvvm/normalSafeApiCall|normalSafeApiCall(kotlin.Function0<0:0>){0§}[0] +final fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/platformThrowAbleToResource(kotlin/Throwable): com.lagradost.cloudstream3.mvvm/Resource<#A> // com.lagradost.cloudstream3.mvvm/platformThrowAbleToResource|platformThrowAbleToResource(kotlin.Throwable){0§}[0] +final fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/safe(kotlin/Function0<#A>): #A? // com.lagradost.cloudstream3.mvvm/safe|safe(kotlin.Function0<0:0>){0§}[0] +final fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/safeFail(kotlin/Throwable): com.lagradost.cloudstream3.mvvm/Resource<#A> // com.lagradost.cloudstream3.mvvm/safeFail|safeFail(kotlin.Throwable){0§}[0] +final fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/throwAbleToResource(kotlin/Throwable): com.lagradost.cloudstream3.mvvm/Resource<#A> // com.lagradost.cloudstream3.mvvm/throwAbleToResource|throwAbleToResource(kotlin.Throwable){0§}[0] +final fun com.lagradost.api/getContext(): kotlin/Any? // com.lagradost.api/getContext|getContext(){}[0] +final fun com.lagradost.api/setContext(kotlin/Any?) // com.lagradost.api/setContext|setContext(kotlin.Any?){}[0] +final fun com.lagradost.cloudstream3.mvvm/logError(kotlin/Throwable) // com.lagradost.cloudstream3.mvvm/logError|logError(kotlin.Throwable){}[0] +final fun com.lagradost.cloudstream3.utils/getAndUnpack(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/getAndUnpack|getAndUnpack(kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/getCurrentLocale(): kotlin/String // com.lagradost.cloudstream3.utils/getCurrentLocale|getCurrentLocale(){}[0] +final fun com.lagradost.cloudstream3.utils/getExtractorApiFromName(kotlin/String): com.lagradost.cloudstream3.utils/ExtractorApi // com.lagradost.cloudstream3.utils/getExtractorApiFromName|getExtractorApiFromName(kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/getPacked(kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/getPacked|getPacked(kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/getQualityFromName(kotlin/String?): kotlin/Int // com.lagradost.cloudstream3.utils/getQualityFromName|getQualityFromName(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3.utils/httpsify(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/httpsify|httpsify(kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/jsValueToString(kotlin/Any?): kotlin/String // com.lagradost.cloudstream3.utils/jsValueToString|jsValueToString(kotlin.Any?){}[0] +final fun com.lagradost.cloudstream3.utils/localizedLanguageName(kotlin/String, kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/localizedLanguageName|localizedLanguageName(kotlin.String;kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/requireReferer(kotlin/String): kotlin/Boolean // com.lagradost.cloudstream3.utils/requireReferer|requireReferer(kotlin.String){}[0] +final fun com.lagradost.cloudstream3.utils/runOnMainThreadNative(kotlin/Function0) // com.lagradost.cloudstream3.utils/runOnMainThreadNative|runOnMainThreadNative(kotlin.Function0){}[0] +final fun com.lagradost.cloudstream3/base64Decode(kotlin/String): kotlin/String // com.lagradost.cloudstream3/base64Decode|base64Decode(kotlin.String){}[0] +final fun com.lagradost.cloudstream3/base64DecodeArray(kotlin/String): kotlin/ByteArray // com.lagradost.cloudstream3/base64DecodeArray|base64DecodeArray(kotlin.String){}[0] +final fun com.lagradost.cloudstream3/base64Encode(kotlin/ByteArray): kotlin/String // com.lagradost.cloudstream3/base64Encode|base64Encode(kotlin.ByteArray){}[0] +final fun com.lagradost.cloudstream3/capitalizeString(kotlin/String): kotlin/String // com.lagradost.cloudstream3/capitalizeString|capitalizeString(kotlin.String){}[0] +final fun com.lagradost.cloudstream3/capitalizeStringNullable(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3/capitalizeStringNullable|capitalizeStringNullable(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/fetchUrls(kotlin/String?): kotlin.collections/List // com.lagradost.cloudstream3/fetchUrls|fetchUrls(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/fixTitle(kotlin/String): kotlin/String // com.lagradost.cloudstream3/fixTitle|fixTitle(kotlin.String){}[0] +final fun com.lagradost.cloudstream3/getDurationFromString(kotlin/String?): kotlin/Int? // com.lagradost.cloudstream3/getDurationFromString|getDurationFromString(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/getQualityFromString(kotlin/String?): com.lagradost.cloudstream3/SearchQuality? // com.lagradost.cloudstream3/getQualityFromString|getQualityFromString(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/imdbUrlToId(kotlin/String): kotlin/String? // com.lagradost.cloudstream3/imdbUrlToId|imdbUrlToId(kotlin.String){}[0] +final fun com.lagradost.cloudstream3/imdbUrlToIdNullable(kotlin/String?): kotlin/String? // com.lagradost.cloudstream3/imdbUrlToIdNullable|imdbUrlToIdNullable(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/isUpcoming(kotlin/String?): kotlin/Boolean // com.lagradost.cloudstream3/isUpcoming|isUpcoming(kotlin.String?){}[0] +final fun com.lagradost.cloudstream3/mainPage(kotlin/String, kotlin/String, kotlin/Boolean = ...): com.lagradost.cloudstream3/MainPageData // com.lagradost.cloudstream3/mainPage|mainPage(kotlin.String;kotlin.String;kotlin.Boolean){}[0] +final fun com.lagradost.cloudstream3/mainPageOf(kotlin/Array...): kotlin.collections/List // com.lagradost.cloudstream3/mainPageOf|mainPageOf(kotlin.Array...){}[0] +final fun com.lagradost.cloudstream3/mainPageOf(kotlin/Array>...): kotlin.collections/List // com.lagradost.cloudstream3/mainPageOf|mainPageOf(kotlin.Array>...){}[0] +final fun com.lagradost.cloudstream3/newHomePageResponse(com.lagradost.cloudstream3/HomePageList, kotlin/Boolean? = ...): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3/newHomePageResponse|newHomePageResponse(com.lagradost.cloudstream3.HomePageList;kotlin.Boolean?){}[0] +final fun com.lagradost.cloudstream3/newHomePageResponse(com.lagradost.cloudstream3/MainPageRequest, kotlin.collections/List, kotlin/Boolean? = ...): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3/newHomePageResponse|newHomePageResponse(com.lagradost.cloudstream3.MainPageRequest;kotlin.collections.List;kotlin.Boolean?){}[0] +final fun com.lagradost.cloudstream3/newHomePageResponse(kotlin.collections/List, kotlin/Boolean? = ...): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3/newHomePageResponse|newHomePageResponse(kotlin.collections.List;kotlin.Boolean?){}[0] +final fun com.lagradost.cloudstream3/newHomePageResponse(kotlin/String, kotlin.collections/List, kotlin/Boolean? = ...): com.lagradost.cloudstream3/HomePageResponse // com.lagradost.cloudstream3/newHomePageResponse|newHomePageResponse(kotlin.String;kotlin.collections.List;kotlin.Boolean?){}[0] +final fun com.lagradost.cloudstream3/newSearchResponseList(kotlin.collections/List, kotlin/Boolean? = ...): com.lagradost.cloudstream3/SearchResponseList // com.lagradost.cloudstream3/newSearchResponseList|newSearchResponseList(kotlin.collections.List;kotlin.Boolean?){}[0] +final fun com.lagradost.cloudstream3/sortUrls(kotlin.collections/Set): kotlin.collections/List // com.lagradost.cloudstream3/sortUrls|sortUrls(kotlin.collections.Set){}[0] +final inline fun com.lagradost.cloudstream3.mvvm/debugAssert(kotlin/Function0, kotlin/Function0) // com.lagradost.cloudstream3.mvvm/debugAssert|debugAssert(kotlin.Function0;kotlin.Function0){}[0] +final inline fun com.lagradost.cloudstream3.mvvm/debugException(kotlin/Function0) // com.lagradost.cloudstream3.mvvm/debugException|debugException(kotlin.Function0){}[0] +final inline fun com.lagradost.cloudstream3.mvvm/debugPrint(kotlin/String = ..., kotlin/Function0) // com.lagradost.cloudstream3.mvvm/debugPrint|debugPrint(kotlin.String;kotlin.Function0){}[0] +final inline fun com.lagradost.cloudstream3.mvvm/debugWarning(kotlin/Function0, kotlin/Function0) // com.lagradost.cloudstream3.mvvm/debugWarning|debugWarning(kotlin.Function0;kotlin.Function0){}[0] +final inline fun com.lagradost.cloudstream3.mvvm/debugWarning(kotlin/Function0) // com.lagradost.cloudstream3.mvvm/debugWarning|debugWarning(kotlin.Function0){}[0] +final suspend fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newAnimeLoadResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin/Boolean = ..., kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/AnimeLoadResponse // com.lagradost.cloudstream3/newAnimeLoadResponse|newAnimeLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.Boolean;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newLiveStreamLoadResponse(kotlin/String, kotlin/String, kotlin/String, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/LiveStreamLoadResponse // com.lagradost.cloudstream3/newLiveStreamLoadResponse|newLiveStreamLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newMovieLoadResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin/String, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/MovieLoadResponse // com.lagradost.cloudstream3/newMovieLoadResponse|newMovieLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newTorrentLoadResponse(kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/TorrentLoadResponse // com.lagradost.cloudstream3/newTorrentLoadResponse|newTorrentLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;kotlin.String?;kotlin.String?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newTvSeriesLoadResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, kotlin.collections/List, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/TvSeriesLoadResponse // com.lagradost.cloudstream3/newTvSeriesLoadResponse|newTvSeriesLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;kotlin.collections.List;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun <#A: kotlin/Any?, #B: kotlin/Any?, #C: kotlin/Any?> (kotlin.collections/Map).com.lagradost.cloudstream3/amap(kotlin.coroutines/SuspendFunction1, #C>): kotlin.collections/List<#C> // com.lagradost.cloudstream3/amap|amap@kotlin.collections.Map(kotlin.coroutines.SuspendFunction1,0:2>){0§;1§;2§}[0] +final suspend fun <#A: kotlin/Any?, #B: kotlin/Any?> (kotlin.collections/List<#A>).com.lagradost.cloudstream3/amap(kotlin.coroutines/SuspendFunction1<#A, #B>): kotlin.collections/List<#B> // com.lagradost.cloudstream3/amap|amap@kotlin.collections.List<0:0>(kotlin.coroutines.SuspendFunction1<0:0,0:1>){0§;1§}[0] +final suspend fun <#A: kotlin/Any?, #B: kotlin/Any?> (kotlin.collections/List<#A>).com.lagradost.cloudstream3/amapIndexed(kotlin.coroutines/SuspendFunction2): kotlin.collections/List<#B> // com.lagradost.cloudstream3/amapIndexed|amapIndexed@kotlin.collections.List<0:0>(kotlin.coroutines.SuspendFunction2){0§;1§}[0] +final suspend fun <#A: kotlin/Any?> (com.lagradost.cloudstream3/MainAPI).com.lagradost.cloudstream3/newMovieLoadResponse(kotlin/String, kotlin/String, com.lagradost.cloudstream3/TvType, #A?, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/MovieLoadResponse // com.lagradost.cloudstream3/newMovieLoadResponse|newMovieLoadResponse@com.lagradost.cloudstream3.MainAPI(kotlin.String;kotlin.String;com.lagradost.cloudstream3.TvType;0:0?;kotlin.coroutines.SuspendFunction1){0§}[0] +final suspend fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/safeApiCall(kotlin.coroutines/SuspendFunction0<#A>): com.lagradost.cloudstream3.mvvm/Resource<#A> // com.lagradost.cloudstream3.mvvm/safeApiCall|safeApiCall(kotlin.coroutines.SuspendFunction0<0:0>){0§}[0] +final suspend fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/safeAsync(kotlin.coroutines/SuspendFunction0<#A>): #A? // com.lagradost.cloudstream3.mvvm/safeAsync|safeAsync(kotlin.coroutines.SuspendFunction0<0:0>){0§}[0] +final suspend fun <#A: kotlin/Any?> com.lagradost.cloudstream3.mvvm/suspendSafeApiCall(kotlin.coroutines/SuspendFunction0<#A>): #A? // com.lagradost.cloudstream3.mvvm/suspendSafeApiCall|suspendSafeApiCall(kotlin.coroutines.SuspendFunction0<0:0>){0§}[0] +final suspend fun <#A: kotlin/Any?> com.lagradost.cloudstream3/runAllAsync(kotlin/Array>...): kotlin.collections/List<#A?> // com.lagradost.cloudstream3/runAllAsync|runAllAsync(kotlin.Array>...){0§}[0] +final suspend fun com.lagradost.cloudstream3.utils/evalJs(kotlin/String, kotlin/String? = ..., kotlin.time/Duration = ..., kotlin/Long = ...): kotlin/Any? // com.lagradost.cloudstream3.utils/evalJs|evalJs(kotlin.String;kotlin.String?;kotlin.time.Duration;kotlin.Long){}[0] +final suspend fun com.lagradost.cloudstream3.utils/getPostForm(kotlin/String, kotlin/String): kotlin/String? // com.lagradost.cloudstream3.utils/getPostForm|getPostForm(kotlin.String;kotlin.String){}[0] +final suspend fun com.lagradost.cloudstream3.utils/loadExtractor(kotlin/String, kotlin/Function1, kotlin/Function1): kotlin/Boolean // com.lagradost.cloudstream3.utils/loadExtractor|loadExtractor(kotlin.String;kotlin.Function1;kotlin.Function1){}[0] +final suspend fun com.lagradost.cloudstream3.utils/loadExtractor(kotlin/String, kotlin/String? = ..., kotlin/Function1, kotlin/Function1): kotlin/Boolean // com.lagradost.cloudstream3.utils/loadExtractor|loadExtractor(kotlin.String;kotlin.String?;kotlin.Function1;kotlin.Function1){}[0] +final suspend fun com.lagradost.cloudstream3.utils/newExtractorLink(kotlin/String, kotlin/String, kotlin/String, com.lagradost.cloudstream3.utils/ExtractorLinkType? = ..., kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3.utils/ExtractorLink // com.lagradost.cloudstream3.utils/newExtractorLink|newExtractorLink(kotlin.String;kotlin.String;kotlin.String;com.lagradost.cloudstream3.utils.ExtractorLinkType?;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun com.lagradost.cloudstream3.utils/newJsContext(kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3.utils/JsContext // com.lagradost.cloudstream3.utils/newJsContext|newJsContext(kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun com.lagradost.cloudstream3.utils/unshortenLinkSafe(kotlin/String): kotlin/String // com.lagradost.cloudstream3.utils/unshortenLinkSafe|unshortenLinkSafe(kotlin.String){}[0] +final suspend fun com.lagradost.cloudstream3/newAudioFile(kotlin/String, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/AudioFile // com.lagradost.cloudstream3/newAudioFile|newAudioFile(kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] +final suspend fun com.lagradost.cloudstream3/newSubtitleFile(kotlin/String, kotlin/String, kotlin.coroutines/SuspendFunction1 = ...): com.lagradost.cloudstream3/SubtitleFile // com.lagradost.cloudstream3/newSubtitleFile|newSubtitleFile(kotlin.String;kotlin.String;kotlin.coroutines.SuspendFunction1){}[0] diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 4a100725c62..6db29089235 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -99,8 +99,7 @@ kotlin { @OptIn(org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation::class) // https://kotlinlang.org/docs/gradle-binary-compatibility-validation.html abiValidation { - enabled.set(true) - this.filters { + filters { exclude { annotatedWith.add("com.lagradost.cloudstream3.Prerelease") annotatedWith.add("com.lagradost.cloudstream3.InternalAPI") From 2d3059b9f3fc6c48a69b291d3c04cd623af02ed0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 12 Jul 2026 12:53:56 -0600 Subject: [PATCH 102/114] Update --- .github/workflows/pull_request.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index cfc2707009c..d0c04fd6afd 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,11 +11,11 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -26,10 +26,10 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false - # - name: Ensure binary compatibility + - name: Ensure binary compatibility # This is to ensure that your code is backwards compatible. # If this fails you need to add a @Prerelease annotation to new code. - # run: ./gradlew library:checkKotlinAbi + run: ./gradlew library:checkKotlinAbi - name: Run Gradle run: ./gradlew assemblePrereleaseDebug lint check From 21b53d5a780548b7bb45f03d27c1fabdc880b728 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 12 Jul 2026 12:56:18 -0600 Subject: [PATCH 103/114] - --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d0c04fd6afd..e34a6fc7f2a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -26,10 +26,10 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false - - name: Ensure binary compatibility + #- name: Ensure binary compatibility # This is to ensure that your code is backwards compatible. # If this fails you need to add a @Prerelease annotation to new code. - run: ./gradlew library:checkKotlinAbi + #run: ./gradlew library:checkKotlinAbi - name: Run Gradle run: ./gradlew assemblePrereleaseDebug lint check From cedb94a5bebcad5871c0addd075d872e8f4a8b8a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:52:25 -0700 Subject: [PATCH 104/114] Update ArchComponentExt.kt --- .../lagradost/cloudstream3/mvvm/ArchComponentExt.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt index 8a5455e2e8e..73de880dba2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExt.kt @@ -133,7 +133,10 @@ fun Throwable.getStackTracePretty(showMessage: Boolean = true): String { .lines() .mapNotNull { line -> val trimmed = line.trim() - if (trimmed.startsWith("at ")) trimmed.removePrefix("at ") else null + if (!trimmed.startsWith("at ")) return@mapNotNull null + // pull "File.kt:42" out of "at com.pkg.Class.method(File.kt:42)" + Regex("""\(([^)]+)\)$""").find(trimmed)?.groupValues?.get(1) + ?.replace(":", " ") } .joinToString("\n") } @@ -169,6 +172,7 @@ fun throwAbleToResource( val traceLine = throwable.stackTraceToString() .lines() .firstOrNull { it.contains("provider.kt", ignoreCase = true) } + ?.let { Regex("""\(([^)]+)\)$""").find(it)?.groupValues?.get(1) } if (traceLine != null) { return Resource.Failure( false, @@ -203,9 +207,9 @@ fun throwAbleToResource( suspend fun safeApiCall( @WorkerThread apiCall: suspend () -> T, ): Resource { - return apiCall.ioWork { + return apiCall.ioWork { work -> try { - Resource.Success(it()) + Resource.Success(work.invoke()) } catch (throwable: Throwable) { logError(throwable) throwAbleToResource(throwable) From 80225a4cbcae22a36dcbf75194023fe6fd5c89f6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:53:40 -0700 Subject: [PATCH 105/114] Add test --- .../cloudstream3/mvvm/ArchComponentExtTest.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 library/src/commonTest/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExtTest.kt diff --git a/library/src/commonTest/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExtTest.kt b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExtTest.kt new file mode 100644 index 00000000000..970fe728d82 --- /dev/null +++ b/library/src/commonTest/kotlin/com/lagradost/cloudstream3/mvvm/ArchComponentExtTest.kt @@ -0,0 +1,31 @@ +package com.lagradost.cloudstream3.mvvm + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class ArchComponentExtTest { + + @Test + fun getStackTracePrettyStripsFullyQualifiedClassNames() { + val throwable = try { + throw IllegalStateException("Exception") + } catch (t: Throwable) { + t + } + + val pretty = throwable.getStackTracePretty() + + // Should not contain the fully qualified package/class prefix + assertFalse( + pretty.contains("com.lagradost.cloudstream3.mvvm.ArchComponentExtTest"), + "Expected no fully qualified class names, got:\n$pretty" + ) + + // Should still reference the source file itself + assertTrue( + pretty.contains("ArchComponentExtTest.kt"), + "Expected pretty stack trace to reference a .kt file, got:\n$pretty" + ) + } +} From 08355df452b102412bc0be9bdb6bd3df9ac9b2d3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:54:56 -0700 Subject: [PATCH 106/114] Results --- .github/workflows/pull_request.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index e34a6fc7f2a..cef66998ad6 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -41,3 +41,13 @@ jobs: path: | app/build/outputs/apk/prerelease/debug/*.apk library/build/** + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v7 + with: + name: test-results + path: | + **/build/reports/tests/ + **/build/test-results/ + include-hidden-files: false From 8803f08acd4e0dbf3f7b7e552477f2069d6ba31b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:58:33 -0700 Subject: [PATCH 107/114] - --- .../kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt index 2e26a22c442..ba61e9703d8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -44,7 +43,7 @@ open class Blogger : ExtractorApi() { @Serializable private data class ResponseSource( - @JsonProperty("play_url") @SerialName("play_url") val playUrl: String, - @JsonProperty("format_id") @SerialName("format_id") val formatId: Int, + @SerialName("play_url") val playUrl: String, + @SerialName("format_id") val formatId: Int, ) } From a8b62b6c203df9294614e787ae8eb637d336b7ec Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:00:47 -0700 Subject: [PATCH 108/114] - --- .../cloudstream3/extractors/ByseSX.kt | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ByseSX.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ByseSX.kt index 4781474d61f..8c97e77d100 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ByseSX.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ByseSX.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64DecodeArray @@ -132,51 +131,51 @@ open class ByseSX : ExtractorApi() { @Serializable data class DetailsRoot( - @JsonProperty("id") @SerialName("id") val id: Long, - @JsonProperty("code") @SerialName("code") val code: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("poster_url") @SerialName("poster_url") val posterUrl: String, - @JsonProperty("description") @SerialName("description") val description: String, - @JsonProperty("created_at") @SerialName("created_at") val createdAt: String, - @JsonProperty("owner_private") @SerialName("owner_private") val ownerPrivate: Boolean, - @JsonProperty("embed_frame_url") @SerialName("embed_frame_url") val embedFrameUrl: String, + @SerialName("id") val id: Long, + @SerialName("code") val code: String, + @SerialName("title") val title: String, + @SerialName("poster_url") val posterUrl: String, + @SerialName("description") val description: String, + @SerialName("created_at") val createdAt: String, + @SerialName("owner_private") val ownerPrivate: Boolean, + @SerialName("embed_frame_url") val embedFrameUrl: String, ) @Serializable data class PlaybackRoot( - @JsonProperty("playback") @SerialName("playback") val playback: Playback, + @SerialName("playback") val playback: Playback, ) @Serializable data class Playback( - @JsonProperty("algorithm") @SerialName("algorithm") val algorithm: String, - @JsonProperty("iv") @SerialName("iv") val iv: String, - @JsonProperty("payload") @SerialName("payload") val payload: String, - @JsonProperty("key_parts") @SerialName("key_parts") val keyParts: List, - @JsonProperty("expires_at") @SerialName("expires_at") val expiresAt: String, - @JsonProperty("decrypt_keys") @SerialName("decrypt_keys") val decryptKeys: DecryptKeys, - @JsonProperty("iv2") @SerialName("iv2") val iv2: String, - @JsonProperty("payload2") @SerialName("payload2") val payload2: String, + @SerialName("algorithm") val algorithm: String, + @SerialName("iv") val iv: String, + @SerialName("payload") val payload: String, + @SerialName("key_parts") val keyParts: List, + @SerialName("expires_at") val expiresAt: String, + @SerialName("decrypt_keys") val decryptKeys: DecryptKeys, + @SerialName("iv2") val iv2: String, + @SerialName("payload2") val payload2: String, ) @Serializable data class DecryptKeys( - @JsonProperty("edge_1") @SerialName("edge_1") val edge1: String, - @JsonProperty("edge_2") @SerialName("edge_2") val edge2: String, - @JsonProperty("legacy_fallback") @SerialName("legacy_fallback") val legacyFallback: String, + @SerialName("edge_1") val edge1: String, + @SerialName("edge_2") val edge2: String, + @SerialName("legacy_fallback") val legacyFallback: String, ) @Serializable data class PlaybackDecrypt( - @JsonProperty("sources") @SerialName("sources") val sources: List, + @SerialName("sources") val sources: List, ) @Serializable data class PlaybackDecryptSource( - @JsonProperty("quality") @SerialName("quality") val quality: String, - @JsonProperty("label") @SerialName("label") val label: String, - @JsonProperty("mime_type") @SerialName("mime_type") val mimeType: String, - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("bitrate_kbps") @SerialName("bitrate_kbps") val bitrateKbps: Long, - @JsonProperty("height") @SerialName("height") val height: Int?, + @SerialName("quality") val quality: String, + @SerialName("label") val label: String, + @SerialName("mime_type") val mimeType: String, + @SerialName("url") val url: String, + @SerialName("bitrate_kbps") val bitrateKbps: Long, + @SerialName("height") val height: Int?, ) From 68a67a0bbac1c09251e44b9cb6afacba251396ff Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:01:52 -0700 Subject: [PATCH 109/114] - --- .../lagradost/cloudstream3/extractors/Gofile.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt index 5097f6dd562..d3c925cc787 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi @@ -85,29 +84,29 @@ open class Gofile : ExtractorApi() { @Serializable data class AccountResponse( - @JsonProperty("data") @SerialName("data") val data: AccountData? = null, + @SerialName("data") val data: AccountData? = null, ) @Serializable data class AccountData( - @JsonProperty("token") @SerialName("token") val token: String? = null, + @SerialName("token") val token: String? = null, ) @Serializable data class GofileResponse( - @JsonProperty("data") @SerialName("data") val data: GofileData? = null, + @SerialName("data") val data: GofileData? = null, ) @Serializable data class GofileData( - @JsonProperty("children") @SerialName("children") val children: Map? = null, + @SerialName("children") val children: Map? = null, ) @Serializable data class GofileFile( - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("name") @SerialName("name") val name: String? = null, - @JsonProperty("link") @SerialName("link") val link: String? = null, - @JsonProperty("size") @SerialName("size") val size: Long? = 0L, + @SerialName("type") val type: String? = null, + @SerialName("name") val name: String? = null, + @SerialName("link") val link: String? = null, + @SerialName("size") val size: Long? = 0L, ) } From 06ddc68fc9f3b128eb62506bcdb38138186f3bc6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:03:05 -0700 Subject: [PATCH 110/114] - --- .../cloudstream3/extractors/Rabbitstream.kt | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt index 62d2e53eda8..da609ba330e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app @@ -172,28 +171,28 @@ open class Rabbitstream : ExtractorApi() { @Serializable data class Tracks( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, - @JsonProperty("kind") @SerialName("kind") val kind: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("label") val label: String? = null, + @SerialName("kind") val kind: String? = null, ) @Serializable data class Sources( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("label") val label: String? = null, ) @Serializable data class SourcesResponses( - @JsonProperty("sources") @SerialName("sources") val sources: List? = emptyList(), - @JsonProperty("tracks") @SerialName("tracks") val tracks: List? = emptyList(), + @SerialName("sources") val sources: List? = emptyList(), + @SerialName("tracks") val tracks: List? = emptyList(), ) @Serializable data class SourcesEncrypted( - @JsonProperty("sources") @SerialName("sources") val sources: String? = null, - @JsonProperty("encrypted") @SerialName("encrypted") val encrypted: Boolean? = null, - @JsonProperty("tracks") @SerialName("tracks") val tracks: List? = emptyList(), + @SerialName("sources") val sources: String? = null, + @SerialName("encrypted") val encrypted: Boolean? = null, + @SerialName("tracks") val tracks: List? = emptyList(), ) } From 459c53915d3fb8155734254a514834328065da7c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:04:10 -0700 Subject: [PATCH 111/114] - --- .../cloudstream3/extractors/GUpload.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt index 5c560243484..51d66a8a857 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode @@ -44,13 +43,13 @@ open class GUpload: ExtractorApi() { @Serializable private data class VideoInfo( - @JsonProperty("videoUrl") @SerialName("videoUrl") val videoUrl: String, - @JsonProperty("posterUrl") @SerialName("posterUrl") val posterUrl: String? = null, - @JsonProperty("videoId") @SerialName("videoId") val videoId: String? = null, - @JsonProperty("primaryColor") @SerialName("primaryColor") val primaryColor: String? = null, - @JsonProperty("audioTracks") @SerialName("audioTracks") val audioTracks: List = emptyList(), - @JsonProperty("subtitleTracks") @SerialName("subtitleTracks") val subtitleTracks: List = emptyList(), - @JsonProperty("vastFallbackList") @SerialName("vastFallbackList") val vastFallbackList: List = emptyList(), - @JsonProperty("videoOwnerId") @SerialName("videoOwnerId") val videoOwnerId: Long = 0, + @SerialName("videoUrl") val videoUrl: String, + @SerialName("posterUrl") val posterUrl: String? = null, + @SerialName("videoId") val videoId: String? = null, + @SerialName("primaryColor") val primaryColor: String? = null, + @SerialName("audioTracks") val audioTracks: List = emptyList(), + @SerialName("subtitleTracks") val subtitleTracks: List = emptyList(), + @SerialName("vastFallbackList") val vastFallbackList: List = emptyList(), + @SerialName("videoOwnerId") val videoOwnerId: Long = 0, ) } From 594d90c55d1fa7c7b1d354b69da352af24da518e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:05:50 -0700 Subject: [PATCH 112/114] - --- .../com/lagradost/cloudstream3/extractors/Gdriveplayer.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt index d70b880e450..084439b16b5 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.fleeksoft.ksoup.nodes.Element import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.extractors.helper.AesHelper.cryptoAESHandler @@ -121,8 +120,8 @@ open class Gdriveplayer : ExtractorApi() { @Serializable data class Tracks( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("kind") @SerialName("kind") val kind: String, - @JsonProperty("label") @SerialName("label") val label: String, + @SerialName("file") val file: String, + @SerialName("kind") val kind: String, + @SerialName("label") val label: String, ) } From 50b7d687f004d3b92faca3c81192df0a89cbb6f5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 15 Jul 2026 09:42:14 -0700 Subject: [PATCH 113/114] - --- .../com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt index af8e499808a..3edd0f410c2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/HlsPlaylistParser.kt @@ -1,5 +1,3 @@ -@file:OptIn(ExperimentalUuidApi::class) - /* * Copyright (C) 2016 The Android Open Source Project * From fd9a94f0d2d7ad514245204c4101c21cd15bda95 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 15 Jul 2026 09:45:17 -0700 Subject: [PATCH 114/114] Update --- .../ui/library/LibraryFragment.kt | 7 +++--- .../cloudstream3/extractors/Acefile.kt | 3 +-- .../lagradost/cloudstream3/extractors/Cda.kt | 13 +++++----- .../cloudstream3/extractors/Firestream.kt | 3 +-- .../extractors/HDMomPlayerExtractor.kt | 11 ++++---- .../extractors/HDPlayerSystemExtractor.kt | 9 +++---- .../cloudstream3/extractors/Jeniusplay.kt | 7 +++--- .../cloudstream3/extractors/Linkbox.kt | 13 +++++----- .../extractors/MailRuExtractor.kt | 9 +++---- .../extractors/OdnoklassnikiExtractor.kt | 5 ++-- .../extractors/PeaceMakerstExtractor.kt | 23 ++++++++--------- .../cloudstream3/extractors/PlayLtXyz.kt | 3 +-- .../extractors/SobreatsesuypExtractor.kt | 5 ++-- .../cloudstream3/extractors/StreamEmbed.kt | 17 ++++++------- .../cloudstream3/extractors/StreamSB.kt | 25 +++++++++---------- .../cloudstream3/extractors/Streamlare.kt | 17 ++++++------- .../cloudstream3/extractors/Streamplay.kt | 5 ++-- .../cloudstream3/extractors/TRsTXExtractor.kt | 5 ++-- .../cloudstream3/extractors/Tantifilm.kt | 15 ++++++----- .../extractors/TauVideoExtractor.kt | 7 +++--- .../cloudstream3/extractors/Uservideo.kt | 7 +++--- .../cloudstream3/extractors/Vicloud.kt | 7 +++--- .../cloudstream3/extractors/Vidara.kt | 12 ++++----- .../extractors/VideoSeyredExtractor.kt | 25 +++++++++---------- .../cloudstream3/extractors/Vidoza.kt | 9 +++---- .../cloudstream3/extractors/Vinovo.kt | 5 ++-- .../cloudstream3/extractors/XStreamCdn.kt | 23 ++++++++--------- .../cloudstream3/extractors/YourUpload.kt | 3 +-- .../metaproviders/TmdbProvider.kt | 10 ++++---- 29 files changed, 138 insertions(+), 165 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt index e73a8c75a97..3915990c3c5 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt @@ -20,7 +20,6 @@ import androidx.core.view.isVisible import androidx.fragment.app.activityViewModels import androidx.preference.PreferenceManager import androidx.recyclerview.widget.RecyclerView -import com.fasterxml.jackson.annotation.JsonProperty import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.lagradost.cloudstream3.APIHolder @@ -71,13 +70,13 @@ enum class LibraryOpenerType(@StringRes val stringRes: Int) { /** Used to store how the user wants to open said poster */ @Serializable data class LibraryOpener( - @JsonProperty("openType") @SerialName("openType") val openType: LibraryOpenerType, - @JsonProperty("providerData") @SerialName("providerData") val providerData: ProviderLibraryData?, + @SerialName("openType") val openType: LibraryOpenerType, + @SerialName("providerData") val providerData: ProviderLibraryData?, ) @Serializable data class ProviderLibraryData( - @JsonProperty("apiName") @SerialName("apiName") val apiName: String, + @SerialName("apiName") val apiName: String, ) class LibraryFragment : BaseFragment( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt index 5b5c1a874a4..45d894eb4c8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* @@ -38,6 +37,6 @@ open class Acefile : ExtractorApi() { @Serializable data class Source( - @JsonProperty("data") @SerialName("data") val data: String? = null, + @SerialName("data") val data: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt index 9fab67ed0d4..63641d7916c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -91,15 +90,15 @@ open class Cda : ExtractorApi() { @Serializable data class VideoPlayerData( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("qualities") @SerialName("qualities") val qualities: Map = mapOf(), - @JsonProperty("quality") @SerialName("quality") val quality: String?, - @JsonProperty("ts") @SerialName("ts") val ts: Int?, - @JsonProperty("hash2") @SerialName("hash2") val hash2: String?, + @SerialName("file") val file: String, + @SerialName("qualities") val qualities: Map = mapOf(), + @SerialName("quality") val quality: String?, + @SerialName("ts") val ts: Int?, + @SerialName("hash2") val hash2: String?, ) @Serializable data class PlayerData( - @JsonProperty("video") @SerialName("video") val video: VideoPlayerData, + @SerialName("video") val video: VideoPlayerData, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Firestream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Firestream.kt index f1d33e8534b..ce34fcf711a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Firestream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Firestream.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.Prerelease import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app @@ -44,6 +43,6 @@ class Firestream : ExtractorApi() { @Serializable private data class VideoResponse( - @JsonProperty("signedVideoUrl") @SerialName("signedVideoUrl") val signedVideoUrl: String, + @SerialName("signedVideoUrl") val signedVideoUrl: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt index 32343e2a580..90af4371e90 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.extractors.helper.AesHelper @@ -64,10 +63,10 @@ open class HDMomPlayer : ExtractorApi() { @Serializable data class Track( - @JsonProperty("file") @SerialName("file") val file: String?, - @JsonProperty("label") @SerialName("label") val label: String?, - @JsonProperty("kind") @SerialName("kind") val kind: String?, - @JsonProperty("language") @SerialName("language") val language: String?, - @JsonProperty("default") @SerialName("default") val default: String?, + @SerialName("file") val file: String?, + @SerialName("label") val label: String?, + @SerialName("kind") val kind: String?, + @SerialName("language") val language: String?, + @SerialName("default") val default: String?, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDPlayerSystemExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDPlayerSystemExtractor.kt index a991528da76..8a13dae788d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDPlayerSystemExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDPlayerSystemExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -53,9 +52,9 @@ open class HDPlayerSystem : ExtractorApi() { @Serializable data class SystemResponse( - @JsonProperty("hls") @SerialName("hls") val hls: String, - @JsonProperty("videoImage") @SerialName("videoImage") val videoImage: String? = null, - @JsonProperty("videoSource") @SerialName("videoSource") val videoSource: String, - @JsonProperty("securedLink") @SerialName("securedLink") val securedLink: String, + @SerialName("hls") val hls: String, + @SerialName("videoImage") val videoImage: String? = null, + @SerialName("videoSource") val videoSource: String, + @SerialName("securedLink") val securedLink: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt index 2d02c1e8c06..ebf8c080acc 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper @@ -47,8 +46,8 @@ open class Jeniusplay : ExtractorApi() { @Serializable data class ResponseSource( - @JsonProperty("hls") @SerialName("hls") val hls: Boolean, - @JsonProperty("videoSource") @SerialName("videoSource") val videoSource: String, - @JsonProperty("securedLink") @SerialName("securedLink") val securedLink: String?, + @SerialName("hls") val hls: Boolean, + @SerialName("videoSource") val videoSource: String, + @SerialName("securedLink") val securedLink: String?, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Linkbox.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Linkbox.kt index 91b34ac2c42..fbb2922408c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Linkbox.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Linkbox.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi @@ -40,23 +39,23 @@ open class Linkbox : ExtractorApi() { @Serializable data class Resolutions( - @JsonProperty("url") @SerialName("url") val url: String? = null, - @JsonProperty("resolution") @SerialName("resolution") val resolution: String? = null, + @SerialName("url") val url: String? = null, + @SerialName("resolution") val resolution: String? = null, ) @Serializable data class ItemInfo( - @JsonProperty("resolutionList") @SerialName("resolutionList") val resolutionList: ArrayList? = arrayListOf(), + @SerialName("resolutionList") val resolutionList: ArrayList? = arrayListOf(), ) @Serializable data class Data( - @JsonProperty("itemInfo") @SerialName("itemInfo") val itemInfo: ItemInfo? = null, - @JsonProperty("itemId") @SerialName("itemId") val itemId: String? = null, + @SerialName("itemInfo") val itemInfo: ItemInfo? = null, + @SerialName("itemId") val itemId: String? = null, ) @Serializable data class Responses( - @JsonProperty("data") @SerialName("data") val data: Data? = null, + @SerialName("data") val data: Data? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MailRuExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MailRuExtractor.kt index 899c6ced514..94fa7f80714 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MailRuExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MailRuExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -46,13 +45,13 @@ open class MailRu : ExtractorApi() { @Serializable data class MailRuData( - @JsonProperty("provider") @SerialName("provider") val provider: String, - @JsonProperty("videos") @SerialName("videos") val videos: List, + @SerialName("provider") val provider: String, + @SerialName("videos") val videos: List, ) @Serializable data class MailRuVideoData( - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("key") @SerialName("key") val key: String, + @SerialName("url") val url: String, + @SerialName("key") val key: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt index 9b9f90727aa..4edc54b2473 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT @@ -74,7 +73,7 @@ open class Odnoklassniki : ExtractorApi() { @Serializable data class OkRuVideo( - @JsonProperty("name") @SerialName("name") val name: String, - @JsonProperty("url") @SerialName("url") val url: String, + @SerialName("name") val name: String, + @SerialName("url") val url: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt index 4fb29433f40..d3d9461b8d4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -68,32 +67,32 @@ open class PeaceMakerst : ExtractorApi() { @Serializable data class PeaceResponse( - @JsonProperty("videoImage") @SerialName("videoImage") val videoImage: String?, - @JsonProperty("videoSources") @SerialName("videoSources") val videoSources: List, - @JsonProperty("sIndex") @SerialName("sIndex") val sourceIndex: String, - @JsonProperty("sourceList") @SerialName("sourceList") val sourceList: Map, + @SerialName("videoImage") val videoImage: String?, + @SerialName("videoSources") val videoSources: List, + @SerialName("sIndex") val sourceIndex: String, + @SerialName("sourceList") val sourceList: Map, ) @Serializable data class VideoSource( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("label") @SerialName("label") val label: String, - @JsonProperty("type") @SerialName("type") val type: String, + @SerialName("file") val file: String, + @SerialName("label") val label: String, + @SerialName("type") val type: String, ) @Serializable data class Teve2ApiResponse( - @JsonProperty("Media") @SerialName("Media") val media: Teve2Media, + @SerialName("Media") val media: Teve2Media, ) @Serializable data class Teve2Media( - @JsonProperty("Link") @SerialName("Link") val link: Teve2Link, + @SerialName("Link") val link: Teve2Link, ) @Serializable data class Teve2Link( - @JsonProperty("ServiceUrl") @SerialName("ServiceUrl") val serviceUrl: String, - @JsonProperty("SecurePath") @SerialName("SecurePath") val securePath: String, + @SerialName("ServiceUrl") val serviceUrl: String, + @SerialName("SecurePath") val securePath: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt index e9084a1127c..9ad7c03b770 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* @@ -74,6 +73,6 @@ open class PlayLtXyz : ExtractorApi() { @Serializable private data class ResponseData( - @JsonProperty("data") @SerialName("data") val data: String? = null, + @SerialName("data") val data: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt index edd1f9939d3..47581828c37 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* import kotlinx.serialization.SerialName @@ -48,7 +47,7 @@ open class Sobreatsesuyp : ExtractorApi() { @Serializable data class SobreatsesuypVideoData( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("file") @SerialName("file") val file: String? = null, + @SerialName("title") val title: String? = null, + @SerialName("file") val file: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt index 52894b87e00..66d97eb611b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.AppUtils.parseJson @@ -33,13 +32,13 @@ open class StreamEmbed : ExtractorApi() { @Serializable private data class Details( - @JsonProperty("id") @SerialName("id") val id: String, - @JsonProperty("uid") @SerialName("uid") val uid: String, - @JsonProperty("slug") @SerialName("slug") val slug: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("quality") @SerialName("quality") val quality: String, - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("status") @SerialName("status") val status: String, - @JsonProperty("md5") @SerialName("md5") val md5: String, + @SerialName("id") val id: String, + @SerialName("uid") val uid: String, + @SerialName("slug") val slug: String, + @SerialName("title") val title: String, + @SerialName("quality") val quality: String, + @SerialName("type") val type: String, + @SerialName("status") val status: String, + @SerialName("md5") val md5: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSB.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSB.kt index a7584d708b1..c20eef95afd 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSB.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSB.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.newSubtitleFile @@ -190,25 +189,25 @@ open class StreamSB : ExtractorApi() { @Serializable data class Subs( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("label") val label: String? = null, ) @Serializable data class StreamData( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("cdn_img") @SerialName("cdn_img") val cdnImg: String, - @JsonProperty("hash") @SerialName("hash") val hash: String, - @JsonProperty("subs") @SerialName("subs") val subs: ArrayList? = arrayListOf(), - @JsonProperty("length") @SerialName("length") val length: String, - @JsonProperty("id") @SerialName("id") val id: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("backup") @SerialName("backup") val backup: String, + @SerialName("file") val file: String, + @SerialName("cdn_img") val cdnImg: String, + @SerialName("hash") val hash: String, + @SerialName("subs") val subs: ArrayList? = arrayListOf(), + @SerialName("length") val length: String, + @SerialName("id") val id: String, + @SerialName("title") val title: String, + @SerialName("backup") val backup: String, ) @Serializable data class Main( - @JsonProperty("stream_data") @SerialName("stream_data") val streamData: StreamData, - @JsonProperty("status_code") @SerialName("status_code") val statusCode: Int, + @SerialName("stream_data") val streamData: StreamData, + @SerialName("status_code") val statusCode: Int, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt index c816b50141f..babf5782d2c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamlare.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -47,17 +46,17 @@ open class Slmaxed : ExtractorApi() { @Serializable data class JsonResponse( - @JsonProperty("status") @SerialName("status") val status: String? = null, - @JsonProperty("message") @SerialName("message") val message: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("token") @SerialName("token") val token: String? = null, - @JsonProperty("result") @SerialName("result") val result: Map? = null, + @SerialName("status") val status: String? = null, + @SerialName("message") val message: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("token") val token: String? = null, + @SerialName("result") val result: Map? = null, ) @Serializable data class Result( - @JsonProperty("label") @SerialName("label") val label: String? = null, - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, + @SerialName("label") val label: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("type") val type: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt index 6f600f9403b..b0b27594384 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.getCaptchaToken import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.SubtitleFile @@ -72,7 +71,7 @@ open class Streamplay : ExtractorApi() { @Serializable data class Source( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("label") val label: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt index 1ce6a498796..a0c36a19315 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -63,7 +62,7 @@ open class TRsTX : ExtractorApi() { @Serializable data class TrstxVideoData( - @JsonProperty("title") @SerialName("title") val title: String? = null, - @JsonProperty("file") @SerialName("file") val file: String? = null, + @SerialName("title") val title: String? = null, + @SerialName("file") val file: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt index cbdf5dd8ecc..670155bd55c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.AppUtils.parseJson @@ -32,16 +31,16 @@ open class Tantifilm : ExtractorApi() { @Serializable data class TantifilmJsonData( - @JsonProperty("success") @SerialName("success") val success: Boolean, - @JsonProperty("data") @SerialName("data") val data: List, - @JsonProperty("captions") @SerialName("captions") val captions: List, - @JsonProperty("is_vr") @SerialName("is_vr") val isVr: Boolean, + @SerialName("success") val success: Boolean, + @SerialName("data") val data: List, + @SerialName("captions") val captions: List, + @SerialName("is_vr") val isVr: Boolean, ) @Serializable data class TantifilmData( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("label") @SerialName("label") val label: String, - @JsonProperty("type") @SerialName("type") val type: String, + @SerialName("file") val file: String, + @SerialName("label") val label: String, + @SerialName("type") val type: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TauVideoExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TauVideoExtractor.kt index 9133ca99c3d..55d92eaa534 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TauVideoExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TauVideoExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -41,12 +40,12 @@ open class TauVideo : ExtractorApi() { @Serializable data class TauVideoUrls( - @JsonProperty("urls") @SerialName("urls") val urls: List, + @SerialName("urls") val urls: List, ) @Serializable data class TauVideoData( - @JsonProperty("url") @SerialName("url") val url: String, - @JsonProperty("label") @SerialName("label") val label: String, + @SerialName("url") val url: String, + @SerialName("label") val label: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt index 1b8247cd500..14c055488fd 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -46,8 +45,8 @@ open class Uservideo : ExtractorApi() { @Serializable data class Sources( - @JsonProperty("src") @SerialName("src") val src: String? = null, - @JsonProperty("type") @SerialName("type") val type: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, + @SerialName("src") val src: String? = null, + @SerialName("type") val type: String? = null, + @SerialName("label") val label: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt index e6f1426ed23..78776dae2ca 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app @@ -43,12 +42,12 @@ open class Vicloud : ExtractorApi() { @Serializable private data class Sources( - @JsonProperty("file") @SerialName("file") val file: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, + @SerialName("file") val file: String? = null, + @SerialName("label") val label: String? = null, ) @Serializable private data class Responses( - @JsonProperty("sources") @SerialName("sources") val sources: List? = arrayListOf(), + @SerialName("sources") val sources: List? = arrayListOf(), ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt index 1d17087d536..928ae76995b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidara.kt @@ -78,15 +78,15 @@ open class Vidara : ExtractorApi() { @Serializable private data class StreamUpFileInfo( - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("thumbnail") @SerialName("thumbnail") val thumbnail: String, - @JsonProperty("streaming_url") @SerialName("streaming_url") val streamingUrl: String, - @JsonProperty("subtitles") @SerialName("subtitles") val subtitles: List?, + @SerialName("title") val title: String, + @SerialName("thumbnail") val thumbnail: String, + @SerialName("streaming_url") val streamingUrl: String, + @SerialName("subtitles") val subtitles: List?, ) @Serializable private data class StreamUpSubtitle( - @JsonProperty("file_path") @SerialName("file_path") val filePath: String, - @JsonProperty("language") @SerialName("language") val language: String, + @SerialName("file_path") val filePath: String, + @SerialName("language") val language: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt index 977a83eeb40..cec7bae08d4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.utils.* @@ -54,25 +53,25 @@ open class VideoSeyred : ExtractorApi() { @Serializable data class VideoSeyredSource( - @JsonProperty("image") @SerialName("image") val image: String, - @JsonProperty("title") @SerialName("title") val title: String, - @JsonProperty("sources") @SerialName("sources") val sources: List, - @JsonProperty("tracks") @SerialName("tracks") val tracks: List, + @SerialName("image") val image: String, + @SerialName("title") val title: String, + @SerialName("sources") val sources: List, + @SerialName("tracks") val tracks: List, ) @Serializable data class VSSource( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("type") @SerialName("type") val type: String, - @JsonProperty("default") @SerialName("default") val default: String, + @SerialName("file") val file: String, + @SerialName("type") val type: String, + @SerialName("default") val default: String, ) @Serializable data class VSTrack( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("kind") @SerialName("kind") val kind: String, - @JsonProperty("language") @SerialName("language") val language: String? = null, - @JsonProperty("label") @SerialName("label") val label: String? = null, - @JsonProperty("default") @SerialName("default") val default: String? = null, + @SerialName("file") val file: String, + @SerialName("kind") val kind: String, + @SerialName("language") val language: String? = null, + @SerialName("label") val label: String? = null, + @SerialName("default") val default: String? = null, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt index 249a6a2c7bc..a1df0711f21 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app @@ -52,9 +51,9 @@ open class Vidoza : ExtractorApi() { @Serializable private data class VinovoVideoData( - @JsonProperty("src") @SerialName("src") val source: String, - @JsonProperty("type") @SerialName("type") val type: String?, - @JsonProperty("label") @SerialName("label") val label: String?, - @JsonProperty("res") @SerialName("res") val resolution: String?, + @SerialName("src") val source: String, + @SerialName("type") val type: String?, + @SerialName("label") val label: String?, + @SerialName("res") val resolution: String?, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt index c9e4277f81d..cc6c682fe6f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.getCaptchaToken import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app @@ -61,7 +60,7 @@ open class VinovoTo : ExtractorApi() { @Serializable private data class VinovoFileResp( - @JsonProperty("status") @SerialName("status") val status: String, - @JsonProperty("token") @SerialName("token") val token: String, + @SerialName("status") val status: String, + @SerialName("token") val token: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/XStreamCdn.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/XStreamCdn.kt index 4392e64ede8..620c00d619c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/XStreamCdn.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/XStreamCdn.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.newSubtitleFile @@ -128,28 +127,28 @@ open class XStreamCdn : ExtractorApi() { @Serializable private data class ResponseData( - @JsonProperty("file") @SerialName("file") val file: String, - @JsonProperty("label") @SerialName("label") val label: String, + @SerialName("file") val file: String, + @SerialName("label") val label: String, ) @Serializable private data class Player( - @JsonProperty("poster_file") @SerialName("poster_file") val posterFile: String? = null, + @SerialName("poster_file") val posterFile: String? = null, ) @Serializable private data class ResponseJson( - @JsonProperty("success") @SerialName("success") val success: Boolean, - @JsonProperty("player") @SerialName("player") val player: Player? = null, - @JsonProperty("data") @SerialName("data") val data: List?, - @JsonProperty("captions") @SerialName("captions") val captions: List?, + @SerialName("success") val success: Boolean, + @SerialName("player") val player: Player? = null, + @SerialName("data") val data: List?, + @SerialName("captions") val captions: List?, ) @Serializable private data class Captions( - @JsonProperty("id") @SerialName("id") val id: String, - @JsonProperty("hash") @SerialName("hash") val hash: String, - @JsonProperty("language") @SerialName("language") val language: String, - @JsonProperty("extension") @SerialName("extension") val extension: String, + @SerialName("id") val id: String, + @SerialName("hash") val hash: String, + @SerialName("language") val language: String, + @SerialName("extension") val extension: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt index 668dd65b20d..bb3f56c761e 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt @@ -1,6 +1,5 @@ package com.lagradost.cloudstream3.extractors -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.ExtractorApi @@ -45,6 +44,6 @@ open class YourUpload : ExtractorApi() { @Serializable private data class ResponseSource( - @JsonProperty("file") @SerialName("file") val file: String, + @SerialName("file") val file: String, ) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt index d2b1163502e..14b47e0899b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt @@ -41,11 +41,11 @@ import kotlinx.serialization.Serializable */ @Serializable data class TmdbLink( - @JsonProperty("imdbID") @SerialName("imdbID") val imdbID: String?, - @JsonProperty("tmdbID") @SerialName("tmdbID") val tmdbID: Int?, - @JsonProperty("episode") @SerialName("episode") val episode: Int?, - @JsonProperty("season") @SerialName("season") val season: Int?, - @JsonProperty("movieName") @SerialName("movieName") val movieName: String? = null, + @SerialName("imdbID") val imdbID: String?, + @SerialName("tmdbID") val tmdbID: Int?, + @SerialName("episode") val episode: Int?, + @SerialName("season") val season: Int?, + @SerialName("movieName") val movieName: String? = null, ) open class TmdbProvider : MainAPI() {