From c4bc301fb2787b7db2d56c2640ba9203323d20f1 Mon Sep 17 00:00:00 2001 From: Jimly Asshiddiqy Date: Fri, 14 Feb 2025 16:56:04 +0700 Subject: [PATCH 01/21] Implement version catalog --- build.gradle.kts | 24 +--- gradle.properties | 3 + gradle/libs.versions.toml | 113 ++++++++++++++++++ .../translators.gradle.kts | 0 settings.gradle.kts | 28 ++++- uhabits-android/build.gradle.kts | 97 ++++++--------- uhabits-core/build.gradle.kts | 35 +++--- uhabits-server/build.gradle.kts | 36 +++--- 8 files changed, 214 insertions(+), 122 deletions(-) create mode 100644 gradle/libs.versions.toml rename translators.gradle.kts => gradle/translators.gradle.kts (100%) diff --git a/build.gradle.kts b/build.gradle.kts index 0df91dee2..7c0fafc5f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,23 +1,11 @@ plugins { - val kotlinVersion = "2.1.10" - id("com.android.application") version "8.8.0" apply (false) - id("org.jetbrains.kotlin.android") version kotlinVersion apply (false) - id("org.jetbrains.kotlin.kapt") version kotlinVersion apply (false) - id("org.jetbrains.kotlin.multiplatform") version kotlinVersion apply (false) - id("org.jlleitschuh.gradle.ktlint") version "11.6.1" + alias(libs.plugins.agp) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.ktlint.plugin) apply false + alias(libs.plugins.shadow) apply false } apply { - from("translators.gradle.kts") -} - -allprojects { - repositories { - google() - mavenCentral() - maven(url = "https://plugins.gradle.org/m2/") - maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://jitpack.io") - maven(url = "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-js-wrappers/") // Repository for kotlin-css-jvm old versions, now that the Gradle Plugin Portal no longer brings these in by mirroring JCenter - } + from("gradle/translators.gradle.kts") } diff --git a/gradle.properties b/gradle.properties index cfc7ec4b1..5139a4280 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,3 +6,6 @@ android.enableJetifier=true android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false +org.gradle.configureondemand=true +org.gradle.warning.mode=all +org.gradle.caching=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..39e86f1e8 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,113 @@ +[versions] +agp = "8.6.1" +annotation = "1.9.1" +appcompat = "1.7.0" +appintro = "6.3.1" +commonsCodec = "1.16.0" +commonsIo = "1.3.2" +commonsLang3 = "3.14.0" +dagger = "2.55" +desugar = "2.1.4" +dexmaker = "2.28.3" +espresso = "3.6.1" +guava = "33.2.1-android" +hamcrest = "2.2" +jsr250 = "1.0" +jsr305 = "3.0.2" +junit = "1.2.1" +junitJupiter = "5.10.1" +junitVersion = "4.13.2" +konfetti-xml = "2.0.2" +kotlin = "2.1.10" +kotlin-css-jvm = "1.0.0-pre.148-kotlin-1.4.30" +kotlinxCoroutinesCoreCommon = "1.3.8" +ktlint-plugin = "11.6.1" +ktor = "1.6.8" +ktxCoroutine = "1.10.1" +legacy-support = "1.0.0" +logback = "1.4.14" +material = "1.12.0" +mockito-kotlin = "5.4.0" +opencsv = "5.9" +rules = "1.6.1" +shadow = "8.1.1" +simpleclient = "0.16.0" +sqliteJdbc = "3.45.1.0" +uiautomator = "2.3.0" + +[libraries] +annotation = { group = "androidx.annotation", name = "annotation", version.ref = "annotation" } +appIntro = { group = "com.github.AppIntro", name = "AppIntro", version.ref = "appintro" } +appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +commons-codec = { module = "commons-codec:commons-codec", version.ref = "commonsCodec" } +commons-io = { module = "org.apache.commons:commons-io", version.ref = "commonsIo" } +commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commonsLang3" } +dagger = { group = "com.google.dagger", name = "dagger", version.ref = "dagger" } +dagger-compiler = { group = "com.google.dagger", name = "dagger-compiler", version.ref = "dagger" } +desugar_jdk_libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" } +dexmaker-mockito = { group = "com.linkedin.dexmaker", name = "dexmaker-mockito", version.ref = "dexmaker" } +espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref = "espresso" } +espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" } +guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } +hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" } +jsr250-api = { group = "javax.annotation", name = "jsr250-api", version.ref = "jsr250" } +jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" } +junit = { group = "androidx.test.ext", name = "junit", version.ref = "junit" } +junit-junit = { module = "junit:junit", version.ref = "junitVersion" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junitJupiter" } +konfetti-xml = { group = "nl.dionsegijn", name = "konfetti-xml", version.ref = "konfetti-xml" } +kotlin-css-jvm = { group = "org.jetbrains", name = "kotlin-css-jvm", version.ref = "kotlin-css-jvm" } +kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "ktxCoroutine" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "ktxCoroutine" } +kotlinx-coroutines-core-common = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-common", version.ref = "kotlinxCoroutinesCoreCommon" } +kotlinx-coroutines-core-jvm = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", version.ref = "ktxCoroutine" } +ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" } +ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" } +ktor-client-jackson = { group = "io.ktor", name = "ktor-client-jackson", version.ref = "ktor" } +ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktor" } +ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktor" } +ktor-html-builder = { group = "io.ktor", name = "ktor-html-builder", version.ref = "ktor" } +ktor-jackson = { group = "io.ktor", name = "ktor-jackson", version.ref = "ktor" } +ktor-server-core = { group = "io.ktor", name = "ktor-server-core", version.ref = "ktor" } +ktor-server-netty = { group = "io.ktor", name = "ktor-server-netty", version.ref = "ktor" } +ktor-server-tests = { group = "io.ktor", name = "ktor-server-tests", version.ref = "ktor" } +legacy-preference-v14 = { group = "androidx.legacy", name = "legacy-preference-v14", version.ref = "legacy-support" } +legacy-support-v4 = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "legacy-support" } +logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logback" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +mockito-kotlin = { group = "org.mockito.kotlin", name = "mockito-kotlin", version.ref = "mockito-kotlin" } +opencsv = { group = "com.opencsv", name = "opencsv", version.ref = "opencsv" } +rules = { group = "androidx.test", name = "rules", version.ref = "rules" } +simpleclient = { group = "io.prometheus", name = "simpleclient", version.ref = "simpleclient" } +simpleclient_hotspot = { group = "io.prometheus", name = "simpleclient_hotspot", version.ref = "simpleclient" } +simpleclient_httpserver = { group = "io.prometheus", name = "simpleclient_httpserver", version.ref = "simpleclient" } +sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqliteJdbc" } +uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } + +[bundles] +androidTest = [ + "espresso-contrib", + "espresso-core", + "dagger", + "dexmaker-mockito", + "ktor-client-mock", + "ktor-jackson", + "annotation", + "junit", + "uiautomator", + "rules", + "mockito-kotlin", +] +test = [ + "dagger", + "junit-junit", + "mockito-kotlin", +] + +[plugins] +agp = { id = "com.android.application", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +ktlint-plugin = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint-plugin" } +shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } \ No newline at end of file diff --git a/translators.gradle.kts b/gradle/translators.gradle.kts similarity index 100% rename from translators.gradle.kts rename to gradle/translators.gradle.kts diff --git a/settings.gradle.kts b/settings.gradle.kts index 67dcdf9bd..fc073a015 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,12 +1,32 @@ pluginManagement { repositories { gradlePluginPortal() - google() + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } } - resolutionStrategy.eachPlugin { - if (requested.id.id == "com.android.application") { - useModule("com.android.tools.build:gradle:${requested.version}") +} + +dependencyResolutionManagement { + @Suppress("UnstableApiUsage") + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } } + mavenCentral() + maven(url = "https://plugins.gradle.org/m2/") + maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") + maven(url = "https://jitpack.io") + // Repository for kotlin-css-jvm old versions, now that the Gradle Plugin Portal no longer brings these in by mirroring JCenter + maven(url = "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-js-wrappers/") } } diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts index c599664c1..41e2f666b 100644 --- a/uhabits-android/build.gradle.kts +++ b/uhabits-android/build.gradle.kts @@ -18,10 +18,10 @@ */ plugins { - id("com.android.application") version "8.8.0" - id("org.jetbrains.kotlin.android") - id("org.jetbrains.kotlin.kapt") - id("org.jlleitschuh.gradle.ktlint") + alias(libs.plugins.agp) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ktlint.plugin) } tasks.compileLint { @@ -40,7 +40,6 @@ kotlin { } android { - namespace = "org.isoron.uhabits" compileSdk = 35 // compileSdkPreview = "VanillaIceCream" @@ -66,7 +65,7 @@ android { } buildTypes { - getByName("release") { + release { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.txt") if (signingConfigs.findByName("release") != null) { @@ -74,8 +73,8 @@ android { } } - getByName("debug") { - isTestCoverageEnabled = true + debug { + enableUnitTestCoverage = true } } @@ -84,64 +83,38 @@ android { targetCompatibility(JavaVersion.VERSION_11) sourceCompatibility(JavaVersion.VERSION_11) } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.toString() - } - - buildFeatures { - viewBinding = true - } - lint { - abortOnError = false - } + kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString() + buildFeatures.viewBinding = true + lint.abortOnError = false } -dependencies { - val daggerVersion = "2.51.1" - val kotlinVersion = "2.1.10" - val kxCoroutinesVersion = "1.10.1" - val ktorVersion = "1.6.8" - val espressoVersion = "3.6.1" +kapt.correctErrorTypes = true - androidTestImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion") - androidTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion") - androidTestImplementation("com.google.dagger:dagger:$daggerVersion") - androidTestImplementation("com.linkedin.dexmaker:dexmaker-mockito:2.28.3") - androidTestImplementation("io.ktor:ktor-client-mock:$ktorVersion") - androidTestImplementation("io.ktor:ktor-jackson:$ktorVersion") - androidTestImplementation("androidx.annotation:annotation:1.7.1") - androidTestImplementation("androidx.test.ext:junit:1.2.1") - androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0") - androidTestImplementation("androidx.test:rules:1.6.1") - androidTestImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0") - compileOnly("javax.annotation:jsr250-api:1.0") - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") - implementation("com.github.AppIntro:AppIntro:6.3.1") - implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("com.google.dagger:dagger:$daggerVersion") - implementation("com.google.guava:guava:33.1.0-android") - implementation("io.ktor:ktor-client-android:$ktorVersion") - implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("io.ktor:ktor-client-jackson:$ktorVersion") - implementation("io.ktor:ktor-client-json:$ktorVersion") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$kxCoroutinesVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kxCoroutinesVersion") - implementation("androidx.appcompat:appcompat:1.7.0") - implementation("androidx.legacy:legacy-preference-v14:1.0.0") - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("com.google.android.material:material:1.12.0") - implementation("com.opencsv:opencsv:5.9") - implementation("nl.dionsegijn:konfetti-xml:2.0.2") +dependencies { + compileOnly(libs.jsr250.api) + coreLibraryDesugaring(libs.desugar.jdk.libs) + implementation(libs.appIntro) + implementation(libs.jsr305) + implementation(libs.dagger) + implementation(libs.guava) + implementation(libs.ktor.client.android) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.jackson) + implementation(libs.ktor.client.json) + implementation(libs.kotlin.stdlib.jdk8) + implementation(libs.kotlinx.coroutines.android) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.appcompat) + implementation(libs.legacy.preference.v14) + implementation(libs.legacy.support.v4) + implementation(libs.material) + implementation(libs.opencsv) + implementation(libs.konfetti.xml) implementation(project(":uhabits-core")) - kapt("com.google.dagger:dagger-compiler:$daggerVersion") - kaptAndroidTest("com.google.dagger:dagger-compiler:$daggerVersion") - testImplementation("com.google.dagger:dagger:$daggerVersion") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0") -} + kapt(libs.dagger.compiler) + kaptAndroidTest(libs.dagger.compiler) -kapt { - correctErrorTypes = true + androidTestImplementation(libs.bundles.androidTest) + testImplementation(libs.bundles.test) } diff --git a/uhabits-core/build.gradle.kts b/uhabits-core/build.gradle.kts index 226cc9989..0baa70d72 100644 --- a/uhabits-core/build.gradle.kts +++ b/uhabits-core/build.gradle.kts @@ -19,7 +19,7 @@ plugins { kotlin("multiplatform") - id("org.jlleitschuh.gradle.ktlint") + alias(libs.plugins.ktlint.plugin) } kotlin { @@ -30,7 +30,7 @@ kotlin { val commonMain by getting { dependencies { implementation(kotlin("stdlib-common")) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.8") + implementation(libs.kotlinx.coroutines.core.common) } } @@ -44,14 +44,14 @@ kotlin { val jvmMain by getting { dependencies { implementation(kotlin("stdlib-jdk8")) - compileOnly("com.google.dagger:dagger:2.51.1") - implementation("com.google.guava:guava:33.1.0-android") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1") - implementation("androidx.annotation:annotation:1.7.1") - implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("com.opencsv:opencsv:5.9") - implementation("commons-codec:commons-codec:1.16.0") - implementation("org.apache.commons:commons-lang3:3.14.0") + compileOnly(libs.dagger) + implementation(libs.guava) + implementation(libs.kotlinx.coroutines.core.jvm) + implementation(libs.annotation) + implementation(libs.jsr305) + implementation(libs.opencsv) + implementation(libs.commons.codec) + implementation(libs.commons.lang3) } } @@ -59,19 +59,16 @@ kotlin { dependencies { implementation(kotlin("test")) implementation(kotlin("test-junit")) - implementation("org.xerial:sqlite-jdbc:3.45.1.0") - implementation("org.hamcrest:hamcrest:2.2") - implementation("org.apache.commons:commons-io:1.3.2") - implementation("org.mockito.kotlin:mockito-kotlin:5.4.0") - implementation("org.junit.jupiter:junit-jupiter:5.10.1") + implementation(libs.sqlite.jdbc) + implementation(libs.hamcrest) + implementation(libs.commons.io) + implementation(libs.mockito.kotlin) + implementation(libs.junit.jupiter) } } } } -tasks.named("jvmProcessResources") { - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} -tasks.named("jvmTestProcessResources") { +tasks.withType { duplicatesStrategy = DuplicatesStrategy.INCLUDE } diff --git a/uhabits-server/build.gradle.kts b/uhabits-server/build.gradle.kts index 9f2fda06a..077c3b2f5 100644 --- a/uhabits-server/build.gradle.kts +++ b/uhabits-server/build.gradle.kts @@ -22,7 +22,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { application id("kotlin") - id("com.github.johnrengelman.shadow") version "8.1.1" + alias(libs.plugins.shadow) } kotlin { @@ -36,27 +36,25 @@ application { mainClass.set("io.ktor.server.netty.EngineMain") } -dependencies { - val ktorVersion = "1.6.8" - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22") - implementation("io.ktor:ktor-server-netty:$ktorVersion") - implementation("ch.qos.logback:logback-classic:1.4.14") - implementation("io.ktor:ktor-server-core:$ktorVersion") - implementation("io.ktor:ktor-html-builder:$ktorVersion") - implementation("io.ktor:ktor-jackson:$ktorVersion") - implementation("org.jetbrains:kotlin-css-jvm:1.0.0-pre.148-kotlin-1.4.30") - implementation("io.prometheus:simpleclient:0.16.0") - implementation("io.prometheus:simpleclient_httpserver:0.16.0") - implementation("io.prometheus:simpleclient_hotspot:0.16.0") - testImplementation("io.ktor:ktor-server-tests:$ktorVersion") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.2.1") - testImplementation(kotlin("test")) - testImplementation(kotlin("test-junit")) -} - tasks.withType { archiveBaseName.set("uhabits-server") archiveClassifier.set("") archiveVersion.set("") } +dependencies { + implementation(libs.kotlin.stdlib.jdk8) + implementation(libs.ktor.server.netty) + implementation(libs.logback.classic) + implementation(libs.ktor.server.core) + implementation(libs.ktor.html.builder) + implementation(libs.ktor.jackson) + implementation(libs.kotlin.css.jvm) + implementation(libs.simpleclient) + implementation(libs.simpleclient.httpserver) + implementation(libs.simpleclient.hotspot) + testImplementation(libs.ktor.server.tests) + testImplementation(libs.mockito.kotlin) + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit")) +} From 9eb8624863accec456b010c3a93e1c279c416cfe Mon Sep 17 00:00:00 2001 From: Jimly Asshiddiqy Date: Mon, 17 Feb 2025 09:56:21 +0700 Subject: [PATCH 02/21] Migrate to KSP --- build.gradle.kts | 2 +- gradle/libs.versions.toml | 17 +++++++++-------- uhabits-android/build.gradle.kts | 7 ++----- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7c0fafc5f..7816c1e66 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { alias(libs.plugins.agp) apply false alias(libs.plugins.kotlin.android) apply false - alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.ksp) apply false alias(libs.plugins.ktlint.plugin) apply false alias(libs.plugins.shadow) apply false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 39e86f1e8..d245535d6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.6.1" +agp = "8.8.0" annotation = "1.9.1" appcompat = "1.7.0" appintro = "6.3.1" @@ -21,6 +21,7 @@ konfetti-xml = "2.0.2" kotlin = "2.1.10" kotlin-css-jvm = "1.0.0-pre.148-kotlin-1.4.30" kotlinxCoroutinesCoreCommon = "1.3.8" +ksp = "2.1.10-1.0.30" ktlint-plugin = "11.6.1" ktor = "1.6.8" ktxCoroutine = "1.10.1" @@ -87,17 +88,17 @@ uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", versi [bundles] androidTest = [ - "espresso-contrib", - "espresso-core", + "annotation", "dagger", "dexmaker-mockito", + "espresso-contrib", + "espresso-core", + "junit", "ktor-client-mock", "ktor-jackson", - "annotation", - "junit", - "uiautomator", - "rules", "mockito-kotlin", + "rules", + "uiautomator" ] test = [ "dagger", @@ -108,6 +109,6 @@ test = [ [plugins] agp = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ktlint-plugin = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint-plugin" } shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } \ No newline at end of file diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts index 41e2f666b..20ae36b66 100644 --- a/uhabits-android/build.gradle.kts +++ b/uhabits-android/build.gradle.kts @@ -20,7 +20,7 @@ plugins { alias(libs.plugins.agp) alias(libs.plugins.kotlin.android) - alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ksp) alias(libs.plugins.ktlint.plugin) } @@ -89,8 +89,6 @@ android { lint.abortOnError = false } -kapt.correctErrorTypes = true - dependencies { compileOnly(libs.jsr250.api) coreLibraryDesugaring(libs.desugar.jdk.libs) @@ -112,8 +110,7 @@ dependencies { implementation(libs.opencsv) implementation(libs.konfetti.xml) implementation(project(":uhabits-core")) - kapt(libs.dagger.compiler) - kaptAndroidTest(libs.dagger.compiler) + ksp(libs.dagger.compiler) androidTestImplementation(libs.bundles.androidTest) testImplementation(libs.bundles.test) From 74ce26944676bdafb3147477f8a6637c8a2c9223 Mon Sep 17 00:00:00 2001 From: kalina559 Date: Tue, 18 Feb 2025 20:47:12 +0100 Subject: [PATCH 03/21] Added 'UNKNOWN' button for measurable habits --- .../activities/common/dialogs/NumberDialog.kt | 14 +++++++++++--- .../src/main/res/layout/checkmark_popup.xml | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt index d8ba1ed59..56930e3ec 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt @@ -13,6 +13,7 @@ import androidx.appcompat.app.AppCompatDialogFragment import org.isoron.uhabits.HabitsApplication import org.isoron.uhabits.R import org.isoron.uhabits.core.models.Entry +import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN import org.isoron.uhabits.databinding.CheckmarkPopupBinding import org.isoron.uhabits.utils.InterfaceUtils import org.isoron.uhabits.utils.getCenter @@ -36,16 +37,17 @@ class NumberDialog : AppCompatDialogFragment() { val appComponent = (requireActivity().application as HabitsApplication).component val prefs = appComponent.preferences view = CheckmarkPopupBinding.inflate(LayoutInflater.from(context)) - arrayOf(view.yesBtn, view.skipBtn).forEach { + arrayOf(view.yesBtn).forEach { it.setTextColor(requireArguments().getInt("color")) } - arrayOf(view.noBtn, view.unknownBtn).forEach { + arrayOf(view.noBtn, view.unknownBtnNumber).forEach { it.setTextColor(view.root.sres.getColor(R.attr.contrast60)) } - arrayOf(view.yesBtn, view.noBtn, view.skipBtn, view.unknownBtn).forEach { + arrayOf(view.yesBtn, view.noBtn, view.unknownBtnNumber).forEach { it.typeface = InterfaceUtils.getFontAwesome(requireContext()) } if (!prefs.isSkipEnabled) view.skipBtnNumber.visibility = View.GONE + if (!prefs.areQuestionMarksEnabled) view.unknownBtnNumber.visibility = View.GONE view.numberButtons.visibility = View.VISIBLE fixDecimalSeparator(view) originalNotes = requireArguments().getString("notes")!! @@ -71,6 +73,12 @@ class NumberDialog : AppCompatDialogFragment() { view.value.setText(DecimalFormat("#.###").format((Entry.SKIP.toDouble() / 1000))) save() } + + view.unknownBtnNumber.setOnClickListener { + view.value.setText(DecimalFormat("#.###").format((Entry.UNKNOWN.toDouble() / 1000))) + save() + } + view.notes.setOnEditorActionListener { v, actionId, event -> save() true diff --git a/uhabits-android/src/main/res/layout/checkmark_popup.xml b/uhabits-android/src/main/res/layout/checkmark_popup.xml index 59f5c81a1..6bbd87ee0 100644 --- a/uhabits-android/src/main/res/layout/checkmark_popup.xml +++ b/uhabits-android/src/main/res/layout/checkmark_popup.xml @@ -98,6 +98,11 @@ style="@style/NumericalPopupBtn" android:text="@string/skip_day" /> + + Date: Tue, 18 Feb 2025 20:51:16 +0100 Subject: [PATCH 04/21] COrrected formatting --- .../isoron/uhabits/activities/common/dialogs/NumberDialog.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt index 56930e3ec..20ce3024a 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt @@ -47,7 +47,7 @@ class NumberDialog : AppCompatDialogFragment() { it.typeface = InterfaceUtils.getFontAwesome(requireContext()) } if (!prefs.isSkipEnabled) view.skipBtnNumber.visibility = View.GONE - if (!prefs.areQuestionMarksEnabled) view.unknownBtnNumber.visibility = View.GONE + if (!prefs.areQuestionMarksEnabled) view.unknownBtnNumber.visibility = View.GONE view.numberButtons.visibility = View.VISIBLE fixDecimalSeparator(view) originalNotes = requireArguments().getString("notes")!! @@ -100,8 +100,7 @@ class NumberDialog : AppCompatDialogFragment() { // https://github.com/flutter/flutter/issues/61175 val currKeyboard = Settings.Secure.getString( - requireContext().contentResolver, - Settings.Secure.DEFAULT_INPUT_METHOD + requireContext().contentResolver, Settings.Secure.DEFAULT_INPUT_METHOD ) if (currKeyboard.contains("swiftkey") || currKeyboard.contains("samsung")) { view.value.inputType = EditorInfo.TYPE_CLASS_TEXT From 6e3d06cff9f99e4a639fae867644c8994dcd23dc Mon Sep 17 00:00:00 2001 From: kalina559 Date: Tue, 18 Feb 2025 22:32:48 +0100 Subject: [PATCH 05/21] Corrected formatting in the layout file --- .../src/main/res/layout/checkmark_popup.xml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/uhabits-android/src/main/res/layout/checkmark_popup.xml b/uhabits-android/src/main/res/layout/checkmark_popup.xml index 6bbd87ee0..110e5e7f5 100644 --- a/uhabits-android/src/main/res/layout/checkmark_popup.xml +++ b/uhabits-android/src/main/res/layout/checkmark_popup.xml @@ -23,32 +23,32 @@ android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:minHeight="128dp" + android:background="@drawable/checkmark_dialog_bg" android:minWidth="208dp" - app:divider="@drawable/checkmark_dialog_divider" - app:showDividers="middle" + android:minHeight="128dp" android:orientation="vertical" - android:background="@drawable/checkmark_dialog_bg"> + app:divider="@drawable/checkmark_dialog_divider" + app:showDividers="middle"> + android:text="" + android:textSize="@dimen/smallTextSize" /> @@ -75,10 +75,10 @@ @@ -88,9 +88,9 @@ android:layout_height="match_parent" android:layout_weight="1" android:background="@color/transparent" - android:textAlignment="center" android:inputType="numberDecimal" android:selectAllOnFocus="true" + android:textAlignment="center" android:textSize="@dimen/smallTextSize" /> Date: Tue, 18 Feb 2025 23:19:20 +0100 Subject: [PATCH 06/21] Removed an unnecessary change --- .../isoron/uhabits/activities/common/dialogs/NumberDialog.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt index 20ce3024a..81eb53d21 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt @@ -13,7 +13,6 @@ import androidx.appcompat.app.AppCompatDialogFragment import org.isoron.uhabits.HabitsApplication import org.isoron.uhabits.R import org.isoron.uhabits.core.models.Entry -import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN import org.isoron.uhabits.databinding.CheckmarkPopupBinding import org.isoron.uhabits.utils.InterfaceUtils import org.isoron.uhabits.utils.getCenter @@ -100,7 +99,8 @@ class NumberDialog : AppCompatDialogFragment() { // https://github.com/flutter/flutter/issues/61175 val currKeyboard = Settings.Secure.getString( - requireContext().contentResolver, Settings.Secure.DEFAULT_INPUT_METHOD + requireContext().contentResolver, + Settings.Secure.DEFAULT_INPUT_METHOD ) if (currKeyboard.contains("swiftkey") || currKeyboard.contains("samsung")) { view.value.inputType = EditorInfo.TYPE_CLASS_TEXT From 3330014fa99bcae6f32563bcd86b3c30a73a7a75 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 21 Mar 2025 20:38:12 -0500 Subject: [PATCH 07/21] Remove unused project dirs (uhabits-core-legacy, uhabits-ios, etc) --- docs/GUIDELINES.md | 11 - tools/androidStringsToKt.sh | 30 - tools/convertAllStrings.sh | 46 - .../assets/main/databases/template.db | Bin 462848 -> 0 bytes .../assets/main/fonts/FontAwesome.ttf | Bin 204528 -> 0 bytes .../assets/main/fonts/NotoSans-Bold.ttf | Bin 397972 -> 0 bytes .../assets/main/fonts/NotoSans-Regular.ttf | Bin 398284 -> 0 bytes .../assets/main/migrations/001.sql | 0 .../assets/main/migrations/002.sql | 0 .../assets/main/migrations/003.sql | 0 .../assets/main/migrations/004.sql | 0 .../assets/main/migrations/005.sql | 0 .../assets/main/migrations/006.sql | 0 .../assets/main/migrations/007.sql | 0 .../assets/main/migrations/008.sql | 0 .../assets/main/migrations/009.sql | 5 - .../assets/main/migrations/010.sql | 3 - .../assets/main/migrations/011.sql | 1 - .../assets/main/migrations/012.sql | 3 - .../assets/main/migrations/013.sql | 4 - .../assets/main/migrations/014.sql | 14 - .../assets/main/migrations/015.sql | 3 - .../assets/main/migrations/016.sql | 2 - .../assets/main/migrations/017.sql | 5 - .../assets/main/migrations/018.sql | 3 - .../assets/main/migrations/019.sql | 1 - .../assets/main/migrations/020.sql | 3 - .../assets/main/migrations/021.sql | 12 - .../assets/main/migrations/022.sql | 11 - .../assets/main/migrations/023.sql | 1 - .../test/components/BarChart/2-series.png | Bin 17239 -> 0 bytes .../test/components/BarChart/axis-monthly.png | Bin 18816 -> 0 bytes .../test/components/BarChart/axis-weekly.png | Bin 17794 -> 0 bytes .../test/components/BarChart/axis-yearly.png | Bin 16469 -> 0 bytes .../assets/test/components/BarChart/base.png | Bin 17335 -> 0 bytes .../test/components/CalendarChart/base.png | Bin 37881 -> 0 bytes .../test/components/CalendarChart/scroll.png | Bin 36152 -> 0 bytes .../assets/test/components/CanvasTest.png | Bin 24849 -> 0 bytes .../components/CheckmarkButton/explicit.png | Bin 350 -> 0 bytes .../components/CheckmarkButton/implicit.png | Bin 345 -> 0 bytes .../components/CheckmarkButton/unchecked.png | Bin 424 -> 0 bytes .../test/components/HabitListHeader/light.png | Bin 4278 -> 0 bytes .../components/NumberButton/render_above.png | Bin 1653 -> 0 bytes .../components/NumberButton/render_below.png | Bin 1341 -> 0 bytes .../components/NumberButton/render_zero.png | Bin 1322 -> 0 bytes .../assets/test/components/Ring/draw1.png | Bin 3606 -> 0 bytes uhabits-core-legacy/assets/test/hello.txt | 2 - uhabits-core-legacy/build.gradle | 136 - uhabits-core-legacy/gradle.properties | 2 - uhabits-core-legacy/settings.gradle | 9 - .../src/main/c_interop/sqlite3.def | 25 - .../isoron/platform/concurrency/Observable.kt | 36 - .../common/org/isoron/platform/gui/Canvas.kt | 52 - .../common/org/isoron/platform/gui/Colors.kt | 45 - .../org/isoron/platform/gui/Component.kt | 24 - .../org/isoron/platform/gui/FontAwesome.kt | 27 - .../common/org/isoron/platform/gui/Image.kt | 64 - .../common/org/isoron/platform/io/Database.kt | 107 - .../common/org/isoron/platform/io/Files.kt | 98 - .../main/common/org/isoron/platform/io/Log.kt | 46 - .../common/org/isoron/platform/io/Strings.kt | 24 - .../common/org/isoron/platform/time/Dates.kt | 173 - .../main/common/org/isoron/uhabits/Config.kt | 22 - .../org/isoron/uhabits/backend/Backend.kt | 136 - .../uhabits/backend/MainScreenDataSource.kt | 74 - .../org/isoron/uhabits/components/BarChart.kt | 164 - .../uhabits/components/CalendarChart.kt | 125 - .../uhabits/components/CheckmarkButton.kt | 40 - .../uhabits/components/HabitListHeader.kt | 56 - .../isoron/uhabits/components/NumberButton.kt | 71 - .../org/isoron/uhabits/components/Ring.kt | 53 - .../org/isoron/uhabits/components/Themes.kt | 70 - .../org/isoron/uhabits/i18n/LocaleHelper.kt | 24 - .../common/org/isoron/uhabits/i18n/Strings.kt | 190 - .../org/isoron/uhabits/models/Checkmark.kt | 47 - .../isoron/uhabits/models/CheckmarkList.kt | 204 - .../uhabits/models/CheckmarkRepository.kt | 59 - .../org/isoron/uhabits/models/Frequency.kt | 34 - .../common/org/isoron/uhabits/models/Habit.kt | 33 - .../isoron/uhabits/models/HabitRepository.kt | 100 - .../org/isoron/uhabits/models/HabitType.kt | 25 - .../org/isoron/uhabits/models/Preferences.kt | 40 - .../uhabits/models/PreferencesRepository.kt | 69 - .../common/org/isoron/uhabits/models/Score.kt | 39 - .../org/isoron/uhabits/models/ScoreList.kt | 70 - .../org/isoron/uhabits/models/Streak.kt | 34 - .../org/isoron/uhabits/models/StreakList.kt | 34 - .../platform/concurrency/UIDispatcher.kt | 33 - .../ios/org/isoron/platform/gui/IosCanvas.kt | 149 - .../ios/org/isoron/platform/gui/IosImage.kt | 55 - .../ios/org/isoron/platform/io/IosDatabase.kt | 111 - .../ios/org/isoron/platform/io/IosFiles.kt | 68 - .../ios/org/isoron/platform/io/Strings.kt | 46 - .../ios/org/isoron/platform/time/IosDates.kt | 55 - .../ios/org/isoron/uhabits/IosLocaleHelper.kt | 37 - .../js/org/isoron/platform/gui/JsCanvas.kt | 143 - .../js/org/isoron/platform/gui/JsImage.kt | 72 - .../js/org/isoron/platform/io/JsDatabase.kt | 80 - .../main/js/org/isoron/platform/io/JsFiles.kt | 165 - .../js/org/isoron/platform/io/JsStrings.kt | 32 - .../js/org/isoron/platform/time/JsDates.kt | 38 - .../jvm/org/isoron/platform/gui/JavaCanvas.kt | 168 - .../jvm/org/isoron/platform/gui/JavaImage.kt | 48 - .../org/isoron/platform/io/JavaDatabase.kt | 101 - .../jvm/org/isoron/platform/io/JavaFiles.kt | 83 - .../jvm/org/isoron/platform/io/Strings.kt | 29 - .../jvm/org/isoron/platform/time/JavaDates.kt | 52 - .../src/test/common/org/isoron/AsyncTests.kt | 26 - .../common/org/isoron/DependencyResolver.kt | 36 - .../platform/concurrency/ObservableTest.kt | 46 - .../org/isoron/platform/gui/CanvasTest.kt | 71 - .../org/isoron/platform/io/DatabaseTest.kt | 64 - .../org/isoron/platform/io/FilesTest.kt | 59 - .../org/isoron/platform/io/StringsTest.kt | 37 - .../org/isoron/platform/time/DatesTest.kt | 142 - .../common/org/isoron/uhabits/BaseViewTest.kt | 71 - .../isoron/uhabits/components/BarChartTest.kt | 79 - .../uhabits/components/CalendarChartTest.kt | 48 - .../uhabits/components/CheckmarkButtonTest.kt | 46 - .../uhabits/components/HabitListHeaderTest.kt | 34 - .../uhabits/components/NumberButtonTest.kt | 58 - .../org/isoron/uhabits/components/RingTest.kt | 39 - .../uhabits/models/CheckmarkListTest.kt | 184 - .../uhabits/models/CheckmarkRepositoryTest.kt | 57 - .../uhabits/models/HabitRepositoryTest.kt | 91 - .../models/PreferencesRepositoryTest.kt | 44 - .../isoron/uhabits/models/ScoreListTest.kt | 91 - .../test/ios/org/isoron/DependencyResolver.kt | 58 - .../src/test/ios/org/isoron/IosAsyncTests.kt | 28 - .../test/js/org/isoron/DependencyResolver.kt | 68 - .../src/test/js/org/isoron/JsAsyncTests.kt | 28 - .../test/jvm/org/isoron/DependencyResolver.kt | 60 - .../src/test/jvm/org/isoron/JavaAsyncTests.kt | 28 - uhabits-ios/Application/AppDelegate.swift | 54 - .../AppIcon.appiconset/Contents.json | 100 - .../AppIcon.appiconset/loop-120.png | Bin 6481 -> 0 bytes .../AppIcon.appiconset/loop-180.png | Bin 11688 -> 0 bytes .../Application/Assets.xcassets/Contents.json | 6 - .../ic_more.imageset/Contents.json | 23 - .../baseline_more_horiz_black_24pt_1x.png | Bin 116 -> 0 bytes .../baseline_more_horiz_black_24pt_2x.png | Bin 156 -> 0 bytes .../baseline_more_horiz_black_24pt_3x.png | Bin 199 -> 0 bytes uhabits-ios/Application/BridgingHeader.h | 20 - .../Frontend/AboutScreenController.swift | 23 - .../Frontend/DetailScreenController.swift | 115 - .../Frontend/EditHabitController.swift | 87 - .../Frontend/MainScreenController.swift | 271 - uhabits-ios/Application/Info.plist | 49 - uhabits-ios/Application/Launch.storyboard | 7 - .../Application/Platform/ComponentView.swift | 44 - uhabits-ios/Tests/Info.plist | 26 - uhabits-ios/uhabits.xcodeproj/project.pbxproj | 584 -- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 5 - uhabits-server/.gitignore | 7 - uhabits-server/Dockerfile | 11 - uhabits-server/build.gradle.kts | 62 - .../org/isoron/uhabits/sync/SyncData.kt | 35 - .../org/isoron/uhabits/sync/SyncException.kt | 28 - .../org/isoron/uhabits/sync/app/LinkModule.kt | 55 - .../isoron/uhabits/sync/app/MetricsModule.kt | 44 - .../uhabits/sync/app/RegistrationModule.kt | 37 - .../isoron/uhabits/sync/app/StorageModule.kt | 62 - .../uhabits/sync/app/SyncApplication.kt | 53 - .../org/isoron/uhabits/sync/links/Link.kt | 36 - .../isoron/uhabits/sync/links/LinkManager.kt | 49 - .../uhabits/sync/repository/FileRepository.kt | 73 - .../uhabits/sync/repository/Repository.kt | 46 - .../uhabits/sync/server/AbstractSyncServer.kt | 81 - .../sync/server/RepositorySyncServer.kt | 94 - .../org/isoron/uhabits/sync/utils/String.kt | 31 - .../src/main/resources/application.conf | 9 - uhabits-server/src/main/resources/logback.xml | 31 - .../uhabits/sync/app/BaseApplicationTest.kt | 35 - .../uhabits/sync/app/LinksModuleTest.kt | 91 - .../sync/app/RegistrationModuleTest.kt | 51 - .../uhabits/sync/app/StorageModuleTest.kt | 111 - .../uhabits/sync/links/LinkManagerTest.kt | 44 - .../sync/repository/FileRepositoryTest.kt | 53 - .../sync/server/RepositorySyncServerTest.kt | 60 - uhabits-web/.babelrc | 6 - uhabits-web/Makefile | 35 - uhabits-web/package-lock.json | 6080 ----------------- uhabits-web/package.json | 34 - uhabits-web/src/main/index.js | 1 - uhabits-web/src/test/index.html | 51 - uhabits-web/src/test/index.js | 3 - 188 files changed, 14927 deletions(-) delete mode 100755 tools/androidStringsToKt.sh delete mode 100755 tools/convertAllStrings.sh delete mode 100644 uhabits-core-legacy/assets/main/databases/template.db delete mode 100644 uhabits-core-legacy/assets/main/fonts/FontAwesome.ttf delete mode 100755 uhabits-core-legacy/assets/main/fonts/NotoSans-Bold.ttf delete mode 100755 uhabits-core-legacy/assets/main/fonts/NotoSans-Regular.ttf delete mode 100644 uhabits-core-legacy/assets/main/migrations/001.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/002.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/003.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/004.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/005.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/006.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/007.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/008.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/009.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/010.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/011.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/012.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/013.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/014.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/015.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/016.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/017.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/018.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/019.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/020.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/021.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/022.sql delete mode 100644 uhabits-core-legacy/assets/main/migrations/023.sql delete mode 100644 uhabits-core-legacy/assets/test/components/BarChart/2-series.png delete mode 100644 uhabits-core-legacy/assets/test/components/BarChart/axis-monthly.png delete mode 100644 uhabits-core-legacy/assets/test/components/BarChart/axis-weekly.png delete mode 100644 uhabits-core-legacy/assets/test/components/BarChart/axis-yearly.png delete mode 100644 uhabits-core-legacy/assets/test/components/BarChart/base.png delete mode 100644 uhabits-core-legacy/assets/test/components/CalendarChart/base.png delete mode 100644 uhabits-core-legacy/assets/test/components/CalendarChart/scroll.png delete mode 100644 uhabits-core-legacy/assets/test/components/CanvasTest.png delete mode 100644 uhabits-core-legacy/assets/test/components/CheckmarkButton/explicit.png delete mode 100644 uhabits-core-legacy/assets/test/components/CheckmarkButton/implicit.png delete mode 100644 uhabits-core-legacy/assets/test/components/CheckmarkButton/unchecked.png delete mode 100644 uhabits-core-legacy/assets/test/components/HabitListHeader/light.png delete mode 100644 uhabits-core-legacy/assets/test/components/NumberButton/render_above.png delete mode 100644 uhabits-core-legacy/assets/test/components/NumberButton/render_below.png delete mode 100644 uhabits-core-legacy/assets/test/components/NumberButton/render_zero.png delete mode 100644 uhabits-core-legacy/assets/test/components/Ring/draw1.png delete mode 100644 uhabits-core-legacy/assets/test/hello.txt delete mode 100644 uhabits-core-legacy/build.gradle delete mode 100644 uhabits-core-legacy/gradle.properties delete mode 100644 uhabits-core-legacy/settings.gradle delete mode 100644 uhabits-core-legacy/src/main/c_interop/sqlite3.def delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/concurrency/Observable.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Canvas.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Colors.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Component.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/gui/FontAwesome.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Image.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/io/Database.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/io/Files.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/io/Log.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/io/Strings.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/platform/time/Dates.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/Config.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/Backend.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/MainScreenDataSource.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/BarChart.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CalendarChart.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CheckmarkButton.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/HabitListHeader.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/NumberButton.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Ring.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Themes.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/LocaleHelper.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/Strings.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Checkmark.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkList.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkRepository.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Frequency.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Habit.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitRepository.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitType.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Preferences.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/PreferencesRepository.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Score.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/ScoreList.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Streak.kt delete mode 100644 uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/StreakList.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/concurrency/UIDispatcher.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosCanvas.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosImage.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosDatabase.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosFiles.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/io/Strings.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/platform/time/IosDates.kt delete mode 100644 uhabits-core-legacy/src/main/ios/org/isoron/uhabits/IosLocaleHelper.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsCanvas.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsImage.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsDatabase.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsFiles.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsStrings.kt delete mode 100644 uhabits-core-legacy/src/main/js/org/isoron/platform/time/JsDates.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaCanvas.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaImage.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaDatabase.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaFiles.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/Strings.kt delete mode 100644 uhabits-core-legacy/src/main/jvm/org/isoron/platform/time/JavaDates.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/AsyncTests.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/DependencyResolver.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/concurrency/ObservableTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/gui/CanvasTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/io/DatabaseTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/io/FilesTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/io/StringsTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/platform/time/DatesTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/BaseViewTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/BarChartTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CalendarChartTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CheckmarkButtonTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/HabitListHeaderTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/NumberButtonTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/RingTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkListTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkRepositoryTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/HabitRepositoryTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/PreferencesRepositoryTest.kt delete mode 100644 uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/ScoreListTest.kt delete mode 100644 uhabits-core-legacy/src/test/ios/org/isoron/DependencyResolver.kt delete mode 100644 uhabits-core-legacy/src/test/ios/org/isoron/IosAsyncTests.kt delete mode 100644 uhabits-core-legacy/src/test/js/org/isoron/DependencyResolver.kt delete mode 100644 uhabits-core-legacy/src/test/js/org/isoron/JsAsyncTests.kt delete mode 100644 uhabits-core-legacy/src/test/jvm/org/isoron/DependencyResolver.kt delete mode 100644 uhabits-core-legacy/src/test/jvm/org/isoron/JavaAsyncTests.kt delete mode 100644 uhabits-ios/Application/AppDelegate.swift delete mode 100644 uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/loop-120.png delete mode 100644 uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/loop-180.png delete mode 100644 uhabits-ios/Application/Assets.xcassets/Contents.json delete mode 100644 uhabits-ios/Application/Assets.xcassets/ic_more.imageset/Contents.json delete mode 100644 uhabits-ios/Application/Assets.xcassets/ic_more.imageset/baseline_more_horiz_black_24pt_1x.png delete mode 100644 uhabits-ios/Application/Assets.xcassets/ic_more.imageset/baseline_more_horiz_black_24pt_2x.png delete mode 100644 uhabits-ios/Application/Assets.xcassets/ic_more.imageset/baseline_more_horiz_black_24pt_3x.png delete mode 100644 uhabits-ios/Application/BridgingHeader.h delete mode 100644 uhabits-ios/Application/Frontend/AboutScreenController.swift delete mode 100644 uhabits-ios/Application/Frontend/DetailScreenController.swift delete mode 100644 uhabits-ios/Application/Frontend/EditHabitController.swift delete mode 100644 uhabits-ios/Application/Frontend/MainScreenController.swift delete mode 100644 uhabits-ios/Application/Info.plist delete mode 100644 uhabits-ios/Application/Launch.storyboard delete mode 100644 uhabits-ios/Application/Platform/ComponentView.swift delete mode 100644 uhabits-ios/Tests/Info.plist delete mode 100644 uhabits-ios/uhabits.xcodeproj/project.pbxproj delete mode 100644 uhabits-ios/uhabits.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 uhabits-server/.gitignore delete mode 100644 uhabits-server/Dockerfile delete mode 100644 uhabits-server/build.gradle.kts delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncData.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncException.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/LinkModule.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/MetricsModule.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/RegistrationModule.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/StorageModule.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/SyncApplication.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/Link.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/LinkManager.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/FileRepository.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/Repository.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/AbstractSyncServer.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServer.kt delete mode 100644 uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/utils/String.kt delete mode 100644 uhabits-server/src/main/resources/application.conf delete mode 100644 uhabits-server/src/main/resources/logback.xml delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/BaseApplicationTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/LinksModuleTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/RegistrationModuleTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/StorageModuleTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/links/LinkManagerTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/repository/FileRepositoryTest.kt delete mode 100644 uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServerTest.kt delete mode 100644 uhabits-web/.babelrc delete mode 100644 uhabits-web/Makefile delete mode 100644 uhabits-web/package-lock.json delete mode 100644 uhabits-web/package.json delete mode 100644 uhabits-web/src/main/index.js delete mode 100644 uhabits-web/src/test/index.html delete mode 100644 uhabits-web/src/test/index.js diff --git a/docs/GUIDELINES.md b/docs/GUIDELINES.md index c24b375cb..8876b0805 100644 --- a/docs/GUIDELINES.md +++ b/docs/GUIDELINES.md @@ -12,17 +12,6 @@ Please see `docs/BUILD.md` and `docs/TEST.md` -## Directory Layout - -* `docs` Documentation for developers. -* `landing` Source code for our [landing page](http://loophabits.org/). -* `uhabits-android` Android-specific code. -* `uhabits-core` Common code used by all platforms (Android, iOS). -* `uhabits-core-legacy` Proof-of-concept module, developed to evaluate the feasibility of using Kotlin multiplatform for the app; not currently used, and it will be removed soon, once all useful code is ported to the other modules. -* `uhabits-ios` Experimental iOS port of Loop. Not currently used in production. -* `uhabits-server` Source code for any server-side components the app (for example, device sync). -* `uhabits-web` Experimental web port of Loop. Not currently used in production. - ## Branching Policy This repository uses the [git-flow branching model](https://nvie.com/posts/a-successful-git-branching-model/). Basically, there are two main branches, `dev` and `master`. All the development takes place in the `dev` branch. After the new features have been implemented and tested, they are merged into the `master` branch and a new version of the app is released. Please submit your pull requests against the `dev` branch. diff --git a/tools/androidStringsToKt.sh b/tools/androidStringsToKt.sh deleted file mode 100755 index b1ed51dcf..000000000 --- a/tools/androidStringsToKt.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -input=$1 -locale_name=$2 - -cat <\([^<]*\)<.*/ '"$prefix"'val \1 = "\2"/' - -echo "}" diff --git a/tools/convertAllStrings.sh b/tools/convertAllStrings.sh deleted file mode 100755 index fba8830b9..000000000 --- a/tools/convertAllStrings.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -INPUT_DIR=../android/uhabits-android/src/main/res/ -OUTPUT_DIR=../core/src/commonMain/kotlin/org/isoron/uhabits/i18n/ - -convert() { - ./androidStringsToKt.sh $INPUT_DIR/$1/strings.xml "$2" > $OUTPUT_DIR/Strings$2.kt -} - -#convert values "" -convert values-ar Arabic -convert values-bg Bulgarian -convert values-ca Catalan -convert values-cs Czech -convert values-da Danish -convert values-de German -convert values-el Greek -convert values-eo Esperanto -convert values-es Spanish -convert values-eu Basque -convert values-fa Persian -convert values-fi Finnish -convert values-fr French -convert values-hi Hindi -convert values-hr Croatian -convert values-hu Hungarian -convert values-in Indonesian -convert values-it Italian -convert values-iw Hebrew -convert values-ja Japanese -convert values-ko Korean -convert values-nl Dutch -convert values-no-rNO Norwegian -convert values-pl Polish -convert values-pt-rBR PortugueseBR -convert values-pt-rPT PortuguesePT -convert values-ro Romanian -convert values-ru Russian -convert values-sl Slovak -convert values-sr Serbian -convert values-sv Swedish -convert values-tr Turkish -convert values-uk Ukrainian -convert values-vi Vietnamese -convert values-zh-rCN ChineseCN -convert values-zh-rTW ChineseTW diff --git a/uhabits-core-legacy/assets/main/databases/template.db b/uhabits-core-legacy/assets/main/databases/template.db deleted file mode 100644 index 5e920e8d7d83a18cbfb1fe56e31612f416f3310c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462848 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

@1K}NSt&Ys7Ew?Enr+Vgmj6Btd- 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 #((9fAj-L`m^awbs{1?XHz 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

    `a1~~Lz1TchW$g5 zrv6SwIgzBPzmw5iBx&kzSZgF{>TlS2Bx&mJWE3Jv+RLAu$!JTGH1&5fs+1&6{hf@S zB}r3%C!>T(($wF{XlRl&^*5|}F_I;p>5%a?Rgf5Qqe>7@RK{b15b z{SC{*q?7s^Hj7Co^*5{?lTPYy*hwax)ZehMOgb;fpPaDGOggE*Vbz&*Qh&o9H0h-N zh9zmzN&TJLyt}@Foz&l{CspXht&{pYb>fVXiqzk!Q*K$JNd299(cq{e^>^yr+0Q9b zf2Usi+X0Hy->J8LwqB9?JM|B{tx%lKKjEp0K#}@8_1QCKnH}r@f3fv{7xlPd*FMvX zbWx8R_878Ck$T*)cT0ao>T$z?$#sg<dfd>ov{jLM z+;HL>Dmh)$&~sK*UAHrFdsj~i~C)2&E7Zn*pT$%@qDhI{|EQjvPxkn#E{QjZ(% z8?JKIMLo9B`d!rHhDWa*qDQI64NtzVAO0@tu?^nuq8{7e{VwWp!y9Lh*Dt0XH*8p; z*MctUv5n>Lq8>MFIY6%kUDRWn(%(frZut4$VS1E$Y(x9IsK+*?zl(a@m}o1~FQy*b z(Ecv!u?_9-q8>L6d_B-FrXJf2|1RpW&G7G{9@`B6F6wdPu?siq_fn4=kAHlGBK6oN z{C8208ykCV)1%a58~EQvJ+=w|UDV^osqJ`sQ;!?Zcy^T{_1NbBcTtaR{(l$sxbfm6 z*69~hj~g#Pb*Lis*tP?7QI8w1yAPiQ>anc@=%OCmI)E&Hv9* zkH;SV%m5=<>anc@$Wo8Tj@(J5E=xVO?EqQo@z~l^7V1&z@!0X*)r!<(+Z~Xl9*=GN zdyyWc9@{E`EcMuS2V|+owmTq8J+|EeS?aOv4#-lEZFfMHdThG`veaYS9gw9S+p>V{ zX?eA_WdYf##IP(NJB1jQ1!N}^mk!f+dv+2rEDOlC5yP^8?5V`CEFe3P7?uTOPa%e7 z0ojv@uk5x!fAR!k*d35IQxMD}$0<^O z$A#?xS?aH?1ISW;n|dERN57c*Yuf>`)ZeDyVZ27vU)v6lrT#Vze@d@8S?X`oF`H&8 zQh#k(K$iO3)O^JTJxcwxWdT|0Z_|{mTlFaQx9N;s>J_QKwmTq8{cSpbnqFkG)ZeCy zZk()0{cXBznOKk*L2->rWe|Nd2{q23hK_Z8XSIe{G{dmilWO4YJhVrXOl1>W`xS+Jb{D z_16|0WU0T+eOBTvO8sq)e6&W9`fKYCveaK&e~_jAHt&7{-p|zE=CBPROZ{!$r*p9$ zrT*G-ge>*fmLp`TzqTA9OZ{y=YJ}+bQh#k%LYDe#yArb0U)z*9x#j0| z`lG17wmKn8{k7EzS?aH?PRLS!ZFNGH`fIBbvee(^3qCUXlc~S9Ng+%9wM`0H>aT55 z$Wni8lR}pIYpWBo)Zga2zM88)nfhy+6tdJ`+oX`8{@Nym4E4A9f$Q}nnW6qRFMCiw zk{Rl6^Y7Q`ZEc47YkL+l)L+}PkfHuIzqUv}bQ$We?Mlc{e{DHJhWgtgN6pYLrvBP; zgbel9)*oc3zqaonL;bY{2N~+GEjY+fe{I1*hWcw84KmbU+h~xX{@O-^4E5JG8f2)y zw!$Do{k0Va8S1aCFvw7UZG}OG`fDo;GSpvNVUVHz+LD3{_1BgZWT?Nkh9E=zwKW78 z>aVRK$WVW6??8t7YpVn@)L&aAkfHwC?tl#S*XI9csK4X)(6U3xP=Ch{)+R*BP=Cjx zCQ&lf-|^^B>{Ir(`BC%#dwkJjL&;Yq8%y3Od9LKKl5SlUFDSXPWLC-4lJO;DN`{y0 zU(&y1r;?&x-}c(n>+N2vdp*%>X|H>GE$nqoui3p$@73C?_J5K)U%a;XnI7BAzKs+` zb}H->=^xoYGCVS-FeuzBGCndjGAnXr=~IP63y&?VFI`jmZt3RI@5@Tcys`m>Cl}5r zyeOaZKP>W9pHKU2>)W%hTR5-q_QF)*gM}-#&0t91qxx3&J+be!z8CbJ+xM2fOZwj5 zcSYgLh3gAHE!bq5XNK|%{!E%IDO0!Isb9=V_88S;T#vTiWx88nkaio4>OHP^Tkn~@FYP_Q_g%d+y&vhls`snCH}w9Z_x3)0 z`UHLU>NB*@v3=_MoZMq(k4t;Z?{Qa;Opix;tm^S<(Je(weNufM z?6b1Z%cTQL4=o*8+E_ZV&-&uQ#YYrZ7B?49Eq-}uc9t$HUR>N&yu55_*%M`}%QpSP?iqSRiVH@icb{hx*0rL9eVPgD zXi<86`8JcVZWpDM?~OAF>x3yTsJtsP*(9vPODXkDKa;TTFQu+sW}Ad{h7}ityN43i zlc$8uLka8GQ=0!!rAb&XpVG~5rA)&5{FLs{UpCP@|9g&JyjQD9l#sB=DA9}5d7f($ z)>l|m5YE_~nc*=d4B(t|@?RNl{!YvxVIOs3HVHeF6X%g$UOUqy&dpP}6F4!06nj?x z+A~Pl7MwVpbjvk?Nmy@>o-^!wr?iM%09LM=4>~X2LqWl(1i}?fu=TII)Jc47Li+T*%3C=JcL$HElor`)5sSA#EE-E3C z!LiOoCFC_Y!})y(b8xJ4QI8?%!LiOoCB#5D*14#Jj0nfRmy{47;n???64E6c`yR|k zPdN7dna`zg?0Z)Up%spOUn?Qe!m-XpCB$7g*14#JEDXmw7nKl{;aKOQ5>hlA>s(Yq z#D-&?i%Q7faIAAt3E>=$buKC)xx=x}MJ2>~IM%tSgv<}eIv14?2;x}hq7u?V9Q)Z+ z8mmzvj{V#!A!o#~pJ^q8kT~}9u7rdV$6gDR5MSb0=b{p_O`P%h*C7l(ajbJukM&(2 z7{@vn^N}fzbuQ-fR2+M~Rzlc{W3S~(NMdp9bzTWEEsoUyC1kib6Z8LG81UlQE0`Wb z`is-XV^?c5jANaPdJMTS&SV}#sElKsi+T)+GmdpGD(&{2zCW#VQLoT=HsM(3q7oil zIM%tSgr^#gy|yahk%wciyGnQ-;@E4l5+0T~XXgL)@JWhu77348oU=pHYY%ohCk`TE zmvCY)5;h4Z_9Q+1&PbCOKzhDliAnr|g#E*bJxJIuoG2$@yKtgE>8qi772cin-HGc> zVz)evE=cP&c~?^3t<@&ckA#iGiCsv$oHo%Ub|&?|VTDN~NZ3=H2uRpcobX9UpSRH@ zJkscui%lX>f_UNZ34_h?1~bI1wRTGGeGnl;vs6DeH<% z@F@xVYJ-nR$lMP;Bw>?nu#tp4w!vRX*J^Tq@Bs-MZiDwp*kBuMAU!&{zX{&X)2P>H zuQCby=}^5zjzq$Ka+Hu8k+7dCrB8R#-`alSR1No7KF}oWXIcqa4hj2tS30a=kxAHV zffAw{681Wwgye>Vy@n_uxFKP$FG|R5NZ4zS5^@?6_PV5W_ILUowAU;pgf=AX^-Srq z)0dcpz1AsR`{;O+u-8E)q#q>gbyw;A<7SzJy(TLm&LCm0*Gfn;NZ4z+62c4;_ByYh z2eXg9CyvOUvoOjaVf8_eMHcJ3z-osQq6!jLSCo)ckg%GggzSNY)gvWj4J3y0XCi7K zad4hSuRLgjNfeUaOXwLaAbl~vp9y}-)0mQ~O(yt(Gpx?~(3(VW|n;C8fU<6a0mQUERTY z(u2QTWrBC|RFxRM)dbIxu!lQ%mW1|*;29E{C4xVZu)RB2MZ)gx;ORVtsWl0Et<(1| za%d9vim8O4nS{NXDj`@VVXw4G$dyS<&Ht29W6q44guO!RvASFJ3TCg~N+)a>U=ow^ zUm5O85B^O0R7btR8WOrIf>%i2sG%-+nS_>$;3d+}DyqTiJXIAX=bGR}61KVrFOblj z5j;;qdqnU@5_Yl&PmoS++HQhB=t802KUOyX{{Q8_GR$g9Tuee#Q{o~LqL~sGl8}&; z_!S9>NQnzbUC(YdiStQFJW9+WA(kj{4hgA5iJ2sX5+$fWVF*#es*~O;_WN+W3BJpJ z<(NJCE;GTmBt#wr-;j`a5PV5O;6bp3G%6Tog1?cFeh_?-r%`JfrOZ)W1Q*H zrt91Jx>lX3tJFtywR%@!pB~#W73lG*uC-4ttk+fe(89fRZT_jQpkFRrsjKXiuD0hD zUZiW|@j>xV#anvr+*5jv?0IObb0EXU|1F zuj@6Sm)EPL=l4A~_k6eKn*TWU_^;+8|9uDIf7hh=Uv)74$F@eD2&8l}Fi$50Gy0sY zlZRt<0sRyFf^eV;x?LQhQaIO*y(eb+upLcdI~oP>Uv;P)hS)&vic&{-2KBcZb znhJ6xv`YouB(zHf_vNX2v^&rQ_mI%?75tWjUaw#Y32j|LI|=<|MhSa+?}VI*k(PSSCG(27hFj~CtYwAsmFzZ3FhW0 zY^V#aCVkygU-xTBn|`ma^sh;Oy=99D=8@1>7hFq1UtMq=34L|J^`w{oez^(elh9rl z+(25@{hSGIBt14UYJ!_cXtoO$kkD)w+?=OcbS(zQkkGXl97{siVsIP@U5mj;5*izW z5hS!Z2D}rjy>`96laJyt^bH2Q_p3zlz`Mj+^eG0szpK>{8xsuW_n}WQID~{g#o$m9`VE8qN$58W4j`cgG8jTa(_?TT z32lx6S8#Rc!3p-xAFD$TPB4&!9-Lqw5_)igK_oP|1^ecy77dEQVA8h*TTQSZzY;A& z!EPk<3I)59&=wSMtyhPBprD+`&<_;sK|()J@Cy<;fPw)ebN~f=lF<4S?3Jf_v{?mQ ziPaDKd9Dc@9z#b};F8c$6~y^d&=M7RB(y{YJ_$`wK|n%lQ;;B`wJF${gr25g7ZRG8 zf_@})F$KHkss6pA^!o}(ue?}ff*z!mE&7#(q{k0jXo4crBYlUNpqR9Dqn_QKq}&si zo1hn|bI|}3l#trbdCmmANsFuWb?8Hyzizw<`jUSAJ3aG4y7KxZCMYG%K1yGQGSZ}u z*(QjPP8hH6r6}p>MO#e}%TtZN(>xPguFARnf3BYYXMbn@OoZ+$e=X_Mi^ce_lUm0u zHU1kUn7aHoN!9N!HvT#i++qG(q+gyj&-ibXhE)zW{yU`oewbx^uC_wIn$MM3XlC=@ zu}@$ zjRc3JzlAjG_PNIYk_2z1{}t)<(W{OBH3>FMe=7+dP5&Db44nSAB)B{M??|wI`rAlH zZdqXbzmwo0^}i>4p92`$-Zq@IrB%ygY7)?U+a4?31e&(Qxbj;Iw<*O#4pE;-@p`SUZ zC83`=s3W0~IjAS?@fW?iHIUHH95j-G1$uQGOL9)vtJ^pd+Ngsj656PPW>VpIQ4_S} zsRrHD!FUq7se=ioIUinTUeR|kP6SR`hp&d*hp+h@3nS>7Q;1m)%w1bHx zbZ7^slF;BCw2__}q}R_$q$i6en_w~tecr(o68gM@sU$Rp2d9zH7#>U`p)ov|PP%uu z;U+kpgckDP4ALEco@;^`q+4ia&4duaEq0CZu;@6P}M5k^y5`weJ*^Ran$ZH~n~3SV>Da{diSaW=l8ycvWb4mTvm-s<0%N zZu;@6&Ub^YWt3u_pbkmPlg_XZ_(~nn$v4C{bk5`2zYw4yR zuL?ES(oH{J6($POO+Q|^9G7nT@v5;_mu~v;sxiRin;Zy6MNO#`HkC>Bp)tEC#H~o0ksArdM`thnUlaOxu@v1SfkZ$_%sxi%wZu;@6Q3)^I^y5{d zFJ8Lo$E(I5M7rt6tHzW>a`fX>V}v3(`tho&P+Xhcmq#rMwbV!bVyc!HeBu7794JIa%qaUvZ z7k|mok5{vAZkr$9CEFP*zKVA(aPIC0))ja`fZX;EqIc^yAgwc13dZIz2fk}?~8xF`MNBynE{7Q1v-`dr$xQf)@+CP6YQ<3^xi_w?lsK2%Aj~%E; z{jGg}+FV8IZ!M-~lB53CVx%TH>TfOPZIYw@)?&ydIqGjX0h1i{w+`bm$x(mnFgugn zKKVbe4udtxQGdg!o8+j!;Ydz$)ZaSvR!ffhTZi$Mo6yi z9QC&jMcR_1{??&oTXNLjI*iyPNBynC{7rJy-*7l5IqGj6n!P1Q{jI|wPjb}XI&^|d zj`~}N!f?q^f9udDE;;IN9Y%tZqyE;Rhg@>h-#UyBB}e_O!_-W2)ZaSPn@f)RTZajo zrkmKIqGj6CU=sf{?=ivCpqeG9h%xDNBylsjl1Nizjf$% zmt1eYz9@i~9QC&j?eLPL{??&7UUJmmI!qHKNByls>Ad8qzjbJ&mmKxC4ueR^QGe?& zrIZ}?w+==3lB53Ceels7-JVAMt=lB)6sf;;pC3F_k@{Qr)d>p}slRpKUA9?~`dhcX zvr>`zTVJp`rAYm)mqe=~^|v0AROzDr)?>^nUDV(DUFOeJr2f|Te{i)T^|yY{w+1Rw zf9r?rxj~Wo8%}eji~3uC#JP*~DD}4Tms-Uky>D{??xt%vYrT)?;KU zUDV(DOQwuer2f`pyeeJP-+IhmrHlGokHM^TQGe@i{%M&a^|$_xJ)?@$-+Ih+rHlGo zkAbgrQGe?(4VEtIZ#_oE(nbBP#~fL@sK50XGD{crw;mH{>7xGDV>~Tg)Zh9)U0SV3 z{jGl?l~JVr)?>0QUDV(DwO>wDr2f{w?XOUz{)R(w>7xGDZ=5_!k5Yf@G18JQ>TmrQ zzZO*{%S!NW zx^t<>PqIaw?`!3mf9^AKb@~re$G>(2^fv$B?2l02gF64=`-kiQAHITr_znJ-1Ht+c z)R_Q>g8CHJs)J%TI{mQ&;vf4R?7jx>h_JgA{_lGa)XVWjkL`thu)o6Ys!(6Y$vt`& zRPdQYI2%$%(^&a&BovL6A4{5Z)>2b`4C#v7#FUR9p>(YLXc9Wd%8w$Ua;*H9B=~8{ zhm%k^R(>Q2?wax=NT?etKb+L1UYqh^B$SPnA4Y=nrufBC^A zG>MfTM1o_d{6G>sI^{!1C<-e-AWva2So!`W`2WlIBfOqg?zjE5i$E-7heoulEd(guqxU>f?Bf-Hv=poXTwXJ5*gCuyp2QAH0SQj|x{*d&X zp)Ii7PUw|T7Fcel_eujkSZK=Y`IUo8wwQ7|_19wu98hh_Yx6&IEOuf0D@oYT?LSHS z%{|+U{}k!=+4>ahY0~_CHyVEx>5BIT8~;zFX}eD}{xgv`{*$vb{mDgoc6;T&a{8lH zn~h&Wg8$#|O}cx&{$_nhw;rv}V)~Nc|M!Ii$G=}ng5%#WBf;_SM@Vq|`%zNUd4cg` zr26U=#@~rF;w^pGIiw>Wsy4n$!cGA{PAdQUa^riXelHC$zE8p~0zb&pv@g!vWc&na ze}0*hS#?Bdy%I+xWYZ;Li7VBaOULjK4bxetf?_3Du*1IVsj-mhtz< z(`nnM7a9K-BvhFC14tjgve5W@lHkYp_ab!_jx_$>q~AU=-}nPbcP-GrXdeQ# z#a$)Fw^y6ug3~UzO8+8zB~m(PLcQ_rRZ0o&e1Cs_-)YfB#zodakWHDc!l#FymY0Qo=3*->RAtGM9X-cuGib@~s*wRlT~__`H5j9o0SC z`1abW$BwzCpYiQ=SLv|BCmY{hla&r~^i{FfYo%c9aO2x+xso$j&$YeI7Z-%-SiaQ& zrFrH07g>E!x@7Gv<6G@e8Z%CRYhGWbj3^mke0%NDV@M72?RBZRAWRtZ?KMjY;bgwO zo)s5_@oN6q{3|_ac}oAjaU=w@`AsAwzWL20B+L0Nd1@;?#29~ko=$ybn!aKukaiiQ z=jFsaO+{WcOpR{cq&0UhHzGbjvUFcbQ9? z|Kl{{UroB?I(?0y3Y7o|?D6sDJxSq)i9v-@br^t@ZxRq$hqZG5#$iY}xm3B_RvI zUr4%b^+4m_Mq1FJXX$p*H7B^nzk`Hy0)G){#+{YMzms&@xtooD7pd{BImZ7DspcU) zyNgN3O`T@^yGcil5aZuN+JCj4&)<>|_uwxfAq&E9Cm|@pzn4^eS77{Pp2D;WKSla> z?;_)OkdTq#cajjG;ipMYrDqsFLqZaVpCx5JUSj+%5&}Q`90_S4em4m*BmR9P#F_Z_ zlP12r$oLPCjxW=5y_AH|6#sXmgU)X?{)41}15?I-h_vfFdajq{X&e$^{D(>13-qsj zgmlNZ`p$ZkgcursIq9sYml^-}q`kVjjsF;_-vs@wAJ5ZR_5Hu#+Mes*9sk{N26mi*9cN(28Q5_KcASBK zy)zKr8x<9VfmE(tZ7Gf1IMKLvwWWmBfooS=N?0AZcD1GCT|dCMcD1F1ge=#twv>7W zQRCXxR#8Eit>xO)mJ(J6u3c>@JzurbxOTOrv}(`E#<5Ev4%(n`vCT+ET)b z!?mj|r7I3vZd|+CQko;J#cD1F1^^R*-TS{2(xOTOrwDZC9jB8h0 zO7YUc#X7S6fQYzVw`N?P^O2 zYcJQXwv@2;a_wqMY59rEjB8h0N)HVkZ(O_DQo6r%yK(JmO9`tq*RHmduu607YD)>L zG}o@Sl<)>Dtwn5>|JvU2Q2LVbZm$Ev1WY zoNQdX+EPL`rE6DPN;8k?Hm+T5DIwL;wX3cFi@kRbvwCd*{;y`gxn{1}td-VBYxxYR z5JCtcG;OAhHZxN*l_pXlgb+dq-R=-VH{FB~W^HHfCLtstgb>0Ygb+dqzw>>4=KUPc z@q3Qvc%I|;dye1l_#Suux$oCG)2y{VYpu_DUf1Vd{H@1bjOu%h zg!QWLbrL*PeH%$IT=l&{!n)JYhd5|Bv{h=J|Mxb*0+TOGh5$>BsksrJ|e*e*Y`0A9=W~_5)5>GpOA2_ zs{YxB>3|Bwvu4l>-(I96CmFgq~$Nj`}ZXY=Rv-0q}#?0RKBlBI1loDO}a6E zq4Ir0!s(E2J852aqw;-Ay7YE=-@hYWIIElTeP5RQvHHHt4rP8YpPIMKT9Y!5n7hqF zbD25YOf)0R@p7`ikEt+S%6}~Xtb9}X3+3tZN6VL%|D*i!@^j=|e`NUy<%gEL<(1_* zWj~c|Eql9cU0J4VW!b;vRR4;yS!I*UMwOjd*0-#ttg0+m@6?~`cl3*LrvI3}NB>jL z)932b^r?EFK1}bct94%K&*I4UZt42c_R_~o?=4+adS&T(rBg~rm!4F5c{*9{*r>?UyHXDzgPTn@sq`^#s4n8 zrTA*;cb{53w)m9de#QG2cP%a~+Ew&b(fdWO6s;}_{}<5zZ_IsG+!h|nU6Ol!?j^Z1 zawp^t%RM&tpxo}cWjTN4d@twvZ{$3e)0VR$=gyoPaxTr8nbVY0mvdZBpPXP$d6&Pt z?2tFO^FJN&^muZ_g5xC}@$`6tID66&Pmd>vgDD;H^mu|ewbBt!k0*#DEgkXnc==ss z;=D^oJUyNu4#RZB)8h%^q)bOVJ)R(r(R9Sq;|b!7O-DREo*)k3bi~u+3F354M?5{A zAdc>I#M9#m;#^NhJUyNu4*hh*)8plPzG6D!>G1?{T&N?S9#0Twi8|ux@dRp zPY|b&I^yZ^1aU;EBc2{l5a*XV;_2}Oak!}?o*qvSC!adv>G1?{EUF`(9#0TwraI#3 z@dR<8sw18rPY|cAI^yZ^1aTCrBc2{l5a+Zy;_2}OafquUo*qvSC%ii1>G1?{{44(% zzV-6IIzm036(Q&d^>|i=pd-}dSs8+kP>*MI2s%PNp0!QU5$f@*5hWr!Ezx1>@oL}teS;wNc(p%v>=dLP&zipIF!gxW!$*gy#~Tbui4IebHyD}{ z9i|@7TKwoR^>~A8j_oTyr5yaF!gwY>)Y4MFH?_ajec~P zdc46?3g*jCsmB|9-epS!smB{Ucijj<>hT6&S1osjF!gwY7ar3hNIl+Q7-8x#^>~Bt zZk;1YJ)X6~)M4uJtP80QQ;#<|K5L--GWB?a)3?j_C`>(`H6qnv>hT7z%g1MfdOT}( zqr=qWS=TQerXFwb$1mWsK|P*z0n=gX@vIG)4pWb39XfTGdc46qPs3+}dc48ET|ZQi zdc47ZJ%Nu3^?26LQ-`U?vxc5JOg-L^Zs*{WGo({(Yb`x>crX!;V>(<*9B?TATC(E zTktp{tjKiuSR$N9b@&+KzYd%w*q?acXng99CO&j&55c2|@F~^dBZ-Nx`wR9X!nah1 zk03rb86U#KiEu8};lqfqMAPBE#4pa;D0nClrf52R2obJmI(#q@wrD!srxUF&nhqaC zEV-m!etIAg&S*M(05R~@Ou^nnIHl=uFCwhcblA(kd0mDcFbN+*FaHW2a_we8FaHW2 z@mN1WFaHW2|1&;yUj7w4rTb7pFaHX{%ut8D{3{6ORvq^8ui%W{8w9=lD+sq%9rp6C z;3fBV2zvQf@P_i8f?oa=gkh@=d-+!oe!n{G^YX7Cd=_=s%fEt~=OhKa{3{6GMIH9? zui&@kJp{e{EBIr-`GQ{l6@>Mo4tx1maQ8L%n0fg(uZy)})L}3G3KqP&Lw@SzUqM(i z>adr81uLDEf`y&$@36gRv$Tr`F9u`8+9x5?=V<4>Q?68VenNy%)i54 zXc{0tW&R!Z^3_WPnSY1DW>~i}{|7IZe{)*4wppT%KSTgd@(*M%)i6onz-lu zAKL!^Zi%$#|L(a0d#=EqE3oGZ?70GauE2lT72w$j215FNAfYSD_ah0TBz-@TFlW-Y zlQis@{>t|=2@@)PzmU*P<@=R{*_OUtq<;6WSH9m!2ac;yzTZjC$8xgv2MJwRzTG5r zVfp?f6%1aae1CP49n`I#*z99N$W2kp!`Lorw?AB{Kcg9!rsbXLW-=Kt^B1V%t!TW()~jwDSsL1 zo*Je64=(*%D)c@Gj{zh zX}`#7<*y-y7Pct=z9fw9_3uZ5+o8V)DR2D}<=?-P>_lLHPtxyKY*GGRB+L@__a=Q) zv|jlSAi?|4e;^5NhyH^|Zw%e7{C!C9KJ*_beMxXa^dClo z6Qcic5=Jrmk04=Av%en+zKH%KNtp2LKZ*pGME}vG1;tC1zds3{iT-0q@J#d{OM+*j z|2Psn6a527a7pwZPl8LL{{#|T68$HV;F9PcNPtW!yiUgnn}W2ok&&{Ub@}ME8#( zp-tU?DhWO8{?R13zWT?I(EaWoOG0bBe;f&Y^Zt4gn(F-xBy`;S8%b!#_m3x`SKmK@ zghqaU6A4}Z{$>&^0Q?h4@CWcuBEdYsKbZt)0sm8z&mh4E!9R@zlLY^nBseJer;}i>;GaQ)_kw>W3C0Zmvq*4l@SjbBrGx(*68s+g zvq&(5@SjV9Q-uFK5^N;==a)%_$MNu<^Z%mLi^dfVDmt>LXVG3oMTNf=eqH#1%sG6j zFj9Db;o`z;3NI`?qp-fPw(zLJUWMHXi)9|bHw9Y?UM+aKAX>1z;I@Km3oa^{R?tu| zxZr4+A`mDj$^RpNd;W*{ujN0JAIpCr|MvXr^5^8ADf1A9oYpaKKVA@S)H>$v#|v7+l9;z2FKA6i zV%~ndpmiCEdHeB#);J{Q?Z*pRr;wPpA1`Q~LSo*2yr6XoiFy0+g4PQp=IzG|S}%~8 zw;wNPy+C5#e!QUd0*QJ1@q*S1B*}btA1{ckqNCn^ydYAJj(Yp?g2+cY>g~r1B3bFEw;wNvOs1pW ze!L*efOXW{j~7JN(@}3fUJxl!N4@=cLF7vv_4eZhkxX^e+m9DS-qlfWKVA?iT1UP8 zctQ9Y>!`OMFNjpHquzeJAnE`e_4eZhQ8MVLw;wMEFJ&F|_TvRnZ0M-BA1{cyL`S{- zctKb+>!`OMFNhjON4@=cL6|%1sJ9<4h?Z*qkr&>q7{dhr?d^+mw#|xq!)KPCgUJ%8ij(Yp?f~YHX z)Z332MA50E-hR9wT(x!7+m9DSxvHbye!L)RSsnHE;{{RZ>ZrFLFNk_sN4@=cK@`(E z>g~r1!lgk+z5RGWECO`Y+m9E->On`n{dhqvEp*h|j~9OlI78^Dw;wNv1&fY)`|*NU z&FHANA1{a{l8$=&@q$=)>8Q6KFNj5%j(Yp?f^a_2QExw95W+Vd_4eZhp^?*3Z$DlT zh6+0B?Z*p3U8keoe!L)rcslCs#|uKwr=#9}yddO+I_mAm3);E#QExv!ze~NHJRkM; z;{~C0)KPCgUJ$K%I_mAm3!;xtN4@=cK{Wa4sJ9<4Xa~_pkGAJaf@lxa(W8jy9n{ey ziFVX{v|lGSpzBaak0ADzmP8#roQQr!9X*U_C%{Mh64B|XqlXgF2C1Wm5benK=)pug zr#;$-XlJcQ4(K*=Q2grX0Yp1KJ=&WHRk4otB0_+yqdkdsUV3zYA|%f`+Jk6k zo=5lVL~qD>bYG$!R35D%+Ck+}muLr-NB1E@=B=Y4;t8S;*U=ym;&C1APK3@}NB1T| zgs!6w5n6T~4Gy6irGXIW8m$!~G|BgosxQ;Uajz@pE zjxzsx6SJetzqYenN0@)TA=nY-UvCI@g!y*@8rF4$`Pa_G))D4k+v=_(%)ia(gVzz} z-)1z)>j?92Gdk#Xg!#7_?e#js{M(G)dmUl^ZAN3hjxhf=qibJBn17qm(yt@Tzs>0P z*AeF5W|#r!2=i|P)r z5xxdG!u&fCrUyF0{5uhj2s*<2I}vsXI>P*Gy%cnW`PUjP=m_)gWVkTs2=nh`STyJe z^Y3K%H|PlSuQhkj5$0d({GcPuzb&wZ&=Ka}7I;SJ2=i|X3?+1g`L_jb6FS2DYpp1B zg!y+Wd@6K=`PZ6Q=m_(#b-2(G=HD}5f1xAHzh}T3Lr0i@&wz1;jxhgPR}CFu{P*G{Wx@l`PZ6t=m_(#b@I>==3i^`p(D({)&oRGn18K7h>kG-TK5ngVg9w&B09qS zYkfy_g!$K+lIRHYuXQZZ5$0cOXQCs_zt-zSN0@)D5sHp5|5}$69bx{p7AiWz{A>MH zbcFfWny=^x^RIPg(GlifYulnD%)i#tMMs!_t>KG~F#lRN7#(5$wN^1Y!u)G}WORi2 z*P6`e2=lLXpwSWLUu#dJBh0_nyGBQtf32~NjxhgP*Bc#S{P*G{c?1K`F94) zbaaII*E;R!2=ng@*zo8G^RM;j(GlifYv7|J%)i#%M@N`{XTbVLN0@(Sz!ykIn15%$ zG)PC7e`ml^XwUlpzkvS#|K$2V!F=qAtP;$}p2#Y}eC&y=63oY*$ST2n?8&GS%*UQk zD#3g_%qpW2%*UQGD$acDDWl@d$DT4O&V1}?pW@8Np7trueC%nT;>^dM_9@PM>}j9k z%*USgDb9RsM{4Rg^RXv|iZdVAVW_5#Gaq}(s5tYnr;Lg-AA8EEIP-BGMsVsl^Kl(! zaOybov8S7gGauJs3a5@UAA2&YIP-BGrqt><^Kl)<)ap3%v7MZ(^c& z>)!1rzs!8>Nx$OE$DZ^n&V1}izv9ftbsx-LA^(>7*i(YVnUC$LTODUUuEVTb9cMoF zbYgMl<2p>c)p6!yPc{~3KK5i|apq$?@K(o}kB4L8t&TGvd!n*9^Rb;8tmDkbp2jTB zeC%n=;>^dM#w^Z!>}ky6%*UR_EY5uFY0Tox$DXJx&V1~N%Hqt&o~SI&d~8)@I?jAN z9K&~YocY)rG7@J#_J)kanUC#+P#tGJ_GXU6nUB4hBXQ>A;TRdJ{dm~8V%*Wmck~s6RH-aS2eC&-Ni8CL2BS_-R$KD8%IPRc{*gF@mxiGOUuS7ZN9^ah2*dl2oQkobN? zJ18W+FVRj0iPsSAD3G{Iw9`G}`w;Cok9dfP`J_4?Bw{S5j&~>8=^pXDiFUe2+#%X= z9`OLt&hLnKBii{L@x6$4U`MT2Mb|gorMBFGyi(iJ>ty2c37&8GymGDggVCj z>&^a%G5?OlR45%|{`F>m#F&3aVxE+aG5?ONJx4x-G3H-yGDwX1*P9FyWBwh98CE*R z{5ui@u5^s~cO<4?=@|2`H#a0Ur}J8Qb3kTN0G5?Ol95fwc{`KaS#F&4*c_lICUvFMXjQQ7_R}y3X z_2!ktn18)_B{Ak-Z(d1^`PZ9Q5@Y`L=9R>lf4zAnG3H-yUP+Ak*PB-oWBwh50dzXX z{OgS`i8XY-p`+~hk{I*vD9p9fG3MV!7v$__V)G5?OT z(@bK_zoYCllNj^wC_Bw0#{4_#q~}}YPci?FveQgr%)g`TG?N(f?m#F&3i#e|NM;(E1F{Qv*gKKuE%2f}3cA=9GIukn>4=ze-zA;atd;u?3H@X4CK8&< z+_yLik{y}n-bcdf#J!({p@!~q5(Xf;50J2aavvmN?4tWnC)p*QyMlxPmF~kN zOs{kwA>F^Pynm09FeKAmNy0!)_pwg0{pmH`I?0Ysa_=HxCX;(N2@|Q@rTlkjWUtwa zKf_=ocL@m-m)tu$$##^w?~~AO>V7~vcBEYSEu+fwEJLb^nnuials=*)I^k!GFRTe-iH(8TTjPC7kj zwsQXG^Na$p*$t9u9 zy(W)@9{8I4P8x#d`kDgLJHN<0lR^^O@@tAnFJ8A&)fAJ$&&$M(5)!-sYD!6P6{yjq z;olUgnlch>5o*dw2j_LD8bj*!k<59iAO&yRplT{f<)N&qsUqdRsZ>pMCs|L28XpOU z4>f+$*H!&gP1jDcGr-(Cl*+lC8FkP9?zsa0|6c)qTHl^4-`fBQ4k|ScskK(71no_F zbRYTNb|*dXn@kr9lHlo56Cz!?UB0*bkl+SWCPcRYw2E0f)LZagoJ((_fpcj-Gh`n zmjr#Mdl?B@Q1@~Ygre>hB=m&1^GMK?x>u5*KXtDnL7eJdO@ffsolkZ(1+nJB%u$({YNL+Ie+d=BuI+gf0Cd# zb{CP*8{pndg1Xwhg#^XFdn*Zwe|IqnihuVu5{68=x1;}mTkh!paR2}RQ?vd4_gCC@ zn%}z4J%wBH|ChTD|FeCI|8a-o|F#42-*!g0SJJt2f;|-Mr5u>kUABMz+kagW|Ly;u0ZFvYevawt_t#AIYU*>R6*V=r~m$qRzcn?ttKhRd!-dD1$nQuYNjCXmDAt( zXrT)7UTJkuLEbB;zj)3Z7395g`g672RFL<|>4`VES0j~K-}fc+vZX4>d*$@b``vb^mfZ)6}*?U@z{PUxQz6|xARo+-=sA!%BSu=(v!>As^I;k^yM>E za5*VnuT}5?QtQDn6?~BNK*uf>e2BDc)iM=aLAra%KoxwLbo;qmRqzqg%|jNd;G-nW zEeozBUHkh+6?}|@DQ3aPNpmCeX?=op(T%HBu$6S))D{&Clg>IWPX!~SX}*;z7$u$d z-3S$ok(yrIp@MNz{R2x>FhM%?ivB9tM#2oWV3JgO$b1z{kuXs$m?j4t~;so-0rYvyfM!A+z~`?@OlHtE9R zwJP`yY1U^mRq$QXjHk2;ZYG_6S4;)pBTb%NuY&KBCJfu9f*+8^?YB$?w~$8uIZy>Z zBn^FMs|tQZIwiJH1wSU8a8n-@>>%}cxkUv(A?>pwPX#|EIajV!!Ouwk@gr1lE2*?( zi3)z+NoV|V_k0!ng7ib(dKLVVw7thH72HPp8pa@lQ1_hxPug#AfMJBNcVkSq=G+^{`GXL3jRb| zvUIcx?j+qbe5nflOqzb8PX&J=P3@Ld!Cy&Z9$uk>yGTPOY*)eGNXP4bD)>9;=+8H+ z;2)%Jf6F_)n^e3=-pxNrdDG?H{Hv2r-}zG?75tm@{f3Pyq)4C7@1{asNFN;0qCz<& z`M{}AE@|TzD^)0u^vaqMDwI!J_pco)R6u(6q9rO+NJ^;rDpW*zv~9f#6_frwqe6vB zNJ|GMRj8D7hciKiH0ioW2dPjQ>9XcUDpXDy-K$lF3~69;sR~t)`t03Xg(^ukugzAW zDpL2AJ{77aVeVtdM=B~`p+f#nn!4-W#VXX5^w9@vRcJ2~CPaq1kzUw)mkI?)&-}bh zg&fiollrL8-lW@>$+hlIy7mCMo>Osn{l54$xCr$Z#yIkv@q~BlItwOy>Ki|Jxg?f{|=p)bN z0MZ+GbXTDRNiPnbra}jiR{z$jLVZY?x8!*qOiHxwRG~vi;Tz;xA4*!;GC+m;lJ2Ws zphAa{?pU`$g$^g(vV67*9YMPK;7Kafk92vVyqiao=5(x3p`%D=-?3eVjwZDX>8C>d zNfX`8Ds&8K^d?t@jwKDgai$6#M>=V$R-pl;qkZ)%bUf*>Z+EHC38X$RE>ocsN&8;D zRfPtUg7phk=p<6NL;9%D$)xJSjVg2ssqB+EDl~{x^kg>`s_mrH{yMKkg$9#;8=9v= zLr6PoR;tiY(szH1P@!R@uQu&ap*qsm$PyJAPWpIZe-#=*dVlH`6&gu;`?&ckG>Wv* z-$R8?CB3kImI{p~t$DCQg~pJcydtSWV@c_T2`V&>6hCCQ3e}TZi47J=snB@RvO5>4&;;oJKkV}Me^UQ{b#a%X?~6VZ_y6{yM~m((x~}MgqA5iqi;gQg zKsx{P3x6v7r0{j=`+uVFUxhaoUMyYzV+v0!Jh*Ug>G}V);PZmF3Z9jY|9=b$$7)2$G=yeKQA};2kG#CHTTKf$8zr$hyROmr{pMWxT>Oe*0fn^ z86rPj+)tGq)XlV6br~YKOP5bvZ`!QD43R&d6>Z+*eNCIym`UXHy{^fs((huX&C1LW zK^D+g_cv`;X@&@LM#ZV}cdXb9k;6_}pv)JeO`Fx5A#&7=4yCv3GHq6Jh6wUbFA1g~k1QkiylEtQN6eLoJpkb`+M|q`IoQ4Q$n6fM7v8+A~ z5mY>7hi@}&R-%T;?0;@hrYUCHtV#`$ixa(-IajW{6{;bE-ZL|GzG<^sHAJrdt3y?6 zmWY+BA#(lx160{QEvC&X)(}A*R{6sk(`H3$h^#1`rpg~trp@Zs5JAOfzH?2Rm98Oz z`p{I%-?8d7M85c|LX~$cHEmYFCXs0seRrseo8)(_h7FMecC1z=y4)Pydi>BQTf2xrp;>J5W$Md zyjWq{tn3XDthmgR@_Y{I{QOK?d;S7dk-ylqS@9cw2P?MfCfBrC{Tm`!-`U5q5;#P# z{wrJA&9qq+93ogrn%6o^n-#)ItI&4Ka^triZEnws6J;sJ?RIUFKbLzi!sZ>3el zA%c~ppD~dw|`v_*& z5W#Lp*?vP!o7Ko6^1VArRXo+(v{{*)MC_i7eJrb#Lj*I`O=h-fvtl_!u%}}ll1I0C zIYhAkWERRbw30bQuv=yCQC2mF2==z@_uUHT5W(blbJRl9X0>yOVBgFvnrqtj>U?+X zzM5&1-|5N-rq7o@C|BOk$dy})ZPXXJr?op*^cMqZvVO__^} zOq*t8Q&K(~MqXDbBN(bu_RcQTR?-+3S(@%6vN0v=uRefhqPLRmcdY zqL{Dcl@>69!6@Z{7Soo`2xg;{-!6}y#|Xxw*zajBBiC)HS7pyEG;KMIU`R^&O)E`X z7e*f4EZyr zOYJ_ZMT(rbf;jYhNfwFAiKF~;1TP~_Ubs+jF42xJNnA>_6G;-65bX$(#KpwNUz8M_ zm_xKPM-mqi?aYzHg+x1ZByj=pvvVcMCT0`2EfLjv;(X$_tCk9$N8D97TJT)rp9i-J z&g#U$diff`bBJ~#N#bmxok)^6i`czdS~e0hi8zhbi5bKr-&!s>orrT>oj8+Ncdn?% z6Si)V>+B6EN!X$Vh~r_MuoVl?juA=Nas{~TO-URHTdM$ZTCEedPyym7TPJLl0>nAD zPS_F!_+)mMpsi1UYd)54h=eUpfE&lo6ttBI5a;JQVapQW`}ezowk82?{bsYEEl7Zn zhUkQ?Mu6YRO+mtw4a#s_29*KY;sYdkfmy1866M zBy8aUJbDb?Ut4tmp^woCTXFy!kH#B1qVuv3v6Dd(w%EW=TNccfpV~?TXeWatY?%SH zlR*-;#sJ#MAPHMw0Ixn9@2{;cfOZr}!j=}mTRu$6PijdD?lUE4Z zA^`|dmQL6T0cZzyBy4#Av;#X5wl)Al&!rQ#FaSdAr4zO)0NVK-30o2XAtBQVTMq!C zFVhKI3;^x?j)biQfKaCCge?PrcAQ7T)&M{|zawD_03ZZ!I$^Uv(2ny+*whcS<2({J z?*pNn(+QjOfiHEzXTxTEpq<~5u<0IX2X-WEt_Obk<$C#Lo9Ka%^67-l@<2PVBVkj# zpf{l-Ve>oCj^s$#Sk+4Y|XlHOFYz7BHL9G)ueFGt()(M-tfp$Vi!X|E@9lDXQSsQ4F zZX|5V23|WIpDUZMfzVj%giY2!NT+qeW@;dG)jDC*G!UX|ov=9?xUA z%og*q$;$M=&8&_h#9evPju7nfN!iYi{RS2vB0l~lGS}~mqD@856~&~he^Jrp zMKg;U#nbO_QOuVY?iNSC&4ud z&vlrTy(1t30~oVUHld|^(M83+MrAqFTh`lu+^4$UJRYiEAN!hyt zB0r7pp(^6DP0HRN5P^A&{X6y^fykfB#9Z@}#U^EM6B3!2^L&3*dVPPBvUdtZ3cp&S zDgyF+?9BoZ*vwRpS!z=Det}5UQ6p4U{|b|`w+uw~nzT}tEs|$w?;417zb;QzZJ2LT z_Qruo&0{U9^4^UmW$zt`z_A7k!j!#zAac+z-Bi&?iP$>`B8PRKqbd)SS88t}h*)Er z1BRNEy^kOQZyOZ-DSInHWZU>9 z&&Fq$s)}*)3=0@}`^%lGVxvUz8Tp`mv?@7Au5%tEpHD1O6}QNHn#;&f|6*c~+50Ud>2I?N;TtEH=rj7}>9vd^>xiwY{H_+0ynvA<7s(=Rr)!e48OdI~R+V2R&-r{to_a(! z8Rh$)Jdcq#Ph4z2&&hKc*|JDJW54t_$ytp2ap7$58lKY`ncT0NY(M=i&*yAL?);&@ zGH1#aJByL!$M3M8@Z?NJqVYVt>`%_ZdCrp!I~I9jpq*H}hy^nxv_ed$nfx5RsEd&<-v^LK+7Dy+$3umY4~04w6dL%9K;BYz)JJv(NAFn zM`YOSPM*xjnddI{p3g~);7|=4cFBQ^oWDwHxQ-5!JdqI`!}&|HCV2uQIHoJ^=9=X3 zjNlj#+q=mDj4T+JRb5?qUB@xR`!&4hxN~t4YSs$s{ElQ z$@*ssj$F$JO)yE;KU3ampR207%2j3kGv$MiH>u(~<*Ks&nes_NU+?d*{+WV7u3zunS6TnG1X_EjlB?y> zS^u0BC#rmh^&OvKc*{Fdg$@-_|o^v{LCF`G-6`9T6XN>iaH7T^2i1kkkBnefw zD3fIU)AIDCD^z*@W|L(7)AIa%%5I(}S^u=W`gK<6oc<=s`lsc?$s1JFDeFy=^-s&E z3wo=v*L#~J>z|e{A77x#w~sb$tbbazZ|qRz_w_Yxtbba5_;rA)7~WypSpQ6gpu*q? ziuKRbg2k=2hHPW~GZhky@_UAwHr78=D?XHrkH=#DGqr2(8dZ6cY&Wz1v8Ign;DPne z)cr5nq|DDdOxq=$cZsQxde~zs)<0AGeI<3BRNZZ?f2KklQa&YS+F1WgJ@KgJHp8~D z{+T*x(r#~Ko%PSuaU11uORBFn)<07x{4z^bbjWjN{WJB9Q+jyY->iS8UYM4;W%5$f z#`UGJLQsK9;{+S9fP5I~w)5iK|>ZV(@s(eQti}lac_fj)e<<$N-|KGFz z|1YrqPxE`#2v=d>%~_M?_p0%NXJnga`%;tU_o@+A!=-z#F=>9U8t3Urs`~EbCe80v z<28rN-66Hjr1`z_9Em00r1`yS{O8rO*Emofi{C42Q|vo*mr3(`Wu1y~cS!SlWzCBH zQXZxGy=q+EP3|Clb&<&8@2By$L4G@0B$}u3Wd?r1`yST)Y1?<#XkC_`Pa;Y4{pdbg*0>ey=& z8F#%j*Ae>P5vTM6bB4ZgDw6#T*9y-*d$1qY?BKtl|!39 zR7UE@&#^L%^e9G}uH2|9PpB~Ik&K+SqK~S+b)!j-VC0OK<(?}!GCiD;nLDb0Av?6ktG}jg5(|w1k>e{6yJ%G>f$wsL>@I5__ zkry7Cq|D+LlRlOa7<59MNh{}`e;VpAF#o$E7C_X z^6?qH?cPxONJhSjcG#VTbU#MEduM>Ex=>!}5sdt_TlSCe=!Y}%+rDxqxnDl3hcWWk zFsWB$MVIc|8JUoKzSJvcbeQy^j1=7^D~%o-P5KZOK%rxl(7&&bHHk-xMy%{;``$4K=n`_d&7&+;< z-FBUm?#T$;%TaBo_h)2uw8HK_q`9t`(D1hGEJy{D=DNa~oL5)L^WnN;!kI&5XJJr< zNpoE>;q3Fa*p*nC>xv2I-zhcCv9nE@>k8|RUUK7Tljgc&!eyWAu=Q@5>xv1tT+w2M zQR(h{hIc%$+WX6UGqQAjH@h>Hb{KicC;JGpo0bkRvhuh--eAe_P zy=j?UbEdm8^6c-sRH>5d>}TY~ntD~aaHvW97}+o+X7|(6)r`Dxo_q&ompNU<$U94< zT9SRbbR{DntXiweUl?f86^wLz;wpWU{ElJdi^6%Ta+XBO8Tsbm&8qUv`6gY)$d3Ac zc8@8o8TtA0#j51<3X?8n5MexeJdIN4SDopMoN4lRj8IvLJ=e8*h$KF z+Gdk3WW?8!RleT6O}c=Qz>Pj-=C3j7d`3cH*%3HT9-Zrorv2X9VC8{nt}B{)|1RIk zx8&X7x}xb2cY!K9Sw3T2S2P_lxIxV%QmlWP#vUx+Q|$b*{%IONPId(5EjB6E zKTVS^TcdopEjKCFKTT7YcUNU!%g!(BpQh>S=Gt{&iuF&^Iomg>sm?vqrN?~gVq);~@646aZWo0ggs>z}6kXUY0x z?JkpI{nNDKcFFin5@G$*^jN#BSjKdi6ziX+$j9@&zs&llDVe{;$`w-=r^>?{O^WqT)8?uc?`p9AY5K7LYNgMKnH1}vrcbAIlQDWTO^WqT)0fxJQB|A! zn-uGxrtMG2o#fy0d|3Z9{qUx&vP5!~V*S(f%dUm0bj4hgV*S&!JG52lr?Mu+`lq=| ztz>-31u51)%?0Ny^R6N5pXSorcB$%<Uz37AJ#wK;0f7_NwNNEKJ>nMs`xL7u>NW8w|28CzF?P0vHod3 z=9_+YrI2F%(|ls(V((S3{;@MG?DvB8PxG+ThFXzhiuF(Ps0AzR>M_Oor+M5HN>#0v z&kyUL<_T|1vXyX(^-uHUU!?}XX(H>N<}*S*Rnd2$NwNNEo;hf?&B7_xKh5W!y+KuM zkSoUer}@I$daKGWicE_2PxGaj1xg<&-wW11&GSC&P(=lDeJHLB~)^4eMdG(T~4ckgVB^^YC-QF4X6gRFn-)DN5iq*(tnuX?<%s-82~q*(tn zKeKU>z4ND7|1_`tMJk8k@^@JOG`}2_oemM?rda>j0U~9SJ4}l8kDVb>^5Du6S^r;M zT>c;4|KEAYzUP1TT!B4TV9yoUa|QNXfjw8?Kky3J-pJA}XF>NLxRQjvfWTEG^bG{A zCZVq&FrS3JgTOT;^d$tYC82L2a2*MK4S@wD^gRTwC!sGQa03Z_6M-8^=&J}UB%$vj z@DCFDG6FYs(oFPi1pY}vUq@gO34I@dn@Q*k3EVwA68cI4i#urs`c4A3ktRuB zO5k=9`c?vWkkHo>Skg(;(f1O#lZ3vQz+EKx(FE=$p|2*el!U&Uz`sc7%L&{=Lf=l{ zUK09x0?SC~`w9G;gubA_eI$6f1n%!7+gB7=PD0;N-~kf)k^&Es(6He@C84h@5F?@QED$H5FD;NDp>HkFMnYd(AW1^sTOdV3UtAzfLf>2NGc@p{>18Yg>dknllLSJNH9SMDtffq^Ws|>6sq3<&A5(#~oftN|>+YG!yLSJWK z0||YffmccB3k|$RLf>fMbrSkY0~<-`I}NtvoF8R_!Z2M*d?~>408`w-j-)-PM68drj?~~BC8~A{PzTUtV68e4vACk})9QcTY zzTv>fB=i*rIy%Yr9S1%kp)Wb`DG7bcfzL?jYYuEB;V?V!ISGf|fiFln3=e!s!eMz} z8wrQ$fv-q7Y!7@*!eM;i8xjud1KUYB%ny7^!eM{lI}*eIf$vEW3j}tMASMX>K!VsH z@FNLgguqWEh!p}mNf0vxekMWe5cq`zF+|{35++y%c9FV@m?H2S31W-D?<9yZ0)OmT z|4ZM%f9HSqA6WG4dC7aOz@96x=L+n(0(-8&fA|$(Z3HoE;LlF7V%NZ5B#2=Hf0H1V zbrcC=TBi#MVp}JN1Tn6YOM+O}$s<9`>*SLl_H_zKm{{%JH;f3jhzw_ z#K=x531VeOlOSex%1979JLM#Zp&dhlSlX!|K}_vbk|4Hrsz?xHJJlpiVRw8ah`Aj< z2?N`mt|W-ToxMm9i#y#&5R*Fr62#_?LxLFH*_#Bhy3?HmF}o8aLG12?NC6SUJNu9z zmUmnd#Pm)L31WL^UlPRl&VHR_#rjSU62$z@{v?R~ot`8#130}%XclmKlh91y96&;| zfpZ`U%?QpxBs42HeMo3#a1JJ+*}*x4gk}imP!gIYoW3M9Q#gl_&}`uxPC_$=a|8*^ z8cshFnmL>!Noe+Pjv}EM#5tOTW)Y`93C$$VF(fpbILDIEjN%+eLbHl9fP`ii=XesD zU7Qn0Xohi4B%xWx8Aw7ijdKzS%{I=-BsAkVr;yOB;|wC9na8Omq1ne7OhPk|GlYa@ zA!jHF%|y;H5}J*iIue?ZoZ%!iD>)-bXl8OolF;nrj3S{K$~l#UW+`Vh3C&c_7!sPT zoUtS{V>#nUXx4J-JIVUoISnKxCXmof<}{JeZ00nR(2V9xB%xW& znM6V}n=_e&W;f?F5}M(hDI_$@IV~hK(>YT~Xtr}sC!rb7IfH~|J!cvT&3w+8BsBXu z(@AIsbY^tYWHbvpGf8MBbj~87+0Z$ggl0tNoKBjAW<_Tf3C)boxg<0@I_Htl4C$Ot zLbIeZn}lXc=K>O%Eu9NVXvTCdBB5E+nL|P|r*kn0&7RIBBs7CMmy*yd>dYmfnbf(A zgl1FcauS+Roh$a}|No2h|7WSI8G`{6=<&`{S2O0MuG>}R;S)@jx|%Ul{*>Nq(VSUCkH_&M5n0smW4TGX_I9U=f$4u4YW)^i8T_%1o1` zu4W9zbW{u&XtLDRjCuC$ZC0_9rLJZS275qLou#g33WatCpW07V zKDy9ksVg3P{f&#gcbU54u{VW9zb$56S?Y?%F8O_hD*kMs$@b=>-%}%fV$#i??ZwFb zLne9ePESTwoSU^>m)ZRpd2ESKRc)MUvOO4ytdic4M~0g0evGtrY*6U?$nMKXd!Z;r zr6Vp|!^qPI%jZyfsK^D8)W3obvsqr znK6^?&d9spj#kyP$N5-v;L@p{rLK6KTQEVD z-yjj{ipTBWCuw`&v(y!jJ8)d*w~4yqafem+%|Tg?Z3@j%E(=Fm#M1TwwcT&jNE&l^sb98G;=W{%U`Hh1tlFO zGl!9fzlkY0CS)#Rmv;42)eE|r40XlhUJr?O^l$kc>Was08YH@O zu^7xyS3K^$bB3zQOmCB+u6W!>x2;fBUv4&;nSAumvPzkkcbUu#Mz(z<_aE_s$xLVD zyS%KbnkcXROh$e>$Y=XhGt(H^HD(+rLa|R=SUb?~NugvM4k@}qbdaJUiJj1Ds z6t0!~kMxCRS{Tt^cPQVleNAQxBUP0HR9UG!=hGP3>u9kvX=dc0H$waM*99b%{nh+CNOeTaE+?iDzAM! zBgYNuuB!fMF_}h22A)0F`}8(2QoDGQs-7p0Ue8Efrmuq8WM&*Ar+&CdRemb3eJmpl zxzZ&oUGbSQj5Hr8y=nVqO@_MS`YEHAtEzZ!lR1^YGwqVywpS%XU2*+c|DK>qM##US zuDJfZ=aZ`NU!zTiy5jnazOJz5pc(3l>o2RAr7DjaXfo6l*I#widh6Yjp{}_8y2+wc zU)tAXSpU@D{MZ)josnVvQ-Ax${x*YTSpU@D{mT;DN04FtQ~&SoJ8Yj$hV@VVgQtv8 zdqw7(4C|lzN6%Vm9UL;Of9hKo=c($+MJB`gr#_yReinRpSpU?gx2#tA*UI%_{Zs$! z0drL83ENDD^-uk}Q>D7NVXn!r{;7ZE5>cU_vD9Q(|I}|>CcYT=tuYzaKlN`vw^jLj zR+tRypZfQ|lAafLxyi8pssH@QU8?HD4wGU1Q~&iOsW;>)chSpPKi?!Cfx zres+EG#q@YcwU?+p9I!F4ToPWE=37tGOT|Zj=ndmO0OAhGOT|Z20Z6e#m5ab8P-1y zCvBUp${OXWvi@lpQog~v1F-&S7&CE!Rq|(8|1>mS(_!;hhV@Uw#FYb7`9=LrhV@Uw znLBr?ic2<|4C|kUbM_u>J2*0|e;Q_=)M{;yGpv6aE}mJW^dxyctbZCVzeQ@2bL6VB z{%N>6xkgnN%6q~3r{Sh9Qkl<|$721{aBHtk-e-*UPs5T?eQm#LhV@UwefLOZF5Tl9 z);|qx{U&&KE!IB`+2*8m4$83pX?W@y`Q}Q$eTMZHz~GB0x?x}iTo?pKaD306q&-oqfLhOPva@mXQ~Q+Uz1_|(>Qd|TI(8+Vg1uM zvQ55&R}`5H>z~H4?@2ZvHPED4|1^&Od$VV&&%I)1@>HlJy&4Q75I<80z4amnWu9l31*+pRV0{!I#-im7V69=!A#V- zh6J-w=h{x12s2XWIuguEodqPAnL5{#V0P-nb0Z06sm?+Y%v7C!kYKjz+(d#I ztMgA1%vzmAB$&B6HfAzt8LV?F31+d*ViL?`o!dw-n{{p{!Hm|qg9Ni$X9)>r zw$7a-nB6*ekzj`F+)aX6uCtT`GhOFjB$(|w_mE)5>)cC%S+BE<1T$af-z1p*I`@%a z2JGBVf?2S$oCGsr=K&JThMfmVFe7#zBEhWKSwVuCvGXtqX2;GWB$y#PkCI@P?5yl0 zYo_cxMuOS0^Ee4+%+3=em^C}CB$zonVG_)qod^kL&`y*DvuGzq+H}@#<-|#^pR!yz z2@;xyoi-Ahik&10O~+1(gr;OCO-fz2Nw#rGvB`6llO>_)*=Z-CDcV^@TK@Gkqux?cU~l+sohymLesnR5(!Q5&dVe;%{#A<&{XeiAPqWtyK-J7p()>a zjfAFs=XDaA`kjp=H2phokoF(5Ryl8yU>e}OMS`h-vxx-L0q1QJObMKKNH8sM-X+1* zz}ZZK>4EcJCs|Vj=Y0}P6Pyo7Fja82kYKvtd`N;RgYyvyrVY-=B$zrl9VD1OIG>PU z3gLW8f@y^F840Em&Q=mkC!EhoFr{$5Ai=c4`H}=v3uhY%rWejvB$#42Uz1>(;e11a zsfM$i1k(-YTM|q;obO05?Qp&)!PLXqL4xUr^8*Q{AkL2@n1(n%kzgv~>?FZ-#QB*7 zQxfMF5=={+Ur8`EadweldgA;>f+>pgI|-&K&L4Zu|No1e|F7b{TJ7nPt*ZKo-ewi| z)oL%S*=1emS8-ph7NdsXp1O+rYPIvu6PF`7mtMtvwc2a$)XG15s9D8*wb~n=ls({~ z1I;S#tJVJVleNk$k>BCITJ3E`u61)+#eKC}%rUAoea$NFtJU6HzuBHouHwF0EruKA z|6`X~#eKEfhad3Hu2*qit@iO3#R<8eye{sm)keRQU19N0Ud4U2T8u%0JIE^TtJSVL zPO0j97n)VvSF6QrB$@ro;2;#7@5{*i&cxXpTWpkh{wanY(U;sytI(#Z*SF z+`iJDgtWIXvhbJ|?{!UK-pnZl-A; z%?RdW!HKQ?R7Nl&3o4KHQH<<7O-_pH2b%VgjQn=}P*t|K{N)jh{Pn~Nr7xAgJiIev zXKUdu(O$<$(Jpa64J|b7!x+K9Ex7Nt4`l>1x1c0yAHoR6Zoy-+eJ~@KyjA|Hd@^ep z>GhE~pNZn8eGnrD=XI#^E;~&7DU4u17sfrdpUenmbm4Tp{Uk;PT)NYqGqew61cSRU z0J8l=MjDS^qsq=&YT8d=1mnAKF5P}SBbeZY@qz6;SF}UC;1Ar+b45GHtL!7WK0H^n zqr7k?*3NUqA(sytWX}WJd9G;ZdqLCD&U3{f3l@up>+&_Go#%>n=ocnIwDVli&iyL= zYqV+a$7hJqUzH#AH|<9-a^L9n_8hqVa7G@ww1>SLw;#p`CWP60LSIJ0&u_8raqWjP z^3+i~tRA8L5JsN+zu3F`Fe}IZUHsR~teIIebIq&}(%ri6wU%|0gped5RAy?bsd;Fg znyFDU6Cnv9Bq4+lLI@#*5aw~MSu-Jo5JCtcgph==-{*a;bAOM$f5+bY`2CLKxBc;% z&p+Sqt31@2(Rn|-uk$^r(ChJPK8!ztU1B|tmEU`R{s`8I?X_q?p!rb#h__Mffysg9 ze*BU5cD1Q}_sC~>2!CXAu$S6jBBQx4f5clncKgae^TGU)ucmMCW_g+q;*Wf{xWD(F zs@dg_U_TjFFg8c|BUn*}M(*YV`6Jj;hWBR8k>rnfi^}#sV^g3x%pdV~l}T1MhxjAe z7nFFrA(|cjNMPA&ukX6q=8yF3lJ~$<<)0Jej~wt#qxpC7y`s10tjGMtfo8r}^j4jr zjl7xf74r|Np6hjIHuJq={^9dCc`JLH`Cc*q=tl>d?-ssS^me4}bKlHBGv6!bpYZE; zZ^o^e?-lb;?US!^bSTiw>mP5G8rC#6^ZLhZQ^TJCy#DbPs$mmEGp~QVooai%x;oIz z>mRdL?MnG4^ZF-$#<;%TYSLz2|9H#Q@OHhK*FWBVHLQSb=JikhC7naPHc>Uw;X+z&fj{IKW(Q@cPGF=hkz+ z3N-Wj$J^+JwX99N{_&Q&_1G&v(8TMX{5KBX<4puK@%qPG?Uwca!ax(RfAT-RTmE~O zE6*lg|9Jb}di*IZ|fWWq;2B$kGJ@(=c)4oO}zfe-*d%a zm3748KohTjylrrM4;U6`;`L8K#_Q5REIpJ>y#Dc4#P#@5{$0HODcGyGOqspZE6~L2 zA8%0{c0V=o`p4T9=S`>b`o~)rhkm;zUjGyvb8vre7Nd#RKLta^EcAMUn|S?GF#Ik_ zYD|^#`p4TOhd<|=c>Uw8i^BrrCSLy(%=$&%@h+0Ti`PHiS~#@OHSzk#TlSXMF25dL z{}kL`*yMF6Hu3tW;NkORE?Bk(H1YbUV0C=G*Dcz_>z{&GFJJ04ZZ`4yr{K+pB%2=H z7HH!2Pr+aR4De=ont1&)DtFd!?=5{3uYX1z|Jpn+znXacGpcB+{Q3OJyg(DLe?~p> zllG>2nt1&)>em7Chia+(zIgpJ>YqzxhD+{cnt1&)y6z}cg-?ZAyagR&>**o^$^EY|Ba+-MkGw!a}XRE-d9)Tua|BQ=$AoqG9`C9P$r|9Ot z*Ld3pnt1(F^y&(^7R7%}y#6VA^EIE!ZIxd$uYZa@+`kPAjJx0ecfbGtkALmc{Q-1; z0^OfL_b1T(3H*nD0(>`u()r$hQ7EPF{Wpcu`riLgD7Ci~h0=Q~g+eL5l}e#B-%6uU zs&DxylMmIhck6qX8Dn!?fnE0@Aj z0xOTg(gG_$ZTT#utR57W9$0%(Sc+inO<`$*wGV}*3RX`FOBbwtDJ*5M_M@=0!P=j~ zQU|LSg{2SH0Th-(SiLDMjj${VOC_v6)Qz%q!U|GYN@3a5?A9g9awsgdutF4;URYsj znk>bzB2?v{>y&jMg{2x+l)};t%cZcC!#aq<(hlojYS53vmDQKR(hutp3QIw(eiW95 zScg(rDq{7guyn*ajKWe9>u?H7OROU(EH$wPBsCFBPpl&;EJd-7qOdf@I-0^#6>A{% zjVxWUj-jxW#TrCmX^V9%g{3amU5X+Vb;qcXvQD9HIZ(cLPo)<9)u^oD6qfE-BPcB8u|`r@+GCwY zVX2RmPhshgRX|}WkTr_J(jaRzg{4APA%&$w)))#)iL9{{mKIs#C@eLyiYP2Svc^+b zieycour$dkrm$4WDxt7+$ttC=l*uZiu(ZjVNMWgyRZd~)lT|@sDU?-7VQG|AMPaFw zRZU^(lr@RMQYx#4!qO_MHYsnZl{J~d(kp8Ug{4?l9fhS?*6Gx?BeyAQDutz6)-(!B zxvY8$OS`NF>Yb%?l+{RK>6bN~!cs8n3<^ubtTUeN zZq^(MOW&-EC@h7uE~cEZ(8#y9PYHPq;UAtT0r4&sC5;E!=u*K6b_eK z*HAcoYAvL2IMuqA!r@ixItqtdt?MZqezg`+I2>!;K;iJLbz@TA;ack^3Wsm4#S{+b zS~pWTyldS;;c%~YD}}?q))ESbgRR>r93HlAr*OE~x`V>uV{0je!^zg26b>(2cTqUp zY~4-a@Uyjy!r^G^9twx2t$V49<#4riABDr$)^ZAmv#t9n9NxAbpm4a`dXU25Z)*jG z!{OFL6b_GD4^uc?ZaqTb@VT{;!r^r5Q3{9Gt;Z-FZnqw%aQNL?MfL5wLRn8xI6QAX zN#St4^%RA}_tt6(hx4tcDIDIno}qBK-+DGF@9@91hC(@j^&Exr0PA@QlDf}tT!l>YglhmDBrL)P$=iH-l9<6VZBYE+{1c@LivZakwQ6$^)7|-5bHe(njT7GS=4=%4e)?6v}C=Zzz=4Sl?18x3RvX zP<~@=r%;Y#eNUl0$NGUnxsLTCh4LM12ZeGT>n953J=V_@%6+U~D3t$LJ1LX{S-(;! z53+VqC>OGRqfkC%?WRypWc^N|yvX{4Lb;LU&Hw+9@{5eF1~vy?m5!;014{z)12Y3P zfpLLhfg=Nvz&-(A-miII<-MP`F0VQ7vAnzU7Uf-SDY-}IMsxSg&CtK;ZTbWKs&3V*^ga4UeYu{g zr|1d#R6S6;dOw|+vpeUToDXwe%W2DbBIn+mn{wvmoSRdZQ=BtA=a`&>a`w;hXaAo4 zZT3gm>$BUlpUl25dvW#^*|V}w&o0Rxkv%B;;Ot)6Sy_K%eV4U4>-DTy)>B!_vu@6s zpLJf=)U491ky*!P_02jUE8G94f4l!<{~P|ef3^R9|1JJ2{j>ek{AK>r{Db|6_4vpKbyWH{kHV0(=SYKOs_~Em41AB z|MXybp6?&u4&P_Kw|!l{HNJ;@xBIT~&GAk5Rr*HzhWZZk*}i~JrTvuldD=T^Ytx=f zdpPZmw1sIGrJa#hl~$N`LfYYJPFjz&l+>S7zewGf`eN$ysgI;CO}#et;?y%!t5e6M zo|t+>YAAKD)KvN6{*V9DZQdAIRz^zQM@LUqy3Lyb1F=FxOPP&INe6#izd`9%Z~6<| z`AdJHH~J+!-B&+M=*@kBS&Nnly`e9#*FUR;-ozJp?3bH_-nbWtttPtFoAm;*@>3(*-_R-bd&Sbb(DPq{6M$o8|)BUmGCwM!7(2jM1&$92dB5|7}8VhzrDa8Qtnl zaDne%w@2uWZ-JYiE*E;UTi|E!uMv8KTj2KS452r*1^zT@ozNTE0{^^Yp3s}u5>Cy@ zULy2{wZMHR77D#dEwJ~cD}~;e7U-<-3B4IDF#4)|xm&#fE%3za`U}13ED%d~bgMU- z1?IoERp`xSfmqO^TfLzy5Zilnt2dDaVzrNM^~SNlNi$1?-Ygb~H9)%68^i(|+O^P| z!UAV}(J1sru)tYaYlYtY6^MmGy44%L0djn%SZSnN zy@4z6_WkmO-n12X_s|tWZ`2CJHYDBZ%~^q1m84s}AuI5)r<#P`gcZ1E&rG2=UIk*y zl5X{8t3a$^(yjT)|Bj}DH0t2mYPH5hNBp>DJ*Swm|9DQ^{>}{lZho z?;n^dJemA?U59WO`P+~9_C6`eX;?O;TTdi2>jnrX%?!~KN^lQ*2UPaf9wDFP79g84Qj7OA@jE(yGFi6 zTbREMfd%p{+QR&8uzy=DWd1fpgWHA7--bhm=L?y?4TqnxLdg7WIQnKKWd1f_8=-Dt z{x)D$p>ARRHjF7+FJ%5UOuT1-konti?xZ3i^S9xGD_04bzYUi><`*)58|H18DrEjP zT(zr1$oy?se5!n3wJ?7hZkxVQ$oy@%Yw-Xf^S5Ee=50deZ^L70!-dS>hBf2l`>KWc z+t7SLxsdtWum5oB?Z{yfE)(V-wjm5u)gv{T@(;Ej0nZJ#5QdS6= zzm4<9RtuTGjf?K?DP;aO-kg{zWd1fT%j+v-{x)Kfrfy;WHa=XrMacYZeEf=`LgsJd z>PMCenZJ$Cy}nb({B3O6StMlsHg@#JcOCP$@x_zK5kjbSz%gEzIBPOQ)?BGJmH(@XTBx^LP3)?qVVH zcRH56>K5kjbZmmvEzIBPSQD#TZ2p?DLpIRjQuVk+&N6#hj2}65U7PALaAu&zi(~vq{*S%9(-19Q zBI8HK?mJuU_vWTRixcYwc;|Uryj;eQl-J3BjAyRK`Trd$@~{0V@Oj{!z}mob z@&w?Hz{0>qfinVCfx^HEfx`n%phqAj@8`TP@;2tZnD>0%BY8{nuFbnR@65dFyfJwv z<{gn2%G)b1HTRd?t-0^!zLfhy?#kRdbFa(2BzH#cq};K&C*=;v4d?Eio2GZ_FZFx+ zW!Q4Fny$s=zX*==hvLCa^BBbm(!f{SkB!!i*hc_IXkB|rzq#- zoTG9M%;}kvp1mvk>+DV0uVlAmKc2lT`-bexvd_t$oIO7Kl`JPB6CpY!I`}>voik3 z_%35}#_JiejHfb|XWX1IKjXZNsTrjiBQuW8=$mmsMt1t2>D$vkPJbgkp1wN${`6bY zuS}nvJ}td0{j~JK>4&8EPS5e}@qO?6#P_DJ!}qlB0pG2@1-|or^}dO|eBW`tem={m z)BZ~PA??$&4QYwAXVM-_TatEF+68G1Y2|4JX+zQuP3x1EoBDU^kEvTy-%9OFeKvJP z>TRi4r(T%am|BrKD)so({;9##yp(_B3!MC)Zf6)*q8diGGmI8D9#+4|Q(d`W5 zN;J;sc7|~!>S%O3!?+3^H@cl+T!jK0-OezsLOYIbXBbzZI!CuNjH}SHquUwARjA<6 z?F{28wDstAhH(|Dd~`d*xC*U5x}9NMg-RgZ&M>Y*UyyER7+0Z8NVhYLtI#y0+Zo1H zmE%f;4C5-a66tn^aTO|ybUVYi3VlYponc&svLoHjFs?!ql5S@hSD_|Jw=;~ZF00xk zWEfYWQc1TnjH}SMq}v(BRX4n`UC1!5LN}9cXBby4wd7Bnc7}1)J*Oxk!?+41Pr999 zT!jWG-OezsLOqmjXBbzZJ4&}RjH?o37YG@~RcM{k?F{3p*X|xFWEfYWp-Q(ijH^&z zrP~?CRp_?T?F{3pEdy5x8OBxU!P4yvkYQXs^y{dQVO)Jm?mQvGxcaoC zHwziY)!5jg+Zo2ySm&bK8OGIBuNMj##?@H;qT3n9)z}N8+Zo2ySQ?|-8OGJvD5KjM z#?|NF&`ZcLuEzEm-OezszWjp?LWXfQHr42MhH*94*ywhKaW!__=yry2H5TCLc7}2F zop&x1GK{P5jqesRjH@5~szk^zuEr`I-Oezs#-1JB&M>a-Tt8RHFs^?2=S@O}arNs5 z3>11{EDva^v9U+Ddr1sposVw!Vi^4HpK76(!QfABlh6xba93eZp_jhGN$K&vLN9v3 z9ywctUhaa2ytYc{g)VsN^>c(hla~mS#%#j3=sx6xzZVJjCd;GSgnN;bMh_SEAnVRu zE)0+jckB`7kuzfD!d&v)t!spuyf6pfqB-Q;BWDP+$*V7m3bV-TSIiUo$;Gd37G{#z znWWn@$h-GnB1|W-UrD$7$cLsD3e(8Pu3ITgC9#@Gx2KS6-k&T~WbroBZunEj*9hv!hYS{H;mdZ>^B|Ta$T0NXY!H(WlQ9GJk9Kx^|P0 z`CGH!>VZP$Z;kcdVj=UlCbVa}kojA4(1H0v=5NiR1uKNi-x@h@D`fuG9CLfMkoj9P zq^(KF{H;0Zi=IN}Z_T)}zCz}24Hj?dHs)_l#RFS}%-@=tSB46izcr`-xKzmet(m^> zP9gKR1{=L}8}qkj&b59a^S1`uzjRx5@`J6J|89qn`CEfcVY-d^TXREXj*$6VgB@eK zt(<@FvfCC3nZGsnw{8rZe#w|VqKqZWB%4+v!8Ao%)b|F|8yJkw-y@$bsO`ycD5`N)NRb)T5KBBZOq?V ztRd8G%->qqpUbkuFk-&!nx)NRb)TI`V2ZOq?VET7bE%->pUrqpfBUvF)tZe#vV z#!gG!#{8X(^`5$o`8yeVNOc?Yck*vR{1%wMQ?Mgdw=sXGV4b{fWByLTj(Xk3{GEbz z_PUMvJ7xYMg~C3`uhEp7mrWKjf2TZN-CxN3of7|bnUMKAt4EZhmiSO_gV)&XXbC+hObr%nZI>10;00hR;cZ%c`EI8 zUnIRpda7@y?bg1^rrO3Qi$veOCIs^c#JJzRL7vzDC~#a;JWaZ@DkS z*E3aW*yLHq(%gr0*W_%Hrx!bQs_)6vA5!fE z7iQm{c2L^Dv{TZG(rVIX=y^E! zp#;dih{``@g>vUmW2P(RUPw*2sam-gP!pePQttUw_2!<+ot>2TkjypnH1cafA(v}r z`9vt=a?PBd2t{13nE@1?d~cC*&3vHf+84@|drR`4=~Y{~H&dv!au-u~_M4$xGes$X zAL^{!8~JmnvT|=o%6r7;nrR;SJn?wXHIqIWDc&oP;5qX38qBZI|C|5Ie?#xvHY?Xm z0m;7s4NY_jc$yW@OZ0_ph-!~FDE|~x$hpt(=TIN#KAqHQs91B& z^rigD@WLk8;QgEkZ*zi;6khcNr&D+j6g-2%OQPVJ6y6{OXHa;(6g;nE{kv^?CR0P_CII6x~qUrd%_fD7xk9UdlC-i=syy`R~ZgKZ;h3 zkpGU%Y@`Tver_}W4IQ7BDEE2(%J2dzIE}*FsbGCl)A7tXXj6C~9dsx>tqz7LJjxD+ zDLm&6MkqW44<1P233)I|;qiIUrSNP$co2mL@4ju;k<1s zIFQ2Ykl-;C-jxIgQFxIOJeI;+mf&CtuV8}5QFuQS975scP4IXMZ+3!1DZKUxoEnEO;7) zw`Re73a`|H1r*-51xHbM85bN);Z0qzkiu)c;1~+;_=008yZ{W2qwsbxSVZB~VQ@T! z_lm&@NqH|FgT)lyNCrzNysiwEQh1jcETizEGdPjLThL&+C;1Z^#eD8n6e{@K1xa~j zd+wDKiuT<36bkg*D=3ubx$`I|uvWR3Q_(^4r`u)O2dTXO`ZL`7Ir%dSFKB}m6yDwj zD=EC%4OUTj?;EV9@KQK9iNYJ>U=4-W$-!C*@0x>?DZGddPNDFYI#@^H6?X7+3h%dr zQ*%yK{r>A${lEMFyuVNW1VgE-`zD2IR(E|;UfHC3JB6Z2_crSCGnOlN359}5_f`t^ zj_!3-=cGdAUQ40Y(OpQP($T$!LRF)Cby6d*+(&+{lR`c%LPv%2jRido&Z zq)uzd-fFezfA?wp-~2iLI#ERHcJbHQ>&%(TT}h$P)P00PnW_6Qg(6e;AqwTA z?!DCby{0Pn9tt(2?lKA$r0(4m>POwXsA-RFRPLSB8E*|x?o#TU-xewN4hm(S?xLi; zdP3KH4@%xP-za~j`Ti8e)@)O*`Q8C=VewzHJc;(FQClrdA-H$1h zGP|286f(OXQK(*aKTOIiS$035P_XQ7qEMymzE7b>*?o^fg|hoDh5BT7BZcZ@_ZlA8{-Pb5oBD=3r zC_i@BQ7ArkU#8B!Xo+%PO3JIWbZ1c4A0waHnG~ul-7~1$=F9iebn32^@(DIl_er6p z+d!@ORX)#p>M=_`&uJ7&EZwQ{U)2Bn=cjz#XZ*QLxj!WTO0N#x{hmSKgqbchRHdZu)S!tKM5q0ql~y><{H` zJC?UP?*X~Xyjt!y&yc&$v2yo$R9;l>o&C9g$er{ja!=ivyGHJam&%>-+}yL}etUx4 zcMp>L@7}pu|1J09pUZvuOEL%WnB1q{sORZfa&KHF_sB!!UfGs==G2^>axc9p=T$ik z@TAwH_|#}I$%ZG?Q%lk;|p)@)Y4Rd74m{S|U#_2Fo*)KJxhIzyB}gng9O( zcK<*BA3lNPe_ag|F6^tq%+`kdelt~=x!Z86ucrz#lf7ZYF#ip~FmN?{*{>S4KtIy(cduh+M5dw^Xj=CL&ISvd;K||maFhv{HI{PIQ%w+;o~r`E9xxnNaq2M)9p?2V|YBwr1d7t!%X367&{L$p{HRcJQDRT52eDqBAA9r z_b{&(reO>|%qxj$n2`_jDq|W3=)=4MnTF~5@Q=x_%Cy(^*`&fdC=B9cM8W3!hcXWn-Kn!!oh{` z9tx)#!hcaX@(});!g+}BKNJp2L==US6p<7P$1EbL6wY8o(kL9zi1;X+-iV}AINA}( zpm6RZl1brENW@R!#7HEI!eNt0HieTYksJ!gR3e(f8J0*c6%OxFkvs~gUm^htM`I#A zD4d&#?3L71oUw`QP2p%yWFP8{wxKH0lfoIH$i5T~5JmQ*o_epRitJC}tWl&Fg=0#Q z11Owfiu9&%z$s!;IQ#{}=guO1sevcVR*^%fLw2;ONIwe4*&>HhIO`Va zPxTnELq!gw(zgy)k;5s~zF9?%NXk1w7a2h9Iyb5!M^ZR!7deW;NxaC>)K`D^P?3QY z4(&ybp>U!vGKj))zsRxF+f$dT$Y2WR1|!E&I8+!JLgB<=D-+vatejRl95xXi#IJ$k>S+&&-7K15!B4< z*Q>}#>da{~Rpc}ZCom)V6pm*`3aF}|t5swag_E3-(Ny8(`6^OKopRJ-6&XX}L}+9z zh2x@;anw=qxhhgb9d>6(MaENoXRTF{2~^%QyH%u^!U@$#NmAZv)<`LZqpp!M>Z7A4 ztH?y^J$Wx0DW~ubHBv#naL{HIsianY7*&xf3NLOW)zre*m#fGmYWml6RHTNQnvkz; zEmb;JzJ8Ob(JAuvn?fCb<4_f;qXso>QIXTBBTrtSB2y{6pN>qU_P?S@Md~TM_l`7B zsoUi1(3sSezY^P3WIFXtU-_)hpth!lROC$RgXbDmWCr!z%B?DL7PWf*LKQii!W;a^ zIn=|)Y*3Mz)ct|kDsnD$_c!u&m_=PPZl#KxM`21JGMlwjopqCZ zRW76&r_WQ7IaE!bbt-ZZRlaM6id;+;Z;-FpCDhnQ*Qm%`s^H3U6}gl;X^?z1FQYKs z5V@RkFW9Ie^C+vId~L6w_Dkzfk@-}QkEg20l@vxMA`6o8#w#LMQQJ3cQIV^u&lmJn zk!z@rC#_eJg%qYVBG*!D`fXQ{>!|x~mapdZ)NRAps>mX0vE8U5H+0Yc|A)>0$2pHz zin%D@DtWj&mNb6cs!=&Uw62^z-OA=kZD}mhv7Q=R961ntgPf z^LV8TK9b3(IOp+7(E_C7oX0CgMUakj9o%fwEc^LVA`8q)Ex$qA*> z2NN>D6X!f$>B_H{3ptNh`ed#QS;aYzSBlmm9p^k=DJqS0ob!04=sVJJ&f}G$3`xg1 zk5~Hg>+6J^$16o~l8$p8uk`KSGW-+gJYFeEmUNu+c%_>g1`9clSBgR=9p^k==~vJ0 z5ON-`6je?-&Urkq^-0G$k5`7eC>`fKUKzTibe!{eWvHFfan9qFp`l90IgeL{`YIjg zJYE^Pt#q98cx5LJ(?ZVUm7x_&$2pHzhRQ4*=R95+`m}VM^LS+_+tP8)wJySB7p|9p^k=8ESBKobz~P z=*ZP^&f}G#Kv%~(k5`6vT^;8)7SwEeEa@UPht_TgNUX(UPrWb4gTa>)0ja<6kTmUQD8HTgNUU(Z#J}b4V0* z>)3^4$E8Ym0g1wI9Xp>y8@P_mCQ%ixW9N}uuU#OVMSdeC<2rUOi3V~Vn@OUcT*uBK z(Os@%XD3;XnsXgHi$n*yj?Ex*+olT7B+-|yV`q>kQ`fQSB%0QBtdT?wyN)%GL-$=S ztS3?Ku4B_kG{5WER1&rDI(9mV&UhVT{+3UUM1{=X@@e_=gv{S^RMG1g^S2y5^*YA< zEk}vHjxm4B(QvP0%-{0M{e?p2Z~215<-0w`{4Kw>)F)*AmZK|Q$C$t6DALz4=5IM# z_H~T;TYk?EvxUsxa`f}-81uLMi75+(%-`~7uGuPN{+7S+!7h$5H?t zWB!(7V}On^f6K8>K*yNB<=8c#W6a-jEF#b`=5IN+6zCZ9w;U@Bbd331j{OEY#{4bE z@&g@X{+44if{rnN%ds{=$C$s~P6Zuf{+9pqa=!d5^S1)~7j%sITan#U37NkY*xaCF z%-;&Eb9Zv}Qf=os_20_!1kjQLxE-4Qy*{H?%Z2_0kpR$vE(jxm2Lu%JT6n7m-wLe#)-mR91$Kh#81uIR3&VAc`CEZ);yT9st-u;`9b^7hU`M%*F@Gztz+A_e zzZKYZu4ByK3M@j`G3IXtwxsJA^S1&k)OC#cTY+usI>!91z+!eCWByiPYrBpye=D%k zUB{Te71;N#W6a+QEQ8lE=5GZy#p@XJw*qVAb&UC2fgSTY#{8|o0(u=|{#IZ+y^b+| zE3mp=$C$qr*lVw2%-;$uz1K13Z^ibJOvwDL%(;2DkojBLqp3v5{H@&glhs1zZ>5#4h0Nc|(4mb&=5M7teyx!C zTiI_;NXY!HJmTKDLgsJfz_pu%%-_o6z8ffH{#Kr}*J2^_w{rNg+l9>E%7U7FA@jF# z?1B|S=5J;3<4VZGu z2${c?b3fi9Wd2sp_YD;?e=D!)w^Yddtz1;JQ^@?Sy!pZ+IiAM+t-Sr7RYK-(<=t!j zLgsJf@^7aKnZK0}_vjEZe=8q9wvUkcTe*7D93k_!^0_NF3You^EsqTlGJh-M8x{$f zzm;ouZ4)woD_;!`7cze<-#m4>kojA=arz#WomHYX$P3{A^SgL?Oa0Qn_r6?jOiujc zoi*NFo444>ciR8;mivEt`~ClTJO00VkN$st1D||XFDDVQM*iQQmiYhod<9>0C!YpWiyejiFS=2o%WY#8|dSd@ZX{Q{Dkp<_>%i^GRn%*L$>dE6_0sz?m6J*(R&P>n8nr|6H~J^_?H5fd zx`+C*y;?>8qPEJS!M|_jD?L>7JF0$exr%P5s*hN%qTf^FKi{UJKTw5ji&XSS zYVd)5RCEV*)SeC%{fWYI)acLDf!D55(O;-_rTta(Q>y9nUMjkUdh{Hhihf3|$X}_V zpHufm3RUzA>drrRsOVM-t5>66Qa3#{SVh00u3NZSMZc!5s+*^x+o*X%qbm9hb;-W# zRP@`V3KwN;RM9u6xwp#i?@emfX?_*mK%Etm-``tQLC?M_`Zjgy_v=;k9qPFId%mhZc1wOpBvYz=m*rUCmU7tL+b0} zOH}kD>hqqvRdh4;_WfH`^keGvOBSl=CrNp$gbbA_D)%S~ z>z>`CsmJe}soa4SmP5P8P*@)A4x*MFRIS`&Dft6axr3>jKUksMy%qT zeV&-1+)C=>yL%|NirO@LjdH80cgB`0cM|o+!F!Zjlhmkdv*o|yyrd@dJbtB$-b4lV zmFt(qNsa%tRIWpArgj`5*CDr1TiWFM>{jZ%bIMh83H4U~9u>WfdTEbj@$FRGQ;Sse z4(f$#2dL;$>X|zEbK*|wiJ_9ycTxAeGF3(Irf!|PN=27Z*B&7meh+odOu4qXm#Y1% zr;6T36TDH#h{DSF=)=^; zpC+s5Bh;%aiP z>3Qm%^BPt31?r74@|iVJYgLJgHd7Dv?ysUP)NPOSQqflGlCKL@w2hjS5>?T5YT}3M zR5V6SSTjRK<5Ygb8WruJoPirvG?CO;xp`61PU?wm+f}rSdT`l56bC`xEH?1iC+g?oXim6Zp420q@!< zBgLzXv(5d72z_$4x&IKMY|b|KA0jl-+2;O3gqk|r+<%DBVQ1I!pNWDydoqRgJ9`R+ zYCOA+s(4_FvQMW_s%KB7(70z$qfp0Z*Hh@~vl}QB`Pq$>JaSg{bP5%K_8AoV0qrv> zln2@~C^QS&XHlpfw9lr{Nob!#p|H@NNukZqK9@q(p*<_9NqcrQD*HSNC5iTI3Jr?( z`4s9E?F%S$FWMJUC}yZ9kFzi)}6at+2)Q|gtk%J+!2dV zMQWQnVi9^uZF5H~LW!wu?ubQbIJM0ku?Y32wz(q~^~l+xY;#8}LUF2X?ue7Es|Wb4M&f&8uzhh(+jtwap!|2nDgWxg!>#J=QjN z#3EG7+UAZ}gx*=(+!2dVN^6@tVi6i^ZF5H~LY=K`?ubR`y0y(6u?R)Dwz(q~p(WQg zcf=x8=-TFvScHCE+uRY0P`+!MJ7N)Fbn>%6=8i;LkM=U};v2E^%Md&WJ%^k4_#m2U|BNn0c z*fw{>B2*&V=8jl|zGU0n5sOf!Y@0h`5t^25b4M&f4YO_Th(+jVw#^-}2nEizxg!># z-PtyG#2G1G^|Nj6h(*8eoTF@WM=U~Vv~BK)MQD_^%^k4_bZNEdI1l-<8p&{IUmqLBG{T_vGar=D=#pCv-?)m@!u=)Q4=kW^gYDOnGk5_>A zHafw1yaK$`(FxAu72u7JPH-Nt0I!O4g7bIC9og1`Qextav$@kZfYpH6TdZxmh&>ICQUM&X^IPH-M? z6ka{*1n2Qa;k~3za2{_IUSaA4=kZ42O{h+A9&Z$0lj;QL@kZf|s!nhoZxmk4>ICQU zytlSG!Fjw<7^%<+&f|^36opQ39&Z#zEOdhNc%v{Yp%a|P8;#)wo!~s)XiPTf1n2Qa zV`M-lIFC0P^8`ABO8YbjC-q`a`*)8Ne-q<_G z%@uMUZ|urW{4zL?Hx3VZb%OJF9?PzpUeOOvMs z9dRCS{GeCy734hLc)YaG3C`nUT^h?S+$tjpTt(wh0@^zVG%D){}?*Ia@f5JUYBVIF%fnFW)&Gr;{g~y--+3 zp0Z@Ca0+=^>oDPDvhcHI!dh}d=5ApPIq~ok;Uu!UWVNuGoN|d4R+07hHwr7sGhbdS ztRQFp5E7P?7xbJfoJd|WWRtLroHu2lu#~*&n#IBr^13Is3yaB{Hs%YNzY~`Hu|mlF zop4uJ37NkW?mMko$o!qK;;bei^LN6NEi;A8-wDrdSubS%PH4{TD`fsoh#j^-$o!qq zRlG&W{GG7w;-Nz3?}XQvFBLL>C%paAP9gJm!u#JB37NkWKHg`Qkoh~|^C5mA^LN76 zlcx%qzZ14!-63TDPT2L%93k^}!k@oy6f%E{Q$hoT%-`aSk&A@P-{PDZ+l0*D;vTmS z7czf~LmA~l=5Mjve~pm&Tima>hmiSOe8fdFgv{UKf%mNwGJlJYdnqbp{uZCOeV%Y& z@(Wr#eDBRd=5KMqaf5}--{P^gON7kd;^M1z2${dd<*N#X%-`ZkZ?6M{4K`9 zaNWWDEyiwf-NF1V#u{?n!Tc@8j&j|>{4K@;bKSxGEyi|p-NF1Vey(P%kojBOa#cvk z{4K`Pblt)HEyhN5-NF1V#=3Rg!Tc@8E_U6){4K_!cHP1JEyfmi-NF1V#)@~{!Tc?j zF;F4%w;0RebqDje7@OmD2lKZWOXhV4^Vi!zuREB(C7Ej%$j>r=OR&jacQAiTu;yNO zFn>$-KX$2*`CHOw(oP}sw{4FU>+a_fGmQ?l|E@b|eOuwgG$owriyK9Y*`CD?{ zw>^Z+-;#@Z%#h=0%-@pB2CWk^e@hl#IZw#^ExF;*%|hmH$t@cO3z@$qckEgsWd4@i z(`Sc}`CIbH^p!&9Z^^2~J|XkBzL5D_+PCitA@jHN zuyIPr{4G7|{A$(x{vZ8+|JM74?tgFhC(!)~bbkWfpFsB~(ESPg`=0>cjbLS~{UL>Y zuJ%V1mc81WDQtqZKc=uI*8YUT4q5wC3JYfKEfluT+MiKaO>2KnVQ;Pd1%;)y_EriT zZ|yHBti!dxqOdF1{+hxfU3(jaExYzN6jt!s-%{AmYkx;!d9S^l!e(Fl`=q?JzxEFl zb^_Z!Qdk&l@1U?v*#3#as$u(Q3g=GkUnm?(wRciDv1$JJ}S@OFKCf4pTdt!bxi< zm%=e@Cy&AzZ6`qC0JqbF!s%{jFA7J$oxLfX3wQRRaA@4=N#R7fvoD3?=FWZ;&Z0Z} zQ#h#Z^rCQz-8q255qGCIh4b%@m6Ufl-swZ(v;hev7AcYbDCrY6qz;P+m2RH{&=oWAercgZK^rg^B;2c7svcTy_q0hiMltS5o z)1N{Uf^!&!ngr)?3LOg05flm*oBCfIhI0^gfo~z%Y<_rg$fF12!(zM=XeU`70yr!%@)oH6lyP=6Df3JI44mk%y5QL zXwz^`rsSxva!#Sp!{MBolvmQ>45$8BzFj#ZDAap6BPn!$IHyr4266H!w1zkZ)Rxae z${9tWZ^Ri*p^U^Sq|j92jG<6t;*6!xapH`lP=MkTQD{eT##5+HaVAjcRdI?bl&&}> z6dGBaQVMk~P8o$R7iS`cq8F#U`~JWC{{P>&`szxP$({R8Y#3II@2js9y(`GdrKdpb0&qdL}vztCPn8g3N?$) z*-1@A2cvTig@Q(BCWZD!=UnQWr?x0(7PVD+AD#0kltMbQDKthp=ToSYbS|LKHR)VP zp@`C%L!qV8xrjoArE@WbeoN;P3gws1Tnf#Y&ZQJ;Go8yQbZR=6Qz+bY=22+lbgrOK z)#=Qq(BtV`NulJ^SwNuy)VYd6J*aavh3-)28Vbdt&O!>Uqt3MyDoLH|DD;&&*Hb7n zbrw-*I(2TKP=o5+NTDOuxrsu7s)b`5f7ZF1LOHFoj6!p*a}R}DTjyR1owv??6bf;j zpVoEzSnt}LbtE;2!-NbXC;MJVCPW^mBG$q z6#9gn$0?KzJF6%(5j#&%s3~@yq|jmPJVl}4*jY`X{n&Y$LN&7U429lg=UED+%FY@J zjmyq+6zZ6r=P7hGJ1d_p+Vbuky^hqs+^Z7bZFvBqq3_#yjY1i?vz|gzxbr%N8gb_h3LWFln-mJjoedP)$(^?-RF^w%Q|L8! z-l0%>?rfyci0-^gU3}wI<-A9sOWk>&LeaX@J^%m2f7twgmzl@QOz~Eu=`J&mC&b<~ z-DT$SgjlMkyUaYEaQ)32gk~O3h;?kb%go~m-}_{t(9GirvB*t#nRz@Rw!G;sGmj_4 z3OL<(tw?Gy35St39+zF zcbR!SVRnto)pVJ8JYitLT%noA6JigZ?lSXuLM+MCU1lCnhz)wW%go~mv0hJinRz@R zw!`Z#Gmj_4>UiB{=JA9_-z;M`U1lCnh^6zo%go~mv5{VPnRz@RmI3N6Gmj_4ra;|g z=JAABBdEK~Jf0An?sb=$#}ig}Z4sJzJmHjYhYHO+p0J_EQlXj06V4d4Q)uS#gjgJ} zyUaYE5L@MSmzl>CV(qi;GV^#s?1a``W*$#?)vgYqna2}eAM7JE^LRomm)2co9#4qP z)4I#d;|Z~rT6dXwJmG!MFA|!0JRw$C>n<~oCwwezxX{ew37s+B6Hnk=JA9%n|le(Jf3jBz8i#Q9#4oJ z=(@|y;|W9OFBF=2JR$a_>n<~oC&V&!-DT$SgxJEayUaYEaQJ+!bf=le6Jle#?lkjw zLacMwon{_SSYgc-nt427&B>dDW*$%2c;jNBna2~JwPw4}%;O1XeUvXW^LRq6l-HeR z9#4pU^SaZ_;|Z~hUU!;#JRvsK>rOL|C%paZ^+Gd`C&X5J-D&3Wgjjj6JIy?v@Zn1N z=I=D~c*50>EESr0JYmbuBB7bb6L$1oB{cJR!WU2W3(Y*9@YRN?LNkvieDenR_U<(E zc*3m*4-lGpJmKyR`6lc%^LWC)zS<)+^LUvl)BQ)wcU`BM#}npO_7IwRJmLNiuM?Vi zJYk>Lqe3%}Ck+20-*ugJ-gL3>-~%=br;tb1%ePtQWOC4=9l~1j_-6}+HDpm?n{X0Y zdY*jObykzL@eRT%a(2ZqVI_IlL%W3)R;Q8Wb^V1S$w>uj~e}!0YtvgNr3bEf>cbfbaesbCZp~+w27iVn|n*0@F1-tGv`76W@ zcHL?6HzQ>v)~@SLlfOdjUDur^e}!1Qt~*Ws3bA=zcbfbaV)eT2H2Et$^y+OwlfS|N zPYf5D{1p!QeUH%OuW;P0GlV98h1i^~J5Bxyu{vFMn*0@FTe|Kv`76Y_blqw4S9soi zJA@{Gg;@HoJ5BxyFWtUUXeYnEBNrZrZ&8!K^0W8<-d||)SNMptP-ya3xN5{!p~+w2 z^S3M$n*0^MJ7=xXlrji*to0e}&)fjqeSUzrvk0_+~KqEByVce4)wT zj1+HEz3w#mE5veo-D&by7`%DC(B!Z1;7=9^P5ufG^Wm#+@>e+Y!kt2szrxYq`GqEb zg-d)rgeHH5EAN>nH2EuhqHD9zHB>x9W)Ay&Zagvnpw^~V$mP5ugRo9`Ez{1x7{a;nheuW-e$eS{`|g^yWt zgeHH5YZ?a#P5uhIJ{m4G`71V(N( zAvz^>!sM?Ig_AmA@;4);0Bw{yVe(gqs!E+O`71<^rB0aq6{6%)Crthd_dD4qH2Et; zJ*G~W{1u`*QzuOR3f(omgeHH5XkOL{lfOdL!s>*{Um-eUb;9JY5QVZjVe(gqwppDp z`70bQRkS)`@>ht~TAeWYD@3KOPMG`^qVHBGO#TW{hN}}Me}!nu)d`co!n0lv2~GYA z(ZAdM{=fVE|G)XhrTgFA{Rwn`0^OfL_b1T(3H2T=Tiy`b)78~w(UBfQCP+6d`{t9rt<}bLz~W4s;`{rbiSl;+|&7r z!dXz~YYGQNooy6OkviW{IAZF2OX2*f^IcNj;Z$ckg_En!_Y{t`IzLc2^XmLa;Xtgj zgTiT9=O+qBX`P=boU?U)p>PP-*-7DquJbE}&;b;V^oM#=IPV{_D3k$&`cP;J2n8wB2!w139RneULIFW2M4_D^6sAyJ5Q<8m8bbXj^f!bKrBLn=>Q6OF z^F!z`3bhcS!zpw|gpQz4C=nV!p=}~`B!w!9&`}h6Dndt7D6t3)q|k5?I)+01MQ9L( zZj8{e6pAxKgDJFXgpQ+7xe*#dp^qbUJcY83&`=6Z9-$K`)O>_aq|gBpIw>iyAS5)5 zLVHN)WD3Z^Z3txDrNNAqN3)_BQB{a|Dh3jW@2+i|&;aB|^3C;6(;f{-j3(fO* z;Xm8Uh30vDX3FG1?F^xL9xps#Ra9u6#|!PZ=Lya8c;VqAmI%%Bc;V4!?hu;i@xoI+ z^$E@Mcwv6}WTAN;FPt!;m(V{;U#|!5lQYbXf&?~S$QdA#t0=Ng6PdAx9I zYDj3F#|yvdD_`!l=6SsEuf%qtc^;pcQkS|dUud4k3;lU3gywm?aQ`csgywm?u)oz; zXr9Llk34yS&^(V94*GBG-G7{v^Zq~nSGCpd_T1eNLTKh1m#z^)2uVn7?UrqKwX?q} zyR$1vl8}TDLI@#*5JHI4p+o36?flxcGp!Ih#0jB82ub)pAJ=OhpWFBQ{r~&*$JzHk z@7w)0o$OvSyN~9Y=j-u2Z;R62k5`^@`%tC5AFnLwQl_-`n0=F|EpN0Apa%}|acXWZJRJd3>aB|N_)$T^$lE6*fvDOsXCgS_M7oyyb6 z#Y@VR!^wv~$Mbs{xx80YIgEVzn03li$>$?@_J@*xyLz_r6mre-jmneB*INfEPa@y? zexY&**%4i)Jdu3=mOaW7$jvWCl*f~wzQ0;InEc|8-pb?1?V)K(=5OQoV-iZ{Z{yDw zhm_3U#^3Inr)2&{&Fh<$%-?ADtwWT|-)QeaJCw}d=)P5Wi86nq2VS*88P0wgQE$gu zCG$5r_|#cS=5KV^Ed!Oz-{_gE7ATp&(c<^EDw)60vA+*jGJm5L&Qc}wHyRneOUe9= zHr%^P$^4C;_qr&VztNd_>y^yk=-df&mCWDhwR1NqnZMB+A0Mn_{zh+2E>bdoql>=V zu4Mj3@7=Fh$^4BzICQy^`5S%ag*8g%Z}f%t`Y89~wOYMrhLZUkeKpvoWd26m*A7)O zf1~ewwnWMNjsEgoKPB_Gsb|9=CG)pQ7A#aUf1CDucZ8Dp+Y|`wQ8Is<#so2uhGl+53z ziQkqgnZHfZK6oK9f1A!fB}d8pZJK`WWF_;r>5`k)Dw)4cv!Cy)<7v#_rmHs2QZj#= zuG^haGJl&E1O_UZzfHG|(ih>sn7>VTUAR@r{B62#vAziZ#r$nr`sz|8^S9~IExVM= z-=?Q}Rw|jlO)HOFrDXm#y;vzq=5N!>bEYVnzfG?#Td!pPHm!^IS2BN_TK+p%$^30< z-Di`M`P-B^d9afC+w|__MM~yx(}y>1S2BN_K6$QK$^32F`p$CYR6f67?KVp0Z_{`E z>y*sjrkx|#D4D-azh2l!$^32lkL8P9^iV`S4holKI;_aQjLn^SAlfeR7q|-{uofiYl4E z%|j=xQ!;;>N3NW$Wd1gnbZk^If1AsG9i(LbHcvQop_2LATzl3wCG)p=^0X03=5KS; zUCWfr-{z@n_9&UZ%@=(VQ8Is7 zna93aprL~ z`bZ?sJg#nz=?{OLd0c(LcKzXxGmooLWg>CraW#5QB+fjpo_C}Ew8xpp)o4hOIPIX*Zk9VATT#Z&1i8GI@m*1s7-f`w}H5yzb&OEM0y^F+|$JOY5 zkvQ|X8pSXYXC7ChHAdph<7!mONSt|GjlLO)GmooLMk8_NaW$H1B+fjpMvaZcna9=W zxRE&XxEcjG5@Q}$qa8QMw~B=CR+%BQfT24eEL%#yqY; zmyg7l$2BPWkr?y11}#7mV;F^_A|JR~vZaSdvTB*r|h zL1&S~n8!6JG?EzexCU)U5@R0MpbAN1%;OsLBuR{UT!RuNi7}6B(6A&i=5Y<`mn6nK zu0c1G#F)o5C~lG%^SB1BP7-4t*IYQYP02j2K_8UFn8!6Ji;@`gxCTv95@R0Mpk_*9 z%;Oq#P)Uq=T!Vrti7}6B&|W1m=5YI zV$9m)XWM5&#`P9)KIC$SSq)Zt0&coJQC5*tjSNKazNk=REhv13UrE0WkT zB=#CfY!La_lse_nBsL;R>?jiJk|cH{iCsz(8%Sc&lEjW6v4u%uVG=8vB<7LW-z2dC zB$hi#>~IpBpCsmzSPLbw!^kazS1Lm!)=NpuA+d={V$5HEg_XpZzy5wJi7|iuRag>Z z{`z~eB*y&pmuN|h`Rni7k{I*XU&bXd=C8l0OJdAle~p*Kn7{sxFNraK{RLnWWB&TP z!X(E0^%sdrjQQ(tAd?vL*I!R2G3Kwo$xLF*Uw_S+#F)SS4m61|f9tRyO=8Sne|wt5 zn7{sNHHk5Q{k>}vWB&R}*(ApN^*6RjEI)hM{dH~I)Nn7?)JH*MFynfY7y=}Y?ZZejk` zeer=&GJpM*chbWAt^58keYLkRf9rlO)mM89^S9nCX;U(P{l$9H!u+kz|6E_~Ewi&% z!(YNDEzIBgeUH^wdkgco{=kU7+FO{v^@m=qul5$^Z+++qeYLkRfBo%#(!%_$KkA2E zeU$lIKe(^H_*n7{SKFK*OFnZN#uL1|(B`r8Pl zWh%cTtSXci=C8lUP+FM3^;mK!EzI9~Y(SJ2=5IaLBT5VNw;sC_rG@!hkHw18!u+kj zwkn}y{?=m&qqH!8>u+5?Ps#kP$NENTVgA-*x1+Q$f9tXMQCgV4_1Fq2EzI9~tc;Wv z=5IarNlFXzw;rn}rG@!hkG+)A65-Xr(n@Jz{?=oorL-`A>#^=qTA07}*o7%A%-?z} z%9Ix7Z~e#l!P8@S|o09oE5ereJh50)X+ft>4`8yFySEYsd zJ8}BZG9~lZU(hNo%wK<(tF$nG{Uxx{!u*~1=xf{bf6M%x_~d6Jl+53WFCK-L8S{7I z%je)_#{8X_`Zl3t{!V=N6ueZJzY{-MfY%1|cjDIP@!DYiPTUz-p&XKZekcA~oTFs^ zPW)p!UJT6NN!=FX#lZZXl=~W949wq2eUHM^&HSBoaODD%-)orJ*|pGgyEiA;y?6Jn zIXiQ{$k~*W%30feP4{Q=`{w88?aBK#Z%bZB-uk?k^H$_Nkhd`J>f9f4x8}Z=o5+1N zccs36UX*)X?yTJA+(_=2+@ZNg<@V3rJ2$82&po&G{IF+R&o_Fm>iJmD#XWEAIlJf7 zo^?IP^&H;w*q))D`}NH2vAf6i9v}C}^mwbs>K;$_SkmK`9&>w4?=iVYd5;l2PUtb9 z$ALYh`ybtRbpNdT#_q9vH-B*c8F@3hE${YHw{_jxyKV0Fb+=vJ=5$-obxYU6uKl`( zyACP(q415uw!#k!w-x?elvA{KQU9W&iiQ@ADT)*|7tJcVPE%u}d?q{Oj{+$;uwX#J z2?Zkx$_pkJOwSpVGpyjP{IY^f!N>U%3$_>R?tXG%ZsC4~q3*>6b9<%ozs}#)eM0wW zuO7Yn^a^&L*?nI3+jB~DYPv7YnUZr^&itIaa+c-v$m!E{WY@}qTMCvGJXx^1*QQ=y z^x7$1bDr<|ZPz{B^1Joz+918<5E&>ZOR-FlsLaftmOm$dLH@nn+-`%rozbnV+r)0u zWL~d9`OEWP%3qh?p1(QIc@Gypeg8c@5nU={~UQjILLAUD)-3t}D8}+;x4| zj-o|H4;QU0dbKD~^j^`{!ea}E7mh2eE1X(5yYR-s#f6W_?Xpy!ku}{G6t2>rr|kdv zvmm)$&ia4*89f9Tet?hSSYP;l>Yd$fCcK2gp}z2aSrtFhzRra0^hs_P|G-e#PNwAA zvo~QoYm?h$%>HleF=0D#r8@lB-X?6Pu~Y*i(@fY-YN@bXFKnl{RM@Q-wi8~ek$s1l zu$}%=l|^@$u$>H3Vb5OJPL1hzh*OT?2l;j43{lw5@95WwBSc|4+oNA6P7sCd+>Z(e zh{ARzNOfJa{w;RONreT9VLJh(!v4gtosLprePY;7PO0wG3mmpnRjOz2pJBpw;!3|V zoX!kC#OsN}nc=0r^ej0J_y?BrF`P^d{~zICYWQ(JhNGt8$0(dM4L?d#k3+ledv%5M01oeBJ( zYlg0ZfW4mj7>W!6_WM(z@X@MH>y1;h2e z^eaQXLcsoPs?fa{rOYjEOx;DY^rcjJHY4me4OGA*ymjz z!x8U*z1Aw6{|?yaL50KN0s9=OaB@6gpFb6jl?Uu|tHPP{0Ke+;e1Ts&LLdV6TJG6h;KDrqCu4xQ0U2L|`6;9*V%V6iO-r z*HLJ&2wYF0-XbucLia`B1`5R(fg35bW(01cP^l4Ekd@!J5xAK`8Asq23QZk>TPf6d z1Qt^0_z2wQOMfSS@WVDI0dP z8iS3pVLLgjzxB~j5PrgcOn-_|KN7f|LN`g^4hqF3fkhNrO#*jPs5}YWMWGKRa5wdW zmZbz1Q)p5N+(V&eC2%i=4wk@u6bf1bODMFr1n&2xUo|=z!Ye3LGK8O^(8v&eGOJN1 zj$dNJ_Vt_b^G(>!H0$4j zt-|3!d<;v4!*&*0AHz=Ju$_}urJvYo!ghvQzZRSi58I!270!c)?e78=j)RBo?-0#D z<1IB|`};-J{p?*PY=8IY--#8+;bRL|nT7nf(_j7nvsYr&TlJ+TY=494SB;a_VLM~2 z!a?h>oj+E6_Rnc1Y-f{IICUK^<@LnT=YW;nY3FlE8ob4u@OMNtBxe52o%I{bR+us_w zUHlS-@C|(It{eNBu>EbLk1g%Un6Uj#q(Z+!*#4GMpD^o{brL1+ux?D?}q62V1Lu9{&-fuYWrJQUv)2iJ;a1< z%INcebM@hh>{sodqYvB3Z+$G;Wtj=vsc=>M;d@NDEc+)%p-~}hGeG}N6e@&mTBuHc zxXgrYlBjAY_A_CdIjYI?^}lEHNQJ6}uuU%2{o!dQY*S73_~rTvv5BYu3cCH6;U>IK z_P;*n?kfFR*_&E&)h-j>i+X6eKGVIa$5MI)izuwH4i{3-?XOp`fO_fF^(HLTKUZxs z;a>Vv_J7;fmVL}G4+-1fZu(ma-63K7n@_K`EL&&7cW3{k-whJBzcKYORD*=?g4$kir%8-ySyJ}~>(nCKsqP51x`JHo?#saY4#GU5HHEAGpf@O~85 zhlls2ZqDCo!hNzjYun{IyrW|F=6aK=R&jo5c$s#8bLHe%nUsfIZHjM#T@s$=)8Gh+YEuNtr_*NA;TpmJ_r zX~e!)P#w~!pLN;y5vl`*>IY$!{I3`87;5AkD(7+i%xpqdV|GtyGg3wE$nRss-V4m@ zGUoHw>x|fYfvPQfTU%=QC-F{9?7cvJ?7cC?M(n*n72dOny%(s$`#G`q0#&j12OF{X z0#$2onQO$}3sm79fY^J1D!e-odoNIh_Yq>>kE`&GL+pEX72b`AeIKvFI~8f>*NJ~G z%X!pACHe`OegCh2692N6^Z6M5)h+g&v_3XzlYa1K-=(SW?{k^PKZ(yF#J)4q$4+UT zXT-j1QsEN|vG1r<_-sRF@PCKTJ;c8E(#L|mRvWSJ%T)b7j~Kaxe-fXUhS4vN@!wkq6R5&N!Jg*z`|-w~^DS4Ql+Wfkt&h515P=PG=%BKDoTYUYn~jo5efD!J)6pJV6*S%RDM01eXpnTyW8yhK$TzYX5S;K{MI-7{!!&u!rAwhD!)z6 zzVB4|Rde<|smkx6v+q|`eo5WE*=O1o+TBO_ZFlx=Twb;r&)$twefed=$OHV7xSJyn zQhuf0Qp)e!dx-MO_#UQk7eOAO{NBE0)Eld}8F`fQEB+p%{QkekDZd$X{8Gecsj9#0t7j#J&x+(Z%5PJAp28l`8zu)mCs?Wc~$loZx8FDq1e_5rGzf-s~C@*I<>YGIajl4qPGap$);qxH* z2jzEBzDl({qrYEXqx=@jwbbh;>@e~=<@aB{LE)~9yh-7XjjW^a*_8Z~nlnOwPrOB4 z^vgm$4A43M|35bWpX5B=_#H><3n$5WyzxJsGf&BRyz-)bOO>3*EAMm43T0t-3Z?vj z27R$6IgeL<$b!jA&f}Fk&#zT-9$3C`nHpkqZ6oX4v`0gEI!k5_@N7D;d(uL4CblHfdE1zKJt!Fjw2 zRKQ4r^LQ2Lhmi#5@hVUrBMHvqRiIf$64SHKZv|>+B*A&S3Uty)g7bJ4D6EkL=kY4g zW+MsC<5k>QK3vIpyov`O*58f^&f`^}PDc`)$E!fsjwCpbSAilPNpK#o0xdm~;5=Rh zDtsitdAthr`$&TGcoiuBkp$=QD$ooh3C`nHpf*SnoX4v`r;sE#k5_@hAxUr^uL5mE zlHfdE1*(c9!Fjw2^cYEk^LP~~Ig$kD@hZ@OBni&rRs48FA0_AUD$tfB3C`pBRZ5cJ zJYHqjhX?4RoX4v~?UE!ok5`FKCP{D}uM&k#lHfdECEA=M!Fjw&R6R+8^LUl$fs(|y z?DJdcKC@EEdAv$=MoEJ6c$I^Gi7GjdSBZWpNpK#o66I5p;5=R>nyDngdAv&0R!M^M zc$Mh1k_6}RDp7wW3C`nHq8m#RoX4x2RJKgXdA!Q#WqXvI$E!rGmLxcjSBVBLNpK#o z67^h?;5=R>y1OL7dA!Q&>qAP;<5i*qOcI>Ot3*MVBsh;(iS{r_a2~Jnu`^4RoX4v~ z)0iYUk5`ErGD&bAuQGOaM#*`+N|c*Pg7bKlnWYPqoX4v~5t<}8k5`G#G)WxG=Lm&r zk~oG$+nOW>k>6dnN_jMio;FDwMgH;AdgYN>o`Z%rNem?O&X}t_f`!7{ zkt7Z!vCBvjhmdn_k17u)u?0yI{Yb1xlEgtI_9sc=KoZN9Byj+VJxr45OJZe{B=#q< z&q)&dky!R5iG4}zg_1-c5=)~bu@8w2R+3=;p7ZnJIZEd51n)^a`^?`7SfM2e=I;b- z;*tdOcLLUQNrL%10UNy}!Tg<2?+#Wneu;8mIPDWs%-<@k29!ASx2iFeF zV^HGE-zqF1lsNOZ3fl=K&it*y>OzS#f2*+9P~yzrDl9~lIPbeF%TeOY->R0!>y*sjs#J1~lKESOHINc#{#I?hdA^eQTZL7V z5@-HaVGpImnZN#$N{KUnBiLXmaprFX>n$bD{EcAurNo)P5iG`(IP*7xt(g*M{zkB1 zQ{v3u$l-GbDVe{KfsZXzGJhk-B=8bt{zgvtZiJHg8yULqG9~jjg0-F!XZ}X8^Hbu? z-v}0hN}Tx{!M0F|Gk+sBza^B+-v~B~N}Tx{!4gu5Gk+u4P%3feZv^X0CC>bfV7IBn znZFS%K9xB0H-fFG5@-HKurgKR%-_iES58(keWkr`5Sp}@f0QVH}cV|>y^yk$d*t0E1AEMFM7^ZGJhlA9Jxu!{Eh6W z9IRyiMt+*JNEyz?L}d4}?Mmivek`tBX#qQ!;<6`%GS= zWd2qka8n;8^SAnt=VqAvyh@YN`G1{@U!(KkOLb0sp3Ky_^a(njezMM~AENW>U3=~9 z^+osFyT^0_J&e!G^UVL>Cjew)cEW#T*CAaSx>oA!`_(!Fzh0-`S9E=#TYlF)I$^)1 zYe%xl{$C7 zsOUO9ThOd$494hLgQN7!!QMqVg+J>Vgb(#B!W)IF3Ln!M{2O%^f2z*pkJH)wV+%ui zvLLr$x1KZjSWg_hRj^vm3oOxd19JuH2?J(X~Ro=!NhK;#cSt?=3Zx92PPsf&Ma zD7VYFYwlQOJbSlGb@S#a#P#kbd&My{WMj4#Tw(; z`*5ni73n~oy$`3_e8vFd*}HkF_YZ0_p1qr=YD@Pqp1qrw+vV*12cyQb_X}0sFU>Wc zy)HdVUyOpX??I7dXyOpX#2X8ctE!JxeV8zwy{oDkdwXx= z*}JN$Gf$5g&)!v49oIg>c=oQU>WKpf8qeM}Rz31##(4IwvFd@hXBp4lHCEm8RA1xS zyT+<(3sxA<-ZfTT`DLl`>|JBkW$Shr&)zjwUHrgeYeNlkx1mb=7BI=re8at*idMuD|i@y>->5`_~)K-dk6_bIBCr*?a4%_OW6-dv9Hp zbXOVA-dk6#Ham}AsLqyL6A#s(!?qaj>g@AgcGw34jAuXb(8v0})MmVSd~CnwKE|`3c<5t$ zowmk!_7e}498hOG`-z9D$B)K%_7e~NZhyIEyYcKN9=Tmg<_*_WFUwv-hl36Y4U?v-hl3<4>4nJbTYtRoc6+@$5Zo z)rps_FrK|)OhxuwdzQ3hwi1ypS?6{c`$tB<_kU%- zhp{`a*YABj^?C1Y#%rNk$M-W{j9NK$r}5&{V}}eiUV>Wsi$1qW>iQvljF+M+Kh~dz zR_d$^)*G*l3QW>#_BOTGcD*j`S(W}?zSekY>c5}p_nx6Xo~Ga525SAvgz-A4Rr^GY z_YU>UcK!Y~QcuK|8Sh7eQW`+_pR^*7#^S(W_!{1oGDqqd*B%6MN>slC`_w(yC}@3 zc)wDZPw{qBm{0M3qcD-;?V&J{;{8rxBE|cI>a(Bze)*HaL`v9DdC4s%+$F0qe_l1f zgu7ChPYHLUFrO06p}y8z^WpAUjhl16{x0}?R{m#H-U$>w!17L{@adK}gu+K(-bqwW zVzKc~&T9PbD>obO6bhf2c|$3Dpyr)Qeg2tV>tWQEwR){jqdvN4wef~i?_Crz-s#ka zVtpRYpkBFoknzr>UTVbsk`Uuvoe~x zeS$tKW2l>t-f6rNYJQ$RN2SyiYquD0EH&%i`NkVZT{L5W@y@2Ej&3tv8P(*>Fy44- z((iqYS5DQux5juCRM{=Yc$HL1<8tGjLybJO*mx7D)A!qMyejIH9gBXTu8jW>n*aR0T& zJD=M4{bb`!rP8fA#=C$@Eni{0Y1C`SEH>VS)T*tUjW@k>{=akn|F6%d&aa^J3Upq9 z&MVM)1v;<5UwH-me;euE5o|*V+WV3!tV#(k;$zsO61k*e{*Id9LlhR+ z1Rtib-6r@5h1EB~Wfb<}1RtfaG$;5Ng^fDF$0@Aa2`;CwizoO5g+)EVCn;?42|h(( z#ZPbrh5bLlrztE43O++&b5QVE3TuUeD=F+83O+|+AyM#o3fqc;FHl%z6kJ7N&r$G2 z3QLfJFHva33jU2kT~=^4g)Xh2eK)BafKap*d^!7=-@+Aqg+fJFa1Dk2uHZi?lzRnV zrO^Bpe2qdaSa2nU`j1zRW-rv+maTGfJa3YBZY1cg4fV3I;vTQEhT$t~DQq2?{vMxg^P_%?-t zxS+j%+Ovz_9v4jWF;vS1GZcE~f*Z2(OX-3g6dLP-_Wo(lE`FU|(B3~)q3bUAF8?Ho z@PhAAXvqt{PoY9DxQRl)Uho5IwU+M%Kcvvi7yO7qZC`LRg-*ZVzbO>{1wW?H1{nN= zLRDaJ3xyuR;HMNy27{kbXdn#!heADJa4UuG!rX`G2ASY?3LTBX|59h(I@<*8{ZqZxXm<>L$Hz_@w$221Q0RpW zeovt^GWY}KwXQV5A1TyL26s~Eq742-p{O$WGldq*;4f6~URz9X7lr=I;ICBoHwT#D zZVJtr!QZm-Yc+#=D0FTHf2Y3rv(5znpwQMC{F6eJr(-Ded^%mIj?)$yrz`dL0fUXx zje4tXu5ogx*PrZfobJ?`Yt|d52ZdHrrzeHVQYV)}pQ)2aJ^n?daq_8$-`r)KUex{f zFEx%(i!T{&oPy5z|NpW1|5nc9`Gq#p%6YtE|GY~p=kfe{GD&eBuh>5ulj1yHap(jc zcS&&`uNZx0lHxpGF$&-$#d*A9|CCLN^LWKW(mL*v;yhlle?BM0dAwp&!bytrc*Xu% zo)qWtiv5E=DbC{+`=@|XoX0Enj|inWk5}xUA4+i^uh>6al;S*I@wBrC=zoawc*PfA zI$z0oJiiG~Qq!|DImK7LHB=wvJYMmeJ$l_z{qJ%f&z@0CaUO3pDv~6{c|3cb zF~xa2d)P6>c|3bAGR1kk(J0cA6zB2m8Ojvr@kY-+06(Fe#~Y2FElF`6&#$?Z6zB2m zY0MPo@$6B}6zB2$rb|h29?!43loaRjMlW^i^l#=oo;~!L;ym8yCoj=~v=ry@{9;T= zaUO3pI-w-Rc|3c3G{t#5d$u&ic|3azHN|;6dqy>N6rW%J0Bef#c=mK_it~7W`J1FT zk7rN9rZ|r`dh2OX{W3U@XHU(hIFDzK)TTI(XV2TFIFC0Pg>aJMJf7bHCn?V3jma(9 zrjK$S&z|E=1+!nXJ>;7Tkp2naRDaSx9-KOq^v@2b4k1yRDyf4>{|s`fAL$=ZP8~!J z|9-Rn;R8wkFmvhvvSip|eY7u$l2u9VPoia2Qu~qqvFOykq<>~Q)ra(tSEu$N{j=Ap zy-ELIc4{vYO-7RHO`^(3QbpwTTNfw`$(!@HDho*e#CJ+a|2TN67wMlBPvw)Sr;=12 z>7Of4<&r3RB$>aq z<{-)ZE%DnDlFZ){ze*v={4J?FdYS%J%-<5fgdxfNwS5gq=5NWB`|8g^lKJb;R!Nfi zTXI9gJbje;TXM?+{aHvde@pIoVTh9X>(5t7lKESL;SWhNe@h+->d!)w`CEcP5lJ$C zOE5(uN#<|Kn$P+wnZG58bM)n%Wd4?597U4M-;$0;_2r#p{+3{@MUu?l63o0vlKJb8 z$4HX-Tk_k+_4+9Dw-lo^l4Smt_8PTG$^0$F*o`EazonSTkz{4|`7On0k0hDDrDy)P zP09Q%#ZZtWnZKo&Es`Yjw{+&HTqX0j6jMo(Wd4>e?6FbF{4K?FlO&nHV=-JMN#^g^ zn(p`_nZIK(+$G7;*)MWz=JMG}=I_{dAHv_v{PkzXB+2|8S9oSZA7%cITkPTDFn`BA zz7+o<=C42NDoN(=IPJpFN14C=OsOQ9zh@Vpw^|=%{+?aFdYY2?>ko@clKJaTl1h^K z>ko5ElKJb;eM*w~>ko`dlKJaTR7#Th>knT_lKJaTW=fLz>yK?plKJaT9ZGU=_R^Jg zXSPGf5&4~L6Xeh@tA6mB=dJX#vvrh{2h;} z3Q015$729PlFZ-n4<(~Y=I?lnbx4x=J03G1l4Sml$3TcAnZM)LzOYcq{2d?LgG` z7I%ShiYTn6b9z(Pe2_8DUeuhw%`(p3)TOueHO@ZN1;ZyBrw`S9V2*M2rN+-&Y@Ge5 z(wZU0*`GS2V4iXMQbWHC8Rr1%#B~Yd97rAez%=6=L>)P+w{iMW1IDg4&cW0nW{+_W zq56Kf%s7Wq`>Y;eoc>hac?*pbpmI(hWSn4Dwb)?jI26_!Iw1>Nj?3Hwm zp|Et)IhMjkO6NEV>nfeW6n0rU$5U8z>6}1e3#M}-g%z335DNPo-$6xOUdr4)9sI%BDCJ$+q|qp-cz zIh(?2SEr1^-dATlg{81gIfad}P6dT^vQ8z1U9-+P6c*7s6DVw{b*d<=uyrC7_S-tu z6qesQH54}EI<*wm<~ns0cIrCy6c+9}6De%tbtX|*)$2^Au*cUqm%@@?r-8x-V5gD7 zdSE9?VRx|8L}9V8(@bIOuyY=TmBh{z3j2zk^C>JdcBWF;bnIL}VGXh~jlzy(=Ryh# zl%44mwktaqQCPj~%%HHB*}0g)(q?BSg^kY6B^1^@JF_V4f_5&YuqfKOjKUUa=W+@w zrk&Xo_D?%kP*_gw%*o2%Tgh}F5YL5aTZe-Y~N^{d#L8vY~$QZox7}`aqgq) zu2^TBB~QmD;xR#NEHa-O45xaB-gZTYmnabBQM)#a?B(BtL2NTKA* zd5J;;nDaLZ^iX zS_&O$&g&Ek)SNe{+qGTId6Po*nzN2VFPrmE3Z-q%TNE1IoPSZMdvn%P=z?=vC=|sx zF$yhmPMku;oRgr?Kj$PVl+!sW3e9y+D}`D+r;Qq_op;XL)CpRM=d@F3%X88cs`Q); zg`PcU1BDVkr-MR6pYsld`aWkPg>FCRT?)m2&U+ME0iE}=@+$+KO%(bBoewCK4LToE zTW_9koR28f6grzJbQn7SrciL`d`zMJ(D{TyHKMbHLT{q;DTPu+=Q9e8i_U*2)G<0+ zDRebDpHnDubiSa_^5}d?p#sv`Mxh_l`HDh$r1Ld}W=ZE83bm8Yb_$)8&VMNsRyyBO zXtQ*_qfm9}?4Zzt>3mP2B-8nULW8FBBZYcRXD5a3P3I>H#hlL16k0o-Uno?1I=d+J zeLBBVCp-_4n>Pn#z zHPnqlU1}(YLYHc&JB6avP!9?%tf8J1Dq2Ii6#833c@)ZBL-`b%Uqihp)WU{@LT7BK zbN>Ii|FQZ1Ham}(+ogHncAY|Lv-5b$6Hn49lr}q$ryM$Iozl+ZDMzlJCCP)?pdAKX|wZq%2#&j#7>)?$5X~H zn5DGyc*?drGfF#;r`)h+pwiCcDL3bARoZzx<)=sJJWrdQ$5VbWUgvq*>^z?Go6C18 z?L3}x_cx-n^LV*k&NF*WQQCPtWuIp@DeXL-@_-G4m3AIa89I2o($3>4y%EJqJCCP4 zYU*;OoySuicc)GYwb^+*<&anEly)9Zd1g)@rJcu9jxB3b+Ic)>`QkcuH(Bmo__(r^JeL zX|wZq%Hs=nDeXL-^5o+ym3AIaiS6jpX6NygSgS5=b{8;oySwAZ(FCd^LWaQtNSVK zJf8A{4`(awJf89svr%d1@swK+AEdPNc*?KFE>zliJmt5SY*X5KJms!+%anE=Px<>7 zdz5w_FSpD2-3lT~JCCQ#J#Mwq&f_TyYI-Z}Jf3pzdDE139#6UdlL_VC{ow#<3;QdtCLeoguJS7KsZE=dbIF$uTco^_e5GW&at;}L( zwskg%mG{zmIf7tDN?mUddLQzsi{by^^gqf0dUPS1N7(D(6nu z3)?!CU&gJU;!4{5)kp8l#g(-AtGxFpTuGb1%4Js$R@(ekKJh57q|IOD3*QziZT>3% z-e2;K3rOD{wm$c3zas1l~^Y(tu}v^gPt3qwE3$%{+(q?o4-nI z8<$p_ze=ndmsXp2==3WVD{cNNFL`8#(&n#ncC1us^H+J*_7zH-zsl?P$x+(;RW3Mb zveM?S^0rB9l{SBsciq@mIgDS%eJf`vZT{+`OFJ@3o4?9Oe;uf_`Kx^D&;?4Hzsi+o zZB^R*RlYcFxYFjY^5wghDsBEMUt6 z4x_aBtIXY1rwnJW)u_Tl)+lZM>ZALd)kkUbSK0T18Op=?hY!B9O=2cJz}WR=CAU^@k^98f0aWo->J0ut33VTGNsL5<;e9bm51=l zDETH=Y4cYf9luvpY4cY(;ly=Ho4?B1iT#u|f0dKx&sN&}RW?1dQEBs6Id#JzrOjWZ zztyhQ=CAV7gSY9UHh-1=2E10AzshT-F4ISC{wn7$+M~4jtGxM@h|=b-(%+@mYV%jQ zIH$KhYV%j=@7-&)`K$Do^0nIhRr(wIT5bL+pZnKl{omUBRj%p1SeegjlBxE z&j0)S4F1Z`96JBoomZgq3Upq9&MVM)1v;<5UwZ}k*$B4ng^DPw;tTbru%|DyS62QK zztG+kHvEP5p|Jih)Q7@uz|g)F76*p*qp(#lv_FNFgQ30@_7R2-ps=hkbRdOIhM|Kf ztT_zzqp$-pbTBpNcKsac5DME9Lx)mWtr+T0VeeunKw&9kC`e&rW5}Vf&M_3CuwR!D{hP}naS@+d5y423CdrVJfHVQpn-AcdWlp(C@Z#KOzaQ53de zhK{DNDl;^Q!XC}gF%*_;hK{AMfirX*h4q}F!4!6PhK{GO*fVqjg{_~V6Dh0&4Gp2N zFEn%#g=M0llPPQ(4V^+^4QXg7g&n1#Qzh1I8_;S~0whEAujG&OVv zg^jAAGbyZF4UM3%i#2o>g+;BQkrcMLhDK3X@fs?ou>UnQn!<9}&=?AvV?!kr*2;!T zDeRmLjis=VHZ+dHw%X9y6js@W$|&r)4UMO;1UFPpVMA`Hg2MXTP$h-kx}kHj@)z%h zCQ#VQ8>*tPvNsf=u+KMCO<~z@sD{#>4HK%RuqHTEM`4F>sGh=t;m|}1+lNDwD6A$9 zO{TE7ICL(BrN*HK3LB3@jTF`)hoTgAC5M_QEK&|NQ`oW`I*-B%=Fk)h`{ zno41_bLavJYo9~YDC~p|T}VyQh0&qu6t+o+E~2n%Iy8gA9_rA=6qZznW>VN-9lC_V zdh5_E3cIgEmr_`a9lDId*6h&b6jo}7W>eU=9lCGodRftnm)brLf~W zbQOgK;GwIt^0$MBuA#6xJT#BOUh&Yi6qb&MuA{J#Jaj#Ub>*S?)W0gWn9vOr7M+J~ zq_71&bQ6UY>7fM__NRw#rm$Q+bPI*e>!DjItYr@^q_DF+bX#Zt-~ZU>|LyjEd~TO| zl#oihy&tbcL#ede`|-*bUd&P2`|(P&ph~;FAFo7Vs{dnbR|LLQ&_v4jljFonKKVFG)S!uWTfOF}dp};8**B!L_v4i)-<5WIKVFHRUTL@Y zT&2AquS5f~wA=gfN|Yr_yS*Q;M3b_#+xzj#SzDGX?frP= zoSsH$@5d|ejul#d+L}~BG=XRNlMr&!e_v4iZ ztPCmb{dgt1u%+GJk5@XoHY@G@c%^qJUf%Y8yb?9q(r)j^E77qn?e>1W^3*jel=gnS z5`Em#Ztuq{QQa-=_I|t)z24Gp@5d`q`YrADe!TMB7Q7hj{dgtn!lm8bk5{5uT-xpZ zc;&ojE0y+syz+((tCaSByz-V^qO|wpm5UC+E63iCSKc#Xz0%%~S3Yn-f2F-2uYBZA zymIXQc;)g}HYx4>c;(X{4_4ay@yZu+7Afuhc;)KwcBQ=^uYBY3uKulk<>>1p$}Z%%r&lWtS&`{&^&r@DWUU>tej0=)pdvRa`HN_ zRCyVB)7dMOmy!!F%TdlE?_4@rc?o&%TWggw$p^pctGt+ev}l%c2KnUi8RbRfvvmWN z)5*WD*s8pcd^J5>IgNbtr=`jZ$d-e4DW{U@DXWy{lN;|4bdo&;9+M+m+1UhTOvCO6G4v!SP1P{B79(+BHh% zZ^OWY1}K@o4JVwpMaleaIOX=CO6G6F@YPF{%-@EyKHRBf{x*~yzEa8jZ8&FKu9ErN zFzJDH$_d$Tp&|OueoE$V!}(v%Rx*DZW(^*sWd1f>QL|9V{B5}YsS!%%Z^MGOmnoUQ z4R;?HQ8IrUmJDC5Wd1fhbY5>I^S9x#+oma*zYQxt3@Mqv4X?PHmCWCU)^(*y=5Ish z3%o>`zYXsd+c67#pQ^qOKN z^S5#Q6U&v%-^K}TM#=nbto@-*$^30Rw=Z5-CuE=B#^%%dD4D;FGj45DGJhK{eQAJ_ z`P(>W(|jfKxAB@kwkVmujW--NRLT5pyrl#$LgsJd9T)FZGJhKvFDX+pe;ex4xAFDXK}zOt<6GY^R5E`X z6Z>ydGJhN29yUVB{B3;ymOV=5Z{y|{@rq^sHf|41Q!;-WzaNuOGJhL?yKkP7`5QH_ zZ&osYqrLJME1AF1-h*~1nZMC}t4fv3-)JZ`S;_p39=(5GCG$5r?3RH_=5O@ORST5+ zWuM>Z*x!dMnZMD<=v_+YZ?xgwRZ8Y>bY|XqCG$6W`Jnzv=5O@cxto;C-{_5x4^}dN zqqim(DVe{~2Zt_KGJm7X8jX_q8-3xuK1$|qboHJYO6G5L{YCSY%-`q-xjU82-{^nN zS*c|HMt}JZF9zms^!I&dE1ADdT~FDlWd1hwY#5|u{x->ig-Ygc(|+&b*=PPX9rW8W zCG)o_5YQJx8}qm6i0P}9%-^O#_w-gWf18efZJLt#+f*Ijp=ACxEePmS*2es8da+WJ z%-^P$=S)#Df16%grcX*6^S9~48@DT&zfE85)(hLl{B8QKf1Q%~+w|*&dY#*tzs-Fs zhMLaz|Nmp}|1-?vDjfWg4D+}O=Z7T2Jg&mwBFQk1tCr4~t7INmJ$kSH@MoCERXC+2 z8Rl^njxb4vd0d6_O_E_ASK%m>WSGZQI430;=5ZAcQAvh*T=n75HYM}8>XXI+O6GCZ zRy}_u8Rl^nj%rDUdF-F#k__{>>W|T7`Y7`_((R&^O6G9{2f`%7JdWVBm}Hp85ga9x z4D&dGb7qoZ9!Cy7T7S!An8y*ENs|ooID!Lfl3^Z4aGFgr%;N}-x=Dt4968~;5lZH9 z1c&4#!#s}Q1f67<#}OQ_lMM4XQnFyRl6f4#Q9Q{ok0Us>CmH5(1V{QL!#s}Qyq{#4 z#}OO`lnnDYf|G)hVID_tj8HPn;|R_eN``qH!Qn*7FpncRxhNUtaRkR2CBr<9;LM|B zn8y(uh?ETTID*rXl3^Z4aFkLq%;N~oXG(^79KqpD$uN&2IN2!~=5YkaJ|)9Ej^IqF zWSGYh92k`h^EiUjq>^DCM{v|sGR)%$&Y?<%c^ttZRmm`qBRIh-8RoHnyj3#H<7%9Q zl??N^8i!^j!#u9WNnFV=kE?NnS2E1wYMk$t4D+}eM}Z~7Jg&xRW63a&t8o-rGR))Z zD<|P)#yqaZA!f-ikE?I#!0U>6T#W8X3tjkE_u!BN^s#H411X z!#u7=JB?(R$JHpZkqq;=8Z9@HVIEhb0!K2;<7)KdNQQY_jVc| z3YR2(5s5Y?NlzzH)g`v0m-&!=`Nt*dvi<&%1Gke@|8=5Ouw*9}%Oe{0bIC~4+zE$RU!&HSys z>!)HR^S2gNf|6$b);@HGQ8IsPQ9CGU=5H-J2_?<^twmv>q?y09Xfu>F^S2gNhmvOg z)~+2eK*{{AMJ=MFnZLE@Oq4Y9w-$wpl4kzaqHR&q%->p6F-n^GTZ^7XNi%Z|!$aty408{WeHRGktq?9!Cw+`i%l4kzaIfqA-%-=c`T}qnyTZc|eNi%=zP?#xc=5HO^G$qaa ztwYtOq?x~U=;4$!^S2Hqoswq$)=hYFhm!eQSNnFUlKERV`NtJX=5HP9J|)fktwR^6 zq?x~UGn&^bnZI@D4V5(Ww+^MEl4kzap>b5w%-=fHkxH8RTZgVvNi%=z?kL@=Wd7D+ z%bTQ`zjasvCu!zy9rnXXn)zFY<#Cc`{?=i$oTQn*byzzmY36SocG5|j`CEsDb<)oK zt;04uX=nb{Vbz_qGk@#iKWtJmf9tRoPuiKkb(Z#`BpN;~tn zzCrghN;~tn9?Ki0o%vgj&5qK}{H@1INNH#O)?;6!v@?I}Z(Tl5$^5Oy-pPDp%r$w1 zrs#*Ftwrw@C5m1xT3PgP(W0X3ie?ox7e$K36b&sps;Ga_-bFcuKNoH*{IIaC@QuP% zg^v|3F1)dDcHz{*y25dV!wZis3>EHIm|L*BV0*#G1(|}k3RV|9S+JzwmV&tj(+egS zloyOBIH6!b!GQ%Lf5;B`Og2hP*2pumRBo4fGE<^5L5k&M87PNHZ|T}=XRj}MZR(Zk zwYJyuy_WU5tJnNqm-U*`tEN|JuVK9g^$Pat)2m1RuKcg_H|MwKugiZae|i4B`3v&r zywjdpU1K-UE3H^RCXDk=Kw{nKv?TNM7gs zzrF%G|F823bY6kZE6{lbILD_M~uz@(&qrp!^fa9h84s`5nqX%DjQ{ zkDPx(`KQ&lP}N&PMn0wdbMBu}{vr7PP-8CaZDcFupQitu@{ihoLHXzKzoh&_`r9b~ z1pil*f4u)|%0K)64doXDY^VIzfd5jmOy3K9OZj~R-(_{y??e_qs_3}IA_euOg`BfBuQWd9U^fN^YjTZ%7DAZvTbfwUhQP7PV_Sj_oUr{H`%`pYt zsiTiBH3dB=G;kF3q|nw;kn2k;Q&8n`nEj4a==nIzen%>lfE;GOBNZA#4zu5p3iTm} z+3!e&Zjr<6ccen`h-<$i6oF7NQFKV*M3JTl%2TtJ5r$u#kJp&3Ndq(Z@p`+vS8w6C~%{QgR`n#Ikh(A(nnqEPDM3WdfOw}3(&j9W;dE5O-1fu6l#oImqN#pdpLyxBzFLXb|lxMP@Uw4DfBA2M^GqTatBgqWO9$BuF|?D z_b3WoPVUhZik{p-6k4F%V<=QaxyMrIk8+QrP%h;T?tK5>+5i8){4c)F@4fR1bY6kZ zE6{lbI4M`+CJTrC{%&ECsXJNbx)yCBI*vM&@k$r zN}+z#9Y&#>)IBXLzqr&LPNCJ*J)J`3se1;6K2-Ni3T3J82ntQA?pYLSR^5>lI#}IN z6bf41V(JBLZ*@mgsCIS7Q0RSiODL4Wx}_8vW8JY7>SWz<6uM^Jv#A@jh}JEm&{FG; zr%++*mQ(1rbt@>8-@26)nsME8DAeY<6DV}*x>XbkcijkuHeR=yLRGI@L!rmlt))=% z>()_d0Cwvs)C0Q{DRc+BlPDAmyOXo>TZi3qDO3`>4HWu{-9`#!#%`2C)3Mt`p$6G) zrqGe>o=2fT*_}e6UD-XKLiMscl|nDGdjW;gW_KEeMrZdz3U$x!bP8S2?nM-eqTLx3 zTBO~JDO60mGbzj)yO(6;4B5mr@vGb}yqaZ>KPu z@7_USaNk`-VXEJ~lfuZqdlxlR&jYx3Q#dT(E~apjz`cjUF$4Er3TF`9`zRbxaFV0EKf8?t>H#MYu~ToS1MQqHvtTeK;%stcCjsg@YLGG76_O+(#)K;cy?L zaK6KRoWkJ`cR7WVA?_0tj*YlaQaDrMK1JcciMxWrX%zQq3P)AkXDFOwai67d$i-br z;RKBP9EIaC?(-DR&bTj7I9TJZqHyZQeUZYE9QP#(=XKn_Q8>)wuI`-w{~w$G@8CS% z_zlH6Nz%c2yz%c{q?05aoW~pg(LJk`oW~o#Wv$*{@8CS%_|HF^rsO={_#H>=-B)f_avrZdC$U(`dA#zXeM^;`$1Cr1$_gdt@yZWq$Wd}0uNEJwGIXX9_gY$UhWJYM;gC+j`>4$kA1&pUUplJj`wH{7&H$$7l;Tb|pl z+0J4$kA1|NPEuCFk)f(BC2*oX4v`xr=mg9Br$E!dEkZj;QUIqGrWCQ2%Do`vW8#s?wfz~0}z9wynqc|5>~tPZIlB9GUsf~g=PkJqgBsURYc*Q{!)AR>>~ ztlp|1B9GUsQmY^$kJqfms~{qe*Q`3MAR>>~tgfseB9GUsBCQ}IkJqf0tspwBE!o(d zdT+AvRH#O-AQ}l(*A+ykKy`Tq(aBInUqN&dR0~)TjezI9^tkavsK&4$IsvLqEQpSW z>KY58;ZQ|nLDT{#UN^y*gEv30#+ZfbFbkq)sDiT~Iu5D}Er^Ce6{Q7H2C79Zh|=(p zCq^1m@QF1Gj6>mq_Fara;0y6_#wMtGwjgSR>TV07Bvi3m5H&!xz6DVNuKsMGu^y@+ zE{N)&>f?f_7OGn=hz3Iy&jr!3aPtF!k^9@MlDZ(`{uUeTf{6Q@RlQvhaeuSwz6&Dm zZ&t;4LB##dsx>c&xWCyh|D9^&{$}@jccYQ}o9(e(!pQy2dOzF9{mrV5FNnCm*@G_{ zVdVa1Roxdv+~2Hv{ep=5n^oyw5OIIAY6J`-?r*l~kKV}r&8j^xh`7Jm+%;>B+~4ep za|al?zgZOz1`+o+t5(7w;{Ik;Sr|mz->ljVgNXZ^y?n|jBlkC}Uc?~c{$^F07)0FP ztQr-Ai2IvW-C_`Nf3wqu_AzpQv#MqcBJOYY&f7N_xxZP}I0g~-H>-}vAmaXJRR9@8 z+~4eD{e~O4zgd+<1`+o+t0u`H;{Ik|oHNGA{ms7m#u6jibdm$+~3@;RlSYe-`pO3CmOlGxo*d=Gje}(Jtqt_a({Cw45%)KzA+{jT{mqS;kuY+9a~H3V8M(i?@xcfq_cy0Ww;<2`&1vr~$a8;l zH(fo}$o&f;{&(r_sJ3&;8APIef5@`dG2qE zh7E%}_qRo>he4kE+oDOtAkY16IeK9SBlovO^NB&8``ePNSYYJ-wrF@U$a8;Nw8|Ld zxxX!%Yz*?;-xjSqmVWq8 z3zs1^^o4IA)%S&OB6a(PZy^=`g?Tj5S^>idsWLEJj?^a@u0Sdq3=2q2gkdXEO<`z% z5c?YqW$lU`hT%%2g2QkXQu|@}4pKE@xEiT9F?<)PR54tG4mrzyv-TcR9b@=DQdeX6 z0aB4;xE879G5oMi#R|yqBcy)F@MEO%$Z#D}vt;-QQtf289;uTu{1mCMGTeaFW*L5l zRCO7Cj?{x0et}ey8E!;s&|ReFZsBK3WS-yxNO zhMSR^Lc{NoYDB{=NFAf$4@d>1;Z~$}((p&5>eBEhq+ZkTXQa~8a2rx1YWNFMU26C% zQkQD@8&c7#iy^hJx^_qvt!_J{{#Mr>sod3dKx%$<+auM&x*d=@W8IEOg|e;;scqJk zBURD53Z$M|SBW}XiLDEe8g5+`QvI!~M(W0OHAuy|u49{ut-5X}q{>~lGg2R~+Xbnt z*L6Z_@^!l+)%?27NFBg#H>84K*9ECP*zJx~E$sF{>K%4_B9#)mu1Jl=ZZD)dW4AX_ z*Rkt{RD|rhBef*EeUK`Y-M&cu%B}}e`LgSY)XeO9A=Ng!5UJDIIi$j8=aJf=T^y+@ z+U>kTwR3CLxUW`bM}X+y}hAPo$;;YjO4?s%kWB6kAP zZjn2&O~p|oHv(z#$en~VhvZI1+DdY#APp(Gkw_~`?o^}+CU+WAAD25FsjSP5LTd7I zXCT#lxigVEz}#6#1z~P9I?dX{+}TLgV(uKI-ZA$lq*5|B2C1>kor_dw=FUUvI&Er+(~;U5-3+8E zM|V3?&!f8osRYu^L~4k1|3a#dbax_kOS-#|iYMKyHWgbb-Q7r)mF^z2`OU5|cP~=e zrJIe^gz4@>s>yWsBXwxHIY22d_1f$7^``cuNWu$m2DSw=Te!_g9xv$*wzN-yJYKT*a7+6X$m1msx@w7$JYMpU`z-uZ zAdi=<>tgYq0(rb-dX(jP3gq#U*_$lSQy`C*JmC?`^AyPAB}e^g0iFVRyyQ7OEx=PC zkCz;GfhBedSv_Rjf0T$4gE*XrPfiUh$>~>a zHIm0m{%dx#kvv}Vp4a9Z$>SyGd=nVS<0T*7ZM2a*Uh>f+7aPgrC104o%19nB`O3kcu*jZm)um*$w(eA`IG(f zEhv!3Oa5jpDM5ieUSs*vwMO!Ijn$h5#DW#%@ftgIo^B+M*SPoTX(M^O#vYUA8Oh@{ z`uSx>@_3E?dvrCD$7?*Y;Zh@cyvAeBFBr+=H8w4nY$T7@cxrZ=kvv}G*rgqfAjh`OTY$T7@xbf8aM)G)#TmC)T zNFJ{#_H%b5dAz2M=k+s^$7|Yk+EgQXyrw;#*=Qt>*VOI9gpoX6Q?DKEQ&~YCuj#P6 zI~mF2H68WpSR;A7riM=5NFJ~0xRLfTtRRoqbkf6m`{ePO&iW~BB#+m0Zg;(X@_0>` zoIA=$9SG{}*EDO^U?X|Fru$x*Wh9T+^x#H)4CL{e z=I=7xIIJx$-n4k$5@QCwKW3US4Zr+gt}z9F8MeSUw2eb{+SuDT1nzUnKw}fE{nKJ& zBW!+ul`#pg>#qmf0B8Q7N0)&2>^;C(59gh;*;of(&**8?!cRJGFb;;BuhXCRSomxH zapN&<9J1|J&hw_Q^zjG0WfpOIO7p8HzIF5 z9G-Zcp4DM+8#>R({Y`CuQJInZo2s~Dl#%uUA8YA~NHD+9YBlkCT!R^zG+~3s2i#8d#zo{!eZ8CCyQ`c0@HFAGb z|D4ms$o);-{>C^X_cwLdcX=cCH+A10y^Y-8)Pn;j8o9rz$8Xk$#QjYzd}phX`lQD zZ|cjw{fyk-)DKs0G;)8_JA4;2a(~mo?jwxc-}FvLKV{_praPb6$;kapcYk!5{q;2N zZ@Skz-pKt;_vy9P$o)+pJ$wUO*ecp&&d5vr-Cvg_cz^quzj)1xxeY- zhc7a6f77F1FBrMM=?l9|HgbQ{*WNVC$o);0jNIS!YqRGXxxeYRUhiP!{-z7x zj5MCz_I}f=cUxfO{-!@T%0AKM+~4%NQR9r<-}GlU+9$f4`Dkk|SdxxbksHcd5he=~zRZ!~g$Gj&HMjNIQ$ zpca`+%2oe>122(#gpE&79F=tdaYhIj3Qnk^7rDf2=ohe>3B5 zz23omo{>LGq;SNXXO57rr%p;==F!s%M(%Is$w_@m`Tx@I|4YC3DLsMG6DU1_(i12>f#3NP z;CCaMeREGBZNj-Hkp|=3Q%Gxa?rEf{Irj|G4xM`zX{63AKw7YK&mqm*xrIpEckX$l zVLZ18X*JKifHbM+UPRj4b1xx{@wvrFOMUKTq!~Z=3ev`(dlhK_&@Dk)2Xsr3rUTt; zZ7S{xy4R6L2i-EHMMC!m(p;f?6KTuPy@fP%=<-M_h%Q2!NOa4Q_7mL-q;W-8Kw4gO ztw^(s?ro&aMz<1a(9x|zT6=WwAWcEK)kr&$?p>r2Nw)@RVbZ;aG(YLyN7|-zA0Q1^ zy0u8FmhMBO$xHVU(jKP!7-=litwUPUbe|y2Y`XPG8=US_q=8Pi0cpL{eTFpc={`r= z{d8X-je@$3NQ z|9Ac~U+IrudIF^A64Zeb3~WKMc9? zePaG_v~RW$^GBe)4!ktx2cRzHU1R=8wDU)cV*V&pwO~}tAC1axEsObqsQvl#Vt!DY zT7GRv$NVwq$9*@){ITe}ZPR0ZFj_b1`k1dpADr%Ez7DM(uq@{5(Oa83#e4$2w)Cl( zZ$K~KJ0j+j=-J%tm~TW6eLOYho6!Bw^^5r-=%&FG#h6 z{syE@LjPB!!a_e0sm;(&LaI9SHzM^Q`kRnS68&VP21S1}QoW*|g4Dg}|Ath|=%*sJ zHu}G}saWag|ADr+4l#cVQW>P5hSU`4|A|y1>2F2qnDnBj3#Y#usiM>0gVf*Y??o#2^s|wgKmC13 zwV?ifq|Q)32dPlh&qZn*^$(!Sr;LjE2a$S8{XNB5ss7ae8>t)B{|Bi! z)z3$2RrQY`Rj&F+k@{HuV@PGKzL@{Ns_fQS%{Mh4)vTylT=Us<*59 zu4-LXYt<`NPgc#Xno)IQ)fH7^s!pmJT6J_)pQ?STcCKn4Yz{sN-VR<3o(diaZVzq> z#s}vHCkLruU~o{dZ?H?yq4N96^_43tmsCDo`C#Q8m6I#4tURysl*)AFpvr?QdsKF+ z+`eK<#itdkDwb9}Q}Iy6%!->UuBte{Vq`_8;+TrQ6+J6!^)2>?^oWdymR>uWn0SDm%Ux~O4$=-_uGBFq4bka=?RpcKsG?Is}E$*ndl83LoB++dDlstUx zO&?lfwv{}5ZE>Exl{|cHal5^hJbZ0&*u9lJeC>UAPqqIndHC7~U$uyAD|z_ZrT^|^ zBoAM^;wQ_swvvaheZSsocri;MNG7~mQ8IX4`0`H zmx7TzeBC~W_c4-(ulvId8;s=P>kj{Mn~^+x-N5d{jpX6$YU>_1l83KL-7>~V9=@*m z=_N+;@O8(p?P(+rUw6t56O82H>qhlnVclL35-Q?lxF1$(+g-%19o*?(6`0Hj;<0A9QEhNFKhvZt*-LdHDJhPqyrFfjoTu$m=gPl83LK@}9l2 z0(toQX&pKm$-~#r*w5ZzfjoTuy_eW4E0Bk;fA}SPM+Nfm^^bnu-$)+5{>77;jO5|# zU%hUwkvx3;+glbG$-~!wcI;S&d3yUIu&KGFAqen#@}iT-ct4U&gX9Qpl5BYF5l z;uyV9^6-fvXX}NMhffUq+Xy3h_{3R$nUOqv;^I5>e#yfp{&{Vgkvx3jt~VDM$-^gR zf8W(e9zOBlo_d4i;S(>tJJ?7bKC!gjEF*dN#G7uLkvx22)i}Lw^6-iG?$GNd51;tx z1-)+a@QE+0^}5N!C%)}B!AKrH@xuvgjO5`H+pf{uClBAyZq76#dH9AM-q>U$58qI^ zS>FbE_=cVK(6>PzzM=D=4o33u4SSw7(s)eUU#w`@Z?!&^LGX{Rw{ajme26}kqv6o? z`ZkV&%~j3DBjNFV=NkvW(f2Pl9s$pNqr0(q@yg5EHC#EcpRsuG#B0ygx6z+}^Is=# zG#&~kKb9~a0{{NbY-8~_>OXs%9o3*vyp7^RGsYT=r%{~${IXL1zx4b6|NX(M^sh@# zp!5VvPoVS!N>AW-_yqXfh-U8m6G$6){z;^PJpUB(es;`1jWn(2pF!H)^UorU^7#cw zi+%n%q&Yvo5NYerKaVs7=ohuAxDx1JK$;NrFCy&=`j?Q#2mNBCWkUZl(rlrB1!>dJ zzltO82Wk4!uSVL%^zR~#X8JWq zi<)~koG_Q$4KL#ejUA&Z++bX#~}8L|RDoUn0$?`md0-RsGjU!>fK1(kiR}rcK4k zR{t&1o~!>3Y3$W+Mp}aP-y^I2iTN!^8?ycfq=8w#6={9e|A;hA>wiMe{H1%$|BN(h z>$f2--uhpV=5YP5NL#u7H>4rmcnoP}H{K3uf;YY$(mrpzJ<@n@yaUp*Z+v^C+28mM zNSna%9gzlu<7G%|!trvXso{79(hhOF5^1D39w03k$E%R$jpNlw+sE-5q+#TEN2Jx{ z_)cvqPAbQDM%r7B?}9YO9Pfm*)EwUxX~sF;8ENA=z8lg2bi51FI&^$@^pZ_S$M-^EV?D)P&``PgxNaNb^o=D5v z@m@%?-0=`;vpepP2EF4RY3(~6N16hU?}xM#9{&TR diff --git a/uhabits-core-legacy/assets/main/fonts/FontAwesome.ttf b/uhabits-core-legacy/assets/main/fonts/FontAwesome.ttf deleted file mode 100644 index bc640928c36e0d678aa1d199dd128602f4c7f97c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204528 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 N@t^#^6n6Z>e*u;g-iH7H diff --git a/uhabits-core-legacy/assets/main/fonts/NotoSans-Bold.ttf b/uhabits-core-legacy/assets/main/fonts/NotoSans-Bold.ttf deleted file mode 100755 index 987da8c9b420895d5776aef858a0f99b35c567be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397972 zcmb5X31C!3wm)2Tx8C zqJt>NFsO(bLUMVm=zHIvBxI|cd+OAwv!Bz1 z5<(pKPa^iq2VOSl_16!rAkwidgea#kuetK7l@q!*5$Wr7ggk4%{Hm)5ocQMLr9@t_ zm5@9Cb>&sXWw*4iokXN}J_nTX*Uy+R`){pJJVK;*qlDu_Z3s{1M2~E5uUdb-{(x3anmi!YB&5DzaLCU@r~1GT|XgpzxWW5rag-9Z<#US zmf6;oayGud1?#hBPM9$%w6OYZA|2g>DS|{`32xQAGOm z3?agwh(LCMFh+Sh5s8juMlF&k$fB$_NTLousxB)IJDjwt$`N*iOG{iqN3aqfyTl=F zFHaHXw=a{opB*|y`WkTNc6>!Y)HBCoN$=iW z@#UHo^Gz{XB#K=TETU4F=1ZFs^SHBoH9ldHZ>vwJ_E8@x#ty^bLI(-+?P^~-oFFc! z3-o-9%szbM!}pxv)UD_|p-5i7!|U}q^7HZ{9T#~wD;ejBx_pI$NZ&KtV-%KX(QyxyZK<2x5fQQPsoLgaTzI!IAU7Dfk< za40`RS7a$RdUIU)={_M<$j>oabh@&zAlUtWYEKUpdyQg_T}YQgzM$VP*{RdseR|9; zNx{aL&4EhD!eF{x*>zbB+{>JiMqeeeb|LCjFt(>=sBSs- z<=W-nA61{vr!xu^xB9@8wiNY~`Ls$sFpn0bo}EHxm*h#760r zw3)s@57A>(reMq_?V96?M}nTdf}d_WdlrAnFEy;;%c^Z-bxNYngakn(k<#X6Q@Fy6u-^0FlMtSfiZsI0NH_`57hBn4`2_fA33Tn z@gVVD_Qa8~F^~h*>KXbWo~RHfxg?rpp;RY{E;o_vk|4clQ>aH&q6YI|#b{p`Guk;f z78gSLq`qGtCwXZ}u1^s|&PuV%!|6_2`E8%|&nZqk{Dkiv^*d_(UO19?I3;7qyHb@5 z%|h~`Zkb9Tp-xX0iCaZsmUvQxyn_s244#mvximsOluA`?nc^4iql7K*((Ntu#~;-_ z>Noh~^WX`JOckorEB^~T7v%uQ2wU1miC?s3(pRaU_We<{x2QuwoXH)dl>K1Y2#J!B z(LzswJG*Cv)!m1rruMP+l==_o_kiPb$Bz!t;V6?#zDq7KnF=$?#N5JMh|uaV?x%Jm ztBUKp@+Uhs#_?{2N$UI%{}d@FxS>AL9WJYgl;`16N`l8uf@L|C9wnGX9OcfOV438k zY(ZruyR^#wx=pi&&PlPC-Z%Qi_o(5>$iH3c8x|e5^gmA=Q2+KM&8I1|DVg&(^;h*y z^_nB}K`MMk$L?$+TVmskmY$a_yjM8-z>jxb-mA}LAMH3yrOXu7ci&$gdFq!Xo7A`8 zQ@>L`Ei2qLmOely{z4!6vQ=$WH-Fgtz)|B`kOu$crSeW_K?~^-_2?vv-fA;RvPEc& zSu8S(poD zoo5FM{RMyr+)q}+U(Sz*zGn#QW|4Kw52x2Y|gl-O)A)N z^-cBT@K#t@-_(@Y1(&?qvGUvJ3T8=AxjK&*npX-1sdj#$ki)^h3hto$X(jb9n0)U7 z_1KyAqqL&+_NE0(pMGc2t!kUR{l#5NHaU!$n^(O3xj1LU*il2;_o_>-o3tJ5Jg?(> z=`gg3mt7Ch;?i40Uy6e?#vCv~8e_(UZb;rknhll-mQ^~Gkj60KGHAX$G53Wx>8v$J zTK}Q$QlH;QD-VD4$;8@?(gF3??^NG#we1SJgiiezz2@Z`+VXqha6xQ&E{LrMxgmxu z5-~^yyF)fNLTgJFsHIL?CGRE$v%=WPBGeuXIl@`;Ty>Iqn|d96mrkblsjsW!H!P)Z z3dhw))J5`k^)7V-{iJO$w#klGz|&0R#^@l$XoMUfdMcVNilH$!NTDAq)TvN0sL&S` zDh*TU(+X8G%tQS6p-pK~1cL%KCI}#jAW~yvjCNudH6 z6aSEew(a83_V4LQ)gicnqxy!bF4Hg+RbXf!S44X#uoNZWXEZVV-d1Q#p=O0z7)p?r zHc?Ro>eR5&I0|wA0<#bnTYcxlnSxF{njTjViG$j|qmVr8vCG=E)0gvc`l;mdXs$&_ zO>yak6n#n{jeuD#gqlDm*<`Xe#&GStIGIj%i0_&`Op~0NqM$(sL=8BDi4`zL2<*bm z07p>xQW&`6*E`fdt54I1=?z~TzG2;S2TtvIb;3mTJ2BF3?3qiK(&_X%df(VHHR`E< zojB*Fr5a`A$^7i5M62}@l%)Y0(rm#2niai>^V8Fh_0$P^1@-hrJ(Zr;(_wnrTTlIZ zs@LDG7xa4BsEAa?p=mM`Wa>OD0?Ng=!7rUgHU~(@-sH*ZyX~*3@6Zb2QW_EFwJ(SD zut(?%%m%<<%l;opF=$ zXsRH~ipA-&iB`qx@fxU0R7^UNSm7g7huIlJhH`Y7@vae?hMXP-mWIKkL0B=a5DY?f zoxug8VIv)@&{=e&dQ3DM)Me5Fb^YA-F?jZRsp0HUp|x}ob)SphQ~3a}ut6ocaSx%K zOgfX@A)0hny-0Nl7K=YV`Sf7t;{}|Kd_cXq{Z9VqWx@iTjryco^~l0@oXELXX!^}U zD`X^uv;2*G5K_y-O*Mr$6o=Pma5cu@4cZ!GV&{E4Pey9@4`LEmFUw&MW-IbH>Z9sb zygf=A=}5dyI``45uh2Pa%PTvDqw2%zt@JKB18<8VPapd48Ttb~@vA1LrOnu`p14Rf z8X{J(o&<&Hu|P-ESg6gCX@LW2vDj@+yS_1Ihel@3geH%;EJ}z6SR)C&CA%faZ=6Dw zL{Cg^xqn{s3Sp=Esrutmu+N9o$SlI9=`*Ih^ZnWOGxGMY7%iZ$87*wYPXqLsR1HW1GCzFkXdk&bs&$98^rv|kreyB&I`_Xfx7~BK?kOdORDoJ_412!ygElc z?fYGFsp``s)p>OA@6t>j%xUI@Fwb|VxFljUn(UHE@};;81R@=Q2O@x0#OyIS&7hk( zPB&)IF+m;|6wLjMzjYy>Ln9qC39tuxV&ba%T2?oJbem~+nsNUf^m%oY`m|VdUE`E7 z?ep6Y$=g3Yy7)j<`x1f4(*~$~AB28B=@rdLC34VB%x-hHf*^65CDG^0XpH$J5lD97 zE|R!TKt`h<><}hvxUhjKncq{0l;<$(62<^`_TV0Sy^>G;QvJ5|p@UaXo>5ZYa@Soo zRQK;24>e7k``FMi4S82Re(+Jcdf&gs(5wL!BZe1V+HYX>O>1u0{f~;$pGxv-2Nd+J z8hYJc;9LOxJs%|1k=&@0z~&Z3y@5J)q6Fz7G1_tYiYw1-r%nMbe6PNv&XH>H(MknX z1*qq7sTu&v2~ZA`o;vgnm)i*jvUcjXPEiM{JKTx{K4Bu2X)?%GxnZSx;xFpg>f1DO z_Y;poA+(KHfBFs@JSRTiw)l@v{$aDY5Km(EYZy;5k<_ROuB915TM|V`2xhZ7s76R; zs0JyhRZ%IPg`a3spI7a)in@HIiYdyXIRL+A_`z;cjAGWX3s0!1bm4RS3uUnShkd4qq?B0pLUi9tOaD^pRSI1n z(cF)$-A%?G&R1!vND3(JQE@Wd4)dw)pGVhMog5&B+YVO#bL5EQgT;*aHb?VqmPh?Y zLM)1;mrbyhB&G=k$pFpEj5)4(nON*<-f|_vn3%uIqtz$XEqH6CU#Y$5XxbaT(+D*p z6tsULoD$w@KP6b(3$-~#G< zYJk>=b;8)TCGGo#Vvz~mB zhS*jjOtpAuP-;5&rtn((XeqUQpm6Ab_yZ+xw}Ejx+SHxmh>pSVHXMHjz7iD(9JmB4 zM1taow&%rKb?1GA(qYo4;tC~*O{PZ8;CG|6$VSFN7Q$ss2!!k+5W z1L^4MEz+kw_73n&dOLuXqjA@JOLO7SWRq*6CC+qxiaA@K9m)}K+5I=ft~8G`3u303 zn$2$FvDsizxozWPZo8a0E+%_5SzgEtBrejKqY~dUlj=+uVAo0S5({YP$X&0*u}R_!Uoo11FZVM#+{y<&q3-tQp1-k`6m)14l{`Cb$1g)2Lzhnz4g#>v!VBnAKMd zeZ(#FrRlV2*!StVkO(`9%hYqlIiLuhDK*6@(kGgcE?P|nujtJR8XO1*5u1lo!_Fy_ zcs>+zSDI)dT+S98b|>7oa2}IwAsk~q@Ihceliz}{_lvI%d^pSKqh;UrwoI8icZNJ` z;pCnlMvOw+J^@sHfDwQvaDBsJ^{ee&CKtt=H9T7uPIkYFf}%3zg|W zL?*1BI`PmQ4|ebQeYbp^EEJA7SINZ5_D96ZM-YN{3oLMr@QKG{uaB9i&Mi?l#bvQ+ z>c_zhd{CO%ok;_qvmY}zLlICG_k#OG3eXgd>KXOWrcFB!J-J{+-H86Zs9v1kwoIJA zs)Z2}*D8JN`7E^IDtBtK>7GiHfp=SQH|B9Y3F0(ULW6O}<>)`F?C7JM>I zn4^B9e*53&-aY=E!7%NE14q9)@czwuKNXIwcry2;C)DRRZ9MwZuLDkxR=vwN&A1NHiB2B#5Ud7M&x%&EoupdDD)z0sw2 z91TbY157ZB)encmrlUqgr>~C*#AGvipp9{C;Inbu3FJhABUK(Q<5>Qt3o5nDSllf=t z)k-R(0a2FiR->dd>TGr$tYp33D42*~Q`kaa}m%;!UqYk8> zz%Y1y3EQ__7{8g0QUmSF=-x*48O7Z`lvz_aVtN?Q77>od=~9H;31u|ZZh>Zr(ZdV^ zR`K<^0bu74=@-qkfC~a?Y4DkIa$Odq!(_wPo-Ek`YWW~2tF_DwbLip{Jz+XK+ zqZ=600+H}bH|}|dJ?KyS_`^qD_2K@wTz`~bbU$U%4wek*m-lKa%NKw=%FO)HRaLES>RAef=Er|Y0_MI*83ZMuNPT@M*e0$r5b z1Y+1*)@dK?`@C`YQLb|jPI9;0=T&S__riRUT%Mfzgn`=J$%}>8UI@3&S=&Bg5>or3RdkiB7v2 zGSQr%8bgyu%RAFq+yI9()N~%Cp)W4}yuL6?syfOc5}`(Jnl3XzDDC_FtNl}-?4u9B zm3ZG`DP4bL>BijFwM+t@gk_1W8ZECG)$;3h`cdC$BS&d$B+dgp?Ib@64mS!8rxhl$ zJP}q)QuuVSsBofXK9MtTg0Dq;zXD%w25Vo2h!c)4?1Q0_kH^3b_ zcB!~O2UE$HA&6T}p15_(6<2>Wa$}F_V;9e_{N``(yiqsm!C}j;S+(TWUUb-&)?ij! zw~FyOMOAqfb@Q%y_~|j9<@6j<(5H8#?iOHL3`{HKVNeMDz+8Hp%cXaSdgxSx(`>ax zZO-vAn@uLLpAwjo)D-(cAecl}W3SvYD0n0`B22GVhCM94>h=orYG&WK@#SY9+%#qn zJgNOdj)lGqzw(L@SUmar6JND|)xRHbSOfbBK^=axeI~t|!UGgNUO{$3OnYQ&=fk;| zmT*_P*ts~FxFZ;Jh&u}GrLA-JzD-Nn1*fGgBd-2%pYUn>9Cp72>$&xKB>qV&@JJI$ zi9!oevuvPv7V`rWZlLC%g_(m!>1K5_t^S{&QLp5GLaWu$QbYTaDGQr!5*BiBZUn;i z0$hOkfJ$mwx?n^G+^^W6X1I_KC&ORBT13*5Lw5ms-2a21WDk-mN8f08Pu-#JrX`EL z`FbhSeh;l#Vh#y93kpVYL ztNGrFqdsaS9Jnh$lu!FDZy3kYe-tQY5d}f*gXy3Aq$ku*|vE7=|T- z9L)382+NXS+|~gh=!g#kM#YqMh+eMd_y6gsD~DC~A2~nU30mJU~Cn39pBeJ5}I?rS}d$rtePf;Rg5?{5kp-xDV)R*-GAhWVm%WCMq`A0 zsS0rh4;c})iy(y+@n+)K>Ua~m!W|uNMnh)XV26WbD%Hv?1z8OC#WRtq{j!` zGIoiu?$U~HW@KemMytM=k(zr6tk9&GisLAyQI{7f z8M{_@Vi9@W2{WNd3Q7-n@aw#)6IU2a!i5vJpS_z-ht-X=A(8VH8rn+b+|GP&3$C{v z(X9X(5-o5D`qWf8VDtq9cprM}oS2NPflJg!6`kKTCq@?eAMgwQfFDHy^<_+*ryhhQ zScbFXQ3@t_z(Tn>Fp3jJ9$Ywc&&|UsL4>ecclg6?8<#TIZT?L^)ZRI<`JQcCd(*Q> zQlw>WeA3YWyY!rA|D?W>S)}$g?8M2{;>t_~is_^#+C9bQG*~RDUWZ`vI^~Q^m(ylW z@u%DpGx+^ZXbK>ybJ}i>IaA_RJ!7ksVs05}7IWON=e{_!2g|uI{{nAr9h6w40@i*g z5(f2zoqP7wKQU*-C^}DF{)q7YxqsgfLqb);qU2(|4@j~gehJhJD& zr#Q?eqDnz&Gl-c_#zf17RD=tCKGB~>tl4I}-QaR%6Tj50z+kq!WFgh3&#duKPj04e zmaawjg6@z`)`7#qZ`GG^b(6%Dk(JYyQP)*onP2H+s;1JXLxNN1)3K_Od|iHJUS${i zW@p9XRn6Bw%M^J8FW(dNo@UFi~CE;IEgW}FC5KG*xYR1n1@w`{9j-*By9 zUxz&*5Bmu61HqvnCN-Gqp{o|}`T6Ic)h~Ye<(JphWwZ~AO|^Tr-LviJQT!)-M}#i& zK?nQLDJTj;-FgEoG)aO$(s5CdsMgVZJvnz$MMZ4XGc zYoa|3fs`_#D2v#oA`-~+mX+lZNxG!U6-g-(@F8XBbe0)09nHv@5zFXIIxs7OZ8M=H z&)+c)mQ_b3YzV}HSV$NL%>L6vF(eE(HuBg>`&dx|!jFI;)3plWV@NjUq8HOr$DORKKAtiH&01<2@=&WL*z3A&h-zqnA7VkWq7Hc|A{ z80aDcHE1%C?@CKufQ)Px8q#^WUB0HiE20Cg7}h^}1zk0=PygW~qJ2in3;Pcm+PBY; zLDhr$53cSzxIaYUMAU2z#EnOmomAk~m*)FKTV`>w+hFs_m6s6Wv^!@z7da)TGoUn^ zsm+{eZZ@}=C9^pc4oHO|kUXBaYzm_u>%3AAF0r*FD}o-(D2mgZqMRd)at@DMK(IbX zsB}A}a9NHsQZD4M(hqUryk&Ejjk~4Kb^UjJ_>b4`xV6vJwpDM_hIiP@pDqsJbGGkZnnPMtBsAkFQ&EUWDPCF-D$@^Y@~pQ9LobS-I+ z)<_aWh6P@r+h8&o1qlIs#b{A1R-0MY!=ep$DaTB(KV%xk?sPO)`&3Kk98r%`-w|~M z)WVIQv9CWBaCqr*x=oLtJNAF_tk71|e@Oqku9}~&&Y{<-Pm0Y;)VKaGuB9Dk6}O})M{$9BMl*S| z-X>%U%|eSH*@Qm`F9^qklSr6HP4>ZHaa8bhjpR$pxziHD=?B0`b)sKnMu`=b7Qv|1 zM)V%y38XpA<`l?o#5cMy5mSgPn!$x6WA3gxu&!=hL)}yL_3P?a9(W@*V8GaG`$w;p zn%Ga**VR8YcK^!g*t&kz4Rv_v7#wdE!Z9XTVuPZ22(TKBBFY+V&~5Ls46U&dOy1 ziKi35D7v8Vdi(s(Cs&np8+rYLRj)07vSD!}9WM;sbYxne8KHr;GqXSbiQY~N0{QFHczHU@OTVk(r8*J z(`pEE#Oj&M!M`TvQ(VZ%pod$l$-*&dF;vFVkvMO|jLzo=DXiJtFlFnjEq6S$pk>U6 z*>zWqEDINps+!dAksF%VOJB59THG_QoPY12*T+taMAns8Z^P9xcUk8O=T!>X;Ryy7Q_K<2!}Y~;7}@?z>6qop|Z%zY;h4l z@g$}3WF{FxC^myyvsZ+JQp-~t*Y_LsKkxqi-$I?*rqukpRSY}No}&_rM$Q!q=!fu$ zOe7O&;&^ea%}{M6?83rS%g3kQ{I+s~G`6%>-siQby z=@79*d;nP&kAbOH*yfxhOn0$^=9K2dk-OO5!WS?9;jvd5S%ZxxyceN>W6j zW$lx+MqP1)dev`_ph89I{2Bp)-t%Z3t(&J-rFMP^wbm0ckq1G(JTl<}Lh|V^!U064 zbwaARw*6&dcu5qTNDN0J@ujU7FC}BepRrW8O|Y|-SU46iw?c&Ek!v$KOc6?u!+bRk zvxvjQzWb{4#ZPd_n4>fzT4XKIxoK)zYPK8BQE`Bd3%n3`BOsE1JphLy5Xf~njJL-e zxtR-NxpCK5iy9<*E)xC&j)awYutX}jsiM-Cw0D?W*Y&uB1F`8ds;-G$**bpmb-zsg z?A(NwaS__B(@!3H-TlKyjH#{~+N=A~OD@~>$LUWt!cgr^N5`2SJH|hGscw#thYlI+ z6yAYCYl-(2q&i-V8XR6($rZeE9x05_LPntr*VmE5SnrCOgxjpH|6?&NCZpqvi7UVs z2QGpEgqd%OltUIU(|x^qBRSvMIpqOGqfX6=NjHdgk`-jNJm7w zi6Om1@EX!hf}8k!F!iMDkU?;Z`c!MCS80rSy_u5UnTbLZ?(rc~V1KJjt1(NQ6uUrW z+8shw4zEDgEOD2|UCDYS|%bI39&|51@4pemSUOAzAg_0TT zeReLdQogs>nCXibpZg?Us4Tu#6b={FOXXlY{L|%vm2C*vuZUhP8?9CcMIoY@+EJoq zL>28IBmLM&okr9~8tIFudmUz^PaCO`)wbe?He-tswXGMFIH*f;O-1!0 zMMX?!ohvJ*f}Sq!WYpiTcx7bZX%NtWGE0GfAdME%<+eSddRD7@g%)Xb`$3d)oD#z4 z(&??ue4p`JSm^T+V6AyjTPRG%nYuVDju+CgThn%0neMZ=ay9-#NuVTfe)VYl+VL`2 z%F{~Savt5$vA@;s7EEj{I2JH3TwX`&G!EqJr&$n#>0JB*V7ohE)8dZ*#uxhmTypxm zF4iD34%85->G&0k!GQt|%6S4cnlrTJ3=@V*cUC&eq5Cz=)qixwd?zqhx*#(EvA~{P zme+MW)dllri=)fpj?b{Tf9GOgp4|m=;`Db}Osas$H#&y7hDZ%x+=)3gXK2eg=HR(v z$Ou-rZH7hhK=c~7*KBk`zZn&a(c(|_z?*K2Igb+Bogl_Njx-Z-7Ce~OQP8}Z&|&;t zL>yl76N-1yMp_6s5XG~C;9%9&M${RzQYIFS>&k0QtV~`jmTzjRkH^2_RgXzE;(~Fi z6+eRCa+x*eK)eN&;>FA3HR8Npe7Pk3^@FE>_+bg%E!GMXQ7HZ#D;XC?t@!szb&aZS z(U?U(pkop!gPjm0(1%?}PTW~~TPL&dN=;63XbLVk=knteGI07kI$ml`%}~hiFR!D6 zG}wIo5?|ndSq!M1u{f3SVQSvRi`m(0Sl95yTy7T1d7>bA zyJ^d{vlmg2x>5cH!4u}FXOm&kLbp-YJ8dK_&F0hVj7lgc)0^Rw{6U*jkMb{z#m`GJ z(PVaEEg__4S92O_j%6=-%ulP3VX;8!_R&0+*(}eeC}h=YSohvLcKz6WtcrEtgQM1s z*?sP#OX%5AjVNRNI;@(9O`&tNde;8Srr*6AO$R7x9kg)DlHKZEZ`>rDF8cMqt#jKQ z`8Z%+2*}SYH-2V?{LCoy5QN8rt-gQ(9(+Q0T)4cBTD4=~>u++W{4a}fW^3Y$vjCj< zvo2oDjzL4DhA-wU5L8M!@X}^f zc%FTXm3?nhskwdN#Fh6q-+h}Xe04@eZTwd!)IN>3PMg9U5foldLC7(J09c_r*t1v{ zB>C3V)cjzvR8fhF1$Y2C!3;4qzt|J*-Vh5@N6NUEBbfW8t-1+1f~Tq_!6Sc;Md z7EuwGOk-*dnsHZ>*OHX89w+IG?$M#q?vVixHinOXdHn-@A{(NcvTBFke%+u!!}~Q) zyy*`3F}YMYP4lErqZ5YpD(UVGly|%Kx?4wVc|JY+R8HA~f^eVigXfKmPA#ph>Dgyw zLV7%n`g&$Xt!m9Hbo$ug{Kl%f8BDt8$m<(vV}-Ex$Y_99e_y|v@Y9qs*_ZoBQiNw)~0PaX7mVXAvl6dAytyDxfVr?^vCaK--gphAs4F^1X-a$acRfX zC7MB#o8}dC@iSt@eb;fuK{+a8oIl1-^5xd79HZlRR@KenjI$^`_mzA^mj%SDyxOV=#2Ta2 zqmU-dULXEltQh!<6_phltJb^DgGd6It3xixt*u6xY)_duk`Y)l@o20p=`n%EPa)E&|?X6 zpLuOmja5&2Xyz9aH?Mt2{YS@t)xT5e=)pny=%TMD3eH=n&7XD4>;+S0XYcH-mtJw- znkg;nn&axf)&11@-Er!;PI~;-``5NlpMJ;k2k*Q88L-kii1bYgyYIaim(YrE{7Bkc z{kbN07cO~}Q@gjuOHajl>7mw)Y?t{rS210(jGu`xKalx5ixgUHj)UrG&C0)E6+??Z zkXB$7c#dRrzhDVFTn(ohEMYuHQhR7?n0Hp!(JDPEt>jilhzyVRU{(f6bJ}ca8O+Sk z<>X#yX0W0pF<5_5h06uH;{T7CQC1;6$_l1#pML3@fseA9sXK3~e6-j7ZRcFHZ(;SV z)9FF8`fgsutSi@m<+amCJ+7W>7)+1&Hat7Bk6LE?BaVw#obZF_ zuN{PTscFY8t^RaF;<(OV#SUVlb~$eHrvA<%90aZ|d?FIazF-L>vG%kYh#UKh0xX)2 zR!_dRjEQ+(OTn?iO@*kb>&ro1pOQulj5lz{cr_Tpbsjj${iE5gRI^92+3ZTDJu^FG z_83G5u?Ivi$Zj{J*T)Q9RCS_YPm776;t-@~QaDkFt%VOAI$g358%1ICaM}9CeV-rO z|IrkyPR9a?I^FSjU6^=q+&DBH z8WguA*8Qiow2Y+0*YQ4IZZc}_bR7yBd8CGB!esm)B~A0GH9wgZlzqurgQ+U8#%RtO z8&O7)P*fMdgMqs_4lf7rZcNX)0G?#+ghz`{a(LBgp$p(m#y&WH=+XN$4i6p_o#_i) z08c!sxUrbwr^8}M6Lt@-@upq?k?C6vVhPz2hnNP4H)W+<08z^9f?8_aMN>biBaSmLJw^qDV> zWZW(IC0A-PQbx!U<&$aAUe?@P(do6DyoQVnjG`#$rbl(3$80lCin(ky#i3-Q3=;!R zvQTw}Rz#nJ_&i-pGvi%&aV?f88A%vUakGgjGPD9j60HCcTQ~S@2LTkXnhti%|@xxn^V=lP=i-SUXR0Lclg?1;9_`83~KPoAXx#=UX*_U zJSGz~cwyQWhnEd_lLMI-!(%dm!DDApqn$-|eqkp>wKwZ`Pe2q>Fan4@mez){G+-C) zR44d}W~d9^9>qyWOd3q)v`dN8Zk@(?EI7EMLv1}j%C?SKY`V>OaCv-rgf3@+%8;Nf zPYW46amIoiz&|AuKD!G$eM}%mBSDrEmM6dRiqdw2Vu)>ecBz(c%2B#n%VhSA1kXPb1okQa0r#PkfW!SBL0C&lb$v)}4R zw+Qju{aJp|?>AUk14%qFrZuHqR20V|^4dF(M<;qo;@EmveO#B8lIA(;p|xv~yX>v* zwK~yP@{Uk*>V@5Ev9yKBGUrv>pZQ=vJffd?D3(Roc)*laB%`Z#96hzCb&0Mr_euC4 zZmEC5&%Gky@lZVy((!u(p&@+5rJ@G0v?C|Z=S+-=HfvXi$FaDDOGOQ0srtUg!Xj#2 z5)fH|YATnD8pN{mAPP=%SBMZR!fq}VHHc*i9ElM%LU9}isBSjuAi3)Zd0l&~>~m_s zaB~`vGd<1aAw(QxL}V1d)8Rmxk(-oQf8FR`&2TbP&HNT(oALNilQYGB~iTG@n)lZa-giY#lu-PL2QZnrTI-_9xsWsGOS zI)y4+b*D(OjqYmeARQb(L7B2q|;p zn`v$JxlJ-#r4dQ`8AP(N_#XOy94Jl_4QLmIt7La1n}8B6K&+IZ>o5m4+KhX%=QjcA z=%E#~7rjg!Og}`C(!Lf(WKk3bZKg9-(!QQ<9;Dwy%xM4E92$bh*K_z43JGT^ZI znSR=8HBn9mpm4p~o3$b(pb9A+a)PKox9U)<6(=f3Rem`R4VD?5+wnAUzl0$IbO#N! z8VrJ__jnQ*xQa`=K=qMBfC`ndMu%>|^FSsLgz^!J+h-GR)Q)=75+$n4R-{@5rO;Sj z&wLOD^byW}oB&W(JK8T{KyO7Mmu5s#rUv-53=0M?1Pvxk12nODEbMU6m#i}=`luif zj6gCqCI@IBdXajNJH5P8fE_G5+OPw~v=G#lJ{kY-xU6YAt!SC6wh1HY_XTgw65ecY z8}rta>KJ&1wBs9`&b>g+gvPm40mb!_WRPWy%0aOy5fD4m$!N7^mk>{jKa2}nE&GYU zJ)XgzM-LCW=~ea6;HFo=IqM7e&TgMVkK&V9q;U-LE6n8K`4yz%2F5ui1)^ZK!_zgt z0)jzNFl&ZIJeYI5Sv!Rry{XB72iSy-=14%qtvZ86oKbeSro`bf>Vus&abt^zPdaba zk=FDs(4gVF;0JsEL>xaD{4~|?_AL7{k z((3h^G`kXGP9VbAfDu3G9nCaaELOMP=XB}?tAw^Dqh7RnF!aPprG5BIcAkHc1*0A4Af%fTqu*Kb;+V=ophR5SXAD zE?}={I%+9wsXCi3J;P~3Z<@{HHL@nPu1$_Cc*|k{T~Y{$0K}`L90^q%Z`?zp81U*l zZFuiK3wUei@d8)b)|>Xcvy(SGZWew#67Q9}^6C%ww>|&Tn>a;gZGOYGW+r0^`0($G&!4VU@I4B;jwE21&Qz&p9-U^!6Xzfnkes$ zUY)9QcsyA)lxJq?q?}xb8z!KGe(a!52TVW*ebIrWzk@#QpbnPw#}93e76($U4hOYR zq=2Z?f&ot!(TMpeMoCKVGJ1=pU@u6+{`Qb7CS-y^#NOkRpS-@#%s-p_$fBT?j=Vfw zP1_@R_ZMMC*j9QK?br9tkT@|}39w`1mMzcpzcnwk)L^3bAj3C}F0mT430dO1=l*m0 zSC3P?*X89Q!tZqpz>b-u5ZQ;t(IM%Gg#|O-?p&e%o-Hf$kROx*vc1KB|8a;|Ytd9KMz{tm~Uspkp1`hRfnToxA7EpS3V9 zT?cdNnjIIID>dmQ4D+R#?YRQNK1uz`)X^%=cKz7xAa#&cP)0X6y(X>+89c~Vl&67} zIXuYLR!z1F9j~`$rkN8_OekU2@Q8H`6fB#rN*E<62|ExerZW3ekI))enl7H_g)wL zN}l8R1$ySY6A^|2Xhw|L!EISOemBcQ26Evb!<1Tsq)pXW5`^l*sv$?-t2R}yt2 zP?(xOt4S{A!oq4{Z*Xhb)SxqGw7EgQ{347}F_aF&gD{&0nvh}3dRQ|^U9@Lvn#pEx zr=+D>FoVM&W@ZJrznWr36wl>yxUD|7k4=bB(9@cnP{L+Ag)wlLRZ}JK(cey27h}eIh2m|lkScIod8=#r!$V%(+}xb#c4hUFtmD<6x_#$E`*!i3*IoM_>fa9} z)`}OH)0)fAqk^oBpN9|UA^JjH>k+g}1k2;_3<9k{1c`BhKR20V;PANe)!>yT>l;uW zNCmIwB6wW+YVb;n<1EwBn&LYjB-g(h$g=Z562I#rkX-+2Aj{$?20Z7()3aoN2Ctk) zw*pbSK#7+EO(YZ(K*5Ohyev!GI?H`)aLZxGC6Xrz*o)%=4<74W~*X9T5g&8Hn%8@M{3^@HLPk=wOZ` z$zuLVJNKWhp&XKs#rR9zPJRjV`7?`YQ~c0T-9t%Ep((xd5+bOr?Bxhv8efb*=f|F1 zpg@xFn~I-wEj*#c#2tsoj-A@P$-)z$c|n4S7JtU!3F$dnGKMYT@J3@NxYCewHN=@9 zBP*Pu)DX}hCJZDTv(&`5)Sdr99Z3jy)PvGS6Z-W!w*;SA+|0K$2#cZCut$*cfy62x zpuuC|2o4X9m=6dbF2^FOEF599UJQ}Bm<%HPJhB~I;Nq`yX%Z}x-x}DGj-TRmGCNI3 z2(kEdQnfKOHPyz^#YR#2g)Sv|D#;FGspUMCkVKUXJh<)dXF#`c1Vig^?2uxMTyG0R58H>^gZJ0sJS zj;fsW@v+oYr|9%ykb+LsBgdB*E29-;@IJ?6Xpq@Kc<(HIN98+f%}=zVg|a;?qaYmL zxfND^?}eK-y|8=r?7_9wGye6j`7iFqRFlnO)2iCq*S2Bs&GJECvB)4~`cmCy)abIN zu_7`%I#4V|m9EdwjaBJpXJotm29wgWI3*=5ni3eC7B#sBr&)cd*3I200betbHnmz^%Wd-jY6N+*xDx(3c3)^n~E|)`s4c4 z_Y#A-ap?T);oNnSC12|i!QubjKrmOAJ_B8xip*A~pKw}vo>}zP?@tVybpPzxcQ0$2 z`M{Hmo~0$Imj09zEv0ebulfJWJTdX~^g9>LoWA(ZMn>79@^VcC>2kS5nW;$>fd%rp zAv!N=aHlD{^9@m6^~8nB3T-_-3{Ev|7splgb7#ioB(Ia?K%3)>O11khvbxHdIo*s} zkSCt!Lb(Hn_#_rXOu^{`ycxL#+A1K4baxlK5q845t@2;vHwOR=VMm<|ryktS3{;F$YNCN~g0&kbR1s-1-CdLYq zd^sLw6UU*jpCPM_?FFhZifBOC*gjU?@*!4yi9h>UDa0PTM-d0G+ANrwtPC=ZHcd8R zP;4iFaJ|-2%36Z(LItd`DV!nTRSU$Q&7W<2{*ZpNRDAW-@7tBaH9NMiEv`sma~)Sn z$NAJJ%tYM|Ib|>k=yK=05ffnaJGVp}+Vuuhl;8%)`!8T^;AuoSejS+8LDHjUn4rXDa$@#@*0q#S z7{J)aoKtPi1G}dOm$|PYn)4Pv6JG2uD8E+-js2E-# zc1M;2p!c*o96at`A0ZlS21))ehm`XF3Q1w^<#~|APdFq$Y3qU$cKVw*?dW(9=x`uO zZ1$m`qY5w(%&XOQbrQQOiKYq7{uaML{MG&%|1tkb|BrqJ-v&wo;{)Q3j<;I_0fiOY zbz*ZjOzm`zO##h}WAma$_us+h<5nvQqPS%nr_DaVn9i`FW5;%4Qyk5q%{eWY?wM1a zQ0IZ6&Cc_n${^JeEs)ARCp@ku8#2jI^7lvbpnr*c%PIuJ@E_NYM=Xs$KW z!W9+wjqqb$l7#AULU8m5;jouWK=BF+M{)bv_oLvIYty|Y2~F#Gg$BG<1ACPQ7EX&x zHe49)XiKBo*QoEv+dIfPjJO5BDm=i5nkNOfEAaqUIiY})*!SF6=ikGs)(~KW;qm(v zAi%m4v~k&N^h|)vhz_(HF&&5sZ1SWCJjBfOAxA~pU8I}Y>`5y26JLi;@rxAiqD^cO z5fx?AD7ChQBA~nx1)V6YG&z1ju_dIx*#I^z{+Y!mZ)+{?*@_fyKO^qEX#V!0 zH(q^h=gzM(flHU(1d=B z*WW^mPms_T(eQ)bpQnK?3qqgQ_k-~zY=*NDX{_Js`?)aS3{ePeFEWh}HaaMrY1h|^ zYuhG@Z?(C^d8*h~Z5!Ny=K$e2LjYl1GmS&#zCf5wk#?~5W0_)#G^14`+TAoJO}I2n z=Cb56dz1U3gyC!T9cii5dTto!RmSY-ssQLL4jOR+KA@U~q_Uxk&|@v4r3pj69Rlt?*fCrV65g>R{$k;{jvN70WHris*_UsseQH&AsOLb^?E8VAt zek`JgP76l*?hmR-?c09Z+`;x6kBb2*MBVT`{;?^^_#VH(F(KlqEQQa9smX|&*G9YN z+k7ND+g)f#LypfT_9)7t-A$(M(_*@m9G5F+TFhl~nG7C@y}l5#eVFT@mELRrC)qz4 zv`Th`&Oiyr&_4>Iz6T)J_$XsQ$`my?9Sp7Dv9#W6c?A6;csW>t9>z@^XP^@(LRT1HJ!ilae8z6!h7%BE4};K+wZmy##9oip7!6jgZfsh+thFN zsc(%}+o*3a72e*@Mu$K?|39<}Cisu{7AC?wEL_B+WIVhhUKrj1gUUofWQ)bck*2!@ zA|FLz<>3-rB1Am`fwWw{WU{sd(LF>2j2oO&LoHYxEf?AT{1FczDYuo8E36HU? z_6D6<*7a45@M;1WxS8Y2b|ha_AUR7z*!~^0J-TA&E9$v_y?r|hQBrBMfqlj+td5_xd!V%D5xf2yJY+QbPT%sZf_o}a5(gV{O`#$3t zU{$25%x7p{_4=X;)jgVK+=-X)aP>Piq{mk=+IFt>CcIu)XP-(ssCsEM8-rhLIRTsC z$;c1_V)sI45KVBXt{5MaX-a;5EG0oeMl)voCrpea(c(?z+FVY4?J+5aHBYja;X~I6 zI-sEn|iZz2}}C&*2pdemSik*(F>$u5rP#TN-EGDz1LyjR&4C z8t_R`Wkt`5#z74~uT$IAlV?8I{-gRp{pwz!Ki@uS;oTq|zjjEt=Aqf}3 z)Nkh;AJZ`Jp5aY1m$nF7KkPqvVNt>9;TxWrc2}CQ^ze#Dd*&T2$t-w@jigzEECi7#$8Zx&-8^qRvC%^VUFQ>@UxmTgIzAkk zsWHac%#~y_wa=eVjGHq5{0YU}e2`W{K$u{^_%S|jfY)wUh!3tI#uVGf$3F8?ahR9x z^it_|FP-82!7F%ktV6ov$HiVG2fzZ@J*rN|#SAD~J%1i8D>!Yyt7j!%MJqn3g)2BF z5t$-R8rR?f1f^VBB3)XI5&b9BU(^#AJ#NR~6kq!nbEnB_rPMfo`b-1er*9M$b*6d? zeFW{mtLR()_miQS13qJWZ z9xHLs!$bOvoIPXB>)S9jl=Sb%r_GAY@>&PW3nh85NdCbs574!(qg5a2=6C zIW#kqy?~88A!ej0&Iz4YpKFBp)rTcW^Yaj9)<$xAeTdq2N`DNN2q7Y^r=Ny$>c*9o zUwO@(r{{#JKX+JVFvoXe{>=LdZY;DYJu}{yf^}nuTG||gR^8v$Hsw0w_h#qxdGyky zIsnKp?^JwSAr_U3r?+2|Gcit-Remiq9u6-my~8p38k@7*P(&} zg^0x^Sv{EE^j`<@K&|lJiY<9Ivjw~Y{T#n?ENu!_;WjA0ewyOsYDN2xM@uTXaHv$E zM1q>=fbAClB0h&Oeogc8>K?3`n87@rS!FD_biy_5t@wiPkhpi!o&=m$%cTErTQ5#*wO4ocaE-ov%M%X6=Zj{}Z zRu?o^ti~LEOc&oKee!+9kkaVJk#gkOi((3>IeND5|t{$YG zj>o^hqy49*sf9Q7x$*i5LNPkz-XFeYy!wrlj+X@}UZI}(!($uNGlhjuytwtr1V;d= zG{lEIveV;(aPbk$@wTOUc-ATYa-d!0EYpNIVaS8Tuv0g5G#i%&xeHqt*QE}XP1!r1 z8}rmHUA#))}EmaRq3HSrat=K#}jf2-QADJ%{aR> z9&#X+M53u?x9R_*?!5z}s`9t-dv2NDdnRorlS&9_Bq0RIfRxaqVqlQodl3);Swuuc zL_`-vWEBw+5fL#WVnY!XSwy~yzO2hyv4iNkE<)zy_ndR@OcHeW`@Vnv5<+H@n|n|F zoKJlo!KN2HdQWPaC16A`y3sB>N5)u^keVK(vbkwKIzCd2Z4fZN;5{@o; z=c>z(()WM%&h!Ugfo8u~ z%99o`IBX3bd)cJ3covYR`$NH;;M9nNx`w6KG zT|`_@J3Y8NGl}e`RVjW7eEZH;+XixdzT+PHvPlr|8nj|`X+sc4La1$ODH2Z zA}0pv94?dBrjJDYCioZ-=|n=C!<3pTjgF-{^nNpvDYDFPwrkc9mMQZpwGse)64Zc_ zv$B#nvr&`lVyH=8hr)?#1!jlpo${$s!>gmKcg7oWbex@a)0yG@i0#9JpAlgL{b`># zXv^b+$Hp&N{@OH_e40T*|9+5U-h0pD6N~5%9Yy(tkLceoKS?h?=%gVe%$~r;Ix5fP z=3Km^aAEij^#%P9t1hS2htqm@E$w*StfdckoPr^Jk^FjlO7BjcYHpBc zmd{;shMbG*Xil`kdOma2L!@_ngS3E*>D|r!OD3Cg>e2NE>O%_3JHtBJ3wjo7z-E+X zn@b9!Tw3S0+fqru9srI$iwtVxjl8%5@z9loHUpG&B(efmdB4gb)QA4K^tenX|V*$ zG7su=IGky7I7}(NoXkuxTIUzYR=-~#w%XI&dN*tk#v7xxk>kj*acwcH_<}`*heszx zklljggl`m;c7yL#R1y17%q_|X7H=sqb$D>$hd-1=NzT&oW3C-QQU(keHDM{qiI$%C zOr1Jw0_i}M%|w0#%|E$)_x#&Q9zDHk-V=`^jX<}J(g#6``vHyw3pX~AiJ}^tLOuN# z&RCZFQD_Tk4pv;Inw#u0Zf*+o$l6eIPcAh2@-=HSal#-Xfg0-XxRDG8A&lhdSuOS2 z>aCc0t6Hv|;GTkUTbYrn-UfH!!^$n-#W<$m`X{J_U>6N4DKhcu2VBIwTp~B%;emzL zQqS`kxB<^$jl?#vMqFT>*U9j_WC(T9T(42|qg*)6Xmq%c8s!I^l;7`mxO~u|r^ei1 zutW}X5=@x6!*H^9m+ z8S&-6kGqiLQkdDZYFVsLe3Z=T-{^&RUtWIlwAQmBEJ90q@t%zkR;m$NR;WOx>&*(# zKX`%~dd2*R5%|s0z#iKdg_f=qi{g^gGbH31FsCv+$|EHL*D`Y|huxmKS@_QUocNY0 zfv#2aEZcoP_;uhFfLF(!>^R5sPUybycESK^83f33rsb-vMvNk<*+UFNjU9`f+;! zRcjm;s%60V0Z`8Pl4a(;)r%thBr52?%jH&GcMKOwzBCU2K6&(SsP&&p&p5h`-uLj3 zXy@{ZZdKQZq+z4hu2}JCowV|s557DrH{MPOow(CSJ!6s5I+U0%*G-%>{(AHg8$`bo zeRRRs2*PMH5V=8WVUYnMCmY~xw4?oYvtUM!g&B*bx0!rsMqVOTiJ3fOMs1#%3^0=# zGfBbE?B;c5L?Fy&6v0Ubmkb`u1PL-nox>VoCUTofJ(jdXR7Zexb~3#aUf-u3j)$^E?5SQ` zA`1h(J3t$FY`_c)EnrZPUjS@)1q_BD4wkYMM*PR=gPG!2+uAMD5+-27jZnc5dJ25K zm0}Q;j|~Jtg3ANsMzkFtE%7sT?Z~fS?U>yUW$RsxDw8BEyqyn!A2yfi&bWJ=HXWo)V9SHjET& zh)A+fVmkQpfcOwbo1z&MSwzY3N|1Q5M+5HduMH3hqOxf8P(_`7P$uYe(WqWI8^0^=;=W;VC zEs`EZ;ESSCfeFkIXLJoQ*yR=&V?Zb|7fU|d={B|?wi$1zWHF~ z%6AW~T1o;>{z%g0F>4Q`=sf%HedoKuL@p}-XzY}qhfV4qTX^Eyfp4=-hAnUgbHFIy zU9#O^G1|fTZk1sGOGY~zbLL%0Xv3_4Eux25Fbu4 zr}1tteUL(2ir+BF94GGX)kjlj=D zX`c-4Pm5ke)t*6VAuxqD*`lhmwGie@fiDJS4BZ+(&!nnoA^qatvq?td__U+*I1jmm zal^g>6`F~7yu{@~=+Pw^5EKNWdeSb?o}r4CD~~W1jij4#U_JX#%YpUa?++<;7=9PQ zO-9V|`!)emZP*YX#hylNSAE|SA6Ad4lhl@M-N*!ae(paTXr>UgUcQzj%dGZTVF>b*%k1oX1uqBTI zJ0#vTZF;ysWaNrW_4t~1sgxa9f>B1gH185Xt*-15!h|iB5XM|R0{H*(59Cc!aq%Q{ zfj40Vh;k!i9A;-0dkAeXyoQI^QH+>jF$z|e)uAU=qwH|nus8HsIJJy8gcz6r8$1Yf z2+mdy>(P)(Qdgxlv=vHB{OjrVbG`fZt?AkqEuU(b`DJ-9)M88!p zehw1K<$APRk9Om=ex4rf*6U@Tg7|`rgFVsegxc5oKyR^UTN>TE$!u=rt@I>p?Kz}! z0;o+Z;)AY!;O^DCuaY02$4CWhI>ge6Z|S&+lO};698FeXBAGVAvgtte!?*$jn`A?x zE^M_D-Bz9Wxem?Nq1ie#8?SZqbZ9ncXh4a9%`LGN0Od&a&bDrGVwBNdRrzS$T=^BI zd5}s~2`N$44|0?#A1z}`ggWh{3<&e0ePx@`=XOJ=0B;tWl9!oaUNX{4&UncH5D;+_ z4Bwdv1}09>4A{Nvyil#ZUW-l#^+P9HfHiALNZe!uiiaQCnqYjBG8+t}#%lb5%c_tY zK^+9W3dX-Wa@;q~q!$@a@1r}<9scK&WSJ{|yLglCkbJaL-lfTOF8vGLNSF2}@<1}5 z?s}CCcJmL06eIw+kXdtEw4O1ex~)iK3h0bd2GaatE?5|phlPA-Aub?%ge~M53(N%z z8DJqb7LtOW*+CG4K3OctNi@0~urwU91n}G>)GE_d)!F!+*^u0zT&rOd!=fuF7v-PG zrws87rjQydGNjO_=@A_KjX}WDF{>dXi}WP{(uE9aD%|-98SvPn+n)gJ>L$973?$v+ zAXthYX0n{#L^u8N8#(vOC9q32|BB;cGu9ZROYIZQ5kU;BGyBk2e?WrU5s5KghZp6U zz+bS4pyPvBNo3_DeEvy~D{na4w|ET0_{@eN4LhAYMhHj0xSj5zJIU6YZ$o8{nf#r; z^T18F-E!M{u{3@{Tv2xN?xUxnFO-U_8YYaLgOiNs*8@jOhe`vc&9X||hY;&ZK`ITJ zs`ps4vII|>kd~9{%m75C6N&XsC;W=~u`wO-gMiwf^a>}`aAue#);`y29YPM$HQhSd zCIWe+l11M5xGQB&2O6%^dwe6{cBqJLFfBos|_Ii88o(U(uqGyobBfxcBdissZ z=`ruE;zMLPSy$msanOIIXBXD5n0d{x_z&~~eV@#}i4>AZ+0_NdK0?aRRt)(uc+c#} zkqZeoMSDZ9ain{_W+6onDh#s}&XVNxbkCC5k@QpPVs$!sAf4o=lRMJMz;x0j9dWvJ zP}irYn=O{Kaqt3~z2jnx(XXw=p@nYMpiFXcsTw9f0g^f(BX>&MX%Rgkk2>453V$UE>2$UN^bq{L zTj&uDD<%`H6P$8_8HS7AY(&Kv^R~Mb9CQc)u)eDYT_Go@WC`1?Wpa)aIT^^c<68;Q zG3IlSMx0FXhvIU>YJu*ov&qC^NA@3D2ew=!G;u|hwF?_X zEoVW4uvhRe@j|=+((${2cQb(;rU!AzeTlDwcs+sCh_zy7{4;!g6F(?c#gFo@-YEN3 zQvo6f+2pfS0GHbxF{L>qUnC;srO5^DTzUEVc}NAwC$W6;LOzl6$^3jWF8}9zu}l76 z^N|XWk2r9Ce$Z;wjR9(7Ff=L_{N2|1Us3@QnUxyB3L-z;fMMP-75bMm$3!Z~{-@SY zTRiY^{qTjK-g&a=lhq4uyYvM8W@E$gF&qB8W!sJ7-cDUBD|5rAit@Iue!1F|wRGa7 zhZ=e{<#)KMThH#Sk^qZKiD2xluvpv@qtHPJ#%4E37TIdoTi9^3L%PM$42k6Qz*mn! z?g(|(N#62{GMP2kPl^t-WmSFymdO zUx!9KaPzdDrKQyayZWR-(jw%zu6r!>i)TAoMl{-LT^P>_ph&}moKeK=Qi5jDE!m)8 zdi`KYVq>eVWL1vxhv{{CDS}cgmM_H9bGnJ{ur5r$a8wq)dHQH!shfUDwjatUH->ZC zKSQ=kbGyAigIdVNS#R}hT89~k41BxK#uc;3K6QTO-DrdvED*&6pgD>NT1<SZp z4r_@^&~Sy^mEMc~tmjfxT67kRSiqye&5B3$!mW`lg4j|X@@Slx;7nk}=YeQ1U9Y!$ z4S?@5SWx`n5DcklKD%#BOt9P2y+$wKpE;(NYK0|&O-cF6hE`qCGNO1|kO`2xIZhCS zBKuJXp!nQ8grTI9&`r7_81^N?O=szAq$9~CsqrJ5Z(shfG;HIlm7C-Ve)_@B|E3@L zX&U)5NQ%$LNsgQBZAxAHj7!|=Jh1Av=iKoLF6KxwVT?BNjv@b#O%TqD34F9a+75c{QF^{<5HQDHA!VPigFqhDv`SiphoA;b-in8~ zm@$cZd7a5=Vj3@?iftwkf|~FEZXG0)40T{wY9N3%*uvASO0s*^u=@wH)i-Vbb{1Ev9EAXXG9bSA26+(Q?>Dg8^gX|~(?jcx{Mg>PdoS&lIfMtQr(9)yU=AF9z zwIvwVhksj!-YitV)Xr!f!l>yPX)y<>0uK;uN!Z|4qXJ7(QfzGGENzAkmSlN(o55qk zto87*r|QGo>ABy|w>-4fF!Cp>mgFSfIXBWyI+=*miRT+EaKAXlshj*Dd54IT$gf0{ z*e17Qi(|_hK=?N%X0{ug<6_9$yF%qD#2Li{HR?v>qL9GT4xNsvq7?}hN8I=k5&uoy z@$cytxnlB^_db9=M(ellpj)tU;$rvC^rEV$>59-w6Q;*ZU42Yh>+;f8FpB;n2X6)CI%CtCOMReCX$mF$&1t#{{hY0I%V?7Q^#1tFsxd` zu#)>hz`X?J#4k*aMv-P|LPSP{@oh9rirI~sM$wp+6{$03r3CA$jpP9%8E7P3ST>pw zTCNesuM4S|E<~^)l>S&NDJ*1uRIc*zJqM=y3WSciJ%}_dM)}6=M6&IFZr}6388;nH zcG%xuxVEAH%cF>n2=pgUuk-apIQH+_laV5bs4wZ?=_xj#@L@5CB^RQnQ=+vAqY!!P z3|PXV9}~0i1z>r{B2KdW3Y0VpTL2a;0A>T)jb2CENI=?fK;}f-TWrAO5UUFTZRab2 z;g)CTsYs6H%+cGXbVaw5e)sDc`tP)(Y#AI+C(aMgk(7AOxVf{(jh{1n93ZgI(RVL? z%g!=-&4=gcQTngPpLpW&#~<5)9^pgI#1hf$JtEp{iV0=yX7K-6omMOpXVfXWU`QFv z#B12 zwgZrLTgkZIgGsP&LcQhy^H8sePN+vi83wsCiF=QAB;z#OiPI}rm>umRrnnsG2xWU5 zDZy;LKIoA0^3xrmAmZ2)V}7?gg|z;#W3(&#|+xcU5Er z6y~rY7=Z#GsGF0MVQ-|tVk2F^YD^I(MWZ&SQ!)e`5+KNIPHZGwrcJc5jb!5+$wnTq zk%2bS#fFV!!$z{%1f9-|FI(uAOu2T zC(L6f-=NNSoZ=+sub?z=vJDDX0kF0pA7Mt??Ls=1y;o<3+o07R)fNUzYy5*_1xui< zf{nw59WxAnfLYN}(fKyYcI57hKhn&-B)Pe%6nCJW_q-CeE$CuNtU0W zzp%o80?#qBYeooru*R?t>n)BXk`h;|nQh3_YD7Z4DE()aVY**MQDNE}oh`qHHOaL% z#H~$W1P9|Hv^St4f$nik%mD9NE$6pyt5Gpz$mHldw_=!~h{9)w*afh{PqrO9@4UpX6F;w|cHH6^MNj#KXiFzzZ~2LH<$v9oAe3 zpA*VD+zh$viJRGFSXH>ASHw9dYNvqXO>77(oP?>9yy;1LLQErWD$1isY5Y58eIOdr z3hPE_FK7Y3Tn^;2rZFq`zo6aV@>RG42TNE5rj^!!H*Ib^f*jOR2-tn=G9&-(rX$D% z+!T{FAw7J>9U0^e2jvm!$!y#)Wxq(u8R8AYoXIFr@0tL;QK5N|7$$IN9-!n<+?RfSk{=DnOt4hkVgF;aWhm@ z=W~L@swOqC171`g_FkhOK^njM3hvz|S}F}{ejiurg^p313}^%tSc-?pdkE7XXg>6u z(Naeg9bP?a_0_=yEi8Yt5cH#{8ccX9RPcFeP}3gi8ump?*W9%RPfU?sBirFQ)(fdo zD^U!_L&AHI#)o9Az2NZ#41_zc(p6P1>ho;Ai4`CBh)A#bt|#uf^k2x6OWp!yvr&Yx z^oB$7d$K4WVuhclbP^WVE?lfXys(C>-qhgL1&onh9!b|Zb8 z&JdqFk}Kv_k=mT-$2DU?B(eWr&B8KbzRri9V?d;Z7!bxyo)vX5hE*AEDeX=cR&rgA zwy4fYDAQ_V6s=9$dFK!s`b>QhP`0YwO!QV{y_Fu~y|rSWrY9aCNDhfT1Th~=n~sCS zS|ewNk=FKUi4h>5w;c+9aztS5N;{x!nUPwQF2J7!2wsC^B18`;8#rSi&w#dT5Lk?f zsZv~5Qsn|aPFl{C9MmKz6$Xk#b(Z54fv z^e--E|5p)zC-&1~u_*KBOuC9J!nd=hSo?3Hci`J8bYUF0sJ6-l7&``$4cC>l3{3+( z#c?h11aH zn=UO`diLvcpOB;H{-M76@*Dn+OjF-}_4T<=@k@x=mC_EfMPbFpDoO#~OFj5|1@e=i zDt;8^L&nYoB9$m(qrg*ZP#`rKfs|G&fLTHIHqoQ}e%{9@y!C%f*NR=qTMMD_Y+p!@ zw7E|(3Lth7OA;W~5Hi|rv;pL_$>P>O=14|!7c`%hSyndST;Fu+M?e_yVM7xqiA|CT4AU-T`<5_! z)dg<=>JtPb2^s5+w;1;tKQ+Ra>PqsBSLdl0q1fSP7ghHPit)3wJ(&b^@p@P@C5 zM0FbUTGSSmhrCX)XP4^Xb#HA;we`K5h+-32KOj10F7m1l4w-m~GMpQIo^g+bFV!pUZE7!a*C7!*+CE@VzLC1A2HjKO)5a6`1{;F^7wu<_NA z4s+Kh$BAUG06*|8QrF+0CpK)5X2)L_Q{rEf1N-PDqT43{D{?R8b12Buu(NUyD(MmO zr1@)Ju=c@G@w2ul9!j3%%My1+!RYmQD>#aL8L|&14s{NRr(w}vsKhBDNhnf zjS8|kxK9I#uVsmHJ=9E9m9s%W(my%fW6jz>-7!Q2J|6wLf__345C?#GFATbN?46Hp z1g7R@;-DAmB;Aw+GpD@s!=?B|kXc^76gg48<0;Z@#^mqMoutRRT!l&Q0SEpH9)k_sw1U3v;asrGc@&}F1Aib?j2%nZ?(5wQ3{%7HvS z{5;@a6f*_`1R;iR0%UMtbYNZJ)qp%YFdHu(#!E#C1l(D0_?dNC!n{}(aINstZM!k% z=EDVDnZY%4m6_9b%tbDFIsd`vkTZb zCFEg^agHvgG_(KiZK-zbaoSLTqO|9olt zxL!BON7vrIH&Ptl_s{BPp@x{g-{;S(*!wd{x#pY92n10r7EU^bPDN}fffy-hm&s9E z1XFggn5i!~|)cJ0}xTYUKAuk3$n!Gx+w z(Y}4}nm>H7D*rBT+kNPbox5IpYx{(W6DLdCH~CO_my?^~wq#{kB`d0|B&4F~GXRuTUd)1t?9627u&Rql zwSKf|VugSjT2^jF1&TtecvTaQcTw;4xK&{F%1Uv0mw~zy<^u(c1bp4}g2gc`YnOyYAHhpM7_cMOE!b# z)H_((8$^*BtQd(M?RW!Al#8&IsA*C;f_pFGVoon4kFcCLcSYFS8Z5B&M9L@V0V>)8 z^cT{PTyh17X^ptdd*GqX2O76+K0vd&_hqZ zeErSGcfS7CquS(Qwj$zLg{5!lp#*i0M&MXS3bWhi@mS#!N(mbM@PAnii0$enn-dwK z%=Tc4U9rDyv|UqeK%a%SM~D>hJ8_t~-R1aJ6_LoiV-p1Qo?!JEZ3#9Ps00sR)O?%e#1ZV!etkNjKQhj!C*f0XQ6d z$qob1LMDq%D2k%AT!ydR?f?*x4$(ZGfs4(k9;z*A)~tyv@fI2l{CZ(2FSnY!NJfzZ zmy5-zqBsA%IK0W6y-zV+`em>Dihbyv@s5&^w;U%QvIrO`Ja!E5lq4Bd?ScUuRavb; zzgpHD&KK1usjaKQF{>|5a0d9tTeb_O`&xd&pY*&NG4H^*69u^_hS&T&I`q`iJ#T>p$VBhEcPl4t^^H{EIa? z&9)TtUPlPFyBo|eo1Uk?>?OU9lkYyZiJzT{A5~`He49&_C{=O(ZJ8$XEyPj!U zIc!jFeOaeoy~JrludW~7sb_ET_}y>p9XRs9=6eq9+4TbbYE{px26pMvml#&AuCMOg zA43Qir8EFWv=88)7H_}^_rE`2(ZeiY=NTIy_^A0tVDSuQhw_M71wXm`-du4{d6zd1 z%xt*+s#&kUII|(9cH&+Uo zQ4g7&M(Wc@nlM{OYITEkvvm?c>Htv4zR;1;KC6?a=knT{sxC(sDacO2!1cs8b=$K86{>;`^!f{i{en0R|rz3Y4h$$dC-!= zRmco=`}NQ?5yTKnmmQ6LN9yb87*Sqvbi_HjXE1q$Y@_Ffy!!F3(KmJHxr{CZ~!`eOw1`x8w)d!iLHi;&{=>NwD;ZY2l zER4!d_MlmW>wZsOs4Fa*H)hY5)0A23|Lwffe*oTz9%fopML*!kT3--N+ zoUBpuadAKPn?dkA&k#usx1eIOmg9wT9NPpWC>g~NK!f!S`{b_~?bGRS3-7MgSQHkqpZF_|D3<2XBbp_MF7ShkX4HoO*nlX*un|!R zl<5M+kX{Pe^chUehsTd0$R@WPmwoD%i+Hi)DhS?$D>_!;(R%UMrRV8#viygobc4=V zVP7VGcK`jG#qROr+Z)COXZT-*Ko}xci^p)*1c6{1@=Jykk7V=MQq!DRKEfQ~7U2R` zt)L4agB;yuX=uC&$)&13TXU+Z8HcQ9DodZounF~*WbL}AUwQta31us*b`QO}w$scU zM5VVlI?2m6+_HXa$3vlZD{7;zLUQ21Dg&BRgF*QS%>kHT)UFT!Rl#c^gcMPfSpQws ziE?}9HiC5VlFeiY9Vl+0ui`Ho4{V4RKyDO?6)50k$_s-_?-|Y2Ww-+YM~+u21cFzg z*CBT(o|wNNe`UUuA3_qcHA~1$wes$jIsMfMVZu~H^^zoD@-rOQ8I)s*T1Hm$2^$f z*YU%K%7jvu2WzAl44+jpf|aJ?{Hm@nKctR@A~L*pk*SX|O2s(`0jDDB!^ zwhS30IYVi6!y=g-+t0Z1#_3hXW9Cd=+$m6#y6QHa%b1Xe>axJ% zImOf4XAVnq4zf7!Tr+;bf+aK7%n*mqm^MR{X3UsA;?|{08~XRZar*G9drluReZuq) zrpuw}CDTQ5{?#j|%OxYCBj${_WrTca1SuXdc!W4&gkb8?u6seZ-d%f@<(B4Hy$+=B zrx&@=LRTQIy=)0}?4*Ng6RxP1nU@eIg`e3J+-r<9Uab9*bN%HA3$xQy{RfSwc=X)4 zSQ+XGpk1Auxx@^%`QCC7mJu9S5pPZfOD;gt60rHha0DS3h{eSh7+YkpTA1ZRwAbuA zll|=H73}Bu(p`!;ld8_b2KHEKWPKWk2B{N5zSkj|IcDv%5ex*6X$*7KLg((e7r^>I8lG(4lHk-cp z+HWE$etqW5*Xc?21Rb3{`_fLRzap_;s+l>H?7*}8vBxwO6UQQA2XURF@A@rU*5CW! z=KGEud1LHV*OvB#{?N12)iE+IE0mS~#pc4Ce)N)QlA(dzOK%uG9y@XfeNDd$f?7gG zPdlM~)KAR*962M?DH#jfXXJZq`B}Cs8C+~(v;?)s*l1OJV=;q)YjJEZ z0?EY7vR)D?&=Qq)Hw|fOkiKuTn ze88Y1SQ4xc&I#TUL_$+AXe};AWV#qQf`5bsr@1)!H`NW2$dutq0#jxocoaV`pnxK& ziC?x3F-j@`UPVP-ZZ`Mzgxuv`=@Z}D@ykz=UqpHsnX>&XscG#>25i_ge6oG)i1qi0 zpU^iS`SeZl`Otf%Pj)oUm~->jg+;(r+CutQOf77emcGAX)Uevy`}80D)xR^t;{4-x zKKye0&{?Mb!s^l~hY>?UinzxKu0Ee%aCuPNqL`+~6wNrqA*LN4tZ1d11jXEoPGCYs zJV&@FevGf*t8!W5JP zU4a#Lc#wxbELvoDnS+LaDH3w{U0$z0WHKlP?IdeBtXLfZvlY2GR(o!`l8%W`kawcx z)-rD@6m)nCIi^?35NkRma@!&h{BROLsRf8onE9Ecj(Oqa2s17stVN~wxob_=oIi86 zmR{PU`;OAuv*ppIt=&dU9x{Lg1`L@z!t+1>Lu^g^P6BJ_u@gQI&luAjGR z_3Bmg?tzka04MJIdPZfBY$T}nBgkPgL|{y->4>#Y^9A*sHeKb6+6os{54KF1(aSGB zk9k0>eQHjDIl=NO#CP(Fdkx-PEGP4D5zF-?0mv*a0p>F`77kFtO&yarRM>_5MZ+E?PMmS3_RBLl<%3NWe- z@avI{o*u~#*}+>-Z%1s%?gbox$rKtHGdUy_bS1&iTD5%cA2gjg(a?i3s6l8vO1oNc zzp%fNmj5Z-kH6lA>QMHF_oPtU&y=+L)G#oA4qP}=uW zaN{)J=Eo;{;;(P}*JPj4`3a98+A=W+I6-myLFdOhT%;3f?QBb+ zK1@-}nc&xC#?aI7Aix{~#Sq3EYulsON01Y&o==FnVdvAW+e~}>{VUsLb?=ukwcxHb z%84xneeScA=Y+ESJ5AQv?Edr`n$x@#Th`JjhVxA}C@Ju1G`FSKunVd{Q;;OBzR*L7d?N_e?Eg#P( zy1&uoOV%+#m>9ak)mw)3kuMjf<$~9VrC`h-QUSLckzTk&6&)m=?3T zS+GYdr%(f(e{^DDba0#|^RL4|`hpis%PIw0lI8$&0Z|PHE>^h)*eQY#}#6HZAO2{!vl*pPyf*|L#TZqVszZcYrbXaW8pI#VuZu1+<=#2FF59=J}gP79b7<$ z9FCX_*4i2K$<@2ET!zUbNyoR}qu*`ZkHq+8H_aUI0DLtw;(uN|?LokwX3=}%|M)A} zM5jP7;sd%1i<}3ATcUkUPM;l^6ez^-8GNZ}g2`?oR%E~|2Z)gw^;tobf+Lk${G1SJ zIYB8nK`A(1lX(Q28Wj^(;1)5&ri7Q7?c!FY;0%yNjYvZBC;UD*1MrV&McyPn4QzU7 z8{Qd>LDn$B~uBDG_(l826^0JN*S z$?38azaJfQ8C=0sD{zbdm(mZxWH#N3ZrcsWYfThYBoepzDW+!XBA)f;A9p2D2%>f+ zk*h0~^CAXT4nmO@S4t*V^GXJ3(J`$gpUnH_dq|D zoUTB|)L1|^%K+lR*5a{?mO=qmdx<#%UJN5hW5+e7=L$(oG|!g`NG56J1E?EMq#FPZ zc2az^^}StVU%O$-(S@iU|4YidtaSXN_T*-g{nf`4hBpp<^gWL_L0tIU2l+W1p==Q8 zs+EohNax8-d7bxc!(_9%h;(G4XP|t!4ou`a4*+ivOHcPnIvKEXvJvG;l^)_T@)Tv` zJ4SJm@mC;x7+H$45h=<>qfT$vc`YuKP&kBOtBmxPUh~;3M_jUX9tH0?#IDj(BH>~O zJ&PPCGSrb>ARoCve@;2Wa+S}Nl9SiJIa5K4m#X8f8M6OcX)pOQLT_5hudeL zto`hZTmDpkzL&QDK7u>U%=}K#-ewnekOd{$Sgx$-&!U?V8;vsmhb_`T3poQ^fb7)1 zmTXVoT^tCYGY0|y7J$KWhebpYhya2+Rx%G6f)kXXX|oz74ynz$#VrtZw=umd%;zm4 zLAnswA9*@?*U1U=$4MvXNwJ755sRA^km}prW(EhwA;Dg{)Ki*3V!b+QEoZeI%sX>+ zw1dg5w~8o9kz8&EOH;Ba<6=u$d#!zoEw$)^6u>)+!7S-P#NN`vLT$vaXc~MAth$4> z44-+BQViwq*$PTg~w>@C7iaHNQ7+XlNV;9+hV&Um+Cm%uv+Odu7tOSR zUNWsrt#v(u!neeNO7tz+v&7uB>KF^==joK$J?OL&Z|$+8nXQ636A(Wajs+H61q%U zLaNbj%a7>D(qR1zw~wj$}av< zWJ)95OolJLCq!mWn?~1%?pZ>2ki3CC%(RvqHuW4tPm6m#(>B*kOhzV-r9IK9VSAPY zKmsP2Q-b!8+ZGC*j#RUtnr2JiyOX@kK6Ar&F zLp%L?wpv$pb*47!ie&&4%lmZ~gucQ9(T1-1k}1@|it3`W9)UomdN(atks`lyr>oDs{> zvIZavk{B&GAo&{yr#5}VRowyaTUnia;iv+G`zlnoou1+4C1LXb-NMtzs@N}cBOpy- zUPsM&i@Z6_SIcaZDwX-Nntjjj|gJ-`0w_s+b6VTw|4 z){!F1yYG8yi(Z~MD~Y{VIl#GaMQZ+o69#pFI+cl0jwlllJ-N(ru6Ms(0x>_AgfPZU7sbff;zIgj#%op)QMKPuCA}8OYxXkmn@gX zo@)1H`idF(xzCag+H-B`VGjnhA$3+GZ8b68YI@gx~5@#O(;Hh9GkTfnR|Br67HwXPMI730$2el`HGwehp@Jq|D{API9k zVXSBtW9P#RJFCUtCSa^Nl}1PcnpG=T+f;HjJ}1WO9(~yz4|ty6P2Z>zKTUbQm8)$g zSx#?mdi>DKjYp-A>Gmg{MemrS0ALmfpfk;DdbGRG>C_8;fSQ6L#JMEqV@0DrUNq|K z>l2^wk&!+E&JZaLq#+;&G1-|pWAbnx9Na=lA6%=nRwnk*F}6*w=v2}Zhtw*SAcRrP zw(-Eh5f}gBa2oAqpEcod26^2!v#s~-E?{{J-^`ycZuxA^ToSRG+2Hjv4$}772XG~uQFm=x3*%H9v!0X;K1Aib+wv=3%$U}4Nq?ApZ7Bg;@C6glky~ZEAdRh&WisnpdGN-k#5F<(d-n|p2+}E zxL+W-L3kT#kC!1h)qY9&fa%u_s4L71m3t9QI0|>b-H#5QeKQ$$_q5WqAKdM$ntsL- z<$Yw%AaN*j21x^zJot`SNm_wglD4WbJ5$G5z#T`YXNn}yyhL4?iMbwfHAT|UcjYOic8WvbjS$>P`l38G0a%Wozo5kS&KI>3(1wy@axw0RU^eiu7*^ZQuRW zqmMlG^rLb=GU)wOlg=DELHf|V?ms;;Xkb)GpUrz3~`Ue;CP z5dSs3+&@L4}Smp5rr0sS6>@+!SGf8IQB zjgsCN$|bp7%G&qHrMJk#FkvJ4g@F-JN&|9p5#LHw)6M8&B z@-s9}IQ%&K9X}6zF2$kslzU&9FOYcz71xhn8S5&m`xrm@`JZ38XHD~d8gE+ukh{9N zuv_rj!S#Ke-MUuxbZ-<(zo(z(R&=hZ%p*BpoFkF&HP>X(kH4cocgrgbmuEinr&}LO zFYZ)Y*K;kIXZt_)d%}6f-S}*VdHNxoYi$NY6+-_vF3`#< zpXLFTz=@N`eWM`z=E=ZdWJc~ha?9bh?!Xd+v0S*HbXb=M>l1#`>HCHZ+?({1UcI@? zFzzSavvthDe*F)Q-nM()Tu0*_lgm;%6q@(f&YIeJ&cc<0D1G+Uj?tXLl>SK6+y@W%=wRE(*ZQz2E9R@iGEu6eo!N=;1=@PuPxA)UkP6r5vX zxsb}Jq-N@k=8|UWG%J2Y^`kZ`IG(PU6@_`B;doY^&?-3#6Im4u_77SPe9_pXVWe%6 zHnYK``X9}P2*y}?@rQqHxVfRWN6x{8Gw!|h*867OcrdSfw}zYl{Ob=m#4bN|^I|c# zWeT!7Pa2}l!Tx1sJ+wLSz{#Bp{Dh1yCo`;c*S>?RR=xNPX|ScA>_R_B%;yaKV9p%f zIX3hiYsz{}?3T^Oe&47yx&}*4CLjBbof$ef_v-6=;0)n4%EnG0Cw+(&A9v#c1=<+x z=u@)?c&LCo#Fg#1yeAWr#!id~nT2old8vf+D&ic((ZOjK{0x=I=mW5cA4oVU{)isH zu6kL3rx|JnKMoT|qLxUgqDgR?1a-(ope1l%BxyK(fZoO!57^g2-|dWxXayuX2g2~ORu}-m>m8opl@&Vn%%Enm2F1wG+#L*VKek_G6Ao_J!*?wq&4K;Z|mbYl_iYCmGEt<^r>17VL&%!^4KB4JQEX#Nt=w zs6RsU)O1fYii_lmj^$x&02b9EYjl+*oyupDW2SL4E34(xh2?!ZEf_Vgx(*Nhg|p6k zaE_EkGd(8E0OE({G3GgVlG$cgij~>QGUaLIM+7wZ!|*^g`GuEX;B+U z&QVfmw~w|zZHGrgjqS1jX1+pYQcS}hx+@6V2W&b$r zNOMid?Q{lHD>}yzH!MK%(QC?j0kqIiGb)9ikcp#Vo;(wsTHmp*y*VH`dgOM_Xvi3q z>j<AuFlwmem`V(;l$mm2_@c7&^CLQq&*=)tEwh2qp zaeS^HIpKfs>dNKICeP>BrY%zGZvCdR&95q%Yd(45|NZaU{+aac$hrE#N|#=P%9Q@* zBO~VN5^t0V;*)q=uXO2&-wjYEUjC}hTlt$dZ?E{R@_6F6<+$&q4-)VAos{(xN49TY zQ2hFDKTjILUc{yn|D=&cg?XjJrzXBjA17WVzSF>z;qBY!m%Kh{1iy3&pZ8_@rONw= zXWOB2vwV*tK;Co}rbc@j6)W*(clLJ;5hbr8P*#{`>sA}dZC5n7W;BkwS8L>&%4m6g z`PTBi<#Kt4$|8SeZU<0J=sVNCg9N$;c0`_n5G?d@KY?$=j~`=6!@!ra@Y5>%)Q_w5xp{Jx+1WdLY=yJN z?CzU6wxdgo*!sNP{mk;qQ*1q69eifFv}4bvUfd)UN2A2cXq0`U$ta_G{v1e z+<(TStR|Mi`EZtBpq!9S|J=YqlFr$Y~Q=>6vSrf=mQ zuXpYJkN(WVNgMQq`t=aHVI*ASnXR(h;IJAk7LPUPR-$F?(2fxe+Ei^lhd1RiJU7vN4egW^-b??nI)Qmw;Qi-U zj~tt9A`WA0?&JvuK!x?@AgE2t8RlUE2$g*H@)P|w-acc{XvVC=kSQ4+Ig3oMidKp~ zt62al5io9jW`w3CD-$=04VnN-jo~q8p=lr{il2kOV>u8DM}pp0KG3`~>al`ZW1fuo zv@Dw)k{Mb9XCJ|Nt!A0PF`D2I`Y-WmF5_8DIuWC0mD7OsRee=pQ6Yu&RFX+$^=eY7 zLYXU>bPJD9hw1%{HV6(~5p`06ybb9*EIPd|dY#UN)DZ(JChZoN9pP!cj3g5$t`zK| z0fB0VVXHx0W+3YfKN`fifgCmv>1xAR9Qp?hWD?#OSftZ{NThPa`Q%Mn%aQnI zH~pkROCbcuxFaBiQiUzMJxy^D~y2qR9kU+X(gxjm$NK|+}__Qo$ zmj(G_35UNrORAd|JF3;LN@zIh@d!RFoa)TE&)ANt@~Zqi>n0-a8a;B@rg;rFtb|Yh zeeiC0<2~2=2RtybVBxa0()r~_yDgow-OKB{X@xj**1C$}Gg)rLRuwxHLNp%$heaNz z2?z|>wYj<3;VeDUDzSHvY{|*N=K=M#uZ-P7$Zice@nz2Y*W=^POL)LXr>ADL3#^( z83q6vqbP@A_?yjEgUc#TRXq*r7HJ(h)7A*V@?cAZW79e1`uIZ(!|w z;t(oMz!S03rB@L9_~R#zQlIFxil7eHA{LnLKYk)#lY*^+Vm@Sk&wRnGvqM*5rJRZz zjuv-Bc5xOEEzH!~XWgQ-@?C=EhT>Rt1faRfE+oZr=K|+2K~j-8v!Wk;N7@vBX!?fN zNa+J>EkC_cXT4Mvc&m6|yIa=Oqj znunaJfD3q`Q>eIVn}`$?&e z0^axHPnNrA6Iv>O8N`Kg_9CIOodJ3UFzygIuv!5E;#H6VZIs+P2ZJpplFRF|X4y^C zVvOR48A+_7rd83jCVRMug$EU_!~cXYFZIop^h(IJ>Pk=T{9}eC0EDt5v4v$x0QBrI ztU)i!NJPDn&Ljb#5ZUY|yW1lp@+&wbt4`-}nJhB#pe(~{(T|QXY;V?9)>M|_)5@~q zyFg7@`h8o`@K(U;USgu>@A*&I>huA20Jg?ghbcV@atEYP$j#fpeX9*Hq_sr4(~T9y zVV<{)>jvRE;IQMm=d|mPoTnz-z1vt-n(pJ?Mz$jwlrJz-Hf;Kk6-E0D5miEQz8%&i z3a>1TYz`D>*dCk$hs_ThuC4m39sbD);qxPJfwT0~f!2ga#FQ9$s3!^9Bj_PY1xDW{ z^oWKD;I&yY0?_Mqc86#)qP|gw97o^>8h~w_$g`?#8FAHER3$w&9@Yhetc$R9k;F4E z0Db7{7DV%wQH8_%GbR(@#Ajm9%~B4nb~_*?MJNI;gBwL>UN=m1!2AQ;9h`PZVgs~0 zK(4S-dD$1kZsKFXB{*x1Hv8J3@V(@$szMPBU$k)Gh|_Ln(c{J9?L;QSs3?kbYqM~> zIAM7FR}9Sf-69!xko1W!YC1`_{DbX!h-H?`&v0~dOde3`x;QnN0W_>`kKJNJ9)M1k z^rAy_L9I8tco;xs%JNsY%v7>vT+?Jts$%;H9zG`$8@7_P@#_x&vxWh{AN*+jSo$R! zpCzQr@^2XoJTdJh6BfmfqCt?_N)86h1CMQ?*=qIa>>ihFa5_OoVt3iSK0WfzKvM%W z0=vZ^IUFt%5FuTy$E-z)t22nUwQe3$GQh^|WQFJW$3`(CLup#QdNC-&wLzoHSKv%h zidU_o^qbw}CpKc@lu_|t$e8@j4z^n#zHlNXBb9$Wq0D$U!6IuH#qSIzV zDTc>_+C#g;!$*!~vhaERgGQ>;>P{#@`tmj{WExNnJ>rm8BAPRd_CzMgR{9FOH(Qi> zk38}g-A8w!GA}j0iX53rx68ZHOnh+8GaE|svJ}1Efg(_rh6L_2hfyaY4FRNMz*2T$S#%(Si4v^fSCkZ^rjgduI7GSk#dt5;Z`#7$`RJ>M$9cay5bVK@$!IV z+8Q5QwAz8OwZcTGR_v&10Og*+f*NT8==J|Ht`-=828&k$O#%FH$>qwIftr}BX+fIM zLCe@!a-Eee05+!L2D+s+DFX;$RAgDcW(5PIDhjcNSyR$8gp`z^&g~9nfH6n(L6a26 zh_{G`#P`GtqRuWtF%!j%Op{|;%oGV`xH6G|mYLkln$3j)WM)j8>=HEW4|Pa}zoM;F z#WQcm3nc4asF5>Q)h}PUV%Mp&oyQ?J&`#fxM@SLJll1*}nI`E;g(i7w=NoT(<4tU+ z(SEK{>P}&ZGf=uyq;vWFL9SC;-F{SLq&lEgre>yMsidX`+CW?< zdy|`+dovM2NJ0{j>EeKhOhp8O%rej5Kot=bk)l$Za2_ZEB2ot$5v^4z0xBX>tJYGg zRnRg>m0Cqf4!_UZ=iHkcK)?O|@q3@=eV&&ngmCUYYwx}G+H3r*TQ2?YA^kWfo$ds+3eCv};$B0I*hFeNFp#X?tXE zmbyy|OBa{QKB*MYqUo5;*{8JB>9?Z0H2>cZ*MMJk#?hj-HCj+b`2%F`Qw|jW_Kbbu z$|yWkLFAVNC{Eg@lmK}qRQCo@4I@0pftPq}RoOFsZin;xUD)I5-`+LlZtZRDQN){j zbiTX8fRO{VEpI*_QG52^_1f>>(~iz*=+U{PdtY(=%J1j6gWp8P7omh{7+c7eMZ90< zYw{PT1HqglxJbS%cgR8-Uy z6?>FUbu}Fd%Q~P(Rhhf2unek987)g32&H9Zv@G}+tJ^A~*2#}5C%@Z?iYI4l1jE?q z|K-{gQJ@3nL~f)bvpBrc4JJ#yd|>E+Si7$2K11$VH2&7F5M}WE(C)g97Yy$_d&=w? z5qrD*_3Iwk{7w7H5&b5!=4)T>Wb(Wp8d}5}5OMdjPC?(n$oj1hY>)@u)c?unUs~6t z&ypL5r78FXO?V$^%+T;C8)2x}1=k&-Nz;ns4jxUyLlnn3KQ&h(Bf z%&Q$Yy0WxPBFn<)%mVdN;|P^Vqs5yEQkpuCJd=Rw?5eHz^>H;W`~qJaVQC zLyNkN4A7#ir?w3VF5B>D6eY7G5n)?Wju0tI$e9>Ny=?2G{eTyW`+~?bRb{^2*#K-&D2<_f4nW!Cq z;pj1Kz1USuqRe_i%K>dI_XjW1ZUQwpiY5Y=a=~sy|82BmGb0<+EQr*4vq}$s*{##AG7DkO|hND;A64JTskR+w4IY6v>x{m$3&16tu`WRv5^)wl>p8Rr zbOsQax5Hc=)9Cd&O+lB_f=)$-#!KX!rRb7E2EYiTSrL(D5SD3JqzkjQO^Xbjx3zH* zvMqVf-3Z!ul>^%~9JWP#ZofaGpui*IN2#e(wTTcjtHtMFhl_rXD)|jTgIWfjJ(WdW z;HNypx+Y``>E*B?oUlw!B@;R^%q=V9oq1<2ZM=`wYj58)YbiS*>Z>$sqR9Gae{|G} zE74xEt}?8>f}I4sH9`|q{?{j+`Uxt5yfmhf6NpAWx+FBRyUtA?IUG5CBpm};`rv)& z9jSd0HL%Nk3kLulU)wwNf`x2^Or4(4`iTkOxXbnKPxZbNppASZlfY#@p)wr=>W

    $wfnC^lO%^J}ehbIJVHxs0|A_fks=n@B`R6g1!N!9eQ)u-}B)W?|z}}9)Hci zC$H7sh7Gm5wshClmbIchZF*t5mbrN2YODqoLwe|qWT$u#tMvLD;2nnp-GKzXj~y{h zn>XS;8Ku~Gvvkk0JD;Yit7%QcFy*z&`e^x(vlmidD{U;4CF<630$OAOF8r&~X+I)G z1;z1r$XZZhEh%s3hPU1p1a}l43H}%q7X?=a#o zv`1ZW%veLZvsy=_&AK{_3#+&$1q@ZHtd?lIIw2ZLnc}s)!Kw#v3PAwqm=c{zM5{fc zU()r|L?}R$qvIXGu`U!!k&=zcWA4Q?VPr=PNU-33+|Ml$W!182zaKx~)mya|ZLd$; zTD~VTRxBQUgN1Du=ZnuEE6n`xM(v|T`i7g!&}`Rvj=d&ENcXU46Vz)mn-1Yjn~oJn`ByKiqQv|GN4(Hq zTnyK*Tvl!}ISK=kOTxxGq)Cmbbq+Sw!R(Hh0~_yfpy^m*40=cj1qIlnP=2DE8;W3%Q@Gw-KIk54F>DyXh|Y#qT9WUkm`+c`&7-1$Zi2OH)IF*( z8Vy8(u0S9+io{iiGYQrO{#m9z7x|F>m_ZGI_%fFM)i*x&V9oV$63c8eJd>rc@>-4k zb*t`uG+@^@Kur7CSDIbh4_e(g#DM38rh^WN}%NA(O z22r31K7=|Fi69A{?uxs#1LtUy%G(#7(X$D(P*js{=@8J>FHxxwTnHflFC6*bmw(HM z!^yEAm4WASY34d>Q~0ewhHK3 zd4X-4*pF@esaD={H3&4$27@hgyHbsX&rr)ULP``EeHF4jZjgDzuw@#PtZYA zTP82i)?Cvv97yZv3~HpNHB~QW{!`?FK_JD{4_p|73nqc<)1ymzkCa~!g0I0VDK<|a z>UHS?RwofLSoh8x8V&jkvHBCOppEpipK1uL%h;dn3Vm*sLRm^G1&kK1QV66{0GbRH z-cCg=7Clh@D(Z9?oS~?J8_7Gi5u6x0w!!O$0-z2VEHR9aUl@;?fbsFr(Q7Ei3#A=E zCUX{IKuJvU5ot&cQHC+Q@@|EEOkvO|sut{a_h^4fD@f^^&;YCeb50-6f%6Dit?Vmjy# z6!5ip1HkDKDvlymvRsO|t=_OZ9Lx7arZ!&hVN*R!@*q0m@jy2xD@t~t*2{60Eu}|B zj93y^kYu2wr}SQ`3Di&2!D^7GTG0=npnJ7#b8cs$C)fzKM7tM>KpV6*a)smlRZncU zwd6I)yRW#I*)O|Do25O5uWQ&cwye+VZ#5^kJp3%#M#Hh3qoF3F7npE)x+W}xXfHhF zpjt+IOHbS*?)7})5hEZT{Tpq_Z2|QNji4M0x4$EE;b%=EO0A=tU$+YAt|Urf-cjKP zt{gBKPn0x)41=2I9$@)h7 zr?!XLzJ~ErQgf_*3j51fn;1ug-H!6ILBetDUmoX#{b_5ggKP!wRJY+BK3U=&@g>?s zVG#IF=beL1u?`Wg3KNgv7xZR~t?SL`OgCI-N|BXP9iZS%>3VZc5g;^Y49vLZj1Ram z2JcJfP3fvLjXN5P{ShCR=d*z3%FMXk__(EA^qiK=xC8KkBp;U&TR<>6bJD1;@~&1l z=X3~@E_i4fq+SG4uY{=q#bOBrBBB#5N(EJo%xF|qJ2}kYB}A(-@AO8r*x=U$*UAa< z&`@);h8#3Vl63%skb%daD9j{GQB(_^VWzZvDZQo*`UV|*e-C)5me)reo$}e|zJ-;{%zgecjY~lK}lJbb+INC0~+DG z6Ojeya`=z|XEcjFm))R?W=G2d->kv?K(w^xG%eYg3T!XS)E zyUm=1`k=%^C@)gJq)}mk>3qLkA5{`7loEtqgJr6qvxY7(c_A_vm{f-e9zv9XfFFgt z_CCA*;Qy<|{=cafJC_N>%MB*jp)-Ljbx=xxyBDeW2__JS<}d;Jw&b-(%L?Oa?UNNx zPaC5qGYpGS!H1Cw*^c8=0CFMo*E}WPDS6hfWK24PQTR4($b4W`aDD#5Pmlr{|3N1YTd zX&se266H@RwM4R5n8^_mA@x-J!2&(xBB>>@}928)7mFozP66DjlY1 zDO1rR61}i2JP>4-re$&G$QsCA#*mr1A%frKAuSK-!4751X`z{idN3qcO{KMv)D{$% zh4o;p87a{!K)A*>T3orgiJ3@-?(1zE+L6|3m3rKQ;yFA7E04xHQ*zESz9Illq-z^i z8s9xxswB>p!tE4YhXX^<#y}{lm3&3sGM4a1eznRH3zb`VW+y#X1;#;QBd+#&^q4eE zIEKf9&$Hmmr(Z|cEMZF@0Zwf4Vgbk%d3{ z>^C?1s3+TN4z#&(IIQSYK=}eLFLH=n-ce{^Z4I^BHQWu1hEB$f1s_6g>b4Ozh02aS z$n-X-qu>`(I4PSOUjzZp9vXFVO~=|=%I2orW1iW4uT~!Yz*l?W5}w$N6z}cYW6wW< zIe@X1&DgXs(*D|cgQCxAcRPGm%+l(x1KtXik#4KSgLs|Sf*eJJm5~Sn=y?6|r{q>x zW9NvV=1^HzmlH>YP5^M!!PEP9?YiLpb4F9oXXY36mh1h*HZfHVJv*QOBWSj24*Y>(qZQWCiM^)5-(j)zK|juEJb1lXYq^iF{4`o?m^k-gt%>xm7OTe% zz&5u@wgSfzbzID?v=R?}9$2f3gq6Z4g7h{%3uhCj+-0Zw8J_Y64Qva=y0yNC(AflQ&$eUjMuOz=T(o(G zj_ELPX5m5h`uq|?Q%F%jZV1*n2UL?R4Z~8x!gWd|C?z^k$Y5Xa!jX}zGb>oY>a?K< zyzLv*bkE(7PGN8T`JZAnf|AP`QG^89K^oFr6{P_}N5~A0k*p$h6c$klKq;yUK}3n$ z;XqKMw9MtKaw1{K8AMz)9}yCX*-@g3zgUxzB;qC!9x>sOf^6uS5{MuWvK!6CK!#Wz z8{*+hxJ3!`4!>u}M~%WrltJ6BVs+BMp(6&c>aV|=v8}Y?nT7xSm$;$NqsvEKF=Ra3 z@|W+$>QgVB-)qubwnD4i{_cS8J^LPI&rF>$c2cjd#(dsFdT=4YZTqB4+DR_EB^3?? z5EH8G5G()|wnI?MsDwKTm!gn>LtKDeS3^0OTvkw0Lu-6PciStJ=R}44wMcHlqVpI! zY&)DbeIBK-`#9Dw{z)ADz4o7vx9^^2HMv;zpy9(VWtB(&`O61-ba-RL>`C&pxo?g4 zvodsHcC-4mB`e#pNvEb>+I!O6AGB?6?CIXGVer3~uSslqNPC9Y?nGc{uLcxonJ^?> ziCQ+H0J~F=my*ldWwr+~?f@S80D1sW&J zUjBMY4L*I>#72E@cD!@&uhV9Jyl=qp3Gd$ddmJ;^Zt6&w-(}Q~$?NmErTn}+snm+8 zM7^bDWu@bJ^4g%Xv1Na#nh&yU^n*s_W9`fnaM;+G%YviroouQu?lI(VS@?q5A5KG(T>eSLA!2OUaQ zF9-Hh=^w7=TeRby2Ukp-^ggB&fyeSH>`Yu3m~KZq6GY|?giX*JRSFY8#PoS*U>ge2 z?khh$y)hqM1Y65RbzOzWx`B`0Di!rx)7TUvcO<(R)MD<|pSwaIzWC1WmEJNiXw2nDK}O_@gu)Da2Ui;&DTec zp3t@{|Bz5IN+b7A)?f!B5+s$JdpyI zT^iRI$U{&g0IsghNFNeBx`s)}Qf87gkqy>EAsl zRk7>(f;vc)9q+ukLllsIyK-IOxBj(&?iq+BBz)nGSi%TuYzGG^F*wB6(FaiyH}y1$ zl1V@&gc`(J_71WSgUpNMh(wS*54^4?ICNLnAdBE|J45HE?3I9Tc<5sls}TqM0`ylN{_M*mqBdRIix}u&_DoBJ_y;?*bN5?+97;fm z*cbA5d<~J3kKC_fKuVa!SS;Tx6~qNxzW_b7AxT5A+mQ!mmlYuWBU2|=$m8C{napZf zAT7Zgr3fCvL@7j)Zb`C;fGTuZDAkF-2Lj>mkq&>;v#kH;%ztqDyw|4u;iHe=f9M(Q zcByUwYC0cax3S5G*pL^d|JbFScJjzk?aBL1AeHop6Obk3h%2>=5ueW_hD~9(;UYJK z)VP2wHRv~1D?-jzw;Z6Zndc%_=XOJGfZPOkon`^0Ie<%DLcC8L+42gIY2HLub^FiW z7Ja*~O;r&?kS6>`GZe;sr*>cA_yI+-h zBHa;|jZg(jdSicBL2P&*&8s3|U2gz(2Mz;Bu)*$&@Rj>|H%30aQAuOB~)-NpbI_?&t4 zq@dF6E4OBbLr*r48!0;~QJ5mI%({}2rMLa~_;XCUcG>IiE?xS;Kd)bY z&s$}apx07zfnTM)PhjtpV!kzw(j6bJi6}r5qmmWp$?Ek4rviTLOheJonp&Out)>>X zoUV!7Gy|}KUsXidiQUrYArtuQT!UiWN*p?*pWJj-!ojJ&hOH=Q<;qfiS@cQ+fi7yz zH(Skx32T&Fgk+5uMo@DU0cgXxMt6o$sI78_Ui~E1a!5iw<$&~^MB6(92MuQJ_$w~y z1W++;pY~;&dt*Rz)kQ zE#%AvY6!H0%p z?hL9os3)^j50c?9GN}GnQ@46!XsYO>B{t7SuB8Ju9u<$+OfK2!FxPb|u8dKMNB|`w zu~^51tBjR-03PEGEe7Bg{Y#NI)F%#vmX7|kUj#&_Me-|1c;Y|-$RI@JJW8GT{b;Cy zAL0g@`vwetYF}4d3-uQEQ%0j9@N;~TnJ>cjlUNeJ1ALB0%tBI82NCiC05Xso06&94 zg{(=rVOq=4Y1(E{1{Av5qTN$$PCO#k{CdTR%T}$}cs}!XT-@zo`#~4?jI}RwEVNxU zw)z(rcQ0sHZe8e{$3|*v6=2tkW7)?yq!w!?Y4^py=sO^~cI-vBbYu@{};XT?^2FM-$!3^`6eOV3} ztdwV%4N0;_H0Z0o$WttFQwW?iI2|* zhexAF3fW7AZxw!AC{-1@N?9o+Kbq5x<*n(IJM&iOiE#k3r(GfNdFX%U^SnLq5Y_0N zfk$yp=ctUj6h4#JB~lNGp~+oP{NJ;>-!yIf4(BS%)^$&8vx#!$z_U612HV-3E`Qs# z_f2=-|M+cHxm?cECeP&Z%iFAQRe26ya4uh{Zyvb3hO!mfa5>T+GF;BMa6OaDEA)*N zO2Oac(NA(zv$z2mnn2a;TSiiryvJ|#&L*ai+bg6I(as9la zpKA)dqp?P@$n-lfb6-L4R%Cvua4PWux&?E!{tTUaryio<~Nm2@1Pudi{pG;#CvmYDzXzc@|#MhcTg+6 zbyb!s4jXt4!{vvL_HjDzIM?!4F;P zN)_g-sxnbTskA6DD7%@=vQ|$AS97x|l3_R9b8o=d8buc!;ecjtx=dDqo__|N9e!=( zQT;bJo!GoZ>f3URp^>)eulTQSI0BS;P1BYs6+e5i(H4y77n{BXzsPQZH(9Q8BI!3z z<50OXy~OBNJN=D*-uXEwXreQNd#NRD&nsXEV+x)K_Ph1SkJN^=b_=76?cbTBDGH&N z1c^S`t^>AQ6cXk5gFcDZ@;q*SMv=#jv)o;x+?LE4jRA-?r-9iua9MZbI^ajf!#d6~ z6U=a0P!yI%)CTj+@DlKnPJ$Chgi^chZi(l;;Gw%#*LP1heV|sqzkg^dGzKRUbb4DyAE+$Lj^3QMCiD5|ZF1JQAbB8XbX}0> zqqj7bCX76c%;;Q}=(G=NOM6v0AHC{K+U4iCIMHbz)Q0xj%1oArtkcdVN&sQNt|%u5 z{D$CBJ>9!i)}=^hkm8$4buM>xWE~^GOmxQ=$E7&^3$*?|@i>c*iOr5Jib<|mJSJMC zSO#~W|ewqOnbGDF92bUSxLb~SZbTAV%V!Cb$(sl{VVH_3Q_F7Y_ zJvKF0X5irP4ug0NeO|`FftpZ-ydCr=6;Gdjfgd0K*|Ls!u^~0Und(OzyuO}Zh_0~_ z<0K6&D8ehm63#ZdK%hHw4~MO9pwWeq3;8`fJ6WpdgXp~2X1w;o1dJCX5`L4mBuf6L zA=@M8fuHyLn@TIr7!~JTkMfSmGe(5| zp^wPwh26%8mZA>l9ufKn9})To`VwJ0Q)zAMc-mm<@tPSA8@O42slb=fSU>DC`lx0p z>mh6ULsHHPK7)rwbKR|&lix#G#vfvWFJxhcG<^ty5;?*USG|mfh;K+V2O<{UY5;qI zuBXaqek153byr5~b7UcCZT^H$A5NE&=sOBbMbg^z5xdJL^$~-~K<9ydN zkTK%I{Dcp8nXa?wv*n#kIk$At9~L(1BmOd;)Du{A8rzK69u*m!U)bsE)0V>GpC1&h zG@mf^+PUzDoG~i#3#SwOLR?69VP3m@8Zwc?FFKvXFPu*Bi@qx?);@m5h{P{^MDWW) z#)v|q^4ud5ztD)_ms)*ql2xtaX@jXFZDu_13(k_Rp?}wupYZa#8ta3NrgpGd;(92d z%yTE3;z@IX!4PmK$p8z$_Lb`lk(q>GaVVKPm?t%HuDM8mNJU~7am@m>1k7CM_=&7> zuF*&8E`Myy)B&yuhAbwL-l=nqo+d?HqmS5KUZal~E(U~MhBiJT>H2&`terP!M8Od` zdqmRpX+*5ur<_7lv@|>3NbMB`O&jsZi!=?CE`H2kDu&xtNIGnrcxn;)(te39v=)@+ z2GUm9xfrNEV^Ah6z@w74hrD|Pr;8-xPyo5b#&=rp9)B%jm5B-EE&DFn7w6x}A6M^g z2=w`F=V+HVYxtjn*jy=pEOb#9!5I_~5^1kHZFTfUVf=gN8G*36mAy4Ed=HC|r#%>}C;kUzfkiiy3VH{Unl>G&V7m=$Qe zMi5Wg(NZ^JysbFx_tM+EX_w1v1&EHzF~%V}`1{`Jf*0oP!5f+G4FX;_`Gy+sM_p|& z)Ley^b*sLyY|XfN)26N&e*fC^iTcarZ*RV@&)W9UUK7Xm-ada=U{0ex!PB3pCxHx5 zh(hBC_2?bw9^)3>0?=XQU~IA96&Vu|BboQM_UuJzSDT)_2pzYbe`2A!$l7pzaYeE? z*n9NcH`^?OI(A;9`_*DRKTu#@r1sIuTbBb=RbwHdrhF`WF(5{gMZRbAUd!8?C*`Hd zriq90Bxl<0>Eo0vZT8`BU3ON4YLJUki&UAm#GKn-cIdxS3gnM}`tCP~Rn={984~z? z!6zaUO=(Y{k6`L(5=|y=U=A7uE(Rv=7}VJ7{4xrtbSSKUXB6K-&LzdVv!j*=#u{20 zdRHA7dDRlO*S3B2x|hxOnXei?e4a%)IdyDc*0=$WHEmiy?6T4Q&hd6^8{=M3m!OwQa@PAjv{EV zlsEBgQm#poh82EFw-g$HVKSc*r%f8H(Cy!*d$L8;=o zJx++kSOF5V8iLL%MAJ6OVHO0R-))Nm>b@s;4kKR>3l-{AQd(Pp;3O7Dk6!E<(EE1- z&rjYqr|;ly4av&SJIy@5+ogl5CNBzY_Lk`p9raTJAs{Ns(Iu7)#A)hmb zMG#6KOHXWhYr^GSyDea)M%Etk4UwjYyQ&=NltBN1TuyPhJeCBD`+N`QC?L?%FXYPlD zjA8KnN7jFPq93@r)+s=cs2eWlOuPso;3ety(l7D^<_q87Qb zgJ5!-5bQOXqIO>_m5NPoT%5WyCH79S4^u3K&b28d3HD1dX;X^H=cQPL|0lUp%%b9- z?d{Q92H{sJikMu~C{Z&K?|2**eix3^ZFIB+d>2x*&WzAf0NDs4Cn?H^h5!W7l_*3} zN2Xz45*V`-`RhV_ zFosC|i#ad&VVPf$E<&?!n^a&cC`@=QDz@M50(^`hATEx*2P z2DmyOq$c{OEE}P850&ECr6b!gH}G4M;u? z9z5CdIjeht6|m0D|M~RV1$Vx98+-NB6YP(&xn=LM{U6MnGJQ0bll1&896P;0s7*&~ zst{8N-5Kze0?$x(OOf2haeM`{Bw+baj|D57!nHUgki%X;QUr{X0wj(t+R=ZX7PMom z+To~sa_Y`cTTcFR`ph{qrq2PZM9 zDkWHh@OoG%N&79qpi4&erHZ0ARkov1UnU%7wD$=cQ0TJ*7*lPqI$hd7gt9bwd}hP*WE z0rF8KT%0b=OPS-6BkptflBpohqANH%xF|?{8a-1f6pb zrl&R28|u)SQ9p-dQ6PXs5~=vv*V*ic_BZ_<7+lY+XAS$t3=@CzV21&|E}bV#7`$G7 zOZ(xd7V57xUrH@@4zgh{hSohBupai$8~o4G^FTKFw>GPBp2t<-OvZf?5jiBLqNEKe zBQ~Z0>soPhDcKtBZc}GZe5JsfLY;Ov9$zbU$s&)NLWrpU6(_ZPhs+R5*NWdfI`>1Rzl{+{11=q@dj{d%~(mMPdO8Q;;}u4uJ-)Z1oe9 zcL=%hZDf|f+=(PkiaJ}HsNJBA&&sHiY!bUedsQ2|{#N$7cv!n%Tihy|v|F`x?4#yB zlmrV|G#+#UJxUmt?!r7~*&Z;XeUS~vwWDpdP5jJ;BW=Tx#zF`1z3nO+jIXmbY(wOdjsq7r@{p0wft2J-l1Hsn+47L|u+~HSyY_e1oh9cEdf{#) zB+Ib%f9!kU;D^VxkrO6eNyLH=kdcf1%MY!hlGaowNGTFC>AFaPKoUfXWRctcdvOE`M5f@4}fd)kxc`!j%G&% z0nrsrCS3tE@dHS*P$(9JOGY)Kp2QBshzzZihTA5SpA(D4qmHr^737`SD08(GImX1( zbaOGlCmPwTlJodCAI^O5&g({P8s7Jk+irVl6B>9~zGcO)xBULC`L|y`dCv9XH4nUc z=M$B^KB{b}?@&MW;!)qNW)kzBe1FTo*qlF3k8inY(t=;%|ZU%q`uAI3iOy@y|f?u;@lb4#iB~}t{^y*z*H;% z2P2hC+5?4lL5)Vy@fjQN@ylv_jy;p6{Db*DVB(a|>pNTgZ%ce7>ma_K$d5EdE^K7Q~ zk6gd}i+{1X(@u}wjz*LRwC#U=Lt82Ld-lDH8~4s{y!6T|PK=%UQB4P}dEgiC+_%N6 zHXzcuADSjyBC!95rfVPp1)CG9gFoQLUGk=zHM*JI%^YrQ2vW3MK;ib=?eIt=HQ$W6 zWh!2>v#J34Y))Dr90*FQjt#|_0#qozIJ|Z9@P4&DI(CzKw;W|(Ywjh#+Y&z#=-xxE zMTDuvxMrGh&6Efe(w+TfC8@YsOhp`ylo_Q0?jWuj_iXnfH?A7DO(;RJH}Vw`!BcED zfZ`%;1c+Ma$XCp{fignT(Bn8XoPI~v7%d$$w@)UEk-DmVE?&6ehnuw*v?tgqHhJ((ITB;lhqD1z)9kG0Nq@cF*UcL#P81hj)Ef{Ay|pi%TDtm? z+b8Y6Mc&e~q~nWqmp)n6EOuDY^P*cS=V2e9Sep7lUKWwGj70)SAa){z>4di;6${2g zg2@#O#L=HF?zTy|Ni!0NED8>R-g^D$;#pc=?F6 ze|ZPwLcNp-RNfAMlgq?__3UukC29z7F-{<9X~v%O97h7)g|5g>T+*%oxS0=Y01-d6 zw@?3~f7h}bWt18T@Q;g!_z78=9->--$wAH8JkVU3$Kwy!d;*S&c@(cp3JdHt)cJ_* z1cpMTS^Q@L2{V)|Q5$izBy`EDBuldzWy#@oxo7F^DtJ{(TQdaG0j9{@xtY449Dq=6 zdysgm^}r(+Faet{>4Af;uECRR_`_!L!OgF{vbkmQ=0Bine8k}Ao*S&K*R=KY4I6<8 zLCT?1!5;8lI$h`ygfQ?)m7u7Ip|A++68Miumr}e=Ov{N@Tx28E!aC$&_E{4_U&4fr zst>sM2I_ssRU(t53<6+1!RoX6CF@7eoqy5rUL87Je*SkHRv&;;qkn(k#_65o-};7Y zFB6MFfA~&K0(S`Xz|j%$m_kbtn6IdSF#$q5i2?p01;L zOl-%QSo%$yhxCK)=oZJe0n^{UsflzmZ4KqoB7h;T1n=8~^O4mln~;PiTNDLAy@2Tj zg#Alqw!zHG&CF~@^F)OZ6=9WN-!cV?t(dO3dTEo4x@ruYWD}M?sqrLMThLF|2(~08uVk|M=rl&>()Q-k<0Ou4V&~U zlB4KGkWQV4CK;+n2n9R=lvIi=?1jo>aZYcv7;@Su{LGZj@dhq9B}s39CsG@!vK|1k ziJ(h)OS`t^7K^WGLtlO!vSs1|)NzI6!P@?X&3m4G*|-!>y~Ogb6`P=}tcLq&1J693 z!ogN}&>R^9s`w^18t`}XXdLc5cu_7&CnG{s6$(9GZ=ousiX%3g#p?|gS#Uc#EV5M4 zYEB!=%DE(0WMf&O9_klkVTj9TtS`)ISd~G=2rw5auWIYGt=fyQ2}S`&u{ z+dX6QB{M58J*92_EgKDE@^Qq6@6m2xw*b>;I$QG6OF#Ux*)P3+{f+H9ZaDV+ckC;6 zoOE8~Qh&g6{fkNG%~Qh${UxPgn+*`o(O}Y&1d@dXC0(sXxG@2+HSu=#qU7`^4dn1P z^y}nj%D3d%+L7=YkP-|p4Y9iB{gC8tScwXo;d+M+`oclUdPyFjZe%_L7&qR6S6*vFl za`Y$oH~b~O%u7|dZ_atM3xec}TbgiOeJcp^%j3dwPSKP=7w)jPV zB+n^QX^WsRG%2ELVmL|hSAjrXU`*2{MFn^l9&W_KMd0HF^i%e*cGqyIgQ_ z#|tj0EdOTm``aFT@3Ptp`&L~#WVEJ@q|&$n(6u0npc;Zyhfv^+2wqiClPT3JMC3x3 z%Q6;PdLe2G3N!2hJK>z9X3S1w@@fStRW+&{lM3E9(0xobvF@i|}D{5j4h@{U z8tHzaO9reAHIlSjXq51|5ii$b1H{39Xll6Q{&l}%qx*InG-qbZV?||MI#+kp{4c#M zZ&`BP%q7}gKkn((Bl&qJ)69x^NqxFg4Hnmk0D#WH>GEKK7)CXJIP54eJIsk9uRrY! zdHntmp+j2X&$R|QghDH+T!wgR^TNDoYKC2jWS!_t$p*h3lXVS!R(t1jOH~`J*3ryL7+hrI*C$O_PotKh$yvlxvfoqmIpxeKMiV zdxS3O0u|_%Zj_Lr+Ajkl?qpt%7lJVVB1#Whc4Y~!6mI%8LD_j1E+E?ub2lbbH6 zYRA3fnOY~QfeWkN>69ga>_R$m}-{-8PY)?;1netrAIVV4f_+Q?7tGOQwYRx0HS9iXs9a*)Cg|_ZwJw`KGJ94qs z^489eu}1hMpM=86bnM{! zI{D~r^9j$EsL()#Pw0>isVK~}Sp0ylHA%qR1;z*b9;k8Qg!I(m0wD;vCGLZ>+6Qv5 zBobAYfRNRb??^w#DyegX_Rc@bJ5{$UOZ8KBPhXCO8QQ$0WtUjVKE8ZF5#EkB`=QqT z1G2Ob*bEV8JX{FvSBl4jg)S?=U#;#SF5FFxO{v;-ZP`sWsW;YOi(P6xTk@! zvCnnztEr+{)%Q(nKRT}@UVmw+_VF#+x{C(d`y@7A5YR3_kG7LHEm}2(RV}^7XFp~e zHLLl3?Lp58$-2F(JQVa*V`ZQugNJWR50jke9ES`S8=54Ty*>k?1D&@7@xL~M(FIQ? z51=f$Y)&UID4gWG=6)po4<#KNsn(h9D`W zh&<~8n8ZvXQRhq6B^uzH445zhQ$pItIv{jJ;#>P1utN9dut<_M`|2s~5cY-nu7e9KPaps9T?EuQY$B4U}GMImD)m zH;tPzb6S0c_QSw~@9p@Tk3F&zaV@$H27#l8V}&E=Yg>V?Pe8B+fr8KNL(>G{8~R)k z_!A=$oygHBN_CjdfTuH9fYYg8Va5WUMXW#q3B2ep-;HYrR=Hz3?+jW}h$$qx-I zE~JV*iCY@&o|p#}{~k{a+JTHl*0vONXfus&G`nIb^NwXsCouw1PO{vX!5P<#vEDGE zl68z20AdVifauLbz!4nH9twrK7$}Y>Z~pBatdpinw`=#kxkvktc4YW~J+B;WJihpi zFW4Oq&Sk|tJH5j^hu_dXc0aqSX>-6-mK-_gvsC-_53vpfw$3`M%XR#Q9G~u#9|ddy zs%)cvCF*bh^#xXm*3-2!S2k@}|J#P&H+t#nEC0mUpcUdh+C)>?KhdG%f&jFGGqYr`u%Pd~_ z)d}rG?clY4>2>jEBLHNycl#!3jaDvh{_VOgua?A{Q#DI(Vvig;M5{-Da+{QXuq*nc zlSvb>Hu4gJkZ1De`HM^9iF83Cno6X`HYQwF4~l@Z3OgwKNi7ns$U+<>66%tE+hih2 zby<~CtSG6UIi~TuFXz3V?zj80S>xK*{&xBwcS5I(YKNri&Yj~u>u(>sb~DH=@6ymv zR2yx4;^x6zw}d%O-i{_*i%x{Q&r9da)OyPnWWh+D;xsvZ;~JeJx=EQ_qX3#}T+Gza zgM*x8lwJ~T$OOP03DY77hyn$sW&n*vpw-wtD|BuiSokHXIOr z?^?h3=!3{tSzjuxf9QT~W%zGvZn#rmY>nm@7s4kf3Bj}lR-&xnCV}sVu;9R5cvmeN zB(2%MU-h39AhaKb#jy;}mrAR&A0W0((kcc;89Oow|MD{a#V3qU*8zPTtxZjm&+c~n z7~(GuMOAKXw5rdkNR@S0b~#@*VOW=Qu`na?cv=&b}FL_KC`o5)+>X?rs1#=(CC z5l^8>Nb@Wz8d0gefljUXe?K}MZ>RtFpWOMyPH|()Q2fyn1NqmSKE&SVF=+%>@OSu* zt$j>aAuI#uC>)jTl#ehM6YHq#LbfW3QKdM_^lU}ZK(JV>hDF#eC;uKFwyc4FGxOoz z3XtUZhnHY5*ff$||6u3r2k}ZoY|Xp)r#kXi_NFKmeM;V7e9BQ%QCw0i_A4rPo|j44 zM{yrgg16vZF?t%d^HMyG463Blqi_U8nhkb(0=6LYP(6Q$5De)lo;6H`Da3_?_+y>< zSoPvuj75(Pvb%&BR z)|1M3F(##&^OAOzbp#*sDuN%IDpGnSCTjWq27d0vhm7b$o-WddWGKKy<~$(I=J2J=u&g;;VFfjR>fqA z=1?zo?R3`gt<;aeO#NeW)qa;oNU%oxm7A0qY-CXi-whcjfoY7wu|6{>(-(Ucd?pEJ7r~EQtpbP_SKSzo-g{n>eh` zv%+hFjD*#+!_x1pm$DIu)!&`a3Q@ zUH`*%NMH1yt{5OJhgeZ2^lw6BLr+K3FHDN~FI}1w^Z&=b$rS2m%dQ-L8goUsf3)`8 zPVM{Fi2sO_6zSK*z=)kZ;|RCMF>cyd3JcN~*(&6UKtVKBCyE^(MwP#=T5(c%e0V(-vCrvLaO%jzM`#!R=eK(g^_l6{K4ASV zmKpnY@Be)FyVsf{OkB{iWZ{%qH%y-~{blXl^A8WL?D**1@DWd$XM$mUUOK4jDwawLXC2PRaoL%!^23OaM|mDO-yd}n$DgEknC_ht*|aa73Q z@qadj-8QB58bY_%+(KMdCyoWHqnu4m#Pne?DHRfvw>H)(r$3hxqy z{8($rB6k*;=AtC(b$!04|I7x_*=DD|Pg{!eB$PWrRm+}j4kJ&CE^gBo{arp2cKSa} z$rwG%^U}Hc$5kAtf6%J9`bWz`s$R79Aqzp~aWxMQaW#(~BDF5_5NUO!{gw#O>i9#@ z>gb_zD|6!232 z6C_JbZ$u7=?iGZ=PeHr0LFmXl(A`#C`atrKYnNkSx_KT9nVtMgk%vv1G#t394o&+S z;J%0-v43E{Ke^@Fh4+e6TJCN6@w5LlWdZ0!Qet7L??K<42)B`FXKcXH$%`sx2+V1X z$Vp>KGv;N^I4^(3MuL$f+M_3#ck$gHFm(!4 z)HSbMIY;}fRFgk! zcD0_k)i|IV_^Bt27d4Cesb{C3Y>MRDGKv~_q!kPYVATB;s;%U=VR1ObZ$rImF@s>y zR_VnDIKBXt7I&y5ED*Y8L99Nm0YAb_@@{^Ob4A+eCq-JnWA#&@k7>Y-@Q2AB;O8Ev z#Q-(Ipo1_ak*|ObU(sLQ2Vx^zL^^q-1U=c57tkR*GAQMgo;sedLNy%=kb4+I>zDT* zn%Wh&0w`d4F*s4o2M5K5`~%VkhCbb7_nwUoLNxP%@%T&(jPv1)6=m>2PG1Feem^Ie z>;6)IB#`md6i&t}Ux&Dt2Kr;ZjG`U|jc^x`R0xdAiM=8k3 zQECorgvp>TEDnkuxrfuR7reGHpfW(|uspD%L{ z<1>r0%lu?hJkQ2&Pa>HPT_3*8d~{Gj>%mpJPodJ~V{lOiLDE?nhPSkeuQMMR&tpr$ z76^TY^ieUWZfz0C+`hmf6YK-=G3wrFt2Z|#VutolRO2Jdz{fE4@eyua;3MWN#g8^6 z3k=miJ2)*e9~_HJrdLKa5PT7RV11EwlZzIa4-0Zv>*R`os6He{c)hferyVuXlut12%nB zqsJXDMvh}f@zRyejHHLW&p4g3G9E4$?%(Cv7?dnSSh_q2&jFCpuQk(GMQq;w`UCgA z`QpjGFZUVo7iRhByI-$*;8J)gumDooq~`+AMBf@fRo0@h33!1bU`#=~8p2hnmzp$IXwt>w-U zEH~YkxLT&*YVlJMj02tAcm_$(VfEM~tCuA`K(X;;E)^r&GvjvS$~Dgu3gBWR_Z#`& z0?HI^_rj$c9_Cldg$M6A_;0-9)(0N^^Eb^uDqCKeG_&O>rUcCjoh^VHF5~3EJe&#r zkuL5$9Gam(rj9$KQJdc*gq3(a?6Jwol;lhVg9%s%LFNGdmDy`XiiFt*A1q<48`c3f zjDOdv9P7pa_uC;qLPi_EL?Q0HdgQ<%nV$ec(Gv;<5(J}BsLY*wH7h_O(^h<~yW`Gz zlW{LsvT|16+>4Dy5zQ0YYNhI)ZC$U`{;Z+6$8&nc{%&1fdU*LV?GTGDYwoLk%>a3c z`H-031nnmuOxZ78DkWV71&#n}7S&`j>UE%ps^lsO^ThtJC58|>>h&y{&^6CV(G&c0 zg0(agQY(;_1vV4l*QOAHJ`G*hz(nX9p1dW`o-uFPz1m;2mNh>vXTI5!SoP5HR}Nz} zEvaj7_!|EyeV%x$Q~jSG`$0Rj`0Lf|ym_^6JpK0DkKcCdZ{9g|{GMO4`cmn7GfIEmh0bDgF zT_bz1(KdpXi{Q?WYwAX6)h|$8*BBQv9S64zA_+$bWy64 zOAE`%#lt-_3#*-lB9udHT%y*s9GfM(2DGkc%)X$N#O&Ph7=FnbcRA=N2h~}W13T0f zX1AS%a**4y=C7Q$Sf*tS4$^?rP0|7!qyT)bL(&}_ZZSVU;5A1gUbhr4^g0xmEv-bC zHoBC7$|7Z@0%wAPP_HexG@Gif*Q8O`#CLg0Y+F4Y5oTR*@iGPy<0KjsN{T?3Ke(Dz z$A+}O`Hp8E`om?Rs+H+>9us@6vU===T^y?a)E~T&TNf|B?Ska+zSnh6&O85bW%1ye zc_4fB=_a)tS5gUzzNV+U*~|qAUxyCKNV|5)l7w05Se+~g7RJ(cvkQG;0xl%hyWGL{ zm_~3Q>g!epF^ym>R=Tt?rV9mQ4th@k62y6JC!>owh=;QU^3P6B8qojpt0!xF50`r? zH_m$L)t{QHxZ=9&p5EDVLLR+xz|cRvsh#|(iC1C29zhr?A5))|?q-IwC#+hFi}T!x zL|%SaE-lLoI6}TOx^b$4MMVag>T)D8amPT%BF9PxChqY03YIqd&YU<8fdI((teI#0 z9|*T+(wu&7N4I4Xo?=5PZeDSYeU+}`(J5{Cx#uX+Q7{bwPsV`cQIF_%`$ECip+kv7 z^>yl`mY4;lp|k1$Jh)^L+T~LUt6OqcC-acfimq+h1ZVEZp-f7iFsJJknQinL?ICz( zGq0LJfwqt=EJa?QVC0_Z&YT3SIG$BW(XNr7?)=kqhlABP9Mk`_^HW}fI{!Ki36$T6 z=5ceT&zLiDhIrkqnUiPnLR1u{)vdo_9GgaUsOzo& zcii!K-G=*kX(}cTi*N|IIy3Q#PCm8NVySdkg~CGMAvbhJgJ>z}wnmfH!Rk?sc|mu6 zJ9j(e@DjwZG2wH~I~&GgdKr3V7_U*5<}Uolh5$#HY0&YC@GM$59IlSV9@VJEhNC~5zZt30bc-;M$lI16lXmL z8C}K5IYO}=(q5#bFDW4ts)6}X^&=IVYUSYz*amI$H0{f0c0F6K!`aR*&|X|02qqq3 zy?b1Pf|E`wZoC0b>M$wLQcm)S@FR(tyn~tO+e_1e z26ndEVhRGfyOcpap)%m2QlPPvP?i~r;6e=&d1OPZL|$3hq1S|=F736VZd40=S?`*i z7d^h7%7J@b7+?GB>(g1STlFt-6*QM9%~zVK9N2#M?!m0Fg(`xrm!WP8Wy1fyR+=kg zq9e7Tay37vMZiz!=uF9`JXgL+RQz#Yq04SBj4LKIs)+l7g>sPtz&KXqJ6qifFhx;E zPx1#7B+oPbPD1xwTSZElQUndpSEAPr`)UEiZYq^RdZG;#UHYhQxUTxHUF%O!?Qr|D z2i{m)n?Iu8C;k909M)b=zIEMIepQ>m_Fd0@MMcCiTc>sMIgjPHtPu4AVzKAl{l#i= z1Jrh0&~i^`%MKJUUaFcMHrZ@OC6v|aGC2g~9LoQ@R4tn**^rr@sk_X$xUvOG*}N=L z{keOKChensL3+&#(kiN!v-+>T5`WQr-EwKLIHBbco{J?8!8VkG-$)mB0kh-sbfw8J zINYeMa#+w0Rg!#uL3OKQLIu%aF+>8qX4&dR2^Hmz>3e{8hI{4_m$~0<+YCroibITC zYYnv~^iD#Wn8X^A%UG3mmGn&Y+S;YsN$u_1*|rH29um)&>`WXzUenAi7tYqcm+yQP zs|l$lZGu#*gQi|qE=Vz(5UffGu~e+Sp(+&oJPh=B*s1&zUPosdWE-CE*{)fq=_fddE3l)gcrgz_s`BFnJ?%j}> zRyF?Caa~F;PS;-k!7tXgpE2U5>l(iN^V_eD9CCNRWy9`Sa{YO%-{Zftm$d&yFW+&y z>%6OP8#gExK3P^jHdWcBq<-Z5VXK}P{5RMJsd@ zD$w(y4A?w~ItT%tvNsy+<8zE^^kwGAZDBr5;{PlUpqPlK0a0>O?ldvWWP_+ul3U9+ zLvQZbam2-!bW6^ve(<$!sfi<+#BGOnwlw&!oi}$lk$u}Ully}-WX(!zVTk&GvJ^ma zo?wCO3{WYK;`P|4XN^!2p9T?nd1ioAOTbx`U?$9#fv-Ap^ z-Cj}{X1)S{QIX^`hg~HlVINAr6DZ}lo{8wnEJp66!~Ka2aBljE)XeX@-5Sy`$sVsdd2 z3l=d+C_-yu9}0$i99#g04BqWAtr0i;0O^@j^^0OfJ=Esq`EU4#+FJZ0;&8Ml84X5P z$FiCX@6&e%ZVLCAAUVzxfcyyXza_S!T5cByO__AN0h&_ZbmQCwOP@G=_-z7DVIy}* z_dLIC$p()#z7c>a(p3bN(z0X3u93h^ft(SL7j4JdlBqB%T`d(leX*F^&J^YUqwP(= zqo~sL@j6x2`@VOlJLz;fdk9&YBtU>PksSnN350!L!V(r4M1+7W0TBUFK!yQCL_}ma zBBG**h{|Lb#>;RS$8FGY#u0SX5lC15?>W`o>7f4aeeU!8LK=Ud24Vn&VWAIdll&omXjtkwb@&4eB9%ylrjd)EbmVek1MK^ZmmlaA&8) zTO;4_);k?{9hg=7{7%_-qBX;aYuyVs3M|GDoIC_4`spAr@>Y00r$>nZB3VX<#%#7| zReFO#WpO$@qM*gE@_nliulnNhH)1&^~V+?hG9#r$B$Vv7vs|Tm$f8S8G!&L zVPldS3n^1SWtTsP?8KgW}~k*}8zx?EAQeY>Jz42n`H zIWfPGbZxru6T;0@yHCLCqyX}k4ML&a;gKScnm&7unpZgU9Bs0LW`jK=Bg>E;Y?G%@ zYx3IySftBy=VYb%9XX~PVo;>zOsUSko<^QeBmL4wrSWJ|#p%Q}BWLm>RiyI+1#0Hp zs05Xr5#)d{OW77c*CAR58cRK6()9mdn|p$lK3NsicQW(A%=@SJA6PkM_{o!`^yJBZNQ0b& zx7XF9&lI}!?3E-QFyHS{+p`47Jj(1r&-ci1p(Pb#PqNvZ7(F5Z82##M6F|rYPcp`s zOteaO^2BO4XF&H+m~&BWCci@3F-itVQ(z_=A{ATlL6+P-Nc6#M7b<48_&pX3>CyY% zp1Tnl*uDGrbN1~UJa`{#+*vh*51uDyr11I3kz;SFW<2?1&jHlj1_o_7R9lK%ZD-HV z5shgmGxdm`Hu*Xqrv~>C_zjS|^J6t_F3XH+7m$Cn8Y1>Py0NgkP-!QdJc=}CKBFed z6+&{K#{C$s7~xE~O-l5*m%SrezrpX_A6c`u`FWyxRFgtHtiWVUiL{+J^*xvM?5@50 zwj4NMe~AqF;!85L;n;6)U5u5Sy!yb@(M0_BkKvCl!><1N4zsBdxP{hChVP5oL0evy zV9*AVl3aq2o9ESVN}WlGK)TY*rHsL`ae#cs5i=yBGfFrnEwhm+R#52BG8t6umrx&2 zS%w3`a0{3w&%g7@_4745JE^^d?+|L&xyusiputeIN4S5cqIU6>8K7SvW@07n1`gS9 zC!<59;~#!9z2Au0_YJwRYG1~Q9nzuw`!EkEVpcS0fn*&TZe#Kpog!}q_LA3ueb4JN za;OkMGbdUy#+y+(s50|b6@;mZ+N79CR8O>05^?L89(P!x@-CN^ABsm>RSiPj9iU}{ zk3HO~Y>+RCG@@9LUwieVO{PFluhK$kiD)82R2{e*`jChc?VuXDuxR3Lzu{t1D3jQ{zI` zzVh~mKOCTAq>D_TfU^Ry`N=V|V*=?vW5yNfJ47?Sxjbze8Au9hJ`}%y>#g&W9wj*i zL^}UgWZxw^P6U+K!y2Y3huUztDxFVJ_(iSSEn1R9qE-;NhB|)|mxNUn!7xR;kQH!X zw&A!mKF#emDbW+wj=)`Xdt*aTJ4i0-ZEZYY?CjXmvCDEWBm`)23sr%H6|yslQ&uJf zL0MWBbU9u2+7+b#Y?3^S^jtFinDno%-#$H{Us>1t7NuFgdV_DTOATxfdbNU`^pP6q z?{^}>!-p*28759DgS~Ne>d48H2hG7WX-2IM+s2J)R)-4^IyD$v>SR}PFrC;HoSv8z z9{uF%Xt9P};WjCt_7rBjX>7GUuJ%~PFBR}H12ArcN8d**{R4X(RlX2LE_nHezWS~Cu-`%FatKjJ;vk&DHCOJiUpC(l*H-!h0C>6urLazB{j86rp%QIoNOcn)YG0#&)(R&EpTGT z{sYo642zNSv0-_+E@8jjsL|+zBwdm(nGQ^E0xcsQl35Azu|!6`#DUTEqtc={PQfTA z(_Cp5h;FJYLA?0RCtsfbuNj&oNupr(nt%M}p^3A_`K&k^jEm1~5XWrVcT@Vb;)SgT z_LKgxk)bApM(R*wZ_R?j$rwkn&&|OJuyJo3aP8vhFdpb6SQCqR7{y1>MGx5AXY))pWo3ENZ$z0)lFWH<_>l z37$i%1s?`NYw$|pm7$6#{+6SD2Yt0IWgZYoYFt+8EuK8pm_hj=bx$kx}WqH=`-mo>5puuZAO*Hd}!-z6z1l+Rh&(40YRO` zWJ7a1qc$x15v&$T3aZ<*PFA&N)&>&`Dv-EiA~ug@91jc|RVl86Aj$m?_?FreUjh&}>A7ffuOZ9ds6!*_K(&+Kh zx=3+MZ)*jaDUF`9C{r3eXiFxLDYt54s=I7T9^*`-Jff`LAHo2+;~?AHJ;NDRm>_OV zYAP73a`V()PU(qmZ?>_`Y?CJlg}Wys%dZy6Kq-sxiWspB08+om^(N2b_>pn_I+PZ5 zj`6+yY!>EM4}h+qbC)~)WY)L%3=+Z6XkM%ptR9O+w1W4~1VE@luuiGIE|BL1(oYyA zpaw-yIT0K~167pOIn62~T8_tO1euJ}iXBHibmoo3TyZK@pvgh&EyT-rfDCO1?}MHU zzTd<-JUOVHwQlt*ea5{s`QeR(0o~X%Wcak`Y;g;6~{g(8wM! zL&$XFA3T{_4}Pf}4$Q`3R;7(?nG+2-VMbs)wm_*y-72P6TSCkDCptZNOJFZa<4TYS zr)EnD&HRY2GC3gSQqnx0!s%4(oBU|DQ@Y;FeT!7c=iWybOnha=@Yfe#B^gEUCntyU zEBoFvtEpY>5~;IkF6mdhOoTZ2faq?%fB*E%;;-AJpE+JqQ&U-TVo3dtb&Cd#!W#64 zN{V-gjD8Qn0q6ZCtO+X@Q_wXDagT?Gx=T|0{?>-sJh0oP^AnpNySlgy-JzVhFFpjEI7z4T8WZ0#A-^&!R@Oq z_k5|}hJ*)HdQc`qiyj^H(jBKKi%x z59#-O;E4wpPFS&H&4$^F=KnT}FFHijkM7z!`hgUkXTj)wZz039rldzv#cR(TInb*j zTmo_p*_(y==>REG%H4i=)RS%Hxzac!%ect?DlEyEOZ^MpYSc;HvxhmUzu=z6^+FJd z+G3i-475`eTD^MCotvw-3ZZr`gUOMCoMj4ew1pFAHf4=LdRkB;27Z@A*J_)w)np5* zpjD07L80Q3C>XtkMl(UgVvXb8oj4aV<{v-2`2JV_R48Wr@xn*fF9473ib>jt^uSal zb@KRcZ&iL@C0W-$3-GKCbUjpQ#Kdh=*1Fvp$A1@f^q~Ei=?D@*O0sIvr0CNH!R<^z zDmv)#1~NLkkoeC^^IHrV;`Noh3k zNdaVkZT-&ZI6so-<6PS^pAC>9)a)IIv*Cq{+SbT>L6ysUR36a7dZ$!-WXd_zGIOF% zX9YE%nR7u&h%h$g=Ey8om3RX1_h^Z1R1ARNApkQ;-uY1*gi-aD1orcc zi21b{FHIcLrGD^+=ZT}D+lTz3$os>Ai}D>tOd-4N*QsreZI_N%PGeWa+^Q(?p)pNN z=1fTz5FZL0_5;eA45G>IpImKk@tYDw6x-B_INf2Ww9Ez;2o`zC1mZ4Ad`P^7_aR$W zao(J+R_aU6kqT)@9i>4e)6&u@_2Ibz2VWExOIhj5x=vgP9@|+zZ3hkF+BVC(cUzWA z5gJ_cb+~`?fjTNfd3{jZAy}MbDYUn3TbP_Aw(n5Lxw7z3F3i>IOMkcU+`FWxYRs~EU~;sR z57So;9eDX2{%T}Cg^KXTTMc;jZfwr|@Iz9#@^G@5xYcS6SQ3dp)s4Q@4g+?rfq2Ey z)!t~bg`T&TLBvEe>b7Gvl5xQS3_zSuazD~N%jU&Mq$Yt&a>`%NeZa5(?$B94R%9n* zzBM?j=iWcPLkEQgp@Yhzh2~BbpJFtcGE^pT@c9EKhYh|Ys6Mn*C?rM>W8xsbM09lW zD#h9Y{QnISq&q@q+ShsUT|=Gr$=UZ#GYNfwzj=*;Y!XL&`Fzu%<7eoGg{4KqpP*R) zhe0RasR9**s0UvmvR2?LTwTrGR+D$tM6V_@)eoup4l-|{2j#{l8#JWRHW9?fS`*_j zgk*zwh{i!#f+tbA(3#1bx+M-2Ah8H2xwLyX4Fci4zs16z{Lb@I4!MHhCkfD~C(I$Z z#)6At0!a-94vrj*{uDN$4x7-4bhVObXb>4J!C>k#skB-RB2;)R{Y|$ZTUuF4*<=n( z#(#PB2*2sbkx17Teg{$nsPH_mdVIZ4n$R60>b&Y8w4Yn63Mbl%V_ zg|Rl$Xd?(2s}Y%G#ntGp;bKi!#*rrF|v(6uSCfDYYeM1-WiQD_7CUqKDe^rm^8T+ z3a`&#T>;pW-vE9%gG*4kR4b}EmkT+H7||qqBMFr1SQD%c2FQ+P^v%f3RK*x7!v#@F zDt^Jc?@EomR;*t-y`mT|X<;y9LKpt~osk24)!dmi528_6WOC4dk8iqs82CdNqJa{s zf)QJ%Gn(|A8i+LbQc?X!Uk80=jIKzQ2jmj-;~skc1yZzxd22^rQ6j}a&zIsHZkYnM z@OB=7hkNPu`UIEKW^?&~+7n!3tKCRZnc&%I5lQwr_#{vjAW{M{93U`a=7pSirojkm z-eNUko(&xh{%6Y&CD%y6TSv`Rnvx5UOTu}n`!}~YO8+`@`^>1%C+~dry>ko6mdG(m zIxCKON1Bk-{PEUL76NRYA6mWakrh`-UDG-Y9&!^fuX1eJAf>HLPU3?)5NZUI#PkfK zU9aK1CcQ(E>H=iMLUn`uvVM)WlI|i3=4#=sY%NrUL8R!uVGC+V(N{UV8|H?>X%b9^;Wg+B#x5SstU%H~u2ukg=#?}Lj4PI(AYi&P?S19wXk&OrjOq7T75A+(fjFT!jTm8<)k*EYO&x zAR}=?vG7zZ<4pGfRS}sq%!m<2vFNdoWGh}y`G>@{QX^gN81V5^h9d?nO|<;RTO|*PM8^ zsZyiM8P)o~aLn&sRnRx@kDYruG`56nP%#-GnB!Q{*rNzQLCXM>4#uF)EP{D3>*vpd2skSF~1;Ew!?)>C-WrcK&-MK^%J31i>#^NuyLmKrB9M@q;sF zE`D%kR{46OI!YWQzkTrfx$9q$Ui$!3l=(?f8>8%oDce}#L3WZR%?}qCb~Q=SKCzbXaA(iy(erV3*h3)s z=|k)~HBGH0JcDcf43<;)Uq3{+aqH{oLx91$f|>Zh3ZHC8e8A}Qc@#o&3MU{BJPG(R zy(uyN8pmD5gdN;ZmN1IXjjlS4y221Zx|Ce*^z8WfM2l#G^r3zG^asX_i%(ZhiXJ^# z{>U_0Vz9KLnac}1XbF&(w^$*Q<;~`MkbD=_nr6?UH3ouufsHBX~`sdF}n6517<4=xBrB=_6 z^od#~;-~U3w!}{Lo(Xn&^rv`glb?L zn284A$&zyvkele@vsZ;fiuNzXr2^x=qBUwN0E_z%yZ7Re;nOeglp1;K<-dQ893qH2 z%KJ!P^hXz^apIUGdp;X1<@|hDS{FPJg~DQhRf`rdc00ylvZE-=ZntQxCW~T1wFSp9 z>dF1j!-~20)V2r-{ihE76+#NMJaf<`ki@C?~}U+-4w<1;Q({fS?X=o0_q|jN6Qztmw{W zikQhVIhVoODZ!@v6~N}dzPP7j+p@xTy~ao%|2k0f;0fas9Xnb-^r8p)*Seba-t$;E-1>Qi3!<) zVGs0k1H(BRv-MP3t)N9h=<4kDGd-13scIgbL$bnaz7BGR)a2)PikLcU* zz_bRGL6w;X`vDmxlQ|icccKQC05SVL{uMZg9=`{UoX5c>5v$Ucv?7Y1WidF}dy%o^ zEypwJ$hBG%iinb}Z!8o8@lXY8cgB}z-Fm}`r&sOSx-K=lu&8~9Z1MGYl4<9z!z*Vl zS|Ob-E~zNZ^ylG>R6^MGQH+B;nHH|pX?U~73W{>4OK%4F+6)d73o%*zmI6zyrOvX; za@g{QMNKIX6-Eao(;ch0q2LQanarCNpche~<>OqKHLwHW)XHH3VY*Rvbtw!|D-bE~7S;a5BeS zbYlLwceif`v}qp==tn-9vB)TmsM^qf=;e1Nod9G|>{LFO|Jl8uUi^6=q&g zu0I9z)m%o23Ms3lli&8pwwhVI=jOyofZp7a{v%zy_#^L~Gkx3D?VFZ2RDOEB$Dfw{ zUHXA&J|U(juYcP0mAXyaF-{6kIgc~#<-ncnFae!_AcQa3jb0#bv&tku+z8RJQKKLp zzQ#s_5slb2v<5W^;9Vyib@4oEnf@dF2-~u#cG;}j_9exght%%bPb7Ty6PiO=`Eijg z8&)oVoEXa~MC{~Ij0OKOM39b4LbCG#MNvkvdEWJrk1bb%>zhuRP=?_I#VDV9!4uJhR{0$(Zu-T*Z`fMn+Fo{Vfj|#oL z(BlGk#+IP-!mVw#5VT?Z{sMFkqyc-* z@b_TDN{b|`u;9)fagOO4pq!@v6{84f1H zF=P*aS{hDh{R;{i#QB(%gXI5WlkCs@?x0-BaGz9H*$#Rga-*!d zzqlQva&f7E=(U9)Rp^sa751bg1zMa1(s-pMc~!N=qSV94){Lpvno?B;CFKd_lyon! zu@%Fsq-vEhno>sk)-r>>69yZJ4K!MH4>em>%yLpn6+f+=ZI2@bM69$3qfex1@#qr| z&0Te_(et}NYGIGeB_$o&ccr608M)`BP3vlZx9zKe$-%ze;de2TAR4u$BtcXZVxg-r zr67=ROT#_0d_HBq)}+#*RtK&$mzFQ0l+~X;xtjBv{qQXPemf=4g+ZwE>jr>q7J?B; z{wRyC-Q&p}TkWBun_rW>}>1PWMb79$uT? ze?#*6?eCGPU%eyMS?d41deU=cy&vw7R+x8i$I_=pPs#Ha6co2lcJ}O#jfY&Duoq|O z7s^x|%zuftFM{BYsYTfo`o%Jpm(NIz4T)tc^I!OBd}I@Uv&(CX<7FzSh8G&~NIL|i z6U{g{vxT!boM=)fS{$+oBA?t=&!mzHEh6ZdRlx$H5}F3HGc$`8U0eUxk7w;$KkWWD z8l=WkuZh!^zE`{C+JsqEi(l&!G4r)Uf1neE!@U>2u!9!IsB9>3G#lW9n9ZVv6OkH; zML=3TluAcCdn0H+NJX+tEAMm)dmsAZiP`VYo3(%4u>0RSPKr*wM)oXucW#G!{xWe^ z)kCj$=5IyTRMF>Bqy8hP0|&K#je;5|KXkZ;5`bxs&~U;rj%ortlHt6VrfYMZC|_8kALlmZyW~0pqp6LIirj=F@64E|)T(=X^dS95OPs zcJwO-dLf+*PbVkSi6NaVNhdSYo6><^NdF)m=!J9`*y-sgMMXRWCUWUG59t8EDPp}d>6*wVLp+EA$?N}??yOpHjlh!)l5&a5SihonHVH^q z$IV@}7CmtOAzeDLcYM7~)8^HuUXcFu^ySifD!QQzXQ?Pph0j~k(ycPq-FrX1V*u^YDip=i)9)u_txY53F0DtRZ}lL1tFPj% z3e4^wh23ugYBtE#gv$du9gn6mCZDMADbQxgg&Df2U*wtyh&X3bq!?3HRP!dI-v}qb z=m3GCRjKx@h~`l60^Jq(gBgMdxW;pD(M=2)C)@rLh+)5L|1?m#hrlm29|&8 z8}$WXeMFrAMIFt<-MZZ33dBUY5$)Z53PFXIn?|&k6%dD&o3Nn=0?^qsRxPXKc&~_9 z^b*W7toK?O1PL0#2}P@<^U{8D8mYf=q;drkO^s$E9gq%^>--|A(=;;bRs;Vv?X!kc zBkYA5QP7wRU|3 z<{jwkj*<$*#&j-+PD%S0x5#)Za+%{5GlrRtl%215pA1$A3DAU!R@h-p;d(bEs+yP2 zd;}c-$&(4X<_wh2BkxF`5ts^GEqWB85?n=NAu{518dj`cP+XHnKbG^Pp6!B zWMAS^DRu}DQesi?IFyNPSP}rxP)0FPRSPx&RpXtL=mQKcf*9yk=qqV>?d_fD49t+C z{A}{=CQ3eFisF~Z6sgZUk^8jh4=f`^`7MzVJS|qi5m0x)JoCAZ$Yb;XH;pe%Xs>gk zdfHOt$@k^tHX2J%tZYWxM<+j~+G$b)$)$Ft0_&R^ zbD-mLSe`ds0Ge=(?y#7F96L1fHiHkuGMPZ5+_er2^U^|nMJ>``tECYo7-fH@klDng z`K{FBU&ztkc(Wx(8>x*g6i9B6lKuHoA$2Q#l9;;f5??u59@yMp{W{hx1L(FAt_!y= z+^59i5188*3dVNrbefzl0eAcMfgC}s2&beu%2!o89BD>9mk#8(WlJ zq@@AGpXN~JGvR`@Yb9K;SzK7O=xzaSRbIYmAF-dWAB~K~1P_%v^8RTt^O=&36o>=5}ra$ps?u`hkX zjN^5hX71(Fypl$F9IPhZn^BMz8u`GW{l`ensxkBCafO(UF(>5kt zlv<$3vsv7EI1ip|okiESAUSPxbuw|e!w$DK*PS~KPzED51sdii258x_N}MiJaIKF~ zV&t}jIWn=CCqmE(7&E9lDo$g;(srQ^tUDF$+SNU(iMmLpfper+d&dI2JLFDPnC+-& zbg-!)$SMMbI1Mhg8K z*TM4Jj{V6Hm1T09a!L~-J1p@+39#O@S{xML+cSV&cFH~mzr1v9hb-8#Nh9}GkLbRz za?Mip{wJO~{^z%)8(Sw`pC#`Pk|A9a8cUXy`6l-0G4kX5tWn!(twdTbiY4|Q$_h@W zRTNL(H?ZM!tnt}DSDh#=%WCPMr_!+JlG- z>71fZ^c&N;pu=cKf*cWmvDN+r!wZt|XJ;JK!fT5k;KU;iTqG&n(vPLRqcNd|-yK|pCe4JFz_x|Y8R{LaNou3mh-ZuzB!E8e_x zjehgyL-IF*5){Bz{)m)Cu1Xo?T4Z3;ZStLDO#DP%Qn3T3rh;RHY>`o^1aOZ>*heLp zEjpP`K^;~b##O6P8V+X`JBSk)yaO0J=JC;*D9RL29JTn_c4vYgt`9R*=@zHIcMDH_ zEA{?X{*zZmZo@_W7z7IJD-u^%5SrQp&)ZK60zrt7;^qAsKhjo8pULlK!5A|u3ryUQ zai9wo#DL!@n3+#QNGv~Fg6#;PL@Ib?cp{UnOiy?gL@SvyI+a2{udQKA@8SI@w@ z4yTqgT8L(dXc-no>d?~>+j&shAPSX56!OfhB9JblaQ^1{DZ_5u&>IIF{_QSOPyTUY z^#*C7xc*-iYZmX^9DiIgaulJk+d|w?{!xH~wO*T%5bY3!SAHT;q48HI?{)d1OjBUL z#IuSN6&zx35s$y851zkaZI`b3`Th0A`(BhsQ9Y6lLs-9jjq8ZH%Ghbrq8(2n*LMow z`E8iH9(hHWR0=q5*#;x9{*f4wcTzT^R6>wF(JRxAU2k+Rj^cqamnmvqrq8{7^Y(vQ#DXc&zte+`Nb^;%A8$ zar0o<635HvHC1}teki*=TTi;p5GYKG#_O=O44}B8IMwDZn78ca%RzmcwPX>yJ2}vF zYJH#kaQA%9B^Yt{Bw$$lHlNOAgtMv;ygp!9%$&pQ2s;KkM2EggE#O(9ih|L1DLK46 zs?uAYN(+V^a^YYZS)9M3Uva9HO|O4$+rsfula^O@?-d)xs8Qx4PGZa-Iu!SpQ|<0}&<-@2<=&?1L)be@*s-?leU+gQ%xy zlaW0zPXDS2XQ+;NcE2UPhX=1;v7znW0C`-RowYwbcsfMpH=V**;0z13@RQA2FkbMsj zbgO^=d*b(;lKc}YlQb_Ew{vyM1;8O^g}p%N0C_}A+5+tW?O1J{c9-_Bwo!XS3x;Ck zphKYoY+H&xE1_@}CBBsUOLJ#$+&DY8R8gNFdTiyiSr4yAw6gVWbtoi8?XF2I5C@23 zQ5L^TJS;YfH$;uta$6h3zXKWpGR2XmY<1i956_yu;xQToH4A(Aap+lPK{Cy%v2ciL zq2sHW5Fm=s85f%^RB(4}+*U#(;xY_~p>Q0#FO`=L9oB8`_H8fzTiA0cZ%$!(*{<-q zy7%s($gBXKF_%3fFN{PuT7)6wVYLyn8EFWe5+R|xA3_f^q48hYtYUG0mxI{<{lfO` zbGr>2T3UWd*fXvC!m`cbU1jBkbMh|X#SBN=#tvd{XmulAOz&2onCK@MNFiB%a|3B8=MP4P2%j~j{Ok^#3Y`ggrN9-? zWn#(%BWE`t;smMB2FZMrbS54#xhX~XEHZ>Yh{jdh#dF*gB~qT^yL1ONuNJS8^H?7h z;v;A&(A+GQi&wda*e7k8Zm^%(F7@T6G^0w1UUO?T=V*XMvKuwEC!5b4H=271oF#8G zD0`*D(&J=k^JK(0iy}|ldWCa@K?1~42?No81`Cf?(R1k!ej<$}f#&Ckife-(T+O8( zJyFk|~ED{a{TXV$S;!V(p&`W4njf87P{qL@UKI(&0(IEE002Ewm*a}t#1y4IJ z^B|@myy$=*7c&QOfI;>Yur)L^keSjGxJvq*B;RQu$v6Ogg#74zY+`5F!$ppTE72t^!t4L`+5BP zRd%p*q|^Am3`?k{Np^N}ff~31#KP&ti#Z~lCjCecA%yLh95yRzwGx*dH0Os$SSXSt?xTPfl*vrm}ChS#?t$$sWXC?>}v7chuz>|k}`yG z{D^T-#ur&KI$<(~fr-#+JwDFlvAB#b4@%RNseu#^ ztY~Y;U-rqsNhqFvb;QHnDxc}LA~2}mV-p&l+r7D0*ZVup=reozn0&r&*=oD@^^}~R zNojfhvN_{tJ=k?`Qn1Y5HaDmH2n;R{3i=cjl8z1zNg<>eR4NTvw)6&MhecAQ*2Q!) z6$G;3D-Vvr04Ux9P>Ug8ST`L!K+FhG=Skn4d{z2R2$Agocxa_5X!q)uKE=bj;b9&K z02{QQ4b;#az%B5~Ek+|y@5D^k5c)qMH%k`*dD2#C(jd~L-7YU zll4+9?-p;@CtRh%sWt%4DG;>=Zx1~mAx;y<7QY&X2)&+csu%XxgYLWK!7462jA|kI z7SL-6ccB)S9C3;bqUARHj(VQPG-BibKa7M_)eE!-aO@WH5(osUfrn~c!i4Uj?UJ#8oh}6R)x%5#$K$t|yx!e^)HOqinr$m^QkN0f(YS&I(;Kc@@1H z0xkAf_FCC3;7H;oQf<9rd1Oz0WD=xte`z{7-h33Iz7W!QBbRxU(@+WSrV?C3I89hH zP%}rfQL|g~iRPvTPEbsaSBW2x1Ip15k3Rt#arka42eRw{^2=4t*Qla=2^tQq*r}p1 zd7)?u@BVtdYu!@S{l+S=#6>cto)O4Vd{^G3YyQoQenx!_SwMOPK-pMDJ+ z@ZLGqK-F&5P4ouG%g&=pyLm9F=Z+#Sq~i3_U&$UUP8FI}98k>1fv2ieF%F1G1q_3N zVp!8KM}drU1P_oQU(Qm@pY`R>ex4u4<3CWF7EpZ#v4c=vu;jq3FBS8pgI~^~KTp2o z4hZGAzy3Isw0vjW7*2J_fgdDa(wpD)gQCb&r5Y;09Rnqyk`NNGU(O<5(h*2yQWd$- zydQILg>@oS2?)+oabU2tF{Mf~&bW?TXqr8rKd=B740`|lgi95ixj`h$qF2eUf?dO| zKzRzi06&koIl07b$9pxNK>47W&6Ax&^w4l9aGDiGY{PxWABqeDors-SCK1b`b&DUP zXA-vDaca4dg2)rhmOG43hAIx?6BuMr;6$oYd_@i_Ph&fF54RH-#j%-3jHxr_<-#td zn{@z(PDC5HUEE==5uY{V9EAPpy|}Q(#5OQEOy>bjfdCYC6vhOXxvJ@a^7LhlVIiLQ zh%ygPESAU6JQB^Bo`WJ*k&wh}PU!{lCsM5xv7iIxpJ}=(o|Seh_X0A7UWwQ?DwstP zybJHE?mkF@#lPGc7h9lauY)fPOyMtK>Im4_<{J1hfSV_mhb z!>%`6jUf9pp!u*;d$Rebu+D7j1u`uJA9)BXN`Hz!-ewC$ox;ql5DU1MWl(h)Eo~5p)n52c;Yx@uWL32QCJ9zjX4C2+T zuO8o3Q0iWS_3kXZ$-PU1lH~8r>Ff=(eDc-LKKbX*K8gNJf{p(F(yk}X{iI6nMDuxi zB#%RFDIkGPXbrt!;uT!XgK1J!sKOzpvf;$1_4S{=zDioW3L7NxGC1i}tA% z)k7QzB2gMT*B{4^s-xmX0Fzt51-*M}Qh$&nrrs+%97v|;`KDHEBN1X_)iYH7NdpT;& zm{styupRI}6(lZ5K`P<8ZI%XYo^WyT;){1*h?B%Ac@8{+ke;{-modoaR#9yuuGgwLLE&c}2;vQ>X($*?(eIcK6|xjo;Ru#o z*}P`+<~8tRHf~(JVFP5yVd-hOk@rX4$agtQ7{LH|kaOTeqC=WxbP3)GP?q?x21{jb zfF6mXQz61zay~ScD19`%Ur}*Mk@SRQ_kL(CtDw#3k5I#ls`>NLTZkMgTcXG~b_+za zakZ1h)QIPi4N@Gm3hFb7!BsKT7o>Tlx*1Ips3^PjAT$IxkvVGrq{9B$tr3~sgKo%t zvl0VtYW^5Y<>XSrI(Q~#Ar-sGMD3>IhLm0!YTYndVPhTzi$FM4G}^)3q0**JvufAY z&#m3Cvjp08TwaOPG;P_^X;YUjpOjlzm^-2nCwZt;&b`>Yf>ZJC$bZ;LPQi1pW2sc! zxaNDP+l`QLf?^dv}?WLEP|+|1k{s1yZs6(Miv7FE!+8g>Xf2vX^q z3DVwA;ZC4o{1&nbBXV+?Cu|0Tz{~}sM&C=NbznM4V9$*m2ll>_e=(b`Sq3E@jumn|7V-DKMw728sVUt^VVZr zdeoYA{@j|qse$7avt<`bJ;@`@PvJUfyIZq4U-UX7t~1eHKy6@jFiHIRwe;u3_Yq0? zpMU=UW_A59<1lzP0r>wPH}`@vR3D`V4PGM!2a}JRDuvgj(~n|Nt5G)lLi1&8mM^8z zbhAj~$#Y~U|5toc8hO0w5BQ`Cfrf+p9!%>D$KCmYYkQOf@AjGFj-+1ftJTK7hK+i2 zuR^+I%s9(XyL4HwlQ|O6l1BbVeh(W6v)N?JBBE7%ecR6Oxs0)HCwXL=Fi`#xSZh%2 zgt+iIKdC0N6Wu>+Pe|bVk*b>4!os1BzvdW}Fjqm3Gu#DoFj9Mt-=wtPTA*A9p$8Nz zwq!8XGxbEW@BaIgzp^{*u zGzH%I)e|SAe0;rp2G4CdP3gx_E`wDL)3anjzaJEO_+w^=CG>V)G1X1XEoZhykY$(T zKcyw~ES1ilws7`bc9trnEps30)hl+GusqSo55!e=IK`x^01~}cw@cToQ~GrU_-3rG zPN&d?ZLVHA&I6}rE`)j+IM9G7&r)TTU8-8VX!zpA!xt^CTBNuZ``e-_#HyN?h y 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�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

    NB#0Q=G*zy#1W=cL#il5RAtmd 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 z z^wpow%BH?brGCm)oZWgo(d-j6+5 zD|cqAjO;R7smHE3R`#i!p?wnHn&4zj%R^X>!OBGWQ=hG5WMiyZ$x=?wMhBvLBwu7T zu*5ophP)wi`n1p4(OaqAoNT5xJHc627g>|2;lEJR;|-K=Wu^Hbk%R1Ka4Q+jJ^a== zDSCQxS~4f8%hjVzNv0+Qj{0fI%w%>lPtTMt#;a)4!)7Zja`OPEWwhsQ z8$c9=(aZ+Zy&B>uv~;Ql{ElHP^BxKMszcX0^fiaBb7)VHo}g#irenHbc6SJ=JUtJh zjYCN1X`Q?g@)i_`ewQI;JUMNgI_A3+$sB6y&UR>JirVKR87qIiRX9*0W7H;RC+8%q JlGVwY{{t(7(P97q diff --git a/uhabits-core-legacy/assets/main/migrations/001.sql b/uhabits-core-legacy/assets/main/migrations/001.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/002.sql b/uhabits-core-legacy/assets/main/migrations/002.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/003.sql b/uhabits-core-legacy/assets/main/migrations/003.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/004.sql b/uhabits-core-legacy/assets/main/migrations/004.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/005.sql b/uhabits-core-legacy/assets/main/migrations/005.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/006.sql b/uhabits-core-legacy/assets/main/migrations/006.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/007.sql b/uhabits-core-legacy/assets/main/migrations/007.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/008.sql b/uhabits-core-legacy/assets/main/migrations/008.sql deleted file mode 100644 index e69de29bb..000000000 diff --git a/uhabits-core-legacy/assets/main/migrations/009.sql b/uhabits-core-legacy/assets/main/migrations/009.sql deleted file mode 100644 index 5a4afd962..000000000 --- a/uhabits-core-legacy/assets/main/migrations/009.sql +++ /dev/null @@ -1,5 +0,0 @@ -create table Habits ( id integer primary key autoincrement, archived integer, color integer, description text, freq_den integer, freq_num integer, highlight integer, name text, position integer, reminder_hour integer, reminder_min integer ) -create table Checkmarks ( id integer primary key autoincrement, habit integer references habits(id), timestamp integer, value integer ) -create table Repetitions ( id integer primary key autoincrement, habit integer references habits(id), timestamp integer ) -create table Streak ( id integer primary key autoincrement, end integer, habit integer references habits(id), length integer, start integer ) -create table Score ( id integer primary key autoincrement, habit integer references habits(id), score integer, timestamp integer ) diff --git a/uhabits-core-legacy/assets/main/migrations/010.sql b/uhabits-core-legacy/assets/main/migrations/010.sql deleted file mode 100644 index afae84e20..000000000 --- a/uhabits-core-legacy/assets/main/migrations/010.sql +++ /dev/null @@ -1,3 +0,0 @@ -delete from Score -delete from Streak -delete from Checkmarks \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/011.sql b/uhabits-core-legacy/assets/main/migrations/011.sql deleted file mode 100644 index 6ea4e2390..000000000 --- a/uhabits-core-legacy/assets/main/migrations/011.sql +++ /dev/null @@ -1 +0,0 @@ -alter table Habits add column reminder_days integer not null default 127 \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/012.sql b/uhabits-core-legacy/assets/main/migrations/012.sql deleted file mode 100644 index afae84e20..000000000 --- a/uhabits-core-legacy/assets/main/migrations/012.sql +++ /dev/null @@ -1,3 +0,0 @@ -delete from Score -delete from Streak -delete from Checkmarks \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/013.sql b/uhabits-core-legacy/assets/main/migrations/013.sql deleted file mode 100644 index dbb9b4438..000000000 --- a/uhabits-core-legacy/assets/main/migrations/013.sql +++ /dev/null @@ -1,4 +0,0 @@ -create index idx_score_habit_timestamp on Score(habit, timestamp) -create index idx_checkmark_habit_timestamp on Checkmarks(habit, timestamp) -create index idx_repetitions_habit_timestamp on Repetitions(habit, timestamp) -create index idx_streak_habit_end on Streak(habit, end) \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/014.sql b/uhabits-core-legacy/assets/main/migrations/014.sql deleted file mode 100644 index 6eecfc046..000000000 --- a/uhabits-core-legacy/assets/main/migrations/014.sql +++ /dev/null @@ -1,14 +0,0 @@ -update habits set color=0 where color=-2937041 -update habits set color=1 where color=-1684967 -update habits set color=2 where color=-415707 -update habits set color=3 where color=-5262293 -update habits set color=4 where color=-13070788 -update habits set color=5 where color=-16742021 -update habits set color=6 where color=-16732991 -update habits set color=7 where color=-16540699 -update habits set color=8 where color=-10603087 -update habits set color=9 where color=-7461718 -update habits set color=10 where color=-2614432 -update habits set color=11 where color=-13619152 -update habits set color=12 where color=-5592406 -update habits set color=0 where color<0 or color>12 \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/015.sql b/uhabits-core-legacy/assets/main/migrations/015.sql deleted file mode 100644 index afae84e20..000000000 --- a/uhabits-core-legacy/assets/main/migrations/015.sql +++ /dev/null @@ -1,3 +0,0 @@ -delete from Score -delete from Streak -delete from Checkmarks \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/016.sql b/uhabits-core-legacy/assets/main/migrations/016.sql deleted file mode 100644 index 059f2016b..000000000 --- a/uhabits-core-legacy/assets/main/migrations/016.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table Habits add column type integer not null default 0 -alter table Repetitions add column value integer not null default 2 \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/017.sql b/uhabits-core-legacy/assets/main/migrations/017.sql deleted file mode 100644 index 15430d771..000000000 --- a/uhabits-core-legacy/assets/main/migrations/017.sql +++ /dev/null @@ -1,5 +0,0 @@ -drop table Score -create table Score ( id integer primary key autoincrement, habit integer references habits(id), score real, timestamp integer) -create index idx_score_habit_timestamp on Score(habit, timestamp) -delete from streak -delete from checkmarks \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/018.sql b/uhabits-core-legacy/assets/main/migrations/018.sql deleted file mode 100644 index 4cdc9cc8d..000000000 --- a/uhabits-core-legacy/assets/main/migrations/018.sql +++ /dev/null @@ -1,3 +0,0 @@ -alter table Habits add column target_type integer not null default 0 -alter table Habits add column target_value real not null default 0 -alter table Habits add column unit text not null default "" \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/019.sql b/uhabits-core-legacy/assets/main/migrations/019.sql deleted file mode 100644 index 0569ea531..000000000 --- a/uhabits-core-legacy/assets/main/migrations/019.sql +++ /dev/null @@ -1 +0,0 @@ -create table Events ( id integer primary key autoincrement, timestamp integer, message text, server_id integer ) \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/020.sql b/uhabits-core-legacy/assets/main/migrations/020.sql deleted file mode 100644 index 254bb7b80..000000000 --- a/uhabits-core-legacy/assets/main/migrations/020.sql +++ /dev/null @@ -1,3 +0,0 @@ -drop table checkmarks -drop table streak -drop table score diff --git a/uhabits-core-legacy/assets/main/migrations/021.sql b/uhabits-core-legacy/assets/main/migrations/021.sql deleted file mode 100644 index 547b6759d..000000000 --- a/uhabits-core-legacy/assets/main/migrations/021.sql +++ /dev/null @@ -1,12 +0,0 @@ -update habits set color=19 where color=12 -update habits set color=17 where color=11 -update habits set color=15 where color=10 -update habits set color=14 where color=9 -update habits set color=13 where color=8 -update habits set color=10 where color=7 -update habits set color=9 where color=6 -update habits set color=8 where color=5 -update habits set color=7 where color=4 -update habits set color=5 where color=3 -update habits set color=4 where color=2 -update habits set color=0 where color<0 or color>19 \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/022.sql b/uhabits-core-legacy/assets/main/migrations/022.sql deleted file mode 100644 index b9ca2ba5a..000000000 --- a/uhabits-core-legacy/assets/main/migrations/022.sql +++ /dev/null @@ -1,11 +0,0 @@ -delete from repetitions where habit not in (select id from habits) -delete from repetitions where timestamp is null -delete from repetitions where habit is null -delete from repetitions where rowid not in ( select min(rowid) from repetitions group by habit, timestamp ) -alter table Repetitions rename to RepetitionsBak -create table Repetitions ( id integer primary key autoincrement, habit integer not null references habits(id), timestamp integer not null, value integer not null) -drop index if exists idx_repetitions_habit_timestamp -create unique index idx_repetitions_habit_timestamp on Repetitions( habit, timestamp) -insert into Repetitions select * from RepetitionsBak -drop table RepetitionsBak -pragma foreign_keys=ON \ No newline at end of file diff --git a/uhabits-core-legacy/assets/main/migrations/023.sql b/uhabits-core-legacy/assets/main/migrations/023.sql deleted file mode 100644 index 456a4d071..000000000 --- a/uhabits-core-legacy/assets/main/migrations/023.sql +++ /dev/null @@ -1 +0,0 @@ -create table Preferences(key text unique not null, value text not null) \ No newline at end of file diff --git a/uhabits-core-legacy/assets/test/components/BarChart/2-series.png b/uhabits-core-legacy/assets/test/components/BarChart/2-series.png deleted file mode 100644 index 833e4b19c90a31bbdf9e91975e1dd541d776e0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17239 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≠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 I;KhIbKl8ZW`~Uy| diff --git a/uhabits-core-legacy/assets/test/components/BarChart/axis-monthly.png b/uhabits-core-legacy/assets/test/components/BarChart/axis-monthly.png deleted file mode 100644 index 1313b4f94f386eaae862515e46ac1a8ee75b1276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18816 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 R-3VxuytI;3mc(73{}1b^Q>g#| diff --git a/uhabits-core-legacy/assets/test/components/BarChart/axis-yearly.png b/uhabits-core-legacy/assets/test/components/BarChart/axis-yearly.png deleted file mode 100644 index ec97df8a1b5d40c9d645030717eef8749a238130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16469 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 Pfq$wuZe1@?unPWvs8bJ* diff --git a/uhabits-core-legacy/assets/test/components/CalendarChart/scroll.png b/uhabits-core-legacy/assets/test/components/CalendarChart/scroll.png deleted file mode 100644 index 16744a297e555a4b31aac013d8603bc5da674816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36152 zcmce;2UJt**6+Onq4y%vi2@=jg7hLJ2-1tvMWje43ep5=3807~(wkJJH<2z~nt*^H zAV}|0LYEpsau@D>&fVv{``qun-}jDhjErQk$XZXI&wPIKKl9?2jw%f$J0$=BH0o-~ zdH_HS0{}=QIVpI>h#x8r0BAs6S<%3IY^~vi3ujl{hA$zBOp3boGhoeXeVz3zF$dje zuAT<#AM@iQB^_I-RTc;9NzMm9Can+VhE>+zv1nxNKQqnufBRS?Rypb&pC04Q+Z>fu zMgETK%*e0~;gi8+wY));3E=|3-jBZvL*_0#_XH~x9I1C;*vQ-0qBy#2>R|K&0-y8oZgBqBd8 z^N&COLs5Ud{MVxXS_75;P}E;8i~pslzt-Tdt@>+G|Gmb(*^bxAHAJDBoEH-l+#SVD zD-J$1Wa|kA$W$;m>ZV=4z0{X(EH5v=y0h4QDWN;A{z6Pw9@W{ad1Cfo^W2xd<~KGr zmJ#4)VZN7=ds*b^I#M@oI({^EJgu#yC1#|=I8!BjV12mwERhspTm}>qhwS@NhI? zDO)pPsO<&Qo&=C^|MAw0;)pN9!@(SF9D^e`Y{eqpN%FprzeVwZW!r7YU-#NDtF-H7 zFDy2z(K9qOymN3+;W#)nVu9)veig4K=eZiY*xem3Gk!?+HtR#AG3WvLG;8W*eqZQdMR2ePo0V`J9gDC!PA~Q0&i;@Twg$ z@k)cW5PEX3^@2%&Gs1evd#e5kHpO-Rb3TWZ^Oj~N|5x*R@3$;h&GPi$Q$Cz-^dDNU5#>13T($$dca>Xom#-yF7yLMI{^Z}lc#%PjI`8j1b##H((zyQ?erTaYO5 zv`6oU|M6HQ5?h(CpDSxFaL`t2-4Rm%I*BpK5%Q|&UR~7{AnHJAj3xYZGJYX9-}*H1 z!73Pk97ICp2O(z}m5`DuTp7%z>nd+wj?!Nxa~r(&%MH8hXzcH`G4X9FgV>5zF8n7Q zf={irAlZPSw^mg``y5YCeIVskW1 zxbqD)@GR!-X7hGPNXWSoI0|oeT*0cx-VLGe>7S{$?@QYzdkfC)3b&wyu(QIez)d2$ zg%KYJy;g)Z%?kt>_YYQy8}#S7TDxKdo|^^xnXuWqi9wa5$sQ?Ze!~%yYq=yC3<|} zAVeQUTIaJ@pg_wbY_~`hdc|Xj8g{yl*LkMBiFw0mB9V6L$`T|&T)EuInMs(Fa<#Q)h0Krk|6C4ALPSH`b%xP82zck zyizxOU*X<~7ff=)1A6Xgn(|!;Yp1f8wF#8PO?8Wq;H9RKxg~Dm4Fvxg;VBwAK|;lnBf9^>wW0b?K-}hSZ1;HH_vi4<1~>qSR~8 zsN8L*hj!I6`TDTPvb_2{x7T6-E*5YyeqgH5|I+odH@TSd&VGaP8ci^nG})$AQ_hgT zZss%FXh{?4yTVm|M>}PZER*(XH%MD=WZFe!{;j-cD&W#)t^Wv+YhCi`%**3Iclth< zZfsa4@bl(9!^k||n8>$KZ7gDa{JtHjnQ(P6LOGKJ3d;+4=3XilH0TRxJxXUmmYEk# z9H*&JwSM4Mf5~ep^gKrWr7)IBAZDjQu^1v~m&n%aYxz0kkFuB{^b6kIc>+PSJx0)L z#6bs@94yOSI=%PHydw=g94cl2WtFGbe66HL4?cB22uVjeRKT=?p7i|aqHc&$pML89 zK1FL-xn`Y-kq@m_d(95_+YC2rG5~?ItvZHx4g#a zgaD-F+@0D94J6JJADekXRSE&bEq~fDa|ZNm%AIn%nw%oFqlZvi9YkO=`9$~Qm?X`K zavcaam0Ew0Xsj(6%(}ek2KrK zp2&436^Zg?Rb>0x;UKhO3y|uar_y{l-QYWN>Do&+mRCD-er8l$W*ItEUn1QMb>2R0 zDeK>-G@xR+(vKHJQh(D)l{MTUTqQ&BNl+g^Hq|E#!nE?mXE>G?X%0Srb|&IS5XtcyKC$37}d-pBcv9q*8{*^(e+e^inMpa76_kvzr6yYq{ zR*}?rHajQS262s7WW3=66vMxGWB(l&>94-f|D}ucpS-dE;1BNS5Or1}M;J%*(y{r! zUol1SgFLw??IKh!A+Ga6{Md=^iwC^z1kfFMj2O~A`QrtpCnASD1#a-7KM-dJtmdA+ z{A;QO-vv$d))0Sm z!oQUKcdfql@9kR;Cyu;q{624L%KXGW-@PwQzL1tnHj9>1I%8~XZ0LKTvGpdpe!0nG zC0f?+@Wb%**qG_Cgw;yPLS4Q0_Pae9TJGz4vT}0alt9pKjPx$qiok`VCUyM$chyJr znVCwMc8PwTkrRwD)mKN*QyQ5mpZ5}JC(J4>R%IPGi63%}J)=5%o-9(pg2ymHXU*WO z?BhJ-r1qubEsxQWoK3HMe4T*d&*qgM0AJ;v>ZQq@G>z(jyn)^(qZ69xOa7DC&BYSO zV~3f(gFRn92x5TCVkLfzAp98;%0nnwNIM-dB4YaMejO1!B`V?U*>cL&zd&!TzzK=m zd$KR-I;ULeGTrz?Hp6W%^Wjweop5e>pF}+9E2$JTMQ`p5HLb}ouGu+uo(5Mgx-Lry%f^#FE`q()*!naV% z!ZxyFIqZfb9ud$eOv0j7~@HtUxN3eS6p&N>0-#? zDF z2}{qruIGjps zRq@Dvm5XS!__xuSjx_KruwnL6hBqg7sV6CuII+c=m8Pxo`}glro(S_j>mlPHQru*~ z+K*D}TBV!lC*a20zju6c^{uvwZnev_vkkx#pRSw@2fJpRpuNKbR|v9novihIoe$U6 z);78YdOC~X4c|o{j)`|{atH7$EJ@H@T;+88#8PqfZq*f6yu}X@;^&)YXwgf+6W4O3 z;ydEnxn^g$k&~5rO6>z<6s@oKCN~W38ufnbFz!izCrSND^NJWOIUvJIG1rVH_*E_L zV0-sVzcr1^9WkDKc{qp9gZb%#iSD|inE-;^XNcNHvb%;Ywup@f?Dz-*nQI@E1O{4z zinJKktyXFgc2b)hoz#Me*&_{(w?GhsG+W?P>#O%_hpNTi4erVb@x%qZ4R~cE$EAu0 zoWEQ3;DtQe>-eg1iFvVwMWvJB`LlsWa{{+l=(=_1_6b>s5f(gAqk;l?FUAO|6|hC> z674tQU7kN79bW5Ww&G~5bcK5us5pNwxJJgS9u8~8`5oNOv8<^~sFp2CqAA+`z%yPG z&?tca9)+n!|MBgVk|ww^M{ zOn~~NoW#Q3l2kHGlbk7ai`bDlS(!(%`Opw;Pat540r`VCC;RWrfkxzapXT>&m@;7N;QJEC3>Uz;_cQqW z+G1tNNYM4=^JpjlGcmgwEF^4Re~|-`HSH-@fWl>2cHYikF{?o8k@1BI%zC%$xy(T$?@#mZ?7yXHKJO;YZ&I4@ zvi+JqBufweLIY(Iz*tQXXhwb6W`G_Y7A5At0T0&-XHoC~ocF?X(^;Wx7Qgd(2j%U0G zZvIxD#h_KVBX&MdSxu81osk*K^Ht%U&3&?`3@TcET^B`irlWL%VMO{{d9_SS z*24?u`|EtiXaSL_n4gY`2**jcl4}%*vXPy@d;2=buH7QDX?f(xZco>Ct!R8>m6z=r z5Zy2oN$2frOe5T(2~c?Ows^=E6I^^P!YWZ}XE!hyDiXwm-Q6wf1bkFH04U;9pjUME zwzPX8Dod{skd+G#tnF>ck2*xp^Y#*c-P1sa_%luf!PIlNMHx9C15B~$%EfR8_%&P7 zHf2Kokm^>Q+Drr|LHeXaJB(TCQ%*$t7rNw+q{{ok+op3rm? z4f5ubGEve%SBganfwoa57b}GecVGQJl}?9OjWBe=M1*jU?^_h#iQ3&3zE2$KF~0dL z-&nUqdXwx1K;b9gu`X4U^1h$nHpn){>=+xF0kmoV0)Zt3OdVuU)?J|@oC4}$^qT$` zq+MdM-6vQ1)!Yl;1z(U#N`PJM0WPS)uVugbVDWnj?WJe23;Xl{EfcU;c?v6a?GMB z6Ts(QD@!;^Cm3c+5>k(;yB7VrzV{@tFAWt1Z~mOleMHX<^=W7X=XRr}dX#G+ ztqo7JKY-g4gq2C+g`XYm0#WnJu!fOGU?D zXDAmv`~bJ=$?^NEfxjqV&B;X_fVek=KL7nqfbA`Ceno)w+KoG(`QoiSob=w%EO32S zATn>#Tv+Etw2cwxat4g50xOKJWFl6FFDL-L7wK*5gq$PYeueXy6N!$Y$mdP;erh+3qIBgk!zgmDeoj$Us?OBJwPJfOc~{$5az~gcw)3h zhHyyfbb#^W-oXJ~aJUZfb1A!a`rrU-hU2Gq+x|4p}v$XNM7Cu+HBKVPfWo7ty8XlwzGxw3>5CH6>fK$+#K^`kG1I?8E< zU`)WZUS~Lx9-#t5t2ydHX;~TEkrxe}oXDQujQv3efdF{ruO-rzBkhH8%Lm8z&Pzv$ zeqhc293FDpXcR}Cy_TY4oJnojvJ-QW_=5f-nAJzH7-- z0k$d9)Y8HQy=ftNQCVpl`YYh9gTsU z_}7-Bx^I;GAzI+>XA7`|q$e_>lV-rtv1tvVd7T~gwgHS3B&fb#JuXqE8tBd9jSGoY zs9rU3g@mrLavM}i5p`lDy|4~6wArTl(eq^KRWB(nPLGJD zgt=B;+_QF~%Y4E*tK#?>wsSa-#Yf!;?%j@T(d$~uASllZ?559n5JR`eQ>0y6el_wa zu7dSM(2p3_mhx;`i0zVWYgZtig zV^ZfTqO{~z% zDccwABDm!TM&$htBV!SN!4H3>Chz{FCaVI!VF(DJAy2t3{ugTUH#FoFsQfE7`3*k) zH+1<6&p`hz4$=4^g7LdP$2MKwFK_#sC_<}RsX}B zcC$upz-fEw|3?{2_0oScRZ~yBk z|6Qy9LAOr+F-LsofrT$|mkX+^jR|+w>I;oa3SPga^#mh?o->~yo`+kr(IZbsA*u4d zMqIKUYDh;UauECFs7Odi2+MBfyFGVves8{7usVqz06B{lMtFpv{VUyVFL@Onurb{d zg6Y3%_R-P?SZlA=8ldal8K2R`8L2m-7CEaQg9qwP$b##L-gjTiD%mENoZ4Z%LeYj< zGbR>vRux_?`|gzf$}pW_?a@d<)9l^slDh}@;uH?wYgGG-Z!I;^n*EBu1C%W-fnIHu z@Az@wPe|vK#X_Z`?+f=qGE||cz~{oAe8EeT+uuJ)z(LqKM@;WAHQy2OJFv+W0_;6iBh)F=l;CO%Cz2SXL%^ffVN>gLEyZo)7wDg<9 z$>D3NK2M}MQECQp;s+d`*2&^wlOulK@bv8fFZ4j}@!E&?BnxjyVdj3_e86b^lk$B` z%e4LWTzey;@9D7@7&^Uq643tgOcbPZq}cuYn>X;h)uwv6tnY>mB|iIFbZc)ufG+&z z!??O>nd|gV_SCY+;jRr=-E-__x;5yUe*Uok45;OJ8GbXl>{~v15m5Jf#qAwzkM$Q7 z5U5S}T62#({yDKl7whv*bW-d*NhIh{VvmnKTc=OV5_;{_$<@i|J;e8)e;6nB196!V z{R^_ajmbLCj1OQy4P#nw%*;iPw>W|?^(N;A)7Mu$n!SPXd^L8)d}M6QiOZtVucpy% zeXP>xQI-3Wj`g0fX@y#EI()kFlnPOX%tIr=Ub%9zh&=_1s;6(Ky^^b&ZUjaKC0G#k zhwrN8z?y^Qccu8O!vICqaE9fKFI%)Vo_Am zWoCA5>%z&=OpSX50}y?Jj0xzQC`Vp8$UvI3E{TvJM60Ghu%c~h?e8otaHnw};?J&( zxE;uvTlhL@*Z^e#Cq9_8dsPqa+!5KGU27<9Domx3GU9FP(|C|oS#@L)Pd54=M~*~r$=P{+G*>-% zH)K(Cu0J7J=IbeuqcCkUCP;OmaI4_99<+n%$(WHlyDUM12*N*nH$-jhz=J&b@N z=3w==$9Yg9h}VBlu&yw*8(gRZG3f6OK zsoNlt8CCo7QU&tH-KUM)$0gJ5>($S5%+DbjKeot7U~unn+Z$}##GRIw5knXBLDwFG zmPmeUwE&*Tn6G#x9wm&(eu(D-gKoZz$eWr;6Tj4m`O$owh_C7JlH9Sy>77g?N*MXj z94)|yuJKqI_<*yJE*+FOKG+=Th`MC+4zG8#E6V8LbB4VsfUzQ=1n=^O0DVGu^Anzp zWGt4UN9l5-Meh90y@Z(a_HPK*!!%1Na$aATFPRWAoh%uL z_-LCLekeLHJGh6bTnoQjW81h}}We8|mw3 z%4L52`t=;EjV`g5V+{+Q*jXBp!z%QWK#;!fjmP!wa9Pqulu8a)RER zgpLthUEV3eNg3&(v+n2Cdzb;oaS`*@w%6Gfr(+154@)f{k)(Sf@7r*V4%R`KqrO_E z(v}&23xHy7lbYrr3v_6@%_p<;TL&IC@kD{dYBXy2%pN;^kILMW;3nSgPrV`+i9!Lh z&Pp9%XRe(}!gv1xmF#fQolL6s&NTt{je{Glzi4SnDZV!Q&d8dW;kUcY0O8XC z6k#viqw1t=zc8O5I;ItKT)i?L*}eLzI0))kLO3s1sxdShPuM;PTk%4gY|-={4rYm_ zDITj&Kwhoj=cPI&x=j|<%I#|;BGj$*Gsn#~?_+({BWNyVi zJq89@SXuFr@LltD!sbmE_@+`R)m^v(G!wbS1-uVFXnFP%h`_yhcC`b^fAjKVVD#6o zxwu5`y}aE(6qgL(HiN>n0GATJ$92yE^av752ry$1eYTuMl=XhoFa^S>#QfnI{S^#` z!>uScx5IQd0Nk3bfb)GsDfZQWk}3~%-~|I>jbGfh%~-<`n>0qN0heWUWjtQa6Nd_2 zAdAf21*vVPCdH494d+av#EcWZ4dAl}VVh~;&BEy_RS2F20t}?@YXcPKa6ML$N5JHO zjPGP-yEs9W?ctgdAIIhU6-+ZiVseM|=2B;9C=mkqxZ1?`;R1F8^KAMBStR7g7k_t2Lh_H{7-brmhCA8pC^g7?R1 zAH)Xl`DhP8Ol}3Vutm-Uo5kRAV+op0EV8`S(;)!k19ncm3$|W9hcAoXB9>B>0aqmX zRlqo4{~{$NqDuJWMsQngt*%l7IJ#Zt-DJ*rpBH46$}l`0`6E{4l*A?3bSKUqv^IYo zdfgB%3;wu@x_;;@#m9{(tEOFSB9PsS+I(tG4!hVLfy#W7I;oc*8$#UE$YOq%9Hys5 z;;8Rz_ndj{vK~3?U2gvtb(?DsB@=@B?$g(3%^=N^WEqmTJT*Rg>dlS>3SSD9S8Hc3 z6WCN~Q8L)Db941GL@#j5_Tkkc- zwAekpI1<*rf|cL!Vx@u|-5W5b4HzzeK}ru%>A7yja>*G8wAvJ?x3jQ!ook~&PTmm& zqG$|C9i6Vlh!=svH(Fx)WBG?tS0V+_tduZ^&hVJpueTo~23)m3O+td5haBA*+Lt7a zW!;tI3Usa*;RobZxCbVzUTo&z&f*1F7Z45`P}X)e&fOMH-5b29&F$8US%zL`^Q_so0cI-{N+CzNZ z%V_~$+tg9O&1ql;b;wr=+*cgxuB%OPp~nUT^y=d(Z(k*V5)!TS2anMygZcBF1UKVZn)DR|h36N`9V&a#F&*8e5jJ z3rcI~xUYX8m9jk8oc7Y{rgS2OZt4PT=YaE>v8;lx-w{XG_Oq7W5d5aM#On_%S$`9f z{nj#H21pj97B#F2PlRgkur_2pNCIF1zwLxLA%6ic(Tu7;go~eV?=9}~ihwZ^_IHxV zVPB6YEprA|r1y!o#ZK$rNiAT9eg{NO5tmD-^>7gyeIDI+br^X{0t24mg4W0`Rh|f( zX;#HM2w|zW!R=o}eXFL| zgSjyPRD7QJC@BSF2w@eM*$}R##5aIz%!vMTHJ)o=lyZ1Eb3`;8^gRcqr0H31p0^*x zEOWC6o-y)^ni+686MJ!2Ge*x{@d_!8ESjQQSBuDOCpS=^ zGrGyiNML28G=`;-@nMw?Kceb6fhabnPft12IzJiD7Ewal9svwaZ4SIDVIq1@;kL7p zLyo5dh~4cEzHL?=!WBJPkP5T#Tl^Bo;+lCRc#SPP;Lh3={m{jYGay}Jice3Z{{*tX zIB3m)!L9!k=k!7ekN@BS~qVWzhH?_KF94f z;-Fo@9vjO|+BI_!mh~L>y?jqWg~&>IPwP;A@}6eV^Z6&0UnQP3BR%bBu)1p$=i^u2 z%u!hekOzf==h)tUIzmW#CbL^4N9gChlX)>qdPq9O3b*2(g<`hy&B>sPt#|Qu z&!z|DvaByaeS^I3Z8EH|gR#m%3?Ha1S=5i;$6b$=;J;mBMWKm`1kOLZDk5@g%~Svg zgq#Ps_LG<^-n?NSL6XBLAoQfb|E436AIH@wW~Rk~7cCz;ar^7z><(BgmiZL@#Quq^ z{*S^RkjeZVbNY8q_BSYr9`QddLppulzvHyOmsEvo{Rh=N#}lAM(EA^V3ctK3ApcBo z1sjt_l;CmlHv+3aNMWGfpYo;u2U7Ui-k_I#reZ7iM=VFZ(+n znemUw@qa4}+y4ydjJs@X;Nnt(AH-BXeE6{T-p5Dhc4(K^M$1?G-zu$s3M4jd1*KcO zM?J2q&+TeRQFHRq^nk$}$kPtysV*Ew@CaQviZ~1In9IXgEgB!h5{!2qh$<3JMg6m_ z&nxku1pXy%qV4!#u03pcNzQvKV|8uq6(>UPE-Gt4Xfxjf^Ze2z4*7k0t9WjNnp1cE zC`p3{4@31fdy$#@Ugie23vJh{4YB>32DR&%fqnSK)#<}(72?jYv@@$a&7-Th#-!Cb z{GHX|Z%3dGWp(b--YQNbZsXp)-FmG}c5oMH#B&~AKQzmJe=6a+K|=5G`k$aJCjsfT z_Tz1dQfuq=0@`ITF`%HTY8cy;t(_u$8`OFW5A|{8;(L>&3PJitSLY03vQog(Ab>F^ z0NzMnO*s61|5V>V5V~7MEjK-7RAgfHlwgc~AUccp++kXt28H~t*oLXFT%A-sP~pkC zf83J}hl~DGiM82j@mq-%Vo^TpVvv*TJOlT+j(fAK87Fg(iwkX#!9TfQs+XUuRMM4W z_;W}ZB%IwosAG;~(LY6YAJV93)#CEQT2y4m_abKrFCrWZR0e zMSoHwrq_alRMA20`G!Pd%SE0bHa6{-ln4>MFiVP5_1SAsqkg@6_qe{;zt)87QQ0V$ zWoBCcSbB5)Ntwd%)RZ&lX`g{OX`Tw~uHS2C`q&FhK{e^ZWyX}Q1&M-z`6`nvqRlAo`-`IR*fDjdb+7{Djco~Dv?>dp`s*(CID=~ zERoJ^#s0NE0Zi#AzO9~%St$3`-X`Zj1ntCR>>Y2D#Nav#P{b4}$6o}Qj>DtPV4B~bJr`sCI zC)G8brb~7#zkBsPFXN;$$SO?0UQgN3BrAW6HE1G1CB_a<_3>FTDsTC`ZwJx^ zA~pV!`n$q+%Cho!ELor(OJ7ry^N!DgM66+TV?(l*GJY=&(}hnuRe;M`%rjwfb9iU=W6*phT6 zxWF=wL+fp{rnYu?+RKE3bGLIX<4j#(fkycSVxWV6?WFV0=h7B4TO947e5B;8=Q&ps zh)I6{V-;xREJ3oC$xngT?;-H}U+8qwyG<0DV6Sh6wT5g}WWtGSeL`T$Fne%a#w!+q)uvH{=G8Z>GtJ%S|K@ zNB3tih1GrghJX)rM*}ePG;P3emLSLP4>4yA|~aI}fricTzc zk3q$Z)6b#Ac!!;E~ z2nyhW$(6GzmDDSDuIS~u4Y)N_>hvaW1vau|KbZ%8!>i~{_l{l>v5kENe}8`?+Z#pA zO4ETMo&w%9m|NuMz?h<}4-_!jwdZLTBSFldS=*m|ZXtwscEZq6_!a3c=LyR3PRTzCC29~qh6P^wyz)Y;U7_0BuSb$=WZ0fDHIqJbr}N z-Flpij}jOKQ_d7ZC{gzPl*HDzaG5Q zgxj@4Z(X~K-o2i64`LQ|7PP9j&qjBpKTQtr?|(f{ zul_c%T3_0V(wBWA1Ynvvp5v|4q(O8yW1PRHC?JbY;2d7j+G1KYm_s#oQz?KnacfQkl30h9)hJU(Yil=ET4t zU7TOlM>`SFdyst)Pf=1?QDKt$BznU_U5MCBM)6XHkp}iN1U8Di`zvrcb-2vyoND`( zEb&F|y@m1wQsA@Z7Pkqd5u0gQHC-GXjQjCpI(9^)&$CZ{_@{Ipp7|~FU>=ah^aU9b zst?=ma?MkbZ}Jahnk#9_33*-yJdWUzMC?OuRC1T)1SpD9=gNVAtIm?4aIn&qn4D8n zmhROIztHKj+c|KhRq>_L*Y@%8DZ2fz32af0IjC*{TU2q{qD>3m)}GL;`$ zm}{e>EqUiA1Irtb$jZ2pU%CCh{6p6=?@q|J3zYb_CxX%2(t|det(8`Gen42J$CP20uL9NrQm_+N?QKF%Hqgt1EucT9?`bC2d1ARNy#FUbX zVgveqHpK6zho{0u0Nyxm4CjTP&UN=th~y&Qoxj?O$s&=C1KljdIbvgrIi4Xr7fHy6#gvYR-Eg_)GYO2OPci#01OB@dWktk8* z~7BCaEeyU53N;i@B5zIP~d}pc8tt zjFfM3XKE&tKpZ!QkNGkZInimn)nz_PFNc0{QW)ShT6!DlB=I4JC0ZAQfQG>}r(UtaX!l1VwI*y-*;5+NtOo_+P;qjWdeR7Jq*Ng_ z7yzE{Ae27g!9Sdq)?xqjr9_uxouDY6JXen*+0UAl>!2Rpp6>`xZ5BK*e;UEdT6)ZY zrzIT3Fs@!kqxSNO6ei81rQ9E+lvtYYpI6z?7R@k}D zxZ@=R(Vv!{KeD1W_>hDCJi22|4GaLh7!Td*A1ig5T|jY^k&&}2OrJ_LG|B8Z8W`T5 zT!&ClOTSg$=EyRsY3Kv95IoOZ;Z!9&PYURHe7_DbIBLz{OoLP;0(|dPPVlB)Ue(hb!GySib1%#ApBd|6dF zJuDZVn~W;ftHXaAOk)cyf#fSw?b9@ShNE~w@fnad^LL=^pk~$X7>D?>5kdl6l+22? z8u^73s$BiLO>#y!D}oVW`C~BiQN(#1$APHbHIc-b-=0t{rTHw7V(_y~ECNhf{|A22 zeTDA?_+}*ac2&=O65v9#4DeLS`|PUaYTi$9hwslc6Z@Zpb4cwHd4ZxT?0+kT4TL5C zC5P>Q8lwHCOaE-dUlmaQEuGun;kJr}zvM$^{^hqJ{!MKrM$(O>)OR|7^OwEIjzC3q zf_*m#O85Sq^Zk(?_&=$KW03v-L)UhyL;QPb+W%{|H^xB*Gk$M&yP=^0+o!kmv9dcs zSas^30y8e@M~KSG%6w3W7UCAJjupOFn?=i`P*mdh@SzYkxt#%c3gQrqa0fwqmj{m3 z-bvSJ>;`|=z%+e+ra8EvynHYbU`@|FO=S#HST0)dmFz-2($Ulm!XME+V%VGS|!6#4bSom}V3t}Iq1xl`NC+WwKjxon=aLR3s z^>sG|fC)SWD-T^po>IevBm9gWi%}rVxlYWGtML7rC1i;>-n`nr7t@yDrEm~dPA z%0;Bs4+OmiE&8_8P~PoYC098YQ2vGGtggD>{<2dxBU3e^08HJqV!xo1k_Uq3vp*y* ztf-EInlW~8?R`M*Z%iVo(Wi}GJ=NBMd1-$(T0d7OpM;8qy6!O^cT{=|C;9=dP1C05 z4d92)sRu6&Y|p`adwW5(v{UC&5FErx?8Q9O{-yTO4No99n}F!CgQ_o+o19ZoO+Hz{ zShr~b_xo!Y*#1o2H=wi8B7ZGzkNB)S$9wo-u4uz$%|_K)>k3c*p9{*?fX#k7;dudm zfv4Mv9IFjPc8@FQRi+bShCQr)HTl+7SuY+BFRe^sZ!ZJUfBZ@czC3Z3v*Ljy#)tNG z*AuJpBr*Hlaw`x~K_g)hDCEV-?A;<_(^Ifz|Fb8lwp{oDsQwDeBEEq>?{iAc9)k$c z;_k;sZ}((XmM%4X<~wnqp`pRD{!V^eMLtq`#U`fG)CdaFcmY0YIEede@GjAR21_*> zHKEBM>-oOa^F~4w6##Aj2LPKSki4SbBC2>xk^ZnNnt#|n_-ED;oZYT_q5d@Sv5y2E zJ)`h?Nw)@jR>*YW@Jh5KNQ$U(T1X>3j&n_l@g`)r z+r*(HIx7jL?m4+Swzc*&e(_Z!=@`9W%wCeFQm}LkU^BRDk?*NbNI)VJcdBTIb5Yoc zMmvrm(#YZLCN83z=D>pDF9E0Fbi8jCD0B$ez3Ke;*H3LsfPz1^0`uhFy?aW z@Vd#8z1wxq385~t)e?rNQqo&(d)|+qr3F>4kX<^Mu~B$f@JPiPmiT-z&0O$EfgK7! zszHAiOaY)X*k6tJ!y243OUdtQvbvh7=Sz69y#1%(EPZqJlUKhjC&-8dMi%U;*^zku zVdg7YnvnR6?0^Yj3C<@Zk>8mJxdlhR2)8&2P-ocCGc^Kzlv1rTF+eA%54zXadX4Q6 zhUTM2hy?NTMtUcL7NlZ<*o^y7CootL0>~mt^j8Ajzc6ijwL44tsFqfd?ltd;pffe|6qT|d%4GeJvm@RFGfc6`M-L&aSq%p`0 zD?pJI1_RMA1yR@G$;f8S{`f||@jd;WW;r`5vw55GiLKPpdt9a>5j)eAyNa6H1M$;?c^d9n7H>yanE-7w`?V%WjH z|2sSUN)s}%MK(TsFf$nv*frA}#j6^^<$JV~9cO-7uyvV?a=kg2Z1{oOg&4tFova_S zj8d(>W6jS2Mz=FXZrn4`_*?4V(=Y15G8nl0Yh+K%m?{IV-`6uu(oG_p|HQ|K3=X6Ke>$<(=}nizp9L!^acjL5y99;nGgL-=O2c2tM375L z=G;NX7d8}71TF#h%YjxkEEAZx_RKC;w7$&Dik?;s?{YX(vCg(X;iGnt2Yiso+on| z%y-?wXx`#|><n1;LkI zq>4}GcMPp;*eZ~U>vVg{T1EDiB93RycK zOZn0-&S)RzjG~^y-Yjtvy8PNE8zMsyqRH*v_PkT%J_*&S<0SCTRhry8n$$X-TeW6k zeDqvlb}~d5q$UX?7PpUATS8N56zaFpOE%T5XM(;mTeJ?Dcbn8nog zPx5L|U+sp4M|h~ht?`hOb5Qm79TmCl();5ID+%FM5YeT(<*wsZBDQ{HW!xJDzPrmY z{}U<~;@m!n1gHmw!L@{eYLTg@tQY$OXeG`Prw$6IXoZ#oquAS7{te?7D$EO;UW5 zNjq{QB@Ea(U8>A9eE>Sta*UeiL0_ ziq$}?)1!7OklFc47gUkn(@{4Fz;sW;AXvyq*cTW)-mJkd*hrD8Td6iEfZkd)Dbm>H z=zd^7ReN(VZQ*c=oiuQ0+V5W2^SE$@W?2w0 z3MEAxR$tP@s#-<1)9wWgmxz{*`)2=a0G_W)B*K>twWKk(_EL4HvNFSA>B-Xu>XJTY zs^>o9GW3-03N1D_sV5LqIT}9dLLH!yI+{{BN0qw3#r8c>tBwUl-a3%qxb=|?6Kuxn zMZsiggF`Rw2uITn@o#mG9&0XeK#0&nZ!OZrmG@ZQjr~vx1dY&RLv~kF%y+BS87LgY zCi2tY#eeH#m-qE*1SEgr^ggH-6|N6>^+3dcwNc8manj^$7R99Nwt;vWr#u!JSPE#uj!4dkLc@J(UGf z?2)@s?f@OHgX((pN!YqEoHM6WDnrm3b&LH~jFx5}3*G2&W@KcWBBc8Bc&0H8o4h== zA=#`~?1{bZ@A*R~Otkha&~<1z6e{7I4@>=TKy6JrhkZ4MEXY(mc0St&g?_%0SL)N#pGT*n~-?a58L@W!Q$3LbkATnl-p|8bXN`0nXfH5 z*|HdapO!4U(+~7o>cZ5F{H?D+Hj#MWddm+55DhIjf-EiHyzB>;Q!s&p_@yJXzICHt zI43Sb=HTE&r#5Y)ijgkFk$Xq|*dl-}(?&m1-k2PfX*$_Ky5vWz?|7v3G8KLD#3%Ss zWo(TXKl|s8e$hzkg;p~7=vC*(bf2n)dZ7U7Bf4;#{`xb{NKJlJt?X99q`*XBVM20n z!P_^uBHWwp42TX!sb4@(hT!^q?Ya`b?2(8z*WL0634?om@29b~@%PhB?*Ag|6C;O< z5RfrZzjF`m7nvjOAh@9s6*vLAFoL?CZp->8&;zU{UlE7te#OT{qhUrMdkE~5V7TOP zw}Y^$b$VK)nnhW+JEWSa&Y;{gvx5Zk4siu=)y3kDCMr2KaSPF(5U zSJ%;>aEP-Gm-2K`R*r60VUV(l&%ELMCJSArQC8xlr@Ta!k@<==X5j{5+vH<(?^Ed$ zDyJZ>Wj}<5F(E;eS$71<3uZMcvZ`Mup$Uf7_F0Z*?%xT9`)M~ua2zGv%> z5Dy^=kB4sbaS5xxd?|Lev4!XDqvI=qr5clpg5o?jEmxXCT6BitR(zKvN82>$*immp@lj zpmw-oj^!RIHFB^t9OC{&C1gincWf`uwX{~RMFzhBFmMvopSRC+m&^7Qwwu8 z6Nq*~$=90GJ)gmij0$4a?4IB^@IZ zqNYnowsUVI9x2NyuhTV^cmYuce5aPT!1llD?z91@i8re5@AN2f|ea z^Z6cUY3XzMb6gu0@$Jm4yk1zcn@t$PI3I3oB^gzx&{HD)E=dlc77ZJl9>-g$n4C_t z2CI6XJ)-gtnsiSGY;wZ`?FmWLdToDRmuTWbJqMPz<*^KgrhB}7+`NVM>=h?zrqP(q z366$VuP`~bfRP@4eyrjVId-9QE7e_nES-wOH$SrbRIL9Z;mD5~88$1y^e;dN3eo`Khp*&&1cG9jnH}P*TM|W9^E4q52yqtimtkuc{R6T_aG*F@ z5ls>Z>OOZ+#=N_beh%dQ0_(FG=}rM%=r2FizoLZyA49tSU~>Im1xx>T;md!NxDsH0 zqulsFNB9QI!Kn0jjNJ^6fU>$iNQ`B}f4HWfx*Mn&ssDV>%8Gu2Rx?49vZB=+? z7=e!KK9>p7?Y{-RdXiK&^s}!p1RZ{P=Z^hjZwL?zsxh12qrYoVqc#um;nQ#0gWC}#yI+zW&!u84n&`s`kWe``zn7R zf1A(XlUK!xv{cZ;aT8$DQ6?nA1OWjvAJBWQoK=GYG~NCb`Y_6T9w#7XGXNN{JBND` z$dluL5c?Jmgh#8~GIphZIph6bKxm2ZNQ=4W;No%{WKORaG0XXUaJ+wCj0OQ{ZNj^8 zvp7%(vg5#hY3*{W*B$R7(`|Y>6=FC(ak>LDiTa6Cykir9_tH5bg?17EQ}Br3`u`#H z0mGM+dDPNd9WjzN^9kE?sLZR%w6%w#Sfs6{rUn%rmu5xKHW(|N_i1v!GvkWS;-(hfSYCZSG8^9OCkqBATb27hXgc{%2p&QlZ8a7MLsKkRz zSp9j$&J*m>ASmxSmQZwQA(M}{e=c>g6${*{>hWRAVA^xyq*I2MTYsS_JUz^BT=w}B zNh%iw*1zJz$B!nhaY7bF#l|(Bg{PB$jaT=dg~-RWn))n?a7l9jkApwo8OYvrC6+rA zV?f6eh`&OO&`gzgo}dJq=)()>DNs%0y>-7+rf*fC^}jrI44_E)uHeV!Jt>`jg*$J@ zX*8*`n6LsQN6q5u$~4(KfE`kV7(Y(dd zL;QXqFb6&|y87v{?jlqMuI)0?$jq;=Nny4`FtR?up4?f|6g-yf^G&&i?v$(cZ{E60 z)ysXPVdS9mCWE&L$Oe&;>;PahEhPbPO)tc!_YMr$5(~x8P@1AG1hydl<28I(R8F`q zwCnjMMEhH!8vLyS{}wj~Eec>{ZWCp9J6_*xY|@~uH+^aZ*kIk;Q{Cd(i=@%*AriVg zlv7Syb6+t=Po6wE_>CKLr`7xkILh|YKFeF-fH?L5s-BDwj*8v?W=>d!V~eTty1()8 z4%Dvf z&|46l!U_A197EPg6t~v$?Afz!GJ?ZrZd$yyJ%wpmNBehIOr58IOYYCZ<{DgIlZ3Ap z5k;%sjU|)0Lr`U+qXsRI?zQ?&JRR}jl8>1Yc$87_OaKhF%hJy(tu{1N=<3m z0kT|J7k~^27>*FKSe9YfA;l;8i#g-3d_|7`dCW0s@I3K*^S7(;d&^7bbay*584KXY z3YySn2C-9b@-Y#b*8jb_F5NSN0R7o8(u}+ltJ9_W%MK?v-rJWu8hDM=2=Ld^DzDKz z)Ryda7`U7;DgJ^a9K`pQ8gFH~sC_yYT4-FZEa$ypIpSe-JzzjuOfqWc6L7^u$!HMK zW!jBAEZAS0$XC%5v3?oNTAWL3MGTek^g3q_JM1tzT&^O?GMF8((72f!ai-u_xCfb= zKhEm#MJ{9=iDTTx^X!I?3{k`e;m6U>s3{SgyY2GoLMx19@XbXPO*D~+krPp>3hx{J zo-NTlHZgo4e4en+DJi)5nna=Lr(Ya(59A)YJS~ck8QY~L3WwGw@B|hpL1ek|6W-J# z^HK9QDQipKTe<$hiCIbpV)((yCO3(<_6_1`5s=Dsf_?#eb2D_qZg7HX<#tCe0(wD? z2=5M?CA%2m#n|0V{(bO(zOXd4b3O9QMg>GUM6J3M z15Ox?EKJ?KMz6O-5I$r?ZmF@wE_CAh2^akYH^w>?qDpRsUU?I+hdhAloeqc*pUDZx z;hRe;Y6ev2+C=k`>mC9xHLRg+V!e%2L+)X6$Nu?aLtxe}v`6gx3=CG#PS}1$aJ~By;WWq?g;W$$dzOVoC(pQnP3Zn4NxID6<407~)^qgk*c; z?pN+JzL<^w#f^Fm96#sWUsFi^O6KpkHa`cggDOX((CE#n@ymB7}LrR6vhK zXl&*;)bn|u!&u@qCj3ym>yW+LnpJ&o1e(<^G^Zmgr%(`mnE#=3_>~upbmPq%7cMiK zf2H!z0(7rf+B|KM_HLKu>U!U`CqFf)VVr4CqyX3oh8Q24Ey{9SJJ{ddEo5zBrG=x2 zxtrHHOTiQ5c^3-K-6sH#5@QwOXjEKOIiE&Up?M@0EsEh)dd>=UkU(6@fFWpi1E8s8!J!Kf#cexsMn?flia(aVva62-K3g}H3Fzn z@v&cCBV&g-banc^k`euo}>ql@`y7gxWfwgn)+yWzhHAX1D znmaYWw&`L{z{P6|z34}_?;`cEt?SrV@X79=Kr4&_g#dy9B65HNZ}rgv4X_aRrdtzw z;YrP*T={J0y*lhOLGS|7Ah#2_aO4*r8lx42yaAD0QrqNWv9e&QnPEET+MA&zB4vl?3#2K8M`Uqq$p zF$KM2wAapv1A)ZfM?@X4&Q9Cd{GK94 z;R8GdpFyNjZAC}P6UGB#ScOA;?jxB{x%0dUupKHYf%W;P@7ABHJLA;mom7il+DXge zhUpOmM$KnG;KzD3ZrfcJ)D#T~HhNlW^g}wC7vw z!GXByDn^Asl~@317pw@Eif+To&@QjH*paKvysb|b4gyY*!mICeEvKf+KA!OwxFSIY z2R_~ahB^6m>X+=49Q9?VSS5noSj?zDfso)hnYA#*@=(ck$sLXb8%FxXh?N(=IayL{ zzd2di*4-Sf`$DYW-W^^(bygVn4PNlMs)~z{tI4ruC z222r2cz;da?&cwbf;Qg4j1LDI$>`8O&w)_j z3`GO}BmK8R5{9psV;1AsS~i)%XE8y@A!c*D(T{&#KMUr$d1s439|NP~XB28(<$7Ey za^a-#T~>qp{#66abj>)qTpE5(sNwrEXYxEeQuCHF{IA|;Xc8AkYRA!bX@1jO^oMSo z&>Am{{KjZ$O5!nEGemR>St_NbJi0u*m*2Bg_%F5;4f0Gpp85RZ<(X@S>1cWZZ?YK~ zG;4{{E|zp257dH*ke@JkW}HasDIA|a3G4f+xMQKX`rLdn2;}>mlmSD!>%FUZtwHaR z5)5wju>{M_qd?AzXmOAg?8SJD zmL&XNKf+tCaNPeB%6t;_AKDNW@YOl~aZ*{s|L!7thZ6-DtqqdQzx-%;E7v0Ke?*r3 zpRZ=XCnx{PDEI={-{IqbeWYX`JRd#6>mH6+fCccxo?wsd++-oZ zCN9}E+%jvKSBSx&$pJt~L99dkfMMNA7lKdao7VUqmbt-RpRpjDNdOpJ&^}|yUSOy4 z<42MioIecy57c!W<_$8xk94Zj;>iIp@nW@szEFAg8)1oh-PkCtWSOcfiIHswIscPz-36Id6pE5J302JAak*k4?% zS`OrIF4krLU!kdatA)>+1v@7l#0e1fE-Cp#1ILO6xcP|-g&^)SSZ?og5#j_DVlGYw z^e!?fv1}|k@&>jk;Hr>GxsAnQxsnW>92|6jX?J*C>n4PnRxZE#E{PCNwz`^Qnsn8x zsQ$d9^9U5srMc4uNbICfy`6tF1rDvGVRY9Yf>u7_z@OAcs9Jq^s(|C{Xx)>_Av9oV z-K6x7Q%9Cd5tRHUVgV$(+o4w02|GU2_*SD&w@C3AO2-XLO5Z24#x=5I=ubw zyT8gU>m;lh^MbIWI{V=>b#~lEPe{7FW{e=Tq9QdXv@mMdiFE<@)rU>=;w8K%$XXpo zY!o36u<{@>D60ZU3dOVGIgl+Dv&%)w12Zt^k5M-seyf0dyJL9;Wr?9~Os~r*;5_?u zdj@m2BR0^V&^nW$k;Emt$%afLE#uRtPjg3>VziB~Aw_){C&4hl?@MQ208naUn2%MS zau3@0oOBMrE!@K@;^ztE9PxO|Mbd)y5Y9d(N`+z2+-kRUZ*Ok|%U*A`wC|XRBL$Ok zQ$g8}*nHFL2zZ)89j31RCcAIgBP6hh`SZ!&0D=8n$Iig~kC~;IAENB0{!(;zp?1trco?d#lpM9;RNu->mru3 z15kiDe_Y2B?38RU=ryF_Bh36q7|*UTAx_ZDMCZMliWxoVGQ#B#)!D7 zoskJPYg6rA#xY!VgPjV(@PJv>Q*Ubi$k`oXc7rMl2J-c1r?@{-#6qgL!x&`(yo6DS z%SesdTyE(}nsT37IfeuHQ;9`X=x@MB|dy6u#_m*pGfiZd{$-M~pom4qUVXzIthWUAA_8 zT=BrdOrKD>u1jmg+RIt8K0xXIty|=uTsU3YcQp0&eS&O#{K%DBS}nn$4UvaC>je2B zr(0NBgz?1nxGL+G*UZY%KXw6vYQfOLq8R57%$_S=kqLH3k5ya!02+Ad2T-S$d`m3b zy3=P$vb9B&jQKrUQ6%%RbT)!5ST1 z$nZAuLW%3ER!33@yYUBjI-)L!EjC&^Kl<47LaZ!;4B!O?1+ise; z#O3@9JUT5ZuiCklM9+2_xa#mIDGy*dbVAwht&aM9WESn*+kWsG+6sa~=5EY%gVIv! zqOxM|;Tb`Al&t%?>lERBnSwj7|%4tHJENe*-hY4R62@{2h>DAFf83;0>zu914&Y_8$wsK6byOe zdb2!(3vgAnd*VFf(pOZemwd|=pXWkbJCEuT<@V&n{RUhI>$(D4{=A@UCP+gGB}!aw zP)v;6q@Ioc3K0}~4-uxn1MIbK>ma&wssZjyyCepgWNN3ohsr*)frSTE>aPLbT9ZL{ zvQ=yO@W-FH42@KPd~#`fO{%{A6LWs9W8a7W3o9`y^NC@8&?s`CoE<29%yqPX+%6n` zYHt%3TUQAsRIQps2ef=1Wr3Dq@t|$s)sLX=peCfuR5>xo_{{^prqjGKZSUX~F` z`rgc*<6~}oWlha!C!d)i^s!q@7c`*g{v!7bEcXYj%5}Y|S>x3Xf#diF)a)#(m}$Nw z4i{QqX6p(5Mcaq5Iyr!n!Fl~2=l|}9joHNe7bE0yR0<+o#HSw2iyb^2Y1Vogk3-iz z^efAg+1^NH;1iG0&x=&QD}P|+sGEB@^DXmIjC(StxOigY6$YD5I;B>s_FGDcru}#3 zE`4x!E)p14ZpelyDqd*2rKqhF?M9Z?Gc10*w<&jCGxZ^6^=Pbf`*z`S$7Ics*Pj2d z`HJz1+4@UL_#5^4)sUxw>DQGLFT)UP^iU~v!%Sw9#x=AAWm&tPlPfi4iq1m)(60QK z4N4iRYszCK1w2sX^VGRRg8d1k@)mLm`<@wVg0pf8$-5q}396vCr(ehf#2K(ScD^2g zu1CN)^Sb8?E!GV^J`&~gCQA3OKQfD6h$KQ$C7T=z$UZtwyO4G-HGE8zXNvq5TM*Rwe!o`k1$1&3trsPYKIsP!RqF4J&Om~+-uYJ};NmOgl z@`5u&2GKwInC>DUV@v#j#4LkB{njv#iyoWmUF$qS3Etc)Eo=cg!Jbt4YN2}A&@)Ch zMC4YKti`nak(TJmdO1!kf66+3rSsg4-SPt1jUPr#61VlC7qbuL1=EXH zLK~;+0|^2$D9(BA$Mp?MMNxj{8-oC!}XKPo)~q9|NW_@{sZlYpL<%zEuCZ8*kdJKu1oU%jPO3M%m&_yDtSY z^|=PSb(En<->;(~U_a%_I~b>$!q;u$wG79)Fw}gJ=i}Q>K2N_KWc?EW%+dm5ThWtqK<~` zfKsZOKEi;>;F5s6!F}&L)W)qF`3wfdQDcLH2Itk-FIVKOLy?)O2jfq_jv*traJ9$W zFa2+Z<&u=itg4i=$C~KABYBKL%ZE7wDE2eMd4i5~XWQ7htHW`ae9f%8i?7PVG)1tHvvbPJA9u)3P35~JYK zewOEBgVfsPUQg)}xS^JjnOIT!$(g!V-QM2*$Faham&^HGLp9+Y**Qr}p1A3rhO+uW z1Sg7TE>Fx%gl^T_yqL;-?CO0c+r_c!EsfUcYH^p1V;{*!+uMEX^|EU|!^Z|iP(tO(C^r{IH$|?TUznXL#`YNRIw&Rd>s8JO>eNGa>GCFUpo9M$)Gu z)XSGHl&>Mcx^F;Z`+bX93V#-c52O5C?T8$Tti>(NE9mSx4QYF{_N|%dv>K)amTW`> z;V3_5)wn+s;>-K4Bt`2Nxb}c73#`mii3PK%5EGPoa2vTR-}m#Sk0jUT2@wLKV}b8v zuwxfh6fmMgsnRG;eTeQ@fgF1lx<-6M0n;1i4}J{65F1E{h!AlP@y9o?;Kn2X7x_Q` zR?qJjVHZik+k=rbLUg?FKi>)e!T?S)xwaAz*7=77FJ!!_7 zwFLmX3F7aE2nPI*hjkJG7=HXPgfR4+gzWbmgYo|U&hLp){M-EgG2DNc zU&813Gk|~b?-_^4NKk2i9xp981Niy;ha<)R;J@dI@Z}%x_3sn&@3a56LuLHqQ2%=S zi3-SlZCu(5)SS~Rste1tl9S%ezedZs4=|HY*5`+yC1g@8Xu4Vh5>{ac%quap@&^qa zBx2vnH`S1l{*fO~?AA)dP8eEnvv+2rPWGpeQ+UQuRrdS$+_&r6(ogVx!U}+rP`CE0 za!N20m%n&eyE|msxX`oEyU@OUqO!@p^lNQR5FNMUyG0OQe{28K$(l$JdSSl^x$k;s zJ#T$L9z5}qgw8{44Wlt@eT~Fx-&V@UbIn92NS~OR;YLqS5~#*YNKoTmP!d#5`nLP| zO{)z*SbBhzmm|4f)3Z!ZIVoxK1S`5Q}` zieDX~=iacq%N4wl_9-TC|gaQ-Ms!kPCuZWZ*4 z1+Bf7LY?NcQc_Y92votXJkfK;mDaV*)o%$y8_GsQft5^L6Wb{|adCm%w{2@y%td=E zZn4aooa{`q-Q6q4tuyuG-;V!&~!ZrOI-L6dK5hE zEvh6Obs9xQLqkHS4i=+iFD=(riqY8%$Vw=LWv9J;AcvsH0$o2oog<=qSN{t*LX(Xn z>4!gU`=H#XB6Z-Tdx6en0GdW=4;dn_S zo^CNw-0AkTeI6-jHTLOyz2B1`$5RM(50kXQ?zAHy>O^i;U`*wY!t6R$4?t`0XHIh} z7!5ZpH9XFb(Fs*4dSXFE|4Gs-snQ790W~1EQZn; zWKiTdsIWdBVD#Oc^7#>XCcp-Cht;Tq^^tv&DRrF756f-lV*@z<=Fqz1t&SI7bN!1A z&;2Cim$W*xB8S-L&mYYw=o~9Jrfe#q?HCFO3)cCi zxxD3(h8NXbp;exO=LXK5=;hjYy%Qa#E8tUMs*&U4t}=aZ&g{8*@G%xb*u6%!?Y{LF zH-uhnooMwVn*v&Q-@3u{$yj1<9p8mcy@6~q-5H-%7*KhN)1U>Q)FcW}Dq-gZ!sLf!T!w?G=T$!u zrkz3QJo1ozU-!UK{Ej?Kb;KTgq%XQL)(d!=YrMh|_-wK2n17w$ zXdYet^U19u?#F3jPFqOsy6%9xkb9}UInW7)aQ%C!B@G*Kep*#)T(q&sNvT%8%!m*DO{R2#!2Rktc_q$;1J&WRhZRGw<_=~j8CAdwgQ-an8@ z9T4h8DPmeAx~{g!mouS`mKB)fb9XOt_yx(rGK;re(Mx8#L){?;2KRr3G?n<0gi{`k z5gf!{UHSpP8LMSnqP&GaCoW6{Qc&4ilD1%=)m<1ok*lxHq{h=ZX9aXzcvj+4s93Ie z{&b)RAO9Lqy1kNdU%69>-WhtnrKeuJ!)Me8-JqR1Uu*4rI^(@IO9wn+@ZyjiQ_LVs zuJ(eVlFaT!9pZ5RKx!ELE4CA?1A}Rd{(adM5^B4`Dhp5PeAPpX7xm?*ijTeTPLI$D zv~$R|6N81=$uh>KJH;dp8{(K9ej2Rvyi)6CK#+uX^THZ~S({)t*9WyPm>Ltd1-`9z zIf+&wfOH(qr}{QR=Wq^3TIP`Z-TjeinY+CdQCMCY)IGQA#xX++zrh_37VVNJ{3Y5` z*UEV$gmZ2%$7DayE)-9Y@oTYf_!Mq3Xm4-R7e1taVy;`PJPcbOI-z&X6J(IoyvG_bJ-N>t4gI^I^?T z)cipDG;Sqdi}e(Rl!V~9g(0D{3rw>6swEqDrjWjtZ{vsf*qk6lDWm2QR&B4f2z>c1tkJtGlvH>4h z4g-%|OliuX!%lSZqy$}GND5Q&SX-^U;m9qpdcTi9Yw_JD{jYJ{Znw-a;!XDu`J=>v z+qtDW!A2Yw?LLh5L{}~&KU_v0*0PMMPY;D8FC#J%&P~BGuMihaxZVt82@= zXM7W*gw~tAn=8D%gQPsoz&{wE)0m%i!e55V*K}fwlMnOYB!V8_)nWaL^i72^A3x9| zCz4-rkiWCCIM*khT7T+E;}es2h5>JiHTfTM*Vuj9V-6!0F3a0R-H<-p=BRT6~q1r$%w6w{V|a3W83w{lH$ z=qlGc3pdnI&TzZlltypcNAYw>wRV@?;owC#6j_NM1n08GdCXu{em`G`L2pQ{|NDiX z*Rd6$CCYQl9^(S%_+HqO$RD8B(2A-fol@mn>^H5`5=NDmo@^TtUU}fSS!rA#1vVL`E6#oGBlOPB$Rn~ohSK{ zCKDyZX{NBrhS=IlY$`s$N?v*kQ1j< z;7-DMzbdl(#MS9~v_P8*u9TBx>_JiQCjUNcNnyv9{9=9mDn??0RnT^2tFg}~A|nb+ zEOOF(jM{G^fScm?Bo9Glj?37_LyG1ta)fPO$H&kvjVHXuwt=f2!v3+j54}k zuKdZ7Z8*J0iUYFRHE9b}PL4T}TU)3+6o?9+Vqd}FgWQj&_Z_dD z!I&R8RNXf=_1~iw-wC1^1=vRk0iP>SxO2x_K>)%AvrEvnP@|sfWiP+Ezm|`kttAYf zoSby$iA~t$6YJOSi1sFcn7=^Q&x?b~eez6C_vvc#5?%O3qWY$a<*|Sx6SZWGgks8+ z4|CGDA7SUD2~eMTz>{y1O*r*;)mz=djeRqHJ%zwx?}Dz5Mp+<-L6~X+ud6pd2 zj(D!wa1>SPCy(Wr#MV$(r_1(VF!yk^*I=rE5XFUBO~w^BR%2N9aoJWMr-Dh&eB&of z$1qlC7=KVEpzAEKBqpYlRx&j;txmuE8F5;N!~EyDmn+@Y+>efsj?bgT-J#7Vk;33e@g@LGqRle)Zb9bN`ui4A14J3iz75jr_`WSG*n8H&%wRIYdJ0b>HXAFBlVqWR05*$_zRC9XeF{9pZ>A;xwLopkkkJ zy2K<%?Fzb%;YrC|5%6Ii`O+edx7{}dC-b~VUM zFM*|&2{rObwxZkUY5#^JQ30TpBx_b&@ko>*){%+P+4+9cGE+ApQioMKnZ$m zvrAM7G~9_&(vbF@@7iVVd&p1w`yZIxIhsJN!v{&199K3z=1WB@?BQNhz$G}|?Vj^t zcbvYaMEGQ{eqg$>(6lnB5LPO7l1Oau;Y;n~?EwFvNdEysI#WICh%-JdpxG8xA7t|u zQXRP%+!K=NzTK+EolxQLFnIIEn7ALi*M)oL`&0XG$fEWbju+N;QkS0y(P{Lh_6-T) zdhA|o#q>_&FtP;la)g1bOoKS$5Db-%0@phQ^0RFjnH3~Aj(qP8Z`0O%AGZ&-pwQjO zF3q<6aG*sm9Io=h+6Srca?QwC%%(tl%;dp?>4v9U+34FuaIkgjK3rs$PYJ)G7)*lT zBh~ycM8wB~Vyu8E{i&KLs9_;h`MVzux+jR>c7%k4YhdlCD3wQI&ucHcoUliA>cL{7 zT^HI$+3kU_>h@8u3OjX2dLRt`AEM5cb{JmQ`hTP0{FACf1-<+00P(WcpPCWfe@QU` z|0U}5K=1xj*1>CA|8c1Qs6Vj|LIGB1gMR-fL0SISS3xlNpWpk(udE=lKVBR3x37%M aj*zJZPp>I;adSf8pPG{9jiPIo0sjwh9Y!Gl diff --git a/uhabits-core-legacy/assets/test/components/CanvasTest.png b/uhabits-core-legacy/assets/test/components/CanvasTest.png deleted file mode 100644 index 75b3d8f2095e497c76b49afa0430113e497ff909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24849 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 N44$rjF6*2UngH#{jKcr` diff --git a/uhabits-core-legacy/assets/test/components/CheckmarkButton/explicit.png b/uhabits-core-legacy/assets/test/components/CheckmarkButton/explicit.png deleted file mode 100644 index c2b66f74ecef65a31519752ebf2ab34b1c37609e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U{v*VaSW-r_4bCL*Wmz};~&jC zwikTm>eI7r=x*+q+&oe+Q9Jnx@gM&x zJUzUC1|qZq4}}^8NeK_f~aNE2lBwl&9s4U&QAB9AN3}O-gbTTKhh0Ub3pJ2zYLHP-~6L-{)&BNyZ+|}&RH6`&pWhI e0Te)R;84XnYeI4HU*$KQATdu@KbLh*2~7aK@Ri*F diff --git a/uhabits-core-legacy/assets/test/components/CheckmarkButton/implicit.png b/uhabits-core-legacy/assets/test/components/CheckmarkButton/implicit.png deleted file mode 100644 index acc067024e8b6b82671a930b56788ecf266a3f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U{vsQaSW-r_4bCL*I@>c;}3Zr z>F%mxbrb*lled{{*7q;9#(!V>P`tN;~?aYsAr5*p=+oqj0h&mTd#e?sV9fV)aSW-r_4d|!ujW9R;|~?t zCMOu&J|b<6ISe*gVfImcF2ynDawM>*v>OUvym z%OBr+xxD)P;fEg_E>?Y9zI?LeeGc!Qc*{dQKip0TPRx7eGRM-%_0LO5?HJnwu}&xS zl~s=Yx5!V8T({EZ|JNdkg>gadCpzMf?GWc${#R5cwP!*}(hBcXX(`7)Z0-X44+TliyPe;w_TKZmW8G=EErbOTAPf!nKk-?7JLs>MTXPd6?CI*~vd$@? F2>=h$z83%h diff --git a/uhabits-core-legacy/assets/test/components/HabitListHeader/light.png b/uhabits-core-legacy/assets/test/components/HabitListHeader/light.png deleted file mode 100644 index c146b916d3c5581b0b880643845b388caa4628f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4278 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 E095lBwEzGB diff --git a/uhabits-core-legacy/assets/test/components/NumberButton/render_above.png b/uhabits-core-legacy/assets/test/components/NumberButton/render_above.png deleted file mode 100644 index 4673ef0f355df5f3966d86caa94dc0a83cc6f0e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1653 zcmV-*28#KKP);Xn* zd+s_8000000000000000000000000Q#@xBboSy$qsb}7OxtQ#kLr%v#E1pZ@b61?M zx8(G^51fnb1LgW?Nlq>4`A5VH?UZ^t{^cB_J}cT?&ydk~x~^AXaM+PkYr6ilRRhrM z=z9Mbly!CFa_T<=ykpi3&~EP&f4@^s9y5Y%$!W+8IBCrQqy)CTcTIfHg82Ow^Y?*s z!Fy^XavDL$y^wkt3bgI^WX3aLFu*-VX=k(<_cPOGb|i9|VE~a?=r2-bB=uTvFmB-< zo6)34?_KM1n&W~*0MlQ@G{UnDd4?I0mki(eU#jhb_l#9J4GO|PXfLrG}D1{q+hWEx5{WQviqksi6NHw&k}-g5HoUwuwz|8_$3=L<}Z;Udg4C&*n zaYosaGj>q$<+d!cbMp6i#rc;R#eHH`&KMeCJ=*~8mxXh3F4qs0Y)j5qp|YhxW^km% zT9JKvldLeSvL&Yxm=;yVwygV!Hgr6wGO1*srX$Z}*2O9Kj&(T=aVuge@Bbr%8Lc+s zS&bTHd!Vhkyqm@y&QZx}M5;-?SDpp<({c}9 z1?IhvB$xd1Q0A17w|`gV000000000007X{G6S63a3TMGCK*xMzd)!x#5k46mc5p-` z>?I69v!+Uw_3*Qk*7{#d7FsU`6$k_EK<1X*Atfcu&AcjIPjWkYJ$llL*e{IK(GKv% z?|#p?d8TTPZU!^$q*e^J>2%zSspH6^{jV+R0$e}Z(v>CQvKsF9;3d|Akx#YyD^bC$ zs@YkIo;akWuJ=cDp+d@&GQ(oqHP#49fm^X_Nozq>-b(D`>vqBjMf+c4pS~O@s+Ia1 z?fL8XfR!?`T~JupA3wW|W<_w-luo&L1E|rfm!Z#{doH@JL^Gjk|LbRfK%u6(dsBOp z0i>dWN(pY1le-v}GfuDu=(%4R3_BHF90@;Lw*NJp0lnx>)qLyqM>YVR5$E04jTEhw znnyFhpU(JfKT!CQO8u`L%3t4z1+QOa05qL`Gm26wWl{{I=0P!?4Il2$0vY@j4ujNSRUPje|20qn&E2gBY zxh`f{Dt=w$;s+Vod*sU6ybc)1ekF7IgE1e!Sh@c-T?cGR#mZYI@~Y2bY#ZQ)7G#em zO2x_L&~?yw)DaK^bjHwo}EneVGlJ4X`SMIJKcQ0e!CP{TnFrexfL>Z2#+- z{jm4GHspUJVYdvVpWjOCyXfsGJtSAc-KJ3^^Mug=vMgQZ_sN=nGG6MxsZ{8HO?N@} z$*D>K%XAe~-=(B{ofbcN{+Oz#Nv>);nHvMby&mPN4#|Gy?QoXuKgciu7dHS500RIR zV7yT&>I%xu0RR91000000000000000*i9Y+o&kXm^TF1E00000NkvXXu0mjfG-f0B diff --git a/uhabits-core-legacy/assets/test/components/NumberButton/render_below.png b/uhabits-core-legacy/assets/test/components/NumberButton/render_below.png deleted file mode 100644 index c3ffb68de1ea49a52cd17a8bbd7da136e6c1d2a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341 zcmV-D1;YA?P)x8bKd8D-rsZnJm=qAR0IG300000 z00000000000000000000fFJ1Y?ym0Y>bld}**Qd#;_Hr%j*ErXb?iap+#qsRiKsn? zER)pdTbCCgvYrQ!^^Xv_kMpI=7xEuuN|;96{it<$0V1G`Nc&|W<~zw4$tcN&na=n0 z_xG1arOPJ=v{?vQB|=WAJOcv*C+WW>3$a~M>GG-hd2MMD?phpGX(4SrDqTL+fOV4$ zy~G-MKUhlm`6zVx%L8I3zj=akj zf_tLS<&y&@EJVDqjBMK-ar{sey1bfxaFFqin*lJ zFp+E+zm#OoAdEZE zvO?5+ePFg%OA1mk;CrfgHvnb;p& z^7#lT8Mq}zFYvs(tV}J*ODs#ihjcwHQ^aazYFde|lS!igK1#kXvIlfRyLZ{<1SXJI z!icm-TD~;vS1V-n`$=~~ruN6V^iRk-YrC1oQ^MvMT_HTM2@(?aWO*@Z)QUMtduDTh zR(czavDZ&A4dl$LL0Np-|VPS6_UPXE9L6Ak&vBmIAF-}?0RieRw9i3acqJH zq{e$tC{nENj?aDX~=u`8XbQ_PaC91yhgK|P

    y7`pFe8aalTGOzs;FQ3zBGs10zyj9vq>wf}!|#AR*Y{`E{9ph8HFfWkW9 zkO*s2^f!dD|9=~xjayE&C_)8@Gg4#5|ypg{} z>*&(bkLVBk-l;mhApa#rHCq5}3ZesmkC2d3BGnB3Uv5bCP zUnJpEDz?EClWuID-8J(`c$l&s#^#b~J7ldnfWM+LXdcRA=k@mXo;|Alajgj@TvfTl zA~~1IEG5V5Joq`RJ?3vZuwKcVJgg5;b3M{jT@t&JxwIb$aDcbp0)hkJ05|{+@Y?}X z5>}Ri4FCWD00000000000000000000C=`AJrh#MP=hI$+00000NkvXXu0mjfFNbqq diff --git a/uhabits-core-legacy/assets/test/components/NumberButton/render_zero.png b/uhabits-core-legacy/assets/test/components/NumberButton/render_zero.png deleted file mode 100644 index 235de2f627ba81e14eeef070e39f4a6d0109bcf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1322 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 - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -plugins { - id 'kotlin-multiplatform' version "1.3.72" -} - -repositories { - mavenCentral() -} - -kotlin { - targets { - def sdkName = System.getenv('SDK_NAME') - def isIphone = sdkName?.startsWith("iphoneos") - def iosPreset = isIphone ? presets.iosArm64 : presets.iosX64 - - fromPreset(iosPreset, 'ios') { - binaries { - framework { - baseName = "LoopHabitTracker" - } - } - compilations.main { - cinterops { - sqlite3 { - defFile project.file("src/main/c_interop/sqlite3.def") - } - } - } - } - - fromPreset(presets.jvm, 'jvm') { - - } - - fromPreset(presets.js, 'js') { - compilations.main.kotlinOptions { - moduleKind = "commonjs" - } - compilations.test.kotlinOptions { - moduleKind = "commonjs" - } - } - } - - sourceSets { - commonMain { - kotlin { srcDir "src/main/common" } - dependencies { - implementation kotlin('stdlib-common') - implementation "$KX_COROUTINES-core-common:$KX_COROUTINES_VERSION" - } - } - - commonTest { - kotlin { srcDir "src/test/common" } - dependencies { - implementation kotlin('test-common') - implementation kotlin('test-annotations-common') - } - } - - jvmMain { - kotlin { srcDir "src/main/jvm" } - dependencies { - implementation kotlin('stdlib-jdk8') - implementation "$KX_COROUTINES-core:$KX_COROUTINES_VERSION" - } - } - - jvmTest { - kotlin { srcDir "src/test/jvm" } - dependencies { - implementation kotlin('test') - implementation kotlin('test-junit') - implementation 'org.xerial:sqlite-jdbc:3.25.2' - } - } - - jsMain { - kotlin { srcDir "src/main/js" } - dependencies { - implementation kotlin('stdlib-js') - implementation "$KX_COROUTINES-core-js:$KX_COROUTINES_VERSION" - } - } - - jsTest { - kotlin { srcDir "src/test/js" } - dependencies { - implementation kotlin('test-js') - } - } - - iosMain { - kotlin { srcDir "src/main/ios" } - dependencies { - implementation "$KX_COROUTINES-core-native:$KX_COROUTINES_VERSION" - } - } - - iosTest { - kotlin { srcDir "src/test/ios" } - dependencies { - implementation "$KX_COROUTINES-core-native:$KX_COROUTINES_VERSION" - } - } - } - - task iosTestCopyResources(type: Copy) { - from 'assets/test/' - from 'assets/main/' - into 'build/bin/ios/debugTest' - } - - if (project.tasks.findByName('iosTest')) { - iosTest.dependsOn(iosTestCopyResources) - } -} diff --git a/uhabits-core-legacy/gradle.properties b/uhabits-core-legacy/gradle.properties deleted file mode 100644 index fae8ffca6..000000000 --- a/uhabits-core-legacy/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -KX_COROUTINES_VERSION=1.3.6 -KX_COROUTINES=org.jetbrains.kotlinx:kotlinx-coroutines \ No newline at end of file diff --git a/uhabits-core-legacy/settings.gradle b/uhabits-core-legacy/settings.gradle deleted file mode 100644 index 20ee303a3..000000000 --- a/uhabits-core-legacy/settings.gradle +++ /dev/null @@ -1,9 +0,0 @@ -pluginManagement { - resolutionStrategy { - eachPlugin { - if (requested.id.id == "kotlin-multiplatform") { - useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${requested.version}") - } - } - } -} diff --git a/uhabits-core-legacy/src/main/c_interop/sqlite3.def b/uhabits-core-legacy/src/main/c_interop/sqlite3.def deleted file mode 100644 index 08646e486..000000000 --- a/uhabits-core-legacy/src/main/c_interop/sqlite3.def +++ /dev/null @@ -1,25 +0,0 @@ -package = sqlite3 -headers = sqlite3.h -headerFilter = sqlite3*.h -compilerOpts = -std=c11 -linkerOpts.ios = -lsqlite3 -excludedFunctions = sqlite3_mutex_held \ - sqlite3_mutex_notheld \ - sqlite3_snapshot_cmp \ - sqlite3_snapshot_free \ - sqlite3_snapshot_get \ - sqlite3_snapshot_open \ - sqlite3_snapshot_recover \ - sqlite3_set_last_insert_rowid \ - sqlite3_stmt_scanstatus \ - sqlite3_stmt_scanstatus_reset \ - sqlite3_column_database_name \ - sqlite3_column_database_name16 \ - sqlite3_column_origin_name \ - sqlite3_column_origin_name16 \ - sqlite3_column_table_name \ - sqlite3_column_table_name16 \ - sqlite3_enable_load_extension \ - sqlite3_load_extension \ - sqlite3_unlock_notify -noStringConversion = sqlite3_prepare_v2 sqlite3_prepare_v3 diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/concurrency/Observable.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/concurrency/Observable.kt deleted file mode 100644 index 9aa11a5e6..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/concurrency/Observable.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.concurrency - -class Observable { - private val listeners = mutableListOf() - - fun addListener(listener: T) { - listeners.add(listener) - } - - fun notifyListeners(action: (T) -> Unit) { - for (l in listeners) action.invoke(l) - } - - fun removeListener(listener: T) { - listeners.remove(listener) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Canvas.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Canvas.kt deleted file mode 100644 index b397febb4..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Canvas.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -enum class TextAlign { - LEFT, CENTER, RIGHT -} - -enum class Font { - REGULAR, - BOLD, - FONT_AWESOME -} - -interface Canvas { - fun setColor(color: Color) - fun drawLine(x1: Double, y1: Double, x2: Double, y2: Double) - fun drawText(text: String, x: Double, y: Double) - fun fillRect(x: Double, y: Double, width: Double, height: Double) - fun drawRect(x: Double, y: Double, width: Double, height: Double) - fun getHeight(): Double - fun getWidth(): Double - fun setFont(font: Font) - fun setFontSize(size: Double) - fun setStrokeWidth(size: Double) - fun fillArc(centerX: Double, - centerY: Double, - radius: Double, - startAngle: Double, - swipeAngle: Double) - fun fillCircle(centerX: Double, centerY: Double, radius: Double) - fun setTextAlign(align: TextAlign) - fun toImage(): Image -} - diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Colors.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Colors.kt deleted file mode 100644 index 4161c1218..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Colors.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -data class PaletteColor(val index: Int) - -data class Color(val red: Double, - val green: Double, - val blue: Double, - val alpha: Double) { - - val luminosity: Double - get() { - return 0.21 * red + 0.72 * green + 0.07 * blue - } - - constructor(rgb: Int) : this(((rgb shr 16) and 0xFF) / 255.0, - ((rgb shr 8) and 0xFF) / 255.0, - ((rgb shr 0) and 0xFF) / 255.0, - 1.0) - - fun blendWith(other: Color, weight: Double): Color { - return Color(red * (1 - weight) + other.red * weight, - green * (1 - weight) + other.green * weight, - blue * (1 - weight) + other.blue * weight, - alpha * (1 - weight) + other.alpha * weight) - } -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Component.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Component.kt deleted file mode 100644 index d7ab56a68..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Component.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -interface Component { - fun draw(canvas: Canvas) -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/FontAwesome.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/FontAwesome.kt deleted file mode 100644 index 3791228df..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/FontAwesome.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -class FontAwesome { - companion object { - val CHECK = "\uf00c" - val TIMES = "\uf00d" - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Image.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Image.kt deleted file mode 100644 index 044df1c6f..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/gui/Image.kt +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import kotlin.math.* - -interface Image { - val width: Int - val height: Int - - fun getPixel(x: Int, y: Int): Color - fun setPixel(x: Int, y: Int, color: Color) - - suspend fun export(path: String) - - fun diff(other: Image) { - if (width != other.width) error("Width must match: $width !== ${other.width}") - if (height != other.height) error("Height must match: $height !== ${other.height}") - - for (x in 0 until width) { - for (y in 0 until height) { - val p1 = getPixel(x, y) - var l = 1.0 - for (dx in -2..2) { - if (x + dx < 0 || x + dx >= width) continue - for (dy in -2..2) { - if (y + dy < 0 || y + dy >= height) continue - val p2 = other.getPixel(x + dx, y + dy) - l = min(l, abs(p1.luminosity - p2.luminosity)) - } - } - setPixel(x, y, Color(l, l, l, 1.0)) - } - } - } - - val averageLuminosity: Double - get() { - var luminosity = 0.0 - for (x in 0 until width) { - for (y in 0 until height) { - luminosity += getPixel(x, y).luminosity - } - } - return luminosity / (width * height) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Database.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Database.kt deleted file mode 100644 index ab0409214..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Database.kt +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -interface PreparedStatement { - fun step(): StepResult - fun finalize() - fun getInt(index: Int): Int - fun getLong(index: Int): Long - fun getText(index: Int): String - fun getReal(index: Int): Double - fun bindInt(index: Int, value: Int) - fun bindLong(index: Int, value: Long) - fun bindText(index: Int, value: String) - fun bindReal(index: Int, value: Double) - fun reset() -} - -enum class StepResult { - ROW, - DONE -} - -interface DatabaseOpener { - fun open(file: UserFile): Database -} - -interface Database { - fun prepareStatement(sql: String): PreparedStatement - fun close() -} - -fun Database.run(sql: String) { - val stmt = prepareStatement(sql) - stmt.step() - stmt.finalize() -} - -fun Database.queryInt(sql: String): Int { - val stmt = prepareStatement(sql) - stmt.step() - val result = stmt.getInt(0) - stmt.finalize() - return result -} - -fun Database.nextId(tableName: String): Int { - val stmt = prepareStatement("select seq from sqlite_sequence where name='$tableName'") - if (stmt.step() == StepResult.ROW) { - val result = stmt.getInt(0) - stmt.finalize() - return result + 1 - } else { - return 0 - } -} - -fun Database.begin() = run("begin") - -fun Database.commit() = run("commit") - -fun Database.getVersion() = queryInt("pragma user_version") - -fun Database.setVersion(v: Int) = run("pragma user_version = $v") - -suspend fun Database.migrateTo(newVersion: Int, - fileOpener: FileOpener, - log: Log) { - val currentVersion = getVersion() - log.debug("Database", "Current database version: $currentVersion") - - if (currentVersion == newVersion) return - log.debug("Database", "Upgrading to version: $newVersion") - - if (currentVersion > newVersion) - throw RuntimeException("database produced by future version of the application") - - begin() - for (v in (currentVersion + 1)..newVersion) { - val sv = if (v < 10) "00$v" else if (v < 100) "0$v" else "$v" - val filename = "migrations/$sv.sql" - val migrationFile = fileOpener.openResourceFile(filename) - for (line in migrationFile.lines()) { - if (line.isEmpty()) continue - run(line) - } - setVersion(v) - } - commit() -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Files.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Files.kt deleted file mode 100644 index babecf082..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Files.kt +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import org.isoron.platform.gui.* - -interface FileOpener { - /** - * Opens a file which was shipped bundled with the application, such as a - * migration file. - * - * The path is relative to the assets folder. For example, to open - * assets/main/migrations/09.sql you should provide migrations/09.sql - * as the path. - * - * This function always succeed, even if the file does not exist. - */ - fun openResourceFile(path: String): ResourceFile - - /** - * Opens a file which was not shipped with the application, such as - * databases and logs. - * - * The path is relative to the user folder. For example, if the application - * stores the user data at /home/user/.loop/ and you wish to open the file - * /home/user/.loop/crash.log, you should provide crash.log as the path. - * - * This function always succeed, even if the file does not exist. - */ - fun openUserFile(path: String): UserFile -} - -/** - * Represents a file that was created after the application was installed, as a - * result of some user action, such as databases and logs. - */ -interface UserFile { - /** - * Deletes the user file. If the file does not exist, nothing happens. - */ - suspend fun delete() - - /** - * Returns true if the file exists. - */ - suspend fun exists(): Boolean - - /** - * Returns the lines of the file. If the file does not exist, throws an - * exception. - */ - suspend fun lines(): List -} - -/** - * Represents a file that was shipped with the application, such as migration - * files or database templates. - */ -interface ResourceFile { - /** - * Copies the resource file to the specified user file. If the user file - * already exists, it is replaced. If not, a new file is created. - */ - suspend fun copyTo(dest: UserFile) - - /** - * Returns the lines of the resource file. If the file does not exist, - * throws an exception. - */ - suspend fun lines(): List - - /** - * Returns true if the file exists. - */ - suspend fun exists(): Boolean - - /** - * Loads resource file as an image. - */ - suspend fun toImage(): Image -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Log.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Log.kt deleted file mode 100644 index 60c372237..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Log.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -interface Log { - fun info(tag: String, msg: String) - fun debug(tag: String, msg: String) - fun warn(tag: String, msg: String) -} - -/** - * A Log that prints to the standard output. - */ -class StandardLog : Log { - override fun warn(tag: String, msg: String) { - val ftag = format("%-20s", tag) - println("W $ftag $msg") - } - - override fun info(tag: String, msg: String) { - val ftag = format("%-20s", tag) - println("I $ftag $msg") - } - - override fun debug(tag: String, msg: String) { - val ftag = format("%-20s", tag) - println("D $ftag $msg") - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Strings.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Strings.kt deleted file mode 100644 index 1a631e131..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/io/Strings.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -expect fun format(format: String, arg: String): String -expect fun format(format: String, arg: Int): String -expect fun format(format: String, arg: Double): String \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/platform/time/Dates.kt b/uhabits-core-legacy/src/main/common/org/isoron/platform/time/Dates.kt deleted file mode 100644 index ea102004f..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/platform/time/Dates.kt +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.time - -import kotlin.math.* - -enum class DayOfWeek(val index: Int) { - SUNDAY(0), - MONDAY(1), - TUESDAY(2), - WEDNESDAY(3), - THURSDAY(4), - FRIDAY(5), - SATURDAY(6), -} - -data class Timestamp(val millisSince1970: Long) { - val localDate: LocalDate - get() { - val millisSince2000 = millisSince1970 - 946684800000 - val daysSince2000 = millisSince2000 / 86400000 - return LocalDate(daysSince2000.toInt()) - } -} - -data class LocalDate(val daysSince2000: Int) { - - var yearCache = -1 - var monthCache = -1 - var dayCache = -1 - -// init { -// if (daysSince2000 < 0) -// throw IllegalArgumentException("$daysSince2000 < 0") -// } - - constructor(year: Int, month: Int, day: Int) : - this(daysSince2000(year, month, day)) - - val dayOfWeek: DayOfWeek - get() { - return when (daysSince2000 % 7) { - 0 -> DayOfWeek.SATURDAY - 1 -> DayOfWeek.SUNDAY - 2 -> DayOfWeek.MONDAY - 3 -> DayOfWeek.TUESDAY - 4 -> DayOfWeek.WEDNESDAY - 5 -> DayOfWeek.THURSDAY - else -> DayOfWeek.FRIDAY - } - } - - val timestamp: Timestamp - get() { - return Timestamp(946684800000 + daysSince2000.toLong() * 86400000) - } - - val year: Int - get() { - if (yearCache < 0) updateYearMonthDayCache() - return yearCache - } - - val month: Int - get() { - if (monthCache < 0) updateYearMonthDayCache() - return monthCache - } - - val day: Int - get() { - if (dayCache < 0) updateYearMonthDayCache() - return dayCache - } - - private fun updateYearMonthDayCache() { - var currYear = 2000 - var currDay = 0 - - while (true) { - val currYearLength = if (isLeapYear(currYear)) 366 else 365 - if (daysSince2000 < currDay + currYearLength) { - yearCache = currYear - break - } else { - currYear++ - currDay += currYearLength - } - } - - var currMonth = 1 - val monthOffset = if (isLeapYear(currYear)) leapOffset else nonLeapOffset - - while (true) { - if (daysSince2000 < currDay + monthOffset[currMonth]) { - monthCache = currMonth - break - } else { - currMonth++ - } - } - - currDay += monthOffset[currMonth - 1] - dayCache = daysSince2000 - currDay + 1 - - } - - fun isOlderThan(other: LocalDate): Boolean { - return daysSince2000 < other.daysSince2000 - } - - fun isNewerThan(other: LocalDate): Boolean { - return daysSince2000 > other.daysSince2000 - } - - fun plus(days: Int): LocalDate { - return LocalDate(daysSince2000 + days) - } - - fun minus(days: Int): LocalDate { - return LocalDate(daysSince2000 - days) - } - - fun distanceTo(other: LocalDate): Int { - return abs(daysSince2000 - other.daysSince2000) - } -} - -interface LocalDateFormatter { - fun shortWeekdayName(date: LocalDate): String - fun shortMonthName(date: LocalDate): String -} - -private fun isLeapYear(year: Int): Boolean { - return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 -} - -val leapOffset = arrayOf(0, 31, 60, 91, 121, 152, 182, - 213, 244, 274, 305, 335, 366) -val nonLeapOffset = arrayOf(0, 31, 59, 90, 120, 151, 181, - 212, 243, 273, 304, 334, 365) - -private fun daysSince2000(year: Int, month: Int, day: Int): Int { - - var result = 365 * (year - 2000) - result += ceil((year - 2000) / 4.0).toInt() - result -= ceil((year - 2000) / 100.0).toInt() - result += ceil((year - 2000) / 400.0).toInt() - if (isLeapYear(year)) { - result += leapOffset[month - 1] - } else { - result += nonLeapOffset[month - 1] - } - result += (day - 1) - return result -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/Config.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/Config.kt deleted file mode 100644 index fe543e044..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/Config.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits - -const val LOOP_DATABASE_VERSION = 23 \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/Backend.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/Backend.kt deleted file mode 100644 index 0137d3463..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/Backend.kt +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.backend - -import kotlinx.coroutines.* -import org.isoron.platform.concurrency.* -import org.isoron.platform.io.* -import org.isoron.uhabits.* -import org.isoron.uhabits.components.* -import org.isoron.uhabits.i18n.* -import org.isoron.uhabits.models.* -import kotlin.coroutines.* - - -open class BackendScope(private val ctx: CoroutineContext, - private val log: Log) : CoroutineScope { - - private val job = Job() - - private val exceptionHandler = CoroutineExceptionHandler { _, throwable -> - log.info("Coroutine", throwable.toString()) - } - - override val coroutineContext: CoroutineContext - get() = ctx + job + exceptionHandler -} - -class Backend(private val databaseName: String, - private val databaseOpener: DatabaseOpener, - private val fileOpener: FileOpener, - private val localeHelper: LocaleHelper, - private val log: Log, - private val scope: CoroutineContext - ) : CoroutineScope by BackendScope(scope, log) { - - - private lateinit var database: Database - private lateinit var habitsRepository: HabitRepository - private lateinit var checkmarkRepository: CheckmarkRepository - lateinit var preferences: Preferences - - lateinit var mainScreenDataSource: MainScreenDataSource - - private val habits = mutableMapOf() - private val checkmarks = mutableMapOf() - private val scores = mutableMapOf() - - var strings = localeHelper.getStringsForCurrentLocale() - var theme: Theme = LightTheme() - - val observable = Observable() - - fun init() { - launch { - initDatabase() - initRepositories() - initDataSources() - observable.notifyListeners { it.onReady() } - } - } - - private fun initRepositories() { - preferences = Preferences(PreferencesRepository(database)) - habitsRepository = HabitRepository(database) - checkmarkRepository = CheckmarkRepository(database) - habits.putAll(habitsRepository.findAll()) - log.info("Backend", "${habits.size} habits loaded") - for ((key, habit) in habits) { - val checks = checkmarkRepository.findAll(key) - checkmarks[habit] = CheckmarkList(habit.frequency, habit.type) - checkmarks[habit]?.setManualCheckmarks(checks) - scores[habit] = ScoreList(checkmarks[habit]!!) - } - } - - private fun initDataSources() { - mainScreenDataSource = - MainScreenDataSource(preferences, habits, checkmarks, scores) - } - - private suspend fun initDatabase() { - val dbFile = fileOpener.openUserFile(databaseName) - if (!dbFile.exists()) { - val templateFile = fileOpener.openResourceFile("databases/template.db") - templateFile.copyTo(dbFile) - } - database = databaseOpener.open(dbFile) - database.migrateTo(LOOP_DATABASE_VERSION, fileOpener, log) - } - - fun createHabit(habit: Habit) { - val id = habitsRepository.nextId() - habit.id = id - habit.position = habits.size - habits[id] = habit - checkmarks[habit] = CheckmarkList(habit.frequency, habit.type) - habitsRepository.insert(habit) - mainScreenDataSource.requestData() - } - - fun deleteHabit(id: Int) { - habits[id]?.let { habit -> - habitsRepository.delete(habit) - habits.remove(id) - mainScreenDataSource.requestData() - } - } - - fun updateHabit(modified: Habit) { - habits[modified.id]?.let { existing -> - modified.position = existing.position - habitsRepository.update(modified) - } - } - - interface Listener { - fun onReady() - } -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/MainScreenDataSource.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/MainScreenDataSource.kt deleted file mode 100644 index 9cadb8cb3..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/backend/MainScreenDataSource.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.backend - -import org.isoron.platform.concurrency.* -import org.isoron.platform.time.* -import org.isoron.uhabits.models.* -import org.isoron.uhabits.models.Checkmark.Companion.UNCHECKED - -class MainScreenDataSource(val preferences: Preferences, - val habits: MutableMap, - val checkmarks: MutableMap, - val scores: MutableMap) { - - val maxNumberOfButtons = 60 - private val today = LocalDate(2019, 3, 30) /* TODO */ - - data class Data(val habits: List, - val scores: Map, - val checkmarks: Map>) - - val observable = Observable() - - interface Listener { - fun onDataChanged(newData: Data) - } - - fun requestData() { - var filtered = habits.values.toList() - - if (!preferences.showArchived) { - filtered = filtered.filter { !it.isArchived } - } - - val checkmarks = filtered.associate { habit -> - val allValues = checkmarks.getValue(habit).getUntil(today) - if (allValues.size <= maxNumberOfButtons) habit to allValues - else habit to allValues.subList(0, maxNumberOfButtons) - } - - if (!preferences.showCompleted) { - filtered = filtered.filter { habit -> - (habit.type == HabitType.BOOLEAN_HABIT && checkmarks.getValue(habit)[0].value == UNCHECKED) || - (habit.type == HabitType.NUMERICAL_HABIT && checkmarks.getValue(habit)[0].value * 1000 < habit.target) - } - } - - val scores = filtered.associate { habit -> - habit to scores[habit]!!.getAt(today) - } - - observable.notifyListeners { listener -> - val data = Data(filtered, scores, checkmarks) - listener.onDataChanged(data) - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/BarChart.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/BarChart.kt deleted file mode 100644 index ba3f631a2..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/BarChart.kt +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* -import org.isoron.platform.time.* -import kotlin.math.* - -class BarChart(var theme: Theme, - var dateFormatter: LocalDateFormatter) : Component { - - // Data - var series = mutableListOf>() - var colors = mutableListOf() - var axis = listOf() - - // Style - var paddingTop = 20.0 - var paddingLeft = 5.0 - var paddingRight = 5.0 - var footerHeight = 40.0 - var barGroupMargin = 4.0 - var barMargin = 4.0 - var barWidth = 20.0 - var nGridlines = 6 - var backgroundColor = theme.cardBackgroundColor - - override fun draw(canvas: Canvas) { - val width = canvas.getWidth() - val height = canvas.getHeight() - - val n = series.size - val barGroupWidth = 2 * barGroupMargin + n * (barWidth + 2 * barMargin) - val safeWidth = width - paddingLeft - paddingRight - val nColumns = floor((safeWidth) / barGroupWidth).toInt() - val marginLeft = (safeWidth - nColumns * barGroupWidth) / 2 - val maxBarHeight = height - footerHeight - paddingTop - var maxValue = series.map { it.max()!! }.max()!! - maxValue = max(maxValue, 1.0) - - canvas.setColor(backgroundColor) - canvas.fillRect(0.0, 0.0, width, height) - - fun barGroupOffset(c: Int) = marginLeft + paddingLeft + - (c) * barGroupWidth - - fun barOffset(c: Int, s: Int) = barGroupOffset(c) + - barGroupMargin + - s * (barWidth + 2 * barMargin) + - barMargin - - fun drawColumn(s: Int, c: Int) { - val value = if (c < series[s].size) series[s][c] else 0.0 - val perc = value / maxValue - val barColorPerc = if (n > 1) 1.0 else round(perc / 0.20) * 0.20 - val barColor = theme.lowContrastTextColor.blendWith(colors[s], - barColorPerc) - val barHeight = round(maxBarHeight * perc) - val x = barOffset(c, s) - val y = height - footerHeight - barHeight - canvas.setColor(barColor) - val r = round(barWidth * 0.33) - canvas.fillRect(x, y + r, barWidth, barHeight - r) - canvas.fillRect(x + r, y, barWidth - 2 * r, r) - canvas.fillCircle(x + r, y + r, r) - canvas.fillCircle(x + barWidth - r, y + r, r) - canvas.setFontSize(theme.smallTextSize) - canvas.setTextAlign(TextAlign.CENTER) - canvas.setColor(backgroundColor) - canvas.fillRect(x - barMargin, - y - theme.smallTextSize * 1.25, - barWidth + 2 * barMargin, - theme.smallTextSize * 1.0) - canvas.setColor(theme.mediumContrastTextColor) - canvas.drawText(value.toShortString(), - x + barWidth / 2, - y - theme.smallTextSize * 0.80) - } - - fun drawSeries(s: Int) { - for (c in 0 until nColumns) drawColumn(s, c) - } - - fun drawMajorGrid() { - canvas.setStrokeWidth(1.0) - if (n > 1) { - canvas.setColor(backgroundColor.blendWith( - theme.lowContrastTextColor, - 0.5)) - for (c in 0 until nColumns - 1) { - val x = barGroupOffset(c) - canvas.drawLine(x, paddingTop, x, paddingTop + maxBarHeight) - } - } - for (k in 1 until nGridlines) { - val pct = 1.0 - (k.toDouble() / (nGridlines - 1)) - val y = paddingTop + maxBarHeight * pct - canvas.setColor(theme.lowContrastTextColor) - canvas.drawLine(0.0, y, width, y) - } - } - - fun drawFooter() { - val y = paddingTop + maxBarHeight - canvas.setColor(backgroundColor) - canvas.fillRect(0.0, y, width, height - y) - canvas.setColor(theme.lowContrastTextColor) - canvas.drawLine(0.0, y, width, y) - canvas.setColor(theme.mediumContrastTextColor) - canvas.setTextAlign(TextAlign.CENTER) - var prevMonth = -1 - var prevYear = -1 - val isLargeInterval = (axis[0].distanceTo(axis[1]) > 300) - - for (c in 0 until nColumns) { - val x = barGroupOffset(c) - val date = axis[c] - if(isLargeInterval) { - canvas.drawText(date.year.toString(), - x + barGroupWidth / 2, - y + theme.smallTextSize * 1.0) - } else { - if (date.month != prevMonth) { - canvas.drawText(dateFormatter.shortMonthName(date), - x + barGroupWidth / 2, - y + theme.smallTextSize * 1.0) - } else { - canvas.drawText(date.day.toString(), - x + barGroupWidth / 2, - y + theme.smallTextSize * 1.0) - } - if (date.year != prevYear) { - canvas.drawText(date.year.toString(), - x + barGroupWidth / 2, - y + theme.smallTextSize * 2.3) - } - } - prevMonth = date.month - prevYear = date.year - } - } - - drawMajorGrid() - for (k in 0 until n) drawSeries(k) - drawFooter() - } -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CalendarChart.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CalendarChart.kt deleted file mode 100644 index 20594df19..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CalendarChart.kt +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* -import org.isoron.platform.time.* -import kotlin.math.* - -class CalendarChart(var today: LocalDate, - var color: Color, - var theme: Theme, - var dateFormatter: LocalDateFormatter) : Component { - - var padding = 5.0 - var backgroundColor = Color(0xFFFFFF) - var squareSpacing = 1.0 - var series = listOf() - var scrollPosition = 0 - private var squareSize = 0.0 - - override fun draw(canvas: Canvas) { - val width = canvas.getWidth() - val height = canvas.getHeight() - canvas.setColor(backgroundColor) - canvas.fillRect(0.0, 0.0, width, height) - squareSize = round((height - 2 * padding) / 8.0) - canvas.setFontSize(height * 0.06) - - val nColumns = floor((width - 2 * padding) / squareSize).toInt() - 2 - val todayWeekday = today.dayOfWeek - val topLeftOffset = (nColumns - 1 + scrollPosition) * 7 + todayWeekday.index - val topLeftDate = today.minus(topLeftOffset) - - repeat(nColumns) { column -> - val topOffset = topLeftOffset - 7 * column - val topDate = topLeftDate.plus(7 * column) - drawColumn(canvas, column, topDate, topOffset) - } - - canvas.setColor(theme.mediumContrastTextColor) - repeat(7) { row -> - val date = topLeftDate.plus(row) - canvas.setTextAlign(TextAlign.LEFT) - canvas.drawText(dateFormatter.shortWeekdayName(date), - padding + nColumns * squareSize + padding, - padding + squareSize * (row+1) + squareSize / 2) - } - } - - private fun drawColumn(canvas: Canvas, - column: Int, - topDate: LocalDate, - topOffset: Int) { - drawHeader(canvas, column, topDate) - repeat(7) { row -> - val offset = topOffset - row - val date = topDate.plus(row) - if (offset < 0) return - drawSquare(canvas, - padding + column * squareSize, - padding + (row + 1) * squareSize, - squareSize - squareSpacing, - squareSize - squareSpacing, - date, - offset) - } - } - - private fun drawHeader(canvas: Canvas, column: Int, date: LocalDate) { - if (date.day >= 8) return - - canvas.setColor(theme.mediumContrastTextColor) - if (date.month == 1) { - canvas.drawText(date.year.toString(), - padding + column * squareSize + squareSize / 2, - padding + squareSize / 2) - - } else { - canvas.drawText(dateFormatter.shortMonthName(date), - padding + column * squareSize + squareSize / 2, - padding + squareSize / 2) - } - } - - private fun drawSquare(canvas: Canvas, - x: Double, - y: Double, - width: Double, - height: Double, - date: LocalDate, - offset: Int) { - - var value = if (offset >= series.size) 0.0 else series[offset] - value = round(value * 5.0) / 5.0 - - var squareColor = color.blendWith(backgroundColor, 1 - value) - var textColor = backgroundColor - - if (value == 0.0) squareColor = theme.lowContrastTextColor - if (squareColor.luminosity > 0.8) - textColor = squareColor.blendWith(theme.highContrastTextColor, 0.5) - - canvas.setColor(squareColor) - canvas.fillRect(x, y, width, height) - canvas.setColor(textColor) - canvas.drawText(date.day.toString(), x + width / 2, y + width / 2) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CheckmarkButton.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CheckmarkButton.kt deleted file mode 100644 index 5fdf99de0..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/CheckmarkButton.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* - -class CheckmarkButton(private val value: Int, - private val color: Color, - private val theme: Theme) : Component { - override fun draw(canvas: Canvas) { - canvas.setFont(Font.FONT_AWESOME) - canvas.setFontSize(theme.smallTextSize * 1.5) - canvas.setColor(when (value) { - 2 -> color - else -> theme.lowContrastTextColor - }) - val text = when (value) { - 0 -> FontAwesome.TIMES - else -> FontAwesome.CHECK - } - canvas.drawText(text, canvas.getWidth() / 2.0, canvas.getHeight() / 2.0) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/HabitListHeader.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/HabitListHeader.kt deleted file mode 100644 index f3e401fa4..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/HabitListHeader.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* -import org.isoron.platform.time.* - -class HabitListHeader(private val today: LocalDate, - private val nButtons: Int, - private val theme: Theme, - private val fmt: LocalDateFormatter) : Component { - - override fun draw(canvas: Canvas) { - val width = canvas.getWidth() - val height = canvas.getHeight() - val buttonSize = theme.checkmarkButtonSize - canvas.setColor(theme.headerBackgroundColor) - canvas.fillRect(0.0, 0.0, width, height) - - canvas.setColor(theme.headerBorderColor) - canvas.setStrokeWidth(0.5) - canvas.drawLine(0.0, height - 0.5, width, height - 0.5) - - canvas.setColor(theme.headerTextColor) - canvas.setFont(Font.BOLD) - canvas.setFontSize(theme.smallTextSize) - - repeat(nButtons) { index -> - val date = today.minus(nButtons - index - 1) - val name = fmt.shortWeekdayName(date).toUpperCase() - val number = date.day.toString() - - val x = width - (index + 1) * buttonSize + buttonSize / 2 - val y = height / 2 - canvas.drawText(name, x, y - theme.smallTextSize * 0.6) - canvas.drawText(number, x, y + theme.smallTextSize * 0.6) - } - } -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/NumberButton.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/NumberButton.kt deleted file mode 100644 index 313d6f22d..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/NumberButton.kt +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import kotlin.math.* - -fun Double.toShortString(): String = when { - this >= 1e9 -> format("%.1fG", this / 1e9) - this >= 1e8 -> format("%.0fM", this / 1e6) - this >= 1e7 -> format("%.1fM", this / 1e6) - this >= 1e6 -> format("%.1fM", this / 1e6) - this >= 1e5 -> format("%.0fk", this / 1e3) - this >= 1e4 -> format("%.1fk", this / 1e3) - this >= 1e3 -> format("%.1fk", this / 1e3) - this >= 1e2 -> format("%.0f", this) - this >= 1e1 -> when { - round(this) == this -> format("%.0f", this) - else -> format("%.1f", this) - } - else -> when { - round(this) == this -> format("%.0f", this) - round(this * 10) == this * 10 -> format("%.1f", this) - else -> format("%.2f", this) - } -} - -class NumberButton(val color: Color, - val value: Double, - val threshold: Double, - val units: String, - val theme: Theme) : Component { - - override fun draw(canvas: Canvas) { - val width = canvas.getWidth() - val height = canvas.getHeight() - val em = theme.smallTextSize - - canvas.setColor(when { - value >= threshold -> color - value >= 0.01 -> theme.mediumContrastTextColor - else -> theme.lowContrastTextColor - }) - - canvas.setFontSize(theme.regularTextSize) - canvas.setFont(Font.BOLD) - canvas.drawText(value.toShortString(), width / 2, height / 2 - 0.6 * em) - - canvas.setFontSize(theme.smallTextSize) - canvas.setFont(Font.REGULAR) - canvas.drawText(units, width / 2, height / 2 + 0.6 * em) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Ring.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Ring.kt deleted file mode 100644 index 806770163..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Ring.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import kotlin.math.* - -class Ring(val color: Color, - val percentage: Double, - val thickness: Double, - val radius: Double, - val theme: Theme, - val label: Boolean = false) : Component { - - override fun draw(canvas: Canvas) { - val width = canvas.getWidth() - val height = canvas.getHeight() - val angle = 360.0 * max(0.0, min(360.0, percentage)) - - canvas.setColor(theme.lowContrastTextColor) - canvas.fillCircle(width/2, height/2, radius) - - canvas.setColor(color) - canvas.fillArc(width/2, height/2, radius, 90.0, -angle) - - canvas.setColor(theme.cardBackgroundColor) - canvas.fillCircle(width/2, height/2, radius - thickness) - - if(label) { - canvas.setColor(color) - canvas.setFontSize(radius * 0.4) - canvas.drawText(format("%.0f%%", percentage * 100), width / 2, height / 2) - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Themes.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Themes.kt deleted file mode 100644 index a2d5eedc0..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/components/Themes.kt +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.platform.gui.* - -abstract class Theme { - val toolbarColor = Color(0xffffff) - - val lowContrastTextColor = Color(0xe0e0e0) - val mediumContrastTextColor = Color(0x808080) - val highContrastTextColor = Color(0x202020) - - val cardBackgroundColor = Color(0xFFFFFF) - val appBackgroundColor = Color(0xf4f4f4) - val toolbarBackgroundColor = Color(0xf4f4f4) - val statusBarBackgroundColor = Color(0x333333) - - val headerBackgroundColor = Color(0xeeeeee) - val headerBorderColor = Color(0xcccccc) - val headerTextColor = mediumContrastTextColor - - val itemBackgroundColor = Color(0xffffff) - - fun color(paletteIndex: Int): Color { - return when (paletteIndex) { - 0 -> Color(0xD32F2F) - 1 -> Color(0x512DA8) - 2 -> Color(0xF57C00) - 3 -> Color(0xFF8F00) - 4 -> Color(0xF9A825) - 5 -> Color(0xAFB42B) - 6 -> Color(0x7CB342) - 7 -> Color(0x388E3C) - 8 -> Color(0x00897B) - 9 -> Color(0x00ACC1) - 10 -> Color(0x039BE5) - 11 -> Color(0x1976D2) - 12 -> Color(0x303F9F) - 13 -> Color(0x5E35B1) - 14 -> Color(0x8E24AA) - 15 -> Color(0xD81B60) - 16 -> Color(0x5D4037) - else -> Color(0x000000) - } - } - - val checkmarkButtonSize = 48.0 - val smallTextSize = 12.0 - val regularTextSize = 17.0 -} - -class LightTheme : Theme() \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/LocaleHelper.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/LocaleHelper.kt deleted file mode 100644 index a73af82a3..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/LocaleHelper.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.i18n - -interface LocaleHelper { - fun getStringsForCurrentLocale(): Strings -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/Strings.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/Strings.kt deleted file mode 100644 index 823ac364c..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/i18n/Strings.kt +++ /dev/null @@ -1,190 +0,0 @@ -package org.isoron.uhabits.i18n - -@Suppress("PropertyName", "unused") -open class Strings() { - open val about = "About" - open val action = "Action" - open val action_settings = "Settings" - open val add_habit = "Add habit" - open val all_time = "All time" - open val any_day = "Any day of the week" - open val any_weekday = "Monday to Friday" - open val app_name = "Loop Habit Tracker" - open val archive = "Archive" - open val behavior = "Behavior" - open val best_streaks = "Best streaks" - open val bug_report_failed = "Failed to generate bug report." - open val by_color = "By color" - open val by_name = "By name" - open val by_score = "By score" - open val calendar = "Calendar" - open val cancel = "Cancel" - open val change_value = "Change value" - open val check = "Check" - open val checkmark = "Checkmark" - open val checkmark_stack_widget = "Checkmark Stack Widget" - open val clear = "Clear" - open val clear_label = "Clear" - open val color_picker_default_title = "Change color" - open val could_not_export = "Failed to export data." - open val could_not_import = "Failed to import data." - open val count = "Count" - open val create_habit = "Create habit" - open val create_stackview_widget_button = "StackView Widget For All Habits" - open val current_streaks = "Current streak" - open val custom_frequency = "Custom …" - open val customize_notification = "Customize notifications" - open val customize_notification_summary = "Change sound, vibration, light and other notification settings" - open val database_repaired = "Database repaired." - open val day = "Day" - open val days = "days" - open val delete = "Delete" - open val delete_habits = "Delete Habits" - open val delete_habits_message = "The habits will be permanently deleted. This action cannot be undone." - open val description_hint = "Question (Did you … today?)" - open val developers = "Developers" - open val discard = "Discard" - open val done_label = "Done" - open val download = "Download" - open val edit = "Edit" - open val edit_habit = "Edit habit" - open val every_day = "Every day" - open val every_week = "Every week" - open val every_x_days = "Every %d days" - open val every_x_months = "Every %d months" - open val every_x_weeks = "Every %d weeks" - open val example_question_boolean = "e.g. Did you exercise today?" - open val example_question_numerical = "e.g. How many steps did you walk today?" - open val example_units = "e.g. steps" - open val export = "Export" - open val export_as_csv_summary = "Generates files that can be opened by spreadsheet software such as Microsoft Excel or OpenOffice Calc. This file cannot be imported back." - open val export_full_backup = "Export full backup" - open val export_full_backup_summary = "Generates a file that contains all your data. This file can be imported back." - open val export_to_csv = "Export as CSV" - open val file_not_recognized = "File not recognized." - open val filter = "Filter" - open val five_times_per_week = "5 times per week" - open val frequency = "Frequency" - open val frequency_stack_widget = "Frequency Stack Widget" - open val full_backup_success = "Full backup successfully exported." - open val generate_bug_report = "Generate bug report" - open val habit = "Habit" - open val habit_not_found = "Habit deleted / not found" - open val habit_strength = "Habit strength" - open val habits_imported = "Habits imported successfully." - open val help = "Help & FAQ" - open val help_translate = "Help translate this app" - open val hide_archived = "Hide archived" - open val hide_completed = "Hide completed" - open val hint_drag = "To rearrange the entries, press-and-hold on the name of the habit, then drag it to the correct place." - open val hint_landscape = "You can see more days by putting your phone in landscape mode." - open val hint_title = "Did you know?" - open val history = "History" - open val history_stack_widget = "History Stack Widget" - open val import_data = "Import data" - open val import_data_summary = "Supports full backups exported by this app, as well as files generated by Tickmate, HabitBull or Rewire. See FAQ for more information." - open val interface_preferences = "Interface" - open val interval_15_minutes = "15 minutes" - open val interval_1_hour = "1 hour" - open val interval_24_hour = "24 hours" - open val interval_2_hour = "2 hours" - open val interval_30_minutes = "30 minutes" - open val interval_4_hour = "4 hours" - open val interval_8_hour = "8 hours" - open val interval_always_ask = "Always ask" - open val interval_custom = "Custom..." - open val intro_description_1 = "Loop Habit Tracker helps you create and maintain good habits." - open val intro_description_2 = "Every day, after performing your habit, put a checkmark on the app." - open val intro_description_3 = "Habits performed consistently for a long time will earn a full star." - open val intro_description_4 = "Detailed graphs show you how your habits improved over time." - open val intro_title_1 = "Welcome" - open val intro_title_2 = "Create some new habits" - open val intro_title_3 = "Keep doing it" - open val intro_title_4 = "Track your progress" - open val last_x_days = "Last %d days" - open val last_x_months = "Last %d months" - open val last_x_weeks = "Last %d weeks" - open val last_x_years = "Last %d years" - open val led_notifications = "Notification light" - open val led_notifications_description = "Shows a blinking light for reminders. Only available in phones with LED notification lights." - open val links = "Links" - open val long_press_to_edit = "Press-and-hold to change the value" - open val long_press_to_toggle = "Press-and-hold to check or uncheck" - open val main_activity_title = "Habits" - open val manually = "Manually" - open val month = "Month" - open val name = "Name" - open val night_mode = "Night mode" - open val no = "No" - open val no_habits_found = "You have no active habits" - open val none = "None" - open val number_of_repetitions = "Number of repetitions" - open val overview = "Overview" - open val pref_rate_this_app = "Rate this app on Google Play" - open val pref_send_feedback = "Send feedback to developer" - open val pref_snooze_interval_title = "Snooze interval on reminders" - open val pref_toggle_description = "Put checkmarks with a single tap instead of press-and-hold. More convenient, but might cause accidental toggles." - open val pref_toggle_title = "Toggle with short press" - open val pref_view_app_introduction = "View app introduction" - open val pref_view_source_code = "View source code at GitHub" - open val pure_black_description = "Replaces gray backgrounds with pure black in night mode. Reduces battery usage in phones with AMOLED display." - open val quarter = "Quarter" - open val question = "Question" - open val reminder = "Reminder" - open val reminder_off = "Off" - open val reminder_sound = "Reminder sound" - open val repair_database = "Repair database" - open val repeat = "Repeat" - open val reverse_days = "Reverse order of days" - open val reverse_days_description = "Show days in reverse order on the main screen." - open val save = "Save" - open val score = "Score" - open val score_stack_widget = "Score Stack Widget" - open val select_habit_requirement_prompt = "Please select at least one habit" - open val select_hours = "Select hours" - open val select_minutes = "Select minutes" - open val select_snooze_delay = "Select snooze delay" - open val select_weekdays = "Select days" - open val settings = "Settings" - open val show_archived = "Show archived" - open val show_completed = "Show completed" - open val snooze = "Later" - open val snooze_interval = "Snooze interval" - open val sort = "Sort" - open val sticky_notifications = "Make notifications sticky" - open val sticky_notifications_description = "Prevents notifications from being swiped away." - open val streaks = "Streaks" - open val streaks_stack_widget = "Streaks Stack Widget" - open val strength = "Strength" - open val target = "Target" - open val time_every = "time in" - open val times_every = "times in" - open val toast_habit_archived = "Habits archived" - open val toast_habit_changed = "Habit changed" - open val toast_habit_changed_back = "Habit changed back" - open val toast_habit_created = "Habit created" - open val toast_habit_deleted = "Habits deleted" - open val toast_habit_restored = "Habits restored" - open val toast_habit_unarchived = "Habits unarchived" - open val toast_nothing_to_redo = "Nothing to redo" - open val toast_nothing_to_undo = "Nothing to undo" - open val toggle = "Toggle" - open val total = "Total" - open val translators = "Translators" - open val troubleshooting = "Troubleshooting" - open val two_times_per_week = "2 times per week" - open val unarchive = "Unarchive" - open val uncheck = "Uncheck" - open val unit = "Unit" - open val use_pure_black = "Use pure black in night mode" - open val validation_at_most_one_rep_per_day = "You can have at most one repetition per day" - open val validation_name_should_not_be_blank = "Name cannot be blank." - open val validation_number_should_be_positive = "Number must be positive." - open val validation_show_not_be_blank = "This field should not be blank" - open val version_n = "Version %s" - open val week = "Week" - open val weekends = "Weekends" - open val year = "Year" - open val yes = "Yes" - open val day_mode = "Day mode" -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Checkmark.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Checkmark.kt deleted file mode 100644 index f2fd97673..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Checkmark.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* - -data class Checkmark(var date: LocalDate, - var value: Int) { - - companion object { - /** - * Value assigned when the user has explicitly marked the habit as - * completed. - */ - const val CHECKED_MANUAL = 2 - - /** - * Value assigned when the user has not explicitly marked the habit as - * completed, however, due to the frequency of the habit, an automatic - * checkmark was added. - */ - const val CHECKED_AUTOMATIC = 1 - - /** - * Value assigned when the user has not completed the habit, and the app - * has not automatically a checkmark. - */ - const val UNCHECKED = 0 - } -} diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkList.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkList.kt deleted file mode 100644 index 55eda4ae8..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkList.kt +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* -import org.isoron.uhabits.models.Checkmark.Companion.CHECKED_AUTOMATIC -import org.isoron.uhabits.models.Checkmark.Companion.CHECKED_MANUAL -import org.isoron.uhabits.models.Checkmark.Companion.UNCHECKED - -class CheckmarkList(val frequency: Frequency, - val habitType: HabitType) { - - private val manualCheckmarks = mutableListOf() - private val computedCheckmarks = mutableListOf() - - /** - * Replaces the entire list of manual checkmarks by the ones provided. The - * list of automatic checkmarks will be automatically updated. - */ - fun setManualCheckmarks(checks: List) { - manualCheckmarks.clear() - computedCheckmarks.clear() - manualCheckmarks.addAll(checks) - if (habitType == HabitType.NUMERICAL_HABIT) { - computedCheckmarks.addAll(checks) - } else { - val computed = computeCheckmarks(checks, frequency) - computedCheckmarks.addAll(computed) - } - } - - /** - * Returns values of all checkmarks (manual and automatic) from the oldest - * entry until the date provided. - * - * The interval is inclusive, and the list is sorted from newest to oldest. - * That is, the first element of the returned list corresponds to the date - * provided. - */ - fun getUntil(date: LocalDate): List { - if (computedCheckmarks.isEmpty()) return listOf() - - val result = mutableListOf() - val newest = computedCheckmarks.first().date - val distToNewest = newest.distanceTo(date) - - var k = 0 - var fromIndex = 0 - val toIndex = computedCheckmarks.size - if (newest.isOlderThan(date)) { - repeat(distToNewest) { result.add(Checkmark(date.minus(k++), UNCHECKED)) } - } else { - fromIndex = distToNewest - } - val subList = computedCheckmarks.subList(fromIndex, toIndex) - result.addAll(subList.map { Checkmark(date.minus(k++), it.value) }) - return result - } - - companion object { - /** - * Computes the list of automatic checkmarks a list of manual ones. - */ - fun computeCheckmarks(checks: List, - frequency: Frequency - ): MutableList { - - val intervals = buildIntervals(checks, frequency) - snapIntervalsTogether(intervals) - return buildCheckmarksFromIntervals(checks, intervals) - } - - /** - * Modifies the intervals so that gaps between intervals are eliminated. - * - * More specifically, this function shifts the beginning and the end of - * intervals so that they overlap the least as possible. The center of - * the interval, however, still falls within the interval. The length of - * the intervals are also not modified. - */ - fun snapIntervalsTogether(intervals: MutableList) { - - for (i in 1 until intervals.size) { - val (begin, center, end) = intervals[i] - val (_, _, prevEnd) = intervals[i - 1] - - val gap = prevEnd.distanceTo(begin) - 1 - if (gap <= 0 || end.minus(gap).isOlderThan(center)) continue - intervals[i] = Interval(begin.minus(gap), - center, - end.minus(gap)) - } - } - - /** - * Converts a list of (manually checked) checkmarks and computed - * intervals into a list of unchecked, manually checked and - * automatically checked checkmarks. - * - * Manual checkmarks are simply copied over to the output list. Days - * that are an interval, but which do not have manual checkmarks receive - * automatic checkmarks. Days that fall in the gaps between intervals - * receive unchecked checkmarks. - */ - fun buildCheckmarksFromIntervals(checks: List, - intervals: List - ): MutableList { - - if (checks.isEmpty()) throw IllegalArgumentException() - if (intervals.isEmpty()) throw IllegalArgumentException() - - var oldest = intervals[0].begin - var newest = intervals[0].end - for (interval in intervals) { - if (interval.begin.isOlderThan(oldest)) oldest = interval.begin - if (interval.end.isNewerThan(newest)) newest = interval.end - } - for (check in checks) { - if (check.date.isOlderThan(oldest)) oldest = check.date - if (check.date.isNewerThan(newest)) newest = check.date - } - - val distance = oldest.distanceTo(newest) - val checkmarks = mutableListOf() - for (offset in 0..distance) - checkmarks.add(Checkmark(newest.minus(offset), - UNCHECKED)) - - for (interval in intervals) { - val beginOffset = newest.distanceTo(interval.begin) - val endOffset = newest.distanceTo(interval.end) - - for (offset in endOffset..beginOffset) { - checkmarks.set(offset, - Checkmark(newest.minus(offset), - CHECKED_AUTOMATIC)) - } - } - - for (check in checks) { - val offset = newest.distanceTo(check.date) - checkmarks.set(offset, Checkmark(check.date, CHECKED_MANUAL)) - } - - return checkmarks - } - - /** - * Constructs a list of intervals based on a list of (manual) - * checkmarks. - */ - fun buildIntervals(checks: List, - frequency: Frequency): MutableList { - - val num = frequency.numerator - val den = frequency.denominator - - val intervals = mutableListOf() - for (i in 0..(checks.size - num)) { - val first = checks[i] - val last = checks[i + num - 1] - - if (first.date.distanceTo(last.date) >= den) continue - - val end = first.date.plus(den - 1) - intervals.add(Interval(first.date, last.date, end)) - } - - return intervals - } - } - - /* - * For non-daily habits, some groups of repetitions generate many - * automatic checkmarks. For weekly habits, each repetition generates - * seven checkmarks. For twice-a-week habits, two repetitions that are close - * enough together also generate seven checkmarks. This group of generated - * checkmarks is represented by an interval. - * - * The fields `begin` and `end` indicate the length of the interval, and are - * inclusive. The field `center` indicates the newest day within the interval - * that has a manual checkmark. - */ - data class Interval(val begin: LocalDate, - val center: LocalDate, - val end: LocalDate) -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkRepository.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkRepository.kt deleted file mode 100644 index 0b35bc275..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/CheckmarkRepository.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.io.* -import org.isoron.platform.time.* - -class CheckmarkRepository(db: Database) { - - private val findStatement = db.prepareStatement("select timestamp, value from Repetitions where habit = ? order by timestamp desc") - private val insertStatement = db.prepareStatement("insert into Repetitions(habit, timestamp, value) values (?, ?, ?)") - private val deleteStatement = db.prepareStatement("delete from Repetitions where habit=? and timestamp=?") - - fun findAll(habitId: Int): List { - findStatement.bindInt(0, habitId) - val result = mutableListOf() - while (findStatement.step() == StepResult.ROW) { - val date = Timestamp(findStatement.getLong(0)).localDate - val value = findStatement.getInt(1) - result.add(Checkmark(date, value)) - } - findStatement.reset() - return result - } - - fun insert(habitId: Int, checkmark: Checkmark) { - val timestamp = checkmark.date.timestamp - insertStatement.bindInt(0, habitId) - insertStatement.bindLong(1, timestamp.millisSince1970) - insertStatement.bindInt(2, checkmark.value) - insertStatement.step() - insertStatement.reset() - } - - fun delete(habitId: Int, date: LocalDate) { - val timestamp = date.timestamp - deleteStatement.bindInt(0, habitId) - deleteStatement.bindLong(1, timestamp.millisSince1970) - deleteStatement.step() - deleteStatement.reset() - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Frequency.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Frequency.kt deleted file mode 100644 index f09a32a51..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Frequency.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -data class Frequency(val numerator: Int, - val denominator: Int) { - - fun toDouble(): Double { - return numerator.toDouble() / denominator - } - - companion object { - val WEEKLY = Frequency(1, 7) - val DAILY = Frequency(1, 1) - val TWO_TIMES_PER_WEEK = Frequency(2, 7) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Habit.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Habit.kt deleted file mode 100644 index 7ddfa6188..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Habit.kt +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.gui.* - -data class Habit(var id: Int, - var name: String, - var description: String, - var frequency: Frequency, - var color: PaletteColor, - var isArchived: Boolean, - var position: Int, - var unit: String, - var target: Double, - var type: HabitType) \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitRepository.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitRepository.kt deleted file mode 100644 index 961956f51..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitRepository.kt +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.gui.* -import org.isoron.platform.io.Database -import org.isoron.platform.io.PreparedStatement -import org.isoron.platform.io.StepResult -import org.isoron.platform.io.nextId - -class HabitRepository(var db: Database) { - - companion object { - const val SELECT_COLUMNS = "id, name, description, freq_num, freq_den, color, archived, position, unit, target_value, type" - const val SELECT_PLACEHOLDERS = "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?" - const val UPDATE_COLUMNS = "id=?, name=?, description=?, freq_num=?, freq_den=?, color=?, archived=?, position=?, unit=?, target_value=?, type=?" - } - - private val findAllStatement = db.prepareStatement("select $SELECT_COLUMNS from habits order by position") - private val insertStatement = db.prepareStatement("insert into Habits($SELECT_COLUMNS) values ($SELECT_PLACEHOLDERS)") - private val updateStatement = db.prepareStatement("update Habits set $UPDATE_COLUMNS where id=?") - private val deleteStatement = db.prepareStatement("delete from Habits where id=?") - - fun nextId(): Int { - return db.nextId("Habits") - } - - fun findAll(): MutableMap { - val result = mutableMapOf() - while (findAllStatement.step() == StepResult.ROW) { - val habit = buildHabitFromStatement(findAllStatement) - result[habit.id] = habit - } - findAllStatement.reset() - return result - } - - fun insert(habit: Habit) { - bindHabitToStatement(habit, insertStatement) - insertStatement.step() - insertStatement.reset() - } - - fun update(habit: Habit) { - bindHabitToStatement(habit, updateStatement) - updateStatement.bindInt(11, habit.id) - updateStatement.step() - updateStatement.reset() - } - - private fun buildHabitFromStatement(stmt: PreparedStatement): Habit { - return Habit(id = stmt.getInt(0), - name = stmt.getText(1), - description = stmt.getText(2), - frequency = Frequency(stmt.getInt(3), stmt.getInt(4)), - color = PaletteColor(stmt.getInt(5)), - isArchived = stmt.getInt(6) != 0, - position = stmt.getInt(7), - unit = stmt.getText(8), - target = stmt.getReal(9), - type = if (stmt.getInt(10) == 0) HabitType.BOOLEAN_HABIT else HabitType.NUMERICAL_HABIT) - } - - private fun bindHabitToStatement(habit: Habit, statement: PreparedStatement) { - statement.bindInt(0, habit.id) - statement.bindText(1, habit.name) - statement.bindText(2, habit.description) - statement.bindInt(3, habit.frequency.numerator) - statement.bindInt(4, habit.frequency.denominator) - statement.bindInt(5, habit.color.index) - statement.bindInt(6, if (habit.isArchived) 1 else 0) - statement.bindInt(7, habit.position) - statement.bindText(8, habit.unit) - statement.bindReal(9, habit.target) - statement.bindInt(10, habit.type.code) - } - - fun delete(habit: Habit) { - deleteStatement.bindInt(0, habit.id) - deleteStatement.step() - deleteStatement.reset() - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitType.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitType.kt deleted file mode 100644 index a02beff5c..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/HabitType.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -enum class HabitType(val code: Int) { - BOOLEAN_HABIT(0), - NUMERICAL_HABIT(1), -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Preferences.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Preferences.kt deleted file mode 100644 index 2c5e51449..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Preferences.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -class Preferences(private val repository: PreferencesRepository) { - var showArchived = repository.getBoolean("show_archived", false) - set(value) { - repository.putBoolean("show_archived", value) - field = value - } - - var showCompleted = repository.getBoolean("show_completed", true) - set(value) { - repository.putBoolean("show_completed", value) - field = value - } - - var nightMode = repository.getBoolean("night_mode", false) - set(value) { - repository.putBoolean("night_mode", value) - field = value - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/PreferencesRepository.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/PreferencesRepository.kt deleted file mode 100644 index 8c0d77f06..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/PreferencesRepository.kt +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.io.* - -class PreferencesRepository(private val db: Database) { - - private val insertStatement = db.prepareStatement("insert into Preferences(key, value) values (?, ?)") - private val deleteStatement = db.prepareStatement("delete from Preferences where key=?") - private val selectStatement = db.prepareStatement("select value from Preferences where key=?") - - fun putBoolean(key: String, value: Boolean) { - putString(key, value.toString()) - } - - fun getBoolean(key: String, default: Boolean): Boolean { - val value = getString(key, "NULL") - return if (value == "NULL") default else value.toBoolean() - } - - fun putLong(key: String, value: Long) { - putString(key, value.toString()) - } - - fun getLong(key: String, default: Long): Long { - val value = getString(key, "NULL") - return if (value == "NULL") default else value.toLong() - } - - fun putString(key: String, value: String) { - deleteStatement.bindText(0, key) - deleteStatement.step() - deleteStatement.reset() - insertStatement.bindText(0, key) - insertStatement.bindText(1, value) - insertStatement.step() - insertStatement.reset() - } - - fun getString(key: String, default: String): String { - selectStatement.bindText(0, key) - if (selectStatement.step() == StepResult.DONE) { - selectStatement.reset() - return default - } else { - val value = selectStatement.getText(0) - selectStatement.reset() - return value - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Score.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Score.kt deleted file mode 100644 index 35382dc8a..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Score.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* - -/** - * A Score is a number which indicates how strong the habit is at a given date. - * - * Scores are computed by taking an exponential moving average of the values of - * the checkmarks in preceding days. For boolean habits, when computing the - * average, each checked day (whether the check was manual or automatic) has - * value as 1, while days without checkmarks have value 0. - * - * For numerical habits, each day that exceeded the target has value 1, while - * days which failed to exceed the target receive a partial value, based on the - * proportion that was completed. For example, if the target is 100 units and - * the user completed 70 units, then the value for that day is 0.7 when - * computing the average. - */ -data class Score(val date: LocalDate, - val value: Double) \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/ScoreList.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/ScoreList.kt deleted file mode 100644 index 46fb993d7..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/ScoreList.kt +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* -import kotlin.math.* - -class ScoreList(private val checkmarkList: CheckmarkList) { - /** - * Returns a list of all scores, from the beginning of the habit history - * until the specified date. - * - * The interval is inclusive, and the list is sorted from newest to oldest. - * That is, the first element of the returned list corresponds to the date - * provided. - */ - fun getUntil(date: LocalDate): List { - val frequency = checkmarkList.frequency - val checks = checkmarkList.getUntil(date) - val scores = mutableListOf() - val type = checkmarkList.habitType - - var currentScore = 0.0 - checks.reversed().forEach { check -> - val value = if (type == HabitType.BOOLEAN_HABIT) { - min(1, check.value) - } else { - check.value - } - currentScore = compute(frequency, currentScore, value) - scores.add(Score(check.date, currentScore)) - } - return scores.reversed() - } - - fun getAt(date: LocalDate): Score { - return getUntil(date)[0] - } - - companion object { - /** - * Given the frequency of the habit, the previous score, and the value of - * the current checkmark, computes the current score for the habit. - */ - fun compute(frequency: Frequency, - previousScore: Double, - checkmarkValue: Int): Double { - val multiplier = 0.5.pow(frequency.toDouble() / 13.0) - val score = previousScore * multiplier + checkmarkValue * (1 - multiplier) - return floor(score * 1e6) / 1e6 - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Streak.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Streak.kt deleted file mode 100644 index 1bcdc2d37..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/Streak.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* - -/** - * A streak is an uninterrupted sequence of days where the habit was performed. - * - * For daily boolean habits, the definition is straightforward: a streak is a - * sequence of days that have checkmarks. For non-daily habits, note - * that automatic checkmarks (the ones added by the app) can also keep the - * streak going. For numerical habits, a streak is a sequence of days where the - * user has consistently exceeded the target for the habit. - */ -data class Streak(val start: LocalDate, - val end: LocalDate) \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/StreakList.kt b/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/StreakList.kt deleted file mode 100644 index 0d037b6c8..000000000 --- a/uhabits-core-legacy/src/main/common/org/isoron/uhabits/models/StreakList.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -class StreakList(private val checkmarkList: CheckmarkList) { - - /** - * Returns the longest streaks. - * - * The argument specifies the maximum number of streaks to find. The - * returned list is sorted by date (descending). That is, the first element - * corresponds to the most recent streak. - */ - fun getBest(limit: Int): List { - TODO() - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/concurrency/UIDispatcher.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/concurrency/UIDispatcher.kt deleted file mode 100644 index d4aece983..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/concurrency/UIDispatcher.kt +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.concurrency - -import kotlinx.coroutines.* -import platform.darwin.* -import kotlin.coroutines.* - -class UIDispatcher : CoroutineDispatcher() { - override fun dispatch(context: CoroutineContext, block: Runnable) { - val queue = dispatch_get_main_queue() - dispatch_async(queue) { - block.run() - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosCanvas.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosCanvas.kt deleted file mode 100644 index 085021dc2..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosCanvas.kt +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import kotlinx.cinterop.* -import platform.CoreGraphics.* -import platform.Foundation.* -import platform.UIKit.* -import kotlin.math.* - -val Color.uicolor: UIColor - get() = UIColor.colorWithRed(this.red, this.green, this.blue, this.alpha) - -val Color.cgcolor: CGColorRef? - get() = uicolor.CGColor - -class IosCanvas(val width: Double, - val height: Double, - val scale: Double = 2.0 - ) : Canvas { - - var textColor = UIColor.blackColor - var font = Font.REGULAR - var fontSize = 12.0 - var textAlign = TextAlign.CENTER - val ctx = UIGraphicsGetCurrentContext()!! - - override fun setColor(color: Color) { - CGContextSetStrokeColorWithColor(ctx, color.cgcolor) - CGContextSetFillColorWithColor(ctx, color.cgcolor) - textColor = color.uicolor - } - - override fun drawLine(x1: Double, y1: Double, x2: Double, y2: Double) { - CGContextMoveToPoint(ctx, x1 * scale, y1 * scale) - CGContextAddLineToPoint(ctx, x2 * scale, y2 * scale) - CGContextStrokePath(ctx) - } - - @Suppress("CAST_NEVER_SUCCEEDS") - override fun drawText(text: String, x: Double, y: Double) { - val sx = scale * x - val sy = scale * y - val nsText = (text as NSString) - val uiFont = when (font) { - Font.REGULAR -> UIFont.systemFontOfSize(fontSize) - Font.BOLD -> UIFont.boldSystemFontOfSize(fontSize) - Font.FONT_AWESOME -> UIFont.fontWithName("FontAwesome", fontSize) - } - val size = nsText.sizeWithFont(uiFont) - val width = size.useContents { width } - val height = size.useContents { height } - val origin = when (textAlign) { - TextAlign.CENTER -> CGPointMake(sx - width / 2, sy - height / 2) - TextAlign.LEFT -> CGPointMake(sx, sy - height / 2) - TextAlign.RIGHT -> CGPointMake(sx - width, sy - height / 2) - } - nsText.drawAtPoint(origin, uiFont) - } - - override fun fillRect(x: Double, y: Double, width: Double, height: Double) { - CGContextFillRect(ctx, - CGRectMake(x * scale, - y * scale, - width * scale, - height * scale)) - } - - override fun drawRect(x: Double, y: Double, width: Double, height: Double) { - CGContextStrokeRect(ctx, - CGRectMake(x * scale, - y * scale, - width * scale, - height * scale)) - } - - override fun getHeight(): Double { - return height - } - - override fun getWidth(): Double { - return width - } - - override fun setFont(font: Font) { - this.font = font - } - - override fun setFontSize(size: Double) { - this.fontSize = size * scale - } - - override fun setStrokeWidth(size: Double) { - CGContextSetLineWidth(ctx, size * scale) - } - - override fun fillArc(centerX: Double, - centerY: Double, - radius: Double, - startAngle: Double, - swipeAngle: Double) { - val a1 = startAngle / 180 * PI * (-1) - val a2 = a1 - swipeAngle / 180 * PI - CGContextBeginPath(ctx) - CGContextMoveToPoint(ctx, centerX * scale, centerY * scale) - CGContextAddArc(ctx, - centerX * scale, - centerY * scale, - radius * scale, - a1, - a2, - if (swipeAngle > 0) 1 else 0) - CGContextClosePath(ctx) - CGContextFillPath(ctx) - } - - override fun fillCircle(centerX: Double, centerY: Double, radius: Double) { - val rect = CGRectMake(scale * (centerX - radius), - scale * (centerY - radius), - scale * radius * 2.0, - scale * radius * 2.0) - CGContextFillEllipseInRect(ctx, rect) - } - - override fun setTextAlign(align: TextAlign) { - this.textAlign = align - } - - override fun toImage(): Image { - return IosImage(UIGraphicsGetImageFromCurrentImageContext()!!) - } -} diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosImage.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosImage.kt deleted file mode 100644 index 33e1c2254..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/gui/IosImage.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import platform.UIKit.* -import platform.CoreGraphics.* -import platform.Foundation.* - -class IosImage(val image: UIImage) : Image { - - override val width: Int - get() { - return CGImageGetWidth(image.CGImage).toInt() - } - - override val height: Int - get() { - return CGImageGetHeight(image.CGImage).toInt() - } - - override fun getPixel(x: Int, y: Int): Color { - return Color(1.0, 0.0, 0.0, 1.0) - } - - override fun setPixel(x: Int, y: Int, color: Color) { - } - - @Suppress("CAST_NEVER_SUCCEEDS") - override suspend fun export(path: String) { - val tmpPath = "${NSTemporaryDirectory()}/$path" - val dir = (tmpPath as NSString).stringByDeletingLastPathComponent - NSFileManager.defaultManager.createDirectoryAtPath(dir, true, null, null) - val data = UIImagePNGRepresentation(image)!! - val success = data.writeToFile(tmpPath, true) - if (!success) throw RuntimeException("could not write to $tmpPath") - println(tmpPath) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosDatabase.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosDatabase.kt deleted file mode 100644 index 34a12376f..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosDatabase.kt +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import kotlinx.cinterop.* -import platform.Foundation.* -import sqlite3.* - -fun sqlite3_errstr(db: CPointer): String { - return "SQLite3 error: " + sqlite3_errmsg(db).toString() -} - -@Suppress("CAST_NEVER_SUCCEEDS") -class IosDatabaseOpener : DatabaseOpener { - override fun open(file: UserFile): Database = memScoped { - val path = (file as IosFile).path - val dirname = (path as NSString).stringByDeletingLastPathComponent - NSFileManager.defaultManager.createDirectoryAtPath(dirname, true, null, null) - - val db = alloc>() - val result = sqlite3_open(path, db.ptr) - if (result != SQLITE_OK) - throw Exception("sqlite3_open failed (code $result)") - - return IosDatabase(db.value!!) - } -} - -class IosDatabase(val db: CPointer) : Database { - override fun prepareStatement(sql: String): PreparedStatement = memScoped { - if (sql.isEmpty()) throw Exception("empty SQL query") - val stmt = alloc>() - val result = sqlite3_prepare_v2(db, sql.cstr, -1, stmt.ptr, null) - if (result != SQLITE_OK) - throw Exception("sqlite3_prepare_v2 failed (code $result)") - return IosPreparedStatement(db, stmt.value!!) - } - override fun close() { - sqlite3_close(db) - } -} - -class IosPreparedStatement(val db: CPointer, - val stmt: CPointer) : PreparedStatement { - override fun step(): StepResult { - when (sqlite3_step(stmt)) { - SQLITE_ROW -> return StepResult.ROW - SQLITE_DONE -> return StepResult.DONE - else -> throw Exception(sqlite3_errstr(db)) - } - } - - override fun finalize() { - sqlite3_finalize(stmt) - } - - override fun getInt(index: Int): Int { - return sqlite3_column_int(stmt, index) - } - - override fun getLong(index: Int): Long { - return sqlite3_column_int64(stmt, index) - } - - override fun getText(index: Int): String { - return sqlite3_column_text(stmt, index)!! - .reinterpret() - .toKString() - } - - override fun getReal(index: Int): Double { - return sqlite3_column_double(stmt, index) - } - - override fun bindInt(index: Int, value: Int) { - sqlite3_bind_int(stmt, index + 1, value) - } - - override fun bindLong(index: Int, value: Long) { - sqlite3_bind_int64(stmt, index + 1, value) - } - - override fun bindText(index: Int, value: String) { - sqlite3_bind_text(stmt, index + 1, value, -1, SQLITE_TRANSIENT) - } - - override fun bindReal(index: Int, value: Double) { - sqlite3_bind_double(stmt, index + 1, value) - } - - override fun reset() { - sqlite3_reset(stmt) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosFiles.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosFiles.kt deleted file mode 100644 index 16d189133..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/IosFiles.kt +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - - -package org.isoron.platform.io - -import org.isoron.platform.gui.* -import platform.Foundation.* -import platform.UIKit.* - -class IosFileOpener : FileOpener { - override fun openResourceFile(path: String): ResourceFile { - val resPath = NSBundle.mainBundle.resourcePath!! - return IosFile("$resPath/$path") - } - - override fun openUserFile(path: String): UserFile { - val manager = NSFileManager.defaultManager - val basePath = manager.URLsForDirectory(NSDocumentDirectory, NSUserDomainMask) - val filePath = (basePath.first() as NSURL).URLByAppendingPathComponent(path)!!.path!! - return IosFile(filePath) - } -} - -class IosFile(val path: String) : UserFile, ResourceFile { - override suspend fun delete() { - NSFileManager.defaultManager.removeItemAtPath(path, null) - } - - override suspend fun exists(): Boolean { - return NSFileManager.defaultManager.fileExistsAtPath(path) - } - - override suspend fun lines(): List { - if (!exists()) throw Exception("File not found: $path") - val contents = NSString.stringWithContentsOfFile(path) - return contents.toString().lines() - } - - @Suppress("CAST_NEVER_SUCCEEDS") - override suspend fun copyTo(dest: UserFile) { - val destPath = (dest as IosFile).path - val manager = NSFileManager.defaultManager - val destParentPath = (destPath as NSString).stringByDeletingLastPathComponent - NSFileManager.defaultManager.createDirectoryAtPath(destParentPath, true, null, null) - manager.copyItemAtPath(path, destPath, null) - } - - override suspend fun toImage(): Image { - return IosImage(UIImage.imageWithContentsOfFile(path)!!) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/Strings.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/Strings.kt deleted file mode 100644 index e774348ea..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/io/Strings.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import kotlinx.cinterop.* - -// Although the three following methods have exactly the same implementation, -// replacing them all by a single format(format: String, arg: Any) breaks -// everything, as of Kotlin/Native 1.3.72. Apparently, Kotlin/Native is not -// able to do proper type conversions for variables of type Any when calling -// C functions. - -actual fun format(format: String, arg: String): String { - val buffer = ByteArray(1000) - buffer.usePinned { p -> platform.posix.sprintf(p.addressOf(0), format, arg) } - return buffer.toKString() -} - -actual fun format(format: String, arg: Int): String { - val buffer = ByteArray(1000) - buffer.usePinned { p -> platform.posix.sprintf(p.addressOf(0), format, arg) } - return buffer.toKString() -} - -actual fun format(format: String, arg: Double): String { - val buffer = ByteArray(1000) - buffer.usePinned { p -> platform.posix.sprintf(p.addressOf(0), format, arg) } - return buffer.toKString() -} diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/platform/time/IosDates.kt b/uhabits-core-legacy/src/main/ios/org/isoron/platform/time/IosDates.kt deleted file mode 100644 index 424d6db92..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/platform/time/IosDates.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.time - -import platform.Foundation.* - -fun LocalDate.toNsDate(): NSDate { - val calendar = NSCalendar.calendarWithIdentifier(NSCalendarIdentifierGregorian)!! - val dc = NSDateComponents() - dc.year = year.toLong() - dc.month = month.toLong() - dc.day = day.toLong() - dc.hour = 13 - dc.minute = 0 - return calendar.dateFromComponents(dc)!! -} - -class IosLocalDateFormatter(val locale: String) : LocalDateFormatter { - - constructor() : this(NSLocale.preferredLanguages[0] as String) - - private val fmt = NSDateFormatter() - - init { - fmt.setLocale(NSLocale.localeWithLocaleIdentifier(locale)) - } - - override fun shortWeekdayName(date: LocalDate): String { - fmt.dateFormat = "EEE" - return fmt.stringFromDate(date.toNsDate()) - } - - override fun shortMonthName(date: LocalDate): String { - fmt.dateFormat = "MMM" - return fmt.stringFromDate(date.toNsDate()) - } - -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/ios/org/isoron/uhabits/IosLocaleHelper.kt b/uhabits-core-legacy/src/main/ios/org/isoron/uhabits/IosLocaleHelper.kt deleted file mode 100644 index 4937339f6..000000000 --- a/uhabits-core-legacy/src/main/ios/org/isoron/uhabits/IosLocaleHelper.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -@file:Suppress("UNCHECKED_CAST") - -package org.isoron.uhabits - -import org.isoron.platform.io.* -import org.isoron.uhabits.i18n.* -import platform.Foundation.* - -class IosLocaleHelper(private val log: Log) : LocaleHelper { - override fun getStringsForCurrentLocale(): Strings { - val pref = NSLocale.preferredLanguages as List - val lang = if (pref.isEmpty()) "en-US" else pref[0] - log.info("IosLocaleHelper", lang) - return when { - else -> Strings() - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsCanvas.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsCanvas.kt deleted file mode 100644 index 33a42a7f5..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsCanvas.kt +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import kotlinx.coroutines.* -import org.w3c.dom.* -import kotlin.js.* -import kotlin.math.* - -class JsCanvas(val element: HTMLCanvasElement, - val pixelScale: Double) : Canvas { - - - val ctx = element.getContext("2d") as CanvasRenderingContext2D - var fontSize = 12.0 - var fontFamily = "NotoRegular" - var align = CanvasTextAlign.CENTER - - private fun toPixel(x: Double): Double { - return pixelScale * x - } - - private fun toDp(x: Int): Double { - return x / pixelScale - } - - override fun setColor(color: Color) { - val c = "rgb(${color.red * 255}, ${color.green * 255}, ${color.blue * 255})" - ctx.fillStyle = c; - ctx.strokeStyle = c; - } - - override fun drawLine(x1: Double, y1: Double, x2: Double, y2: Double) { - ctx.beginPath() - ctx.moveTo(toPixel(x1), toPixel(y1)) - ctx.lineTo(toPixel(x2), toPixel(y2)) - ctx.stroke() - } - - override fun drawText(text: String, x: Double, y: Double) { - ctx.font = "${fontSize}px ${fontFamily}" - ctx.textAlign = align - ctx.textBaseline = CanvasTextBaseline.MIDDLE - ctx.fillText(text, toPixel(x), toPixel(y + fontSize * 0.025)) - } - - override fun fillRect(x: Double, y: Double, width: Double, height: Double) { - ctx.fillRect(toPixel(x), - toPixel(y), - toPixel(width), - toPixel(height)) - } - - override fun drawRect(x: Double, y: Double, width: Double, height: Double) { - ctx.strokeRect(toPixel(x), - toPixel(y), - toPixel(width), - toPixel(height)) - } - - override fun getHeight(): Double { - return toDp(element.height) - } - - override fun getWidth(): Double { - return toDp(element.width) - } - - override fun setFont(font: Font) { - fontFamily = when (font) { - Font.REGULAR -> "NotoRegular" - Font.BOLD -> "NotoBold" - Font.FONT_AWESOME -> "FontAwesome" - } - } - - override fun setFontSize(size: Double) { - fontSize = size * pixelScale - } - - override fun setStrokeWidth(size: Double) { - ctx.lineWidth = size * pixelScale - } - - override fun fillArc(centerX: Double, - centerY: Double, - radius: Double, - startAngle: Double, - swipeAngle: Double) { - val x = toPixel(centerX) - val y = toPixel(centerY) - val from = startAngle / 180 * PI - val to = (startAngle + swipeAngle) / 180 * PI - ctx.beginPath() - ctx.moveTo(x, y) - ctx.arc(x, y, toPixel(radius), -from, -to, swipeAngle >= 0) - ctx.lineTo(x, y) - ctx.fill() - } - - override fun fillCircle(centerX: Double, centerY: Double, radius: Double) { - ctx.beginPath() - ctx.arc(toPixel(centerX), - toPixel(centerY), - toPixel(radius), - 0.0, - 2 * PI) - ctx.fill() - } - - override fun setTextAlign(align: TextAlign) { - this.align = when (align) { - TextAlign.LEFT -> CanvasTextAlign.LEFT - TextAlign.CENTER -> CanvasTextAlign.CENTER - TextAlign.RIGHT -> CanvasTextAlign.RIGHT - } - } - - override fun toImage(): Image { - return JsImage(this, - ctx.getImageData(0.0, - 0.0, - element.width.toDouble(), - element.height.toDouble())) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsImage.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsImage.kt deleted file mode 100644 index 66a60f1ef..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/gui/JsImage.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import org.khronos.webgl.* -import org.w3c.dom.* -import kotlin.browser.* -import kotlin.math.* - -class JsImage(val canvas: JsCanvas, - val imageData: ImageData) : Image { - - override val width: Int - get() = imageData.width - - override val height: Int - get() = imageData.height - - val pixels = imageData.unsafeCast() - - init { - console.log(width, height, imageData.data.length) - } - - override suspend fun export(path: String) { - canvas.ctx.putImageData(imageData, 0.0, 0.0) - val container = document.createElement("div") - container.className = "export" - val title = document.createElement("div") - title.innerHTML = path - document.body?.appendChild(container) - container.appendChild(title) - container.appendChild(canvas.element) - } - - override fun getPixel(x: Int, y: Int): Color { - val offset = 4 * (y * width + x) - return Color(imageData.data[offset + 0] / 255.0, - imageData.data[offset + 1] / 255.0, - imageData.data[offset + 2] / 255.0, - imageData.data[offset + 3] / 255.0) - } - - override fun setPixel(x: Int, y: Int, color: Color) { - val offset = 4 * (y * width + x) - inline fun map(x: Double): Byte { - return (x * 255).roundToInt().unsafeCast() - } - imageData.data.set(offset + 0, map(color.red)) - imageData.data.set(offset + 1, map(color.green)) - imageData.data.set(offset + 2, map(color.blue)) - imageData.data.set(offset + 3, map(color.alpha)) - } - -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsDatabase.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsDatabase.kt deleted file mode 100644 index db4c2c992..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsDatabase.kt +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -external fun require(module: String): dynamic - -class JsPreparedStatement(val stmt: dynamic) : PreparedStatement { - - override fun step(): StepResult { - val isRowAvailable = stmt.step() as Boolean - return if(isRowAvailable) StepResult.ROW else StepResult.DONE - } - - override fun finalize() { - stmt.free() - } - - override fun getInt(index: Int): Int { - return (stmt.getNumber(index) as Double).toInt() - } - - override fun getLong(index: Int): Long { - return (stmt.getNumber(index) as Double).toLong() - } - - override fun getText(index: Int): String { - return stmt.getString(index) as String - } - - override fun getReal(index: Int): Double { - return stmt.getNumber(index) as Double - } - - override fun bindInt(index: Int, value: Int) { - stmt.bindNumber(value, index + 1) - } - - override fun bindLong(index: Int, value: Long) { - stmt.bindNumber(value, index + 1) - } - - override fun bindText(index: Int, value: String) { - stmt.bindString(value, index + 1) - } - - override fun bindReal(index: Int, value: Double) { - stmt.bindNumber(value, index + 1) - } - - override fun reset() { - stmt.reset() - } - -} - -class JsDatabase(val db: dynamic) : Database { - override fun prepareStatement(sql: String): PreparedStatement { - return JsPreparedStatement(db.prepare(sql)) - } - - override fun close() { - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsFiles.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsFiles.kt deleted file mode 100644 index 7b8257856..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsFiles.kt +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import kotlinx.coroutines.* -import org.isoron.platform.gui.* -import org.isoron.platform.gui.Image -import org.w3c.dom.* -import org.w3c.xhr.* -import kotlin.browser.* -import kotlin.js.* - -class JsFileStorage { - private val TAG = "JsFileStorage" - private val log = StandardLog() - - private val indexedDB = eval("indexedDB") - private var db: dynamic = null - - private val DB_NAME = "Main" - private val OS_NAME = "Files" - - suspend fun init() { - log.info(TAG, "Initializing") - Promise { resolve, reject -> - val req = indexedDB.open(DB_NAME, 2) - req.onerror = { reject(Exception("could not open IndexedDB")) } - req.onupgradeneeded = { - log.info(TAG, "Creating document store") - req.result.createObjectStore(OS_NAME) - } - req.onsuccess = { - log.info(TAG, "Ready") - db = req.result - resolve(0) - } - }.await() - } - - suspend fun delete(path: String) { - Promise { resolve, reject -> - val transaction = db.transaction(OS_NAME, "readwrite") - val os = transaction.objectStore(OS_NAME) - val req = os.delete(path) - req.onerror = { reject(Exception("could not delete $path")) } - req.onsuccess = { resolve(0) } - }.await() - } - - suspend fun put(path: String, content: String) { - Promise { resolve, reject -> - val transaction = db.transaction(OS_NAME, "readwrite") - val os = transaction.objectStore(OS_NAME) - val req = os.put(content, path) - req.onerror = { reject(Exception("could not put $path")) } - req.onsuccess = { resolve(0) } - }.await() - } - - suspend fun get(path: String): String { - return Promise { resolve, reject -> - val transaction = db.transaction(OS_NAME, "readonly") - val os = transaction.objectStore(OS_NAME) - val req = os.get(path) - req.onerror = { reject(Exception("could not get $path")) } - req.onsuccess = { resolve(req.result) } - }.await() - } - - suspend fun exists(path: String): Boolean { - return Promise { resolve, reject -> - val transaction = db.transaction(OS_NAME, "readonly") - val os = transaction.objectStore(OS_NAME) - val req = os.count(path) - req.onerror = { reject(Exception("could not count $path")) } - req.onsuccess = { resolve(req.result > 0) } - }.await() - } -} - -class JsFileOpener(val fileStorage: JsFileStorage) : FileOpener { - - override fun openUserFile(path: String): UserFile { - return JsUserFile(fileStorage, path) - } - - override fun openResourceFile(path: String): ResourceFile { - return JsResourceFile(path) - } -} - -class JsUserFile(val fs: JsFileStorage, - val filename: String) : UserFile { - override suspend fun lines(): List { - return fs.get(filename).lines() - } - - override suspend fun delete() { - fs.delete(filename) - } - - override suspend fun exists(): Boolean { - return fs.exists(filename) - } -} - -class JsResourceFile(val filename: String) : ResourceFile { - override suspend fun exists(): Boolean { - return Promise { resolve, reject -> - val xhr = XMLHttpRequest() - xhr.open("GET", "/assets/$filename", true) - xhr.onload = { resolve(xhr.status.toInt() != 404) } - xhr.onerror = { reject(Exception()) } - xhr.send() - }.await() - } - - override suspend fun lines(): List { - return Promise> { resolve, reject -> - val xhr = XMLHttpRequest() - xhr.open("GET", "/assets/$filename", true) - xhr.onload = { resolve(xhr.responseText.lines()) } - xhr.onerror = { reject(Exception()) } - xhr.send() - }.await() - } - - override suspend fun copyTo(dest: UserFile) { - val fs = (dest as JsUserFile).fs - fs.put(dest.filename, lines().joinToString("\n")) - } - - override suspend fun toImage(): Image { - return Promise { resolve, reject -> - val img = org.w3c.dom.Image() - img.onload = { - val canvas = JsCanvas(document.createElement("canvas") as HTMLCanvasElement, 1.0) - canvas.element.width = img.naturalWidth - canvas.element.height = img.naturalHeight - canvas.setColor(Color(0xffffff)) - canvas.fillRect(0.0, 0.0, canvas.getWidth(), canvas.getHeight()) - canvas.ctx.drawImage(img, 0.0, 0.0) - resolve(canvas.toImage()) - } - img.src = "/assets/$filename" - }.await() - } -} diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsStrings.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsStrings.kt deleted file mode 100644 index 2d583967c..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/io/JsStrings.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -actual fun format(format: String, arg: String): String { - return js("vsprintf")(format, arg) as String -} - -actual fun format(format: String, arg: Int): String { - return js("vsprintf")(format, arg) as String -} - -actual fun format(format: String, arg: Double): String { - return js("vsprintf")(format, arg) as String -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/js/org/isoron/platform/time/JsDates.kt b/uhabits-core-legacy/src/main/js/org/isoron/platform/time/JsDates.kt deleted file mode 100644 index 0810d9df2..000000000 --- a/uhabits-core-legacy/src/main/js/org/isoron/platform/time/JsDates.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.time - -import kotlin.js.* - -fun LocalDate.toJsDate(): Date { - return Date(year, month - 1, day) -} - -class JsDateFormatter(private val locale: String) : LocalDateFormatter { - override fun shortWeekdayName(date: LocalDate): String { - val options = dateLocaleOptions { weekday = "short" } - return date.toJsDate().toLocaleString(locale, options) - } - - override fun shortMonthName(date: LocalDate): String { - val options = dateLocaleOptions { month = "short" } - return date.toJsDate().toLocaleString(locale, options) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaCanvas.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaCanvas.kt deleted file mode 100644 index 04740b3d3..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaCanvas.kt +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import kotlinx.coroutines.* -import org.isoron.platform.io.* -import java.awt.* -import java.awt.RenderingHints.* -import java.awt.font.* -import java.awt.image.* -import kotlin.math.* - - -class JavaCanvas(val image: BufferedImage, - val pixelScale: Double = 2.0) : Canvas { - override fun toImage(): Image { - return JavaImage(image) - } - - private val frc = FontRenderContext(null, true, true) - private var fontSize = 12.0 - private var font = Font.REGULAR - private var textAlign = TextAlign.CENTER - val widthPx = image.width - val heightPx = image.height - val g2d = image.createGraphics() - - private val NOTO_REGULAR_FONT = createFont("fonts/NotoSans-Regular.ttf") - private val NOTO_BOLD_FONT = createFont("fonts/NotoSans-Bold.ttf") - private val FONT_AWESOME_FONT = createFont("fonts/FontAwesome.ttf") - - init { - g2d.setRenderingHint(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON); - g2d.setRenderingHint(KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_ON); - g2d.setRenderingHint(KEY_FRACTIONALMETRICS, VALUE_FRACTIONALMETRICS_ON); - updateFont() - } - - private fun toPixel(x: Double): Int { - return (pixelScale * x).toInt() - } - - private fun toDp(x: Int): Double { - return x / pixelScale - } - - override fun setColor(color: Color) { - g2d.color = java.awt.Color(color.red.toFloat(), - color.green.toFloat(), - color.blue.toFloat(), - color.alpha.toFloat()) - } - - override fun drawLine(x1: Double, y1: Double, x2: Double, y2: Double) { - g2d.drawLine(toPixel(x1), toPixel(y1), toPixel(x2), toPixel(y2)) - } - - override fun drawText(text: String, x: Double, y: Double) { - updateFont() - val bounds = g2d.font.getStringBounds(text, frc) - val bWidth = bounds.width.roundToInt() - val bHeight = bounds.height.roundToInt() - val bx = bounds.x.roundToInt() - val by = bounds.y.roundToInt() - - if (textAlign == TextAlign.CENTER) { - g2d.drawString(text, - toPixel(x) - bx - bWidth / 2, - toPixel(y) - by - bHeight / 2) - } else if (textAlign == TextAlign.LEFT) { - g2d.drawString(text, - toPixel(x) - bx, - toPixel(y) - by - bHeight / 2) - } else { - g2d.drawString(text, - toPixel(x) - bx - bWidth, - toPixel(y) - by - bHeight / 2) - } - } - - override fun fillRect(x: Double, y: Double, width: Double, height: Double) { - g2d.fillRect(toPixel(x), toPixel(y), toPixel(width), toPixel(height)) - } - - override fun drawRect(x: Double, y: Double, width: Double, height: Double) { - g2d.drawRect(toPixel(x), toPixel(y), toPixel(width), toPixel(height)) - } - - override fun getHeight(): Double { - return toDp(heightPx) - } - - override fun getWidth(): Double { - return toDp(widthPx) - } - - - override fun setFont(font: Font) { - this.font = font - updateFont() - } - - override fun setFontSize(size: Double) { - fontSize = size - updateFont() - } - - override fun setStrokeWidth(size: Double) { - g2d.stroke = BasicStroke((size * pixelScale).toFloat()) - } - - private fun updateFont() { - val size = (fontSize * pixelScale).toFloat() - g2d.font = when (font) { - Font.REGULAR -> NOTO_REGULAR_FONT.deriveFont(size) - Font.BOLD -> NOTO_BOLD_FONT.deriveFont(size) - Font.FONT_AWESOME -> FONT_AWESOME_FONT.deriveFont(size) - } - } - - override fun fillCircle(centerX: Double, centerY: Double, radius: Double) { - g2d.fillOval(toPixel(centerX - radius), - toPixel(centerY - radius), - toPixel(radius * 2), - toPixel(radius * 2)) - } - - override fun fillArc(centerX: Double, - centerY: Double, - radius: Double, - startAngle: Double, - swipeAngle: Double) { - - g2d.fillArc(toPixel(centerX - radius), - toPixel(centerY - radius), - toPixel(radius * 2), - toPixel(radius * 2), - startAngle.roundToInt(), - swipeAngle.roundToInt()) - } - - override fun setTextAlign(align: TextAlign) { - this.textAlign = align - } - - private fun createFont(path: String) = runBlocking { - val file = JavaFileOpener().openResourceFile(path) as JavaResourceFile - if (!file.exists()) throw RuntimeException("File not found: ${file.path}") - java.awt.Font.createFont(0, file.stream()) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaImage.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaImage.kt deleted file mode 100644 index db6d5cb5a..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/gui/JavaImage.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import java.awt.image.* -import java.io.* -import javax.imageio.* - -class JavaImage(val bufferedImage: BufferedImage) : Image { - override fun setPixel(x: Int, y: Int, color: Color) { - bufferedImage.setRGB(x, y, java.awt.Color(color.red.toFloat(), - color.green.toFloat(), - color.blue.toFloat()).rgb) - } - - override suspend fun export(path: String) { - val file = File(path) - file.parentFile.mkdirs() - ImageIO.write(bufferedImage, "png", file) - } - - override val width: Int - get() = bufferedImage.width - - override val height: Int - get() = bufferedImage.height - - override fun getPixel(x: Int, y: Int): Color { - return Color(bufferedImage.getRGB(x, y)) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaDatabase.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaDatabase.kt deleted file mode 100644 index df99f0693..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaDatabase.kt +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import java.sql.* -import java.sql.PreparedStatement - -class JavaPreparedStatement(private var stmt: PreparedStatement) : org.isoron.platform.io.PreparedStatement { - private var rs: ResultSet? = null - - private var hasExecuted = false - - override fun step(): StepResult { - if (!hasExecuted) { - hasExecuted = true - val hasResult = stmt.execute() - if (hasResult) rs = stmt.resultSet - } - - if (rs == null || !rs!!.next()) return StepResult.DONE - return StepResult.ROW - } - - override fun finalize() { - stmt.close() - } - - override fun getInt(index: Int): Int { - return rs!!.getInt(index + 1) - } - - override fun getLong(index: Int): Long { - return rs!!.getLong(index + 1) - } - - override fun getText(index: Int): String { - return rs!!.getString(index + 1) - } - - override fun getReal(index: Int): Double { - return rs!!.getDouble(index + 1) - } - - override fun bindInt(index: Int, value: Int) { - stmt.setInt(index + 1, value) - } - - override fun bindLong(index: Int, value: Long) { - stmt.setLong(index + 1, value) - } - - override fun bindText(index: Int, value: String) { - stmt.setString(index + 1, value) - } - - override fun bindReal(index: Int, value: Double) { - stmt.setDouble(index + 1, value) - } - - override fun reset() { - stmt.clearParameters() - hasExecuted = false - } -} - -class JavaDatabase(private var conn: Connection, - private val log: Log) : Database { - - override fun prepareStatement(sql: String): org.isoron.platform.io.PreparedStatement { - return JavaPreparedStatement(conn.prepareStatement(sql)) - } - - override fun close() { - conn.close() - } -} - -class JavaDatabaseOpener(val log: Log) : DatabaseOpener { - override fun open(file: UserFile): Database { - val platformFile = file as JavaUserFile - val conn = DriverManager.getConnection("jdbc:sqlite:${platformFile.path}") - return JavaDatabase(conn, log) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaFiles.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaFiles.kt deleted file mode 100644 index 1bb3384e8..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/JavaFiles.kt +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import org.isoron.platform.gui.* -import java.io.* -import java.nio.file.* -import javax.imageio.* - -class JavaResourceFile(val path: String) : ResourceFile { - private val javaPath: Path - get() { - val mainPath = Paths.get("assets/main/$path") - val testPath = Paths.get("assets/test/$path") - if (Files.exists(mainPath)) return mainPath - else return testPath - } - - override suspend fun exists(): Boolean { - return Files.exists(javaPath) - } - - override suspend fun lines(): List { - return Files.readAllLines(javaPath) - } - - override suspend fun copyTo(dest: UserFile) { - if (dest.exists()) dest.delete() - val destPath = (dest as JavaUserFile).path - destPath.toFile().parentFile?.mkdirs() - Files.copy(javaPath, destPath) - } - - fun stream(): InputStream { - return Files.newInputStream(javaPath) - } - - override suspend fun toImage(): Image { - return JavaImage(ImageIO.read(stream())) - } -} - -class JavaUserFile(val path: Path) : UserFile { - override suspend fun lines(): List { - return Files.readAllLines(path) - } - - override suspend fun exists(): Boolean { - return Files.exists(path) - } - - override suspend fun delete() { - Files.delete(path) - } -} - -class JavaFileOpener : FileOpener { - override fun openUserFile(path: String): UserFile { - val path = Paths.get("/tmp/$path") - return JavaUserFile(path) - } - - override fun openResourceFile(path: String): ResourceFile { - return JavaResourceFile(path) - } -} diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/Strings.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/Strings.kt deleted file mode 100644 index edb787583..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/io/Strings.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -actual fun format(format: String, arg: String): String = - String.format(format, arg) - -actual fun format(format: String, arg: Int): String = - String.format(format, arg) - -actual fun format(format: String, arg: Double): String = - String.format(format, arg) \ No newline at end of file diff --git a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/time/JavaDates.kt b/uhabits-core-legacy/src/main/jvm/org/isoron/platform/time/JavaDates.kt deleted file mode 100644 index ebb0a0862..000000000 --- a/uhabits-core-legacy/src/main/jvm/org/isoron/platform/time/JavaDates.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.time - -import java.util.* -import java.util.Calendar.* - -fun LocalDate.toGregorianCalendar(): GregorianCalendar { - val cal = GregorianCalendar() - cal.timeZone = TimeZone.getTimeZone("GMT") - cal.set(MILLISECOND, 0) - cal.set(SECOND, 0) - cal.set(MINUTE, 0) - cal.set(HOUR_OF_DAY, 0) - cal.set(YEAR, this.year) - cal.set(MONTH, this.month - 1) - cal.set(DAY_OF_MONTH, this.day) - return cal -} - -class JavaLocalDateFormatter(private val locale: Locale) : LocalDateFormatter { - override fun shortMonthName(date: LocalDate): String { - val cal = date.toGregorianCalendar() - val longName = cal.getDisplayName(MONTH, LONG, locale) - val shortName = cal.getDisplayName(MONTH, SHORT, locale) - - // For some locales, such as Japan, SHORT name is exceedingly short - return if (longName.length <= 3) longName else shortName - } - - override fun shortWeekdayName(date: LocalDate): String { - val cal = date.toGregorianCalendar() - return cal.getDisplayName(DAY_OF_WEEK, SHORT, locale); - } -} diff --git a/uhabits-core-legacy/src/test/common/org/isoron/AsyncTests.kt b/uhabits-core-legacy/src/test/common/org/isoron/AsyncTests.kt deleted file mode 100644 index 323e2c234..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/AsyncTests.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -/** - * Workaround until Kotlin adds support for testing suspend functions - * https://youtrack.jetbrains.com/issue/KT-22228 - */ -expect fun asyncTest(block: suspend () -> Unit) \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/DependencyResolver.kt b/uhabits-core-legacy/src/test/common/org/isoron/DependencyResolver.kt deleted file mode 100644 index e7208049c..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/DependencyResolver.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import org.isoron.platform.time.* - -enum class Locale { - US, JAPAN -} - -expect object DependencyResolver { - val ignoreViewTests: Boolean - suspend fun getFileOpener(): FileOpener - suspend fun getDatabase(): Database - fun getDateFormatter(locale: Locale): LocalDateFormatter - fun createCanvas(width: Int, height: Int): Canvas -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/concurrency/ObservableTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/concurrency/ObservableTest.kt deleted file mode 100644 index 25fd37659..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/concurrency/ObservableTest.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.concurrency - -import kotlin.test.* - -class ObservableTest { - - interface TestListener { - fun onDataChanged(data: Int) - } - - @Test - fun testNotifyListeners() { - var wasCalled = false - - val listener = object : TestListener { - override fun onDataChanged(data: Int) { - assertEquals(42, data) - wasCalled = true - } - } - - val observable = Observable() - observable.addListener(listener) - observable.notifyListeners { it.onDataChanged(42) } - assertTrue(wasCalled) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/gui/CanvasTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/gui/CanvasTest.kt deleted file mode 100644 index 1c2065cde..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/gui/CanvasTest.kt +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.gui - -import org.isoron.* -import org.isoron.uhabits.* -import kotlin.test.* - -class CanvasTest: BaseViewTest() { - @Test - fun run() = asyncTest{ - val canvas = DependencyResolver.createCanvas(500, 400) - - canvas.setColor(Color(0x303030)) - canvas.fillRect(0.0, 0.0, 500.0, 400.0) - - canvas.setColor(Color(0x606060)) - canvas.setStrokeWidth(25.0) - canvas.drawRect(100.0, 100.0, 300.0, 200.0) - - canvas.setColor(Color(0xFFFF00)) - canvas.setStrokeWidth(1.0) - canvas.drawRect(0.0, 0.0, 100.0, 100.0) - canvas.fillCircle(50.0, 50.0, 30.0) - canvas.drawRect(0.0, 100.0, 100.0, 100.0) - canvas.fillArc(50.0, 150.0, 30.0, 90.0, 135.0) - canvas.drawRect(0.0, 200.0, 100.0, 100.0) - canvas.fillArc(50.0, 250.0, 30.0, 90.0, -135.0) - canvas.drawRect(0.0, 300.0, 100.0, 100.0) - canvas.fillArc(50.0, 350.0, 30.0, 45.0, 90.0) - - canvas.setColor(Color(0xFF0000)) - canvas.setStrokeWidth(2.0) - canvas.drawLine(0.0, 0.0, 500.0, 400.0) - canvas.drawLine(500.0, 0.0, 0.0, 400.0) - - canvas.setFont(Font.BOLD) - canvas.setFontSize(50.0) - canvas.setColor(Color(0x00FF00)) - canvas.setTextAlign(TextAlign.CENTER) - canvas.drawText("HELLO", 250.0, 100.0) - - canvas.setTextAlign(TextAlign.RIGHT) - canvas.drawText("HELLO", 250.0, 150.0) - - canvas.setTextAlign(TextAlign.LEFT) - canvas.drawText("HELLO", 250.0, 200.0) - - canvas.setFont(Font.FONT_AWESOME) - canvas.drawText(FontAwesome.CHECK, 250.0, 300.0) - - assertRenders("components/CanvasTest.png", canvas) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/DatabaseTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/io/DatabaseTest.kt deleted file mode 100644 index 8e46e0872..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/DatabaseTest.kt +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import org.isoron.* -import kotlin.test.* - -class DatabaseTest { - @Test - fun testUsage() = asyncTest{ - val db = DependencyResolver.getDatabase() - - db.setVersion(0) - assertEquals(0, db.getVersion()) - - db.setVersion(23) - assertEquals(23, db.getVersion()) - - var stmt = db.prepareStatement("drop table if exists demo") - stmt.step() - stmt.finalize() - - stmt = db.prepareStatement("create table if not exists demo(key int, value text)") - stmt.step() - stmt.finalize() - - stmt = db.prepareStatement("insert into demo(key, value) values (?, ?)") - stmt.bindInt(0, 42) - stmt.bindText(1, "Hello World") - stmt.step() - stmt.finalize() - - stmt = db.prepareStatement("select * from demo where key > ?") - stmt.bindInt(0, 10) - - var result = stmt.step() - assertEquals(StepResult.ROW, result) - assertEquals(42, stmt.getInt(0)) - assertEquals("Hello World", stmt.getText(1)) - - result = stmt.step() - assertEquals(StepResult.DONE, result) - - stmt.finalize() - db.close() - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/FilesTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/io/FilesTest.kt deleted file mode 100644 index f039abc93..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/FilesTest.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import org.isoron.* -import kotlin.test.* - -class FilesTest() { - @Test - fun testLines() = asyncTest { - val fileOpener = DependencyResolver.getFileOpener() - - assertFalse(fileOpener.openUserFile("non-existing-usr.txt").exists(), - "non-existing-usr.txt shouldn't exist") - - assertFalse(fileOpener.openResourceFile("non-existing-res.txt").exists(), - "non-existing-res.txt shouldn't exist") - - val hello = fileOpener.openResourceFile("hello.txt") - assertTrue(hello.exists(), "hello.txt should exist") - var lines = hello.lines() - assertEquals(2, lines.size) - assertEquals("Hello World!", lines[0]) - assertEquals("This is a resource.", lines[1]) - - val helloCopy = fileOpener.openUserFile("copies/hello.txt") - hello.copyTo(helloCopy) - lines = helloCopy.lines() - assertEquals("Hello World!", lines[0]) - assertEquals("This is a resource.", lines[1]) - - assertTrue(helloCopy.exists(), "helloCopy should exist") - helloCopy.delete() - assertFalse(helloCopy.exists(), "helloCopy shouldn't exist") - - - val migration = fileOpener.openResourceFile("migrations/012.sql") - assertTrue(migration.exists(), "migrations/012.sql should exist") - lines = migration.lines() - assertEquals("delete from Score", lines[0]) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/StringsTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/io/StringsTest.kt deleted file mode 100644 index 1573e620a..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/io/StringsTest.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.io - -import kotlin.test.* - -class StringsTest { - @Test - fun testSprintf() { - assertEquals("hello world!", format("hello %s!", "world")) - assertEquals(" 5", format("%3d", 5)) - assertEquals("005", format("%03d", 5)) - assertEquals("005", format("%03d", 5)) - assertEquals(" 45", format("%3d", 45)) - assertEquals("145", format("%3d", 145)) - assertEquals(" 13.42", format("%8.2f", 13.419187263)) - assertEquals("00013.42", format("%08.2f", 13.419187263)) - assertEquals("13.42 ", format("%-8.2f", 13.419187263)) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/platform/time/DatesTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/platform/time/DatesTest.kt deleted file mode 100644 index cf64f50de..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/platform/time/DatesTest.kt +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.platform.time - -import org.isoron.* -import kotlin.test.* - -class DatesTest { - private val d1 = LocalDate(2019, 3, 25) - private val d2 = LocalDate(2019, 4, 4) - private val d3 = LocalDate(2019, 5, 12) - - @Test - fun testPlusMinusDays() { - val today = LocalDate(2019, 3, 25) - assertEquals(today.minus(28), LocalDate(2019, 2, 25)) - assertEquals(today.plus(7), LocalDate(2019, 4, 1)) - assertEquals(today.plus(42), LocalDate(2019, 5, 6)) - } - - @Test - fun testFormatter() { - var fmt = DependencyResolver.getDateFormatter(Locale.US) - assertEquals("Mon", fmt.shortWeekdayName(d1)) - assertEquals("Thu", fmt.shortWeekdayName(d2)) - assertEquals("Sun", fmt.shortWeekdayName(d3)) - assertEquals("Mar", fmt.shortMonthName(d1)) - assertEquals("Apr", fmt.shortMonthName(d2)) - assertEquals("May", fmt.shortMonthName(d3)) - - fmt = DependencyResolver.getDateFormatter(Locale.JAPAN) - assertEquals("月", fmt.shortWeekdayName(d1)) - assertEquals("木", fmt.shortWeekdayName(d2)) - assertEquals("日", fmt.shortWeekdayName(d3)) - assertEquals("3月", fmt.shortMonthName(d1)) - assertEquals("4月", fmt.shortMonthName(d2)) - assertEquals("5月", fmt.shortMonthName(d3)) - } - - @Test - fun testTimestamps() { - val timestamps = listOf(Timestamp(1555977600000), - Timestamp(968716800000), - Timestamp(946684800000)) - val dates = listOf(LocalDate(2019, 4, 23), - LocalDate(2000, 9, 12), - LocalDate(2000, 1, 1)) - assertEquals(timestamps, dates.map { d -> d.timestamp }) - assertEquals(dates, timestamps.map { t -> t.localDate }) - } - - @Test - fun testIsOlderThan() { - val ref = LocalDate(2010, 10, 5) - assertTrue(ref.isOlderThan(LocalDate(2010, 10, 10))) - assertTrue(ref.isOlderThan(LocalDate(2010, 11, 4))) - assertTrue(ref.isOlderThan(LocalDate(2011, 1, 5))) - assertTrue(ref.isOlderThan(LocalDate(2015, 3, 1))) - - assertFalse(ref.isOlderThan(LocalDate(2010, 10, 5))) - assertFalse(ref.isOlderThan(LocalDate(2010, 10, 4))) - assertFalse(ref.isOlderThan(LocalDate(2010, 9, 1))) - assertFalse(ref.isOlderThan(LocalDate(2005, 10, 5))) - } - - @Test - fun testDistanceInDays() { - val d1 = LocalDate(2019, 5, 10) - val d2 = LocalDate(2019, 5, 30) - val d3 = LocalDate(2019, 6, 5) - - assertEquals(0, d1.distanceTo(d1)) - assertEquals(20, d1.distanceTo(d2)) - assertEquals(20, d2.distanceTo(d1)) - assertEquals(26, d1.distanceTo(d3)) - assertEquals(6, d2.distanceTo(d3)) - } - - @Test - fun testGregorianCalendarConversion() { - fun check(daysSince2000: Int, - expectedYear: Int, - expectedMonth: Int, - expectedDay: Int, - expectedWeekday: Int) { - val date = LocalDate(daysSince2000) - assertEquals(expectedYear, date.year) - assertEquals(expectedMonth, date.month) - assertEquals(expectedDay, date.day) - assertEquals(expectedWeekday, date.dayOfWeek.index) - assertEquals(date, date.timestamp.localDate) - } - - check(0, 2000, 1, 1, 6) - check(626, 2001, 9, 18, 2) - check(915, 2002, 7, 4, 4) - check(2759, 2007, 7, 22, 0) - check(2791, 2007, 8, 23, 4) - check(6524, 2017, 11, 11, 6) - check(7517, 2020, 7, 31, 5) - check(10031, 2027, 6, 19, 6) - check(13091, 2035, 11, 4, 0) - check(14849, 2040, 8, 27, 1) - check(17330, 2047, 6, 13, 4) - check(20566, 2056, 4, 22, 6) - check(23617, 2064, 8, 29, 5) - check(27743, 2075, 12, 16, 1) - check(31742, 2086, 11, 27, 3) - check(36659, 2100, 5, 15, 6) - check(39224, 2107, 5, 24, 2) - check(39896, 2109, 3, 26, 2) - check(40819, 2111, 10, 5, 1) - check(43983, 2120, 6, 3, 1) - check(46893, 2128, 5, 22, 6) - check(51013, 2139, 9, 2, 3) - check(55542, 2152, 1, 26, 3) - check(58817, 2161, 1, 13, 2) - check(63769, 2174, 8, 5, 5) - check(64893, 2177, 9, 2, 2) - check(66840, 2183, 1, 1, 3) - check(68011, 2186, 3, 17, 5) - check(70060, 2191, 10, 26, 3) - check(70733, 2193, 8, 29, 4) - } -} diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/BaseViewTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/BaseViewTest.kt deleted file mode 100644 index 1e9b103e6..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/BaseViewTest.kt +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits - -import org.isoron.* -import org.isoron.platform.gui.* -import org.isoron.uhabits.components.* -import kotlin.test.* - -open class BaseViewTest { - var theme = LightTheme() - suspend fun assertRenders(width: Int, - height: Int, - expectedPath: String, - component: Component) { - if (DependencyResolver.ignoreViewTests) { - println("WARN: Ignoring BaseViewTest assertion") - return - } - val canvas = DependencyResolver.createCanvas(width, height) - component.draw(canvas) - assertRenders(expectedPath, canvas) - } - - suspend fun assertRenders(path: String, - canvas: Canvas) { - if (DependencyResolver.ignoreViewTests) { - println("WARN: Ignoring BaseViewTest assertion") - return - } - val actualImage = canvas.toImage() - val failedActualPath = "/tmp/failed/${path}" - val failedExpectedPath = failedActualPath.replace(".png", - ".expected.png") - val failedDiffPath = failedActualPath.replace(".png", ".diff.png") - val fileOpener = DependencyResolver.getFileOpener() - val expectedFile = fileOpener.openResourceFile(path) - if (expectedFile.exists()) { - val expectedImage = expectedFile.toImage() - val diffImage = expectedFile.toImage() - diffImage.diff(actualImage) - val distance = diffImage.averageLuminosity * 100 - if (distance >= 1.0) { - expectedImage.export(failedExpectedPath) - actualImage.export(failedActualPath) - diffImage.export(failedDiffPath) - fail("Images differ (distance=${distance})") - } - } else { - actualImage.export(failedActualPath) - fail("Expected image file is missing. Actual image: $failedActualPath") - } - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/BarChartTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/BarChartTest.kt deleted file mode 100644 index 9017f41cf..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/BarChartTest.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import kotlin.test.* - -class BarChartTest : BaseViewTest() { - val base = "components/BarChart" - val today = LocalDate(2015, 1, 25) - val dailyAxis = (0..100).map { today.minus(it) } - val weeklyAxis = (0..100).map { today.minus(it * 7) } - val monthlyAxis = (0..100).map { today.minus(it * 30) } - val yearlyAxis = (0..100).map { today.minus(it * 365) } - val fmt = DependencyResolver.getDateFormatter(Locale.US) - val component = BarChart(theme, fmt) - - val series1 = listOf(200.0, 80.0, 150.0, 437.0, 50.0, 80.0, 420.0, - 350.0, 100.0, 375.0, 300.0, 50.0, 60.0, 350.0, - 125.0) - - val series2 = listOf(300.0, 500.0, 280.0, 50.0, 425.0, 300.0, 150.0, - 10.0, 50.0, 200.0, 230.0, 20.0, 60.0, 34.0, 100.0) - - init { - component.axis = dailyAxis - component.series.add(series1) - component.colors.add(theme.color(1)) - } - - @Test - fun testDraw() = asyncTest { - assertRenders(400, 200, "$base/base.png", component) - } - - @Test - fun testDrawWeeklyAxis() = asyncTest { - component.axis = weeklyAxis - assertRenders(400, 200, "$base/axis-weekly.png", component) - } - - @Test - fun testDrawMonthlyAxis() = asyncTest { - component.axis = monthlyAxis - assertRenders(400, 200, "$base/axis-monthly.png", component) - } - - @Test - fun testDrawYearlyAxis() = asyncTest { - component.axis = yearlyAxis - assertRenders(400, 200, "$base/axis-yearly.png", component) - } - - @Test - fun testDrawTwoSeries() = asyncTest { - component.series.add(series2) - component.colors.add(theme.color(3)) - assertRenders(400, 200, "$base/2-series.png", component) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CalendarChartTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CalendarChartTest.kt deleted file mode 100644 index dee24ccf8..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CalendarChartTest.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import kotlin.test.* - -class CalendarChartTest : BaseViewTest() { - val base = "components/CalendarChart" - - @Test - fun testDraw() = asyncTest { - val fmt = DependencyResolver.getDateFormatter(Locale.US) - val component = CalendarChart(LocalDate(2015, 1, 25), - theme.color(4), - theme, - fmt) - component.series = listOf(1.0, // today - 0.2, 0.5, 0.7, 0.0, 0.3, 0.4, 0.6, - 0.6, 0.0, 0.3, 0.6, 0.5, 0.8, 0.0, - 0.0, 0.0, 0.0, 0.6, 0.5, 0.7, 0.7, - 0.5, 0.5, 0.8, 0.9, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 0.2) - assertRenders(400, 200, "$base/base.png", component) - - component.scrollPosition = 2 - assertRenders(400, 200, "$base/scroll.png", component) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CheckmarkButtonTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CheckmarkButtonTest.kt deleted file mode 100644 index 9a325917d..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/CheckmarkButtonTest.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.uhabits.* -import kotlin.test.* - -class CheckmarkButtonTest : BaseViewTest() { - val base = "components/CheckmarkButton" - - @Test - fun testDrawExplicit() = asyncTest { - val component = CheckmarkButton(2, theme.color(8), theme) - assertRenders(48, 48, "$base/explicit.png", component) - } - - @Test - fun testDrawImplicit() = asyncTest { - val component = CheckmarkButton(1, theme.color(8), theme) - assertRenders(48, 48, "$base/implicit.png", component) - } - - @Test - fun testDrawUnchecked() = asyncTest { - val component = CheckmarkButton(0, theme.color(8), theme) - assertRenders(48, 48, "$base/unchecked.png", component) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/HabitListHeaderTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/HabitListHeaderTest.kt deleted file mode 100644 index 41c4d9e5b..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/HabitListHeaderTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import kotlin.test.* - -class HabitListHeaderTest : BaseViewTest() { - @Test - fun testDraw() = asyncTest { - val fmt = DependencyResolver.getDateFormatter(Locale.US) - val header = HabitListHeader(LocalDate(2019, 3, 25), 5, theme, fmt) - assertRenders(600, 48, "components/HabitListHeader/light.png", header) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/NumberButtonTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/NumberButtonTest.kt deleted file mode 100644 index 7f65a95ac..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/NumberButtonTest.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.uhabits.* -import kotlin.test.* - -class NumberButtonTest : BaseViewTest() { - val base = "components/NumberButton" - - @Test - fun testFormatValue() = asyncTest{ - assertEquals("0.12", 0.1235.toShortString()) - assertEquals("0.1", 0.1000.toShortString()) - assertEquals("5", 5.0.toShortString()) - assertEquals("5.25", 5.25.toShortString()) - assertEquals("12.3", 12.3456.toShortString()) - assertEquals("123", 123.123.toShortString()) - assertEquals("321", 321.2.toShortString()) - assertEquals("4.3k", 4321.2.toShortString()) - assertEquals("54.3k", 54321.2.toShortString()) - assertEquals("654k", 654321.2.toShortString()) - assertEquals("7.7M", 7654321.2.toShortString()) - assertEquals("87.7M", 87654321.2.toShortString()) - assertEquals("988M", 987654321.2.toShortString()) - assertEquals("2.0G", 1987654321.2.toShortString()) - } - - @Test - fun testRenderAbove() = asyncTest { - val btn = NumberButton(theme.color(8), 500.0, 100.0, "steps", theme) - assertRenders(48, 48, "$base/render_above.png", btn) - } - - @Test - fun testRenderBelow() = asyncTest { - val btn = NumberButton(theme.color(8), 99.0, 100.0, "steps", theme) - assertRenders(48, 48, "$base/render_below.png", btn) - } -} diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/RingTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/RingTest.kt deleted file mode 100644 index a91c4a056..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/components/RingTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.components - -import org.isoron.* -import org.isoron.uhabits.* -import kotlin.test.* - -class RingTest : BaseViewTest() { - val base = "components/Ring" - - @Test - fun testDraw() = asyncTest { - val component = Ring(theme.color(8), - percentage = 0.30, - thickness = 5.0, - radius = 30.0, - theme = theme, - label = true) - assertRenders(60, 60, "$base/draw1.png", component) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkListTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkListTest.kt deleted file mode 100644 index b96965066..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkListTest.kt +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* -import org.isoron.uhabits.models.Checkmark.Companion.CHECKED_AUTOMATIC -import org.isoron.uhabits.models.Checkmark.Companion.CHECKED_MANUAL -import org.isoron.uhabits.models.Checkmark.Companion.UNCHECKED -import kotlin.test.* - -class CheckmarkListTest { - - private val today = LocalDate(2019, 1, 30) - - private fun day(offset: Int): LocalDate { - return today.minus(offset) - } - - @Test - fun buildIntervalsWeekly() { - val checks = listOf(Checkmark(day(23), CHECKED_MANUAL), - Checkmark(day(18), CHECKED_MANUAL), - Checkmark(day(8), CHECKED_MANUAL)) - val expected = listOf( - CheckmarkList.Interval(day(23), day(23), day(17)), - CheckmarkList.Interval(day(18), day(18), day(12)), - CheckmarkList.Interval(day(8), day(8), day(2))) - val actual = CheckmarkList.buildIntervals(checks, - Frequency.WEEKLY) - assertEquals(expected, actual) - } - - @Test - fun buildIntervalsDaily() { - val checks = listOf(Checkmark(day(23), CHECKED_MANUAL), - Checkmark(day(18), CHECKED_MANUAL), - Checkmark(day(8), CHECKED_MANUAL)) - val expected = listOf( - CheckmarkList.Interval(day(23), day(23), day(23)), - CheckmarkList.Interval(day(18), day(18), day(18)), - CheckmarkList.Interval(day(8), day(8), day(8))) - val actual = CheckmarkList.buildIntervals(checks, - Frequency.DAILY) - assertEquals(expected, actual) - } - - @Test - fun buildIntervalsTwoPerWeek() { - val checks = listOf(Checkmark(day(23), CHECKED_MANUAL), - Checkmark(day(22), CHECKED_MANUAL), - Checkmark(day(18), CHECKED_MANUAL), - Checkmark(day(15), CHECKED_MANUAL), - Checkmark(day(8), CHECKED_MANUAL)) - val expected = listOf( - CheckmarkList.Interval(day(23), day(22), day(17)), - CheckmarkList.Interval(day(22), day(18), day(16)), - CheckmarkList.Interval(day(18), day(15), day(12))) - val actual = CheckmarkList.buildIntervals(checks, - Frequency.TWO_TIMES_PER_WEEK) - assertEquals(expected, actual) - } - - @Test - fun testSnapIntervalsTogether() { - val original = mutableListOf( - CheckmarkList.Interval(day(40), day(40), day(34)), - CheckmarkList.Interval(day(25), day(25), day(19)), - CheckmarkList.Interval(day(16), day(16), day(10)), - CheckmarkList.Interval(day(8), day(8), day(2))) - val expected = listOf( - CheckmarkList.Interval(day(40), day(40), day(34)), - CheckmarkList.Interval(day(25), day(25), day(19)), - CheckmarkList.Interval(day(18), day(16), day(12)), - CheckmarkList.Interval(day(11), day(8), day(5))) - CheckmarkList.snapIntervalsTogether(original) - assertEquals(expected, original) - } - - @Test - fun testBuildCheckmarksFromIntervals() { - val checks = listOf(Checkmark(day(10), CHECKED_MANUAL), - Checkmark(day(5), CHECKED_MANUAL), - Checkmark(day(2), CHECKED_MANUAL), - Checkmark(day(1), CHECKED_MANUAL)) - val intervals = listOf(CheckmarkList.Interval(day(10), day(8), day(8)), - CheckmarkList.Interval(day(6), day(5), day(4)), - CheckmarkList.Interval(day(2), day(2), day(1))) - val expected = listOf(Checkmark(day(1), CHECKED_MANUAL), - Checkmark(day(2), CHECKED_MANUAL), - Checkmark(day(3), UNCHECKED), - Checkmark(day(4), CHECKED_AUTOMATIC), - Checkmark(day(5), CHECKED_MANUAL), - Checkmark(day(6), CHECKED_AUTOMATIC), - Checkmark(day(7), UNCHECKED), - Checkmark(day(8), CHECKED_AUTOMATIC), - Checkmark(day(9), CHECKED_AUTOMATIC), - Checkmark(day(10), CHECKED_MANUAL)) - val actual = CheckmarkList.buildCheckmarksFromIntervals(checks, intervals) - assertEquals(expected, actual) - } - - @Test - fun testBuildCheckmarksFromIntervals2() { - val reps = listOf(Checkmark(day(0), CHECKED_MANUAL)) - val intervals = listOf(CheckmarkList.Interval(day(5), day(0), day(0))) - val expected = listOf(Checkmark(day(0), CHECKED_MANUAL), - Checkmark(day(1), CHECKED_AUTOMATIC), - Checkmark(day(2), CHECKED_AUTOMATIC), - Checkmark(day(3), CHECKED_AUTOMATIC), - Checkmark(day(4), CHECKED_AUTOMATIC), - Checkmark(day(5), CHECKED_AUTOMATIC)) - val actual = CheckmarkList.buildCheckmarksFromIntervals(reps, intervals) - assertEquals(expected, actual) - } - - @Test - fun computeAutomaticCheckmarks() { - val checks = listOf(Checkmark(day(10), CHECKED_MANUAL), - Checkmark(day(5), CHECKED_MANUAL), - Checkmark(day(2), CHECKED_MANUAL), - Checkmark(day(1), CHECKED_MANUAL)) - val expected = listOf(Checkmark(day(-1), CHECKED_AUTOMATIC), - Checkmark(day(0), CHECKED_AUTOMATIC), - Checkmark(day(1), CHECKED_MANUAL), - Checkmark(day(2), CHECKED_MANUAL), - Checkmark(day(3), CHECKED_AUTOMATIC), - Checkmark(day(4), CHECKED_AUTOMATIC), - Checkmark(day(5), CHECKED_MANUAL), - Checkmark(day(6), CHECKED_AUTOMATIC), - Checkmark(day(7), CHECKED_AUTOMATIC), - Checkmark(day(8), CHECKED_AUTOMATIC), - Checkmark(day(9), CHECKED_AUTOMATIC), - Checkmark(day(10), CHECKED_MANUAL)) - val actual = CheckmarkList.computeCheckmarks(checks, Frequency(1, 3)) - assertEquals(expected, actual) - } - - @Test - fun testGetUntil() { - val list = CheckmarkList(Frequency(1, 2), HabitType.BOOLEAN_HABIT) - list.setManualCheckmarks(listOf(Checkmark(day(4), CHECKED_MANUAL), - Checkmark(day(7), CHECKED_MANUAL))) - val expected = listOf(Checkmark(day(0), UNCHECKED), - Checkmark(day(1), UNCHECKED), - Checkmark(day(2), UNCHECKED), - Checkmark(day(3), CHECKED_AUTOMATIC), - Checkmark(day(4), CHECKED_MANUAL), - Checkmark(day(5), UNCHECKED), - Checkmark(day(6), CHECKED_AUTOMATIC), - Checkmark(day(7), CHECKED_MANUAL)) - assertEquals(expected, list.getUntil(day(0))) - - val expected2 = listOf(Checkmark(day(3), CHECKED_AUTOMATIC), - Checkmark(day(4), CHECKED_MANUAL), - Checkmark(day(5), UNCHECKED), - Checkmark(day(6), CHECKED_AUTOMATIC), - Checkmark(day(7), CHECKED_MANUAL)) - assertEquals(expected2, list.getUntil(day(3))) - } - - @Test - fun testGetValuesUntil2() { - val list = CheckmarkList(Frequency(1, 2), HabitType.BOOLEAN_HABIT) - val expected = listOf() - assertEquals(expected, list.getUntil(day(0))) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkRepositoryTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkRepositoryTest.kt deleted file mode 100644 index f5e933760..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/CheckmarkRepositoryTest.kt +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.* -import org.isoron.platform.io.* -import org.isoron.platform.time.* -import kotlin.test.* - -class CheckmarkRepositoryTest() { - @Test - fun testCRUD() = asyncTest { - val db = DependencyResolver.getDatabase() - - val habitA = 10 - var checkmarksA = listOf(Checkmark(LocalDate(2019, 1, 15), 100), - Checkmark(LocalDate(2019, 1, 7), 500), - Checkmark(LocalDate(2019, 1, 1), 900)) - - val habitB = 35 - val checkmarksB = listOf(Checkmark(LocalDate(2019, 1, 30), 50), - Checkmark(LocalDate(2019, 1, 29), 30), - Checkmark(LocalDate(2019, 1, 27), 900), - Checkmark(LocalDate(2019, 1, 25), 450), - Checkmark(LocalDate(2019, 1, 20), 1000)) - - val repository = CheckmarkRepository(db) - - for (c in checkmarksA) repository.insert(habitA, c) - for (c in checkmarksB) repository.insert(habitB, c) - assertEquals(checkmarksA, repository.findAll(habitA)) - assertEquals(checkmarksB, repository.findAll(habitB)) - assertEquals(listOf(), repository.findAll(999)) - - checkmarksA = listOf(Checkmark(LocalDate(2019, 1, 15), 100), - Checkmark(LocalDate(2019, 1, 1), 900)) - repository.delete(habitA, LocalDate(2019, 1, 7)) - assertEquals(checkmarksA, repository.findAll(habitA)) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/HabitRepositoryTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/HabitRepositoryTest.kt deleted file mode 100644 index faa234d78..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/HabitRepositoryTest.kt +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.* -import org.isoron.platform.gui.* -import kotlin.test.* - -class HabitRepositoryTest() { - @Test - fun testCRUD() = asyncTest{ - val db = DependencyResolver.getDatabase() - val original0 = Habit(id = 0, - name = "Wake up early", - description = "Did you wake up before 6am?", - frequency = Frequency(1, 1), - color = PaletteColor(3), - isArchived = false, - position = 0, - unit = "", - target = 0.0, - type = HabitType.BOOLEAN_HABIT) - - val original1 = Habit(id = 1, - name = "Exercise", - description = "Did you exercise for at least 20 minutes?", - frequency = Frequency(1, 2), - color = PaletteColor(4), - isArchived = false, - position = 1, - unit = "", - target = 0.0, - type = HabitType.BOOLEAN_HABIT) - - val original2 = Habit(id = 2, - name = "Learn Japanese", - description = "Did you study Japanese today?", - frequency = Frequency(1, 1), - color = PaletteColor(3), - isArchived = false, - position = 2, - unit = "", - target = 0.0, - type = HabitType.BOOLEAN_HABIT) - - val repository = HabitRepository(db) - - var habits = repository.findAll() - assertEquals(0, repository.nextId()) - assertEquals(0, habits.size) - - repository.insert(original0) - repository.insert(original1) - repository.insert(original2) - habits = repository.findAll() - assertEquals(3, habits.size) - assertEquals(original0, habits[0]) - assertEquals(original1, habits[1]) - assertEquals(original2, habits[2]) - - assertEquals(3, repository.nextId()) - - original0.description = "New description" - repository.update(original0) - habits = repository.findAll() - assertEquals(original0, habits[0]) - - repository.delete(original0) - habits = repository.findAll() - assertEquals(2, habits.size) - assertEquals(original1, habits[1]) - assertEquals(original2, habits[2]) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/PreferencesRepositoryTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/PreferencesRepositoryTest.kt deleted file mode 100644 index b24b65ecb..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/PreferencesRepositoryTest.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.* -import org.isoron.platform.io.* -import kotlin.test.* - -class PreferencesRepositoryTest() { - @Test - fun testUsage() = asyncTest{ - val db = DependencyResolver.getDatabase() - val prefs = PreferencesRepository(db) - assertEquals("default", prefs.getString("non_existing_key", "default")) - prefs.putString("ringtone_path", "/tmp") - assertEquals("/tmp", prefs.getString("ringtone_path", "none")) - - assertEquals(42, prefs.getLong("non_existing_key", 42)) - prefs.putLong("times_launched", 130) - assertEquals(130, prefs.getLong("times_launched", 0)) - - assertEquals(true, prefs.getBoolean("non_existing_key", true)) - assertEquals(false, prefs.getBoolean("non_existing_key", false)) - prefs.putBoolean("show_archived", true) - assertEquals(true, prefs.getBoolean("show_archived", false)) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/ScoreListTest.kt b/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/ScoreListTest.kt deleted file mode 100644 index c9e86f5c5..000000000 --- a/uhabits-core-legacy/src/test/common/org/isoron/uhabits/models/ScoreListTest.kt +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.models - -import org.isoron.platform.time.* -import org.isoron.uhabits.models.Checkmark.Companion.CHECKED_MANUAL -import org.isoron.uhabits.models.Frequency.Companion.DAILY -import org.isoron.uhabits.models.ScoreList.Companion.compute -import kotlin.test.* - -class ScoreListTest { - val today = LocalDate(2019, 1, 1) - - @Test - fun computeWithDailyHabit() { - val freq = DAILY - var check = 1 - assertEquals(compute(freq, 0.0, check), 0.051922) - assertEquals(compute(freq, 0.5, check), 0.525961) - assertEquals(compute(freq, 0.75, check), 0.762980) - - check = 0 - assertEquals(compute(freq, 0.0, check), 0.0) - assertEquals(compute(freq, 0.5, check), 0.474038) - assertEquals(compute(freq, 0.75, check), 0.711058) - } - - @Test - fun computeWithNonDailyHabit() { - var check = 1 - val freq = Frequency(1, 3) - assertEquals(compute(freq, 0.0, check), 0.017615) - assertEquals(compute(freq, 0.5, check), 0.508807) - assertEquals(compute(freq, 0.75, check), 0.754403) - - check = 0 - assertEquals(compute(freq, 0.0, check), 0.0) - assertEquals(compute(freq, 0.5, check), 0.491192) - assertEquals(compute(freq, 0.75, check), 0.736788) - } - - @Test - fun getValueUntilWithBooleanHabit() { - val checks = CheckmarkList(DAILY, - HabitType.BOOLEAN_HABIT) - checks.setManualCheckmarks((0..19).map { - Checkmark(today.minus(it), CHECKED_MANUAL) - }) - val scoreList = ScoreList(checks) - val actual = scoreList.getUntil(today) - val expected = listOf(Score(today.minus(0), 0.655741), - Score(today.minus(1), 0.636888), - Score(today.minus(2), 0.617002), - Score(today.minus(3), 0.596027), - Score(today.minus(4), 0.573903), - Score(today.minus(5), 0.550568), - Score(today.minus(6), 0.525955), - Score(today.minus(7), 0.499994), - Score(today.minus(8), 0.472611), - Score(today.minus(9), 0.443729), - Score(today.minus(10), 0.413265), - Score(today.minus(11), 0.381132), - Score(today.minus(12), 0.347240), - Score(today.minus(13), 0.311491), - Score(today.minus(14), 0.273785), - Score(today.minus(15), 0.234014), - Score(today.minus(16), 0.192065), - Score(today.minus(17), 0.147818), - Score(today.minus(18), 0.101148), - Score(today.minus(19), 0.051922)) - - assertEquals(expected, actual) - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/ios/org/isoron/DependencyResolver.kt b/uhabits-core-legacy/src/test/ios/org/isoron/DependencyResolver.kt deleted file mode 100644 index 4cd3fd7ed..000000000 --- a/uhabits-core-legacy/src/test/ios/org/isoron/DependencyResolver.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import platform.CoreGraphics.* -import platform.UIKit.* - -actual object DependencyResolver { - actual val ignoreViewTests = true - - actual suspend fun getFileOpener(): FileOpener = IosFileOpener() - - actual fun getDateFormatter(locale: Locale): LocalDateFormatter { - return when (locale) { - Locale.US -> IosLocalDateFormatter("en-US") - Locale.JAPAN -> IosLocalDateFormatter("ja-JP") - } - } - - actual fun createCanvas(width: Int, height: Int): Canvas { - val scale = 2.0 - UIGraphicsBeginImageContext(CGSizeMake(width * scale, height * scale)) - return IosCanvas(width * scale, height * scale, scale = scale) - } - - actual suspend fun getDatabase(): Database { - val log = StandardLog() - val fileOpener = IosFileOpener() - val databaseOpener = IosDatabaseOpener() - - val dbFile = fileOpener.openUserFile("test.sqlite3") - if (dbFile.exists()) dbFile.delete() - val db = databaseOpener.open(dbFile) - db.migrateTo(LOOP_DATABASE_VERSION, fileOpener, log) - return db - } -} \ No newline at end of file diff --git a/uhabits-core-legacy/src/test/ios/org/isoron/IosAsyncTests.kt b/uhabits-core-legacy/src/test/ios/org/isoron/IosAsyncTests.kt deleted file mode 100644 index 711209fc3..000000000 --- a/uhabits-core-legacy/src/test/ios/org/isoron/IosAsyncTests.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import kotlinx.coroutines.* - -/** - * Workaround until Kotlin adds support for testing suspend functions - * https://youtrack.jetbrains.com/issue/KT-22228 - */ -actual fun asyncTest(block: suspend () -> Unit) = runBlocking { block() } diff --git a/uhabits-core-legacy/src/test/js/org/isoron/DependencyResolver.kt b/uhabits-core-legacy/src/test/js/org/isoron/DependencyResolver.kt deleted file mode 100644 index 3a28427e4..000000000 --- a/uhabits-core-legacy/src/test/js/org/isoron/DependencyResolver.kt +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import org.w3c.dom.* -import kotlin.browser.* - -actual object DependencyResolver { - actual val ignoreViewTests = false - - var fileOpener: JsFileOpener? = null - - actual suspend fun getFileOpener(): FileOpener { - if (fileOpener == null) { - val fs = JsFileStorage() - fs.init() - fileOpener = JsFileOpener(fs) - } - return fileOpener!! - } - - actual suspend fun getDatabase(): Database { - val nativeDB = eval("new SQL.Database()") - val db = JsDatabase(nativeDB) - db.migrateTo(LOOP_DATABASE_VERSION, getFileOpener(), StandardLog()) - return db - } - - actual fun getDateFormatter(locale: Locale): LocalDateFormatter { - return when (locale) { - Locale.US -> JsDateFormatter("en-US") - Locale.JAPAN -> JsDateFormatter("ja-JP") - } - } - - actual fun createCanvas(width: Int, height: Int): Canvas { - val element = document.createElement("canvas") as HTMLCanvasElement - element.width = 2 * width - element.height = 2 * height - element.style.width = "${2 * width}px" - element.style.height = "${2 * height}px" - val canvas = JsCanvas(element, 2.0) - canvas.setColor(Color(0xffffff)) - canvas.fillRect(0.0, 0.0, width.toDouble(), height.toDouble()) - return canvas - } -} diff --git a/uhabits-core-legacy/src/test/js/org/isoron/JsAsyncTests.kt b/uhabits-core-legacy/src/test/js/org/isoron/JsAsyncTests.kt deleted file mode 100644 index 6281be452..000000000 --- a/uhabits-core-legacy/src/test/js/org/isoron/JsAsyncTests.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import kotlinx.coroutines.* - -/** - * Workaround until Kotlin adds support for testing suspend functions - * https://youtrack.jetbrains.com/issue/KT-22228 - */ -actual fun asyncTest(block: suspend () -> Unit): dynamic = GlobalScope.promise { block() } diff --git a/uhabits-core-legacy/src/test/jvm/org/isoron/DependencyResolver.kt b/uhabits-core-legacy/src/test/jvm/org/isoron/DependencyResolver.kt deleted file mode 100644 index 9f5d1c093..000000000 --- a/uhabits-core-legacy/src/test/jvm/org/isoron/DependencyResolver.kt +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import org.isoron.platform.gui.* -import org.isoron.platform.io.* -import org.isoron.platform.time.* -import org.isoron.uhabits.* -import java.awt.image.* - -actual object DependencyResolver { - actual val ignoreViewTests = false - - actual suspend fun getFileOpener(): FileOpener = JavaFileOpener() - - actual suspend fun getDatabase(): Database { - val log = StandardLog() - val fileOpener = JavaFileOpener() - val databaseOpener = JavaDatabaseOpener(log) - - val dbFile = fileOpener.openUserFile("test.sqlite3") - if (dbFile.exists()) dbFile.delete() - val db = databaseOpener.open(dbFile) - db.migrateTo(LOOP_DATABASE_VERSION, fileOpener, log) - return db - } - - actual fun getDateFormatter(locale: Locale): LocalDateFormatter { - return when (locale) { - Locale.US -> JavaLocalDateFormatter(java.util.Locale.US) - Locale.JAPAN -> JavaLocalDateFormatter(java.util.Locale.JAPAN) - } - } - - actual fun createCanvas(width: Int, height: Int): Canvas { - val widthPx = width * 2 - val heightPx = height * 2 - val image = BufferedImage(widthPx, - heightPx, - BufferedImage.TYPE_INT_ARGB) - return JavaCanvas(image, pixelScale = 2.0) - } -} diff --git a/uhabits-core-legacy/src/test/jvm/org/isoron/JavaAsyncTests.kt b/uhabits-core-legacy/src/test/jvm/org/isoron/JavaAsyncTests.kt deleted file mode 100644 index 711209fc3..000000000 --- a/uhabits-core-legacy/src/test/jvm/org/isoron/JavaAsyncTests.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron - -import kotlinx.coroutines.* - -/** - * Workaround until Kotlin adds support for testing suspend functions - * https://youtrack.jetbrains.com/issue/KT-22228 - */ -actual fun asyncTest(block: suspend () -> Unit) = runBlocking { block() } diff --git a/uhabits-ios/Application/AppDelegate.swift b/uhabits-ios/Application/AppDelegate.swift deleted file mode 100644 index df6fc7c0f..000000000 --- a/uhabits-ios/Application/AppDelegate.swift +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, BackendListener { - - var window: UIWindow? - var nav: UINavigationController? - let log = StandardLog() - var backend: Backend? - - func application(_ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - - backend = Backend(databaseName: "uhabits.db", - databaseOpener: IosDatabaseOpener(), - fileOpener: IosFileOpener(), - localeHelper: IosLocaleHelper(log: log), - log: log, - scope: UIDispatcher()) - - backend?.observable.addListener(listener: self) - backend?.doInit() - - window = UIWindow(frame: UIScreen.main.bounds) - nav = UINavigationController() - window?.backgroundColor = UIColor.white - window?.rootViewController = nav - window?.makeKeyAndVisible() - - return true - } - - func onReady() { - nav?.viewControllers = [MainScreenController(withBackend: backend!)] - } -} diff --git a/uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/Contents.json b/uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9e5fe95b3..000000000 --- a/uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "loop-120.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "loop-180.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/loop-120.png b/uhabits-ios/Application/Assets.xcassets/AppIcon.appiconset/loop-120.png deleted file mode 100644 index 1fde279335da261b3a7395cae6b571b59d013d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6481 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 FngDC>%KBvGGY& z!zYe~{yoJmF5(t;>C+r%uQ3t)v;F0Dmx4phj6fX>4U0T?uUb{+t94Ip{pDr9%4b`} zPrjZJw)f7OV|P?|RvqMhrk2Rre(#yuLt#EyAlcD=#`lo6OjOKSUb|Oje`2GnCtt|6 sJ-g=BUthnAKdL{ui$;Hr02$1{5TE)r;Av+s&qWZ&)78&qol`;+0Ic^=2><{9 diff --git a/uhabits-ios/Application/BridgingHeader.h b/uhabits-ios/Application/BridgingHeader.h deleted file mode 100644 index 7032ff4f2..000000000 --- a/uhabits-ios/Application/BridgingHeader.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#import "LoopHabitTracker.h" diff --git a/uhabits-ios/Application/Frontend/AboutScreenController.swift b/uhabits-ios/Application/Frontend/AboutScreenController.swift deleted file mode 100644 index f4cbe355b..000000000 --- a/uhabits-ios/Application/Frontend/AboutScreenController.swift +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -class AboutScreenController : UITableViewController { -} diff --git a/uhabits-ios/Application/Frontend/DetailScreenController.swift b/uhabits-ios/Application/Frontend/DetailScreenController.swift deleted file mode 100644 index c9473c337..000000000 --- a/uhabits-ios/Application/Frontend/DetailScreenController.swift +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -class DetailScreenController : UITableViewController { - - let theme: Theme - let habit: Habit - let color: Color - var cells = [UITableViewCell]() - - required init?(coder aDecoder: NSCoder) { - fatalError() - } - - init(habit: Habit, backend: Backend) { - self.theme = backend.theme - self.habit = habit - self.color = theme.color(paletteIndex: self.habit.color.index) - super.init(style: .grouped) - } - - override func viewDidLoad() { - self.title = habit.name - self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .edit, - target: self, - action: #selector(self.onEditHabitClicked)) - cells.append(buildBarChartCell()) - cells.append(buildHistoryChartCell()) - } - - func buildBarChartCell() -> UITableViewCell { - let today = LocalDate(year: 2019, month: 3, day: 15) - let axis = (0...365).map { today.minus(days: $0) } - let component = BarChart(theme: theme, - dateFormatter: IosLocalDateFormatter()) - component.axis = axis - let cell = UITableViewCell() - let view = ComponentView(frame: cell.frame, component: component) - for k in 0...0 { - var series = [KotlinDouble]() - for _ in 1...365 { - series.append(KotlinDouble(value: Double.random(in: 0...5000))) - } - component.series.add(series) - let color = (self.habit.color.index + Int32(k * 3)) % 16 - component.colors.add(theme.color(paletteIndex: color)) - } - view.autoresizingMask = [.flexibleWidth, .flexibleHeight] - cell.contentView.addSubview(view) - return cell - } - - func buildHistoryChartCell() -> UITableViewCell { - let component = CalendarChart(today: LocalDate(year: 2019, month: 3, day: 15), - color: color, - theme: theme, - dateFormatter: IosLocalDateFormatter()) - let cell = UITableViewCell() - let view = ComponentView(frame: cell.frame, component: component) - var series = [KotlinDouble]() - for _ in 1...365 { - series.append(KotlinDouble(value: Double.random(in: 0...1))) - } - component.series = series - view.autoresizingMask = [.flexibleWidth, .flexibleHeight] - cell.contentView.addSubview(view) - return cell - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - self.navigationController?.navigationBar.barStyle = .blackOpaque - self.navigationController?.navigationBar.barTintColor = color.uicolor - self.navigationController?.navigationBar.tintColor = .white - self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] - } - - override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return 1 - } - - override func numberOfSections(in tableView: UITableView) -> Int { - return cells.count - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return cells[indexPath.section] - } - - @objc func onEditHabitClicked() { - self.navigationController?.pushViewController(EditHabitController(), animated: true) - } - - override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return 200 - } -} diff --git a/uhabits-ios/Application/Frontend/EditHabitController.swift b/uhabits-ios/Application/Frontend/EditHabitController.swift deleted file mode 100644 index 5f7d5fc4e..000000000 --- a/uhabits-ios/Application/Frontend/EditHabitController.swift +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -class EditHabitTableViewController: NSObject, UITableViewDataSource, UITableViewDelegate { - func disclosure(title: String, subtitle: String) -> UITableViewCell { - let cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - cell.textLabel?.text = title - cell.detailTextLabel?.text = subtitle - cell.accessoryType = .disclosureIndicator - return cell - } - - func input(title: String) -> UITableViewCell { - let cell = UITableViewCell() - let field = UITextField(frame: cell.bounds.insetBy(dx: 20, dy: 0)) - field.placeholder = title - field.autoresizingMask = [UIView.AutoresizingMask.flexibleWidth, - UIView.AutoresizingMask.flexibleHeight] - cell.contentView.addSubview(field) - return cell - } - - var primary = [UITableViewCell]() - var secondary = [UITableViewCell]() - var parentController: EditHabitController - - init(withParentController parentController: EditHabitController) { - self.parentController = parentController - super.init() - primary.append(input(title: "Name")) - primary.append(input(title: "Question (e.g. Did you wake up early today?)")) - secondary.append(disclosure(title: "Color", subtitle: "Blue")) - secondary.append(disclosure(title: "Repeat", subtitle: "Daily")) - secondary.append(disclosure(title: "Reminder", subtitle: "Disabled")) - } - - func numberOfSections(in tableView: UITableView) -> Int { - return 2 - } - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return section == 0 ? primary.count : secondary.count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return indexPath.section == 0 ? primary[indexPath.item] : secondary[indexPath.item] - } - -// func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { -// let alert = UIAlertController(title: "Hello", message: "You selected something", preferredStyle: .alert) -// parentController.present(alert, animated: true) -// } -} - -class EditHabitController: UIViewController { - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - let bounds = UIScreen.main.bounds - let tableController = EditHabitTableViewController(withParentController: self) - let table = UITableView(frame: bounds, style: .grouped) - table.dataSource = tableController - table.delegate = tableController - self.view = table - } - - override func viewDidLoad() { - self.title = "Edit Habit" - } -} diff --git a/uhabits-ios/Application/Frontend/MainScreenController.swift b/uhabits-ios/Application/Frontend/MainScreenController.swift deleted file mode 100644 index 7c4d9136d..000000000 --- a/uhabits-ios/Application/Frontend/MainScreenController.swift +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -class MainScreenCell : UITableViewCell { - var ring = ComponentView(frame: CGRect(), component: nil) - var label = UILabel() - var buttons: [ComponentView] = [] - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: .default, reuseIdentifier: reuseIdentifier) - } - required init?(coder aDecoder: NSCoder) { - fatalError() - } - - func update(habit: Habit, checkmarks: [Checkmark], score: Score, theme: Theme, nButtons: Int) { - if buttons.count != nButtons { - buttons.removeAll() - for v in contentView.subviews { v.removeFromSuperview() } - - let size = CGFloat(theme.checkmarkButtonSize) - let stack = UIStackView(frame: contentView.frame) - stack.autoresizingMask = [.flexibleWidth, .flexibleHeight] - stack.axis = .horizontal - stack.distribution = .fill - stack.alignment = .center - contentView.addSubview(stack) - - ring.backgroundColor = .white - ring.widthAnchor.constraint(equalToConstant: size * 0.75).isActive = true - ring.heightAnchor.constraint(equalToConstant: size).isActive = true - stack.addArrangedSubview(ring) - - label.backgroundColor = .white - label.heightAnchor.constraint(equalToConstant: size).isActive = true - stack.addArrangedSubview(label) - - for _ in 1...nButtons { - let btn = ComponentView(frame: frame, component: nil) - btn.backgroundColor = .white - btn.widthAnchor.constraint(equalToConstant: size).isActive = true - btn.heightAnchor.constraint(equalToConstant: size).isActive = true - buttons.append(btn) - stack.addArrangedSubview(btn) - } - } - - var color = theme.color(paletteIndex: habit.color.index) - if habit.isArchived { color = theme.mediumContrastTextColor } - label.text = habit.name - label.textColor = color.uicolor - ring.component = Ring(color: color, - percentage: score.value, - thickness: 2.5, - radius: 7, - theme: theme, - label: false) - ring.setNeedsDisplay() - - for i in 0.. Int { - return data?.habits.count ?? 0 - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MainScreenCell - let habit = data!.habits[indexPath.row] - cell.update(habit: habit, - checkmarks: data!.checkmarks[habit]!, - score: data!.scores[habit]!, - theme: theme, - nButtons: nButtons) - return cell - } - - override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { - let component = HabitListHeader(today: LocalDate(year: 2019, month: 3, day: 24), - nButtons: Int32(nButtons), - theme: theme, - fmt: IosLocalDateFormatter()) - return ComponentView(frame: CGRect(x: 0, y: 0, width: 100, height: CGFloat(theme.checkmarkButtonSize)), - component: component) - } - - override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { - return CGFloat(theme.checkmarkButtonSize) - } - - override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return CGFloat(theme.checkmarkButtonSize) + 3 - } - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let habit = data!.habits[indexPath.row] - self.navigationController?.pushViewController(DetailScreenController(habit: habit, backend: backend), animated: true) - } - - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { - computeNumberOfButtons(Double(size.width)) - reload() - } - - @objc func onCreateHabitClicked() { - self.navigationController?.pushViewController(EditHabitController(), animated: true) - } - - @objc func onMoreActionsClicked() { - let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) - - if isThereAnyArchivedHabit() { - if preferences.showArchived { - alert.addAction(UIAlertAction(title: strings.hide_archived, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.showArchived = false - self.dataSource.requestData() - }) - } else { - alert.addAction(UIAlertAction(title: strings.show_archived, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.showArchived = true - self.dataSource.requestData() - }) - } - } - - if preferences.showCompleted { - alert.addAction(UIAlertAction(title: strings.hide_completed, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.showCompleted = false - self.dataSource.requestData() - }) - } else { - alert.addAction(UIAlertAction(title: strings.show_completed, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.showCompleted = true - self.dataSource.requestData() - }) - } - - if preferences.nightMode { - alert.addAction(UIAlertAction(title: strings.day_mode, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.nightMode = false - }) - } else { - alert.addAction(UIAlertAction(title: strings.night_mode, style: .default) { - (action: UIAlertAction) -> Void in - self.preferences.nightMode = true - }) - } - - alert.addAction(UIAlertAction(title: strings.help, style: .default) { - (action: UIAlertAction) -> Void in - if let link = URL(string: "http://loophabits.org/faq") { - UIApplication.shared.open(link) - } - }) - alert.addAction(UIAlertAction(title: strings.about, style: .default) { - (action: UIAlertAction) -> Void in - self.navigationController?.pushViewController(AboutScreenController(), animated: true) - }) - alert.addAction(UIAlertAction(title: strings.cancel, style: .cancel) { - (action: UIAlertAction) -> Void in - // Do nothing - }) - present(alert, animated: true, completion: nil) - } - - func onDataChanged(newData: MainScreenDataSource.Data) { - data = newData - reload() - } - - func computeNumberOfButtons(_ width: Double) { - nButtons = Int((width - 220) / theme.checkmarkButtonSize) - nButtons = max(nButtons, 3) - nButtons = min(nButtons, Int(dataSource.maxNumberOfButtons)) - } - - func reload() { - let sections = NSIndexSet(indexesIn: NSMakeRange(0, self.tableView.numberOfSections)) - tableView.reloadSections(sections as IndexSet, with: .automatic) - } - - func isThereAnyArchivedHabit() -> Bool { - return data!.habits.filter({ $0.isArchived }).count > 0 - } -} diff --git a/uhabits-ios/Application/Info.plist b/uhabits-ios/Application/Info.plist deleted file mode 100644 index bb68c7e1f..000000000 --- a/uhabits-ios/Application/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Loop - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIAppFonts - - fonts/FontAwesome.ttf - - UILaunchStoryboardName - Launch.storyboard - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/uhabits-ios/Application/Launch.storyboard b/uhabits-ios/Application/Launch.storyboard deleted file mode 100644 index f9a048edf..000000000 --- a/uhabits-ios/Application/Launch.storyboard +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/uhabits-ios/Application/Platform/ComponentView.swift b/uhabits-ios/Application/Platform/ComponentView.swift deleted file mode 100644 index 8b111651c..000000000 --- a/uhabits-ios/Application/Platform/ComponentView.swift +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2016-2019 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import UIKit - -class ComponentView : UIView { - var component: Component? - - init(frame: CGRect, component: Component?) { - self.component = component - super.init(frame: frame) - } - - required init?(coder aDecoder: NSCoder) { - fatalError() - } - - override func draw(_ rect: CGRect) { - let canvas = IosCanvas(width: Double(rect.width), - height: Double(rect.height), - scale: 1.0) - component?.draw(canvas: canvas) - } - - override func layoutSubviews() { - setNeedsDisplay() - } -} diff --git a/uhabits-ios/Tests/Info.plist b/uhabits-ios/Tests/Info.plist deleted file mode 100644 index 866537f58..000000000 --- a/uhabits-ios/Tests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - UIAppFonts - - fonts/FontAwesome.ttf - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/uhabits-ios/uhabits.xcodeproj/project.pbxproj b/uhabits-ios/uhabits.xcodeproj/project.pbxproj deleted file mode 100644 index 75fc10fc7..000000000 --- a/uhabits-ios/uhabits.xcodeproj/project.pbxproj +++ /dev/null @@ -1,584 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 001592642260AE0F00D2814F /* LoopHabitTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* LoopHabitTracker.framework */; }; - 005166D12471C02D00C6CFD6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A5B42722009F590024E00C /* AppDelegate.swift */; }; - 006EFE50225432B8008464E0 /* AboutScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006EFE4F225432B8008464E0 /* AboutScreenController.swift */; }; - 00A5B42822009F590024E00C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A5B42722009F590024E00C /* AppDelegate.swift */; }; - 00A5B42A22009F590024E00C /* MainScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A5B42922009F590024E00C /* MainScreenController.swift */; }; - 00A5B42F22009F5A0024E00C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 00A5B42E22009F5A0024E00C /* Assets.xcassets */; }; - 00C0C6BD22465F65003D8AF0 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BA22465F65003D8AF0 /* fonts */; }; - 00C0C6BE22465F65003D8AF0 /* databases in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BB22465F65003D8AF0 /* databases */; }; - 00C0C6BF22465F65003D8AF0 /* migrations in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BC22465F65003D8AF0 /* migrations */; }; - 00C0C6CA2246E543003D8AF0 /* LoopHabitTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* LoopHabitTracker.framework */; }; - 00C0C6CC2246E550003D8AF0 /* LoopHabitTracker.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* LoopHabitTracker.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 00C0C6D122470705003D8AF0 /* ComponentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0C6D022470705003D8AF0 /* ComponentView.swift */; }; - 00C0C6E0224A3602003D8AF0 /* DetailScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0C6DE224A35FC003D8AF0 /* DetailScreenController.swift */; }; - 00D48BD12200A31300CC4527 /* Launch.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 00D48BD02200A31300CC4527 /* Launch.storyboard */; }; - 00D48BD32200AC1600CC4527 /* EditHabitController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00D48BD22200AC1600CC4527 /* EditHabitController.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00A5B43922009F5A0024E00C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00A5B41C22009F590024E00C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 00A5B42322009F590024E00C; - remoteInfo = uhabits; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 00C0C6B522465C47003D8AF0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 00C0C6CC2246E550003D8AF0 /* LoopHabitTracker.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 006EFE4F225432B8008464E0 /* AboutScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutScreenController.swift; sourceTree = ""; }; - 00A5B42422009F590024E00C /* uhabits.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = uhabits.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 00A5B42722009F590024E00C /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 00A5B42922009F590024E00C /* MainScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainScreenController.swift; sourceTree = ""; }; - 00A5B42E22009F5A0024E00C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 00A5B43322009F5A0024E00C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00A5B43822009F5A0024E00C /* uhabitsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = uhabitsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00A5B43E22009F5A0024E00C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00C0C6AE224655D8003D8AF0 /* BridgingHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BridgingHeader.h; sourceTree = ""; }; - 00C0C6BA22465F65003D8AF0 /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = ""; }; - 00C0C6BB22465F65003D8AF0 /* databases */ = {isa = PBXFileReference; lastKnownFileType = folder; path = databases; sourceTree = ""; }; - 00C0C6BC22465F65003D8AF0 /* migrations */ = {isa = PBXFileReference; lastKnownFileType = folder; path = migrations; sourceTree = ""; }; - 00C0C6C92246E543003D8AF0 /* LoopHabitTracker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LoopHabitTracker.framework; path = "../uhabits-core-legacy/build/bin/ios/debugFramework/LoopHabitTracker.framework"; sourceTree = ""; }; - 00C0C6D022470705003D8AF0 /* ComponentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComponentView.swift; sourceTree = ""; }; - 00C0C6DE224A35FC003D8AF0 /* DetailScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailScreenController.swift; sourceTree = ""; }; - 00D48BD02200A31300CC4527 /* Launch.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Launch.storyboard; sourceTree = ""; }; - 00D48BD22200AC1600CC4527 /* EditHabitController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditHabitController.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00A5B42122009F590024E00C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 00C0C6CA2246E543003D8AF0 /* LoopHabitTracker.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 00A5B43522009F5A0024E00C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 001592642260AE0F00D2814F /* LoopHabitTracker.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 006EFE49224FF41B008464E0 /* Frontend */ = { - isa = PBXGroup; - children = ( - 006EFE4F225432B8008464E0 /* AboutScreenController.swift */, - 00C0C6DE224A35FC003D8AF0 /* DetailScreenController.swift */, - 00D48BD22200AC1600CC4527 /* EditHabitController.swift */, - 00A5B42922009F590024E00C /* MainScreenController.swift */, - ); - path = Frontend; - sourceTree = ""; - }; - 00A5B41B22009F590024E00C = { - isa = PBXGroup; - children = ( - 00C0C6C022465F80003D8AF0 /* Assets */, - 00A5B42622009F590024E00C /* Application */, - 00A5B43B22009F5A0024E00C /* Tests */, - 00A5B42522009F590024E00C /* Products */, - 00C0C6B0224658CD003D8AF0 /* Frameworks */, - ); - sourceTree = ""; - }; - 00A5B42522009F590024E00C /* Products */ = { - isa = PBXGroup; - children = ( - 00A5B42422009F590024E00C /* uhabits.app */, - 00A5B43822009F5A0024E00C /* uhabitsTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 00A5B42622009F590024E00C /* Application */ = { - isa = PBXGroup; - children = ( - 00C0C6AE224655D8003D8AF0 /* BridgingHeader.h */, - 00A5B43322009F5A0024E00C /* Info.plist */, - 00D48BD02200A31300CC4527 /* Launch.storyboard */, - 00A5B42722009F590024E00C /* AppDelegate.swift */, - 00A5B42E22009F5A0024E00C /* Assets.xcassets */, - 006EFE49224FF41B008464E0 /* Frontend */, - 00C0C6D622471BA3003D8AF0 /* Platform */, - ); - path = Application; - sourceTree = ""; - }; - 00A5B43B22009F5A0024E00C /* Tests */ = { - isa = PBXGroup; - children = ( - 00A5B43E22009F5A0024E00C /* Info.plist */, - ); - path = Tests; - sourceTree = ""; - }; - 00C0C6B0224658CD003D8AF0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 00C0C6C92246E543003D8AF0 /* LoopHabitTracker.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 00C0C6C022465F80003D8AF0 /* Assets */ = { - isa = PBXGroup; - children = ( - 00C0C6BB22465F65003D8AF0 /* databases */, - 00C0C6BA22465F65003D8AF0 /* fonts */, - 00C0C6BC22465F65003D8AF0 /* migrations */, - ); - name = Assets; - path = "../uhabits-core-legacy/assets/main"; - sourceTree = ""; - }; - 00C0C6D622471BA3003D8AF0 /* Platform */ = { - isa = PBXGroup; - children = ( - 00C0C6D022470705003D8AF0 /* ComponentView.swift */, - ); - path = Platform; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00A5B42322009F590024E00C /* uhabits */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00A5B44122009F5A0024E00C /* Build configuration list for PBXNativeTarget "uhabits" */; - buildPhases = ( - 00C0C6D32247134F003D8AF0 /* Build Core Module */, - 00A5B42022009F590024E00C /* Sources */, - 00A5B42122009F590024E00C /* Frameworks */, - 00A5B42222009F590024E00C /* Resources */, - 00C0C6B522465C47003D8AF0 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = uhabits; - productName = uhabits; - productReference = 00A5B42422009F590024E00C /* uhabits.app */; - productType = "com.apple.product-type.application"; - }; - 00A5B43722009F5A0024E00C /* uhabitsTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00A5B44422009F5A0024E00C /* Build configuration list for PBXNativeTarget "uhabitsTests" */; - buildPhases = ( - 00A5B43422009F5A0024E00C /* Sources */, - 00A5B43522009F5A0024E00C /* Frameworks */, - 00A5B43622009F5A0024E00C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00A5B43A22009F5A0024E00C /* PBXTargetDependency */, - ); - name = uhabitsTests; - productName = uhabitsTests; - productReference = 00A5B43822009F5A0024E00C /* uhabitsTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 00A5B41C22009F590024E00C /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1010; - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = Loop; - TargetAttributes = { - 00A5B42322009F590024E00C = { - CreatedOnToolsVersion = 10.1; - }; - 00A5B43722009F5A0024E00C = { - CreatedOnToolsVersion = 10.1; - TestTargetID = 00A5B42322009F590024E00C; - }; - }; - }; - buildConfigurationList = 00A5B41F22009F590024E00C /* Build configuration list for PBXProject "uhabits" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 00A5B41B22009F590024E00C; - productRefGroup = 00A5B42522009F590024E00C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 00A5B42322009F590024E00C /* uhabits */, - 00A5B43722009F5A0024E00C /* uhabitsTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00A5B42222009F590024E00C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00C0C6BD22465F65003D8AF0 /* fonts in Resources */, - 00C0C6BE22465F65003D8AF0 /* databases in Resources */, - 00C0C6BF22465F65003D8AF0 /* migrations in Resources */, - 00A5B42F22009F5A0024E00C /* Assets.xcassets in Resources */, - 00D48BD12200A31300CC4527 /* Launch.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 00A5B43622009F5A0024E00C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00C0C6D32247134F003D8AF0 /* Build Core Module */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Build Core Module"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd ../uhabits-core-legacy\n../gradlew linkDebugFrameworkIos\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00A5B42022009F590024E00C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00C0C6D122470705003D8AF0 /* ComponentView.swift in Sources */, - 00C0C6E0224A3602003D8AF0 /* DetailScreenController.swift in Sources */, - 00A5B42A22009F590024E00C /* MainScreenController.swift in Sources */, - 00A5B42822009F590024E00C /* AppDelegate.swift in Sources */, - 00D48BD32200AC1600CC4527 /* EditHabitController.swift in Sources */, - 006EFE50225432B8008464E0 /* AboutScreenController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 00A5B43422009F5A0024E00C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 005166D12471C02D00C6CFD6 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00A5B43A22009F5A0024E00C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 00A5B42322009F590024E00C /* uhabits */; - targetProxy = 00A5B43922009F5A0024E00C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 00A5B43F22009F5A0024E00C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 12.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 00A5B44022009F5A0024E00C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 12.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 00A5B44222009F5A0024E00C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = R5YTHGE3PS; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PROJECT_DIR)/../uhabits-core-legacy/build/bin/ios/debugFramework/", - "$(PROJECT_DIR)", - ); - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../uhabits-core-legacy/build/bin/ios/debugFramework/LoopHabitTracker.framework/Headers/"; - INFOPLIST_FILE = Application/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.isoron.uhabits; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = Application/BridgingHeader.h; - SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 00A5B44322009F5A0024E00C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = R5YTHGE3PS; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PROJECT_DIR)/../uhabits-core-legacy/build/bin/ios/debugFramework/", - "$(PROJECT_DIR)", - ); - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../uhabits-core-legacy/build/bin/ios/debugFramework/LoopHabitTracker.framework/Headers/"; - INFOPLIST_FILE = Application/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.isoron.uhabits; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = Application/BridgingHeader.h; - SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 00A5B44522009F5A0024E00C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = R5YTHGE3PS; - FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/"; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/"; - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.isoron.uhabitsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/uhabits.app/uhabits"; - }; - name = Debug; - }; - 00A5B44622009F5A0024E00C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = R5YTHGE3PS; - FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/"; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/"; - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.isoron.uhabitsTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/uhabits.app/uhabits"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00A5B41F22009F590024E00C /* Build configuration list for PBXProject "uhabits" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00A5B43F22009F5A0024E00C /* Debug */, - 00A5B44022009F5A0024E00C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00A5B44122009F5A0024E00C /* Build configuration list for PBXNativeTarget "uhabits" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00A5B44222009F5A0024E00C /* Debug */, - 00A5B44322009F5A0024E00C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 00A5B44422009F5A0024E00C /* Build configuration list for PBXNativeTarget "uhabitsTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00A5B44522009F5A0024E00C /* Debug */, - 00A5B44622009F5A0024E00C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 00A5B41C22009F590024E00C /* Project object */; -} diff --git a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 156ec4d58..000000000 --- a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index 0c67376eb..000000000 --- a/uhabits-ios/uhabits.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/uhabits-server/.gitignore b/uhabits-server/.gitignore deleted file mode 100644 index fae6b746e..000000000 --- a/uhabits-server/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/.gradle -/.idea -/out -/build -*.iml -*.ipr -*.iws diff --git a/uhabits-server/Dockerfile b/uhabits-server/Dockerfile deleted file mode 100644 index 34d77779a..000000000 --- a/uhabits-server/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM openjdk:8-jre-alpine -RUN mkdir /app -COPY uhabits-server.jar /app/uhabits-server.jar -ENV LOOP_REPO_PATH /data/ -WORKDIR /app -CMD ["java", \ - "-server", \ - "-XX:MaxGCPauseMillis=100", \ - "-XX:+UseStringDeduplication", \ - "-jar", \ - "uhabits-server.jar"] \ No newline at end of file diff --git a/uhabits-server/build.gradle.kts b/uhabits-server/build.gradle.kts deleted file mode 100644 index 9f2fda06a..000000000 --- a/uhabits-server/build.gradle.kts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar - -plugins { - application - id("kotlin") - id("com.github.johnrengelman.shadow") version "8.1.1" -} - -kotlin { - jvmToolchain(17) -} - - -application { - group = "org.isoron.uhabits" - version = "0.0.1" - mainClass.set("io.ktor.server.netty.EngineMain") -} - -dependencies { - val ktorVersion = "1.6.8" - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22") - implementation("io.ktor:ktor-server-netty:$ktorVersion") - implementation("ch.qos.logback:logback-classic:1.4.14") - implementation("io.ktor:ktor-server-core:$ktorVersion") - implementation("io.ktor:ktor-html-builder:$ktorVersion") - implementation("io.ktor:ktor-jackson:$ktorVersion") - implementation("org.jetbrains:kotlin-css-jvm:1.0.0-pre.148-kotlin-1.4.30") - implementation("io.prometheus:simpleclient:0.16.0") - implementation("io.prometheus:simpleclient_httpserver:0.16.0") - implementation("io.prometheus:simpleclient_hotspot:0.16.0") - testImplementation("io.ktor:ktor-server-tests:$ktorVersion") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.2.1") - testImplementation(kotlin("test")) - testImplementation(kotlin("test-junit")) -} - -tasks.withType { - archiveBaseName.set("uhabits-server") - archiveClassifier.set("") - archiveVersion.set("") -} - diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncData.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncData.kt deleted file mode 100644 index d60319d6e..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncData.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync - -import com.fasterxml.jackson.databind.* - -data class SyncData( - val version: Long, - val content: String -) - -data class RegisterReponse(val key: String) - -data class GetDataVersionResponse(val version: Long) - -val defaultMapper = ObjectMapper() -fun SyncData.toJson(): String = defaultMapper.writeValueAsString(this) -fun GetDataVersionResponse.toJson(): String = defaultMapper.writeValueAsString(this) \ No newline at end of file diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncException.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncException.kt deleted file mode 100644 index 30689ad86..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/SyncException.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync - -open class SyncException: RuntimeException() - -class KeyNotFoundException: SyncException() - -class ServiceUnavailable: SyncException() - -class EditConflictException: SyncException() \ No newline at end of file diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/LinkModule.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/LinkModule.kt deleted file mode 100644 index 32ed88349..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/LinkModule.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import io.ktor.application.* -import io.ktor.http.* -import io.ktor.request.* -import io.ktor.response.* -import io.ktor.routing.* -import org.isoron.uhabits.sync.* - -data class LinkRegisterRequestData( - val syncKey: String, -) -fun LinkRegisterRequestData.toJson(): String = defaultMapper.writeValueAsString(this) - -fun Routing.links(app: SyncApplication) { - post("/links") { - try { - val data = call.receive() - val link = app.server.registerLink(data.syncKey) - call.respond(HttpStatusCode.OK, link) - } catch (e: ServiceUnavailable) { - call.respond(HttpStatusCode.ServiceUnavailable) - } - } - get("/links/{id}") { - try { - val id = call.parameters["id"]!! - val link = app.server.getLink(id) - call.respond(HttpStatusCode.OK, link) - } catch (e: ServiceUnavailable) { - call.respond(HttpStatusCode.ServiceUnavailable) - } catch (e: KeyNotFoundException) { - call.respond(HttpStatusCode.NotFound) - } - } -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/MetricsModule.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/MetricsModule.kt deleted file mode 100644 index f367dd552..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/MetricsModule.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import io.ktor.application.* -import io.ktor.http.* -import io.ktor.response.* -import io.ktor.routing.* -import io.prometheus.client.* -import io.prometheus.client.exporter.common.* -import io.prometheus.client.hotspot.* -import java.io.* - - -fun Routing.metrics(app: SyncApplication) { - // Register JVM metrics - DefaultExports.initialize() - - get("/metrics") { - val writer = StringWriter() - TextFormat.write004( - writer, - CollectorRegistry.defaultRegistry.filteredMetricFamilySamples(setOf()), - ) - call.respond(HttpStatusCode.OK, writer.toString()) - } -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/RegistrationModule.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/RegistrationModule.kt deleted file mode 100644 index 1501b243a..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/RegistrationModule.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import io.ktor.application.* -import io.ktor.http.* -import io.ktor.response.* -import io.ktor.routing.* -import org.isoron.uhabits.sync.* - -fun Routing.registration(app: SyncApplication) { - post("/register") { - try { - val key = app.server.register() - call.respond(HttpStatusCode.OK, RegisterReponse(key)) - } catch (e: ServiceUnavailable) { - call.respond(HttpStatusCode.ServiceUnavailable) - } - } -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/StorageModule.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/StorageModule.kt deleted file mode 100644 index 3e67d359c..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/StorageModule.kt +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import io.ktor.application.* -import io.ktor.http.* -import io.ktor.request.* -import io.ktor.response.* -import io.ktor.routing.* -import org.isoron.uhabits.sync.* - -fun Routing.storage(app: SyncApplication) { - route("/db/{key}") { - get { - val key = call.parameters["key"]!! - try { - val data = app.server.getData(key) - call.respond(HttpStatusCode.OK, data) - } catch(e: KeyNotFoundException) { - call.respond(HttpStatusCode.NotFound) - } - } - put { - val key = call.parameters["key"]!! - val data = call.receive() - try { - app.server.put(key, data) - call.respond(HttpStatusCode.OK) - } catch (e: KeyNotFoundException) { - call.respond(HttpStatusCode.NotFound) - } catch (e: EditConflictException) { - call.respond(HttpStatusCode.Conflict) - } - } - get("version") { - val key = call.parameters["key"]!! - try { - val version = app.server.getDataVersion(key) - call.respond(HttpStatusCode.OK, GetDataVersionResponse(version)) - } catch(e: KeyNotFoundException) { - call.respond(HttpStatusCode.NotFound) - } - } - } -} \ No newline at end of file diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/SyncApplication.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/SyncApplication.kt deleted file mode 100644 index 71344b16f..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/app/SyncApplication.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import io.ktor.application.* -import io.ktor.features.* -import io.ktor.jackson.* -import io.ktor.routing.* -import org.isoron.uhabits.sync.* -import org.isoron.uhabits.sync.repository.* -import org.isoron.uhabits.sync.server.* -import java.nio.file.* - -fun Application.main() = SyncApplication().apply { main() } - -val REPOSITORY_PATH: Path = Paths.get(System.getenv("LOOP_REPO_PATH")!!) - -class SyncApplication( - val server: AbstractSyncServer = RepositorySyncServer( - FileRepository(REPOSITORY_PATH), - ), -) { - fun Application.main() { - install(DefaultHeaders) - install(CallLogging) - install(ContentNegotiation) { - jackson { } - } - routing { - registration(this@SyncApplication) - storage(this@SyncApplication) - links(this@SyncApplication) - metrics(this@SyncApplication) - } - } -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/Link.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/Link.kt deleted file mode 100644 index 9adf50614..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/Link.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.links - -import org.isoron.uhabits.sync.defaultMapper - -/** - * A Link maps a public URL (such as https://sync.loophabits.org/links/B752A6) - * to a synchronization key. They are used to transfer sync keys between devices - * without ever exposing the original sync key. Unlike sync keys, links expire - * after a few minutes. - */ -data class Link( - val id: String, - val syncKey: String, - val createdAt: Long, -) - -fun Link.toJson(): String = defaultMapper.writeValueAsString(this) diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/LinkManager.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/LinkManager.kt deleted file mode 100644 index 4b153861c..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/links/LinkManager.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.links - -import org.isoron.uhabits.sync.* -import org.isoron.uhabits.sync.utils.* - -class LinkManager( - private val timeoutInMillis: Long = 900_000, -) { - private val links = HashMap() - - fun register(syncKey: String): Link { - val link = Link( - id = randomString(64), - syncKey = syncKey, - createdAt = System.currentTimeMillis(), - ) - links[link.id] = link - return link - } - - fun get(id: String): Link { - val link = links[id] ?: throw KeyNotFoundException() - val ageInMillis = System.currentTimeMillis() - link.createdAt - if (ageInMillis > timeoutInMillis) { - links.remove(id) - throw KeyNotFoundException() - } - return link - } -} \ No newline at end of file diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/FileRepository.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/FileRepository.kt deleted file mode 100644 index 1faf93fc7..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/FileRepository.kt +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.repository - -import org.isoron.uhabits.sync.* -import java.io.* -import java.nio.file.* - -class FileRepository( - private val basepath: Path, -) : Repository { - - override suspend fun put(key: String, data: SyncData) { - // Create directory - val dataPath = key.toDataPath() - val dataDir = dataPath.toFile() - dataDir.mkdirs() - - // Create metadata - val metadataFile = dataPath.resolve("version").toFile() - metadataFile.outputStream().use { outputStream -> - PrintWriter(outputStream).use { printWriter -> - printWriter.print(data.version) - } - } - - // Create data file - val dataFile = dataPath.resolve("content").toFile() - dataFile.outputStream().use { outputStream -> - PrintWriter(outputStream).use { printWriter -> - printWriter.print(data.content) - } - } - } - - override suspend fun get(key: String): SyncData { - val dataPath = key.toDataPath() - val contentFile = dataPath.resolve("content").toFile() - val versionFile = dataPath.resolve("version").toFile() - if (!contentFile.exists() || !versionFile.exists()) { - throw KeyNotFoundException() - } - val version = versionFile.readText().trim().toLong() - return SyncData(version, contentFile.readText()) - } - - override suspend fun contains(key: String): Boolean { - val dataPath = key.toDataPath() - val versionFile = dataPath.resolve("version").toFile() - return versionFile.exists() - } - - private fun String.toDataPath(): Path { - return basepath.resolve("${this[0]}/${this[1]}/${this[2]}/${this[3]}/$this") - } -} \ No newline at end of file diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/Repository.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/Repository.kt deleted file mode 100644 index 651ca679f..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/repository/Repository.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.repository - -import org.isoron.uhabits.sync.KeyNotFoundException -import org.isoron.uhabits.sync.SyncData - -/** - * A class that knows how to store and retrieve a large number of [SyncData] items. - */ -interface Repository { - /** - * Stores a data item, under the provided key. The item can be later retrieved with [get]. - * Replaces existing items silently. - */ - suspend fun put(key: String, data: SyncData) - - /** - * Retrieves a data item that was previously stored using [put]. - * @throws KeyNotFoundException If no such key exists. - */ - suspend fun get(key: String): SyncData - - /** - * Returns true if the repository contains a given key. - */ - suspend fun contains(key: String): Boolean -} - diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/AbstractSyncServer.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/AbstractSyncServer.kt deleted file mode 100644 index bd18c7b30..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/AbstractSyncServer.kt +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.server - -import org.isoron.uhabits.sync.* -import org.isoron.uhabits.sync.links.* - -interface AbstractSyncServer { - /** - * Generates and returns a new sync key, which can be used to store and retrive - * data. - * - * @throws ServiceUnavailable If key cannot be generated at this time, for example, - * due to insufficient server resources, temporary server maintenance or network problems. - */ - suspend fun register(): String - - /** - * Replaces data for a given sync key. - * - * @throws KeyNotFoundException If key is not found - * @throws EditConflictException If the version of the data provided is not - * exactly the current data version plus one. - * @throws ServiceUnavailable If data cannot be put at this time, for example, due - * to insufficient server resources or network problems. - */ - suspend fun put(key: String, newData: SyncData) - - /** - * Returns data for a given sync key. - * - * @throws KeyNotFoundException If key is not found - * @throws ServiceUnavailable If data cannot be retrieved at this time, for example, due - * to insufficient server resources or network problems. - */ - suspend fun getData(key: String): SyncData - - /** - * Returns the current data version for the given key - * - * @throws KeyNotFoundException If key is not found - * @throws ServiceUnavailable If data cannot be retrieved at this time, for example, due - * to insufficient server resources or network problems. - */ - suspend fun getDataVersion(key: String): Long - - /** - * Registers a new temporary link (mapping to the given sync key) and returns it. - * - * @throws ServiceUnavailable If the link cannot be generated at this time due to - * insufficient server resources. - */ - suspend fun registerLink(syncKey: String): Link - - /** - * Retrieves the syncKey associated with the given link id. - * - * @throws ServiceUnavailable If the link cannot be resolved at this time due to - * insufficient server resources. - * @throws KeyNotFoundException If the link id cannot be found, or if it has - * expired. - */ - suspend fun getLink(id: String): Link -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServer.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServer.kt deleted file mode 100644 index cdde98d91..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServer.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.server - -import io.prometheus.client.* -import org.isoron.uhabits.sync.* -import org.isoron.uhabits.sync.links.* -import org.isoron.uhabits.sync.repository.* -import org.isoron.uhabits.sync.utils.* - -/** - * An AbstractSyncServer that stores all data in a [Repository]. - */ -class RepositorySyncServer( - private val repo: Repository, - private val linkManager: LinkManager = LinkManager(), -) : AbstractSyncServer { - - private val requestsCounter: Counter = Counter.build() - .name("requests_total") - .help("Total number of requests") - .labelNames("method") - .register() - - override suspend fun register(): String { - requestsCounter.labels("register").inc() - val key = generateKey() - repo.put(key, SyncData(0, "")) - return key - } - - override suspend fun put(key: String, newData: SyncData) { - requestsCounter.labels("put").inc() - if (!repo.contains(key)) { - throw KeyNotFoundException() - } - val prevData = repo.get(key) - if (newData.version != prevData.version + 1) { - throw EditConflictException() - } - repo.put(key, newData) - } - - override suspend fun getData(key: String): SyncData { - requestsCounter.labels("getData").inc() - if (!repo.contains(key)) { - throw KeyNotFoundException() - } - return repo.get(key) - } - - override suspend fun getDataVersion(key: String): Long { - requestsCounter.labels("getDataVersion").inc() - if (!repo.contains(key)) { - throw KeyNotFoundException() - } - return repo.get(key).version - } - - override suspend fun registerLink(syncKey: String): Link { - requestsCounter.labels("registerLink").inc() - return linkManager.register(syncKey) - } - - override suspend fun getLink(id: String): Link { - requestsCounter.labels("getLink").inc() - return linkManager.get(id) - } - - private suspend fun generateKey(): String { - while (true) { - val key = randomString(64) - if (!repo.contains(key)) - return key - } - } -} diff --git a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/utils/String.kt b/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/utils/String.kt deleted file mode 100644 index da043764f..000000000 --- a/uhabits-server/src/main/kotlin/org/isoron/uhabits/sync/utils/String.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.utils - -import java.util.* -import kotlin.streams.* - -fun randomString(length: Long): String { - val chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" - return Random().ints(length, 0, chars.length) - .asSequence() - .map(chars::get) - .joinToString("") -} \ No newline at end of file diff --git a/uhabits-server/src/main/resources/application.conf b/uhabits-server/src/main/resources/application.conf deleted file mode 100644 index d5b282277..000000000 --- a/uhabits-server/src/main/resources/application.conf +++ /dev/null @@ -1,9 +0,0 @@ -ktor { - deployment { - port = 8080 - port = ${?PORT} - } - application { - modules = [ org.isoron.uhabits.sync.app.SyncApplicationKt.main ] - } -} diff --git a/uhabits-server/src/main/resources/logback.xml b/uhabits-server/src/main/resources/logback.xml deleted file mode 100644 index 9a9dfca31..000000000 --- a/uhabits-server/src/main/resources/logback.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/BaseApplicationTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/BaseApplicationTest.kt deleted file mode 100644 index 3c1aa33dd..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/BaseApplicationTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import org.mockito.kotlin.mock -import io.ktor.application.* -import org.isoron.uhabits.sync.server.* - -open class BaseApplicationTest { - - protected val server: AbstractSyncServer = mock() - - protected fun app(): Application.() -> Unit = { - SyncApplication(server).apply { - main() - } - } -} diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/LinksModuleTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/LinksModuleTest.kt deleted file mode 100644 index 7ee49aa14..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/LinksModuleTest.kt +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import org.mockito.kotlin.whenever -import io.ktor.http.ContentType -import io.ktor.http.HttpHeaders -import io.ktor.http.HttpMethod -import io.ktor.http.HttpStatusCode -import io.ktor.server.testing.TestApplicationCall -import io.ktor.server.testing.TestApplicationEngine -import io.ktor.server.testing.handleRequest -import io.ktor.server.testing.setBody -import io.ktor.server.testing.withTestApplication -import kotlinx.coroutines.runBlocking -import org.isoron.uhabits.sync.KeyNotFoundException -import org.isoron.uhabits.sync.links.Link -import org.isoron.uhabits.sync.links.toJson -import org.junit.Test -import kotlin.test.assertEquals - -class LinksModuleTest : BaseApplicationTest() { - private val link = Link( - id = "ABC123", - syncKey = "SECRET", - createdAt = System.currentTimeMillis(), - ) - - @Test - fun `when POST is successful should return link`(): Unit = runBlocking { - whenever(server.registerLink("SECRET")).thenReturn(link) - withTestApplication(app()) { - handlePost("/links", LinkRegisterRequestData(syncKey = "SECRET")).apply { - assertEquals(HttpStatusCode.OK, response.status()) - assertEquals(link.toJson(), response.content) - } - } - } - - @Test - fun `when GET is successful should return link`(): Unit = runBlocking { - whenever(server.getLink("ABC123")).thenReturn(link) - withTestApplication(app()) { - handleGet("/links/ABC123").apply { - assertEquals(HttpStatusCode.OK, response.status()) - assertEquals(link.toJson(), response.content) - } - } - } - - @Test - fun `GET with invalid link id should return 404`(): Unit = runBlocking { - whenever(server.getLink("ABC123")).thenThrow(KeyNotFoundException()) - withTestApplication(app()) { - handleGet("/links/ABC123").apply { - assertEquals(HttpStatusCode.NotFound, response.status()) - } - } - } - - private fun TestApplicationEngine.handlePost( - url: String, - data: LinkRegisterRequestData - ): TestApplicationCall { - return handleRequest(HttpMethod.Post, url) { - addHeader(HttpHeaders.ContentType, ContentType.Application.Json.toString()) - setBody(data.toJson()) - } - } - - private fun TestApplicationEngine.handleGet(url: String): TestApplicationCall { - return handleRequest(HttpMethod.Get, url) - } -} diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/RegistrationModuleTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/RegistrationModuleTest.kt deleted file mode 100644 index 8b5710743..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/RegistrationModuleTest.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import org.mockito.kotlin.whenever -import io.ktor.http.HttpMethod -import io.ktor.http.HttpStatusCode -import io.ktor.server.testing.handleRequest -import io.ktor.server.testing.withTestApplication -import kotlinx.coroutines.runBlocking -import org.isoron.uhabits.sync.ServiceUnavailable -import org.junit.Test -import kotlin.test.assertEquals - -class RegistrationModuleTest : BaseApplicationTest() { - @Test - fun `when register succeeds should return generated key`(): Unit = runBlocking { - whenever(server.register()).thenReturn("ABCDEF") - withTestApplication(app()) { - val call = handleRequest(HttpMethod.Post, "/register") - assertEquals(HttpStatusCode.OK, call.response.status()) - assertEquals("{\"key\":\"ABCDEF\"}", call.response.content) - } - } - - @Test - fun `when registration is unavailable should return 503`(): Unit = runBlocking { - whenever(server.register()).thenThrow(ServiceUnavailable()) - withTestApplication(app()) { - val call = handleRequest(HttpMethod.Post, "/register") - assertEquals(HttpStatusCode.ServiceUnavailable, call.response.status()) - } - } -} diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/StorageModuleTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/StorageModuleTest.kt deleted file mode 100644 index 36872a194..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/app/StorageModuleTest.kt +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.app - -import org.mockito.kotlin.verify -import org.mockito.kotlin.whenever -import io.ktor.http.* -import io.ktor.server.testing.* -import kotlinx.coroutines.* -import org.isoron.uhabits.sync.* -import org.junit.Test -import kotlin.test.* - -class StorageModuleTest : BaseApplicationTest() { - private val data1 = SyncData(1, "Hello world") - private val data2 = SyncData(2, "Hello new world") - - @Test - fun `when get succeeds should return data`(): Unit = runBlocking { - whenever(server.getData("k1")).thenReturn(data1) - withTestApplication(app()) { - handleGet("/db/k1").apply { - assertEquals(HttpStatusCode.OK, response.status()) - assertEquals(data1.toJson(), response.content) - } - } - } - - @Test - fun `when get version succeeds should return version`(): Unit = runBlocking { - whenever(server.getDataVersion("k1")).thenReturn(30) - withTestApplication(app()) { - handleGet("/db/k1/version").apply { - assertEquals(HttpStatusCode.OK, response.status()) - assertEquals(GetDataVersionResponse(30).toJson(), response.content) - } - } - } - - @Test - fun `when get with invalid key should return 404`(): Unit = runBlocking { - whenever(server.getData("k1")).thenThrow(KeyNotFoundException()) - withTestApplication(app()) { - handleGet("/db/k1").apply { - assertEquals(HttpStatusCode.NotFound, response.status()) - } - } - } - - - @Test - fun `when put succeeds should return OK`(): Unit = runBlocking { - withTestApplication(app()) { - handlePut("/db/k1", data1).apply { - runBlocking { - assertEquals(HttpStatusCode.OK, response.status()) - verify(server).put("k1", data1) - } - } - } - } - - @Test - fun `when put with invalid key should return 404`(): Unit = runBlocking { - whenever(server.put("k1", data1)).thenThrow(KeyNotFoundException()) - withTestApplication(app()) { - handlePut("/db/k1", data1).apply { - assertEquals(HttpStatusCode.NotFound, response.status()) - } - } - } - - @Test - fun `when put with invalid version should return 409 and current data`(): Unit = runBlocking { - whenever(server.put("k1", data1)).thenThrow(EditConflictException()) - whenever(server.getData("k1")).thenReturn(data2) - withTestApplication(app()) { - handlePut("/db/k1", data1).apply { - assertEquals(HttpStatusCode.Conflict, response.status()) - } - } - } - - private fun TestApplicationEngine.handlePut(url: String, data: SyncData): TestApplicationCall { - return handleRequest(HttpMethod.Put, url) { - addHeader(HttpHeaders.ContentType, ContentType.Application.Json.toString()) - setBody(data.toJson()) - } - } - - private fun TestApplicationEngine.handleGet(url: String): TestApplicationCall { - return handleRequest(HttpMethod.Get, url) - } -} diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/links/LinkManagerTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/links/LinkManagerTest.kt deleted file mode 100644 index d1eb88c24..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/links/LinkManagerTest.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.links - -import org.isoron.uhabits.sync.* -import org.junit.Test -import kotlin.test.* - -class LinkManagerTest { - - @Test - fun testUsage() { - val manager = LinkManager(timeoutInMillis = 250) - val originalLink = manager.register(syncKey = "SECRET") - val retrievedLink = manager.get(originalLink.id) - assertEquals(originalLink, retrievedLink) - - Thread.sleep(260) // wait until expiration - assertFailsWith { - manager.get(originalLink.id) - } - - assertFailsWith { - manager.get("INVALID") - } - } -} \ No newline at end of file diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/repository/FileRepositoryTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/repository/FileRepositoryTest.kt deleted file mode 100644 index 53ce3a8c6..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/repository/FileRepositoryTest.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - - -@file:Suppress("BlockingMethodInNonBlockingContext") - -package org.isoron.uhabits.sync.repository - -import kotlinx.coroutines.* -import org.hamcrest.CoreMatchers.* -import org.isoron.uhabits.sync.* -import org.junit.* -import org.junit.Assert.* -import java.nio.file.* - -class FileRepositoryTest { - - @Test - fun testUsage() = runBlocking { - val tempdir = Files.createTempDirectory("db")!! - val repo = FileRepository(tempdir) - - val original = SyncData(10, "Hello world") - repo.put("abcdefg", original) - - val metaPath = tempdir.resolve("a/b/c/d/abcdefg/version") - assertTrue("$metaPath should exist", Files.exists(metaPath)) - assertEquals("10", metaPath.toFile().readText()) - - val dataPath = tempdir.resolve("a/b/c/d/abcdefg/content") - assertTrue("$dataPath should exist", Files.exists(dataPath)) - assertEquals("Hello world", dataPath.toFile().readText()) - - val retrieved = repo.get("abcdefg") - assertThat(retrieved, equalTo(original)) - } -} \ No newline at end of file diff --git a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServerTest.kt b/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServerTest.kt deleted file mode 100644 index ca1576bda..000000000 --- a/uhabits-server/src/test/kotlin/org/isoron/uhabits/sync/server/RepositorySyncServerTest.kt +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2016-2021 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.sync.server - -import kotlinx.coroutines.* -import org.isoron.uhabits.sync.* -import org.isoron.uhabits.sync.repository.* -import org.junit.Test -import java.nio.file.* -import kotlin.test.* - -class RepositorySyncServerTest { - - private val tempdir = Files.createTempDirectory("db") - private val server = RepositorySyncServer(FileRepository(tempdir)) - private val key = runBlocking { server.register() } - - @Test - fun testUsage(): Unit = runBlocking { - val data0 = SyncData(0, "") - assertEquals(server.getData(key), data0) - - val data1 = SyncData(1, "Hello world") - server.put(key, data1) - assertEquals(server.getData(key), data1) - - val data2 = SyncData(2, "Hello new world") - server.put(key, data2) - assertEquals(server.getData(key), data2) - - assertFailsWith { - server.put(key, data2) - } - - assertFailsWith { - server.getData("INVALID") - } - - assertFailsWith { - server.put("INVALID", data0) - } - } -} \ No newline at end of file diff --git a/uhabits-web/.babelrc b/uhabits-web/.babelrc deleted file mode 100644 index e9a907edb..000000000 --- a/uhabits-web/.babelrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "presets": [ - ["env", { "modules": false }], - "react" - ] -} diff --git a/uhabits-web/Makefile b/uhabits-web/Makefile deleted file mode 100644 index 69e7fb257..000000000 --- a/uhabits-web/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -test_bundle := build/test.js -node_modules := node_modules/.bin/mocha -core_dir := ../uhabits-core-legacy - -all: $(test_bundle) - -$(node_modules): - npm install - -core: - cd $(core_dir); ./gradlew --quiet jsMainClasses jsTestClasses - cp $(core_dir)/build/classes/kotlin/js/*/*.js node_modules/ - mkdir -p build/assets - rsync -a $(core_dir)/assets/main/ build/assets/ - rsync -a $(core_dir)/assets/test/ build/assets/ - -$(test_bundle): src/test/index.js core - mkdir -p build/lib build/test build/css - npx webpack -d --mode development --target web --output $@ $< - cp src/test/*html build/test - cp node_modules/mocha/mocha.css build/lib - cp node_modules/mocha/mocha.js build/lib - cp node_modules/sql.js/js/sql.js build/lib - cp node_modules/sprintf-js/dist/sprintf.min.js build/lib - -serve: - npx serve build/ - -clean: - rm -rf build - -distclean: clean - rm -rf node_modules - -.PHONY: test clean distclean core diff --git a/uhabits-web/package-lock.json b/uhabits-web/package-lock.json deleted file mode 100644 index 1333e8561..000000000 --- a/uhabits-web/package-lock.json +++ /dev/null @@ -1,6080 +0,0 @@ -{ - "name": "loop-habit-tracker", - "version": "2.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", - "dev": true - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", - "dev": true - }, - "arg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "dev": true, - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", - "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000957", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz", - "integrity": "sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", - "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "clipboardy": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz", - "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", - "dev": true, - "requires": { - "arch": "^2.1.0", - "execa": "^0.8.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", - "dev": true, - "requires": { - "mime-db": ">= 1.40.0 < 2" - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.124", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz", - "integrity": "sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w==" - }, - "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "requires": { - "punycode": "^1.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "kotlin": { - "version": "1.3.41", - "resolved": "https://registry.npmjs.org/kotlin/-/kotlin-1.3.41.tgz", - "integrity": "sha512-Lo3++B/8B/Eaht5mV5NFlwSDsRjAOh90haopf9YPP0YJcDWdFpQB9yyEucSfuqBSbioHCHx0+ZjQ4tVJ/mYhug==" - }, - "kotlin-test": { - "version": "1.3.41", - "resolved": "https://registry.npmjs.org/kotlin-test/-/kotlin-test-1.3.41.tgz", - "integrity": "sha512-6y5ANRWCXVXw9O14RXKandwr+PiZl3fGjm/07BfmXwTF5VrD5edJjA8tERUf612T35/dV8BAb6Yr/SJr8Q+X0g==", - "requires": { - "kotlin": "1.3.41" - } - }, - "kotlinx-coroutines-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/kotlinx-coroutines-core/-/kotlinx-coroutines-core-1.2.2.tgz", - "integrity": "sha512-03ZIn8jrqY98Ysz5K7JavRW+1KxDnw/P/eISH93SQBhioyKeT5sDxGNpoWcJeShJsY0SWymzbxOgQlKcnDJYWg==" - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", - "dev": true - }, - "serve": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/serve/-/serve-11.1.0.tgz", - "integrity": "sha512-+4wpDtOSS+4ZLyDWMxThutA3iOTawX2+yDovOI8cjOUOmemyvNlHyFAsezBlSgbZKTYChI3tzA1Mh0z6XZ62qA==", - "dev": true, - "requires": { - "@zeit/schemas": "2.6.0", - "ajv": "6.5.3", - "arg": "2.0.0", - "boxen": "1.3.0", - "chalk": "2.4.1", - "clipboardy": "1.2.3", - "compression": "1.7.3", - "serve-handler": "6.1.0", - "update-check": "1.5.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "serve-handler": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.0.tgz", - "integrity": "sha512-63N075Tn3PsFYcu0NVV7tb367UbiW3gnC+/50ohL4oqOhAG6bmbaWqiRcXQgbzqc0ALBjSAzg7VTfa0Qw4E3hA==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - } - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "sql.js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-0.5.0.tgz", - "integrity": "sha1-+IDeoYKAqEDkHfIgnclnQi36jYE=" - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "terser": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.4.tgz", - "integrity": "sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", - "dev": true, - "requires": { - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "webpack": { - "version": "4.39.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.1.tgz", - "integrity": "sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - }, - "webpack-cli": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", - "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } - } -} diff --git a/uhabits-web/package.json b/uhabits-web/package.json deleted file mode 100644 index 421742cd3..000000000 --- a/uhabits-web/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "loop-habit-tracker", - "version": "2.0.0", - "description": "App for creating and maintaining good habits", - "repository": { - "type": "git", - "url": "git@github.com:iSoron/uhabits.git" - }, - "main": "index.js", - "scripts": { - "compile": "webpack", - "test": "mocha" - }, - "keywords": [], - "author": "", - "license": "GPL-3.0-or-later", - "dependencies": { - "babel-core": "^6.26.3", - "babel-preset-env": "^1.7.0", - "babel-preset-react": "^6.24.1", - "kotlin": "^1.3.41", - "kotlin-test": "^1.3.41", - "kotlinx-coroutines-core": "^1.2.2", - "sprintf-js": "^1.1.2", - "sql.js": "^0.5.0" - }, - "devDependencies": { - "babel-loader": "^7.1.5", - "mocha": "^6.2.0", - "serve": "^11.1.0", - "webpack": "^4.39.1", - "webpack-cli": "^3.3.6" - } -} diff --git a/uhabits-web/src/main/index.js b/uhabits-web/src/main/index.js deleted file mode 100644 index a420803c0..000000000 --- a/uhabits-web/src/main/index.js +++ /dev/null @@ -1 +0,0 @@ -console.log('Hello World!'); diff --git a/uhabits-web/src/test/index.html b/uhabits-web/src/test/index.html deleted file mode 100644 index 5bfeb0601..000000000 --- a/uhabits-web/src/test/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - Mocha Tests - - - - - - - - - -   -   -   - -

    - - - - - diff --git a/uhabits-web/src/test/index.js b/uhabits-web/src/test/index.js deleted file mode 100644 index c9f32ca2f..000000000 --- a/uhabits-web/src/test/index.js +++ /dev/null @@ -1,3 +0,0 @@ -let assert = require('assert'); -let coreTest = require('uhabits-core-legacy_test'); -document.coreTest = coreTest; From abbfe87260e6ec5cecb61ea625c9cfe3b37158ab Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 21 Mar 2025 21:01:39 -0500 Subject: [PATCH 08/21] gradle: Remove deleted module --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 67dcdf9bd..b94153ae2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -10,4 +10,4 @@ pluginManagement { } } -include(":uhabits-android", ":uhabits-core", ":uhabits-server") +include(":uhabits-android", ":uhabits-core") From 4a0599fce425b58de5f5364bf61b67178c5d2cc0 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 21 Mar 2025 21:01:54 -0500 Subject: [PATCH 09/21] Update translations from Crowdin --- .../play/listings/ar-rSA/full-description.txt | 8 +- .../listings/ar-rSA/short-description.txt | 3 +- .../play/listings/bg-rBG/full-description.txt | 29 +++ .../listings/bg-rBG/short-description.txt | 1 + .../play/listings/de-rDE/full-description.txt | 14 +- .../listings/de-rDE/short-description.txt | 2 +- .../play/listings/el-rGR/full-description.txt | 29 +++ .../play/listings/eo-rUY/full-description.txt | 29 +++ .../play/listings/es-rES/full-description.txt | 2 +- .../play/listings/fi-rFI/full-description.txt | 29 +++ .../play/listings/gu-rIN/full-description.txt | 29 +++ .../listings/gu-rIN/short-description.txt | 1 + .../src/main/play/listings/gu-rIN/title.txt | 1 + .../play/listings/hi-rIN/full-description.txt | 29 +++ .../listings/hi-rIN/short-description.txt | 1 + .../play/listings/hr-rHR/full-description.txt | 29 +++ .../listings/hr-rHR/short-description.txt | 1 + .../play/listings/is-rIS/full-description.txt | 29 +++ .../listings/is-rIS/short-description.txt | 1 + .../src/main/play/listings/is-rIS/title.txt | 1 + .../play/listings/iw-rIL/full-description.txt | 24 +- .../listings/ja-rJP/short-description.txt | 2 +- .../play/listings/ka-rGE/full-description.txt | 29 +++ .../listings/ka-rGE/short-description.txt | 1 + .../src/main/play/listings/ka-rGE/title.txt | 1 + .../play/listings/ko-rKR/full-description.txt | 29 +++ .../listings/ko-rKR/short-description.txt | 2 +- .../play/listings/ml-rIN/full-description.txt | 29 +++ .../listings/ml-rIN/short-description.txt | 1 + .../src/main/play/listings/ml-rIN/title.txt | 1 + .../play/listings/no-rNO/full-description.txt | 29 +++ .../listings/no-rNO/short-description.txt | 1 + .../play/listings/ro-rRO/full-description.txt | 29 +++ .../listings/ro-rRO/short-description.txt | 1 + .../play/listings/sl-rSI/full-description.txt | 29 +++ .../listings/sl-rSI/short-description.txt | 1 + .../play/listings/ta-rIN/full-description.txt | 29 +++ .../listings/ta-rIN/short-description.txt | 1 + .../play/listings/tr-rTR/full-description.txt | 2 +- .../play/listings/zh-rCN/full-description.txt | 20 +- .../src/main/res/values-ar-rSA/strings.xml | 78 +++++-- .../src/main/res/values-ca-rES/strings.xml | 7 +- .../src/main/res/values-cs-rCZ/strings.xml | 125 ++++++---- .../src/main/res/values-de-rDE/strings.xml | 8 +- .../src/main/res/values-el-rGR/strings.xml | 103 +++++--- .../src/main/res/values-es-rES/strings.xml | 46 ++-- .../src/main/res/values-eu-rES/strings.xml | 16 ++ .../src/main/res/values-fa-rIR/strings.xml | 2 +- .../src/main/res/values-fi-rFI/strings.xml | 2 +- .../src/main/res/values-fr-rFR/strings.xml | 4 +- .../src/main/res/values-gu-rIN/strings.xml | 20 ++ .../src/main/res/values-hi-rIN/strings.xml | 49 ++-- .../src/main/res/values-hr-rHR/strings.xml | 65 ++++++ .../src/main/res/values-hu-rHU/strings.xml | 6 + .../src/main/res/values-is-rIS/strings.xml | 173 ++++++++++++++ .../src/main/res/values-it-rIT/strings.xml | 2 +- .../src/main/res/values-iw-rIL/strings.xml | 66 +++--- .../src/main/res/values-ja-rJP/strings.xml | 23 +- .../src/main/res/values-ka-rGE/strings.xml | 221 ++++++++++++++++++ .../src/main/res/values-ko-rKR/strings.xml | 32 ++- .../src/main/res/values-ml-rIN/strings.xml | 221 ++++++++++++++++++ .../src/main/res/values-nl-rNL/strings.xml | 12 + .../src/main/res/values-pl-rPL/strings.xml | 6 +- .../src/main/res/values-pt-rPT/strings.xml | 7 + .../src/main/res/values-ro-rRO/strings.xml | 38 ++- .../src/main/res/values-ru-rRU/strings.xml | 4 +- .../src/main/res/values-sk-rSK/strings.xml | 39 ++++ .../src/main/res/values-sl-rSI/strings.xml | 97 ++++++++ .../src/main/res/values-sr-rCS/strings.xml | 2 +- .../src/main/res/values-sr-rSP/strings.xml | 14 +- .../src/main/res/values-sv-rSE/strings.xml | 8 +- .../src/main/res/values-ta-rIN/strings.xml | 115 +++++++-- .../src/main/res/values-uk-rUA/strings.xml | 5 + .../src/main/res/values-vi-rVN/strings.xml | 2 +- .../src/main/res/values-zh-rCN/strings.xml | 22 +- .../src/main/res/values-zh-rTW/strings.xml | 6 + 76 files changed, 1908 insertions(+), 267 deletions(-) create mode 100644 uhabits-android/src/main/play/listings/bg-rBG/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/bg-rBG/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/el-rGR/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/eo-rUY/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/fi-rFI/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/gu-rIN/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/gu-rIN/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/gu-rIN/title.txt create mode 100644 uhabits-android/src/main/play/listings/hi-rIN/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/hi-rIN/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/hr-rHR/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/hr-rHR/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/is-rIS/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/is-rIS/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/is-rIS/title.txt create mode 100644 uhabits-android/src/main/play/listings/ka-rGE/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/ka-rGE/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/ka-rGE/title.txt create mode 100644 uhabits-android/src/main/play/listings/ko-rKR/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/ml-rIN/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/ml-rIN/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/ml-rIN/title.txt create mode 100644 uhabits-android/src/main/play/listings/no-rNO/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/no-rNO/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/ro-rRO/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/ro-rRO/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/sl-rSI/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/sl-rSI/short-description.txt create mode 100644 uhabits-android/src/main/play/listings/ta-rIN/full-description.txt create mode 100644 uhabits-android/src/main/play/listings/ta-rIN/short-description.txt create mode 100644 uhabits-android/src/main/res/values-gu-rIN/strings.xml create mode 100644 uhabits-android/src/main/res/values-is-rIS/strings.xml create mode 100644 uhabits-android/src/main/res/values-ka-rGE/strings.xml create mode 100644 uhabits-android/src/main/res/values-ml-rIN/strings.xml diff --git a/uhabits-android/src/main/play/listings/ar-rSA/full-description.txt b/uhabits-android/src/main/play/listings/ar-rSA/full-description.txt index 7b10b101c..9600ad2ed 100644 --- a/uhabits-android/src/main/play/listings/ar-rSA/full-description.txt +++ b/uhabits-android/src/main/play/listings/ar-rSA/full-description.txt @@ -1,4 +1,4 @@ -يساعدك Loop Habit Tracker على إنشاء عادات إيجابية طويلة المدى والحفاظ عليها في حياتك. تعطيكم الرسوم البيانية والإحصاءات التفصيلية صورة واضحة للكيفية التي تحسنت بها عاداتك مع مرور الوقت. التطبيق خالٍ تمامًا من الإعلانات ومفتوح المصدر ويحترم خصوصيتك. +يساعدك Loop Habit Tracker على إنشاء عادات إيجابية طويلة المدى والحفاظ عليها في حياتك. تمنحك المخططات والإحصاءات التفصيلية صورة واضحة عن مدى تحسن عاداتك بمرور الوقت. التطبيق خالٍ تمامًا من الإعلانات ومفتوح المصدر ويحترم خصوصيتك. واجهة جميلة وبسيطة يحتوي Loop على واجهة أنيقة وبسيطة وسهلة الاستخدام للغاية ، حتى للمستخدمين لأول مرة. تم تحسين التطبيق ليكون ذي سرعة عالية ، ويعمل التطبيق بشكل جيد حتى على الهواتف القديمة. @@ -19,11 +19,11 @@ إذا كنت تريد إجراء مزيد من التحليل لبياناتك ، أو نقلها إلى خدمة أخرى ، فإن Loop تسمح لك بتصديرها إلى جداول البيانات (CSV) أو إلى ملف قاعدة بيانات (SQLite). بالنسبة للمستخدمين المحترفين، يمكن إضافة علامات الاختيار من خلال تطبيقات أخرى ، مثل تاسكر. لا قيود -تتبع العديد من العادات كما يحلو لك. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. +تتبع العديد من العادات كما يحلو لك. لا تفرض Loop قيودًا مصطنعة على عدد العادات التي يمكنك ممارستها. جميع الميزات متاحة لجميع المستخدمين. لا توجد عمليات شراء داخل التطبيق. -Arabic +خالي تماما من الإعلانات ومفتوح المصدر لا توجد إعلانات أو إشعارات مزعجة أو أذونات تدخلية في هذا التطبيق ، ولن تكون هناك أبدًا. التطبيق مفتوح المصدر بالكامل (GPLv3). يعمل دون اتصال ويحترم خصوصيتك -Loop لا يتطلب اتصالاً بالإنترنت أو تسجيل حساب عبر الإنترنت. لا يتم إرسال البيانات السرية الخاصة بك إلى أي شخص. لا يتمكن المطورين ولا أي طرف ثالث من الوصول إليها. +لا يتطلب Loop اتصالاً بالإنترنت أو تسجيل حساب عبر الإنترنت. لا يتم إرسال البيانات السرية الخاصة بك إلى أي شخص. لا يتمكن المطورين ولا أي طرف ثالث من الوصول إليها. diff --git a/uhabits-android/src/main/play/listings/ar-rSA/short-description.txt b/uhabits-android/src/main/play/listings/ar-rSA/short-description.txt index 299961bd3..7b24c0765 100644 --- a/uhabits-android/src/main/play/listings/ar-rSA/short-description.txt +++ b/uhabits-android/src/main/play/listings/ar-rSA/short-description.txt @@ -1,2 +1 @@ -اخلق عادات جيدة وتابع تطورها مع مرور الوقت -(خالية من الإعلانات) +ربي عادات جيدة وتتبع تقدمها مع مرور الوقت (دون إعلانات) diff --git a/uhabits-android/src/main/play/listings/bg-rBG/full-description.txt b/uhabits-android/src/main/play/listings/bg-rBG/full-description.txt new file mode 100644 index 000000000..5f1e298b2 --- /dev/null +++ b/uhabits-android/src/main/play/listings/bg-rBG/full-description.txt @@ -0,0 +1,29 @@ +Loop Следене на навици ви помага да създавате и поддържате дългосрочни положителни навици във вашия живот. Подробни диаграми и статистики ви дават ясна картина как вашите навици са се подобрили във времето. Приложението е изцяло без реклами, с отворен код и зачита вашата поверителност. + +Красив, минималистичен и лек интерфейс +Loop има елегантен и минималистичен интерфейс, който е много лесен за използване, дори за нови потребители. Силно оптимизирано за скорост, приложението работи добре дори и на по-стари телефони. + +Сила на навиците +Loop има усъвършенствана формула за изчисляване на силата на вашите навици. Всяко повторение прави навика ви по-силен, а всеки пропуснат ден го прави по-слаб. Въпреки това, няколко пропуснати дни след продължителна поредица няма напълно да унищожат вашия напредък, за разлика от много други приложения, които следят поредици. + +Гъвкави графици +В допълнение на ежедневни навици, Loop поддържа навици с по-сложни графици, като 3 пъти седмично или през ден. + +Напомняния +Планирайте напомняния за да ви подсещат за вашите навици. Всеки навик може да си има собствено напомняне в избрано време от деня. Лесно потвърдете или отхвърлете вашия навик директно от известието. + +Приспособления +Напомняйте си за вашите навици винаги когато си отключите телефона. Цветни приспособления ви позволяват да следите навиците си директно от вашия начален екран без дори да отваряте приложението. + +Поемете контрол над вашите данни +Ако искате допълнително да анализирате вашите данни или да ги прехвърлите към друга услуга, Loop ви позволява да ги експортирате като електронни таблици (CSV) или като файл за база данни (SQLite). Напреднали потребители могат да добавят отметки от други приложения, като Tasker. + +Без ограничения +Следете толкова навика, колкото пожелаете. Loop не налага изкуствени ограничения на бройката навици, които може да имате. Всички функции са достъпни за всички потребители. Няма покупки в приложението. + +Изцяло без реклами и с отворен код +В това приложение няма реклами, досадни известия или натрапчиви разрешения, и никога няма да има. Приложението е изцяло с отворен код (GPLv3). + +Работи офлайн и уважава вашата поверителност +Loop не изисква интернет връзка или регистрация на онлайн акаунт Вашите поверителни данни никога не се изпращат на никого. Нито разработчиците, нито трети лица имат достъп до тях. + diff --git a/uhabits-android/src/main/play/listings/bg-rBG/short-description.txt b/uhabits-android/src/main/play/listings/bg-rBG/short-description.txt new file mode 100644 index 000000000..619226f67 --- /dev/null +++ b/uhabits-android/src/main/play/listings/bg-rBG/short-description.txt @@ -0,0 +1 @@ +Създайте добри навици и следете напредъка им във времето (без реклами) diff --git a/uhabits-android/src/main/play/listings/de-rDE/full-description.txt b/uhabits-android/src/main/play/listings/de-rDE/full-description.txt index d3705a7a8..4cc3cbcc8 100644 --- a/uhabits-android/src/main/play/listings/de-rDE/full-description.txt +++ b/uhabits-android/src/main/play/listings/de-rDE/full-description.txt @@ -1,6 +1,6 @@ -Loop Habit Tracker hilft dir dabei gute Gewohnheiten zu erlangen und sie ein Leben lang zu pflegen. Detaillierte Diagramme und Statistiken geben Aufschluss darüber, wie sich die Gewohnheiten über die Zeit verändern und verbessern. Die App ist werbefrei, open source und respektiert die Privatsphäre. +Loop Habit Tracker hilft dir dabei, positive Gewohnheiten in dein Leben zu integrieren und sie dauerhaft zu verfolgen. Detaillierte Diagramme und Statistiken geben Aufschluss darüber, wie sich die Gewohnheiten über die Zeit verändern und verbessern. Die App ist werbefrei, open source und respektiert die Privatsphäre. -Schöne, minimalistisch und übersichtliche Benutzeroberfläche +Schöne, minimalistische und übersichtliche Benutzeroberfläche Loop hat eine elegante und minimalistische Benutzeroberfläche, die selbst für Erstnutzer eine einfache Verwendung möglich macht. Dank vieler Geschwindigkeitsoptimierungen funktioniert die App auch auf älteren Geräten einwandfrei. Gewohnheitserfolge @@ -10,20 +10,20 @@ Loop berechnet mit einer ausgereiften Berechnungsart die Stärke der Gewohnheite Zusätzlich zu täglichen Gewohnheiten bietet Loop auch eine komplexere Zeitplanung an, wie zum Beispiel drei mal pro Woche oder jeden zweiten Tag. Erinnerungen -Benachrichtigungen können zeitlich konfiguriert und als Erinnerung verwendet werden. Für jede Gewohnheit kann eine individuelle Erinnerungen zu einer einstellbaren Tageszeit aktiviert werden. Die Gewohnheiten können dann einfach über die Benachrichtigung überprüft oder verworfen werden. +Benachrichtigungen können zeitlich konfiguriert und als Erinnerung verwendet werden. Für jede Gewohnheit kann eine individuelle Erinnerung zu einer einstellbaren Tageszeit aktiviert werden. Die Gewohnheit kann dann einfach über die Benachrichtigung abgehakt oder verworfen werden. Widgets -Denken Sie immer an Erinnerungen, Sie ihr Telefon entsperren. Mit farbenfrohen Widgets behalten Sie Ihre Gewohnheiten immer im Überblick, direkt auf dem Homescreen ihn die App zu öffnen. +Lassen Sie sich an Ihre Gewohnheiten erinnern, wenn Sie Ihr Telefon entsperren. Farbenfrohe Widgets ermöglichen es Ihnen, Ihre Gewohnheiten direkt von Ihrem Startbildschirm aus zu verfolgen, ohne die App zu öffnen. Behalten Sie die Kontrolle über Ihre Daten -Daten können zur weiteren Analyse, oder auch zum Verschieben zu einem weiteren Anbieter, als Tabelle (CSV) oder Datenbank (SQLite) exportiert werden. Power User können Häkchen durch andere Apps hinzufügen, wie zum Beispiel Tasker. +Wenn Sie Ihre Daten weiter analysieren oder zu einem anderen Dienst verschieben möchten, können Sie sie mit Loop als Tabelle (CSV) oder Datenbankdatei (SQLite) exportieren. Power-User können Häkchen durch andere Apps hinzufügen, wie zum Beispiel Tasker. Keine Einschränkungen Erstellen Sie so viele Gewohnheiten, wie Sie möchten. Loop setzt keinerlei Einschränkungen was die Anzahl der erstellbaren Gewohnheiten betrifft. Alle Funktionen sind für alle User verfügbar. Es gibt keine In-App-Käufe. Komplett werbefrei und open source -Loop beinhaltet keine Werbung, lästige Benachrichtigungen oder unnötige Berechtigungen - und wir so wird es auch immer bleiben. Die App ist komplett open source (GPLv3). +Es gibt keinerlei Werbung, lästige Benachrichtigungen oder aufdringliche Berechtigungen in dieser App – und das wird auch immer so bleiben. Die App ist komplett open source (GPLv3). Funktioniert offline und respektiert Ihre Privatsphäre -Loop benötigt keine Internetverbindung oder Online-Registrierung. Ihre privaten Daten werden nie an Dritte weitergegeben. Weder die Entwickler, noch Dritte haben Zugriff darauf. +Loop benötigt keine Internetverbindung oder Online-Registrierung. Ihre privaten Daten werden nie an Dritte weitergegeben. Weder die Entwickler noch Dritte haben darauf Zugriff. diff --git a/uhabits-android/src/main/play/listings/de-rDE/short-description.txt b/uhabits-android/src/main/play/listings/de-rDE/short-description.txt index 229fed76b..aee02875c 100644 --- a/uhabits-android/src/main/play/listings/de-rDE/short-description.txt +++ b/uhabits-android/src/main/play/listings/de-rDE/short-description.txt @@ -1 +1 @@ -Erlange gute Gewohnheiten und verfolge dessen Fortschritte (ohne Werbung) +Schaffe gute Gewohnheiten und verfolge ihre Fortschritte (ohne Werbung) diff --git a/uhabits-android/src/main/play/listings/el-rGR/full-description.txt b/uhabits-android/src/main/play/listings/el-rGR/full-description.txt new file mode 100644 index 000000000..76166d81b --- /dev/null +++ b/uhabits-android/src/main/play/listings/el-rGR/full-description.txt @@ -0,0 +1,29 @@ +Το Loop Habit Tracker σας βοηθά να δημιουργήσετε και να διατηρήσετε μακροπρόθεσμες θετικές συνήθειες στη ζωή σας. Λεπτομερή διαγράμματα και στατιστικά στοιχεία σας δίνουν μια σαφή εικόνα του πώς οι συνήθειές σας έχουν βελτιωθεί με την πάροδο του χρόνου. Η εφαρμογή είναι εντελώς χωρίς διαφημίσεις, ανοιχτού κώδικα και σέβεται το απόρρητό σας. + +Όμορφη, μινιμαλιστική και ελαφριά διεπαφή +Η εφαρμογή έχει ένα κομψό και μινιμαλιστικό περιβάλλον που είναι πολύ εύκολο στη χρήση, ακόμη και για τους χρήστες πρώτης φοράς. + +Σκόρ Συνηθειών +Η εφαρμογή έχει μια προηγμένη φόρμουλα για τον υπολογισμό της δύναμης των συνηθειών σας. Κάθε επανάληψη καθιστά τη συνήθειά σας ισχυρότερη και κάθε χαμένη μέρα καθιστά ασθενέστερη. Λίγες χαμένες ημέρες μετά από μια μεγάλη περίοδο, ωστόσο, δεν θα καταστρέψουν εντελώς την πρόοδό σας, σε αντίθεση με πολλές άλλες εφαρμογές τύπου don't-break-the-chain. + +Εύελικτα Προγράμματα +Εκτός από τις καθημερινές συνήθειες, το Loop υποστηρίζει συνήθειες με πιο σύνθετα προγράμματα, όπως 3 φορές την εβδομάδα ή κάθε δεύτερη μέρα. + +Υπενθυμίσεις +Προγραμματισμός ειδοποιήσεων για να σας υπενθυμίσουν τις συνήθειές σας. Κάθε συνήθεια μπορεί να έχει τη δική της υπενθύμιση, σε μια επιλεγμένη ώρα της ημέρας. Ελέγξτε εύκολα ή απορρίψτε τη συνήθειά σας απευθείας από την ειδοποίηση. + +Widget +Υπενθύμιση των συνηθειών σας κάθε φορά που ξεκλειδώνετε το τηλέφωνό σας. Πολύχρωμα widgets σας επιτρέπουν να παρακολουθείτε τις συνήθειές σας απευθείας από την αρχική οθόνη σας, χωρίς καν να ανοίξετε την εφαρμογή. + +Παρτε τον έλεγχο των δεδομένων σας +Αν θέλετε να αναλύσετε περαιτέρω τα δεδομένα σας, ή να τα μετακινήσετε σε άλλη υπηρεσία, Το Loop σας επιτρέπει να το εξάγετε σε υπολογιστικά φύλλα (CSV) ή σε αρχείο βάσης δεδομένων (SQLite). Για τους προχωρημένους χρήστες , τα checkmark ελέγχου μπορούν να προστεθούν και μέσω άλλων εφαρμογών, όπως το Tasker. + +Χωρίς περιορισμούς +Παρακολουθήστε όσες συνήθειες επιθυμείτε. Το Loop δεν επιβάλλει τεχνητά όρια στο πόσες συνήθειες μπορείτε να έχετε. Όλες οι δυνατότητες είναι διαθέσιμες σε όλους τους χρήστες. Δεν υπάρχουν αγορές εντός της εφαρμογής. + +Πλήρως χωρίς διαφημίσεις και ανοικτού κώδικα +Δεν υπάρχουν διαφημίσεις, ενοχλητικές ειδοποιήσεις ή παρεμβατικά δικαιώματα σε αυτήν την εφαρμογή, και δεν θα υπάρξουν ποτέ. Η εφαρμογή είναι εντελώς ανοιχτού κώδικα (GPLv3). + +Δουλέυει και χωρίς σύνδεση και σέβεται την ιδιωτικότητα σας +Η εφαρμογή δεν απαιτεί σύνδεση στο διαδίκτυο ή εγγραφή online λογαριασμού. Τα εμπιστευτικά δεδομένα σας δεν αποστέλλονται ποτέ σε κανέναν. Ούτε οι προγραμματιστές ούτε τρίτοι έχουν πρόσβαση σε αυτό. + diff --git a/uhabits-android/src/main/play/listings/eo-rUY/full-description.txt b/uhabits-android/src/main/play/listings/eo-rUY/full-description.txt new file mode 100644 index 000000000..603cc7ca5 --- /dev/null +++ b/uhabits-android/src/main/play/listings/eo-rUY/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker helps you create and maintain long-term positive habits in your life. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones. + +Habit score +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +Reminders +Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Take control of your data +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +No limitations +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3). + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/es-rES/full-description.txt b/uhabits-android/src/main/play/listings/es-rES/full-description.txt index 66c6cd7ba..ddd9e9f02 100644 --- a/uhabits-android/src/main/play/listings/es-rES/full-description.txt +++ b/uhabits-android/src/main/play/listings/es-rES/full-description.txt @@ -16,7 +16,7 @@ Programa notificaciones para recordarte tus hábitos. Cada hábito puede tener s Recuerde sus hábitos cada vez que desbloquee su teléfono. Los widgets de colores te permiten rastrear tus hábitos directamente desde tu pantalla de inicio, sin siquiera abrir la aplicación. Toma el control de tus datos -Si deseas analizar más sus datos o moverlos a otro servicio, Loop te permite exportarlos a hojas de cálculo (CSV) o a un archivo de base de datos (SQLite). Para usuarios avanzados, se pueden marcar hábitos a través de otras aplicaciones, como Tasker. +Si quieres analizar más a fondo tus datos o moverlos a otro servicio, Loop te permite exportarlos a hojas de cálculo (CSV) o a un archivo de base de datos (SQLite). Para usuarios avanzados, se pueden marcar hábitos a través de otras aplicaciones, como Tasker. Sin limitaciones Rastrea tantos hábitos como desees. Loop no impone límites artificiales sobre cuántos hábitos puedes tener. Todas las características están disponibles para todos los usuarios. No hay compras dentro de la aplicación. diff --git a/uhabits-android/src/main/play/listings/fi-rFI/full-description.txt b/uhabits-android/src/main/play/listings/fi-rFI/full-description.txt new file mode 100644 index 000000000..7309c5eee --- /dev/null +++ b/uhabits-android/src/main/play/listings/fi-rFI/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker auttaa kehittämään ja ylläpitämään pitkäkestoisia hyviä rutiineja. Yksityiskohtaiset kaaviot ja tilastot antavat selkeän kuvan siitä, miten rutiinisi ovat parantuneet ajan kuluessa. Sovellus on mainokseton, sen lähdekoodi on avoin, ja sovellus kunnioittaa yksityisyyttäsi. + +Kaunis, minimalistinen ja kevyt käyttöliittymä +Loopin käyttöliittymä on tyylikäs ja minimalistinen. Se on helppokäyttöinen jopa uusille käyttäjille. Sovellus on optimoitu nopeaksi ja toimii hyvin myös vanhoissa puhelimissa. + +Rutiinipisteet +Loopilla on kehittynyt laskentakaava joka mittaa rutiiniesi vahvuutta. Jokainen toisto tekee rutiinistasi vahvemman ja jokainen ohitettu päivä tekee siitä heikomman. Muutama ohitettu päivä pitkän putken jälkeen ei kuitenkaan täysin tuhoa edistystäsi, toisin kuin monissa muissa älä-riko-putkea-sovelluksissa. + +Joustavat aikataulut +Päivittäisten rutiinien lisäksi Loop tukee rutiineja joilla on monimutkaisempi aikataulu, esimerkiksi kolmesti viikossa tai joka toinen päivä. + +Muistutukset +Ajasta ilmoituksia muistuttamaan sinua rutiineistasi. Jokaisella rutiinilla on oma muistutuksensa, valittuna päivän hetkenä. Kuittaa rutiinisi tehdyksi tai merkitse se hylätyksi helposti ilmoituksesta. + +Widgetit +Näe muistutuksia rutiineistasi aina kun avaat puhelimesi. Värikkäät widgetit auttavat sinua seuraamaan rutiinejasi suoraan kotinäkymästäsi, ilman että avaat sovellusta. + +Hallitse tietojasi +Jos haluat analysoida tietojasi, tai siirtää ne toiseen palveluun, Loop antaa sinun viedä ne laskentataulukoihin (CSV) tai tietokantatiedostoon (SQLite). Tehokäyttäjät voivat lisätä merkintöjä muiden sovellusten, kuten Taskerin, kautta. + +Ei rajoituksia +Seuraa niin montaa rutiinia kuin haluat. Loop ei aseta keinotekoisia rajoituksia rutiiniesi määrälle. Kaikki toiminnot ovat kaikkien käytettävissä. Sovelluksen sisäisiä ostoja ei ole. + +Täysin mainokseton ja avointa lähdekoodia +Sovelluksessa ei ole mainoksia, häiritseviä ilmoituksia tai turhia käyttöoikeusvaatimuksia, eikä tule koskaan olemaan. Sovellus on täysin avointa lähdekoodia (GPLv3). + +Toimii offline-tilassa ja kunnioittaa yksityisyyttäsi +Loop ei vaadi Internet-yhteyttä tai online-tilin rekisteröintiä. Luottamuksellisia tietojasi ei koskaan lähetetä kenellekään. Kehittäjillä ja kolmansilla osapuolilla ei ole pääsyä niihin. + diff --git a/uhabits-android/src/main/play/listings/gu-rIN/full-description.txt b/uhabits-android/src/main/play/listings/gu-rIN/full-description.txt new file mode 100644 index 000000000..603cc7ca5 --- /dev/null +++ b/uhabits-android/src/main/play/listings/gu-rIN/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker helps you create and maintain long-term positive habits in your life. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones. + +Habit score +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +Reminders +Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Take control of your data +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +No limitations +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3). + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/gu-rIN/short-description.txt b/uhabits-android/src/main/play/listings/gu-rIN/short-description.txt new file mode 100644 index 000000000..d19b7d128 --- /dev/null +++ b/uhabits-android/src/main/play/listings/gu-rIN/short-description.txt @@ -0,0 +1 @@ +Create good habits and track their progress over time (ad-free) diff --git a/uhabits-android/src/main/play/listings/gu-rIN/title.txt b/uhabits-android/src/main/play/listings/gu-rIN/title.txt new file mode 100644 index 000000000..027232a12 --- /dev/null +++ b/uhabits-android/src/main/play/listings/gu-rIN/title.txt @@ -0,0 +1 @@ +Loop Habit Tracker diff --git a/uhabits-android/src/main/play/listings/hi-rIN/full-description.txt b/uhabits-android/src/main/play/listings/hi-rIN/full-description.txt new file mode 100644 index 000000000..d918c24ae --- /dev/null +++ b/uhabits-android/src/main/play/listings/hi-rIN/full-description.txt @@ -0,0 +1,29 @@ +लूप हैबिट ट्रैकर आपको अपने जीवन में सकारात्मक आदतों को बनाने और बनाए रखने में मदद करता है। विस्तृत चार्ट और आंकड़े आपको एक स्पष्ट तस्वीर देते हैं कि समय के साथ आपकी आदतों में कैसे सुधार हुआ है। ब्लोकडा नि: शुल्क और खुला स्रोत है और यह आपकी गोपनीयता का सम्मान करता है + +सुंदर, न्यूनतर और हल्का इंटरफ़ेस +लूप में एक सुरुचिपूर्ण और न्यूनतर इंटरफ़ेस है जिसका उपयोग करना बहुत आसान है, यहां तक कि पहली बार उपयोगकर्ताओं के लिए भी। गति के लिए अत्यधिक अनुकूलित, ऐप पुराने फोन पर भी अच्छा काम करता है। + +आदत स्कोर +लूप में आपकी आदतों की ताकत की गणना के लिए एक उन्नत सूत्र है। हर दोहराव आपकी आदत को मजबूत बनाता है और हर छूटा हुआ दिन इसे कमजोर बनाता है। हालांकि, एक लंबी स्ट्रीक के बाद कुछ छूटे हुए दिन आपकी प्रगति को पूरी तरह से नष्ट नहीं करेंगे, कई अन्य नॉट-ब्रेक-द-चेन ऐप्स के विपरीत। + +लचीली अनुसूचियां +दैनिक आदतों के अलावा, लूप अधिक जटिल शेड्यूल वाली आदतों का समर्थन करता है, जैसे प्रति सप्ताह 3 बार या हर दूसरे दिन। + +अनुस्मारक +आपको अपनी आदतों की याद दिलाने के लिए नोटिफिकेशन शेड्यूल करें। हर आदत का अपना रिमाइंडर सेट किया जा सकता है, वह भी अपने चाहे किसी भी दिन के किसी भी समय पर। अधिसूचना पट्टी यानी "नोटिफिकेशन बार" से आप "हैबिट" (आदत/व्यवहार) की पूर्वनियोजित कार्यप्रणाली को "खारिज" (डिसमिस/dismiss) या "हां हो गया है" (चैक/check) बड़ी आसानी से कर सकते है। + +विजेट +क्या आप जब भी अपने फोन को खोले, तब आपको अपनी पूर्वनिर्धारित आदतों/व्यवहारों को आसानी से याद दिलाया जाए? रंग बिरंगे वी आकर्षक "विजेट" प्रणाली की सुविधा से आप बड़ी आसानी से अपने मोबाइल के होम स्क्रीन से अपनी आदतों वी व्यावहार संबंधित जानकारी ले सके है, वह भी ऐप को खोले बिना। + +अपनी डाटा के बारे में नियंत्रण संबंधित जानकारी वी सुविधाएं। +यदि आप अपने डेटा का और विश्लेषण करना चाहते हैं, या इसे किसी अन्य सेवा में ले जाना चाहते हैं, तो लूप आपको इसे स्प्रेडशीट (CSV) या डेटाबेस फ़ाइल (SQLite) में निर्यात करने की अनुमति देता है। "पावर" उपयोगकर्ताओं के लिए, अन्य ऐप्स जैसे "टास्कर ऐप" के माध्यम से चेकमार्क जोड़े जा सकते हैं। + +सीमाहीन +जितनी चाहें उतनी आदतों वी व्यवहारों को ट्रैक करें। यह "लूप ऐप" आपकी कितनी आदतें हो सकती हैं, इस पर कोई कृत्रिम सीमा नहीं लगाता है। इसलिए जितनी चाहे, उतनी आदतों को बनाएं और ट्रैक करें। सभी सुविधाएँ सभी उपयोगकर्ताओं के लिए उपलब्ध हैं। इन-ऐप खरीदारी नहीं है। + +पूरी तरह से विज्ञापन-मुक्त और खुला स्रोत +इस ऐप में कोई विज्ञापन, कष्टप्रद सूचनाएं या घुसपैठ की अनुमति नहीं है, और कभी नहीं होगी। ऐप पूरी तरह से ओपन-सोर्स (GPLv3) है। + +ऑफ़लाइन काम करता है और आपकी गोपनीयता का सम्मान करता है +लूप को इंटरनेट कनेक्शन या ऑनलाइन खाता पंजीकरण की आवश्यकता नहीं है। आपका गोपनीय डेटा कभी किसी को नहीं भेजा जाता है। न तो डेवलपर्स और न ही किसी तीसरे पक्ष के पास इसकी डाटा की पहुंच है। + diff --git a/uhabits-android/src/main/play/listings/hi-rIN/short-description.txt b/uhabits-android/src/main/play/listings/hi-rIN/short-description.txt new file mode 100644 index 000000000..086e9a338 --- /dev/null +++ b/uhabits-android/src/main/play/listings/hi-rIN/short-description.txt @@ -0,0 +1 @@ +अच्छी आदतें बनाएं और समय के साथ उनकी प्रगति को ट्रैक करें (विज्ञापन-मुक्त) diff --git a/uhabits-android/src/main/play/listings/hr-rHR/full-description.txt b/uhabits-android/src/main/play/listings/hr-rHR/full-description.txt new file mode 100644 index 000000000..603cc7ca5 --- /dev/null +++ b/uhabits-android/src/main/play/listings/hr-rHR/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker helps you create and maintain long-term positive habits in your life. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones. + +Habit score +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +Reminders +Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Take control of your data +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +No limitations +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3). + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/hr-rHR/short-description.txt b/uhabits-android/src/main/play/listings/hr-rHR/short-description.txt new file mode 100644 index 000000000..d19b7d128 --- /dev/null +++ b/uhabits-android/src/main/play/listings/hr-rHR/short-description.txt @@ -0,0 +1 @@ +Create good habits and track their progress over time (ad-free) diff --git a/uhabits-android/src/main/play/listings/is-rIS/full-description.txt b/uhabits-android/src/main/play/listings/is-rIS/full-description.txt new file mode 100644 index 000000000..603cc7ca5 --- /dev/null +++ b/uhabits-android/src/main/play/listings/is-rIS/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker helps you create and maintain long-term positive habits in your life. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones. + +Habit score +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +Reminders +Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Take control of your data +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +No limitations +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3). + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/is-rIS/short-description.txt b/uhabits-android/src/main/play/listings/is-rIS/short-description.txt new file mode 100644 index 000000000..d19b7d128 --- /dev/null +++ b/uhabits-android/src/main/play/listings/is-rIS/short-description.txt @@ -0,0 +1 @@ +Create good habits and track their progress over time (ad-free) diff --git a/uhabits-android/src/main/play/listings/is-rIS/title.txt b/uhabits-android/src/main/play/listings/is-rIS/title.txt new file mode 100644 index 000000000..027232a12 --- /dev/null +++ b/uhabits-android/src/main/play/listings/is-rIS/title.txt @@ -0,0 +1 @@ +Loop Habit Tracker diff --git a/uhabits-android/src/main/play/listings/iw-rIL/full-description.txt b/uhabits-android/src/main/play/listings/iw-rIL/full-description.txt index 287aa81e9..154df190e 100644 --- a/uhabits-android/src/main/play/listings/iw-rIL/full-description.txt +++ b/uhabits-android/src/main/play/listings/iw-rIL/full-description.txt @@ -1,29 +1,29 @@ -יישום ”Loop לניהול הרגלים“ מסייע לך ביצירה ובשימור הרגלים טובים וארוכי טווח. תרשימים וסטטיסטיקה מפורטים נותנים לך תמונה ברורה כיצד ההרגלים שלך השתפרו לאורך זמן. היישום נטול פרסומות לחלוטין, קוד המקור שלו פתוח והוא מכבד את הפרטיות שלך. +יישום ”Loop לניהול הרגלים“ מסייע לך להתחיל ולשמר הרגלים טובים לאורך זמן. תרשימים וסטטיסטיקה מפורטים מראים לך בדיוק כיצד ההרגלים שלך משתפרים לאורך הזמן. היישום כולו נטול פרסומות, קוד המקור שלו פתוח והוא מכבד את הפרטיות שלך. ממשק יפה, חסכוני וקליל -הממשק של Loop אלגנטי, חסכוני וקל לשימוש אפילו בפעם הראשונה. היישום מותאם במיוחד למהירות, ועובד היטב גם בטלפונים ישנים. +הממשק של Loop אלגנטי, חסכוני וקל לשימוש אפילו בפעם הראשונה. היישום מותאם לפעול במהירות, ועובד היטב גם בטלפונים ישנים. -ציון הרגל -ל־Loop יש נוסחה מתקדמת לחישוב חוזק ההרגלים שלך. כל חזרה על ההרגל מחזקת אותו, וכל יום שהוחמץ מחליש אותו. כמה ימים שהוחמצו לאחר רצף ארוך, לעומת זאת, לא יהרסו לחלוטין את ההתקדמות, בניגוד ליישומים רבים אחרים מסוג ”לא לשבור את השרשרת“. +ציונים של הרגלים +יש ל־Loop נוסחה מתקדמת לחישוב חוזק ההרגלים שלך. כל חזרה על ההרגל מחזקת אותו, וכל יום שהוחמץ מחליש אותו. למרות זאת, כמה ימים שהוחמצו לאחר רצף ארוך לא יהרסו לחלוטין את ההתקדמות, בניגוד ליישומים רבים אחרים מסוג ”לא לשבור את השרשרת“. לוחות זמנים גמישים בנוסף להרגלים יומיומיים, Loop תומך בהרגלים עם לוחות זמנים מורכבים יותר, כמו 3 פעמים בשבוע או ”יום כן ויום לא“. תזכורות -אפשר לתזמן התראות קבועות עם תזכורות לגבי ההרגלים שלך. לכל הרגל יכולה להיות תזכורת משלו, בשעה שנבחרה ביום. אפשר לסמן או לדחות את עשיית ההרגל ישירות מההתראה בקלות. +אפשר לתזמן התראות קבועות עם תזכורות לגבי ההרגלים שלך. לכל הרגל אפשר להגדיר תזכורת, ואפשר לבחור כל שעה ביום. אפשר לסמן או לדחות את הרגלים בקלות וישירות מתוך ההתראה. יישומונים -להיזכר בהרגלים בכל שחרור נעילת הטלפון. יישומונים צבעוניים שמאפשרים לך לעקוב אחר ההרגלים ישירות ממסך הבית, מבלי לפתוח אפילו את היישום. +אפשר לקבל תזכורות לגבי ההרגלים בכל פתיחה של נעילת הטלפון. עם היישומונים הצבעוניים של Loop אפשר לעקוב אחר ההרגלים ישירות ממסך הבית, ומבלי לפתוח את היישום. -השליטה בנתונים היא בידיים שלך -אם ברצונך לנתח יותר לעומק את הנתונים שלך, או להעבירם לשירות אחר, Loop מאפשרת לך לייצא אותם לגיליונות אלקטרוניים (CSV) או לקובץ מסד נתונים (SQLite). למשתמשים מתקדמים, אפשר לסמן הרגלים דרך יישומים אחרים, כגון Tasker. +שליטה בנתונים שלך +אם ברצונך לחקור את הנתונים שלך לעומק, או להעביר אותם לשירות אחר, Loop מאפשר לך לייצא אותם לגיליונות אלקטרוניים (CSV) או לקובץ מסד נתונים (SQLite). משתמשים מתקדמים יכולים לסמן הרגלים אפילו דרך יישומים אחרים, כמו Tasker. בלי הגבלות -אפשר לעקוב אחר כמה הרגלים שרוצים. Loop לא מגבילה את כמות ההרגלים שאפשר להוסיף. כל התכונות זמינות לכל המשתמשים. אין רכישות מתוך היישום. +אפשר לעקוב אחר כמה הרגלים שרוצים. ב־Loop אפשר ליצור כמה הרגלים שרוצים, ללא הגבלה. כל התכונות זמינות לכל המשתמשים. אין רכישות מתוך היישום. -היישום נטול פרסומות במלואו וקוד המקור שלו פתוח -אין שום פרסומות, התראות מעצבנות או הרשאות פולשניות ביישום הזה, ולעולם לא יהיו. קוד היישום הזה פתוח לחלוטין (GPLv3). +היישום כולו נטול פרסומות וקוד המקור שלו פתוח +אין שום פרסומות, התראות מעצבנות או הרשאות פולשניות ביישום הזה, ולעולם לא יהיו. קוד המקור של היישום הזה פתוח לחלוטין (GPLv3). עובד במצב לא מקוון ומכבד את פרטיותך -ל־Loop לא נחוצים חיבור לאינטרנט או הרשמה לחשבון מקוון. הנתונים הסודיים שלך לא נשלחים לאחרים כלל. גם למפתחים וגם לגורמי צד שלישי כלשהם אין גישה אליהם. +לא צריך חיבור לאינטרנט או חשבון מקוון כדי להשתמש ב־Loop. הנתונים הפרטיים שלך לא נשלחים לאף אחד. גם למפתחים ולכל מיני גורמי צד שלישי אין גישה אליהם. diff --git a/uhabits-android/src/main/play/listings/ja-rJP/short-description.txt b/uhabits-android/src/main/play/listings/ja-rJP/short-description.txt index 16a88bc2a..3abde4c92 100644 --- a/uhabits-android/src/main/play/listings/ja-rJP/short-description.txt +++ b/uhabits-android/src/main/play/listings/ja-rJP/short-description.txt @@ -1 +1 @@ -良い習慣を作り、その進捗を長期にわたって追跡できる便利なツール(広告なし) +よい習慣を身につけ、その進捗を記録しましょう (広告なし) diff --git a/uhabits-android/src/main/play/listings/ka-rGE/full-description.txt b/uhabits-android/src/main/play/listings/ka-rGE/full-description.txt new file mode 100644 index 000000000..bb028bb88 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ka-rGE/full-description.txt @@ -0,0 +1,29 @@ +Loop ჩვევების ტრეკერია, რომელიც გეხმარება ყოველდღიურობისთვის სასარგებლო ჩვევები გამოიმუშავო და ხანგრძლივად შეინარჩუნო. დეტალური დიაგრამებითა და სტატისტიკით წარმოდგენა გექმნება, თუ როგორ ვითარდება და მყარდება შენი ჩვევები. აპლიკაცია ურეკლამო და ღია კოდის მქონეა და ის იცავს შენს კონფიდენციალურობას. + +ლამაზი, მინიმალისტური და მსუბუქი ინტერფეისი +Loop-ს ელეგანტური და მინიმალისტური ინტერფეისი აქვს, რომელიც დამწყები მომხმარებლებისთვისაც კი ადვილად მოსახმარია. აპლიკაცია დახვეწილია სიჩქარისთვის, ამიტომ ძველ მოწყობილობებზეც კარგად მუშაობს. + +ჩვევების შეფასება +Loop დახვეწილი ფორმულის მეშვეობით ითვლის ჩვევების გაჯდომის დონეს. ყოველი გამეორებით იზრდება ჩვევის გაჯდომის დონე, გაცდენილი დღეების შემთხვევაში კი მცირდება. თუმცა ხანგრძლივი სერიის შემდეგ რამდენიმე დღის გაცდენით არ მოიშლება შენი მთლიანი პროგრესი, ბევრი სხვა „შეინარჩუნე-სერია“ სახის აპლიკაციისგან განსხვავებით. + +მორგებადი განრიგი +ყოველდღიური ჩვევების გარდა Loop-ში ასევე ისეთი ჩვევების შექმნა შეიძლება, რომლებსაც უფრო რთული განრიგი აქვთ. მაგალითად: „კვირაში 3-ჯერ“ ან „ყოველ მე-2 დღეს“. + +შემახსენებელი შეტყობინებები +დააყენე შეტყობინებები, რათა ჩვევები გაგახსენდეს. ყველა ჩვევას შეუძლია საკუთარი შემახსენებელი შეტყობინება ჰქონდეს დღის სასურველ დროს. ჩვევასთან თოლიის (✓) ჩანიშვნა შეტყობინებიდანვე შეგიძლია. + +ვიჯეტები +გაიხსენე ჩვევები ტელეფონის ყოველ განბლოკვაზე. ფერადი ვიჯეტებით გეძლევა იმის საშუალება, რომ ჩვევები საწყისი ეკრანიდანვე, აპლიკაციის გახსნის გარეშე, მართო. + +უხელმძღვანელე შენს მონაცემებს +მონაცემთა უფრო დეტალური ანალიზის გაკეთების ან სხვა სერვისზე გადატანის სურვილის არსებობის შემთხვევაში Loop საშუალებას გაძლევს, ისინი ელექტრონული ცხრილის (CSV) ან მონაცემთა ბაზის ფაილად (SQLite) დააექსპორტო. გამოცდილ მომხმარებლებს შეუძლიათ თოლიები (✓) ჩაამატონ სხვა აპლიკაციებით, როგორიცაა, მაგალითად, Tasker. + +შეუზღუდავი +იმდენ ჩვევას ადევნე თვალი, რამდენსაც ისურვებ. Loop არ ზღუდავს ჩვევების შესაძლო რაოდენობას. ყველა ფუნქცია ხელმისაწვდომია ნებისმიერი მომხმარებელისთვის. არ აქვს აპლიკაციის შიდა შენაძენები. + +ურეკლამო და ღია კოდით +აპლიკაციას არ აქვს და არც არასდროს ექნება რეკლამები, შემაწუხებელი შეტყობინებები, ან მოთხოვნა ზედმეტ ნებართვაზე. აპლიკაციის საწყისი კოდი მთლიანად ღიაა. (GPLv3) + +მუშაობს ხაზგარეშე რეჟიმში და პატივს სცემს შენს კონფიდენციალურობას +Loop არ საჭიროებს ინტერნეტკავშირს ან ონლაინ ანგარიშის რეგისტრაციას. შენი პირადი მონაცემები არასდროს გაზიარდება მესამე პირებთან. მონაცემებზე წვდომა არც დეველოპერს და არც მესამე პირებს გააჩნიათ. + diff --git a/uhabits-android/src/main/play/listings/ka-rGE/short-description.txt b/uhabits-android/src/main/play/listings/ka-rGE/short-description.txt new file mode 100644 index 000000000..5c9ed523a --- /dev/null +++ b/uhabits-android/src/main/play/listings/ka-rGE/short-description.txt @@ -0,0 +1 @@ +გამოიმუშავე კარგი ჩვევები და თან ადევნე თვალი შენს პროგრესს (ურეკლამო) diff --git a/uhabits-android/src/main/play/listings/ka-rGE/title.txt b/uhabits-android/src/main/play/listings/ka-rGE/title.txt new file mode 100644 index 000000000..d714a0c39 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ka-rGE/title.txt @@ -0,0 +1 @@ +Loop — ჩვევების ტრეკერი diff --git a/uhabits-android/src/main/play/listings/ko-rKR/full-description.txt b/uhabits-android/src/main/play/listings/ko-rKR/full-description.txt new file mode 100644 index 000000000..abe5293d3 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ko-rKR/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker는 여러분의 인생에 있어 좋은 습관을 만들고 이를 장기적으로 유지하는 데 도움을 주는 앱입니다. 좋은 습관들이 나날이 늘어가는 모습을 자세한 차트와 통계를 통해 확인할 수 있습니다. Loop Habit Tracker는 오픈소스 프로젝트로 광고가 없으며 사용자의 개인정보를 수집하지 않습니다. + +아름답고 미니멀하며 가벼운 인터페이스 +Loop는 누구나 간편하게 사용하기 쉽도록 세련되고 미니멀한 인터페이스를 제공합니다. 또한 최적화가 잘 되어있어 최신형 휴대폰이 아니더라도 끊김없이 부드럽게 작동합니다. + +습관 점수 +Loop는 특수한 공식을 이용하여 사용자의 습관화가 얼마나 진척되었는지 계산합니다. 습관화의 정도는 반복되면 될수록 강해지지만 놓치는 날이 많아진다면 점차 약해집니다. 하지만 한 번 습관이 잘 형성되었다면 며칠 정도 놓치더라도 전반적인 흐름에 큰 영향을 주지 않습니다. 다른 앱에서 반복을 놓치지 말라고 강조하는 것과 차별화되는 점이죠. + +유연한 일정관리 +Loop는 매일 반복되는 일정 외에도 일주일에 3번 또는 격일로 반복하는 것처럼 더 복잡한 일정도 유연하게 관리할 수 있습니다. + +알림 +하루의 일정을 잊지 않도록 알림을 설정해보세요. 각각의 습관 일정에 맞추어 알림을 별도로 설정할 수 있습니다. 또한 상단메뉴바에서 손쉽게 일정을 확인하고 해제할 수 있습니다. + +위젯 +휴대폰을 잠금 해제할 때마다 하루의 일정을 떠올려 보세요. 다양한 위젯을 통해 앱을 열지 않고도 홈 화면에서 직접 습관목록을 관리할 수 있습니다. + +통계데이터 관리 +그동안 모은 통계데이터를 별도로 분석하거나 다른 서비스로 옮길 수 있도록 스프레드시트(CSV), 데이터베이스 파일(SQLite)의 형식으로 내보낼 수 있습니다. 고급 사용자의 경우 Tasker와 같은 다른 앱을 통해 자동으로 일정에 완료 표시하는 등 범용적으로 활용할 수도 있습니다. + +제한없이 사용하기 +원하는 만큼 습관을 추적해 보세요. Loop는 설정 할 수 있는 습관의 수를 제한하고 있지 않습니다. 유저들은 모든 기능을 이용할 수 있습니다. 인앱 구매가 필요하지 않습니다. + +완벽하게 광고가 없는 오픈소스 앱입니다. +Loop Habit Tracker에는 광고, 귀찮은 알림, 혹은 권한 설정이 필요 없으며, 앞으로 또한 그럴 것입니다. 이 앱은 완벽한 오픈소스입니다. (GPLv3) + +오프라인 환경에서도 작동하며 개인 정보를 존중합니다. +Loop Habit Tracker는 인터넷 연결이나 온라인 계정 등록을 필요로 하지 않습니다. 이용자의 소중한 데이터는 그 누구에게도 제공되지 않습니다. 개발자나 제3자 모두 접근할 수 없습니다. + diff --git a/uhabits-android/src/main/play/listings/ko-rKR/short-description.txt b/uhabits-android/src/main/play/listings/ko-rKR/short-description.txt index 22cdf6e96..062a49348 100644 --- a/uhabits-android/src/main/play/listings/ko-rKR/short-description.txt +++ b/uhabits-android/src/main/play/listings/ko-rKR/short-description.txt @@ -1 +1 @@ -좋은 습관을 만들고, 시간이 지나면서 습관이 어떻게 발전하는지 지켜보세요. +좋은 습관을 만들고, 시간이 지나면서 습관이 어떻게 발전하는지 지켜보세요. (광고 없음) diff --git a/uhabits-android/src/main/play/listings/ml-rIN/full-description.txt b/uhabits-android/src/main/play/listings/ml-rIN/full-description.txt new file mode 100644 index 000000000..da9e99fa8 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ml-rIN/full-description.txt @@ -0,0 +1,29 @@ +നിങ്ങളുടെ ജീവിതത്തിൽ ദീർഘകാല പോസിറ്റീവ് ശീലങ്ങൾ സൃഷ്ടിക്കാനും നിലനിർത്താനും ലൂപ്പ് ഹാബിറ്റ് ട്രാക്കർ നിങ്ങളെ സഹായിക്കുന്നു. വിശദമായ ചാർട്ടുകളും സ്ഥിതിവിവരക്കണക്കുകളും നിങ്ങളുടെ ശീലങ്ങൾ കാലക്രമേണ എങ്ങനെ മെച്ചപ്പെട്ടുവെന്നതിന്റെ വ്യക്തമായ ചിത്രം നൽകുന്നു. ആപ്പ് പൂർണ്ണമായും പരസ്യരഹിതമാണ്, ഓപ്പൺ സോഴ്‌സ് ആണ്, ഇത് നിങ്ങളുടെ സ്വകാര്യതയെ മാനിക്കുന്നു. + +മനോഹരവും ചുരുങ്ങിയതും ഭാരം കുറഞ്ഞതുമായ ഇന്റർഫേസ് +ലൂപ്പിന് ഗംഭീരവും ചുരുങ്ങിയതുമായ ഒരു ഇന്റർഫേസ് ഉണ്ട്, അത് ആദ്യമായി ഉപയോഗിക്കുന്നവർക്ക് പോലും ഉപയോഗിക്കാൻ വളരെ എളുപ്പമാണ്. വേഗതയ്‌ക്കായി വളരെ ഒപ്റ്റിമൈസ് ചെയ്‌തിരിക്കുന്ന ആപ്പ് പഴയ ഫോണുകളിൽ പോലും നന്നായി പ്രവർത്തിക്കുന്നു. + +ശീല സ്കോർ +നിങ്ങളുടെ ശീലങ്ങളുടെ ശക്തി കണക്കാക്കുന്നതിനുള്ള വിപുലമായ ഫോർമുല ലൂപ്പിനുണ്ട്. ഓരോ ആവർത്തനവും നിങ്ങളുടെ ശീലത്തെ കൂടുതൽ ശക്തമാക്കുന്നു, കൂടാതെ നഷ്ടപ്പെട്ട ഓരോ ദിവസവും അതിനെ ദുർബലമാക്കുന്നു. എന്നിരുന്നാലും, നീണ്ട ഇടവേളയ്ക്ക് ശേഷം നഷ്‌ടമായ കുറച്ച് ദിവസങ്ങൾ, മറ്റ് പല ഡോൺ-ബ്രേക്ക്-ദി-ചെയിൻ ആപ്പുകളിൽ നിന്ന് വ്യത്യസ്തമായി നിങ്ങളുടെ പുരോഗതിയെ പൂർണ്ണമായും നശിപ്പിക്കില്ല. + +ഫ്ലെക്‌സിബിൾ ഷെഡ്യൂളുകൾ +ദൈനംദിന ശീലങ്ങൾക്ക് പുറമേ, ആഴ്ചയിൽ 3 തവണ അല്ലെങ്കിൽ മറ്റെല്ലാ ദിവസവും പോലെ കൂടുതൽ സങ്കീർണ്ണമായ ഷെഡ്യൂളുകളുള്ള ശീലങ്ങളെ ലൂപ്പ് പിന്തുണയ്ക്കുന്നു. + +ഓർമ്മപ്പെടുത്തലുകൾ +നിങ്ങളുടെ ശീലങ്ങളെക്കുറിച്ച് ഓർമ്മപ്പെടുത്തുന്നതിന് അറിയിപ്പുകൾ ഷെഡ്യൂൾ ചെയ്യുക. ഓരോ ശീലത്തിനും അതിന്റേതായ ഓർമ്മപ്പെടുത്തൽ ഉണ്ടായിരിക്കാം, ദിവസത്തിലെ തിരഞ്ഞെടുത്ത സമയത്ത്. അറിയിപ്പിൽ നിന്ന് നേരിട്ട് നിങ്ങളുടെ ശീലം എളുപ്പത്തിൽ പരിശോധിക്കുക അല്ലെങ്കിൽ നിരസിക്കുക. + +വിജറ്റുകൾ +നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുമ്പോഴെല്ലാം നിങ്ങളുടെ ശീലങ്ങൾ ഓർമ്മിപ്പിക്കുക. ആപ്പ് തുറക്കാതെ തന്നെ ഹോം സ്‌ക്രീനിൽ നിന്ന് നേരിട്ട് നിങ്ങളുടെ ശീലങ്ങൾ ട്രാക്ക് ചെയ്യാൻ വർണ്ണാഭമായ വിജറ്റുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. + +നിങ്ങളുടെ ഡാറ്റയുടെ നിയന്ത്രണം ഏറ്റെടുക്കുക +നിങ്ങളുടെ ഡാറ്റ കൂടുതൽ വിശകലനം ചെയ്യാനോ മറ്റൊരു സേവനത്തിലേക്ക് നീക്കാനോ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, അത് സ്പ്രെഡ്‌ഷീറ്റുകളിലേക്കോ (CSV) അല്ലെങ്കിൽ ഒരു ഡാറ്റാബേസ് ഫയലിലേക്കോ (SQLite) കയറ്റുമതി ചെയ്യാൻ ലൂപ്പ് നിങ്ങളെ അനുവദിക്കുന്നു. പവർ ഉപയോക്താക്കൾക്ക്, ടാസ്‌കർ പോലുള്ള മറ്റ് ആപ്പുകൾ വഴി ചെക്ക്‌മാർക്കുകൾ ചേർക്കാവുന്നതാണ്. + +പരിമിതികളില്ല +നിങ്ങൾ ആഗ്രഹിക്കുന്നത്രയും ശീലങ്ങൾ ട്രാക്ക് ചെയ്യുക. നിങ്ങൾക്ക് എത്ര ശീലങ്ങൾ ഉണ്ടായിരിക്കാം എന്നതിന് ലൂപ്പ് കൃത്രിമ പരിധികളൊന്നും ഏർപ്പെടുത്തുന്നില്ല. എല്ലാ ഫീച്ചറുകളും എല്ലാ ഉപയോക്താക്കൾക്കും ലഭ്യമാണ്. ഇൻ-ആപ്പ് വാങ്ങലുകളൊന്നുമില്ല. + +പൂർണ്ണമായും പരസ്യരഹിതവും ഓപ്പൺ സോഴ്‌സും +ഈ ആപ്പിൽ പരസ്യങ്ങളോ ശല്യപ്പെടുത്തുന്ന അറിയിപ്പുകളോ നുഴഞ്ഞുകയറ്റ അനുമതികളോ ഇല്ല, ഒരിക്കലും ഉണ്ടാകില്ല. ആപ്പ് പൂർണ്ണമായും ഓപ്പൺ സോഴ്സ് ആണ് (GPLv3). + +ഓഫ്‌ലൈനായി പ്രവർത്തിക്കുകയും നിങ്ങളുടെ സ്വകാര്യതയെ മാനിക്കുകയും ചെയ്യുന്നു +ലൂപ്പിന് ഇന്റർനെറ്റ് കണക്ഷനോ ഓൺലൈൻ അക്കൗണ്ട് രജിസ്ട്രേഷനോ ആവശ്യമില്ല. നിങ്ങളുടെ രഹസ്യസ്വഭാവമുള്ള ഡാറ്റ ഒരിക്കലും ആർക്കും അയയ്ക്കില്ല. ഡവലപ്പർമാർക്കോ ഏതെങ്കിലും മൂന്നാം കക്ഷിക്കോ ഇതിലേക്ക് ആക്‌സസ് ഇല്ല. + diff --git a/uhabits-android/src/main/play/listings/ml-rIN/short-description.txt b/uhabits-android/src/main/play/listings/ml-rIN/short-description.txt new file mode 100644 index 000000000..6eb3cc6b0 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ml-rIN/short-description.txt @@ -0,0 +1 @@ +നല്ല ശീലങ്ങൾ സൃഷ്ടിക്കുകയും കാലക്രമേണ അവരുടെ പുരോഗതി ട്രാക്ക് ചെയ്യുകയും ചെയ്യുക (പരസ്യരഹിതം) diff --git a/uhabits-android/src/main/play/listings/ml-rIN/title.txt b/uhabits-android/src/main/play/listings/ml-rIN/title.txt new file mode 100644 index 000000000..799b947be --- /dev/null +++ b/uhabits-android/src/main/play/listings/ml-rIN/title.txt @@ -0,0 +1 @@ +ലൂപ്പ് ഹാബിറ്റ് ട്രാക്കർ diff --git a/uhabits-android/src/main/play/listings/no-rNO/full-description.txt b/uhabits-android/src/main/play/listings/no-rNO/full-description.txt new file mode 100644 index 000000000..603cc7ca5 --- /dev/null +++ b/uhabits-android/src/main/play/listings/no-rNO/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker helps you create and maintain long-term positive habits in your life. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones. + +Habit score +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +Reminders +Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Take control of your data +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +No limitations +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3). + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/no-rNO/short-description.txt b/uhabits-android/src/main/play/listings/no-rNO/short-description.txt new file mode 100644 index 000000000..d19b7d128 --- /dev/null +++ b/uhabits-android/src/main/play/listings/no-rNO/short-description.txt @@ -0,0 +1 @@ +Create good habits and track their progress over time (ad-free) diff --git a/uhabits-android/src/main/play/listings/ro-rRO/full-description.txt b/uhabits-android/src/main/play/listings/ro-rRO/full-description.txt new file mode 100644 index 000000000..28e975001 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ro-rRO/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker te ajută să creezi și să menții obiceiuri pozitive pe termen lung în viața ta. Detailed charts and statistics give you a clear picture of how your habits have improved over time. The app is completely ad-free, open source and it respects your privacy. + +Beautiful, minimalistic and lightweight interface +Loop are o interfață elegantă și minimalistă, care este foarte ușor de utilizat, chiar și pentru utilizatorii începători. Foarte optimizată pentru viteză, aplicația funcționează bine chiar și pe telefoanele mai vechi. + +Scorul obiceiului +Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +Flexible schedules +Pe lângă obiceiurile zilnice, Loop susține obiceiuri cu programe mai complexe, cum ar fi, de 3 ori pe săptămână sau din două în două zile. + +Reminders +Programează notificări pentru a-ți aminti de obiceiurile tale. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification. + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +Preia controlul asupra datelor tale +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +Fără limitări +Track as many habits as you wish. Loop nu impune limite artificiale asupra numărului de obiceiuri pe care le poți avea. Toate funcțiile sunt disponibile pentru toți utilizatorii. There are no in-app purchases. + +Complet fără reclame și open-source +Nu există reclame, notificări enervante sau permisiuni intruzive în această aplicație și nu vor exista niciodată. Aplicația este complet open-source (GPLv3). + +Funcționează offline și respectă confidențialitatea ta +Loop nu necesită o conexiune la internet sau înregistrarea unui cont online. Datele tale confidențiale nu au fost trimise nimănui. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/ro-rRO/short-description.txt b/uhabits-android/src/main/play/listings/ro-rRO/short-description.txt new file mode 100644 index 000000000..32eb53451 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ro-rRO/short-description.txt @@ -0,0 +1 @@ +Creați obiceiuri bune și urmăriți progresul lor în timp (fără reclame) diff --git a/uhabits-android/src/main/play/listings/sl-rSI/full-description.txt b/uhabits-android/src/main/play/listings/sl-rSI/full-description.txt new file mode 100644 index 000000000..b8aecee93 --- /dev/null +++ b/uhabits-android/src/main/play/listings/sl-rSI/full-description.txt @@ -0,0 +1,29 @@ +Loop Habit Tracker vam pomaga ustvariti in ohraniti dolgoročne pozitivne navade v vašem življenju. Podrobni grafikoni in statistični podatki vam dajejo jasno sliko o tem, kako so se vaše navade sčasoma izboljšale. Aplikacija je popolnoma brez oglasov, odprtokodna in spoštuje vašo zasebnost. + +Lep, minimalističen in lahek vmesnik +Loop ima eleganten in minimalističen vmesnik, ki je zelo enostaven za uporabo, tudi za začetnike. Aplikacija je zelo optimizirana za hitrost, dobro deluje tudi na starejših telefonih. + +Ocena navade +Loop ima napredno formulo za izračun moči vaših navad. Vsako ponavljanje naredi vašo navado močnejšo in vsak zamujeni dan jo oslabi. Nekaj zamujenih dni po dolgem nizu pa ne bo popolnoma uničilo vašega napredka, za razliko od mnogih drugih aplikacij, ki ne prekinjajo verige. + +Prilagodljivi urniki +Poleg dnevnih navad Loop podpira navade z bolj zapletenimi urniki, na primer 3-krat na teden ali vsak drugi dan. + +Opomniki +Načrtujte obvestila, ki vas bodo spomnila na vaše navade. Vsaka navada ima lahko svoj opomnik, ob izbrani uri dneva. Preprosto preverite ali opustite svojo navado neposredno iz obvestila. + +Pripomočki +Ko odklenete telefon, se opomnite na svoje navade. Pisani pripomočki vam omogočajo, da spremljate svoje navade neposredno z začetnega zaslona, ne da bi sploh odprli aplikacijo. + +Prevzemite nadzor nad svojimi podatki +Če želite svoje podatke dodatno analizirati ali jih premakniti v drugo storitev, vam Loop omogoča, da jih izvozite v preglednice (CSV) ali v datoteko zbirke podatkov (SQLite). Za napredne uporabnike lahko kljukice dodate prek drugih aplikacij, kot je Tasker. + +Brez omejitev +Spremljajte toliko navad, kot želite. Loop ne postavlja nobenih umetnih omejitev glede števila navad, ki jih lahko imate. Vse funkcije so na voljo vsem uporabnikom. Nakupov v aplikaciji ni. + +Popolnoma brez oglasov in odprtokoden +V tej aplikaciji ni oglasov, nadležnih obvestil ali vsiljivih dovoljenj in jih nikoli ne bo. Aplikacija je popolnoma odprtokodna (GPLv3). + +Deluje brez povezave in spoštuje vašo zasebnost +Loop ne zahteva internetne povezave ali spletne registracije računa. Vaši zaupni podatki niso nikoli nikomur poslani. Niti razvijalci niti katere koli tretje osebe nimajo dostopa do njega. + diff --git a/uhabits-android/src/main/play/listings/sl-rSI/short-description.txt b/uhabits-android/src/main/play/listings/sl-rSI/short-description.txt new file mode 100644 index 000000000..752aa9274 --- /dev/null +++ b/uhabits-android/src/main/play/listings/sl-rSI/short-description.txt @@ -0,0 +1 @@ +Ustvarite dobre navade in spremljajte njihov napredek skozi čas (brez oglasov) diff --git a/uhabits-android/src/main/play/listings/ta-rIN/full-description.txt b/uhabits-android/src/main/play/listings/ta-rIN/full-description.txt new file mode 100644 index 000000000..80fd2925c --- /dev/null +++ b/uhabits-android/src/main/play/listings/ta-rIN/full-description.txt @@ -0,0 +1,29 @@ +உங்கள் வாழ்க்கையில் நீண்டகால நேர்மறையான பழக்கங்களை உருவாக்கவும் பராமரிக்கவும் லூப் ஹாபிட் டிராக்கர் உதவுகிறது. உங்களின் பழக்கவழக்கங்கள், காலப்போக்கில் எவ்வாறு முன்னேறியுள்ளன என்பதை விரிவான அட்டவணைகளும் புள்ளிவிவரங்களும் தெளிவாக காண்பிக்கும் இந்தப் பயன்பாடானது முற்றிலும் விளம்பரங்களற்றது, திறந்த மூலம் மற்றும் உங்களின் தனியுரிமையை மதிக்கும். + +அழகான, குறைந்தபட்சமான மற்றும் இலகுரக இடைமுகம் +Loop இலகுவாகப் பயன்படுத்தக்கூடிய, முதல் முறையிலேயே பயன்படுத்துவோருக்கும் எளிதான, நேர்த்தியான மற்றும் குறைந்தபட்சமான இடைமுகத்தைக் கொண்டுள்ளது. வேகத்திற்காக மிகவும் திறமையாகக் கட்டமைக்கப்பட்ட, இந்தப் பயன்பாடு பழைய தொலைபேசிகளில் கூட நன்கு செயல்படுகிறது. + +பழக்க மதிப்பெண் +Loop உங்களின் பழக்கங்களின் வலிமையை கணக்கிடுவதற்கு மேம்பட்ட சூத்திரத்தைக் கொண்டுள்ளது. ஒவ்வொரு மீளுருவாக்கமும் உங்கள் பழக்கத்தை வலுவாக்குகிறது, மேலும் ஒவ்வொரு தவறிய நாளும் அதைப் பலவீனப்படுத்துகிறது. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps. + +மாற்றியமைக்கக்கூடிய நாள்காட்டி +In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day. + +நினைவூட்டல்கள் +உங்கள் பழக்கங்களை நினைவூட்ட உதவிக்கான அறிவிப்புகளைத் திட்டமிடவும் ஒவ்வொரு பழக்கத்திற்கும், நாளில் தேர்ந்தெடுக்கப்பட்ட நேரத்தில் தனித்துவமான நினைவூட்டலைக் கொடுக்கலாம் அறிவிப்பிலிருந்து உங்கள் பழக்கத்தை எளிதாக முடிக்கவும் அல்லது மறுக்கவும். + +Widgets +Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app. + +உங்கள் தரவு உங்கள் கட்டுப்பாட்டில் +If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker. + +எந்த வரம்புகளும் இல்லை +Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases. + +Completely ad-free and open source +இந்தச் செயலியில் விளம்பரங்கள், சிரமமான அறிவிப்புகள் அல்லது அடி முறைகளைப் பொருந்தும் அனுமதிகள் எதுவும் இல்லை, மற்றும் எப்போது இல்லை. இந்தச் செயலி முழுமையாகத் திறந்த மூல குறியீட்டுடன் (GPLv3) உள்ளது. + +Works offline and respects your privacy +Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it. + diff --git a/uhabits-android/src/main/play/listings/ta-rIN/short-description.txt b/uhabits-android/src/main/play/listings/ta-rIN/short-description.txt new file mode 100644 index 000000000..8dd23fa53 --- /dev/null +++ b/uhabits-android/src/main/play/listings/ta-rIN/short-description.txt @@ -0,0 +1 @@ +நல்ல பழக்கங்களை உருவாக்க, அவற்றின் முன்னேற்றங்களைக் கண்காணிக்க (விளம்பரம் அற்றது) diff --git a/uhabits-android/src/main/play/listings/tr-rTR/full-description.txt b/uhabits-android/src/main/play/listings/tr-rTR/full-description.txt index 63130e9ad..b71b8697a 100644 --- a/uhabits-android/src/main/play/listings/tr-rTR/full-description.txt +++ b/uhabits-android/src/main/play/listings/tr-rTR/full-description.txt @@ -10,7 +10,7 @@ Loop, alışkanlıklarınızın kalıcılığını hesaplamak için gelişmiş b Loop, günlük alışkanlıkların yanında, daha karmaşık programları da (örneğin haftada 3 kez veya gün aşırı gibi) destekler. Hatırlatmalar -Alışkanlıklarınızı size hatırlatması için bildirimler ayarlayabilirsiniz. Her alışkanlık için özel bir bildirim ayarlayabilirsiniz, belirlediğiniz zamanda hatırlatmak üzere. Alışkanlığınızı doğrudan bildirimlerden kolayca işaretleyin veya erteleyin. +Alışkanlıklarınızı size hatırlatması için bildirimler ayarlayabilirsiniz. Her bir alışkanlık için gün içinde seçilecek bir zamanda ayrı ayrı bildirim ayarlayabilirsiniz, Alışkanlığınızı doğrudan bildirimlerden kolayca işaretleyin veya erteleyin. Widget'lar Telefonunuzun kilidini her açtığınızda alışkanlıklarınız size hatırlatılır. Renkli widget'lar, uygulamayı açmadan bile alışkanlıklarınızı doğrudan ana ekranınızdan izlemenizi sağlar. diff --git a/uhabits-android/src/main/play/listings/zh-rCN/full-description.txt b/uhabits-android/src/main/play/listings/zh-rCN/full-description.txt index 829db6db2..9ca7400c3 100644 --- a/uhabits-android/src/main/play/listings/zh-rCN/full-description.txt +++ b/uhabits-android/src/main/play/listings/zh-rCN/full-description.txt @@ -1,22 +1,22 @@ -Loop 习惯记录(以下简称“Loop”)能帮你养成和长期保持好习惯。 详细的图表和统计数据能让您更清楚地看到自己的进步。 这是一个完全无广告的开源应用,它尊重您的隐私。 +Loop 习惯记录(以下简称“Loop”)能帮你养成和长期保持好习惯。 通过详细的图表和统计数据,你可以清晰地看到自己的习惯是如何随着时间的推移而逐步改善的。 这是一个完全无广告的开源应用,它尊重您的隐私。 优雅、简约、轻巧 -Loop 具有优雅而简约的界面,即使对于初次使用的用户,也非常易于使用。 该应用针对速度进行了高度优化,即使在较旧的手机上也可以正常运行。 +Loop 的界面优雅而简约,即便初次使用,也能轻松上手。 该应用针对运行速度进行了高度优化,在旧手机上也表现良好。 -习惯强度 -Loop 有高级的公式来计算您习惯的强度。 多多重复会使你的习惯更牢固, 但是,与其他记录的应用不同,即便您有几天没有记录习惯,依然不会破坏您的进度。 +习惯分 +Loop 有高级的公式来计算您习惯的养成程度。 每次重复打卡都会让习惯更牢固,而每一次错过都会削弱。 不过与其他打卡的APP不同,即便您有几天没有记录习惯,依然不会破坏您的进度。 弹性计划 -除了每天习惯之外,Loop 还支持更加复杂的时间安排,例如每周三次或每天三次。 +除了每日打卡之外,Loop 还支持更加复杂的时间安排,例如每周3次或每天3次。 提醒 -设定通知以提醒您完成习惯。 您可以为每个习惯单独设置提醒,选定当天的某个时间提醒该习惯。 同时从通知中轻松地检查或取消您的习惯。 +您可以设定通知以提醒您完成习惯, 也可以为每个习惯单独设置提醒,并选定每日的提醒时间。 同时可以从通知中轻松地记录或取消打卡。 微件 -当您解锁手机时, 多彩的小部件可让您直接从主屏幕记录自己的习惯,而无需打开应用程序。 +当您解锁手机时, 缤纷的小部件可让您直接从桌面记录自己的习惯,而无需打开应用程序。 掌控您的数据 -如果您想进一步分析数据或将数据备份,则可以使用 Loop 将其导出为电子表格(CSV)或数据库文件(SQLite)。 对于高级用户,可以通过其他应用如 Tasker 实现自动化添加标记。 +如果您想进一步分析数据或将数据备份,则可以使用 Loop 将其导出为电子表格(CSV)或数据库文件(SQLite)。 对于高级用户,可以通过其他应用如 Tasker 实现自动化打卡。 无限制 想记录多少习惯都没问题! Loop 对您的习惯没有任何限制, 所有用户均可使用所有功能, 并且没有应用内购买。 @@ -24,6 +24,6 @@ Loop 有高级的公式来计算您习惯的强度。 多多重复会使你的 完全无广告的开源软件 本应用永远都不会有广告和烦人的通知,也不会索取侵入性权限。 本应用是完全开源的(GPLv3)。 -脱机工作并尊重您的隐私 -Loop 不需要网络连接或在线帐户注册。 您的用户数据永远不会发送给任何人, 包括开发人员和任何第三方都无法访问它。 +离线运行,尊重隐私 +Loop 不需要联网运行或注册在线帐号。 您的用户数据永远不会发送给任何人, 包括开发人员和任何第三方都无法访问它。 diff --git a/uhabits-android/src/main/res/values-ar-rSA/strings.xml b/uhabits-android/src/main/res/values-ar-rSA/strings.xml index ca1c23f92..33ce2d62a 100644 --- a/uhabits-android/src/main/res/values-ar-rSA/strings.xml +++ b/uhabits-android/src/main/res/values-ar-rSA/strings.xml @@ -28,6 +28,38 @@ إضافة عادة تغيير اللون تم إنشاء عادة + + تم تغيير العادة + تم تغيير العادة + تم تغيير العادتين + تم تغيير العادات + تم تغيير العادات + تم تغيير العادات + + + تم حذف العادة + تم حذف العادة + تم حذف العادتين + تم حذف العادات + تم حذف العادات + تم حذف العادات + + + تمت أرشفة العادة + تم أرشفه العادة + تمت أرشفة العادتين + تمت أرشفة العادات + تمت أرشفة العادات + تمت أرشفة العادات + + + تم الغاء ارشفه العادة + تم الغاء ارشفه العادة + تم إلغاء أرشفة العادتين + تم إلغاء أرشفة العادات + تم إلغاء أرشفة العادات + تم إلغاء أرشفة العادة + نظرة عامة قوة العادة السجل @@ -37,14 +69,14 @@ الإنجازات لا يوجد لديك عادات مفعله لقد أنهيت ألعمل لليوم - إلمس و إستمر لتحقق أو ازل. + اضغط باستمرار للتأكيد أو الإزالة. إيقاف انشاء العادة تعديل العادة - حقق + سجل لاحقاً أهلا بك - Loop Habit Tracker يساعدك في بدء عادات جيدة والحفاظ عليها. + يساعدك متتبع العادات loop في بَدْء عادات جيدة والحفاظ عليها. إنشاء بعض عادات جديدة كل يوم، بعد أداء عادتك، ضع علامة عليها في التطبيق. تتبع تقدمك @@ -53,9 +85,9 @@ 30 دقيقة ساعة واحدة ساعتان - أربع ساعات - 8 ساعات - 24 ساعة + ٤ ساعات + ٨ ساعات + ٢٤ ساعة اسأل دائماً مخصص... تبديل وضعية العادة بضغطة قصيرة @@ -64,19 +96,35 @@ أرسل الملاحظات إلى المطور إفحص التعليمات البرمجية على GitHub روابط - اسم + الاسم إعدادات حدد تأخير الغفوة هل كنت تعلم؟ لإعادة ترتيب القوائم، أضغط اسم من هذه العادة، ثم اسحبه إلى المكان الصحيح. يمكنك ان ترى المزيد أيام عن طريق وضع الهاتف في وضع أفقي. + + حذف العادة؟ + حذف العادة؟ + حذف العادتين؟ + حذف العادات؟ + حذف العادات؟ + حذف العادات؟ + + + سيتم حذف العادة بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + سيتم حذف العادة بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + سيتم حذف العادتين بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + سيتم حذف العادات بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + سيتم حذف العادات بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + سيتم حذف العادات بشكل دائم. لا يمكن التراجع عن هذه الخطوة. + العادة حذفت/لم يتم العثور عليها عطلة نهاية الأسبوع أيام الأسبوع. أي يوم. إختار أيام تصدير البيانات (CSV) - منجز + إنهاء نظف تحديد ساعات تحديد دقائق @@ -103,13 +151,13 @@ توليد تقرير الاعطال. استكشاف الأخطاء وإصلاحها. المساعدة في ترجمة هذا البرنامج. - الوضع الليلي. + الوضع الليلي استخدام أسود نقي في الوضع الليلي. يستبدل خلفيات رمادية مع أسود نقي في الوضع الليلي. يقلل من استهلاك البطارية في الهواتف مع شاشة AMOLED. . السطح البيني. ترتيب عكسي أيام. عرض أيام في ترتيب عكسي على الشاشة الرئيسية. - يوم. + يوم أسبوع. شهر. ربع سنه. @@ -150,10 +198,10 @@ على الأقل على الأكثر على سبيل المثال هل تمرنت اليوم؟ - السؤال - الهدف - نعم - لا + السؤال + الهدف + نعم + لا Change sound, vibration, light and other notification settings Customize notifications عرض نهج الخصوصية @@ -175,7 +223,7 @@ اللون مثال: 15 مثلا: الجري - مثلا: كم كيلومترًا جريته اليوم؟ + مثلا، كم ميلا ركضت اليوم؟ مثلا: كيلومترات كل شهر لا يمكن أن يكون الإسم فارغًا diff --git a/uhabits-android/src/main/res/values-ca-rES/strings.xml b/uhabits-android/src/main/res/values-ca-rES/strings.xml index ec2979478..85af18328 100644 --- a/uhabits-android/src/main/res/values-ca-rES/strings.xml +++ b/uhabits-android/src/main/res/values-ca-rES/strings.xml @@ -67,6 +67,7 @@ Pregunta sempre Personalitza... Activar/desactivar repeticions prement curt + Posa les marques de verificació amb un sol toc en lloc de prémer Valora aquesta app a Google Play Enviar resposta al desenvolupador Veure codi font a Github @@ -127,7 +128,7 @@ Dia Setmana Mes - Quatrimestre + Trimestre Any Total Sí o No @@ -138,6 +139,7 @@ Cap Filtre Amaga completat + Amagar introduït Amaga arxivades Fer les notificacions enganxós Evita les notificacions de ser pispat lluny. @@ -157,8 +159,11 @@ Per estat Exportar Prémer i mantenir per a canviar el valor + Valor Calendari Unitat + Tipus objectiu + Al menys p.e. Has fet exercici avui? Pregunta Objectiu diff --git a/uhabits-android/src/main/res/values-cs-rCZ/strings.xml b/uhabits-android/src/main/res/values-cs-rCZ/strings.xml index 1680ac9d6..2f1ced2a1 100644 --- a/uhabits-android/src/main/res/values-cs-rCZ/strings.xml +++ b/uhabits-android/src/main/res/values-cs-rCZ/strings.xml @@ -28,6 +28,30 @@ Přidat zvyk Změnit barvu Zvyk vytvořen. + + Návyk upraven + Návyky upraveny + Návyky upraveny + Návyky upraveny + + + Návyk odstraněn + Návyky odstraněny + Návyky odstraněny + Návyky odstraněny + + + Návyk archivován + Návyky archivovány + Návyky archivovány + Návyky archivovány + + + Návyk obnoven + Návyky obnoveny + Návyky obnoveny + Návyky obnoveny + Přehled Síla zvyku Historie @@ -35,8 +59,8 @@ Připomenutí Uložit Série - Nemáte zapsané žádné zvyky - Splnili jste vše pro dnešní den! + Nemáte žádné aktivní návyky + Dnes máte hotovo! Stiskni a drž pro označení Vyp. Vytvořit zvyk @@ -44,32 +68,44 @@ Hotovo Odložit Vítejte - Sledování zvyků Vám pomůže vytvořit a dosáhnout dobrých návyků. + Loop Habit Tracker vám pomůže vytvořit a udržet dobré návyky. Vytvoř si nové zvyky Každý den po splnění zvyku si ho v aplikaci zaškrtněte. - Sledujte svůj pokrok - Detailní grafy Vám ukážou, jak se Vaše zvyky v průběhu času zlepšily. + Sleduj svůj postup + Detailní grafy ukazují zlepšení vašich návyků v průběhu času. 15 minut 30 minut - Hodina + 1 hodina 2 hodiny 4 hodiny 8 hodin 24 hodin - Vždy se ptát + Vždy se dotázat Vlastní... - Označte opakování krátkým stisknutím - Zaškrtněte jediným klepnutím místo dlouhého podržení. - Ohodnoťte nás v Google Play - Zpětná vazba vývojáři - Zobrazit zdroj. kód na GitHub + Označte krátkým stisknutím + Zaškrtněte jediným klepnutím namísto dlouhého podržení. + Ohodnotit aplikaci v Google Play + Odeslat zpětnou vazbu vývojáři + Zobrazit zdrojový kód na GitHub Odkazy - Jméno + Název Nastavení Nastavit délku odložení Věděli jste? - Přeřazení záznamů proveďte stisknutím a podržením názvu zvyku a poté přesunutím na správné místo. + Pro přeřazení položek stiskněte a podržte název zvyku a přesuňte ho na správné místo. Můžete vidět více dnů otočením telefonu na šířku. + + Odstranit návyk? + Odstranit návyky? + Odstranit návyky? + Odstranit návyky? + + + Návyk bude trvale odstraněn. Tento krok je nevratný. + Návyky budou trvale odstraněny. Tento krok je nevratný. + Návyky budou trvale odstraněny. Tento krok je nevratný. + Návyky budou trvale odstraněny. Tento krok je nevratný. + Zvyk smazán / nenalezen Víkendy Pondělí až pátek @@ -85,7 +121,7 @@ Vývojáři Verze %s Frekvence - Fajfka + Zaškrtnutí Nejlepší série Každý den Každý týden @@ -96,9 +132,9 @@ Zvyky úspěšně importovány. Importovat Kompletní export - Podporuje exporty z této aplikace, ale také soubory vygenerované aplikacemi od Tickmate, HabitBull nebo Rewire. Pro více informací si prečtěte FAQ. - Generuje soubory, které mohou být otevřeny v tabulkových editorech jako jsou Microsoft Excel nebo OpenOffice Calc. Tyto soubory nelze importovat zpět. - Generuje soubor, který obsahuje všechna Vaše data. Tento soubor může být importován zpět. + Podporuje plné zálohy z této aplikace, stejně jako soubory vygenerované aplikacemi od Tickmate, HabitBull nebo Rewire. Pro více informací konzultujte FAQ. + Generuje soubory, které mohou být otevřeny v tabulkových editorech jako jsou Microsoft Excel nebo OpenOffice Calc. Tento soubor nelze importovat zpět. + Generuje soubor, který obsahuje veškerá vaše data. Tento soubor může být importován zpět. Generace výpisu chyb selhala. Generovat výpis chyb Řešení problémů @@ -119,15 +155,16 @@ Každých %d dní Každých %d týdnů Skóre - Zvuk připomínky + Zvuk upozornění Žádný Filtr Skrýt dokončené + Skrýt vyplněné Skrýt archivované Připnout upozornění Zabraňuje odstranění upozornění přejetím. Světelné upozornění - Blikání diody při upozornění. Funkční pouze na telefonech s notifikační LED diodou. + Bliká při upozornění. Pouze pro telefony s LED notifikačními světly. Opravit databázi Databáze opravena. Odznačit @@ -139,12 +176,16 @@ Abecedně Podle barvy Podle skóre - Podle statusu + Podle stavu Export Stiskněte a držte pro změnu hodnoty + Hodnota Kalendář Jednotka - Např. Cvičil jsi dnes? + Typ Cíle + Minimálně + Maximálně + např. Cvičil jsi dnes? Otázka Cíl Ano @@ -157,36 +198,36 @@ Průhlednost widgetu Upravuje průhlednost pozadí widgetu na domovské obrazovce. První den v týdnu - Dokončili jste dnes tento zvyk? + Dokončili jste dnes tento návyk? Poznámky (nepovinné) - Např. Vzbudil ses dnes brzy? Cvičil jsi dnes? Hrál jsi šachy? + např. Vzbudil ses dnes brzy? Cvičil jsi dnes? Hrál jsi šachy? Měřitelný - Např. Kolik kilometrů jsi dnes uběhl? Kolik stránek jsi dnes přečetl? + např. Kolik kilometrů jsi dnes uběhl? Kolik stránek jsi dnes přečetl? %d krát týdně %d krát za měsíc %d krát za %d dní - Např. Cvičení + např. Cvičení Barva - Např. 15 - Např. Běh - Např. Kolik kilometrů jste dnes uběhl? - Např. Kilometry + např. 15 + např. Běh + např. Kolik kilometrů jsi dnes uběhl? + např. Kilometry Každý měsíc Musíte vyplnit Dnes Vyplnit - Nenalezeny žádné zvyky - Nenalezeny žádné měřitelné zvyky - Nenalezeny žádné \"ano/ne\" zvyky - Zvětšit - Zmenšit - Povolit přeskakování dnů - Klikněte dvakrát pro přidání pomlčky (přeskočení dne) místo fajfky. Pomlčka nezmění Vaše skóre, ani nepřeruší Vaši výzvu. - Při chybějícím údaji zobrazit otazník - Odlište dny bez údajů od nesplněného zvyku. Pro zadání \"nesplněno\" klikněte dvakrát. + Žádné návyky nenalezeny + Žádné měřitelné návyky nenalezeny + Nenalezeny žádné \"ano/ne\" návyky + Zvýšit + Snížit + Umožnit přeskakování dnů + Klikněte dvakrát pro přeskočení namísto zaškrtnutí. Pomlčka nezmění vaše skóre, ani nepřeruší vaši sérii. + Zobrazit otazník pro chybějící data + Odlište dny bez údajů od nesplněného návyku. Pro zadání \"nesplněno\", klikněte dvakrát. Nyní jste vývojář - Pro daný krok nebyla nalezena aplikace - Po půlnoci prodloužit den o několik hodin - Počkat do 3:00 ráno pro zobrazení nového dne. Užitečné, pokud chodíte spát po půlnoci. Vyžaduje restartování aplikace. + Nenalezen program podporující tento krok + Prodloužit den o pár hodin po půlnoci + Počkat do tří ráno pro zobrazení nového dne. Užitečné, pokud chodíte spát po půlnoci. Vyžaduje restartování aplikace. diff --git a/uhabits-android/src/main/res/values-de-rDE/strings.xml b/uhabits-android/src/main/res/values-de-rDE/strings.xml index ca119039f..90959fbb9 100644 --- a/uhabits-android/src/main/res/values-de-rDE/strings.xml +++ b/uhabits-android/src/main/res/values-de-rDE/strings.xml @@ -105,8 +105,8 @@ Stunden auswählen Minuten auswählen Über Loop - Übersetzer und Übersetzerinnen - Entwickler und Entwicklerinnen + Übersetzer + Entwickler Version %s Häufigkeit Häkchen @@ -120,7 +120,7 @@ Gewohnheiten erfolgreich importiert. Daten importieren Vollständige Sicherung exportieren - Unterstützt vollständige Sicherungen dieser App, als auch von Tickmate, HabitBull und Rewire. Siehe FAQ für weitere Informationen. + Unterstützt vollständige Sicherungen dieser App, sowie von Tickmate, HabitBull und Rewire erzeugte Sicherungen. Siehe FAQ für weitere Informationen. Erstellt Dateien, die von Tabellenkalkulationsprogrammen wie Microsoft Excel oder LibreOffice Calc geöffnet werden können. Diese Dateien können nicht wieder importiert werden. Erstellt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden. Fehler beim Erstellen eines Fehlerberichts. @@ -172,7 +172,7 @@ Einheit Zieltyp Mindestens - Höchtens + Höchstens z.B. Hast du heute trainiert? Frage Ziel diff --git a/uhabits-android/src/main/res/values-el-rGR/strings.xml b/uhabits-android/src/main/res/values-el-rGR/strings.xml index 3457ddac7..bf322f489 100644 --- a/uhabits-android/src/main/res/values-el-rGR/strings.xml +++ b/uhabits-android/src/main/res/values-el-rGR/strings.xml @@ -28,6 +28,22 @@ Νέα συνήθεια Αλλαγή χρώματος Η συνήθεια δημιουργήθηκε + + Η συνήθεια άλλαξε + Οι συνήθειες άλλαξαν + + + Η συνήθεια διαγράφηκε + Οι συνήθειες διαγράφηκαν + + + Η συνήθεια αρχειοθετήθηκε + Οι συνήθειες αρχειοθετήθηκαν + + + Έγινε αφαίρεση αρχειοθέτησης συνήθειας + Έγινε αφαίρεση αρχειοθέτησης συνηθειών + Επισκόπηση Δύναμη συνήθειας Ιστορικό @@ -36,8 +52,9 @@ Αποθήκευση Σερί Δεν έχετε ενεργές συνήθειες + Είστε πανέτοιμοι για σήμερα! Πατήστε παρατεταμένα για επιλογή η αποεπιλογή - Χωρίς + Ανενεργό Δημιουργία συνήθειας Επεξεργασία συνήθειας Επιλογή @@ -46,34 +63,43 @@ Το Loop - Καταγραφή Συνηθειών σας βοηθάει να δημιουργήσετε και να διατηρήσετε καλές συνήθειες. Δημιουργήστε μερικές νέες συνήθειες Κάθε μέρα, με το πέρας της συνήθειας, βάλτε ένα τικ στην εφαρμογή. - Κατέγραψε την πρόοδο σου - Λεπτομερή διαγράμματα σας δείχνουν την πρόοδο των συνηθειών. + Καταγράψτε την πρόοδό σας + Λεπτομερή διαγράμματα σας δείχνουν την πρόοδο των συνηθειών σας. 15 λεπτά 30 λεπτά 1 ώρα 2 ώρες 4 ώρες 8 ώρες - 24 Ωρο + 24 ώρες Να ερωτούμαι πάντα - Προσαρμογή + Προσαρμογή... Κάντε εναλλαγή των επαναλήψεων με σύντομο πάτημα + Τοποθέτηση σημείων ελέγχου με ένα μόνο πάτημα αντί για πάτημα και αναμονή. Βαθμολογήστε αυτή την εφαρμογή στο Google Play - Στείλετε σχόλια + Αποστολή σχολίων στον προγραμματιστή Δείτε τον πηγαίο κώδικα στο GitHub Σύνδεσμοι Όνομα Ρυθμίσεις Επιλογή καθυστέρησης αναβολής - Γνωρίζατε; + Το γνωρίζατε; Αναδιατάξετε τις συνήθειες πατώντας παρατεταμένα στο όνομα και σύροντας στην σωστή θέση. Μπορείτε να δείτε περισσότερες ημέρες στην οριζόντια προβολή. - Η συνήθεια διαγράφηκε / δεν βρέθηκε + + Διαγραφή συνήθειας; + Διαγραφή συνηθειών; + + + Η συνήθεια θα διαγραφεί οριστικά. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. + Οι συνήθειες θα διαγραφούν οριστικά. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. + + Η συνήθεια διαγράφηκε / δε βρέθηκε Σαββατοκύριακα Δευτέρα μέχρι Παρασκευή Οποιαδήποτε μέρα της εβδομάδας Επιλογή ημερών - Εξαγωγή σαν CSV + Εξαγωγή ως CSV Έγινε Εκκαθάριση Επιλογή ωρών @@ -84,12 +110,12 @@ Έκδοση %s Συχνότητα Σημάδι επιλογής - Καλύτερα σερί + Τα καλύτερα σερί Κάθε μέρα Κάθε εβδομάδα - Βοήθεια & FAQ - Αποτυχία εξαγωγής. - Αποτυχία εισαγωγής. + Βοήθεια & Συχνές Ερωτήσεις + Αποτυχία εξαγωγής δεδομένων. + Αποτυχία εισαγωγής δεδομένων. Άγνωστο αρχείο. Οι συνήθειες εισάχθηκαν επιτυχώς. Εισαγωγή δεδομένων @@ -100,20 +126,20 @@ Απέτυχε ή παραγωγή αναφοράς bug. Παραγωγή αναφοράς bug. Αντιμετ.Προβλημάτων - Βοηθήστε στην μετάφραση - Νυχτ.Λειτ. + Βοηθήστε στη μετάφραση της εφαρμογής + Σκοτεινό θέμα Χρήση απόλυτου μαύρου στη νυχτ.λειτουργία Αντικαθιστά τα γκρί υπόβαθρα με απόλυτα μαύρα σε νυχτ.λειτουργία. Μειώνει την κατανάλωση μπαταρίας σε συσκευές με οθόνη AMOLED. - Διεπιφάνεια - Αναστροφή σειράς των ημερών. + Διεπαφή + Αντίστροφη σειρά ημερών Προβολή των ημερών σε αντίστροφη σειρά στην κυρία οθόνη. Ημέρα Εβδομάδα Μήνας Τρίμηνο - Χρόνος + Έτος Σύνολο - Ναι / Όχι + Ναι ή Όχι Κάθε %d ημέρες Κάθε %d εβδομάδες Σκόρ @@ -121,26 +147,32 @@ Σιωπηλό Φίλτρο Απόκρυψη ολοκληρωμένων - Απόκρυψη των αρχειοθετημένων + Απόκρυψη εισαγμένων + Απόκρυψη αρχειοθετημένων Κάντε τις ειδοποιήσεις κολλώδεις Αποτρέπει την απομάκρυνση των ειδοποιήσεων. - Ένδειξη LED ειδοποίησης + Φως ειδοποιήσεων Αναβοσβήνει μια φωτεινή ένδειξη για υπενθυμίσεις. Διαθέσιμο μόνο σε τηλέφωνα με φωτεινές ενδείξεις LED. Επισκευή βάσης δεδομένων Η βάση δεδομένων επισκευάστηκε. Ξεμαρκάρισμα Εναλλαγή - Δράση - Συνήθειες + Ενέργεια + Συνήθεια Ταξινόμηση Χειροκίνητα - Κατά όνομα - Με χρώμα + Ανά όνομα + Ανά χρώμα Με σκορ + Κατά κατάσταση Εξαγωγή Πατήστε και κρατήστε πατημένο για να αλλάξετε την τιμή + Τιμή Ημερολόγιο Μονάδα + Τύπος Στόχου + Τουλάχιστον + Το πολύ π.χ. Ασκήθηκες σήμερα; Ερώτηση Στόχος @@ -148,7 +180,7 @@ Όχι Αλλαγή ρυθμίσεων ήχου, δόνησης, φωτισμού και άλλων ειδοποιήσεων Προσαρμογή ειδοποιήσεων - Προβολή πολιτικής προστασίας προσωπικών δεδομένων + Προβολή πολιτικής απορρήτου Προβολή όλων των συντελεστών… Βάση δεδομένων Διαφάνεια widget @@ -159,16 +191,31 @@ (Προαιρετικό) π.χ. Ξύπνησες νωρίς σήμερα; Ασκήθηκες; Έπαιξες σκάκι; Μετρήσιμο + π.χ. Πόσα χιλιόμετρα τρέξατε σήμερα; Πόσες σελίδες διαβάσατε; %d φορές την εβδομάδα %d φορές το μήνα - %d φορές την %d ημέρες + %d φορές σε %d ημέρες π.χ. Σωματική άσκηση Χρώμα π.χ. 15 π.χ. Τρέξιμο - π.χ. Πόσα χιλιόμετρα έτρεξες σήμερα? + π.χ. Πόσα χιλιόμετρα τρέξατε σήμερα; π.χ. χιλιόμετρα Κάθε μήνα Δεν μπορεί να είναι κενό Σήμερα + Εισαγωγή + Δεν βρέθηκαν συνήθειες + Δεν βρέθηκαν μετρήσιμες συνήθειες + Δεν βρέθηκαν συνήθειες ναι-ή-όχι + Αύξηση + Μείωση + Ενεργοποίηση παράλειψης ημερών + Εναλλαγή δύο φορές για να προσθέσετε μια παράκαμψη αντί για ένα σημάδι ελέγχου. Οι παραλείψεις κρατούν το σκορ σας αμετάβλητο και να δε σπάνε το σερί σας. + Εμφάνιση ερωτηματικών για τα δεδομένα που λείπουν + Διαφορικές ημέρες χωρίς δεδομένα από πραγματικές παραλήψεις. Για να εισάγετε μια παράληψη, κάντε εναλλαγή δύο φορές. + Είστε πλέον προγραμματιστής + Δεν βρέθηκε εφαρμογή για την υποστήριξη αυτής της ενέργειας + Επεκτείνετε την ημέρα λίγες ώρες μετά τα μεσάνυχτα + Περιμένετε μέχρι τις 3:00 πμ για να εμφανιστεί μια νέα μέρα. Χρήσιμο αν συνήθως πάτε για ύπνο μετά τα μεσάνυχτα. Απαιτεί επανεκκίνηση της εφαρμογής. diff --git a/uhabits-android/src/main/res/values-es-rES/strings.xml b/uhabits-android/src/main/res/values-es-rES/strings.xml index 44bcdec51..28d1fae9b 100644 --- a/uhabits-android/src/main/res/values-es-rES/strings.xml +++ b/uhabits-android/src/main/res/values-es-rES/strings.xml @@ -64,7 +64,7 @@ Crea algunos hábitos nuevos Cada día, después de realizar tu hábito, pon una marca en la aplicación. Haz un seguimiento de tu progreso - Gráficos detallados muestran cómo mejoraron sus hábitos con el tiempo. + Gráficos detallados te muestran cómo mejoraron tus hábitos con el tiempo. 15 minutos 30 minutos 1 hora @@ -76,7 +76,7 @@ Personalizar... Marca las repeticiones con una pulsación corta Ponga marcas de verificación con un solo toque en lugar de mantener presionado. - Valora esta aplicación en Google Play + Califica esta aplicación en Google Play Enviar sugerencias al desarrollador Ver código fuente en GitHub Enlaces @@ -84,7 +84,7 @@ Configuración Seleccione el retardo de la interrupción ¿Sabías qué? - Para reordenar las entradas, mantén pulsado el nombre del hábito, después arrástralo a su posición correcta. + Para reorganizar las entradas, mantén presionado el nombre del hábito y luego arrástralo al lugar correcto. Puedes ver más días al poner tu teléfono en modo horizontal. ¿Eliminar hábito? @@ -113,30 +113,30 @@ Mejores rachas Diariamente Semanalmente - Ayuda & FAQ + Ayuda & Preguntas frecuentes Error al exportar datos. Error al importar datos. Archivo no reconocido. Hábitos importados exitosamente. Importar datos Exportar copia de seguridad - Soporta exportar copias de seguridad completas, así como archivos generados por Tickmate, HabitBull o Rewire. Mira el FAQ para más información. - Genera archivos que pueden ser abiertos por programas de hojas de cálculo como Microsoft Excel o OpenOffice Calc. Este archivo no puede volver a importarse. - Genera un archivo que contiene todos tus datos. Este archivo puede volver a importarse. + Es compatible con exportar copias de seguridad completas, así como archivos generados por Tickmate, HabitBull o Rewire. Mira el FAQ para más información. + Genera archivos que pueden ser abiertos por programas de hojas de cálculo como Microsoft Excel o OpenOffice Calc. Este archivo no puede volver a importarse de vuelta. + Genera un archivo que contiene todos tus datos. Este archivo puede volver a importarse de vuelta. Error al generar el reporte de error. - Generar reporte de errores + Generar informe de bug Solución de problemas - Ayuda a traducir esta app + Ayuda a traducir esta aplicación Modo nocturno Utilizar color negro en modo nocturno Reemplaza fondos grises por color negro en modo nocturno. Reduce el consumo de batería en teléfonos con pantalla AMOLED. Interfaz - Orden inverso de días - Mostrar días en orden inverso en la pantalla principal + Invertir el orden de los días + Mostrar días en orden inverso en la pantalla principal. Día Semana Mes - Cuatrimestre + Trimestre Año Total Sí / No @@ -149,9 +149,9 @@ Ocultar completos Ocultar ingresado Ocultar archivados - Hacer notificaciones fijas + Hacer que las notificaciones sean fijas Evita que las notificaciones sean descartadas. - Luz de notificaciones + Luz de notificación Muestra una luz intermitente para recordatorios. Solo disponible en teléfonos con luces de notificación LED. Reparar base de datos Base de datos reparada. @@ -176,9 +176,9 @@ ej. ¿Has ejercitado hoy? Pregunta Objetivo - Si + No - Cambiar el sonido, la vibración, la luz y otras configuraciones de notificación + Cambiar sonido, vibración, luz y otros ajustes de notificación Personalizar las notificaciones Ver política de privacidad Ver todos los colaboradores… @@ -189,16 +189,16 @@ ¿Has completado este hábito hoy? Notas (Opcional) - por ejemplo, ¿te despertaste temprano hoy? ¿Hiciste ejercicio? ¿Jugaste al ajedrez? + ej. ¿Te levantaste temprano hoy? ¿Hiciste ejercicio? ¿Jugaste al ajedrez? Medible - ej. ¿Cuántas millas ha corrido hoy? ¿Cuántas páginas ha leído? + ej. ¿Cuántas millas has corrido hoy? ¿Cuántas páginas has leído? %d veces por semana %d veces al mes %d veces en %d días ej. Ejercicio Color ej. 15 - por ejemplo, correr + ej. Correr ej. ¿Cuántos kilómetros has corrido hoy? ej. kilómetros Cada mes @@ -209,11 +209,11 @@ No se encontraron hábitos medibles No se encontraron hábitos de sí o no Incrementar - Decrementar + Disminuir Habilitar días libres - Alternar dos veces para agregar un salto en lugar de una marca de verificación. Los saltos mantienen su puntaje sin cambios y no rompen su racha. - Mostrar interrogantes para datos faltantes - Diferenciar los días sin datos de los lapsos reales. Para ingresar un lapso, alternar dos veces. + Presionar dos veces para agregar un salto en lugar de una marca de verificación. Los saltos mantienen tu puntaje sin cambios y no rompen tu racha. + Mostrar signos de interrogación para datos faltantes + Diferenciar los días sin datos de los lapsos reales. Para ingresar un lapso, presionar dos veces. Ahora eres desarrollador No se encontró ninguna aplicación que admita esta acción Ampliar día unas horas después de medianoche diff --git a/uhabits-android/src/main/res/values-eu-rES/strings.xml b/uhabits-android/src/main/res/values-eu-rES/strings.xml index e651b5ad5..f40266ce6 100644 --- a/uhabits-android/src/main/res/values-eu-rES/strings.xml +++ b/uhabits-android/src/main/res/values-eu-rES/strings.xml @@ -40,6 +40,10 @@ Ohitura artxibatu da Ohiturak artxibatu dira + + Ohitura desartxibatu da + Ohiturak desartxibatu dira + Ikuspegi orokorra Ohituraren indarra Historia @@ -71,6 +75,7 @@ Galdetu beti Pertsonalizatua... Ukitze laburrarekin markatu + Jarri kontrol-markak ukitu bakar batekin sakatu eta eutsi beharrean. Aplikazio hau Google Playen puntuatu Zure iritzia garatzaileari bidali Iturburu kodea GitHuben ikusi @@ -85,6 +90,10 @@ Ohiturak ezabatu Ohiturak ezabatu + + Ohitura betirako ezabatuko da. Ekintza hau ezin da desegin. + Ohiturak betirako ezabatuko dira. Ekintza hau ezin da desegin. + Ohitura ezabatua / ez aurkitua Asteburuak Astelehenetik ostiralera @@ -138,6 +147,7 @@ Bat ere ez Iragazkia Ezkutatu lortutakoak + Ezkutatu betetakoak Ezkutatu artxibatutakoak Jakinarazpenak itsaskorrak bihurtu Jakinarazpenak keinu batez ezabatzea sahiesten du. @@ -160,6 +170,7 @@ Balioa Egutegia Unitatea + Helburu mota Gutxienez Gehienez adib. ariketa egin al duzu gaur? @@ -180,6 +191,7 @@ (Aukerazkoa) adib. Gaur goiz esnatu zara? Ariketa fisikoa egin al duzu? Xakean jolastu al duzu? Neurgarria + Adib. Zenbat kilometro egin dituzu gaur? Zenbat orrialde irakurri dituzu? Astean %d aldiz Hilean %d aldiz %d aldiz %d egunetan @@ -196,8 +208,12 @@ Ez da ohiturarik aurkitu Ez da aurkitu ohitura neurgarririk Ez da bai-ala-ez ohiturarik aurkitu + Gaitu atseden egunak + Sakatu bi aldiz kontrol-markaren ordez atseden bat gehitzeko. Atsedenek zure puntuazioa aldatu gabe mantentzen dute eta ez dute segida hausten. Adierazi galdera ikurra falta diren datuetan + Bereizi daturik gabeko egunak benetako hutsegiteetatik. Hutsegite bat sartzeko, sakatu bi aldiz. Garatzailea zara! Ez da aurkitu akzio hau gauzatu dezakeen aplikaziorik + Luzatu eguna gauerdia osteko ordu batzuetara Itxaron goizeko 3:00ak arte egun berri bat erakusteko. Erabilgarria normalean gauerdia pasata lotara joaten bazara. Aplikazioa berrabiarazi behar da. diff --git a/uhabits-android/src/main/res/values-fa-rIR/strings.xml b/uhabits-android/src/main/res/values-fa-rIR/strings.xml index ae6c915cf..391e558d4 100644 --- a/uhabits-android/src/main/res/values-fa-rIR/strings.xml +++ b/uhabits-android/src/main/res/values-fa-rIR/strings.xml @@ -147,7 +147,7 @@ هیچ‌کدام فیلتر مخفی کردن کامل‌شده‌ها - پنهان کردن مقادیر + پنهان کردن مقادیر مخفی کردن بایگانی‌شده‌ها چسبناک کردن اعلان‌ها از رد کردن اعلان با کشیدن جلوگیری می‌کند. diff --git a/uhabits-android/src/main/res/values-fi-rFI/strings.xml b/uhabits-android/src/main/res/values-fi-rFI/strings.xml index 867aec122..5dbc61f06 100644 --- a/uhabits-android/src/main/res/values-fi-rFI/strings.xml +++ b/uhabits-android/src/main/res/values-fi-rFI/strings.xml @@ -147,7 +147,7 @@ Ei mitään Suodata Piilota suoritetut - Piilota syötetty + Piilota syötetty Piilota arkistoidut Tee ilmoituksesta kiinnitettyjä Estää ilmoitusten pois pyyhkäisemisen. diff --git a/uhabits-android/src/main/res/values-fr-rFR/strings.xml b/uhabits-android/src/main/res/values-fr-rFR/strings.xml index 69672682b..1132dd261 100644 --- a/uhabits-android/src/main/res/values-fr-rFR/strings.xml +++ b/uhabits-android/src/main/res/values-fr-rFR/strings.xml @@ -75,7 +75,7 @@ Toujours demander Personnaliser... Valider l\'habitude avec un appui court - Cochez les cases d\'un simple appuie au lieu de les maintenir + Cochez les cases d\'un simple appui au lieu de les maintenir Notez cette app sur le Google Play Store Envoyez un avis au développeur Voir le code source sur GitHub @@ -147,7 +147,7 @@ Aucun Filtre Cacher les habitudes complétées - Cacher les entrées + Cacher les entrées Cacher les habitudes archivées Rendre les notifications persistantes Évite que les notifications ne soient enlevées. diff --git a/uhabits-android/src/main/res/values-gu-rIN/strings.xml b/uhabits-android/src/main/res/values-gu-rIN/strings.xml new file mode 100644 index 000000000..3a895c006 --- /dev/null +++ b/uhabits-android/src/main/res/values-gu-rIN/strings.xml @@ -0,0 +1,20 @@ + + + diff --git a/uhabits-android/src/main/res/values-hi-rIN/strings.xml b/uhabits-android/src/main/res/values-hi-rIN/strings.xml index 916cf90d0..2bd2de184 100644 --- a/uhabits-android/src/main/res/values-hi-rIN/strings.xml +++ b/uhabits-android/src/main/res/values-hi-rIN/strings.xml @@ -28,36 +28,38 @@ आदत जोड़ें रंग बदलें आदत बनायी गई + + Habit changed + Habits changed + - आदत हटाई गई - आदतें हटाई गई + Habit deleted + Habits deleted - आदत संग्रहित की गई - आदतें संग्रहीत की गई + Habit archived + Habits archived - आदत असंग्रहीत की गई + आदतें असंग्रहीत की गई आदतें असंग्रहीत की गई अवलोकन - आदत शक्ति - पूर्वलेख - साफ करें - अनुस्मारक - सहेजें - प्रवर्ति - \"आपकी कोई सक्रिय आदत नही है -\" - आप के आज के सभी कार्य समाप्त होते हैं - चेक या अनचेक करने के लिए दबाएँ व दबाएँ रखें - बंद + आदत की मजबूती + पुराना आदत + खाली करें + याद दिलाए + सेव करें + सिलसीला + आपकी कोई सक्रिय आदत नहीं है + आप के आज के लिए काम तमाम ! + चेक या अनचेक करने के लिए दबाएँ या दबा के रखे + बंद करे नयी आदत बनाएं आदत में बद्लाव करें - अंकित करें + जाञ्च करें बाद में - \" -स्वागत हे\" + स्वागत है लूप हैबिट ट्रैकर नई और अच्छी आदतों को बनाए रखने मे मदद करता है । कुछ नई अच्छी आदतें बनाएँ हर दिन, अपनी आदत के प्रदर्शन के बाद, ऐप पर एक सही का निशान डालें @@ -75,6 +77,7 @@ हमेशा पूछें अपने तरीके से बनाएं टॉगल पुनरावृत्ति हल्का दबाने से + प्रेस-एंड-होल्ड के बजाय एक टैप से चेकमार्क लगाएं। \" गूगले प्ले पर इस ऐप्लिकेशन को रेट करें\" डेवेलपर को प्रतिक्रिया भेजें @@ -99,8 +102,7 @@ आदत हटाई गई / नहीं मिली \" सप्ताहांत\" - \" -सोमवार से शुक्रवार\" + सोमवार से शुक्रवार \" सप्ताह का कोई भी दिन\" दिन चुनें @@ -172,6 +174,7 @@ कोई आवाज नहीं\" फिल्टर पूर्ण छुपाएं + गुप्त प्रवेश संग्रहीत छुपाएं सुचनाए स्थयी रखे नोटिफिकेशन को स्वाइप करने से रोकता है! @@ -191,8 +194,12 @@ स्थिति से एक्सपोर्ट करे बदलने के लिए दबाकर रखें + मान कैलेंडर इकाई + लक्ष्य प्रकार + कम से कम + ज्यादा से ज्यादा जैसे आपने आज व्यायाम किया? प्रश्न लक्ष्य diff --git a/uhabits-android/src/main/res/values-hr-rHR/strings.xml b/uhabits-android/src/main/res/values-hr-rHR/strings.xml index 950eb1b46..a73ec99b7 100644 --- a/uhabits-android/src/main/res/values-hr-rHR/strings.xml +++ b/uhabits-android/src/main/res/values-hr-rHR/strings.xml @@ -28,6 +28,21 @@ Dodaj naviku Promijeni boju Navika je stvorena + + Navika je obrisana + Navike su izbrisane + Navike su izbrisane + + + Navika je arhivirana + Navike su arhivirane + Navike su arhivirane + + + Navika je dearhivitana + Navike su dearhivirane + Navike su dearhivirane + Pregled Snaga navike Povijest @@ -36,6 +51,7 @@ Spremi Niz Nemate aktivnih navika + Navike za danas su završene Pritisnite i držite za označavanje ili odznačavanje. Isključen Stvori naviku @@ -55,6 +71,8 @@ 4 sata 8 sati 24 sata + Uvijek pitaj + Prilagođeno … Označi ponavljanja sa kratkim pritisk. Ocijeni ovu aplikaciju na Google Playu Pošalji povratne informacije raz. programeru @@ -62,6 +80,7 @@ Poveznice Naziv Postavke + Odaberi vrijeme odgode Jeste li znali? Za razmještanje unosa, pritisnite i držite naziv navike, pa ih premjestite na točno mjesto. Možete vidjeti više dana prebacivanjem uređaja u vodoravnu orijentaciju. @@ -110,6 +129,7 @@ Četvrtina Godina Ukupno + Da ili Ne Svaka %d dana Svaka %d tjedna Rezultat @@ -117,9 +137,12 @@ Nijedan Filtar Sakrij završeno + Sakrij unesene Sakrij arhivirano Učini obavijesti trajnima Spriječava da se obavijesti zanemare. + Svjetlo obavijesti + Pali bljeskalicu za podsjetnike. Dostupno samo na uređajima s LED svjetlosnim obavijestima. Popravi bazu podataka Baza podataka je popravljena. Odznači @@ -131,6 +154,48 @@ Po nazivu Po boji Po rezultatu + Po statusu Izvezi + Pritisni i zadrži za promjenu vrijednosti + Vrijednost + Kalendar + Jedinica + Vrsta cilja + Najmanje + Najviše + npr. Jesi li vježbao/la danas? + Pitanje + Cilj + Da + Ne + Postavi zvuk, vibraciju, svjetlo i druge postavke obavijesti + Prilagodi obavijesti + Prikaži pravila o privatnosti + Pregledaj sve suradnike… + Baza podataka + Prozirnost widgeta + Povećava ili smanjuje prozirnost widgeta na početnom zaslonu. + Prvi dan u tjednu + Jesi li ispunio/la ovu naviku danas? + Bilješke + (Neobvezno) + npr. Jesi li se danas rano probudio/la? Jesi li vježbao/la? Jesi li igrao/la šah? + Mjerljivo + npr. Koliko si kilometara danas istrčao/la? Koliko si stranica pročitao/la? + %d puta tjedno + %d puta mjesečno %d puta u %d dani + npr. Vježbaj + Boja + npr. 15 + npr. Trči + npr. Koliko si kilometara danas trčao/la? + npr. kilometri + Svaki mjesec + Ne može ostati prazno + Danas + Unesi + Navike nisu pronađene + Mjerljive navike nisu pronađene + Da/Ne navike nisu pronađene diff --git a/uhabits-android/src/main/res/values-hu-rHU/strings.xml b/uhabits-android/src/main/res/values-hu-rHU/strings.xml index ec0953246..f206c05fc 100644 --- a/uhabits-android/src/main/res/values-hu-rHU/strings.xml +++ b/uhabits-android/src/main/res/values-hu-rHU/strings.xml @@ -75,6 +75,7 @@ Mindig rákérdez Egyedi... Bejelölés rövid koppintással + Nyomva tartás helyett koppintással tudja a napokat kipipálni. Értékeld az alkalmazást a Google Play-en Visszajelzés küldése a fejlesztőnek Forráskód megtekintése a GitHub-on @@ -151,6 +152,7 @@ Nem ismétlődik Szűrő Elvégzettek elrejtése + Ha bekapcsolta a kérdőjelek megjelenítését, akkor az \"Elvégzettek elrejtése\" helyett a \"Beírtak elrejtése\" fog megjelenni. Ez a beállítás elrejti az összes olyan szokást, amelyhez adat lett megadva, nem csak az elvégzetteket. Így el tudja rejteni azokat a szokásokat is, amelyekkel a nap elején kudarcot vallott. Archiváltak elrejtése Az értesítések legyenek ragadósak Megakadályozza az értesítések eltávolítását @@ -170,8 +172,12 @@ Állapot szerint Exportálás Az érték módosításához tartsd lenyomva + Érték Naptár Egység + Célkitűzés típusa + Legalább + Legfeljebb pl. Edzettél ma? Kérdés Cél diff --git a/uhabits-android/src/main/res/values-is-rIS/strings.xml b/uhabits-android/src/main/res/values-is-rIS/strings.xml new file mode 100644 index 000000000..7753f38f5 --- /dev/null +++ b/uhabits-android/src/main/res/values-is-rIS/strings.xml @@ -0,0 +1,173 @@ + + + + Venjur + Stillingar + Breyta + Eyða + Setja í geymslu + Taka úr geymslu + Ný venja + Breyta lit + Venja sköpuð + + Venju breytt + Venjur breyttar + + Yfirlit + Ferill + Hreinsa + Áminning + Vista + Þú ert búin(n) í dag! + Af + Búa til venju + Breyta venju + Merkja + Seinna + Velkomin(n) + Fylgstu með framförum þínum + 15 mínútur + 30 mínútur + 1 klukkustund + 2 Klukkustundir + 4 klukkustundir + 8 klukkustundir + Sólarhring + Alltaf spyrja + Sérsniðið… + Gefa forriti einkunn á Google Play + Senda athugasemdir til höfunda + Skoða frumkóðann á GitHub + Tenglar + Heiti + Stillingar + Stilla töf á blundi + Vissir þú? + + Eyða venju? + Eyða venjum? + + Helgar + Virka daga + Alla daga + Veldu daga + Flytja út sem CSV + Í lagi + Hreinsa + Veldu klukkustundir + Veldu mínútur + Um + Þýðendur + Hönnuðir + Útgáfa %s + Tíðni + Gátmerki + Daglega + Vikulega + Aðstoð og algengar spurningar + Mistókst að flytja gögn út. + Mistókst að flytja inn gögn. + Skrá ekki þekkt. + Venjur fluttar inn. + Flytja inn gögn + Flytja út fullt öryggisafrit + Mistókst að búa til villuskýrslu. + Búa til villuskýrslu + Leysa vandamál + Hjálpa til við að þýða + Dökkt þema + Nota kolsvarta þemu + Viðmót + Dagur + Vika + Mánuður + 3 mánuðir + Ár + Samtals + Já eða nei + Á %d daga fresti + Á %d vikna fresti + Árangur + Tilkynningarhljóð + Ekkert + Sía + Fela lokuð + Fela í geymslu + Tilkynningaljós + Lagfæra gagnagrunn + Gagnagrunnur lagfærður. + Afmerkja + Víxla + Aðgerð + Venja + Raða + Handvirkt + Eftir heiti + Eftir lit + Eftir árangri + Eftir stöðu + Flytja út + Haltu inni til að breyta gildi + Gildi + Dagatal + Mælieining + Tegund markmiðs + Að minnsta kosti + Í mesta lagi + t.d., Æfðir þú þig í dag? + Spurning + Markmið + + Nei + Breyta hljóði, titringi, ljósi og öðrum tilkynningastillingum + Sérsníða tilkynningar + Skoða persónuverndarstefnu + Skoða alla þátttakendur… + Gagnagrunnur + Ógegnsæi græju + Fyrsti dagur vikunar + Hefurðu gert þetta í dag? + Minnispunktur + (Valfrjálst) + t.d., Vaknaðir þú snemma í dag? Æfðir þú þig? Tefldir þú skák? + Mælanlegt + t.d., Hversu marga kílómetra hljópstu í dag? Hvað lasstu margar blaðsíður? + %d sinnum í viku + %d sinnum á mánuði + %d sinnum á %d dögum + t.d., Æfa sig + Litur + t.d., 15 + t.d., Hlaupa + t.d., Hversu marga kílómetra hljópstu í dag? + t.d., kílómetra + Hvern mánuð + Má ekki vera autt + Í dag + Setja inn + Engar venjur fundust + Engar mælanlegar venjur fundust + Engar já/nei venjur fundust + Hækka + Lækka + Lengja daginn nokkrar klukkustundir yfir miðnætti + Bíða til klukkan 03:00 til að sýna nýjan dag. Gagnlegt ef þú ferð að sofa eftir miðnætti. Krefst endurræsingar forritsins. + diff --git a/uhabits-android/src/main/res/values-it-rIT/strings.xml b/uhabits-android/src/main/res/values-it-rIT/strings.xml index a9a3e5b13..2ddf6e76f 100644 --- a/uhabits-android/src/main/res/values-it-rIT/strings.xml +++ b/uhabits-android/src/main/res/values-it-rIT/strings.xml @@ -136,7 +136,7 @@ Giorno Settimana Mese - Quadrimestre + Trimestre Anno Totale Sì o No diff --git a/uhabits-android/src/main/res/values-iw-rIL/strings.xml b/uhabits-android/src/main/res/values-iw-rIL/strings.xml index 35bec1fff..6c2b6f396 100644 --- a/uhabits-android/src/main/res/values-iw-rIL/strings.xml +++ b/uhabits-android/src/main/res/values-iw-rIL/strings.xml @@ -29,10 +29,10 @@ שינוי צבע ההרגל נוצר - ההרגל השתנה - ההרגלים השתנו - ההרגלים השתנו - ההרגלים השתנו + ההרגל שוּנה + ההרגלים שונו + ההרגלים שונו + ההרגלים שונו ההרגל נמחק @@ -52,27 +52,27 @@ ההרגלים הוצאו מארכיון ההרגלים הוצאו מארכיון - סקירה כללית + מבט על חוזק ההרגל היסטוריה ניקוי תזכורת שמירה - רצפים + שיאים אין לך הרגלים פעילים - סיימת הכול להיום! - לחיצה והחזקה יסמנו או יבטלו את הסימון + זהו להיום! + לחיצה ארוכה תסמן או תבטל את הסימון כבוי יצירת הרגל עריכת הרגל סימון מאוחר יותר ברוך בואך - יישום ”Loop לניהול הרגלים“ מסייע לך להתחיל ולשמר הרגלים טובים. + ‏”Loop לניהול הרגלים“ מסייע לך להתחיל ולשמר הרגלים טובים. יצירת הרגלים חדשים - בכל יום, לאחר ביצוע ההרגל, יש לסמן זאת ביישום. + בכל יום, לאחר ביצוע ההרגל, מסמנים את זה ביישום. מעקב אחר ההתקדמות - גרפים מפורטים מציגים כיצד שיפרת את ההרגלים לאורך זמן. + גרפים מפורטים מציגים את השתפרות ההרגלים לאורך זמן. רבע שעה חצי שעה שעה @@ -83,17 +83,17 @@ תמיד לשאול התאמה אישית... סימון הרגלים בלחיצה קצרה - סימון הרגלים בעזרת הקשה יחידה במקום בעזרת הקשה והחזקה. + סימון הרגלים בלחיצה פשוטה במקום לחיצה והחזקה. דירוג היישום ב־Google Play שליחת משוב למפתח צפייה בקוד המקור ב־GitHub קישורים שם הגדרות - נא לבחור זמן לדחיית התזכורת + נא לבחור בכמה זמן לדחות את התזכורת הידעת? - לשינוי סדר ההרגלים, יש ללחוץ לחיצה ארוכה על ההרגל ולגרור אותו למקום הרצוי. - אפשר לראות ימים נוספים בעזרת סיבוב המסך לתצוגה אופקית. + אפשר לשנות את סדר ההרגלים בעזרת לחיצה ארוכה על הרגל וגרירתו למקום הרצוי. + אפשר לסובב את המסך לרוחב ולראות ימים נוספים. למחוק את ההרגל? למחוק את ההרגלים? @@ -116,32 +116,32 @@ ניקוי בחירת שעות בחירת דקות - על אודות + מידע כללי תרגום פיתוח גרסה %s תדירות סימון הרגל - רצף שיא + שיאי התמדה כל יום כל שבוע עזרה ושאלות נפוצות ייצוא הנתונים נכשל. ייבוא הנתונים נכשל. - הקובץ אינו מזוהה. - ההרגלים יובאו בהצלחה. + קובץ לא מזוהה. + ייבוא ההרגלים הצליח. ייבוא נתונים ייצוא גיבוי מלא - תומך בכל הגיבויים שיוצאו מהיישום הזה, כמו־גם בקבצים שנוצרו על ידי Tickmate, ‏HabitBull או Rewire. למידע נוסף נא לעיין בשאלות הנפוצות. - ליצירת קבצים שנפתחים בתוכנת גיליון אלקטרוני כגון Microsoft Exel או OpenOffice Calc. לא ניתן לייבא את הקובץ בחזרה. + יש תמיכה בכל הגיבויים שיוצאו מיישום זה, וגם בקבצים שנוצרו על ידי Tickmate, ‏HabitBull או Rewire. למידע נוסף נא לעיין בשאלות הנפוצות. + ליצירת קבצים שנפתחים בתוכנת גיליונות אלקטרוניים כמו Microsoft Exel או OpenOffice Calc. לא ניתן לייבא את הקובץ בחזרה. ליצירת קובץ שמכיל את כל הנתונים שלך. לא ניתן לייבא את הקובץ בחזרה. יצירת דו״ח התקלה נכשלה. יצירת דו״ח תקלה פתרון תקלות - עזרה בתרגום היישום + סיוע בתרגום היישום ערכת נושא כהה רקע שחור מוחלט בערכת הנושא הכהה - להחלפת הרקע האפור בערכת הנושא הכהה לשחור מוחלט. זה מפחית את צריכת הסוללה במכשירים עם תצוגת AMOLED. + החלפת הרקע האפור בערכת הנושא הכהה לשחור מוחלט. מפחית את צריכת הסוללה במכשירים עם תצוגת AMOLED. ממשק סדר ימים הפוך הצגת הימים בסדר הפוך במסך הראשי. @@ -150,7 +150,7 @@ חודש רבעון שנה - בסך הכול + סה״כ כן או לא כל %d ימים כל %d שבועות @@ -159,15 +159,15 @@ ללא סינון הסתרת יעדים שהושגו - הסתרת ההרגלים שהושלמו + הסתרת ההרגלים שסומנו הסתרת הארכיון - יצירת תזכורות נעוצות + הצמדת כל ההתראות למניעת התעלמות מתזכורות. תאורת התראה - להצגת אור מהבהב לתזכורות. זמין רק בטלפונים עם נורות LED להתראות. + להצגת אור מהבהב לתזכורות. התכונה זמינה רק בטלפונים עם נורות LED להתראות. תיקון מסד הנתונים מסד הנתונים תוקן. - ביטול סימון + ביטול הסימון סימון או ביטול הסימון פעולה הרגל @@ -178,7 +178,7 @@ לפי ציון לפי מצב ייצוא - לחיצה והחזקה ישנו את הערך + לחיצה ארוכה תשנה את הערך ערך לוח שנה יחידה @@ -191,12 +191,12 @@ כן לא שינוי הצליל, הרטט, התאורה והגדרות התראה אחרות - התאמת ההתראות - הצגת מדיניות הפרטיות + אפשרויות התראה + צפייה במדיניות הפרטיות הצגת כל המתנדבים… מסד נתונים אטימות היישומונים - להפיכת היישומונים שקופים או אטומים יותר במסך הבית שלך. + הפיכת היישומונים במסך הבית לשקופים או אטומים יותר. היום הראשון בשבוע השלמת את ההרגל הזה היום? הערות @@ -207,7 +207,7 @@ %d פעמים בשבוע %d פעמים בחודש %d פעמים ב־%d ימים - למשל: התעמלות + למשל: פעילות גופנית צבע למשל: 15 למשל: ריצה diff --git a/uhabits-android/src/main/res/values-ja-rJP/strings.xml b/uhabits-android/src/main/res/values-ja-rJP/strings.xml index dc7d077f2..2f2a419d3 100644 --- a/uhabits-android/src/main/res/values-ja-rJP/strings.xml +++ b/uhabits-android/src/main/res/values-ja-rJP/strings.xml @@ -48,7 +48,7 @@ 保存 連続記録 習慣はありません - 今日は終わり! + 今日の習慣はすべて完了しました! 長押しするとチェックを付けたり外したりできます オフ 習慣を作成 @@ -104,7 +104,7 @@ バージョン %s 頻度 チェック - 最高の連続記録 + 最長の連続記録 毎日 毎週 ヘルプ & FAQ @@ -151,20 +151,22 @@ データベースが修復されました。 チェックを外す 切り替え - 動作 + アクション 習慣 並び替え 手動で並び替え 名前で並び替え 色で並び替え - 得点で並び替え - ステータス順 + スコアで並び替え + ステータスで並び替え エクスポート 長押しすると値を変更できます カレンダー 単位 + 目標タイプ 少なくとも + 最大でも 例:今日は運動しましたか? 質問 目標 @@ -183,7 +185,7 @@ (省略可) 例:今日は早く起きましたか?運動しましたか?チェスをしましたか? 数えられるもの - 例:今日は何キロ走ったの?何ページ読んだの? + 例:今日は何キロ走りましたか?何ページ読みましたか? 1 週間に %d 回 1 か月に %d 回 %d 回 %d 日 @@ -198,7 +200,16 @@ 今日 入力 習慣が見つかりませんでした + 量を記録するタイプの習慣は見つかりませんでした + はい/いいえタイプの習慣は見つかりませんでした + 増加 + 減少 スキップ日を有効にする + 2回切り替えることで、チェックマークの代わりにスキップを追加できます。スキップはスコアに影響を与えず、連続記録を継続させたままにできます。 + 入力のない日に?マークを表示する + データが未入力である日と実行しなかった日とを区別します。実行しなかったことを記録するには、2回切り替えます。 これで開発者になりました! この操作を行うアプリが見つかりませんでした。 + 一日の終わりを午前0時から数時間延長する + 一日の始まりを午前3時にします。よく午前0時以降に就寝する場合に役立ちます。アプリの再起動が必要です。 diff --git a/uhabits-android/src/main/res/values-ka-rGE/strings.xml b/uhabits-android/src/main/res/values-ka-rGE/strings.xml new file mode 100644 index 000000000..7c01aceb4 --- /dev/null +++ b/uhabits-android/src/main/res/values-ka-rGE/strings.xml @@ -0,0 +1,221 @@ + + + + Loop — ჩვევების ტრეკერი + ჩვევები + პარამეტრები + რედაქტირება + წაშლა + დაარქივება + არქივიდან გამოტანა + ჩვევის დამატება + ფერის შეცვლა + ჩვევა შეიქმნა + + ჩვევა დარედაქტირდა + ჩვევები დარედაქტირდა + + + ჩვევა წაიშალა + ჩვევები წაიშალა + + + ჩვევა დაარქივდა + ჩვევები დაარქივდა + + + ჩვევა აღდგა არქივიდან + ჩვევები აღდგა არქივიდან + + მიმოხილვა + ჩვევის გაჯდომის დონე + ისტორია + წაშლა + შეხსენება + შენახვა + სერიები + არ გაქვს მოქმედი ჩვევები + დღეისთვის სულ ეს იყო, ყველაფერი შეასრულე! + დააჭირე ხანგრძლივად თოლიის (✓) ჩასანიშნად / მოსახსნელად + გამორთული + ჩვევის შექმნა + ჩვევის დარედაქტირება + ჩანიშვნა + მოგვიანებით + მოგესალმები + Loop — ჩვევების ტრეკერი: ხელშემწყობი კარგი ჩვევების გამომუშავებასა და შენარჩუნებისათვის. + გამოიმუშავე ახალი ჩვევები + ყოველდღიურად, როგორც კი ჩვევას შეასრულებ, ეს აპლიკაციაში ჩაინიშნე. + თვალი ადევნე შენს პროგრესს + დეტალური გრაფიკებით შეგიძლია დროთა განმავლობაში იხილო თუ როგორ ყალიბდება შენი ჩვევა. + 15 წუთი + 30 წუთი + 1 საათი + 2 საათი + 4 საათი + 8 საათი + 24 საათი + ყოველთვის მკითხე + პერსონალიზებული… + გადართვა ხანმოკლე შეხებით + ხანგრძლივი დაჭერის მაგივრად თოლიების (✓) ხანმოკლე შეხებით ჩანიშვნა. + აპლიკაციის შეფასება Google Play-ზე + გამოეხმაურე დეველოპერს + საწყისი კოდის ნახვა GitHub-ზე + ბმულები + სათაური + პარამეტრები + გადადების დროის არჩევა + იცოდი? + ჩვევის ადგილის გადასანაცვლებლად სახელს ხანგრძლივად დააჭირე და სასურველ ადგილას დასვი. + ტელეფონს ჰორიზონტალურად თუ დაიჭერ მეტი დღის ნახვას შეძლებ. + + ჩვევა წაიშალოს? + ჩვევები წაიშალოს? + + + ჩვევა სამუდამოდ წაიშლება. ამ მოქმედების შედეგის გაუქმება შეუძლებელია. + ჩვევები სამუდამოდ წაიშლება. ამ მოქმედების შედეგის გაუქმება შეუძლებელია. + + ჩვევა წაშლილია / ვერ მოიძებნა + შაბათ-კვირაობით + ორშაბათიდან პარასკევის ჩათვლით + კვირის ყოველ დღეს + დღეების მონიშვნა + ექსპორტი CSV-ფაილად + მზადაა + წაშლა + საათების მონიშვნა + წუთების მონიშვნა + Loop-ის შესახებ + მთარგმნელები + დეველოპერები + ვერსია: %s + სიხშირე + თოლია + საუკეთესო სერიები + ყოველდღე + ყოველკვირა + დახმარება და ხდკ + მონაცემების ექსპორტი ვერ მოხერხდა. + მონაცემების იმპორტირება ვერ მოხერხდა. + ფაილის ამოცნობა ვერ მოხერხდა. + ჩვევების იმპორტირება წარმატებით განხორციელდა. + მონაცემების იმპორტი + სრული სარეზერვო ასლის ექსპორტი + მხარდაჭერილია ამ აპლიკაციით შექმნილი სარეზერვო ასლები, ასევე ფაილები, რომლებიც შექმნილია Tickmate-ით, HabitBull-ითა და Rewire-ით. მეტი ინფორმაციისათვის იხილე ხშირად დასმული კითხვები. + ქმნის ფაილებს, რომელთა გახსნა შესაძლებელია ელექტრონული ცხრილის პროგრამებით, როგორებიცაა Microsoft Excel და OpenOffice Calc. ამ ფაილის უკან დაიმპორტირება შეუძლებელია. + ქმნის ფაილს, რომელიც შენს ყველა მონაცემებს შეიცავს. ამ ფაილის უკან დაიმპორტირება შეუძლებელია. + ხარვეზების ანგარიში ვერ შეიქმნა. + ხარვეზების ანგარიშის შექმნა + უწესივრობათა დიაგნოსტიკა და აღმოფხვრა + მოგვეხმარე აპლიკაციის გადათარგმნაში + მუქი რეჟიმი + მუქ რეჟიმში სუფთა შავის გამოყენება + მუქ რეჟიმში რუხი ფონები სუფთა შავით ჩანაცვლდება. AMOLED-ეკრანიან ტელეფონებში ეს ელემენტის ენერგიას ზოგავს. + ინტერფეისი + დღეების თანმიმდევრობის შებრუნება + დღეების თანმიმდევრობის შემობრუნება მთავარ ეკრანზე. + დღე + კვირა + თვე + კვარტალი + წელი + ჯამში + კი თუ არა + ყოველ %d დღეს + ყოველ %d კვირას + შეფასება + შემახსენებელი შეტყობინების ხმა + არცერთი + ფილტრი + შესრულებული ჩვევების დამალვა + მონაცემებშეტანილი ჩვევების დამალვა + დაარქივებული ჩვევების დამალვა + შეტყობინებების დამაგრება + ხელს უშლის შეტყობინებების თითის გასმით წაშლას. + შეტყობინების ციმციმა + ციმციმას რთავს შემახსენებელი შეტყობინებებისთვის. ხელმისაწვდომია მხოლოდ ისეთი მოწყობილობებისთვის, რომლებსაც შეტყობინების LED აქვთ. + მონაცემთა ბაზის შეკეთება + მონაცემთა ბაზა შეკეთდა. + თოლიის (✓) მოხსნა + გადართვა + მოქმედება + ჩვევა + დალაგება + ხელით + სათაურის მიხედვით + ფერის მიხედვით + შეფასების მიხედვით + სტატუსის მიხედვით + ექსპორტი + მნიშვნელობის შესაცვლელად დააჭირე ხანგრძლივად + მნიშვნელობა + კალენდარი + ერთეული + მიზნის ტიპი + მინიმუმ + მაქსიმუმ + მაგ. დღეს ივარჯიშე? + კითხვა + მიზანი + კი + არა + ხმის, ვიბრაციის, სინათლისა და შეტყობინებების სხვა პარამეტრების შეცვლა. + შეტყობინებების მორგება + კონფიდენციალურობის პოლიტიკა + ყველა წვლილის შემტანის ნახვა… + მონაცემთა ბაზა + ვიჯეტის გამჭვირვალობა + ცვლის საწყისი ეკრანის ვიჯეტების გამჭვირვალობას. + კვირის პირველი დღე + დღეს ეს ჩვევა შეასრულე? + ჩანაწერები + (სურვილისამებრ) + მაგ. დღეს ადრე გაიღვიძე? ივარჯიშე? ჭადრაკი ითამაშე? + გაზომვადი + მაგ. დღეს რამდენი კილომეტრი გაირბინე? რამდენი გვერდი წაიკითხე? + კვირაში %d-ჯერ + თვეში %d-ჯერ + %d-ჯერ %d დღის განმავლობაში + მაგ. ვარჯიში + ფერი + მაგ. 15 + მაგ. რბენა + მაგ. დღეს რამდენი კილომეტრი დაფარე? + მაგ. კილომეტრი + ყოველთვე + ცარიელი ვერ იქნება + დღეს + შეყვანა + ჩვევები ვერ მოიძებნა + გამზომვადი ჩვევები ვერ მოიძებნა + „კი თუ არა“ ტიპის ჩვევები ვერ მოიძებნა + გაზრდა + შემცირება + დღეების გამოტოვების ჩართვა + ორჯერ გადართე, რათა გამოტოვება ჩაამატო თოლიის (✓) მაგივრად. გამოტოვებების მეშვეობით შეფასება უცვლელი დარჩება, ხოლო სერია შენარჩუნდება. + კითხვის ნიშნის ჩვენება მონაცემთა არარსებობის შემთხვევაში + უმონაცემო დღეებისა და გაცდენების განსხვავებულად განხილვა. გაცდენის შესატანად ორჯერ გადართე. + ახლა დეველოპერი ხარ + ვერ მოიძებნა აპლიკაცია ამ ოპერაციის განსახორციელებლად + ახალი დღის დასაწყისის გადატანა ნაშუაღამევის რამდენიმე საათისთვის + ახალი დღის 03:00 საათზე დაწყება. ხელსაყრელია თუ ზოგადად შუაღამის შემდეგ იძინებ. საჭიროებს აპლიკაციის გადატვირთვას. + diff --git a/uhabits-android/src/main/res/values-ko-rKR/strings.xml b/uhabits-android/src/main/res/values-ko-rKR/strings.xml index 5394968e1..fcea1557a 100644 --- a/uhabits-android/src/main/res/values-ko-rKR/strings.xml +++ b/uhabits-android/src/main/res/values-ko-rKR/strings.xml @@ -69,11 +69,12 @@ 8시간 24시간 항상 묻기 - 사용자 지정. + 사용자 지정... 짧게 눌러서 전환하기 + 길게 누르는 대신 탭 한 번으로 확인 표시를 합니다. Google Play에서 평가 개발자에게 피드백 보내기 - Github에서 소스보기 + Github에서 소스 보기 링크 제목 설정 @@ -98,7 +99,7 @@ 시간 선택 분 선택 정보 - 번역자 + 번역한 사람들 개발자 버전 %s 빈도 @@ -106,7 +107,7 @@ 최고 연속 기록 매일 매주 - 도움& FAQ + 도움 & FAQ 데이터 내보내기에 실패했습니다. 데이터 가져오기에 실패했습니다. 파일을 인식할 수 없습니다. @@ -140,6 +141,7 @@ 무음 필터 완료된 항목 숨기기 + 입력한 항목을 숨기기 보관된 항목 숨기기 알림 고정하기 알림을 스와이프해서 제거하는 것을 방지합니다. @@ -159,8 +161,12 @@ 상태별로 내보내기 길게 누르면 값이 변경됩니다. + 캘린더 단위 + 목표 유형 + 적어도 + 최대 예 : 오늘 운동을 했습니까? 질문 목표 @@ -186,6 +192,24 @@ 예) 운동 예) 15 + 예) 달리기 + 예) 오늘 몇 km를 달렸나요? + 예) km 매월 + 비워 둘 수 없습니다 오늘 + 입력 + 설정한 습관이 없습니다 + 수치형 습관 목표가 없습니다 + 단답형 습관 목표가 없습니다 + 증가 + 감소 + 날짜 스킵 허용 + 두번 토글하면, 확인 표시 대신에 해당 일자의 기록을 제외합니다. 제외된 날은 점수에 반영되지 않고, 연속 기록도 유지됩니다. + 기록이 없는 날에 물음표 표시 + 데이터가 없는 날과 넘겼다고 실제로 기록한 날에 차이를 둡니다. 넘겼다고 기록하려면 두 번 누르세요. + 당신은 이제 개발자입니다. + 이 작업을 지원하는 앱을 찾을 수 없습니다. + 하루를 자정 이후까지 연장합니다. + 오전 3시를 기점으로 하루가 변경됩니다. 자정 이후 잠드는 경우 유용합니다. 변경시 앱 재시작 후 적용됩니다. diff --git a/uhabits-android/src/main/res/values-ml-rIN/strings.xml b/uhabits-android/src/main/res/values-ml-rIN/strings.xml new file mode 100644 index 000000000..f078bbacc --- /dev/null +++ b/uhabits-android/src/main/res/values-ml-rIN/strings.xml @@ -0,0 +1,221 @@ + + + + ലൂപ്പ് ഹാബിറ്റ് ട്രാക്കർ + ശീലങ്ങൾ + ക്രമീകരണങ്ങൾ + തിരുത്തുക + ഇല്ലാതാക്കുക + ആർക്കൈവ് + അൺ ആർക്കൈവ് ചെയ്യുക + ശീലം ചേർക്കുക + നിറം മാറ്റുക + ശീലം സൃഷ്ടിച്ചു + + ശീലം മാറി + ശീലങ്ങൾ മാറി + + + ശീലം ഇല്ലാതാക്കി + ശീലങ്ങൾ ഇല്ലാതാക്കി + + + ശീലം ആർക്കൈവ് ചെയ്തു + ശീലങ്ങൾ ആർക്കൈവ് ചെയ്തു + + + ശീലം ആർക്കൈവ് ചെയ്‌തിട്ടില്ല + ശീലങ്ങൾ ആർക്കൈവ് ചെയ്‌തിട്ടില്ല + + അവലോകനം + ശീലത്തിന്റെ ശക്തി + ചരിത്രം + ക്ലിയർ + ഓർമ്മപ്പെടുത്തൽ + സംരക്ഷിക്കുക + സ്ട്രീക്ക് + നിങ്ങൾക്ക് സജീവമായ ശീലങ്ങളൊന്നും ആഡ് ചെയ്തിട്ടില്ല + ഇന്നത്തെ ശീലങ്ങൾ എല്ലാം നിങ്ങൾ പൂർത്തിയാക്കി! + ആഡ് ചെയ്യുന്നതിനോ റിമൂവ് ചെയ്യുന്നതിനോ അമർത്തിപ്പിടിക്കുക + ഓഫ് + ശീലം ആഡ് ചെയ്യുക + എഡിറ്റ് ശീലം + ചെക്ക് + പിന്നീട് + സ്വാഗതം + നല്ല ശീലങ്ങൾ സൃഷ്ടിക്കാനും നിലനിർത്താനും ലൂപ്പ് ഹാബിറ്റ് ട്രാക്കർ നിങ്ങളെ സഹായിക്കുന്നു. + പുതിയ ചില ശീലങ്ങൾ ഉണ്ടാക്കുക + എല്ലാ ദിവസവും, നിങ്ങളുടെ ശീലം നടപ്പിലാക്കിയ ശേഷം, ആപ്പിൽ ഒരു ചെക്ക്മാർക്ക് ഇടുക. + നിങ്ങളുടെ പുരോഗതി ട്രാക്ക് ചെയ്യുക + കാലക്രമേണ നിങ്ങളുടെ ശീലങ്ങൾ എങ്ങനെ മെച്ചപ്പെട്ടുവെന്ന് വിശദമായ ഗ്രാഫുകൾ കാണിക്കുന്നു. + 15 മിനിറ്റ് + 30 മിനിറ്റ് + 1 മണിക്കൂർ + 2 മണിക്കൂർ + 4 മണിക്കൂർ + 8 മണിക്കൂർ + 24 മണിക്കൂർ + എപ്പോഴും ചോദിക്കുക + കസ്റ്റം... + ഷോർട്ട് പ്രസ്സ് ഉപയോഗിച്ച് ടോഗിൾ ചെയ്യുക + അമർത്തിപ്പിടിക്കുക എന്നതിനുപകരം ഒരൊറ്റ ടാപ്പിലൂടെ ചെക്ക്മാർക്കുകൾ ഇടുക. + ഗൂഗിൾ പ്ലേയിൽ ഈ ആപ്പ് റേറ്റു ചെയ്യുക + ഡെവലപ്പർക്ക് ഫീഡ്ബാക്ക് അയയ്ക്കുക + GitHub-ൽ സോഴ്സ് കോഡ് കാണുക + ലിങ്കുകൾ + പേര് + ക്രമീകരണങ്ങൾ + സ്‌നൂസ് കാലതാമസം തിരഞ്ഞെടുക്കുക + നിനക്കറിയാമോ? + എൻട്രികൾ പുനഃക്രമീകരിക്കാൻ, ശീലത്തിന്റെ പേരിൽ അമർത്തിപ്പിടിക്കുക, തുടർന്ന് അത് ശരിയായ സ്ഥലത്തേക്ക് വലിച്ചിടുക. + നിങ്ങളുടെ ഫോൺ ലാൻഡ്‌സ്‌കേപ്പ് മോഡിൽ വെച്ചാൽ നിങ്ങൾക്ക് കൂടുതൽ ദിവസം കാണാൻ കഴിയും. + + ശീലം ഇല്ലാതാക്കണോ? + ശീലങ്ങൾ ഇല്ലാതാക്കണോ? + + + ശീലം ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും. ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാകില്ല. + ശീലങ്ങൾ ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും. ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാകില്ല. + + ശീലം ഇല്ലാതാക്കി / കണ്ടെത്തിയില്ല + വാരാന്ത്യങ്ങൾ + തിങ്കൾ മുതൽ വെള്ളി വരെ + ആഴ്ചയിലെ ഏത് ദിവസവും + ദിവസങ്ങൾ തിരഞ്ഞെടുക്കുക + CSV ആയി കയറ്റുമതി ചെയ്യുക + ചെയ്തു + ക്ലിയർ + മണിക്കൂർ തിരഞ്ഞെടുക്കുക + മിനിറ്റ് തിരഞ്ഞെടുക്കുക + കുറിച്ച് + പരിഭാഷകർ + ഡെവലപ്പർമാർ + പതിപ്പുകൾ + ആവൃത്തി + ചെക്ക്മാർക്ക് + മികച്ച വരകൾ + എല്ലാ ദിവസവും + എല്ലാ ആഴ്ചയും + സഹായം & പതിവുചോദ്യങ്ങൾ + ഡാറ്റ കയറ്റുമതി ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു. + ഡാറ്റ ഇറക്കുമതി ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു. + ഫയൽ തിരിച്ചറിഞ്ഞില്ല. + ശീലങ്ങൾ വിജയകരമായി ഇറക്കുമതി ചെയ്തു. + ഡാറ്റ ഇറക്കുമതി ചെയ്യുക + പൂർണ്ണ ബാക്കപ്പ് കയറ്റുമതി ചെയ്യുക + ഈ ആപ്പ് എക്‌സ്‌പോർട്ടുചെയ്‌ത മുഴുവൻ ബാക്കപ്പുകളും ടിക്ക്‌മേറ്റ്, ഹാബിറ്റ്‌ബുൾ അല്ലെങ്കിൽ റിവയർ സൃഷ്‌ടിച്ച ഫയലുകളും പിന്തുണയ്ക്കുന്നു. കൂടുതൽ വിവരങ്ങൾക്ക് പതിവ് ചോദ്യങ്ങൾ കാണുക. + മൈക്രോസോഫ്റ്റ് എക്സൽ അല്ലെങ്കിൽ ഓപ്പൺ ഓഫീസ് കാൽക്ക് പോലുള്ള സ്‌പ്രെഡ്‌ഷീറ്റ് സോഫ്‌റ്റ്‌വെയർ ഉപയോഗിച്ച് തുറക്കാൻ കഴിയുന്ന ഫയലുകൾ ജനറേറ്റുചെയ്യുന്നു. ഈ ഫയൽ തിരികെ ഇറക്കുമതി ചെയ്യാൻ കഴിയില്ല. + നിങ്ങളുടെ എല്ലാ ഡാറ്റയും അടങ്ങുന്ന ഒരു ഫയൽ സൃഷ്ടിക്കുന്നു. ഈ ഫയൽ തിരികെ ഇറക്കുമതി ചെയ്യാൻ കഴിയും. + ബഗ് റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിൽ പരാജയപ്പെട്ടു. + ബഗ് റിപ്പോർട്ട് സൃഷ്ടിക്കുക + ട്രബിൾഷൂട്ടിംഗ് + ഈ ആപ്പ് വിവർത്തനം ചെയ്യാൻ സഹായിക്കുക + ഇരുണ്ട തീം + ഇരുണ്ട തീമിൽ ശുദ്ധമായ കറുപ്പ് ഉപയോഗിക്കുക + ഇരുണ്ട തീമിൽ ചാരനിറത്തിലുള്ള പശ്ചാത്തലം ശുദ്ധമായ കറുപ്പ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക. അമോൾഡ് ഡിസ്പ്ലേ ഉള്ള ഫോണുകളിൽ ബാറ്ററി ഉപയോഗം കുറയ്ക്കുക. + ഇന്റർഫേസ് + ദിവസങ്ങളുടെ വിപരീത ക്രമം + പ്രധാന സ്ക്രീനിൽ വിപരീത ക്രമത്തിൽ ദിവസങ്ങൾ കാണിക്കുക. + ദിവസം + ആഴ്ച + മാസം + ക്വാർട്ടർ + വർഷം + ആകെ + ഉവ്വോ ഇല്ലയോ + ഓരോ %d ദിവസത്തിലും + ഓരോ %d ആഴ്ചയിലും + സ്കോർ + ഓർമ്മപ്പെടുത്തൽ ശബ്ദം + ഒന്നുമില്ല + ഫിൽട്ടർ ചെയ്യുക + മറയ്ക്കൽ പൂർത്തിയായി + പ്രവേശിച്ചത് മറയ്ക്കുക + ആർക്കൈവുചെയ്‌തത് മറയ്‌ക്കുക + അറിയിപ്പുകൾ സ്റ്റിക്കി ആക്കുക + അറിയിപ്പുകൾ സ്വൈപ്പ് ചെയ്യുന്നതിൽ നിന്ന് തടയുന്നു. + അറിയിപ്പ് ലൈറ്റ് + ഓർമ്മപ്പെടുത്തലുകൾക്കായി മിന്നുന്ന പ്രകാശം കാണിക്കുന്നു. LED നോട്ടിഫിക്കേഷൻ ലൈറ്റുകൾ ഉള്ള ഫോണുകളിൽ മാത്രമേ ലഭ്യമാകൂ. + റിപ്പയർ ഡാറ്റാബേസ് + ഡാറ്റാബേസ് നന്നാക്കി. + അൺചെക്ക് ചെയ്യുക + ടോഗിൾ ചെയ്യുക + ആക്ഷൻ + ശീലം + അടുക്കുക + സ്വമേധയാ + പേരു കൊണ്ട് + നിറം പ്രകാരം + സ്കോർ പ്രകാരം + സ്റ്റാറ്റസ് പ്രകാരം + കയറ്റുമതി + മൂല്യം മാറ്റാൻ അമർത്തിപ്പിടിക്കുക + മൂല്യം + കലണ്ടർ + യൂണിറ്റ് + ടാർഗെറ്റ് തരം + ഇത്രയെങ്കിലും + പരമാവധി + ഉദാ. നിങ്ങൾ ഇന്ന് വ്യായാമം ചെയ്തോ? + ചോദ്യം + ലക്ഷ്യം + അതെ + ഇല്ല + ശബ്ദം, വൈബ്രേഷൻ, വെളിച്ചം, മറ്റ് അറിയിപ്പ് ക്രമീകരണങ്ങൾ എന്നിവ മാറ്റുക + അറിയിപ്പുകൾ ഇഷ്ടാനുസൃതമാക്കുക + സ്വകാര്യതാ നയം കാണുക + എല്ലാ സംഭാവകരെയും കാണുക... + ഡാറ്റാബേസ് + വിജറ്റ് അതാര്യത + നിങ്ങളുടെ ഹോം സ്ക്രീനിൽ വിജറ്റുകളെ കൂടുതൽ സുതാര്യമോ അതാര്യമോ ആക്കുന്നു. + ആഴ്ചയിലെ ആദ്യ ദിവസം + നിങ്ങൾ ഇന്ന് ഈ ശീലം പൂർത്തിയാക്കിയിട്ടുണ്ടോ? + കുറിപ്പുകൾ + (ഓപ്ഷണൽ) + ഉദാ. ഇന്ന് നേരത്തെ ഉണർന്നോ? നിങ്ങൾ വ്യായാമം ചെയ്തോ? നിങ്ങൾ ചെസ്സ് കളിച്ചോ? + അളക്കാവുന്നത് + ഉദാ. ഇന്ന് നിങ്ങൾ എത്ര മൈൽ ഓടി? നിങ്ങൾ എത്ര പേജുകൾ വായിച്ചു? + ആഴ്ചയിൽ %d തവണ + പ്രതിമാസം %d തവണ + %d ദിവസത്തിനുള്ളിൽ %d തവണ + ഉദാ. വ്യായാമം ചെയ്യുക + നിറം + ഉദാ. 15 + ഉദാ. ഓടുക + ഉദാ. ഇന്ന് നിങ്ങൾ എത്ര മൈൽ ഓടി? + ഉദാ. മൈലുകൾ + എല്ലാ മാസവും + ശൂന്യമാക്കാൻ കഴിയില്ല + ഇന്ന് + നൽകുക + ശീലങ്ങളൊന്നും കണ്ടെത്തിയില്ല + അളക്കാവുന്ന ശീലങ്ങളൊന്നും കണ്ടെത്തിയില്ല + അതെ അല്ലെങ്കിൽ ഇല്ല എന്ന ശീലങ്ങളൊന്നും കണ്ടെത്തിയില്ല + വർദ്ധനവ് + കുറയ്ക്കൽ + ദിവസങ്ങൾ ഒഴിവാക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക + ഒരു ചെക്ക്മാർക്കിന് പകരം ഒരു ഒഴിവാക്കൽ ചേർക്കാൻ രണ്ടുതവണ ടോഗിൾ ചെയ്യുക. സ്കിപ്പുകൾ നിങ്ങളുടെ സ്കോർ മാറ്റമില്ലാതെ നിലനിർത്തുകയും നിങ്ങളുടെ സ്ട്രീക്ക് തകർക്കുകയുമില്ല + നഷ്ടപ്പെട്ട ഡാറ്റയ്ക്കുള്ള ചോദ്യചിഹ്നങ്ങൾ കാണിക്കുക + യഥാർത്ഥ വീഴ്ചകളിൽ നിന്ന് ഡാറ്റ ഇല്ലാതെ ദിവസങ്ങൾ വേർതിരിക്കുക. ഒരു ലാപ്‌സ് നൽകുന്നതിന്, രണ്ടുതവണ ടോഗിൾ ചെയ്യുക. + നിങ്ങൾ ഇപ്പോൾ ഒരു ഡെവലപ്പറാണ് + ഈ പ്രവർത്തനത്തെ പിന്തുണയ്ക്കുന്ന ഒരു ആപ്പും കണ്ടെത്തിയില്ല + അർദ്ധരാത്രി കഴിഞ്ഞ് കുറച്ച് മണിക്കൂറുകൾ പകൽ നീട്ടുക + ഒരു പുതിയ ദിവസം കാണിക്കാൻ 3:00 AM വരെ കാത്തിരിക്കുക. നിങ്ങൾ സാധാരണയായി അർദ്ധരാത്രിക്ക് ശേഷം ഉറങ്ങാൻ പോകുകയാണെങ്കിൽ ഉപയോഗപ്രദമാണ്. ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്. + diff --git a/uhabits-android/src/main/res/values-nl-rNL/strings.xml b/uhabits-android/src/main/res/values-nl-rNL/strings.xml index 790dcbbc7..9770354c6 100644 --- a/uhabits-android/src/main/res/values-nl-rNL/strings.xml +++ b/uhabits-android/src/main/res/values-nl-rNL/strings.xml @@ -40,6 +40,10 @@ Gewoontes gearchiveerd Gewoontes gearchiveerd + + Gewoonte niet gearchiveerd + Gewoontes hersteld uit archief + Overzicht Gewoonte-sterkte Geschiedenis @@ -82,6 +86,14 @@ Wist je dat? Om de rijen te ordenen, houdt de gewoonte ingedrukt en sleep het naar de gewenste plek. Je kunt meer dagen zien door de telefoon in landschapsmodus te zetten. + + Verwijder gewoontes + Gewoontes verwijderen? + + + De gewoonte zal permanent verwijderd worden. Deze actie kan niet ongedaan gemaakt worden. + De gewoontes zullen permanent verwijderd worden. Deze actie kan niet ongedaan gemaakt worden. + Gewoonte verwijderd / niet gevonden Weekends Maandag tot vrijdag diff --git a/uhabits-android/src/main/res/values-pl-rPL/strings.xml b/uhabits-android/src/main/res/values-pl-rPL/strings.xml index c9347762d..fcfd1b802 100644 --- a/uhabits-android/src/main/res/values-pl-rPL/strings.xml +++ b/uhabits-android/src/main/res/values-pl-rPL/strings.xml @@ -211,10 +211,10 @@ Kolor np. 15 np. Bieg - np. Ile km przebiegłeś dzisiaj? + np. Ile kilometrów dzisiaj przebiegłeś? np. kilometry - Co miesiąc - Nie może być puste + Każdego miesiąca + Pole nie może być puste Dzisiaj Wprowadź Nie znaleziono nawyków diff --git a/uhabits-android/src/main/res/values-pt-rPT/strings.xml b/uhabits-android/src/main/res/values-pt-rPT/strings.xml index 374fded4c..065c3cdf0 100644 --- a/uhabits-android/src/main/res/values-pt-rPT/strings.xml +++ b/uhabits-android/src/main/res/values-pt-rPT/strings.xml @@ -137,8 +137,10 @@ Por nome Por cor Por pontuação + Por estado Exportar Pressione e segure para alterar o valor + Valor Calendário Unidade ex.: Você se exercitou hoje? @@ -171,4 +173,9 @@ Todos os meses Não pode ficar em branco Hoje + Registar + Acrescentar + Decrementar + Agora é um programador! + Nenhuma aplicação foi encontrada para oferecer suporte a esta ação diff --git a/uhabits-android/src/main/res/values-ro-rRO/strings.xml b/uhabits-android/src/main/res/values-ro-rRO/strings.xml index 019596b0b..d9df1c25e 100644 --- a/uhabits-android/src/main/res/values-ro-rRO/strings.xml +++ b/uhabits-android/src/main/res/values-ro-rRO/strings.xml @@ -32,10 +32,11 @@ Graficul obiceiurilor Istoric Golește - Atenționare + Reamintire Salvează Zile consecutive Nu ai niciun obicei activ. + Ai terminat pe ziua de azi! Apasă și ține pentru a bifa sau a debifa Dezactivat Creează obiceiul @@ -55,19 +56,25 @@ 4 ore 8 ore 24 de ore - Intreaba mereu - Diferit... + Întreabă întotdeauna + Alt interval... Comută repetițiile printr-o apăsare scurtă - Evaluează aplicația pe Magazin Play - Trimite păreri dezvoltatorului + Bifează cu o singură atingere în loc să ții apăsat. + Evaluează aplicația pe Google Play + Trimite feedback dezvoltatorului Vezi codul sursă pe GitHub - Aplicație + Linkuri Nume Setări Selectează durata amânării Știai? Pentru a rearanja obiceiurile, apasă și ține numele obiceiului, apoi trage-l în locul corect. Poți vedea mai multe zile în modul peisaj. + + Obiceiul va fi șters permanent. Această acțiune este ireversibilă. + Obiceiurile vor fi șterse permanent. Această acțiune este ireversibilă. + Obiceiurile vor fi șterse permanent. Această acțiune este ireversibilă. + Obicei șters / negăsit Weekenduri Zile de lucru @@ -137,10 +144,14 @@ După nume După culoare După scor + După stare Exportă Ține apăsat pentru a modifica valoarea + Valoare Calendar Unități + Cel puțin + Cel mult ex.: Ai îndeplinit exerciții fizice azi? Întrebare Obiectiv @@ -151,20 +162,35 @@ Consultați politica de confidențialitate Vizualizați toți colaboratorii… Bază de date + Opacitatea widget-ului + Face widget-urile mai transparente sau mai opace pe ecranul de pornire. + Prima zi a săptămânii + Ai efectuat astăzi acest obicei? Notițe (Opţional) ex. Te-ai trezit mai devreme astăzi? Ai făcut exerciții? Ai jucat șah? Măsurabil + ex.: Câți kilometri ai alergat astăzi? Câte pagini de carte ai citit? + %d ori pe săptămână + %d ori pe lună %d ori în %d zile + ex.: Exerciții Culoare + ex.: 15 + ex.: Alergat + ex.: Câți kilometri ai alergat astăzi? de exemplu mile În fiecare lună nu poate fi gol Astăzi Introducere Nici un obicei găsit + Nu au fost găsite obiceiuri măsurabile + Nu au fost găsite obiceiuri cu \"Da\" sau \"Nu\" Activați omiterea de zile Arată semnele de întrebare pentru datele lipsă Acum ești un dezvoltator + Nu a fost găsită nicio aplicație care să efectueze această acțiune. Extinde ziua câteva ore după miezul nopții + Așteaptă până la ora 3:00 dimineața pentru a arăta o nouă zi. O funcție utilă dacă în mod normal obișnuiești să mergi la somn după miezul nopții. Necesită repornirea aplicației. diff --git a/uhabits-android/src/main/res/values-ru-rRU/strings.xml b/uhabits-android/src/main/res/values-ru-rRU/strings.xml index 1916cb0a1..892b07e8f 100644 --- a/uhabits-android/src/main/res/values-ru-rRU/strings.xml +++ b/uhabits-android/src/main/res/values-ru-rRU/strings.xml @@ -83,7 +83,7 @@ Всегда спрашивать Настроить... Отмечать коротким нажатием - Ставить галочки одним касанием вместо нажатия и удерживания. + Галочки в одно касание вместо нажатия и удержания Оценить приложение в Google Play Отправить сообщение разработчику Посмотреть исходный код на GitHub @@ -159,7 +159,7 @@ Без звука Фильтр Скрыть завершённые - Скрыть введённые + Скрыть введённые Скрыть архивированные Сделать уведомления \"липкими\" Предотвращает смахивание уведомлений. diff --git a/uhabits-android/src/main/res/values-sk-rSK/strings.xml b/uhabits-android/src/main/res/values-sk-rSK/strings.xml index 6838ff94d..09acf99fc 100644 --- a/uhabits-android/src/main/res/values-sk-rSK/strings.xml +++ b/uhabits-android/src/main/res/values-sk-rSK/strings.xml @@ -34,6 +34,24 @@ Návykov zmenených Návykov zmenených + + Návyk zmazaný + Návyky zmazané + Návykov zmazaných + Návykov zmazaných + + + Návyk dosiahnutý + Návyky dosiahnuté + Návykov dosiahnutých + Návykov dosiahnutých + + + Návyk nedosiahnutý + Návyky nedosiahnuté + Návykov nedosiahnutých + Návykov nedosiahnutých + Prehľad Sila návyku História @@ -65,6 +83,7 @@ Vždy sa spýtať Vlastné ... Prepnúť krátkym stlačením + Začiarknite jediným klepnutím namiesto stlačenia a podržania. Ohodnoťte túto aplikáciu na Google Play Odošlite spätnú väzbu vývojárovi Zobraziť zdrojový kód na stránke GitHub @@ -75,6 +94,18 @@ Vedeli ste? Pre zmenu usporiadania záznamov, stlačte a podržte názov návyku a potom ho presuňte na správne miesto. Môžete vidieť viac dní otočením telefónu do režimu na šírku. + + Odstrániť návyk? + Odstrániť návyky? + Odstrániť návyky? + Odstrániť návyky? + + + Návyk bude natrvalo odstránený. Tento krok nie je možné vrátiť späť. + Návyky budú natrvalo odstránené. Tento krok nie je možné vrátiť späť. + Návyky budú natrvalo odstránené. Tento krok nie je možné vrátiť späť. + Návyky budú natrvalo odstránené. Tento krok nie je možné vrátiť späť. + Návyk bol odstránený / nenájdený Víkendy Od pondelka do piatku @@ -128,6 +159,7 @@ Žiadny Filter Skryť dokončené + Skryť vyplnené Skryť archivované Pripnúť oznámenia Zabráni odstráneniu notifikácií odsunutím. @@ -147,8 +179,12 @@ Podľa stavu Exportovať Stlačením a podržaním zmeníte hodnotu + Hodnota Kalendár Jednotka + Typ cieľa: + Aspoň + Najviac napr. Cvičili ste dnes? Otázka Cieľ @@ -170,6 +206,7 @@ napr. Koľko kilometrov ste dnes nabehali? Koľko strán ste prečítali? %d krát týždenne %d krát za mesiac + %d krát za %d dní napr. Cvičenie Farba napr. 15 @@ -183,6 +220,8 @@ Nenašli sa žiadne návyky Nenašli sa žiadne merateľné návyky Nenašli sa žiadne áno-alebo-nie návyky + Navýšiť + Znížiť Povoliť preskočenie dní Dvojitým prepnutím pridáte namiesto začiarknutia preskočenie. Preskočenia udržia vaše skóre nezmenené a neprerušia vašu sériu. Zobraziť otázniky pre chýbajúce údaje diff --git a/uhabits-android/src/main/res/values-sl-rSI/strings.xml b/uhabits-android/src/main/res/values-sl-rSI/strings.xml index 6e1f450d5..2a8db667a 100644 --- a/uhabits-android/src/main/res/values-sl-rSI/strings.xml +++ b/uhabits-android/src/main/res/values-sl-rSI/strings.xml @@ -28,6 +28,30 @@ Dodaj navado Spremeni barvo Navada ustvarjena + + Navada spremenjena + Navadi spremenjene + Navade spremenjene + Navade spremenjene + + + Navada izbrisana + Navadi izbrisane + Navade izbrisane + Navade izbrisane + + + Navada arhivirana + Navadi arhivirani + Navade arhivirana + Navade arhivirana + + + Navada nearhivirana + Navadi nearhivirani + Navade nearhivirane + Navade nearhivirane + Pregled Moč navade Zgodovina @@ -36,6 +60,7 @@ Shrani Serije Nimate aktivnih navad + Za danes ste končali! Pritisnite-in-držite, da označite ali odznačite Izključeno Ustvari navado @@ -55,16 +80,32 @@ 4 ure 8 ur 24 ur + Vedno vprašaj + Po meri... Preklopi ponovitve s kratkim pritiskom + Postavite kljukice z enim dotikom namesto s pritiskom in držanjem. Oceni to aplikacijo na Google Play Pošlji povratne informacije razvijalcem Poglej izvorno kodo na GitHub Povezave Ime Nastavitve + Izberite zakasnitev dremeža Ali ste vedeli? Če želite preurediti vnose, pritisnite-in-držite na ime navade, nato pa jo povlecite na željeno mestu. Ogledate si lahko več dni, s tem da telefon postavite v ležeči načinu. + + Izbriši navado? + Izbriši navadi? + Izbriši navade? + Izbriši navade? + + + Navada bo trajno izbrisana. Tega dejanja ni mogoče razveljaviti. + Navadi bodo trajno izbrisani. Tega dejanja ni mogoče razveljaviti. + Navade bodo trajno izbrisane. Tega dejanja ni mogoče razveljaviti. + Navade bodo trajno izbrisane. Tega dejanja ni mogoče razveljaviti. + Izbrisana navada / ni najdena Vikendi Ponedeljek do Petka @@ -110,6 +151,7 @@ Četrtletje Leto Skupaj + Da ali Ne Vsakih %d dni Vsakih %d tednov Ocena @@ -117,9 +159,12 @@ Noben Filter Skrij končane + Skrij vneseno Skrij arhivirane Naaredi obvestila lepljiva Preprečuje, da lahko obvestila povlečete stran. + Lučka za obvestila + Prikaže utripajočo luč za opomnike. Na voljo samo v telefonih z LED lučkami za obvestila. Popravi podatkovno zbirko Podatkovna zbirka popravljena. Odznači @@ -131,6 +176,58 @@ Po imenu Po barvi Po rezultatu + Po statusu Izvozi + Pritisnite in držite, da spremenite vrednost + Vrednost + Koledar + Enota + Vrsta cilja + Vsaj + Največ + npr. Ste danes telovadili? + Vprašanje + Cilj + Da + Ne + Spremenite nastavitve zvoka, vibriranja, svetlobe in drugih obvestil + Prilagoditve obvestil + Oglejte si pravilnik o zasebnosti + Poglej vse sodelavce… + Baza podatkov + Prosojnost pripomočka + Pripomočke naredi bolj pregledne ali bolj neprozorne na domačem zaslonu. + Prvi dan v tednu + Ste danes dokončali to navado? + Opombe + (Neobvezno) + npr. Ste se danes zgodaj zbudili? Ste telovadili? Ste igrali šah? + Merljivo + npr. Koliko kilometrov ste pretekli danes? Koliko strani ste prebrali? + %d krat na teden + %d krat na mesec %d krat v %d dni + npr. Vadba + Barva + npr. 15 + npr. Tek + npr. Koliko kilometrov ste pretekli danes? + npr. km + Vsak mesec + Ne sme biti prazno + Danes + Vnesi + Ni najdenih navad + Ni najdenih merljivih navad + Ni najdenih da ali ne navad + Povečaj + Zmanjšaj + Omogoči preskok dni + Dvakrat preklopite, da dodate preskok namesto kljukice. Preskoki ohranjajo vaš rezultat nespremenjen in ne prekinejo vašega niza. + Pokaži vprašaj za manjkajoče podatke + Razlikujte dneve brez podatkov od dejanskih zamud. Če želite vnesti presledek, dvakrat preklopite. + Zdaj ste razvijalec + Najdena ni bila nobena aplikacija, ki bi podpirala to dejanje + Podaljšajte dan nekaj ur čez polnoč + Počakajte do 3.00, da prikažete nov dan. Uporabno, če greste običajno spat po polnoči. Zahteva ponovni zagon aplikacije. diff --git a/uhabits-android/src/main/res/values-sr-rCS/strings.xml b/uhabits-android/src/main/res/values-sr-rCS/strings.xml index fd7a8fcbf..0374b68ac 100644 --- a/uhabits-android/src/main/res/values-sr-rCS/strings.xml +++ b/uhabits-android/src/main/res/values-sr-rCS/strings.xml @@ -54,7 +54,7 @@ Očisti Podsetnik Sačuvaj - Nizovi + Rekordi Nemate aktivnih navika Završili ste za danas! Dug pritisak za menjanje stanja diff --git a/uhabits-android/src/main/res/values-sr-rSP/strings.xml b/uhabits-android/src/main/res/values-sr-rSP/strings.xml index cb73a795e..fcb584b3a 100644 --- a/uhabits-android/src/main/res/values-sr-rSP/strings.xml +++ b/uhabits-android/src/main/res/values-sr-rSP/strings.xml @@ -44,9 +44,9 @@ Навике архивиране - Навика деархивирана - Навике деархивиране - Навике деархивиране + Навика враћена из архиве + Навике враћене из архиве + Навике враћене из архиве Преглед Моћ навике @@ -54,7 +54,7 @@ Очисти Подсетник Сачувај - Низови + Рекорди Немате активних навика Завршили сте за данас! Дуг притисак за мењање стања @@ -79,6 +79,7 @@ Увек питај Прилагођено... Мењај стање додиром + Ставите квачице једним додиром уместо притискањем и држањем. Оцени апликацију Повратне информације Изворни кôд на Гитхабу @@ -152,6 +153,7 @@ без звука Филтер Сакриј завршено + Сакриј унесене Сакриј архивирано Учини обавештења трајним Спречава уклањање обавештења. @@ -171,8 +173,12 @@ по стању Извоз Дуг притисак за промену вредности + Вредност Календар Јединица + Врста циља + најмање + највише нпр. Да ли сте вежбали данас? Питање Циљ diff --git a/uhabits-android/src/main/res/values-sv-rSE/strings.xml b/uhabits-android/src/main/res/values-sv-rSE/strings.xml index 26fb08024..127664599 100644 --- a/uhabits-android/src/main/res/values-sv-rSE/strings.xml +++ b/uhabits-android/src/main/res/values-sv-rSE/strings.xml @@ -75,6 +75,7 @@ Fråga alltid Anpassad... Växla med snabb tryckning + Sätt bockar med en enkel tryckning i stället för att trycka och hålla nere. Betygsätt oss på Google Play Skicka feedback till utvecklarna Visa källkod på GitHub @@ -155,6 +156,7 @@ Inget Filtrera Dölj slutförda + Dölj inmatade Dölj arkiverade Gör notifikationer permanenta Förhindrar att notifikationer stängs. @@ -174,8 +176,12 @@ Efter status Exportera Tryck och håll ned för att ändra värdet + Värde Kalender Enhet + Måltyp + Minst + Högst t.ex. Tränade du idag? Fråga Mål @@ -197,7 +203,7 @@ t.ex. Hur många kilometer sprang du idag? Hur många sidor läste du? %d gånger per vecka %d gånger per månad - %d gånger i %d dagar + %d gånger per %d dag(ar) t.ex. Träna Färg t.ex. 15 diff --git a/uhabits-android/src/main/res/values-ta-rIN/strings.xml b/uhabits-android/src/main/res/values-ta-rIN/strings.xml index 3b1c16a18..a7a14be4f 100644 --- a/uhabits-android/src/main/res/values-ta-rIN/strings.xml +++ b/uhabits-android/src/main/res/values-ta-rIN/strings.xml @@ -21,53 +21,81 @@ Loop Habit Tracker பழக்கங்கள் அமைப்புகள் - திருத்துக + திருத்து நீக்கு காப்பகம் உயிர்க்க - சேர்க்க + பழக்கத்தைச் சேர் நிறம் மாற்ற பழக்கம் உருவாக்கப்பட்டது + + Hello + பழக்கம் மாற்றப்பட்டது + + + பழக்கம் நீக்கப்பட்டது + பழக்கங்கள் நீக்கப்பட்டன + + + பழக்கம் காப்பகப்படுத்தப்பட்டது + பழக்கங்கள் காப்பகப்படுத்தப்பட்டது + + + பழக்கம் ஆவண காப்பகத்திலிருந்து நீக்கப் பட்டது + பழக்கங்கள் ஆவண காப்பகத்திலிருந்து நீக்கப் பட்டது + மேற்பார்வை பழக்கத்தின் வலிமை வரலாறு அழி - நினைவூட்டல்கள் + நினைவூட்டல் சேமிக்கவும் சாதனைகள் நடப்பு பழக்கம் எதுவும் இல்லை + இன்று இனி செய்வதற்க்கு ஒன்றுமில்லை குறிக்க அல்லது குறிப்பை நீக்க அழுத்தி பிடிக்கவும் - வேண்டாம் - புதிய பழக்கம் - பழக்கத்தை திருத்த - சரிப்பார்ப்பு குறி + அணை + பழக்கம் உருவாக்கு + பழக்கத்தைத் திருத்த + சோதி பிறகு - வருக + நல்வரவு இந்த செயலி நல்ல பழக்க வழக்கங்களை துவங்க மற்றும் தொடர உதவுகிறது. சில புது பழக்கங்களை துவங்கவும்! தினமும் உங்கள் புதிய பழக்கத்தை முடித்தவுடன் இந்த செயலியில் அதை குறிக்கவும். - உங்கள் முன்னேற்றத்தை கண்காணிக்கவும் + உங்கள் முன்னேற்றத்தைக் கண்காணிக்க நாளடைவில் நீங்கள் அடைந்த முன்னேற்றத்தை வரைபடத்தின் மூலம் அறியலாம். 15 நிமிடங்கள் 30 நிமிடங்கள் - 1 மணி நேரம் - 2 மணி நேரம் - 4 மணி நேரம் - 8 மணி நேரம் - 24 மணி நேரம் + 1 மணி + 2 மணிகள் + 4 மணிகள் + 8 மணிகள் + 24 மணிகள் எப்போதும் கேள் + தனிப்பயன்... சிறிய அழுத்தலின் மூலம் தாவு - Google Play-ல் இந்த செயலியை மதிப்பிட + ஒரே தொடுதலில் தேர்ந்தெடு + Google Play-ல் இந்தச் செயலியை மதிப்பிட இந்த செயலியை மேம்படுத்த உங்கள் கருத்துகளை பகிர இந்த செயலியின் மூல நிரலை GitHub வலைதளத்தில் பார்க்கவும் இணைப்புகள் பெயர் அமைப்புகள் + ஸ்னூஜ் (snooze) நேரத்தைத் தேர்ந்தெடு உங்களுக்கு தெரியுமா? பதிவுகளை மறுசீரைமக்க, தேவையான பழக்க பதிவின் மீது அழுத்தி பிடித்து பின் தேவையான இடத்திற்கு அதை இழுக்கவும். உங்கள் கைப்பேசியை அகலவாக்கில் வைக்கும்போது இன்னும் அதிக நாட்களை காண முடியும். + + பழக்கத்தை நீக்கவா? + பழக்கங்களை நீக்கு + + + பழக்கம் நிரந்தரமாக நீக்கப்படும். இந்தச் செயலை மீட்டமைக்க இயலாது. + பழக்கங்கள் நிரந்தரமாக நீக்கப்படும். இந்தச் செயலை மீட்டமைக்க இயலாது. + பழக்கம் நீக்கப்பட்டுவிட்டது / காணவில்லை - வார இறுதிகள் + வார இறுதிநாட்கள் திங்கள் முதல் வெள்ளி வரை வாரத்தின் எந்த நாளிலும் நாட்களை தேர்வு செய்யவும் @@ -119,9 +147,12 @@ எதுவும் இல்லை வடிகட்டவும் மறைத்தல் முடிந்தது + பழக்கம் பதிவுசெய்யப்பட்டது ஆவணக் காப்பை மறைக்கவும் நினைவூட்டல்களை நிலைத்து நிற்கவை நினைவூட்டல்களை விரல்களால் தள்ளி விட முடியாத படி செய்கிறது. + அறிவிப்பு ஒளி + நினைவூட்டல்களுக்கு விளக்கு (வசதி உள்ளதெனில்) அணைந்து அணைந்து எரியும் தரவு தளத்தை பழுது பார்க்கவும் தரவுதளம் பழுதடைந்து விட்டது. சரிப்பார்க்காமல் அப்படியே விடு @@ -133,6 +164,58 @@ பெயரின் மூலம் நிறத்தின் மூலம் மதிப்பெண்களின் மூலம் + நிலைகளின்படி ஏற்றுமதி + மதிப்பை மாற்ற, அழுத்தி வைத்திருங்கள் + மதிப்பு + நாள்காட்டி + அலகு + இலக்கு வகை + குறைந்த பட்சம் + அதிக பட்சம் + எ. கா. இன்று உடற்பயிற்சி செய்தீரா? + கேள்வி + இலக்கு + ஆம் + இல்லை + சத்தம், அதிர்வு, ஒளி மற்றும் அறிவிப்பு அமைப்புகளை மாற்றவும் + அறிவிப்புகளைத் தனிப்பயனாக்கவும் + தனியுரிமைக் கொள்கையைக் காணவும் + எல்லா பங்களிப்பாளர்களையும் காண... + தகவல்தளங்கள் + விட்ஜெட்டின் மங்கல் அளவு + உங்கள் முகப்பு திரையில் விட்ஜெட்டுகளை மேலோட்டமாக அல்லது குறைவாக மங்கலாக்கு + வாரத்தின் முதல் நாள் + இன்று இந்தப் பழக்கத்தைச் செய்தீரா? + குறிப்புகள் + (விருப்பத்தேர்வு) + உதாரணமாக: இன்று நீங்கள் வழக்கம்போல முன் எழுந்தீர்களா? நீங்கள் உடற்பயிற்சி செய்தீர்களா? நீங்கள் சதுரங்கம் விளையாடினீர்களா? + மதிப்பிடக்கூடிய + எ. கா. நீங்கள் இன்று எத்தனை மைல்கள் ஓடிநீர்? நீங்கள் எத்தனை பக்கங்கள் படித்தீர்கள்? + வாரத்திற்கு %d முறை + மாதத்திற்க்கு %d முறை %d காலங்களில் %d நாட்கள் + எ. கா. உடற்பயிற்ச்சி + நிறம் + எ. கா. 15 + எ. கா. ஓடு + எ. கா. இன்று எத்தனை மைல் ஓடினாய்? + எ. கா. மைல்கள் + ஒவ்வொரு மாதமும் + வெற்றிடமாக இருக்கக் கூடாது + இன்று + உள்ளிடு + பழக்கம் இல்லை + எண்ணக்கூடிய பழக்கம் ஒன்றுமில்லை + ஆம்-இல்லை பழக்கம் ஒன்றுமில்லை + அதிகரிப்பு + குறைப்பு + தவிர்க்கக்கூடிய நாட்களைச் செயலாக்கவும் + இரண்டு முறை தொடல், \'தவிர்\' வசதியைச் சேர்க்கும். இது உங்கள் மதிப்பெண்ணை மாற்றாது மற்றும் உங்கள் தொடர்ச்சியைக் பாதிக்காது. + பதிவிடாத நாட்களுக்குக் கேள்விக்குறியை காமி + தகவல் இல்லாத நாட்களை வேறுபடுத்து.தவித்தலை பதிவிட, இருமுறை தொடவும். + நீங்கள் இப்போது டெவெலப்பராகிவிட்டீர்கள் + இந்தச் செயலைச் செய்வதற்கான பயன்பாடு எதுவுமில்லை. + நாளை, நள்ளிரவை தாண்டி சில மணிநேரங்கள் நீட்டிக்கவும் + புதிய நாளைக் காண்பிக்க அதிகாலை 3:00 மணிவரை காத்திருக்கவும். நீங்கள் பொதுவாக நடுஇரவுக்கு பின் உறங்குபவரரெனில் உபயோகமானது. பயன்பாட்டை மறுதுவக்கம் செய்தல் அவசியமானது diff --git a/uhabits-android/src/main/res/values-uk-rUA/strings.xml b/uhabits-android/src/main/res/values-uk-rUA/strings.xml index 0b5865660..725d695c5 100644 --- a/uhabits-android/src/main/res/values-uk-rUA/strings.xml +++ b/uhabits-android/src/main/res/values-uk-rUA/strings.xml @@ -83,6 +83,7 @@ Завжди запитувати Налаштувати... Відзначати коротким натисканням + Встановлюйте відмітки одним натисканням замість натискання й утримування. Оцінити цю програму в Google Play Надіслати відгук розробникові Подивитися вихідний код на GitHub @@ -167,6 +168,7 @@ Немає Фільтр Приховати завершені + Приховати введені Приховати архівовані Закріпити сповіщення Запобігає прихованню сповіщень. @@ -189,6 +191,9 @@ Значення Календар Одиниця + Тип цілі + Щонайменше + Щонайбільше напр.: Ви робили сьогодні вправи? Запитання Мета diff --git a/uhabits-android/src/main/res/values-vi-rVN/strings.xml b/uhabits-android/src/main/res/values-vi-rVN/strings.xml index 98d03b750..f0db5716b 100644 --- a/uhabits-android/src/main/res/values-vi-rVN/strings.xml +++ b/uhabits-android/src/main/res/values-vi-rVN/strings.xml @@ -141,7 +141,7 @@ Không có Lọc Ẩn mục đã hoàn thành - Ẩn đã nhập + Ẩn đã nhập Ẩn mục đã lưu trữ Gửi thông báo cố định Không cho các thông báo bị vuốt ngang mất. diff --git a/uhabits-android/src/main/res/values-zh-rCN/strings.xml b/uhabits-android/src/main/res/values-zh-rCN/strings.xml index ec3ff280c..5c80c99f6 100644 --- a/uhabits-android/src/main/res/values-zh-rCN/strings.xml +++ b/uhabits-android/src/main/res/values-zh-rCN/strings.xml @@ -53,7 +53,7 @@ 关闭 新建习惯 编辑习惯 - 标记 + 打卡 稍后提醒 欢迎 Loop 习惯记录能帮你养成和保持好习惯。 @@ -71,14 +71,14 @@ 总是询问 自定义 短按切换 - 只需轻按一下即可放置复选标记,而不是按住。 + 只需点击一下即可打卡,而不是长按。 去 Play 商店评价此应用 发送反馈给开发者 在 GitHub 上查看源代码 链接 习惯标题 设置 - 设定延后提醒间隔时间 + 设定稍后提醒的时间间隔 你知道吗? 如果要重新排列习惯,按住习惯的名字拖到想要的位置 转至横屏查看更多日期 @@ -126,8 +126,8 @@ 以纯黑色背景代替深色主题中的灰色背景。 这可以降低 AMOLED 屏幕手机的耗电量。 界面 - 逆序显示日子 - 在主界面以相反的顺序显示日子 + 逆序显示日期 + 在主界面以相反的顺序显示日期。 @@ -142,7 +142,7 @@ 筛选 隐藏已完成 - 隐藏已输入 + 隐藏已输入 隐藏已存档 使通知持久 防止通知被滑掉。 @@ -171,15 +171,15 @@ 例如:你今天锻炼了吗? 问题 目标 - - + 完成了 + 未完成 更改声音、振动、指示灯(呼吸灯)和其他通知设置 自定义通知 查看隐私政策 查看所有贡献者 数据库 微件不透明度 - 调整主屏幕上微件的不透明度。 + 调整主屏幕上小部件的不透明度。 一周的第一天 你今天完成这个习惯了吗? 备注 @@ -205,10 +205,10 @@ 找不到“是或不是”类的习惯 增加(+1) 减少(-1) - 启用跳过天数 + 启用跳过天数功能 切换两次以添加跳过而不是复选标记。跳过将保持您的得分不变,且不会打破你的连续纪录 对丢失的数据显示问号 - 区分没有数据和实际犯错的日子。要输一个过失,请切换两次。 + 区分无数据和未完成习惯的日期。要输入一个习惯未完成,请切换两次。 你现在是一个开发者! 找不到支持此操作的应用 将一天延长到午夜后的几个小时 diff --git a/uhabits-android/src/main/res/values-zh-rTW/strings.xml b/uhabits-android/src/main/res/values-zh-rTW/strings.xml index 2d425ec82..7afe2d554 100644 --- a/uhabits-android/src/main/res/values-zh-rTW/strings.xml +++ b/uhabits-android/src/main/res/values-zh-rTW/strings.xml @@ -71,6 +71,7 @@ 每次都詢問 自訂 換成輕碰來記錄習慣 + 輕碰即可打勾,不需要長按 在 Google Play 上評價這個 App 傳送改進意見給開發者 在 GitHub 上查看原始碼 @@ -144,6 +145,7 @@ 篩選 隱藏已完成的習慣 + 隱藏已記錄的習慣 隱藏已封存習慣 使提醒保持常駐 防止提醒被滑動移除 @@ -163,8 +165,12 @@ 依據狀態 匯出 持續按住來改換數值 + 日曆 單位 + 目標標準 + 以上 + 以下 例如:你今天運動了嗎? 提示問題 目標 From 245b0eb4d6b767b5814f3d7640979600f645bbf3 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 21 Mar 2025 21:05:17 -0500 Subject: [PATCH 10/21] Update translators --- translators-crowdin.csv | 593 +++++++++++------- .../src/main/res/layout/about_translators.xml | 28 +- 2 files changed, 382 insertions(+), 239 deletions(-) diff --git a/translators-crowdin.csv b/translators-crowdin.csv index 2ce37da5f..930671f45 100644 --- a/translators-crowdin.csv +++ b/translators-crowdin.csv @@ -1,415 +1,536 @@ Name,Languages,"Translated (Words)","Target Words","Approved (Words)",Voted,"""+"" votes received","""-"" votes received","Winning (Words)",Joined -"Alinson Xavier (iSoron)","Portuguese, Brazilian; Japanese; Chinese Simplified; Italian; Spanish; Portuguese; French; Hungarian; Chinese Traditional; Turkish; Russian; Polish; Arabic; German; Korean; Greek; Catalan; Bulgarian; Hindi; Slovenian; Ukrainian; Serbian (Cyrillic); Czech; Indonesian; Croatian; Danish; Dutch; Romanian; Swedish; Basque; Persian; Finnish; Vietnamese; Tamil; Telugu; Hebrew; Esperanto; Norwegian; Afrikaans; Slovak; Armenian; Serbian (Latin); Uyghur",15497,18825,1308,0,1896,84,4315,"2016-03-05 18:35:27" -"Slobodan Simić (Слободан Симић) (slsimic)","Serbian (Latin); Serbian (Cyrillic)",2054,1831,2114,12,33,0,1991,"2021-02-03 14:26:07" -"Oglaigh Rystard (oglaignaheireann)","Ukrainian; Portuguese; Catalan; Greek; Basque; Romanian; Italian",1103,1037,1327,1,13,6,954,"2017-03-31 09:13:19" -dukelc,Slovak,1046,993,0,0,0,0,0,"2020-08-27 14:02:41" -"David (Cliff122)",Swedish,1040,1019,725,6,0,0,700,"2020-01-21 13:56:55" -"Omer I.S. (omeritzics)",Hebrew,1040,927,1122,14,1,0,975,"2020-10-11 20:10:51" +"Alinson Xavier (iSoron)","Portuguese, Brazilian; Japanese; Chinese Simplified; Italian; Spanish; Portuguese; French; Hungarian; Chinese Traditional; Turkish; Russian; Arabic; Polish; German; Korean; Bulgarian; Catalan; Greek; Slovenian; Hindi; Serbian (Cyrillic); Ukrainian; Czech; Danish; Dutch; Indonesian; Croatian; Romanian; Swedish; Basque; Persian; Finnish; Vietnamese; Tamil; Telugu; Hebrew; Esperanto; Afrikaans; Norwegian; Armenian; Slovak; Serbian (Latin); Uyghur",15497,18825,1308,0,2094,111,4315,"2016-03-05 18:35:27" +"Slobodan Simić (Слободан Симић) (slsimic)","Serbian (Latin); Serbian (Cyrillic)",2072,1852,2139,12,30,0,2015,"2021-02-03 14:26:07" +dukelc,Slovak,1107,1052,0,0,0,0,0,"2020-08-27 14:02:41" +"Oglaigh Rystard (oglaignaheireann)","Ukrainian; Portuguese; Catalan; Greek; Basque; Romanian; Italian",1103,1037,1327,1,22,13,954,"2017-03-31 09:13:19" +Avalysion,Georgian,1057,895,0,0,0,0,0,"2023-06-30 20:05:15" +"Mathew TK (mathew2006)",Malayalam,1057,1885,0,0,0,0,0,"2023-12-16 01:57:49" +REMOVED_USER,Hebrew,1051,944,1122,14,1,0,954,"2020-10-11 20:10:51" +"David (Cliff122)",Swedish,1040,1019,725,6,37,0,700,"2020-01-21 13:56:55" "Intan Ayunda (Intan_Ayunda)",Indonesian,818,811,985,0,0,0,729,"2020-10-14 07:51:58" -"Mihail Stefanov (MStefanov)",Bulgarian,755,794,3,0,2,0,2,"2017-03-31 16:09:02" +dusanstrgar,Slovenian,770,730,0,0,0,0,0,"2017-03-31 10:30:28" +"Mihail Stefanov (MStefanov)",Bulgarian,755,794,3,0,2,4,2,"2017-03-31 16:09:02" +Osoitz,Basque,751,683,0,9,0,0,3,"2018-01-23 14:07:47" KMakoto,"Chinese Traditional",745,1146,949,0,0,0,745,"2019-10-22 04:19:52" -"Evren (evrenkiymaz)",Turkish,688,604,0,71,28,22,0,"2020-10-04 03:39:16" -andaryon,Czech,681,606,0,108,0,0,0,"2021-11-25 10:20:45" +Tomairuka,Japanese,709,1842,1033,43,12,0,585,"2020-12-12 12:14:22" +"Evren (evrenkiymaz)",Turkish,688,604,0,71,31,22,0,"2020-10-04 03:39:16" +andaryon,Czech,681,606,0,108,21,0,0,"2021-11-25 10:20:45" "Antti Kallio (antti.kallio)",Finnish,668,539,0,5,0,0,0,"2021-07-03 05:54:44" "David Nos (david.nos)","Catalan; Spanish",667,731,0,0,1,0,0,"2020-01-04 10:15:36" androide74,Italian,662,681,0,2,0,0,0,"2020-02-06 15:46:28" -Osoitz,Basque,655,595,0,9,0,0,3,"2018-01-23 14:07:47" -"Dmitriy Bogdanov (di72nn)",Russian,643,589,1197,0,36,0,515,"2017-03-31 10:00:48" -Tomairuka,Japanese,633,1636,909,43,0,0,564,"2020-12-12 12:14:22" -reyhoon,Persian,624,759,0,1,3,1,0,"2020-10-01 18:17:23" +"Dmitriy Bogdanov (di72nn)",Russian,643,589,1197,0,50,0,515,"2017-03-31 10:00:48" +reyhoon,Persian,624,759,0,1,3,2,0,"2020-10-01 18:17:23" "Saeed Esmaili (saaeed.es20)",Persian,586,795,0,5,4,0,0,"2020-11-26 15:41:15" -fabian.bouchal,German,548,527,0,6,0,3,72,"2020-01-07 06:43:37" -"Isti (eisti)",Hungarian,528,476,0,0,0,0,0,"2020-12-03 12:02:51" -boban77,Czech,509,461,0,2,29,0,0,"2020-04-30 13:18:24" +fabian.bouchal,German,548,527,0,6,4,5,72,"2020-01-07 06:43:37" +"Isti (eisti)",Hungarian,528,476,0,0,1,0,0,"2020-12-03 12:02:51" +Aravinth_Earth,Tamil,511,961,0,12,0,0,0,"2024-02-23 12:37:28" +boban77,Czech,509,461,0,2,45,0,0,"2020-04-30 13:18:24" "Martim Parente (martimparente)",Portuguese,505,542,0,38,0,0,0,"2020-08-26 10:22:11" "Yoav Argov (YoavArgov)",Hebrew,501,461,0,0,1,8,91,"2017-04-28 07:23:01" REMOVED_USER,Norwegian,501,498,501,0,148,0,501,"2017-07-05 19:02:25" "chrrris1987 (Chrrris1987)",Dutch,467,478,0,23,0,0,0,"2020-02-03 05:26:04" -"黄克 (hk13127)","Chinese Simplified",461,765,0,1,0,0,24,"2020-01-17 23:16:03" +"黄克 (hk13127)","Chinese Simplified",461,765,0,1,0,0,22,"2020-01-17 23:16:03" "Huy Ngo (huyngo)",Vietnamese,461,695,0,1,0,0,0,"2020-01-26 11:58:36" -"Arkadiusz Bubak (epitek)",Polish,458,416,52,24,9,4,0,"2020-11-05 05:11:58" +"Arkadiusz Bubak (epitek)",Polish,458,416,52,24,15,4,0,"2020-11-05 05:11:58" +"Radek Kuklík (kuklik.radek)",Czech,453,392,0,100,0,0,0,"2022-10-08 10:04:24" marco.baturan,Esperanto,452,452,0,0,0,0,0,"2020-06-23 02:49:46" -"Sief Tarek (sieftarek135)",Arabic,447,455,0,0,0,0,0,"2021-02-07 14:35:21" -"Alparslan Şakçi (sakci)",Turkish,436,372,0,118,1,0,0,"2022-01-14 12:03:11" -JY3,"Chinese Simplified",427,727,295,0,1,0,222,"2021-03-08 08:53:35" +"Sief Tarek (sieftarek135)",Arabic,447,455,0,0,1,4,0,"2021-02-07 14:35:21" +"Alparslan Şakçi (sakci)",Turkish,436,372,0,118,2,0,0,"2022-01-14 12:03:11" +JY3,"Chinese Simplified",432,741,298,0,2,0,227,"2021-03-08 08:53:35" "Samuel Guay (SamGuay)",French,426,486,0,6,0,0,0,"2020-06-25 07:14:38" "Diana Karaseva (Sun_Dianka)",Russian,399,373,0,10,1,0,209,"2020-01-30 06:40:02" -"Alexander Jansson (dalecarlian)",Swedish,396,406,507,0,0,3,399,"2017-06-21 01:37:32" +"Alexander Jansson (dalecarlian)",Swedish,396,406,507,0,29,6,399,"2017-06-21 01:37:32" luiandresgonzalez,Spanish,383,403,0,1,28,0,0,"2020-07-11 14:20:44" "Thamara Andrade (tkcandrade)","Portuguese, Brazilian",380,387,0,0,1,0,239,"2020-01-09 19:35:48" "Sølv Ræven (soelvraeven)",Danish,370,370,0,0,0,0,0,"2020-11-28 16:46:18" +strikeCunny2245,Icelandic,363,368,0,0,0,0,0,"2023-08-07 08:05:53" "Anh Quân (dangquanuet)",Vietnamese,362,530,0,42,2,0,0,"2017-10-29 12:27:44" +"Alexander Haronitakis (kanakis)",Greek,349,372,0,0,0,0,0,"2023-09-13 04:10:43" gapszi,Hungarian,348,301,0,86,0,0,0,"2019-04-08 01:35:54" "Mahdi Nasiri (mahdi.nasiri)",Persian,343,465,0,39,3,1,0,"2017-07-14 09:17:25" Seoyul,Korean,339,825,0,0,27,0,0,"2017-06-21 08:11:39" -"Magimai Prakasam (magimai)",Tamil,336,831,0,12,0,0,0,"2018-04-15 21:16:08" -"Michael Malak (MichaelKMalak)",Arabic,304,271,0,0,1,0,0,"2020-05-26 19:47:58" -Blinkin,Dutch,297,334,0,5,0,0,0,"2021-06-14 10:30:05" +"Magimai Prakasam (magimai)",Tamil,336,831,0,12,2,0,0,"2018-04-15 21:16:08" +"Star7 (Star7-crowdin)","Chinese Simplified",330,561,0,0,0,0,0,"2025-02-10 08:41:34" +Susanamesa,Spanish,306,342,0,11,0,0,0,"2023-01-01 23:56:35" +"Michael Malak (MichaelKMalak)",Arabic,304,271,0,0,4,2,0,"2020-05-26 19:47:58" "Elina Salminen (salminen.elina.m)",Finnish,297,227,0,0,0,0,0,"2021-01-06 01:28:57" -ayane.m,Japanese,292,863,0,1,5,0,22,"2019-11-20 03:28:26" -"Marius Teufelweich (teufelweich)",German,267,272,611,4,13,1,146,"2021-03-12 04:11:38" +Blinkin,Dutch,297,334,0,5,1,0,0,"2021-06-14 10:30:05" +ayane.m,Japanese,292,863,0,1,8,0,23,"2019-11-20 03:28:26" +c.m,Greek,276,293,0,124,0,0,0,"2024-07-13 14:49:43" +"Marius Teufelweich (teufelweich)",German,267,272,611,4,23,3,146,"2021-03-12 04:11:38" +"Sumin Son (todaypp)",Korean,266,221,0,7,0,0,0,"2023-06-09 05:28:30" hypnotichemionus,"Chinese Simplified",249,430,0,0,8,0,19,"2020-03-08 01:46:25" +"Israa Z (sosozozo)",Arabic,240,266,0,81,14,0,3,"2017-11-27 14:10:50" cobalt59,German,237,234,0,1,24,1,132,"2017-06-05 05:18:33" beriain,Basque,234,235,0,0,2,0,0,"2017-03-31 15:42:28" pnhpnh,Vietnamese,225,343,0,1,3,0,0,"2017-11-27 12:06:07" "Dika Fitrian Dwi Putra (OsamuDazai)",Indonesian,221,215,0,0,0,0,48,"2020-07-13 04:40:27" easyrepro,Telugu,214,297,0,0,4,0,0,"2020-06-12 12:52:10" taras-ko,Ukrainian,211,183,0,1,4,0,19,"2017-10-26 16:52:22" +"vinayak sharma (vinayak0504)",Hindi,211,456,0,0,0,0,0,"2023-05-18 18:31:51" sojusnik,German,207,200,1,0,30,0,66,"2017-04-03 17:11:56" -"Andrij Mizyk (andmizyk)",Ukrainian,204,178,0,40,0,0,53,"2021-04-01 03:56:20" +"Andrij Mizyk (andm)",Ukrainian,204,178,0,40,1,0,53,"2021-04-01 03:56:20" "Heru Yen (heruyen)",Indonesian,201,201,0,0,0,0,25,"2020-06-29 18:39:15" "Vijaykumar Borkar (vjkumar)",Hindi,200,364,0,11,0,0,0,"2021-08-06 16:12:15" _translator,French,199,227,0,11,0,0,0,"2021-07-06 07:54:12" +bearsdens,Romanian,198,210,0,0,0,0,0,"2022-08-28 17:08:33" Ishmaeel,Turkish,193,174,0,129,17,6,0,"2017-10-04 03:54:00" -oscfd,Spanish,192,201,0,2,4,0,0,"2021-05-21 17:58:22" +REMOVED_USER,Spanish,192,201,0,2,5,0,0,"2021-05-21 17:58:22" bruhwut,Vietnamese,189,292,0,1,0,0,0,"2021-05-21 07:16:30" "Aputsiak Niels Janussen (aputtu)",Danish,187,200,0,0,0,0,0,"2019-08-28 05:47:42" fbruna17,Danish,181,179,0,1,0,0,0,"2021-01-28 15:48:47" Bryanx,Dutch,179,168,0,5,2,0,0,"2019-11-21 17:08:12" -"Omry Cohen (omrycohen)",Hebrew,175,156,0,1,0,0,33,"2021-01-18 07:33:23" +"Ivan Vlahov (vlahovivan)",Croatian,179,176,0,0,0,0,0,"2024-01-25 08:12:11" +"Omry Cohen (omrycohen)",Hebrew,175,156,0,1,0,0,12,"2021-01-18 07:33:23" "Pierre GALIEGUE (pierre.galiegue)",French,171,194,0,24,4,0,0,"2020-08-16 11:41:35" -plitwin,Polish,168,151,0,2,31,0,49,"2021-01-20 06:18:37" -DionysosDV,Greek,165,153,0,0,0,0,0,"2021-02-27 19:05:25" +plitwin,Polish,168,151,0,2,55,0,49,"2021-01-20 06:18:37" +DionysosDV,Greek,165,153,0,0,27,4,0,"2021-02-27 19:05:25" "Gustavo Lima (GustavoLima)",Portuguese,158,177,0,1,4,10,0,"2020-08-26 10:35:05" +"Alex V. (elvitalex)",Romanian,154,166,0,24,0,0,0,"2022-08-03 17:40:00" "Ravi Rami (ramiravi)",Hindi,151,248,0,0,0,0,0,"2021-10-10 09:19:40" "Lương Vĩnh Khang (LuongVinhKhang)",Vietnamese,144,256,0,0,46,1,0,"2017-08-10 10:05:58" azzamsa,Indonesian,142,136,0,48,0,1,26,"2017-06-16 18:29:45" "yoding (yodingc)","Chinese Traditional; Chinese Simplified",141,271,0,10,0,0,0,"2021-07-07 01:45:45" "Neysa Nasywa (neysanasywa)",Indonesian,140,141,0,0,0,0,60,"2020-11-18 10:32:10" -mohmans,Arabic,139,141,0,12,1,0,0,"2020-11-23 02:48:00" -"Eilif Adelvice (adelvice)",Spanish,139,154,0,96,1,0,0,"2021-08-05 07:20:21" -"Mohammed Imthath (mimthath4)",Tamil,136,274,0,0,11,0,0,"2018-02-15 22:41:15" +mohmans,Arabic,139,141,0,12,7,1,0,"2020-11-23 02:48:00" +"Eilif Adelvice (adelvice)",Spanish,139,154,0,96,6,0,0,"2021-08-05 07:20:21" +"Mohammed Imthath (mimthath4)",Tamil,136,274,0,0,13,1,0,"2018-02-15 22:41:15" carllacan,Catalan,134,155,0,2,0,0,0,"2021-11-13 13:12:07" roptat,French,132,154,0,112,89,5,0,"2017-04-19 16:54:47" "Trần Thái (tranhoangthai2001)",Vietnamese,127,186,0,8,1,0,0,"2018-03-01 10:51:39" "OP Smosher (teenwolffan44)","Serbian (Cyrillic)",124,122,0,0,0,0,18,"2020-11-05 09:41:35" +"Tad Wohlrapp (TadWohlrapp)",German,124,122,0,0,2,0,0,"2022-06-28 04:55:41" 4001982248998,Esperanto,122,119,0,0,0,0,0,"2017-10-08 04:13:02" -"StoP4Me (Lcqp)",Romanian,121,119,0,0,3,0,0,"2018-05-06 18:51:59" -alalloush,Arabic,118,129,0,2,14,3,0,"2017-03-31 12:37:17" +"StoP4Me (Lcqp)",Romanian,121,119,0,0,6,0,0,"2018-05-06 18:51:59" +alalloush,Arabic,118,129,0,2,17,6,0,"2017-03-31 12:37:17" +"Brenda Correa (brenda.14)",Spanish,117,127,0,0,0,1,0,"2022-05-16 02:34:13" +Sebastian05067,Spanish,114,133,0,55,32,0,0,"2017-05-14 00:48:16" "Tanya (MagicUnderHood)",Russian,114,98,0,19,0,0,54,"2019-04-21 10:44:03" -Sebastian05067,Spanish,114,133,0,55,28,0,0,"2017-05-14 00:48:16" -REMOVED_USER,Arabic,111,106,0,22,22,2,0,"2018-01-05 07:01:45" -"Iabin Arteaga (iabin)",Spanish,108,111,0,4,21,0,0,"2017-08-26 21:08:54" +REMOVED_USER,Arabic,111,106,0,22,23,3,0,"2018-01-05 07:01:45" "Ivan Krušlin (krux3r)",Croatian,108,122,503,0,0,0,108,"2017-03-31 09:15:24" -2kaafone,Finnish,105,90,0,0,0,0,0,"2019-08-12 06:58:48" +"Iabin Arteaga (iabin)",Spanish,108,111,0,4,21,1,0,"2017-08-26 21:08:54" +REMOVED_USER,Finnish,105,90,0,0,0,0,0,"2019-08-12 06:58:48" "Adam Jurkiewicz (hasztagg)",Polish,104,105,529,0,0,0,104,"2017-03-31 09:50:51" +"PILHA PARK (pilhaha)",Korean,101,88,0,0,0,0,0,"2023-06-30 23:51:41" "just a name bro (justanamebr0)",Danish,98,109,0,0,1,0,0,"2019-06-19 11:57:55" "Nam Nguyen (namnl2706)",Vietnamese,95,137,0,0,0,0,0,"2020-08-18 23:02:33" -"손유정 (yuwon1213)",Korean,95,57,0,0,1,0,0,"2021-03-30 05:25:33" +"손유정 (yuwon1213)",Korean,95,57,0,0,1,3,0,"2021-03-30 05:25:33" ranmagen,Hebrew,91,78,0,0,0,0,0,"2021-02-16 05:44:31" LoneWanderer,"Chinese Traditional",90,137,0,4,0,0,0,"2020-09-29 05:24:48" ikkaz,Indonesian,89,84,0,5,0,0,4,"2019-09-02 19:58:54" "Vo - (voyl)","Chinese Traditional",89,126,0,0,5,0,0,"2020-09-02 23:34:42" -"Irene K (Heaun)",Korean,88,75,0,25,0,0,0,"2020-03-16 11:31:12" +"Irene K (Heaun)",Korean,88,75,0,25,2,0,0,"2020-03-16 11:31:12" Prosta4ok_ua,Ukrainian,87,84,0,1,0,0,17,"2020-01-23 19:43:41" "Kumar Anand (kumar0500)",Hindi,87,125,0,0,0,0,0,"2020-11-07 02:46:09" +G.kio,Russian,87,82,0,0,1,0,0,"2023-08-24 19:43:00" "Ohad Edri (ohadalte)",Hebrew,85,79,0,0,1,3,13,"2020-07-04 03:42:09" -helectron,Persian,84,102,0,1,0,0,0,"2021-03-02 04:10:51" -"Radu Cebotari (wildProgrammer)",Romanian,84,92,0,1,0,0,0,"2020-02-05 01:20:00" -"Bruces Lee (aplusbdesign)",Korean,82,66,0,0,0,0,0,"2021-08-23 11:27:18" -"Israa Z (sosozozo)",Arabic,79,87,0,43,14,0,3,"2017-11-27 14:10:50" -"Sofia Neves (sofiasonev)","Portuguese, Brazilian",79,84,0,1,0,0,46,"2020-03-12 18:19:46" -"Jacob Roller (jdr28070)",Korean,79,61,0,0,1,0,0,"2020-01-03 11:36:40" +"Radu Cebotari (wildProgrammer)",Romanian,84,92,0,1,1,0,0,"2020-02-05 01:20:00" +helectron,Persian,84,102,0,1,1,0,0,"2021-03-02 04:10:51" +"Bruces Lee (aplusbdesign)",Korean,82,66,0,0,2,0,0,"2021-08-23 11:27:18" Tiralka,French,79,91,0,92,1,0,0,"2018-02-09 18:39:01" +"Jacob Roller (jdr28070)",Korean,79,61,0,0,1,1,0,"2020-01-03 11:36:40" +"Sofia Neves (sofiasonev)","Portuguese, Brazilian",79,84,0,1,0,0,46,"2020-03-12 18:19:46" "Toni Mustonen (toni.mustonen)",Finnish,78,72,0,0,5,0,0,"2017-09-02 05:34:12" -"Michael (quelbs)",German,76,75,0,1,0,0,39,"2020-08-18 07:39:26" "Fauz Aladeem (topfauz)",Arabic,76,77,0,0,0,1,0,"2020-02-21 22:46:12" -"Radoslaw Biernacki (radoslaw.biernacki)",Polish,70,74,0,56,1,0,1,"2020-12-15 17:55:31" -"Oliver Gronowski (OliverGronowski)",German,70,69,0,5,2,0,0,"2021-05-14 16:37:10" +"Michael (quelbs)",German,76,75,0,1,0,0,39,"2020-08-18 07:39:26" +"Anna Maria Stålberg (stalberg.annamaria)",Swedish,76,77,0,111,4,0,0,"2023-01-16 04:08:25" +"Radoslaw Biernacki (radoslaw.biernacki)",Polish,70,74,0,56,5,0,1,"2020-12-15 17:55:31" +"Oliver Gronowski (OliverGronowski)",German,70,69,0,5,3,0,0,"2021-05-14 16:37:10" +mimizuk,Japanese,68,193,0,0,2,1,39,"2022-05-18 10:10:38" +Ryeore,Polish,68,61,0,66,0,0,0,"2022-07-27 12:22:33" RealDonald,Dutch,67,69,0,121,10,0,0,"2017-06-23 20:10:12" +"Dpd Eng (dpdeng)",Korean,67,48,0,0,1,0,0,"2022-10-15 10:56:44" sirekanyan,"Armenian; Russian",66,65,0,0,0,0,0,"2020-04-18 11:32:52" "Константин К. (kocyak1991)",Russian,64,60,0,0,1,2,0,"2018-06-10 13:39:37" +yukitsubaki,Japanese,64,185,0,32,0,0,36,"2020-01-01 13:17:44" +Suuis,Hindi,64,110,0,0,0,0,0,"2023-07-02 11:50:22" "Laura Sophie (laurasophie20)",German,62,67,0,4,0,0,0,"2018-01-06 14:21:24" raden20,Indonesian,61,62,177,0,1,0,64,"2017-04-09 22:04:23" -"Peter Williams (williamspete001)",Japanese,60,173,0,2,0,0,3,"2020-01-01 13:17:44" +"y (veggente)",Korean,61,56,0,0,0,1,0,"2022-06-28 10:41:18" "Jan Wojtecki (j4nw)",Polish,58,46,0,0,0,0,26,"2017-11-02 05:42:14" -"Deepak Bharathi (deepakbharathi1994)",Tamil,56,107,0,0,11,4,0,"2017-09-17 08:00:31" +"Deepak Bharathi (deepakbharathi1994)",Tamil,56,107,0,0,13,4,0,"2017-09-17 08:00:31" "Андрій Козицький (andriikozytskyi1108)",Ukrainian,52,52,0,0,1,0,0,"2018-10-22 01:45:08" "Nil riera (nilriera2000)",Catalan,52,61,0,1,2,0,0,"2021-06-22 16:37:44" -"Neoone (Neooneqq)",Romanian,51,54,0,0,0,0,0,"2022-05-05 20:42:11" REMOVED_USER,Italian,51,52,0,2,0,0,0,"2017-08-21 05:15:31" -govindap,"Japanese; Hindi",51,114,0,6,1,0,0,"2020-06-02 20:15:52" +govindap,"Japanese; Hindi",51,114,0,6,3,1,0,"2020-06-02 20:15:52" +"Neoone (Neooneqq)",Romanian,51,54,0,0,0,0,0,"2022-05-05 20:42:11" "Mare Geldenhuys (mare.geldenhuys)",Afrikaans,50,57,0,0,0,0,0,"2017-10-20 18:00:14" -"Mahmoud Magdy (M7moudManson)",Arabic,49,60,0,6,8,1,0,"2021-08-21 09:01:38" "Behnood HRazy (behnoodhr)",Persian,49,70,0,0,0,0,0,"2017-11-25 10:57:21" +"Mahmoud Magdy (M7moudManson)",Arabic,49,60,0,6,12,6,0,"2021-08-21 09:01:38" J3ll3nl,Dutch,48,48,0,0,17,1,3,"2017-03-31 11:56:09" "tat bz (Tat_i)",German,48,56,0,55,0,1,27,"2021-03-26 05:12:54" -vach,Armenian,47,36,0,0,0,0,0,"2020-04-18 16:53:12" "Andrew Firnes (Anechan)",Russian,47,47,0,3,0,0,29,"2019-09-18 09:51:59" -andowero,Czech,47,38,0,0,3,0,0,"2020-01-20 02:29:01" +andowero,Czech,47,38,0,0,8,0,0,"2020-01-20 02:29:01" +vach,Armenian,47,36,0,0,0,0,0,"2020-04-18 16:53:12" "Rahul Shishodia (rahul.shishodia.10)",Hindi,46,85,0,6,5,1,0,"2018-12-24 22:18:19" "Coni Ragni (coni2ragnii)",Spanish,46,46,0,0,0,0,0,"2021-02-28 20:18:37" Cp0204,"Chinese Simplified",45,72,0,0,0,0,0,"2019-08-20 11:04:27" "cc (cavaz)",Italian,44,41,0,0,0,0,0,"2017-04-01 04:21:08" -"Boban Jagertraum (boban40)",Czech,43,38,0,2,18,1,0,"2017-03-31 09:39:16" -"Kamil Dziadek (prso94)",Polish,43,39,0,0,6,0,0,"2020-04-06 17:12:06" +"Andrej Šutovský (16andrej.s)",Slovak,44,41,0,0,0,0,0,"2022-06-12 18:01:16" +"Boban Jagertraum (boban40)",Czech,43,38,0,2,31,1,0,"2017-03-31 09:39:16" +"Kamil Dziadek (prso94)",Polish,43,39,0,0,11,0,0,"2020-04-06 17:12:06" +"Balázs Keresztury (belidzs)",Hungarian,42,41,501,0,7,0,38,"2017-04-06 02:40:24" andreea.muscalagiu,Romanian,42,52,0,1,0,0,0,"2017-10-22 07:19:49" "Me Me (gentelwom)",Arabic,42,40,0,0,0,0,0,"2020-11-08 20:44:01" -"Balázs Keresztury (belidzs)",Hungarian,42,41,501,0,7,0,38,"2017-04-06 02:40:24" -"Mateusz Duda (MateuszDuda)",Polish,42,42,0,0,6,0,0,"2021-08-17 11:27:11" "Ali Elsheikh (aelsheikh1987)",Arabic,42,41,0,0,0,0,0,"2021-06-16 10:17:26" -"Ali Zali (stm19951995)",Persian,40,60,0,0,0,0,0,"2020-03-23 19:57:26" +"Mateusz Duda (MateuszDuda)",Polish,42,42,0,0,20,0,0,"2021-08-17 11:27:11" +"Mr Habti (donhabti)",Arabic,41,40,0,0,0,0,0,"2023-02-20 10:52:50" "Sofia Veijonen (Suklaa) (sofia.veijonen)",Finnish,40,33,0,0,0,0,0,"2018-03-07 09:24:22" -dusanstrgar,Slovenian,39,41,0,0,0,0,0,"2017-03-31 10:30:28" +"Neeraj Verma (verma.neeraj.in)",Hindi,40,65,0,0,1,0,0,"2018-07-23 07:16:41" +"Ali Zali (stm19951995)",Persian,40,60,0,0,0,0,0,"2020-03-23 19:57:26" "Limin Lu (liminlu)","Chinese Simplified",39,79,503,0,0,0,39,"2017-03-31 09:49:35" -Anshoe,Tamil,38,65,0,14,0,0,0,"2018-01-02 11:06:52" +Anshoe,Tamil,38,65,0,14,3,0,0,"2018-01-02 11:06:52" +"Pavel Protasov (pvphome)",Russian,38,33,0,0,0,0,0,"2024-02-09 03:40:33" anasshm,Arabic,37,36,0,9,0,0,0,"2019-01-27 04:07:22" hrexen,Armenian,37,37,0,0,0,0,0,"2020-12-09 02:30:34" -"Abdulrahman (D7M)",Arabic,36,39,0,0,0,0,0,"2020-01-29 18:55:30" -REMOVED_USER,Swedish,36,33,0,5,1,0,0,"2018-09-29 17:47:33" -xphsis,Basque,36,31,0,0,0,0,0,"2022-01-02 08:16:19" +REMOVED_USER,Swedish,36,33,0,5,2,0,0,"2018-09-29 17:47:33" +"Abdulrahman (D7M)",Arabic,36,39,0,0,4,0,0,"2020-01-29 18:55:30" "Maria Chushnyakova (maria.ch)",Russian,36,31,0,3,0,0,0,"2021-08-17 03:23:58" -"長谷川知里 (chase0213)",Japanese,34,138,0,13,0,0,24,"2018-12-14 10:52:44" -"Piotr Łuczyński (peterluczynski)",Polish,33,30,0,6,10,0,2,"2020-01-29 07:27:40" -"Luis E. Perichon (luisperichon)",Spanish,33,40,0,104,0,0,0,"2017-09-04 13:46:06" +xphsis,Basque,36,31,0,0,0,0,0,"2022-01-02 08:16:19" +"長谷川知里 (chase0213)",Japanese,34,138,0,13,0,0,32,"2018-12-14 10:52:44" "milad farahani (miladfarmahini90)",Persian,33,44,0,18,1,0,3,"2017-08-31 16:09:00" +"Luis E. Perichon (luisperichon)",Spanish,33,40,0,104,0,0,0,"2017-09-04 13:46:06" +"Piotr Łuczyński (peterluczynski)",Polish,33,30,0,6,17,0,2,"2020-01-29 07:27:40" JoeLi,"Chinese Traditional",31,70,0,12,0,0,24,"2017-06-25 05:32:48" -andriikozytskyi2625,Ukrainian,31,23,0,0,0,0,0,"2019-07-08 00:16:41" REMOVED_USER,Russian,31,30,0,2,4,0,3,"2018-12-03 23:55:47" -Moastafa,Arabic,31,25,0,0,0,0,0,"2020-07-06 11:37:53" -"hamza gamal (hamzagamal4444)",Arabic,31,28,0,0,0,0,0,"2020-08-03 15:23:34" +andriikozytskyi2625,Ukrainian,31,23,0,0,0,0,0,"2019-07-08 00:16:41" +Moastafa,Arabic,31,25,0,0,0,4,0,"2020-07-06 11:37:53" +"hamza gamal (hamzagamal4444)",Arabic,31,28,0,0,1,0,0,"2020-08-03 15:23:34" yancyn,"Chinese Simplified",30,40,0,0,0,0,1,"2020-05-18 20:06:03" +"Siniša Sabljić (ssabljic)",Croatian,30,37,0,0,0,0,0,"2023-11-13 15:51:00" "Ruud Schouten (ruudschouten)",Dutch,29,32,0,41,3,0,0,"2017-07-22 17:49:17" -"비니몬youtube (khj01025276475)",Korean,29,25,0,0,0,0,0,"2020-02-09 20:44:35" +"비니몬youtube (khj01025276475)",Korean,29,25,0,0,0,1,0,"2020-02-09 20:44:35" avelneve,Indonesian,29,28,0,0,0,0,0,"2022-04-13 13:26:10" +bzhn,Ukrainian,29,26,0,0,4,0,0,"2022-06-18 17:09:13" +"Gergő Mihály (mihalygergo97)",Hungarian,28,69,0,0,0,0,0,"2024-02-13 08:35:57" "Niraj Yadav (neverforgetniraj)",Hindi,26,48,0,0,0,0,0,"2017-04-11 02:26:50" -"Aaron Dalton (Perlkonig)",French,26,25,0,141,1,0,0,"2018-01-14 12:58:19" -"Jonny I (jonny99dj)",Italian,26,26,0,5,0,0,0,"2017-10-07 07:35:34" "Guillaume Collic (gcollic)",French,26,28,0,126,11,0,0,"2017-05-05 16:13:00" -Pan_Filuta,Czech,25,21,0,5,8,0,3,"2017-04-29 12:55:14" +"Jonny I (jonny99dj)",Italian,26,26,0,5,0,0,0,"2017-10-07 07:35:34" +"Aaron Dalton (Perlkonig)",French,26,25,0,141,1,0,0,"2018-01-14 12:58:19" +Pan_Filuta,Czech,25,21,0,5,11,0,3,"2017-04-29 12:55:14" "Eddie (eddieattaboy)","Chinese Traditional",25,34,0,1,0,0,0,"2020-11-04 21:48:05" -"eduard83 (barbany.eduard)",Catalan,24,25,0,2,0,0,0,"2019-06-26 14:59:47" -"A Aa (ylayzlmimashisafyoutub)",Arabic,23,33,0,34,1,1,0,"2021-09-27 15:34:26" +REMOVED_USER,Catalan,24,25,0,2,0,0,0,"2019-06-26 14:59:47" "Caner Başaran (basarancaner)",Turkish,23,21,0,0,26,1,0,"2017-04-09 06:34:59" "Ľuboš Čaky (lubos.caky)",Slovak,23,22,0,0,0,0,0,"2019-07-02 16:51:44" -"Neeraj Verma (verma.neeraj.in)",Hindi,22,37,0,0,1,0,0,"2018-07-23 07:16:41" -gnu-ewm,Polish,22,23,0,6,2,0,0,"2021-02-24 03:42:01" +"A Aa (ylayzlmimashisafyoutub)",Arabic,23,33,0,34,3,2,0,"2021-09-27 15:34:26" hodanli,Turkish,22,26,0,0,1,0,0,"2017-11-03 14:33:41" +REMOVED_USER,Polish,22,23,0,6,9,0,0,"2021-02-24 03:42:01" "Alcarkse (alexis.brusle)",French,21,25,0,7,11,0,0,"2017-08-06 09:32:29" +"Hugo Nogueira (hfrnogueira86)",Portuguese,21,22,0,0,0,0,0,"2023-01-09 22:51:24" "Shashwat (goforgold)",Hindi,20,33,0,0,0,0,0,"2020-05-17 10:34:42" olbotta,Italian,20,25,0,2,0,0,0,"2021-06-06 04:22:55" -can13,Turkish,19,14,0,8,0,0,0,"2021-01-03 10:39:03" -"사자솥 (toke1597)",Korean,19,19,0,0,0,0,0,"2020-02-04 13:36:11" -KenKailer,Arabic,19,25,0,0,0,0,0,"2022-05-10 06:16:54" "İsa Eş (IsaEs)",Turkish,19,17,0,0,6,2,0,"2017-06-20 07:30:22" "Magdalena Urbańczyk (madziia139)",Polish,19,19,0,0,0,0,0,"2017-10-21 03:01:04" sheeCesu,French,19,18,0,48,4,0,0,"2017-12-21 17:01:39" +"사자솥 (toke1597)",Korean,19,19,0,0,0,0,0,"2020-02-04 13:36:11" +can13,Turkish,19,14,0,8,0,0,0,"2021-01-03 10:39:03" +KenKailer,Arabic,19,25,0,0,0,0,0,"2022-05-10 06:16:54" axikman11111,Uyghur,18,19,0,0,0,0,0,"2018-10-13 12:25:31" -Adeline31,French,17,20,0,3,0,0,0,"2019-12-06 00:00:11" -"Hoon Jung (hooni100)",Korean,17,10,0,0,0,0,0,"2021-01-03 02:26:54" -takoyakibento,Korean,17,13,0,3,0,0,0,"2020-08-01 08:44:15" +"Sanjay Krishna (sjaykh)",Malayalam,18,42,0,0,0,0,0,"2024-06-01 08:57:37" +"Chuang-Chen Chiu (peterChiu9952)","Chinese Traditional",18,28,0,0,0,0,0,"2024-07-02 09:36:59" +AlexanderS,German,18,16,0,8,0,0,0,"2025-02-02 16:58:09" "Ceara Lopez (cealopez)",Spanish,17,18,0,0,5,1,0,"2017-08-22 22:56:13" -bretzel15,German,16,20,0,0,0,0,0,"2020-04-06 02:49:14" -DebatablySane,Bulgarian,16,15,0,48,0,0,0,"2017-07-10 15:13:18" +Adeline31,French,17,20,0,3,1,0,0,"2019-12-06 00:00:11" +takoyakibento,Korean,17,13,0,3,0,0,0,"2020-08-01 08:44:15" +"Hoon Jung (hooni100)",Korean,17,10,0,0,0,0,0,"2021-01-03 02:26:54" +Annelotte,Dutch,17,20,0,0,0,0,0,"2022-11-09 08:33:20" +wppoqqqi,Korean,17,18,0,4,0,0,0,"2024-11-30 04:22:21" "Şamil Ateşoğlu (m.samilatesoglu)",Turkish,16,22,0,11,6,3,0,"2017-07-05 18:37:08" +DebatablySane,Bulgarian,16,15,0,48,0,0,0,"2017-07-10 15:13:18" +bretzel15,German,16,20,0,0,1,0,0,"2020-04-06 02:49:14" engineeringforgood,Russian,16,15,0,0,0,0,16,"2021-01-22 03:32:35" +"M7md Salahaddin (m7mdsalahaddin)",Arabic,16,16,0,1,0,0,0,"2024-07-17 18:49:07" "Bhava Tharini (bhavidanush)",Tamil,15,37,0,0,0,0,0,"2019-10-09 05:43:11" -"Maro Chr (caprisunglasses)",Greek,14,17,0,0,0,0,0,"2021-08-17 06:53:33" -"Zeynep Esen (nezihaesen50)",Turkish,14,13,0,0,0,0,0,"2020-01-28 07:05:15" +"Ch. (sftblw)",Korean,15,17,0,1,0,0,0,"2023-01-25 19:22:34" iamsurajbobade,Hindi,14,30,0,0,0,0,0,"2018-05-21 11:23:27" -"Faiz Ahamed (faiznewton)",Tamil,14,31,0,0,0,0,0,"2021-05-06 23:06:46" +"Zeynep Esen (nezihaesen50)",Turkish,14,13,0,0,0,0,0,"2020-01-28 07:05:15" "Sanji Vinsmock (mukanzhanbolat4)",Russian,14,14,0,0,0,0,0,"2020-02-18 12:38:54" -"Zeeshan Rabbani (Zeera)",Hindi,14,25,0,0,0,0,0,"2020-09-15 11:32:01" -"pi hobbes (uwe_silv)",Japanese,14,46,0,0,0,0,0,"2022-01-15 02:57:14" "Anastasia Borchuk (al2.borchuk)",Russian,14,14,0,0,0,0,0,"2020-04-14 13:22:49" "Fikret Bilici (fikretbilici)",Turkish,14,13,0,0,0,0,0,"2020-06-21 17:16:11" -"EuiHo Hwang (euiho.hwang)",Korean,14,16,0,0,0,0,0,"2020-06-23 02:40:01" -"Uwe Mönks (schirinowski)",German,13,12,0,0,0,0,0,"2021-02-18 04:00:41" +"EuiHo Hwang (euiho.hwang)",Korean,14,16,0,0,1,0,0,"2020-06-23 02:40:01" +"Zeeshan Rabbani (Zeera)",Hindi,14,25,0,0,0,0,0,"2020-09-15 11:32:01" +"Faiz Ahamed (faiznewton)",Tamil,14,31,0,0,0,0,0,"2021-05-06 23:06:46" +"Maro Chr (caprisunglasses)",Greek,14,17,0,0,0,0,0,"2021-08-17 06:53:33" +"pi hobbes (uwe_silv)",Japanese,14,46,0,0,0,0,14,"2022-01-15 02:57:14" +"Mar Tous (mtousfernandez)",Catalan,14,18,0,0,0,0,0,"2022-08-16 17:55:28" +Ferhatt,Turkish,14,13,0,3,0,0,0,"2022-12-13 12:52:20" +alchemiker,German,14,13,0,0,0,0,0,"2024-09-03 10:16:04" +"Nenad Vukotic (vukotic.nenad)","Serbian (Cyrillic)",13,13,0,1,2,6,0,"2019-01-31 14:29:15" "Dave (xdave)",Hungarian,13,11,0,0,0,0,0,"2020-03-02 20:56:50" +"Uwe Mönks (schirinowski)",German,13,12,0,0,0,0,0,"2021-02-18 04:00:41" +Herbie_23,Italian,13,15,0,0,0,0,0,"2022-01-17 17:35:40" "Ana Kelly Vale (anakvale)","Portuguese, Brazilian",13,21,0,4,0,0,2,"2022-03-30 00:15:37" -GiorgioHerbie,Italian,13,15,0,0,0,0,0,"2022-01-17 17:35:40" -"Nenad Vukotic (vukotic.nenad)","Serbian (Cyrillic)",13,13,0,1,2,6,0,"2019-01-31 14:29:15" -soura2,Arabic,12,13,0,0,0,0,0,"2020-01-13 19:23:47" +"Minsu (cknblue)",Korean,13,10,0,1,0,0,0,"2022-05-18 00:26:54" "shreyas (techiespace)",Hindi,12,20,0,0,0,0,0,"2018-06-10 01:14:26" +soura2,Arabic,12,13,0,0,0,0,0,"2020-01-13 19:23:47" +"Ammar Naif (Ammar_Naif)",Arabic,12,12,0,6,0,0,0,"2022-01-15 05:16:41" "Jo Chuang (josephch405)","Chinese Traditional",11,24,0,0,0,0,11,"2017-06-16 20:21:06" Vmrc,French,11,12,0,2,0,0,0,"2020-11-02 05:35:06" -"Ammar Naif (Ammar_Naif)",Arabic,11,11,0,4,0,0,0,"2022-01-15 05:16:41" "Sonu Sharma (riteetude)",Hindi,11,23,0,0,0,0,0,"2021-05-30 19:38:00" +"Lucas Depetris (lucasdepetrisd)","Spanish; Catalan; Italian; French",11,12,0,12,0,0,0,"2023-10-24 21:16:21" +"Mihael Wagner (miha.wagner)",Slovenian,10,9,0,7,0,0,0,"2017-10-18 18:26:29" +"Anonymous edgy nerd (yamentaad)",Arabic,10,13,0,1,0,0,0,"2018-05-06 09:23:57" "Edwin van Rooij (edwinvrooij)",Dutch,10,13,0,17,0,0,0,"2018-11-05 03:59:10" "Brian Camacho (bmcamacho)",Polish,10,11,0,0,1,1,0,"2020-08-03 02:27:28" -"Mihael Wagner (miha.wagner)",Slovenian,10,9,0,7,0,0,0,"2017-10-18 18:26:29" -"Hrant Hakobian (hrastgh1)",Armenian,10,9,0,0,0,0,0,"2021-08-29 15:22:10" "sathvic k (sathvictripleseven)",Telugu,10,17,0,0,0,0,0,"2020-09-11 08:11:32" "Ahmed Mosaad (ahmed.mosaad2018)",Arabic,10,12,0,6,0,0,0,"2021-02-03 18:45:43" -"Anonymous edgy nerd (yamentaad)",Arabic,10,13,0,1,0,0,0,"2018-05-06 09:23:57" +"Hrant Hakobian (hrastgh1)",Armenian,10,9,0,0,0,0,0,"2021-08-29 15:22:10" +"Milan Siebenbürger (lennyd)",Czech,10,7,0,1,1,0,0,"2022-01-30 07:09:42" "Zesar Cebrián (Txorrota)",Spanish,10,44,0,0,0,0,0,"2022-02-09 01:34:32" -"Milan Siebenbürger (lennyd)",Czech,10,7,0,1,0,0,0,"2022-01-30 07:09:42" -"Suhaili Hassan (kucingsyg96)",Indonesian,9,10,0,0,0,0,0,"2018-06-10 11:55:09" +"Слави Велчев (BRO36S) (gg13656)",Bulgarian,10,11,0,9,0,0,0,"2025-01-09 08:47:04" "Sourire Lucide (sourire_lucide)",Russian,9,10,0,0,1,0,0,"2018-03-22 01:37:55" -"Martin Vostatek (martinvostatek)",Czech,9,8,0,32,2,0,0,"2019-01-21 13:52:36" -"Seweryn Piotrowski (Draxxsx)",Polish,9,10,0,0,19,0,0,"2020-01-02 09:55:48" -"Jakob Weickmann (jweickm)",Japanese,8,21,0,0,0,0,0,"2021-10-05 11:10:25" +"Suhaili Hassan (kucingsyg96)",Indonesian,9,10,0,0,0,0,0,"2018-06-10 11:55:09" +"Martin Vostatek (martinvostatek)",Czech,9,8,0,32,3,0,0,"2019-01-21 13:52:36" +"Seweryn Piotrowski (Draxxsx)",Polish,9,10,0,0,26,0,0,"2020-01-02 09:55:48" +omoise,French,9,11,0,1,0,0,0,"2023-12-26 14:27:17" Rex123,Persian,8,8,0,0,0,0,0,"2017-07-01 00:47:42" +"Jakob Weickmann (jweickm)",Japanese,8,21,0,0,0,0,8,"2021-10-05 11:10:25" "Andrey ZaXeLoN (waragaa)",Russian,7,7,0,8,1,0,0,"2017-09-18 21:37:42" +"Vladimir Pavlychev (vovs03)",Russian,7,9,0,0,0,0,0,"2017-12-18 02:46:56" "Konstantin (KZhidovinov)",Russian,7,7,0,0,0,0,0,"2020-01-29 13:35:12" +pkorove,Greek,7,7,0,0,1,0,0,"2020-03-07 11:36:12" ftfoi,Norwegian,7,6,0,0,0,0,0,"2020-04-11 20:42:35" -"Vladimir Pavlychev (vovs03)",Russian,7,9,0,0,0,0,0,"2017-12-18 02:46:56" -"Felipe Chagas (chagretes)","Portuguese, Brazilian",7,8,0,0,3,0,5,"2022-01-10 12:20:25" "Андрій Козицький (andriikozytskyi3807)",Ukrainian,7,12,0,2,0,0,0,"2020-09-26 20:31:56" -pkorove,Greek,7,7,0,0,0,0,0,"2020-03-07 11:36:12" -ChloeLiang,Japanese,6,22,0,0,1,0,3,"2017-08-08 05:02:59" +"Felipe Chagas (chagretes)","Portuguese, Brazilian",7,8,0,0,3,0,5,"2022-01-10 12:20:25" +"Tomáš Miklovič (zyppi)",Slovak,7,7,0,0,0,0,0,"2022-09-11 15:12:06" "Sam (SorodonSorodon)",German,6,6,0,13,0,0,0,"2017-04-14 11:09:27" +ChloeLiang,Japanese,6,22,0,0,1,0,3,"2017-08-08 05:02:59" "닉닉 (seohu9466)",Korean,6,14,0,13,0,0,0,"2017-10-09 23:08:15" -"Sarita Cajas (sarayanacajas)",Spanish,6,4,0,0,1,0,0,"2021-05-14 14:27:59" erfan2927,Persian,6,6,0,0,0,0,0,"2018-04-09 02:12:44" "Burak Ceylan (7burakceylan)",Turkish,6,6,0,0,0,0,0,"2018-05-20 17:24:19" -andriikozytskyi2018,Ukrainian,5,5,0,0,0,0,0,"2017-09-03 05:24:43" -"Vitor Henrique (vitorhcl)","Portuguese, Brazilian",5,8,0,1,0,0,0,"2022-03-08 20:00:59" +"Sarita Cajas (sarayanacajas)",Spanish,6,4,0,0,1,0,0,"2021-05-14 14:27:59" +"خالد (mkhrafi1999)",Arabic,6,3,0,6,0,0,0,"2023-06-25 00:36:13" "Matthias Joly (joly.matt12)",French,5,8,0,27,1,0,0,"2017-08-28 09:53:59" -"Tomáš Hrabáček (Hrabyyy)",Czech,5,3,0,0,1,0,0,"2021-05-27 11:58:11" -"Guerra Ivaneth (rossanaiva-04)",Spanish,5,7,0,0,0,0,0,"2019-02-03 16:48:59" +andriikozytskyi2018,Ukrainian,5,5,0,0,0,0,0,"2017-09-03 05:24:43" "Дмитрий Хапенков (d.khapenkov)",Russian,5,5,0,6,4,0,2,"2018-01-06 23:00:43" +"Guerra Ivaneth (rossanaiva-04)",Spanish,5,7,0,0,0,0,0,"2019-02-03 16:48:59" "Micaela Pighin (micaelapiighin)",Spanish,5,6,0,1,0,0,0,"2019-10-09 23:32:42" -"Manuel Tassi (Mannivu)",Italian,5,6,0,0,0,0,0,"2021-01-03 11:00:33" -"Neko123 (emandic11)","Serbian (Cyrillic)",4,4,0,57,0,0,0,"2021-04-21 15:33:29" +"Manuel (Mannivu)",Italian,5,6,0,0,0,0,0,"2021-01-03 11:00:33" +"Tomáš Hrabáček (Hrabyyy)",Czech,5,3,0,0,2,0,0,"2021-05-27 11:58:11" +"Vitor Henrique (vitorhcl)","Portuguese, Brazilian",5,8,0,1,0,0,0,"2022-03-08 20:00:59" +SubhamJena,Hindi,5,12,0,3,0,0,0,"2023-04-19 11:13:19" "Lopo Isaac Fernández (rocapata)",Spanish,4,3,0,0,0,0,0,"2018-09-20 11:46:22" "Eli Besirov (elibesirov07)",Turkish,4,4,0,0,0,0,0,"2019-03-25 07:12:34" +bziuum,Polish,4,4,0,0,6,0,0,"2020-09-01 09:08:01" marmo,German,4,4,0,0,0,0,0,"2021-01-13 01:16:35" -bziuum,Polish,4,4,0,0,3,0,0,"2020-09-01 09:08:01" -"Craig Foobar (craig.foobar)",German,3,3,0,25,0,0,0,"2022-02-20 16:55:47" -Katarin,Ukrainian,3,3,0,0,0,0,0,"2022-03-17 14:44:59" -"Sarath S (CyberShark)",Tamil,3,7,0,0,0,0,0,"2020-08-27 22:43:16" +"Neko123 (emandic11)","Serbian (Cyrillic)",4,4,0,57,0,0,1,"2021-04-21 15:33:29" +"Mo Heydari (Mrheydari)",Dutch,4,4,0,0,0,0,0,"2023-02-21 04:54:49" +"Srekaravarshan N K (srekaravarshan)",Tamil,4,4,0,0,0,0,0,"2023-04-22 06:08:57" +"Thoum Ptrgnt (thomas.petrignet)",French,3,3,0,2,0,3,0,"2017-09-23 19:25:52" +carsten_kafke,German,3,3,0,43,0,0,3,"2017-10-27 13:27:47" "Vagner Roberto (vagner.trompete)","Portuguese, Brazilian",3,3,0,0,0,0,0,"2017-12-30 17:54:26" "Igor Piskun (i_piskun)",Ukrainian,3,3,0,0,0,0,0,"2018-01-19 15:20:27" -"Cláudio Bernardo (claudiobernardo.ti)","Portuguese, Brazilian",3,4,0,1,0,0,0,"2019-01-08 14:41:10" -"Unnie Here (Carb)",Hindi,3,8,0,0,0,0,0,"2020-03-18 23:34:35" +"Andrea Bianchi (andreawhite1597)",Italian,3,1,0,1,0,0,0,"2018-01-21 17:45:48" +"Gabriel Cavalcante (gabrielc.alves14)","Portuguese, Brazilian",3,4,0,0,0,0,0,"2018-08-06 22:24:54" +"joabe gabriel (joabegabrielcma1)","Portuguese, Brazilian",3,4,0,0,0,0,0,"2018-08-21 09:08:59" +"Martin Zimdahl (zimdahlmartin)",Swedish,3,2,0,0,2,0,3,"2018-09-15 04:39:22" REMOVED_USER,"Portuguese, Brazilian",3,4,0,0,0,0,0,"2018-11-18 09:02:37" -"Thoum Ptrgnt (thomas.petrignet)",French,3,3,0,2,0,3,0,"2017-09-23 19:25:52" "Oleg Kogut (kogut_oleg)",Ukrainian,3,3,0,0,0,0,0,"2018-12-28 14:31:02" -carsten_kafke,German,3,3,0,43,0,0,3,"2017-10-27 13:27:47" -Magidxz,Arabic,3,3,0,0,0,0,0,"2021-01-05 05:02:54" -"Péter Bernát (bernatp)",Hungarian,3,2,0,0,0,0,0,"2019-11-30 15:50:33" -"joabe gabriel (joabegabrielcma1)","Portuguese, Brazilian",3,4,0,0,0,0,0,"2018-08-21 09:08:59" -"Gabriel Cavalcante (gabrielc.alves14)","Portuguese, Brazilian",3,4,0,0,0,0,0,"2018-08-06 22:24:54" -"Martin Zimdahl (zimdahlmartin)",Swedish,3,2,0,0,1,0,3,"2018-09-15 04:39:22" +"Cláudio Bernardo (claudiobernardo.ti)","Portuguese, Brazilian",3,4,0,1,0,0,0,"2019-01-08 14:41:10" atomjani,Hungarian,3,3,0,0,0,0,0,"2019-01-19 00:49:25" -"mohammadali barati (mabaraty)",Persian,3,3,0,0,0,0,0,"2021-07-10 05:54:44" "Hiohana Rilary (hiohanarilary)","Portuguese, Brazilian",3,4,0,0,0,0,0,"2019-07-31 20:42:20" +"Péter Bernát (bernatp)",Hungarian,3,2,0,0,0,0,0,"2019-11-30 15:50:33" +"Unnie Here (Carb)",Hindi,3,8,0,0,0,0,0,"2020-03-18 23:34:35" +"Sarath S (CyberShark)",Tamil,3,7,0,0,0,0,0,"2020-08-27 22:43:16" +Magidxz,Arabic,3,3,0,0,0,0,0,"2021-01-05 05:02:54" +"mohammadali barati (mabaraty)",Persian,3,3,0,0,0,0,0,"2021-07-10 05:54:44" "Tejaswini Boppana (Tejaswini)",Telugu,3,1,0,0,0,0,0,"2021-08-27 23:48:55" -"Andrea Bianchi (andreawhite1597)",Italian,3,1,0,1,0,0,0,"2018-01-21 17:45:48" -"Ño Bí Tã (pt614553)",Arabic,2,8,0,1,0,2,0,"2021-05-22 20:41:01" -"Judith Ayala (Azul1612)",Spanish,2,1,0,0,0,1,0,"2021-05-18 17:07:19" -"Valerij D (vala.dobler)",German,2,2,0,0,0,0,0,"2018-09-22 09:38:27" +"Craig Foobar (craig.foobar)",German,3,3,0,25,1,0,0,"2022-02-20 16:55:47" +Katarin,Ukrainian,3,3,0,0,0,0,0,"2022-03-17 14:44:59" +ayet,Arabic,3,3,0,0,0,0,0,"2023-08-16 20:18:12" +REMOVED_USER,Ukrainian,2,2,0,0,0,0,0,"2017-06-15 12:24:44" +"Alex Stein (diefaust1993)",Russian,2,2,0,4,4,0,2,"2017-07-13 06:56:17" +omerfarukbas,Turkish,2,3,0,19,2,0,0,"2017-08-14 16:10:35" "Balthazar Aubard (Balatzar)",French,2,5,0,0,1,0,0,"2017-09-23 01:42:57" -"Ahmed Bazazo (ahmedbazazo)",Arabic,2,2,0,0,0,0,0,"2022-02-19 20:11:09" -"Ali Zaida (alizaeda92)",Arabic,2,2,0,0,0,0,0,"2019-12-01 11:47:00" "FAy FAy (fayfayfay52)","Chinese Traditional",2,5,0,0,0,0,0,"2017-10-06 08:53:21" -Soroor_SI,Persian,2,2,0,0,0,0,0,"2018-06-10 06:28:27" -chavs1997,Russian,2,2,0,9,0,0,0,"2018-05-18 16:58:19" -"Naveen jai krishna (njsbpolymer1)",Tamil,2,5,0,0,0,0,0,"2020-01-10 14:19:41" -omerfarukbas,Turkish,2,3,0,19,2,0,0,"2017-08-14 16:10:35" "Ilyas Fekhar (il47yas)",Arabic,2,2,0,0,0,0,0,"2018-04-17 22:00:41" -"Héctor Mañas García (hectodium)",Catalan,2,3,0,0,0,0,0,"2021-10-02 20:32:09" -"Walid Baazia (walidbaazia2005)",Arabic,2,1,0,0,0,0,0,"2021-01-27 12:47:34" -"fatemeh s (fargolseifoori3)",Persian,2,2,0,0,0,0,0,"2019-01-31 12:06:57" -"hesamiranii (esam.matouri)",Persian,2,2,0,0,0,0,0,"2018-09-22 16:33:36" -REMOVED_USER,Ukrainian,2,2,0,0,0,0,0,"2017-06-15 12:24:44" -"Alex Stein (diefaust1993)",Russian,2,2,0,4,4,0,2,"2017-07-13 06:56:17" amei,"Portuguese, Brazilian",2,2,0,0,0,0,0,"2018-04-19 19:42:28" -"أم محمد تقي (souadboudia19)",Arabic,2,2,0,0,0,0,0,"2020-06-13 15:24:17" -LNDDYL,"Chinese Traditional",2,4,0,0,0,0,2,"2018-04-22 04:00:19" +"Jimmy Young (Jimmyyoung)","Chinese Traditional",2,4,0,0,0,0,2,"2018-04-22 04:00:19" +chavs1997,Russian,2,2,0,9,0,0,0,"2018-05-18 16:58:19" +Soroor_SI,Persian,2,2,0,0,0,0,0,"2018-06-10 06:28:27" +"Valerij D (vala.dobler)",German,2,2,0,0,0,0,0,"2018-09-22 09:38:27" +"hesamiranii (esam.matouri)",Persian,2,2,0,0,0,0,0,"2018-09-22 16:33:36" +"fatemeh s (fargolseifoori3)",Persian,2,2,0,0,0,0,0,"2019-01-31 12:06:57" +"Danial Agh (danialagh)",Persian,2,3,0,0,0,0,0,"2019-03-30 13:24:16" "조화정 (yunjoo337)",Korean,2,2,0,0,0,0,0,"2019-06-16 22:25:31" +"Ali Zaida (alizaeda92)",Arabic,2,2,0,0,0,0,0,"2019-12-01 11:47:00" +"Naveen jai krishna (njsbpolymer1)",Tamil,2,5,0,0,1,0,0,"2020-01-10 14:19:41" +"أم محمد تقي (souadboudia19)",Arabic,2,2,0,0,0,0,0,"2020-06-13 15:24:17" +"Walid Baazia (walidbaazia2005)",Arabic,2,1,0,0,0,0,0,"2021-01-27 12:47:34" +"Judith Ayala (Azul1612)",Spanish,2,1,0,0,0,1,0,"2021-05-18 17:07:19" +"Ño Bí Tã (pt614553)",Arabic,2,8,0,1,0,2,0,"2021-05-22 20:41:01" +"Héctor Mañas García (hectodium)",Catalan,2,3,0,0,0,0,0,"2021-10-02 20:32:09" "Sidali Aymen (sidaliaymen950)",Arabic,2,2,0,0,0,0,0,"2022-01-31 18:50:59" -"Danial Agh (danialagh)",Persian,2,3,0,0,0,0,0,"2019-03-30 13:24:16" +"Ahmed Bazazo (ahmedbazazo)",Arabic,2,2,0,0,0,0,0,"2022-02-19 20:11:09" +"HypemanKEK (rocasta.dodvi)",Russian,2,2,0,0,0,0,0,"2023-01-13 03:45:06" +"Gmas (gustmaes1)",Dutch,2,2,0,0,0,0,0,"2023-01-26 13:52:54" +"Катерина Ховалкина (katerina959)",Russian,2,2,0,1,0,0,0,"2023-05-18 14:50:30" +"Pratheba Devanathan (devprath05)",Tamil,2,2,0,0,1,0,0,"2023-06-05 12:35:45" +"Gordon James Campbell (gordonjamescampbell)",Catalan,2,2,0,0,0,0,0,"2023-06-23 23:23:46" +"Suren Airyanam (suren.airyanam)",Persian,2,2,0,0,0,0,0,"2023-10-21 18:01:41" +axq,German,2,1,0,1,0,0,0,"2024-02-29 17:14:13" +"Hades Mori (Hades_Mori)",Ukrainian,2,2,0,0,0,0,0,"2024-07-03 07:14:58" iSoron2,"Portuguese, Brazilian",1,1,0,0,0,0,0,"2017-03-18 17:56:29" "Anton (tT0NG)","Chinese Traditional",1,2,0,0,0,0,1,"2017-07-06 14:18:39" -"Luca Gori (grolcu)",Italian,1,2,0,0,0,0,0,"2020-09-26 23:26:15" -axd,Spanish,1,1,0,15,0,0,0,"2017-09-12 05:48:51" -REMOVED_USER,Russian,1,2,0,6,1,0,1,"2019-12-26 05:37:01" -jonesses,German,1,1,0,1,0,0,1,"2021-01-01 08:03:18" +axd,Spanish,1,1,0,15,1,0,0,"2017-09-12 05:48:51" +"Wibi Cahyo (wbcahyoh)",Indonesian,1,3,0,0,0,0,0,"2017-12-14 06:35:58" "Alan Jeon (skyisle)",Korean,1,2,0,8,0,0,0,"2018-01-09 10:46:00" -"Maria Fefelova (mashafefel)",Russian,1,1,0,0,0,0,0,"2019-05-18 02:03:56" -"Patrick Pimenta (trickap1)","Portuguese, Brazilian",1,1,0,0,0,0,0,"2018-12-01 14:31:21" "박찌 (perpact20)",Korean,1,1,0,0,0,0,0,"2018-02-10 10:11:44" +"Patrick Pimenta (trickap1)","Portuguese, Brazilian",1,1,0,0,0,0,0,"2018-12-01 14:31:21" "Kan Black (kanblack.va)",Vietnamese,1,2,0,0,0,1,0,"2019-01-15 03:50:10" +"Maria Fefelova (mashafefel)",Russian,1,1,0,0,0,0,0,"2019-05-18 02:03:56" "Anastasiia Bondarenko (nastasya.bondarenko.97)",Russian,1,1,0,0,0,0,0,"2019-06-07 17:43:08" -"Wibi Cahyo (wbcahyoh)",Indonesian,1,3,0,0,0,0,0,"2017-12-14 06:35:58" -sanyoniket,,0,0,0,0,0,0,0,"2019-07-23 12:58:40" -"Sri Harsha Bhogi (sriharshabhogi)",,0,0,0,0,0,0,0,"2018-09-02 05:31:53" -Irsgram,Russian,0,0,0,1,0,0,0,"2019-09-30 16:42:20" -"Baran Özavcı (n2141n)",Turkish,0,0,0,1,0,0,0,"2022-02-26 04:32:51" -"Masataka Yakura (myakura)",Japanese,0,0,0,1,0,0,0,"2021-09-03 22:10:36" -ava_rfie,Persian,0,0,0,1,0,0,0,"2019-06-09 16:19:24" +REMOVED_USER,Russian,1,2,0,6,1,0,1,"2019-12-26 05:37:01" +"Luca Gori (grolcu)",Italian,1,2,0,0,0,0,0,"2020-09-26 23:26:15" +jonesses,German,1,1,0,1,0,0,1,"2021-01-01 08:03:18" +"monir s (ms.alam)",Persian,1,1,0,1,0,0,0,"2022-05-23 06:34:00" +"Daniel Luque (LuqueDaniel)",Spanish,1,1,0,0,0,0,0,"2022-06-30 20:37:07" +Liboide,Spanish,1,1,0,0,0,0,0,"2022-11-03 23:57:45" +"K RITE (kriteshojha5)",Hindi,1,1,0,1,0,0,0,"2024-08-14 17:28:55" +"Angelos (angelos1993)",Arabic,1,1,0,0,0,0,0,"2024-11-20 07:38:18" +"Bora Atıcı (Brtc)",Turkish,1,2,0,0,0,0,0,"2025-03-07 20:33:19" +EmanAmini,,0,0,0,0,0,0,0,"2017-03-31 13:27:43" +AnggaRifandi,,0,0,0,0,0,0,0,"2017-03-31 19:28:35" +"Lori Amico (lavodkaclyde2323)",Italian,0,0,0,1,0,0,0,"2017-04-09 10:08:13" +"Florian Stuhlmann (stuhlmann)",German,0,0,0,10,0,0,0,"2017-04-15 04:04:00" +Kamalakannan,,0,0,0,0,0,0,0,"2017-05-14 11:40:23" +"Éjbãss Übbeî (littlebittlebottle)",Norwegian,0,0,0,152,0,0,0,"2017-07-05 21:12:02" +"Dagna Q (dagnaq)",,0,0,0,0,0,0,0,"2017-08-06 01:42:52" +"Petros Bleyan (coolbleyan)",Russian,0,0,0,14,0,0,0,"2017-08-18 18:37:18" +Itch,,0,0,0,0,0,0,0,"2017-10-16 09:18:42" +"Muhammet Furkan ALMACI (furkan.almaci)",Turkish,0,0,0,1,0,0,0,"2017-10-29 13:44:56" +"Balaji Jayaraman (jkbalaji1103)",,0,0,0,0,0,0,0,"2017-10-30 22:12:27" +"Wellington Ribeiro (wellington.rib)",,0,0,0,0,0,0,0,"2017-11-16 07:32:25" +"Javid IRAN (twitteriran98)",Persian,0,0,0,1,0,0,0,"2017-11-25 16:47:25" +REMOVED_USER,Czech,0,0,0,1,0,0,0,"2017-12-24 04:08:27" +AhmedDz,Arabic,0,0,0,1,0,0,0,"2017-12-31 10:12:31" +"박인호 (wphestiraid)",Korean,0,0,0,2,0,0,0,"2018-01-05 00:33:14" +REMOVED_USER,,0,0,0,0,0,0,0,"2018-01-05 16:56:12" +NairaDNV,Spanish,0,0,0,9,0,0,0,"2018-01-05 19:10:33" +Raulbertassi,,0,0,0,0,0,0,0,"2018-01-07 17:23:18" +"Katherine Alexandra Flórez Ramírez (katherine.florez12)",Spanish,0,0,0,46,0,0,0,"2018-01-20 02:18:32" +farbod66,Persian,0,0,0,1,0,0,0,"2018-01-20 11:04:23" +droidahmed,Arabic,0,0,0,7,0,0,0,"2018-01-31 02:18:49" +"Yasin Okumus (lacivert)",Turkish,0,0,0,1,0,0,0,"2018-02-07 04:13:51" +"Sarah BCNN (fsarahboucenna)",French,0,0,0,16,0,0,0,"2018-02-11 11:07:36" T-v-Gerwen,Dutch,0,0,0,47,0,0,0,"2018-03-02 10:26:33" -"George Merkulov (george142.emarket)",Russian,0,0,0,11,0,0,0,"2019-06-09 19:47:02" -philfr49,French,0,0,0,2,0,0,0,"2018-09-03 14:20:32" "عبد الناصر سعيد الثبيتي (asaeed)",,0,0,0,0,0,0,0,"2018-03-13 02:09:35" -"Thomas Orlita (Thomas995)",Czech,0,0,0,1,0,0,0,"2017-12-24 04:08:27" -"Edmunds Edmundam (edmundam)",,0,0,0,0,0,0,0,"2020-06-01 14:18:18" -"Elmo (oberknecht)",,0,0,0,0,0,0,0,"2020-04-16 08:45:50" -"Равиль Мифтахов (ravilmif47)",Russian,0,0,0,1,0,0,0,"2019-08-12 21:58:30" -"Manny Farsangy (manifarsangi)",Persian,0,0,0,12,0,0,0,"2021-08-10 05:32:28" -"Samuel Przeździęk (samek22)",Polish,0,0,0,1,0,0,0,"2021-08-01 00:49:01" -"Saiprasath B (Saiprasath)",,0,0,0,0,0,0,0,"2021-07-11 11:10:41" +REMOVED_USER,Czech,0,0,0,18,0,0,0,"2018-03-27 06:19:52" +BongTran,Vietnamese,0,0,0,2,0,0,0,"2018-04-24 05:16:07" +"Ahmed Nazir (ahmednazir333)",,0,0,0,0,0,0,0,"2018-05-06 12:10:27" +mdrobulis,,0,0,0,0,0,0,0,"2018-05-24 01:40:42" REMOVED_USER,,0,0,0,0,0,0,0,"2018-08-24 00:17:43" -REMOVED_USER,,0,0,0,0,0,0,0,"2020-02-01 03:47:48" -"Arjun K. (arjunkdot)",,0,0,0,0,0,0,0,"2020-09-20 11:16:18" -EwanB,,0,0,0,0,0,0,0,"2019-11-19 10:04:38" -shuvo786,,0,0,0,0,0,0,0,"2019-11-13 00:18:12" -"Pro AAA (pro1010)",Arabic,0,0,0,1,0,0,0,"2022-02-14 03:32:44" -"manu (manuL96)",,0,0,0,0,0,0,0,"2022-05-06 23:34:55" -"Rivo Zängov (Eraser)",,0,0,0,0,0,0,0,"2020-10-13 04:38:26" -ashik8113,,0,0,0,0,0,0,0,"2022-04-13 11:58:26" -deepbird,,0,0,0,0,0,0,0,"2022-04-11 03:21:05" -REMOVED_USER,,0,0,0,0,0,0,0,"2018-10-27 15:34:36" -Elham1361,,0,0,0,0,0,0,0,"2018-10-27 12:01:06" +"Sri Harsha Bhogi (sriharshabhogi)",,0,0,0,0,0,0,0,"2018-09-02 05:31:53" +philfr49,French,0,0,0,2,0,0,0,"2018-09-03 14:20:32" "Ahnaf Tajwar (atn4404)",,0,0,0,0,0,0,0,"2018-10-16 11:13:30" +Elham1361,,0,0,0,0,0,0,0,"2018-10-27 12:01:06" +REMOVED_USER,,0,0,0,0,0,0,0,"2018-10-27 15:34:36" +"Никита Карамов (nikita.karamoff)",Russian,0,0,0,10,0,0,0,"2018-10-29 03:57:21" martyaberger,,0,0,0,0,0,0,0,"2019-01-01 18:48:08" AsadullahIlyas,,0,0,0,0,0,0,0,"2019-01-04 06:14:15" -"akmal shafiq (mohdakmalshafiq)",,0,0,0,0,0,0,0,"2021-11-01 01:04:50" -"Sylwuskak (sylwuskak)",Polish,0,0,0,1,0,0,0,"2022-01-25 04:19:53" -"Yunsu Kim (yunsukim86)",Korean,0,0,0,2,0,0,0,"2022-01-14 06:33:43" "Pumpith Ungsupanit (pumpithu)",,0,0,0,0,0,0,0,"2019-01-19 23:47:57" "Nat Fomicheva (natac)",Russian,0,0,0,3,0,0,0,"2019-01-25 14:35:02" -HemanthMeda,Telugu,0,0,0,4,0,0,0,"2021-12-01 14:02:14" -"darkkingredian (rediancool)",,0,0,0,0,0,0,0,"2021-07-27 16:04:32" -catemlitten,Japanese,0,0,0,1,0,0,0,"2021-11-17 15:06:02" -"Said Tahsin Dane (tasomaniac)",,0,0,0,0,0,0,0,"2021-09-25 05:31:01" +ava_rfie,Persian,0,0,0,1,0,0,0,"2019-06-09 16:19:24" +"George Merkulov (george142.emarket)",Russian,0,0,0,11,0,0,0,"2019-06-09 19:47:02" +sanyoniket,,0,0,0,0,0,0,0,"2019-07-23 12:58:40" +"Arttu Ylhävuori (arttu.ylhavuori)",,0,0,0,0,0,0,0,"2019-07-24 15:03:42" +"Равиль Мифтахов (ravilmif47)",Russian,0,0,0,1,0,0,0,"2019-08-12 21:58:30" +Irsgram,Russian,0,0,0,1,0,0,0,"2019-09-30 16:42:20" "Matus Zdansky (matuszdansky)",,0,0,0,0,0,0,0,"2019-10-20 13:52:24" -mdrobulis,,0,0,0,0,0,0,0,"2018-05-24 01:40:42" -valney.faria,"Portuguese, Brazilian",0,0,0,1,0,0,0,"2020-02-02 14:45:02" -"Petros Bleyan (coolbleyan)",Russian,0,0,0,14,0,0,0,"2017-08-18 18:37:18" -"Карлен Шаухаев (KarlenShaukhaev)",,0,0,0,0,0,0,0,"2020-04-27 08:53:49" -"Shuvashish Sahoo (shuvashish76)",,0,0,0,0,0,0,0,"2020-09-17 09:10:09" -REMOVED_USER,,0,0,0,0,0,0,0,"2018-01-05 16:56:12" -"Dagna Q (dagnaq)",,0,0,0,0,0,0,0,"2017-08-06 01:42:52" -Sandhu564.,,0,0,0,0,0,0,0,"2020-12-14 01:27:45" -AhmedDz,Arabic,0,0,0,1,0,0,0,"2017-12-31 10:12:31" -"Quentin Hibon (hiq)",,0,0,0,0,0,0,0,"2021-02-07 16:39:31" -"Ahmed Nazir (ahmednazir333)",,0,0,0,0,0,0,0,"2018-05-06 12:10:27" -"박인호 (wphestiraid)",Korean,0,0,0,2,0,0,0,"2018-01-05 00:33:14" -Raulbertassi,,0,0,0,0,0,0,0,"2018-01-07 17:23:18" -"Javid IRAN (twitteriran98)",Persian,0,0,0,1,0,0,0,"2017-11-25 16:47:25" -"Wellington Ribeiro (wellington.rib)",,0,0,0,0,0,0,0,"2017-11-16 07:32:25" -dimateos,,0,0,0,0,0,0,0,"2021-01-10 06:29:52" -"Balaji Jayaraman (jkbalaji1103)",,0,0,0,0,0,0,0,"2017-10-30 22:12:27" -"reza golestanzadeh (reza.golestanzadeh)",Persian,0,0,0,1,0,0,0,"2020-10-21 12:07:20" -"Muhammet Furkan ALMACI (furkan.almaci)",Turkish,0,0,0,1,0,0,0,"2017-10-29 13:44:56" -dongchen.yue,German,0,0,0,4,0,0,0,"2020-09-12 15:05:59" -"Алтынбек Наурызғали (altinbeknaurizgali)",Russian,0,0,0,1,0,0,0,"2020-08-12 13:03:49" -rooban23,,0,0,0,0,0,0,0,"2020-09-15 11:49:14" -NairaDNV,Spanish,0,0,0,9,0,0,0,"2018-01-05 19:10:33" -"Katherine Alexandra Flórez Ramírez (katherine.florez12)",Spanish,0,0,0,46,0,0,0,"2018-01-20 02:18:32" -Itch,,0,0,0,0,0,0,0,"2017-10-16 09:18:42" -"Yasin Okumus (lacivert)",Turkish,0,0,0,1,0,0,0,"2018-02-07 04:13:51" +shuvo786,,0,0,0,0,0,0,0,"2019-11-13 00:18:12" +EwanB,,0,0,0,0,0,0,0,"2019-11-19 10:04:38" "Eduard Boboc (edi.boboc33)",Romanian,0,0,0,4,0,0,0,"2019-12-16 09:08:39" Hayder21,,0,0,0,0,0,0,0,"2019-12-31 10:56:24" "Eliška Roubalová (roubaeli)",Czech,0,0,0,6,0,0,0,"2019-12-31 12:47:29" -Fazy1380,,0,0,0,0,0,0,0,"2021-04-10 11:02:53" -"Arttu Ylhävuori (arttu.ylhavuori)",,0,0,0,0,0,0,0,"2019-07-24 15:03:42" -EmanAmini,,0,0,0,0,0,0,0,"2017-03-31 13:27:43" -AnggaRifandi,,0,0,0,0,0,0,0,"2017-03-31 19:28:35" -"Lori Amico (lavodkaclyde2323)",Italian,0,0,0,1,0,0,0,"2017-04-09 10:08:13" -"Florian Stuhlmann (stuhlmann)",German,0,0,0,10,0,0,0,"2017-04-15 04:04:00" -Kamalakannan,,0,0,0,0,0,0,0,"2017-05-14 11:40:23" -farbod66,Persian,0,0,0,1,0,0,0,"2018-01-20 11:04:23" -"vi ve (VimalV)",,0,0,0,0,0,0,0,"2021-02-08 02:35:45" -"Éjbãss Übbeî (littlebittlebottle)",Norwegian,0,0,0,152,0,0,0,"2017-07-05 21:12:02" -"LeMeD (LeMeS)",French,0,0,0,2,0,0,0,"2021-02-06 15:35:00" -BongTran,Vietnamese,0,0,0,2,0,0,0,"2018-04-24 05:16:07" -REMOVED_USER,Czech,0,0,0,18,0,0,0,"2018-03-27 06:19:52" +REMOVED_USER,,0,0,0,0,0,0,0,"2020-02-01 03:47:48" mushin,,0,0,0,0,0,0,0,"2020-02-02 04:08:05" +valney.faria,"Portuguese, Brazilian",0,0,0,1,0,0,0,"2020-02-02 14:45:02" +"Elmo (oberknecht)",,0,0,0,0,0,0,0,"2020-04-16 08:45:50" +"Карлен Шаухаев (KarlenShaukhaev)",,0,0,0,0,0,0,0,"2020-04-27 08:53:49" +"Edmunds Edmundam (edmundam)",,0,0,0,0,0,0,0,"2020-06-01 14:18:18" +"Алтынбек Наурызғали (altinbeknaurizgali)",Russian,0,0,0,1,0,0,0,"2020-08-12 13:03:49" +dongchen.yue,German,0,0,0,4,0,0,0,"2020-09-12 15:05:59" +rooban23,,0,0,0,0,0,0,0,"2020-09-15 11:49:14" +REMOVED_USER,,0,0,0,0,0,0,0,"2020-09-17 09:10:09" +"Arjun K. (arjunkdot)",,0,0,0,0,0,0,0,"2020-09-20 11:16:18" +"Rivo Zängov (Eraser)",,0,0,0,0,0,0,0,"2020-10-13 04:38:26" +"reza golestanzadeh (reza.golestanzadeh)",Persian,0,0,0,1,0,0,0,"2020-10-21 12:07:20" +Sandhu564.,,0,0,0,0,0,0,0,"2020-12-14 01:27:45" +dimateos,,0,0,0,0,0,0,0,"2021-01-10 06:29:52" "Mateusz Teteruk (mttet)",Polish,0,0,0,1,0,0,0,"2021-01-23 13:09:59" -"Sarah BCNN (fsarahboucenna)",French,0,0,0,16,0,0,0,"2018-02-11 11:07:36" -droidahmed,Arabic,0,0,0,7,0,0,0,"2018-01-31 02:18:49" -"Никита Карамов (nikita.karamoff)",Russian,0,0,0,10,0,0,0,"2018-10-29 03:57:21" +"LeMeD (LeMeS)",French,0,0,0,2,0,0,0,"2021-02-06 15:35:00" +"Quentin Hibon (hiq)",,0,0,0,0,0,0,0,"2021-02-07 16:39:31" +"vi ve (VimalV)",,0,0,0,0,0,0,0,"2021-02-08 02:35:45" +Fazy1380,,0,0,0,0,0,0,0,"2021-04-10 11:02:53" +"Saiprasath B (Saiprasath)",,0,0,0,0,0,0,0,"2021-07-11 11:10:41" +"darkkingredian (rediancool)",,0,0,0,0,0,0,0,"2021-07-27 16:04:32" +"Samuel Przeździęk (samek22)",Polish,0,0,0,1,0,0,0,"2021-08-01 00:49:01" +"Manny Farsangy (manifarsangi)",Persian,0,0,0,12,0,0,0,"2021-08-10 05:32:28" +"Masataka Yakura (myakura)",Japanese,0,0,0,1,0,0,0,"2021-09-03 22:10:36" +"Said Tahsin Dane (tasomaniac)",,0,0,0,0,0,0,0,"2021-09-25 05:31:01" +"akmal shafiq (mohdakmalshafiq)",,0,0,0,0,0,0,0,"2021-11-01 01:04:50" +catemlitten,Japanese,0,0,0,1,0,0,0,"2021-11-17 15:06:02" +HemanthMeda,Telugu,0,0,0,4,0,0,0,"2021-12-01 14:02:14" +"Yunsu Kim (yunsukim86)",Korean,0,0,0,2,0,0,0,"2022-01-14 06:33:43" +"Sylwuskak (sylwuskak)",Polish,0,0,0,1,0,0,0,"2022-01-25 04:19:53" +"Pro AAA (pro1010)",Arabic,0,0,0,1,0,0,0,"2022-02-14 03:32:44" +"Baran Özavcı (n2141n)",Turkish,0,0,0,1,0,0,0,"2022-02-26 04:32:51" +deepbird,,0,0,0,0,0,0,0,"2022-04-11 03:21:05" +ashik8113,,0,0,0,0,0,0,0,"2022-04-13 11:58:26" +"manu (manuL96)",,0,0,0,0,0,0,0,"2022-05-06 23:34:55" +"Agnel (agnelwaghela)",,0,0,0,0,0,0,0,"2022-06-19 10:32:33" +"Ruslan Zaynetdinov (theRuslan)",Russian,0,0,0,6,0,0,0,"2022-07-06 10:48:31" +"Marcel (flaced)",German,0,0,0,1,0,0,0,"2022-08-19 15:19:26" +pixx1,German,0,0,0,6,0,0,0,"2022-08-22 00:38:13" +"Onder Nuray (ondernuray)",,0,0,0,0,0,0,0,"2022-08-30 08:16:27" +"Md Faridul Islam (mdfaridulislam509)",,0,0,0,0,0,0,0,"2022-09-04 06:25:20" +Felone,,0,0,0,0,0,0,0,"2022-09-10 08:04:02" +Sawwwwwplan,,0,0,0,0,0,0,0,"2022-09-10 11:35:14" +"Fatima (fatima.a)",Arabic,0,0,0,1,0,0,0,"2022-09-20 09:48:25" +DomiAlt,,0,0,0,0,0,0,0,"2022-10-02 15:44:26" +Erwindly,Polish,0,0,0,1,0,0,0,"2022-11-01 04:12:58" +"Deniz Çelik (DenizCelik)",,0,0,0,0,0,0,0,"2022-11-09 02:13:11" +Watashiwanilli,,0,0,0,0,0,0,0,"2022-11-14 10:12:21" +"Maxence LIGAN (Daddy_Caramel)",,0,0,0,0,0,0,0,"2022-12-23 04:43:30" +wstroobandt,Dutch,0,0,0,1,0,0,0,"2023-01-03 17:52:42" +"ニキホロブ蒼井 (abhigyahazra)",,0,0,0,0,0,0,0,"2023-01-08 21:37:53" +"Afrim Kamberi (afrimkamberi)",,0,0,0,0,0,0,0,"2023-01-17 05:20:06" +ViacheslavLabs,Ukrainian,0,0,0,5,0,0,0,"2023-01-21 15:34:40" +Basta,,0,0,0,0,0,0,0,"2023-03-04 16:13:57" +raselh,,0,0,0,0,0,0,0,"2023-03-15 03:33:21" +"Adrian Miozga (AdrianMiozga)",Polish,0,0,0,13,0,0,0,"2023-03-25 17:00:53" +"Atlas Steel (atlas.steel.erbil)",,0,0,0,0,0,0,0,"2023-05-16 05:23:32" +"Sathyakumar Ps (sathyakumar63)",,0,0,0,0,0,0,0,"2023-05-24 11:44:23" +"Abdul nafih (nafih_zain_)",,0,0,0,0,0,0,0,"2023-05-25 06:24:31" +"Bernhard (bernikr)",German,0,0,0,1,0,0,0,"2023-06-12 11:18:18" +"Anna Boda (annaboda08)",Hungarian,0,0,0,1,0,0,0,"2023-07-03 13:28:12" +"Rubén CH (chruben45)",Spanish,0,0,0,1,0,0,0,"2023-07-24 12:39:51" +"Vinicius (exteraDev)",,0,0,0,0,0,0,0,"2023-08-08 15:47:45" +"mugdad alhammad (alhammad5057)",,0,0,0,0,0,0,0,"2023-08-13 22:36:01" +"Arthur Waldes (arthurwaldes)",,0,0,0,0,0,0,0,"2023-08-22 15:38:12" +"Mahmoud Hatem (mahmoudhatem)",Arabic,0,0,0,1,0,0,0,"2023-09-12 05:12:34" +"Jacques Francky Salomon (jacquesfranckysalomon)",,0,0,0,0,0,0,0,"2023-10-14 20:55:30" +"Mohammad Hashem (hashemchattogram)",,0,0,0,0,0,0,0,"2023-10-27 02:15:39" +Aylinddd,Persian,0,0,0,1,0,0,0,"2023-11-07 22:50:37" +Dinock,German,0,0,0,1,0,0,0,"2023-11-10 07:08:23" +zelfoxx,German,0,0,0,12,0,0,0,"2023-11-22 11:11:44" +REMOVED_USER,,0,0,0,0,0,0,0,"2023-11-28 17:42:55" +"Dennis Li (Dennis_Li)","Chinese Simplified",0,0,0,1,0,0,0,"2023-12-24 21:12:43" +REMOVED_USER,Russian,0,0,0,5,0,0,0,"2024-01-01 17:15:06" +"Daniill l (daniill)",,0,0,0,0,0,0,0,"2024-01-12 02:42:52" +"NONE NAME (RagnarGraves)",Spanish,0,0,0,1,0,0,0,"2024-02-18 01:39:39" +lu21232512,,0,0,0,0,0,0,0,"2024-04-15 12:40:05" +"Oscariño (oscarinhooo)",,0,0,0,0,0,0,0,"2024-07-07 08:47:25" +"Vladimir Sveshnikov (proloxy)",Russian,0,0,0,6,0,0,0,"2024-07-12 03:27:39" +L0f3n,Swedish,0,0,0,2,0,0,0,"2024-08-06 17:13:50" +"Christer Fletcher (chrfle)",Swedish,0,0,0,2,0,0,0,"2024-08-15 04:15:49" +"Moaid alzawy (dodoalzawy200)",Arabic,0,0,0,1,0,0,0,"2024-09-18 12:17:31" +"Eduardo Ferreira (eduu)",,0,0,0,0,0,0,0,"2024-10-27 19:09:20" +"عبد الملك بلكم (aboodpvp555)",Arabic,0,0,0,1,0,0,0,"2024-12-12 02:42:14" +4Kio,Russian,0,0,0,1,0,0,0,"2024-12-12 12:31:25" +"رودينه (rwdynh874)",Arabic,0,0,0,1,0,0,0,"2024-12-24 18:31:33" +"zahra ghasemi (z.ghasemizahra)",Persian,0,0,0,1,0,0,0,"2024-12-29 04:36:27" +"Mustafa Işıksız (mustafalordon27)",Turkish,0,0,0,1,0,0,0,"2025-01-15 13:52:32" +"Ahlem Ben (ahlemben1513)",Arabic,0,0,0,1,0,0,0,"2025-02-12 11:09:57" +"Francisco Parra (Frn_7)",Spanish,0,0,0,1,0,0,0,"2025-02-18 22:57:05" +"mizumoto (yuta-mizumoto)",Japanese,0,0,0,2,0,0,0,"2025-03-03 18:35:56" diff --git a/uhabits-android/src/main/res/layout/about_translators.xml b/uhabits-android/src/main/res/layout/about_translators.xml index 52c80303c..61bb51efc 100644 --- a/uhabits-android/src/main/res/layout/about_translators.xml +++ b/uhabits-android/src/main/res/layout/about_translators.xml @@ -25,17 +25,19 @@ + + + - @@ -57,11 +59,17 @@ + + + + + + @@ -69,6 +77,8 @@ + + @@ -90,15 +100,18 @@ + + + + - @@ -122,12 +135,15 @@ + + + @@ -149,7 +165,6 @@ - @@ -170,6 +185,7 @@ + @@ -182,6 +198,7 @@ + @@ -191,8 +208,13 @@ + + + + + \ No newline at end of file From f68510f8608f9e099b7d9f990fb57ae5b18082ee Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Fri, 21 Mar 2025 21:29:49 -0500 Subject: [PATCH 11/21] Allow user to disable confetti animation --- .../uhabits/activities/habits/list/ListHabitsScreen.kt | 1 + uhabits-android/src/main/res/values/strings.xml | 2 ++ uhabits-android/src/main/res/xml/preferences.xml | 7 +++++++ .../org/isoron/uhabits/core/preferences/Preferences.kt | 6 ++++++ 4 files changed, 16 insertions(+) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt index e1f0418a3..c12939b1e 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt @@ -224,6 +224,7 @@ class ListHabitsScreen } override fun showConfetti(color: PaletteColor, x: Float, y: Float) { + if (preferences.isConfettiAnimationDisabled) return val baseColor = themeSwitcher.currentTheme!!.color(color).toInt() rootView.get().konfettiView.start( Party( diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml index 9fec1cbca..1b33c0231 100644 --- a/uhabits-android/src/main/res/values/strings.xml +++ b/uhabits-android/src/main/res/values/strings.xml @@ -233,4 +233,6 @@ No app was found to support this action Extend day a few hours past midnight Wait until 3:00 AM to show a new day. Useful if you typically go to sleep after midnight. Requires app restart. + Disable animations + Disable confetti animation after adding a checkmark. diff --git a/uhabits-android/src/main/res/xml/preferences.xml b/uhabits-android/src/main/res/xml/preferences.xml index ad381b502..6072e711e 100644 --- a/uhabits-android/src/main/res/xml/preferences.xml +++ b/uhabits-android/src/main/res/xml/preferences.xml @@ -67,6 +67,13 @@ android:title="@string/use_pure_black" app:iconSpaceReserved="false" /> + + Date: Fri, 21 Mar 2025 21:41:23 -0500 Subject: [PATCH 12/21] Checkmark popup: Minor changes to layout --- .../src/main/res/layout/checkmark_popup.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/uhabits-android/src/main/res/layout/checkmark_popup.xml b/uhabits-android/src/main/res/layout/checkmark_popup.xml index 110e5e7f5..7661735f4 100644 --- a/uhabits-android/src/main/res/layout/checkmark_popup.xml +++ b/uhabits-android/src/main/res/layout/checkmark_popup.xml @@ -86,13 +86,18 @@ android:id="@+id/value" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_weight="1" + android:layout_weight="2" android:background="@color/transparent" android:inputType="numberDecimal" android:selectAllOnFocus="true" android:textAlignment="center" android:textSize="@dimen/smallTextSize" /> + + - - \ No newline at end of file From 3c0c0b77ff9e6060b731bccf2b55beb03b02e3b5 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sat, 22 Mar 2025 15:19:37 -0500 Subject: [PATCH 13/21] build.sh: Update emulator path --- build.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 863e8681e..2759d89c0 100755 --- a/build.sh +++ b/build.sh @@ -21,7 +21,7 @@ ADB="${ANDROID_HOME}/platform-tools/adb" ANDROID_OUTPUTS_DIR="uhabits-android/build/outputs" AVDMANAGER="${ANDROID_HOME}/cmdline-tools/latest/bin/avdmanager" AVD_PREFIX="uhabitsTest" -EMULATOR="${ANDROID_HOME}/tools/emulator" +EMULATOR="${ANDROID_HOME}/emulator/emulator" GRADLE="./gradlew --stacktrace --quiet" PACKAGE_NAME=org.isoron.uhabits SDKMANAGER="${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" @@ -38,6 +38,11 @@ if [ ! -f "${ANDROID_HOME}/platform-tools/adb" ]; then exit 1 fi +if [ ! -f "$EMULATOR" ]; then + echo "Error: Not found: $EMULATOR" + exit 1 +fi + # Logging # ----------------------------------------------------------------------------- From 45b100aad9805190dd3989697b4b7d38f239e752 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sat, 22 Mar 2025 15:26:28 -0500 Subject: [PATCH 14/21] build.sh: Make output dir --- build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sh b/build.sh index 2759d89c0..a3a975716 100755 --- a/build.sh +++ b/build.sh @@ -222,6 +222,7 @@ android_test_parallel() { for API in $*; do ( LOG=build/android-test-$API.log + mkdir -p build log_info "API $API: Running tests..." android_test $API 1>$LOG 2>&1 ret_code=$? From fa670b19b7c665336ed0846d580a82890bd12880 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sat, 22 Mar 2025 23:03:59 -0500 Subject: [PATCH 15/21] HabitCardView: Fix confetti position in API 36+ --- .../uhabits/activities/habits/list/views/HabitCardView.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt index 84bd001fc..e06751274 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt @@ -234,9 +234,15 @@ class HabitCardView( val containerLocation = IntArray(2) this.getLocationOnScreen(containerLocation) val relButtonLocation = getRelativeButtonLocation(timestamp) + val windowInsets = rootWindowInsets + val statusBarHeight = if (SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + windowInsets?.systemWindowInsetTop ?: 0 + } else { + 0 + } return PointF( containerLocation[0].toFloat() + relButtonLocation.x, - containerLocation[1].toFloat() - relButtonLocation.y + containerLocation[1].toFloat() + relButtonLocation.y - statusBarHeight ) } From 12cc70a51ab544fad20b65d59e2596bbdb736356 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sun, 23 Mar 2025 07:06:45 -0500 Subject: [PATCH 16/21] Confetti: Always emit from checkmark, not popup button --- .../activities/common/dialogs/CheckmarkDialog.kt | 6 ++---- .../activities/common/dialogs/NumberDialog.kt | 4 ++-- .../activities/habits/list/ListHabitsActivity.kt | 2 +- .../activities/habits/list/ListHabitsScreen.kt | 5 +++-- .../activities/habits/list/views/HabitCardView.kt | 14 ++++++++++---- .../activities/habits/show/ShowHabitActivity.kt | 4 ++-- .../ui/screens/habits/list/ListHabitsBehavior.kt | 14 +++++--------- .../ui/screens/habits/show/views/HistoryCard.kt | 4 ++-- .../screens/habits/list/ListHabitsBehaviorTest.kt | 4 ++-- 9 files changed, 29 insertions(+), 28 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/CheckmarkDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/CheckmarkDialog.kt index 13e5f55f6..5bebfb08d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/CheckmarkDialog.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/CheckmarkDialog.kt @@ -33,11 +33,10 @@ import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN import org.isoron.uhabits.core.models.Entry.Companion.YES_MANUAL import org.isoron.uhabits.databinding.CheckmarkPopupBinding import org.isoron.uhabits.utils.InterfaceUtils.getFontAwesome -import org.isoron.uhabits.utils.getCenter import org.isoron.uhabits.utils.sres class CheckmarkDialog : AppCompatDialogFragment() { - var onToggle: (Int, String, Float, Float) -> Unit = { _, _, _, _ -> } + var onToggle: (Int, String) -> Unit = { _, _ -> } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val appComponent = (requireActivity().application as HabitsApplication).component @@ -64,8 +63,7 @@ class CheckmarkDialog : AppCompatDialogFragment() { } fun onClick(v: Int) { val notes = view.notes.text.toString().trim() - val location = view.yesBtn.getCenter() - onToggle(v, notes, location.x, location.y) + onToggle(v, notes) requireDialog().dismiss() } view.yesBtn.setOnClickListener { onClick(YES_MANUAL) } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt index 81eb53d21..4025bc2e6 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberDialog.kt @@ -25,7 +25,7 @@ import java.text.ParseException class NumberDialog : AppCompatDialogFragment() { - var onToggle: (Double, String, Float, Float) -> Unit = { _, _, _, _ -> } + var onToggle: (Double, String) -> Unit = { _, _ -> } var onDismiss: () -> Unit = {} private var originalNotes: String = "" @@ -122,7 +122,7 @@ class NumberDialog : AppCompatDialogFragment() { } val notes = view.notes.text.toString() val location = view.saveBtn.getCenter() - onToggle(value, notes, location.x, location.y) + onToggle(value, notes) requireDialog().dismiss() } } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt index d16f7d702..d4e2ffa69 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt @@ -180,7 +180,7 @@ class ListHabitsActivity : AppCompatActivity(), Preferences.Listener { val timestamp = intent.extras?.getLong("timestamp") if (habitId != null && timestamp != null) { val habit = appComponent.habitList.getById(habitId)!! - component.listHabitsBehavior.onEdit(habit, Timestamp(timestamp)) + component.listHabitsBehavior.onEdit(habit, Timestamp(timestamp), 0f, 0f) } } intent = null diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt index c12939b1e..074f22f75 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt @@ -224,6 +224,7 @@ class ListHabitsScreen } override fun showConfetti(color: PaletteColor, x: Float, y: Float) { + if (x == 0f && y == 0f) return if (preferences.isConfettiAnimationDisabled) return val baseColor = themeSwitcher.currentTheme!!.color(color).toInt() rootView.get().konfettiView.start( @@ -268,7 +269,7 @@ class ListHabitsScreen putDouble("value", value) putString("notes", notes) } - dialog.onToggle = { v, n, x, y -> callback.onNumberPicked(v, n, x, y) } + dialog.onToggle = { v, n -> callback.onNumberPicked(v, n) } dialog.dismissCurrentAndShow(fm, "numberDialog") } @@ -286,7 +287,7 @@ class ListHabitsScreen putInt("value", selectedValue) putString("notes", notes) } - dialog.onToggle = { v, n, x, y -> callback.onNotesSaved(v, n, x, y) } + dialog.onToggle = { v, n -> callback.onNotesSaved(v, n) } dialog.dismissCurrentAndShow(fm, "checkmarkDialog") } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt index e06751274..eea1244eb 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt @@ -169,7 +169,8 @@ class HabitCardView( } onEdit = { timestamp -> triggerRipple(timestamp) - habit?.let { behavior.onEdit(it, timestamp) } + val location = getAbsoluteButtonLocation(timestamp) + habit?.let { behavior.onEdit(it, timestamp, location.x, location.y) } } } @@ -177,7 +178,8 @@ class HabitCardView( visibility = GONE onEdit = { timestamp -> triggerRipple(timestamp) - habit?.let { behavior.onEdit(it, timestamp) } + val location = getAbsoluteButtonLocation(timestamp) + habit?.let { behavior.onEdit(it, timestamp, location.x, location.y) } } } @@ -224,9 +226,13 @@ class HabitCardView( private fun getRelativeButtonLocation(timestamp: Timestamp): PointF { val today = DateUtils.getTodayWithOffset() val offset = timestamp.daysUntil(today) - dataOffset - val button = checkmarkPanel.buttons[offset] + val panel = when (habit!!.isNumerical) { + true -> numberPanel + false -> checkmarkPanel + } + val button = panel.buttons[offset] val y = button.height / 2.0f - val x = checkmarkPanel.x + button.x + (button.width / 2).toFloat() + val x = panel.x + button.x + (button.width / 2).toFloat() return PointF(x, y) } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt index a7d07db53..fb7e3382c 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt @@ -181,7 +181,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener { putDouble("value", value) putString("notes", notes) } - dialog.onToggle = { v, n, x, y -> callback.onNumberPicked(v, n, x, y) } + dialog.onToggle = { v, n -> callback.onNumberPicked(v, n) } dialog.dismissCurrentAndShow(supportFragmentManager, "numberDialog") } @@ -198,7 +198,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener { putInt("value", selectedValue) putString("notes", notes) } - dialog.onToggle = { v, n, x, y -> callback.onNotesSaved(v, n, x, y) } + dialog.onToggle = { v, n -> callback.onNotesSaved(v, n) } dialog.dismissCurrentAndShow(supportFragmentManager, "checkmarkDialog") } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt index b66b08be6..e412d04d1 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt @@ -51,11 +51,11 @@ open class ListHabitsBehavior @Inject constructor( screen.showHabitScreen(h) } - fun onEdit(habit: Habit, timestamp: Timestamp?) { + fun onEdit(habit: Habit, timestamp: Timestamp?, x: Float, y: Float) { val entry = habit.computedEntries.get(timestamp!!) if (habit.type == HabitType.NUMERICAL) { val oldValue = entry.value.toDouble() / 1000 - screen.showNumberPopup(oldValue, entry.notes) { newValue: Double, newNotes: String, x: Float, y: Float -> + screen.showNumberPopup(oldValue, entry.notes) { newValue: Double, newNotes: String -> val value = (newValue * 1000).roundToInt() if (newValue != oldValue) { if ( @@ -72,7 +72,7 @@ open class ListHabitsBehavior @Inject constructor( entry.value, entry.notes, habit.color - ) { newValue: Int, newNotes: String, x: Float, y: Float -> + ) { newValue: Int, newNotes: String -> if (newValue != entry.value && newValue == YES_MANUAL) screen.showConfetti(habit.color, x, y) commandRunner.run(CreateRepetitionCommand(habitList, habit, timestamp, newValue, newNotes)) } @@ -159,9 +159,7 @@ open class ListHabitsBehavior @Inject constructor( fun interface NumberPickerCallback { fun onNumberPicked( newValue: Double, - notes: String, - x: Float, - y: Float + notes: String ) fun onNumberPickerDismissed() {} } @@ -169,9 +167,7 @@ open class ListHabitsBehavior @Inject constructor( fun interface CheckMarkDialogCallback { fun onNotesSaved( value: Int, - notes: String, - x: Float, - y: Float + notes: String ) fun onNotesDismissed() {} } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt index 0a28c801f..cfbe5e0f3 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt @@ -98,7 +98,7 @@ class HistoryCardPresenter( entry.value, entry.notes, habit.color - ) { newValue, newNotes, _: Float, _: Float -> + ) { newValue, newNotes -> commandRunner.run( CreateRepetitionCommand( habitList, @@ -135,7 +135,7 @@ class HistoryCardPresenter( screen.showNumberPopup( value = oldValue / 1000.0, notes = entry.notes - ) { newValue: Double, newNotes: String, _: Float, _: Float -> + ) { newValue: Double, newNotes: String -> val thousands = (newValue * 1000).roundToInt() commandRunner.run( CreateRepetitionCommand( diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt index 26dd82df8..19f49a8a4 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt @@ -78,13 +78,13 @@ class ListHabitsBehaviorTest : BaseUnitTest() { @Test fun testOnEdit() { - behavior.onEdit(habit2, getToday()) + behavior.onEdit(habit2, getToday(), 0f, 0f) verify(screen).showNumberPopup( eq(0.1), eq(""), picker.capture() ) - picker.lastValue.onNumberPicked(100.0, "", 0f, 0f) + picker.lastValue.onNumberPicked(100.0, "") val today = getTodayWithOffset() assertThat(habit2.computedEntries.get(today).value, equalTo(100000)) } From e9517f73787434cbcc85022c3c69a113840aee11 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sun, 23 Mar 2025 07:22:36 -0500 Subject: [PATCH 17/21] Bump targetSdk to 36 --- uhabits-android/build.gradle.kts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts index 20ae36b66..e17232c3d 100644 --- a/uhabits-android/build.gradle.kts +++ b/uhabits-android/build.gradle.kts @@ -41,14 +41,13 @@ kotlin { android { namespace = "org.isoron.uhabits" - compileSdk = 35 - // compileSdkPreview = "VanillaIceCream" + compileSdk = 36 defaultConfig { versionCode = 20200 versionName = "2.2.0" minSdk = 28 - targetSdk = 35 + targetSdk = 36 applicationId = "org.isoron.uhabits" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } From e82bd47aabf1aed18232113d3ad71f3dd5839dc7 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sun, 23 Mar 2025 16:52:23 -0500 Subject: [PATCH 18/21] Increase minimum widget size to 50x50 and 100x100 Some Samsung phones were allowing graph widgets to occupy 1x2 or 2x1 grid cells, leading to very small text. This commit bumps up the minimum widget size to 100x100 to ensure they always occupy at least 2x2 cells. Tested on Pixel 4, Pixel 7 and Samsung Galaxy S24. Closes #2118 --- .../src/main/res/xml/widget_checkmark_info.xml | 4 ++-- .../src/main/res/xml/widget_frequency_info.xml | 8 ++++---- uhabits-android/src/main/res/xml/widget_history_info.xml | 8 ++++---- uhabits-android/src/main/res/xml/widget_score_info.xml | 8 ++++---- uhabits-android/src/main/res/xml/widget_streak_info.xml | 8 ++++---- uhabits-android/src/main/res/xml/widget_target_info.xml | 8 ++++---- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/uhabits-android/src/main/res/xml/widget_checkmark_info.xml b/uhabits-android/src/main/res/xml/widget_checkmark_info.xml index 86172553b..995432b15 100644 --- a/uhabits-android/src/main/res/xml/widget_checkmark_info.xml +++ b/uhabits-android/src/main/res/xml/widget_checkmark_info.xml @@ -19,8 +19,8 @@ --> Date: Sun, 23 Mar 2025 17:10:39 -0500 Subject: [PATCH 19/21] Further increase widget corner radius to match current Android style --- .../java/org/isoron/uhabits/widgets/views/HabitWidgetView.kt | 2 +- .../src/main/res/drawable/widget_button_background.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/HabitWidgetView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/HabitWidgetView.kt index 6756b8acd..f5214b749 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/HabitWidgetView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/HabitWidgetView.kt @@ -69,7 +69,7 @@ abstract class HabitWidgetView : FrameLayout { val shadowRadius = dpToPixels(context, 2f).toInt() val shadowOffset = dpToPixels(context, 1f).toInt() val shadowColor = Color.argb(shadowAlpha, 0, 0, 0) - val cornerRadius = dpToPixels(context, 12f) + val cornerRadius = dpToPixels(context, 18f) val radii = FloatArray(8) Arrays.fill(radii, cornerRadius) val shape = RoundRectShape(radii, null, null) diff --git a/uhabits-android/src/main/res/drawable/widget_button_background.xml b/uhabits-android/src/main/res/drawable/widget_button_background.xml index a5d8b5fbf..2ea56e4e9 100644 --- a/uhabits-android/src/main/res/drawable/widget_button_background.xml +++ b/uhabits-android/src/main/res/drawable/widget_button_background.xml @@ -28,7 +28,7 @@ - + From 0cccecec775e24cae504f16edb860ebed7800844 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sun, 23 Mar 2025 19:27:12 -0500 Subject: [PATCH 20/21] Widgets: Update test images --- .../views/widgets/CheckmarkWidget/render.png | Bin 9016 -> 9756 bytes .../widgets/CheckmarkWidgetView/checked.png | Bin 10687 -> 11354 bytes .../views/widgets/StreakWidget/render.png | Bin 35897 -> 37563 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png index 2ffbb10ac22352b6769ce5c8446eeb904b4b81e9..124fd3283d48132951e6e8a751d07b66da6666c9 100644 GIT binary patch literal 9756 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 kF(m5)ByMhnIiIAPl)|0E4&2k>Pj~@T6*U!V<{9 literal 9016 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 C9cU*2 literal 10687 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
    _4eU30Zr*Y{3IMO@UZA+ z({VmVudl7A;ODn%*hB&XgXImhoy*|s8+L=5N+C#+<=v-7JH}q6lDl{jvLr)aml?mi zfP3Eg`|o?=_jPukgf6(KUYKfh zh`)}pB>wHOgz+$6*K7%%ne@M2A~(>YOYz*T2TKeUv*xqf6~F7x@Bet`_@zblKzpiX z$-NTuHxY9Ev(1vg>V(*JAQOqrpZVE|+x>65UxGA(q`OXXss}^Jm=y(ia&Vx)M70?P zsa!?M+<%8=^^kZbw4q7Nq3{*nRCZXW#Xn(E90r|{UQ-S8cc-PP_|WcFYz7^C(sv=) zMR2n55O|m#rd>D}9Gx}dCcB&>Qg$hYGBshcP4h8rFMDt4B>8(e+H}TUZ8})`NDr!; zT}}Z1ImeE;iBrQTTjM<4yEqb^fsyxw(r#xY45nLl& zD2Y-I$nP@T9*!5I`tf~tC(Wl3&aVQA1AXP&cCdH*X!dhpqx8uu-7lc6l2;p@>#o`9SwgPMdX`)gr zgdCoyL`Z(_&9%ZiuJSE(UGo$F;Z-r5ryNCW$pGsVonEIQoEbI>0y}@YNmGOWwQ^iP zVlND~reERzl)aAv?C$`Co`~gksMvx#LpD;b~Zl5;$=Fhl+bH9trw_N%3 zYog$1d52I4i(;mpnreGR{3y)0AC^hr`zG5|_$A|Th15i34LEbbBG8W)ge1n%y>z;v z!`@zp_0^1vOtBgS0nrNh=2}R^^v~*?jxFf;vj@@wHZQ$!GHhMDA23$CAj#wr*=`pY z6_swIHYRv$q;$xsFDeDecWa!+y2Sxwx!n9Eieqd%PI66xJaj*~yey7u(&W;uj|;L& zX_E|0QBavz2-I31D-Gm`0Anf~F&|e*6FyFkl*NXs+ltpj_a0crMUi(mEp3M^Xt`)f zzONvD!~jD)O;#V&V$5177oF5yDPNbu{?q*8Jc77L>7_-OH(_ct3HE0d(~Qv%u$IS2 zbA|&9Lue#|Wp;*rr+^G(OadFj5y(CqsJdtr96P=KL*PcIAYWCY9ei!k@x+Q>8$h6j zABrKQu3~JO2msK~%F)!jClD9K4Vu3-%HqcyN&|!sWlS0Vw=&@H-`dw_) zaan1e?~!2i6|#Y;;yu;S7_u$>vs7nKH;l3)Yn(ljnFzK@ru z(z?qQXj3z#C+n}p2xb53VU=uZ&r|PfaN1P5#9_pU>q9Voh!z}5HX+H;(GL})9jw;X z8yn|4bk17mj!hH)Ar(K6s#x@G(XQ}S9R%(31?JIj43MVR>)P1TDUNMvI)>ZSmX@-k z0l}ZM%xPb>XeyTeijLbSSHKk}38G1Oh8#NWU!@_mG}e3FOOl{dp$pA>@IA99N-mg; zro7X^w?!g=l%|GYsRMuxYDkHUHZ^&C zZpwG6{g{COFdpJegTRjF5_a_bn>JLVX-5&monR_CiYF5mO>e`6tv4!+t6;;sDg=vv z<(loPkFRj)UadP?Yl)A+lo&L~v*`?X6)Nk!P-Pa%EMNCQf29bC8~D^PNXi5wo$h0_ zyx_!>x3BLeG5My5im~Ata*ctQLWYtqQgxybEc~*;pF`Cx*WY|$WOXmLorOzB;1mL1 zSgh*V+_Kj7G=u4a)fc%>Q`jB>`CqhvFIUs*6tHh55K2M|NrQtHEFweLo|xHg1F#J|9>~r zp^~k5!_te`j^6@H zXZ-=Uf+_|Lgs)coseAWmv{bWHRs41y|98mTskJ)2mp>8#!V=&NtIv=Whqo zIC|_Kha_d^<1*H}F#~~>-$KmKHb>BX+MHFgzTEv*A`OW?pEE}TT)F)IdSSRU*`0G(d{PD9!&y>tFh7^l-lIN3vY+=+e~o|{k49&9VV z?hzD#G*z7D{BFP%DnVB8@3@DYd!PSRZBn1!BI?c*2HQR>dmJZW81f>Jh#U%jCHWoqb=mIAWm&zJ>PUf`ptxY3GEL* zn{2cp209<6l!eYRS8ObO%^Bo4-$Xa_j)zVxE(XL3F002U^{}ZfW8iTe6=wp#@9V{o zlYuAJDQddyG!$VVaJDi2gU=-$G%ueFTvz2-<+?#X`GmTKDN{I zXTcHue=C(u%bojRQsis#`>O>|`9_QDo2auQaDU^9<8JIu`FGh13sCpC`t?QR_OP`= zHm|WnP5%0on(6q~NAneJoxJOECQ&WH-4^) zNoHPB6AO!fxRsD;aFX}z!K_{KeinQ%g9aG>DDDz=(4Sdh*~|*}E-zT9HysCcN#jR`Oo4oTWrd;bNb;Zl(WE7dpl%6^ud0$Qc4zoj#0E&sF%upD?pljX$p|Jt4g=ch}q3< z*UdX}J$g-CLJD%>S@G+_BkJlB=Ho28FJyjk-Gkes`uRs0JQ!Wq%OTGmDalGa&;STp zv1l0s>cjGKu;Rt6HotfN!ms;QQ3PNV5t+Q}B@G`aNC^h!Nv#p!9I5f%@3j3A=1gK5}V`gV&xr;}Jgn_%;f=bhLaivaxPM zaZWgN0cVXOo0H)feRBvcIxq^shEazD;_qKmkph9{r?TW;`fNaH&s$1dT0l;aUaj zwWq3>HcFzbVp+S|LR7(XL+?vVdf4GtYAh5NF1j*0658V zjZO=IK3oZ+;&bDlLh_=Z>tC5`!L?K&+0n1w`@FP{ry0jvf8+o@p*;6~J!-Y4cCJ)L zz)@y3RR;jxTjxZ9e(7EV!`5kJPZ04(!~9#nl~2~&@3Jl&|Hf1H)VDV3QHe!g^Ut2VPdYZQ|1%_jIT z8}QbFDRAoJ+rv1){P$Z*v2APNWdo7NOW*p&;wX&1)RD9ltI4C#i6r6N^aoCSoO+NI zN^6?{L3aJn{+Qw(4#O zk>rL8ECSt?F`wV4h}84ef$w+$3q&9%emAJ}jQvhfwFgOQVu+M8Xsrq6%>4{w=y(w8 zH}rUX$iV?`v!{G<-0=jQqC4nBCjTCL1XflKgl?g@uZlB4uMwL;&IUQmueIm5^(fY` z6<*J6?!5Tq9uOwe^ll)@&#t5d)xT!jN6ByAAVgPIIF-^|Hk0ICYw{A^sK&slzxFb- z_O^)ZXA4`JSK`Gfjdu>3`hApbkI8x`8VCVoX^KKcNdC1hEaN{Z9wHY12w)1`#5N8W5_?pb1vs_LGgKc_$|;eiBTgCAKCcx$O}myZN;$TXfVC#XNceczW_1J$1RjgLR)Nv< zpskcoZB_bbOb8ux`GkSh)dc@g(1-mG`_PawBli!acYBE3j;1Q*+jlH}*1e{@{Ox3Z zaorv<7yo$9@0X>l7&$PqSYwG6sBVjg9tkMulAApW*|p9kD1H7M^K_|&SS@A%@9AkD zg@Og;KTElbA8NcW90|jG$A?Po%Ga|co&*;CY|%Ov`*@|8tDVLLw-PFO8FHKQ3Q*$s zYDCUTK%M%QRwjAtdCmF_wdO1UH)<^`R*@2p#+%qwh{km{j)51I1 zKS=#Ep5*ojE`E5}e^yL+d1SvC=w=QlZ!od^4w8y|T6q7N$9ay#4lYc0dHFW#yV3Q9 zEu+^TF8k3@h1$BclMH_0x?_B-YX6`@9~f?+Ev-ypEvi)@$Mk8^XlC{G!pieH%CuyZ zD5MWTuehWRr8AdI@B8{BlyQivi3e`kfA8rl^0zPPIZ5e^*`)OgkrilB(Lu|oNeZC! z_N*&D{yGnv!LL9v1M8-4^8ik*F=j>EWgo9N0c_49v4TB78-c?v9PP>03OR` zWzBx&!P2eXmvR#sZB^;q&13I((gly$oMDV}>DsFNH6Ns!C86bU=Xc-V%pC}k`z!*i5; z#X`gJtxxih5#Rz;Pm{|RD*yocPOMfKQXD73{8jcC!H29dr{u0%Zup}JmAAg{Iwvdn`7ZczgZa<@@xo;{-*-HephQF@0_h`Jc>3~~ z_FVsZ)OcZ@S$JI6yHQhlQ+wSjhr+fM;g7J2_-?LEPONABPWzq>UeN3pe+&R7Cf;};i)K}|wDrS3n5WD)Z~GC`8UN@iQzc<%mr z-@dRTraU$^vYSODxrSz*icrG4FGmdJ(QD?9Pxy6xx3Z3EPKq1-d(#0 zFqsq~5dVFDKf{Se;(q>AV4;H)8O@9JG$aX&r|9&}Zer&AHoC_WmRP=kS4+Z2W0>g0{{R3 diff --git a/uhabits-android/src/androidTest/assets/views/widgets/StreakWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/StreakWidget/render.png index 999af4424f67ff6f8282822ef2d93e98e6e30963..ea183d3f8dfb98e8e9a225eca4583633a5473daa 100644 GIT binary patch literal 37563 zcmagG2RN7g-#1Pwq7a2-RgxAekxj!MrIO5|?2)}krBpH^Br8c0Lb6vzSs`TaviFw# zf1TIw9?$Q7?*H*z$I)>~-*Jx5=ly=I_xbd)vdk_@W=awgl3jAL7gb3}NCSvJ6x;C| z&mw^z_#df_s?2$kPqi!~_{&zC^K#cH@SiKiohKwD93*lVrLH+fjCVO{?JQDe`|?v*?aijv5R(f*~5b&-S8qhz@b_W~@Ii+&4?ZIhy%yi@S-;X=r! zLyy6FDswH3k)f0nHB(wzTD^{rPNn1*)r99;4|-C_1s?RgCl~1Ieai9y2Zeq}lZpAZ zk4b8#XD^$lsS`hBG?^4Q&kfel-}t1J^URH8WO89OS%Oco_|Ca470LHY)k-hdygGI0 zLTvqs7o5gvoN`Y~@0m%_dhMt)$%qmNuZhmc%JOjTD|r;_xi58Eo5PCX@~tOim6yo_ zG){p)6o6J34Tvs=B_0jp;_pI1)drBy-a__mi zzP=u+p4_}HXxVMX`phktPSTmCM*B^@k^SaCoP-qZ*4r!roJYU5v^eTZ28|7Cy zBwsFVCqGE;e>2@+{h@rEGugEDkSFnp!!I~1ug2CV?WCX>PD)APU9Q&45^f-;lQeT< zt12ri6OB_{&gGPwv@fK>%VSkyt{t;+b#<*}^8H?25Ry0lePv?H{m$D_0Ri_yy}iqo z!Dv~%T9`HSu4dirkbUbnSSg?zxh6b~hxVKu-o-C2=9{bD(`ub*e_X>VsAwE?9 zF{fO6Z*Q-}-@kvik}-cJyIg-YXISiN?$z~ew3-v8ht8e*D<&8C`!RPNal}k9m$~1U zeg9r~UZu!>ibIcz!)^PE!q=(&%5(4Dz1zIPy=RHWJOn$yEA4#DWkqUAO3Dw3iK~>1 zuRpI)a%4IsGvJnmdJ7~HAEq9A?O0Gje!icefI#<(_8~X>BoWh+KpE|$d!8|RA5D3{ zXOO?SvATzmG2L!V&D%~RIpo)`Yoel}(gzG5@O^f5bBpfFGdOX!XTkfNc~$ON&x+Vj zboBH$u%LhR)qLXHy|$QD6qlX->i2Iw@r}Rw*Nz1%bV#hvH_k48`}S>kVdZvJ!q~>& za*5gR`z@zCdN%C8q#vXxRZh6}UMcMKUD8F;i&E_C2Wls6pGKW3;oWJY^Jqs&dAZDn zTh+^>d-m)(=k|I^!M$+(nu+{Ct7AZ)G(T zz~+&?#7j~8cX@f8>2KiFU}dfyrQ^*hl7lVc^UmuJ137&o%O!7X-ORNe@g%GG{mtj; z6Q=MpzrSQ=&WM)Bgykrj;L#=YF)bDx*}f4E7$OHcXa~aZLM6}9qDb)<>P*DtXfLU zis0Pl=WR)Nbn=HA(za~bqBUtsIz2rt8Q++b-*uUin%e&O6xqOJ#_p~AAD!PV#ufssH)Pbh%a*{BqZPh-cD2hkeob_m{R!LV{^&F*u-SirsGJIhTvJoSBIf*ZbG>JCV(Ha>K?_bkzJROo$}{QF>pMNOx}B*!JUk8_Iy7Lb zBC-BOD|}@{#Y5i7DJNe!PBqPcj|Eglqy}t7#$`R+J^!4?NR^5kVy#LPldzcAEs3lyZ+r7K^A&t1KfdLnei$6Fx zn7RWOp}K!?u>IuR+}xjTm#M>N&t~-ek-l_kHyxec5-I!My_YUu4!F=>8RSwJfMQZn z{ovul}l@n&dn*hmMu$j zB~-ituU3arsQNG2uu#f70{o?Okrx|Rg zD3LVEXx}EeyJs7Xri82@M_ZF5ryO0)jRzfO8Bc1$1sj{19;qhWsd;^tdPGl8@0FN~ z0Ew>a%(lqLNVmd~$mnQZ!7ieT+LL}A#7Yib)iA5kBT)!BQCyc2f4;zGNIAYEcee0Z z;tzu}yhUrLi&mOa9LJKgBHkZ8c5I9Did;m2X+w0e)_y4_iVO|0=%}x^O}~G3iMhO? zqNUZTt@mB~HlG=3|Lj0Di-`TsVPm}%K0Bo&n+yuA6e>m#nPnqScj^+%KE|`ri~iW8-zzc}Uoe4-;OC@f6w-aS67#i3Y#@xYe0C@+6@ ziP}e0j4YWGHH(2UoN{ZE4n<>gtuZk%B=#3MA|BLcIm8}+?28E?>~Pm!@au?y)<*9 zIC=6US(V3>{;puaf*Bv(wFe(QaFgWbDCHS}BKj+VlD*9Z1IyL3K zY~UUN`DJ=83c1hGNj7y+Vxlu;^qfbIoYDWjv#Pp!AScqq#Dx3AiTnxilMFslqny91f>%%e@ z6CQjm(zM&<6RvG$ZQP=~z9$ z%F1fil^YCrN6KCl6GJ+@%t1pz@zsc5Sjo_|-Rf=+S=yaSx|}fM(#N~jdQh7KCja9* z0^e~IQnA>drM;AL5wQ3I_S-Yd!sYG5BZ?l=#pGB@w)XZ_kwaNm)zr4n^B0}a$#0GO z6D{VVw$Y_FXJwGRBJS+}QTSf3XCr@sE}v}^Q4V&#JRg&~jrOVL`_m(=N_x_V9ZI|m z_H*suvxk#rWPL7rQ?xhht;1yJQU7bsYcu7m;}kkyjCM<`kEl$9OtfbxblZP>wpW?# zQL=Qu-=|MJ%MON-eFZY=hmRZ)Nut@gvmdqC&Smpqj=%%H%YmHR^w>pNOgQNHjBP(3 zQM|LdI1wZx*(Uxq%d$tjcjEZ*<7m26Kj$_o(6)}Le5DYpQIS~dqgl@KSQTV*9zNhc z{gAz4Y;FGgVze+mUUb%8* zcesH0=MH<^I8IJZKASp zn+f#eu(PHN*fpq5)sa6R#;GQtO`*yY{Y740p5=Yo()>K<;lqz`y_uPr&)JWw7hUbj z%k|jrkb=Gz|Lz?pz0rDgozmB>w$DfoQas?8ALAwM=jz$EoBn6Qu)}fi4yoaX6dVMq zo{+6|XC%Ey&@G>Te)B-{BFS#>qt1g{o`4(lGVGSb-?nBw`R9|ezpYO-?(sS$8OX`c z?Ax`bs_)xm@=Y)8XMOzv70rVb^!Gp9r}*D1E;D zZkV~4!zM=0<@w|FSsy@rMK1dN0%rF#JPm%lDn{cILc{;CHDI7RG$<(Oq5MMEU0!bP z-ijB8%-TN3^_bsC(NVItKCPsrWU*KNhF@egQ;jVcmxA3vI0oNWlbA9BCH|4ztB&E_F@9ml?HI5Tortt+2oTD*2}2tbWU(kXb| zv$?Sp8@X46ijn8e#@h0)=H}Vuq3EmEuV1=zhjV#(`HrDsZk~JQ2%8j?CJ)9e=qi1H8cXt=h$;r8P<3_dMw_gcYE32yy2?#V#ZfAQ^ z92Jx|SQo8gZ!dsmGu~4aJvwTF`>l?`yKmnpo9Mar zn=kh5+zwP@S+Ky6k&!`yBWkR#FAh=>m$SD1+(`0!Vxk7H9PJFtjCwWg%$YMY^YeG6 zx(jAMS5?WQqB){3R8~|3SbnJtI&$W2)gH9iqbE;(yTwPlf4@t|+Rkr6ImgAsSbe^g zpw=C4Q8hI+9T^_(1%$nn(o!u|9Q@@_UuTXD&a}tkCeAuhE%`T~V*ibzmAza+#$~f) zpF&ABNrY^NX@}~f*?*;7%3*V(=ke4kbj8Bto}HaNXEV5S*REY;?K~(CV86D)thn-8 z`HnA8SsR<1w|~XwgRD||Q?vdqc|>L30l5TwrY2O^y%KAXb#Y=~;1RS16gg|DtfR+| zmzrd>Ur%(=EOZsZM#!J56%k!*)h81UEoKqn;@Up!bbdVf%a@m#nF0hsx*M+&{r;cRnT^Fisun=i%k$g$e-BEPB#_ZSj{H(&ZPjIUy3s)@$Ya^>sc1^Ox zam-)7@Z*@x&CMgkT$&G1wB5OTw{77t?xRib*Zc0PoVb-hBP7&!>#x7n^52D%|JBrV zsdLw?b?)?u7!bzVe^kj)^;z46vlc?005dylK#Ivw^nIlZ|pt;yu9L3*39v*zj-e}DhR z#j%ckPi?GksHriKKrFfN+MY8)!h_A{+j+3f{2#aY0)m1{f#ewm$M-@JeS z_~_O5e89daeB8XeGAt$ZVm1JbdaT;t4K9BaDG1z%i z=PdIs%100I{q_^>--;iS1C1XBHUgG${JF|F;Cx4^f|+9ei#Y=$W6Wa7owdfP@c4fwN&|_Nl@MYSnHixR$car+TwE-vqI(|9N;>w%@f)97CmN0TX9>14IXQWt zdZ^B0!v=kG+;5@jhVD!(`}z~Cy7$VFql>gIXfoYiyEsTXGR^hdzZe7GymK=-&}zPwrrw(Gl-}sh?a<)I zudAyI*w-K5(=hwx~R@~xCLFSg~4_Jo`7k(tVDJY!fJ5E)qm z>MAEIOLA}IZp_c0mz$F{z2)Qd(6gvnXP3HNcu_rGDRSZ0L#b}Ko^|4@CvZ($bX?58 zma|r*k+yeq)Q{LYIy(!`k2pFy-pbG*pFiCs8yS?xrS!V&0*#m#J`P^My1P+Mpgli! z+LnsgZ)RtACpJ~FZ~m2u?`W<1GI61?X^Hjm>*TPS$dvWHXo`x%Xo{@Ha&mHbM_^Ep ze%7aigr^}P4AAXfOwM8XJZOcBy+i3Nk|E8jp%|04jiB!tBn#< zz-4rDaE9zCTR&Y!uR_bh@?&wLL&$ml zL!&LY+n7x>p@l3gEacBt9iRRD>J<||^Db=s{qt!th8I=NpWiYvGGZ^Nfu0@}6=hK{ zF+M7^>j-!dn^XU8u#wgb)6ml1Z4Qlo+bu0EiTVsR0Ud@#+*MuY#+55lfPm0oteA8P z^}Z3MiHF8m%wdwHva<3=xS&5#o<>wvRn^nQHmV|bB9WUR2 z+BNV(x@Wa}Dcg304z&SdTti!%P_L(uTC#Rt2-I()1Io%$99K)aCu_4jdl&RZOJ0P| zEV3_C=X^y}YV+PZb?Wlc>5e73Q%F?tzIThAJZ7OLZmfPk-8Rm8qQX+`IU4e_SQ1Sl(8Vw8KvNf~QW^-`Ug?9qBqE%s3w%@rOgX{?`qNq7n)n_uuR9Dn|ChgEbRXIQ}Xuh zmVkQC!5`UIVs?Xyr5hbuwp&jZi{N zfUdI2$_6X*Ba$i-KL|RTS4ji>$j*XRQcqU1nP@+oXKEcEI+peU43+91hWcjLFpI8351*-t33H&}Z5erG zWoq1Tw_0<4b&xV1f5qM3*=|(Xxw#dT(zf>95(r;)9Yq^ldlg{$w&y4g1+Xm5)Q{F{ zM)~E~%mx12JN|?imC$*;sJ}rU0xAkVX|enNkKXcG>>A+zbLg(<;7!^U&|N+YaH`w| zR_fSqCK>@&oh&M*TfBN((OqTkFhVxENLRhp}Vvo~p zMt#&04+{#0nznqpa_w4wL(a|+Y*>dbJ4W;dw6$Z$j;)9mp~V7S;B4P#WCWut{_N}& z)pOdlW5)q#qUZ-a+PVGwO1Ext)YsRqzu#v85eulGZ)%D+H0A!wu)-&^!i!3ON%Z)b zD(dRM_1jOTBqZD(Yfip)?OJxh6zByo{)eO_mT3X0`l=`2|1%39B?V~AXWD$?{Dli` zska|$_eBcZ9rIYY;bGUYKHi>D9Y;cJCH!|ep>Q>banGK6{S~`2&D!)r1;oT60b_p; z3>@Yi8z1lQEq;h?mg}nQcC*0wEXpwumGAJb93ar0+sWkPRCO{PXY~Bo#H!FQCK_OY zy-G?t;r&I|efcmN$Nm>z>*gu&NAN4jZ?ZxI_ z|IKXk_JphPfuW%?W@brUN>+)MMe89;Jsw4M3t-@2wbrN(q(e3c0Q`uSh;DD!5Z_$0 zfx7zS`EyPQiRkfhGssQ-G^PI!8eb<_S4l9ez`#I~;n7iRe=@WfRINB*%*|~ zP7Vxw8*NHlUZ3)i&?{$oQc)pGC<^CeZY@oA5d{;RDTG(Ic5QhsAthyKy04V1JDNM? zPdT6^$`@LdUWSI#P^81S#eA%c|7X~1At!E@z>mO6C`}zQob9hv3_JY@uvuO~;S|$O zFf-wIrbb4+;g*F~x&F9-bSx~2kd(lX$;2~@Z+(Tu)2wM(nGphY0>r{`w(^LavT}%J z#g89~qGDo1h0ag<{5cS+Fq_Ak6|~U){nl@WY>%VWLuq+jZv?yX-q)d1dm0)W)6`Go zgDK7ixtg1wgrG!tSlD+$p6}w~5T2-kTiidUt*Pk)bO*s1?d!P_$^9s<(EpGz-j+|) zLGpwZ*-JQ{1m}43@uNJ?8HXOXECtewFI#5xOSaRZgJxw3f~hH6&carTfKGm0`S0{W__JsRaKR$k!*k6LvvHX*f>GE9ZC#JH zU~9`y>_8ZK_PHJ%cG(NUZ7ciSTwS-j`n}EfhgxVmd11u^|c`_2bp4QXbF$ ze`*e6q;>CaC@^`OB4=LJUi6d;;)($)v>u=w7#JYyuDx@5rqiZQNSl$K{voGaXSUS^ zok1{)Z+cekDUF?-it6f2!jXPZv9fB90(}B-5|*!=T;-GQ0Ir~?jJmG%Be{g(lSeba zDq??5Y5(rsq_-Tpq|bxYpFMk)C=(`4$GRQ=_;y$jhT|*hxqZ(^qw!AvIkyO83c zq_2Od=QjI)u>;v0dr5Vi2KHi+s^{7s1p&72sEZJyk5n#)sI#)(yo>|_k8Ec0U(!KONK^Ycab%hp_Y zpJ%dWR{L3UH&8F!XFlkUkeH=#U|55HS69!#hY{*Zx|vP_$TT9T0!cX^5FH$uI0lK0 zKN6o|$D_d$dIZ5;ejFvkX1I>ckUd*tnfV2{Y%4jrK0hBFs;dr3*m~KUH^WMuH8;zUUm@wI zx!WOo$P*F*WL=B>lKBM%Fh_SmJ%Y4+RaNyosx;Kk6PlTd7PB^?xQi`b<|Uu6>)Jsa z($6>7Z#HkTftm-$D>@^j-jVW3ViQqjo14Gi&~-aIysi`}9E=lS0!oVBm_L%UukL+b zUS3_iaEG;KP0d~i9A#z#MA)e1jF=+oCnSDTR7Nv?R_rL2KCsuuZeI-@WS-zsfK*q5?(~J$ZW9QECtfxN=pyHzs%_56H2n$Y5po9Km zi%fu5b}sK?abg{4Z=j!E-rfk^l>*X5zTdHH*S5m3-psxHH_D&T#6!vJ9U3YJDmdx? z+Ukap5jTL+1>{#ith}kO4)1s`97&BE=xuKaGLxh>=BblAIzc2zjvb@Ka?7b&yt_b>lfs3XWkAgNbE02XflB?ie5R(r;9}acn)n^*)rd0Zt%s67pGjq?13G~(%XJO z))xA(K5Q!-VyK(=yvSb@h(2zhR|f3{v}lK z>^hLymSw3M-RPc=T+y$Vmbt3qDcSkD4xl1LDu#B?o-){J1Gv%Cx^Y+ZpXIvGEG}D=i(}@6<_P6nt4wXsBU}1E1aKH4p(KQ`7YQ zcJ>2RdjUCR6%;NcT%&gU7=nTh?TL?Rr~N}w*v`<~|6rwAzo8qj(+f)_C3fK5Y6b#X zAwBp?$c76XR0`oJMn)M#kgzGJ%_G2X4)E~!UGibrO-n0@+Y8}`*y-Kf7B^B~L&T?` z=-pVI8iE&mL0nK3;<#F3Mo*zXPJ<3-Ggl|UE2!By3N`RH@F7s_DdPst$)ZhnZ~jmo z?YAF3JV7tiU<;lvm~!)12<6!gh-hMR456As0-KHZZX%-w4uih`kburf>U{x&K%8)a z@BN*=4co?XJguA?3m(`P{Te_9RYd=-O%ue^k@)D(1~tsycG0f0I~wCvjzG*$R;xxa zsW-`hwFl6jXFp+W#2{uj`f_cyOOo82<=j0_kRMb|IRG6%XAra(At8^wy~$UXrr;fr zyv;?Lq$41bT-DN2B$SDAM?1T-@CxoM&kg{$h*|IY^DjN2z2IIp z@H<+bG?adz1X-#?os=U8_~9mJ_Qao!Q+@hPZ^Y(==)CBT^L6=BwNck%;!D$TfnaxZ zLkGmk-^V*no!UKYd<@ZZK`4 zJvMS0>y={re#TsYG%39ElpwP&(ZG_BVjxufQfpu7LlB4t@dD~qVdr^nz(^ANvvV6n zp>gPT^2RmO=VR)3d5_DCy41el3kI1c>q*}GA~5i`hDzhPKaiY&#h}Jx35rL%J5y0p zb0G`({rh+E@Bn~$h-!GZ)lbXtJo#j`x!*p#4Gj$?3cLmU{i`h|89)x`9tJI5XVeIF zq}7ug$QGvthnnqIPn(&5zkElIa{M8F{yjmJ{SD*wpFVe;Nls3to~rB|8L$&Qe)MSN z7LCnW8+s!$;Ul)Y-eom6HWG1fU8D4aXbmSW6P7;wqg*<%t@OW3A1Cd$HI$SkYW>XHa zguYHz;P$TIdJ{+{#lwj^6n_1i+5dk_2~1h2RWc$}Jp28f7`zJqQ6jL+E!(e8T*{ zWehIO->10nd$8ZNy)-@bub2LHzsVZ~lw$8DdG?rRI5utUi>A`FEV|E;ExVQW_D>B1 zQTdMk{QBC*_ox!j`+gIArq;v#gKcBDs+)P@#18uB(1W&r`}pfg?}13L>7V1s->6^jj*Z-Q+cQ^eO21vtWS>(K6f*XZZPPoK8=7~)vl{Ga3#8%q7H^G4 z&EQDL4CXd|0TFByZcPtMPj9_8fpg33wkY9*x_BSRSmCZ;DkDdpwm-p$Qw z%2A?nSFbjjXW0zsj8sRus`%%T1ipNE5q`XkAB)v-&z;{vw83QGCnQuROZ-5=g1#XY zw=((p|E-7!kBe|~gWv6hwRQsNr%{y1PC6=d;k=JHWyXcg^KCBQD5D}q>GUoBOlwDdxgal~rIk3#R&KpE* zG1_f0?1Hny)Lz5Mc^Bu-Z2|QV9sVz%G$;TOX8amzpA=AVNJvJ0iyRprMi0cYAL|a{o=0UwNG3$wg!;SEG`-V zzaVe|ZMCc2`@f`zE1H^AlBn2(T(I091h!HAh#(R`bBmK*$9WTzlHMgI`VgWJ?nq85 zVSJ$xU)Ir42FwO$YHe-ZEfham~<~R`uleoK8)ymQ0N>{GD z(8@T=wDXX)@}HYOb+=S3kFl=558pTWZGj=3Mbu13M7^&43&~`dvtiB2;E0IlZDxb( zOFcu#woSnl3_;vubp3-`BEe|Exqy>#k*m84Tq=M3xR`KFn19=X{bZ*QHf?|JZ9>^5 zSz9Y~S?%s}`L@qWW$6`dY$}u*q`xR}(Dv0C8Yhn)JqkOvX2Ol2KL4F4Fl7h7ABuAE z>scEVq#lEl0e1_nx1t&q04P9t)e-mvd7ty~jiiXH4Oy>FT#jgTWay9mZ6G74&2Zd@ z?u#hDh-Vpvinpye^EM?epVHZ@*Tr;W_S4@RQq&|8-`G9`Oo2;4WNuKQTwU`oXxx~T z0c!8rnCSUzRDba8+qdW_2Ze;f*x@uFc7bSAt7Rb(&(5^$nM@TG7H0NDrrjw_WJzAP zOsq@){4dGJJ{rjekfDH{;~&{_gFBOZ>X-Yqv9_4mcV~9j*U$YL|MTa}n=4#d%-B0) zTijlLcu6PY?#!rB7iGwuxVKQar)o1jC-8OAybpgTKmFV5F{-x&k5zO1nySrlgH(pA zL4QP<1eoBwp58&YX#Z%tJ&18Z)j$&XA628Jv3K;)zWZp%gY{(KRVCpZmixn66zWmwO=cE>B`&T&d|YLOG6qU zW74$)@uO2=inHE&Sd(BDh(KcAr?cA)z%IUgz66JZZ7CL z_1-7{i7ZNI_7#gN=A#bnVs1mC=X1D`U4dqdbbUGU0N$>f&IM7(k%9951+miZ?p7Pt zI@LMEuXAVPbA<5$Wq`Jc<@nfl?=HG)WU8MajItLmq@0~|I|hh80y!ROriqZO ztR;T>?)II{p-3lQ)zEl$KISXjTUdDn9EJe3EARcgKHDSRjc>O%cta{j>qlC6xQNpB z-%a|qjK(dtnAch^)6?v3Ya5xh@}7(M9>f*&jmMEhD`~2~v9U&$?vC=<^3Qh7?vf$~ zwMOI2*@rpBYh$19eSW_@yH?(ks^RiFdva?gR~Y&kp{ufMimX4_M%CG#f<=Hp{+vP2 zp}y^-=wtcoiyisPgW=d^MSW0351lyi9KcL!%7tU{7dl6?WaranGCOD=bbI$cs=TAu zm1{>m_VD3DVq)MFkR~QycqT*;uCp6!#*9Gg7h`%x9<6(_josaT%JHR*jaS|22-y|+ zlibcqfruggE7t@Uo`)|jt$aG#m+^36ttV~!X??dBo(~x{atxo*1a3vld9}5%3=xX{ z-4}&~gp?am^61&vlpJX7nv;DH0a*| z1a4&MN-ZM&RqB3Lc6)5qw#9`}+3>bjZl0$yL>mtXLv7D__%F@)?2hC<9z-RfP6Z8LkHld}(c z%NLF0Mw*|6!cj5tPGeIWlT#m{)FY{6+ghua*4uX~|Ih%@%@wx?fcwEnN6PqC%O`F1 z6YyRj?s$1^CCQ^|>Fl(zDK9H)&4@F&b0^zw&24qDl6SRp6x->2VPVt_9j8k=4F3>b zB2(u!iD8$2_wJ3NjqA|w|HGVrbW%iQKcRmt{_Z;$|8(?YTF^ULUbY&F&r}@u#pM~e zj7Bm`LfsUv{EiFx8-KX3e{B8Sy-&ez0~gM4+MZC5mj|Z(>@;V9Q1$Orq$1};SI5&q zRH{hJf>&n{wS)O>jpfyTwzPH24UZa4z#fz6NL3)x!Ap>$&Pn8tJyw|Ypw%9E65kw?PM zSuNxpk@A)Q-LfRJyFd2e(FPw$_QOXK+m}7Ev{=8TGwma2tEgxMj!0-1+t0aF2RQxz z5~X9_y(^1bo$=u<fRGNX%2T*Q>+}F;b*rqFZK+jklZ!3jJLTD)@ z5UgESM&dDjw9CakSpG1BPh8KaJ(Pl~x22KM zo7B|Qy6~G!uME3W`gKDdUk&J2Y5o$$b>(Vk@RI+&<;~1?n$>GZ539xfZEUZvd6Y}N zaW6Ftg*Wez!5<|R74qTqo8Jd<6QJb+3_!0ESvM zKXNUx>7tB`ewuo=^TNl@`LhvF3J^>@hzmdrb6hC&z(f_uE@0Ck@%L^V!Ve7UUoHA$ zyf4e>8r=#7FaNQpSFdwvv`5lZPmEnEnfYEce8b2hBHyj#0KgFwwiW~h`UB&s#0b<= zxS2vi`+_R@&Dejh?_Qe!`jq6fY>(^QF8l#axQbGJWJd@_7(0sMi-gWA&^Rbm#6W^(5GCay6(XSi-799alvdjB6_vt&MC(i5 za0`c9M$0nMbIwi3MC^EQ969^#m)dkZRxg&kdSem!*Rqc4kOCO(j&y0rS3tEa@yAGo}KYqOZ z*zw~spnU(C$XD>`SjAYsWJ*hHlZmmZX>3x`^Rbo`5v9b&5m`mWvbs8d1l0gjP~`SE zxSC{WfL`U;PcS3l$`f68d3I@O=u_TgiJ$AK`TxuUw6wrWLCw4rJ+vRvAesS0Oi(QN zZ>P9)Nmz~#v<6!led1sE`S~wvX^DO?Jzlj|K}Wh3`L}~`#t+H(JsD%x!+dWE)U)x1_wn)Rs8?9<{db|Cu!uSaAis%-lr36n(1XQW{KNSSNZfbfQ+1@vB(cz6kQ*oTHmsy6%IMI-?_pZC`6Y+pkxBlC?Cu|o)EzW&d z|L;gYZZXKC4YJIc78A=Q@o2X~<`8<3$0Mv^oZ}S)kRbxJ7P^T9auPPeu&c9+OFH5g z&!zvosWs(>V2yI>xYXr7+a_y3hN&NSaoR1s)D$b_hBX+1}d9+p?E zHMM^5@d1n42qC1(;U`tZT=33@H_Yy_b_%Y+g~X=QmfiWcMHVB~2EBtm+@HUVWCX07 zIRx`sGh!Y;dSnGQb46Rb#xU9q18v4wWrSXUxe9n@Wyru`uV9A3vE#hMf7tOycpet_ z+81J4etKac4#W>}iafi!ckiM-z~V7{~qzTh-|qG zMu-V^Z@k&t-byn_ZpxH^r$}fcC!VI@0`Zy%@V`f3V%&)>>BX_~Pa$~-V1Th=tmU0{ zI~h53047#|QOMz}|L|wqExE#H-p-FUErc*jmv4NN3G9&Kjt z!I2;4;(AQDzQmLj5p{QCGv#1)AiH}y%n?Dih)+IGpGpOCB1CwA7xT`gdTHm(&sbVm zaKS5#RF=7VHAr(=5g&;lC`cqY3+EJuHU=}4+Bos!N6#qg zjx>vRRcVO>wYaWWtlnQT*U2&P@t5UN7`xa(&z&*gI_^t(J(VgZga?PE0F3LcoL|pp zSj$2JSC)(SYGM;?)%X!izLQMP%vh~RIg9+4ugxMHU(T#)bIr;sEq@%H9Udn}&>4Kb z-QJ(9CZe~zU+#joUu1AzxS%Cc$1Ot{O(V7zgBy$G40qj!vCt39W7wwS`kX(T80EZe zyKm2b1heK~frARex{*aJRTwPrq)227snL~o%dS4@P znX1bne+sL#F_VW{2N$n3P8U;tB!H@ucibfZbp*^6w7IU!pSw2A+4(M<`fS4YZ&C8x z{DO)1)|dXv?Da!7DK~#zmbkMBYk)>(ns*pvO`>%Y>2yS0Xut?SW{FfO94N`U)Vile zAF8Z81}1_15E3S)Krs>mdlW_MI$IfE>p#W!?`E6J(g$ulg=4AZr)^^=bN{g$=G(qW zUkvbkz({AwLHYfaoUNi>V1c3Gl-QXeO`E_VIF~Hxg_eW;5p5!dhkM4)oRQ-{b*i$A zQDO%!{`-KkQh8otjl?U&Z;b2UHEl% z;o07bbA|+=h2BQYEw4>q05&zBg+06)@#1Eq_P!qw5h05lr8MA&AW#bXlrOwyyfdfq zy9zaww^~d`0j=LLF!+q%2DBos9Inak0ueer{~c`a9I#X2kdec84Lq!XbekcPSxBZ) z`FuP5X77`q%Y7G;B%S-JlJxm8LRE#g2UHIbps25y(Bv?=jxo!J#kYduFLM(jQnZ~T zg1gXTF=z2ll6DO?laBMqVeC|5ejsw}7Y7~?P(rUFdS8pj5bi(55rs}T06QZ$0a1cP ztHAmCv%*}#--ciK8k{@X3m!&YuRwOJjxgepvActdQE}%q#%&%aO+5WLccIwp6bBMt zgvb|kL}eDNti2yON3vG#AUoPc@%uYJtx9|E&(NsB79a*$FoZUM=U7lz!@t;#u`oo` zlw{+yc!(hl$m2-PUNv`caG3k!FVUU#y!ck?{`}HM$aO<2E9>Y82eK{UQC!ji^vBRr z(1x;-(zaA8DOPIfJhr79Q%TsP$aBRNB^z2k^YQVh@~(mg z!==k#T#ie^G5JZqU0p|qCvHjn4nG~RG@d_#=!1OpUF_F7(Yc*cQc}1{GVNRKE+P$s zlK{nQ-}xRIE1V+pm2O>xA&y0^6okTbk3=a!R6;3!jCChsRM5jY;47i)w3&Sp$1o}l z+`3AHGYGJ*&|<#xWqne4?QmBCjMh}x2$&gBx^!t90!tyYUbX%@T+c}f%NE^*=o5Gn z!ZXM*hk`0)vCYn%dj+P|#@z_W5GH8Jh8H;^VA?VU;QK`=L6nYoq5?`Rk%~FmKdmER z)+&jHfD7T}fiB?LBK7pfFdZAm#(wuXl&)UP2oV%OwbcMbiJY3{ z7WBtbo}#^`ovyl8<3DX4Fgus+Gw+Z0RbfQC*}~P{P5`$ z+nVxo4urcT>joT=YNM{s&dHJ6URG1%3mW>ftxXR3r6bA_y_khMWRFRMW_`nXYG+#~ zluN{a8Zh7pu<#eWb6i|AW-gX--y4!W=wUzy-O*zcvuX0q}@Hw zmgw9WPVSaTuRSC~1yO*?)30c=bDOQFRS7BqLIEpodmV1vXz}C~WI2IkC?<*lLa61| z!DD~h-z0w?!rS4p?>|1|{E&>`Zz4bHy>um>6!_umVK36%#19G-WCxkfJTEVJFw=UZxJ-(P zw)mBvs9T?3d?5uF7he2*&z})imOlx+51v+fiOO;_<*BFS5YK+$3OW!}DXo5R2;~W5 zJ21JV$AxhWskGZK@(t4J7H%mXmdsB5-@o;V7`{iED+q%@Rt^sA8T&^We70fm%Fr;L zqHFK-<7Jc=`Q8(nIZvp+#vf8KX=R>JD8y$Q-coFR_>7O^!6}3knVKH|(YbSaALS#x zci(6!w(q(vxmBM*Fe@#-Q2&a-{WrW`0#yI=TxoIAp*TVg{J?Wy=Mzc%pmm;!_C9{d z_R3p0a^l2zkF>_C`#6%)UFcvP#xNXlYY=lD?{=~Y+*uJ-%ye5MD2>Q4cG7{5p zh|3}ZK}@A%-l=g!%Yv7K!xM^MOq0peCr?0mY?daqz3(EqjR4vqXeIDV=AGS&+TAZl zJHxiFCZ>XCX0YIzM>Z-3tV2un@a!o$jOPsg2vdv_-S@EgXUfL%%F1UXaS)UOMY755 z!c-Rd=-@*NYHDIj+1lD-jQiA^-0eQ(>pj{{@r6v5xuWfOX$K|K=0@Yf68l_sPSqXA zDH!o3>qR04NOt8!;fA1ob{T;!yx_#)-#^Kw!+D`Mw|Vf{tLoP5p(@ zCV}`+B)pE0_D z2_xU%BA7mYK$N$^!S5UEs~8(O3|$L{p9+uy007i`r>H{*IYUhA#6X3F6iN)Iq7@LC3~cOAK@d za*;@^%DU9>?698JVuVa08mN-Ny+$&I!|&L{Jd43ddu;IDWJ6?{6v+EVe_zkqCQ(Rz;k%dVq+v z^`Gy%Fk)4W*_?pNJ4oH+{EF{(baF~_UKqW-`TJqiz66+WcnZr~JbDWT6FgYn8tLTi zzjdx1BO-Qq$K7+^GKjqcc^2B%i|PR|F`B%cwQD_*_3;}VwobOECe=8AnV=K|L0H41 znY7(udcjS_WLhM)N}emQ1H(y;vgiBGfYcC$4;Tyu97S0*M~2PG3k?yI^l~aH!~QYvZ`{3mcb{ssGa^vTYwPRFct#BIK!}yD(ED#y6W)oXAiUbqfBo7u*}E(+F!vAP z-D7=B*Xj4uBagM33yCZ|Od<@^dFgJ2W*|@PfhNuKnj$Cib@}M0#7VxU*=^zq3)^3g;w|kT{>J8mLC;wz9c5~A(CNI zk#^rcIV~*~NQy%fSv?_DP!%r9g#(S(BAufSQ20XEL(LYE{V$Kb>xy>`y zG$}&VDG+rz?N;#?)Ri0zwgE%*4-Fv~yBe`ixEjY!in5mUa(sqB?dNoHh| z6+(8Izvo-ubI$!e_kHgBcm6sLU%9U9bA3Lq_v`gsFKAwU43nL=G8qYw_!J6U{OO0M ze*T2ei586tI#30<-F|>La4yNr{-h>eYJk!~_wJoDmrcSQM@(SQ6nkkt>FSkP*!L&U zf_PpV?r<$P;8u3;52)-8Hf|pD#u)$%%lm`r%cgCp6GiBeff0$XT#^ew4AzrQ2)}Mu zqyI;{Ozm+mVUp;kAhoV(Xt3z~ww?|%A2Iu5gn{(97y$iyOc@x-yU~F6;IN^#;TIJR z0Tn@1&CWyj?|9^==nmv*41eEbt_wj0j=oEC6ZLT)%_TkOFF{rer1KcNf4AEN!1cJ`g0~Wi4LxES*~ zd*P`Q{nzMV}- zw*XuwQE%5&FtXyH1ut+J@7QU$)jDJ^q}Dj>GH_vm)3neX{(2BxF9v>?NGv9;#K%qeZI5xnAPZYxv-fcSt|XjI|79|KVLKB5^wWd$bA*z z0iwiWY!;Xx+Gz9?R#QpveSn(8P0`-b;SCAM+1-uhwb$;hHlH4xgQBEljYnZ!GH~q;jXM_FYaeBOc znvw@gQuAV8;0pz|Vj-G4)#EbkkV_PhP!FBVu=7SCQ`r&#&BzB-QlICHP`BbH!wq2- zVhENWh6cnh%(Y(pp$a7qm=QE_X^`f;Fw8xt14CX=%qCwyfGz7gT-k-g*=Pi&REJSjZY&NrpVaY=tT}}NMuvtSX;CFT8kcoB8mt)i1_nVIL=`- zwiSODdiLyDUbLp@065xaaAk-d7iUs+JEA5Po@li?o3yw(s;H|op|vAs3irFulae+< zzDDl;17X3z-ie8cMQM8&zkRQYtL|%eb3v7WQ?!c^z*&Ym>H=%5zNUDif5cZ|p4QhG ziS}l~g>TL|e})T}X!du7C%3Z3CV(msUX$+=_;dCw5?BbHfgXAz^=X72e%b6Gf*=PR z{lJ#E&+^hzn~xvZ|ouhbkVQz+AKor&0OFE#_sMBAX-hkW9 z-;$b2DzXpxx;-cxjFLjHVB!YifRDu|D#`-yDc%Jl2a%_@2VJ0xu4x|5Fp|}VUTdS2 zltE)M9H7RiB4Td*m=D6sduB=oPjoXNrgNPnMJn+$8gkuUxNvoO+bcWtb&mGfU0VMY7}7G z6K||yb8{b%RD{Z=N#Mncz;7v9Ae!8H?{AO`jTbxf2YfJH&$jSOX0}L%33*${R3MEz zx|VBlh4|I`lQWELQ#FZxFUsN`U?^KATiWJ1L?uxm{zjoqq^hw|qCF(_$|00YgNqMC zfuU*%eu;T-BtHzoiZDLYrE!5(B29VGLJ#a2#|l)G>=qhJFE2r7X2qw? zYZ8to3x2u2V77z2>qO+jO38%0v@?ignF_2~jzb4yc%irg=1C(?zS+6U9kM^X|NFe1 z2H8yDE4rhiY-Vh9)0jRB!yzDK_-?SeC;*PK-~A5WM!We|`WhVpEC7r#t}zG`Hu`mm z2R8ACnCWO(nXheHSEDO*m;Sut8(EP?rfq)>up+z|@_Fs(F$phD`==S@MK*ue{#Dh@ zaizG3<7Q;3(oIo;_gUFNjxEJ;a}qWR_T9clKQIUz)z%Dl95gq=yDrx6Ty`^(mMuZ% z!SX#HOHMauNhs)V^e)(Xb%lyZf8Xe>b`;&x=wZhXmdd^7-@U;5Djz zyu3&dy@{R?NAJs*yKLI>22+yspKsofJOOv^%#-ZumO*8=IoXxG#0-hnf!&o1?!KG9zBAtHBdR> zb~Umc@O&r6#29J4<^pqxJZDsc&3G3?kqN@IDf9$HLe@FPaIF2*?k+GrZ7cf ze*XO0$|WT`)2ULc(Q+Y-klG8~*&mS)iUr~Pa&j(xHPiq97^y>R|MN&Ku}6jd=^HqI zKHgy620UBrN)dfy04*gDk52UQJ3O+k6rCU7?#OfuR6m~` zv2e+jQO6_c00&38r<-8dsX0lXkNpx1Q9?`F*9Hokk2U&aI>klFxI1`_TBiF(vwc_? z)!L!fW9sm1h++7W$3^)WQT>STCLM;Td*G{=#=wO6#9UF-#EG#BuS!Tmhzu|U{6fU- zd-!V9pJ>hgFqcV-P+hqewG3?%{8&;LNJ*eEpyx{?#cL_Ju!@5FaS8x*-e>=9sbU~^ zH%2hzXWd0E2rn>U6%`IvYe=PtB@hSSZ@8JztLjJZA}|No3uNScMAS2(fAPmi*A65f zm*PQxje3fWo&#%i0(o^yEv=FON7<(!Xge{$*hDN!hRu?}RdtdG7${JEe7ys$?cxMpwU8Zr{pH}F8Ga*=t*fhRw8P0vhiiEL_pkki(ogxB>ebHn z4=uph*no5N^&26@-JJW~{L1QW8sbkZFx;!Kg0mN)Ego&cYCGAih({52H4>2{ z2`*`Fs7%-BBs-HAxLgtEA);%wUilt)h%(q|h_lgz|23oIv4H2gp_X`wfeRuR3^p)k z5VDxxaSrFtb_+9v#Xuek*IPsE5nK;^kGQ`42>{WI#UieNn(7X)HH{WnR#h3?xqZl zy`yvXH2)4GD0Ld)WFv|xO}zkxgBZtwse_xSsja;l7|4kCf(Vt6h3Vvl+nZ^o_)6ZY z{S6UF72%D0fF2G*2mYO=K8AI))FAA~P~lJ-ZXiq?wC9$;%+b-(tHyt+p-V^bX!`@_ zRx|-z37Q{ZRVpPmWE2Y+ot%{)p^>Jt12(m_yr_s8j+>O6J@-B}HMtd3sqiQ z1}8c3)S+AV>gQNaHRtXkzTMliB}moM=hon?Z#*Tm$@tp1CNnkBS%FH2vcqIBKvTDwlFJKvn0Jy!7 z&4!1!beW%`Oy_4WJk>zIq4CgcglvNJv@O{>noBXtK<@jy)N@u5_t7S5NCYI2utjW8 zue1gcJwfJhBHkvkug7RM{(Tr9>ZzNW3@JXn#I<=9wQ+po=lAc8Fg8}VAwvpz=FckF z2b5AaIB&>zH_jbTk4?MTJ0G|Z_|kIk@Jw@sj_~P*%koEA!;bwd|BCo^%(c)lW2972 zwzRQ<_}(A+EB^xv-?O(n~f_Q+F;C zSPb<3fHp81yNr1>ZVdfkit>X;#Vcx)2Sx_G3cm8D+J@%lPl$(egVkteyU(8}5j5@6 zGoMlix;%7Qzp^U49K=BekMHHkNaFp3f@cKGRVuu=98-l#nhw7e8SV=x3=JLC4U%c> z)5w`lmg&5v)7D?JXTomUYQDbQrP=0O_rh%FmLj2%f>Z?-Vq^ubgLIKVxmaF=41JH- z*;ba@@dUQmfw|_fMqOazO&%sD-f~`WY3)DR z2hJ5&R50${yBCb^K+1j5G+%(oqX@DEwe=gK?ZMdv5=ZvgBdJdzF12ki;O?6xHmx}y zF!3bhLv*S4#)=&`nphwIVT zze~9p{tXQ{rc=*iKtOwFrKC3ws=Z5Hw3f27`xz#i<83(o#?VA0i-_25TDrsk5P=x3 z*Xc1Pp(ldY6(~B`>CjuZ^4j*dG&lQ0josG9lb~tgyyqhrWn_3%d-(C=-D7|)ftrP+ zi`-l*EFn~1TPqKY0ee=&d5crETEyKY!P54!kvrdRx=!qgFLq1$>u!28P z{CKYsOM7q8WWC3SfJTM+?))Z(lO|z)J3{C~tF=plWcPT^PW48_Pj;s-j3sl<+n6%S zO>W-5KN7PwNjxJ-rIC_oDk+h|#Q^G!kSdjG;-k8;13>`S<@5X`*l^?j9x3G+K0y+^ z*ppJ&G=Ygq1&A7E22y%O0A52=eTF$$;xM+rN9lvjewt+-mKRSux zgCABeFJ(qwNP?e%yn#Wn65BSM@baZOTO@GBkf=W+c>tAyqN0jNe}_$WK8T=p5V&xO zl=sq0(WYY)hQY~syPD>@176X4Z}t?2Fj;0->t@>R$ZHjh6y<3Z+_W&}>3J*sr_p?8 zOUvw_dK-&Ra127dQIvtWTZy?sX$#bh;CH2gF^w}-(BEDC`|~>Dgnm!D$Qfg73>cQ+Mdo4ad_P5bRED%aAaf|By(yI z3;uV0Z+X_a zau_uxXQJ)|qz2akio$$PKmO?+7;$lju0-JgAnnlSlpx38B34a+uaT{==*Lx0ZC}Oo9L%2NR|qSK5FF-@qQ*&C zh)b8uPpz5<7vLjPb{t2M+O>bT{)65x&VVNIh~5=Ik!{!xsEHbkmXj! zi4nt+PTh5k{@G0z4H9q{w zW}6n9^%gs6mOVJyEAsI@^JjnWjx&{lSh?Tw^jeB7xCUrYklx0FO|R+7$wr zV4cHeIi6*mjDP~-xC67(jVQxc)=j{I;l75hWZmNL*%)vM49|LSRHgRA3vF}gNY8j{33G>aN_UG`B!RYe+%5)$_c9h zO82#Fk6U%K_%aM5X=yb*T-{WKx{6RBn5>7eqRZj;<2~G!CS54lD2V*qZ^()~CNhLH z?D5gC79TnUU4XiPg8oWxqe>zsIAedF!>xb+AF$+X+TUOJ-ysA7$oyA*gMVbmcLW!b zMixQh$B%~=?ZWNCCn(sTXLdaV_u)B9OA>4uKHS}X2)G=M5PU7L1p+3u%glu`9LxtS zfST?|_IJ|Ney$x76yycj67DL58c#hNq@BQ~io7>*w_Hf#jXiO&xKc@pmU<2Y9pOS6^xV5D{GyLK@8$?J|KK2 z-fy5@ioZt3TSx%beN zH@?TAx9`#~5ioKWveeL4h&fJ>2rDFDVW0}D#sLTwj(>}JHmr%r45%_U$X}Qn&UBly z$#23NKo^qO^}2sD7g8Ke4UIzB{2*wwfBL!bQNBdGKlh~1$m9CB;J=}HHrl+}pp;3p zsOS7xw4(kR4n)uX1qd+CR^LP<8CZG9fJjCe)ME6Ej07bmhFmlOIBy$<-vDU;2uU7s zEP*d0tPC^r0U#bEk9^M_dnmMH%-I7@$7c4}!o1Jo<}hPa^z$ByI@J zbWDsFOiuVx!HyWi1A=S``;NDj`NJltmP9bH7#2zL&u|YCEi#BE5>tfyBuy6{9v%wb zC)a0z0ENz=GAq=UP+PJHL+=4-TwviqI&flM!OUSCQhY;n@ygJ~*7H}O0jx}G{`Bcn z7mSa1hU6gtJND=Z@tcD##kYX-m7(l&j?%mC+c0ao03ww zc{>#4&|{23QRYt;WRNXgp&!_}>=YPhu2c>Ln>VuuVNf8EBmjO$3@IoC-0hfFAOJ^C zNYc@>odSR~Kx10j`H|=#i0TX2xmd*+Gc#tu^MIu~?fh0qiGGCz>4VR`sHoONAw1Nw zfqauB$Abb6dg_^4Wg6euq5?;Iy{R^dJku2tQ<;WZm;#c>>LUWkVQzx9+3txNdHYF8 zpFV$a7|^cBE|{C0oo?Bp1I-rx(lMkL_bvvdf5gT%Jx0@E3ju=bVETtRg;;f=pEnAL zhE;!&Wn7OWEA&8v{z0J#$NKtXF)SV5`pnSCxDM_8FGaK)#$7KEvI^V;U@qt>QgMF* z^qDR&C$TB`wqbCDvw;cm0N^`tZ2&W9=;-)-Fh$w$LvG!EYVx{}Jpzo#Nj^E(4L2$U zVHXYYYSGeMzbyD)%Ydaagloyi5f~P!I#jw+}aO5y*Fb+c7wZKJK0AuANA%B2uO2&$&jVd|FA22d)4JGD{O# zZufBw9GhtFA+Yj+T>+0eG0!%=DSvbeerg7Qy@tt&$Sy|vME={k*MLVnW1p3cWPhJ| zM*X?J!>E35)P(Csc4wNUMp%slQ`SSM(N$DPijVtU1Mu^h+;Le_teeCv#K=90d%6N+ z_h+=IhtcsNZyv$&bv?g<=)`J2`;8>+`>mXVH_-!-X&t1oEF_Ak7<{m^%+6l&S1^ed zRWc`@atcw?RHMTHKF?5gg5Lw5la|x?+rR*lGtFRr$0@>*UZs=*nE?fg7~2p8A6`Ra zMI2m+l~hKygdoBX*a1`*2`2JG9)WFWh;UT4z?+7u7~uuwsOKt{mfIi)f(bARG)<&^ zD%4*%Fa9^!glE@pu0C>cG$vdhvxoJPsBlur;OIwzu07`%ZHC5_u>hfT#%XKjL03)69flk(&5r&W@&IGabzQ$ZjLz0P-n7?Y>2*8%YHM^RzM} z0L%)I4jgpt_)0aW=WK4i&RhA!dHi-7>fld=36Ej5-6)cqp~G!>V;%Xbi-(?68SQ7? zcv_uyFkmVL8UUR^H)1(SwZMr;+y*38koopkHW+<$bix9>BhlmI)8x9r$bQ2$*Rb&z za)$4GB-IW{U$|B~GOcln{>Dq;qT*wjyf+_tac zprs!C2oW(lM^e)9VDDH!S-|tL6R(czLHbl+n_#>gV6LQKHbJaAmlic*M2j)41N(sl zth%bo8=JX+qLCdN7*CdDs^hBy4nVg0HJC^5o12wweM+K$QBUm7pU0F-h)H}pSXx^8 z@2oIM0S;vjIV`5wRGgIAvskmXuu(wZeaQqFJjp^2(Ble6jvR@eF)Z>!65=bJ4Pj+C z=M>R2X+MKtB1-G%<`9%;`sK^1Tqjqf^(P-GE35I*XK4357G~POL`!Yl#i&KD$4GpA zQE|o|UJAPKGbFSfoZkKWR$;JT;}{w<_2a-;tGob9CK5;Qz$ThU>-J1{95)>Zzu0$RCYnk`*B3B%2 zn}w|qFR$!9RokyAg&m@GUv8i&!(8JYWoCaSznq;r-sg%zn|$>^hbb6iFnvhUD8rli z029=YNrt4nidL0{R^2#p*O{Zju+c*7Nf=gXX>Qr&3mihIIC!!-r7wNmoC_%gj(BM7 z;#bL-!`${SXvKK#N(%9JJ^O;RpvJ*Iye$YCqG{?`LCBD;jtK%09f;|@iZxqQnI}Kv zQ$5IwD41^8&$4f~7Dir*Qm|QFsBiJ<4un@Y|MEYc`25tp7o6`egwB6oe1ykcGuXr2 zcysq*Apm9^5>6HoVG&Z_*r<%sgy~rGyOnK{hI;Ol0xtiR;?oEWRVSw~r%5Gki+v^eWNUQG2l* zN-nt`TBNOm1I;tY8CX7^B!Uwf{WZfDO$?Lp09#j@4kmLmIJvVNNLIXTZ!1fg#{y3r zKL_mWQVd%E-~vwd$BEYs(Z&}f9;lkaS`W}@4_F4MX@pk2D~tz7ft{^uJ*6St!~>k+ zHub`^_F-JyAWd;Dp6Mu;9(Ftg0@%s3C}w!QzK94J#{Y=?2}tu`NDUc_@XG+uR_O@P zM$3LhIpO8aZXUsZ3H^~n-=D{k4vYY8T+@#YvVkK}J56Y?QnqpnJ2+YA^uyA=jbBtGaL%CvFc>ABe(?I$3^SSO!k=Widcyb7~d5dC$yhr$7AG6 zfD1$@0WENTe*SI^WrzmB^v6{R3=R@z3#a@`bkR_?poQN8>jH$=D`|>i=4|g*9gM9v zxdQS#ruUtVoZMvtrPH91hjYdlK%XGmQDu3VwT;ag zG?*Vd#)6d`PQem$-B|yG!R94|I8ZL~B><>YnsQ%7tDSCYWE4}L>DNlU3L1{20f4R; zg@8op#gqnIL?%txj@O(5bwMYv@dXVZE*5yjMy~N}_Zcy=+K3RyNEAVnP9>Gr^T(3P z7YbtA40d^f3L(u=sXF~cx{Zdqy2x3b3`~)7$)z-%Jz}ke*a-kZM!(4DnRtAUr%}jp z#D2Xt@lIXcG7U2$aH- zHJrP}TD?zy89=8AeebZ_9>3#lG}HO)bSwtRiu^2iW$#MJF#3mn+FDut5Pi2340x#W zp0itOh7)pg-PQSzB>@{|)Vugy-FR1oLV5gKz57)IGkr~VXnlW(Y!Is|-3Hnpc1;fF ztFj_>%&t;SOt3kGn~59fUMW_B&)~9m_5W^j_$Ov^hW)8!iO=m+fi&65wZIEXu$RML zcGzy6jSyRz*Nc^F=@dA~k9UJOfXDplD!<~>g{Hd#ZbZ5*yIg2$wXABz(kY|dwaUCq zD`ieEOxWN&q2Tl7p_suGhoP}0mD2e-??wwgiWzM_}!jBTfEN7mS zJ{LeczHT2BV_{+SN;mnKRthe@vE|oJYjNCi13(UJWKngp8^#TPz2@eUsOejWB9>jw zV`>!opWnbgOb!2zkg&{e#BjbJFeKR&fOG*oyF{vr{Z#VZ_aK;n=-R#K6t+kpqCx8c zju>DYP&k!HFN041XpKg>RWA8`+H^{Cz3O^*g1;x>pl zh-eV(PvZ2>bwuxkp#bbJI5Z>yjWD}=q2Y?;Aqjsrv06;&L?qZe{5{*CNV1`vU|^qA*N zQyW^ds^MvLvwh8jlERu(-Q+u-P*~9<-mBXP2v4Oe-I9T=kaIu+14c~g4nHe_8GpdBaquCa-UWig27=r{rt zF0IXRJ9b3DhoFAyR0UW+pe=;uMmi&McW_!0H6I1QblQK0KB|x4eLo?A8UYGp1;V5M z7YK6AW9q|kqTEJrg*$}EBe2l}Ngddn#1AwIUVkX`Xk@Wr%Jdy0r+5M2Dcn}ZaKjTt z0jvbX>36cHD(Tth?{&H4s}2vR8(-HQYvq5c$KeX-6%E@*(2V6Yi`c7oIB?z zl+}9<%OB9nxer<4{0PrNFe2k`Wh@~RIItY*r(}T}Y?)Z8p$L3}0$_$zYG^r$^UL~T)$;qy-e{Xl?zibweDUcHig+ri-tmIThIFC<8K5^-x;bUKhY102o> zguoIoj4t!yMY0EZOF|cH@Tym zsZ1N~Q$2i`9>o_e#8$E>jzB2F_X&i;`3D6#0<rHOFz&#%b!Sfz;>^8EIQ~PR_t(S>eNeC zyiIQ@3zX_0Yz_zs1Jc^m4OVEt$%3GNP!<3`?E8&A7nClEFB)-UI9clC$*y(U4O|S8Ow&TFvBH`c}aD^@~@No4UQdETd61DKw9TM!0 zRC9q-aFD_pfZPl`k29}-pEW~<5kt*$Z>plytb%HGM|=>#XSnw} zU{vVE^bGXCr@N-625EKiF#n@eg`t81{DiG)G3PfS!5$KZNOSy%1SRC z2!(+q!gIPNdT3kp#Jy3nGd)bqZadowd|e$tKe+GE1rlAw*9>Xk7t{XzsYBU-tr#=h zap+@Ug%K4Vw!=Ff2A?jxyo`c1aE8hQ!{$3{X-r=YJmu%?V;jHp2&56d%xte~g>v5~ ze(p4`@FrRhY*)Po(Eye^et`bvBc#eFJVtJwBC1y%4`g28z9NB!TO$mU!yXDHMSABh zIt4`kt5YDL>+bgzI5mL;K-P>`>(QaxQ@J%Aa307`wKUyOGB%fw)BKi>QFS4W0{^Q(dW-0_4H6aoZc zN<(POJq*c-{ai{-EE>r^SLm~;yraB-m&(kOnF_JKWH}MU;RGpx$%Eu@VW#=JETZSI zBUC$h>Op#I-aF1b{Gc4)CfSpO4*-ZZb*yxcA_99D=$%B(SK*w z+75hr2`m`S-A{eJw4>U&|4A(2GjuDK+~tUku0&cM9`Oer9vQ77;`bb1@13gIj_m-* zQzKy&kQ6#k#MwO=oEM40R2g1L^G^BDp=+=FU_Bt&pb;2n)Feli;&I}~V7>k<*>bAu zqxl5JkT(DFtesOa={0>5t{k09fN2*15O4v*7%pagPlbk<$N!6yem@U!dPk@2vCOJE zdm+nU8)_O^kzCz|W|!oDLK+!4-a$xQOgjWi&OD#kBAc!&?4SB7W{tYmf)Ek2ZoCSMJcg!|xvpPcz=@8gxarWiY~T+>NmbNj zys*PkRyJWnp+g^5t|eMCg1wL4avy<~KG((#)XkkTO!<|$QHq^JHo@}3YH9E3R zC!T-~W)?Wx)bmm!5pj3rQ=qGMZP;6dC=N6grxEF*Ij(ApD*b2uP+yKLC~we3B%30% zqO9!vMcd=&&OI$}1H4AUmuqV;w28FhA;eVq<68w*dW1uPhZnic!H<+`DBNZybx`R( ziB=%H9DMZ>XqWoZk|rv@<-RmGHHDbscY*K{#eXRvT6%Y*rGn(!t0H@RE!dFjt2pSe z&l~osmrY%R0glHB;uR8w_(UuaKfjY zcP(E^memlK0|xWk;o6K)iO;4+xQ0 z5EQ&Ybc@hk7#cNR2f4WEpF@&V~28|F72V-U0hbe$&O($3P4h`LEu*w?_NUCG0K~;4M8_~1>58(kB z6yiXRa^%_Pa1~fL9`jFN1LMc>%uNorsbRT|%7g?-RjWL&VTf71Xcy5+tX-?pk%ZPB z2oVbp52GwV(NlnEs2Q&?u*K==JgC}k&IA}IyfS@6AGHDNWMJ+(U}DlqT{Hxa3g%1r z(~$pTozDE5ap5N;{tnqX0qPG;3KU6p=>HPulIl{90N=r|W7f$(`SYg{`eeAS#~Lk@ z_Z_$OBnZ%=J!0?Ukso-R(5%DoRGqvnf9CBM2op%>gLHZXZM3{*{oIZ@U0WgT1q0jS z4E{~5bq1LTB-el1Adj#(EYGM%LL-knl8&wb|C^xM&|PeWstZA+!~^9{VpGrdw*l8e1Q?`et04Te57U*ND4gmpI{GoSfIw zFE!!9e?#0!b#KHHmt?tgME;2IUMV=WFs-xZ#zKCs+i&YQ-%iSWi$Rmim*bIIvMS8V zMa)|Cg-?9=GS<+~uiBw>(p650GwAUNy^Iy56Q~4SGL> zEb!?L9@%H!+UgMI( zk<#O#_)|)V)eUf+=ol6|Pq$6in-cUyt6ycS*}~psynGMynB+d0?}~_g?4wxAq39n4j-iCiv0RC>a#VxIQL&E#7-C|T%PJ@P2c$T4ezWNXAn{1 z-sRHT0+1~GF|99m$+>VGYD0c`d;OOc2(MYrGybqfUcS~7d%Ahzc1nJt&tj&rxe?=;|+!<1TzRzS}~d%6{}7rb;8((3E$hf#8R4mG_= z%x?DNiNN~Ox&`aQcS$RjA9uJ+@Lc+qFsK%9YLo)TUDg=_#5EPNaJ6?xZ8k85UyukYjDJDR)j@AI>=ruW`sG}!Z8+Uv@) z_fg$O~@fZ`c2BS;V zl)1!%JbfWH9zNHvg6BTkC{n+RN64Ra$X^;}zd|t2V4w6j4$TKAG{8Y!PqmnPcXA*czm{!`jx?^WF#3 zJViSVc`oi3RSzeBi`y-}(Yf4kF1@JRBTu+qnZzee>VW_we&=O*W~D znb#+GRGirrp;tRKT)BanVb%HQzyh|{&*z7nq68R)vV2|lJiH>GepNb3#&bTwbeGFM zwwne{oIauS%vBrcHoSZ>(7KiFrVQj%3)hVH#GdjAGu?ZI|D@w9PHtJZC8y_ea%UP3 zr10%5+IWWZ0l=>=oZQh|?CdTQ+=0$2^&zO@UU9qfg;tDej~ZrH7{WOeItbx&B}FFtOslz9EZ;Pzt<%>4XzL(eX^>x3;zME?W!*hHL5aL{_v3-`iGNDprqLZp6>17I^G>eC-{O%*Qc+XsJ-#lHXR-a{) Tr>~&ke}@kpm46{;bou`QNJqaz literal 35897 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

    PV4Lvt+H#Z|sT)=%lzj1jHI>5-*9CI3UUQJC+ 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 s=Ck+L2rJHYR9CZ`S9Z(VyMCrkQ8vBm*>B8Eg Date: Sun, 23 Mar 2025 19:41:31 -0500 Subject: [PATCH 21/21] Widgets: Update test images --- .../implicitly_checked.png | Bin 10932 -> 0 bytes .../CheckmarkWidgetView/large_size.png | Bin 21966 -> 22719 bytes .../widgets/CheckmarkWidgetView/unchecked.png | Bin 11088 -> 0 bytes .../views/widgets/FrequencyWidget/render.png | Bin 23054 -> 23726 bytes .../views/widgets/HistoryWidget/render.png | Bin 34034 -> 34701 bytes .../views/widgets/ScoreWidget/render.png | Bin 19641 -> 20268 bytes .../views/widgets/TargetWidget/render.png | Bin 16076 -> 16644 bytes 7 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/implicitly_checked.png delete mode 100644 uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/unchecked.png diff --git a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/implicitly_checked.png b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/implicitly_checked.png deleted file mode 100644 index 1f5aed30509cfbeed2eacf19d379d0f195277a50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 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%0Au5W}5QzfiacRK&G8CDmWw)F3tC|o9dS6@H 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 V`evUdf~GU-*iqXfCFYdqe*r9iV)6h0 diff --git a/uhabits-android/src/androidTest/assets/views/widgets/HistoryWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/HistoryWidget/render.png index 23e3c979eb5b2cf91639a9b0cf669cafd4dd4085..751c7f6ad34e80c259f5cc05b6696cc5668e9686 100644 GIT binary patch literal 34701 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%0DL63uK;=*kPhYpv^~L^HGV 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 sF!9U-^;j0Ssn~v6ut-sCj=#7%RrD-ItCX8-^I diff --git a/uhabits-android/src/androidTest/assets/views/widgets/ScoreWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/ScoreWidget/render.png index 4f50ce820af4595ebd01adb61fc894fac3914d6a..078214a36eaf8ad60ef425a9b2b259531ee3d549 100644 GIT binary patch literal 20268 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 diff --git a/uhabits-android/src/androidTest/assets/views/widgets/TargetWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/TargetWidget/render.png index 5b3270649a41a2575446252af6aecbdb00b73d15..bdfff3c0936f7082a68b60d8a415013511adb58b 100644 GIT binary patch literal 16644 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 literal 16076 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 qak;qoYKPBUGDh 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

    @Uc@SlQL7H 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≠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